From 287ed9ac249743c53bcd6f59d17ca648dd90c82c Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Tue, 25 Jan 2022 16:30:31 +0000 Subject: [PATCH 01/24] updates for later versions of three.js --- .vscode/tasks.json | 12 + build/datguivr.js | 862 +- build/datguivr.map | 2 +- build/datguivr.min.js | 12 +- examples/thirdparty/noiseparticle.js | 2 +- modules/datguivr/colors.js | 24 +- modules/datguivr/folder.js | 2 +- modules/datguivr/graphic.js | 10 +- modules/datguivr/index.js | 22 +- modules/datguivr/layout.js | 2 +- modules/datguivr/sdftext.js | 2 +- modules/thirdparty/SubdivisionModifier.js | 2 +- package-lock.json | 11232 ++++++++++++---- tests/three_examples/webgl_geometry_cube.html | 3 +- tests/three_examples/webvr_shadow.html | 4 +- tests/three_examples/webvr_vive_dragging.html | 7 +- 16 files changed, 9166 insertions(+), 3034 deletions(-) create mode 100644 .vscode/tasks.json diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..85f8d16 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,12 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "grunt", + "task": "watch", + "group": "build", + "problemMatcher": [], + "label": "grunt: watch" + } + ] +} \ No newline at end of file diff --git a/build/datguivr.js b/build/datguivr.js index 6d0d05d..d2f7dad 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -1,4 +1,4 @@ -(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 1) er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } else { - // At least give some kind of context to the user - var err = new Error('Uncaught, unspecified "error" event. (' + er + ')'); - err.context = er; - throw err; - } + if (er instanceof Error) { + throw er; // Unhandled 'error' event + } else { + // At least give some kind of context to the user + var err = new Error('Unhandled "error" event. (' + er + ')'); + err.context = er; + throw err; } + return false; } - handler = this._events[type]; + handler = events[type]; - if (isUndefined(handler)) + if (!handler) return false; - if (isFunction(handler)) { - switch (arguments.length) { + var isFn = typeof handler === 'function'; + len = arguments.length; + switch (len) { // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; + case 1: + emitNone(handler, isFn, this); + break; + case 2: + emitOne(handler, isFn, this, arguments[1]); + break; + case 3: + emitTwo(handler, isFn, this, arguments[1], arguments[2]); + break; + case 4: + emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]); + break; // slower - default: - args = Array.prototype.slice.call(arguments, 1); - handler.apply(this, args); - } - } else if (isObject(handler)) { - args = Array.prototype.slice.call(arguments, 1); - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); + default: + args = new Array(len - 1); + for (i = 1; i < len; i++) + args[i - 1] = arguments[i]; + emitMany(handler, isFn, this, args); } return true; }; -EventEmitter.prototype.addListener = function(type, listener) { +function _addListener(target, type, listener, prepend) { var m; + var events; + var existing; - if (!isFunction(listener)) - throw TypeError('listener must be a function'); + if (typeof listener !== 'function') + throw new TypeError('"listener" argument must be a function'); - if (!this._events) - this._events = {}; + events = target._events; + if (!events) { + events = target._events = objectCreate(null); + target._eventsCount = 0; + } else { + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (events.newListener) { + target.emit('newListener', type, + listener.listener ? listener.listener : listener); - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); + // Re-assign `events` because a newListener handler could have caused the + // this._events to be assigned to a new object + events = target._events; + } + existing = events[type]; + } - if (!this._events[type]) + if (!existing) { // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; + existing = events[type] = listener; + ++target._eventsCount; + } else { + if (typeof existing === 'function') { + // Adding the second element, need to change to array. + existing = events[type] = + prepend ? [listener, existing] : [existing, listener]; } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); + // If we've already got an array, just append. + if (prepend) { + existing.unshift(listener); + } else { + existing.push(listener); + } + } + + // Check for listener leak + if (!existing.warned) { + m = $getMaxListeners(target); + if (m && m > 0 && existing.length > m) { + existing.warned = true; + var w = new Error('Possible EventEmitter memory leak detected. ' + + existing.length + ' "' + String(type) + '" listeners ' + + 'added. Use emitter.setMaxListeners() to ' + + 'increase limit.'); + w.name = 'MaxListenersExceededWarning'; + w.emitter = target; + w.type = type; + w.count = existing.length; + if (typeof console === 'object' && console.warn) { + console.warn('%s: %s', w.name, w.message); + } } } } - return this; + return target; +} + +EventEmitter.prototype.addListener = function addListener(type, listener) { + return _addListener(this, type, listener, false); }; EventEmitter.prototype.on = EventEmitter.prototype.addListener; -EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); +EventEmitter.prototype.prependListener = + function prependListener(type, listener) { + return _addListener(this, type, listener, true); + }; - if (!fired) { - fired = true; - listener.apply(this, arguments); +function onceWrapper() { + if (!this.fired) { + this.target.removeListener(this.type, this.wrapFn); + this.fired = true; + switch (arguments.length) { + case 0: + return this.listener.call(this.target); + case 1: + return this.listener.call(this.target, arguments[0]); + case 2: + return this.listener.call(this.target, arguments[0], arguments[1]); + case 3: + return this.listener.call(this.target, arguments[0], arguments[1], + arguments[2]); + default: + var args = new Array(arguments.length); + for (var i = 0; i < args.length; ++i) + args[i] = arguments[i]; + this.listener.apply(this.target, args); } } +} - g.listener = listener; - this.on(type, g); +function _onceWrap(target, type, listener) { + var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener }; + var wrapped = bind.call(onceWrapper, state); + wrapped.listener = listener; + state.wrapFn = wrapped; + return wrapped; +} +EventEmitter.prototype.once = function once(type, listener) { + if (typeof listener !== 'function') + throw new TypeError('"listener" argument must be a function'); + this.on(type, _onceWrap(this, type, listener)); return this; }; -// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; +EventEmitter.prototype.prependOnceListener = + function prependOnceListener(type, listener) { + if (typeof listener !== 'function') + throw new TypeError('"listener" argument must be a function'); + this.prependListener(type, _onceWrap(this, type, listener)); + return this; + }; - if (!isFunction(listener)) - throw TypeError('listener must be a function'); +// Emits a 'removeListener' event if and only if the listener was removed. +EventEmitter.prototype.removeListener = + function removeListener(type, listener) { + var list, events, position, i, originalListener; + + if (typeof listener !== 'function') + throw new TypeError('"listener" argument must be a function'); + + events = this._events; + if (!events) + return this; + + list = events[type]; + if (!list) + return this; + + if (list === listener || list.listener === listener) { + if (--this._eventsCount === 0) + this._events = objectCreate(null); + else { + delete events[type]; + if (events.removeListener) + this.emit('removeListener', type, list.listener || listener); + } + } else if (typeof list !== 'function') { + position = -1; - if (!this._events || !this._events[type]) - return this; + for (i = list.length - 1; i >= 0; i--) { + if (list[i] === listener || list[i].listener === listener) { + originalListener = list[i].listener; + position = i; + break; + } + } - list = this._events[type]; - length = list.length; - position = -1; + if (position < 0) + return this; - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); + if (position === 0) + list.shift(); + else + spliceOne(list, position); - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; + if (list.length === 1) + events[type] = list[0]; + + if (events.removeListener) + this.emit('removeListener', type, originalListener || listener); } - } - if (position < 0) return this; + }; - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } +EventEmitter.prototype.removeAllListeners = + function removeAllListeners(type) { + var listeners, events, i; + + events = this._events; + if (!events) + return this; + + // not listening for removeListener, no need to emit + if (!events.removeListener) { + if (arguments.length === 0) { + this._events = objectCreate(null); + this._eventsCount = 0; + } else if (events[type]) { + if (--this._eventsCount === 0) + this._events = objectCreate(null); + else + delete events[type]; + } + return this; + } - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + var keys = objectKeys(events); + var key; + for (i = 0; i < keys.length; ++i) { + key = keys[i]; + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = objectCreate(null); + this._eventsCount = 0; + return this; + } - return this; -}; + listeners = events[type]; + + if (typeof listeners === 'function') { + this.removeListener(type, listeners); + } else if (listeners) { + // LIFO order + for (i = listeners.length - 1; i >= 0; i--) { + this.removeListener(type, listeners[i]); + } + } -EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; + return this; + }; - if (!this._events) - return this; +function _listeners(target, type, unwrap) { + var events = target._events; - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } + if (!events) + return []; - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } + var evlistener = events[type]; + if (!evlistener) + return []; - listeners = this._events[type]; + if (typeof evlistener === 'function') + return unwrap ? [evlistener.listener || evlistener] : [evlistener]; - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else if (listeners) { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; + return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length); +} - return this; +EventEmitter.prototype.listeners = function listeners(type) { + return _listeners(this, type, true); }; -EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; +EventEmitter.prototype.rawListeners = function rawListeners(type) { + return _listeners(this, type, false); }; -EventEmitter.prototype.listenerCount = function(type) { - if (this._events) { - var evlistener = this._events[type]; +EventEmitter.listenerCount = function(emitter, type) { + if (typeof emitter.listenerCount === 'function') { + return emitter.listenerCount(type); + } else { + return listenerCount.call(emitter, type); + } +}; + +EventEmitter.prototype.listenerCount = listenerCount; +function listenerCount(type) { + var events = this._events; + + if (events) { + var evlistener = events[type]; - if (isFunction(evlistener)) + if (typeof evlistener === 'function') { return 1; - else if (evlistener) + } else if (evlistener) { return evlistener.length; + } } + return 0; -}; +} -EventEmitter.listenerCount = function(emitter, type) { - return emitter.listenerCount(type); +EventEmitter.prototype.eventNames = function eventNames() { + return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : []; }; -function isFunction(arg) { - return typeof arg === 'function'; +// About 1.5x faster than the two-arg version of Array#splice(). +function spliceOne(list, index) { + for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) + list[i] = list[k]; + list.pop(); } -function isNumber(arg) { - return typeof arg === 'number'; +function arrayClone(arr, n) { + var copy = new Array(n); + for (var i = 0; i < n; ++i) + copy[i] = arr[i]; + return copy; } -function isObject(arg) { - return typeof arg === 'object' && arg !== null; +function unwrapListeners(arr) { + var ret = new Array(arr.length); + for (var i = 0; i < ret.length; ++i) { + ret[i] = arr[i].listener || arr[i]; + } + return ret; } -function isUndefined(arg) { - return arg === void 0; +function objectCreatePolyfill(proto) { + var F = function() {}; + F.prototype = proto; + return new F; +} +function objectKeysPolyfill(obj) { + var keys = []; + for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k)) { + keys.push(k); + } + return k; +} +function functionBindPolyfill(context) { + var fn = this; + return function () { + return fn.apply(context, arguments); + }; } },{}],29:[function(require,module,exports){ +/*eslint new-cap:0*/ +var dtype = require('dtype') + +module.exports = flattenVertexData + +function flattenVertexData (data, output, offset) { + if (!data) throw new TypeError('must specify data as first parameter') + offset = +(offset || 0) | 0 + + if (Array.isArray(data) && (data[0] && typeof data[0][0] === 'number')) { + var dim = data[0].length + var length = data.length * dim + var i, j, k, l + + // no output specified, create a new typed array + if (!output || typeof output === 'string') { + output = new (dtype(output || 'float32'))(length + offset) + } + + var dstLength = output.length - offset + if (length !== dstLength) { + throw new Error('source length ' + length + ' (' + dim + 'x' + data.length + ')' + + ' does not match destination length ' + dstLength) + } + + for (i = 0, k = offset; i < data.length; i++) { + for (j = 0; j < dim; j++) { + output[k++] = data[i][j] === null ? NaN : data[i][j] + } + } + } else { + if (!output || typeof output === 'string') { + // no output, create a new one + var Ctor = dtype(output || 'float32') + + // handle arrays separately due to possible nulls + if (Array.isArray(data) || output === 'array') { + output = new Ctor(data.length + offset) + for (i = 0, k = offset, l = output.length; k < l; k++, i++) { + output[k] = data[i] === null ? NaN : data[i] + } + } else { + if (offset === 0) { + output = new Ctor(data) + } else { + output = new Ctor(data.length + offset) + + output.set(data, offset) + } + } + } else { + // store output in existing array + output.set(data, offset) + } + } + + return output +} + +},{"dtype":27}],30:[function(require,module,exports){ if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { @@ -6400,7 +6706,7 @@ if (typeof Object.create === 'function') { } } -},{}],30:[function(require,module,exports){ +},{}],31:[function(require,module,exports){ /*! * Determine if an object is a Buffer * @@ -6423,7 +6729,7 @@ function isSlowBuffer (obj) { return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) } -},{}],31:[function(require,module,exports){ +},{}],32:[function(require,module,exports){ var wordWrap = require('word-wrapper') var xtend = require('xtend') var number = require('as-number') @@ -6723,7 +7029,7 @@ function findChar (array, value, start) { } return -1 } -},{"as-number":26,"word-wrapper":38,"xtend":39}],32:[function(require,module,exports){ +},{"as-number":26,"word-wrapper":40,"xtend":41}],33:[function(require,module,exports){ /* object-assign (c) Sindre Sorhus @@ -6815,7 +7121,7 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) { return to; }; -},{}],33:[function(require,module,exports){ +},{}],34:[function(require,module,exports){ module.exports = function parseBMFontAscii(data) { if (!data) throw new Error('no data provided') @@ -6924,7 +7230,7 @@ function parseIntList(data) { return parseInt(val, 10) }) } -},{}],34:[function(require,module,exports){ +},{}],35:[function(require,module,exports){ var dtype = require('dtype') var anArray = require('an-array') var isBuffer = require('is-buffer') @@ -6967,10 +7273,12 @@ module.exports = function createQuadElements(array, opt) { } return indices } -},{"an-array":25,"dtype":27,"is-buffer":30}],35:[function(require,module,exports){ +},{"an-array":25,"dtype":27,"is-buffer":31}],36:[function(require,module,exports){ var createLayout = require('layout-bmfont-text') var inherits = require('inherits') var createIndices = require('quad-indices') +var buffer = require('three-buffer-vertex-data') +var assign = require('object-assign') var vertices = require('./lib/vertices') var utils = require('./lib/utils') @@ -6990,7 +7298,7 @@ function TextGeometry (opt) { // use these as default values for any subsequent // calls to update() - this._opt = Object.assign({}, opt) + this._opt = assign({}, opt) // also do an initial setup... if (opt) this.update(opt) @@ -7004,7 +7312,7 @@ TextGeometry.prototype.update = function (opt) { } // use constructor defaults - opt = Object.assign({}, this._opt, opt) + opt = assign({}, this._opt, opt) if (!opt.font) { throw new TypeError('must specify a { font } in options') @@ -7034,25 +7342,25 @@ TextGeometry.prototype.update = function (opt) { // get common vertex data var positions = vertices.positions(glyphs) var uvs = vertices.uvs(glyphs, texWidth, texHeight, flipY) - var indices = createIndices([], { + var indices = createIndices({ clockwise: true, type: 'uint16', count: glyphs.length }) // update vertex data - this.setIndex(indices) - this.setAttribute('position', new THREE.BufferAttribute(positions, 2)) - this.setAttribute('uv', new THREE.BufferAttribute(uvs, 2)) + buffer.index(this, indices, 1, 'uint16') + buffer.attr(this, 'position', positions, 2) + buffer.attr(this, 'uv', uvs, 2) // update multipage data if (!opt.multipage && 'page' in this.attributes) { // disable multipage rendering this.removeAttribute('page') } else if (opt.multipage) { - // enable multipage rendering var pages = vertices.pages(glyphs) - this.setAttribute('page', new THREE.BufferAttribute(pages, 1)) + // enable multipage rendering + buffer.attr(this, 'page', pages, 1) } } @@ -7091,7 +7399,7 @@ TextGeometry.prototype.computeBoundingBox = function () { utils.computeBox(positions, bbox) } -},{"./lib/utils":36,"./lib/vertices":37,"inherits":29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(require,module,exports){ +},{"./lib/utils":37,"./lib/vertices":38,"inherits":30,"layout-bmfont-text":32,"object-assign":33,"quad-indices":35,"three-buffer-vertex-data":39}],37:[function(require,module,exports){ var itemSize = 2 var box = { min: [0, 0], max: [0, 0] } @@ -7131,7 +7439,7 @@ module.exports.computeSphere = function (positions, output) { output.radius = length / 2 } -},{}],37:[function(require,module,exports){ +},{}],38:[function(require,module,exports){ module.exports.pages = function pages (glyphs) { var pages = new Float32Array(glyphs.length * 4 * 1) var i = 0 @@ -7210,7 +7518,109 @@ module.exports.positions = function positions (glyphs) { return positions } -},{}],38:[function(require,module,exports){ +},{}],39:[function(require,module,exports){ +var flatten = require('flatten-vertex-data') +var warned = false; + +module.exports.attr = setAttribute +module.exports.index = setIndex + +function setIndex (geometry, data, itemSize, dtype) { + if (typeof itemSize !== 'number') itemSize = 1 + if (typeof dtype !== 'string') dtype = 'uint16' + geometry.setIndex(new THREE.BufferAttribute(data, itemSize)); return; // sjpt + + var isR69 = !geometry.index && typeof geometry.setIndex !== 'function' + var attrib = isR69 ? geometry.getAttribute('index') : geometry.index + var newAttrib = updateAttribute(attrib, data, itemSize, dtype) + if (newAttrib) { + if (isR69) geometry.addAttribute('index', newAttrib) + else geometry.index = newAttrib + } +} + +function setAttribute (geometry, key, data, itemSize, dtype) { + if (typeof itemSize !== 'number') itemSize = 3 + if (typeof dtype !== 'string') dtype = 'float32' + geometry.setAttribute(key, new THREE.BufferAttribute(data, itemSize)); return; // sjpt + if (Array.isArray(data) && + Array.isArray(data[0]) && + data[0].length !== itemSize) { + throw new Error('Nested vertex array has unexpected size; expected ' + + itemSize + ' but found ' + data[0].length) + } + + var attrib = geometry.getAttribute(key) + var newAttrib = updateAttribute(attrib, data, itemSize, dtype) + if (newAttrib) { + geometry.addAttribute(key, newAttrib) + } +} + +function updateAttribute (attrib, data, itemSize, dtype) { + data = data || [] + if (!attrib || rebuildAttribute(attrib, data, itemSize)) { + // create a new array with desired type + data = flatten(data, dtype) + + var needsNewBuffer = attrib && typeof attrib.setArray !== 'function' + if (!attrib || needsNewBuffer) { + // We are on an old version of ThreeJS which can't + // support growing / shrinking buffers, so we need + // to build a new buffer + if (needsNewBuffer && !warned) { + warned = true + console.warn([ + 'A WebGL buffer is being updated with a new size or itemSize, ', + 'however this version of ThreeJS only supports fixed-size buffers.', + '\nThe old buffer may still be kept in memory.\n', + 'To avoid memory leaks, it is recommended that you dispose ', + 'your geometries and create new ones, or update to ThreeJS r82 or newer.\n', + 'See here for discussion:\n', + 'https://github.com/mrdoob/three.js/pull/9631' + ].join('')) + } + + // Build a new attribute + attrib = new THREE.BufferAttribute(data, itemSize); + } + + attrib.itemSize = itemSize + attrib.needsUpdate = true + + // New versions of ThreeJS suggest using setArray + // to change the data. It will use bufferData internally, + // so you can change the array size without any issues + if (typeof attrib.setArray === 'function') { + attrib.setArray(data) + } + + return attrib + } else { + // copy data into the existing array + flatten(data, attrib.array) + attrib.needsUpdate = true + return null + } +} + +// Test whether the attribute needs to be re-created, +// returns false if we can re-use it as-is. +function rebuildAttribute (attrib, data, itemSize) { + if (attrib.itemSize !== itemSize) return true + if (!attrib.array) return true + var attribLength = attrib.array.length + if (Array.isArray(data) && Array.isArray(data[0])) { + // [ [ x, y, z ] ] + return attribLength !== data.length * itemSize + } else { + // [ x, y, z ] + return attribLength !== data.length + } + return false +} + +},{"flatten-vertex-data":29}],40:[function(require,module,exports){ var newline = /\n/ var newlineChar = '\n' var whitespace = /\s/ @@ -7338,7 +7748,7 @@ function monospace(text, start, end, width) { end: start+glyphs } } -},{}],39:[function(require,module,exports){ +},{}],41:[function(require,module,exports){ module.exports = extend var hasOwnProperty = Object.prototype.hasOwnProperty; @@ -7360,4 +7770,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzXFxkYXRndWl2clxcYnV0dG9uLmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXGNoZWNrYm94LmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXGNvbG9ycGlja2VyLmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXGNvbG9ycy5qcyIsIm1vZHVsZXNcXGRhdGd1aXZyXFxkcm9wZG93bi5qcyIsIm1vZHVsZXNcXGRhdGd1aXZyXFxmb2xkZXIuanMiLCJtb2R1bGVzXFxkYXRndWl2clxcZm9udC5qcyIsIm1vZHVsZXNcXGRhdGd1aXZyXFxncmFiLmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXGdyYXBoaWMuanMiLCJtb2R1bGVzXFxkYXRndWl2clxcaW1hZ2VidXR0b24uanMiLCJtb2R1bGVzXFxkYXRndWl2clxcaW1hZ2VidXR0b25ncmlkLmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXGluZGV4LmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXGludGVyYWN0aW9uLmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXGtleWJvYXJkLmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXGxheW91dC5qcyIsIm1vZHVsZXNcXGRhdGd1aXZyXFxwYWxldHRlLmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXHNkZnNoYWRlcl9sb2dkZXB0aC5qcyIsIm1vZHVsZXNcXGRhdGd1aXZyXFxzZGZ0ZXh0LmpzIiwibW9kdWxlc1xcZGF0Z3VpdnJcXHNoYXJlZG1hdGVyaWFscy5qcyIsIm1vZHVsZXNcXGRhdGd1aXZyXFxzbGlkZXIuanMiLCJtb2R1bGVzXFxkYXRndWl2clxcdGV4dGJveC5qcyIsIm1vZHVsZXNcXGRhdGd1aXZyXFx0ZXh0bGFiZWwuanMiLCJtb2R1bGVzXFxkYXRndWl2clxcdXRpbHMuanMiLCJtb2R1bGVzXFx0aGlyZHBhcnR5XFxTdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcs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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqIFxyXG4gKiBGb3Igbm93LCBqdXN0IGdvaW5nIHdpdGggUkdCIHNsaWRlcnMgYXMgSSBzaG91bGRuJ3Qgc3BlbmQgdG9vIGxvbmcgb24gdGhpcyBBVE0sXHJcbiAqIGJ1dCB2ZXJ5IHRlbXB0ZWQgYnkgcHJvc3BlY3Qgb2YgYW4gSFMgc3F1YXJlIHdpdGggViBzbGlkZXIuLi4gXHJcbiAqIG9yIEggc2xpZGVyIGFuZCBTViBzcXVhcmUgd2hpY2ggc2VlbXMgdG8gYmUgd2hhdCBkYXQuZ3VpIHVzZXMuXHJcbiAqIE9yIHNvbWV0aGluZyBmYW5jaWVyIGxpa2UgYSBodWUgY2lyY2xlIGFyb3VuZCBhbiBTViB0cmlhbmdsZSBldGMgZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuLy9zbmlwcGV0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2h1Z2hzay9nbHNsLWhzdjJyZ2IvYmxvYi9tYXN0ZXIvaW5kZXguZ2xzbFxyXG4vLyhub3QgZ29pbmcgdG8gdGhlIGxlbmd0aHMgb2YgZ2xzbGlmeSwganVzdCBjb3B5aW5nIHRoZSBmdW5jdGlvbilcclxuY29uc3QgaHN2MnJnYiA9IGBcclxudmVjMyBoc3YycmdiKHZlYzMgYykge1xyXG4gICAgdmVjNCBLID0gdmVjNCgxLjAsIDIuMCAvIDMuMCwgMS4wIC8gMy4wLCAzLjApO1xyXG4gICAgdmVjMyBwID0gYWJzKGZyYWN0KGMueHh4ICsgSy54eXopICogNi4wIC0gSy53d3cpO1xyXG4gICAgcmV0dXJuIGMueiAqIG1peChLLnh4eCwgY2xhbXAocCAtIEsueHh4LCAwLjAsIDEuMCksIGMueSk7XHJcbn1gO1xyXG5cclxuY29uc3QgVmVydFNoYWRlciA9IGBcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZVdiA9IHV2O1xyXG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4pO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBTVkZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdmVjMyBoc3YgPSB2ZWMzKHNlbGVjdGVkSFNWLngsIHZVdik7XHJcblxyXG4gICAgLy8gZHJhdyBhIGJsYWNrIGNpcmNsZSBhcm91bmQgc2VsZWN0ZWQgU1YuXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIGxlc3MgaG91c2VrZWVwaW5nXHJcbiAgICAvLyBuZWVkIHRvIGtub3cgYXNwZWN0IHJhdGlvIGlmIEkgd2FudCBpdCB0byBiZSBhIHByb3BlciBjaXJjbGUsIHRob3VnaC5cclxuICAgIGZsb2F0IGQgPSBsZW5ndGgoc2VsZWN0ZWRIU1YueXogLSB2VXYpO1xyXG4gICAgaWYgKGQgPCAwLjAxNSAmJiBkID4gMC4wMSkgaHN2LnogPSAwLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKGhzdik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBcclxufVxyXG5gO1xyXG5cclxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNzI0MjE0NC9qYXZhc2NyaXB0LWNvbnZlcnQtaHNiLWhzdi1jb2xvci10by1yZ2ItYWNjdXJhdGVseVxyXG4vL3doeSBub3QgdXNlIFRIUkVFLkNvbG9yIG1ldGhvZHM/XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiBoICBPYmplY3QgPSB7aDp4LCBzOnksIHY6en1cclxuICogT1IgXHJcbiAqIGgsIHMsIHZcclxuKi9cclxuZnVuY3Rpb24gSFNWdG9SR0IoaCwgcywgdikge1xyXG4gICAgdmFyIHIsIGcsIGIsIGksIGYsIHAsIHEsIHQ7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIC8vaGFjayB0byB0YWtlIFRIUkVFLlZlY3RvcjMuLi5cclxuICAgICAgICBpZiAoaC54ICE9PSB1bmRlZmluZWQpIHMgPSBoLnksIHYgPSBoLnosIGggPSBoLng7XHJcbiAgICAgICAgZWxzZSBzID0gaC5zLCB2ID0gaC52LCBoID0gaC5oO1xyXG4gICAgfVxyXG4gICAgaSA9IE1hdGguZmxvb3IoaCAqIDYpO1xyXG4gICAgZiA9IGggKiA2IC0gaTtcclxuICAgIHAgPSB2ICogKDEgLSBzKTtcclxuICAgIHEgPSB2ICogKDEgLSBmICogcyk7XHJcbiAgICB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpO1xyXG4gICAgc3dpdGNoIChpICUgNikge1xyXG4gICAgICAgIGNhc2UgMDogciA9IHYsIGcgPSB0LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxOiByID0gcSwgZyA9IHYsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDI6IHIgPSBwLCBnID0gdiwgYiA9IHQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMzogciA9IHAsIGcgPSBxLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0OiByID0gdCwgZyA9IHAsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDU6IHIgPSB2LCBnID0gcCwgYiA9IHE7IGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByOiByLFxyXG4gICAgICAgIGc6IGcsXHJcbiAgICAgICAgYjogYlxyXG4gICAgfTtcclxufVxyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogciAgT2JqZWN0ID0ge3IsIGcsIGJ9XHJcbiAqIE9SIFxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LCBcclxuICAgICAgICB4OiBoLCB5OiBzLCB6OiB2IC8vc28gdGhhdCB3ZSBjYW4gZG8gVmVjdG9yMy5jb3B5KHRoaXMpXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDb2xvclBpY2tlcigge1xyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lLCAvL211c3QgYmUgYSBUSFJFRS5Db2xvciBmb3Igbm93Li4uIHNob3VsZCByZWZlciB0byBvcmlnaW5hbCBkYXQuZ3VpIHRvIHNlZSB3aGF0IGl0IHRha2VzXHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIIC8gMy5cclxufSA9IHt9KSB7XHJcbiAgICAvLyBtYWtlIHRoZSBtYWluIGdyb3VwIGJlICpkaXJlY3RseSogdGhlIG9uZSByZXR1cm5lZCBieSBjcmVhdGVJbWFnZUJ1dHRvbjtcclxuICAgIC8vIHdlJ2xsIHRha2UgY2FyZSBvZiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIGNoaWxkcmVuIGJhc2VkIG9uIGF0dGFjaGVkLi4uXHJcbiAgICAvLyB3aWxsIHdhbnQgdG8gdGhpbmsgYWJvdXQgbGlzdGVuZXIgZnVuY3Rpb25zIGV0Yy5cclxuICAgIGxldCBmdW5jID0gdG9nZ2xlRGV0YWlsUGFuZWw7XHJcbiAgICBsZXQgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTsgLy9mb3Igbm93LCB0aGlzJ2QgYmV0dGVyIGJlIGEgVEhSRUUuQ29sb3Igb3Igd2UnbGwgZnJlYWsgb3V0LlxyXG4gICAgY29uc3QgYyA9IFJHQnRvSFNWKGNvbG9yKTtcclxuICAgIGNvbnN0IHVuaWZvcm1zID0ge3NlbGVjdGVkSFNWOiB7dmFsdWU6IG5ldyBUSFJFRS5WZWN0b3IzKGMuaCwgYy5zLCBjLnYpfX07XHJcbiAgICBjb25zdCBpbWFnZSA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IGNvbG9yfSk7XHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgY29uc3QgY2hhbmdlQ29sb3JPbkhvdmVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICBsaXN0ZW46IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgLy9UT0RPIG1ha2Ugc3VyZSBjb2xvciBwYXRjaCBvY2N1cGllcyBmdWxsIHdpZHRoLiAgQWRkIHRleHQgbGFiZWwgd2l0aCBoZXggdmFsdWU/XHJcbiAgICBjb25zdCBncm91cCA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgICB0ZXh0Q3JlYXRvciwgZnVuYywgaW1hZ2UsIHByb3BlcnR5TmFtZSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGNoYW5nZUNvbG9yT25Ib3ZlclxyXG4gICAgfSk7XHJcbiAgICBncm91cC5ndWlUeXBlID0gXCJDb2xvclBpY2tlclwiO1xyXG4gICAgXHJcbiAgICB2YXIgcGFuZWw7XHJcblxyXG4gICAgZnVuY3Rpb24gY2hhbmdlRm4oKSB7XHJcbiAgICAgICAgaW1hZ2UuY29sb3Iuc2V0KGNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTsgXHJcbiAgICAgICAgICAgIHBhbmVsLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmIChmYW5jeVBhbmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBTVk1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBTVkZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0U1YgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnkgPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS56ID0gcC5sb2NhbFBvaW50Lnk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS5jb3B5KFJHQnRvSFNWKGNvbG9yKSk7XHJcbiAgICB9XHJcbiAgICBncm91cC5saXN0ZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xPUiA9IDB4MkZBMUQ2O1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0NPTE9SID0gMHg0M2I1ZWE7XHJcbmV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9DT0xPUiA9IDB4MDdBQkY3O1xyXG5leHBvcnQgY29uc3QgRU1JU1NJVkVfQ09MT1IgPSAweDIyMjIyMjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9FTUlTU0lWRV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgT1VUTElORV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQUNLID0gMHgwNjA2MDY7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPTERFUl9CQUNLID0gMHgxMDEwMTA7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQkFDSyA9IDB4MzEzMTMxO1xyXG5leHBvcnQgY29uc3QgSU5BQ1RJVkVfQ09MT1IgPSAweDE2MTgyOTtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfU0xJREVSID0gMHgyZmExZDY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0NIRUNLQk9YID0gMHg4MDY3ODc7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0JVVFRPTiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9URVhUID0gMHgxZWQzNmY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RST1BET1dOID0gMHhmZmYwMDA7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fRkdfQ09MT1IgPSAweDAwMDAwMDtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fQ09MT1IgPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ISUdITElHSFRfQ09MT1IgPSAweGZhMzE3MztcclxuZXhwb3J0IGNvbnN0IFNMSURFUl9CRyA9IDB4NDQ0NDQ0O1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9CRyA9IDB4RjBGMEYwO1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9ISUdITElHSFRfQkcgPSAweEZGRkZGRjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xvcml6ZUdlb21ldHJ5KCBnZW9tZXRyeSwgY29sb3IgKXtcclxuICBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICB9KTtcclxuICBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXgobSk7XHJcbiAgICBtLnNldFBvc2l0aW9uKG5ldyBUSFJFRS5WZWN0b3IzKCkpO1xyXG4gICAgY29uc3QgdCA9IG5ldyBUSFJFRS5WZWN0b3IzKExheW91dC5GT0xERVJfV0lEVEgsIDAsIDApLmFwcGx5TWF0cml4NChtKTtcclxuICAgIGdyb3VwLnBvc2l0aW9uLmFkZCh0KTtcclxuICAgIFxyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vZGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gdG9wRm9sZGVyLnBhcmVudCB0aGVuIGF0dGFjaCB0byB0b3BGb2xkZXIub2xkUGFyZW50IHdoaWxlIG1haW50YWluaW5nIG1hdHJpeFdvcmxkXHJcbiAgICAgIC8vLi4uYWN0dWFsbHksIChtYXliZSkgd2Ugd2FudCB0byBkbyB0aGlzIHNjZW5lU2hpZnQgYnVzaW5lc3Mgd2hlbiBiZWluZ01vdmVkIGZpbmlzaGVzLi4uXHJcbiAgICAgIC8vIHB1dCB0aGluZ3MgaW50byBzZW1pRGV0YWNoZWQsIHNvIHRoYXQgd2hlbiBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgdGhleSBjYW4gYmUgc2hpZnRlZC5cclxuICAgICAgLy9vciBtYXliZSB3aGF0IHdlIHJlYWxseSB3YW50IGlzIHRvIGhhdmUgYW4gb3B0aW9uIHRvICdwaW4nIHBhbmVscyB0b2dldGhlciBhbmQgdW5waW4gdGhlbSwgcmF0aGVyIHRoYW4gYXNzdW1lXHJcbiAgICAgIC8vYXR0YWNobWVudCBjaGFuZ2VzIHdoZW4gYnV0dG9uIHJlbGVhc2VkLiAgRm9yIG5vdywgdGhpcyBpcyBub3QgcXVpdGUgd29ya2luZyByaWdodCwgc28uLi5cclxuICAgICAgY29uc3QgZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vd2UgY291bGQganVzdCBkZXRhY2gsIGxlYXZpbmcgdGhlIG9iamVjdCBhcyBkaXJlY3QgZGVzY2VuZGVudCBvZiBzY2VuZSwgYnV0IHRoZXJlIG1heSBiZSByZWFsIHJlYXNvbnMgdG8gc2l0dWF0ZVxyXG4gICAgICAvL3RoZSBHVUkgd2l0aGluIGhpZXJhcmNoeSBzb21laG93IChsaWtlIGFzIGNoaWxkcmVuIG9mIGEgY29udHJvbGxlcilcclxuICAgICAgXHJcbiAgICAgIGlmIChkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZykge1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLm9sZFBhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7Ly9YWFg6IGhhY2sgYmVjYXVzZSB0b3BGb2xkZXIub2xkUGFyZW50IHdhcyBiZWluZyB1bmRlZmluZWQgYmVmb3JlIGJlaW5nTW92ZWQgPSBmYWxzZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkID0gZ3JvdXA7XHJcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gdG9wRm9sZGVyLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgXHJcbiAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBcclxuICAgIGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gdG9wRm9sZGVyLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljOyAvL1RPRE86IHJldmlzZSBob3cgdG8gcGFzcyB0aGlzIGluZm9cclxuICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKDAuNSk7XHJcbiAgICBncm91cC5vcGVuKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgLy9hbGEgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNleGFtcGxlcy91dGlscy9TY2VuZVV0aWxzXHJcbiAgZnVuY3Rpb24gc2NlbmVEZXRhY2goY2hpbGQsIHBhcmVudCwgc2NlbmUpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KHBhcmVudC5tYXRyaXhXb3JsZCk7XHJcbiAgICBwYXJlbnQucmVtb3ZlKGNoaWxkKTtcclxuICAgIHNjZW5lLmFkZChjaGlsZClcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBwYXJlbnQpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLmdldEludmVyc2UocGFyZW50Lm1hdHJpeFdvcmxkKSApO1xyXG5cdFx0c2NlbmUucmVtb3ZlKGNoaWxkKTtcclxuXHRcdHBhcmVudC5hZGQoY2hpbGQpOyAgIFxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCkge1xyXG4gICAgbGV0IG5vZGUgPSBvbGRQYXJlbnQ7XHJcbiAgICB3aGlsZSAobm9kZS5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIGNvbnN0IHNjZW5lID0gbm9kZTtcclxuICAgIFxyXG4gICAgc2NlbmVEZXRhY2goY2hpbGQsIG9sZFBhcmVudCwgc2NlbmUpO1xyXG4gICAgc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBuZXdQYXJlbnQpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZGV0YWNoRnJvbVBhcmVudCA9IGdyb3VwLmRldGFjaDtcclxuICBcclxuICBncm91cC5yZWF0dGFjaCA9ICgpID0+IHtcclxuICAgIGlmICghZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0IHdpdGggdmFyaW91cyBjb21iaW5hdGlvbnMgb2Ygd3JhcHBpbmcgZXRjLlxyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQuYWRkRm9sZGVyKGdyb3VwKTsgLy8gdGhpcyB3aWxsIGFsc28gZGVhbCB3aXRoIGNvc21ldGljcyAoaGlkZUdyYWJiZXIgZXRjKVxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpO1xyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vbWF5YmUgd2UgY291bGQgZG8gdGhpcyBraW5kIG9mIHN0dWZmIGluIF9zZXREZXRhY2hlZEZyb21cclxuICAgICAgLy9pbiBhbnkgY2FzZSwgaXQncyBpcnJlbGV2YW50IGlmIFxyXG4gICAgICBsZXQgc2VtaXMgPSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHNlbWlzLmluZGV4T2YoZ3JvdXApO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgLy9ncm91cC5kZXRhY2hlZFBhcmVudCA9IG51bGw7XHJcbiAgICBncm91cC5fc2V0RGV0YWNoZWRGcm9tKG51bGwpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBncm91cC5hZGRDb250cm9sbGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgZ3JvdXAuYWRkRm9sZGVyKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgfVxyXG4gICAgICAvL1hYWDogaGFja2luZyBpbiBzb21lIHVuaXZlcnNhbCB0b29sdGlwIHN1cHBvcnRcclxuICAgICAgaWYgKG9iai5zZXRUb29sVGlwKSByZXR1cm47IC8vYnV0IG5vdCBpZiBhIG1vcmUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gYWxyZWFkeSBleGlzdHMgKHNlZSBkcm9wZG93bi4uLilcclxuICAgICAgb2JqLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAgICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAgICAgY29uc3QgdGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IHRpcE9iajtcclxuICAgICAgICAvL2Fzc29jaWF0ZSBldmVudCB3aXRoIGhvdmVyIG9uIGFwcHJvcHJpYXRlIGhpdHNjYW4uLi5cclxuXHJcbiAgICAgICAgaWYgKG9iai5pbnRlcmFjdGlvbikge1xyXG4gICAgICAgICAgLy9UT0RPOiBldmVudHMub2ZmKCkgaWYgcmVwbGFjaW5nIG9sZCB0b29sdGlwIChvciBub3QgcmVwZWF0aW5nIG9uKCkpLlxyXG4gICAgICAgICAgb2JqLmludGVyYWN0aW9uLmV2ZW50cy5vbigndGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgLy9kb24ndCBqdXN0IHNldCB2aXNpYmlsaXR5OyBhZGQvcmVtb3ZlIGFzIHRoZXNlIGFyZSBraWxsaW5nIGZyYW1lcmF0ZSBpbiBsYXJnZSBWUiBndWlzLlxyXG4gICAgICAgICAgICAvL1JFVklFVy4uLiBjb25zaWRlcmluZyBtYWtpbmcgdG9vbHRpcHMgd29yayB3aGVuIGhvdmVyaW5nIG9uIGxhYmVsIGFzIHdlbGwsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBvZiBjb3Vyc2UgdGhpcyB3b3VsZCBtZWFuIGNoYW5naW5nIG1vcmUgYWJvdXQgdGhlIGludGVyYWN0aW9uIHNldHVwLFxyXG4gICAgICAgICAgICAvLyBhbmQgaGF2aW5nIG1vcmUgb2JqZWN0cyB0byB0ZXN0IGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgICAgICAgICAgLy8gTGVhdmluZyBmb3Igbm93LCBpZiB3b3JraW5nIG1vcmUgb24gdGhlIGxpYnJhcnksIGhvcGVmdWxseSBmaXggaG92ZXIgZXZlbnQgZXRjLlxyXG4gICAgICAgICAgICBpZiAob2JqLnZpc2libGUpIHNldFZpc2liaWxpdHkob2JqLCB0aXBPYmosIG9iai5pbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBjYW4ndCBjcmVhdGUgdG9vbHRpcCBmb3IgJHtvYmouZ3VpVHlwZX0gYmVjYXVzZSB0aGVyZSdzIG5vIG9iai5pbnRlcmFjdGlvbiBwcm9wZXJ0eS4uLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgb2JqLmdldFRvb2xUaXAgPSAoKSA9PiBvYmoudXNlckRhdGEudGlwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmFkZEZvbGRlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uIChvYmopIHtcclxuICAgICAgLy9UT0RPIGlmIG9iaiBpcyBzdHJpbmcsIG1ha2UgYSBuZXcgZ3VpIGFuZCBhZGQgLyByZXR1cm4gaXQuLi4gYnV0IHdoYXQgYWJvdXQgdmFyYXJncz9cclxuICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIG9iai5tYXRyaXguaWRlbnRpdHkoKTtcclxuICAgICAgb2JqLnNjYWxlLnNldCgxLDEsMSk7XHJcbiAgICAgIG9iai5wb3NpdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBvYmoucm90YXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgXHJcbiAgICAgIG9iai5oaWRlR3JhYmJlcigpO1xyXG4gICAgICBvYmouY2xvc2UoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5wcm9tb3RlWk9yZGVyID0gKCkgPT4ge1xyXG4gICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXAgfHwgIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkbid0IGJlIGEgJ3B1YmxpYyBtZXRob2QnIChidXQgbWF5YmUgdGhlcmUgc2hvdWxkIGJlIGEgd2VsbC1kZWZpbmVkIHB1YmxpYyBpbnRlcmZhY2UpLlxyXG4gICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiBpbmNvbnNpc3RlbmN5IGluIGZvbGRlciBob3VzZWtlZXBpbmdgKTtcclxuICAgIH1cclxuICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBwcm9tb3RpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgLy90aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBvYmplY3QgeiBiZWluZyBkaWZmZXJlbnQgZnJvbSB3aGVuIG1vdXNlSW50ZXJzZWN0aW9uIGhpdCBpdCBlYXJsaWVyIGluIHVwZGF0ZS5cclxuICAgIC8vbW91c2VJbnRlcnNlY3Rpb24gd2lsbCB0aGVuIGxhdGVyIGJlIHVzZWQgaW4gaGFuZGxlVGljayBvZiBncmFiIGludGVyYWN0aW9uLCB0byBmdXJ0aGVyIG11dGF0ZSBwb3NpdGlvblxyXG4gICAgLy9zZWVtcyBvayB0aG91Z2ggKGFzIG9mIDA0LzEyLzE4KVxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICAvL2dyb3VwLnVzZXJEYXRhLm9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCA9ICBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQ7XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1MYXlvdXQoKXtcclxuICAgIHBlcmZvcm1IZWFkZXJMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgY29uc3Qgd3JhcE5lc3RlZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICAvL3N0YXJ0aW5nIHdob2xlIG5ldyBsYXlvdXQgb2YgdG9wRm9sZGVyP1xyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgaWYgKHRvcEZvbGRlci5tb2RhbEVkaXRvciAmJiB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCkgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgXHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gLXRvcEZvbGRlci5wb3NpdGlvbi55O1xyXG4gICAgICAvL0kgY291bGQgdW5kZWZpbmUgdGhlc2UgYXQgdGhlIGVuZCwgYnV0IHRoZXJlJ3Mgbm8gcG9pbnQuXHJcblxyXG4gICAgICBpZiAoIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYGFkZGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2tlZXAgY291bnRpbmcgY29sdW1uSGVpZ2h0IChjdXJyZW50IHkpICYgaW5kZXggZnJvbSBwYXJlbnQgZm9sZGVyLlxyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9UT0RPOiBtYWtlIHN1cmUgdG8gdGVzdCB3aXRoIGRlZXAgbmVzdGluZy5cclxuICAgICAgXHJcbiAgICAgIGlmICh0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHJlbW92aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBjb25zdCBzcGFjaW5nUGVyQ29udHJvbGxlciA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIGNvbnN0IGVtcHR5Rm9sZGVyU3BhY2UgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgdmFyIHRvdGFsU3BhY2luZyA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYykgPT4geyBjLnZpc2libGUgPSAhc3RhdGUuY29sbGFwc2VkIH0gKTtcclxuICAgIC8vY2hpbGRyZW4gc2hvdWxkIGJlIG9yZGVyZWQgYnkgZ3VpSW5kZXguXHJcbiAgICAvL2lmIHRoZXkgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSwgaXQgY2FuIGJlIGFkZGVkIGhlcmU6XHJcbiAgICAvL3RoaXMgc2hvdWxkIGJlIHRoZSBvbmx5IHBsYWNlIHRoYXQgd2UgbmVlZCB0byBjb25zaWRlciB0aGF0IHByb3BlcnR5XHJcbiAgICAvL2l0IGFsbG93cyBmb3IgZGV0YWNoaW5nIGVsZW1lbnRzIGFuZCByZWF0dGFjaGluZyBpbiBzaW1pbGFyIHBsYWNlLCBldmVuIGlmIHNvbWUgc2libGluZ3MgYXJlIGFsc28gZGV0YWNoZWQuXHJcbiAgICBsZXQgbGFzdEd1aUluZGV4ID0gMDtcclxuICAgIC8vdHJ5IHRvIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgdGhhdCBjbGllbnQgcHJvZ3JhbSBtYXkgYXR0ZW1wdCB0byByZXN0b3JlIGl0ZW1zIFxyXG4gICAgLy9yZW1lbWJlcmluZyBkZXRhY2hlZFBhcmVudCBidXQgbm90IGd1aUluZGV4PyBOb2lzZS4uLlxyXG4gICAgLy9jb25zdCBkZXRhY2hlZENoaWxkcmVuID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKGYgPT4gZi5kZXRhY2hlZFBhcmVudCA9PT0gdGhpcyk7XHJcbiAgICAvL2NvbGxhcHNlR3JvdXAuY2hpbGRyZW4uY29uY2F0KGRldGFjaGVkQ2hpbGRyZW4pLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKGMuZ3VpSW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGMuZ3VpSW5kZXggPSBsYXN0R3VpSW5kZXgrPTE7XHJcbiAgICAgIH0gZWxzZSBsYXN0R3VpSW5kZXggPSBjLmd1aUluZGV4O1xyXG4gICAgfSk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLnNvcnQoKGEsIGIpID0+IHsgcmV0dXJuIGEuZ3VpSW5kZXggLSBiLmd1aUluZGV4IH0pO1xyXG5cclxuICAgIGlmICggc3RhdGUuY29sbGFwc2VkICkge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IE1hdGguUEkgKiAwLjU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IDA7XHJcblxyXG4gICAgICB2YXIgeSA9IDAsIGxhc3RIZWlnaHQgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCBmdW5jdGlvbiggY2hpbGQsIGluZGV4ICl7XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICBjaGlsZC51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZiAtIHk7IC8vZXhjZXB0ICd5JyB3aWxsIGJlIHdyb25nLi4uXHJcbiAgICAgICAgICBjaGlsZC5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggIXdyYXBOZXN0ZWQgKSB7XHJcbiAgICAgICAgICAvL09yaWdpbmFsIGxheW91dCBhbGdvcml0aG1cclxuICAgICAgICAgIHZhciBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIC8vIGhvdyBmYXIgdG8gZ2V0IGZyb20gdGhlIG1pZGRsZSBvZiBwcmV2aW91cyB0byBtaWRkbGUgb2YgdGhpcyBjaGlsZD9cclxuICAgICAgICAgIC8vIGhhbGYgb2YgdGhlIGhlaWdodCBvZiBwcmV2aW91cyBwbHVzIGhhbGYgaGVpZ2h0IG9mIHRoaXMuXHJcbiAgICAgICAgICAvLyBpZiB3ZSd2ZSB3cmFwcGVkIHRvIGEgbmV3IGNvbHVtbiByZWNlbnRseSwgaG93IGlzIHRoaXMgYWZmZWN0ZWQ/XHJcbiAgICAgICAgICAvLyBzcGFjaW5nIHByb3BlcnR5IHNob3VsZCB0aGVuIGJlIHNwYWNpbmcgKndpdGhpbiBjdXJyZW50IGNvbHVtbiosIHNvIHRoZSB3YXkgd2UgdHJhY2sgdG90YWxTcGFjaW5nIHNob3VsZCByZWZsZWN0IHRoYXQuXHJcbiAgICAgICAgICB2YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgaWYgKGluZGV4IDwgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pXHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gIFxyXG4gICAgICAgICAgaWYgKChpbmRleCsxKSAlIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID09PSAwKSB5ID0gMDtcclxuICBcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vbmV3IGxheW91dCBhbGdvcml0aG0gV0lQLCBzaG91bGQgYWxsb3cgZm9yIG5lc3RlZCBmb2xkZXJzIHRvIHdyYXAgdG8gdGhlIHRvcCBvZiBhIG5ldyBjb2x1bW4sIHdpdGggYWxsIGZvbGRlcnNcclxuICAgICAgICAgIC8vaW4gaGllcmFyY2h5IHVzaW5nIHNhbWUgY29sdW1uIGxheW91dFxyXG4gICAgICAgICAgY29uc3QgbWF4Q29sSGVpZ2h0ID0gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gKiBzcGFjaW5nUGVyQ29udHJvbGxlcjsgLy9NQVhfRk9MREVSX0lURU1TIGlzIHNsaWdodCBtaXNub21lclxyXG4gICAgICAgICAgY29uc3QgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBjb25zdCBjaGlsZERpZFdyYXAgPSBjaGlsZC5pc0ZvbGRlciAmJiBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL21vdmUgdG8gYSBuZXcgY29sdW1uP1xyXG4gICAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA+IG1heENvbEhlaWdodCkge1xyXG4gICAgICAgICAgICAvL1RPRE86IG1heWJlIGFkZCBhbiBleHRyYSBoZWFkZXIgdGhpbmcgdG8gYWxsb3cgZm9sZGluZyBuZXN0ZWQgZm9sZGVyP1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCsrOyBcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gaDtcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nID0gMDsgLy9oIHdpbGwgYmUgYWRkZWQgbGF0ZXJcclxuICAgICAgICAgICAgbGFzdEhlaWdodCA9IDA7IC8vPz8/PyB3aGF0IHNob3VsZCB0aGlzIGJlPyAgT3JpZ2luYWwgYWxnb3JpdGhtIGl0J3MgJ2VtcHR5Rm9sZGVyU3BhY2UnXHJcbiAgICAgICAgICAgIC8vY2hlY2sgbG9naWMgb2YgdGhpcyBXUlQgZGVlcGVyIG5lc3RpbmcgKHNob3VsZCBiZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0b3BGb2xkZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlIHBhcmVudClcclxuICAgICAgICAgICAgLy93aGF0IEkgc2hvdWxkIGRvIGlzIHVzZSBhY2N1bW11bGF0aW9uIG9mIGFsbCBmb2xkZXIgbGV2ZWxzICsgb25lIHBhcmVudCBhYm92ZS5cclxuICAgICAgICAgICAgLy95ID0gLWdyb3VwLnBvc2l0aW9uLnk7XHJcbiAgICAgICAgICAgIHkgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ICs9IGg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy92YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgICAgICAgICBsZXQgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcblxyXG5cclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC4uLi5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgLy9YWFg6IHRoaXMgbG9naWMgZG9lc24ndCB3b3JrIGZvciBjb2x1bW4gd3JhcHBpbmcsIChiZWNhdXNlIG9mIGhvdyBzcGFjaW5nIGlzIGNvbXB1dGVkIGFib3ZlPylcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG5cclxuICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL25iIGZvciBuZXN0ZWQsIGNvbnNpZGVyIGRpZmZlcmVuY2UgYmV0d2VlbiBncm91cCAmIHBhcmVudFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy9pZiAoY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCkgbGFzdEhlaWdodCA9IDA7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2hpbGQudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gdG90YWxTcGFjaW5nO1xyXG4gICAgXHJcbiAgICAvLyBpZiB3ZSdyZSBhIHN1YmZvbGRlciwgdXNlIGEgc21hbGxlciBwYW5lbFxyXG4gICAgbGV0IHBhbmVsV2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXApIHtcclxuICAgICAgcGFuZWxXaWR0aCA9IExheW91dC5TVUJGT0xERVJfV0lEVEg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIExheW91dC5yZXNpemVQYW5lbChwYW5lbCwgcGFuZWxXaWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoKTtcclxuXHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtSGVhZGVyTGF5b3V0KCkge1xyXG4gICAgbGV0IGR4ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICBsZXQgeCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBoZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGlmICghYy52aXNpYmxlKSByZXR1cm47XHJcbiAgICAgIHggLT0gZHggKiAwLjg7XHJcbiAgICAgIGMucG9zaXRpb24ueCA9IHg7XHJcbiAgICAgIHggLT0gZHggKiAwLjM7IC8vVE9ETzogZGVoYWNraWZ5XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZ3JhYkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9UT0RPOiBtb3JlIGNvbnNpc3RlbnQgaG92ZXIgc3R5bGluZ1xyXG4gICAgaWYgKCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ob3ZlcmluZygpICkge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4ODg4ODg4ICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSBncm91cC5vcGVuKCk7XHJcbiAgICBlbHNlIGdyb3VwLmNsb3NlKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcblxyXG4gIGdyb3VwLm9wZW4gPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICghc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCAmJiBncm91cC5mb2xkZXIuYWNjb3JkaW9uKSB7XHJcbiAgICAgIGdyb3VwLmZvbGRlci5ndWlDaGlsZHJlbi5maWx0ZXIoYz0+Yy5pc0ZvbGRlciAmJiBjICE9PSBncm91cCkuZm9yRWFjaChjPT5jLmNsb3NlKCkpO1xyXG4gICAgfVxyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICBhZGRJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmNsb3NlID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSB0cnVlO1xyXG4gICAgcmVtb3ZlSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsOiBncmFiYmVyIH0gKTtcclxuICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAvL25iOiBpZiB0aGUgY29udHJvbCBpcyBub3QgdmlzaWJsZSAvIGFjdGl2ZSwgdGhlbiBpdCB3b24ndCBpbnRlcmZlcmUuLi4gICAgXHJcbiAgICAvL2J1dCBcImlmICghaXNEZXRhY2hhYmxlKVwiIGhlcmUgY2F1c2VzIHByb2JsZW1zLlxyXG4gICAgXHJcbiAgICAvL2hlYWRlckl0ZW1zIHNob3VsZCBub3cgaGF2ZSB0aGVpciBvd24gdXBkYXRlQ29udHJvbCBhbmQgYmUgaW4gZ2xvYmFsQ29udHJvbGxlcnMgbGlzdFxyXG4gICAgLy9oZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKG8gPT4gby5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKSk7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgLy8nZ3JhYlJlbGVhc2VkJyBpcyBlbWl0dGVkIG9uIGlucHV0LmV2ZW50cy4uLiB1c2VkIGZvciBvcnRobyBtb3VzZSBmaXhGb2xkZXJQb3NpdGlvblxyXG4gIFxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBfYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG4gIC8vZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwsIGdyYWJiZXIsIGRldGFjaEJ1dHRvbiBdO1xyXG4gIFxyXG4gIC8vLy8vRVhQRVJJTUVOVEFMIEZFQVRVUkUsIENVUlJFTlRMWSBIQVJEQ09ERUQgTk9UIFRPIEhBUFBFTlxyXG4gIC8vc3ViLWZvbGRlcnMgdGhhdCBhcmUgZGV0YWNoZWQgd2hpbGUgbW92aW5nIHJlbWFpbiBhdHRhY2hlZCB0byBwYXJlbnQgb2JqZWN0ICh0aGUgY29udHJvbGxlciB0aGF0J3MgbW92aW5nIHRoZW0pXHJcbiAgLy8mIGtlcHQgaW4gc2VtaURldGFjaGVkIHVudGlsIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCBhdCB3aGljaCBwb2ludCB0aGV5IHNoaWZ0IGF0dGFjaG1lbnQgdG8gb2xkUGFyZW50XHJcbiAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGdyb3VwLCB7XHJcbiAgICBoaXRzY2FuOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIC8vZG9uJ3QgbmVlZCB0byBmaWx0ZXIgdmlzaWJsZSBoZXJlLCB0aGlzJ2xsIGJlIGRvbmUgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKClcclxuICAgICAgICAvLyhpbXBsZW1lbnRhdGlvbiBub3RlIDMxLzcvMTk7IC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIGhlcmUgYmVpbmcgcmVtb3ZlZCBhcyBlYWNoIGhlYWRlckl0ZW1cclxuICAgICAgICAvL3Nob3VsZCBub3cgYmUgY2xvc2VyIHRvICdmdWxseSBmbGVkZ2VkJyBjb250cm9sbGVyKVxyXG4gICAgICAgIGxldCBoaXRzID0gWyBwYW5lbCwgZ3JhYmJlciBdO1xyXG4gICAgICAgIGlmIChncm91cC5tb2RhbEVkaXRvcikgaGl0cyA9IGhpdHMuY29uY2F0KC4uLmdyb3VwLm1vZGFsRWRpdG9yLmhpdHNjYW4pO1xyXG4gICAgICAgIHJldHVybiBoaXRzO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYmVpbmdNb3ZlZDoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gX2JlaW5nTW92ZWQ7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldDogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgX2JlaW5nTW92ZWQgPSB2YWx1ZTtcclxuICAgICAgICBpZiAoIV9iZWluZ01vdmVkKSB7XHJcbiAgICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSBncm91cC5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBncm91cC51c2VyRGF0YS5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICAgICAgICAgIC8vYXNzZXJ0aW9uLi4uIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAoYW5kIGRvZXNuJ3QgQUZBSUNUKS5cclxuICAgICAgICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSG91c2VrZWVwaW5nIHByb2JsZW0gaW4gZGF0LkdVSVZSLi4uXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQuZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIC8vYXMgd2VsbCBhcyB0aGlzIGN1cnJlbnRseSBlbmRpbmcgdXAgd2l0aCB3cm9uZyB0cmFuc2Zvcm0sIEkgYWxzbyBoYXZlIHdyb25nIHRyYW5zZm9ybSBpZiBJIGRyYWcgZm9sZGVyIHdoaWxlIHNlbWlEZWF0Y2hlZC4uLlxyXG4gICAgICAgICAgICAvLyoqYWx0aG91Z2ggaW4gdGhhdCBjYXNlLCBpdCBzaGlmdHMgYmFjayB0byB3aGVyZSBpdCBzaG91bGQgYmUgd2hlbiBidXR0b24gaXMgcmVsZWFzZWQqKlxyXG4gICAgICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZm9yIChsZXQgayBpbiBhZGRDb250cm9sbGVyRnVuY3MpIHtcclxuICAgIGdyb3VwW2tdID0gKC4uLmFyZ3MpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbGxlciA9IGFkZENvbnRyb2xsZXJGdW5jc1trXSguLi5hcmdzKTtcclxuICAgICAgaWYgKCBjb250cm9sbGVyICl7XHJcbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggY29udHJvbGxlciApO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sbGVyO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2UoKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBRUFDQU1BQUFEeVRqNVZBQUFBalZCTVZFVkhjRXovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8rdW1BYzdBQUFBTDNSU1RsTUFXbkpmYm5xRFdHUjRhMlpjWW5CUmFsUkxnSDZFVG5SOFVHaDJSb1pEWGxhSFNZbzhRSFUyTHlZY0ZBd0ZtbVVSMU9JQUFKRmhTVVJCVkhoZXRMMkpXbXU3ampVS0lRa2tRTHFadmdNQ1pPMnpULzMzL1IvdlNrTkRrajJUck9hclZkNVY2eERQM3BKbFdkS1E3cWFQYjYrdnJ3OHZqK1BaL3Z2cnh6Ly8vUGo2M3MvRzcvY1AybjAvWFo2T3A2WDhmSkhmYUcvM2o5cTVYL0xLdC90M3YvUWZ1ZlFrL1hvdWJvbHovRHE1TEg3eTFuTFZsOXhlSDRiMjhqaWRuY1p5L1pNMFArV2ZmLzd6bi8vOCsrOS8vc0c1VXp0YXYzSDFpbkpJWGtsZThRdm4zK09ST1Ayb2o1T1BtejdldittNVBEREZ5WGFuL1V3ZXdCZDgxMjRaRG4ybzNlVEJCbUNLQXpaUWZqWTc1V1gvL1krL0tqNkxuNzcvL3VGM3IyNHZIeWZQNWFlOWNSUnNhSDVJLzQ4dmVRcVA1S2g5WDl6ODZ3dm4rd2poWmZtWWpUem15QmZsU09CejVWMWxYTzhlSDU0bXc4bnpLOGRUSHNuUGVwYnVwd2Z0MVZ1K1BzbHZhWlB0czczRmFXeFhicC9pVWp4L0k5U1VjM0hMcVoyRGhudFZQMEVSZk43OXE5MTgrL1QydUZsTzhldzhCVytxdzRSejVSWmJPVHA1ZnNKaitkVHFGWi9sbFRBcXVMYytFbThqQS80ZEEvUzg5Yzk1a2hFaDhaVFltOGUzcCswUVY5eFA1ZjVmUWpVOFZMdWVKM2l0ZTlDVDlMZXpuNUlEK0twOHRCM0VtT2ZkZWZzbDU4MFBZMVdNRGthQk5GWHFINVZqZVNTRzVIalJkVHpxK2VBTWpQK0VMOHZIeUNTekZ6VzZMRTk2UHJqdjd1VnBNdXAwdWx1TXA3SXB1V1hiN1hRNnd5Y1p0dGtVYjkzdG9JMjY5ckhMS2E4Y2JwMFVuTTJ2VHhNOXQvdjg4SWh6ZU4zazZTVi80dGJ5WnNlOWZkNFFmZDJKdk83bThlRzVXNTd5RFJiQXJNSzV1RHZlR0NUOVFiN0lWK3phR003Mnh4UHVQY0xwU3M4ajU5bnpwQnVmTTN4MjRuSGF2dG9EaG5JUDZTWFY4TjY0YURRa1BUbFJ0bmIyczk5RTM5UmZkUmlmcnJ3a25idzdiby9KaFhsTHdlbFBtY2lUeDdQVC9sdjdUN1BaNWhIamxrUHl0WmZSajV1RFJyT1RuQTltdlg5NHhrQjBoM3l2eDgxSkJ3SXZxdjE0VXpuLytLMHZleWVqZmU0TlZ1Q0FEY1htT3o1cjE5dDE5Zkt4dnBuOEhQUzA3VllqKzlqSE43bFNmbmZpMGgrY3pjUE9lZEFiZElTYTcyOVBjZzdhdWZ2MGxqL3Qxc3Y5YWJaVTNwekl3NlN0OVB2R01rYWRRWndpQTNIa1BQbmU0OXlSbmp0WWthUkNOdkJRdnVKZ3h6RThZY0J4NzRFTkhjWVpwNjc0T1lOemh4d2Q0dUZwdU5Lbmo3WVBrQXpIazc0UkhyclM5OXAxSnZaZ09RRDZyN1FUQk1XOHhTSjZQUEZWNDlPWHhnQzh1MXlnaEpOUnMxVnd0akg2NzNENlJLZlVjcmJYL3ZGMEtoK3g3ZTZLVVpPNzZ5eXhtMk1jcGxPY2I4dzZ4RUNjT3p0N1dRNkVkT3NuRDhEWk9CL3k1MDVIdTVselBGMXN2c29jSE16N0lPSVlYSHNlekp2K1l0SHZONzBkYmlFVGRUdmFOZjI4VkhuSDJIN1hhL3FnNXJzd3lXNitrRGFYZDMvTG40MTl5bkk4ZlgvWHp6djMrb3VtWUFENWlWUHdwaWVUbERJWHgvaHVPZGh2UUZJYjFwTk5rWE52M3RkWGxLK1JNUVM5T2VEOXhaeERSL29MelpxK2ZjNTZjRmFPQnZIMkpoNkdxL1dpUHhodGpTOU9Td3dlYnJLVEo5aGJ6bkEySnNxZ1dmVFh1MUdzV0pqUUdFUjhWditTQWVRQ0VnN2ZCcjY3Ri9wekdEQWI3NFVGMEM5TlBucWxkMXJqSzlDUGdWajNGeGlIQnoxSit2ZkhtVEhyV2orczE1T1hCUVZQZXpKQW80UlFtZkh5OG1pYUd4aWcxeHprUHJqMzdPaEVITXpsTGVYbTkzaVd2dlNIak5maThJR1BsWGRYQnRBN05zSUJ5aENuYnhWQWVQNjhmK2l2a3dIa3NvK0NBVDRPL2I1UlYrZmIyeHVlMW56b21PaDl5UUFmT09WTlZVNTVVeFd0eWwrUURzS0U4eURwdDhwRDhKQy80b2VPSWI3bXRNU0FydzhmZk41c3pIbldnUGlOOHJSek5JYkpoSjFjSWN6Zm5VRFNnV2VFQVJhZi9ZRzg1Z0VmUnJINmdJbXlhR1NrTWE3djFBMHdvZjJ6ZHZVU0FESi9jTUNubTVuekhRNDBpL2xCQnhTYVZTak5JSWNNcWJ4bzlHdW5UcWE1eWhKcFVLQ1Y0OEdzQjNDM1BHVUVDZUN5cWlmdm8yT0Q4NDFkN3g0dy9RNXp6cWdUbHBlSjNydHYwczRHdlRrY2xLZGs1SEVMK1NMd3hXQzlPQWhQZ2MyTzhpVXE1RmY2ZlhxdE1NK0wvaFJXckJoZ0Fja2xuNjlEKy9UOGpLZlpRSWxPV3pLQU5LanB5NzFKU2g2Yjc0UUpuQUZNN09IakZvM2NlZDBzRGcxRlBzZWo2YS94UENvdU94MmdlVzhnVGM5MmpsN2lSaEFQd2dEeWlyWk9ZM2xSV3NwanordSt5aW5UckhCejBMK0gxNWNuWUJwQU54Qk5UR2RDeWdhc3JuZ0NYc0FJOTNDdmVnRDFhZjBFb1VNRERvQWFFNXFlVEhhUWVqaXMrbTNjenQxUW9JUGpHL2t3NWUyenZSUVZhMmM5UFo4cTFBOVZBbkg3TldUU2VBYStoaXhhNzZEdlFIamd3bFZIbHM2NVVwd0szclpyUEk3Um5tRUZlbEFTSDVSSFZLNVM1N2xnQUNwR0dHOXBjb0lPbFB5bHN5Z1pRSnJxOUZEb3ZyK1NBWVRPL1pBQUx2Ym1oOE1jcnlpdnRGQ0N2K21NaDJ3WURIYkdFUDV0TWtBNzFlbEduYk5LT2dvTW41K05TSkhEb2xsam5aNUNxSzFXSzJHWGppeXVnL09xZ3lmN1lEY3l6THQ1STVOdGEycWRiNkw0V1IwWmEyZ1R3cXBVVmpzcW85ZXJMamRmTXlySHUwYnVJbHpRekhkVWlGMzUwenRwWjZmVnIrdTBQRGo2Wi9aT3ZmWDZEQjNuUERKTkl4VHJYZHhJcUEydXZGTWlLQmtiSXlNbUNUcTR1a3lOQVNERWg1TXVTQU1GQ1YvWlBhOFBDd2hGYkRiR1dCZjZJaXpCM2xPVnVOdkpKUVBZb0lCdzU5MXVwK082VzhrZnE2N2NPQmdBUGE0VXE0NEpYVlpYbUw1T1JGdFp2NmtSVTZ4aUlpMzhGWFhwZzBacFFzdk81QndiZFlTcW5hN09JcmtRSXVDZGt1VFExNVdrVHpIRklSV2VHc3JGOGdkSXZlSFNzS1BtT2RBSkJMWHV0REVsK2t5dFdiOEFPZ1kxa0ZCV3p4MjdaQm5Lc1k3QWVSY0tjZlRyQUEwNnE4dCtaY3RkOUUrNXhLMTJ2ZlY4UG9jUWc3U2lZcjN1c2ExN1NtMm9zbmNRNWFrbmJjQXNaeE1KV0FPVEFXVEtUR1RaZDJZZm04SzhPRGdEeEF6bGtqdGRZbnQrbFFHRXFHUXRlZFBkU05wQS9vRE80dmNZNkNGUjk2blF3ZnhoT3E2UWd3b0RWbEM3N2VHZ1F1eEpDZDQvVUgrZFVYejE3ZkdtUTY0eDVYR1h0WkJIRDRNLzlQQVdONUtuNmxwbmZFRTk4cUMvWktBZ0FKVUJxRTY0NXJrZWRFeXRvMG9pckdKYTgxelhOdWdZcDF1WHVITGMweEh1ZGtVSHRVbFY5TXNBRFcvMGo5aFBEbGNaTmhmK3BSQlRRVHgyeFRwYk1vQytyczk0MThGRy9HbkxxRjM4MlY4UGREN3FqTFdWaGFPYkRMQnZNWUJxME95NVpBQmpMVDJHTlVUSlJKM0Y3OUgwRC9vUkxwK1B0c3VsQ0pCZURHcXNPNzRVNmQ1RUtGc3hnT3VnSmc4YVdkeTZLb1VYaDRWc1lrUUVjRkhEdTVyOEdoVnJtL2J5bDdMSFltMnlSL3VoVGh4TTg1eFRqdzdka0ZyendkWEE1YzFMaW5GNWZ0Sk55TUhHdEpTWTIrMnYrNmRjNGhwNWFOUGdDVHVvZG1PblliUmtnTk00MW0zY2cvTFV4K1Iwc25tQnp4R2hvanpRdFRsWk1RQ3NhWnRweFFDUUNiY1pZT1l6VG9VTnA3QmU1aSs3MEkvNENJVnUvNVhTL2hQVDhEVVlZS3NzYTNzZUZSRXJhWHFuTmdOQXhLc0E2SXgwQWpYelJ2K1crMUZienJlWGFSU2p5dkhSUnhvalFMMGRVM0xLSUVQejFPTTJaVEFJT21DaE5aT0hiMTVTanN2TDAxVkNQejM4dXAvRVV4MElLdTVhbnJTR3VJb3Y2M21UQ1VJRzJGTnZjTjFPQmdrclFJL1Rla2EyYlQ1VXFLanlmT2FXdDJDQUx0VDNwVnFCLzRBQnNQWnh4UjdsakNNRHlFZklXZ21GanZvMWFJMzE2ZU9UNTlhS2h5MGd6ME5xdWNtamZMeVJVbjlnelJ2c2VtUUE0NTFrZ0JFa1VwK2ptaXFHWE1ZVkFOWVJHMnVaRTUyemJyRDRvazVtVVE2aE5jZGFjdk9TV3d6d3AvMVREby91NlVZamxUVTVwdnl5RGh1bGxUREFjUlpIOFdVY0pKY1JNTDdoZS9xUXliclY0cTRwR0FEcW9jb0FIZnp1N3pQQXJKQ3VIUGlTRFBvUjUxNXVaby9IdUtCWkpGc2tBMEExVVNiVVJ2MjZaZ0NzYmlMRFJRQ29aSUhCcHlQWHVzV0RyNk9LbStsZGJwa2lmNnE0b3ZhSllVbk5NMTcwUGs4L1EydkduOUF4Ymw3eXR4Z2d4MU8wNlMxMlJyWWZlaTlrR3h0Y0FudlpCbklBNVRMTW9NZjhnVkczU1ljN3lYd1VtZm1CMjdzT1FGS2RZUTE4MTZteTJxMXA5L3NsQThUcUl5Unh0Yk95QTJ6NU9UUytnaG1IbUlVWU91dXRKY0FqbkVYNHdQc0xDVUJWQ095bVQ0UEJSMlpLd3pmQzY2ak1YZzhHSzUxRFhibkx1RkNMT1REMFdQRFY1U1NvRnB3MDFEdE5pWHA5bG9lNGNMMTF5ZDlqQVBuaDI3UlhYUnRpTHVhWUp2MGhBSVFCVW9taURpNmppZkhkNmdRcjJVTU42TEp5K1pRTTdVQk1SUGdPMDdHVk9KVFB2MkFBcmo0NEdrcGNaUW5NMDRQVXBxN28vL01aeVFCNGYyeVIzUXZTWWdEOUFYbHZpb0RlU3EwTnpnQmNRcW51RE1UcEFSOWlzYzFNM1FnUGRZM2doWlFOS2dUUk1VVjhORzllOHRjWWdJL0dUSEtORm8rdWxvQjBFcWtwV0RRcjQwd3lRSzNHVlF3Z0ZpbXNYRzVobGpVY0F5YTZSaktBTWtpUFJxWGp6eG5nV0t3QnpyZVA0NXNNUUJ0bGl4S24xaTRBYXJCN1FhNHh3TUpFZVgrZ0RLQlBHUTJDQWVnRVVVTlFPRDJXWm4zQUFLMFhsT2JMM0RIb1N6c1Z6T1AxbkJxa1hKbnF5YzFML2hJRHNKOWNWYW5HdFJLWVRpSmhnQy9zbzI4eHdCN0RpNmV0ZFFNd3pCUEhWTW5VcnRva0Eram1kMDRkODFjTWNFcnBHaXZBOGlZRHFCMDFaREczcmVDTFVyUStnS05jcTd2TkFCOG0rL1dBRUlXYXZXelRuK0VHbFMyOE9UM0F4MnA5c00xNVBuVmNLVTR2K1pTYW1oQlpUb1ZibC94bEJtQi9MZGZyYmFCVDhQaExDYkJQODc1S3hkMHFGK1V4QmdHLzFRTkxYVVpXQ1NNRlBDTy9ZSUEwNHMzbmxJelROZ09rUGtxVGI2Mk5tVW1XbTRtQlNMYXRXeFIrTGdIMERKa2dLa2ZrZkpBVjBRdXdySFRPTUFUNUtwUEtUc3FkMnVMQnAxeCtaRTJGK3BLL3p3Qy9ldlRuZ3EzTkFPMVRCMjd1M2NDUmlHMXRYNldpOE1DNkhsMGo3Z2hlQTFqQXV1ajVyVjJBcVBXaE11T01iV3RvSjhPUzM1YUZqb05iY29MR1FxS0dkN0h3Y3M5K1RRY0FIV01KT0dNaEdZVWhDQUpHYmF2aUpGZ05hSmNRaFQ5MWp3V05KY3VhQVc1UDU1c004SDh2QWVDdXY3VUVEQW9HT0czOFZQVEdrbzhGK1ZTNCtMRXl3bis2cWtZWDR3VExQM3dndjc4TlBPYkdYaG9OYkx5Q3pxZmRXaWMyWHFYY00zVElHQ1NHM2FRUDdWM21iajhPdFJrQXpDM1hxenlmaTVFQjZpZFlRb2Z2M1pZd0hZZEpOMTk2R1Z2aHoxZ0I4SmFwM2hWNjMxdDdJVTc5OU5vbGY1c0JicXNmVkFKWCtLL1REU1dRTkFyRnYrSlplSmdSc1FjSFE5T0hDV1lITS95bEpWQzlvSzkveEFCcDJqUC9VVEcwbitLeE0yTVdYYm1GeHFodG5hYUFjR0IvTE13Q3FxOUk0VkF4QUZmaytRN21HRmtLeFJ3OG4vZTUyRThMWlhJeUxCamdGT1p5MEl1Ym8zSjhPZkMzVlhIdzhNMUwvaFlEM042QUpGMkdhRzRHa0cwZzNkb2h0NTJCZlpkbC9oZTBzL0pBTEkyenRpOUFsb3R4VzRQNCtUWVFFVnF2VysxTHBUN3Mxb2MrRGVhbUcxQVpDVTNtRU5OeHBpSkFoSlJHQW54QWYyZDB4bWxUTXdCbUNIYUE2dlBWOCtCWVhGUGRUNXV2T2s3blBqMlhjaGZ1Mm5Mdm1Wc1ArZmlIVjVlMlA5Mk0zN2drQ2FvSFhwKzZKT2lmOTk4MlFSUjBlVUpqQUlrd3dNbDFYR3B1Ym12aDlPSUNnU0E1YzUvNzFtVzVzVSs5N1EwY3o0UUNOeG5nWFE5ckxMYzluZHVyd3FFMGQyOE43b1U1Qi9vczJEQ1N1Q1lpRWRleW5LL1hZYXlHYmJwZ2dQUnppQjhWL3RnZC9vY2huVTQ2OVhuSVFoTG1ac1RaaG9jTSsxdmJPcDBaRHZPOHhZckJvemZOY1Rjdk1mTTdOSmNKcnZpd0JlUlArNmVYUmtpT2F5RUIyTGFNNHJwRHpNUW9sZTEwRHByQmwyYVdoUXF1TFp6dEhFMGhIbWhYTWNCanJpWnFhc0xZWFdjQU9NTGxZVS9QcGw5eE5oZE1SSDh0WGFZa1R5b3k4bURYRzhVaVlWYm9IY0pnM0FIUDFTc1lnUDVlNWZWZEo2SjhPeVBHZnRIcklhdk9BUUttejFDbk1lSnNsVjZ4Nk1UYVJidXhPQTlUOHpSQjRnYjVjeHJrYjE2U24zYVc5NUlyUGttTVArMkhNcFJ1aUxXN0lhNzVBaGphZWpkK3RMdTVmODNmM3dRVmZtL0pWU1BSanMraHVHQjBzVm93R0tGMnpDSG15TWJ1Q2dOMGgwcFZJUWlITmxhQWtnSGcxUnRwMElSSklzNGZmZ1IxSzdBZTBRaGQ0Um5lU3AyVFhMM2MwYVVHZkpyNjFFbXZOOThOTks2QWNlRWVVYXVxenVjaVZnWVZkSWo3S0ZhQUwxb2w1WDFjODhSWTQyakxKYWZ1TEJ2YW01ZEVTSk13dDRSdDZLVXdpdjF4dnp5NmRFVDJQYWdsdllGci9nZWFnUUUwV3BBRWgyQmZwcHdjSVR5WkF5OFhEeVFVQU80NXhnU3ExQTB4QmdaWXVsSS90NG5Mc2J0Z0FBa0Mwb2Y1MEpMZGFEbW94ZFVrM0RycGx0ZldEZEVxM0NFY0FPNFhpalpPN0ZPc1htNlltQzdEVlM4c3NKWTJiL0R5aGd4aFREMk1BQi96WEJuc3JlY2lYSHpqcVpnQU1GTnFub2REMkQvSDk5ZWQ4c3VibDFoUTR3QkJyZFI3d0h0LzJyKzhGWXJnZXRVaW1rdnRyenVoUHdPQ1J0U283c2tSK25aUUNzRFFJaEtiK1p3TytnbGRaN3QwYVk1UGlNL2x5WDBMTXVYWXpWc01JRDBoK2xZNjRZUm9aS0tLQVJDOUN1aFpGZmVGS0ZncVY0eEgzVlA0ekJ0d2N1VWtXQnpvbkVESUhJTjFGdEFsWU1QVU93ajlpYW9ScVNZMFF2eVRPWlRJQU9vSDVUQ2ZORDZ4clhuT1piaE04MnlGNWZROUxHZDI4eEtMSVJMVGd4THRZS0ZDZVBZZjlzK3VCaU5sUkZEUmtnR01aUTROZVV2WDB3eWNnK1N5OE4rNStvTHgydEpOcWNLUWVNcmhiNDRLZUxQeWNrZ3JHVUJhVXpEQUFVUEx4YldsU0w2ODNDTjAyczJWSHFubUQyOVpGSFlOSkhmdEp1ejNiYVpsZURRbXVjeCtqVGlUSTR6WkpaenZTWi9UekpYOUFLd2pBelROMmhBUTBKMHJESXp3ODFvUE1uaHhaa2dhQnVaSkhCVUQ4MDQzTHdHd0FUYm8zbHFhQndzdS83aS9IWTY0QXYxVjhtRzJscTNqUzRDTzVEeUJDc0FXS0JFQkZqQzFrQTlUZ2RuTWlTS2EwaXd6NzVHL2lmUER5U3RSeDR2OVRTTU5ESkEvQ3dhUXdWZ251TVFaSUlURWVLUGdDVEtBdnptMUhXbHBVV0NYakFheFcrUUo2UG5jRmpKZ2Q2aklJRFJ4YjNnNHZ3TTBiVm1DMUg0MHFySG5EQXlVUVRxSmdveGJpVElHWWdhOFJFWmgxR0ZVcTlBZkVNMmJseEJqS0FkVTdjRVZXUGYrdFA4WUFja2pVL1M2REVqZVFQUlVEV3VQTTBEaUdpVEVLa1JZdy9tRmgra1cwSWFNT0VJZmwwNFhLeVVqOSszTjlBdlBxcFg0MkhGQWk1OHI1UWVMdVBaN0FzWnE0UWt5ZmFnbUNGY0xLb1NMUzc0NUE2TWp1aGtub010MStqMkJaRjNpR2NHakhyS3ZNZkxkaURvSDkwcVROZXhrUWxRYWdUdEhteEI2dXFJSURVMkJ0ZzhjTEc4RW5LNE1vRU5WL1FBbGlTQVlibDVpaEhzeXdDcXVBSjMvdUQrL1Q0NEF1SXNIRUg5YnRXZENLKzh3ajN1SmJJS0NhekFscXBiMnNHTElRaXZiNm04aXFJNFZzTGpiQlhmam5CSCt3NEMyZmhxa1QxcGdmYWxkb1JNYkJRQUNBaFlhaUliNjE0bXJqNHdJNEw1R09ldkNkejliWExiMENXZ0g2T0NuWjdRbjRrNzJjbXl2RGNCSUhJUk1SUS9XQldtQmcvN211YndWYndUWVBHOGlaQkRzamgzUkp3ajlyMThDK2hPUXJ3ZTA0WjBVTUNMdFd2L1B6dmZ2UTNzQWxKK2lCMzNaSG9qb3ZjT2tYSEhucktQOUhRZ3B6TUhISlY3aUxZY01jQmFPbFA0MlNVbDRNamdBZUIvY2tLUEpBYTEvSW4wQUJvTWNyR1Q0eGhJYUpNREFIYjlLUUR5b29GSTJmK25UOSt3eWlzNEFseVZVbm4wbmE3T2w1Z2Q0ZVh1UVpzaXpwZlF0Wi9LUHRCaytWZzVCOTBRSExJSGE4MktaRUw2UGZ1cVN0NUptdWdyNmwvcnZSZy9neUwxY2hlNk5QdVRVdW1RRDlLdE8zZVgwWFE1b3d6dkptWnZOV0k3WC9XTzk0TXI1ZUU4NXVwbmhDWExrWHRyN1ZIN0xVQWpqYVYvWnlFby83ckFva2Y2bkk0aklSV3pvY3hCY2xVTm1nTFlqUndvb1JtbjZXcmlZK1JjdzVrdU9wZzlvK1ZNSnQrUmczSXMwc0xFVHdMaDM2aFhvU3dEbGkvd0hLaEEyaVYveTJlRHlwWDJqcWcxamc4dHEyZ2p0c2hGYXlwazhKUCs4VzV0dTlNQlVPOUVsNTIybVBJSWU5TE1CVVl1eHh4SDlkOHBiUVZmQjBEL3kzdjRRL2ZmUm43YWN5ZFYrd1BxSTZ6MGFaMnJEQU0vNFl6cldmbXZ2NkFCYWx1ZjdBWDEvSEFXakN5dE1kWHdlMzIwc3h0Ykh3WkNSbHhib1lDeEtYSXd3QmI4aTMwTE9RZHd5aDh5ZzZ4d3BQY0J2TXc3UWNTaEhJSzZiK1NYeDVTY09ocExFUDA2ZUhrUEhDM1hZZzVpUWFnNmNMbm80Z3ZqOTZMMmdPcVlOMkNNUFlVWnVsbVFTblVka09wSFdNOHhXdVVCN3JOKzRYREgxa0w3V3AvK3FlRGR4Y0RwUlVyem9WTkVEMm8vRlFINmkwMFFJTVBIeVVPM0JpZThnNlJITE45cTlyYnY0R3hKdU5yTWJvVU5mMGRZaDdSK0hISGpoUEpPanVCcExBT2NFK3lnMHdTVjc1Z2ZZVFBVN01DUXhrWmx4NVkxaWNFTzVoZ2FSUlVwTEh5N25kTVgrQ0MrR2swUFVQVTU1SFM3aHdOb3plU3I2OU9OQVNuYkNVVURSc1U5eGJyeXF0eHBIRCtEOXVkSTlJSW1NS2RnaTg3bVVZb0hJVyt5dGdkZGY5WHdzYUEvMzVjcXZQVmlPNERxeDJZR0JSQjh2NERwMVdtSXU4UXBxSFhFeTlBRkdZcG9tZ010VFI3QTE5WGtyRGZOT2xHbjhNQ1F5YjRRT1puMzVhbXNDT1A4SnFxdmNTcFVmaGRhK01VOU01Z2paRWxIRERDRTJYNmNiemswaTFpbm0xTVU3elFtOE54bkJkRFJ5VmlwSWVHblRCRTFINGxMT29kRDFIVnR0NE9NNEdsQy8vVngwY1NIU1RteVpjdFJPQmpPVXRyWDdBWUpuS3A3Q0VLV0h1cTZuY3RsUzhUOUt3LzRmbHo4am9Rc1BmWnUrdzNHWlFORTNteWFzZ3FiTDZncUpRY09vTTlrSyt2d0M2RTdtTng5cUYzWVJlQVpPdHA4VFUydlRjTDExcmRwSUNqZm9jM2VFV0dUcXkvcjMxbTBhdUpIMHhCTy9uYjI0RjVqWVVYbXNHZk4wRzRpaE1JTlc1QWdocHU2TE9ZSk1vNWx4dXIzb3ErRG0xajF6d2ZOR0JVaW96NHd0cGl6RUZva21FdWtGVFMxcEE3NXdRcjhUR0dNV21yOXZ3TzA3MEplcWlNNG5qcWNCS0RPNUNvRjJEc0d6cEMxdjhDUDZibmZZamR3cCtseW1jckJVTVR4RXFCRVI0YnFkSGlsT3RVT0ROUDBJWjkzOFk2OUxJS0xaS2JiV0p6dllzNGZYQm01UkR1Z205bXpQd01uNGlidkRndWFmWnZ2cWM0ZE1STFE1MFFnSWM1Ty9hZFdrZlVXd0NtRjI0Ymc5aHpWZ0pFZUpjdlZicVlsZzFMRXJJa2ZJcWt0enB0TC8zenVRcFpodTVBQ2J4cGc1ejYwWi9vOXlEbFAyOEtOOTA1NnNZK1NCd2NPc3RYc3VEY2ljY2lZU0dBS1J0b016VGlVSFdJWU5qaWRleWxNTkFKYWl3VDYwZTJ1UDNvblllTXVMc2hxZzk5VmgrWGJ1RG1ZaU9XUVJKdGhPRXhHdWJrYzFTVEdTREhFS0NqS2NpMTFSVUtzWU5Nd0FHaVNrYjdBNjkrUXcvY05IangxdTVucEYwNE9YQWlmYnovTzZZYXlzZlJvdGEzTjVjT0dOWHEzN1ZXb045MnRzM0J5cnR3L2ZLKzJCQTdoTkJ5dUdOZ1ZvQWJIdDhoeTdnc0VDN3RDd2RFYi8vdmRPUlRrdFZKUm9SbWpZT3RJczRobGtzRzZRL3A0SFp5N04wZnFod2hsQVNvN3duV1pVRHBFNXhmckJHTHBuTnV0aFk0RWNXT0pOdEhSMFBBZG1TVFZuZXI5UFdNcFVGd0RFS3ZibmhEQXMvWlQxdWJRUzYyZVFEbW9VSHF3WEhxN0NMU3ZTbjZpRHNHRW9qYm14WHdsY1pWUUZWcUk2RUNDeElET1RXSGtGRE5sQzFjeFFBdCs4SXpqaGRCUlhnVFRZMG1HN25GNEorbkVHb09HOVAyODhRR3F2WDVVZUFYRXZ5VmZRZ2MyekVSc2poKzBLRDI1UGwrWVBMQUZHU0o5dUdPd3c2K0JyTVkwcHZXUUs0Q29rN1FON0JBek9vRURmdVltenZDWUx1SGxlZFBES2hEQk1OT01JY3REL3NFQzAyWk11UTVEbVNJQUJYeHJNeGpacTdyV3d0REQ0ellRTjRiWFJCQ0tmQ1lDV2QvSjQ4ajY4WitSV0xGTWVqaURPdVFYeVdrQUZNenRUeFFBME9Ya1FmWnNCb0FIQWhZSXI5QmtUdnJYOXhCRU1mZmhzNlYzcjB4TjJtd0VZZlZlblJqbUYzK1dqYi9rTTNGdTFNUVpZeTczbEdRdlBwV0Y1VkFwUUhVVEFIUlAxY2JwUkhDSGIxWThJR0c3MHdNUnpnVEVWSWpOU1JYb2ZrMHVwKzAwaXJ3a1ZPV3AvS2pLc0g0aFM2SDlkT0ovY0EybUR3VHdheGdIdWZ0Wkx3VHFJb2tGMm8vQWpNRHhjQk1sS0JFTTRxYi9pTXhaejlkRHBFZUplcVduQkZONHpQNUtwWUxRN0YwdkFpa2JuRzBzQXZjUFN0UmI4eEU0ZFBhczBmdU9uSHNISkhyV2hlUHVkUmoxU3FQME9Bd3g2d1FDZXlZTlJBWE5FVDlwUTZDUGdFV29XbnpJNXFkbTRRejFHaGd4d1BMV21HMkdqS1FHVWVmM2VleklBTXZZbzJETFMrMkJ2a1liY0xoRzRIVnRBaW9Rd1o4dVFRelVRNTQrUWFRZi93TGZ3R05KY0phVWx4L0pGZ1FzZGw3bW01eG51VEpVY25RZHNPcWpZSGpvRGFGYUp5REFIb3JtbUJiVkJWQ2hjNjlIY09KVktZT0YyZ29iTnZrRW9nZjZJc3AwSlNGYStrSi9DUkJEMVZSQTc4aFNRSkQ5akFManpkSHlhUHZFemlaUkcrTFJHdXB1cm5JbGl0b2prbHNDNUJVTmVaMVVlQU9qZjJBYjZDZ2xDNm1ESENtRkNuc21sbERJVUhFemJtWDQ3NWtGeXJEWjFQK2dHZ3c1MFhYQzRKNFJCLzg3VlFId0dodE9TclZBVFp4S1VIWTZBQVpoNHpiSHRqNGtCZ3grQk82NlZ6QVdOOTZTWEVvR1BQajBsR2x3bmM2ZGJTM05relJucUhvb3FHQmtBZWdTMmdTcDNuQUc0RFJ5Wnk5dTNnUzVrRHRrWWg1cHhVeDNMSjBvOEpLZ2w4akFEM0c4ekFOUWtLSUZOcy9ZUExtTVBrWG1zYjZFNnhpK21VQjRhQ0JnTFkxaTJVajlBbW9NQnl1bldKeGlDaVQ4eHE1aEd6T0Zrc1Fjd1hoWnllcGF0WXpBRkJocXF3MWtHM2RRMEpvVEoxa3NjUXRIdy9YVHQ2WUdCSjhqa0dCUFhWUDFRRDJrRVNlam9VN2V5M1RzWDZLR0c0U0x5emZVNWp2SW5aSENrMnFqeEhFK3ZiVENMQjlGOUFwcGlTck16Z0R6WFcwWk81ZzJZWURPaW1SNHdpUjJCY3BNQnFPNmZCNUE2Wk9DTWtCa0JRTE1RclNMd01GaWNlem9Ob0szQXFaY29ITVpaNzVNQmNycGxYc3NmcWdSRVlyMzFPc0VrLzBBRkNMQjI2cFhmc1N6SUJFRFdMd3VPVzVkZ3FHajlaSUIrOWpMRUZGcVlIRkNFQ2cwM05ZSXBmM0F6UVlYa2NOQm9yNllQTlpPN2R4anBpRC9JbDAwR3NOaThZdmpMbTdmUlRBRlFPZVNIbC9DcUFSdTM4SnRXWGh5ZXlHdEJSQ2ZjVFFZZ2I4dFhxV3pqRWxhQUFMQVFOd0VDR0h0dTE1NjJpRzZlVmVtZnpEWURCcGlWMHkwejIxb09XNC9GYXlyVlFRNGxXUHR6RVRMRkZjTmUzMmFWTDFLUTZtU0FKbG95Z0p3KzkyWU1vSzY5U1B0ZzZhbC95Z0FlM0x6UURIQ3JNM1VyR2ljc05nU1NQSlhnZ2dFK3NYLzZQUWJZWjVhS2pCSStsdmk2RVpvYjhaWXRNTVNtaG13UnZmRnpCZ2gxZjZGck9wWFlBb0hVaFFrZ01DZHUzSmdqRlZWR1JKYllPajBOdEtRUytJUUVXR0JMVERmTGU4MjhYSEdJcWdNWUlNSGEvUVRxYWk4SmdUVURBb0REbEJnTk5vc1ppZXdPMFV0clNSeGcwdDc5VHhrZ1AwN0lEdDBxbzhZcm9qSGV2VndDRm1UWDMySUFINUVLSzF3eHdHVExCdDIwelFEanEyaXhaSURGNHBJQk1sWG4ya0tBNjd3eXVpbVJ6aHdONW5ZOUlEUzA3d0ltTVk0cHVZUUJWSmJEN0tWem1mcUJIZUkwcnc4bGF5UllPeUtLVDk5dVEyVk9VZ29BTERuSkFCWVRRaU54MHJuTE5pUU9KQTZRaWo5bEFCeU1YSEdpZVhPTVFiU0FPQi9teGRjbkF6QkErL2NZZ0NQQ0xCV0VzNVF2bDhnTE5aejhJUVAwcEYweUFIaGJkN3lyY3dqNnZLK09zb2pUQlBRRnd5QVhsVWRnd2gvRVlVaGEzbUV1T3lURzlBTjNGZHc4QkJVd3dkcjl6Tm5GVEc1T2VHcXBlRnFKMG1JVFdWTk9kTytGd0c4endQZlBHU0FrSzhoTHZRdERXYWNXS2I2K29BMzBsTkh2TU1DK2tLT1pNYW9TVDJ4MEgxeGRBZ1kzQU1NMHExOWxBTjFZZG14RVd3elE2Y0UrbUF3QVRpSzhOamxHMXNuYUZHRFFzSzhDb3F2L2w2NkNIN2NQUVd6RXBxSkpiWWplc2lFcGI0S1lEb3BrZ0NFYWRsRGpTZ0trNytoUEdZQ1lKSzZDTHdUTXVTc2xOV1orZllzMlBkTVlmb01CVG5YR29JQ201TXZWeUl0TEJ2QVQ4ZHZmSzVlQXBybGNBcUFEcmxhbTFOVU1vQys4bTZ1OUpjVktzYytZRE1zeGpKZFBrZjBsT2tCaUxoSjBqN1RuTnc5UkJTU0s5SnhBWFFibmhZV0NBL3RVcCt4YldUUHJjcVVEaE8vb2p4bmdFcTZkZUtDU2FHVm1pYVFObE1kQjU5Y01VQUZVeWcvM2x6dTBrUmR0QnVCYXhUMDdZSmw4MGR2YndQYzNBdlNSNjVORGtyc0FTM1dhWDE5dVlxc3hMR2R0NUFyMjdSeDZ3MVdBT09uYmh5RHBYWnJ3eVc1NHhWTTRScllKbmRRSnU5WnM5bGJ0WFFESDZZOFo0SGI2amFXdFZwR096dmZGQlFOd3Mvb2JERkNNQ0liY1Zjb0xPOEJOQm9ENWtSRFJKL2pTZkswaUExeVZBSVpaeE4wNUpDblY0QVFLMUdiRkFJUnF1aDVWQVVFSkREbVdxVUtUcGVGR3ZYVUlndjR0OUlueWhoUUI5QkdwVUtJNXhobmc4OERXcnhqZ2cyM3hmOEFBbVlpbVNraTVMR2hqRU03ZllJQVVmQ3FUODE3NWN0NDYxNWNBNUp2eGZmSVFPemlxVjdjWklGREw1UklRbHNBNU5vYWR6R0w3bm9zTUxnd2wwRGQxcGNpKzIrdmlURDdodjV6TFh6Y1BjWGZnaWVGZDJub3BIVStXYWdaUm9tbENBdlM5MVJLZ1lmdGZNVUNkZmlNTXFabnFVRnArZlVFYnl5c3orQ1VEK0loOE1rdEZmSGkrWElXOHVHUUFLcVEwV01pNjN1aDcvZHdaWkRMREVvenV5QUFKMnV3cmJsY1R3YnN2SUhRQTBiYm91YWF2RmxTb1BVTElEeENwQkVoUmh1cmNQbFNxVlRLbVpBNW95UlFjbVZKbGFJQ1RYQUlHYkx0YUIyQ2plKzF2S29IVG1DdG93Y2tGYmJyWXVLNS96UUFjRVlkWmZzUzk4cElDZWJFNXRSbUFma1BicGNtTW5zdi9jcEJ1NmdDWnM2UGJ6VjNBMkhHWUFnV0dOekJRbXRPdzBPNlkxaTlCelJjZUljOFBnTk9VYUdrK09kNCtWSUMxclgza0hvRWlBSXNiNWhvbVFqQUE1REFhWXJZS09zTTZZT21tTnFlL3VBMTB5MDBzTTUvOCtwSTJ5REhVWERMQXNQWUZjRVJ5cWY5d2xiTFV2TmdRWU5wbUFJZmVLWVQzc0ZDVTZCd1l3WjlMQUU3RGxTS3BDM3ZmRmpRZ1JqaFFtaHg5N2FIaEtFSE5GeDZodTJJdWF5djRaWC96VUtxQTJlSXBySXlTWDQzSXZKSUJ1bHRyK3RFbG5iVTlJMFR5SnhMZ3p3MUJFUXJUc0lYY0xtaGpTOWJjR1NBMWRRRlpGV2xnMjFrcVVxVXNlTWFiQVhiYkRLQkdTNXIyeVVKelloZC9wUU1zMU1teFdIQ3o1dzZmaFVjRUJVclR6UEhrTUxtcUFqVkhGaEdLN0x1WXl4eWR6TTU5dW4wb1djTmJ2VWU0K0dvOCtSZUdJS1crUlRZTHk5eGtnRDgzQlNjYnMvVTlJMVh4bHFhMUh1aUxncVpPVjdzdnIzaE83aWM3YURrck1nR1FOK1A5aTZHSVdENnI2cUpwc0JwemVQOXFGM0Q0QUJpY2tnMGpoM0luamhGVytyY3FWdlNKSFkrSVhTZHFLRnQzRjNNNWRqYXoyNGRLdFFxdE1nWDhrZ0hZV3FaZ2ExMDZVZjZRQWJEVnUrb01DamJtZ3lPcDZGdVZwaDI1WXo0L3lRQlVsUllJdHNsVVpXV1dpb20wOE92bTNtc2REVVM5WklERVQ0NUdxT0tqZFFQd2tiK3lBOHdialhOWXU3OE1BNlNCSm80Ujl2S2xwMlVCRWsvcytEZERQTUxnQ0ZMZWVRN3pPVnV4czdsOWlBTUU1WUJWbjFLdi9DVURvTG5OcDFBQ2QvS2ZOSHZFSHpMQWFYUExIWnhFUTNBYU42aFlzTXEzdEJCR1o0Q3N2R0hMSzhQU01DSjBwNkdjR3o4ODMrZmo0SzI1d1FCZkFlRlZuTUp3Skk5aHlvV2JVY0VJaHBJZ2RPaklaL3JMOEk1SyttNWdoSW5TUFFhSHNUU3FsNGlqZDRlUi9LWnMzWG5Wamw3TTVVaUlmZnNRZDVNSHJ1ZlFpekxTNkJjTUVBMEhxMjFnWmhMNFV3YllMMjhGaEtSbGZEVFJpc3BGREU2WkVzOU1GNTV2alFoNUxxOWVlNGVDajFFenpGSlJocWcxL1d3MUF4UkZXbGhYOEFYMXExR21ib0FZajl1NEFNdTFCVmpJeUdnSFpaKzFNYWgwRWdGcmNKZmtNRUNKdkM2MDJmQ0pBTEFheUhlTWJ1a1BMdWJ5OVBZaHFsWFFnQjhlVXNSaURmZ0ZBM2pqUVFhRVpLc1o0T09DQVJZbEEyVFcyK3NoWWJIWGF4cVgxUHlWbVRYWFNIWnY2NncwTUVDRVZPVHl5cjBlZzlJb0pqSkV6ZlBNWnJQWXZRZzhEQUZKL0tSaEZSODA5WUlsd3ZvSk1nZzEwQWtWQzlwdEZCWUVERnlCS2RhMmR4QThrZEhBTFNQTkFxSzhpQUVpdjl3VjFKTkd1dEtnZFBNUXJDNGVKR0lSVWxGTXJHQ0FwcmxnZ0NyNEt4aGdYalptWitRQmovb3Zrb1NreUMyeTNtWnVDcXdqa2JnaTF6d1FyZjcxNGdXR3RsbHNDT3RHSnZuZzhncThCSk5RZU1FVmlBbitpa3pUMlZoWmlhUWthb3RlTmtYVkxjY0tpUVVlRUVMNko5aEFCYW9RVngxd3k1bmlOMGw1YlVEQWJnd0p1MDhPVTc3QTRTWHdQc1EybzBrWE1vU01CcFRmYittYlFMam16dzV0UjFFK0RFc0ZmNEZVbDVyR2tlNWpkR1Z6UXE3cVh1Z0FHeit3cWxQejVZRHpCdytuYm9YUmpzUVZSb0NRbTVudWd5S2ROZGhmSHZOdkt6cGJwdUFnQnBSSktMemdpb2lKL0tVL1FMRnNWaXN1U2ZsNnowQUw0aWRQUU1YY094NzROam9ZVU5rcDRkOEVvMCt6YllEaTA1dlpLYUFzT095ZGdHaEhDSDk5RWR0TUlMUXlBR000TFdNbGRMc0k0cng5eUNPOHdlUVpDWjdKb25MVW4wQWUyMzg4U2V4dC9tY0hBWHFMUnRLb2R5VU9iTzJ1bVNTRUF4NC9jTmgxSzBwS0Z0K2xTa3o4S2dUQ2ZmN0MyaW9OQUlYNEd3RXhUUEpScE9EWUtMMlloRUk2eUNRUC9ncy82dllTK1g4OFF3SnhGV0FCVEVhZG5KNFJBSEliVGVkcjVnY0FrYVhIRWtBczBhYkVoQ01YQnJLUEhJRnp6dWNlNC9XNEVrU2FJZzRIUzZaTDdlQ2NaK05xMWozZVBqUjlKQ1lZVVM5Zy92amxFTnBTMDlEbVFPSnNXMDh4WG5jemJhTWZnSGdNeEhZTWYvVkR4NVc2bGExdlRGd2gvVXhrNGNCWHJvRDhwUU5KS1ZvT3Fnenp5Y2lSS1RnNC9DbFhnWFY3ajErUXVYV2JjaWJ5QU9MYUNLMnplRXU5SEUydVJ3b2haQmJ4SHNzUWttL0ZCZDZSMThHc0t0bVp0dzdNYjdCb0FyZFZQaGxpR3ZMSGRPVmh6ck1qYWdmN1BLdG4zZnZ0UTg1c1dJekFlbS84WlN0TmpycXRWbWlYYzRRcHhpbVMyQ2liOW5GQUtPbEpDcVl4WUxLQWVvNlFxU0hXTWpjRlp4SEdIMnlSdVRpVWF2NExkUzN0aDBNWHBUbnRwQU1UbE11cno4ZWxaNXc0RmN1c1pRZkNDdnp1OUhySFdxeFRUajQ3U0FnQllCTEFscXlTaDVuaHdIdVExOEJKalZrQmREWUNOWVUwdVZ5cGR1ZTVsZHpFdmlSd1c5ZklZUllKSXFRMlY5cjlYU2Jrc1lVbmY0MXZIeUpYazhuamw2ZnpLRWRkcG80blVibVlJOUJNWmpqT2x0ckpOdzZRT3Bta2dBcU5qL3c3dFJ0RXNERTNSVGxwd0FGQkEwRGNBVjdtb3BtNUtwQzVJMW4weFRwT015eXZQRUFwam93VEptSTliUkdUdlNGRkNQMEFMMkJNUnFRSENVLzJwa1RrSW1ORHJtS0dpZVo4eFJzVXBIWmY2NWNqMUVOaFJlSUtUNVRvVHJZTjg5NE9rQkk3aWdRUlVwdTY5djZPV0U0bVFhbG1YWEZvVmszSUltR0k3aTZnY1BCa2JqbS9jNXpIZGFLUUhQUXA4aDNsbVhXZUVCNjRURklnTFpaaUxuZUdXYVp1ZFRGcGtnWVlWYVF2NEtLWjJTM2c0a3BGN2drZDMwYzdlZVlIbmd3OWZ6eCtNeW5WTTlPeFBiZ1NwM29qdTBCQ1lsSklRazk2SmpkMmcyM3FzYUEvTXh5d0VIV1MydjB6OG16ZlVQbVcxVkxYMEhZZWJuWm12b1l0T0NwajRwbm05L0xNQTNlUmtJZFplbnpXYmV4M0pPa3BaNm9tSDRwOElaRld5bk9walBHVkhPYVVIRWFQbVNjSThRa2haL3FwMHpwUGlCK1lWVWtLNUVBcTQ4eDJZZ3VyYWRjWGsrYVlOTmg2RldwdGU4dmNXdWlaeTlqSzZmano3VXk1NUlGQXozL2hhdTRDbVhCQzFTdTVYK1J1QkFtSlNnTUpMYkhGa2RPRCtRMXlKN3QzVEx6MmRBRTVJcWtkYU1oTU82MUtIVnphU3N0WitvUVhpZzJBRmN3emdjUHpEVWlseFFOa2xwNndEa1NDSDgrTlJrazZZOW9lNXZpeUZVa0huUUFpRGlVNVFJZVo1cG5jaFRFalIrb2dPaCswOFI1MW5oQnQ1UzBZVzVMYmNUa1ZoS0pxcldrdExpWk5RUU5HQTMvVElBSUR4amwzbW9ZaU4xQVBwNnV2MVU5YkhBajBQUGxzcEprb21IQ0NNM3JYcTdMY0oyaVVpUzJFVnN5aFFKVDRZazRHaUZUQ2hxbkZrNXpVRU5pdXlGUU00Q1JxTXdETHg0anZvSWtxUDB3Wk96OFF6cTFpNTA2a0VWWDBUT2h6NG9SbWRrUlN3NlJXeXN5WjVRdkpLYklDM3BNeTRJZTBiemZRQnQ3RGZEYm4wRUdZY2VpSDM2UE1Fd0pDRWJ5T1cvZzFZWkREWnhXYmE2Z0FyVW1qMzBJYVlLQ1pBSVd2SnYxcGExcTZwWmM0ZTZZWDJkREUyUFFUUGMvb2QxUlNZc0lKem1oWWo3UE94VEpLNnhrTm9QZlk5R0orQTU0cGlnNVlBbEk3VU5wVnhaTklyVlV3UUpMb2dnR2VrUGxFSEdOZ1VaaTNITG1KUEF5QUxYeHBocERTUXpBeEhHa21NUnB1U1kzeUxPSnI2Vi93S2RLYkcyNk5lUVRzQ0JKQ0JPS0w3KzQ2eU1hU0FEb01GVUJrNUFuaDJ4VzNTQy9CL2hxaHNQNmZWT0Y4ckNiTkVrbXBBTnhGZUFCRk9CZUFMZ05uS0FGMDBKRFZndFBWa3o4eGdVV0Juajl0M01sOGNLdC81bjJBazUvUjhOQzZScEhZd2tRczFXdm1OK2gwc1IvR0N0SUZISDdkWjE2Tjk1SUJNclZXTW9DVFNEcmJTd0FFMUdwWGVRUU51VWt6dFZIMVRtYU93N3djclRWR01vWlJ4NEJha01obXpBdjducEk1MGtqSXdKRjJ3SVB4RUtpNkxPVWNnaVFybGxhVlEwVWk1bVBrQ2FGOGl1Z2lqR0RlWXVsQlZkckZ5dnpJUUFZdFhwZW9LaUowaXFXYXNCbGJ4SmNucFQ5dmN1aXZtU2M1U2MzcGFtbDV5UlpDS3FEblRaQTU2UGR3MEVCTnlCb1AwWU1IbVFXakFROS9nbHhIWWd2YnBNY0dHM2tzVmx3ZXNVRlhvTFFXTW9NUlhRYXlISzVNclpVTWNBYUowTm1XQUpDbmcza1ZFMkFTd0ZrV2ErZmRmd3FZVjlNUVcwYi9zOXJyZXo3R1NndENGNHlaSHhNaXdIRnJHcVZTSUFST1NKS2xBdEM2MjZVOFlZNnhQUit6SUZtZUVLK2p3Q3pLbEtIa0xVL0hBcG80b2FBeXlxeGtSdHVDQVF6ZExQRUI2cXJ2TVFXT3Bkdkd3Z0N2SVZrY1ZqTGpaTmFSUUlMQ1NFV3hjMSt0NVhseVF6bVZ3UEE2bndISFlZZzJaV2JISENNVXNaRkRRZWVpdTNmQloyWUw1LzhvQStWd0ZhbTFnZ0Y2U2d6eFZXRmdhZ2F3WkFvQWxCNGlLcWlPblRac1lBbnpZa25JYVVTZ2ZIeGdQb1k2elV3U0VGQmNCR0QzOVFJRElEWHpDSmd0MG85UUJwVU1VQmxzR2VUTVBDSHVRNkpta05VTDlKa3FjamhWKzZyZDRoWk0xTWljMXNrQXRodnFlWWtHMWdmRGJaV0N1aFoxcU51ZjZIVWQwZDhuaWs3RVJXbVg3cWNaN1czcDF4bUUybUhWekVUZVRqcDh0WVI3UWJ5NmlPVktqT2hJL1NQRDBNeEpQc1NMdFFMY1I3dElyUlVNMEtoekZjTWx2Rkl4UU5TdFVVQXBWaVRZREs0eUFLZDJGa1hpTDdsNDNoRGJXU0RqSVRZeFJ6bnpZcS9TVzVWNUJDempzRUp1b1JwZ25hc1lBQjZ5cldYTUp3TmdtQWVSajRVN1FOeGNJeWROZnJ0YVBsb2hRVWpYVVpqWTdZMmdMV1pwS3k3MFZxUWw0aU16S0V2YWlybzlkMkdtMkljYW4wVWVzSmhhcjJuVHdONTdtcnBwZ1VZQ3c2QTc0VjZRK0UzVExpSU1Rcllqa1lXUWx3aUhjOCtEWEVJQzlCZU5Cam5UUTFjeFFGYXVFajBnY2poY1k0QUM1clhnV1I3dk5SK2dFTENqM0VLbkg3Q1dSSlRhUWU5cUJ6UFVpbHNvYnVzNHlqdGRmaDhxaEtCMW16WjZJbTkxTEV1TVpXUlNJRjRWMjBSQ1piMk05UnFNQVdHRXRZSUwxN3hYRlF0RkFTZDVXbzZEbDdVb2s4bU1hVHVEWXQ4UE5kNzNadWhGWkVpS1VoU1hndVdsanVtVlJjZnpWMmJ2OWZyTXY4MEFaMFd3OHZHT3NVR2FxWjdId3RjTTRBc1NDbjVIdE1ZMUJraVlGem1wS0kzZlhWVmxBWkZPY2lLZGlLSGc5dURFWmRZRE1jNU1HTFdrR3BLai9GVHVhM3B6ZERPOW1GY2EwWHRrNGZaV2RDTnZVVmJNRVpwNHJSTnE0WDJUOWM0QW1aQUhnYUxNbFJBWkZ5UjJLTkswUmRXNEJRc3hvVGVVZS9SU2hKQUJGc0FIWERLQTJaM0FybitOQVpUK3ZnMU42MENueTFqNE5nUGtnclFOZE5EMktnTVVNQzhDUDhBQWhpaXJHTURUeVdGck1SajQ5bURKWmRhR2M0RmRYQlEyT3JOYmRlMDZTMEFmM1EyMXVIR1JCQ01LdDA5OXlXRXZDUlg2SXNyN0hiZ0NNbURYRmk3TndkZ3E1QXRwMnpTdGpBdno5VHlpUnlQanpScXh1aXcrcFdNRDVSNjluNFVvSGNRU0VBeGdoWlExdnREQnIzK0xBUXI2bDNhQUx1NTZnd0VvQmw4bjdMN0JBQW56WXJ4WE1JQXMwNWxPWW1hWVA2SlVyU0lWakVtYldHYWJOU3JMc3JiMGU2Z2hIT1V5VDhnbjZyWTFoOGdlNFdnWjZjM2l6NFNZTFpBYVEzc1J5NHRlVkYxVVFJekhxSVFXRHJIWWtBRXdxb1F1YnNNQUZldjFZS2NJOXFwb0xxcEtpckFJNjV1dmptZkRqMlhRYUNpQktaYUpvWmJSSlBqMXJ6R0FEZzBOa1pVbDhEY1lnTjAzR2FDdEFtNEtCcUQwTEhNaG9wRDh3bXJTUWZZU2Vxc3F3L2s4RUlJd2Rwd1FPT2tXOVhmdDRMRll2bm95OXN3ZmsrRm4wRmx5eFlvZ1hIaTBHTXZMdVlZYmpyak9PYlJTUGhsaThSeVdoaHhWWGJ4WXF3Ym5Jcnk2MDhueDhGeFpQWjIrMGtzRzhOQXo5TG84bklwdTZoUExmTzFGMXJiUlNDN1hxT0MveUFBS3FXUFc1Tk1mTW9BODdHY01rRWtnUE9ZN0dZREJ2c1NKZU9GVlJhbXU1d3RLemdLbTdOQzFsSktRa2RxOWkxUkY4V1pDQ3g5bWl6R3pTNlVOM0htUk9EYnR6YlV1OGJtcnFIT2R3aDZqZXAwQnRKbDVaUUluQUZSN0h3OTZHQmdJR2d5QTBMTVZlNTBCMUl4UTVyQjZYL29vb3VoNXIyRlJ5Ny9FQUo4ZkI1a3FGTG0veVFDT2xaMzhRZ2VJSkJBQjdrb0dzRnN3TVdGVUdkZkp1eHBFL2puSHUrc0hNK3NkS1AyU0czNWRJaWhTUzlhOHdwazl0RXlnUXJaQTQycWtIeG9RaktSSktld0xCbmk3dWdURWhzSEMvbW5NRDkxU3l6RzZFaEVadDdTVHlLRUwyTUxVd1ZJNkxGWVZsSGJMdjhRQWg4WVcwZTN2TGdFWjBObnR3bzdLMGI5a2dFZ0NFZkRPTmdORW5iak1iRERzaHV4dG95dDZGL2t1UkNtNkR0MHYwNldSdDlqWTYwS0VyUW9ranp3REh4ZmpWekFBVlRoa1M2bVZRR0t0RnRKU0FpRGhvaUUvL1FaUWtBRVJRZTkxQmhqRE9KRUZOc01aOUpjWVFLaGdTWmZNK2ZVYkRCRHlTTlVjR2NQYmRvQUVETlBnYzZxWGdNV2NIQUFaNTVqYkJGUzgxQXlRUTE5dWk2NHpRSUhzY05YUVd6bFEyVnN4UUQvYXp4Z2cxcWVWNm5EY0Jyb1dZUVdFaS9MK3hPMkxFQThkZ09pWXd4eTlOeG5BdlJrcVZ3NG9Bb0NZZ3BzTXdIVk83Q1M5U3hFbWZIZ3hYTkI2YWREOU5RT1FtN25SU1F2WUZRWWd6Q3Z4d3FkS0NkUnJtWSs3V2srSnYvOWZNY0EyR2NCN2U5NEc1VXlKM21BQXdGdWpkVzR1QWU5Wlp4dlZ0SnRhWDlCMFJZTmtBTDZRQWtLVEFaeFk2TDNOQU83UGxFbGpDY21GL2c1TXRYenpvNXBVOWlRUkdUbU9oQnJxSnVSaXVMQ2hvdC9xTnhoZ1hKZzYwZ1orbFFHWThpQVNRWllNTUFKMFVUNituWHFtaERGQ3lwclNZMkxIRlB2U05Eck1CRGFYT2dDdDQxeHZWdndQVCtRV2xyMHNGQnFrWG8ya2RYWXJRR2xLWVYvNEF0eVZCenNPbDlIOEVxaXR5UUFjUUd3am5BRml5RWF3Sk4xa0FPSVN0Rnk1ZUhOeEZqTmpVUUpCRWp1cDBwTTRYeENQNk5zWXN1cFZVekRWZ0o4eGdLZmVjUXg2QlpQS3NyekpBRXg1a05qT1pBQjRvQUJleGJFYkVxRFlCUXdkU2srQUxidkIvSmU3Z0NGeGxnbEN3UWNxVFdnS0RKaStiaGxRKzRUYk5XNFpPMHIvZVE4ZzA0U0htN0FuL2RKcStDbmFHU3ZrdnZPK2NrUFZackc5TFBDOXV6UWs1SnNobVRuczdsZWhpOFFsc0lTOXM4bHBIS1pvVUpVTTROdmJneW9Wb1ZmZ1ZMTHE0bEpnam5aUUE5SkhpTFdQdU1OZ0FMYy9iR3AzQjB0TjFXVjVqUUU0Y0ludXJoaEFvWXNrYWJIOWd2U20xRTgvcUFyVXpIN3ZDVFZsOWFuY0VXa0hnUGpEYzhNT0lPUkRGZ3lZQW8zVVdLdUorSjVIWG4wT3FsREtmWWRLNlJUMllRbmN2Tk52Z0R6T1ZrMTdiT29zTTJnc0RwUkNDS0xTWHBnU29ScW1WMFgwQmUwOWVFTHVTd2I0K2k1TDJJT2trVlhRVENjTG42dTBuWnA3d1FnWjl1azVPdGZ1c3llcDVhbFc4eVpOK2p1c2ZZWTdoSXRJcnc4TDVMTEdTVEVTcGwyV1YzTUYxMzZnNWI1a0FJMHBoM2pIRU9jdVFDVm55RFBEU0RLSlZacjgxTFZDSGNJY2ttdU1wMHVBaFJvVDRHc015RjVpdXhIcDRkWTlHMzFRaXF6bEQxejRoaXNUWm5BR3lkUktrQ25TKzFQaUsvME4zVTRMODBKT0pZUFh6Z1FONGtwMmsrOWliOE1KbGdJM0dZQ2RKbWt3d3ZSUTBKbmgza0R6bnREQkdIaGdFOW83ZEhyVVRwQmFqYjZkQVhzUlpVQVlLWEdIc0VVV1BvZ2xDeUk5RTVYR2dwSjFXVjRraTZiZ2ljeUJKUU9vWTI2VklGOE1HNmE2Q0paNVp1RHdvQ2NZQ0t0TU5XSkRzMjRpN0ZOL2tjdGxraDA4MnFEVVdSQy9nTExGNkxYUjExN1RSUUQ0RGg5L1J0K0ZzT2UwSWdOZ0ppU1FHQ1dwZUYrUVpkNExER3ZwVG93WXdyRUZuMWh2U3RoTklYQlpnTWREOCtHNFpLa0Ntcy9wenN5UXF5S2ltSVNrajlvTHZ6dTRORWk5QmFuWnE3R1poSkU2R09oK0NyUXdvOTgzQUpVZ3pGNmJZU1FRTVpsbGVXZFdMOERtYWVZT0xSbGczc3doVHZ1RGNxcHpQa0tqOWtyZUdEaTZDS1EzNG45SDdJNEVObzRSWG5QMEdXKzByQnkwYXdiL1JLQXRISTNxK2QxU0FiTUpOSi83aG92NUxISUdaY2s5MENDQnhGWk5QYjNNdTFWZ1dNdUFnb3dpTm84MGUwUENMbXVCZTJKZVRTOWh6MXFXckt6b3FSb3k2Rkk1d0RBRkV4SVNyT3A0MU1temcwdEJhdndBZEppOUc2L0JmTys0UTdVUEVTMk1LQ3VyT3owbW9oVDFmazhPZElwS3YyQ0E5QVBacWxBd2dCWWVvM011NE5BbzNFVzMzNW5nOVVoZzBldVp2cEVJZ0VrM1hQd21tUUlqek5GbjJmcFRyYk00TUdMam93L2hSNHZVeWVQOEFGVmNqV3pEZFpvVk02akkxMzlzb1lxQmtMUTRFNXpiVFF3cnZkMW9pU1BnV2hxZGpCNXBDVnpHd05ZbDdLM21kYVJxUVBPdzY2enhyaTJ3TjZ5SkhzaTVJUFVMb01QczFldlJwbzdKQWpxY0ZCNFRKanoxSTRpOWhVQ1E5bmhmNGRUdW9HUmt5WWRnZ0tacHNIUng5c1pVei9sNHRraU1DS1V5cUx4bnFtR1IyTzBRM2E2R0VDTXNqWk9DRWVBdGJEZWhVYTNlNGZNVEFWT2NRQ0NLM0JpOSszSUdaYjcrWXd0VkhMVks5UTVLbGdJcXU4a3krWlNsRHZqeDNwU3dJWEF6Q0xwVndoNkkxV05CNjZTZjlBYTBNZXFGSDRsSDFSYkl1WnJVN0JWc0dvdkY0ellKWUxWeXI0SHhpREw0ZXpDOXdkWlFhaGdsT0V3SFlEMVJWd0Y5SlVNQTRqbG5MejMvaUJibWZQVFFjbkQ1bTBvcWpLZVZjajU2RFhJTzg3UGhrd3M0MW9Sblc3WGdXbWRoVmhQdGZRL0U5elBSVmc3aUkrRG8xYXZhWHBsQlk0aTBOcEFZTzdhQWRyOEZXUmhXak44dVN4V1p0cm5vVmNoZ0NseURRUUE2a3lYc3ZmWWlrWk1WVlExTnQzSDQvcU5mRUhoVW5xK0Mya205U2R5cFFtcVJYWURqUUFnN0lLcUI4Y0F3Nmo4UXBaQ0RKcks4ZWpKTHdPa1NrSWxOZFhDSWtFTGo3T1hwSitJRllqNHE4YUsyL3h2SDg1NDRFdWtHMUxEc2R0UzZ0TEo3aGhZNkMzbzNLSnB1ZUduMnZpaG9GNTA2VGc0NTFEc1l1UHAwTVlQUUQ3SVVRR0xna0lJc0xPMnZnaE5WOW9uWHo5VlNENHpMWHZ6R0lmN0VQVm5RSHc4bVdvdGlvVVFSZzlBNFBTVEQyNXVMREZUWFBXVnlGMExjbGRRRjdqUTQzcGNYVDJMQnVVVEVtOHBSenpHRHVDMHFMYnFEQTJxS1JZUHVpRkFsMGtOYjR2MkZqWHoyWXBvU01SVHpNVW10WUdEbjJySEtxS09Oc25aclB6bGZtWVdqaEc0UW1vamZRbWVKWWNlQjZHVWZ6dzVNNDRaSVV1a0pZcHA4UENuOTg5WGtlZ0RzajBvdW9MbTE4U2lQQjZaMTR4eUdmdllhOCtrUkhMTEpxSitWcUlUazFTVUhZWlByUGFicDVtUjRFd0ljbjU0VXcwOGtqRlp4cHM2QTZ1L2tpOFNkZ2xTRURsUEJMTExFNmRuTXpxSWJSdjBYMjZsd1Z1cldSdkZDMktaYXhSREhxQU9RanBaNC8zcFMrMVIvcWI4UjJNQWxocEdOcDhlU2hpTmdabU1BL2hiU2pqR2NlWkZtd1FnbzkzdmthNUJlRUxSTzJSQW83NzJ1SUlGbWZJQlFzSDVmRng3NEdlT2x5TklacGlCbW00c3VOSmVoaW5yTmhkOFpuWWhpZVgxVkZGckxEK2ljaVp4eWRudzdSU2RLdkZ3SnZ3bVMxTkJScmU5TkpBeXJPR1BYSUowV002MmtMbkduSXdTc28vNkhiVEVaSE91eG1MUTlOVDNkUUNNYzNGUGpuNnNpdHBheDZnNUx5LzI5Zmtqa1B1QWtmZWZNSWFsRWZtTzJjZ0pUeWpIVkJZYng2YldBeStlU2JBTmNKQzZKazhCc1hMWWhaVW9vOTh0clp0emxnbGNuYllFK2NLUllnZjdtY01ZM1I3UlNNNlIyOHBJS2w2NERvYnkwaVBQdGlmWU1MT2RMM2JmU0dhOWZ3T2FJaEFUbFlubk05YkdnS0ZkVDRvc3RaU3VBKzZKV094Sm1uMEhvRExzRVRkRkwzR251ZXhuRnZHN1UxRUxqVTlhbFV5OTVHT3VpTm9KYU1nZjBxNU1CTnE1eEtHRXozNG0wV0xteWw3UFZwMlk1eUJ4R2JZVExveGVpYk9zMWxJemdXSFFJQWFhRzdtcEpDZVhHYWN5NGUrUU15N1JOMEFoRDJVaXlrQzQyQWQxRjE4WGd5ekwzWnNobXk1dWIyNWR5b3dMb2IyNytJVnVKUHlTRVdReUxQRFFhWW1QSzR1RlFrRk5EUm5COFVsUmJZQkJPTTdxa1pZb0NkZFF4MDNFR29VdWJPNllUVzZjTDNHa1p4ZHhuTEtiYUdNSzJHeENuVEtXTHdzcFd5UDZWRE1DY0pESnA3alAvRVJWaVR1b0g5dVpzTFJNVEVoczY1REFTTHUrR0daaEZ1bEZEaVdBQm5JUTVFa2h2TXgrVlVHNGFXckFEcFNTZFpPSzJJUmRJbTVZa3l4a1dCdERsZ1FJbXJFT0NxbEttSW5Pb2RoQUdqQlp4aUhUb3dOSkU0QUdleEVxcWdDVFFDRVdZTE9qc1cyU2d0ZkI5bTFrSkt5Z1RPaStMd3ZMOVR5OHdROHN4MHp4N3pQUW1UT0lMSnBmT1FGcEVNU000bGhHVEhFTFVRd2FlaWNEWGdHa0RvV1FzQkNWUUJaUzJwNGN5QTlvcDgxOWs5dnZZVHpQL2dnMHlzYUVkbXVEOG1mNUVIVm1GOEpoZHprdlI5aHdDSEpHWVJHZ21sRnNCVnBGeEY1S1V4R0xxUmtjRWZTT3poSk9sYVl3dUlXRG9ZVkdraDBZTHFscHNFenFqbk9Wb0VvZlZwRERqRURJRUttQzBQT2pqakxrb2gzQlBTQ2lhU0hBRmcrTnQ4aEpOeDJrYUZ2SGxkUW13TFB3cTZmeGd1V0hVRzFmY0tSMW9HZFdRd2JGcFBnVmJBM21EeDdsSm1veUw2V1pLb1BZYmpLWE1nYmpFbUxwWmpkdEVuNjIxMnFuQXdpdHVMREtpREM3Z2Z2VE5FVWZlQkFUWUdLQnZFRVNhbXdubFZtOXlaTnpsRE12a3JaaVltZG5GSzJXQ2xvRk84UUlaNGdrMmZIWkhtZDlyUFlabDg1REVnY3JNaUdicGFvaU5lMDFzSEFQRUdrRE5ES0QrWHFUb2I5YkNoUkV4NjZHaVZ1NGxmV0xqVWdjWTlPUjlvUU9NR1J4cnZsSlB2MXVVQUZIY3FZZXdaZlhrNGFRc2FVQzJMdXZNSXBVZkJCRVlGLzRhR2pEdlZMZ1l1R0diZVUrWkt0VmdjcWdvWEpYMGh0NUpLVWVSdzFnNitUKytYaFJyMWI0Rm83OERXaFlRWURwMjVDb01aUmwxVXNhdWVJWDdQdkFFSW1kNWZXUjJRV3BuakxMd3dRRVRrTG5OTE5wbGg2QkhXVExubEVYN1UwQkpjTms4RVpTempHZ0dOczZCRVZYSi9nRmlmK2xFUS9Ka3p0R3pHSzZqV0ZZRWl5dWhFZHJPSVBiVURVclVXeEZFTVl4eVl1V2dESXNpVUVYOTlKSUJuSzJ0V0FDSGxSSGRmV1hwMEJjUUVYSm5JRGZlVy9tSmQzbkZtTnA4cWpKWUwvcktSNGVBQUkzRFk3NHVRMW5vVVpCT1VDMldMVUlMNTFqZ0VITm52a1NPL2cwR0FKUGgyUU9NY0s4SjBUenphYW54QVdnOWFFQkZTUWdkUi95NzZtVjVkRWhuZWplRE9Qak1Bc0JZUm9IdHE1TDlvdXVmUGRneWt5ZXZOVVZ0SFJ3ZkZKME1pd3BobDVCRGVsc2lyRFkvL3dZRGhFRFd3dmU1QkJSc0xjZ2JobTdqUGJpSVdBZ01uWml5Qkd3OTZYMFVJOC9xc3loVWRtZ1dWZlNmem5QcE5UWnlTQTZtU3huTTV2N1NnUW1ZVGtFUFZVWGhhOERsWEQzSmVtMEd5SWh0Z1BsRCtnem1Ya1RacCtWaXJ2ZUVLemNQOHBYQkFCWlpPZWRWM0M5amxobHhNaGw2d1FCeUFrbUdQRXdaYkQxNVpsRWNIUFJLWUFyZWVjYnl3UU5aeTBvTzROc3pIVGwxQTY0K3J0ZXRHSGNXcEs0eFMrY285MExQRXpKK0NQc3ZXZ2dwVlFLVEVTT3dSRENTVlJ5THVZUEJFbEhKUHUvQzhKclBpZ0ZNN1NTc2l6QWJCbmtOazJZMFBWNnBlYi96QmdrQVZieHI4UzAzSlFBVlhxVS9kcjJOL3VGQlRDUmtNeGowTGNKam5nZERBb3p3N3hwKzd6TDJsWFVFa1BvL3FtK25KSmFsbEpBbU1Tek0yRzg5V2hkTDdwY1JzQTdFZVMxS0FKZXpvOXZOTk5XY3B3bEV4T3RXQ05OMmlHOHFnY1J3UWsrbkFPOGZYTDNNV015T2NNdTZaRVRnc2JYSkxaSUJzcHhDVVZJdjBWZnR1RlhLT2Fvb2tkbmVXS2VNLzc5YTh4NmRYU1lCcDVsNkdaa1Jiak9BblVJcjFueXVTcUxNQkdOQVRrdnBHZlFYdlo3SmZ6OVk2d0RDRjRTZExrOVphQTRuTWlMWTlTaUdsODJkTnJibm5aYmwvcm5aNm5tY09jY0FWdHh1RkEvTzlYRWdkZ09tUzZ2bmFWR1M1am9EVUFEMitpcVBzeElHck5YNEJ1dzdDQjJQR2dob2dkSkFZTWxLTjdhTnRKSUJvdmpMMmVIRVdBR3krdXpWQVBDSmk0dW50N0xxUWsyenk1cjNTQ0VjWlFDWWREUnBmcHNCU09OVlQya0pZc3E5SyttRzBvYnlFaXY4eTRQMzFTNkFLd1A4bFV6QkYwOTRhOWNaUXpxOXhRSVJUcDZSY0ZyV0k0UnhqblNHbmRXR2FUS3FDZ2R5TDJReGNEMmtTVkIxcnhhYjhlUWJET0RCVG9hL25qdENDQ1ljYkpZQnFMWFEvNnFDYWVKYkVyV2lyVndDT05ubFBDK0ZHelhRR0dSL2pRRXE4QTE3YXdhNFd2TitvOTdkL0RMNGZIL0ZBTHdaYUN5TUppdzZrczJQdm00VmZ5NmZyNlRmV1ZyTTNad2pXdG9CTFBCcGlFVHlwYVlIR0hjWjU4dzlwNkRCRDQwU3phZHowQWNpV0kzRlpBMk9nVjdlUFZlbFE4ZjNqRDVid0c3Z3RnWnlEQ0tsSWFQNExkY1o0SjNoam90R1NlMzJJVXNyQ3cvQmVSZmxBYk9HTVZzTmlPODNJbXNyQ1ZBSW94RHFUaE9BaFpJQjJxVG0yQkVYMEZ0VkRIQzE1djI0WFF0cXR2OHRCdUFrMzVrK2g1eU5DdFhOOVZlWlFSbEF4QnRTckVrSGFlbEdLbWdOS0Z6TkdPbVNBWExreVRVT2cvN1EzZWJPQmYyMFBpc3owaFlNRUhWajdDU0l2QzRzTUgyTmdhU2cvaFdhcG1ZQW9wT0F2eGEySlA0YXJnQnR3Z1NqODBYSncyamtMSUlPTG5TQTJLK3ZmUVZnZGtPZWRvc0I2cXJuTENWUjlGNnRlVC8rZzJwd3d3czQwZHdZZ0g3dVRvc0JWaU1xZ1VxellJRDBCZXlnSi9iV2JnZXJHYUNTQUJtTWpCM2Z3RlU5cHcva1pKbVJsaE9hREFDOFlkd0tIZ3BZNXRhUnBlaVBHSURTdE1aZkV5RkZFMDZCeVhTalVaYXZnNG1WRWdkZ21wb0Jzckl5TkViNkU1SW12MTRDN2d0NCtDcG9WdFc4LzJNR0FFRHEvQWNTUUFmV2xjQm1vT1RqN3AyT3FpNU1BQnBKdkdDbWtTczZ3TUV1aXJRRVBWaDBFaWRZNlFCVlJsb1NUbDhPWHh4RHh0eHZxR1ZZb0RSTHhha3NkVitrR1FITkU5VE5sK0JsaVpGY3FKaWVZQlVoN2pHRDk1SHdiR1ZLQ2k3a3NHTDRKeXdmbjdYVjUwYndWTXh0aDNTVkFiYkVnSEY1SVlwVUVUVUgxOXZxbXZkL3lBQXkrTmp4L0VRSDJNMjVicm9TT0RJbDBIUUExeEJuY0ZVREJpQ2tiRVFsd1M0aENoOHhGVUVBWHhObUNDWkUwcEplR2pMQitFYVdseklqN1lzZkdFRXFjOGlxM0cvYkNkTWtVTnZMc212ZEdqZEZVc2NmSmFxL3RQbjV1RUZMQVZ0VUpROWhrNFQ3cjhLZGlReHNIS0VFQmdqejFnS1BBMVdXUkY4eEM5RUZBNGducGxOWnFqRmhrTFBzNEF4UTE3ei9Zd2I0NkJNZzVma2pidXdDS0xCeEVBelE2ZW0vc1VlYzdTTkZlcitudkhHV29XcUJ2blJGd0toZExFTXdoaTBpVFU2WWlMR1hNS2xmNkZpWTNxamlSd1pJWG9MbFNOK0MvVC9McW9IUndiaVQ4Zkx1cTJML3phM0hJcjJCZzhvU2FCcWpFNGxLb0ExclBHNG1EQkFaWWo3VnFtV1FzVElYaEE3M1I4VUFtSjM1UkF4TDVKVnNuR1pWemZzLzF3RWF4WmpNM2JORUhyMXVCd2dqUVRJQWZtWmlFL05WckhlOWhVeDNJVTdjbEM0V05ldGxQY25TOGdyWG5KdTh2SklpUERwRHF5bk1hUmR3VDVpQ3E1MXo0aGhIblRRZE9tb1p0ZFNaYklQZll0MFk5eXB2SDVPUHVKOGhraE5IUE1ENU1uai8wS2ZCM25kRFdBTG5rZkYwTHd3dzgrTEtyS2hMbTZkOGFlRGthZ1pRWjF5VFQ5d1VtV1huNjFoVXE1cjNmODRBOFByQ3QveExTNkFkYk1UVTBqUXdad25yOStzNjExWmpWNFIwczBzR0NDNVhpUVpyT25mQlNVM1RIVC9sREZneU53bFd0RU5od01uNnpnTUVVN3Z0ck1BeERteld1UE1BZDBJS0xXVGpaQTF5M2dmZG9UR08wY3Y1SzUvUGt4M2ZSUCtvWTJ6Q3lVMWNzQVVtTUM3Q1Fvb2lESHdHSGVBOTY0QVNITUFVKzRHVGF5MEJ1cUZCYVU1SDlXakZOZWFXRGdhb2E5Ny9PUU9zcEVWMHlVOTlBV01YOFd0a25qenZrTk4zWjNIT0pzME0rNlFMaU9xSFpJQnc0ZEsxQi9kN1JscWtsMUJrSHIycWtLVHUrS3BLOXVNRmpYTDBCMU0wNkx1Ri8xZ3ZOUGRoSnRHVGxpQWIzZ2ZkaDc3WC9YWkRFRWpOUUtIRVRSVXhnUmZCK3g0WkVhZ1pCQldPaWpEd08xUXVnajlnUVJNekFVMkprN3ZRQVhyck1xb2dvc1dscFZwOXRlYjlIMjBEaDhPSUwwdHY0UHpTRzdpTVBQc3l6VERQbFA2c1czOGtBelR3N1BVVnB0M25STThxNnlBTzhpQ1FtcTYvbU5OTGhDNWgyVnhPS0hZUFdiSWY1U05rdkFodVRGOHB3R0lJVmNCY0NwRE54aW9zREJEQ3d1QUdsQ3l3ODlIZDI3SHVkNGJjWUFMTHlRaGJZSW1TT2p5akhielAyQ2dMMEdOWXNVZjRMSFViYUpXTFpDWms0QU5DVmlIVmQyaFVNSk1CcklCeGx4aXdZOWFYcUswRDdacjNmMWdVL09rcGdrZG5QNHNIeVB5RlFwVkd0eDNoWHAxWndSaXJ6enRFTW40OVROSEJwT05HSElUM0VHWElyL2N3cmw3anNHeS9CRjVjQWlFaE5DMGthSFIyMzRkRlN4anFWUW5OR0RMcHRnc1lHeGVZUTRKc29oRE5HZDFlOTN0R2lMTlIybUthbUVuNUVoZEFjclRLSjhySkVWTHJrWCtBaDk2cGpLcWNqQlpLYVhwZGIzZm01clZPQitXVkpCd0R4SmpzTXYvSTFacjNmMVlWL2lWTHN2MHNJc2psRlVkZmptVXAvZStNdis1dUtkTFduT2dNL2F3RC9DemUrakZpQlFHUXprckFXWmdkaHdJSWlYY0E1VXp5Y2tMYSttaXlWeGZJcVBITzZGaGlEalB5MlBGMDdHWmxGZys3SGFKTlBLcFJ1aStRUWRJcWhBS3dKU2d1T1l0cWFsbjVVT3NGSU5XN2hnNWtob0JqZU1yNnRwV2dxN213QTFTMVpMNElpcW1xRVR4ZXJYbS85RGlSQ3daZ21vdktOVGlXQnBUSjhXY3hnY2RUakg3VXg1aUFMbGJkeVVaNjh1elFYMXhLMFFFWm1paFRZZzl4dnd6bFRsaDJwRjNvOEpBRElma09jalBHaFdmRUpBT1dDV1I4TGk0QVdPL1pzUWMxbmc1TmlCcW90L2NNaWJlNDVxT0JqdDZyNHBZQXhDaWNMSVAzdmJ3c3dHaUUxV2dqUEJnTUlPdC94a1BKamJFTGlQUy80V291TFlGdlVVM3FCMkZ4clhvazEydmV6MXJWN2NBQUxOV0V2VTJhenNBZjBnRGp1SXdLbmtSVThGZU8vb2dWOHpITWpsckJTS3ZNMCt1bDZlR2NXQURjdElQOGdTWjhkcnhBd3JLSkdLSFlWYWdCeVJrRTlaT2RwQWFFU1NSSm9FejBnRS9VRExFbjh1VGxqZDFLT0paOERsQU1rUTFhZmV4NHJiZ2xTbUxPck5Kc0FCZ0pLUTZzRFdBelFBY3pWSVR1Wk5iNVhUS0ZSWlZpYUZ5VkJIZjRtOXlFNWJxZ09EQ3p3YTJhOTZlcXZpVVZUdS9SNTRmeEhJZFJvUStJak51NEFEbk0wU2VpcWtLdGZSR2RxVEtQME44RW1RbzVBYm1yWUQ3YUNFS3g5a1poU3JIclNLL0VUTEV0Q1c1TWtxYnNmU1NXTEJGTkozbEtZQTZCR0dUWlN3VzRFZU5tM1VRWWd0VHZEaHFXRytzaHZZYkZMYk5HTVhnUzROR0VNQXYzNnVxU1dCdWhzOUpmR01DaVFnY1JFeTJ6aHRqK1ZrV0Zka253MCttb0wvZVBOSlVDdGd6bVpMbGE4MzdmcW5CNy9NNXlqVkU2S1lvanpUQW50QW5HNmlveTZDaUh5OUUzWkRBbkZGQ2dPa0FFMkdMQ09jaVV1RExJMEVTWnNrVHRpWUJPWUtiS1NzQ0I5WlFqTDRTM1RjZUduREowWXBSL0R0bkxPUXFLQnA0ZkwyLzNjcUllSWFQeE5zcHNpbUpEWFU2dE4rOFlZNityT2RZcEQxVGl0NVY5TzJhVmNodG9PVUROeWN1akJ3YUhXQnZRLzk4N3F3L1ZBZEtDdFUwTnVwb3JHaUV6clpMZytuUnR4Z0VVeEc4NVdhN1Z2RC9WTmE0eFFkaEQxaFdDRUpOSnVDd3BwY0swWGM3NWhDRWtVSDVXb0xBcG5EaHZ4c1R3NnZWVEcveEVsdUk2LzlzaGNUaWJRRlRYbURZT2hBT3kyNTlWNHlGTEljdS9nTGdLS1F6VVpSWmVQRldEZ2F1QmVzZGtjYjdJTEFQSy9UYTk4RllzMUl6RzRtWWdWd3J5U0dNQ0t3YnNIcXZFMmlnRC9QdXZ4Z01BRUlJUythQnFwaldJclFRT3RVdUNvK0Y4b2IvRGMzT3lIRSt0bXZmc2pTcjNuQ0NjYmV6SnlZS3plUXdaVFZ3TUpzQVBoL09STE95c09HKzgxN0VFclJKcmoxYlAraGw1ckYwc0U2V2JzejQ4ZENhUmRWSGp1VzV2VlBtOXFqZi9rdjZpUkgzZ3JxSGVVM1h4RWFYSW5BeXhYSUl6b3Z5eFRVaGRITEhBNHEyOEhMMDJGRGRqeHJCVTVTS1JVVVQxcjJCZ1paSkFaWUQvM3NtM1JGS0xEVmNXNUM5b3B4ZzYxU1hCVHpFMUFiVWxRRHd5SnNUbU1KdHZTS21ZNEZqVzNaYkhKZVlRTnpadHpBYUNpSGhjSEhrdktpRURKZGhFc1pIZklhTkdLVndCN1F0dzdjdDFuenBHRnNzazV1bTV0SnFvc0dQTlNmUm53NHBXQWgzanI1ZVV3akRmUncxVVdtMURwa0pwVXJzT0ZHYWxOemZhV0NhcEFlOVV4UVptQzJJWkVodExCUDBVZllhMmN3ZnNlVzVCYy85Uk04QXBrMXFNSVNveHM3aGppTG1LQTJWSmNJTHhNYWhGaW9nczBmeHRPZ0VicDRYdnZUSlZDYmEvSkd3TGMvajluVlBFOHJCZ29UTXhpQTRxNjlxZzk4bUhVR3BTL1UvUUtxNXd1TzZGNXE5ZlRIUXZ1NGw1cXRObm1NTHJtTEpzYnJFT0lTdVRrSC9KbFE1MlpNQWViRHlaN293bDR1Q3pmNElGdDRjdHM5QTdjazBSUzN3RzlrM0loNmVQdUpTREFkS2xsK1ljbHdvOXV1MFl1aDdiL1M5akFKbTc0eHJHeitVYlRiaUNmOWFsMThzYTRLZGo0cXl6UkxQaHFOREJCc3VZSVFtaHgwKzhiMGF1b0lJZmU3aTlJZUNaMTlDTDFtd3o3MFZ1TkZTRGdXQ003RHlFREJLMFNxdzlFTTczMWQ3ZkNsTGp6cTFpbVZOemlwYWVFeXgyWGc2ekY2MzBXVUhJaWszZC90SXJEZXhZcERtV05oaWw1MVorK3NFdURDY3d2TXZmYXMrQ2Q5WWRHZzFUMitQcHUxekt2N0xvdzZlNzlPU0FPY0xDMld3ZUgwZCt6STVrQU52WlloVnpHUCtzVEtyamlHRGFwTkRhTmNBTG5IV1VhQ1pQcnJJRjdHcHJTVXBHNklOd3BhdkNqZHEwNGhHa1NUQ3JaV1lpaGdBZE5oRmhha0E1TnhYTHoyV2hXMEpHdFFWS0VqeFZXUC9BU25YTnNUV2hoWXdDVHQrcE1zQTNoaFV1OTZJcFdkcWw0eGptd2JCazJGS1pmNDF1M25lRzRsUnA4QThMNWhZWGVsdmx1YzNKUzNZNjhBNityNVRrRUVvZTFoTmhYVnc1bmtQc3Y5S1ZEVjVGZXBqL0tBT1liUXVybU1QNE4yVmFMZjdKSERMZmFPMGE0SW16enJxQk5QQ3NvM0VVMzVtcVpLZEVJRkp5T1MzcndKMGR1c28xek9Ic1NDYUhja0Y5ZEdDODVTTExXU1lYQ1FWWnlVckZ4ekpLUFFEZnh2S2F0UE92dy81djFnL2pWZ1kxaENlbkRnSmxMamg4UEh5OG41bkluZ3dRMFhHQ3ROUXpHTm9UY1VlMGc3dWNwdFQrTEJoQTJBOFNBRVcrV2RVNkdHRGRhN3pJZ0R2RGxkZUx5bytIZVlUMno0N3NEaWpMOE1vSzhGL3hCbDdDK012RWVnNUFZeUpSRzROV0RmREVXU1BUUHhtQVFGODJIOFdJUWRXNk9qdzVRTnpBSExxYk9mT1dlMFlUUERlVDFETDJSVk11dzNNdXI2QStHTUM0S0JSWjZrR3g5Z05NdXJGNytyS1NKTjZBOTBJQVJJQW5MeGtBWTAwMzhxSk1aRzhMYndZWlRURGFrTWZwYW5jR1lPakZDNmRuR2VLbGxRb3N1anhRVExMZk1VeVNoQVNEQWZCMGVyUTJLTjZhUlI5Njg5S21EOEhnd1ZzT2hDTWxqUUgrNTQ2K1pqZzlITTlVcHRZa0lwZ2tZRkh3dWdZNDEwVGlyTWtBbUw0SVFHVmptSGFad0lRT29Nd1VYSWEyYkJ5OWxTbHRzc0JzVkVyVUg2d21NMUZoWVVIUVVFRUNtWUNRSkpDZ1Jsa05zZ3hja1FZWDJONEdmSEhKQU5RQUxYd0k2WlNaeWQ2b0VmbTBRVUVyZkRGa2o1NUFobVpGb1FjR2ZySVFodGxJTzhZQUhVY3htYkdSK3dWakFDRUltQU8rQWlwTEpIUXo2QzA4R0lvbG1aUHVpTnlNbExCQ2Z6QUFJdm9HRFp6cERLVWxrV3d5RTVlWURQQVBHU0REZ2kxY2d6aHI3RU9ydWhObFdZY3BvZndxMVRVVHJjV3JlT0JVNDhGdHZBWEw5cTROeitYMVJTUHZSY1JGNzliS0FCYjQ2d3d3UyttM1lpQnNwOER3QUNXNW16UEV1MFRVbFNGNmJRWUlEUkI1enVIVFRBMjNxcW9EWXZYaFloMUZkWjFnQUlKd1NSdU9ybVcvTkFid09lNlpGRzA3UkFaUTVnQ2thR0tWc00xMHo3cE04ckJNKzFxdEFmeGZIdU1LOFAvdTRQYVJTUVpKeWpDVzBpZWJEcUMyQk1paURFVTFxUTR0VVltOVE0bGt6NGlNdFlNYklkTzRLMHo0cWlnT1JqMXlvcXBocFFRaTUzSTRIRHRhL3czZzhoRld6WTR0QWZicEpJYktaWXFtS3Q0NVB5SEN0Q2twb2IxZE1rQ2hBWDQwZEdxalZaV1IrMFlsK1hTbDF5aFZnSmdUckd4aTYwVmtZOWRkS3huQVFwak00WWpkaTFxQ3lBQmtEbTA2MUpSMld4WWt3VHJBMkU2b2dUd2lmZWRZaW5JRitIOTM5T0ZxZ0pOSHpGOW5nTnNTSUpiMVhTY1R1akxMQXVhQXRLRmxSQzdXamkxSzl4V1ZDT1pLUFZESFZ4SFRJejNOY3lKNkd4MVBZcU5BSVlCQll0V2tUeitwRjRrVVhoOExkN1BQK1dTQXk0cEROUU53YThHeUdCYm9oa2IvRjVWVVFLbzB4R3FOcGNreEd3L0pBT3doSG9NTWdPQTJNb0RPY2FacDVhMlh3UUJnampPK3FOUVJ5V2R5MU5PNEk5MVZ4dnNWNEYrekFoa0Q0SHNTeGovVXFmYUhFaURXSDIwZVZwRzF6YmkxQmllWEZ3NVgvdW5wQTU1a0lURllTbk10U2dZZ3REUWtnQ3dSalhBQVYwMG1PZHJBQmtEcURlSHR3TGNWN21ZQWdDbnpnZ0VTOVpZNGpXQ0ExQUIxUUhlc1c1VGhJaWFoaXBtSU9EdGlBT1VPR1ExanNEc1RPc0VBczJBQW9KaVE1R1hPV04rQ0FRYVc2cUpoMFdJdWxheVhNNnJJL0VYMUVjOHNWNEJqckFCMzlPRWovTVVEbHY2VUFiZ0RXVGRsVmhwdWloZTlJdXB0ZXAwQjBnZXMrbzNyQUpCNnczSk5xQ0lLVXdkWW5mVXhMaGd6aDFxM1kyZ2RFSDh5d1lxWmp4TFZOMGNreTA2aTRsQy8vTEprZ05BQW9Ud1dHRnd2d3JRRXFBaVVzQm1oc3pGaDUvbjZjNFQ4Rzk3cmdnSDZhL3QvMVo4amp6c1pvR2tRRzZ2YWJVUlZGZlllQ3pMUHZYN3VEeFk5Y0VnYUFiZ0NNRVhNdk9jRnVuK2hBOEQ5WGpNQXNWa0xvcGNqdEpMeTA3Zlc2TDNCQVBReUlVNDJUQlhNdkxYMmhDYVhESUFmR25HdFk0SlZjK0JKam96OWVvcmo0aTd0RlM2dGNEYy9VOW5MMEhMYVREdXE0VjFuQUdxQXFKT0xtbm9mQjJ0a2dBUlV6SGVReElpMEhBUkw1K3NibTF2bXpvSUJIcG14U1pVWmtTRDZZWDRNbVI3VmZObFRRU2ZjbnRWS1dQa3hLdWxSamFZcGdBY1ZGL1ZSR3dGMEQwQUdrR0xlckF5QThmZ0pBOUFRZUFtc1JPU1FDdU5EUGFrTVd2REIyakEzR0FBK1lPUWFheUlObmxWZjJHWFI2UEh5a2dFc0RWVmZ3M1liZ0VjanlSRzU4dU16N1RRYUNEUERvK1JaQ082VlM3SzhDZVAzc1JHcEdNQ3pSSm5MbFVtQ09sQ3QxbXhrQU5OOFFYSE0wN054NW1XaG9RR1dDWkNrR04yTitSaWd6S2lpb3N0OU1BQ2VqWjFMTXppcmlBQUQwS2VFb1k1V0xQWEhGQStzYlAxYXFZQmtBQzNtM1V1d3oyMEdPQzNSS2dZSVN2ZDJ4S216N2pvTTNRWXVDdERGZFFaUXQyM1VENmVkMThMOWU1NFJBNDZKbWdHWXpROUxwUXc0eHVWelVUSUFRcmREUkd0OGhYcUlhUTFHdERldGprVWRJdXlIRGhVRDhDVlRBMXlzSVdzSlgwZ1hlNkVFSU1vYTFiaTRwNmhxelptcUJwSVVvd3VIQkUwQXFxakl4NlVOQkJaYk13RWdJeFlZQUN0MkxQUGt4bFQyUzFPQUlOeWlPQ3pOd01rQUtPYWRxTFBiRE9BSnVkc000Qm15OUVtbHllVzhFN3NBeXZCUmp0OWdBQjg1Z0toU2gwQ1dEcXhMVDRpeXF4bUFHWFJScUFRbUFCa1hwNWI3Y1d3Sm9DYTFuRmtNZTlJZmVSNVZ4ODQ2UkJxODd5U3JHU0Ewd00reWxpMmE1eGhkUnZsQzhCQktNbU95dDBLaWJhdUFmV2ZKQUhnTG1nQmt0bU01cCtYdVpFWnNDRHJwbncrVUFieGMxck5qTU5ESzdYNWhEdTVidm9mS0NKQkx3STRXcTU4emdQaU5HSzc0NnhRaDhQcXBxMjRTRlNJbnJ6Y1pZUHlZOE1xdCtub2piNEcrV3RUN3FJUEtIUmpSTWNPNWduLzdCUGpTa3d2RUxyMjFGZ205bkZLMVFJbEJmUmI4aDR6ck45d1I3RXF4WUhsTnFiUUJIdGlJNzA4bjluNldObm5sSVZobmFabXBVVEZnRWhDcXRRUjRCU2RBZ2JBeGg0ekNDRzJOT1lUWUZGUzR6dGpTekwzU1NFZk9kVFVIOC9qbnBSRWdHWUFFK1JVRGlCUmlBTXZsRXJDZ2FhTkE5SG9PblNMdS95WURKQVFhSllBTXNVaVpsQlYvYWdid3dpOW1BdERCd1pvSkNhS3hIRzZVVVUrWHgvWElmS0ZxQVdpSnh5blFud2wvWkJqVG9zQVJmcVFHdUdiRDYwK3NXU0JrS0FGbW5GYkZzaDhxUU1rQWVETm81VG02YnJtSGd3SUpsaXlGWVZHREVpYUExWnJ5aHd4UU9ueWtxVWt3VjN0NDdzeFR6RmlSTUFMOE9RTkVVT0NrbmRiQzY4ZVh5QkQ2MGkzWnhlOHhRTk9RU1d1T3lKcGZOUU13cUplcnBnNk9Nb0NsbnlNRExNQUFtZStZdGN4WWhyV0lVNEJIRXFXTVRPeGtRZm5kemp6WmhRYTRRa1BHalE0YStCeExtZnM2c09SaFY4LzE1TDNTWVFFTjFqRzVaSUM1MTJBOU5PbG5vcEZKSEc3SUxTdE54UlJFZWl5ZXlGMm14c1NxSWdEV0FMRE9wUkhnVHhrQU94RXJmbmV0UXJjdUk2dk1haERscUNiaEVQVmVTL1RTV2dLSyt2N1VwM21aV3RNWDF3b2themhoWUgvbHE0Ry9iREpEU1llcE10ZzhNcEpsZUhjWnB4RGlkNmNCT2ExeWx2UEdUS3Z2b1FHQ2M4eksxR1B6QkxSTE9ocys1U3lXeDNhSDA2eGtBQmdUMUR4WE1nRERIVlF5SVpONGVwcGhaQUw4U1JVdDVxRG9tN3JzK2JYdEtmR0xETUJvTVdBeGFpUEE3MGdBNUVISVYzUmJCTzJvemdCbHpydEJKTHRBTHdSdHB4TU1tbFdpTGRWQk1BQTl3Z1BpWWQwVjNJQlF1K0NmRmdQUUltR2FNVktSeUtnbE50R3lLbnBMLzQ1MnQrSVVaaXo3T2dkS2xBVWN1TGlSbzhscUxtcEJvcjQzK2tWRDVUS3FVL1FPTGcyWkhER29DYVVTaUxDa0VSTHpOTmJJQURCQ0FrcUdPajZJTnhxTUZNdm9HZmFaaXJINmhZalN3R0owSjI0Ry9wMGxBTGtNUkhyU0ZsZjJhN0sxYnJyU3VJVUNadG9IS0ZJa3NuQzdwN2ZreXE0b1hWRzVQLzNUZmJlS1pIZjArMFNlYmFEVDlGRzNHRURvdG1Qa2o2WUp5dFJWZlhsQzBHaGRaT0w3UEVTck1XdUlFdW14SXA2cjlCRytvVnhHZndObVFEWm5BSXB4eWx2UHo1cStyQzJ6Wk9waVF1ZUgvQzYzZWsrcVQxd21WQ1UyQ29DeFYwWWNodEV6dzA1aEZKakVMeFRHU0N3RzlCUWdnc3dPOVA5dU1BQzltaXlhbjRrc0k5OEZjcitCZzl0NWJ3OWVEYlpNa1dpNCtGRlpmZFNzTjdFRXVHa3BTTXVwWk1rUm8vTHN0UFFGTUZXOFllUTdwaWhDQ1V4UDdxSnNCUVAwaTFZeGdKVWJXTkVGRjRXV3NNMEh6ZWxVZXVFdU14dmQwQkJsSVcvZHpzNWpYR1pBVTVIbS9GLzNpUUo0WmpIYWI2ajd4ZjlzVjh4dzVqZUZGTnlyd2hxYno2eXlZMjdEOHRjK3dYR0J4VGdwdm9HTHdBMEdpRVJEVFUrVENzWDhtMGIraW5WcDgzT2JMWE9MZTZZS2dxL1JHOGd6TUl1ZktvU29HVUNoMnlZQmFIYnZWT2kweC9RR0VscktHRk1aSmdTa2RubzJtenc4cjI2WnNxTnF0a0NucDlueDE4c290WmJhQTUyd3ZzZFo1WCtNUktybExiRnl1Snd1YXRPaXQwRGR4UDhTOE84UVFDRXg3ZFdKSWRnYmxBeXdsVEh3QjFuRE1xRW5qSy8zWDRZclN5ekdWQnJCSmx3RWJqQUFCZ1BSVkdXZGk2bm5ySVY2a3NXY3E5ejNuRDRKdmtadkFMYkJMSDdxd0RKRVV3bWtaNGVLQ3F0ejFPaTBvRkk0T3dpY0ZsK3pOS2pzWjFmWkp6V0ZxS2dyVzQ2OFpaekNLYXNsRW4vTkdzT1FwOXcvR0VBYlRpWHdYZGtZaTFqTDI4REtLYUdFZ25oWm8rbEQ5YjlXWUFoRVJvVzBkOEs3SFVXMExOb01DQ1NIWUtBNURLMUMyR3dBWlNJRDhJS3lhdXpQR0lBbEdBS016L2xIODd6MFY5VW9yR0lTcGtkV2cwM3dOWm9EdGkxK2xLZHFNOHdvNGFoUTFkUDFubVZqV1cwcnFVUjE1anVnSW1JcXhqSE9KcEtyYWtvU1pOWFlWczBDdzdOYUl2SFhKTmhEUUIyODNCa0NzZlRsNmdhWklhMlV0NG1WQXdsUmhwYkF0MGYrTHlGS0xKcUhzM0NUOTF0Tlp6QW9XamVoZDRteEErck9RU1BFUnljOEkwMEJZQUFHOTJXQXhwUVIxUUhHSnpyVThsZFltZWhlZVA1UjdjNHgwMWtOTmhKWVZNSCt4SG9VQlg2eHdMR09vcDZJVzdJWUdiU2VSS2VWVkNKMmxQQXZTRGZreGVCc1NuSmwwM21ObTdZYVp4aVJVTUNMYlpab21Ea09kdktDaDNwNFBBYThqUDg1VUJSdEUvSjJuTUExYjRLV2E1RTJRWW8wc3dOMEQzZzMvZ05lcld3dnhCaGVma1NKc29YNEovMDU1TFdvQ24vd2c5V1NnaG4zN09xSWxlR3F3UGlzL1BzWWRkYXltSE5kSGRQTFRINERmTTFlQWpha3RRdG5LOEtOM1c4RkRBK2szZFRGWk11YWxnYnpBVGgwQ1NBdHNYMCtRa3VRNjZWRm83R0JoTFBWNUhGbzZEaXBOQ1cwRklXTW81YXBseUpscTVDaXdLaVJFU3BrSEJuSlA2SEFrUlBkWGVEdUNJcVdJU1JYczVHL1NlcVdHS1AyRWZEUUg4U3gwTWpaS2MwZXVRYThSSUIvcVk0RXFrcWJBMGN6R3hCc241NVE0UWc2QklMSXkwenFlSTNyM2luK1EyY0NyNmNiSWpyWk94Mmo1cXRkbm1WajdhUW96NXVpME1nRTRSS0VlM1R5c1JYMDBWcjY5c1R4SllIQU96SHBFdEVQSkR5cUUwc2pCNU5YWjdOQWlwS3BDUzBOREZ3MkRGZ0NSTXZrSUxiZ0Zlb0FFaU5RcGN4R0FtRWx2RkJreWt3Ym5PU0UrcHVHVnBvOTlzRUFJVGZ2QzNWRUNkb0M0MjlPUG45OVZoT3lDUUMrWWZCakxxQytCdWpNaVFLaVowdW1rSXZpaXJ4QW1JMlhVN0xtU1FyaWZDbEZJZjltOGUyaWREcElzVUVCeTVKQW9ISmtUNmdiWkdjMTZaaDdCeUR0cis4b3JWd2sycXFSb3B3WGREQmVhQ0hjTkhkemp6YzBMQlBkL2FIQ0FPQ01VdjZRME40Z29wUFUyVEpUZkQvVHdKb0F5SlJYaGRrakdTQnFKSE1zWFFLMXdmZ3pGdkNkZVQxbzY4WGNwNVNrR0tmQWozRlhsWVEvMm1vVEQvQUsvb25sdmtKbWx5Y0ZYbFNKVmZ5TjZBZXdPM3J3RHhRWFUrV2pTU2NBalVRRDFtMUNBMFpPdXNpK0JZVWFrR01jVDhqb3BrYUtSbVkyN2lHckZsbFBuWnlaVGFvd3M3OUcrWEVheE9kRksweXkvV3hscHZpS0FZNnpTSHIzcWUyU0FkcHlNNnRldXpLaktwSFNscklZWWpnQm85WGZxc2k1YTh5aDFVQzRrZ2lYaUdvYzRCVitBZWhXSXJQeE4wL1NDZ3lSY3VZeC9zNGdXRzRGb2h1RVNQb1k1RlpuN2hVQzBkaVVrMjYxeWtSUVFHRjY2bUUzTFdjY0Y1dm5aaHliU1hCZHRnTE93amFQR3FPRm1mMDFTbk9IUnlSYVphdi9PSGk3eVFBWkR2RDUvMG03d2dDNWJVbWRCR1hYMGU4SzV1YWRHeHFmenI2a1ZYOUhJVE1rTWFBN1dGV1NkeExoRWxHdEIraE04d3V3NWF5UTJmRTMwVG93bm1rc2x6eXZTRUIxUEZtQXZQWWdIMWdCK2duNkRGZ3ZZaG5aRTdLWlpidWNkT3ZlZ0tuZ2lNS00xTU5oUWlTTnZEV29XaWxjeS81RHR0S2ZSWG9tRHJHZ1hwWWZUNWRZdEhVd1FPblF1TVVBTWlVWUx3YjZYMk1BRjVxcGsyQUpwa0VqRkV6Tkk2SXRwak9YdE1mOFc4NkMvWWpXSExHalk5d1JvNTVFcUJIVlBBQm5HaUJxSHI5ZkliT3pQaE96VlNwcDFGOER1eTVUMEVFMFpRakhJQXEwb1N2cDR4bE9hZnhQK2tUbTc1eDBDQS9pK1pDTEhqcmtsZFNTQVFnVVBVVGVWL1puKyt4WEhtMHdHSkJ3TFRET1NKcXJCdWtVajlaT3FKdTYvU1VEUkphUTV1TW1BMUJvVWlYcHVzWlAvVE1VVEVYL2F2UHFudUZmemI4ZGRXR09rQ2Y0empSYUw3M0FWYVBYTnYwbGlOTjFyM1dGek9iZm9FK21MRmU2bE1BTmJMc0lveDZZVnlBWllFRUNmUndjL1VJR3lQWVpESkNUamw2TU5EdE43K25NYURNQWdhSmFISWlWZ0prMWp3MmU4Y3FmcGRRY1JNYU9vSjdoRExpT0pBTUVpWlFiazlTbElmSXFBL0F6UWYrckRFQkhmT29rUSt6NUdkbmdDaVlzK0w3RHdPTG1FNTJUay9ERzlKZy9lL3o4S3VoTUVwQVV5UUQwSzV2cmgvYmxDcFZsZjFjQmFFb3Q0YktTQVV5cmg3eHJkbkpUeXpZYWtlZ042V092eEZVM0NjUVFzYUxXbzlJSGZrekhaaHdMWUZCenVHQUF4QjBJSGlCSUNrOEEyODVSdSsvcDBJemN5anBGcW1wZkxELys4bGd3UU1yb2FyMG8wcS84bEFGdVNnQjdSS0dUZEhLSkJLUU9lR0lEVC9jYjNOczh0NHlwUmhidlJlTVJRMTVhRlVWT3dkNGpPRktjVHl4TUU2M0ZBSWpUWkp6V3kvU1hETUFjN2dVRFVLdFhTRHBxaW1tMXptMUdvb05BcTZpYlNtMmY5TEc2djVaQ29KeDBrUkwreWIwNUZoVFFMK1JPbnE5UFgwWHNBckxtV1ZNcHg2RW80MW9SUUVVSGFLWFhRVFZvdlV5eGsxd21xYS8zcGc3QUhBcy9XUUlxUGZPUWVaWXhRYUk2YnM1c3ZDdG50LzdVdit6QXE0MnBuNGdEWHJzNG5XZWdkZ2V0eGdtQS9sNVVmUHdyQnZnd0xpc1p3TFg2UWQ5aWJUVklObm5NeHJDYjJRWEdvZVJzaCtUVlRudlN5UkhQODJIT2ZuNzZZWDZWQVo2ZkhJWUZEbk5Qd0t1RDBEQVVsUVJZcFFSSXZRN3A1aWt2NHVheGs2eWdXOWQ3eVFDV3pvQVJnYjlnQUNvbFRWYTRqMHJaNEZ3UGhtTjEwb3lOd1FnZDVuWUFlMThudkRNQzVFazR6MGh0WDdhU0FRZ0IyYkVrZWNrQUR3K1hETEN3RjV0VURFQ3R2dCtIdDlyM1hYd0VDTFF0c0llK3pkR1BzWS9ETUpZRVZheEtsQmJVWlpIZ2hYNHZHYUNXMGlVRG1KTUMxK0E0YTIybkRvQWFTd1JNbERUZERTNGlxS3FkWkpENmVpOFpRRzJKMkFaNlBwT2ZNUUJmYU9BVjdpTnRCMFVBYnVIVkVSSWZJU1JBV28xSTNlK2xVQ0NFQWJ5d3pEenVQSXNGSDh0V1dieHY1eEFRR3NhU0FiYlNMaG5Bd3pxVEFVS3JOem1xS255dlpnRFFKMGNJaG81N3NtemZkUGVhb0o3LzNBbkt1aFV5UkZjWlFGb0JnZGdnOFN1RW44d1cxenpHOVM1QWl3RzI0SGd1cDRBb0ozVnlKMW1TK2lONnJ6R0F0RDJoNC9EdHd4TDBjWU1CS0pJNlJhR2FrcGdqRndCUWg2RUt1NHFIZVc3TWpiaTFCODhWUUl6UU13N000RDhwNFNTVzZqSVpRQmNTQnNIVGprcmFqdEF1R2NCZXFNMEFqVFFvOEpvQ3Bta3hnSHhnQVQ3Vi9JVE95NzRBaVBaYk1VQUFPZlNDUXI1bFVhQkNZcUFsdUZGVGFkcUhKQzQzMFVFZmFKOVIvNk9nWGltbm5EcHNOYWtYVjN2NXkreTJTSFlJM3o0UVZCK1hFc0NTRWpEWGdSSGNaQklIQjJTR1BJL0MyL2dxWHdROGh2YU5RVytpK1haUmlSMnhkUEQzYzZ4YnRUcVJmVFc2ZW8zUjM2SUc5c2tBQTdZTEJxQUVTZ2FnalJVNm9NeFFSYXZEcmhvTUFMVSt3YWVubzM4SWVZa0FqSm9Ca2hiVWNMQ2ErMU5mQzUwQlU3cnBNeDJSQnpVa2N0c0dMeVFBdDVrT215Mm85MnlKSXdiSkFJVGVoNk1uVG03M0pnTkU0bkNXcGtCa3p2cUtMMEFYWnpMQVVDdGhwUVNEeENNV0hpVDFlWTdQY3JVd2Rub0tublFraGI2L3ZvbGI0elFUNDZrRktkWGd0T3dTZVNheWtBaXJZekpBUDFxYkFTaUJrZ0hvcVJZZGNHMDZJRDByemdCb0ttZWNQdktVaXdWZzMyYUFIRkl2UDFld0hkNlhrL1REMnFGUHdCblRkRkV0SmxPVTJBQzBLM2pNa0ZNc0drcVNzR0dxNWNuWGVtRk56c1RoeThpWHVMckdBRkNkd1FDd2hYZFM0dEdQWktIVkRPdjFGSlRUUUc1aUdtSmxpQ0J0U0dCWm54cHA4YndMVVBseVgzVHBDc1Vic1FnSU5mOEM4dHBpQU5zMXBqRG1yazZHeStEem1peWhLQkhyQk9vNytIUjJuQVVmODlIS2xEZVhnSHVPaGo3VDJJNWh1YlcxZHQ0VCtqT25YZ29BR29GcWhMdTB6RWNVMUt2bFZMNU1tWXVtSVBXdDN1ejJHaFNUNFZVR01JOEZvYVhuYnBtaEk5RFFoL2tjOHR6bXlMZTd4RHBxWXVZQ29HUUxlbXI3TUZoRDVsZTZaSURzK2hTNXFmTVo1dDMzYWdtSWRtZ3pBQ25uSCtWMkhiRUF3ZTdXbzJUa0kweEVZeTNXaHhEdHo1V01Dd0I4bW0wbE1IZnFwaEpSOWNhcjFaUFUyc3BUcEhpdXdpQnlwcjZMOUVMNGxNcVE3M0tLSXVPWGhxRFhUTFNldlpXNE9LbTJDd1RWTFFiUUtNOVAyc0lyTlpKWkhhVkhxUU02SXo5MVlSSzFlZnRLTEhvYWZKeDJMQlYwL0FVREhFeVpDS1d4VUFMWkxoa0FqODhOV1ZoMnNXd0FQa25KblRvQVlDdXMwQWJxME5TQjV6SmtwMklBS24zRmp1eVRRZ21PZ3BvQndvRWNsVWMyWVRmdzVJMi9ZZ0J0S0RUUE5CdXRtNmNYTkFubGkvMnlwUmxrWkFndzhTOC9ZNEMrSVo1YkRLQXlrdWdNS3h2RS9HSmxycVFQVndIR250UFlDdGFGL3RiNURRYUFLRmRWUEZTeGNodUlkb1VCaHRCUG1wb0JFSzdNZjlvTVFMdUxjZkt5dlFDZ3ZiYXNyelFFcFpldzd3M3FTWXNCSW9RRTlLOEV3R3BvWU4xZkxnSHplVkhCYXRwMkJ0SHpXVEVBMWYzOXNyMDNDRHFxYi84bUE4QmowYU5Tc21KU08xNllPZ3lFcEMxczlJblJGa1NxSWU3WjZla0RwTzNYU3dDN1dLYVgxcmpxZmFWZFpRQ2pYc2tBTytDTjFKWUdRTktneFFDeHEvVUVCSk5JRTFHWVZNdEpSMU53N2R4SkJuZkprRHJEQTBwZGdQNldVZGVOZllUcnQ1VEFLMGs1ZG1VRnE5eGllTHZpK01XR1A2cHZIYUtsU1ZCNThUTHZjV1FKbzkwQjBkZUo1SmNMS1FKWU1oOXBnVzBCS0l4RU1BTlFneTRaNE9QakR4bUF3cGhxd0cxVGNESUFBV25jMjFyT01OTUJzUlVrb3J4Z2dHZTNCTk1teXh2MFZ0RXFndEl5NXZhdjBybERFd1UweDVJQkVLeUltRWI3WUtvTk5BSkpxdVdMYmFEN21wS21aUjc3aTRDUU12UWpLU3dtUDJlQUtnQWxHSUI1TXd1UkhBd2dscHUwQXpCekZwTlVJeXFrbGh6QW1xVkpWSVo1dlVoRDRDeURMd0k1KytzbGdGMllqYUVHL0E0RDJBVDJNQ2RtRFlRWEVPNEE1cFFvR1FCR2VlNW5JeTFRZThTS1NkY1VxSmhsNGR5SkJJUzZYbFVNZ0xoK0ZPU3EwM1RhQmpxOWN4L2hmTkg0aHpveFYxU3lTTlI4dG1TQWtzS28yVVNVYURZamk5RU1RSzNFd1NRRFlCeWNBY29sYjRsVjdHTHBpS2dvbUU5NmhSdmxuVmlxTEtBZmdYTy9aZ0M2ZzIxQitRMTM4Q0pkVk00QTc2cVh3Z3RvWW1Cb1dXWDRDRi9UWGVkTHBhNHRNMjk0eDJaUkVnbjY5SUs2bXkvVER1TkdQSzhRQkJUQnUvWmRoSnl5ak11Y0xaT2psd1VUdlpiTlBsSHoyUnluMkNrcC9JTUM1L2t5Q0hXSkdIc0F0UmpmWXlzNThhR2xLWGdVM2s4Uyt5b0RjQUdnRXpEZGdtVUFwbCtTMVZaK2d3R2VTelhndHhpQXRnaWNGS21hNVRRaEQrMW8wMGhZQ1FLWldYNVIybGlxbGd3UXUzcjZ4N0Z0Wkl5Nnd3N1RGOERRSjZadlJ5azFTZ0JBM2dlUm52UGJBYUpzV1V1MHlHREovV2dSNHpncS9zUDBBS21Ud21oVzlDUmJGbTlCdkxRallxQ2lKajYwWUFCcGRmekRWUWJRbDRKbVNDY2c2Mjh6Yk1yaWQzT0daSTNhb0haQ3FWdGRSczRGOHowVDNac013T3ZLNG9XbXhZVzFpWk5vdmRLWnhFb0V0RDg2Z2Z6UDJOY1B2T1crcVpwMGlZbzVIczI1d3h5VWtSUms0MUl2cG8xOExDQjVSU0V2SDlBdkFrU2pPV1pxVmhkTVJPRWpPYnNWc09laHppUTFLWHhDMng4ZEpab055OGd4SXJjZjBXcDhhREpBSTgwTFlwTmZyekdBdTVkODdmZU5sSUU4RVNSY3poQ3F4TWtBZzRSU3Q3dUFPL1RENVUzd2R4N0k0b1U2OUM0V1l4S2RPOXJYc1djUVFPNEV5ai9mR0xGVE4vWm5qRnlpWXF3SW9UVENEb2sxeEk2b0tIOGp5SUZ2S0dYZlpTay9NNkZySTBDVUxXcUpubG9GRTQvQVJyR3dYRGFDSFVocVFvMElSSnJ0czRoYWtCdjNUc1pvNDBPVEFiamlSUXdrOVAxckRCRDIzajZjdDB4ZHg4aEdGS2l0WjRqWHFQMHFTRUVvZGJ0TDUyY2NMbStDdi9OQUZpLzB2ekhEWWhJTjhZOVpMUnhBVGdLOUZBQmZLblZzYVR1dEoxMFdlMlVWMHoxaGg4UWFuaEpCQ3JzckczZ2xpM2tDMkNoTm9Tc0FpSHJ6SW1sMXdjUVpvSFVuaHlkbW84MEhwQ2FCODQ5bFdibXhlUEltbDRaTGZPamQrR1lVTkVxSVpoMmtJWW1XcXI0c0FEbHQzZW16YjgrUS9kRjBvaUJGUXFsYlhib2hpY1BsVGZDM0h5aUxGK0p2RjRzeGlaNkl2RmE1amZ3WWdlcXRBTDRjTGJiMG5zU2tpMTE5d0xLdGppOWhoNG8xM0l5Sld3cWtrL1VvNFlpQzR6dzBLVHoyeW9oMWU1VC94c3ZzVmdWd24yaFJsQmNGWnRFNUlER3VML25IdEt6ZCtwYXlKNVhESy9qUXUvRnRITVFQMzhxV21FSTZPRHh4RzlMcmxkcCtlNFpZYmN0dktDSWtSVUtwOTFXWHZINGVMbTh5TGErTDRvWGwzMENZemppSnJFNHZjR3RmZU95N0UyaVpmd3FsS0MvcjZXVXRmbGRsUmpFekFaQWtOQ3IveUl2WWd3Y0JpYWhjRWUrUVJVU1hJUXNDN2Jvc3l5UVdhRkYwNXY4eTViSFh0STQvd2xTaFJDeTBqMnA3Mk1hSDNpMHZrVkQzUmVIbHNoWWlZZHVKdFpKWkJ1UnBBdVd3Y2lXT2VxeUNSTG9pODBHU1lvbDFhN2tzdXhKSnFpZm5UUXBndGdGRzBZaFQ0NVJoY2VVQ2NiMjBRdUNiQVAxdWVCS3hpbzV2eXhhMTJERmxTNFE0Y2FKWUN4SUFkMy8vRm53WjBCbERpTXFQeEU4V3JNOXlvbUJZYWdNSitpM0xKSTRMdENnNjhiOHU3bkpYcjJHNS9DT05sUmFVN2ZrM0tnTlJHeDk2Tjd1QmhXVFo1cUlhYWhSckQ2Q2ZiYk01R280VVI3SG1CRlZqRG1JY2M3SVloaDQvT08wZUhWWnRoNHVUSFdpTUtlYXpLcWVYM0RxclFIUHFzL1FvYmVBczBVNndGVjRQNjIwVW1rYjVXc29QcnBVc0tPcEttSTBQNlpZQU9ORVBuaExqNXRBWlBTU2JiWjVpanFGYzZTaUNkVjhSKzRGQVpXZVpSQml3QWkzcXVPM0V3WVZkVDhOeU8xR3hnRHRiRFhuU1NKWittZm4zSWkwV0dXQi9EUTJOclNNelZtUTk1S1hWT0E5c0lEVDhsSWVvaDUyMHR6SzBtSU02M2NnMGIxQnh2S1MvMDBaL2dJUFF5R0hXaFp2c0FVdjJXZlhtMUh2am5HUUNKWmxlcVZlYkdxWHprdXdkRmYzMzlJOTdxWG1qOVd5Y2dIZzN4TnBzbHpOWlpqVG9ObUVCQ3RUZERvemJFRE1SUFYwbVVlalNwQis2cm9waWd0UENJaEJwb3FveWlRVmFkTkxKLzVXalJhNHJodVV5RXhsMnNBd3NuSVFKc29hU0NrS21aZ0F2ejR4bWNoS0pGMEJtNkpaUlJCWTB6dUxQS3NMeHkvSGcrKzlhK2dOVEh6V1pXWndRSm1NaXJKK2ROa29OekJXaHo5SFhHSFNaMUFFbDVRNUVucEo2a1l6RTY4RU9ZMmVkM1ZxUWxEc0ZaSDdhZTBWUlVvclBQWGxDRzJCRXJhRG94c09wc3N5b0VBbm1CcGFnc1J5bUVia0I2UXYxZUdWcFZBWURjK3FsTFVMMTZTcmpsUnIvYU5hNGp6S0o2ZkhERWZIRzVQK0NmRkRFYWRZK3c4V0piUytZeHVMUCtMOWdpd1NUSTl5NGNnZmN5YTROZW9mUWlETXFxSzlkU0N5RzlZMDJwQ3JsMkQ1ME5meHE2My9JOHhKenNPdVRSYmpFRU5aRHA0MU9EOGFDZkJkYXBxYzhkMHJLWXFlOVhia01od0dmc3RDT29oNXNwOVU5V3BWRmEyWlJVUlNVT2pNOEJDbXBtQlFuQzRwQ1FWTEVJbDIwbUxrRkRGOEkyTUs0cmRlb3ZORmpJaVc2OWQzZXRkYXNTNHRXenJ1bThjcUJ6SzFwVTVRNStaaHoycUFXeEJjNUNNTGliZ2ROWUZya09SN0dyT1VNZUc2a2s2akMzMDlrQUdZZmZBS1JNS05ZQ0R3VDdpd0pEY1ZjQ1RnRjVqSjNheXpNMjlvQk1rK1F6OEhPZ0pQRkZyK3pKaFlsYlVZcm5TczZ1cnBUOW4wbUpnSmtQUE9RclZoSGFjUWM4WnFiemFQUm94NnNFTFhkblVWclFHb2o2dHhycEhRVFJNN2FsUWdiMHkvd2tHcVdHVVdxdXpJYXd3aVlEQ0RUeTZLaCtzZ1J2SWdBVVI1dEZpcUUyMWt2RitKM1NnWm9XTWNvOG82akF0bW5QaVpqUmNjWnJEWFFmeGpTckVLRlhKSlFoTWdkUk4rbjhRcXJoLzk3cDJNRXdlbWF5TmowcGllaEpIc3dqc0pDa0dZQnFOSW5ScklFTTJBdUsvTU43VnRSazNrMzUwckZ0TEROWExGM2xwcHgwRUF3NFI2c1JrQU5CanFKbHladE1LczR2VElsb1J6MmVyRHdyOVhkY3k5YVExUURLNG9pWmlSQ1JDTXRwZHczQzRwNnpZSXNNN3A5L1JrREtNVUJTcEVhdnZnRHRCYlo3QURWQm5rWEdaaE9CcEJYb0E0UVpSSTdoYmV5c1Fwa0h5UXFRU29iNXVFODlDdGNCc3VGeTFQdFgzaWhJYlRCM3d6aFIvU0dXd0l4c3FKWklDczI2TVkwUUxKR25pMWZCWFNUM2NDa21ZZmVPU21STEFGY2hSMUJZY0NOeENjK0IwRlNRODZ6OEU1anRPblA5UWZ1YUJueXNrNkRiWkM1NVBXRnZBdDEyalVIKzRNME5iKzdVbzhlOXV6dW9CdVlKMDVHUnp5QlZKNERzNnhkT1Voc2hQWWllWGhSWnZUK3B3elFETTRvVThsc3FrUVY1ZEd5TW1KVTF1eVVxWDg2eUZQQjJtMll6U2dUbzdIT3EzVmtIaThLbUI3S2dJeXM0SlkxWkUrTThFZUF0OGRjcVFBQUEyQ01HcEVoUWlRRDRETzhlaVVTMVpBVkpsY005TTIzWmpRVTNkV09EWVVpaHJla3E5eG03b0J6OEVEVW1lakU1c25YTkxLV252bmdWSnRhamt4bkFDYUVBMk1MdFZqWWhuOWtySTRlQnRreTBGckp4KzZtRjlHQVNXcFFhTmZXbEZHdE1XRS9XUVd1cS96M1N3WkF6dnhobHlWYXBhTjlWS1lZYjRobnh2V1ovR3RyTnBlaTdOcGFvK1htUURzb1VRbFVUWjg4aUlwSlhkWVFockJnc1JFVkZ5WCtqVHQ5TEFIS0FCaTZ6SXI5WXFrQVZXRXBYNVNKbmZtalpBQS9CRHRVRlN3VGM1QTFtWTFWd1JiV0xWTUxBTG5QUHVXMkozMHhCdkNVa0pHOUdvVnRFRUV1MUp0VHlBRng3VVZyVkN4Uzdocmpnclc2aWZCQ3I4RmNob0hhdmcvVkhvVzVGaVVENlAwRzhqeUxNZnNwQStBNnZlVFhSMnNHTUVFSGxkcTlDcGpOWG9FTVJhRUhPclZaQ0tLSXlrb0I0QUU4UmFXaU42YXhLaFFBdXo5REFzZ0Fjdk1NWGtlNWFNMWRvV1FwaWpUM3J6SkFsbk8vaHlDT2NEbHVRR0lPcmhjaFdUMVVDaFFUbGpIRko3SVI3N1NoRktBbmhhV2pWd1NOZ2NTc1FHQXJYbGQ3V1Ewd2daVlJ2TGpFMmpqNFFRV0VaOVpYdGtjdXRiazBad0RweGYxRVRWUGVzSDNKL3drRG1KVUt4bUY2NjVqbTMyb0xOUWgwNy9VZHRYWHlxQ3lVbmNpdzNGd0RsR0ZNV0lCVlFnRUlxNjV2QTlWMEFMMGpzbUpqM2RQa0tMRldRV2VERjcxZHNrRVBVVDBnSGFxQTJVZUhWcDJSQ3Q3VmtyS2lzUUEyQXlUOWlpUE1sTDlZNEg5d0g0K1c4SUJqWmhpNHJFTHhET3JXM1ExYm91MmNkZWptY0NDK0RJUXBKUkZrcEwxUUxoR3AzY3Rkd045bkFGUTBNOGNpelJ0TExsYWk4cUFvdEtMdGZGbVBGVUQzSGNVYUVGbjIrNDFYQ0NJODBWU1pqclhTRVBTbUFuK2xJOHVzMkl5NFdQZENXWWthQkpjWiszWDNETzlEaHROZUM1a2ZhQVc5ZVlRYlltSkJSZ2tSNEUrTVI0RUJqQWpBOHRoOVdPTmVnUE1HRWd1ckZoK1RZVVhsMnpub2hPMlNBY0xOOFJLeUNwalN4aVdBYlhKVUdjSlRyWXI1L3hFRDdHRmpWN09qNVptYkdlRlVuRnZDZzBNelozNTJtTklDMURZdnRNQ01RMXl3UU1QU2cwVXRSOHE2dDg3WUpUQUFuRDFNMHdQN0YrcEFxb1VrcUFKTzlCREVpN0pOTUJGRVFQM0FRVFAxMUZRQjBJdkx5bExObHZTUWRicklBSE5weXJEYVhBS2dpQktCM3g4TGJ6OW5BSFpIYXpNQTdiTlJpaDZGTEFBdVNzQ3htV09aTEFiejcvK0tBUmdzQkhNWnpDaGpGK2NMRktPT1daMlpDa0Q3WHJFUHpCcGhVVG1PREtDYUUxdFRNWUNxMERsOFFrYnU1UXVJQ0JlRmExVjdZT2lESDkxdEtTVnNMaWtqQWdCRmRHc0dHREFmV0t0U3diblVBVnpzV0czS09WRlowWGFYUzBCN1pXaUsyaHRiczVlN0RqQU1lMVBvQzZKbFpMWFkrMGlsM2RFcGFMMEpUNFZ1K2RjWTRMVEp0UmJCdnI0UkJHMDZBelV0Y1ZiUE1peDNFTHM3VFBlb0VSWXJnRE5BUDFyTkFLMHFvT093MDdjWjRPTWFBNWlOd1p4cXpJMWFBR2Z6MW9PR05rdGNWdDBRU21jd3dPVXVnSXNMeTFzNlNLekRobFU1OWJyaEpGTjZSRGZ1SStxcDVlK0xyZDFLT21Odmw0dVZna0djQWJKWEM3b0dBenh4SHlsc09qLzhQUVpnOFhsZjZHZStFZnlrT2RpVWNxOHc2YWhtcW5jVURiNEdxTGdqQnRxZEY5bk9KUU5jeE9yU1UvZDdESkFaeW4wOUdCYlErUVRacUFESXFmbE9tbHYxSFptUnZEdmp0R283UUlYV0dtR2JDWnJxam5PSEREU1ExTnhVd003Q2ljSUpwRHYranBvUmJlMEw2OEJnVjlnQjdsbWxjRzBKdzVneFR2M3JBeTRNUFFkeFpkMFV6ZkR4RnhtQW54bnVPcXIwdHZTQXNiMktOZ1BPcFltd0VPSnlxYVFwb0N5Y01TTzhhMVNuNktRU2VKVUJ6TUgzOEhzTU1LME13NmdUVkNiUGVIUm9uQXFBYzgvbFVwcTVsY1R5dXA2MmcweVVER0NSWDFsQzdueFdxNEZRUkttMzYxVVdIMVN0S3NCV1U5YXpzd3BWYytjK0cxVkZoS0VhVlZFdis3eW1MYkh2TXNTeG5ZZktRR3pKZDJsZzdoOStud0VXUEZyYVYwSWlFd1JnRnJjc002Y0tPVXNRTmcwM2daem05QTFQRU1Qc2xWYVlFU1RMMEJ3WndKQ05QdG5qRFFhQVQvL3hOeGtnTXBUajhlMFEwaXovS21PSEZjQ21abUFtWVFlZzdZYm1Xd1pKbUMvQTR6M056dzFEdTZiVlVUdnVYUDF1dFBqWUhtN04wcytIaGlxUkxaUkt2NFYxbjhNVDRkV29EaDRFemExU0gxNGZVYnVUV2VRT1RlMGlndFpFODdZcXZVbGlRUGNDNEdITzNuWVZUVWpqdEQ1NkxJZk92TWV3dVp1eHB3QUx5RFFwcWlyT2lvekpyMFp1VmxvQnZZdkNHZUtUanhDbWJQQ0xvNEwwRlFaQVVOZnZNZ0QxQy82cUdlQXhDMENyYVZJTitIT2Jta0dDL2hweVdNc3hyKzNqQWphaEkwTXdMTXNqNjlRL29FcjlvQUgxbEZTd0JKSWtJRlJVZlZQQVBDdmNBQ3dlM2R4VDF0V28zTjIwaHQ5WFRZSmtjSE1IcjBzbnNieGtPcG05ZExqeUlOTVdEd253a0tkNGZIclcwYVUwVnE1b2xmUGJ6OUxyaHZnNmRMRElGTW1NZDQyNks1N20vNmtzTGJXdkMyZXd5a09kckw4TUM3OWtnSy92UDJXQWoyc004UG9XSmVDQkZNMHFVN295Z1A3YU5ZZVBISnZzTURQTXM0VkJCa3NkYWFiVWd5KzN4eWxSMWtUSXNsVlI0YVluTGJxeGhmSnFWRHNQZ2piWDhRaTEzRks3WklVVWkrUHBkQmttZ3RGbktFT1VEZ2VyMUpVM0dQREZTc1owayt1VlJDMjJ5dmtKb2RMdkRteEFBUlo0ZWZONFFFeHpyNXFRYWY2enRKUUhSNWFsTkxMMkFndHZHUDJ2TThDUFAyS0E3WFVHSU1LRm1TUDdOZ2NoMjdpa3c1UEptZHkzRENScFoycUJZYU9HRWRBN25SR3BKN1lLVG9tcUtvcFhmZHZ2ZzM3YXV0NDlLNnRSMGZGeVFzaEp4QlE1ZEdBRzZjbHlPN3AwSWxCTUhoZUJaaXd6OFk1SFZaVTNCT0ZINHNGUkg0RXlHVUpaeDlZdzdpVWlieFJaVU95eWhjd2UvdXdCVzZ3d3hEK001SStJaGtYaGpBanh3ZnZ5b2NRUjdWazg4dmNZNFBFbUF3akJ3L1JhNlFCbjIzTjdnZ2t6M2JMSzFNWnQwK3VkeStFQmFuOUdKdDBtRzdVSmorS1NKdlFCOWZBbjZ5T1ZkWkdpNnR1M1Y3alplaldybDZxYWxVMCtCa0V6Zk5Cb0dOQUJDMFgwZ2xzeS9GTWxUQmxxeW5ESlRWbThKQXFEMlIrSThVYkFNU1loaFRFbVk1U1hZcGtjaHg5T28wSUhxVXRNQU1EblJBQkZwTHJoL3BUYUNPdnl3a1RPaGd3Mm5wallBZjk4SzM2UjVXTi9pd0h5UjgwQTFKSTk5bXdKR0FtMksydXp1bm1oeHg1RnFDWFBNWXZYU3VaeVZBWHNESmdpcks2bkVWbkdHTWZKT21OT3ZXZlNOS04zdGJIcW16U2pGQlVnR0t1OG1sVVVibnJoZXNnQVlxT2hVeFVORWJEV0k5Tk43Z25LUkxDNU5pZFJYYTlJeitIZlh1d0lIRUNFU0M3TEdWTnJPekErSzg2SFlDOGsvU3gvUUhSQXBDVWlobkZidVJXUUh4YTl5aHd2aWw1MSt2OHZHU0NEVnNxTnF5aHJaZkpLMUcrQVVHV3NyYjZ3UnJOTEoyZXlpR2xHWExLaVR2NEhHVTgvbVlQam9wYVkxV2NTZ1lkSTlLeHdzd0dOTmxxTWF4TWpyVFRhTUZvOFFYU3NrSUxxaWs1TE5CQ1VMYWZiSHZGeUlEM29JajhUMFZVVUJBT2hMTG9sWEwwcGhtY1V5bXpzWmtVMVNodElIaDdZVStramVYVjZ4L3llR2J3SzFKNUE1M0IvNjVraFBoWk8wK3RoRTJNR0lKQWZCY1QvQWdQTUdXYUdlRXNZbmVhZVZ4eDJBbXBFVDE1bFNtZWdvU2FmWWs3ckQ0MjVoaDN5RWd5THZXbWlXd1BTTTdXcDVjMytFc3J6T0VqR0V6aWZnQmRoYkRzbUc0R1NXQzdjRlR2VEJySGFCbVZhTVMzK3BEb1FzallMZ3BGUWlHNWhUSXR2eHEzVUhvUnkyWjR0TWhVblVkOG9JcU5ubU1TKzJ3dUZrMXJ0K041TlA2TXFwcnpYTUFFK0MybDdZVzZBQXBFY1FPai8rd3h3S09NQjZPMWp2WHNtMlR2dEdYQzVZNUxPSEpLbkI0eStJVVhCQVpnYUxvZnhRK21QT1hBNTdrSXcxbmdMNll6VVNJbDh6YlY0eGdVNmlYVEtBb2Jzd2lLZ1hkRGdHRW9CQkNWL0c0ajNraE5aVHMvZFg3UGNrT3NJdklmNHNvclBUalVhR3FJeUtrS2NJSlNqbWVFQ2dydkRIY2Z6TUE1c29FeUh2UWZUR3orUW40M3hqR0xuT1BjWVcwbjYwYUJwbWxtVTNJWUI0TC8vQmYyREFlYnpGZ09FT1NPaFJja0E3dTJMZXZkRVJtTUNtNFlHN2d5aHFBQS8zWDJ3L3Q0c3dBaEU1RG1rZVV3MGJBMkc5V1VPalZvM0liaEV2bWEvbHpaTUlyblNWeUIxMENNblFUT3lPdlFzdTg3ZjlMZTNFek9Bb2JmNFBwVzBWSHU1N2FjNXNhajV6bU5wYWxRUUxWa0RrSUpvQTVvNzFLem4wQUVWMnp6QUdHQzMrRHJGR0VSak0xd054WU9tVERySHJSV2g5ZzAyMmlZQldEeGU2WDhIQy9Rb3JVeGdnRHBmUlNZa29UZTg0N1hyTWJKYm1CYXRwQXJWYm1ub213RjJRbUZzdVhOMC9wdDJwTlRtV2wzV0lWdWloVVptNmxFVTRjdXE2WVk2SXZJMSs3MjRLUXZ2RUpqRklzYmN5aThCM0VmZzR5b0NMUENSK1J0QzlFSWJUUWxuaE1ScE9WT284cTRiTSs4eXVvVnBKckVmWGcrS3FJcHNkSVVpT3FkUmF4YWkyM3ArSUZFQTlISmxlalBkMmtZQ2paMTZrbUNHTHd2Zm14VkZOOUI2eEp4QXN2NEwrY0VBbThLRWNjKzBBSFcrQ2d5eVIwN3dCMGViME1BMzFxVzNsWlJ5blNBVHQwNGsvY2RwcWZKcWxJazJSRTIvWXFkdGUrOG93bWMwUW1waXl1MW4wQzBzY203OGdjVUFKalU1eWN1WU85M1FBNWdCOHlGNVR0ZTFwL1BoSXRqZWo0YU93NFN6bXlzMmtrVnZmU2dZb0lxTjBmUTB4WmxzaktsMEw1UDVIUVlyY2FIUi9jZTByQ3hmOU80eGxZanhkaVZQcUMwQms0d3A1d2V1QUxZd3NleUpTb29FWVdoQzdEUmhDRVdRektQT1Z4RUpTZlFINjIyeWRqMnNqTnpiakZWV2g1WnNHRU5BVEttSGpRRXROS1JzUGc5a2ZJeDYwdExwdGpaeUlJUzJCNXYwaEVhdzNyOUJ0alB5WC92Y0pqK05BdWZObkZtYkVkWnVRSkE1NW93RnZTZ29nWVdvY3YvaVlSUmtnTFpGeWd0R2lFYUZFOGRYR0tCL2xRR3N1dUM2bjVwVUxBRnpBb01pb25lZ2RTU2FBa0RBaWoxckp1L0FKR1RlOGk0amFVRnQwQnhrcHVuUkJONlVQbHVuOEQ4bEEzeWZZbGVKeVllOEFOQzVjbmZqaXBiK3dCSDhlTWRHS3lzRVE4N0hQbmtEYUxCaGczRUp5dEV4YWVrMjdOcExrdEh3SkZheUNwYUxzTXRDNzRYMW1NR1J1cFpaYXY4TmpQMllLTnFkYXkxd09aN0NrdDdpaFpBTjJYQWpJRUhPY05WM2FaSGxWbEVLeW90Ukkxc1pDdEQwS0p3anUxdWJBZVlGQTFnWW5PVlJkNkZ1U1ExWCtNOVRYbkVGMGVKR1o2d0RrWURQM3dWK0MwRFJNY0VIcnJqSlQ4eWY3ZFpObUNodnorMWt3dm1LMURESkFMWUJmbWNiNHdURGRFYW5Kam1Zb20xbXRGWFJsQUhUQ09hcjdWamZ3UUo3RnF0QVZnamxubnU4ak14dFl4LzRlK0EyZ1U1dU9ac0JxblRYRE1ZSG5obXVtUjRDdDVpeitNYlcrSVNKcGRhRGh2Q29kRFN1cVFPNTlGVnpKQ09EUGU1eDNuY0dnSXRYS2VGWmZWMExxbEswOGpveGRPby91ZFppcGdJemxBeVEybmM2aE5WYlJSRURrcUYxYXdZQVVSVzVCb2loaVhpK0N3WW5BRmZtYWdJWHVpWU1pNlhKVUorbjBLQmNFeU41UXdDZ2ljREhxcHhGMlhVUlVGRzlyQXpLMGtTTjh5dzA5NnIva2Fkc0JnT1VxektDZFkrL3Y0TDhxaFpTYWRoQS9PTTdrUVNXVmlzQThOUmZRQ3E2eC8xdzhLelpvRFhtdXNucFlUaDJsZllENVlyTUM2b3NBZmR6azlZS1ZBMWQwMENGZ0JyNTdRd1E4WmNKcDBGUDJib1JIYWxwYUp0Rkw3VHRnT0dTQWVReGE0am1Dd2JBc3FTL3N1STRjNTV4Q1NCUlhXVlpXUVVsMThpOG5BSk5hYW00YmN5R29SWkxTdHJFNlovMlJvaU5XY0crUWdBa0ErU2VGMHNyeWlUcjdDME15bkJPSE9tR2hMdUtwcHdIT24xTmZNTU1hOG9BbmpwMjhuYzdwcUxacHd4SHFPckFlcU1HYVVXbWRJZDBNR0Nra1ZuTW5xSmVFK1FBZFNPdWhPdUZCOFlhQXlnN1lHbE9hNFU1RU1rQWpIc01Ca2hBVForMHRKN2VPdjRyQVpzYVhsQW9jM01vQkhJMEdJQVpjbTBYZ0VkNFVqcTZsREV4dEpVNXozSnRmTEpOeTRnNFo5ZklNTGxodDI0cFVpZFNPMm4rZlZRZlFXamVSMGhscEdzUytwc0FZSXZNbjI2eHNGU0hrUjZHM1pycDJyWHU3a2crd295NWVFRWJLL2ptMUZCdkxFRHlQeWcyZUtUaVBFSnNPcnNWY3JsMk90aFkrcVR0OTNRYlc4aE82VGw3VHhZa1EyTDVmZzJnWHZjOUtuSnpqUUVZQXJSSUJyQzR4MUV3QU5Sc1BBdDI3YXpoczRpR0p6TEVSRDFZbWVGWFZHOGlycm03bDhtYnNXTXVwZ0diaXEycGs2ektlWlpFOWZ3VmhHdERub2VXOXNXdFZIVEJQUWhxaytaZTYxN25MUEpXNms5cDZRTXFHRUN1alQwdmErbW90VWE3ZFZoZ1VBYlR5bzBkcGF1YktYUG5nQU80WTFyRFV6dXh4R29iN3UwQU1sV2xQREE4TW1OVStDNDBXUUtvRmpubXBUY1hUeFhhdTFYUGU2eTZDMzVqemljRDZPTGVSTmtLUitKWERFRHgzb3NsWUt6dnRrMEdlR2Rkang3K2dScllEcVhsTnREVkZZTE5MWkI3eFdsTis1N0VGYU1qN0xkYkJqc1d4aWtsbWJSbG1mTnNHVVQxRERaRThZVkdoc2t0QktVeEpidEliZnhyMDF4T1FwTS9wU2tQL01EZmJmb2pRd2dwYUN1bVplVkJ0dzV3cjJGOHFYVFQ3clhXVGJEU24wcEs1S21mSzNhZjVZZTV0d1BJVkNPdFltT0VKRFlTQkNLOUZPK1dYV1hYcUlwa3oySzVjR0RHckNkcnRsb1YzcEVEVnFBVWVsZVVpdGFRM1o0aDZUSWdUeEdpWkFBWjY1SUJ3SmZnSW5RUi9sR0gwdUkxSUJRcG5XSGhaL0ZzWFJNM2J1R255VitabG50cHdONUxId0lTU1Vxanc1OEtlaEtWZVZlNGw2WkdocnhIY09RckIxUmRwSGJRSEVSSEE4bi84dzliK29DaVlRdFh4UFhBR2pjN2JiTGI1aUN5dnZpY1V3N0lWQWFzR1Eyc3Iwd043dVdZWEdVQThzdVIzQmlKSkpZbS83RFRKc3BPNkkrQ1M5aW5LKzlvSFY2aWNjeVVic1J1SE9OTTdIR0RWY0d4RVE0N2JPWjZNY0x0bURhajMzaEJUaEZuTlFORWtHcm00R2lGMG5KT2s2MURPaU5mWDZSc1ZTS25keSs5Z1JoUnV2b3h2MGd5bThpNS8wcWlNaGhnRXpQK3VOZDJoQkFYY3NyVng2S0wxUDRuU0s1TnpzTmZRbkw3aWI5Si8yem1md3dHd01lWTdZY3FxcW00NkZZeU1LUHpRTFV2Q0Y3c2pvbWZRcm4xd1RtRDVBWTk2MXdQTXNzMTBrSWNQcVZ6YmZHUUJJTWdiTkJZZ3FYdWxNTjJsdHJGdDRGcmVTRmluTEVONU9adzBNU21ueUFpQkE4eUU3dnRLUmJTc1REbFBSaWdId3hBbUdnbmttTFdvYlNjMDF6WVFqcnZxWUFyaWF2Z08yNi9wdHhHeTBFUWRiUHhXU3cwS3lleWRpZFJxYlJSYlJPNjV1dzJtcmE3U0czOEMxY2ZpQjRrMTUvUzhhODArb0N5TWRFdEdXQVltam03VnpBb2U5WVhzeXFEQTFqamg4QksxZk9GMmhBRHpicmMrRUlzV1BDVys4YzZTak9ac21mTExFSTRtTm8rNTF3cHVERThLS3JZa2xTd1lMVkJwYytXMTRjUjBPanFOY1JHNk1zd3EwL2JxaUJmNGptK1p4c3FiQ3dZSGpEUmJpUlNqRkRhbk5PeHBYWUtNN1JneW1tTmpHalcwSkdTR3o3UTBNUVJqdWNUZVcrdEZ1UmNJYjVyZVk2L2JVYXpoMTFWK3hkUy9sOXYvMFg3Ri8rWkM1RDBaL09zbjJBQWwzV1BHRE5yVVh4Z1FybU9LTThGSzMzREpQZit3cTJlaW9GRksyWEdXbkhWb1JqY3YzSXBieXg2MjMwWm1qRmNiSjlaTVpjYnd5ai95YjA4TVB5c0xrZm5ZMmZIZmx6S2tFL3NwMGVsWFZFL0pITjhVMkhqejh5R21Va3hsOWRpZG5ScXBuVG1Ca3Y5SEpqV1h6NXhaeVEwSmJlYVJGTVI1eXlPaVp6ZFNWUW83aDY1azJzNC9maVU2VlZYMlpUT1JuZVMvSC8rNTMvUTh6OUIvbXdjV0t2MHF2dmR0RlZ6QjR6R21XTWVTd1hVZkpEK2pJTUEvYmtNRkF3Z3Z5Z0FNS3FBaW5BcDczdVFlQ0ExRkxmWWd3NUEyeDBhcmF4a1ZLVlpKRGt4UDhZdys1bUM3TlV5K3lFaEl6MExwR3prcjRxUURJVGtSamJNdDB5S3FTYnNxbUdTZjVYUytmOG43MnhiNGdpQ0lCd1NBU0VTQ0w3bElCd1lEd0luOS8vL1hxYjdxYnFhMmZzVVJCQ3RqWHR1YVFDczdkbCttOTRTcUIzd1BXWk44TFh2cnlKS1JOUkYwOFVUUHk2R0RJMmsrU2JydVNHVGhna1ZSSFBoTkNRL0RmUjN5TDhnZjJydEhrMVdFbnFKZzhsQjF2UC9tVGU5MWwrNGE2UjVBdHhOZy9NRzFTNUFoUWUxMm51bVRMK0xWQTRaQ2IzYSszM3JGK2xpN3dLM1NhdUtoRFR5OXFxS3R1RlQ2L2RvejlRV0JTYll6WjJ5REtudCtnWWZLbVFPUzg0UnhRL0w2dXgxZTQ2MkRnaTlxTHUxNGdLR0hENnF5b2REMzZ6bmVvYTNlUy9VQ25RK2JRWFA5eGMzUU9QNXZzNUwzMCtRaVFuZTAvSGtPNEJ3c1kzL0NYY3ZvelA3RmlBOGNJS3RudEIzL2RwSDdZSmxSQjk3Z3ZINGR0ajdJMGM2RHdZODlwdWFCYW5Kb3NMVDdlTktGaFZJQkM2RmJ6VEJPQTRiNVF3WE8vcE04TVZ6MkhBcnJWWm5WRzM5K0pZTGZMczZEVVRjYUZvZmtUR0dERzBVTDdjdDYvbFJ4bzA1WDFEQmwvOUMyV2tlQVJpYyszNEN1Y2FVMy9IL2ZBYzRFWFJmcjgxVlBwQ2FwWk9BZC9VejdZRFR5SVhIVWU4WXAxYmJRem9MdUpwNkJ3TmdFMFZhUm02eXNZVTdZUEEzNGUyWE1VNjZyZzg0WjBqckNjWndyT3hNUnUzV1VqNUlwc21jYzFoeFpNYVVIVzRsMnRLQmdodDFpeHVRWmlXaSthYUJQcHM1VHM5d1lPTmVxVmVnRk4wNGdVN1pQaTVJNnFYMTEvdmUwNENXSk1DMXhtZTdERkR0LzU1S0lIL2hhZ3p6MGFCUHQyeVJFS1BQRzhLZ1l6WUQ5MXZYdHNab0M0L2hUdkYwdTE4NFo2MnNKaGlMSzloYjIvTktDRDRUcU9YSUtvM0M4Y2ZXYU11SEVISHI1OGhyR2JGanMraXBjMkdjbzNnaFVpL1U2MUR4M29EQ1FQZWh1dStIak94WFhHUFgwWHNTWDNtQ3kxdFBrd2FrMTE0OStkZEVpTDkwQTZqQi8vdklNWGd3NmRTbjM3c292SW9IUDVNNzVmU2JvaFpoMUliSEwzTm9oWkRPakRjZzRleXRKUUJMTXMxSyt4UjNHL1BHWkdGaXZzS2dXYmxSdDNWRlVqUzFpQllkcVNlMDJhUHYyMElaSHllQ2NJdmM5OU55Vno1TnJqR3Z3YnF0bVc0ZEMxQ0NZWXR3Q2dHOFdXSHZWb0F1YlkydFF2UmU2ZFVvWTlTK1J4TWZXTFNkRUV0MGJUamREUkR0L0FEV2s5cDgvTElJV1V3b1lpdHhmN2VKMHpuYzF1R1RaY2JXYmJPcjUvMGlsZnM2MmlKdUhQR2dXTDZnQTY3ZkhyVnhZazRGRS9EU1R6Q25ndHMxVnBhbDlPODJOQWI4YWtoQVNvR2QrRWd6VU5jRXJqekdpTUtHMmtMeDVWaTBrOXFHT0VQKzk0V0JPb3phOG12ZXBCQ0I2NEQwbzl5WGpTVzRCaTg1b1NxV2JadkZoakZycm15N0lsQTNxcjQzRER2ZGJQTGVQYWlmUUsxbzJsMVFham5MVWtYQWJxTHRFZDhhRXpJMUF4QUV1d0djblhnYUI2LzBHSHF6U1ZHNTdxemFUVXp3U3U1RENuVVlOZFB3Yzk0a1VUVGExa2U0WEY3bTBvNDJaWi9xd0lJbHNWVzl0R3ErM2oxU0RuYmxTNitNN1dhdWVvYVR1YS9aT3BTRDFZbENKUDZOZ1diWjVacDJJRXlSa0ZtM1FDLzRYUVpEYkFTWHM3VWt4RXhzRFQ2SGRIVStKTHkwaFFYOEdrdzRRbXVrdHZzV3hOcXhaWjBXUS80NE9Cd3lST1pIZGN3K3VQNmsvVWphNDdFYnhxdE9GUHlCdVFybS9rQ3QxcGdvTXFvenFGL2FreklZS2JMTE5kdi9kYlgzWkVsaW9ZbWtReWRQWnRpQVE5US9jYkJjcmtCOTJ6S25qd3FVcHZKVmhzM3UwWEt0dENQUmV6d3dXcHlEOGdkY0JTTXhUc2NaWHZpOEVyTzgvOG1DWDF4QWJXUEpoeVc2WGcwYjhlYkhNV0ZVYVBQYkpBbHhGVEFKVnpTV3ZnTDVQd2U2ZDB5VkwvYktseEhqaE0zdHhPT2FCemZWTDR3ZVlQMVorOUhMdXM3VmJNcGdRWDQxY0R3ZEF2VUZiRm9LbFhCYlBuN1pTNUtpaTdSTkp0RGlFamgvK29td3ZwQkxRZGM1REVzVHcyNE95M1JyQkxRVFcvNnN4TG9Gc3VCajNvR1VUY29rQkladGJyVlNhWVNPSzI4Vy9HdnZERlliaUdFZ2FnaHRvYWVrbDNhaHAxd0tZZnYvdjFka1dYNmFRQytGd0pycU9SZjdhbHZ4V3FOeEM2SnZEZWorVzB4OHBGeENFSVNqRUpmcEkxWGlCMy9BZDJ6TXFZZllDQU1TOEFOaU5qY21rZGpRZitXNWwrT1hZZlF2VTFuWW9VN2FLUVJCM3ZjVWkxbVA1WmRuL2RNZnpsUWQzc2hZc0FSU3dHZXlwMENCQ3pIdVRJVEhSZVhDYThoZzNnU2Y4ME96cG9aOVpZQ1h5Qnl0TzQ1SXpCSUlTRjB5dGI5Y2lMSFpIenIzaGV0djFhb0FRWkFSTXQyY0ZWTFJ0RGdQM1BhOUJTTnZLUUdmeSs0amJPeWlLL0EvYUtQZ2hlSlY1RDBwTDZ4bEUzZldFM3VEYjFKZXh1RStyNHF1M0FNcGREZkVDZGRnQVR4Tk1KL3hDQUI4Z3lGSU94cTFBSjRoTDRCT0Z2Z1psTDBoMlhsM1cwMnNKNEIvZUtNZGpzSWY2UVFyVTN6QndrWmZ4aldpNXA1VFlkaHFmbUk5c1FZRnNuQXdrVmMyc1VMZ04raXVHMGp4c05YRWUyUUZDZ3BEQk52TTJOako2L2lPbGJxNWpuWTJ5d1A2L0srMkFBcXZkTkxOdkczWnlESUVmcWZBOHJySUxKTm9oeVBBQ2hRVWg0SnZabkdZRDRIZjVMSzVSQTg4RDdoV0FDaFFCQWxkMDVGSFhlRDNGaU9iRjBYZGllYXhudGpiU2hTMmxhVmRoN25YTmZwRDRHY2pXaFNWK1VyV0V3dFIvQUJ0d3pZbStJeFNsd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcbiAgcmV0dXJuIGltYWdlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm50KCl7XHJcbiAgcmV0dXJuIGBpbmZvIGZhY2U9XCJSb2JvdG9cIiBzaXplPTE5MiBib2xkPTAgaXRhbGljPTAgY2hhcnNldD1cIlwiIHVuaWNvZGU9MSBzdHJldGNoSD0xMDAgc21vb3RoPTEgYWE9MSBwYWRkaW5nPTI0LDI0LDI0LDI0IHNwYWNpbmc9MTIsMTIgb3V0bGluZT0wXHJcbmNvbW1vbiBsaW5lSGVpZ2h0PTE5MiBiYXNlPTE1MiBzY2FsZVc9MzA3MiBzY2FsZUg9MTUzNiBwYWdlcz0xIHBhY2tlZD0wIGFscGhhQ2hubD0wIHJlZENobmw9NCBncmVlbkNobmw9NCBibHVlQ2hubD00XHJcbnBhZ2UgaWQ9MCBmaWxlPVwicm9ib3RvXzAucG5nXCJcclxuY2hhcnMgY291bnQ9MTk0XHJcbmNoYXIgaWQ9MCAgICB4PTYzNiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yICAgIHg9NTc2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEzICAgeD00NTAgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzIgICB4PTI5ODcgIHk9MTI0MiAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMyAgIHg9MTcxNCAgeT03NjkgICB3aWR0aD02NiAgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM0ICAgeD0xOTk5ICB5PTEyNjMgIHdpZHRoPTgxICAgIGhlaWdodD04NyAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzUgICB4PTEyMTQgIHk9OTUxICAgd2lkdGg9MTM2ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNiAgIHg9MTYxMCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS00ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM3ICAgeD0xMzQxICB5PTU5NSAgIHdpZHRoPTE1MiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzggICB4PTE2NTggIHk9NTkyICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOSAgIHg9MjA5MiAgeT0xMjYzICB3aWR0aD02MiAgICBoZWlnaHQ9ODUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTI4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQwICAgeD0xMDMgICB5PTAgICAgIHdpZHRoPTkwICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDEgICB4PTAgICAgIHk9MCAgICAgd2lkdGg9OTEgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MiAgIHg9NjY0ICAgeT0xMjk0ICB3aWR0aD0xMTQgICBoZWlnaHQ9MTE0ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQzICAgeD0wICAgICB5PTEzMTcgIHdpZHRoPTEyOCAgIGhlaWdodD0xMjkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDQgICB4PTE5MTYgIHk9MTI2NCAgd2lkdGg9NzEgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xMTEgICB4YWR2YW5jZT0zMSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NSAgIHg9MjMzICAgeT0xNDU3ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ2ICAgeD0yODI4ICB5PTEyNDUgIHdpZHRoPTY4ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEyICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDcgICB4PTAgICAgIHk9NDI5ICAgd2lkdGg9MTA5ICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OCAgIHg9MjM5MiAgeT01ODMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ5ICAgeD0xMTIgICB5PTExNDMgIHdpZHRoPTkzICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTAgICB4PTE0NDMgIHk9NzcyICAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MSAgIHg9MjY2MCAgeT01NzUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUyICAgeD0xNzk0ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTMgICB4PTUzOSAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NCAgIHg9NDA2ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU1ICAgeD0yMDgyICB5PTk0MSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTYgICB4PTI1MjYgIHk9NTgxICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NyAgIHg9MTU4MSAgeT03NzEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU4ICAgeD0yMzgzICB5PTExMTMgIHdpZHRoPTY3ICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTkgICB4PTM3MiAgIHk9MTE0MCAgd2lkdGg9NzMgICAgaGVpZ2h0PTE1NiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zNCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MCAgIHg9NTM5ICAgeT0xMzA3ICB3aWR0aD0xMTMgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYxICAgeD0xNjg4ICB5PTEyNjkgIHdpZHRoPTExNSAgIGhlaWdodD05MyAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjIgICB4PTQxMSAgIHk9MTMwOCAgd2lkdGg9MTE2ICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MyAgIHg9ODAwICAgeT03NzkgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY0ICAgeD0xNDIxICB5PTAgICAgIHdpZHRoPTE3NyAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTYgICAgeGFkdmFuY2U9MTQ0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjUgICB4PTI3MDggIHk9NzUyICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NiAgIHg9MjIyMSAgeT05MzkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY3ICAgeD0xODExICB5PTU5MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjggICB4PTE2NTAgIHk9OTQ2ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OSAgIHg9MjQ5NiAgeT05MzQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcwICAgeD0yNjMwICB5PTkzMiAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzEgICB4PTE5NjAgIHk9NTkwICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MiAgIHg9OTE2ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTczICAgeD0yOTYgICB5PTExNDIgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzQgICB4PTI3MiAgIHk9NzkwICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NSAgIHg9NzY3ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc2ICAgeD0yNzYyICB5PTkyNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzcgICB4PTIxOTcgIHk9NzY1ICAgd2lkdGg9MTYzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OCAgIHg9MTA2NSAgeT05NTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc5ICAgeD0xNTA1ICB5PTU5NCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODAgICB4PTE5MzggIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDEgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MSAgIHg9MjIyMiAgeT0yMDcgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgyICAgeD0xMzYyICB5PTk0OSAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODMgICB4PTIxMDkgIHk9NTg4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NCAgIHg9NjE3ICAgeT05NTUgICB3aWR0aD0xMzggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg1ICAgeD0xMjggICB5PTc5MiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODYgICB4PTI4NzAgIHk9NzQ5ICAgd2lkdGg9MTQ3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NyAgIHg9MjAwMiAgeT03NjcgICB3aWR0aD0xODMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg4ICAgeD0zMTIgICB5PTk2NiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODkgICB4PTE1NyAgIHk9OTY4ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MCAgIHg9MTUwNiAgeT05NDcgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkxICAgeD02NTggICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTIgICB4PTI5NDUgIHk9MjA0ICAgd2lkdGg9MTExICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MyAgIHg9NTY3ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk0ICAgeD0xNTcwICB5PTEyNzEgIHdpZHRoPTEwNiAgIGhlaWdodD0xMDUgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTUgICB4PTAgICAgIHk9MTQ1OCAgd2lkdGg9MTIxICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT03MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NiAgIHg9MjYyMiAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTQ5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk3ICAgeD0xNTg1ICB5PTExMjEgIHdpZHRoPTExOSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTggICB4PTY3NyAgIHk9NDE4ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OSAgIHg9MTQ1MyAgeT0xMTIzICB3aWR0aD0xMjAgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMCAgeD0xMjA5ICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAxICB4PTEzMjAgIHk9MTEyNSAgd2lkdGg9MTIxICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDIgIHg9MTg2NiAgeT00MDggICB3aWR0aD0xMDEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTYgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMyAgeD0xMzQgICB5PTYxMiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA0ICB4PTI2MjcgIHk9Mzk1ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDUgIHg9MTA1MCAgeT03NzYgICB3aWR0aD02NyAgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNiAgeD0xMzI3ICB5PTAgICAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA3ICB4PTI0OTUgIHk9NDAxICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDggIHg9Mjc1NSAgeT0zOTIgICB3aWR0aD02NCAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOSAgeD0xOTczICB5PTExMTcgIHdpZHRoPTE2OCAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEwICB4PTIxNTMgIHk9MTExNSAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTEgIHg9MTE4MSAgeT0xMTI2ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMiAgeD0yNjcgICB5PTYxMSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEzICB4PTQwMCAgIHk9NjAwICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTQgIHg9MjI4MSAgeT0xMTEzICB3aWR0aD05MCAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNSAgeD0xNzE2ICB5PTExMjAgIHdpZHRoPTExNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE2ICB4PTQ1NyAgIHk9MTE0MCAgd2lkdGg9OTUgICAgaGVpZ2h0PTE1NSAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0yMyAgICB4YWR2YW5jZT01MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTcgIHg9MTg0NSAgeT0xMTE3ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOCAgeD0yNzcyICB5PTExMDAgIHdpZHRoPTEyMiAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE5ICB4PTI0NjIgIHk9MTExMyAgd2lkdGg9MTYzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0xMjAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjAgIHg9MjYzNyAgeT0xMTA2ICB3aWR0aD0xMjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMSAgeD0wICAgICB5PTYxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIyICB4PTI5MDYgIHk9MTA5NyAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjMgIHg9NDU4ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNCAgeD0yNDUxICB5PTIwNiAgIHdpZHRoPTYxICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI1ICB4PTM0OSAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjYgIHg9MjM3OCAgeT0xMjU5ICB3aWR0aD0xMzggICBoZWlnaHQ9NzkgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MCAgeD01MTMgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYxICB4PTIxNyAgIHk9MTE0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjIgIHg9MTM0MSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTI1ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MyAgeD0xMzAwICB5PTc3NCAgIHdpZHRoPTEzMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY0ICB4PTcwMiAgIHk9MTEyOSAgd2lkdGg9MTQ5ICAgaGVpZ2h0PTE0OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zMCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjUgIHg9NDY1ICAgeT05NTUgICB3aWR0aD0xNDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NiAgeD0yMzc1ICB5PTIwNiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY3ICB4PTIwNSAgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjggIHg9MjcxNiAgeT0xMjUxICB3aWR0aD0xMDAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OSAgeD05OTUgICB5PTU5OSAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcwICB4PTEzNjggIHk9MTI3MyAgd2lkdGg9OTkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzEgIHg9MTEzMSAgeT0xMjc3ICB3aWR0aD0xMTAgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MiAgeD0yMjUxICB5PTEyNjEgIHdpZHRoPTExNSAgIGhlaWdodD04MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9ODkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTczICB4PTEzMyAgIHk9MTQ1OCAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzQgIHg9MTE2OCAgeT01OTcgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NSAgeD0zMzMgICB5PTE0NDggIHdpZHRoPTEwNSAgIGhlaWdodD01OSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc2ICB4PTE4MTUgIHk9MTI2OCAgd2lkdGg9ODkgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT02MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzcgIHg9ODYzICAgeT0xMTI5ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTQ3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTI5ICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OCAgeD04OTkgICB5PTEyODggIHdpZHRoPTk3ICAgIGhlaWdodD0xMTEgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc5ICB4PTc5MCAgIHk9MTI5MCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODAgIHg9MjUyOCAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MSAgeD04NjYgICB5PTU5OSAgIHdpZHRoPTExNyAgIGhlaWdodD0xNjYgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgyICB4PTI4OTMgIHk9OTIzICAgd2lkdGg9MTEwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODMgIHg9MjkwOCAgeT0xMjQyICB3aWR0aD02NyAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTYyICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NCAgeD0yMTY2ICB5PTEyNjEgIHdpZHRoPTczICAgIGhlaWdodD04MiAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg1ICB4PTE0NzkgIHk9MTI3MSAgd2lkdGg9NzkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODYgIHg9MTI1MyAgeT0xMjc0ICB3aWR0aD0xMDMgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NyAgeD0xMDA4ICB5PTEyNzcgIHdpZHRoPTExMSAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg4ICB4PTI1NDIgIHk9NzU4ICAgd2lkdGg9MTU0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODkgIHg9MjM3MiAgeT03NjAgICB3aWR0aD0xNTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MCAgeD0xMTI5ICB5PTc3NiAgIHdpZHRoPTE1OSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkxICB4PTkyNSAgIHk9Nzc3ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTIgIHg9MTYyICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MyAgeD0zMjQgICB5PTIxNCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk0ICB4PTAgICAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTUgIHg9MTM1OSAgeT0yMTAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NiAgeD0xODE0ICB5PTIwOCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk3ICB4PTEwMTYgIHk9MCAgICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5OSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMjMgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTggIHg9MTc5MiAgeT03NjkgICB3aWR0aD0xOTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjYgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE1MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OSAgeD0xMTc4ICB5PTAgICAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAwICB4PTI5MjIgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDEgIHg9NjQxICAgeT0yMTQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMiAgeD03NzUgICB5PTIxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAzICB4PTE5NzYgIHk9MjA3ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDQgIHg9MTAxOCAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNSAgeD0xMTEyICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA2ICB4PTkwOSAgIHk9MjEzICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDcgIHg9MjExMCAgeT0yMDcgICB3aWR0aD0xMDAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjggICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOCAgeD0wICAgICB5PTk2OSAgIHdpZHRoPTE0NSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA5ICB4PTE1MjEgIHk9MjA4ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTAgIHg9MjE4NCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMSAgeD0yMDMxICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEyICB4PTE4NzggIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTMgIHg9Mjc2OSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNSAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNCAgeD0xMjA2ICB5PTIxMCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTEgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTEzICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE1ICB4PTI3OSAgIHk9MTMxNiAgd2lkdGg9MTIwICAgaGVpZ2h0PTEyMCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MCAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTYgIHg9MjY1NSAgeT0yMDYgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTc0ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEwICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNyAgeD0yNjI1ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE4ICB4PTI0ODEgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTkgIHg9MjMzNyAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMCAgeD0xNjcwICB5PTIwOCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIxICB4PTQ4NiAgIHk9MjE0ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjIgIHg9MjM2MCAgeT05MzkgICB3aWR0aD0xMjQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMyAgeD0xMjEgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzEgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NyAgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI0ICB4PTE2MDQgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjUgIHg9MTQ3MyAgeT00MTIgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNiAgeD0xNzM1ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI3ICB4PTUzMiAgIHk9NjAwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjggIHg9MjkyNiAgeT01NjkgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOSAgeD0yNTI0ICB5PTIwNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MSAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMwICB4PTk5NiAgIHk9MTEyOSAgd2lkdGg9MTczICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xMzUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzEgIHg9MTk3OSAgeT00MDcgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMiAgeD0xMDc2ICB5PTQxNSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMzICB4PTk0MyAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzQgIHg9ODEwICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNSAgeD0yNzkzICB5PTU3MiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM2ICB4PTc3MiAgIHk9NjAwICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzcgIHg9Mjk3MCAgeT0zODggICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOCAgeD02NjMgICB5PTYwMCAgIHdpZHRoPTk3ICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM5ICB4PTAgICAgIHk9MTE0MyAgd2lkdGg9MTAwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDAgIHg9MjgxMCAgeT0yMDUgICB3aWR0aD0xMjMgICBoZWlnaHQ9MTczICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTUgICAgIHhhZHZhbmNlPTk0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MSAgeD0wICAgICB5PTc5MiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQyICB4PTI2MCAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDMgIHg9NTM4ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NCAgeD0zOTkgICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ1ICB4PTI4MzEgIHk9MzkwICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDYgIHg9MjI1MyAgeT01ODMgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NyAgeD0xNDAgICB5PTEzMTcgIHdpZHRoPTEyNyAgIGhlaWdodD0xMjggICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ4ICB4PTU2NCAgIHk9MTEyOSAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE1MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDkgIHg9MjExMSAgeT00MDcgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MCAgeD0yMjM5ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUxICB4PTIzNjcgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTIgIHg9NjcyICAgeT03NzkgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MyAgeD03NDkgICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU0ICB4PTg4MyAgIHk9MCAgICAgd2lkdGg9MTIxICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTUgIHg9MTc0NCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5rZXJuaW5ncyBjb3VudD0xNjg2XHJcbmtlcm5pbmcgZmlyc3Q9MzIgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NiAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODkgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD0yMjEgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTMgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTYgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg2ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTc0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTc0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTg1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjU1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTMgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTcxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTgxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zOSAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODcgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NiAgYW1vdW50PS0xNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODkgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD02NSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTQgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTcgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDQgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD03NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIxIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjU1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTExIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0OSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NiAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAwIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIwIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDUgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE3MyBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDEgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05NyAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjggYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03NCAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTExIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQyIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xNzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTY1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5OSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5gO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IHtnZXRUb3BMZXZlbEZvbGRlcn0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3RpY2snLCBoYW5kbGVUaWNrICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICBjb25zdCB0ZW1wTWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlVGljayggeyBpbnB1dCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCAgfHwgZm9sZGVyLmdyYWJEaXNhYmxlZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5wcmVzc2VkICYmIGlucHV0LnNlbGVjdGVkICYmIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgaWYoIGlucHV0LmludGVyYWN0aW9uLnByZXNzID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICAgICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24uc3ViKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7ICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LndvcmxkVG9Mb2NhbChpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vTk9URTo6IGluIG9ydGhvZ3JhcGhpYyBtb2RlLCB3ZSd2ZSBhbHJlYWR5IG11dGF0ZWQgdGhlIHBvc2l0aW9uIG9mIGZvbGRlcnMsXHJcbiAgICAgICAgICAvL21lYW5pbmcgdGhlcmUgY291bGQgYmUgc29tZSBpbmNvbnNpc3RlbmN5IHdpdGggdGhlIG1vdXNlSW50ZXJzZWN0aW9uIHBvaW50IG5vIGxvbmdlciBiZWluZyByaWdodC4uLlxyXG4gICAgICAgICAgLy9JIHRob3VnaHQgdGhpcyB3YXMgcGxheWluZyBhIHJvbGUgaW4gYSBidWcgd2l0aCBvcnRob2dyYXBoaWMgZm9sZGVyIGxheW91dCwgYXBwZWFycyBvayBmb3Igbm93LlxyXG4gICAgICAgICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG5cclxuICAgICAgICAgIGZvbGRlci51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICBpZiggaGl0T2JqZWN0ID09PSBwYW5lbCApe1xyXG4gICAgICAgICAgaGl0T2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBoaXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZVBsYW5lLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KCBpbnB1dC5tb3VzZUNhbWVyYS5nZXRXb3JsZERpcmVjdGlvbiggaW5wdXQubW91c2VQbGFuZS5ub3JtYWwgKSwgdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VQbGFuZSApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBpZiggaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgICBpZiggaGl0T2JqZWN0ICE9PSBwYW5lbCApe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQgPSBmb2xkZXI7XHJcblxyXG4gICAgICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuc2VsZWN0ZWQubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZU9mZnNldC5jb3B5KCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApLnN1YiggdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgXHJcbiAgICAgIHRlbXBNYXRyaXguZ2V0SW52ZXJzZSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIHRlbXBNYXRyaXggKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG5cclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcbiAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgaW5wdXRPYmplY3QuYWRkKCBmb2xkZXIgKTsgXHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJiZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlucHV0LnNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuXHJcbiAgICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiUmVsZWFzZWQnLCBmb2xkZXIgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsImV4cG9ydCBjb25zdCBncmFiQmFyID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFnQ0FZQUFBQ2luWDZFQUFBQUNYQklXWE1BQUM0akFBQXVJd0Y0cFQ5MkFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQURza2FWUllkRmhOVERwamIyMHVZV1J2WW1VdWVHMXdBQUFBQUFBOFAzaHdZV05yWlhRZ1ltVm5hVzQ5SXUrN3Z5SWdhV1E5SWxjMVRUQk5jRU5sYUdsSWVuSmxVM3BPVkdONmEyTTVaQ0kvUGdvOGVEcDRiWEJ0WlhSaElIaHRiRzV6T25nOUltRmtiMkpsT201ek9tMWxkR0V2SWlCNE9uaHRjSFJyUFNKQlpHOWlaU0JZVFZBZ1EyOXlaU0ExTGpZdFl6RXpNaUEzT1M0eE5Ua3lPRFFzSURJd01UWXZNRFF2TVRrdE1UTTZNVE02TkRBZ0lDQWdJQ0FnSUNJK0NpQWdJRHh5WkdZNlVrUkdJSGh0Ykc1ek9uSmtaajBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOHdNaTh5TWkxeVpHWXRjM2x1ZEdGNExXNXpJeUkrQ2lBZ0lDQWdJRHh5WkdZNlJHVnpZM0pwY0hScGIyNGdjbVJtT21GaWIzVjBQU0lpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB6ZEVWMmREMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFJYWmxiblFqSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwMGFXWm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNScFptWXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpYaHBaajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5bGVHbG1MekV1TUM4aVBnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBiM0pVYjI5c1BrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPakkxT2pNeUxUQTNPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRZdE1Ea3RNamhVTVRZNk16YzZNak10TURjNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pNM09qSXpMVEEzT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThaR002Wm05eWJXRjBQbWx0WVdkbEwzQnVaend2WkdNNlptOXliV0YwUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNHpQQzl3YUc5MGIzTm9iM0E2UTI5c2IzSk5iMlJsUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rbERRMUJ5YjJacGJHVStjMUpIUWlCSlJVTTJNVGsyTmkweUxqRThMM0JvYjNSdmMyaHZjRHBKUTBOUWNtOW1hV3hsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmVHMXdUVTA2U1c1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSdlkzVnRaVzUwU1VRK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPamRsTnpkbVltWmpMVGcxWkRRdE1URmxOaTFoWXpobUxXRmpOelUwWldRMU9ETTNaand2ZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pazl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDU0YlhBdVpHbGtPbU0xWm1NMFpHWXlMVGt4WTJNdFpUSTBNUzA0WTJWakxUTXpPREl5WTJRMVpXRmxPVHd2ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG1OeVpXRjBaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEcGpOV1pqTkdSbU1pMDVNV05qTFdVeU5ERXRPR05sWXkwek16Z3lNbU5rTldWaFpUazhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UWXRNRGt0TWpoVU1UWTZNalU2TXpJdE1EYzZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTI5dWRtVnlkR1ZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHdZWEpoYldWMFpYSnpQbVp5YjIwZ1lYQndiR2xqWVhScGIyNHZkbTVrTG1Ga2IySmxMbkJvYjNSdmMyaHZjQ0IwYnlCcGJXRm5aUzl3Ym1jOEwzTjBSWFowT25CaGNtRnRaWFJsY25NK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBJSEprWmpwd1lYSnpaVlI1Y0dVOUlsSmxjMjkxY21ObElqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tRmpkR2x2Ymo1ellYWmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHdPUzB5T0ZReE5qb3pOem95TXkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNHhQQzlsZUdsbU9rTnZiRzl5VTNCaFkyVStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0Mk5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNand2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgrT2hGN1J3QUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUFsRWxFUVZSNDJ1elpzUTNBSUF4RVVUdVRaSlJza3Q1TFJGbUNkVExhcFVLQ0Jpam8vRjBobjJTa0p4SUtYSkpscnNPU0Z3QUFBQUJBNnZLSTZPN0JVb3JYZFp1MS9WRVdFWmVaZmJONW0vWmFtamZLK0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNCZnVhU25hN2kvZGQxbWJYK1VTVHJON0o3TjI3VFgwcnhSeGduZ1pZaWZJQUFBQUpDNGZnQUFBUC8vQXdBdU1WUHcyMGh4Q3dBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTtcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTtcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBoID0gMC4zO1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAtMC4wMDUsIC0wLjAwNCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja21hcmsgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qTXpPalV6TFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRvek16bzFNeTB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvMk9EY3hZVGs1WXkwek5qRTVMVGxrTkdFdE9EZGtOaTB3WVdFNVlUUmlOV1U0TWpjOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pZNE56RmhPVGxqTFRNMk1Ua3RPV1EwWVMwNE4yUTJMVEJoWVRsaE5HSTFaVGd5Tnp3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NXo5UlQzQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFUdFNVUkJWSGphN0p6YmI1UkZHTVovMnhiQ3ZWaEFTRXhVaUkxNDR3MGhRdEhFR3JIZ0lTcWdONktndE5ZV0FiMHcwV28xWHFyYlBiU2xva1lTeGZNaGVtWC9BYTd3R0FWcThYVHAzMERYaTVtSm0wYTJ1OXYzL2I2WjJYbHVkck9IZHcvUE16UFArNzR6WDZGV3F5R0ZnWUVCRWxwR0QvQWVjQ3R3Qi9EYmNtK1ltNXNUKy9DdTlQL25pbTZnQ0R3Q1hBdDhEVnlYNVJkSUFzZ1BCYUFFak5ROWRpUHdGYkE1Q1NCK1RBRlAvYy9qVzRIUGdMNGtnSGd4Q3d3MWVQNW00R043bXdRUUVib3MrVTgwOGRxdHdFZjJOZ2tnRXJjLzB5VDVEbjEyT2RpU0JCQSsrYVVXeVhmWUFud0RYSjhFRUc2cU53a01yeURHWnBzaTNwQUVFQjZxVjNEN3JhSVArTkttaWtrQWdlQXQ0SWhndkp2c1RKQUU0RGtLd0NuZ3NFTHNzMGtBL3EvNXM4QWhoZGpUd0VGcGQ1b2dTMzVWYWVUUEFrOERpMGtBL3BKZkVsN3pIVTdTdUhLWWxnQVAxdnl5a050Zmloa3Q4cE1BWkVrYVZvaGJWWXFiQkNDSVU4Q1RDbkZMd0pqMmwwOENXTm1hLzdhUzI2OEN4NlFOWHhLQXJIbWVCaDVYV2s3R3NpQS9Ud0dNWWZhL2hVcCttZllhTzgyNC9lR3N5TTlMQUM5Z21pUHZBenNESTcvTHJzMURTaU4vS0k4ZmxDWEdnVmZ0L1Y3Z0RMQXJJQUZNaCtyMmZSREFTOERFa3NjMkFoOEMvUjNzOXN2QWFKNVRXbGJrdjN5RjU5WmpkcjFzOTNqYTEzTDdGZXYyYXpFTFlMd0IrUTVyTWIzdWJSNGF2cE5LYm44YWVBYTRuTGU2dFEzZlJKT3Y3UVcrOEdnbTZMRWpWS094TTRNNUQzQTU3eCtwS1lBWDZ3eGZzOWdBZkFMczhJQjhyY2FPS3h2WGZGQzVsZ0RHZ1ZmYWZLOHpocnR5L0UrMFhIa2xMN2VmcFFBbVdwajJseFBCYlRuOEo3UG8xZlpIOFF6U0Fuak5qbjRKck1lY2pzbXFXRlFBM2xWeSt5WHI5b2xkQUhjS3g3c2ErRHdEWTloajgveURpcW5lWWljSTRGSGdSK0dZYTVXekE4M0d6aFJ3MUZmeU5RVHdDM0NQdlpYRU91QlR6RVVVSkxFcWcxVFBXL0sxVE9DZndDQndVVGp1TmNpV2pic3haVmlOVkMrMzJyNHZhZUFmd0YzQWduRGNUVllFdHd1TlVBM3l5NWpkdTNTeUFBQitCM1lyTEFjYkJPb0U3eWhOKzVOMnpTY0p3R0FlZUFENFRqaHVMNmFCMUtvbjZMYmtQNlkwOG8valNZWFBGd0VBbkFjZVZoREJWUzFtQjY2eG8wSCtGS2F4czBoZ3lLb2RmQUY0RVBoSnFVNnczRXl3eWhxelEwcmtqNFJJZnBZQ0FMZ0U3TEV6Z2lSY3hiQy93Y2l2b0ZQZWRlUUhpNnkzaFAxbGplRzhVb3E0TkRzb1lJbzhXanQ1Z2lZL0R3SFVwNGkvS21RSForcEVVTURzNU5GdyswVXlPTFFScXdEY2NuQXY4TDF3M0hYQWFac2l2cTVrK0lyQUNTSkJucWVENTRFRHdBZkFMWUp4TndIZktwbXlzaVYvTVJZQjVIMHk2QUt3SC9oQk9PNXFZSTJDNFRzYUUvaytDQURNMWJIM0lsOHhsRVRWR3I0YWtjR1hzNEYvQTNmYkdjRTNWQWlvdGgrcUFNQjBFWGQ3Sm9KSlBOekdGYXNBd0RTUUJwSGZWTkt1Mno5RzVQRHhlUGdDOEJCd0x1ZVJmeUxHTlQ4RUFZRFpUSElBK1FaU3Mydis4ZGpjZm1nQ2NIV0MrNUZ2SUMzbjlrYzdoWHpmQmVDTTRSN2t5OFlkNS9aREZRRDgxMEM2cVBnWjBidjlrQVZRbnlKcUZJdmV4R3ptSUFuQWIxd0M3aE0yaGtYZ1dUb1lvVjBsekRXUUpGTEU2Qm83blNBQWx5THVZMlVOcEFvWlhvb3RDVUFlQzVnRzBzOXRrajlLUXRBQ0FOTkFHcVMxUFlhbFJINDhBbkFwWXJQYnk0b0VkbWdqQ2FENUZIRXZqYmVYdllFcDd5WkVLQURuQ2ZaYkVmd0RQSTg1TCtESWY0NE9hT3kwZzM4SEFNL2U3Z3VJUng5NEFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTtcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRUVTVVJCVkdpQjdkaEJEb013REVSUjdqVGlKQ1B1ZjVXdW1waFZ4WHlrVkpHeklwSjVjZ3NrZG80TGpxT0JyUUE5SEEwMDBNRCt3UFZqdkFXY0ZCanpFQmdKcE1DY1o4Qk1JQVRLUEFKS0FobFE1d253VGNBcE1DNURZQ1NRQXZlcjU4Qk1JQVRLRFJGUUVzaUFHazhBVTBBUU1BVUVBVk5BRURBRkJBRlRRQkF3QlFRQlUwQVFNQVVFQVZOQUVEQUZCQUZUUUJEd2NnRC9CUDRuNHNmSVh5VDhLdk9QQ1gvT2ZFSEJTeHBmVlBHeXpqY1d2TFh4elJWdjc3ekF3Q1VPTDdKd21jY0xUVnpxOG1JN0wvZlBra0lFNEphSE4xMjQ3ZU9OSjI1OWVmTjlpMWx6QUZHREZoM0NsS2hWQjFFemJObGgzSWo3d3hQTkJocG9ZRFdRamdhMkFENVMvQ3lJdmJtcTdnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7XHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7XHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuIiwiLyoqIFxyXG4gKiBCaWcgYnV0dG9uIHdpdGggYW4gaW1hZ2Ugb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBBbHNvIHVzYWJsZSBhcyBhbiAneHkgY29udHJvbGxlcicgdmlhIGFkZFhZQ29udHJvbGxlciBtZXRob2QuXHJcbiAqIFxyXG4gKiBBUEkgc3ViamVjdCB0byBjaGFuZ2UuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtpc0NvbnRyb2xsZXJWaXNpYmxlfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGZ1bmMgPSB1bmRlZmluZWQsXHJcbiAgcHJlc3NpbmcgPSB1bmRlZmluZWQsXHJcbiAgaW1hZ2UgPSBcInRleHR1cmVzL3Nwb3RsaWdodC5qcGdcIiwgLy9UT0RPIGJldHRlciBkZWZhdWx0XHJcbiAgd2lkZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjaGFuZ2VDb2xvck9uSG92ZXIgPSB0cnVlLCAvL3F1aWNrIGhhY2s6IGNvbG9yIHBpY2tlciB3YW50cyB0aGlzIHRvIGJlIGZhbHNlXHJcbiAgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gICAvL1hYWCBtYWdpYyBudW1iZXJzLi4uXHJcbiAgaWYgKCFoZWlnaHQpIGhlaWdodCA9IExheW91dC5QQU5FTF9XSURUSCAgKiAod2lkZSA/IDAuOTQgOiAwLjI1KTtcclxuICBcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqICh3aWRlID8gMC45NCA6IDAuMjUpIC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBidXR0b25EZXB0aDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCAxLCAxICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIC8vbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBjb25zdCBob3ZlckNvbCA9IG9iai50ZXh0ID8gMHg4ODggOiAweEZGRkZGRjtcclxuICAgICAgICBjb25zdCBub0hvdmVyQ29sID0gb2JqLnRleHQgPyAweDExMSA6IDB4Q0NDQ0NDO1xyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChoaWdobGlnaHRMYXN0UHJlc3NlZCAmJiBsYXN0UHJlc3NlZCA9PT0gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGxhc3RQcmVzc2VkQ29sICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgPyBob3ZlckNvbCA6IG5vSG92ZXJDb2wgKTtcclxuICAgICAgICAgICAgaWYgKHN1Ymdyb3VwLnRpcFRleHQpIHNldFZpc2liaWxpdHkoc3ViZ3JvdXAsIHN1Ymdyb3VwLnRpcFRleHQsIGludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgICBpZiAob2JqLmVycm9yKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4QUEzMzMzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldygpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIHN1Ymdyb3VwLmhpdHNjYW4gPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogbWFraW5nIHRoaXMgc2luZ2xlIGVsZW1lbnQgcmF0aGVyIHRoYW4gYXJyYXksXHJcbiAgICAgICAgLy90aGF0IG1lYW5zIHRoZXNlICdzdWJncm91cCcgYnV0dG9ucyBhcmVuJ3QgYWN0aW5nIGV4YWN0bHkgYXMgbm9ybWFsIGRhdC5HVUlWUiBjb250cm9sbGVyc1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IGJ1dHRvbnMubWFwKGI9PmIuaGl0c2Nhbik7Ly8ucHVzaChwYW5lbCk7XHJcbiAgICBncm91cC5oaXRzY2FuLnB1c2gocGFuZWwpO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKSB7XHJcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5iLnVwZGF0ZVZpZXcoKSk7XHJcbiAgfVxyXG4gIFxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+e1xyXG4gICAgICAgIGIuaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgLy9pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlU2xpZGVyIGZyb20gJy4vc2xpZGVyJztcclxuaW1wb3J0IGNyZWF0ZUNoZWNrYm94IGZyb20gJy4vY2hlY2tib3gnO1xyXG5pbXBvcnQgY3JlYXRlQnV0dG9uIGZyb20gJy4vYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUZvbGRlciBmcm9tICcuL2ZvbGRlcic7XHJcbmltcG9ydCBjcmVhdGVEcm9wZG93biBmcm9tICcuL2Ryb3Bkb3duJztcclxuLy9QSlQ6IEknZCByYXRoZXIgaW5qZWN0IGN1c3RvbSBleHRlbnNpb25zIGxpa2UgdGhpcywgYnV0IHdpbGwgd29yayB0aGF0IG91dCBsYXRlci5cclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUtleWJvYXJkIGZyb20gJy4va2V5Ym9hcmQnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dGJveCBmcm9tICcuL3RleHRib3gnO1xyXG5pbXBvcnQgY3JlYXRlQ29sb3JQaWNrZXIgZnJvbSAnLi9jb2xvcnBpY2tlcic7XHJcbmltcG9ydCAqIGFzIFNERlRleHQgZnJvbSAnLi9zZGZ0ZXh0JztcclxuaW1wb3J0IHsgaXNDb250cm9sbGVyVmlzaWJsZSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBnbG9iYWxFdmVudHMgfSBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmNvbnN0IEdVSVZSID0gKGZ1bmN0aW9uIERBVEdVSVZSKCl7XHJcblxyXG4gIC8qXHJcbiAgICBTREYgZm9udFxyXG4gICovXHJcbiAgY29uc3QgdGV4dENyZWF0b3IgPSBTREZUZXh0LmNyZWF0b3IoKTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICBMaXN0cy5cclxuICAgIElucHV0T2JqZWN0cyBhcmUgdGhpbmdzIGxpa2UgVklWRSBjb250cm9sbGVycywgY2FyZGJvYXJkIGhlYWRzZXRzLCBldGMuXHJcbiAgICBDb250cm9sbGVycyBhcmUgdGhlIERBVCBHVUkgc2xpZGVycywgY2hlY2tib3hlcywgZXRjLlxyXG4gICovXHJcbiAgY29uc3QgaW5wdXRPYmplY3RzID0gW107XHJcbiAgY29uc3QgY29udHJvbGxlcnMgPSBbXTtcclxuXHJcbiAgLypcclxuICAgIEZ1bmN0aW9ucyBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuIGNvbnRyb2xsZXIgaXMgdmlzaWJsZSAoYnkgd2hpY2ggd2VcclxuICAgIG1lYW4gbm90IGhpZGRlbiwgbm90ICd2aXNpYmxlJyBpbiB0ZXJtcyBvZiB0aGUgY2FtZXJhIG9yaWVudGF0aW9uIGV0YyksIGFuZFxyXG4gICAgZm9yIHJldHJpZXZpbmcgdGhlIGxpc3Qgb2YgdmlzaWJsZSBoaXRzY2FuT2JqZWN0cyBkeW5hbWljYWxseS5cclxuICAgIFRoaXMgbWlnaHQgYmVuZWZpdCBmcm9tIHNvbWUgY2FjaGluZyBlc3BlY2lhbGx5IGluIGNhc2VzIHdpdGggbGFyZ2UgY29tcGxleCBHVUlzLlxyXG4gICAgSSBoYXZlbid0IG1lYXN1cmVkIHRoZSBpbXBhY3Qgb2YgZ2FyYmFnZSBjb2xsZWN0aW9uIGV0Yy5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVDb250cm9sbGVycygpIHtcclxuICAgIC8vIG5vdCB0ZXJyaWJseSBlZmZpY2llbnRcclxuICAgIHJldHVybiBjb250cm9sbGVycy5maWx0ZXIoIGlzQ29udHJvbGxlclZpc2libGUgKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkge1xyXG4gICAgLy9YWFggV0FSTklORzo6OlxyXG4gICAgLy90aGVyZSBjb3VsZCBleGlzdCBzaXR1YXRpb25zIGluIHdoaWNoIG1lbWJlcnMgb2YgaGl0c2NhbiBmb3IgYSB2aXNpYmxlIGNvbnRyb2xsZXIgYXJlIG5vdCB0aGVtc2VsdmVzIHZpc2libGUuXHJcbiAgICAvL3RoaXMgY2FuIGhhcHBlbiBmb3IgZWcgaWYgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgcGFydGljdWxhciBoaXRzY2FuIGlzIGluIGFuIGludmlzaWJsZSBtb2RhbCBlZGl0b3IuXHJcbiAgICAvL3dlIGNvdWxkIGNoZWNrIHRoYXQsIGFkZGluZyBhIG1vcmUgcm9idXN0IGZpbHRlciB0byBlYWNoIGhpdHNjYW4gYXJyYXkuLi4gZm9yIG5vdywgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mXHJcbiAgICAvL2NvbnRyb2xsZXJzIHRvIGVpdGhlciBvbmx5IHJldHVybiBoaXRzY2FuIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSwgb3IgdG8gc2V0ICd2aXNpYmxlJyBleHBsaWNpdGx5LlxyXG4gICAgY29uc3QgdG1wID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkubWFwKCBvID0+IHsgcmV0dXJuIG8uaGl0c2Nhbi5maWx0ZXIoaCA9PiBoLnZpc2libGUpOyB9IClcclxuICAgIHJldHVybiB0bXAucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKTtcclxuICB9XHJcblxyXG4gIGxldCBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICBsZXQgbW91c2VSZW5kZXJlciA9IHVuZGVmaW5lZDtcclxuICBsZXQgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDsgLy9rZWVwIHRyYWNrIHNvIHRoYXQgd2UgZG9uJ3QgYXR0YWNoIG11bHRpcGxlIGV2ZW50cyAocGFydGljdWxhcmx5IHdoZW4gcmVzaXppbmcgd2luZG93KVxyXG4gIFxyXG4gIGxldCBhdXRvVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgZnVuY3Rpb24gZW5hYmxlTW91c2UoIGNhbWVyYSwgcmVuZGVyZXIgKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IHRydWU7XHJcbiAgICBtb3VzZVJlbmRlcmVyID0gcmVuZGVyZXI7XHJcbiAgICBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhID0gY2FtZXJhO1xyXG4gICAgaWYgKGNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkge1xyXG4gICAgICBpZiAoIW9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gZj0+Zi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLm9uKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQubGFzZXI7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGRpc2FibGVNb3VzZSgpe1xyXG4gICAgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIFRoZSBkZWZhdWx0IGxhc2VyIHBvaW50ZXIgY29taW5nIG91dCBvZiBlYWNoIElucHV0T2JqZWN0LlxyXG4gICovXHJcbiAgY29uc3QgbGFzZXJNYXRlcmlhbCA9IG5ldyBUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg1NWFhZmYsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9KTtcclxuICBmdW5jdGlvbiBjcmVhdGVMYXNlcigpe1xyXG4gICAgY29uc3QgZyA9IG5ldyBUSFJFRS5HZW9tZXRyeSgpO1xyXG4gICAgZy52ZXJ0aWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygpICk7XHJcbiAgICBnLnZlcnRpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwwKSApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlOyAvL3NvbWV0aW1lcyB3ZSBjYXJlIGFib3V0IHRoZSBtb3VzZSBiZWluZyBwcmVzc2VkLCBldmVuIG9uIGJhY2tncm91bmRcclxuICAgICAgIC8vd2lsbCBiZSBzZXQgZmFsc2UgYXQgZW5kIG9mIGZpcnN0IHVwZGF0ZS4gU2hvdWxkbid0IGJlIG5lY2Vzc2FyeSB0byBhZGQgYSBuZXcgcHJvcGVydHkuLi4gXHJcbiAgICAgICAvL29uUHJlc3NlZCBzaG91bGQgYmUgYWRlcXVhdGUuXHJcbiAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgfSwgdHJ1ZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2V1cCcsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBmdW5jdGlvbiB1c2VycyBydW4gdG8gZ2l2ZSBEQVQgR1VJIGFuIGlucHV0IGRldmljZS5cclxuICAgIEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBmb3IgVml2ZUNvbnRyb2xsZXIgYW5kIGJpbmRzIGJ1dHRvbnMgKyBoYXB0aWMgZmVlZGJhY2suXHJcblxyXG4gICAgUmV0dXJucyBhIGxhc2VyIHBvaW50ZXIgc28gaXQgY2FuIGJlIGRpcmVjdGx5IGFkZGVkIHRvIHNjZW5lLlxyXG5cclxuICAgIFRoZSBsYXNlciB3aWxsIHRoZW4gaGF2ZSB0d28gbWV0aG9kczpcclxuICAgIGxhc2VyLnByZXNzZWQoKSwgbGFzZXIuZ3JpcHBlZCgpXHJcblxyXG4gICAgVGhlc2UgY2FuIHRoZW4gYmUgYm91bmQgdG8gYW55IGJ1dHRvbiB0aGUgdXNlciB3YW50cy4gVXNlZnVsIGZvciBiaW5kaW5nIHRvXHJcbiAgICBjYXJkYm9hcmQgb3IgYWx0ZXJuYXRlIGlucHV0IGRldmljZXMuXHJcblxyXG4gICAgRm9yIGV4YW1wbGUuLi5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCl7IGxhc2VyLnByZXNzZWQoIHRydWUgKTsgfSApO1xyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW5wdXRPYmplY3QoIG9iamVjdCApe1xyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCggb2JqZWN0ICk7XHJcblxyXG4gICAgaW5wdXQubGFzZXIucHJlc3NlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGNvbnN0IGhpdHMgPSBpbnB1dC5pbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvLyBvbmx5IHBheSBhdHRlbnRpb24gdG8gcHJlc3NlcyBvdmVyIHRoZSBHVUlcclxuICAgICAgaWYgKGZsYWcgJiYgaGl0cyAmJiAoaGl0cy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5ncmlwcGVkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgaW5wdXQuZ3JpcHBlZCA9IGZsYWc7XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmN1cnNvciA9IGlucHV0LmN1cnNvcjtcclxuXHJcbiAgICBpZiggVEhSRUUuVml2ZUNvbnRyb2xsZXIgJiYgb2JqZWN0IGluc3RhbmNlb2YgVEhSRUUuVml2ZUNvbnRyb2xsZXIgKXtcclxuICAgICAgYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgb2JqZWN0LCBpbnB1dC5sYXNlci5wcmVzc2VkLCBpbnB1dC5sYXNlci5ncmlwcGVkICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLnB1c2goIGlucHV0ICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0Lmxhc2VyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEhlcmUgYXJlIHRoZSBtYWluIGRhdCBndWkgY29udHJvbGxlciB0eXBlcy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBtaW4gPSAwLjAsIG1heCA9IDEwMC4wICl7XHJcbiAgICBjb25zdCBzbGlkZXIgPSBjcmVhdGVTbGlkZXIoIHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBtaW4sIG1heCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBzbGlkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gc2xpZGVyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBjaGVja2JveCA9IGNyZWF0ZUNoZWNrYm94KHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGNoZWNrYm94ICk7XHJcblxyXG4gICAgcmV0dXJuIGNoZWNrYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmMgdG8gY2FsbCBiYWNrIHdoZW4gYnV0dG9uIHByZXNzZWRcclxuICAgKiBAcGFyYW0geyp9IGltYWdlIGNhbiBiZSBmaWxlbmFtZSwgV2ViR0xSZW5kZXJUYXJnZXQgb3IgTWF0ZXJpYWxcclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHdpZGUgd2hldGhlciB0byBtYWtlIGJ1dHRvbiBmaWxsIGVudGlyZSB3aWR0aCBvZiBwYW5lbCAoYXBpIHN1YmplY3QgdG8gY2hhbmdlKVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uKGZ1bmMsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IG9iamVjdCA9IHsgZjogZnVuYyB9O1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJ2YnO1xyXG5cclxuXHJcbiAgICAvL3NlZSBhbHNvIGZvbGRlci5qcyB3aGVyZSB0aGlzIGlzIGFkZGVkIHRvIGdyb3VwIG9iamVjdC4uLlxyXG4gICAgLy9hcyBzdWNoIHRoaXMgZnVuY3Rpb24gYWxzbyBuZWVkcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gY3JlYXRlRm9sZGVyLlxyXG4gICAgLy9wZXJoYXBzIGFsbCBvZiB0aGVzZSAnYWRkWCcgZnVuY3Rpb25zIGNvdWxkIGJlIGluaXRpYWxseSBwdXQgb250byBhbiBvYmplY3Qgc28gdGhhdFxyXG4gICAgLy9uZXcgYWRkaXRpb25zIGNvdWxkIGJlIGFkZGVkIHNsaWdodGx5IG1vcmUgZWFzaWx5LlxyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkWFlDb250cm9sbGVyKHByZXNzaW5nLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnJztcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByZXNzaW5nLCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChidXR0b24pO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVGhpcyBpbnRlcmZhY2UgbWF5IGJlIHN1YmplY3QgdG8gY2hhbmdlLiAgQXJndW1lbnRzIGFyZSBvYmplY3RzIGRlc2NyaWJpbmcgYnV0dG9uc1xyXG4gIEZpcnN0IG9iamVjdCBtYXkgYmUgYW4gaW50ZWdlciBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uUGFuZWwoY29scywgLi4uYXJncykge1xyXG4gICAgbGV0IGNvbHVtbnMgPSBOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpID8gY29scyA6IDQ7XHJcbiAgICBjb25zdCBvYmplY3RzID0gYXJncztcclxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihjb2xzKSkgb2JqZWN0cy51bnNoaWZ0KGNvbHMpXHJcbiAgICBjb25zdCBncmlkID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogY29sdW1uc30pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChncmlkKTtcclxuICAgIHJldHVybiBncmlkO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkS2V5Ym9hcmQoIGtleUxpc3RlbmVyICkge1xyXG4gICAgaWYgKCFrZXlMaXN0ZW5lcikga2V5TGlzdGVuZXIgPSAoaykgPT4gY29uc29sZS5sb2coYGtleURvd24gJHtrfWApO1xyXG4gICAgY29uc3Qga2IgPSBjcmVhdGVLZXlib2FyZCh7a2V5TGlzdGVuZXIsIHRleHRDcmVhdG9yfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGtiKTtcclxuICAgIHJldHVybiBrYjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlVGV4dGJveCh7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVDb2xvclBpY2tlcih7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvcHRpb25zICl7XHJcbiAgICBjb25zdCBkcm9wZG93biA9IGNyZWF0ZURyb3Bkb3duKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBvcHRpb25zXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBkcm9wZG93biApO1xyXG4gICAgcmV0dXJuIGRyb3Bkb3duO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBbiBpbXBsaWNpdCBBZGQgZnVuY3Rpb24gd2hpY2ggZGV0ZWN0cyBmb3IgcHJvcGVydHkgdHlwZVxyXG4gICAgYW5kIGdpdmVzIHlvdSB0aGUgY29ycmVjdCBjb250cm9sbGVyLlxyXG5cclxuICAgIERyb3Bkb3duOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvYmplY3RUeXBlIClcclxuXHJcbiAgICBTbGlkZXI6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mTnVtYmVyVHlwZSwgbWluLCBtYXggKVxyXG5cclxuICAgIENoZWNrYm94OlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkJvb2xlYW5UeXBlIClcclxuXHJcbiAgICBCdXR0b246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mRnVuY3Rpb25UeXBlIClcclxuXHJcbiAgICBOb3QgdXNlZCBkaXJlY3RseS4gVXNlZCBieSBmb2xkZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKXtcclxuXHJcbiAgICBpZiggb2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2VcclxuXHJcbiAgICBpZiAob2JqZWN0LmlzRm9sZGVyKSByZXR1cm4gb2JqZWN0O1xyXG5cclxuICAgIGlmKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgY29uc29sZS53YXJuKCAnbm8gcHJvcGVydHkgbmFtZWQnLCBwcm9wZXJ0eU5hbWUsICdvbiBvYmplY3QnLCBvYmplY3QgKTtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc09iamVjdCggYXJnMyApIHx8IGlzQXJyYXkoIGFyZzMgKSApe1xyXG4gICAgICByZXR1cm4gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzTnVtYmVyKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Jvb2xlYW4oIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNGdW5jdGlvbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc1N0cmluZyggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNDb2xvciggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYWRkIGNvdWxkbid0IGZpZ3VyZSBpdCBvdXQsIHBhc3MgaXQgYmFjayB0byBmb2xkZXJcclxuICAgIHJldHVybiB1bmRlZmluZWRcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVTbGlkZXIoIG1pbiA9IDAsIG1heCA9IDEgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBudW1iZXI6IG1pblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkU2xpZGVyKCBwcm94eSwgJ251bWJlcicsIG1pbiwgbWF4ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVEcm9wZG93biggb3B0aW9ucyA9IFtdICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgb3B0aW9uOiAnJ1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiggb3B0aW9ucyAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHByb3h5Lm9wdGlvbiA9IGlzQXJyYXkoIG9wdGlvbnMgKSA/IG9wdGlvbnNbIDAgXSA6IG9wdGlvbnNbIE9iamVjdC5rZXlzKG9wdGlvbnMpWzBdIF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFkZERyb3Bkb3duKCBwcm94eSwgJ29wdGlvbicsIG9wdGlvbnMgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUNoZWNrYm94KCBkZWZhdWx0T3B0aW9uID0gZmFsc2UgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBjaGVja2VkOiBkZWZhdWx0T3B0aW9uXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRDaGVja2JveCggcHJveHksICdjaGVja2VkJyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQnV0dG9uKCBmbiApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGJ1dHRvbjogKGZuIT09dW5kZWZpbmVkKSA/IGZuIDogZnVuY3Rpb24oKXt9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRCdXR0b24oIHByb3h5LCAnYnV0dG9uJyApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBOb3QgdXNlZCBkaXJlY3RseTsgdXNlZCBieSBmb2xkZXJzLlxyXG4gIFJlbW92ZSBjb250cm9sbGVycyBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgY29udHJvbGxlcnMga25vd24gdG8gZGF0LkdVSVZSLlxyXG4gIENhbGxzIHJlbW92ZVRlc3QgZmlyc3QgdG8gY2hlY2sgaW5wdXQgYXJndW1lbnRzLiAgcmV0dXJucyBmYWxzZSBpZiB0aGlzIHRlc3QgZmFpbHMuXHJcbiAgcmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuXHJcblxyXG4gIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlY3Vyc2l2ZWx5IHJlbW92ZSBlbGVtZW50cyBmcm9tIGZvbGRlcnM7IHRoYXQgaXMgZGVhbHQgd2l0aCBpbiB0aGUgZm9sZGVyIGNvZGUgd2hpY2ggY2FsbHMgdGhpcy5cclxuICBcclxuICAgKi9cclxuICBmdW5jdGlvbiByZW1vdmUoIC4uLmFyZ3MgKXtcclxuICAgIGxldCBhcmdTZXQgPSBbIC4uLm5ldyBTZXQoYXJncykgXTsgLy9qdXN0IGluIGNhc2UgdGhlcmUgd2VyZSByZXBlYXRlZCBlbGVtZW50cyBpbiBhcmdzLCB0dXJuIGludG8gU2V0IHRoZW4gYmFjayB0byBhcnJheS5cclxuICAgIGlmICggIXJlbW92ZVRlc3QoLi4uYXJnU2V0KSApIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ1NldC5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIHZhciBpID0gY29udHJvbGxlcnMuaW5kZXhPZiggb2JqICk7XHJcbiAgICAgIGlmICggaSA+IC0xKSBjb250cm9sbGVycy5zcGxpY2UoIGksIDEgKTtcclxuICAgICAgZWxzZSB7IC8vIEkgY2FuJ3Qgc2VlIGhvdyB0aGlzJ2QgaGFwcGVuIG5vdyB3ZSBndWFyZCBhZ2FpbnN0IHJlcGVhdGVkIGVsZW1lbnRzLlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW50ZXJuYWwgZXJyb3IgaW4gcmVtb3ZlLCBub3QgYW50aWNpcGF0ZWQgYnkgcmVtb3ZlVGVzdC4gSW50ZXJuYWwgZGF0LkdVSVZSIHN0YXRlIG1heSBiZSBpbmNvbnNpc3RlbnQuXCIpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVmVyaWZ5IHRoYXQgYWxsIG9mIHRoZSBpdGVtcyBpbiBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGV4aXN0aW5nIGNvbnRyb2xsZXJzIHRoYXQgc2hvdWxkIGJlIG9rIHRvIHJlbW92ZS5cclxuXHJcbiAgUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBhcmUgYW55IG1pc21hdGNoZXMsIHRydWUgaWYgYmVsaWV2ZWQgb2sgdG8gY29udGludWUgd2l0aCBhY3R1YWwgcmVtb3ZlKClcclxuXHJcbiAgSWYgYW55IG9mIHRoZSBwcm92aWRlZCBhcmdzIGFyZSBmb2xkZXJzIChoYXZlIGlzRm9sZGVyIHByb3BlcnR5KSB0aGlzIGlzIGNhbGxlZCByZWN1cnNpdmVseS5cclxuICBUaGlzIHdpbGwgcmVzdWx0IGluIHJlZHVuZGFudCB3b3JrIGFzIGVhY2ggZm9sZGVyIHdpbGwgYWxzbyBjYWxsIGl0IGFnYWluIGFzIGl0J3MgcmVtb3ZlZCwgYnV0IHRoaXMgaXMgY2hlYXBcclxuICBhbmQgaXQgbWVhbnMgdGhhdCBhbnkgZXJyb3Igc2hvdWxkIGJlIGNhdWdodCBhcyBlYXJseSBhcyBwb3NzaWJsZSBhbmQgdGhlIHdob2xlIHByb2Nlc3MgYWJvcnRlZC5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZVRlc3QoIC4uLmFyZ3MgKSB7XHJcbiAgICBmb3IgKHZhciBpPTA7IGk8YXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgb2JqID0gYXJnc1tpXTtcclxuICAgICAgaWYgKGNvbnRyb2xsZXJzLmluZGV4T2Yob2JqKSA9PT0gLTEgfHwgIW9iai5mb2xkZXIuaGFzQ2hpbGQob2JqKSkge1xyXG4gICAgICAgIC8vVE9ETzogdG9TdHJpbmcgaW1wbGVtZW50YXRpb25zIGZvciBjb250cm9sbGVyc1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2FuJ3QgcmVtb3ZlIGNvbnRyb2xsZXIgXCIgKyBvYmopOyAvL25vdCBzdXJlIHRoZSBwcmVmZXJyZWQgd2F5IG9mIHJlcG9ydGluZyBwcm9ibGVtIHRvIHVzZXIuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBpZiAoIXJlbW92ZVRlc3QoIC4uLm9iai5ndWlDaGlsZHJlbiApKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGxldGVseSByZW1vdmUgYWxsIEdVSSBlbGVtZW50cyBmcm9tIHRoZSBzeXN0ZW0gZ2xvYmFsbHksIFxyXG4gICAqIGluY2x1ZGluZyByZW1vdmluZyBhbnkgb2JqZWN0cyBmcm9tIHRoZSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY2xlYXJBbGwoKSB7XHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBjLnZpc2libGUgPSBmYWxzZTsgaWYgKGMucGFyZW50ICYmICFjLnBhcmVudC5ndWlDaGlsZHJlbikgYy5wYXJlbnQucmVtb3ZlKGMpO1xyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5zcGxpY2UoMCwgY29udHJvbGxlcnMubGVuZ3RoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGZvbGRlciB3aXRoIHRoZSBuYW1lLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIFRIUkVFLkdyb3VwIHR5cGUgb2JqZWN0cyBhbmQgY2FuIGRvIGdyb3VwLmFkZCgpIGZvciBzaWJsaW5ncy5cclxuICAgIEZvbGRlcnMgd2lsbCBhdXRvbWF0aWNhbGx5IGF0dGVtcHQgdG8gbGF5IGl0cyBjaGlsZHJlbiBvdXQgaW4gc2VxdWVuY2UuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgZ2l2ZW4gdGhlIGFkZCgpIGZ1bmN0aW9uYWxpdHkgc28gdGhhdCB0aGV5IGNhbiBkb1xyXG4gICAgZm9sZGVyLmFkZCggLi4uICkgdG8gY3JlYXRlIGNvbnRyb2xsZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggbmFtZSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gY3JlYXRlRm9sZGVyKHtcclxuICAgICAgdGV4dENyZWF0b3IsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGd1aUFkZDogYWRkLFxyXG4gICAgICBndWlSZW1vdmU6IHJlbW92ZSxcclxuICAgICAgYWRkQ29udHJvbGxlckZ1bmNzOiB7XHJcbiAgICAgICAgYWRkU2xpZGVyOiBhZGRTaW1wbGVTbGlkZXIsXHJcbiAgICAgICAgYWRkRHJvcGRvd246IGFkZFNpbXBsZURyb3Bkb3duLFxyXG4gICAgICAgIGFkZENoZWNrYm94OiBhZGRTaW1wbGVDaGVja2JveCxcclxuICAgICAgICBhZGRCdXR0b246IGFkZFNpbXBsZUJ1dHRvbixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvbjogYWRkSW1hZ2VCdXR0b24sXHJcbiAgICAgICAgYWRkWFlDb250cm9sbGVyOiBhZGRYWUNvbnRyb2xsZXIsXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b25QYW5lbDogYWRkSW1hZ2VCdXR0b25QYW5lbCxcclxuICAgICAgICBhZGRLZXlib2FyZDogYWRkS2V5Ym9hcmQsXHJcbiAgICAgICAgYWRkVGV4dGJveDogYWRkVGV4dGJveFxyXG4gICAgICB9LFxyXG4gICAgICBnbG9iYWxDb250cm9sbGVyczogY29udHJvbGxlcnMsXHJcbiAgICAgIC8vPz8/XHJcbiAgICAgIGFkZEhlYWRlckZ1bmNzOiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGZvbGRlciApO1xyXG5cclxuICAgIHJldHVybiBmb2xkZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFBlcmZvcm0gdGhlIG5lY2Vzc2FyeSB1cGRhdGVzLCByYXljYXN0cyBvbiBpdHMgb3duIFJBRi5cclxuICAqL1xyXG5cclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IHREaXJlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMyggMCwgMCwgLTEgKTtcclxuICBjb25zdCB0TWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCkge1xyXG4gICAgY29uc3QgaXNPcnRob2dyYXBoaWMgPSBtb3VzZUVuYWJsZWQgJiYgbW91c2VJbnB1dC5tb3VzZUNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYTtcclxuICAgIGlmIChhdXRvVXBkYXRlKSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoIHVwZGF0ZSApO1xyXG4gICAgXHJcbiAgICB2YXIgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCk7XHJcbiAgICBjb25zdCBmb2xkZXJzID0gY29udHJvbGxlcnMuZmlsdGVyKGMgPT4gYy5mb2xkZXIgPT09IGMpOyAvL2FsbCB0b3AtbGV2ZWwgZm9sZGVyc1xyXG4gICAgZm9sZGVycy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gaXNPcnRob2dyYXBoaWMgPyBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhIDogZmFsc2U7XHJcbiAgICAgIGlmIChmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgICBmLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgICBmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSBmYWxzZTsgLy8gcHJvdGVjdCBhbnkgbmV3bHktZGlzcGxheWVkIG1vZGFsRWRpdG9yIGZyb20gYmVpbmcgY2xlYXJlZFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChmLnVzZXJEYXRhLmxheW91dFBlbmRpbmcpIGYucGVyZm9ybUxheW91dCgpO1xyXG4gICAgfSk7IFxyXG5cclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgLy9UT0RPOiBsb2NrIG1vdXNlIG9uIGhvdmVyPz9cclxuICAgICAgbW91c2VJbnB1dC5pbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixpbnRlcmFjdGlvbn0gPSB7fSwgaW5kZXggKXtcclxuICAgICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgICBvYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgXHJcbiAgICAgIHRQb3NpdGlvbi5zZXQoMCwwLDApLnNldEZyb21NYXRyaXhQb3NpdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIHRNYXRyaXguaWRlbnRpdHkoKS5leHRyYWN0Um90YXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBcclxuICAgICAgdERpcmVjdGlvbi5zZXQoMCwwLC0xKTtcclxuICAgICAgLy9hbHRlcmluZyBkaXJlY3Rpb24gZS5nLiB0byBwb2ludCBpbiBkaXJlY3Rpb24gb2YgZXh0ZW5kZWQgdHJpZ2dlciBmaW5nZXIsIHJhdGhlciB0aGFuICdtYWluIGF4aXMnIG9mIFZpdmUgY29udHJvbGxlci4uLlxyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkIGJlIGluIHVzZXJEYXRhLlxyXG4gICAgICBpZiAob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpIHREaXJlY3Rpb24uYXBwbHlRdWF0ZXJuaW9uKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKTtcclxuICAgICAgdERpcmVjdGlvbi5hcHBseU1hdHJpeDQoIHRNYXRyaXggKS5ub3JtYWxpemUoKTtcclxuICAgICAgXHJcbiAgICAgIHJheWNhc3Quc2V0KCB0UG9zaXRpb24sIHREaXJlY3Rpb24gKTtcclxuICAgICAgXHJcbiAgICAgIGxhc2VyLmdlb21ldHJ5LnZlcnRpY2VzWyAwIF0uY29weSggdFBvc2l0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyAgZGVidWcuLi5cclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLy9pZiBhbnkgaW5wdXQuaW50ZXJhY3Rpb25zIGhhdmUgaGl0Vm9sdW1lIHRoYXQgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIG5vdCBjdXJyZW50bHkgaW4gaGl0c2Nhbk9iamVjdHMsXHJcbiAgLy90aGF0IGludGVyYWN0aW9uIHNob3VsZCBiZSBjYW5jZWxsZWQuIEVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgd2l0aCBlLmcuIHByZXNzaW5nICdyZWF0dGFjaCcgd2hlbiB0aGUgcGFyZW50IGlzIGNsb3NlZC5cclxuICBmdW5jdGlvbiBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb25zLCBoaXRzY2FuT2JqZWN0cyApIHtcclxuICAgIFsncHJlc3MnLCAnZ3JpcCcsICdob3ZlciddLmZvckVhY2goIGludGVyYWN0aW9uTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV07XHJcbiAgICAgIGlmIChpbnRlcmFjdGlvbiAmJiBoaXRzY2FuT2JqZWN0cy5pbmRleE9mKGludGVyYWN0aW9uLmhpdFZvbHVtZSkgPCAwKSB7XHJcbiAgICAgICAgaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV0gPSB1bmRlZmluZWQ7IFxyXG4gICAgICAgIC8vb25seSBiZSBwb2xpdGUgdG8gaW5mb3JtIHRoZSBpbnRlcmFjdGlvbiBhcyB3ZWxsOyB1cGRhdGUgd2l0aCBlbXB0eSBpbnB1dE9iamVjdHMgYXJnIHNob3VsZCBkbyB0aGUgdHJpY2suXHJcbiAgICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBbXSApO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVMYXNlciggbGFzZXIsIHBvaW50ICl7XHJcbiAgICBsYXNlci5nZW9tZXRyeS52ZXJ0aWNlc1sgMSBdLmNvcHkoIHBvaW50ICk7XHJcbiAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBsYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5HZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZVdiA9IHV2O1xyXG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IG1lc2hiYXNpY19mcmFnID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxudW5pZm9ybSB2ZWMzIGNvbG9yO1xyXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XHJcblxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XHJcblxyXG4vLy8vL1xyXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcclxuICAgICNpZmRlZiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXNcclxuICAgICAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgI2Vsc2VcclxuICAgICAgICBmbG9hdCBhZndpZHRoID0gKDEuMCAvIDMyLjApICogKDEuNDE0MjEzNTYyMzczMDk1MSAvICgyLjAgKiBnbF9GcmFnQ29vcmQudykpO1xyXG4gICAgI2VuZGlmXHJcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XHJcbn1cclxuLy8vL1xyXG5cclxudm9pZCBtYWluKCkge1xyXG5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxyXG5cclxuICAgIC8vL1xyXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xyXG4gICAgXHJcbiAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKG1hcCwgdlV2KTtcclxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcclxuICAgIGlmIChnbF9GcmFnQ29sb3IuYSA8IDAuMDAwMSkgZGlzY2FyZDtcclxuICAgIC8vL1xyXG5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XHJcbiAgICAvL1hYWDogYmlnIGNodW5rIHJlbW92ZWQgZnJvbSBvcmlnaW5hbCBtZXNoYmFzaWNfZnJhZyBoZXJlLlxyXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cclxufVxyXG5gO1xyXG5cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlU0RGU2hhZGVyIChvcHQpIHtcclxuICBvcHQgPSBvcHQgfHwge307XHJcbiAgdmFyIG9wYWNpdHkgPSB0eXBlb2Ygb3B0Lm9wYWNpdHkgPT09ICdudW1iZXInID8gb3B0Lm9wYWNpdHkgOiAxO1xyXG4gIC8vLy0tIGhhcmRjb2RlZCBpbiBzaGFkZXIgY29kZSwgZ3VpdnIgbmV2ZXIgcGFzc2VkIHRoZXNlIGluIG9wdCAtLVxyXG4gIC8vdmFyIGFscGhhVGVzdCA9IHR5cGVvZiBvcHQuYWxwaGFUZXN0ID09PSAnbnVtYmVyJyA/IG9wdC5hbHBoYVRlc3QgOiAwLjAwMDFcclxuICAvL3ZhciBwcmVjaXNpb24gPSBvcHQucHJlY2lzaW9uIHx8ICdoaWdocCdcclxuICB2YXIgY29sb3IgPSBvcHQuY29sb3I7XHJcbiAgdmFyIG1hcCA9IG9wdC5tYXA7XHJcbiAgXHJcbiAgb3B0LmV4dGVuc2lvbnMgPSBvcHQuZXh0ZW5zaW9ucyB8fCB7fTtcclxuICBvcHQuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcyA9IHRydWU7IC8vbmIsIGZhbHNlIGRlZmF1bHRzIGZvciBmcmFnRGVwdGgsIGRyYXdCdWZmZXJzLCBzaGFkZXJUZXh0dXJlTE9EIHdpbGwgbm8gbG9uZ2VyIGJlIHRoZXJlLlxyXG4gIG9wdC5uYW1lID0gXCJTREYgdGV4dCBtYXRlcmlhbFwiO1xyXG5cclxuICAvLyByZW1vdmUgdG8gc2F0aXNmeSByNzNcclxuICBkZWxldGUgb3B0Lm1hcDtcclxuICBkZWxldGUgb3B0LmNvbG9yO1xyXG4gIGRlbGV0ZSBvcHQucHJlY2lzaW9uO1xyXG4gIGRlbGV0ZSBvcHQub3BhY2l0eTtcclxuXHJcbiAgcmV0dXJuIGFzc2lnbih7XHJcbiAgICB1bmlmb3Jtczoge1xyXG4gICAgICBvcGFjaXR5OiB7IHR5cGU6ICdmJywgdmFsdWU6IG9wYWNpdHkgfSxcclxuICAgICAgbWFwOiB7IHR5cGU6ICd0JywgdmFsdWU6IG1hcCB8fCBuZXcgVEhSRUUuVGV4dHVyZSgpIH0sXHJcbiAgICAgIGNvbG9yOiB7IHR5cGU6ICdjJywgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcihjb2xvcikgfVxyXG4gICAgfSxcclxuICAgIHZlcnRleFNoYWRlcjogbWVzaGJhc2ljX3ZlcnQsXHJcbiAgICBmcmFnbWVudFNoYWRlcjogbWVzaGJhc2ljX2ZyYWdcclxuICB9LCBvcHQpO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgU0RGU2hhZGVyIGZyb20gJy4vc2Rmc2hhZGVyX2xvZ2RlcHRoJztcclxuaW1wb3J0IGNyZWF0ZUdlb21ldHJ5IGZyb20gJ3RocmVlLWJtZm9udC10ZXh0JztcclxuaW1wb3J0IHBhcnNlQVNDSUkgZnJvbSAncGFyc2UtYm1mb250LWFzY2lpJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmltcG9ydCAqIGFzIEZvbnQgZnJvbSAnLi9mb250JztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXRlcmlhbCggY29sb3IgKXtcclxuXHJcbiAgY29uc3QgaW1hZ2UgPSBGb250LmltYWdlKCk7XHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKGltYWdlKTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBtZXNoLmdlb21ldHJ5LnVwZGF0ZSggc3RyICk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogVEhSRUUuVmVydGV4Q29sb3JzIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiAweEZGRkZGRiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIC8vaG93IGNhbiBJIGNoYW5nZSBjb2xvciBvZiB0ZXh0P1xyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBvYmplY3RbcHJvcGVydHlOYW1lXSwgeyBjb2xvcjogMHgwMDAwMDAwLCBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgLy9idXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IDAuMDE1O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVN0cmluZyhzdHIpIHtcclxuICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdHI7XHJcbiAgICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKHN0cik7XHJcbiAgfVxyXG4gIHZhciBrZXlib2FyZDtcclxuICBmdW5jdGlvbiB0b2dnbGVLZXlib2FyZCgpIHtcclxuICAgIGlmIChrZXlib2FyZCkge1xyXG4gICAgICAgIGtleWJvYXJkLnZpc2libGUgPSAha2V5Ym9hcmQudmlzaWJsZTtcclxuICAgICAgICBpZiAoa2V5Ym9hcmQudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGtleWJvYXJkID0gZGF0LkdVSVZSLmNyZWF0ZShcImtleWJvYXJkXCIpO1xyXG4gICAgICAgIGdyb3VwLmFkZChrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQuZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueCA9IHdpZHRoO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgICAgICBrZXlib2FyZC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAga2V5Ym9hcmQuYWRkS2V5Ym9hcmQoIChrKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBzdHIgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgc3dpdGNoIChrKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXG4nOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0dGluZyBcImtleWJvYXJkLnZpc2libGUgPSBmYWxzZVwiIGluIHRoZSBtaWRkbGUgb2YgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIgc2VlbXMgdG8ga2lsbCBhbGwgZXZlbnQgcHJvY2Vzc2luZyBmcm9tIHRoZW4gb24uXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0IGlzIGFuIGFkZXF1YXRlIHdvcmthcm91bmQgZm9yIG5vdy5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRvZ2dsZUtleWJvYXJkLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxiJzpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSBrO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL3RoaXMgdGVzdCBzaG91bGQgYmUgcmVkdW5kYW50IG5vd1xyXG4gICAgLy8gaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvL29iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICAvL2hpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICAvLyBjcmVhdGUgYSBrZXlib2FyZCBhbmQgYXR0YWNoIGl0IGFzIGNoaWxkIG9mIGdyb3VwLi4uIFxyXG4gICAgLy8gb3IganVzdCBtYWtlIHN1cmUgZXhpc3Rpbmcga2V5Ym9hcmQgaXMgdmlzaWJsZS5cclxuICAgIHRvZ2dsZUtleWJvYXJkKCk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfSElHSExJR0hUX0JHICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0JHICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRMYWJlbCggdGV4dENyZWF0b3IsIHN0ciwgd2lkdGggPSAwLjQsIGRlcHRoID0gMC4wMjksIGZnQ29sb3IgPSAweGZmZmZmZiwgYmdDb2xvciA9IENvbG9ycy5ERUZBVUxUX0JBQ0ssIHNjYWxlID0gMS4wICl7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGxhYmVsXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7c3RyfV1gO1xyXG5cclxuICBjb25zdCBpbnRlcm5hbFBvc2l0aW9uaW5nID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vcmF0aGVyIHVubmVjZXNzYXJ5LlxyXG4gIGdyb3VwLmFkZCggaW50ZXJuYWxQb3NpdGlvbmluZyApO1xyXG5cclxuICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdHIudG9TdHJpbmcoKSwgeyBjb2xvcjogZmdDb2xvciwgc2NhbGUgfSApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCB0ZXh0ICk7XHJcbiAgZ3JvdXAudXNlckRhdGEudGV4dCA9IHRleHQ7XHJcblxyXG4gIGdyb3VwLnNldFN0cmluZyA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkgc3RyID0gXCJbdW5kZWZpbmVkXVwiO1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvU3RyaW5nKCkgKTtcclxuICAgIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0TnVtYmVyID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvRml4ZWQoMikgKTtcclxuICB9O1xyXG5cclxuICB0ZXh0LnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgY29uc3QgYmFja0JvdW5kcyA9IDAuMDE7XHJcbiAgY29uc3QgbWFyZ2luID0gMC4wMTtcclxuICBjb25zdCB0b3RhbFdpZHRoID0gd2lkdGg7XHJcbiAgY29uc3QgdG90YWxIZWlnaHQgPSAwLjA0ICsgbWFyZ2luICogMjtcclxuXHJcbiAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrR2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0LCBkZXB0aCwgMSwgMSwgMSApO1xyXG4gIGxhYmVsQmFja0dlb21ldHJ5LmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oIHRvdGFsV2lkdGggKiAwLjUgLSBtYXJnaW4sIDAsIDAgKSApO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tNZXNoID0gbmV3IFRIUkVFLk1lc2goIGxhYmVsQmFja0dlb21ldHJ5LCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWxCYWNrTWVzaC5nZW9tZXRyeSwgYmdDb2xvciApO1xyXG5cclxuICBsYWJlbEJhY2tNZXNoLnBvc2l0aW9uLnkgPSAwLjAzO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCBsYWJlbEJhY2tNZXNoICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5wb3NpdGlvbi55ID0gLXRvdGFsSGVpZ2h0ICogMC41O1xyXG5cclxuICBncm91cC5iYWNrID0gbGFiZWxCYWNrTWVzaDtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0UGFyZW50SGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbFRpcCggdGV4dENyZWF0b3IsIHRpcCwgcGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCA9IGRlZmF1bHRQYXJlbnRIZWlnaHQsIHBhcmVudERlcHRoICkge1xyXG4gIGNvbnN0IHRpcFRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUodGlwKTtcclxuICBcclxuICBjb25zdCB0aXBHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICBjb25zdCB3ID0gdGlwVGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICBjb25zdCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0aXBUZXh0LmxheW91dC5oZWlnaHQ7XHJcblxyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnggID0gMC41ICogcGFyZW50V2lkdGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueSA9IC0xLjA1ICogcGFyZW50SGVpZ2h0IC0gaDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi56ID0gcGFyZW50RGVwdGggKiAzO1xyXG4gIHRpcEdyb3VwLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbi8vICBzdWJncm91cC5hZGQodGlwR3JvdXApO1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBUZXh0KTtcclxuLy8gIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBHcm91cDtcclxuXHJcbiAgY29uc3QgcGFkZGVkVyA9IHcgKyAwLjAzLCBwYWRkZWRIID0gaCArIDAuMDM7XHJcbiAgY29uc3QgdGlwUmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KHBhZGRlZFcsIHBhZGRlZEgsIDEsIDEpO1xyXG4gIGNvbnN0IHRpcEJhY2tncm91bmQgPSBuZXcgVEhSRUUuTWVzaCh0aXBSZWN0LCBTaGFyZWRNYXRlcmlhbHMuVE9PTFRJUCk7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi54ID0gMDsgLy9wYWRkZWRXIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnkgPSBoIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnogPSAtcGFyZW50RGVwdGggKiAwLjU7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcEJhY2tncm91bmQpO1xyXG5cclxuICB0aXBUZXh0LnBvc2l0aW9uLnggPSAtMC41ICogdztcclxuICB0aXBUZXh0LnBvc2l0aW9uLnkgPSAtMC41ICogaCArIDAuMDAxNTtcclxuXHJcbiAgdGlwR3JvdXAudXNlckRhdGEudyA9IHc7XHJcbiAgdGlwR3JvdXAudXNlckRhdGEuaCA9IGg7XHJcblxyXG4gIHJldHVybiB0aXBHcm91cDtcclxufVxyXG4iLCIvKiogYmFzaWMgdXRpbGl0eSBmdW5jdGlvbnMgKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xsZXJWaXNpYmxlKGNvbnRyb2wpIHtcclxuICB2YXIgZm9sZGVyID0gY29udHJvbC5mb2xkZXI7XHJcbiAgLy9ub3RlOiB0aGUgYmFzaXMgb24gd2hpY2ggYSBjb250cm9sbGVyIGlzIGNvbnNpZGVyZWQgdmlzaWJsZSByZXZpc2VkIGZvciAnaGVhZGVyJyBvYmplY3RzLlxyXG4gIC8vZm9yIG5vdywgdGhpcyBzaG91bGQgYWxsb3cgaGVhZGVyIGNvbnRyb2xsZXJzIHRvIHVwZGF0ZSB3aGlsZSBmb2xkZXIgaXMgY29sbGFwc2VkLlxyXG4gIC8vb25seSBhcHBsaWVzIHRvIGNoZWNrYm94LCBwZW5kaW5nIGRlc2lnbiByZXZpc2lvbiAmIGZ1bGxlciBpbXBsZW1lbnRhdGlvbi4uLlxyXG4gIFxyXG4gIC8vLS0tLSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgbm8gbG9uZ2VyIHJlbGV2YW50LCBidXQgZW5kaW5nIHVwIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3Mgc2ltaWxhci4uLi5cclxuICAvL2lzSGVhZGVyT2JqZWN0IHdpbGwgYXBwbHkgdG8gdGhlIGFjdHVhbCBjb250cm9sIGFwcGVhcmluZyBpbiB0aGUgZm9sZGVyIGhlYWRlciwgd2hlcmVhc1xyXG4gIC8vaXNTaG93bkluRm9sZGVySGVhZGVyIHdhcyB3aGVuIHN1Y2ggb2JqZWN0cyB3ZXJlbid0IHNvIGZ1bGx5LWZsZWRnZWRcclxuICAvL2lmIChjb250cm9sLmlzU2hvd25JbkZvbGRlckhlYWRlcikgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTsgLy88PDw8PCBzdGlsbCBoaXR0aW5nIGZvbGRlZCBidXR0b24/Pz8gKGFsc28sIHRyeSBucG0gYXVkaXQpXHJcbiAgaWYgKGNvbnRyb2wuaXNIZWFkZXJPYmplY3QpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7XHJcblxyXG4gIC8vWFhYIGhhdmluZyBzb21lIGRlZmluaXRlIGJ1Z3MgZS5nLiBtaXNzaW5nIGV2ZW50cyBvdmVyICdwaWN0dXJlcyAvIG1hdGVyaWFscycgZm9sZGVyIGhlYWRlciBpbiBkZW1vLlxyXG4gIFxyXG4gIGlmICghY29udHJvbC52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcil7XHJcbiAgICBpZiAoZm9sZGVyLmlzQ29sbGFwc2VkKCkgfHwgIWZvbGRlci52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gIH1cclxuICBpZiAoIWZvbGRlci5wYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gZm9sZGVyLnZpc2libGU7XHJcbn1cclxuXHJcbi8qKiBcclxuICogSW52aXNpYmxlIFRIUkVFIG9iamVjdHMgaW5jdXIgc2lnbmlmaWNhbnQgQ1BVIGNvc3QuXHJcbiAqIFRoaXMgYXZvaWRzIHRoYXQgYnkgcmVtb3ZpbmcgdGhlbSBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICogXHJcbiAqIElmIHZpc2libGUgaXMgdHJ1ZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9dHJ1ZSBhbmQgaXMgYSBjaGlsZCBvZiBwYXJlbnQuXHJcbiAqIElmIHZpc2libGUgaXMgZmFsc2UsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPWZhbHNlIGFuZCBpcyByZW1vdmVkIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHkocGFyZW50LCBjaGlsZCwgdmlzaWJsZSkge1xyXG4gICAgY29uc3QgaXNDaGlsZCA9IHBhcmVudC5jaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCk7XHJcbiAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgIC8vbWFrZSBzdXJlIHdlIHVzZSBvcmlnaW5hbCBUSFJFRSBtZXRob2RzIHRoYXQgdGhpcyBsaWJyYXJ5IG92ZXJyaWRlcyAoVE9ETzogcmVmYWN0b3IuLi4pXHJcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZC5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCF2aXNpYmxlICYmIGlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmUuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghcGFyZW50LnZpc2libGUpIGNvbnNvbGUud2Fybihgc2V0VmlzaWJpbGl0eSBjYWxsZWQgb24gY2hpbGQgJHtjaGlsZH0gb2YgaW52aXNpYmxlIHBhcmVudCAke3BhcmVudH1gKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2YgcGFyZW50IGZvbGRlciBpbiB0aGUgZ3VpIGhpZWFyY2h5IGNvbnRhaW5pbmcgYSBnaXZlbiBvYmplY3QuXHJcbiAqIG5iLiBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0IGRpZG4ndCBoYXZlIGEgJ2ZvbGRlcicgcHJvcGVydHkuXHJcbiAqIE5vdywgaXQgaXMgaW50ZW5kZWQgdGhhdCBpdCBzaG91bGQgZWl0aGVyIHJldHVybiBhIGZvbGRlciBpZiBhcHByb3ByaWF0ZSwgb3Igbm90aGluZy5cclxuICogQHBhcmFtIHsqfSBncm91cCBlaXRoZXIgYSBmb2xkZXIsIG9yIGFuIG9iamVjdCB3aG9zZSBwYXJlbnQgaGFzIGEgZm9sZGVyLi4uIGFwb2xvZ2llcywgdGhpcyBpcyBub3QgdGhlIGNsZWFyZXN0IHNwZWMuXHJcbiAqIC4uLiBpbnRlbnRpb24gaXMgdGhhdCBpdCBzaG91bGQgd29yayB3aXRoIGFueSBndWkgZWxlbWVudCwgaW4gcGFydGljdWxhciBhbnkgaGl0T2JqZWN0IGluIGludGVyYWN0aW9uLmpzLi4uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApIHtcclxuICAgIHZhciBmb2xkZXIgPSBnZXRGb2xkZXIoZ3JvdXApO1xyXG4gICAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcikgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICAgIHJldHVybiBmb2xkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoZ3JvdXApIHtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIHJldHVybiBncm91cC5mb2xkZXI7XHJcbiAgICBsZXQgbm9kZSA9IGdyb3VwLnBhcmVudDtcclxuICAgIHdoaWxlICghbm9kZS5mb2xkZXIgJiYgZ3JvdXAucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICByZXR1cm4gbm9kZS5mb2xkZXI7XHJcbn1cclxuXHJcbi8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCb3hGcm9tT2JqZWN0KGJveCwgb2JqKSB7XHJcbiAgY29uc3Qgd29ua3lHZW9tID0gW107XHJcbiAgb2JqLnRyYXZlcnNlKG8gPT4ge1xyXG4gICAgaWYgKG8uZ2VvbWV0cnkgJiYgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZSAhPT0gMykge1xyXG4gICAgICBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgPSBmYWxzZTtcclxuICAgICAgd29ua3lHZW9tLnB1c2goby5nZW9tZXRyeSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgYm94LnNldEZyb21PYmplY3Qob2JqKTtcclxuICB3b25reUdlb20uZm9yRWFjaChnID0+IGcuaXNCdWZmZXJHZW9tZXRyeSA9IHRydWUpO1xyXG4gIHJldHVybiBib3g7XHJcbn1cclxuIiwiLypcclxuICpcdEBhdXRob3Igeno4NSAvIGh0dHA6Ly90d2l0dGVyLmNvbS9ibHVyc3BsaW5lIC8gaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZ1xyXG4gKlx0QGF1dGhvciBjZW50ZXJpb253YXJlIC8gaHR0cDovL3d3dy5jZW50ZXJpb253YXJlLmNvbVxyXG4gKlxyXG4gKlx0U3ViZGl2aXNpb24gR2VvbWV0cnkgTW9kaWZpZXJcclxuICpcdFx0dXNpbmcgTG9vcCBTdWJkaXZpc2lvbiBTY2hlbWVcclxuICpcclxuICpcdFJlZmVyZW5jZXM6XHJcbiAqXHRcdGh0dHA6Ly9ncmFwaGljcy5zdGFuZm9yZC5lZHUvfm1kZmlzaGVyL3N1YmRpdmlzaW9uLmh0bWxcclxuICpcdFx0aHR0cDovL3d3dy5ob2xtZXMzZC5uZXQvZ3JhcGhpY3Mvc3ViZGl2aXNpb24vXHJcbiAqXHRcdGh0dHA6Ly93d3cuY3MucnV0Z2Vycy5lZHUvfmRlY2FybG8vcmVhZGluZ3Mvc3ViZGl2LXNnMDBjLnBkZlxyXG4gKlxyXG4gKlx0S25vd24gSXNzdWVzOlxyXG4gKlx0XHQtIGN1cnJlbnRseSBkb2Vzbid0IGhhbmRsZSBcIlNoYXJwIEVkZ2VzXCJcclxuICovXHJcblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyID0gZnVuY3Rpb24gKCBzdWJkaXZpc2lvbnMgKSB7XHJcblxyXG5cdHRoaXMuc3ViZGl2aXNpb25zID0gKCBzdWJkaXZpc2lvbnMgPT09IHVuZGVmaW5lZCApID8gMSA6IHN1YmRpdmlzaW9ucztcclxuXHJcbn07XHJcblxyXG4vLyBBcHBsaWVzIHRoZSBcIm1vZGlmeVwiIHBhdHRlcm5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUubW9kaWZ5ID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHtcclxuXHJcblx0dmFyIHJlcGVhdHMgPSB0aGlzLnN1YmRpdmlzaW9ucztcclxuXHJcblx0d2hpbGUgKCByZXBlYXRzIC0tID4gMCApIHtcclxuXHJcblx0XHR0aGlzLnNtb290aCggZ2VvbWV0cnkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRnZW9tZXRyeS5jb21wdXRlRmFjZU5vcm1hbHMoKTtcclxuXHRnZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xyXG5cclxufTtcclxuXHJcbiggZnVuY3Rpb24oKSB7XHJcblxyXG5cdC8vIFNvbWUgY29uc3RhbnRzXHJcblx0dmFyIFdBUk5JTkdTID0gISB0cnVlOyAvLyBTZXQgdG8gdHJ1ZSBmb3IgZGV2ZWxvcG1lbnRcclxuXHR2YXIgQUJDID0gWyAnYScsICdiJywgJ2MnIF07XHJcblxyXG5cclxuXHRmdW5jdGlvbiBnZXRFZGdlKCBhLCBiLCBtYXAgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0cmV0dXJuIG1hcFsga2V5IF07XHJcblxyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHByb2Nlc3NFZGdlKCBhLCBiLCB2ZXJ0aWNlcywgbWFwLCBmYWNlLCBtZXRhVmVydGljZXMgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0dmFyIGVkZ2U7XHJcblxyXG5cdFx0aWYgKCBrZXkgaW4gbWFwICkge1xyXG5cclxuXHRcdFx0ZWRnZSA9IG1hcFsga2V5IF07XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHZhciB2ZXJ0ZXhBID0gdmVydGljZXNbIHZlcnRleEluZGV4QSBdO1xyXG5cdFx0XHR2YXIgdmVydGV4QiA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEIgXTtcclxuXHJcblx0XHRcdGVkZ2UgPSB7XHJcblxyXG5cdFx0XHRcdGE6IHZlcnRleEEsIC8vIHBvaW50ZXIgcmVmZXJlbmNlXHJcblx0XHRcdFx0YjogdmVydGV4QixcclxuXHRcdFx0XHRuZXdFZGdlOiBudWxsLFxyXG5cdFx0XHRcdC8vIGFJbmRleDogYSwgLy8gbnVtYmVyZWQgcmVmZXJlbmNlXHJcblx0XHRcdFx0Ly8gYkluZGV4OiBiLFxyXG5cdFx0XHRcdGZhY2VzOiBbXSAvLyBwb2ludGVycyB0byBmYWNlXHJcblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0bWFwWyBrZXkgXSA9IGVkZ2U7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGVkZ2UuZmFjZXMucHVzaCggZmFjZSApO1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlc1sgYSBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHRcdG1ldGFWZXJ0aWNlc1sgYiBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2VuZXJhdGVMb29rdXBzKCB2ZXJ0aWNlcywgZmFjZXMsIG1ldGFWZXJ0aWNlcywgZWRnZXMgKSB7XHJcblxyXG5cdFx0dmFyIGksIGlsLCBmYWNlLCBlZGdlO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IHZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0bWV0YVZlcnRpY2VzWyBpIF0gPSB7IGVkZ2VzOiBbXSB9O1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBmYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBmYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYSwgZmFjZS5iLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5iLCBmYWNlLmMsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmMsIGZhY2UuYSwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3RmFjZSggbmV3RmFjZXMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3RmFjZXMucHVzaCggbmV3IFRIUkVFLkZhY2UzKCBhLCBiLCBjICkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBtaWRwb2ludCggYSwgYiApIHtcclxuXHJcblx0XHRyZXR1cm4gKCBNYXRoLmFicyggYiAtIGEgKSAvIDIgKSArIE1hdGgubWluKCBhLCBiICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3VXYoIG5ld1V2cywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdVdnMucHVzaCggWyBhLmNsb25lKCksIGIuY2xvbmUoKSwgYy5jbG9uZSgpIF0gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHQvLyBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIFN1YmRpdmlzaW9uXHJcblx0VEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUuc21vb3RoID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHtcclxuXHJcblx0XHR2YXIgdG1wID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHR2YXIgb2xkVmVydGljZXMsIG9sZEZhY2VzLCBvbGRVdnM7XHJcblx0XHR2YXIgbmV3VmVydGljZXMsIG5ld0ZhY2VzLCBuZXdVVnMgPSBbXTtcclxuXHJcblx0XHR2YXIgbiwgbCwgaSwgaWwsIGosIGs7XHJcblx0XHR2YXIgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcztcclxuXHJcblx0XHQvLyBuZXcgc3R1ZmYuXHJcblx0XHR2YXIgc291cmNlRWRnZXMsIG5ld0VkZ2VWZXJ0aWNlcywgbmV3U291cmNlVmVydGljZXM7XHJcblxyXG5cdFx0b2xkVmVydGljZXMgPSBnZW9tZXRyeS52ZXJ0aWNlczsgLy8geyB4LCB5LCB6fVxyXG5cdFx0b2xkRmFjZXMgPSBnZW9tZXRyeS5mYWNlczsgLy8geyBhOiBvbGRWZXJ0ZXgxLCBiOiBvbGRWZXJ0ZXgyLCBjOiBvbGRWZXJ0ZXgzIH1cclxuXHRcdG9sZFV2cyA9IGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXTtcclxuXHJcblx0XHR2YXIgaGFzVXZzID0gb2xkVXZzICE9PSB1bmRlZmluZWQgJiYgb2xkVXZzLmxlbmd0aCA+IDA7XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqIFN0ZXAgMDogUHJlcHJvY2VzcyBHZW9tZXRyeSB0byBHZW5lcmF0ZSBlZGdlcyBMb29rdXBcclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRtZXRhVmVydGljZXMgPSBuZXcgQXJyYXkoIG9sZFZlcnRpY2VzLmxlbmd0aCApO1xyXG5cdFx0c291cmNlRWRnZXMgPSB7fTsgLy8gRWRnZSA9PiB7IG9sZFZlcnRleDEsIG9sZFZlcnRleDIsIGZhY2VzW10gIH1cclxuXHJcblx0XHRnZW5lcmF0ZUxvb2t1cHMoIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcyApO1xyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMS5cclxuXHRcdCAqXHRGb3IgZWFjaCBlZGdlLCBjcmVhdGUgYSBuZXcgRWRnZSBWZXJ0ZXgsXHJcblx0XHQgKlx0dGhlbiBwb3NpdGlvbiBpdC5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdFZGdlVmVydGljZXMgPSBbXTtcclxuXHRcdHZhciBvdGhlciwgY3VycmVudEVkZ2UsIG5ld0VkZ2UsIGZhY2U7XHJcblx0XHR2YXIgZWRnZVZlcnRleFdlaWdodCwgYWRqYWNlbnRWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RlZEZhY2VzO1xyXG5cclxuXHRcdGZvciAoIGkgaW4gc291cmNlRWRnZXMgKSB7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZSA9IHNvdXJjZUVkZ2VzWyBpIF07XHJcblx0XHRcdG5ld0VkZ2UgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDMgLyA4O1xyXG5cdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0Y29ubmVjdGVkRmFjZXMgPSBjdXJyZW50RWRnZS5mYWNlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHQvLyBjaGVjayBob3cgbWFueSBsaW5rZWQgZmFjZXMuIDIgc2hvdWxkIGJlIGNvcnJlY3QuXHJcblx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gaWYgbGVuZ3RoIGlzIG5vdCAyLCBoYW5kbGUgY29uZGl0aW9uXHJcblx0XHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDAuNTtcclxuXHRcdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnU3ViZGl2aXNpb24gTW9kaWZpZXI6IE51bWJlciBvZiBjb25uZWN0ZWQgZmFjZXMgIT0gMiwgaXM6ICcsIGNvbm5lY3RlZEZhY2VzLCBjdXJyZW50RWRnZSApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdFZGdlLmFkZFZlY3RvcnMoIGN1cnJlbnRFZGdlLmEsIGN1cnJlbnRFZGdlLmIgKS5tdWx0aXBseVNjYWxhciggZWRnZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBjb25uZWN0ZWRGYWNlczsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0ZmFjZSA9IGN1cnJlbnRFZGdlLmZhY2VzWyBqIF07XHJcblxyXG5cdFx0XHRcdGZvciAoIGsgPSAwOyBrIDwgMzsgayArKyApIHtcclxuXHJcblx0XHRcdFx0XHRvdGhlciA9IG9sZFZlcnRpY2VzWyBmYWNlWyBBQkNbIGsgXSBdIF07XHJcblx0XHRcdFx0XHRpZiAoIG90aGVyICE9PSBjdXJyZW50RWRnZS5hICYmIG90aGVyICE9PSBjdXJyZW50RWRnZS5iICkgYnJlYWs7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggYWRqYWNlbnRWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3RWRnZS5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UubmV3RWRnZSA9IG5ld0VkZ2VWZXJ0aWNlcy5sZW5ndGg7XHJcblx0XHRcdG5ld0VkZ2VWZXJ0aWNlcy5wdXNoKCBuZXdFZGdlICk7XHJcblxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhjdXJyZW50RWRnZSwgbmV3RWRnZSk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAyLlxyXG5cdFx0ICpcdFJlcG9zaXRpb24gZWFjaCBzb3VyY2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0dmFyIGJldGEsIHNvdXJjZVZlcnRleFdlaWdodCwgY29ubmVjdGluZ1ZlcnRleFdlaWdodDtcclxuXHRcdHZhciBjb25uZWN0aW5nRWRnZSwgY29ubmVjdGluZ0VkZ2VzLCBvbGRWZXJ0ZXgsIG5ld1NvdXJjZVZlcnRleDtcclxuXHRcdG5ld1NvdXJjZVZlcnRpY2VzID0gW107XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkVmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRvbGRWZXJ0ZXggPSBvbGRWZXJ0aWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCBhbGwgY29ubmVjdGluZyBlZGdlcyAodXNpbmcgbG9va3VwVGFibGUpXHJcblx0XHRcdGNvbm5lY3RpbmdFZGdlcyA9IG1ldGFWZXJ0aWNlc1sgaSBdLmVkZ2VzO1xyXG5cdFx0XHRuID0gY29ubmVjdGluZ0VkZ2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdGlmICggbiA9PSAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvIDE2O1xyXG5cclxuXHRcdFx0fSBlbHNlIGlmICggbiA+IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gKCA4ICogbiApOyAvLyBXYXJyZW4ncyBtb2RpZmllZCBmb3JtdWxhXHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBMb29wJ3Mgb3JpZ2luYWwgYmV0YSBmb3JtdWxhXHJcblx0XHRcdC8vIGJldGEgPSAxIC8gbiAqICggNS84IC0gTWF0aC5wb3coIDMvOCArIDEvNCAqIE1hdGguY29zKCAyICogTWF0aC4gUEkgLyBuICksIDIpICk7XHJcblxyXG5cdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxIC0gbiAqIGJldGE7XHJcblx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSBiZXRhO1xyXG5cclxuXHRcdFx0aWYgKCBuIDw9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGNyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXNcclxuXHRcdFx0XHQvLyBjb25zb2xlLndhcm4oJ2NyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXMnKTtcclxuXHJcblx0XHRcdFx0aWYgKCBuID09IDIgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzIgY29ubmVjdGluZyBlZGdlcycsIGNvbm5lY3RpbmdFZGdlcyApO1xyXG5cdFx0XHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMyAvIDQ7XHJcblx0XHRcdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRcdFx0Ly8gc291cmNlVmVydGV4V2VpZ2h0ID0gMTtcclxuXHRcdFx0XHRcdC8vIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ29ubHkgMSBjb25uZWN0aW5nIGVkZ2UnICk7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMCApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMCBjb25uZWN0aW5nIGVkZ2VzJyApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXggPSBvbGRWZXJ0ZXguY2xvbmUoKS5tdWx0aXBseVNjYWxhciggc291cmNlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IG47IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGNvbm5lY3RpbmdFZGdlID0gY29ubmVjdGluZ0VkZ2VzWyBqIF07XHJcblx0XHRcdFx0b3RoZXIgPSBjb25uZWN0aW5nRWRnZS5hICE9PSBvbGRWZXJ0ZXggPyBjb25uZWN0aW5nRWRnZS5hIDogY29ubmVjdGluZ0VkZ2UuYjtcclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleC5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGljZXMucHVzaCggbmV3U291cmNlVmVydGV4ICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMy5cclxuXHRcdCAqXHRHZW5lcmF0ZSBGYWNlcyBiZXR3ZWVuIHNvdXJjZSB2ZXJ0aWNlc1xyXG5cdFx0ICpcdGFuZCBlZGdlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld1ZlcnRpY2VzID0gbmV3U291cmNlVmVydGljZXMuY29uY2F0KCBuZXdFZGdlVmVydGljZXMgKTtcclxuXHRcdHZhciBzbCA9IG5ld1NvdXJjZVZlcnRpY2VzLmxlbmd0aCwgZWRnZTEsIGVkZ2UyLCBlZGdlMztcclxuXHRcdG5ld0ZhY2VzID0gW107XHJcblxyXG5cdFx0dmFyIHV2LCB4MCwgeDEsIHgyO1xyXG5cdFx0dmFyIHgzID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NCA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDUgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZEZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IG9sZEZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIHRoZSAzIG5ldyBlZGdlcyB2ZXJ0ZXggb2YgZWFjaCBvbGQgZmFjZVxyXG5cclxuXHRcdFx0ZWRnZTEgPSBnZXRFZGdlKCBmYWNlLmEsIGZhY2UuYiwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UyID0gZ2V0RWRnZSggZmFjZS5iLCBmYWNlLmMsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMyA9IGdldEVkZ2UoIGZhY2UuYywgZmFjZS5hLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IGZhY2VzLlxyXG5cclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGVkZ2UxLCBlZGdlMiwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYSwgZWRnZTEsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmIsIGVkZ2UyLCBlZGdlMSApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5jLCBlZGdlMywgZWRnZTIgKTtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IG5ldyB1didzXHJcblxyXG5cdFx0XHRpZiAoIGhhc1V2cyApIHtcclxuXHJcblx0XHRcdFx0dXYgPSBvbGRVdnNbIGkgXTtcclxuXHJcblx0XHRcdFx0eDAgPSB1dlsgMCBdO1xyXG5cdFx0XHRcdHgxID0gdXZbIDEgXTtcclxuXHRcdFx0XHR4MiA9IHV2WyAyIF07XHJcblxyXG5cdFx0XHRcdHgzLnNldCggbWlkcG9pbnQoIHgwLngsIHgxLnggKSwgbWlkcG9pbnQoIHgwLnksIHgxLnkgKSApO1xyXG5cdFx0XHRcdHg0LnNldCggbWlkcG9pbnQoIHgxLngsIHgyLnggKSwgbWlkcG9pbnQoIHgxLnksIHgyLnkgKSApO1xyXG5cdFx0XHRcdHg1LnNldCggbWlkcG9pbnQoIHgwLngsIHgyLnggKSwgbWlkcG9pbnQoIHgwLnksIHgyLnkgKSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MywgeDQsIHg1ICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDAsIHgzLCB4NSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MSwgeDQsIHgzICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDIsIHg1LCB4NCApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvLyBPdmVyd3JpdGUgb2xkIGFycmF5c1xyXG5cdFx0Z2VvbWV0cnkudmVydGljZXMgPSBuZXdWZXJ0aWNlcztcclxuXHRcdGdlb21ldHJ5LmZhY2VzID0gbmV3RmFjZXM7XHJcblx0XHRpZiAoIGhhc1V2cyApIGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXSA9IG5ld1VWcztcclxuXHJcblx0XHQvLyBjb25zb2xlLmxvZygnZG9uZScpO1xyXG5cclxuXHR9O1xyXG5cclxufSApKCk7XHJcbiIsInZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXG5cbm1vZHVsZS5leHBvcnRzID0gYW5BcnJheVxuXG5mdW5jdGlvbiBhbkFycmF5KGFycikge1xuICByZXR1cm4gKFxuICAgICAgIGFyci5CWVRFU19QRVJfRUxFTUVOVFxuICAgICYmIHN0ci5jYWxsKGFyci5idWZmZXIpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nXG4gICAgfHwgQXJyYXkuaXNBcnJheShhcnIpXG4gIClcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbnVtdHlwZShudW0sIGRlZikge1xuXHRyZXR1cm4gdHlwZW9mIG51bSA9PT0gJ251bWJlcidcblx0XHQ/IG51bSBcblx0XHQ6ICh0eXBlb2YgZGVmID09PSAnbnVtYmVyJyA/IGRlZiA6IDApXG59IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihkdHlwZSkge1xuICBzd2l0Y2ggKGR0eXBlKSB7XG4gICAgY2FzZSAnaW50OCc6XG4gICAgICByZXR1cm4gSW50OEFycmF5XG4gICAgY2FzZSAnaW50MTYnOlxuICAgICAgcmV0dXJuIEludDE2QXJyYXlcbiAgICBjYXNlICdpbnQzMic6XG4gICAgICByZXR1cm4gSW50MzJBcnJheVxuICAgIGNhc2UgJ3VpbnQ4JzpcbiAgICAgIHJldHVybiBVaW50OEFycmF5XG4gICAgY2FzZSAndWludDE2JzpcbiAgICAgIHJldHVybiBVaW50MTZBcnJheVxuICAgIGNhc2UgJ3VpbnQzMic6XG4gICAgICByZXR1cm4gVWludDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDMyJzpcbiAgICAgIHJldHVybiBGbG9hdDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDY0JzpcbiAgICAgIHJldHVybiBGbG9hdDY0QXJyYXlcbiAgICBjYXNlICdhcnJheSc6XG4gICAgICByZXR1cm4gQXJyYXlcbiAgICBjYXNlICd1aW50OF9jbGFtcGVkJzpcbiAgICAgIHJldHVybiBVaW50OENsYW1wZWRBcnJheVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICB0aGlzLl9ldmVudHMgPSB0aGlzLl9ldmVudHMgfHwge307XG4gIHRoaXMuX21heExpc3RlbmVycyA9IHRoaXMuX21heExpc3RlbmVycyB8fCB1bmRlZmluZWQ7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbkV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uKG4pIHtcbiAgaWYgKCFpc051bWJlcihuKSB8fCBuIDwgMCB8fCBpc05hTihuKSlcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ24gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcicpO1xuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uKHR5cGUpIHtcbiAgdmFyIGVyLCBoYW5kbGVyLCBsZW4sIGFyZ3MsIGksIGxpc3RlbmVycztcblxuICBpZiAoIXRoaXMuX2V2ZW50cylcbiAgICB0aGlzLl9ldmVudHMgPSB7fTtcblxuICAvLyBJZiB0aGVyZSBpcyBubyAnZXJyb3InIGV2ZW50IGxpc3RlbmVyIHRoZW4gdGhyb3cuXG4gIGlmICh0eXBlID09PSAnZXJyb3InKSB7XG4gICAgaWYgKCF0aGlzLl9ldmVudHMuZXJyb3IgfHxcbiAgICAgICAgKGlzT2JqZWN0KHRoaXMuX2V2ZW50cy5lcnJvcikgJiYgIXRoaXMuX2V2ZW50cy5lcnJvci5sZW5ndGgpKSB7XG4gICAgICBlciA9IGFyZ3VtZW50c1sxXTtcbiAgICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHRocm93IGVyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmNhdWdodCwgdW5zcGVjaWZpZWQgXCJlcnJvclwiIGV2ZW50LiAoJyArIGVyICsgJyknKTtcbiAgICAgICAgZXJyLmNvbnRleHQgPSBlcjtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZXIgPSB0aGlzLl9ldmVudHNbdHlwZV07XG5cbiAgaWYgKGlzVW5kZWZpbmVkKGhhbmRsZXIpKVxuICAgIHJldHVybiBmYWxzZTtcblxuICBpZiAoaXNGdW5jdGlvbihoYW5kbGVyKSkge1xuICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgLy8gZmFzdCBjYXNlc1xuICAgICAgY2FzZSAxOlxuICAgICAgICBoYW5kbGVyLmNhbGwodGhpcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICBoYW5kbGVyLmNhbGwodGhpcywgYXJndW1lbnRzWzFdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzLCBhcmd1bWVudHNbMV0sIGFyZ3VtZW50c1syXSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gc2xvd2VyXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgaGFuZGxlci5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNPYmplY3QoaGFuZGxlcikpIHtcbiAgICBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICBsaXN0ZW5lcnMgPSBoYW5kbGVyLnNsaWNlKCk7XG4gICAgbGVuID0gbGlzdGVuZXJzLmxlbmd0aDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspXG4gICAgICBsaXN0ZW5lcnNbaV0uYXBwbHkodGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgbTtcblxuICBpZiAoIWlzRnVuY3Rpb24obGlzdGVuZXIpKVxuICAgIHRocm93IFR5cGVFcnJvcignbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHMpXG4gICAgdGhpcy5fZXZlbnRzID0ge307XG5cbiAgLy8gVG8gYXZvaWQgcmVjdXJzaW9uIGluIHRoZSBjYXNlIHRoYXQgdHlwZSA9PT0gXCJuZXdMaXN0ZW5lclwiISBCZWZvcmVcbiAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICBpZiAodGhpcy5fZXZlbnRzLm5ld0xpc3RlbmVyKVxuICAgIHRoaXMuZW1pdCgnbmV3TGlzdGVuZXInLCB0eXBlLFxuICAgICAgICAgICAgICBpc0Z1bmN0aW9uKGxpc3RlbmVyLmxpc3RlbmVyKSA/XG4gICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gIGlmICghdGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIHRoaXMuX2V2ZW50c1t0eXBlXSA9IGxpc3RlbmVyO1xuICBlbHNlIGlmIChpc09iamVjdCh0aGlzLl9ldmVudHNbdHlwZV0pKVxuICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB0aGlzLl9ldmVudHNbdHlwZV0ucHVzaChsaXN0ZW5lcik7XG4gIGVsc2VcbiAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBuZWVkIHRvIGNoYW5nZSB0byBhcnJheS5cbiAgICB0aGlzLl9ldmVudHNbdHlwZV0gPSBbdGhpcy5fZXZlbnRzW3R5cGVdLCBsaXN0ZW5lcl07XG5cbiAgLy8gQ2hlY2sgZm9yIGxpc3RlbmVyIGxlYWtcbiAgaWYgKGlzT2JqZWN0KHRoaXMuX2V2ZW50c1t0eXBlXSkgJiYgIXRoaXMuX2V2ZW50c1t0eXBlXS53YXJuZWQpIHtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKHRoaXMuX21heExpc3RlbmVycykpIHtcbiAgICAgIG0gPSB0aGlzLl9tYXhMaXN0ZW5lcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIG0gPSBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgICB9XG5cbiAgICBpZiAobSAmJiBtID4gMCAmJiB0aGlzLl9ldmVudHNbdHlwZV0ubGVuZ3RoID4gbSkge1xuICAgICAgdGhpcy5fZXZlbnRzW3R5cGVdLndhcm5lZCA9IHRydWU7XG4gICAgICBjb25zb2xlLmVycm9yKCcobm9kZSkgd2FybmluZzogcG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSAnICtcbiAgICAgICAgICAgICAgICAgICAgJ2xlYWsgZGV0ZWN0ZWQuICVkIGxpc3RlbmVycyBhZGRlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICdVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdC4nLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ldmVudHNbdHlwZV0ubGVuZ3RoKTtcbiAgICAgIGlmICh0eXBlb2YgY29uc29sZS50cmFjZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBub3Qgc3VwcG9ydGVkIGluIElFIDEwXG4gICAgICAgIGNvbnNvbGUudHJhY2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikge1xuICBpZiAoIWlzRnVuY3Rpb24obGlzdGVuZXIpKVxuICAgIHRocm93IFR5cGVFcnJvcignbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG5cbiAgdmFyIGZpcmVkID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gZygpIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGcpO1xuXG4gICAgaWYgKCFmaXJlZCkge1xuICAgICAgZmlyZWQgPSB0cnVlO1xuICAgICAgbGlzdGVuZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG4gIH1cblxuICBnLmxpc3RlbmVyID0gbGlzdGVuZXI7XG4gIHRoaXMub24odHlwZSwgZyk7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vLyBlbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWZmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZFxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBsaXN0LCBwb3NpdGlvbiwgbGVuZ3RoLCBpO1xuXG4gIGlmICghaXNGdW5jdGlvbihsaXN0ZW5lcikpXG4gICAgdGhyb3cgVHlwZUVycm9yKCdsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcblxuICBpZiAoIXRoaXMuX2V2ZW50cyB8fCAhdGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgIHJldHVybiB0aGlzO1xuXG4gIGxpc3QgPSB0aGlzLl9ldmVudHNbdHlwZV07XG4gIGxlbmd0aCA9IGxpc3QubGVuZ3RoO1xuICBwb3NpdGlvbiA9IC0xO1xuXG4gIGlmIChsaXN0ID09PSBsaXN0ZW5lciB8fFxuICAgICAgKGlzRnVuY3Rpb24obGlzdC5saXN0ZW5lcikgJiYgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpKSB7XG4gICAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTtcbiAgICBpZiAodGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3RlbmVyKTtcblxuICB9IGVsc2UgaWYgKGlzT2JqZWN0KGxpc3QpKSB7XG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gPiAwOykge1xuICAgICAgaWYgKGxpc3RbaV0gPT09IGxpc3RlbmVyIHx8XG4gICAgICAgICAgKGxpc3RbaV0ubGlzdGVuZXIgJiYgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpKSB7XG4gICAgICAgIHBvc2l0aW9uID0gaTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICBsaXN0Lmxlbmd0aCA9IDA7XG4gICAgICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaXN0LnNwbGljZShwb3NpdGlvbiwgMSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0ZW5lcik7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID0gZnVuY3Rpb24odHlwZSkge1xuICB2YXIga2V5LCBsaXN0ZW5lcnM7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHMpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICBpZiAoIXRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcikge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgdGhpcy5fZXZlbnRzID0ge307XG4gICAgZWxzZSBpZiAodGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgICAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGVtaXQgcmVtb3ZlTGlzdGVuZXIgZm9yIGFsbCBsaXN0ZW5lcnMgb24gYWxsIGV2ZW50c1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGZvciAoa2V5IGluIHRoaXMuX2V2ZW50cykge1xuICAgICAgaWYgKGtleSA9PT0gJ3JlbW92ZUxpc3RlbmVyJykgY29udGludWU7XG4gICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygncmVtb3ZlTGlzdGVuZXInKTtcbiAgICB0aGlzLl9ldmVudHMgPSB7fTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxpc3RlbmVycyA9IHRoaXMuX2V2ZW50c1t0eXBlXTtcblxuICBpZiAoaXNGdW5jdGlvbihsaXN0ZW5lcnMpKSB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICB9IGVsc2UgaWYgKGxpc3RlbmVycykge1xuICAgIC8vIExJRk8gb3JkZXJcbiAgICB3aGlsZSAobGlzdGVuZXJzLmxlbmd0aClcbiAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2xpc3RlbmVycy5sZW5ndGggLSAxXSk7XG4gIH1cbiAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24odHlwZSkge1xuICB2YXIgcmV0O1xuICBpZiAoIXRoaXMuX2V2ZW50cyB8fCAhdGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgIHJldCA9IFtdO1xuICBlbHNlIGlmIChpc0Z1bmN0aW9uKHRoaXMuX2V2ZW50c1t0eXBlXSkpXG4gICAgcmV0ID0gW3RoaXMuX2V2ZW50c1t0eXBlXV07XG4gIGVsc2VcbiAgICByZXQgPSB0aGlzLl9ldmVudHNbdHlwZV0uc2xpY2UoKTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKHR5cGUpIHtcbiAgaWYgKHRoaXMuX2V2ZW50cykge1xuICAgIHZhciBldmxpc3RlbmVyID0gdGhpcy5fZXZlbnRzW3R5cGVdO1xuXG4gICAgaWYgKGlzRnVuY3Rpb24oZXZsaXN0ZW5lcikpXG4gICAgICByZXR1cm4gMTtcbiAgICBlbHNlIGlmIChldmxpc3RlbmVyKVxuICAgICAgcmV0dXJuIGV2bGlzdGVuZXIubGVuZ3RoO1xuICB9XG4gIHJldHVybiAwO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIHJldHVybiBlbWl0dGVyLmxpc3RlbmVyQ291bnQodHlwZSk7XG59O1xuXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZnVuY3Rpb24gaXNOdW1iZXIoYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnbnVtYmVyJztcbn1cblxuZnVuY3Rpb24gaXNPYmplY3QoYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnb2JqZWN0JyAmJiBhcmcgIT09IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKGFyZykge1xuICByZXR1cm4gYXJnID09PSB2b2lkIDA7XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGVcbiAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgQmFzZS5jYWxsKHRoaXMpXG5cbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIHRoZXNlIGFzIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgc3Vic2VxdWVudFxuICAvLyBjYWxscyB0byB1cGRhdGUoKVxuICB0aGlzLl9vcHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX29wdCwgb3B0KVxuXG4gIGlmICghb3B0LmZvbnQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgYSB7IGZvbnQgfSBpbiBvcHRpb25zJylcbiAgfVxuXG4gIHRoaXMubGF5b3V0ID0gY3JlYXRlTGF5b3V0KG9wdClcblxuICAvLyBnZXQgdmVjMiB0ZXhjb29yZHNcbiAgdmFyIGZsaXBZID0gb3B0LmZsaXBZICE9PSBmYWxzZVxuXG4gIC8vIHRoZSBkZXNpcmVkIEJNRm9udCBkYXRhXG4gIHZhciBmb250ID0gb3B0LmZvbnRcblxuICAvLyBkZXRlcm1pbmUgdGV4dHVyZSBzaXplIGZyb20gZm9udCBmaWxlXG4gIHZhciB0ZXhXaWR0aCA9IGZvbnQuY29tbW9uLnNjYWxlV1xuICB2YXIgdGV4SGVpZ2h0ID0gZm9udC5jb21tb24uc2NhbGVIXG5cbiAgLy8gZ2V0IHZpc2libGUgZ2x5cGhzXG4gIHZhciBnbHlwaHMgPSB0aGlzLmxheW91dC5nbHlwaHMuZmlsdGVyKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgcmV0dXJuIGJpdG1hcC53aWR0aCAqIGJpdG1hcC5oZWlnaHQgPiAwXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB2aXNpYmxlIGdseXBocyBmb3IgY29udmVuaWVuY2VcbiAgdGhpcy52aXNpYmxlR2x5cGhzID0gZ2x5cGhzXG5cbiAgLy8gZ2V0IGNvbW1vbiB2ZXJ0ZXggZGF0YVxuICB2YXIgcG9zaXRpb25zID0gdmVydGljZXMucG9zaXRpb25zKGdseXBocylcbiAgdmFyIHV2cyA9IHZlcnRpY2VzLnV2cyhnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKVxuICB2YXIgaW5kaWNlcyA9IGNyZWF0ZUluZGljZXMoW10sIHtcbiAgICBjbG9ja3dpc2U6IHRydWUsXG4gICAgdHlwZTogJ3VpbnQxNicsXG4gICAgY291bnQ6IGdseXBocy5sZW5ndGhcbiAgfSlcblxuICAvLyB1cGRhdGUgdmVydGV4IGRhdGFcbiAgdGhpcy5zZXRJbmRleChpbmRpY2VzKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9ucywgMikpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSlcblxuICAvLyB1cGRhdGUgbXVsdGlwYWdlIGRhdGFcbiAgaWYgKCFvcHQubXVsdGlwYWdlICYmICdwYWdlJyBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAvLyBkaXNhYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGFnZScpXG4gIH0gZWxzZSBpZiAob3B0Lm11bHRpcGFnZSkge1xuICAgIC8vIGVuYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdmFyIHBhZ2VzID0gdmVydGljZXMucGFnZXMoZ2x5cGhzKVxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwYWdlJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwYWdlcywgMSkpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdTcGhlcmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nU3BoZXJlID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZSA9IG5ldyBUSFJFRS5TcGhlcmUoKVxuICB9XG5cbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMgPSAwXG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXIuc2V0KDAsIDAsIDApXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZVNwaGVyZShwb3NpdGlvbnMsIHRoaXMuYm91bmRpbmdTcGhlcmUpXG4gIGlmIChpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogJyArXG4gICAgICAnQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICcgK1xuICAgICAgJ1wicG9zaXRpb25cIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ0JveCA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpXG4gIH1cblxuICB2YXIgYmJveCA9IHRoaXMuYm91bmRpbmdCb3hcbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgYmJveC5tYWtlRW1wdHkoKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVCb3gocG9zaXRpb25zLCBiYm94KVxufVxuIiwidmFyIGl0ZW1TaXplID0gMlxudmFyIGJveCA9IHsgbWluOiBbMCwgMF0sIG1heDogWzAsIDBdIH1cblxuZnVuY3Rpb24gYm91bmRzIChwb3NpdGlvbnMpIHtcbiAgdmFyIGNvdW50ID0gcG9zaXRpb25zLmxlbmd0aCAvIGl0ZW1TaXplXG4gIGJveC5taW5bMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1pblsxXSA9IHBvc2l0aW9uc1sxXVxuICBib3gubWF4WzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5tYXhbMV0gPSBwb3NpdGlvbnNbMV1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICB2YXIgeCA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAwXVxuICAgIHZhciB5ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDFdXG4gICAgYm94Lm1pblswXSA9IE1hdGgubWluKHgsIGJveC5taW5bMF0pXG4gICAgYm94Lm1pblsxXSA9IE1hdGgubWluKHksIGJveC5taW5bMV0pXG4gICAgYm94Lm1heFswXSA9IE1hdGgubWF4KHgsIGJveC5tYXhbMF0pXG4gICAgYm94Lm1heFsxXSA9IE1hdGgubWF4KHksIGJveC5tYXhbMV0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZUJveCA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICBvdXRwdXQubWluLnNldChib3gubWluWzBdLCBib3gubWluWzFdLCAwKVxuICBvdXRwdXQubWF4LnNldChib3gubWF4WzBdLCBib3gubWF4WzFdLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlU3BoZXJlID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIHZhciBtaW5YID0gYm94Lm1pblswXVxuICB2YXIgbWluWSA9IGJveC5taW5bMV1cbiAgdmFyIG1heFggPSBib3gubWF4WzBdXG4gIHZhciBtYXhZID0gYm94Lm1heFsxXVxuICB2YXIgd2lkdGggPSBtYXhYIC0gbWluWFxuICB2YXIgaGVpZ2h0ID0gbWF4WSAtIG1pbllcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KVxuICBvdXRwdXQuY2VudGVyLnNldChtaW5YICsgd2lkdGggLyAyLCBtaW5ZICsgaGVpZ2h0IC8gMiwgMClcbiAgb3V0cHV0LnJhZGl1cyA9IGxlbmd0aCAvIDJcbn1cbiIsIm1vZHVsZS5leHBvcnRzLnBhZ2VzID0gZnVuY3Rpb24gcGFnZXMgKGdseXBocykge1xuICB2YXIgcGFnZXMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMSlcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBpZCA9IGdseXBoLmRhdGEucGFnZSB8fCAwXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gIH0pXG4gIHJldHVybiBwYWdlc1xufVxuXG5tb2R1bGUuZXhwb3J0cy51dnMgPSBmdW5jdGlvbiB1dnMgKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpIHtcbiAgdmFyIHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICB2YXIgYncgPSAoYml0bWFwLnggKyBiaXRtYXAud2lkdGgpXG4gICAgdmFyIGJoID0gKGJpdG1hcC55ICsgYml0bWFwLmhlaWdodClcblxuICAgIC8vIHRvcCBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHUwID0gYml0bWFwLnggLyB0ZXhXaWR0aFxuICAgIHZhciB2MSA9IGJpdG1hcC55IC8gdGV4SGVpZ2h0XG4gICAgdmFyIHUxID0gYncgLyB0ZXhXaWR0aFxuICAgIHZhciB2MCA9IGJoIC8gdGV4SGVpZ2h0XG5cbiAgICBpZiAoZmxpcFkpIHtcbiAgICAgIHYxID0gKHRleEhlaWdodCAtIGJpdG1hcC55KSAvIHRleEhlaWdodFxuICAgICAgdjAgPSAodGV4SGVpZ2h0IC0gYmgpIC8gdGV4SGVpZ2h0XG4gICAgfVxuXG4gICAgLy8gQkxcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MVxuICAgIC8vIFRMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBUUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gQlJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MVxuICB9KVxuICByZXR1cm4gdXZzXG59XG5cbm1vZHVsZS5leHBvcnRzLnBvc2l0aW9ucyA9IGZ1bmN0aW9uIHBvc2l0aW9ucyAoZ2x5cGhzKSB7XG4gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG5cbiAgICAvLyBib3R0b20gbGVmdCBwb3NpdGlvblxuICAgIHZhciB4ID0gZ2x5cGgucG9zaXRpb25bMF0gKyBiaXRtYXAueG9mZnNldFxuICAgIHZhciB5ID0gZ2x5cGgucG9zaXRpb25bMV0gKyBiaXRtYXAueW9mZnNldFxuXG4gICAgLy8gcXVhZCBzaXplXG4gICAgdmFyIHcgPSBiaXRtYXAud2lkdGhcbiAgICB2YXIgaCA9IGJpdG1hcC5oZWlnaHRcblxuICAgIC8vIEJMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gICAgLy8gVExcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gVFJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIEJSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICB9KVxuICByZXR1cm4gcG9zaXRpb25zXG59XG4iLCJ2YXIgbmV3bGluZSA9IC9cXG4vXG52YXIgbmV3bGluZUNoYXIgPSAnXFxuJ1xudmFyIHdoaXRlc3BhY2UgPSAvXFxzL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHRleHQsIG9wdCkge1xuICAgIHZhciBsaW5lcyA9IG1vZHVsZS5leHBvcnRzLmxpbmVzKHRleHQsIG9wdClcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKGxpbmUuc3RhcnQsIGxpbmUuZW5kKVxuICAgIH0pLmpvaW4oJ1xcbicpXG59XG5cbm1vZHVsZS5leHBvcnRzLmxpbmVzID0gZnVuY3Rpb24gd29yZHdyYXAodGV4dCwgb3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgLy96ZXJvIHdpZHRoIHJlc3VsdHMgaW4gbm90aGluZyB2aXNpYmxlXG4gICAgaWYgKG9wdC53aWR0aCA9PT0gMCAmJiBvcHQubW9kZSAhPT0gJ25vd3JhcCcpIFxuICAgICAgICByZXR1cm4gW11cblxuICAgIHRleHQgPSB0ZXh0fHwnJ1xuICAgIHZhciB3aWR0aCA9IHR5cGVvZiBvcHQud2lkdGggPT09ICdudW1iZXInID8gb3B0LndpZHRoIDogTnVtYmVyLk1BWF9WQUxVRVxuICAgIHZhciBzdGFydCA9IE1hdGgubWF4KDAsIG9wdC5zdGFydHx8MClcbiAgICB2YXIgZW5kID0gdHlwZW9mIG9wdC5lbmQgPT09ICdudW1iZXInID8gb3B0LmVuZCA6IHRleHQubGVuZ3RoXG4gICAgdmFyIG1vZGUgPSBvcHQubW9kZVxuXG4gICAgdmFyIG1lYXN1cmUgPSBvcHQubWVhc3VyZSB8fCBtb25vc3BhY2VcbiAgICBpZiAobW9kZSA9PT0gJ3ByZScpXG4gICAgICAgIHJldHVybiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpXG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKVxufVxuXG5mdW5jdGlvbiBpZHhPZih0ZXh0LCBjaHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKGNociwgc3RhcnQpXG4gICAgaWYgKGlkeCA9PT0gLTEgfHwgaWR4ID4gZW5kKVxuICAgICAgICByZXR1cm4gZW5kXG4gICAgcmV0dXJuIGlkeFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hyKSB7XG4gICAgcmV0dXJuIHdoaXRlc3BhY2UudGVzdChjaHIpXG59XG5cbmZ1bmN0aW9uIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBsaW5lcyA9IFtdXG4gICAgdmFyIGxpbmVTdGFydCA9IHN0YXJ0XG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQgJiYgaTx0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaHIgPSB0ZXh0LmNoYXJBdChpKVxuICAgICAgICB2YXIgaXNOZXdsaW5lID0gbmV3bGluZS50ZXN0KGNocilcblxuICAgICAgICAvL0lmIHdlJ3ZlIHJlYWNoZWQgYSBuZXdsaW5lLCB0aGVuIHN0ZXAgZG93biBhIGxpbmVcbiAgICAgICAgLy9PciBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBFT0ZcbiAgICAgICAgaWYgKGlzTmV3bGluZSB8fCBpPT09ZW5kLTEpIHtcbiAgICAgICAgICAgIHZhciBsaW5lRW5kID0gaXNOZXdsaW5lID8gaSA6IGkrMVxuICAgICAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBsaW5lU3RhcnQsIGxpbmVFbmQsIHdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChtZWFzdXJlZClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGluZVN0YXJ0ID0gaSsxXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSkge1xuICAgIC8vQSBncmVlZHkgd29yZCB3cmFwcGVyIGJhc2VkIG9uIExpYkdEWCBhbGdvcml0aG1cbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9saWJnZHgvbGliZ2R4L2Jsb2IvbWFzdGVyL2dkeC9zcmMvY29tL2JhZGxvZ2ljL2dkeC9ncmFwaGljcy9nMmQvQml0bWFwRm9udENhY2hlLmphdmFcbiAgICB2YXIgbGluZXMgPSBbXVxuXG4gICAgdmFyIHRlc3RXaWR0aCA9IHdpZHRoXG4gICAgLy9pZiAnbm93cmFwJyBpcyBzcGVjaWZpZWQsIHdlIG9ubHkgd3JhcCBvbiBuZXdsaW5lIGNoYXJzXG4gICAgaWYgKG1vZGUgPT09ICdub3dyYXAnKVxuICAgICAgICB0ZXN0V2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFXG5cbiAgICB3aGlsZSAoc3RhcnQgPCBlbmQgJiYgc3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAvL2dldCBuZXh0IG5ld2xpbmUgcG9zaXRpb25cbiAgICAgICAgdmFyIG5ld0xpbmUgPSBpZHhPZih0ZXh0LCBuZXdsaW5lQ2hhciwgc3RhcnQsIGVuZClcblxuICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IHN0YXJ0IG9mIGxpbmVcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbmV3TGluZSkge1xuICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UoIHRleHQuY2hhckF0KHN0YXJ0KSApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBzdGFydCsrXG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSB2aXNpYmxlICMgb2YgZ2x5cGhzIGZvciB0aGUgYXZhaWxhYmxlIHdpZHRoXG4gICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIG5ld0xpbmUsIHRlc3RXaWR0aClcblxuICAgICAgICB2YXIgbGluZUVuZCA9IHN0YXJ0ICsgKG1lYXN1cmVkLmVuZC1tZWFzdXJlZC5zdGFydClcbiAgICAgICAgdmFyIG5leHRTdGFydCA9IGxpbmVFbmQgKyBuZXdsaW5lQ2hhci5sZW5ndGhcblxuICAgICAgICAvL2lmIHdlIGhhZCB0byBjdXQgdGhlIGxpbmUgYmVmb3JlIHRoZSBuZXh0IG5ld2xpbmUuLi5cbiAgICAgICAgaWYgKGxpbmVFbmQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICAvL2ZpbmQgY2hhciB0byBicmVhayBvblxuICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmVFbmQgPT09IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGFydCA+IHN0YXJ0ICsgbmV3bGluZUNoYXIubGVuZ3RoKSBuZXh0U3RhcnQtLVxuICAgICAgICAgICAgICAgIGxpbmVFbmQgPSBuZXh0U3RhcnQgLy8gSWYgbm8gY2hhcmFjdGVycyB0byBicmVhaywgc2hvdyBhbGwuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IGxpbmVFbmRcbiAgICAgICAgICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kIC0gbmV3bGluZUNoYXIubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVFbmQgPj0gc3RhcnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBsaW5lRW5kLCB0ZXN0V2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IG5leHRTdGFydFxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuLy9kZXRlcm1pbmVzIHRoZSB2aXNpYmxlIG51bWJlciBvZiBnbHlwaHMgd2l0aGluIGEgZ2l2ZW4gd2lkdGhcbmZ1bmN0aW9uIG1vbm9zcGFjZSh0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBnbHlwaHMgPSBNYXRoLm1pbih3aWR0aCwgZW5kLXN0YXJ0KVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgZW5kOiBzdGFydCtnbHlwaHNcbiAgICB9XG59IiwibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2ZsYXR0ZW4tdmVydGV4LWRhdGEvaW5kZXguanMiLCJub2RlX21vZHVsZXMvaW5oZXJpdHMvaW5oZXJpdHNfYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9pcy1idWZmZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvbGF5b3V0LWJtZm9udC10ZXh0L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanMiLCJub2RlX21vZHVsZXMvcGFyc2UtYm1mb250LWFzY2lpL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3F1YWQtaW5kaWNlcy9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy90aHJlZS1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy90aHJlZS1ibWZvbnQtdGV4dC9saWIvdXRpbHMuanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3ZlcnRpY2VzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJ1ZmZlci12ZXJ0ZXgtZGF0YS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9B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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM2dCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICogXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLiBcclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUiBcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1IgXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsIFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcbiAgICBcclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpOyBcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgLy9tb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICBpZiAoIXdpZGUpIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIGVsc2Uge1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMC43NTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueSA9IDAuMDE7IC8vWFhYIG1hZ2ljIG51bWJlclxyXG4gIH1cclxuXHJcbiAgdmFyIG1hdGVyaWFsO1xyXG4gIGlmIChpbWFnZS5pc01hdGVyaWFsKSB7XHJcbiAgICBtYXRlcmlhbCA9IGltYWdlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIG1hdGVyaWFsKTtcclxuICB9XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gIC8vYnV0dG9uIGxhYmVsIHJlbW92ZWQ7IG1pZ2h0IHdhbnQgb3B0aW9ucyBsaWtlIGEgaG92ZXIgbGFiZWwgaW4gZnV0dXJlLlxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBpZiAod2lkZSkgZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAvL1RPRE86IGRyYWcgYW5kIGhvdmVyXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnaG92ZXJpbmcnLCBoYW5kbGVIb3ZlciApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZVByZXNzaW5nICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGxldCBob3ZlckZ1bmMgPSB1bmRlZmluZWQ7XHJcbiAgLy8gSSBtaWdodCB5ZXQgZGVjaWRlIHRvIGNoYW5nZSB0aGlzIGludGVyZmFjZS5cclxuICAvLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgbmFtZSwgbWlnaHQgd2FudCB0byBhZGQgbGlzdGVuZXJzIHRvIGV2ZW50XHJcbiAgLy8gcmF0aGVyIHRoYW4ganVzdCBzZXQgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgZ3JvdXAub25Ib3ZlciA9IGYgPT4ge1xyXG4gICAgaG92ZXJGdW5jID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZ3JvdXAub25QcmVzc2luZyA9IGYgPT4ge1xyXG4gICAgcHJlc3NpbmcgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBmdW5jdGlvbiBoYW5kbGVIb3ZlciggcCApe1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAoaG92ZXJGdW5jKSBob3ZlckZ1bmMocCk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vaXQgc2hvdWxkIGJlIHRoYXQgdGhlIGNoZWNrcyBpbiBpbmRleC5qcyBtZWFuIHRoYXQgbWV0aG9kcyBkb24ndCBnZXQgY2FsbGVkIG9uIGludmlzaWJsZVxyXG4gICAgLy9vYmplY3RzLCByZW5kZXJpbmcgdGhlc2UgdGVzdHMgcmVkdW5kYW50Li4uIGhvd2V2ZXIsIHRoYXQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlIGNhc2UuXHJcbiAgICAvL2V4cGVyaWVuY2VkIHNvbWUgYnVncyBwYXJ0aWN1bGFybHkgd2l0aCAnbW9kYWwgZWRpdG9yJyB0eXBlIHBhbmVscy5cclxuICAgIC8vVE9ETzogZWl0aGVyIG1ha2Ugc3VyZSBpbnZpc2libGUgb2JqZWN0cyBhcmVuJ3QgY2FsbGVkIGluIHRoZSBmaXJzdCBwbGFjZSxcclxuICAgIC8vb3IgbWFrZSBzdXJlIGFsbCB0eXBlcyBvZiBvYmplY3QgZG8gdGhpcyBtb3JlIHRob3JvdWdoIHZpc2liaWxpdHkgY2hlY2suLi5cclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKG9iamVjdCkgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXShwKTtcclxuICAgIGlmIChmdW5jKSBmdW5jKHApO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL2NvbXB1dGUgeCAmIHkgYXMgbm9ybWFsaXNlZCBjb29yZGluYXRlcyBmcm9tIHAucG9pbnRcclxuICAvL2NvdWxkIGNvbnNpZGVyIG1vdmluZyB0aGlzIGNvbXB1dGF0aW9uIGludG8gaW50ZXJhY3Rpb24uanMgcGVyZm9ybVN0YXRlRXZlbnRzKClcclxuICBmdW5jdGlvbiBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwb2ludCkge1xyXG4gICAgY29uc3QgcCA9IGhpdHNjYW5Wb2x1bWUud29ybGRUb0xvY2FsKHBvaW50KTtcclxuICAgIHAueCAvPSBCVVRUT05fV0lEVEg7XHJcbiAgICBwLnkgLz0gQlVUVE9OX0hFSUdIVDtcclxuICAgIHAueSArPSAwLjU7XHJcbiAgICBwLnggPSBNYXRoLm1heChNYXRoLm1pbihwLngsIDEpLCAwKTtcclxuICAgIHAueSA9IE1hdGgubWF4KE1hdGgubWluKHAueSwgMSksIDApO1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVQcmVzc2luZyggcCApIHtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIC8vY29uc29sZS5sb2coYHByZXNzaW5nIGF0ICgke3BvaW50Lnh9LCAke3BvaW50Lnl9KWApOyAvL2ZpcnN0IGluc3RhbmNlIG9mICdwcmVzc2luZycgaXMgYWx3YXlzIGF0ICgxLCAxKVxyXG4gICAgLy9uYiwgbGlrZWx5IHRvIG5lZWQgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIGR1YWwgd2llbGRpbmdcclxuICAgIGlmIChwcmVzc2luZykgcHJlc3NpbmcocCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmICghbWF0ZXJpYWwuY29sb3IpIHJldHVybjtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhDQ0NDQ0MgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKiBcclxuICogR3JpZCBvZiBidXR0b25zIHdpdGggaW1hZ2VzIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgaW1hZ2VidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7Y3JlYXRlVGV4dExhYmVsLCBjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0cywgLy8gYXJyYXkgb2Yge2Z1bmMsIGltYWdlIHwgdGV4dCwgdGlwKG9wdGlvbmFsKSwgcmVsZWFzZShvcHRpb25hbCl9XHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgcm93SGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNvbHVtbnMgPSA0XHJcbn0gPSB7fSApe1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWFyZ2luID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDM7XHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gKHdpZHRoIC0gbWFyZ2luKSAqICgxL2NvbHVtbnMpO1xyXG4gIC8vVE9ETzogYWRkIHNldFJvd0hlaWdodCBtZXRob2RcclxuICBsZXQgQlVUVE9OX0hFSUdIVCA9IHJvd0hlaWdodCA+IDAgPyByb3dIZWlnaHQgOiBCVVRUT05fV0lEVEg7XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvbmdyaWRcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtvYmplY3RzfV1gO1xyXG4gIFxyXG4gIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwob2JqZWN0cy5sZW5ndGggLyBjb2x1bW5zKTtcclxuICBsZXQgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGdyb3VwLnNldFJvd0hlaWdodCA9IGggPT4ge1xyXG4gICAgcm93SGVpZ2h0ID0gQlVUVE9OX0hFSUdIVCA9IGg7XHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG4gICAgbGF5b3V0QnV0dG9ucygpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGZhbHNlO1xyXG4gIGxldCBsYXN0UHJlc3NlZCA9IG51bGw7XHJcbiAgbGV0IGxhc3RQcmVzc2VkQ29sO1xyXG4gIGdyb3VwLmhpZ2hsaWdodExhc3RQcmVzc2VkID0gKGNvbCA9IDB4MzM1NUVFKSA9PiB7XHJcbiAgICAgIGhpZ2hsaWdodExhc3RQcmVzc2VkID0gY29sICE9PSBmYWxzZTtcclxuICAgICAgbGFzdFByZXNzZWRDb2wgPSBjb2w7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgXHJcbiAgbGV0IHBhbmVsLCBncmFiSW50ZXJhY3Rpb24sIGJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgbGF5b3V0QnV0dG9ucygpO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGluaXRQYW5lbCgpIHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIHBhbmVsLmFkZChjb250cm9sbGVySUQpO1xyXG4gICAgXHJcbiAgICBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+Z3JvdXAucmVtb3ZlKGIpKTtcclxuICAgIGJ1dHRvbnMgPSBbXTtcclxuICAgIGdyb3VwLmd1aUNoaWxkcmVuID0gYnV0dG9ucztcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gbGF5b3V0QnV0dG9ucygpIHtcclxuICAgIGluaXRQYW5lbCgpO1xyXG4gICAgLy9UT0RPOiBwYWRkaW5nXHJcbiAgICBjb25zdCBidXR0b25XUGFkZGVkID0gQlVUVE9OX1dJRFRIICogMC45OSwgYnV0dG9uSFBhZGRlZCA9IEJVVFRPTl9IRUlHSFQgKiAwLjk5O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBidXR0b25XUGFkZGVkLCBidXR0b25IUGFkZGVkLCAxLCAxICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggYnV0dG9uV1BhZGRlZCAvIDIsIC1idXR0b25IUGFkZGVkIC8gMiwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IHRvZ2dsZXMgcmF0aGVyIHRoYW4gdHJpZ2dlcnMuLi5cclxuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFvYmouaW1hZ2UgJiYgIW9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN1Ymdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vbm90ZTogcmVkdWNpbmcgbmVzdGluZyBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxyXG4gICAgICAgIHN1Ymdyb3VwLmd1aVR5cGUgPSBcImltYWdlQnV0dG9uR3JpZEVsZW1lbnRcIjtcclxuICAgICAgICBncm91cC5hZGQoc3ViZ3JvdXApO1xyXG4gICAgICAgIGJ1dHRvbnMucHVzaChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbCA9IGkgJSBjb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IE1hdGguZmxvb3IoaSAvIGNvbHVtbnMpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi54ID0gKDIqTGF5b3V0LlBBTkVMX01BUkdJTikgKyBCVVRUT05fV0lEVEggKiBjb2w7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueSA9IChoZWlnaHQvMikgLUJVVFRPTl9IRUlHSFQgKiByb3c7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuXHJcbiAgICAgICAgLy8gIGhpdHNjYW4gdm9sdW1lLlxyXG4gICAgICAgIC8vIFRoaXMgbWF0ZXJpYWwgY291bGQgcHJvYmFibHkgYmUgcmV1c2VkLlxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG9iai5pbWFnZSkgYXBwbHlJbWFnZVRvTWF0ZXJpYWwob2JqLmltYWdlLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgaWYgKG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUob2JqLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyKkxheW91dC5HUklEX0JVVFRPTl9NQVJHSU47XHJcbiAgICAgICAgICAgIGxldCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgaWYgKHcgPiBCVVRUT05fV0lEVEggLSBtYXJnaW4pIHtcclxuICAgICAgICAgICAgICAgIHRleHQuY29uc3RyYWluQm91bmRzKEJVVFRPTl9XSURUSCAtIG1hcmdpbiwgQlVUVE9OX0hFSUdIVCAtIG1hcmdpbik7IC8vPC0tXHJcbiAgICAgICAgICAgICAgICBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJncm91cC5hZGQodGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnggPSBvYmoudGV4dFggfHwgMC41ICogKEJVVFRPTl9XSURUSCAtIHcpO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnkgPSBvYmoudGV4dFkgfHwgLTAuNSAqIEJVVFRPTl9IRUlHSFQgLSBoO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICAgICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgICAgICAvL2J1dHRvbiBsYWJlbCAmIGRlc2NyaXB0b3IgbGFiZWwgcmVtb3ZlZC5cclxuICAgICAgICAvL1Rvb2x0aXAgdGV4dCBvcHRpb24gYWRkZWQuICBNaWdodCB3YW50IHRvIGJlIGFibGUgdG8gcGFzcyBpbiByaWNoZXIgdGhpbmdzLi4uXHJcbiAgICAgICAgLy9tYXliZSBhbiBhcmJpdHJhcnkgVEhSRUUgb2JqZWN0IHdvdWxkIHdvcmsgd2VsbC4uLlxyXG4gICAgICAgIGlmIChvYmoudGlwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcFRleHQgPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCBvYmoudGlwLCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL3N1Ymdyb3VwLmFkZCh0aXBUZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG4gICAgICAgIHN1Ymdyb3VwLmFkZCggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIHBhbmVsLmFkZChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgICAgICAgICBpZiggc3ViZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL1RPRE86IHN0YW5kYXJkaXNlIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gY2FsbGJhY2tzXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZnVuYygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZXJyb3IgPSBlIHx8ICd1bmRlZmluZWQgZXhjZXB0aW9uJztcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0UHJlc3NlZCA9IG9iajtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gICAgICAgICAgICBpZiAob2JqLnJlbGVhc2UpIG9iai5yZWxlYXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcXVpY2sgY29sb3IgaGFjay4uLlxyXG4gICAgICAgIGNvbnN0IGhvdmVyQ29sID0gb2JqLnRleHQgPyAweDg4OCA6IDB4RkZGRkZGO1xyXG4gICAgICAgIGNvbnN0IG5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IGhvdmVyQ29sIDogbm9Ib3ZlckNvbCApO1xyXG4gICAgICAgICAgICBpZiAoc3ViZ3JvdXAudGlwVGV4dCkgc2V0VmlzaWJpbGl0eShzdWJncm91cCwgc3ViZ3JvdXAudGlwVGV4dCwgaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICAgIGlmIChvYmouZXJyb3IpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhBQTMzMzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3KCk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgc3ViZ3JvdXAuaGl0c2NhbiA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBtYWtpbmcgdGhpcyBzaW5nbGUgZWxlbWVudCByYXRoZXIgdGhhbiBhcnJheSxcclxuICAgICAgICAvL3RoYXQgbWVhbnMgdGhlc2UgJ3N1Ymdyb3VwJyBidXR0b25zIGFyZW4ndCBhY3RpbmcgZXhhY3RseSBhcyBub3JtYWwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzXHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5oaXRzY2FuID0gYnV0dG9ucy5tYXAoYj0+Yi5oaXRzY2FuKTsvLy5wdXNoKHBhbmVsKTtcclxuICAgIGdyb3VwLmhpdHNjYW4ucHVzaChwYW5lbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpIHtcclxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGI9PmIudXBkYXRlVmlldygpKTtcclxuICB9XHJcbiAgXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT57XHJcbiAgICAgICAgYi5pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICAvL2ludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVTbGlkZXIgZnJvbSAnLi9zbGlkZXInO1xyXG5pbXBvcnQgY3JlYXRlQ2hlY2tib3ggZnJvbSAnLi9jaGVja2JveCc7XHJcbmltcG9ydCBjcmVhdGVCdXR0b24gZnJvbSAnLi9idXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlRm9sZGVyIGZyb20gJy4vZm9sZGVyJztcclxuaW1wb3J0IGNyZWF0ZURyb3Bkb3duIGZyb20gJy4vZHJvcGRvd24nO1xyXG4vL1BKVDogSSdkIHJhdGhlciBpbmplY3QgY3VzdG9tIGV4dGVuc2lvbnMgbGlrZSB0aGlzLCBidXQgd2lsbCB3b3JrIHRoYXQgb3V0IGxhdGVyLlxyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlS2V5Ym9hcmQgZnJvbSAnLi9rZXlib2FyZCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0Ym94IGZyb20gJy4vdGV4dGJveCc7XHJcbmltcG9ydCBjcmVhdGVDb2xvclBpY2tlciBmcm9tICcuL2NvbG9ycGlja2VyJztcclxuaW1wb3J0ICogYXMgU0RGVGV4dCBmcm9tICcuL3NkZnRleHQnO1xyXG5pbXBvcnQgeyBpc0NvbnRyb2xsZXJWaXNpYmxlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGdsb2JhbEV2ZW50cyB9IGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuY29uc3QgR1VJVlIgPSAoZnVuY3Rpb24gREFUR1VJVlIoKXtcclxuXHJcbiAgLypcclxuICAgIFNERiBmb250XHJcbiAgKi9cclxuICBjb25zdCB0ZXh0Q3JlYXRvciA9IFNERlRleHQuY3JlYXRvcigpO1xyXG5cclxuXHJcbiAgLypcclxuICAgIExpc3RzLlxyXG4gICAgSW5wdXRPYmplY3RzIGFyZSB0aGluZ3MgbGlrZSBWSVZFIGNvbnRyb2xsZXJzLCBjYXJkYm9hcmQgaGVhZHNldHMsIGV0Yy5cclxuICAgIENvbnRyb2xsZXJzIGFyZSB0aGUgREFUIEdVSSBzbGlkZXJzLCBjaGVja2JveGVzLCBldGMuXHJcbiAgKi9cclxuICBjb25zdCBpbnB1dE9iamVjdHMgPSBbXTtcclxuICBjb25zdCBjb250cm9sbGVycyA9IFtdO1xyXG5cclxuICAvKlxyXG4gICAgRnVuY3Rpb25zIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY29udHJvbGxlciBpcyB2aXNpYmxlIChieSB3aGljaCB3ZVxyXG4gICAgbWVhbiBub3QgaGlkZGVuLCBub3QgJ3Zpc2libGUnIGluIHRlcm1zIG9mIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gZXRjKSwgYW5kXHJcbiAgICBmb3IgcmV0cmlldmluZyB0aGUgbGlzdCBvZiB2aXNpYmxlIGhpdHNjYW5PYmplY3RzIGR5bmFtaWNhbGx5LlxyXG4gICAgVGhpcyBtaWdodCBiZW5lZml0IGZyb20gc29tZSBjYWNoaW5nIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2l0aCBsYXJnZSBjb21wbGV4IEdVSXMuXHJcbiAgICBJIGhhdmVuJ3QgbWVhc3VyZWQgdGhlIGltcGFjdCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gZXRjLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkge1xyXG4gICAgLy8gbm90IHRlcnJpYmx5IGVmZmljaWVudFxyXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJzLmZpbHRlciggaXNDb250cm9sbGVyVmlzaWJsZSApO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSB7XHJcbiAgICAvL1hYWCBXQVJOSU5HOjo6XHJcbiAgICAvL3RoZXJlIGNvdWxkIGV4aXN0IHNpdHVhdGlvbnMgaW4gd2hpY2ggbWVtYmVycyBvZiBoaXRzY2FuIGZvciBhIHZpc2libGUgY29udHJvbGxlciBhcmUgbm90IHRoZW1zZWx2ZXMgdmlzaWJsZS5cclxuICAgIC8vdGhpcyBjYW4gaGFwcGVuIGZvciBlZyBpZiB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBwYXJ0aWN1bGFyIGhpdHNjYW4gaXMgaW4gYW4gaW52aXNpYmxlIG1vZGFsIGVkaXRvci5cclxuICAgIC8vd2UgY291bGQgY2hlY2sgdGhhdCwgYWRkaW5nIGEgbW9yZSByb2J1c3QgZmlsdGVyIHRvIGVhY2ggaGl0c2NhbiBhcnJheS4uLiBmb3Igbm93LCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcclxuICAgIC8vY29udHJvbGxlcnMgdG8gZWl0aGVyIG9ubHkgcmV0dXJuIGhpdHNjYW4gb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlLCBvciB0byBzZXQgJ3Zpc2libGUnIGV4cGxpY2l0bHkuXHJcbiAgICBjb25zdCB0bXAgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKS5tYXAoIG8gPT4geyByZXR1cm4gby5oaXRzY2FuLmZpbHRlcihoID0+IGgudmlzaWJsZSk7IH0gKVxyXG4gICAgcmV0dXJuIHRtcC5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgbGV0IG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGxldCBtb3VzZVJlbmRlcmVyID0gdW5kZWZpbmVkO1xyXG4gIGxldCBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkOyAvL2tlZXAgdHJhY2sgc28gdGhhdCB3ZSBkb24ndCBhdHRhY2ggbXVsdGlwbGUgZXZlbnRzIChwYXJ0aWN1bGFybHkgd2hlbiByZXNpemluZyB3aW5kb3cpXHJcbiAgXHJcbiAgbGV0IGF1dG9VcGRhdGUgPSB0cnVlO1xyXG5cclxuICBmdW5jdGlvbiBlbmFibGVNb3VzZSggY2FtZXJhLCByZW5kZXJlciApe1xyXG4gICAgbW91c2VFbmFibGVkID0gdHJ1ZTtcclxuICAgIG1vdXNlUmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgIG1vdXNlSW5wdXQubW91c2VDYW1lcmEgPSBjYW1lcmE7XHJcbiAgICBpZiAoY2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSB7XHJcbiAgICAgIGlmICghb25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSBmPT5mLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMub24oJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5sYXNlcjtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gZGlzYWJsZU1vdXNlKCl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgVGhlIGRlZmF1bHQgbGFzZXIgcG9pbnRlciBjb21pbmcgb3V0IG9mIGVhY2ggSW5wdXRPYmplY3QuXHJcbiAgKi9cclxuICBjb25zdCBsYXNlck1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjoweDU1YWFmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0pO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUxhc2VyKCl7XHJcbiAgICBjb25zdCBnID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBnLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDAsMCwwXSkpKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoKSApO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygwLDAsMCkgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTGluZSggZywgbGFzZXJNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBIFwiY3Vyc29yXCIsIGVnIHRoZSBiYWxsIHRoYXQgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHlvdXIgbGFzZXIuXHJcbiAgKi9cclxuICBjb25zdCBjdXJzb3JNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg0NDQ0NDQsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9ICk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKCl7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgwLjAwNiwgNCwgNCApLCBjdXJzb3JNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBnZW5lcmljIElucHV0IHR5cGUuXHJcbiAgICBUYWtlcyBhbnkgVEhSRUUuT2JqZWN0M0QgdHlwZSBvYmplY3QgYW5kIHVzZXMgaXRzIHBvc2l0aW9uXHJcbiAgICBhbmQgb3JpZW50YXRpb24gYXMgYW4gaW5wdXQgZGV2aWNlLlxyXG5cclxuICAgIEEgbGFzZXIgcG9pbnRlciBpcyBpbmNsdWRlZCBhbmQgd2lsbCBiZSB1cGRhdGVkLlxyXG4gICAgQ29udGFpbnMgc3RhdGUgYWJvdXQgd2hpY2ggSW50ZXJhY3Rpb24gaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb3IgaG92ZXIuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBjcmVhdGVJbnB1dCggaW5wdXRPYmplY3QgPSBuZXcgVEhSRUUuR3JvdXAoKSApe1xyXG4gICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgIHJheWNhc3Q6IG5ldyBUSFJFRS5SYXljYXN0ZXIoIG5ldyBUSFJFRS5WZWN0b3IzKCksIG5ldyBUSFJFRS5WZWN0b3IzKCkgKSxcclxuICAgICAgbGFzZXI6IGNyZWF0ZUxhc2VyKCksXHJcbiAgICAgIGN1cnNvcjogY3JlYXRlQ3Vyc29yKCksXHJcbiAgICAgIG9iamVjdDogaW5wdXRPYmplY3QsXHJcbiAgICAgIHByZXNzZWQ6IGZhbHNlLFxyXG4gICAgICBncmlwcGVkOiBmYWxzZSxcclxuICAgICAgZXZlbnRzOiBuZXcgRW1pdHRlcigpLFxyXG4gICAgICBpbnRlcmFjdGlvbjoge1xyXG4gICAgICAgIGdyaXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmVzczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGhvdmVyOiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5hZGQoIGlucHV0LmN1cnNvciApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgTW91c2VJbnB1dC5cclxuICAgIEFsbG93cyB5b3UgdG8gY2xpY2sgb24gdGhlIHNjcmVlbiB3aGVuIG5vdCBpbiBWUiBmb3IgZGVidWdnaW5nLlxyXG4gICovXHJcbiAgY29uc3QgbW91c2VJbnB1dCA9IGNyZWF0ZU1vdXNlSW5wdXQoKTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlTW91c2VJbnB1dCgpe1xyXG4gICAgY29uc3QgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigtMSwtMSk7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCgpO1xyXG4gICAgaW5wdXQubW91c2UgPSBtb3VzZTtcclxuICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlT2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlUGxhbmUgPSBuZXcgVEhSRUUuUGxhbmUoKTtcclxuICAgIGlucHV0LmludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyAgc2V0IG15IGVuYWJsZU1vdXNlXHJcbiAgICBpbnB1dC5tb3VzZUNhbWVyYSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlbW92ZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICAvLyBpZiBhIHNwZWNpZmljIHJlbmRlcmVyIGhhcyBiZWVuIGRlZmluZWRcclxuICAgICAgaWYgKG1vdXNlUmVuZGVyZXIpIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gbW91c2VSZW5kZXJlci5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIG1vdXNlLnggPSAoIChldmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0KSAvIGNsaWVudFJlY3Qud2lkdGgpICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCAoZXZlbnQuY2xpZW50WSAtIGNsaWVudFJlY3QudG9wKSAvIGNsaWVudFJlY3QuaGVpZ2h0KSAqIDIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gZnVsbHNjcmVlblxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtb3VzZS54ID0gKCBldmVudC5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGggKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCApICogMiArIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmIChpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBwcmV2ZW50IG1vdXNlIGRvd24gZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGxpc3RlbmVycyAocG9seWZpbGwsIGV0YylcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLy9pZiBhbnkgaW5wdXQuaW50ZXJhY3Rpb25zIGhhdmUgaGl0Vm9sdW1lIHRoYXQgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIG5vdCBjdXJyZW50bHkgaW4gaGl0c2Nhbk9iamVjdHMsXHJcbiAgLy90aGF0IGludGVyYWN0aW9uIHNob3VsZCBiZSBjYW5jZWxsZWQuIEVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgd2l0aCBlLmcuIHByZXNzaW5nICdyZWF0dGFjaCcgd2hlbiB0aGUgcGFyZW50IGlzIGNsb3NlZC5cclxuICBmdW5jdGlvbiBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb25zLCBoaXRzY2FuT2JqZWN0cyApIHtcclxuICAgIFsncHJlc3MnLCAnZ3JpcCcsICdob3ZlciddLmZvckVhY2goIGludGVyYWN0aW9uTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV07XHJcbiAgICAgIGlmIChpbnRlcmFjdGlvbiAmJiBoaXRzY2FuT2JqZWN0cy5pbmRleE9mKGludGVyYWN0aW9uLmhpdFZvbHVtZSkgPCAwKSB7XHJcbiAgICAgICAgaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV0gPSB1bmRlZmluZWQ7IFxyXG4gICAgICAgIC8vb25seSBiZSBwb2xpdGUgdG8gaW5mb3JtIHRoZSBpbnRlcmFjdGlvbiBhcyB3ZWxsOyB1cGRhdGUgd2l0aCBlbXB0eSBpbnB1dE9iamVjdHMgYXJnIHNob3VsZCBkbyB0aGUgdHJpY2suXHJcbiAgICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBbXSApO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVMYXNlciggbGFzZXIsIHBvaW50ICl7XHJcbiAgICBjb25zdCBwcCA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgIHBwWzNdID0gcG9pbnQueDtcclxuICAgIHBwWzRdID0gcG9pbnQueTtcclxuICAgIHBwWzVdID0gcG9pbnQuejtcclxuICAgIHBwLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggcG9pbnQgKTtcclxuICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydGljZXNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgaWYoIGludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBjb25zdCBmaXJzdEhpdCA9IGludGVyc2VjdGlvbnNbIDAgXTtcclxuICAgICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IucG9zaXRpb24uY29weSggZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBjdXJzb3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlTW91c2VJbnRlcnNlY3Rpb24oIGludGVyc2VjdGlvbiwgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGludGVyc2VjdGlvbiApO1xyXG4gICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBjdXJzb3IucG9zaXRpb24gKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIGNhbWVyYSApe1xyXG4gICAgcmF5Y2FzdC5zZXRGcm9tQ2FtZXJhKCBtb3VzZSwgY2FtZXJhICk7XHJcbiAgICBjb25zdCBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgcmV0dXJuIHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtb3VzZUludGVyc2VjdHNQbGFuZSggcmF5Y2FzdCwgdiwgcGxhbmUgKXtcclxuICAgIHJldHVybiByYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggcGxhbmUsIHYgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsbW91c2UsbW91c2VDYW1lcmEsIGludGVyYWN0aW9ufSA9IHt9ICl7XHJcbiAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICBsZXQgaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIGlmIChtb3VzZUNhbWVyYSkge1xyXG4gICAgICBpbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgbW91c2VDYW1lcmEgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoKTtcclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBtZXRob2RzLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHB1YmxpY0ludGVyZmFjZSA9IHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGFkZElucHV0T2JqZWN0LFxyXG4gICAgZW5hYmxlTW91c2UsXHJcbiAgICBkaXNhYmxlTW91c2UsXHJcbiAgICB0ZXh0Q3JlYXRvciwgLy9jaGVhcCB3YXkgb2YgZXhwb3NpbmcgdGhpcyBzbyBpdCBjYW4gYmUgdXNlZCBieSBob3N0IGFwcGxpY2F0aW9uLlxyXG4gICAgZ2xvYmFsRXZlbnRzLFxyXG4gICAgY2xlYXJBbGwsXHJcbiAgICB1cGRhdGVcclxuICB9O1xyXG4gIC8vIGFsbG93IHVzZXIgdG8gY2FsbCBcImRhdC5HVUlWUi5hdXRvVXBkYXRlID0gZmFsc2VcIiBhbmQgdGhlbiB1cGRhdGUgbWFudWFsbHkgd2l0aFxyXG4gIC8vIFwiZGF0LkdVSVZSLnVwZGF0ZSgpXCJcclxuICAvLyBleHBvc2UgYXV0b1VwZGF0ZSBhcyBwcm9wZXJ0eSBzbyB0aGF0IHRoZSByZWZlcmVuY2Ugd2lsbCBiZSBwcm9wZXJseSBlZmZlY3RlZFxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggcHVibGljSW50ZXJmYWNlLCAnYXV0b1VwZGF0ZScsIHsgZ2V0OiAoKT0+IGF1dG9VcGRhdGUsIHNldDogdiA9PiBhdXRvVXBkYXRlID0gdiB9ICk7XHJcbiAgcmV0dXJuIHB1YmxpY0ludGVyZmFjZTtcclxuXHJcbn0oKSk7XHJcblxyXG5pZiggd2luZG93ICl7XHJcbiAgaWYoIHdpbmRvdy5kYXQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgd2luZG93LmRhdCA9IHt9O1xyXG4gIH1cclxuXHJcbiAgd2luZG93LmRhdC5HVUlWUiA9IEdVSVZSO1xyXG59XHJcblxyXG5pZiggbW9kdWxlICl7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBkYXQ6IEdVSVZSXHJcbiAgfTtcclxufVxyXG5cclxuaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XHJcbiAgZGVmaW5lKFtdLCBHVUlWUik7XHJcbn1cclxuXHJcbi8qXHJcbiAgQnVuY2ggb2Ygc3RhdGUtbGVzcyB1dGlsaXR5IGZ1bmN0aW9ucy5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGlzTnVtYmVyKG4pIHtcclxuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Jvb2xlYW4obil7XHJcbiAgcmV0dXJuIHR5cGVvZiBuID09PSAnYm9vbGVhbic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuY3Rpb25Ub0NoZWNrKSB7XHJcbiAgY29uc3QgZ2V0VHlwZSA9IHt9O1xyXG4gIHJldHVybiBmdW5jdGlvblRvQ2hlY2sgJiYgZ2V0VHlwZS50b1N0cmluZy5jYWxsKGZ1bmN0aW9uVG9DaGVjaykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XHJcbn1cclxuXHJcbi8vICBvbmx5IHt9IG9iamVjdHMgbm90IGFycmF5c1xyXG4vLyAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHRlY2huaWNhbGx5IG9iamVjdHMgYnV0IHlvdSdyZSBqdXN0IGJlaW5nIHBlZGFudGljXHJcbmZ1bmN0aW9uIGlzT2JqZWN0IChpdGVtKSB7XHJcbiAgcmV0dXJuICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQXJyYXkoIG8gKXtcclxuICByZXR1cm4gQXJyYXkuaXNBcnJheSggbyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1N0cmluZyggbyApe1xyXG4gIHJldHVybiB0eXBlb2YgbyA9PT0gJ3N0cmluZyc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQ29sb3IoIG8gKXtcclxuICBpZiAodHlwZW9mIG8gIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIG8uaXNDb2xvciA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5cclxuXHJcblxyXG4vKlxyXG4gIENvbnRyb2xsZXItc3BlY2lmaWMgc3VwcG9ydC5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIGNvbnRyb2xsZXIsIHByZXNzZWQsIGdyaXBwZWQgKXtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VyZG93bicsICgpPT5wcmVzc2VkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VydXAnLCAoKT0+cHJlc3NlZCggZmFsc2UgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzZG93bicsICgpPT5ncmlwcGVkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc3VwJywgKCk9PmdyaXBwZWQoIGZhbHNlICkgKTtcclxuXHJcbiAgY29uc3QgZ2FtZXBhZCA9IGNvbnRyb2xsZXIuZ2V0R2FtZXBhZCgpO1xyXG4gIGZ1bmN0aW9uIHZpYnJhdGUoIHQsIGEgKXtcclxuICAgIGlmKCBnYW1lcGFkICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnNbIDAgXS5wdWxzZSggdCwgYSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc1RhcCgpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSgxLWEsIDAuNSksIDEwLCAyMCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc0VjaG8oKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoNCwgMS4wICogKDEtYSkpLCAxMDAsIDQgKTtcclxuICB9XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ29uQ29udHJvbGxlckhlbGQnLCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgIHZpYnJhdGUoIDAuMywgMC4zICk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJiZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGlubmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGluUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gc2V0SW50ZXJ2YWxUaW1lcyggY2IsIGRlbGF5LCB0aW1lcyApe1xyXG4gIGxldCB4ID0gMDtcclxuICBsZXQgaWQgPSBzZXRJbnRlcnZhbCggZnVuY3Rpb24oKXtcclxuICAgIGNiKCB4LCB0aW1lcywgeC90aW1lcyApO1xyXG4gICAgeCsrO1xyXG4gICAgaWYoIHg+PXRpbWVzICl7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwoIGlkICk7XHJcbiAgICB9XHJcbiAgfSwgZGVsYXkgKTtcclxuICByZXR1cm4gaWQ7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdsb2JhbEV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbnRlcmFjdGlvbiggaGl0Vm9sdW1lICl7XHJcbiAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbiAgbGV0IGFueUhvdmVyID0gZmFsc2U7XHJcbiAgbGV0IGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgbGV0IGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCB0VmVjdG9yID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCBhdmFpbGFibGVJbnB1dHMgPSBbXTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCBpbnB1dE9iamVjdHMgKXtcclxuXHJcbiAgICBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gICAgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuXHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuaW5kZXhPZiggaW5wdXQgKSA8IDAgKXtcclxuICAgICAgICBhdmFpbGFibGVJbnB1dHMucHVzaCggaW5wdXQgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgeyBoaXRPYmplY3QsIGhpdFBvaW50IH0gPSBleHRyYWN0SGl0KCBpbnB1dCApO1xyXG5cclxuICAgICAgdmFyIGhvdmVyID0gaGl0Vm9sdW1lID09PSBoaXRPYmplY3Q7XHJcbiAgICAgIGFueUhvdmVyID0gYW55SG92ZXIgfHwgaG92ZXI7XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAncHJlc3NlZCcsXHJcbiAgICAgICAgYnV0dG9uQ2xpY2tOYW1lOiAnY2xpY2tlZCcsIC8vbWF5YmUgbm90IHN0YWJsZSBwYXJ0IG9mIEFQSS4uLlxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ3ByZXNzJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uUHJlc3NlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdwcmVzc2luZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlZCcsXHJcbiAgICAgICAgIC8vaW52ZW50aW5nIGEgJ2hvdmVyaW5nJyBldmVudCB0aGF0IG9ubHkgYXBwbGllcyB0byAncHJlc3NlZCcgYnV0dG9uLi4uXHJcbiAgICAgICAgIC8vdGhpcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYSBzdGFibGUgaW50ZXJmYWNlLCBidXQgSSB3YW50cyBpdCBtb3JlIHRoYW4gSVxyXG4gICAgICAgICAvL3dhbnQgdG8gbWFrZSBzb21ldGhpbmcgdG90YWxseSBjb2hlcmVudCBhbmQgcm9idXN0IGp1c3Qgbm93LlxyXG4gICAgICAgIGhvdmVyTmFtZTogJ2hvdmVyaW5nJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAnZ3JpcHBlZCcsXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAnZ3JpcCcsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvbkdyaXBwZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAnZ3JpcHBpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZUdyaXAnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoICd0aWNrJywge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0gKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBleHRyYWN0SGl0KCBpbnB1dCApe1xyXG4gICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoIDw9IDAgKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogdFZlY3Rvci5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LmN1cnNvci5tYXRyaXhXb3JsZCApLmNsb25lKCksIC8veHh4OiBnYXJiYWdlP1xyXG4gICAgICAgIGhpdE9iamVjdDogdW5kZWZpbmVkLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLnBvaW50LFxyXG4gICAgICAgIGhpdE9iamVjdDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgIGlucHV0LCBob3ZlcixcclxuICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICBidXR0b25OYW1lLCBidXR0b25DbGlja05hbWUsIGludGVyYWN0aW9uTmFtZSwgZG93bk5hbWUsIGhvbGROYW1lLCB1cE5hbWUsIGhvdmVyTmFtZVxyXG4gIH0gPSB7fSApe1xyXG5cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGhpdE9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIC8vY2xpY2tlZCBhbmQgZGlkbid0IGhpdCBhbnkgR1VJIG9iamVjdC5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBob3ZlcmluZyBhbmQgYnV0dG9uIE5PVCBkb3duXHJcbiAgICBpZiggaG92ZXJOYW1lICYmIGhvdmVyICYmIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob3Zlck5hbWUsIHBheWxvYWQgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgaG92ZXJpbmcgYW5kIGJ1dHRvbiBkb3duIGJ1dCBubyBpbnRlcmFjdGlvbnMgYWN0aXZlIHlldFxyXG4gICAgLy8tLS0+IHNob3VsZCBiZSBeIGJ1dHRvbiAnY2xpY2tlZCcuLi4gaWUgb25seSBpZiBpdCBjYW1lIGRvd24gc2luY2UgdGhlIGxhc3QgdXBkYXRlLlxyXG4gICAgLy9zbywgc2hvdWxkIHdlIHBhc3MgJ2J1dHRvbkNsaWNrTmFtZScgYXMgYW4gYXJndW1lbnQgKGFuZCB1c2UgYnV0dG9uTmFtZSBpZiBub3QgcHJvdmlkZWQpP1xyXG4gICAgLy8tLS0+Pj4+IFhYWDogaXMgdGhpcyBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcLy8vLy8vLy8vLy8vIHdvcmtpbmcgd2l0aCBWaXZlIGNvbnRyb2xsZXJzPyBcclxuICAgIGlmKCBob3ZlciAmJiBpbnB1dFsgYnV0dG9uQ2xpY2tOYW1lIHx8IGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG5cclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpZiAoIWhpdE9iamVjdC51c2VyRGF0YS5wYXJ0T2ZNb2RhbCkgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG5cclxuICAgICAgcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpO1xyXG4gICAgICBcclxuICAgICAgLy9lbWl0IGdsb2JhbCBjbGljayBldmVudCBhcyB3ZWxsLi4uXHJcbiAgICAgIGdsb2JhbEV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgICBldmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGlmKCBwYXlsb2FkLmxvY2tlZCApe1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gaW50ZXJhY3Rpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgYW55QWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIHN0aWxsIGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggaG9sZE5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnb25Db250cm9sbGVySGVsZCcgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIG5vdCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IHVuZGVmaW5lZDtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCB1cE5hbWUsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpIHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGhpdE9iamVjdCk7XHJcbiAgICB0b3BGb2xkZXIucHJvbW90ZVpPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaXNNYWluSG92ZXIoKXtcclxuXHJcbiAgICBsZXQgbm9NYWluSG92ZXIgPSB0cnVlO1xyXG4gICAgZm9yKCBsZXQgaT0wOyBpPGF2YWlsYWJsZUlucHV0cy5sZW5ndGg7IGkrKyApe1xyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzWyBpIF0uaW50ZXJhY3Rpb24uaG92ZXIgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIG5vTWFpbkhvdmVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggbm9NYWluSG92ZXIgKXtcclxuICAgICAgcmV0dXJuIGFueUhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuZmlsdGVyKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgICAgcmV0dXJuIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID09PSBpbnRlcmFjdGlvbjtcclxuICAgIH0pLmxlbmd0aCA+IDAgKXtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0ge1xyXG4gICAgaG92ZXJpbmc6IGlzTWFpbkhvdmVyLFxyXG4gICAgcHJlc3Npbmc6ICgpPT5hbnlQcmVzc2luZyxcclxuICAgIHVwZGF0ZSxcclxuICAgIGV2ZW50cyxcclxuICAgIGhpdFZvbHVtZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufVxyXG5cclxuIiwiLyoqXHJcbiAqIFxyXG4gKiBUT0RPOiBjdXJzb3JzLi4uXHJcbiAqIE1heWJlIHNvbWV0aGluZyBsaWtlIG1vYmlsZSBpbnB1dCB3aGVyZSB5b3Ugc3dpdGNoIGJldHdlZW4gbGV0dGVycyAmIG51bWJlcnMgLyBzeW1ib2xzXHJcbiAqIFxyXG4gKiBTb21ldGhpbmcgbGlrZSBhIHNwbGl0IGtleWJvYXJkIGFsYSBodHRwczovL21lZGl1bS5jb20vYWFyb25uL3ZyLXRleHQtaW5wdXQtc3BsaXQta2V5Ym9hcmQtZTViZjNmZDg3YTRjXHJcbiAqIG1pZ2h0IGJlIGJldHRlci5cclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZCggeyBcclxuICAgIGtleUxpc3RlbmVyLFxyXG4gICAgdGV4dENyZWF0b3JcclxufSA9IHt9KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0VHJhbnNmb3JtID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBncm91cC5hZGQob2Zmc2V0VHJhbnNmb3JtKTtcclxuXHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgZXZlbnRzLm9uKCdrZXlEb3duJywga2V5TGlzdGVuZXIpO1xyXG4gICAgXHJcbiAgICBjb25zdCBsb3dlckNoYXJzID0gXCIxMjM0NTY3ODkwLT1xd2VydHl1aW9wW11hc2RmZ2hqa2w7JyNcXFxcenhjdmJubSwuLyBcIi5zcGxpdCgnJyk7XHJcbiAgICBsZXQgb2JqZWN0cyA9IGxvd2VyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG93ZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQobG93ZXJLZXlzKTtcclxuXHJcbiAgICBjb25zdCB1cHBlckNoYXJzID0gXCIhXFxcIsKjJCVeJiooKV8rUVdFUlRZVUlPUHt9QVNERkdISktMOkB+fFpYQ1ZCTk08Pj8gXCIuc3BsaXQoJycpO1xyXG4gICAgb2JqZWN0cyA9IHVwcGVyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBwZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIHVwcGVyS2V5cy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHVwcGVyS2V5cyk7XHJcblxyXG4gICAgbGV0IHNoaWZ0ID0gZmFsc2U7XHJcbiAgICBmdW5jdGlvbiBzaGlmdFRvZ2dsZSgpIHtcclxuICAgICAgICBzaGlmdCA9ICFzaGlmdDtcclxuICAgICAgICBsb3dlcktleXMudmlzaWJsZSA9ICFzaGlmdDtcclxuICAgICAgICB1cHBlcktleXMudmlzaWJsZSA9IHNoaWZ0O1xyXG4gICB9XHJcblxyXG4gICBjb25zdCBzcGFjZUJhciA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7IHRleHRDcmVhdG9yLCBjb2x1bW5zOiAxLCByb3dIZWlnaHQ6IDAuMSwgb2JqZWN0czogW1xyXG4gICAgICAge2Z1bmM6ICgpPT5ldmVudHMuZW1pdCgna2V5RG93bicsICcgJyksIHRleHQ6ICdzcGFjZSd9XHJcbiAgICBdfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwYWNlQmFyKTtcclxuICAgIHZhciB5ID0gc3BhY2VCYXIucG9zaXRpb24ueSA9IC0wLjUgKiAobG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nKTtcclxuICAgIFxyXG4gICAgb2JqZWN0cyA9IFtcclxuICAgICAgICB7IHRleHQ6IFwic2hpZnRcIiwgZnVuYzogc2hpZnRUb2dnbGUgfSxcclxuICAgICAgICB7IHRleHQ6IFwiYmFja3NwYWNlXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcYicpIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImVudGVyXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcbicpIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBzcGVjaWFsS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDMsIHJvd0hlaWdodDogMC4xfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwZWNpYWxLZXlzKTtcclxuICAgIHNwZWNpYWxLZXlzLnBvc2l0aW9uLnkgPSB5LTAuNSAqIChzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZyk7XHJcbiAgICBncm91cC5zcGFjaW5nID0gbG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZztcclxuICAgIC8vdGhpcyBsb29rcyByaWdodCwgbXVzdCBhZG1pdCBJIGhhdmVuJ3QgdGhvdWdodCB0aHJvdWdoIGV4YWN0bHkgd2h5IGl0IHNob3VsZCBiZS5cclxuICAgIG9mZnNldFRyYW5zZm9ybS5wb3NpdGlvbi55ID0gc3BlY2lhbEtleXMuc3BhY2luZztcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdoaXRzY2FuJywge1xyXG4gICAgICAgIGdldDogKCkgPT4gW1xyXG4gICAgICAgICAgICBzcGVjaWFsS2V5cy5oaXRzY2FuLCBzcGFjZUJhci5oaXRzY2FuLCBzaGlmdCA/IHVwcGVyS2V5cy5oaXRzY2FuIDogbG93ZXJLZXlzLmhpdHNjYW5cclxuICAgICAgICBdLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSlcclxuICAgIH0pO1xyXG5cclxuICAgIHNwYWNlQmFyLmZvbGRlciA9IHVwcGVyS2V5cy5mb2xkZXIgPSBsb3dlcktleXMuZm9sZGVyID0gc3BlY2lhbEtleXMuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gKGlucHV0cykgPT4ge1xyXG4gICAgICAgIHNwZWNpYWxLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBsb3dlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHNwYWNlQmFyLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICB1cHBlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWxpZ25MZWZ0KCBvYmogKXtcclxuICBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuTWVzaCApe1xyXG4gICAgb2JqLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4LnggLSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmouZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZWxzZSBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkgKXtcclxuICAgIG9iai5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gIGNvbnN0IG1hdGVyaWFsID0gdW5pcXVlTWF0ZXJpYWwgPyBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4ZmZmZmZmfSkgOiBTaGFyZWRNYXRlcmlhbHMuUEFORUw7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApLCBtYXRlcmlhbCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgaWYoIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuXHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxuXHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiByZXNpemVQYW5lbChwYW5lbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgpIHtcclxuICBwYW5lbC5nZW9tZXRyeS5zY2FsZSh3aWR0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGgsIGhlaWdodC9wYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0LCBkZXB0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGgpO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgY29sb3IgKXtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENPTlRST0xMRVJfSURfV0lEVEgsIGhlaWdodCwgQ09OVFJPTExFUl9JRF9ERVBUSCApLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIENPTlRST0xMRVJfSURfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIGNvbG9yICk7XHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRG93bkFycm93KCl7XHJcbiAgY29uc3QgdyA9IDAuMDA5NjtcclxuICBjb25zdCBoID0gMC4wMTY7XHJcbiAgY29uc3Qgc2ggPSBuZXcgVEhSRUUuU2hhcGUoKTtcclxuICBzaC5tb3ZlVG8oMCwwKTtcclxuICBzaC5saW5lVG8oLXcsaCk7XHJcbiAgc2gubGluZVRvKHcsaCk7XHJcbiAgc2gubGluZVRvKDAsMCk7XHJcblxyXG4gIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KCBzaCApO1xyXG4gIGdlby50cmFuc2xhdGUoIDAsIC1oICogMC41LCAwICk7XHJcblxyXG4gIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgUEFORUxfSEVJR0hUID0gMC4wODtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1NQQUNJTkcgPSAwOy8vLjAwMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX01BUkdJTiA9IDAuMDE1O1xyXG5leHBvcnQgY29uc3QgUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gPSAwLjA2O1xyXG5leHBvcnQgY29uc3QgUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9XSURUSCA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RFUFRIID0gMC4wMDE7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX1dJRFRIID0gMS4wMjY7XHJcbmV4cG9ydCBjb25zdCBTVUJGT0xERVJfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfSEVJR0hUID0gMC4wOTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9HUkFCX0hFSUdIVCA9IDAuMDUxMjtcclxuZXhwb3J0IGNvbnN0IEJPUkRFUl9USElDS05FU1MgPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfU0laRSA9IDAuMDU7XHJcbmV4cG9ydCBjb25zdCBURVhUX1NDQUxFID0gMC4wMDAyNDtcclxuZXhwb3J0IGNvbnN0IEdSSURfQlVUVE9OX01BUkdJTiA9IDAuMDE7IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvbkdyaXBwZWQnLCBoYW5kbGVPbkdyaXAgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VHcmlwJywgaGFuZGxlT25HcmlwUmVsZWFzZSApO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgbGV0IG9sZFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBsZXQgb2xkUm90YXRpb24gPSBuZXcgVEhSRUUuRXVsZXIoKTtcclxuXHJcbiAgY29uc3Qgcm90YXRpb25Hcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHJvdGF0aW9uR3JvdXAuc2NhbGUuc2V0KCAwLjMsIDAuMywgMC4zICk7XHJcbiAgcm90YXRpb25Hcm91cC5wb3NpdGlvbi5zZXQoIC0wLjAxNSwgMC4wMTUsIDAuMCApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwKCBwICl7XHJcblxyXG4gICAgY29uc3QgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9sZFBvc2l0aW9uLmNvcHkoIGZvbGRlci5wb3NpdGlvbiApO1xyXG4gICAgb2xkUm90YXRpb24uY29weSggZm9sZGVyLnJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24ueCA9IC1NYXRoLlBJICogMC41O1xyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG5cclxuICAgIHJvdGF0aW9uR3JvdXAuYWRkKCBmb2xkZXIgKTtcclxuXHJcbiAgICBpbnB1dE9iamVjdC5hZGQoIHJvdGF0aW9uR3JvdXAgKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGlubmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcFJlbGVhc2UoIHsgaW5wdXRPYmplY3QsIGlucHV0IH09e30gKXtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoIG9sZFBvc2l0aW9uICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uY29weSggb2xkUm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGluUmVsZWFzZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiLyoqXHJcbiAqIFBKVDogVGhpcyBpcyBhIHZhcmlhdGlvbiBvbiBzZGZzaGFkZXIgZnJvbSBibWZvbnQsIHdoaWNoIHNob3VsZCBKdXN0IFdvcmsgd2l0aCBsb2dhcml0aG1pYyBkZXB0aCBidWZmZXJzLlxyXG4gKiBJdCBzaG91bGQgYWxzbyBhbGxvdyBzb21lIG90aGVyIGFzcGVjdHMgb2YgVEhSRUUgcmVuZGVyaW5nIHRvIGJlIGluY29ycG9yYXRlZCwgbGlrZSBmb2csIGNsaXBwaW5nIHBsYW5lcy4uLlxyXG4gKiBFbnZpcm9ubWVudCBtYXBzIGFuZCB2YXJpb3VzIG90aGVyIGJpdHMgZnJvbSBNZXNoQmFzaWNNYXRlcmlhbCBhcmUgcmVtb3ZlZC5cclxuICogQXQgdGltZSBvZiB3cml0aW5nLCB0aGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MsIGFuZCBzb21ld2hhdCBtb3JlIGJsb2F0ZWQgdGhhbiBpdCBuZWVkcyB0byBiZS5cclxuICogVGhlIHNoYWRlciBjb2RlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBTaGFkZXJNYXRlcmlhbCByYXRoZXIgdGhhbiBSYXdTaGFkZXJNYXRlcmlhbC5cclxuICovXHJcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XHJcblxyXG4vKipcclxuICogc3RhcnRpbmcgZnJvbSBUSFJFRSBtZXNoYmFzaWMgc2hhZGVycywgcHJ1bmluZyAvIG1vZGlmeWluZy4uLlxyXG4gKi9cclxuY29uc3QgbWVzaGJhc2ljX3ZlcnQgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG5cclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50PlxyXG5cclxuLy8vLy9cclxuZmxvYXQgYWFzdGVwKGZsb2F0IHZhbHVlKSB7XHJcbiAgICAjaWZkZWYgR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzXHJcbiAgICAgICAgZmxvYXQgYWZ3aWR0aCA9IGxlbmd0aCh2ZWMyKGRGZHgodmFsdWUpLCBkRmR5KHZhbHVlKSkpICogMC43MDcxMDY3ODExODY1NDc1NztcclxuICAgICNlbHNlXHJcbiAgICAgICAgZmxvYXQgYWZ3aWR0aCA9ICgxLjAgLyAzMi4wKSAqICgxLjQxNDIxMzU2MjM3MzA5NTEgLyAoMi4wICogZ2xfRnJhZ0Nvb3JkLncpKTtcclxuICAgICNlbmRpZlxyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBtZXNoLmdlb21ldHJ5LnVwZGF0ZSggc3RyICk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogVEhSRUUuVmVydGV4Q29sb3JzIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiAweEZGRkZGRiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIC8vaG93IGNhbiBJIGNoYW5nZSBjb2xvciBvZiB0ZXh0P1xyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBvYmplY3RbcHJvcGVydHlOYW1lXSwgeyBjb2xvcjogMHgwMDAwMDAwLCBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgLy9idXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IDAuMDE1O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVN0cmluZyhzdHIpIHtcclxuICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdHI7XHJcbiAgICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKHN0cik7XHJcbiAgfVxyXG4gIHZhciBrZXlib2FyZDtcclxuICBmdW5jdGlvbiB0b2dnbGVLZXlib2FyZCgpIHtcclxuICAgIGlmIChrZXlib2FyZCkge1xyXG4gICAgICAgIGtleWJvYXJkLnZpc2libGUgPSAha2V5Ym9hcmQudmlzaWJsZTtcclxuICAgICAgICBpZiAoa2V5Ym9hcmQudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGtleWJvYXJkID0gZGF0LkdVSVZSLmNyZWF0ZShcImtleWJvYXJkXCIpO1xyXG4gICAgICAgIGdyb3VwLmFkZChrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQuZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueCA9IHdpZHRoO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgICAgICBrZXlib2FyZC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAga2V5Ym9hcmQuYWRkS2V5Ym9hcmQoIChrKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBzdHIgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgc3dpdGNoIChrKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXG4nOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0dGluZyBcImtleWJvYXJkLnZpc2libGUgPSBmYWxzZVwiIGluIHRoZSBtaWRkbGUgb2YgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIgc2VlbXMgdG8ga2lsbCBhbGwgZXZlbnQgcHJvY2Vzc2luZyBmcm9tIHRoZW4gb24uXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0IGlzIGFuIGFkZXF1YXRlIHdvcmthcm91bmQgZm9yIG5vdy5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRvZ2dsZUtleWJvYXJkLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxiJzpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSBrO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL3RoaXMgdGVzdCBzaG91bGQgYmUgcmVkdW5kYW50IG5vd1xyXG4gICAgLy8gaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvL29iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICAvL2hpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICAvLyBjcmVhdGUgYSBrZXlib2FyZCBhbmQgYXR0YWNoIGl0IGFzIGNoaWxkIG9mIGdyb3VwLi4uIFxyXG4gICAgLy8gb3IganVzdCBtYWtlIHN1cmUgZXhpc3Rpbmcga2V5Ym9hcmQgaXMgdmlzaWJsZS5cclxuICAgIHRvZ2dsZUtleWJvYXJkKCk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfSElHSExJR0hUX0JHICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0JHICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRMYWJlbCggdGV4dENyZWF0b3IsIHN0ciwgd2lkdGggPSAwLjQsIGRlcHRoID0gMC4wMjksIGZnQ29sb3IgPSAweGZmZmZmZiwgYmdDb2xvciA9IENvbG9ycy5ERUZBVUxUX0JBQ0ssIHNjYWxlID0gMS4wICl7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGxhYmVsXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7c3RyfV1gO1xyXG5cclxuICBjb25zdCBpbnRlcm5hbFBvc2l0aW9uaW5nID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vcmF0aGVyIHVubmVjZXNzYXJ5LlxyXG4gIGdyb3VwLmFkZCggaW50ZXJuYWxQb3NpdGlvbmluZyApO1xyXG5cclxuICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdHIudG9TdHJpbmcoKSwgeyBjb2xvcjogZmdDb2xvciwgc2NhbGUgfSApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCB0ZXh0ICk7XHJcbiAgZ3JvdXAudXNlckRhdGEudGV4dCA9IHRleHQ7XHJcblxyXG4gIGdyb3VwLnNldFN0cmluZyA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkgc3RyID0gXCJbdW5kZWZpbmVkXVwiO1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvU3RyaW5nKCkgKTtcclxuICAgIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0TnVtYmVyID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvRml4ZWQoMikgKTtcclxuICB9O1xyXG5cclxuICB0ZXh0LnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgY29uc3QgYmFja0JvdW5kcyA9IDAuMDE7XHJcbiAgY29uc3QgbWFyZ2luID0gMC4wMTtcclxuICBjb25zdCB0b3RhbFdpZHRoID0gd2lkdGg7XHJcbiAgY29uc3QgdG90YWxIZWlnaHQgPSAwLjA0ICsgbWFyZ2luICogMjtcclxuXHJcbiAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrR2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0LCBkZXB0aCwgMSwgMSwgMSApO1xyXG4gIGxhYmVsQmFja0dlb21ldHJ5LmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oIHRvdGFsV2lkdGggKiAwLjUgLSBtYXJnaW4sIDAsIDAgKSApO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tNZXNoID0gbmV3IFRIUkVFLk1lc2goIGxhYmVsQmFja0dlb21ldHJ5LCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWxCYWNrTWVzaC5nZW9tZXRyeSwgYmdDb2xvciApO1xyXG5cclxuICBsYWJlbEJhY2tNZXNoLnBvc2l0aW9uLnkgPSAwLjAzO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCBsYWJlbEJhY2tNZXNoICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5wb3NpdGlvbi55ID0gLXRvdGFsSGVpZ2h0ICogMC41O1xyXG5cclxuICBncm91cC5iYWNrID0gbGFiZWxCYWNrTWVzaDtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0UGFyZW50SGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbFRpcCggdGV4dENyZWF0b3IsIHRpcCwgcGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCA9IGRlZmF1bHRQYXJlbnRIZWlnaHQsIHBhcmVudERlcHRoICkge1xyXG4gIGNvbnN0IHRpcFRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUodGlwKTtcclxuICBcclxuICBjb25zdCB0aXBHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICBjb25zdCB3ID0gdGlwVGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICBjb25zdCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0aXBUZXh0LmxheW91dC5oZWlnaHQ7XHJcblxyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnggID0gMC41ICogcGFyZW50V2lkdGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueSA9IC0xLjA1ICogcGFyZW50SGVpZ2h0IC0gaDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi56ID0gcGFyZW50RGVwdGggKiAzO1xyXG4gIHRpcEdyb3VwLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbi8vICBzdWJncm91cC5hZGQodGlwR3JvdXApO1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBUZXh0KTtcclxuLy8gIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBHcm91cDtcclxuXHJcbiAgY29uc3QgcGFkZGVkVyA9IHcgKyAwLjAzLCBwYWRkZWRIID0gaCArIDAuMDM7XHJcbiAgY29uc3QgdGlwUmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KHBhZGRlZFcsIHBhZGRlZEgsIDEsIDEpO1xyXG4gIGNvbnN0IHRpcEJhY2tncm91bmQgPSBuZXcgVEhSRUUuTWVzaCh0aXBSZWN0LCBTaGFyZWRNYXRlcmlhbHMuVE9PTFRJUCk7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi54ID0gMDsgLy9wYWRkZWRXIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnkgPSBoIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnogPSAtcGFyZW50RGVwdGggKiAwLjU7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcEJhY2tncm91bmQpO1xyXG5cclxuICB0aXBUZXh0LnBvc2l0aW9uLnggPSAtMC41ICogdztcclxuICB0aXBUZXh0LnBvc2l0aW9uLnkgPSAtMC41ICogaCArIDAuMDAxNTtcclxuXHJcbiAgdGlwR3JvdXAudXNlckRhdGEudyA9IHc7XHJcbiAgdGlwR3JvdXAudXNlckRhdGEuaCA9IGg7XHJcblxyXG4gIHJldHVybiB0aXBHcm91cDtcclxufVxyXG4iLCIvKiogYmFzaWMgdXRpbGl0eSBmdW5jdGlvbnMgKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xsZXJWaXNpYmxlKGNvbnRyb2wpIHtcclxuICB2YXIgZm9sZGVyID0gY29udHJvbC5mb2xkZXI7XHJcbiAgLy9ub3RlOiB0aGUgYmFzaXMgb24gd2hpY2ggYSBjb250cm9sbGVyIGlzIGNvbnNpZGVyZWQgdmlzaWJsZSByZXZpc2VkIGZvciAnaGVhZGVyJyBvYmplY3RzLlxyXG4gIC8vZm9yIG5vdywgdGhpcyBzaG91bGQgYWxsb3cgaGVhZGVyIGNvbnRyb2xsZXJzIHRvIHVwZGF0ZSB3aGlsZSBmb2xkZXIgaXMgY29sbGFwc2VkLlxyXG4gIC8vb25seSBhcHBsaWVzIHRvIGNoZWNrYm94LCBwZW5kaW5nIGRlc2lnbiByZXZpc2lvbiAmIGZ1bGxlciBpbXBsZW1lbnRhdGlvbi4uLlxyXG4gIFxyXG4gIC8vLS0tLSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgbm8gbG9uZ2VyIHJlbGV2YW50LCBidXQgZW5kaW5nIHVwIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3Mgc2ltaWxhci4uLi5cclxuICAvL2lzSGVhZGVyT2JqZWN0IHdpbGwgYXBwbHkgdG8gdGhlIGFjdHVhbCBjb250cm9sIGFwcGVhcmluZyBpbiB0aGUgZm9sZGVyIGhlYWRlciwgd2hlcmVhc1xyXG4gIC8vaXNTaG93bkluRm9sZGVySGVhZGVyIHdhcyB3aGVuIHN1Y2ggb2JqZWN0cyB3ZXJlbid0IHNvIGZ1bGx5LWZsZWRnZWRcclxuICAvL2lmIChjb250cm9sLmlzU2hvd25JbkZvbGRlckhlYWRlcikgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTsgLy88PDw8PCBzdGlsbCBoaXR0aW5nIGZvbGRlZCBidXR0b24/Pz8gKGFsc28sIHRyeSBucG0gYXVkaXQpXHJcbiAgaWYgKGNvbnRyb2wuaXNIZWFkZXJPYmplY3QpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7XHJcblxyXG4gIC8vWFhYIGhhdmluZyBzb21lIGRlZmluaXRlIGJ1Z3MgZS5nLiBtaXNzaW5nIGV2ZW50cyBvdmVyICdwaWN0dXJlcyAvIG1hdGVyaWFscycgZm9sZGVyIGhlYWRlciBpbiBkZW1vLlxyXG4gIFxyXG4gIGlmICghY29udHJvbC52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcil7XHJcbiAgICBpZiAoZm9sZGVyLmlzQ29sbGFwc2VkKCkgfHwgIWZvbGRlci52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gIH1cclxuICBpZiAoIWZvbGRlci5wYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gZm9sZGVyLnZpc2libGU7XHJcbn1cclxuXHJcbi8qKiBcclxuICogSW52aXNpYmxlIFRIUkVFIG9iamVjdHMgaW5jdXIgc2lnbmlmaWNhbnQgQ1BVIGNvc3QuXHJcbiAqIFRoaXMgYXZvaWRzIHRoYXQgYnkgcmVtb3ZpbmcgdGhlbSBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICogXHJcbiAqIElmIHZpc2libGUgaXMgdHJ1ZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9dHJ1ZSBhbmQgaXMgYSBjaGlsZCBvZiBwYXJlbnQuXHJcbiAqIElmIHZpc2libGUgaXMgZmFsc2UsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPWZhbHNlIGFuZCBpcyByZW1vdmVkIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHkocGFyZW50LCBjaGlsZCwgdmlzaWJsZSkge1xyXG4gICAgY29uc3QgaXNDaGlsZCA9IHBhcmVudC5jaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCk7XHJcbiAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgIC8vbWFrZSBzdXJlIHdlIHVzZSBvcmlnaW5hbCBUSFJFRSBtZXRob2RzIHRoYXQgdGhpcyBsaWJyYXJ5IG92ZXJyaWRlcyAoVE9ETzogcmVmYWN0b3IuLi4pXHJcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZC5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCF2aXNpYmxlICYmIGlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmUuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghcGFyZW50LnZpc2libGUpIGNvbnNvbGUud2Fybihgc2V0VmlzaWJpbGl0eSBjYWxsZWQgb24gY2hpbGQgJHtjaGlsZH0gb2YgaW52aXNpYmxlIHBhcmVudCAke3BhcmVudH1gKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2YgcGFyZW50IGZvbGRlciBpbiB0aGUgZ3VpIGhpZWFyY2h5IGNvbnRhaW5pbmcgYSBnaXZlbiBvYmplY3QuXHJcbiAqIG5iLiBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0IGRpZG4ndCBoYXZlIGEgJ2ZvbGRlcicgcHJvcGVydHkuXHJcbiAqIE5vdywgaXQgaXMgaW50ZW5kZWQgdGhhdCBpdCBzaG91bGQgZWl0aGVyIHJldHVybiBhIGZvbGRlciBpZiBhcHByb3ByaWF0ZSwgb3Igbm90aGluZy5cclxuICogQHBhcmFtIHsqfSBncm91cCBlaXRoZXIgYSBmb2xkZXIsIG9yIGFuIG9iamVjdCB3aG9zZSBwYXJlbnQgaGFzIGEgZm9sZGVyLi4uIGFwb2xvZ2llcywgdGhpcyBpcyBub3QgdGhlIGNsZWFyZXN0IHNwZWMuXHJcbiAqIC4uLiBpbnRlbnRpb24gaXMgdGhhdCBpdCBzaG91bGQgd29yayB3aXRoIGFueSBndWkgZWxlbWVudCwgaW4gcGFydGljdWxhciBhbnkgaGl0T2JqZWN0IGluIGludGVyYWN0aW9uLmpzLi4uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApIHtcclxuICAgIHZhciBmb2xkZXIgPSBnZXRGb2xkZXIoZ3JvdXApO1xyXG4gICAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcikgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICAgIHJldHVybiBmb2xkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoZ3JvdXApIHtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIHJldHVybiBncm91cC5mb2xkZXI7XHJcbiAgICBsZXQgbm9kZSA9IGdyb3VwLnBhcmVudDtcclxuICAgIHdoaWxlICghbm9kZS5mb2xkZXIgJiYgZ3JvdXAucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICByZXR1cm4gbm9kZS5mb2xkZXI7XHJcbn1cclxuXHJcbi8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCb3hGcm9tT2JqZWN0KGJveCwgb2JqKSB7XHJcbiAgY29uc3Qgd29ua3lHZW9tID0gW107XHJcbiAgb2JqLnRyYXZlcnNlKG8gPT4ge1xyXG4gICAgaWYgKG8uZ2VvbWV0cnkgJiYgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZSAhPT0gMykge1xyXG4gICAgICBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgPSBmYWxzZTtcclxuICAgICAgd29ua3lHZW9tLnB1c2goby5nZW9tZXRyeSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgYm94LnNldEZyb21PYmplY3Qob2JqKTtcclxuICB3b25reUdlb20uZm9yRWFjaChnID0+IGcuaXNCdWZmZXJHZW9tZXRyeSA9IHRydWUpO1xyXG4gIHJldHVybiBib3g7XHJcbn1cclxuIiwiLypcclxuICpcdEBhdXRob3Igeno4NSAvIGh0dHA6Ly90d2l0dGVyLmNvbS9ibHVyc3BsaW5lIC8gaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZ1xyXG4gKlx0QGF1dGhvciBjZW50ZXJpb253YXJlIC8gaHR0cDovL3d3dy5jZW50ZXJpb253YXJlLmNvbVxyXG4gKlxyXG4gKlx0U3ViZGl2aXNpb24gR2VvbWV0cnkgTW9kaWZpZXJcclxuICpcdFx0dXNpbmcgTG9vcCBTdWJkaXZpc2lvbiBTY2hlbWVcclxuICpcclxuICpcdFJlZmVyZW5jZXM6XHJcbiAqXHRcdGh0dHA6Ly9ncmFwaGljcy5zdGFuZm9yZC5lZHUvfm1kZmlzaGVyL3N1YmRpdmlzaW9uLmh0bWxcclxuICpcdFx0aHR0cDovL3d3dy5ob2xtZXMzZC5uZXQvZ3JhcGhpY3Mvc3ViZGl2aXNpb24vXHJcbiAqXHRcdGh0dHA6Ly93d3cuY3MucnV0Z2Vycy5lZHUvfmRlY2FybG8vcmVhZGluZ3Mvc3ViZGl2LXNnMDBjLnBkZlxyXG4gKlxyXG4gKlx0S25vd24gSXNzdWVzOlxyXG4gKlx0XHQtIGN1cnJlbnRseSBkb2Vzbid0IGhhbmRsZSBcIlNoYXJwIEVkZ2VzXCJcclxuICovXHJcblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyID0gZnVuY3Rpb24gKCBzdWJkaXZpc2lvbnMgKSB7XHJcblxyXG5cdHRoaXMuc3ViZGl2aXNpb25zID0gKCBzdWJkaXZpc2lvbnMgPT09IHVuZGVmaW5lZCApID8gMSA6IHN1YmRpdmlzaW9ucztcclxuXHJcbn07XHJcblxyXG4vLyBBcHBsaWVzIHRoZSBcIm1vZGlmeVwiIHBhdHRlcm5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUubW9kaWZ5ID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHtcclxuXHJcblx0dmFyIHJlcGVhdHMgPSB0aGlzLnN1YmRpdmlzaW9ucztcclxuXHJcblx0d2hpbGUgKCByZXBlYXRzIC0tID4gMCApIHtcclxuXHJcblx0XHR0aGlzLnNtb290aCggZ2VvbWV0cnkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRnZW9tZXRyeS5jb21wdXRlRmFjZU5vcm1hbHMoKTtcclxuXHRnZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xyXG5cclxufTtcclxuXHJcbiggZnVuY3Rpb24oKSB7XHJcblxyXG5cdC8vIFNvbWUgY29uc3RhbnRzXHJcblx0dmFyIFdBUk5JTkdTID0gISB0cnVlOyAvLyBTZXQgdG8gdHJ1ZSBmb3IgZGV2ZWxvcG1lbnRcclxuXHR2YXIgQUJDID0gWyAnYScsICdiJywgJ2MnIF07XHJcblxyXG5cclxuXHRmdW5jdGlvbiBnZXRFZGdlKCBhLCBiLCBtYXAgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0cmV0dXJuIG1hcFsga2V5IF07XHJcblxyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHByb2Nlc3NFZGdlKCBhLCBiLCB2ZXJ0aWNlcywgbWFwLCBmYWNlLCBtZXRhVmVydGljZXMgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0dmFyIGVkZ2U7XHJcblxyXG5cdFx0aWYgKCBrZXkgaW4gbWFwICkge1xyXG5cclxuXHRcdFx0ZWRnZSA9IG1hcFsga2V5IF07XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHZhciB2ZXJ0ZXhBID0gdmVydGljZXNbIHZlcnRleEluZGV4QSBdO1xyXG5cdFx0XHR2YXIgdmVydGV4QiA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEIgXTtcclxuXHJcblx0XHRcdGVkZ2UgPSB7XHJcblxyXG5cdFx0XHRcdGE6IHZlcnRleEEsIC8vIHBvaW50ZXIgcmVmZXJlbmNlXHJcblx0XHRcdFx0YjogdmVydGV4QixcclxuXHRcdFx0XHRuZXdFZGdlOiBudWxsLFxyXG5cdFx0XHRcdC8vIGFJbmRleDogYSwgLy8gbnVtYmVyZWQgcmVmZXJlbmNlXHJcblx0XHRcdFx0Ly8gYkluZGV4OiBiLFxyXG5cdFx0XHRcdGZhY2VzOiBbXSAvLyBwb2ludGVycyB0byBmYWNlXHJcblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0bWFwWyBrZXkgXSA9IGVkZ2U7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGVkZ2UuZmFjZXMucHVzaCggZmFjZSApO1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlc1sgYSBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHRcdG1ldGFWZXJ0aWNlc1sgYiBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2VuZXJhdGVMb29rdXBzKCB2ZXJ0aWNlcywgZmFjZXMsIG1ldGFWZXJ0aWNlcywgZWRnZXMgKSB7XHJcblxyXG5cdFx0dmFyIGksIGlsLCBmYWNlLCBlZGdlO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IHZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0bWV0YVZlcnRpY2VzWyBpIF0gPSB7IGVkZ2VzOiBbXSB9O1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBmYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBmYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYSwgZmFjZS5iLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5iLCBmYWNlLmMsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmMsIGZhY2UuYSwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3RmFjZSggbmV3RmFjZXMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3RmFjZXMucHVzaCggbmV3IFRIUkVFLkZhY2UzKCBhLCBiLCBjICkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBtaWRwb2ludCggYSwgYiApIHtcclxuXHJcblx0XHRyZXR1cm4gKCBNYXRoLmFicyggYiAtIGEgKSAvIDIgKSArIE1hdGgubWluKCBhLCBiICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3VXYoIG5ld1V2cywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdVdnMucHVzaCggWyBhLmNsb25lKCksIGIuY2xvbmUoKSwgYy5jbG9uZSgpIF0gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHQvLyBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIFN1YmRpdmlzaW9uXHJcblx0VEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUuc21vb3RoID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHsgcmV0dXJuOyAvLyBzanB0IFRFTVAgVE9ET1xyXG5cclxuXHRcdHZhciB0bXAgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdHZhciBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG9sZFV2cztcclxuXHRcdHZhciBuZXdWZXJ0aWNlcywgbmV3RmFjZXMsIG5ld1VWcyA9IFtdO1xyXG5cclxuXHRcdHZhciBuLCBsLCBpLCBpbCwgaiwgaztcclxuXHRcdHZhciBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzO1xyXG5cclxuXHRcdC8vIG5ldyBzdHVmZi5cclxuXHRcdHZhciBzb3VyY2VFZGdlcywgbmV3RWRnZVZlcnRpY2VzLCBuZXdTb3VyY2VWZXJ0aWNlcztcclxuXHJcblx0XHRvbGRWZXJ0aWNlcyA9IGdlb21ldHJ5LnZlcnRpY2VzOyAvLyB7IHgsIHksIHp9XHJcblx0XHRvbGRGYWNlcyA9IGdlb21ldHJ5LmZhY2VzOyAvLyB7IGE6IG9sZFZlcnRleDEsIGI6IG9sZFZlcnRleDIsIGM6IG9sZFZlcnRleDMgfVxyXG5cdFx0b2xkVXZzID0gZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdO1xyXG5cclxuXHRcdHZhciBoYXNVdnMgPSBvbGRVdnMgIT09IHVuZGVmaW5lZCAmJiBvbGRVdnMubGVuZ3RoID4gMDtcclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICogU3RlcCAwOiBQcmVwcm9jZXNzIEdlb21ldHJ5IHRvIEdlbmVyYXRlIGVkZ2VzIExvb2t1cFxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlcyA9IG5ldyBBcnJheSggb2xkVmVydGljZXMubGVuZ3RoICk7XHJcblx0XHRzb3VyY2VFZGdlcyA9IHt9OyAvLyBFZGdlID0+IHsgb2xkVmVydGV4MSwgb2xkVmVydGV4MiwgZmFjZXNbXSAgfVxyXG5cclxuXHRcdGdlbmVyYXRlTG9va3Vwcyggb2xkVmVydGljZXMsIG9sZEZhY2VzLCBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzICk7XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAxLlxyXG5cdFx0ICpcdEZvciBlYWNoIGVkZ2UsIGNyZWF0ZSBhIG5ldyBFZGdlIFZlcnRleCxcclxuXHRcdCAqXHR0aGVuIHBvc2l0aW9uIGl0LlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld0VkZ2VWZXJ0aWNlcyA9IFtdO1xyXG5cdFx0dmFyIG90aGVyLCBjdXJyZW50RWRnZSwgbmV3RWRnZSwgZmFjZTtcclxuXHRcdHZhciBlZGdlVmVydGV4V2VpZ2h0LCBhZGphY2VudFZlcnRleFdlaWdodCwgY29ubmVjdGVkRmFjZXM7XHJcblxyXG5cdFx0Zm9yICggaSBpbiBzb3VyY2VFZGdlcyApIHtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlID0gc291cmNlRWRnZXNbIGkgXTtcclxuXHRcdFx0bmV3RWRnZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMyAvIDg7XHJcblx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRjb25uZWN0ZWRGYWNlcyA9IGN1cnJlbnRFZGdlLmZhY2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdC8vIGNoZWNrIGhvdyBtYW55IGxpbmtlZCBmYWNlcy4gMiBzaG91bGQgYmUgY29ycmVjdC5cclxuXHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiBsZW5ndGggaXMgbm90IDIsIGhhbmRsZSBjb25kaXRpb25cclxuXHRcdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMC41O1xyXG5cdFx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdTdWJkaXZpc2lvbiBNb2RpZmllcjogTnVtYmVyIG9mIGNvbm5lY3RlZCBmYWNlcyAhPSAyLCBpczogJywgY29ubmVjdGVkRmFjZXMsIGN1cnJlbnRFZGdlICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld0VkZ2UuYWRkVmVjdG9ycyggY3VycmVudEVkZ2UuYSwgY3VycmVudEVkZ2UuYiApLm11bHRpcGx5U2NhbGFyKCBlZGdlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IGNvbm5lY3RlZEZhY2VzOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRmYWNlID0gY3VycmVudEVkZ2UuZmFjZXNbIGogXTtcclxuXHJcblx0XHRcdFx0Zm9yICggayA9IDA7IGsgPCAzOyBrICsrICkge1xyXG5cclxuXHRcdFx0XHRcdG90aGVyID0gb2xkVmVydGljZXNbIGZhY2VbIEFCQ1sgayBdIF0gXTtcclxuXHRcdFx0XHRcdGlmICggb3RoZXIgIT09IGN1cnJlbnRFZGdlLmEgJiYgb3RoZXIgIT09IGN1cnJlbnRFZGdlLmIgKSBicmVhaztcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBhZGphY2VudFZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdFZGdlLmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZS5uZXdFZGdlID0gbmV3RWRnZVZlcnRpY2VzLmxlbmd0aDtcclxuXHRcdFx0bmV3RWRnZVZlcnRpY2VzLnB1c2goIG5ld0VkZ2UgKTtcclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGN1cnJlbnRFZGdlLCBuZXdFZGdlKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDIuXHJcblx0XHQgKlx0UmVwb3NpdGlvbiBlYWNoIHNvdXJjZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHR2YXIgYmV0YSwgc291cmNlVmVydGV4V2VpZ2h0LCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0O1xyXG5cdFx0dmFyIGNvbm5lY3RpbmdFZGdlLCBjb25uZWN0aW5nRWRnZXMsIG9sZFZlcnRleCwgbmV3U291cmNlVmVydGV4O1xyXG5cdFx0bmV3U291cmNlVmVydGljZXMgPSBbXTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRWZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG9sZFZlcnRleCA9IG9sZFZlcnRpY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIGFsbCBjb25uZWN0aW5nIGVkZ2VzICh1c2luZyBsb29rdXBUYWJsZSlcclxuXHRcdFx0Y29ubmVjdGluZ0VkZ2VzID0gbWV0YVZlcnRpY2VzWyBpIF0uZWRnZXM7XHJcblx0XHRcdG4gPSBjb25uZWN0aW5nRWRnZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0aWYgKCBuID09IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gMTY7XHJcblxyXG5cdFx0XHR9IGVsc2UgaWYgKCBuID4gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAoIDggKiBuICk7IC8vIFdhcnJlbidzIG1vZGlmaWVkIGZvcm11bGFcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIExvb3AncyBvcmlnaW5hbCBiZXRhIGZvcm11bGFcclxuXHRcdFx0Ly8gYmV0YSA9IDEgLyBuICogKCA1LzggLSBNYXRoLnBvdyggMy84ICsgMS80ICogTWF0aC5jb3MoIDIgKiBNYXRoLiBQSSAvIG4gKSwgMikgKTtcclxuXHJcblx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDEgLSBuICogYmV0YTtcclxuXHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IGJldGE7XHJcblxyXG5cdFx0XHRpZiAoIG4gPD0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlc1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUud2FybignY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlcycpO1xyXG5cclxuXHRcdFx0XHRpZiAoIG4gPT0gMiApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMiBjb25uZWN0aW5nIGVkZ2VzJywgY29ubmVjdGluZ0VkZ2VzICk7XHJcblx0XHRcdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAzIC8gNDtcclxuXHRcdFx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdFx0XHQvLyBzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxO1xyXG5cdFx0XHRcdFx0Ly8gY29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnb25seSAxIGNvbm5lY3RpbmcgZWRnZScgKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAwICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcwIGNvbm5lY3RpbmcgZWRnZXMnICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleCA9IG9sZFZlcnRleC5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKCBzb3VyY2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgbjsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0Y29ubmVjdGluZ0VkZ2UgPSBjb25uZWN0aW5nRWRnZXNbIGogXTtcclxuXHRcdFx0XHRvdGhlciA9IGNvbm5lY3RpbmdFZGdlLmEgIT09IG9sZFZlcnRleCA/IGNvbm5lY3RpbmdFZGdlLmEgOiBjb25uZWN0aW5nRWRnZS5iO1xyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3U291cmNlVmVydGV4LmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0aWNlcy5wdXNoKCBuZXdTb3VyY2VWZXJ0ZXggKTtcclxuXHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAzLlxyXG5cdFx0ICpcdEdlbmVyYXRlIEZhY2VzIGJldHdlZW4gc291cmNlIHZlcnRpY2VzXHJcblx0XHQgKlx0YW5kIGVkZ2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3VmVydGljZXMgPSBuZXdTb3VyY2VWZXJ0aWNlcy5jb25jYXQoIG5ld0VkZ2VWZXJ0aWNlcyApO1xyXG5cdFx0dmFyIHNsID0gbmV3U291cmNlVmVydGljZXMubGVuZ3RoLCBlZGdlMSwgZWRnZTIsIGVkZ2UzO1xyXG5cdFx0bmV3RmFjZXMgPSBbXTtcclxuXHJcblx0XHR2YXIgdXYsIHgwLCB4MSwgeDI7XHJcblx0XHR2YXIgeDMgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg0ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NSA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkRmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gb2xkRmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgdGhlIDMgbmV3IGVkZ2VzIHZlcnRleCBvZiBlYWNoIG9sZCBmYWNlXHJcblxyXG5cdFx0XHRlZGdlMSA9IGdldEVkZ2UoIGZhY2UuYSwgZmFjZS5iLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTIgPSBnZXRFZGdlKCBmYWNlLmIsIGZhY2UuYywgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UzID0gZ2V0RWRnZSggZmFjZS5jLCBmYWNlLmEsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgZmFjZXMuXHJcblxyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZWRnZTEsIGVkZ2UyLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5hLCBlZGdlMSwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYiwgZWRnZTIsIGVkZ2UxICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmMsIGVkZ2UzLCBlZGdlMiApO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgbmV3IHV2J3NcclxuXHJcblx0XHRcdGlmICggaGFzVXZzICkge1xyXG5cclxuXHRcdFx0XHR1diA9IG9sZFV2c1sgaSBdO1xyXG5cclxuXHRcdFx0XHR4MCA9IHV2WyAwIF07XHJcblx0XHRcdFx0eDEgPSB1dlsgMSBdO1xyXG5cdFx0XHRcdHgyID0gdXZbIDIgXTtcclxuXHJcblx0XHRcdFx0eDMuc2V0KCBtaWRwb2ludCggeDAueCwgeDEueCApLCBtaWRwb2ludCggeDAueSwgeDEueSApICk7XHJcblx0XHRcdFx0eDQuc2V0KCBtaWRwb2ludCggeDEueCwgeDIueCApLCBtaWRwb2ludCggeDEueSwgeDIueSApICk7XHJcblx0XHRcdFx0eDUuc2V0KCBtaWRwb2ludCggeDAueCwgeDIueCApLCBtaWRwb2ludCggeDAueSwgeDIueSApICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgzLCB4NCwgeDUgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MCwgeDMsIHg1ICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgxLCB4NCwgeDMgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MiwgeDUsIHg0ICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE92ZXJ3cml0ZSBvbGQgYXJyYXlzXHJcblx0XHRnZW9tZXRyeS52ZXJ0aWNlcyA9IG5ld1ZlcnRpY2VzO1xyXG5cdFx0Z2VvbWV0cnkuZmFjZXMgPSBuZXdGYWNlcztcclxuXHRcdGlmICggaGFzVXZzICkgZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdID0gbmV3VVZzO1xyXG5cclxuXHRcdC8vIGNvbnNvbGUubG9nKCdkb25lJyk7XHJcblxyXG5cdH07XHJcblxyXG59ICkoKTtcclxuIiwidmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBhbkFycmF5XG5cbmZ1bmN0aW9uIGFuQXJyYXkoYXJyKSB7XG4gIHJldHVybiAoXG4gICAgICAgYXJyLkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgJiYgc3RyLmNhbGwoYXJyLmJ1ZmZlcikgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSdcbiAgICB8fCBBcnJheS5pc0FycmF5KGFycilcbiAgKVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBudW10eXBlKG51bSwgZGVmKSB7XG5cdHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJ1xuXHRcdD8gbnVtIFxuXHRcdDogKHR5cGVvZiBkZWYgPT09ICdudW1iZXInID8gZGVmIDogMClcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGR0eXBlKSB7XG4gIHN3aXRjaCAoZHR5cGUpIHtcbiAgICBjYXNlICdpbnQ4JzpcbiAgICAgIHJldHVybiBJbnQ4QXJyYXlcbiAgICBjYXNlICdpbnQxNic6XG4gICAgICByZXR1cm4gSW50MTZBcnJheVxuICAgIGNhc2UgJ2ludDMyJzpcbiAgICAgIHJldHVybiBJbnQzMkFycmF5XG4gICAgY2FzZSAndWludDgnOlxuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlcbiAgICBjYXNlICd1aW50MTYnOlxuICAgICAgcmV0dXJuIFVpbnQxNkFycmF5XG4gICAgY2FzZSAndWludDMyJzpcbiAgICAgIHJldHVybiBVaW50MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0MzInOlxuICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0NjQnOlxuICAgICAgcmV0dXJuIEZsb2F0NjRBcnJheVxuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIHJldHVybiBBcnJheVxuICAgIGNhc2UgJ3VpbnQ4X2NsYW1wZWQnOlxuICAgICAgcmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG52YXIgb2JqZWN0Q3JlYXRlID0gT2JqZWN0LmNyZWF0ZSB8fCBvYmplY3RDcmVhdGVQb2x5ZmlsbFxudmFyIG9iamVjdEtleXMgPSBPYmplY3Qua2V5cyB8fCBvYmplY3RLZXlzUG9seWZpbGxcbnZhciBiaW5kID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgfHwgZnVuY3Rpb25CaW5kUG9seWZpbGxcblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBpZiAoIXRoaXMuX2V2ZW50cyB8fCAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsICdfZXZlbnRzJykpIHtcbiAgICB0aGlzLl9ldmVudHMgPSBvYmplY3RDcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxudmFyIGhhc0RlZmluZVByb3BlcnR5O1xudHJ5IHtcbiAgdmFyIG8gPSB7fTtcbiAgaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sICd4JywgeyB2YWx1ZTogMCB9KTtcbiAgaGFzRGVmaW5lUHJvcGVydHkgPSBvLnggPT09IDA7XG59IGNhdGNoIChlcnIpIHsgaGFzRGVmaW5lUHJvcGVydHkgPSBmYWxzZSB9XG5pZiAoaGFzRGVmaW5lUHJvcGVydHkpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gICAgfSxcbiAgICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgICAgLy8gY2hlY2sgd2hldGhlciB0aGUgaW5wdXQgaXMgYSBwb3NpdGl2ZSBudW1iZXIgKHdob3NlIHZhbHVlIGlzIHplcm8gb3JcbiAgICAgIC8vIGdyZWF0ZXIgYW5kIG5vdCBhIE5hTikuXG4gICAgICBpZiAodHlwZW9mIGFyZyAhPT0gJ251bWJlcicgfHwgYXJnIDwgMCB8fCBhcmcgIT09IGFyZylcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlcicpO1xuICAgICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgICB9XG4gIH0pO1xufSBlbHNlIHtcbiAgRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBkZWZhdWx0TWF4TGlzdGVuZXJzO1xufVxuXG4vLyBPYnZpb3VzbHkgbm90IGFsbCBFbWl0dGVycyBzaG91bGQgYmUgbGltaXRlZCB0byAxMC4gVGhpcyBmdW5jdGlvbiBhbGxvd3Ncbi8vIHRoYXQgdG8gYmUgaW5jcmVhc2VkLiBTZXQgdG8gemVybyBmb3IgdW5saW1pdGVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBzZXRNYXhMaXN0ZW5lcnMobikge1xuICBpZiAodHlwZW9mIG4gIT09ICdudW1iZXInIHx8IG4gPCAwIHx8IGlzTmFOKG4pKVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiblwiIGFyZ3VtZW50IG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXInKTtcbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5mdW5jdGlvbiAkZ2V0TWF4TGlzdGVuZXJzKHRoYXQpIHtcbiAgaWYgKHRoYXQuX21heExpc3RlbmVycyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgcmV0dXJuIHRoYXQuX21heExpc3RlbmVycztcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBnZXRNYXhMaXN0ZW5lcnMoKSB7XG4gIHJldHVybiAkZ2V0TWF4TGlzdGVuZXJzKHRoaXMpO1xufTtcblxuLy8gVGhlc2Ugc3RhbmRhbG9uZSBlbWl0KiBmdW5jdGlvbnMgYXJlIHVzZWQgdG8gb3B0aW1pemUgY2FsbGluZyBvZiBldmVudFxuLy8gaGFuZGxlcnMgZm9yIGZhc3QgY2FzZXMgYmVjYXVzZSBlbWl0KCkgaXRzZWxmIG9mdGVuIGhhcyBhIHZhcmlhYmxlIG51bWJlciBvZlxuLy8gYXJndW1lbnRzIGFuZCBjYW4gYmUgZGVvcHRpbWl6ZWQgYmVjYXVzZSBvZiB0aGF0LiBUaGVzZSBmdW5jdGlvbnMgYWx3YXlzIGhhdmVcbi8vIHRoZSBzYW1lIG51bWJlciBvZiBhcmd1bWVudHMgYW5kIHRodXMgZG8gbm90IGdldCBkZW9wdGltaXplZCwgc28gdGhlIGNvZGVcbi8vIGluc2lkZSB0aGVtIGNhbiBleGVjdXRlIGZhc3Rlci5cbmZ1bmN0aW9uIGVtaXROb25lKGhhbmRsZXIsIGlzRm4sIHNlbGYpIHtcbiAgaWYgKGlzRm4pXG4gICAgaGFuZGxlci5jYWxsKHNlbGYpO1xuICBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgbGlzdGVuZXJzW2ldLmNhbGwoc2VsZik7XG4gIH1cbn1cbmZ1bmN0aW9uIGVtaXRPbmUoaGFuZGxlciwgaXNGbiwgc2VsZiwgYXJnMSkge1xuICBpZiAoaXNGbilcbiAgICBoYW5kbGVyLmNhbGwoc2VsZiwgYXJnMSk7XG4gIGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBsaXN0ZW5lcnNbaV0uY2FsbChzZWxmLCBhcmcxKTtcbiAgfVxufVxuZnVuY3Rpb24gZW1pdFR3byhoYW5kbGVyLCBpc0ZuLCBzZWxmLCBhcmcxLCBhcmcyKSB7XG4gIGlmIChpc0ZuKVxuICAgIGhhbmRsZXIuY2FsbChzZWxmLCBhcmcxLCBhcmcyKTtcbiAgZWxzZSB7XG4gICAgdmFyIGxlbiA9IGhhbmRsZXIubGVuZ3RoO1xuICAgIHZhciBsaXN0ZW5lcnMgPSBhcnJheUNsb25lKGhhbmRsZXIsIGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSlcbiAgICAgIGxpc3RlbmVyc1tpXS5jYWxsKHNlbGYsIGFyZzEsIGFyZzIpO1xuICB9XG59XG5mdW5jdGlvbiBlbWl0VGhyZWUoaGFuZGxlciwgaXNGbiwgc2VsZiwgYXJnMSwgYXJnMiwgYXJnMykge1xuICBpZiAoaXNGbilcbiAgICBoYW5kbGVyLmNhbGwoc2VsZiwgYXJnMSwgYXJnMiwgYXJnMyk7XG4gIGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBsaXN0ZW5lcnNbaV0uY2FsbChzZWxmLCBhcmcxLCBhcmcyLCBhcmczKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbWl0TWFueShoYW5kbGVyLCBpc0ZuLCBzZWxmLCBhcmdzKSB7XG4gIGlmIChpc0ZuKVxuICAgIGhhbmRsZXIuYXBwbHkoc2VsZiwgYXJncyk7XG4gIGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBsaXN0ZW5lcnNbaV0uYXBwbHkoc2VsZiwgYXJncyk7XG4gIH1cbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24gZW1pdCh0eXBlKSB7XG4gIHZhciBlciwgaGFuZGxlciwgbGVuLCBhcmdzLCBpLCBldmVudHM7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgaWYgKGV2ZW50cylcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09IG51bGwpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSlcbiAgICAgIGVyID0gYXJndW1lbnRzWzFdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcignVW5oYW5kbGVkIFwiZXJyb3JcIiBldmVudC4gKCcgKyBlciArICcpJyk7XG4gICAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmICghaGFuZGxlcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgdmFyIGlzRm4gPSB0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJztcbiAgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgc3dpdGNoIChsZW4pIHtcbiAgICAgIC8vIGZhc3QgY2FzZXNcbiAgICBjYXNlIDE6XG4gICAgICBlbWl0Tm9uZShoYW5kbGVyLCBpc0ZuLCB0aGlzKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIGVtaXRPbmUoaGFuZGxlciwgaXNGbiwgdGhpcywgYXJndW1lbnRzWzFdKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIGVtaXRUd28oaGFuZGxlciwgaXNGbiwgdGhpcywgYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA0OlxuICAgICAgZW1pdFRocmVlKGhhbmRsZXIsIGlzRm4sIHRoaXMsIGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdLCBhcmd1bWVudHNbM10pO1xuICAgICAgYnJlYWs7XG4gICAgICAvLyBzbG93ZXJcbiAgICBkZWZhdWx0OlxuICAgICAgYXJncyA9IG5ldyBBcnJheShsZW4gLSAxKTtcbiAgICAgIGZvciAoaSA9IDE7IGkgPCBsZW47IGkrKylcbiAgICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgICBlbWl0TWFueShoYW5kbGVyLCBpc0ZuLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKCFldmVudHMpIHtcbiAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cyA9IG9iamVjdENyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyKSB7XG4gICAgICB0YXJnZXQuZW1pdCgnbmV3TGlzdGVuZXInLCB0eXBlLFxuICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmICghZXhpc3RpbmcpIHtcbiAgICAvLyBPcHRpbWl6ZSB0aGUgY2FzZSBvZiBvbmUgbGlzdGVuZXIuIERvbid0IG5lZWQgdGhlIGV4dHJhIGFycmF5IG9iamVjdC5cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9IGxpc3RlbmVyO1xuICAgICsrdGFyZ2V0Ll9ldmVudHNDb3VudDtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGV4aXN0aW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBuZWVkIHRvIGNoYW5nZSB0byBhcnJheS5cbiAgICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID1cbiAgICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgICAgaWYgKHByZXBlbmQpIHtcbiAgICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIGlmICghZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBtID0gJGdldE1heExpc3RlbmVycyh0YXJnZXQpO1xuICAgICAgaWYgKG0gJiYgbSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSkge1xuICAgICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgICB2YXIgdyA9IG5ldyBFcnJvcignUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAnICtcbiAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgXCInICsgU3RyaW5nKHR5cGUpICsgJ1wiIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICdhZGRlZC4gVXNlIGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gJyArXG4gICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQuJyk7XG4gICAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgICB3LmVtaXR0ZXIgPSB0YXJnZXQ7XG4gICAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICAgIGlmICh0eXBlb2YgY29uc29sZSA9PT0gJ29iamVjdCcgJiYgY29uc29sZS53YXJuKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCclczogJXMnLCB3Lm5hbWUsIHcubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyID0gZnVuY3Rpb24gYWRkTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIHRydWUpO1xuICAgIH07XG5cbmZ1bmN0aW9uIG9uY2VXcmFwcGVyKCkge1xuICBpZiAoIXRoaXMuZmlyZWQpIHtcbiAgICB0aGlzLnRhcmdldC5yZW1vdmVMaXN0ZW5lcih0aGlzLnR5cGUsIHRoaXMud3JhcEZuKTtcbiAgICB0aGlzLmZpcmVkID0gdHJ1ZTtcbiAgICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQsIGFyZ3VtZW50c1swXSk7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQsIGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdKTtcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCwgYXJndW1lbnRzWzBdLCBhcmd1bWVudHNbMV0sXG4gICAgICAgICAgICBhcmd1bWVudHNbMl0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7ICsraSlcbiAgICAgICAgICBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB0aGlzLmxpc3RlbmVyLmFwcGx5KHRoaXMudGFyZ2V0LCBhcmdzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gYmluZC5jYWxsKG9uY2VXcmFwcGVyLCBzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJylcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKVxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICB0aGlzLnByZXBlbmRMaXN0ZW5lcih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbi8vIEVtaXRzIGEgJ3JlbW92ZUxpc3RlbmVyJyBldmVudCBpZiBhbmQgb25seSBpZiB0aGUgbGlzdGVuZXIgd2FzIHJlbW92ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgdmFyIGxpc3QsIGV2ZW50cywgcG9zaXRpb24sIGksIG9yaWdpbmFsTGlzdGVuZXI7XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXIgIT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKCFldmVudHMpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBsaXN0ID0gZXZlbnRzW3R5cGVdO1xuICAgICAgaWYgKCFsaXN0KVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IG9iamVjdENyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuXG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSlcbiAgICAgICAgICBldmVudHNbdHlwZV0gPSBsaXN0WzBdO1xuXG4gICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKCFldmVudHMpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoIWV2ZW50cy5yZW1vdmVMaXN0ZW5lcikge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IG9iamVjdENyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdKSB7XG4gICAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgICB0aGlzLl9ldmVudHMgPSBvYmplY3RDcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IG9iamVjdEtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IG9iamVjdENyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgbGlzdGVuZXJzID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgICBpZiAodHlwZW9mIGxpc3RlbmVycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVycyk7XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbmVycykge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoIWV2ZW50cylcbiAgICByZXR1cm4gW107XG5cbiAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG4gIGlmICghZXZsaXN0ZW5lcilcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID8gdW53cmFwTGlzdGVuZXJzKGV2bGlzdGVuZXIpIDogYXJyYXlDbG9uZShldmxpc3RlbmVyLCBldmxpc3RlbmVyLmxlbmd0aCk7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24gbGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgdHJ1ZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJhd0xpc3RlbmVycyA9IGZ1bmN0aW9uIHJhd0xpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24oZW1pdHRlciwgdHlwZSkge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIubGlzdGVuZXJDb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBlbWl0dGVyLmxpc3RlbmVyQ291bnQodHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGxpc3RlbmVyQ291bnQuY2FsbChlbWl0dGVyLCB0eXBlKTtcbiAgfVxufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50ID0gbGlzdGVuZXJDb3VudDtcbmZ1bmN0aW9uIGxpc3RlbmVyQ291bnQodHlwZSkge1xuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0Lm93bktleXModGhpcy5fZXZlbnRzKSA6IFtdO1xufTtcblxuLy8gQWJvdXQgMS41eCBmYXN0ZXIgdGhhbiB0aGUgdHdvLWFyZyB2ZXJzaW9uIG9mIEFycmF5I3NwbGljZSgpLlxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAodmFyIGkgPSBpbmRleCwgayA9IGkgKyAxLCBuID0gbGlzdC5sZW5ndGg7IGsgPCBuOyBpICs9IDEsIGsgKz0gMSlcbiAgICBsaXN0W2ldID0gbGlzdFtrXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gYXJyYXlDbG9uZShhcnIsIG4pIHtcbiAgdmFyIGNvcHkgPSBuZXcgQXJyYXkobik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKVxuICAgIGNvcHlbaV0gPSBhcnJbaV07XG4gIHJldHVybiBjb3B5O1xufVxuXG5mdW5jdGlvbiB1bndyYXBMaXN0ZW5lcnMoYXJyKSB7XG4gIHZhciByZXQgPSBuZXcgQXJyYXkoYXJyLmxlbmd0aCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcmV0Lmxlbmd0aDsgKytpKSB7XG4gICAgcmV0W2ldID0gYXJyW2ldLmxpc3RlbmVyIHx8IGFycltpXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvYmplY3RDcmVhdGVQb2x5ZmlsbChwcm90bykge1xuICB2YXIgRiA9IGZ1bmN0aW9uKCkge307XG4gIEYucHJvdG90eXBlID0gcHJvdG87XG4gIHJldHVybiBuZXcgRjtcbn1cbmZ1bmN0aW9uIG9iamVjdEtleXNQb2x5ZmlsbChvYmopIHtcbiAgdmFyIGtleXMgPSBbXTtcbiAgZm9yICh2YXIgayBpbiBvYmopIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrKSkge1xuICAgIGtleXMucHVzaChrKTtcbiAgfVxuICByZXR1cm4gaztcbn1cbmZ1bmN0aW9uIGZ1bmN0aW9uQmluZFBvbHlmaWxsKGNvbnRleHQpIHtcbiAgdmFyIGZuID0gdGhpcztcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZm4uYXBwbHkoY29udGV4dCwgYXJndW1lbnRzKTtcbiAgfTtcbn1cbiIsIi8qZXNsaW50IG5ldy1jYXA6MCovXG52YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG5cbm1vZHVsZS5leHBvcnRzID0gZmxhdHRlblZlcnRleERhdGFcblxuZnVuY3Rpb24gZmxhdHRlblZlcnRleERhdGEgKGRhdGEsIG91dHB1dCwgb2Zmc2V0KSB7XG4gIGlmICghZGF0YSkgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGRhdGEgYXMgZmlyc3QgcGFyYW1ldGVyJylcbiAgb2Zmc2V0ID0gKyhvZmZzZXQgfHwgMCkgfCAwXG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkgJiYgKGRhdGFbMF0gJiYgdHlwZW9mIGRhdGFbMF1bMF0gPT09ICdudW1iZXInKSkge1xuICAgIHZhciBkaW0gPSBkYXRhWzBdLmxlbmd0aFxuICAgIHZhciBsZW5ndGggPSBkYXRhLmxlbmd0aCAqIGRpbVxuICAgIHZhciBpLCBqLCBrLCBsXG5cbiAgICAvLyBubyBvdXRwdXQgc3BlY2lmaWVkLCBjcmVhdGUgYSBuZXcgdHlwZWQgYXJyYXlcbiAgICBpZiAoIW91dHB1dCB8fCB0eXBlb2Ygb3V0cHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgb3V0cHV0ID0gbmV3IChkdHlwZShvdXRwdXQgfHwgJ2Zsb2F0MzInKSkobGVuZ3RoICsgb2Zmc2V0KVxuICAgIH1cblxuICAgIHZhciBkc3RMZW5ndGggPSBvdXRwdXQubGVuZ3RoIC0gb2Zmc2V0XG4gICAgaWYgKGxlbmd0aCAhPT0gZHN0TGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NvdXJjZSBsZW5ndGggJyArIGxlbmd0aCArICcgKCcgKyBkaW0gKyAneCcgKyBkYXRhLmxlbmd0aCArICcpJyArXG4gICAgICAgICcgZG9lcyBub3QgbWF0Y2ggZGVzdGluYXRpb24gbGVuZ3RoICcgKyBkc3RMZW5ndGgpXG4gICAgfVxuXG4gICAgZm9yIChpID0gMCwgayA9IG9mZnNldDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAoaiA9IDA7IGogPCBkaW07IGorKykge1xuICAgICAgICBvdXRwdXRbaysrXSA9IGRhdGFbaV1bal0gPT09IG51bGwgPyBOYU4gOiBkYXRhW2ldW2pdXG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICghb3V0cHV0IHx8IHR5cGVvZiBvdXRwdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBubyBvdXRwdXQsIGNyZWF0ZSBhIG5ldyBvbmVcbiAgICAgIHZhciBDdG9yID0gZHR5cGUob3V0cHV0IHx8ICdmbG9hdDMyJylcblxuICAgICAgLy8gaGFuZGxlIGFycmF5cyBzZXBhcmF0ZWx5IGR1ZSB0byBwb3NzaWJsZSBudWxsc1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkgfHwgb3V0cHV0ID09PSAnYXJyYXknKSB7XG4gICAgICAgIG91dHB1dCA9IG5ldyBDdG9yKGRhdGEubGVuZ3RoICsgb2Zmc2V0KVxuICAgICAgICBmb3IgKGkgPSAwLCBrID0gb2Zmc2V0LCBsID0gb3V0cHV0Lmxlbmd0aDsgayA8IGw7IGsrKywgaSsrKSB7XG4gICAgICAgICAgb3V0cHV0W2tdID0gZGF0YVtpXSA9PT0gbnVsbCA/IE5hTiA6IGRhdGFbaV1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKG9mZnNldCA9PT0gMCkge1xuICAgICAgICAgIG91dHB1dCA9IG5ldyBDdG9yKGRhdGEpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0cHV0ID0gbmV3IEN0b3IoZGF0YS5sZW5ndGggKyBvZmZzZXQpXG5cbiAgICAgICAgICBvdXRwdXQuc2V0KGRhdGEsIG9mZnNldClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBzdG9yZSBvdXRwdXQgaW4gZXhpc3RpbmcgYXJyYXlcbiAgICAgIG91dHB1dC5zZXQoZGF0YSwgb2Zmc2V0KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXRcbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgfVxuICAgIH0pO1xuICB9O1xufSBlbHNlIHtcbiAgLy8gb2xkIHNjaG9vbCBzaGltIGZvciBvbGQgYnJvd3NlcnNcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgIGN0b3IucHJvdG90eXBlID0gbmV3IFRlbXBDdG9yKClcbiAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgfVxufVxuIiwiLyohXG4gKiBEZXRlcm1pbmUgaWYgYW4gb2JqZWN0IGlzIGEgQnVmZmVyXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG4vLyBUaGUgX2lzQnVmZmVyIGNoZWNrIGlzIGZvciBTYWZhcmkgNS03IHN1cHBvcnQsIGJlY2F1c2UgaXQncyBtaXNzaW5nXG4vLyBPYmplY3QucHJvdG90eXBlLmNvbnN0cnVjdG9yLiBSZW1vdmUgdGhpcyBldmVudHVhbGx5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIChpc0J1ZmZlcihvYmopIHx8IGlzU2xvd0J1ZmZlcihvYmopIHx8ICEhb2JqLl9pc0J1ZmZlcilcbn1cblxuZnVuY3Rpb24gaXNCdWZmZXIgKG9iaikge1xuICByZXR1cm4gISFvYmouY29uc3RydWN0b3IgJiYgdHlwZW9mIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIob2JqKVxufVxuXG4vLyBGb3IgTm9kZSB2MC4xMCBzdXBwb3J0LiBSZW1vdmUgdGhpcyBldmVudHVhbGx5LlxuZnVuY3Rpb24gaXNTbG93QnVmZmVyIChvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmoucmVhZEZsb2F0TEUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5zbGljZSA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0J1ZmZlcihvYmouc2xpY2UoMCwgMCkpXG59XG4iLCJ2YXIgd29yZFdyYXAgPSByZXF1aXJlKCd3b3JkLXdyYXBwZXInKVxudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKVxudmFyIG51bWJlciA9IHJlcXVpcmUoJ2FzLW51bWJlcicpXG5cbnZhciBYX0hFSUdIVFMgPSBbJ3gnLCAnZScsICdhJywgJ28nLCAnbicsICdzJywgJ3InLCAnYycsICd1JywgJ20nLCAndicsICd3JywgJ3onXVxudmFyIE1fV0lEVEhTID0gWydtJywgJ3cnXVxudmFyIENBUF9IRUlHSFRTID0gWydIJywgJ0knLCAnTicsICdFJywgJ0YnLCAnSycsICdMJywgJ1QnLCAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onXVxuXG5cbnZhciBUQUJfSUQgPSAnXFx0Jy5jaGFyQ29kZUF0KDApXG52YXIgU1BBQ0VfSUQgPSAnICcuY2hhckNvZGVBdCgwKVxudmFyIEFMSUdOX0xFRlQgPSAwLCBcbiAgICBBTElHTl9DRU5URVIgPSAxLCBcbiAgICBBTElHTl9SSUdIVCA9IDJcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVMYXlvdXQob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dExheW91dChvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRMYXlvdXQob3B0KSB7XG4gIHRoaXMuZ2x5cGhzID0gW11cbiAgdGhpcy5fbWVhc3VyZSA9IHRoaXMuY29tcHV0ZU1ldHJpY3MuYmluZCh0aGlzKVxuICB0aGlzLnVwZGF0ZShvcHQpXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKG9wdCkge1xuICBvcHQgPSB4dGVuZCh7XG4gICAgbWVhc3VyZTogdGhpcy5fbWVhc3VyZVxuICB9LCBvcHQpXG4gIHRoaXMuX29wdCA9IG9wdFxuICB0aGlzLl9vcHQudGFiU2l6ZSA9IG51bWJlcih0aGlzLl9vcHQudGFiU2l6ZSwgNClcblxuICBpZiAoIW9wdC5mb250KVxuICAgIHRocm93IG5ldyBFcnJvcignbXVzdCBwcm92aWRlIGEgdmFsaWQgYml0bWFwIGZvbnQnKVxuXG4gIHZhciBnbHlwaHMgPSB0aGlzLmdseXBoc1xuICB2YXIgdGV4dCA9IG9wdC50ZXh0fHwnJyBcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuICB0aGlzLl9zZXR1cFNwYWNlR2x5cGhzKGZvbnQpXG4gIFxuICB2YXIgbGluZXMgPSB3b3JkV3JhcC5saW5lcyh0ZXh0LCBvcHQpXG4gIHZhciBtaW5XaWR0aCA9IG9wdC53aWR0aCB8fCAwXG5cbiAgLy9jbGVhciBnbHlwaHNcbiAgZ2x5cGhzLmxlbmd0aCA9IDBcblxuICAvL2dldCBtYXggbGluZSB3aWR0aFxuICB2YXIgbWF4TGluZVdpZHRoID0gbGluZXMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGxpbmUpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgocHJldiwgbGluZS53aWR0aCwgbWluV2lkdGgpXG4gIH0sIDApXG5cbiAgLy90aGUgcGVuIHBvc2l0aW9uXG4gIHZhciB4ID0gMFxuICB2YXIgeSA9IDBcbiAgdmFyIGxpbmVIZWlnaHQgPSBudW1iZXIob3B0LmxpbmVIZWlnaHQsIGZvbnQuY29tbW9uLmxpbmVIZWlnaHQpXG4gIHZhciBiYXNlbGluZSA9IGZvbnQuY29tbW9uLmJhc2VcbiAgdmFyIGRlc2NlbmRlciA9IGxpbmVIZWlnaHQtYmFzZWxpbmVcbiAgdmFyIGxldHRlclNwYWNpbmcgPSBvcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBoZWlnaHQgPSBsaW5lSGVpZ2h0ICogbGluZXMubGVuZ3RoIC0gZGVzY2VuZGVyXG4gIHZhciBhbGlnbiA9IGdldEFsaWduVHlwZSh0aGlzLl9vcHQuYWxpZ24pXG5cbiAgLy9kcmF3IHRleHQgYWxvbmcgYmFzZWxpbmVcbiAgeSAtPSBoZWlnaHRcbiAgXG4gIC8vdGhlIG1ldHJpY3MgZm9yIHRoaXMgdGV4dCBsYXlvdXRcbiAgdGhpcy5fd2lkdGggPSBtYXhMaW5lV2lkdGhcbiAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0XG4gIHRoaXMuX2Rlc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBiYXNlbGluZVxuICB0aGlzLl9iYXNlbGluZSA9IGJhc2VsaW5lXG4gIHRoaXMuX3hIZWlnaHQgPSBnZXRYSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2NhcEhlaWdodCA9IGdldENhcEhlaWdodChmb250KVxuICB0aGlzLl9saW5lSGVpZ2h0ID0gbGluZUhlaWdodFxuICB0aGlzLl9hc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBkZXNjZW5kZXIgLSB0aGlzLl94SGVpZ2h0XG4gICAgXG4gIC8vbGF5b3V0IGVhY2ggZ2x5cGhcbiAgdmFyIHNlbGYgPSB0aGlzXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSwgbGluZUluZGV4KSB7XG4gICAgdmFyIHN0YXJ0ID0gbGluZS5zdGFydFxuICAgIHZhciBlbmQgPSBsaW5lLmVuZFxuICAgIHZhciBsaW5lV2lkdGggPSBsaW5lLndpZHRoXG4gICAgdmFyIGxhc3RHbHlwaFxuICAgIFxuICAgIC8vZm9yIGVhY2ggZ2x5cGggaW4gdGhhdCBsaW5lLi4uXG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQ7IGkrKykge1xuICAgICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgICB2YXIgZ2x5cGggPSBzZWxmLmdldEdseXBoKGZvbnQsIGlkKVxuICAgICAgaWYgKGdseXBoKSB7XG4gICAgICAgIGlmIChsYXN0R2x5cGgpIFxuICAgICAgICAgIHggKz0gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKVxuXG4gICAgICAgIHZhciB0eCA9IHhcbiAgICAgICAgaWYgKGFsaWduID09PSBBTElHTl9DRU5URVIpIFxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKS8yXG4gICAgICAgIGVsc2UgaWYgKGFsaWduID09PSBBTElHTl9SSUdIVClcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aClcblxuICAgICAgICBnbHlwaHMucHVzaCh7XG4gICAgICAgICAgcG9zaXRpb246IFt0eCwgeV0sXG4gICAgICAgICAgZGF0YTogZ2x5cGgsXG4gICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgbGluZTogbGluZUluZGV4XG4gICAgICAgIH0pICBcblxuICAgICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgICAgeCArPSBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL25leHQgbGluZSBkb3duXG4gICAgeSArPSBsaW5lSGVpZ2h0XG4gICAgeCA9IDBcbiAgfSlcbiAgdGhpcy5fbGluZXNUb3RhbCA9IGxpbmVzLmxlbmd0aDtcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuX3NldHVwU3BhY2VHbHlwaHMgPSBmdW5jdGlvbihmb250KSB7XG4gIC8vVGhlc2UgYXJlIGZhbGxiYWNrcywgd2hlbiB0aGUgZm9udCBkb2Vzbid0IGluY2x1ZGVcbiAgLy8nICcgb3IgJ1xcdCcgZ2x5cGhzXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IG51bGxcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IG51bGxcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuXG5cbiAgLy90cnkgdG8gZ2V0IHNwYWNlIGdseXBoXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlICdtJyBvciAndycgZ2x5cGhzXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlIGZpcnN0IGdseXBoIGF2YWlsYWJsZVxuICB2YXIgc3BhY2UgPSBnZXRHbHlwaEJ5SWQoZm9udCwgU1BBQ0VfSUQpIFxuICAgICAgICAgIHx8IGdldE1HbHlwaChmb250KSBcbiAgICAgICAgICB8fCBmb250LmNoYXJzWzBdXG5cbiAgLy9hbmQgY3JlYXRlIGEgZmFsbGJhY2sgZm9yIHRhYlxuICB2YXIgdGFiV2lkdGggPSB0aGlzLl9vcHQudGFiU2l6ZSAqIHNwYWNlLnhhZHZhbmNlXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IHNwYWNlXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSB4dGVuZChzcGFjZSwge1xuICAgIHg6IDAsIHk6IDAsIHhhZHZhbmNlOiB0YWJXaWR0aCwgaWQ6IFRBQl9JRCwgXG4gICAgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDAsIGhlaWdodDogMFxuICB9KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5nZXRHbHlwaCA9IGZ1bmN0aW9uKGZvbnQsIGlkKSB7XG4gIHZhciBnbHlwaCA9IGdldEdseXBoQnlJZChmb250LCBpZClcbiAgaWYgKGdseXBoKVxuICAgIHJldHVybiBnbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gVEFCX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tUYWJHbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gU1BBQ0VfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGhcbiAgcmV0dXJuIG51bGxcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuY29tcHV0ZU1ldHJpY3MgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICB2YXIgbGV0dGVyU3BhY2luZyA9IHRoaXMuX29wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGZvbnQgPSB0aGlzLl9vcHQuZm9udFxuICB2YXIgY3VyUGVuID0gMFxuICB2YXIgY3VyV2lkdGggPSAwXG4gIHZhciBjb3VudCA9IDBcbiAgdmFyIGdseXBoXG4gIHZhciBsYXN0R2x5cGhcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgZW5kOiBzdGFydCxcbiAgICAgIHdpZHRoOiAwXG4gICAgfVxuICB9XG5cbiAgZW5kID0gTWF0aC5taW4odGV4dC5sZW5ndGgsIGVuZClcbiAgZm9yICh2YXIgaT1zdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgdmFyIGdseXBoID0gdGhpcy5nZXRHbHlwaChmb250LCBpZClcblxuICAgIGlmIChnbHlwaCkge1xuICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICB2YXIgeG9mZiA9IGdseXBoLnhvZmZzZXRcbiAgICAgIHZhciBrZXJuID0gbGFzdEdseXBoID8gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKSA6IDBcbiAgICAgIGN1clBlbiArPSBrZXJuXG5cbiAgICAgIHZhciBuZXh0UGVuID0gY3VyUGVuICsgZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICB2YXIgbmV4dFdpZHRoID0gY3VyUGVuICsgZ2x5cGgud2lkdGhcblxuICAgICAgLy93ZSd2ZSBoaXQgb3VyIGxpbWl0OyB3ZSBjYW4ndCBtb3ZlIG9udG8gdGhlIG5leHQgZ2x5cGhcbiAgICAgIGlmIChuZXh0V2lkdGggPj0gd2lkdGggfHwgbmV4dFBlbiA+PSB3aWR0aClcbiAgICAgICAgYnJlYWtcblxuICAgICAgLy9vdGhlcndpc2UgY29udGludWUgYWxvbmcgb3VyIGxpbmVcbiAgICAgIGN1clBlbiA9IG5leHRQZW5cbiAgICAgIGN1cldpZHRoID0gbmV4dFdpZHRoXG4gICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgIH1cbiAgICBjb3VudCsrXG4gIH1cbiAgXG4gIC8vbWFrZSBzdXJlIHJpZ2h0bW9zdCBlZGdlIGxpbmVzIHVwIHdpdGggcmVuZGVyZWQgZ2x5cGhzXG4gIGlmIChsYXN0R2x5cGgpXG4gICAgY3VyV2lkdGggKz0gbGFzdEdseXBoLnhvZmZzZXRcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbmQ6IHN0YXJ0ICsgY291bnQsXG4gICAgd2lkdGg6IGN1cldpZHRoXG4gIH1cbn1cblxuLy9nZXR0ZXJzIGZvciB0aGUgcHJpdmF0ZSB2YXJzXG47Wyd3aWR0aCcsICdoZWlnaHQnLCBcbiAgJ2Rlc2NlbmRlcicsICdhc2NlbmRlcicsXG4gICd4SGVpZ2h0JywgJ2Jhc2VsaW5lJyxcbiAgJ2NhcEhlaWdodCcsXG4gICdsaW5lSGVpZ2h0JyBdLmZvckVhY2goYWRkR2V0dGVyKVxuXG5mdW5jdGlvbiBhZGRHZXR0ZXIobmFtZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVGV4dExheW91dC5wcm90b3R5cGUsIG5hbWUsIHtcbiAgICBnZXQ6IHdyYXBwZXIobmFtZSksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pXG59XG5cbi8vY3JlYXRlIGxvb2t1cHMgZm9yIHByaXZhdGUgdmFyc1xuZnVuY3Rpb24gd3JhcHBlcihuYW1lKSB7XG4gIHJldHVybiAobmV3IEZ1bmN0aW9uKFtcbiAgICAncmV0dXJuIGZ1bmN0aW9uICcrbmFtZSsnKCkgeycsXG4gICAgJyAgcmV0dXJuIHRoaXMuXycrbmFtZSxcbiAgICAnfSdcbiAgXS5qb2luKCdcXG4nKSkpKClcbn1cblxuZnVuY3Rpb24gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKSB7XG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBnbHlwaElkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICBpZiAoZ2x5cGhJZHggPj0gMClcbiAgICByZXR1cm4gZm9udC5jaGFyc1tnbHlwaElkeF1cbiAgcmV0dXJuIG51bGxcbn1cblxuZnVuY3Rpb24gZ2V0WEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxYX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBYX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRNR2x5cGgoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8TV9XSURUSFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBNX1dJRFRIU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0Q2FwSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPENBUF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gQ0FQX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRLZXJuaW5nKGZvbnQsIGxlZnQsIHJpZ2h0KSB7XG4gIGlmICghZm9udC5rZXJuaW5ncyB8fCBmb250Lmtlcm5pbmdzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gMFxuXG4gIHZhciB0YWJsZSA9IGZvbnQua2VybmluZ3NcbiAgZm9yICh2YXIgaT0wOyBpPHRhYmxlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtlcm4gPSB0YWJsZVtpXVxuICAgIGlmIChrZXJuLmZpcnN0ID09PSBsZWZ0ICYmIGtlcm4uc2Vjb25kID09PSByaWdodClcbiAgICAgIHJldHVybiBrZXJuLmFtb3VudFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEFsaWduVHlwZShhbGlnbikge1xuICBpZiAoYWxpZ24gPT09ICdjZW50ZXInKVxuICAgIHJldHVybiBBTElHTl9DRU5URVJcbiAgZWxzZSBpZiAoYWxpZ24gPT09ICdyaWdodCcpXG4gICAgcmV0dXJuIEFMSUdOX1JJR0hUXG4gIHJldHVybiBBTElHTl9MRUZUXG59XG5cbmZ1bmN0aW9uIGZpbmRDaGFyIChhcnJheSwgdmFsdWUsIHN0YXJ0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMFxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnJheVtpXS5pZCA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG4gIHJldHVybiAtMVxufSIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlQk1Gb250QXNjaWkoZGF0YSkge1xuICBpZiAoIWRhdGEpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIHByb3ZpZGVkJylcbiAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKS50cmltKClcblxuICB2YXIgb3V0cHV0ID0ge1xuICAgIHBhZ2VzOiBbXSxcbiAgICBjaGFyczogW10sXG4gICAga2VybmluZ3M6IFtdXG4gIH1cblxuICB2YXIgbGluZXMgPSBkYXRhLnNwbGl0KC9cXHJcXG4/fFxcbi9nKVxuXG4gIGlmIChsaW5lcy5sZW5ndGggPT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIGluIEJNRm9udCBmaWxlJylcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxpbmVEYXRhID0gc3BsaXRMaW5lKGxpbmVzW2ldLCBpKVxuICAgIGlmICghbGluZURhdGEpIC8vc2tpcCBlbXB0eSBsaW5lc1xuICAgICAgY29udGludWVcblxuICAgIGlmIChsaW5lRGF0YS5rZXkgPT09ICdwYWdlJykge1xuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmlkICE9PSAnbnVtYmVyJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGlkPU4nKVxuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmZpbGUgIT09ICdzdHJpbmcnKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgZmlsZT1cInBhdGhcIicpXG4gICAgICBvdXRwdXQucGFnZXNbbGluZURhdGEuZGF0YS5pZF0gPSBsaW5lRGF0YS5kYXRhLmZpbGVcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXJzJyB8fCBsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5ncycpIHtcbiAgICAgIC8vLi4uIGRvIG5vdGhpbmcgZm9yIHRoZXNlIHR3byAuLi5cbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXInKSB7XG4gICAgICBvdXRwdXQuY2hhcnMucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAna2VybmluZycpIHtcbiAgICAgIG91dHB1dC5rZXJuaW5ncy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dFtsaW5lRGF0YS5rZXldID0gbGluZURhdGEuZGF0YVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXRcbn1cblxuZnVuY3Rpb24gc3BsaXRMaW5lKGxpbmUsIGlkeCkge1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9cXHQrL2csICcgJykudHJpbSgpXG4gIGlmICghbGluZSlcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBzcGFjZSA9IGxpbmUuaW5kZXhPZignICcpXG4gIGlmIChzcGFjZSA9PT0gLTEpIFxuICAgIHRocm93IG5ldyBFcnJvcihcIm5vIG5hbWVkIHJvdyBhdCBsaW5lIFwiICsgaWR4KVxuXG4gIHZhciBrZXkgPSBsaW5lLnN1YnN0cmluZygwLCBzcGFjZSlcblxuICBsaW5lID0gbGluZS5zdWJzdHJpbmcoc3BhY2UgKyAxKVxuICAvL2NsZWFyIFwibGV0dGVyXCIgZmllbGQgYXMgaXQgaXMgbm9uLXN0YW5kYXJkIGFuZFxuICAvL3JlcXVpcmVzIGFkZGl0aW9uYWwgY29tcGxleGl0eSB0byBwYXJzZSBcIiAvID0gc3ltYm9sc1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9sZXR0ZXI9W1xcJ1xcXCJdXFxTK1tcXCdcXFwiXS9naSwgJycpICBcbiAgbGluZSA9IGxpbmUuc3BsaXQoXCI9XCIpXG4gIGxpbmUgPSBsaW5lLm1hcChmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gc3RyLnRyaW0oKS5tYXRjaCgoLyhcIi4qP1wifFteXCJcXHNdKykrKD89XFxzKnxcXHMqJCkvZykpXG4gIH0pXG5cbiAgdmFyIGRhdGEgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZHQgPSBsaW5lW2ldXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMF0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChpID09PSBsaW5lLmxlbmd0aCAtIDEpIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMV0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgdmFyIG91dCA9IHtcbiAgICBrZXk6IGtleSxcbiAgICBkYXRhOiB7fVxuICB9XG5cbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICBvdXQuZGF0YVt2LmtleV0gPSB2LmRhdGE7XG4gIH0pXG5cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiBwYXJzZURhdGEoZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFwiXCJcblxuICBpZiAoZGF0YS5pbmRleE9mKCdcIicpID09PSAwIHx8IGRhdGEuaW5kZXhPZihcIidcIikgPT09IDApXG4gICAgcmV0dXJuIGRhdGEuc3Vic3RyaW5nKDEsIGRhdGEubGVuZ3RoIC0gMSlcbiAgaWYgKGRhdGEuaW5kZXhPZignLCcpICE9PSAtMSlcbiAgICByZXR1cm4gcGFyc2VJbnRMaXN0KGRhdGEpXG4gIHJldHVybiBwYXJzZUludChkYXRhLCAxMClcbn1cblxuZnVuY3Rpb24gcGFyc2VJbnRMaXN0KGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24odmFsKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbCwgMTApXG4gIH0pXG59IiwidmFyIGR0eXBlID0gcmVxdWlyZSgnZHR5cGUnKVxudmFyIGFuQXJyYXkgPSByZXF1aXJlKCdhbi1hcnJheScpXG52YXIgaXNCdWZmZXIgPSByZXF1aXJlKCdpcy1idWZmZXInKVxuXG52YXIgQ1cgPSBbMCwgMiwgM11cbnZhciBDQ1cgPSBbMiwgMSwgM11cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVRdWFkRWxlbWVudHMoYXJyYXksIG9wdCkge1xuICAgIC8vaWYgdXNlciBkaWRuJ3Qgc3BlY2lmeSBhbiBvdXRwdXQgYXJyYXlcbiAgICBpZiAoIWFycmF5IHx8ICEoYW5BcnJheShhcnJheSkgfHwgaXNCdWZmZXIoYXJyYXkpKSkge1xuICAgICAgICBvcHQgPSBhcnJheSB8fCB7fVxuICAgICAgICBhcnJheSA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdCA9PT0gJ251bWJlcicpIC8vYmFja3dhcmRzLWNvbXBhdGlibGVcbiAgICAgICAgb3B0ID0geyBjb3VudDogb3B0IH1cbiAgICBlbHNlXG4gICAgICAgIG9wdCA9IG9wdCB8fCB7fVxuXG4gICAgdmFyIHR5cGUgPSB0eXBlb2Ygb3B0LnR5cGUgPT09ICdzdHJpbmcnID8gb3B0LnR5cGUgOiAndWludDE2J1xuICAgIHZhciBjb3VudCA9IHR5cGVvZiBvcHQuY291bnQgPT09ICdudW1iZXInID8gb3B0LmNvdW50IDogMVxuICAgIHZhciBzdGFydCA9IChvcHQuc3RhcnQgfHwgMCkgXG5cbiAgICB2YXIgZGlyID0gb3B0LmNsb2Nrd2lzZSAhPT0gZmFsc2UgPyBDVyA6IENDVyxcbiAgICAgICAgYSA9IGRpclswXSwgXG4gICAgICAgIGIgPSBkaXJbMV0sXG4gICAgICAgIGMgPSBkaXJbMl1cblxuICAgIHZhciBudW1JbmRpY2VzID0gY291bnQgKiA2XG5cbiAgICB2YXIgaW5kaWNlcyA9IGFycmF5IHx8IG5ldyAoZHR5cGUodHlwZSkpKG51bUluZGljZXMpXG4gICAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgbnVtSW5kaWNlczsgaSArPSA2LCBqICs9IDQpIHtcbiAgICAgICAgdmFyIHggPSBpICsgc3RhcnRcbiAgICAgICAgaW5kaWNlc1t4ICsgMF0gPSBqICsgMFxuICAgICAgICBpbmRpY2VzW3ggKyAxXSA9IGogKyAxXG4gICAgICAgIGluZGljZXNbeCArIDJdID0gaiArIDJcbiAgICAgICAgaW5kaWNlc1t4ICsgM10gPSBqICsgYVxuICAgICAgICBpbmRpY2VzW3ggKyA0XSA9IGogKyBiXG4gICAgICAgIGluZGljZXNbeCArIDVdID0gaiArIGNcbiAgICB9XG4gICAgcmV0dXJuIGluZGljZXNcbn0iLCJ2YXIgY3JlYXRlTGF5b3V0ID0gcmVxdWlyZSgnbGF5b3V0LWJtZm9udC10ZXh0JylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBjcmVhdGVJbmRpY2VzID0gcmVxdWlyZSgncXVhZC1pbmRpY2VzJylcbnZhciBidWZmZXIgPSByZXF1aXJlKCd0aHJlZS1idWZmZXItdmVydGV4LWRhdGEnKVxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIEJhc2UuY2FsbCh0aGlzKVxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IGFzc2lnbih7fSwgdGhpcy5fb3B0LCBvcHQpXG5cbiAgaWYgKCFvcHQuZm9udCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3BlY2lmeSBhIHsgZm9udCB9IGluIG9wdGlvbnMnKVxuICB9XG5cbiAgdGhpcy5sYXlvdXQgPSBjcmVhdGVMYXlvdXQob3B0KVxuXG4gIC8vIGdldCB2ZWMyIHRleGNvb3Jkc1xuICB2YXIgZmxpcFkgPSBvcHQuZmxpcFkgIT09IGZhbHNlXG5cbiAgLy8gdGhlIGRlc2lyZWQgQk1Gb250IGRhdGFcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuXG4gIC8vIGRldGVybWluZSB0ZXh0dXJlIHNpemUgZnJvbSBmb250IGZpbGVcbiAgdmFyIHRleFdpZHRoID0gZm9udC5jb21tb24uc2NhbGVXXG4gIHZhciB0ZXhIZWlnaHQgPSBmb250LmNvbW1vbi5zY2FsZUhcblxuICAvLyBnZXQgdmlzaWJsZSBnbHlwaHNcbiAgdmFyIGdseXBocyA9IHRoaXMubGF5b3V0LmdseXBocy5maWx0ZXIoZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICByZXR1cm4gYml0bWFwLndpZHRoICogYml0bWFwLmhlaWdodCA+IDBcbiAgfSlcblxuICAvLyBwcm92aWRlIHZpc2libGUgZ2x5cGhzIGZvciBjb252ZW5pZW5jZVxuICB0aGlzLnZpc2libGVHbHlwaHMgPSBnbHlwaHNcblxuICAvLyBnZXQgY29tbW9uIHZlcnRleCBkYXRhXG4gIHZhciBwb3NpdGlvbnMgPSB2ZXJ0aWNlcy5wb3NpdGlvbnMoZ2x5cGhzKVxuICB2YXIgdXZzID0gdmVydGljZXMudXZzKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpXG4gIHZhciBpbmRpY2VzID0gY3JlYXRlSW5kaWNlcyh7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIGJ1ZmZlci5pbmRleCh0aGlzLCBpbmRpY2VzLCAxLCAndWludDE2JylcbiAgYnVmZmVyLmF0dHIodGhpcywgJ3Bvc2l0aW9uJywgcG9zaXRpb25zLCAyKVxuICBidWZmZXIuYXR0cih0aGlzLCAndXYnLCB1dnMsIDIpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICB2YXIgcGFnZXMgPSB2ZXJ0aWNlcy5wYWdlcyhnbHlwaHMpXG4gICAgLy8gZW5hYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICBidWZmZXIuYXR0cih0aGlzLCAncGFnZScsIHBhZ2VzLCAxKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIGZsYXR0ZW4gPSByZXF1aXJlKCdmbGF0dGVuLXZlcnRleC1kYXRhJylcbnZhciB3YXJuZWQgPSBmYWxzZTtcblxubW9kdWxlLmV4cG9ydHMuYXR0ciA9IHNldEF0dHJpYnV0ZVxubW9kdWxlLmV4cG9ydHMuaW5kZXggPSBzZXRJbmRleFxuXG5mdW5jdGlvbiBzZXRJbmRleCAoZ2VvbWV0cnksIGRhdGEsIGl0ZW1TaXplLCBkdHlwZSkge1xuICBpZiAodHlwZW9mIGl0ZW1TaXplICE9PSAnbnVtYmVyJykgaXRlbVNpemUgPSAxXG4gIGlmICh0eXBlb2YgZHR5cGUgIT09ICdzdHJpbmcnKSBkdHlwZSA9ICd1aW50MTYnXG4gIGdlb21ldHJ5LnNldEluZGV4KG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoZGF0YSwgaXRlbVNpemUpKTsgcmV0dXJuOyAvLyBzanB0XG5cbiAgdmFyIGlzUjY5ID0gIWdlb21ldHJ5LmluZGV4ICYmIHR5cGVvZiBnZW9tZXRyeS5zZXRJbmRleCAhPT0gJ2Z1bmN0aW9uJ1xuICB2YXIgYXR0cmliID0gaXNSNjkgPyBnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ2luZGV4JykgOiBnZW9tZXRyeS5pbmRleFxuICB2YXIgbmV3QXR0cmliID0gdXBkYXRlQXR0cmlidXRlKGF0dHJpYiwgZGF0YSwgaXRlbVNpemUsIGR0eXBlKVxuICBpZiAobmV3QXR0cmliKSB7XG4gICAgaWYgKGlzUjY5KSBnZW9tZXRyeS5hZGRBdHRyaWJ1dGUoJ2luZGV4JywgbmV3QXR0cmliKVxuICAgIGVsc2UgZ2VvbWV0cnkuaW5kZXggPSBuZXdBdHRyaWJcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXRBdHRyaWJ1dGUgKGdlb21ldHJ5LCBrZXksIGRhdGEsIGl0ZW1TaXplLCBkdHlwZSkge1xuICBpZiAodHlwZW9mIGl0ZW1TaXplICE9PSAnbnVtYmVyJykgaXRlbVNpemUgPSAzXG4gIGlmICh0eXBlb2YgZHR5cGUgIT09ICdzdHJpbmcnKSBkdHlwZSA9ICdmbG9hdDMyJ1xuICBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoa2V5LCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGRhdGEsIGl0ZW1TaXplKSk7IHJldHVybjsgLy8gc2pwdFxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSAmJlxuICAgIEFycmF5LmlzQXJyYXkoZGF0YVswXSkgJiZcbiAgICBkYXRhWzBdLmxlbmd0aCAhPT0gaXRlbVNpemUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05lc3RlZCB2ZXJ0ZXggYXJyYXkgaGFzIHVuZXhwZWN0ZWQgc2l6ZTsgZXhwZWN0ZWQgJyArXG4gICAgICBpdGVtU2l6ZSArICcgYnV0IGZvdW5kICcgKyBkYXRhWzBdLmxlbmd0aClcbiAgfVxuXG4gIHZhciBhdHRyaWIgPSBnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoa2V5KVxuICB2YXIgbmV3QXR0cmliID0gdXBkYXRlQXR0cmlidXRlKGF0dHJpYiwgZGF0YSwgaXRlbVNpemUsIGR0eXBlKVxuICBpZiAobmV3QXR0cmliKSB7XG4gICAgZ2VvbWV0cnkuYWRkQXR0cmlidXRlKGtleSwgbmV3QXR0cmliKVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUF0dHJpYnV0ZSAoYXR0cmliLCBkYXRhLCBpdGVtU2l6ZSwgZHR5cGUpIHtcbiAgZGF0YSA9IGRhdGEgfHwgW11cbiAgaWYgKCFhdHRyaWIgfHwgcmVidWlsZEF0dHJpYnV0ZShhdHRyaWIsIGRhdGEsIGl0ZW1TaXplKSkge1xuICAgIC8vIGNyZWF0ZSBhIG5ldyBhcnJheSB3aXRoIGRlc2lyZWQgdHlwZVxuICAgIGRhdGEgPSBmbGF0dGVuKGRhdGEsIGR0eXBlKVxuXG4gICAgdmFyIG5lZWRzTmV3QnVmZmVyID0gYXR0cmliICYmIHR5cGVvZiBhdHRyaWIuc2V0QXJyYXkgIT09ICdmdW5jdGlvbidcbiAgICBpZiAoIWF0dHJpYiB8fCBuZWVkc05ld0J1ZmZlcikge1xuICAgICAgLy8gV2UgYXJlIG9uIGFuIG9sZCB2ZXJzaW9uIG9mIFRocmVlSlMgd2hpY2ggY2FuJ3RcbiAgICAgIC8vIHN1cHBvcnQgZ3Jvd2luZyAvIHNocmlua2luZyBidWZmZXJzLCBzbyB3ZSBuZWVkXG4gICAgICAvLyB0byBidWlsZCBhIG5ldyBidWZmZXJcbiAgICAgIGlmIChuZWVkc05ld0J1ZmZlciAmJiAhd2FybmVkKSB7XG4gICAgICAgIHdhcm5lZCA9IHRydWVcbiAgICAgICAgY29uc29sZS53YXJuKFtcbiAgICAgICAgICAnQSBXZWJHTCBidWZmZXIgaXMgYmVpbmcgdXBkYXRlZCB3aXRoIGEgbmV3IHNpemUgb3IgaXRlbVNpemUsICcsXG4gICAgICAgICAgJ2hvd2V2ZXIgdGhpcyB2ZXJzaW9uIG9mIFRocmVlSlMgb25seSBzdXBwb3J0cyBmaXhlZC1zaXplIGJ1ZmZlcnMuJyxcbiAgICAgICAgICAnXFxuVGhlIG9sZCBidWZmZXIgbWF5IHN0aWxsIGJlIGtlcHQgaW4gbWVtb3J5LlxcbicsXG4gICAgICAgICAgJ1RvIGF2b2lkIG1lbW9yeSBsZWFrcywgaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5b3UgZGlzcG9zZSAnLFxuICAgICAgICAgICd5b3VyIGdlb21ldHJpZXMgYW5kIGNyZWF0ZSBuZXcgb25lcywgb3IgdXBkYXRlIHRvIFRocmVlSlMgcjgyIG9yIG5ld2VyLlxcbicsXG4gICAgICAgICAgJ1NlZSBoZXJlIGZvciBkaXNjdXNzaW9uOlxcbicsXG4gICAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvcHVsbC85NjMxJ1xuICAgICAgICBdLmpvaW4oJycpKVxuICAgICAgfVxuXG4gICAgICAvLyBCdWlsZCBhIG5ldyBhdHRyaWJ1dGVcbiAgICAgIGF0dHJpYiA9IG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoZGF0YSwgaXRlbVNpemUpO1xuICAgIH1cblxuICAgIGF0dHJpYi5pdGVtU2l6ZSA9IGl0ZW1TaXplXG4gICAgYXR0cmliLm5lZWRzVXBkYXRlID0gdHJ1ZVxuXG4gICAgLy8gTmV3IHZlcnNpb25zIG9mIFRocmVlSlMgc3VnZ2VzdCB1c2luZyBzZXRBcnJheVxuICAgIC8vIHRvIGNoYW5nZSB0aGUgZGF0YS4gSXQgd2lsbCB1c2UgYnVmZmVyRGF0YSBpbnRlcm5hbGx5LFxuICAgIC8vIHNvIHlvdSBjYW4gY2hhbmdlIHRoZSBhcnJheSBzaXplIHdpdGhvdXQgYW55IGlzc3Vlc1xuICAgIGlmICh0eXBlb2YgYXR0cmliLnNldEFycmF5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBhdHRyaWIuc2V0QXJyYXkoZGF0YSlcbiAgICB9XG5cbiAgICByZXR1cm4gYXR0cmliXG4gIH0gZWxzZSB7XG4gICAgLy8gY29weSBkYXRhIGludG8gdGhlIGV4aXN0aW5nIGFycmF5XG4gICAgZmxhdHRlbihkYXRhLCBhdHRyaWIuYXJyYXkpXG4gICAgYXR0cmliLm5lZWRzVXBkYXRlID0gdHJ1ZVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuLy8gVGVzdCB3aGV0aGVyIHRoZSBhdHRyaWJ1dGUgbmVlZHMgdG8gYmUgcmUtY3JlYXRlZCxcbi8vIHJldHVybnMgZmFsc2UgaWYgd2UgY2FuIHJlLXVzZSBpdCBhcy1pcy5cbmZ1bmN0aW9uIHJlYnVpbGRBdHRyaWJ1dGUgKGF0dHJpYiwgZGF0YSwgaXRlbVNpemUpIHtcbiAgaWYgKGF0dHJpYi5pdGVtU2l6ZSAhPT0gaXRlbVNpemUpIHJldHVybiB0cnVlXG4gIGlmICghYXR0cmliLmFycmF5KSByZXR1cm4gdHJ1ZVxuICB2YXIgYXR0cmliTGVuZ3RoID0gYXR0cmliLmFycmF5Lmxlbmd0aFxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSAmJiBBcnJheS5pc0FycmF5KGRhdGFbMF0pKSB7XG4gICAgLy8gWyBbIHgsIHksIHogXSBdXG4gICAgcmV0dXJuIGF0dHJpYkxlbmd0aCAhPT0gZGF0YS5sZW5ndGggKiBpdGVtU2l6ZVxuICB9IGVsc2Uge1xuICAgIC8vIFsgeCwgeSwgeiBdXG4gICAgcmV0dXJuIGF0dHJpYkxlbmd0aCAhPT0gZGF0YS5sZW5ndGhcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cbiIsInZhciBuZXdsaW5lID0gL1xcbi9cbnZhciBuZXdsaW5lQ2hhciA9ICdcXG4nXG52YXIgd2hpdGVzcGFjZSA9IC9cXHMvXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odGV4dCwgb3B0KSB7XG4gICAgdmFyIGxpbmVzID0gbW9kdWxlLmV4cG9ydHMubGluZXModGV4dCwgb3B0KVxuICAgIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcobGluZS5zdGFydCwgbGluZS5lbmQpXG4gICAgfSkuam9pbignXFxuJylcbn1cblxubW9kdWxlLmV4cG9ydHMubGluZXMgPSBmdW5jdGlvbiB3b3Jkd3JhcCh0ZXh0LCBvcHQpIHtcbiAgICBvcHQgPSBvcHR8fHt9XG5cbiAgICAvL3plcm8gd2lkdGggcmVzdWx0cyBpbiBub3RoaW5nIHZpc2libGVcbiAgICBpZiAob3B0LndpZHRoID09PSAwICYmIG9wdC5tb2RlICE9PSAnbm93cmFwJykgXG4gICAgICAgIHJldHVybiBbXVxuXG4gICAgdGV4dCA9IHRleHR8fCcnXG4gICAgdmFyIHdpZHRoID0gdHlwZW9mIG9wdC53aWR0aCA9PT0gJ251bWJlcicgPyBvcHQud2lkdGggOiBOdW1iZXIuTUFYX1ZBTFVFXG4gICAgdmFyIHN0YXJ0ID0gTWF0aC5tYXgoMCwgb3B0LnN0YXJ0fHwwKVxuICAgIHZhciBlbmQgPSB0eXBlb2Ygb3B0LmVuZCA9PT0gJ251bWJlcicgPyBvcHQuZW5kIDogdGV4dC5sZW5ndGhcbiAgICB2YXIgbW9kZSA9IG9wdC5tb2RlXG5cbiAgICB2YXIgbWVhc3VyZSA9IG9wdC5tZWFzdXJlIHx8IG1vbm9zcGFjZVxuICAgIGlmIChtb2RlID09PSAncHJlJylcbiAgICAgICAgcmV0dXJuIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aClcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpXG59XG5cbmZ1bmN0aW9uIGlkeE9mKHRleHQsIGNociwgc3RhcnQsIGVuZCkge1xuICAgIHZhciBpZHggPSB0ZXh0LmluZGV4T2YoY2hyLCBzdGFydClcbiAgICBpZiAoaWR4ID09PSAtMSB8fCBpZHggPiBlbmQpXG4gICAgICAgIHJldHVybiBlbmRcbiAgICByZXR1cm4gaWR4XG59XG5cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjaHIpIHtcbiAgICByZXR1cm4gd2hpdGVzcGFjZS50ZXN0KGNocilcbn1cblxuZnVuY3Rpb24gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGxpbmVzID0gW11cbiAgICB2YXIgbGluZVN0YXJ0ID0gc3RhcnRcbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZCAmJiBpPHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNociA9IHRleHQuY2hhckF0KGkpXG4gICAgICAgIHZhciBpc05ld2xpbmUgPSBuZXdsaW5lLnRlc3QoY2hyKVxuXG4gICAgICAgIC8vSWYgd2UndmUgcmVhY2hlZCBhIG5ld2xpbmUsIHRoZW4gc3RlcCBkb3duIGEgbGluZVxuICAgICAgICAvL09yIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIEVPRlxuICAgICAgICBpZiAoaXNOZXdsaW5lIHx8IGk9PT1lbmQtMSkge1xuICAgICAgICAgICAgdmFyIGxpbmVFbmQgPSBpc05ld2xpbmUgPyBpIDogaSsxXG4gICAgICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIGxpbmVTdGFydCwgbGluZUVuZCwgd2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKG1lYXN1cmVkKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBsaW5lU3RhcnQgPSBpKzFcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKSB7XG4gICAgLy9BIGdyZWVkeSB3b3JkIHdyYXBwZXIgYmFzZWQgb24gTGliR0RYIGFsZ29yaXRobVxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL2xpYmdkeC9saWJnZHgvYmxvYi9tYXN0ZXIvZ2R4L3NyYy9jb20vYmFkbG9naWMvZ2R4L2dyYXBoaWNzL2cyZC9CaXRtYXBGb250Q2FjaGUuamF2YVxuICAgIHZhciBsaW5lcyA9IFtdXG5cbiAgICB2YXIgdGVzdFdpZHRoID0gd2lkdGhcbiAgICAvL2lmICdub3dyYXAnIGlzIHNwZWNpZmllZCwgd2Ugb25seSB3cmFwIG9uIG5ld2xpbmUgY2hhcnNcbiAgICBpZiAobW9kZSA9PT0gJ25vd3JhcCcpXG4gICAgICAgIHRlc3RXaWR0aCA9IE51bWJlci5NQVhfVkFMVUVcblxuICAgIHdoaWxlIChzdGFydCA8IGVuZCAmJiBzdGFydCA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgIC8vZ2V0IG5leHQgbmV3bGluZSBwb3NpdGlvblxuICAgICAgICB2YXIgbmV3TGluZSA9IGlkeE9mKHRleHQsIG5ld2xpbmVDaGFyLCBzdGFydCwgZW5kKVxuXG4gICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgc3RhcnQgb2YgbGluZVxuICAgICAgICB3aGlsZSAoc3RhcnQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSggdGV4dC5jaGFyQXQoc3RhcnQpICkpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIHN0YXJ0KytcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZGV0ZXJtaW5lIHZpc2libGUgIyBvZiBnbHlwaHMgZm9yIHRoZSBhdmFpbGFibGUgd2lkdGhcbiAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbmV3TGluZSwgdGVzdFdpZHRoKVxuXG4gICAgICAgIHZhciBsaW5lRW5kID0gc3RhcnQgKyAobWVhc3VyZWQuZW5kLW1lYXN1cmVkLnN0YXJ0KVxuICAgICAgICB2YXIgbmV4dFN0YXJ0ID0gbGluZUVuZCArIG5ld2xpbmVDaGFyLmxlbmd0aFxuXG4gICAgICAgIC8vaWYgd2UgaGFkIHRvIGN1dCB0aGUgbGluZSBiZWZvcmUgdGhlIG5leHQgbmV3bGluZS4uLlxuICAgICAgICBpZiAobGluZUVuZCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIC8vZmluZCBjaGFyIHRvIGJyZWFrIG9uXG4gICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kKSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluZUVuZCA9PT0gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXJ0ID4gc3RhcnQgKyBuZXdsaW5lQ2hhci5sZW5ndGgpIG5leHRTdGFydC0tXG4gICAgICAgICAgICAgICAgbGluZUVuZCA9IG5leHRTdGFydCAvLyBJZiBubyBjaGFyYWN0ZXJzIHRvIGJyZWFrLCBzaG93IGFsbC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gbGluZUVuZFxuICAgICAgICAgICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgZW5kIG9mIGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQgLSBuZXdsaW5lQ2hhci5sZW5ndGgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGluZUVuZCA+PSBzdGFydCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIGxpbmVFbmQsIHRlc3RXaWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KVxuICAgICAgICB9XG4gICAgICAgIHN0YXJ0ID0gbmV4dFN0YXJ0XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG4vL2RldGVybWluZXMgdGhlIHZpc2libGUgbnVtYmVyIG9mIGdseXBocyB3aXRoaW4gYSBnaXZlbiB3aWR0aFxuZnVuY3Rpb24gbW9ub3NwYWNlKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGdseXBocyA9IE1hdGgubWluKHdpZHRoLCBlbmQtc3RhcnQpXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBlbmQ6IHN0YXJ0K2dseXBoc1xuICAgIH1cbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGV4dGVuZFxuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBleHRlbmQoKSB7XG4gICAgdmFyIHRhcmdldCA9IHt9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldXG5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldFxufVxuIl19 diff --git a/build/datguivr.map b/build/datguivr.map index 522c0c7..a382db4 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","p","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","c","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","faces","forEach","face","colorsNeedUpdate","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","applyMatrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","col","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","Geometry","vertices","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","computeBoundingSphere","computeBoundingBox","verticesNeedUpdate","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","Color","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","getEdge","processEdge","metaVertices","edge","vertexIndexA","vertexIndexB","newEdge","edges","generateLookups","il","newFace","newFaces","Face3","midpoint","newUv","newUvs","ABC","oldVertices","oldFaces","oldUvs","newVertices","j","sourceEdges","newEdgeVertices","newSourceVertices","tmp","newUVs","faceVertexUvs","hasUvs","other","currentEdge","edgeVertexWeight","adjacentVertexWeight","connectedFaces","addVectors","beta","sourceVertexWeight","connectingVertexWeight","connectingEdge","connectingEdges","oldVertex","newSourceVertex","edge1","edge2","edge3","sl","uv","x0","x1","x2","x3","x4","x5","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float32Array","Float64Array","Uint8ClampedArray","28","EventEmitter","_maxListeners","arg","isUndefined","defaultMaxListeners","setMaxListeners","TypeError","er","handler","len","listeners","err","context","addListener","listener","newListener","warned","trace","once","fired","list","removeAllListeners","listenerCount","evlistener","emitter","29","ctor","superCtor","super_","enumerable","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","bind","addGetter","wrapper","Function","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","array","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","count","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","target","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","utils","BufferGeometry","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","setAttribute","BufferAttribute","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","EventEmitter","objectCreate","_eventsCount","_maxListeners","$getMaxListeners","that","defaultMaxListeners","emitNone","handler","isFn","self","len","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","emitMany","_addListener","target","listener","prepend","existing","TypeError","newListener","warned","String","emitter","count","message","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","listenerCount","spliceOne","list","pop","ret","objectCreatePolyfill","proto","F","objectKeysPolyfill","functionBindPolyfill","context","objectKeys","Function","hasDefineProperty","err","enumerable","arg","setMaxListeners","getMaxListeners","er","doError","addListener","prependListener","once","prependOnceListener","originalListener","removeAllListeners","rawListeners","eventNames","Reflect","ownKeys","29","flattenVertexData","data","output","j","dim","dstLength","NaN","Ctor","30","ctor","superCtor","super_","writable","configurable","TempCtor","31","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","32","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","33","toObject","val","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","source","symbols","to","34","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","pages","lineData","file","35","CW","CCW","dir","clockwise","numIndices","indices","an-array","is-buffer","36","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","attr","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","three-buffer-vertex-data","37","bounds","minX","minY","maxX","maxY","sqrt","38","page","bw","bh","u0","v1","u1","v0","39","setIndex","flatten-vertex-data","40","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","41","extend"],"mappings":"CAAA,WAAY,QAASA,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAE,kBAAmBC,UAASA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,IAAIK,GAAE,GAAIC,OAAM,uBAAuBN,EAAE,IAAK,MAAMK,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEX,EAAEG,IAAIS,WAAYb,GAAEI,GAAG,GAAGU,KAAKF,EAAEC,QAAQ,SAASd,GAAoB,MAAOI,GAAlBH,EAAEI,GAAG,GAAGL,IAAeA,IAAIa,EAAEA,EAAEC,QAAQd,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGS,QAAQ,IAAI,GAAIL,GAAE,kBAAmBD,UAASA,QAAQH,EAAE,EAAEA,EAAEF,EAAEa,OAAOX,IAAID,EAAED,EAAEE,GAAI,OAAOD,GAAE,MAAOJ,OAAOiB,GAAG,SAAST,EAAQU,EAAOJ,GACxe,YAmCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASK,KAuEP,QAASC,GAAcjB,IACC,IAAlBkB,EAAMC,UAIVC,EAAOC,KAEPC,EAAcC,SAASC,EAAmB,GAAfC,EAE3BzB,EAAE0B,QAAS,GAGb,QAASC,KACPL,EAAcC,SAASC,EAAmB,GAAfC,EAG7B,QAASG,KAEHC,EAAYC,WACdC,EAASC,MAAMC,OAAOC,EAAOC,wBAE7BJ,EAASC,MAAMC,OAAOC,EAAOE,cA3FjC,GAAIC,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DC,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDG,EAAuB,GAART,EAAcC,EAAOS,aACpCC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACIG,GAAcV,EAAeE,EAC7BS,EAAO,GAAIR,OAAMS,YAAYZ,EAAcE,EAAe7B,EAAcwC,KAAKC,MAFjE,EAEmFJ,GAFnF,EAAA,EAGD,IAAIP,OAAMY,oBAAoB,GACpCC,OAAOL,GAChBA,EAAKM,UAAyB,GAAfjB,EAAoB,EAAG,EAGtC,IAAIkB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAmB,GAAfC,EAC3BH,EAAcC,SAASmD,EAAY,GAAR/B,CAE3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOE,eACvDuC,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAElB,IAAIC,GAAcpC,EAAYqC,OAAOxD,GAAgByD,MAAO,MAI5DF,GAAYrD,SAASmD,EAAmB,GAAftB,EAAgD,MAA3BwB,EAAYG,OAAOpC,MAAmB,GACpFiC,EAAYrD,SAASC,EAAmB,IAAfC,EACzBmD,EAAYrD,SAASyD,GAAK,KAC1BL,EAAad,IAAIe,EAEjB,IAAIK,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,aAAc7D,GAEpCC,IA2BAV,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAiBzD,OAfAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAETA,EAAM0D,YAAc,SAAUoB,GAE5B,MADApB,GAAYqB,YAAYD,GACjB9E,GAGFA,EAzJTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUO,CAElB,IAAIoF,GAAuBzG,EAAQ,qCAI/B0G,GAFsB3F,EAAwB0F,GAEjCzG,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KA8IhCC,oCAAoC,GAAGC,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKC,GAAG,SAASvH,EAAQU,EAAOJ,GACxK,YAmCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAqBvF,QAAS4G,KAuDP,QAASlG,GAAcjB,IACC,IAAlBkB,EAAMC,UAIViG,EAAMjB,OAASiB,EAAMjB,MAErB/E,EAAOC,GAAgB+F,EAAMjB,MAEzBkB,GACFA,EAAYD,EAAMjB,OAGpBnG,EAAE0B,QAAS,GAGb,QAASE,KACP0F,EAAUnG,QAAUiG,EAAMjB,MAC1BoB,EAAUpG,QAAUU,EAAYC,WAC5B0F,IACFA,EAAQF,UAAUnG,QAAUiG,EAAMjB,MAClCqB,EAAQD,UAAUpG,QAAUqG,EAAQ3F,YAAYC,YAwBpD,QAAS2F,KACP,GAAID,EAAS,MAAOA,EACpB,IAAIE,GAA6B,GAAtB9E,EAAOI,aACde,EAAO,GAAIR,OAAMS,YAAY0D,EAAMA,EAAMxE,EAC7Ca,GAAKM,UAAiB,GAAPqD,EAAY,EAAG,EAC9B,IAAIpD,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAC1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDkD,GAAUlG,EAEVA,EAAcC,SAASC,EAAI0B,CAG3B,IAAIqE,GAAY3E,EAAOgB,YAAY8D,EAAO9E,EAAO+E,iBAAkBD,EAAO9E,EAAO+E,iBAAkBzE,GAAO,EAC1GsE,GAAQD,UAAYA,EACpBA,EAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,CAEvB,IAAIoE,GAAYM,EAAQN,UAAU,GAAMI,EAAO9E,EAAOiF,cACtDL,GAAQF,UAAYA,EACpBA,EAAUnG,QAAUiG,EAAMjB,MAC1BmB,EAAU/F,SAASC,EAAY,IAAR0B,EACvB5B,EAAcuC,IAAIyD,EAElB,IAAIzF,IAAc,EAAIyD,EAAc7E,SAASa,EAe7C,OAdAO,GAAY0D,OAAOC,GAAG,YAAasC,GACnCN,EAAQ3F,YAAcA,EAGtB2F,EAAQ5B,cAAgB,SAAUC,GAC5BuB,EAAMW,SACRX,EAAMjB,MAAQ/E,EAAOC,IAIvBQ,EAAYiE,OAAOD,GACnBjE,KAGK4F,EAIT,QAASM,GAAkB9H,IACI,IAAzBkB,EAAM8G,OAAO7G,UAAyC,IAApBqG,EAAQrG,UAC9CiG,EAAMjB,OAASiB,EAAMjB,MACrB/E,EAAOC,GAAgB+F,EAAMjB,MACzBkB,GAAaA,EAAYD,EAAMjB,OACnCnG,EAAE0B,QAAS,EAGX8F,EAAQF,UAAUnG,QAAUiG,EAAMjB,OAvJpC,GAAI9D,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DwF,EAAoB5F,EAAK6F,aACzBA,MAAqC3F,KAAtB0F,GAA0CA,EACzDvF,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACFjB,MAAO+B,EACPH,QAAQ,GAGNI,EAAevF,EAAOI,aAAeJ,EAAOiF,cAE5C3G,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,WAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAI4D,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIqC,OAAc,EAGlBnG,GAAMkH,SAAW,SAAUC,GAEzB,MADAhB,GAAcgB,EACPnH,GAGTA,EAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,GAGTA,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,EAGT,IAAIoG,OAAY,GACZC,MAAY,GACZ1F,MAAc,GA2BdyG,GAAwB,CAC5BpH,GAAMqH,mBAAqB,WACzB,GAAIpC,KAAQ7D,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,KAAmBA,UAAU,EAS3E,OAPI6D,KAAUmC,IACZA,EAAwBnC,EAGxBqB,EAAUC,IACNtB,EAAOjF,EAAM8G,OAAOQ,cAAchB,GAAcA,EAAQrG,SAAU,GAEjED,GAETL,OAAOqF,eAAehF,EAAO,yBAC3BuH,IAAK,WACH,MAAOH,IAETI,IAAKxH,EAAMqH,oBAEb,IAAIf,OAAU,GAwDV7D,MAAQ,EA+EZ,OA5EAzC,GAAMyH,UAAY,SAAUC,GACtBjF,GAAOzC,EAAM2H,OAAOlF,GAExBzC,EAAM4H,QAAUF,CAEhB,IAAIG,GAAiBH,EAAYT,EAC7Ba,EAAkBD,EAClBE,EAAiB/F,EACjBgG,EAAiB,GAAMH,EAAiBnG,EAAOiF,aAEnDlE,GAAQf,EAAOgB,YAAYjB,EAAOiG,EAAW1F,GAC7ChC,EAAM2C,IAAIF,EAGV,IAAII,GAAO,GAAIR,OAAMS,YAAY+E,EAAgBC,EAAiBC,EAClElF,GAAKM,UAA2B,GAAjB0E,EAAsB,EAAG,EAGxC,IAAIzE,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAI0B,EAC3B5B,EAAcC,SAASmD,EAAY,GAAR/B,CAO3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOiH,oBACvDxE,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAElB,IAAIQ,GAAevC,EAAOwC,sBAAsBwD,EAAW1G,EAAOkH,uBAClEjE,GAAa5D,SAASC,EAAI0B,EAE1BqE,EAAY3E,EAAOgB,YAAYmF,EAAiBnG,EAAO+E,iBAAkBqB,EAAkBpG,EAAO+E,iBAAkBsB,GAAgB,GACpI1B,EAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,EAEvBoE,EAAYM,EAAQN,UAAU4B,GAC9B5B,EAAU/F,SAASC,EAAY,IAAR0B,EACvB5B,EAAcuC,IAAIyD,GAElB3D,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAAcoC,GAIxD1F,GAAc,EAAIyD,EAAc7E,SAASa,GACzCO,EAAY0D,OAAOC,GAAG,YAAavE,GAEnCW,IAEAV,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC1BuB,EAAMW,SACRX,EAAMjB,MAAQ/E,EAAOC,IAEvBQ,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGEV,EAAM8G,QAAQ9G,EAAM8G,OAAOqB,gBAExBnI,GAGTA,EAAMyH,UAAU5F,GAET7B,EAlSTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAU0G,CAElB,IAAId,GAAa1G,EAAQ,eAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC7C,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KAsQhCE,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKuC,GAAG,SAAS7J,EAAQU,EAAOJ,GAC/I,YA+BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAgCvF,QAASkJ,GAASC,EAAGC,EAAGC,GACpB,GAAIzK,GAAG0K,EAAGC,EAAGtK,EAAGC,EAAGO,EAAG+J,EAAGzK,CAUzB,QATyB,IAArBgD,UAAUnC,aAEEoC,KAARmH,EAAEhF,GAAiBiF,EAAID,EAAE1E,EAAG4E,EAAIF,EAAElI,EAAGkI,EAAIA,EAAEhF,IAAOiF,EAAID,EAAEC,EAAGC,EAAIF,EAAEE,EAAGF,EAAIA,EAAEA,IAElFlK,EAAIyE,KAAKC,MAAU,EAAJwF,GACfjK,EAAQ,EAAJiK,EAAQlK,EACZQ,EAAI4J,GAAK,EAAID,GACbI,EAAIH,GAAK,EAAInK,EAAIkK,GACjBrK,EAAIsK,GAAK,GAAK,EAAInK,GAAKkK,GACfnK,EAAI,GACR,IAAK,GACDL,EAAIyK,EAAGC,EAAIvK,EAAGwK,EAAI9J,CAAE,MACxB,KAAK,GACDb,EAAI4K,EAAGF,EAAID,EAAGE,EAAI9J,CAAE,MACxB,KAAK,GACDb,EAAIa,EAAG6J,EAAID,EAAGE,EAAIxK,CAAE,MACxB,KAAK,GACDH,EAAIa,EAAG6J,EAAIE,EAAGD,EAAIF,CAAE,MACxB,KAAK,GACDzK,EAAIG,EAAGuK,EAAI7J,EAAG8J,EAAIF,CAAE,MACxB,KAAK,GACDzK,EAAIyK,EAAGC,EAAI7J,EAAG8J,EAAIC,EAE1B,OACI5K,EAAGA,EACH0K,EAAGA,EACHC,EAAGA,GAQX,QAASE,GAAS7K,EAAG0K,EAAGC,GACK,IAArBxH,UAAUnC,SACV0J,EAAI1K,EAAE0K,EAAGC,EAAI3K,EAAE2K,EAAG3K,EAAIA,EAAEA,EAE5B,IAGIuK,GAHAO,EAAMhG,KAAKgG,IAAI9K,EAAG0K,EAAGC,GACrBI,EAAMjG,KAAKiG,IAAI/K,EAAG0K,EAAGC,GACrBK,EAAIF,EAAMC,EAEVP,EAAY,IAARM,EAAY,EAAIE,EAAIF,EACxBL,EAAIK,CAER,QAAQA,GACJ,IAAKC,GACDR,EAAI,CAAE,MACV,KAAKvK,GACDuK,EAAIG,EAAIC,EAAIK,GAAKN,EAAIC,EAAI,EAAI,GAAGJ,GAAK,EAAIS,CAAE,MAC/C,KAAKN,GACDH,EAAII,EAAI3K,EAAQ,EAAJgL,EAAMT,GAAK,EAAIS,CAAE,MACjC,KAAKL,GACDJ,EAAIvK,EAAI0K,EAAQ,EAAJM,EAAMT,GAAK,EAAIS,EAGnC,OACIT,EAAGA,EACHC,EAAGA,EACHC,EAAGA,EACHlF,EAAGgF,EAAG1E,EAAG2E,EAAGnI,EAAGoI,GAIvB,QAASQ,KAiCL,QAASC,KACLC,EAAMtI,MAAM0G,IAAI1G,GAChBuD,EAAOgF,KAAK,WAAYvI,GAK5B,QAASwI,KACA7G,GACLA,EAAMpC,SAASmH,IAAI,EAAG,EAAG,EAAIxF,GAGjC,QAASuH,KACL,GAAI9G,EAIA,MAHAA,GAAMxC,SAAWwC,EAAMxC,QACnBwC,EAAMxC,SAASD,EAAM8G,OAAO0C,eAAe/G,OAC/C6G,IAOA,IAHA7G,EAAQgH,IAAIC,MAAM/F,OAAO,iBACzBlB,EAAMkH,aAEFC,EAAY,CACZ,GAAIC,GAAO,SAAc/K,GACrBgL,EAASC,YAAY9E,MAAMzB,EAAI1E,EAAEkL,WAAWxG,CAC5C,IAAIhF,GAAI+J,EAASuB,EAASC,YAAY9E,MACtCnE,GAAMmJ,OAAOzL,EAAEP,EAAGO,EAAEmK,EAAGnK,EAAEoK,GACzBO,IACAe,EAAUC,aAAc,GAGxBC,EAAa,GAAI/H,OAAMgI,gBACvBP,SAAUA,EACVQ,aAAcC,EACdC,eAAgBC,IAEhBC,EAAQ,SAAe5L,GACvBgL,EAASC,YAAY9E,MAAMnB,EAAIhF,EAAEkL,WAAWxG,EAC5CsG,EAASC,YAAY9E,MAAM3E,EAAIxB,EAAEkL,WAAWlG,CAE5C,IAAItF,GAAI+J,EAASuB,EAASC,YAAY9E,MACtCnE,GAAMmJ,OAAOzL,EAAEP,EAAGO,EAAEmK,EAAGnK,EAAEoK,GACzBO,IACAe,EAAUC,aAAc,GAGxBQ,EAAcjJ,EAAOnB,aAAe,EACxCkC,GAAMmI,gBAAgBF,EAAON,GAFlB,EAEoC1I,EAAOC,YAAc,EAAGK,EAAO2I,EAC9E,IAAIT,GAAY,GAAI7H,OAAMgI,gBACtBP,SAAUA,EACVQ,aAAcC,EACdC,eAAgBK,GAIpBpI,GAAMmI,gBAAgBf,EAAMK,GAVjB,EAUkCxI,EAAOI,aAAcE,EAAO2I,OAEzElI,GAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,GACrC1G,EAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,GACrC1G,EAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,EAEzCnJ,GAAM2C,IAAIF,GACVzC,EAAM8G,OAAO0C,eAAe/G,GAC5B6G,IACA7G,EAAMqE,OAAS9G,EAAM8G,OAe7B,QAASgE,KAGLhK,EAAQZ,EAAOC,GACfiJ,EAAMtI,MAAMiK,KAAKjK,GACjBgJ,EAASC,YAAY9E,MAAM8F,KAAKjC,EAAShI,IArH7C,GAAIK,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtElB,EAASiB,EAAKjB,OACdC,EAAegB,EAAKhB,aACpBmB,EAAcH,EAAKG,YACnBE,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAc,EAAKF,EAK7DiJ,EAAOzB,EACPzI,EAAQZ,EAAOC,GACf3B,EAAIsK,EAAShI,GACbgJ,GAAaC,aAAe9E,MAAO,GAAI5C,OAAM4I,QAAQzM,EAAEgK,EAAGhK,EAAEiK,EAAGjK,EAAEkK,KACjEU,EAAQ,GAAI/G,OAAMgB,mBAAoBvC,MAAOA,IAC7CuD,EAAS,GAAI6G,GAAS3L,QAEtB2G,GACAW,QAAQ,GAGR7G,GAAQ,EAAImL,EAAc5L,UAC1B+B,YAAaA,EAAa0J,KAAMA,EAAM5B,MAAOA,EAAOjJ,aAAcA,EAAcsB,MAAOA,EAAOI,OAAQA,EAAQG,MAAOA,EAAOoJ,oBANvG,GAQzBpL,GAAMuC,QAAU,aAEhB,IAAIE,GAOAmH,GAAa,CAgEjB5J,GAAMkH,SAAW,SAAUC,GAEvB,MADA9C,GAAOC,GAAG,WAAY6C,GACfnH,EAGX,IAAIqL,GAAwBrL,EAAM0E,aAkBlC,OAjBA1E,GAAM0E,cAAgB,SAAUC,GACxBuB,EAAMW,QAAQiE,IAClBO,EAAsB1G,IAU1B3E,EAAM6G,OAAS,WAEX,MADAX,GAAMW,QAAS,EACR7G,GAGJA,EA9PXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAU2J,CAElB,IAAIoC,GAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCC,EAAe9M,EAAQ,iBAEvB0M,EAAgB/L,EAAuBmM,GAEvClG,EAAU5G,EAAQ,YAIlB6G,GAFS9F,EAAwB6F,GAEvB5G,EAAQ,aAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAuBhB+M,GArBOhM,EAAwBgG,GAqBrB,yMAEV+E,EAAa,uIAEbE,EAAe,mDAAqDe,EAAU,uZAE9EX,EAAoB,mDAAqDW,EAAU,6VA2MpF9F,WAAW,EAAEC,SAAS,EAAE8F,gBAAgB,GAAG5F,WAAW,GAAGC,oBAAoB,GAAGzB,OAAS,KAAKqH,GAAG,SAASjN,EAAQU,EAAOJ,GAC5H,YAiDA,SAAS4M,GAAiBC,EAAU9K,GAClC,GAAI+K,GAAM,GAAIxJ,OAAMyJ,MAAMhL,GACtBtC,EAAIoN,EAASG,aAAa,SAC1BpN,MAAI,EACHH,GAIHG,EAAIH,EAAEwN,OAHNrN,EAAI,GAAIsN,cAAaL,EAASG,aAAa,YAAYC,MAAM/M,QAAQiN,KAAK,IAC1E1N,EAAIoN,EAASO,aAAa,QAAS,GAAI9J,OAAM+J,gBAAgBzN,EAAG,IAIlE,KAAK,GAAIL,GAAI,EAAGA,EAAIK,EAAEM,OAAQX,GAAK,EACjCK,EAAEL,GAAKuN,EAAI5N,EACXU,EAAEL,EAAI,GAAKuN,EAAIlD,EACfhK,EAAEL,EAAI,GAAKuN,EAAIjD,CAQjB,OANApK,GAAE2L,aAAc,EAMTyB,EApETjM,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQ4M,iBAAmBA,CAoBP5M,GAAQsN,cAAgB,QACtBtN,EAAQuN,gBAAkB,QACxBvN,EAAQwN,kBAAoB,OAC/BxN,EAAQyN,eAAiB,QACfzN,EAAQ0N,yBAA2B,SAC9C1N,EAAQ2N,cAAgB,SACzB3N,EAAQ4N,aAAe,OAChB5N,EAAQ6N,oBAAsB,QACnC7N,EAAQ8N,eAAiB,QACzB9N,EAAQ+N,eAAiB,QACnB/N,EAAQgO,qBAAuB,QAC7BhO,EAAQmJ,uBAAyB,QACnCnJ,EAAQoF,qBAAuB,SACjCpF,EAAQiO,mBAAqB,QACzBjO,EAAQkO,uBAAyB,SACtClO,EAAQmO,kBAAoB,SAC5BnO,EAAQoO,kBAAoB,EAC5BpO,EAAQkJ,kBAAoB,SACjClJ,EAAQmC,aAAe,SACbnC,EAAQkC,uBAAyB,SAC9ClC,EAAQqO,UAAY,QACnBrO,EAAQsO,WAAa,SACXtO,EAAQuO,qBAAuB,cA0BpDC,GAAG,SAAS9O,EAAQU,EAAOJ,GACjC,YAiCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASmO,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GAmB1L,QAASK,KA8DP,QAASC,KACP,MAAIL,OAAMC,QAAQK,GACTA,EAAQC,KAAK,SAAUC,GAC5B,MAAOA,KAAehO,EAAOC,KAGxBR,OAAOwO,KAAKH,GAASC,KAAK,SAAUC,GACzC,MAAOhO,GAAOC,KAAkB6N,EAAQE,KAK9C,QAASE,GAAaC,EAAWC,GAE/B,GAAIC,IAAQ,EAAIC,EAAYjP,SAAS+B,EAAa+M,EAElDI,EAAgBzM,EAAOhB,EAAOmM,kBAAmBnM,EAAOkM,kBAAmB,KAC3EqB,GAAMG,KAAKnM,QAAU,iBACrBgM,EAAMhM,QAAU,iBAEZ+L,EAAUK,EAAcpK,QAAQqK,KAAKL,EAAMG,MAAW1O,EAAMuE,QAAQqK,KAAKL,EAAMG,KACnF,IAAIG,IAAmB,EAAIzK,EAAc7E,SAASgP,EAAMG,KAiDxD,OAhDAG,GAAiBtM,QAAU,iBAC3BuM,EAAkBF,KAAKC,GACvBE,EAAaH,KAAKL,GAEdD,EACFO,EAAiBxK,OAAOC,GAAG,YAAa,SAAUxF,GAChDoH,EAAM8I,KAAOL,EAAc1O,QAC3BgP,EAAcC,UAAUb,EAExB,IAAIc,IAAkB,CAElBzB,OAAMC,QAAQK,IAChBmB,EAAkBjP,EAAOC,KAAkBkO,KAEzCnO,EAAOC,GAAgBkO,IAGzBc,EAAkBjP,EAAOC,KAAkB6N,EAAQK,MAEjDnO,EAAOC,GAAgB6N,EAAQK,IAInCe,IACAlJ,EAAM8I,MAAO,EAET7I,GAAegJ,GACjBhJ,EAAYjG,EAAOC,IAEjBkP,GACFA,EAAWnP,EAAOC,IAGpBrB,EAAE0B,QAAS,IAGbqO,EAAiBxK,OAAOC,GAAG,YAAa,SAAUxF,GAChDoH,EAAM8I,KAAOL,EAAc1O,SACR,IAAfiG,EAAM8I,KACRM,IAEAF,IAGFtQ,EAAE0B,QAAS,IAGf+N,EAAMD,SAAWA,EACVC,EAGT,QAASa,KACPlJ,EAAM8I,MAAO,EACThP,EAAM8G,QAAQ9G,EAAM8G,OAAOyI,mBAGjC,QAASD,KACPpJ,EAAM8I,MAAO,EACbhP,EAAM8G,OAAO0C,eAAemF,GAO5BI,EAAaS,QAAQ,SAAUjB,GACzBA,EAAMD,WACRC,EAAMtO,SAAU,EAChBsO,EAAMG,KAAKzO,SAAU,KAe3B,QAASwP,GAAuBlB,EAAOmB,GACrCnB,EAAMlO,SAASyD,GAAK6L,GAAmBD,EAAQE,EAAgC,GAAKC,EACpFtB,EAAMlO,SAASC,EAAI0B,EACnBuM,EAAMlO,SAASmD,GAAKiL,EAAiB1L,KAAKC,MAAM0M,EAAQE,GAG1D,QAASE,GAAc5B,EAAYwB,GACjC,GAAIK,GAAc3B,EAAaF,GAAY,EAE3C,OADAuB,GAAuBM,EAAaL,GAC7BK,EA6BT,QAASrP,KAEPoO,EAAkBU,QAAQ,SAAU7O,EAAa+O,GAC/C,GAAInB,GAAQQ,EAAaW,EACrBnB,GAAMD,WACJ3N,EAAYC,WACdI,EAAO2K,iBAAiB4C,EAAMG,KAAK9C,SAAU5K,EAAOsL,iBAEpDtL,EAAO2K,iBAAiB4C,EAAMG,KAAK9C,SAAU5K,EAAOkM,sBAK1DhH,EAAM8I,KAAOL,EAAc1O,QACvBD,EAAMgQ,SAASC,SAIjB,EAAIC,EAAOC,eAAe1N,EAAOzC,EAAMgQ,SAASC,OAAQnB,EAAkB,GAAGlO,YAE3EkO,EAAkB,GAAGlO,YAAcsF,EAAM8I,KAC3C3I,EAAUpG,SAAU,EAEpBoG,EAAUpG,SAAU,EAnOxB,GAAIkB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAG/D6O,GAFoBjP,EAAK6F,aAEV7F,EAAK6M,SACpBA,MAA2B3M,KAAjB+O,KAAkCA,EAC5C5O,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACF8I,MAAM,EACNnI,QAAQ,GAGN4H,EAAyB,GAARhN,EAAcC,EAAOS,aACtCkO,EAAkBxO,EAASH,EAAOS,aAClCmO,EAAiBtO,EACjB6N,EAAyBhO,EAA+B,IAAtBH,EAAOS,aACzCwN,GAAyC,GAAvBjO,EAAOS,aACzByN,EAAgC,GAEhC5P,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,WAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,KAIrDH,EAAMgQ,SAASO,aAAerQ,EAC9BF,EAAMgQ,SAASQ,mBAAqBrQ,EACpCH,EAAMgQ,SAASS,SAAW,SAAU/H,GAClC,IAA4B,IAAxBsF,EAAQ0C,QAAQhI,GAGlB,WADAiI,SAAQC,KAAK,8BAAgClI,EAAI,mBAAqBvI,EAAe,uBAAyB6N,EAAQ6C,KAAK,MAAQ,IAGrI3Q,GAAOC,GAAgBuI,EACnBvC,GAAaA,EAAYjG,EAAOC,IAGtC,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,GAEVzC,EAAMuE,SAAW9B,EAEjB,IAAIkM,GAAgB,GAAItM,OAAMC,KAC9BqM,GAAc1O,SAAU,EACxB0O,EAAcpK,UACd,IAAIuK,MACAC,KAGA+B,EAAe/C,IAkGfkB,EAAgBb,EAAa0C,GAAgB,KAAK,EACtD7B,GAAc5O,SAASmD,EAA0B,GAAtB9B,EAAOS,aAA6B,GAARV,EACvDwN,EAAc5O,SAASC,EAAI0B,CAE3B,IAAI+O,GAAYrK,EAAQqK,WAExBA,GAAU1Q,SAASmH,IAAIiH,EAAiB,IAAM,EAAW,KAARzM,GACjDiN,EAActM,IAAIoO,GAclB9B,EAActM,IAAIgM,GACdjB,MAAMC,QAAQK,GAChBW,EAAchM,IAAIqO,MAAMrC,EAAenB,EAAmBQ,EAAQiD,IAAInB,KAEtEnB,EAAchM,IAAIqO,MAAMrC,EAAenB,EAAmB7N,OAAOwO,KAAKH,GAASiD,IAAInB,KAGrFV,GAEA,IAAIrL,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOiM,uBAC/DhJ,GAAa5D,SAASC,EAAI0B,CAE1B,IAAIqE,GAAY3E,EAAOgB,YAAY+L,EAAiB/M,EAAO+E,iBAAkB4J,EAA4C,GAA1B3O,EAAO+E,iBAAwB6J,GAAgB,EAC9IjK,GAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,EAEvBS,EAAME,IAAIoB,EAAiBE,EAAcgL,EAAe5I,GAExD3F,GA6BA,IAAIyF,OAAc,GAEdkJ,MAAa,EAEjBrP,GAAMkH,SAAW,SAAUC,GAEzB,MADAhB,GAAcgB,EACPnH,GAETA,EAAMkR,SAAW,SAAU/J,GAEzB,MADAkI,GAAalI,EACNnH,EAGT,IAAIwE,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAmCzD,OAjCAzC,GAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,GAGTA,EAAM0E,cAAgB,SAAUC,GAC1BuB,EAAMW,QACRoI,EAAcC,UAAUnB,KAE1Be,EAAkBU,QAAQ,SAAUX,GAClCA,EAAiBjK,OAAOD,KAE1BH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGTA,EAAMmR,WAAa,SAAUC,GAC3B,GAAI/R,GAAMW,CACVX,GAAI2Q,SAASoB,IAAMA,EAGnB/R,EAAI2Q,SAASC,QAAS,EAAI9K,EAAWkM,eAAe/P,EAAa8P,EAAK1P,EAAO4P,aAAcjS,EAAIuI,QAASlG,EAAOnB,eAGjHP,EAAMuR,WAAa,WACjB,MAAOvR,GAAMgQ,SAASoB,KAGjBpR,EA9UTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUuO,CAElB,IAAI3I,GAAa1G,EAAQ,eAErB+P,EAAcpP,EAAuB+F,GAErCC,EAAe3G,EAAQ,iBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC5C,EAAQ/G,EAAQ,UAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aAoTlBiH,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGE,cAAc,GAAGyL,UAAU,KAAKC,GAAG,SAAShT,EAAQU,EAAOJ,GACrI,YAuCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAIlQ,QAAS+N,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GA+B1L,QAASiE,KACP,GAAIC,GAAMC,EAAe,GAAG5B,SAAS6B,cACrC,IAAKF,KAAOC,EAAe3S,QAAU,GAArC,CAEA,GAAI6S,GAAMF,EAAeG,OAAO,SAAUvO,GACxC,MAAOA,GAAEvD,UAEP+R,EAAOL,EAAIK,KAEX7T,GADMwT,EAAIM,IACNH,EAAI7S,QACRiT,EAAKJ,EAAIb,IAAI,SAAU1S,GACzB,MAAOA,GAAE8B,SAASC,IACjB6R,KAAK,SAAUxT,EAAGiK,GACnB,MAAOjK,GAAIiK,GAEbsJ,IAAI,IAAM,KACVA,EAAG1C,QAAQ,SAAUlP,EAAGhC,GACtB,MAAO4T,GAAG5T,GAAKyE,KAAKgG,IAAImJ,EAAG5T,GAAI4T,EAAG5T,EAAI,GAAK,GAAKoD,EAAOO,eAGzD6P,EAAItC,QAAQ,SAAUjR,EAAGD,GAEvB,GAAIgC,GAAI4R,EAAG5T,EACPgC,KAAM/B,EAAE8B,SAASC,IACnB/B,EAAE8B,SAASC,EAAIA,EACf/B,EAAE6T,eACF7T,EAAE8T,uBAGFP,EAAI3T,EAAI,GAAGkC,SAASC,GAAK0R,EAAOtQ,EAAOO,aACzC0O,QAAQ2B,IAAI,2EAKhB,QAASC,GAAYZ,GACnB,GAAKA,EAAIa,qBAAT,CACA,GAAIR,GAAOL,EAAIK,KACXC,EAAMN,EAAIM,IAEVQ,GADIb,EAAe3S,OACf0S,EAAIe,MACRzU,EAAI0T,EAAIgB,MACRvU,EAAIuT,EAAIiB,IACRhK,EAAI+I,EAAIkB,OACRvS,EAAIqR,EAAItR,SAASC,CAGrB,OAFAwS,GAAc9J,IAAIxB,IAAIiL,EAAG7J,GAAIqJ,EAAM3R,GACnCwS,EAAc/J,IAAIvB,IAAIvJ,EAAGG,GAAI4T,EAAO1R,GAC7BwS,GAGT,QAASC,KA2IP,QAASC,GAAQ3U,GAGf4U,EAAYjU,KAAKgB,EAAO3B,GAE1B,QAAS6U,GAAW7U,GAClB8U,EAAenU,KAAKgB,EAAO3B,GAyQ7B,QAAS+U,GAAYC,EAAOC,EAAQC,GAClCD,EAAOE,oBACPH,EAAMI,aAAaH,EAAOI,aAC1BJ,EAAO3L,OAAO0L,GACdE,EAAM5Q,IAAI0Q,GAEZ,QAASM,GAAYN,EAAOE,EAAOD,GACjCA,EAAOE,oBACPH,EAAMI,cAAa,GAAIpR,OAAMuR,SAAUC,WAAWP,EAAOI,cACzDH,EAAM5L,OAAO0L,GACbC,EAAO3Q,IAAI0Q,GAEb,QAASS,GAAWT,EAAOU,EAAWC,GAEpC,IADA,GAAIC,GAAOF,EACJE,EAAKX,QACVW,EAAOA,EAAKX,MACb,IAAIC,GAAQU,CAEbb,GAAYC,EAAOU,EAAWR,GAC9BI,EAAYN,EAAOE,EAAOS,GAwG5B,QAASE,KACPC,GAEA,IAEIC,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAE1CoU,KAAcpU,GACZoU,EAAUE,aAAeF,EAAUE,YAAYJ,eAAeE,EAAUE,YAAYJ,gBAExFE,EAAUpE,SAASuE,kBAAmB,EACtCH,EAAUpE,SAASwE,aAAe,EAClCJ,EAAUpE,SAASyE,YAAc,EACjCL,EAAUpE,SAAS0E,YAAcN,EAAU/T,SAASyD,EAG/C8N,EAAe+C,SAAS3U,KAC3B4R,EAAehD,KAAK5O,GAChBA,EAAMgQ,SAAS6B,gBAAgBH,OAMrC1R,EAAMgQ,SAASwE,aAAexU,EAAM8G,OAAOkJ,SAASwE,aACpDxU,EAAMgQ,SAASyE,YAAczU,EAAM8G,OAAOkJ,SAASyE,YAE/C7C,EAAe+C,SAAS3U,KAC1B4R,EAAegD,OAAOhD,EAAelB,QAAQ1Q,GAAQ,GACjDA,EAAMgQ,SAAS6B,gBAAgBH,KAMvC,IAAImD,GAAuBnT,EAAOI,aAAeJ,EAAOoT,cACpDC,EAAmBrT,EAAOsT,cAAgBtT,EAAOoT,cACjDG,EAAeF,CAEnBG,GAAcC,SAAS3F,QAAQ,SAAUhR,GACvCA,EAAEyB,SAAWiG,EAAMkP,WAMrB,IAAIC,GAAe,CAcnB,IATAH,EAAcC,SAAS3F,QAAQ,SAAUhR,EAAGF,OACvB+C,KAAf7C,EAAE8W,SACJ9W,EAAE8W,SAAWD,GAAgB,EACxBA,EAAe7W,EAAE8W,WAE1BJ,EAAcC,SAAShD,KAAK,SAAUxT,EAAGiK,GACvC,MAAOjK,GAAE2W,SAAW1M,EAAE0M,WAGpBpP,EAAMkP,UACRrE,EAAUwE,SAASjV,EAAc,GAAVyC,KAAKyS,OACvB,CACLzE,EAAUwE,SAASjV,EAAI,CAEvB,IAAIwD,GAAI,EACJ2R,EAAaV,CAEjBG,GAAcC,SAAS3F,QAAQ,SAAU6D,EAAO3D,GAC1C2D,EAAMqC,WACRrC,EAAMrD,SAAS0E,WAAa1U,EAAMgQ,SAAS0E,WAAa5Q,EACxDuP,EAAMa,gBAgCN,IAyBMyB,GArDFnN,EAAI6K,EAAMzL,QAAUyL,EAAMzL,QAAUiN,EAKpCjN,EAAU,IAAO6N,EAAajN,EAElC,IAAI6K,EAAMqC,SAAU,CAGlB,GAAIC,GAAS,IAAOF,EAAaV,EACjC1B,GAAMhT,SAASyD,EAAIA,EAAI6R,MAEvBtC,GAAMhT,SAASyD,EAAIA,EAAI8D,CAGzB9D,IAAK8D,EACL6N,EAAajN,EAETkH,EAAQkG,IAA4BX,GAAgBzM,GACxD6K,EAAMhT,SAASmD,EAAI,MAEdkM,EAAQ,GAAKkG,GAA+B,IAAG9R,EAAI,GAExDuP,EAAMhT,SAASmD,GAAK/B,EAAQsB,KAAKC,MAAM0M,EAAQkG,GAiDjDvC,EAAMjB,iBAIVpS,EAAM4H,QAAUqN,CAGhB,IAAIY,GAAanU,EAAO4P,YACpBtR,GAAM8G,SAAW9G,IACnB6V,EAAanU,EAAOoU,iBAGtBpU,EAAOqU,YAAYtT,EAAOoT,EAAYnU,EAAOsT,cAAehT,GAExDoS,IAAcpU,IAChBA,EAAMgQ,SAASuE,kBAAmB,EAClCvU,EAAMgQ,SAASgG,eAAgB,EAC/BhW,EAAMqS,qBAIV,QAAS8B,KACP,GAAI8B,GAAKvU,EAAOsT,cACZxR,EAAI9B,EAAO4P,YACf4E,GAAYf,SAAS3F,QAAQ,SAAUhR,GAChCA,EAAEyB,UACPuD,GAAU,GAALyS,EACLzX,EAAE6B,SAASmD,EAAIA,EACfA,GAAU,GAALyS,KAIT,QAASvV,KACHC,EAAYC,WACd6B,EAAM5B,SAASC,MAAMC,OAAOC,EAAO6L,gBAEnCpK,EAAM5B,SAASC,MAAMC,OAAOC,EAAO4L,qBAGjCpI,GAAgB5D,WAClBuV,EAAQtV,SAASC,MAAMC,OAAOC,EAAO6L,gBAErCsJ,EAAQtV,SAASC,MAAMC,OAAOC,EAAO4L,qBAInCwJ,EAAwBxV,WAC1ByV,EAAqBvV,MAAMC,OAAO,UAElCsV,EAAqBvV,MAAMC,OAAO,SAztBtC,GAAII,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBuD,EAAO1D,EAAK0D,KACZyR,EAASnV,EAAKmV,OACdC,EAAYpV,EAAKoV,UACjBC,EAAqBrV,EAAKqV,mBAC1BC,EAAoBtV,EAAKsV,kBAEzBb,EAA6B,GAE7BnU,EAAQC,EAAO4P,aACftP,EAAQN,EAAOO,YAEfiE,GACFkP,WAAW,EACXsB,mBAAgBrV,IAGdrB,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOsC,EAAO,IAG7C,IAAIqQ,GAAgB,GAAI7S,OAAMC,KAC9BtC,GAAM2C,IAAIuS,EAEV,IAAIyB,IAAc,CAIlBhX,QAAOqF,eAAehF,EAAO,aAC3BuH,IAAK,WACH,MAAOoP,IAETnP,IAAK,SAAaoP,GACZA,IAAaD,GAAa3W,EAAM6W,YAAY9E,OAAO,SAAUvT,GAC/D,MAAOA,GAAEkX,WACRzE,IAAI,SAAUzS,GACf,MAAOA,GAAEsY,UAEXH,EAAcC,EACd5W,EAAMmI,mBAKVnI,EAAMmI,cAAgB,WACpB,GAAIiM,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAC1CoU,GAAUpE,SAASuE,iBACrB5D,QAAQ2B,IAAI,8BAAgCtS,EAAM+W,WAAa,wCAG/D3C,EAAUpE,SAASgG,eAAgB,GAIvChW,EAAMkU,cAAgBA,CAEtB,IAAI8C,GAAmB,GAAI3U,OAAM4U,UAEjCjX,GAAMqS,kBAAoB,WACxB,GAAI6E,GAAS9V,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAE7E7C,EAAI4Y,IACR,IAAK5Y,EAAEyR,SAAS6B,eAAhB,CAEAtT,EAAE6Y,0BAA0BJ,EAK5B,IAAIK,IAAM,EAAInH,EAAOoH,kBAAkBC,EAAkBhZ,GACrDiZ,EAAOH,EAAItO,IAAIvF,EAAI6T,EAAIrO,IAAIxF,EAG3BmO,GAFO0F,EAAItO,IAAIjF,EAAIuT,EAAItO,IAAIjF,EAErBvF,EAAEyR,SAAS6B,gBACjB4F,EAASlF,EAAYZ,GAIrB+F,EAAeL,EAAIM,UAAUF,GAK7BG,EAAmBF,EAAaG,QAAQC,GACxCC,EAAUpG,EAAIgB,MAAQhB,EAAIe,KAC1BsF,EAAUrG,EAAIiB,IAAMjB,EAAIkB,MAE5B+E,GAAiBpU,GAAKgU,EAAKI,EAAiB9T,GAAK0T,CACjD,IAAIrN,IAAc,CAEdyN,GAAiBpU,EAAI0T,IAGvB3Y,EAAE8B,SAASmD,EAAImO,EAAIe,KAAOqF,EAAU,EACpC5N,GAAc,GAEZyN,EAAiB9T,EAAIoT,IACvB3Y,EAAE8B,SAASyD,EAAI6N,EAAIkB,OAASmF,EAAU,EACtC7N,GAAc,GAEZA,GAAa5L,EAAE6T,iBAGrBpS,EAAMiY,YAAc,WAClB,MAAO/R,GAAMkP,WAIfzV,OAAOqF,eAAehF,EAAO,eAK3BuH,IAAK,WACH,SAAU2Q,OAAO1K,EAAmB0H,EAAcC,UAAW3H,EAAmB0I,EAAYf,cAIhGnV,EAAMmY,SAAW,WACf,IAAK,GAAIC,GAAOhX,UAAUnC,OAAQoZ,EAAO3K,MAAM0K,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQlX,UAAUkX,EAGzB,QAAQD,EAAK1D,SAAS,SAAUtV,GAC9B,OAA2C,IAApCW,EAAM6W,YAAYnG,QAAQrR,MAIrCW,EAAM+W,WAAalS,CAGnB,IAAIoO,GAAc5Q,MAAMC,MAAM1C,UAAU+C,IAEpCwQ,EAAiB9Q,MAAMC,MAAM1C,UAAU+H,OAavClF,EAAQf,EAAOgB,YAAYjB,EAAOC,EAAOsT,cAAehT,GAAO,EACnEgR,GAAQvQ,EAER,IAAIsB,GAAkBzC,EAAYqC,OAAOkB,EACzCd,GAAgB1D,SAASmD,EAAqC,IAAjC9B,EAAOsC,wBACpCD,EAAgB1D,SAASyD,GAAK,IAC9BC,EAAgB1D,SAASC,EAAI0B,EAC7BS,EAAME,IAAIoB,EAEV,IAAIgN,GAAYrP,EAAO6W,iBACvBvX,GAAO2K,iBAAiBoF,EAAUnF,SAAU,UAC5CmF,EAAU1Q,SAASmH,IAAI,IAAM,EAAW,KAARxF,GAChCS,EAAME,IAAIoO,EAEV,IAAIoF,GAAUzU,EAAOgB,YAAYjB,EAAOC,EAAO8W,mBAAoBxW,GAAO,EAC1EmU,GAAQ9V,SAASyD,EAA2B,IAAvBpC,EAAOsT,cAC5BmB,EAAQtR,KAAO,UACfmO,EAAQmD,EAER,IAAIsC,GAAU/R,EAAQ+R,SACtBA,GAAQpY,SAASmH,IAAY,GAAR/F,EAAa,EAAW,MAARO,GACrCmU,EAAQxT,IAAI8V,GACZzY,EAAM0V,UAAW,EACjB1V,EAAM0Y,YAAc,WAClBvC,EAAQlW,SAAU,GAEpBD,EAAM2Y,YAAc,WAClBxC,EAAQlW,SAAU,GAEpBD,EAAM2J,WAAa,WACjB3J,EAAM0Y,cAENjW,EAAMxC,SAAU,GAElBD,EAAM4Y,WAAa,WAEjBnW,EAAMxC,SAAU,EAIlB,IAAIiW,GAAc,GAAI7T,OAAMC,KAC5BG,GAAME,IAAIuT,GAIVlW,EAAMsH,cAAgB,SAAUjI,GAC9B6W,EAAYvT,IAAItD,GAChBA,EAAIyH,OAAS9G,EACbX,EAAIwZ,gBAAiB,EAIhBxZ,EAAIqF,gBAAerF,EAAIqF,cAAgB,SAAUC,GACpD,MAAOtF,GAAIsB,YAAYiE,OAAOD,KAEhCtF,EAAIkF,SAAWlF,GACfoX,EAAkB7H,KAAKvP,GAGzB,IAAIgX,GAAuB,GAAIhU,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,IACnFtQ,EAA2B,GAAvB9G,EAAOsT,cACX+D,EAAmB,GAAI1W,OAAMS,YAAY0F,EAAGA,EAAyB,EAAtB9G,EAAOnB,cAEtDyY,EAActS,EAAQuS,OAAOpY,SAASoQ,IACtCiI,EAAgBxS,EAAQyS,SAAStY,SAASoQ,GAC9CoF,GAAqBpF,IAAMiI,CAC3B,IAAIE,GAAe,GAAI/W,OAAMiB,KAAKyV,EAAkB1C,EACpD+C,GAAanZ,SAAU,EACvBmZ,EAAa/Y,SAASmD,EAAI9B,EAAO4P,aAAe5P,EAAOsT,aACvD,IAAIoB,IAA0B,EAAIhS,EAAc7E,SAAS6Z,EACzDA,GAAazY,YAAcyV,EAC3BA,EAAwB/R,OAAOC,GAAG,YAAa,SAAUxF,GACnDkB,EAAMqZ,eACRrZ,EAAMsZ,WACDtZ,EAAMuZ,SACbza,EAAE0B,QAAS,IAGbR,EAAMsH,cAAc8R,EAEpB,IAAII,IAAe,CACnB7Z,QAAOqF,eAAehF,EAAO,cAC3BuH,IAAK,WACH,MAAOiS,IAEThS,IAAK,SAAaoP,GACZA,IAAa4C,IACjBJ,EAAanZ,QAAU2W,EACvB4C,EAAe5C,MAInB5W,EAAM2C,IAAM,WACV,GAAI8W,GAAgBnD,EAAOtF,UAAM3P,GAAWD,UAE5C,OAAIqY,IACFzZ,EAAM0Z,cAAcD,GACbA,GAEA,GAAIpX,OAAMC,OAQrBtC,EAAMwJ,eAAiB,SAAUtL,GAe/B,QAASyb,GAAiBrG,GACxBA,EAAO6B,SAAS3F,QAAQ,SAAUhR,GAChCA,EAAEwR,SAAS4J,YAAc1b,EACzByb,EAAiBnb,KAZrB,GAAIsI,IAAS,EAAIoJ,EAAOmE,mBAAmBrU,EACvC8G,GAAOwN,cAAaxN,EAAOwN,YAAYrU,SAAU,GACrD6G,EAAOwN,YAAcpW,EAChBA,IACLA,EAAE+B,SAAU,EACR/B,EAAEgW,eAAehW,EAAEgW,gBACvBpN,EAAO+S,2BAA4B,EASnCF,EAAiBzb,KAQnB8B,EAAMuP,iBAAmB,WACvB,GAAIzI,IAAS,EAAIoJ,EAAOmE,mBAAmBrU,EACtC8G,GAAO+S,2BAEN/S,EAAOwN,cACTxN,EAAOwN,YAAYrU,SAAU,EAC7B6G,EAAOwN,YAAc,OAe3BtU,EAAM2H,OAAS,WACb,IAAK,GAAImS,GAAQ1Y,UAAUnC,OAAQoZ,EAAO3K,MAAMoM,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF1B,EAAK0B,GAAS3Y,UAAU2Y,EAK1B,SADSxD,EAAUvF,UAAM3P,GAAWgX,KAEpCA,EAAK7I,QAAQ,SAAUnQ,GACrBsR,QAAQqJ,OAAOha,EAAMmY,SAAS9Y,GAAM,2FAChCA,EAAIqW,UACNrW,EAAIsI,OAAOqJ,MAAM3R,EAAKmO,EAAmBnO,EAAIwX,cAE/C3B,EAAcvN,OAAOtI,KAGvBW,EAAMmI,iBACC,IAKTnI,EAAMia,iBAAmB,SAAU3G,GACjCtT,EAAMqZ,eAAiB/F,EACR,OAAXA,EACF8F,EAAavY,SAASoQ,IAAMiI,GAE5B7C,EAAqBpF,IAAM+H,EAC3BhZ,EAAM4Y,aACN5Y,EAAM2Y,cACN3Y,EAAM8G,OAAS9G,IAWnBA,EAAMka,YAAc,SAAU7G,GAC5B,SAAKA,EAAMqC,UAAYrC,EAAMvM,SAAW9G,KACxCqT,EAAM4G,iBAAiBja,GACvBkV,EAAcvN,OAAO0L,GAErBH,EAAWG,GACXrT,EAAMmI,gBACCnI,IAOTA,EAAMuZ,OAAS,WACb,GAAIvZ,EAAM8G,SAAW9G,EAAO,OAAO,CAInC,IAAIoU,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAC9CA,GAAM8G,OAAOoT,YAAYla,EAGzB,IAAIma,GAAM/F,EAAUd,QAAUtT,EAAMsT,MACpC,IAAK6G,EAAL,CACAA,EAAIxX,IAAI3C,EACR,IAAIoa,GAAIhG,EAAUiG,OAAO9W,OAEzBvD,GAAMyT,aAAa2G,GACnBA,EAAEE,YAAY,GAAIjY,OAAM4I,QACxB,IAAI7M,GAAI,GAAIiE,OAAM4I,QAAQvJ,EAAO4P,aAAc,EAAG,GAAGmC,aAAa2G,EAGlE,IAFApa,EAAMK,SAASsC,IAAIvE,GAEfgW,EAAUmG,WAAY,CAmBtBzG,EAJY9T,EACIoU,EAAUd,OACVc,EAAUL,WAQ9B,MAHA/T,GAAMgQ,SAAS6B,eAAiBuC,EAAUpE,SAAS6B,eACnD7R,EAAMqS,kBAAkB,IACxBrS,EAAMgP,OACChP,IA0BTA,EAAMwa,iBAAmBxa,EAAMuZ,OAE/BvZ,EAAMsZ,SAAW,WACf,IAAKtZ,EAAMqZ,eAAgB,OAAO,CAElCrZ,GAAMqZ,eAAeoB,UAAUza,EAC/B,IAAIoU,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAAMqZ,eACpD,IAAIjF,EAAUmG,WAAY,CAGxB,GAAIG,GAAQtG,EAAUpE,SAAS2K,aAC3BjL,EAAQgL,EAAMhK,QAAQ1Q,EACtB0P,IAAS,GAAG0E,EAAUpE,SAAS2K,aAAa/F,OAAOlF,EAAO,GAIhE,MADA1P,GAAMia,iBAAiB,OAChB,GAGTja,EAAM0Z,cAAgB,WACpB,IAAK,GAAIkB,GAAQxZ,UAAUnC,OAAQoZ,EAAO3K,MAAMkN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFxC,EAAKwC,GAASzZ,UAAUyZ,EAG1BxC,GAAK7I,QAAQ,SAAUnQ,GACjBA,EAAIqW,SACN1V,EAAMya,UAAUpb,IAEhB6V,EAAcvS,IAAItD,GAClBA,EAAIyH,OAAS9G,GAGXX,EAAI8R,aACR9R,EAAI8R,WAAa,SAAUC,GACzB/R,EAAI2Q,SAASoB,IAAMA,CAEnB,IAAInB,IAAS,EAAI9K,EAAWkM,eAAe/P,EAAa8P,EAAK1P,EAAO4P,aAAcjS,EAAIuI,QAASlG,EAAOnB,aACtGlB,GAAI2Q,SAASC,OAASA,EAGlB5Q,EAAIsB,YAENtB,EAAIsB,YAAY0D,OAAOC,GAAG,OAAQ,WAM5BjF,EAAIY,UAAS,EAAIiQ,EAAOC,eAAe9Q,EAAK4Q,EAAQ5Q,EAAIsB,YAAYC,cAG1E+P,QAAQmK,MAAM,4BAA+Bzb,EAAIkD,QAAU,oDAI/DlD,EAAIkS,WAAa,WACf,MAAOlS,GAAI2Q,SAASoB,QAIxBpR,EAAMmI,iBAGRnI,EAAMya,UAAY,WAChB,IAAK,GAAIM,GAAQ3Z,UAAUnC,OAAQoZ,EAAO3K,MAAMqN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF3C,EAAK2C,GAAS5Z,UAAU4Z,EAG1B3C,GAAK7I,QAAQ,SAAUnQ,GAErB6V,EAAcvS,IAAItD,GAClBA,EAAIyH,OAAS9G,EACbX,EAAIgb,OAAOY,WACX5b,EAAIuE,MAAM4D,IAAI,EAAG,EAAG,GACpBnI,EAAIgB,SAASmH,IAAI,EAAG,EAAG,GACvBnI,EAAIkW,SAAS/N,IAAI,EAAG,EAAG,GAEvBnI,EAAIqZ,cACJrZ,EAAIyX,UAGN9W,EAAMmI,iBAGRnI,EAAMkb,cAAgB,YAChB,EAAIhL,EAAOmE,mBAAmBrU,KAAWA,GAAU4R,EAAe+C,SAAS3U,IAE7E2Q,QAAQmK,MAAM,iDAEhBlJ,EAAegD,OAAOhD,EAAelB,QAAQ1Q,GAAQ,GACrD4R,EAAehD,KAAK5O,GAMhBA,EAAMgQ,SAAS6B,gBAAgBH,IA8MrC,IAAI/Q,IAAc,EAAIyD,EAAc7E,SAASkD,EAC7C9B,GAAY0D,OAAOC,GAAG,YAAa,SAAUxF,GACvCoH,EAAMkP,UAAWpV,EAAMgP,OAAYhP,EAAM8W,QAC7ChY,EAAE0B,QAAS,IAGbR,EAAMgP,KAAO,WACN9I,EAAMkP,YACPpV,EAAM8G,SAAW9G,GAASA,EAAM8G,OAAOqU,WACzCnb,EAAM8G,OAAO+P,YAAY9E,OAAO,SAAUvT,GACxC,MAAOA,GAAEkX,UAAYlX,IAAMwB,IAC1BwP,QAAQ,SAAUhR,GACnB,MAAOA,GAAEsY,UAGb5Q,EAAMkP,WAAY,EAClBpC,EAAQkC,GACRlV,EAAMmI,kBAGRnI,EAAM8W,MAAQ,WACR5Q,EAAMkP,YACVlP,EAAMkP,WAAY,EAClBlC,EAAWgC,GACXlV,EAAMmI,kBAGRnI,EAAM8G,OAAS9G,CAEf,IAAIwE,IAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAO0T,IACrDiF,GAAqBC,EAAQ1X,QAAS3D,MAAOA,EAAOyC,MAAOA,GAC/DzC,GAAM0E,cAAgB,SAAUC,GAM9BhE,EAAYiE,OAAOD,GACnBH,GAAgBI,OAAOD,GACvByW,GAAmBxW,OAAOD,GAE1BjE,KAKFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,EAGT,IAAIsb,KAAc,CAMlBtb,GAAMgQ,SAAS2K,gBAEfhb,OAAO4b,iBAAiBvb,GACtBuE,SACEgD,IAAK,WACH,GAAIiU,GAKAC,GAAQhZ,EAAO0T,EAEnB,OADInW,GAAMsU,cAAamH,GAAQD,EAAQC,GAAMvD,OAAOlH,MAAMwK,EAAOhO,EAAmBxN,EAAMsU,YAAY/P,WAC/FkX,IAGXlB,YACEhT,IAAK,WACH,MAAO+T,KAET9T,IAAK,SAAavC,GAEhB,KADAqW,GAAcrW,GACI,CAChB,GAAI8O,GAAY/T,EAAMsT,OAClBU,EAAYhU,EAAMgQ,SAAS+D,WAE3B,EAAI7D,EAAOmE,mBAAmBrU,KAAWA,GAC3C2Q,QAAQ2B,IAAI,wCAGdtS,EAAMgQ,SAAS2K,aAAanL,QAAQ,SAAU6D,GAG5CS,EAAWT,EAAOU,EAAWC,KAE/BhU,EAAMgQ,SAAS2K,oBAkBvB,KAAK,GAAIe,MAAKlF,IAZF,SAAekF,GACzB1b,EAAM0b,GAAK,WACT,GAAIC,GAAanF,EAAmBkF,GAAG1K,MAAMwF,EAAoBpV,UACjE,OAAIua,IACF3b,EAAM0Z,cAAciC,GACbA,GAEA,GAAItZ,OAAMC,QAMfoZ,GAGR,OAAO1b,GAz8BTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUwT,CAElB,IAAI5N,GAAa1G,EAAQ,eAErB2G,EAAe3G,EAAQ,iBAEvB2F,EA8BJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IA9B5C+F,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC7C,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/BoW,EAAWnd,EAAQ,aAEnB4c,EAAU7b,EAAwBoc,GAElC1L,EAASzR,EAAQ,WA+BjBmT,KAEA2F,EAAmB,GAAIlV,OAAMwZ,KAC7B/I,EAAgB,GAAIzQ,OAAMwZ,KAC1B/D,EAAc,GAAIzV,OAAM4I,UAs4BzBvF,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGiW,YAAY,GAAGhW,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKuK,GAAG,SAAStd,EAAQU,EAAOJ,GAC3K,YA0BA,SAASqK,KACP,GAAIA,GAAQ,GAAI4S,MAEhB,OADA5S,GAAM6S,IAAM;u2hDACL7S;EAGT,QAAS8S,KACP,MAAO;;CA/BTvc,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQqK,MAAQA,EAChBrK,EAAQmd,IAAMA,OA8BRC,GAAG,SAAS1d,EAAQU,EAAOJ,GACjC,YAkCA,SAAS4E,KAgBP,QAASyY,KACP,GAAIC,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACvEkb,EAAQD,EAAMC,MAEdxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAAwBA,EAAOyV,cAI/BD,EAAME,MACR,GAAIF,EAAMG,SAAWH,EAAMI,UAAYJ,EAAMK,QAAQC,IAAIC,eAAeP,EAAMQ,WAAYR,EAAMS,oBAC9F,GAAIT,EAAM3b,YAAYqc,QAAUrc,EAY9B,MAXA2b,GAAMS,kBAAkBE,IAAIX,EAAMY,aAElCZ,EAAMI,SAASpJ,OAAOE,oBACtB8I,EAAMI,SAASpJ,OAAO6J,aAAab,EAAMS,mBAKzCjW,EAAOzG,SAAS0K,KAAKuR,EAAMS,uBAE3BjW,GAAOsL,mBAGJ,IAAIkK,EAAMc,cAAcne,OAAS,EAAG,CACzC,GAAIoe,GAAYf,EAAMc,cAAc,GAAGld,MACnCmd,KAAc5a,IAChB4a,EAAU7J,oBAEV8J,EAAUC,sBAAsBF,EAAU3J,aAE1C4I,EAAMQ,WAAWU,8BAA8BlB,EAAMmB,YAAYC,kBAAkBpB,EAAMQ,WAAWa,QAASL,KAOrH,QAASvd,GAAcjB,GACrB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAIsB,IAAtBA,EAAOyT,WAAX,CAIA,GAAI+B,EAAME,OACR,GAAIF,EAAMc,cAAcne,OAAS,GAC3Bqd,EAAMK,QAAQC,IAAIC,eAAeP,EAAMQ,WAAYR,EAAMS,mBAAoB,CAC/E,GAAIM,GAAYf,EAAMc,cAAc,GAAGld,MACvC,IAAImd,IAAc5a,EAChB,MAKF,IAFA6Z,EAAMI,SAAW5V,EAEbA,EAAOyV,aAAc,MAEzBD,GAAMI,SAASlJ,oBACf8J,EAAUC,sBAAsBjB,EAAMI,SAAShJ,aAE/C4I,EAAMY,YAAYnS,KAAKuR,EAAMS,mBAAmBE,IAAIK,QAInD,CACL,GAAIxW,EAAOyV,aAAc,MAEzBsB,GAAWhK,WAAW+J,EAAYlK,aAElC5M,EAAOuT,OAAOyD,YAAYD,GAC1B/W,EAAOuT,OAAO0D,UAAUjX,EAAOzG,SAAUyG,EAAOkX,WAAYlX,EAAOlD,OAEnEkD,EAAOiN,UAAYjN,EAAOwM,OAE1BsK,EAAYjb,IAAImE,GAGlBhI,EAAE0B,QAAS,EAEXsG,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,UAAWiT,IAG/B,QAAS7b,GAAgB3B,GACvB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAIsB,IAAtBA,EAAOyT,WAAX,CAIA,GAAI+B,EAAME,MACRF,EAAMI,aAAWrb,OACZ,CAEL,OAAyBA,KAArByF,EAAOiN,UACT,MAGFjN,GAAOuT,OAAOyD,YAAYF,EAAYlK,aACtC5M,EAAOuT,OAAO0D,UAAUjX,EAAOzG,SAAUyG,EAAOkX,WAAYlX,EAAOlD,OACnEkD,EAAOiN,UAAUpR,IAAImE,GACrBA,EAAOiN,cAAY1S,GAGrByF,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,eAAgBvC,IAzIpC,GAAI3F,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEpB,EAAQmB,EAAKnB,MACbyC,EAAQtB,EAAKsB,MAEb9B,GAAc,EAAIyD,EAAc7E,SAASkD,EAE7C9B,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,OAAQ8X,GAC9Bzb,EAAY0D,OAAOC,GAAG,aAAc7D,EAEpC,IAAIod,GAAa,GAAIxb,OAAMuR,QACvB0J,EAAY,GAAIjb,OAAM4I,OAiI1B,OAAOtK,GA7KThB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQ4E,OAASA,CAEjB,IAAIyB,GAAe3G,EAAQ,iBAEvB2F,EAIJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAJ5C+F,GAEvC8K,EAASzR,EAAQ,aAuKlBmH,gBAAgB,GAAG4L,UAAU,KAAKyM,GAAG,SAASxf,EAAQU,EAAOJ,GAChE,YAEAY,QAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,GAEKlG,GAAQ0Z,QAAU,WAC9B,GAAIrP,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,4jvBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,CAKtB,IAAItJ,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI1S,GAAW,GAAIvJ,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAM2H,EAAMvH,OAAS,IAAM,EAAG,EAGnF,OADW,IAAIQ,OAAMiB,KAAKsI,EAAU/K,OAKxB9B,EAAQgS,UAAY,WAClC,GAAI3H,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM;+tnBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GACIM,GAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IADxC,GACkD2H,EAAMvH,OAAS,IADjE,GAC2E,EAAG,EAEtF,OADA+c,GAAIzb,WAAW,MAAQ,KAAO,GACvB,GAAId,OAAMiB,KAAKsb,EAAK/d,OAIf9B,EAAQqH,UAAY,WAClC,GAAIgD,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM;ukpBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,OAIpB9B,EAAQka,KAAO,WACxB,GAAI7P,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,w7CAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,OAIlB9B,EAAQoa,OAAS,WAC5B,GAAI/P,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,o8CAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,YAIzBge,IAAI,SAASpgB,EAAQU,EAAOJ,GAClC,YAqCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAgClQ,QAASqf,KAwHP,QAASC,GAAYjgB,IACd,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAC3CC,GAAWA,EAAUrgB,IAG3B,QAASiB,GAAcjB,IAMhB,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAC3Chf,GAAQA,EAAOC,GAAcrB,GAC7BkM,GAAMA,EAAKlM,GAEfsB,EAAcC,SAASC,EAAmB,GAAfC,EAE3BzB,EAAE0B,QAAS,GAKb,QAASye,GAA8BC,GACrC,GAAIpgB,GAAIsB,EAAc+c,aAAa+B,EAMnC,OALApgB,GAAE0E,GAAKtB,EACPpD,EAAEgF,GAAK1B,EACPtD,EAAEgF,GAAK,GACPhF,EAAE0E,EAAIT,KAAKgG,IAAIhG,KAAKiG,IAAIlK,EAAE0E,EAAG,GAAI,GACjC1E,EAAEgF,EAAIf,KAAKgG,IAAIhG,KAAKiG,IAAIlK,EAAEgF,EAAG,GAAI,GAC1BhF,EAGT,QAASsgB,GAAetgB,IACjB,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAG3CG,GAAUA,EAASvgB,IAGzB,QAAS2B,KACPL,EAAcC,SAASC,EAAmB,GAAfC,EAG7B,QAASG,KACFG,EAASC,QACVH,EAAYC,WACVwK,GAAoBvK,EAASC,MAAMC,OAAO,UAE1CqK,GAAoBvK,EAASC,MAAMC,OAAO,WAnLlD,GAAII,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/D+d,EAAYne,EAAK6J,KACjBA,MAAqB3J,KAAdie,MAA0Bje,GAAYie,EAC7CC,EAAgBpe,EAAKke,SACrBA,MAA6Bhe,KAAlBke,MAA8Ble,GAAYke,EACrDC,EAAare,EAAKiI,MAClBA,MAAuB/H,KAAfme,EAA2B,yBAA2BA,EAC9DC,EAAYte,EAAKue,KACjBA,MAAqBre,KAAdoe,GAAkCA,EACzCje,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDK,EAASV,EAAKU,OACdE,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EACxD4d,EAAwBxe,EAAKiK,mBAC7BA,MAA+C/J,KAA1Bse,GAA6CA,EAClEC,EAAmBze,EAAKwJ,YACxBA,MAAmCtJ,KAArBue,EAAiCle,EAAOnB,aAAeqf,CAmBpE/d,KAAQA,EAASH,EAAOC,aAAe+d,EAAO,IAAO,KAE1D,IAAIxd,GAAeT,GAASie,EAAO,IAAO,KAAQhe,EAAOS,aACrDC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAeoK,EAEf3K,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,cAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,KAErDH,EAAM4H,QAAU/F,CAEhB,IAAIY,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACII,GAAO,GAAIR,OAAMkc,cAAcrc,EAAcE,EAAe,EAAG,EACpD,IAAIC,OAAMY,oBAAoB,EAE7CJ,GAAKM,UAAyB,GAAfjB,EAAoB,EAAG3B,EAGtC,IAAI6C,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAIC,EACtBmf,GACHtf,EAAcC,SAASmD,EAAqC,IAAjC9B,EAAOsC,wBAClC5D,EAAcC,SAASyD,EAAI,KAFlB1D,EAAcC,SAASmD,EAAY,GAAR/B,CAKtC,IAAIZ,EACAuI,GAAMyW,WACRhf,EAAWuI,GAEXvI,EAAW,GAAIwB,OAAMgB,kBACrBxC,EAASiY,aAAc,EAxDzB,SAA8B1P,EAAO0W,GACnC,GAAqB,gBAAV1W,IAET,GAAI/G,OAAM0d,eAAgBC,KAAK5W,EAAO,SAAU8U,GAC9CA,EAAQ+B,MAAQ/B,EAAQgC,MAAQ7d,MAAM8d,oBACtCL,EAAe7O,IAAMiN,EACrB4B,EAAe3V,aAAc,QAE1B,IAAIf,EAAMgX,UACfN,EAAe7O,IAAM7H,MAChB,CAAA,IAAIA,EAAMiX,oBAEV,KAAM,mCAAqCjX,CADhD0W,GAAe7O,IAAM7H,EAAM8U,QAE7B4B,EAAe3V,aAAc,GA4CRf,EAAOvI,GAE9B,IAAI4C,GAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAIlB,IAAIM,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,IAC1B4b,IAAM3b,EAAgB9D,SAAU,EAEpC,IAAIgE,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAE7CO,GAAY0D,OAAOC,GAAG,WAAYya,GAClCpe,EAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,WAAY8a,GAClCze,EAAY0D,OAAOC,GAAG,aAAc7D,GAEpCC,GAEA,IAAIye,OAAY9d,EAIhBrB,GAAMsgB,QAAU,SAAU/hB,GAExB,MADA4gB,GAAY5gB,EACLyB,GAETA,EAAMugB,WAAa,SAAUhiB,GAE3B,MADA8gB,GAAW9gB,EACJyB,GAkETA,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGFA,EA7QTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUuf,CAElB,IAAI5Z,GAAuBzG,EAAQ,qCAI/B0G,GAFsB3F,EAAwB0F,GAEjCzG,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aA+OlBgH,oCAAoC,GAAGC,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKgP,IAAI,SAAS/hB,EAAQU,EAAOJ,GACtL,YA+BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAIlQ,QAASghB,KAYL,QAASC,GAAqBtX,EAAO0W,GACjC,GAAqB,gBAAV1W,IAEP,GAAI/G,OAAM0d,eAAgBC,KAAK5W,EAAO,SAAU8U,GAC5CA,EAAQ+B,MAAQ/B,EAAQgC,MAAQ7d,MAAM8d,oBACtCL,EAAe7O,IAAMiN,EACrB4B,EAAe3V,aAAc,QAE9B,IAAIf,EAAMgX,UACbN,EAAe7O,IAAM7H,MAClB,CAAA,IAAIA,EAAMiX,oBAEV,KAAM,mCAAqCjX,CAD9C0W,GAAe7O,IAAM7H,EAAM8U,QAE/B4B,EAAe3V,aAAc,EA4CjC,QAASwW,KACDle,GAAOzC,EAAM2H,OAAOlF,GACxBA,EAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,GAC1ChC,EAAM2C,IAAIF,EAEV,IAAIwB,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAC1BS,EAAME,IAAIsB,GAEVO,EAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,IAErDme,EAAQpR,QAAQ,SAAU5G,GACtB,MAAO5I,GAAM2H,OAAOiB,KAExBgY,KACA5gB,EAAM6W,YAAc+J,EAGxB,QAASC,KACLF,GAEA,IAAIG,GAA+B,IAAf5e,EAChB6e,EAAgC,IAAhB3e,EAChBS,EAAO,GAAIR,OAAMkc,cAAcuC,EAAeC,EAAe,EAAG,EACpEle,GAAKM,UAAU2d,EAAgB,GAAIC,EAAgB,EAAGxgB,EAKtDygB,GAAQxR,QAAQ,SAAUnQ,EAAKf,GA+D3B,QAASyB,GAAcjB,GACnB,IAAyB,IAArBmiB,EAAShhB,QAAb,CAIAnB,EAAE0B,QAAS,CAEX,KACInB,EAAI2L,OACN,MAAO9M,GAEL,YADAmB,EAAIyb,MAAQ5c,GAAK,uBAGrBgjB,EAAc7hB,EACd4hB,EAAS5gB,SAASC,EAAmB,GAAfC,GAG1B,QAASE,KACLwgB,EAAS5gB,SAASC,EAAIC,EAClBlB,EAAI8hB,SAAS9hB,EAAI8hB,UAjFzB,GAAK9hB,EAAI+J,OAAU/J,EAAI+hB,KAAvB,CAGA,GAAIH,GAAW,GAAI5e,OAAMC,KACzB2e,GAAS1e,QAAU,yBACnBvC,EAAM2C,IAAIse,GACVL,EAAQhS,KAAKqS,EAEb,IAAIpV,GAAMvN,EAAI+iB,EACVC,EAAMve,KAAKC,MAAM1E,EAAI+iB,EAEzBJ,GAAS5gB,SAASmD,EAAI,EAAI9B,EAAOS,aAAeD,EAAe2J,EAC/DoV,EAAS5gB,SAASyD,EAAIjC,EAAS,EAAIO,EAAgBkf,EACnDL,EAAS5gB,SAASC,EAAIC,CAItB,IAAI6C,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,GAE7CvC,EAAW,GAAIwB,OAAMgB,iBAGzB,IAFAxC,EAASiY,aAAc,EACnBzZ,EAAI+J,OAAOsX,EAAqBrhB,EAAI+J,MAAOvI,GAC3CxB,EAAI+hB,KAAM,CACV,GAAIA,GAAO9f,EAAYqC,OAAOtE,EAAI+hB,MAC9BG,EAAU,EAAI7f,EAAO8f,mBACrBhZ,EAAI9G,EAAO+f,WAAaL,EAAKvd,OAAOhC,OACpC6f,EAAIN,EAAKO,cACTD,GAAIxf,EAAeqf,IACnBH,EAAKQ,gBAAgB1f,EAAeqf,EAASnf,EAAgBmf,GAC7D/Y,EAAI9G,EAAO+f,WAAaL,EAAKvd,OAAOhC,OACpC6f,EAAIN,EAAKO,gBAEbV,EAASte,IAAIye,GACbH,EAASG,KAAOA,EAChBA,EAAK/gB,SAASmD,EAAInE,EAAIwiB,OAAS,IAAO3f,EAAewf,GACrDN,EAAK/gB,SAASyD,EAAIzE,EAAIyiB,QAAU,GAAM1f,EAAgBoG,EACtD4Y,EAAK/gB,SAASC,EAAmB,IAAfC,EAEtB,GAAIkD,GAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAMhD,IALAT,EAAcuC,IAAIc,GAKdpE,EAAI+R,IAAK,CACT,GAAI2Q,IAAU,EAAI5c,EAAWkM,eAAe/P,EAAajC,EAAI+R,IAAKlP,EAAcE,EAAe7B,EAG/F0gB,GAASc,QAAUA,EAIvBd,EAASte,IAAIvC,GACbqC,EAAME,IAAIse,EAEV,IAAItgB,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,aAAc7D,EAwBpC,IAAIuhB,GAAW3iB,EAAI+hB,KAAO,KAAQ,SAC9Ba,EAAa5iB,EAAI+hB,KAAO,IAAQ,QACpCH,GAASvgB,WAAa,WACdwhB,GAAwBhB,IAAgB7hB,EACxCwB,EAASC,MAAMC,OAAOohB,GACnBthB,EAASC,MAAMC,OAAOJ,EAAYC,WAAaohB,EAAWC,GAC7DhB,EAASc,UAAS,EAAI7R,EAAOC,eAAe8Q,EAAUA,EAASc,QAASphB,EAAYC,YACpFvB,EAAIyb,OAAOja,EAASC,MAAMC,OAAO,WAGzCkgB,EAASvgB,aAETugB,EAAStgB,YAAcA,EACvBsgB,EAAS1c,QAAUnE,KAIvBJ,EAAMuE,QAAUqc,EAAQ3P,IAAI,SAAUrI,GAClC,MAAOA,GAAErE,UAEbvE,EAAMuE,QAAQqK,KAAKnM,GAGvB,QAAS/B,KACLkgB,EAAQpR,QAAQ,SAAU5G,GACtB,MAAOA,GAAElI,eA/MjB,GAAIS,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnB0f,EAAU7f,EAAK6f,QACfxf,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxD4gB,EAAYjhB,EAAKihB,UACjBrgB,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EACxDsgB,EAAelhB,EAAKkgB,QACpBA,MAA2BhgB,KAAjBghB,EAA6B,EAAIA,EAkB3CC,EAA+B,EAAtB5gB,EAAOS,aAChBD,EAAmC,EAAImf,GAAvB5f,EAAQ6gB,GAExBlgB,EAAgBggB,EAAY,EAAIA,EAAYlgB,EAC5C3B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,kBAChBvC,EAAMwC,SAAW,WACb,MAAO,IAAMxC,EAAMuC,QAAU,KAAOye,EAAU,IAGlD,IAAIuB,GAAOxf,KAAKyf,KAAKxB,EAAQ/hB,OAASoiB,GAClCxf,EAASH,EAAOS,aAAeC,EAAgBmgB,CACnDviB,GAAM4H,QAAU/F,EAEhB7B,EAAMyiB,aAAe,SAAUja,GAK3B,MAJA4Z,GAAYhgB,EAAgBoG,EAC5B3G,EAASH,EAAOS,aAAeC,EAAgBmgB,EAC/CviB,EAAM4H,QAAU/F,EAChBgf,IACO7gB,EAGX,IAAIkiB,IAAuB,EACvBhB,EAAc,KACdiB,MAAiB,EACrBniB,GAAMkiB,qBAAuB,WACzB,GAAIrW,GAAMzK,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,OAI9E,OAFA8gB,IAA+B,IAARrW,EACvBsW,EAAiBtW,EACV7L,EAGX,IAAIyC,OAAQ,GACR+B,MAAkB,GAClBoc,IAiKJ,OA/JAC,KAiJA7gB,EAAM0E,cAAgB,SAAUC,GAC5Bic,EAAQpR,QAAQ,SAAU5G,GACtBA,EAAEjI,YAAYiE,OAAOD,KAGzBH,EAAgBI,OAAOD,GACvBjE,KAGJV,EAAM6E,KAAO,SAAUC,GAEnB,MADAf,iBAAgBgB,YAAYD,GACrB9E,GAGJA,EAnQXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAUkhB,CAElB,IAAItb,GAAa1G,EAAQ,eAErB2G,EAAe3G,EAAQ,iBAEvB2F,EAsBJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAtB5C+F,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aAmQlBiH,WAAW,EAAEC,SAAS,EAAEC,gBAAgB;mBAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKkR,IAAI,SAASjkB,EAAQU,EAAOJ,GAC/I,YA0DA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASmO,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GAuwB1L,QAASkV,GAASxkB,GAChB,OAAQykB,MAAMC,WAAW1kB,KAAO2kB,SAAS3kB,GAG3C,QAAS4kB,GAAU5kB,GACjB,MAAoB,iBAANA,GAGhB,QAAS6kB,GAAWC,GAClB,GAAIC,KACJ,OAAOD,IAA8D,sBAA3CC,EAAQ1gB,SAASxD,KAAKikB,GAKlD,QAASE,GAASC,GAChB,MAAuE,gBAA/C,KAATA,EAAuB,YAAcC,EAAQD,MAAwB1V,MAAMC,QAAQyV,IAAkB,OAATA,EAG7G,QAASzV,GAAQtP,GACf,MAAOqP,OAAMC,QAAQtP,GAGvB,QAASilB,GAASjlB,GAChB,MAAoB,gBAANA,GAGhB,QAASklB,GAAQllB,GACf,MAA8D,gBAA5C,KAANA,EAAoB,YAAcglB,EAAQhlB,OAC/CA,EAAEklB,QAOX,QAASC,GAAmBlH,EAAOX,EAAYc,EAASgH,GAetD,QAASC,GAAQtlB,EAAGO,GACdglB,GAAWA,EAAQC,iBAAmBD,EAAQC,gBAAgB3kB,OAAS,GACzE0kB,EAAQC,gBAAgB,GAAGC,MAAMzlB,EAAGO,GAIxC,QAASmlB,KACPC,EAAiB,SAAUvgB,EAAGpF,EAAGO,GAC/B,MAAO+kB,GAAQ,EAAI/kB,EAAG,KACrB,GAAI,IAGT,QAASqlB,KACPD,EAAiB,SAAUvgB,EAAGpF,EAAGO,GAC/B,MAAO+kB,GAAQ,EAAG,GAAO,EAAI/kB,KAC5B,IAAK,GA7BVgd,EAAWsI,iBAAiB,cAAe,WACzC,MAAOxH,IAAQ,KAEjBd,EAAWsI,iBAAiB,YAAa,WACvC,MAAOxH,IAAQ,KAEjBd,EAAWsI,iBAAiB,YAAa,WACvC,MAAOR,IAAQ,KAEjB9H,EAAWsI,iBAAiB,UAAW,WACrC,MAAOR,IAAQ,IAGjB,IAAIE,GAAUhI,EAAWuI,YAmBzB5H,GAAMjY,OAAOC,GAAG,mBAAoB,SAAUgY,GAC5CoH,EAAQ,GAAK,MAGfpH,EAAMjY,OAAOC,GAAG,UAAW,WACzBwf,MAGFxH,EAAMjY,OAAOC,GAAG,eAAgB,WAC9B0f,MAGF1H,EAAMjY,OAAOC,GAAG,SAAU,WACxBwf,MAGFxH,EAAMjY,OAAOC,GAAG,cAAe,WAC7B0f,MAIJ,QAASD,GAAiBI,EAAIC,EAAOC,GACnC,GAAI7gB,GAAI,EACJ8gB,EAAKC,YAAY,WACnBJ,EAAG3gB,EAAG6gB,EAAO7gB,EAAI6gB,KACjB7gB,GACS6gB,GACPG,cAAcF,IAEfF,EACH,OAAOE,GAp6BT,GAAIjB,GAA4B,kBAAXoB,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUrlB,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXolB,SAAyBplB,EAAIslB,cAAgBF,QAAUplB,IAAQolB,OAAO7kB,UAAY,eAAkBP,IAElQiM,EAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCsZ,EAAUnmB,EAAQ,YAElBomB,EAAWzlB,EAAuBwlB,GAElCE,EAAYrmB,EAAQ,cAEpBsmB,EAAa3lB,EAAuB0lB,GAEpCE,EAAUvmB,EAAQ,YAElBwmB,EAAW7lB,EAAuB4lB,GAElCE,EAAUzmB,EAAQ,YAElB0mB,EAAW/lB,EAAuB8lB,GAElCE,EAAY3mB,EAAQ,cAEpB4mB,EAAajmB,EAAuBgmB,GAEpC7Z,EAAe9M,EAAQ,iBAEvB0M,EAAgB/L,EAAuBmM,GAEvC+Z,EAAmB7mB,EAAQ,qBAE3B8mB,EAAoBnmB,EAAuBkmB,GAE3CE,EAAY/mB,EAAQ,cAEpBgnB,EAAarmB,EAAuBomB,GAEpCE,EAAWjnB,EAAQ,aAEnBknB,EAAYvmB,EAAuBsmB,GAEnCE,EAAennB,EAAQ,iBAEvBonB,EAAgBzmB,EAAuBwmB,GAEvCE,EAAWrnB,EAAQ,aAEnBsnB,EAMJ,SAAiC1mB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,GAN5NqmB,GAElC5V,EAASzR,EAAQ,WAEjB2G,EAAe3G,EAAQ,iBA4BvBiL,EAAQ,WAsBV,QAASsc,KAEP,MAAOC,IAAYlU,OAAO7B,EAAO8O,qBAEnC,QAASkH,KAWP,MALUF,KAAwB/U,IAAI,SAAU5S,GAC9C,MAAOA,GAAEkG,QAAQwN,OAAO,SAAUvJ,GAChC,MAAOA,GAAEvI,YAGFkmB,OAAO,SAAUxnB,EAAGiK,GAC7B,MAAOjK,GAAEuZ,OAAOtP,QAUpB,QAASwd,GAAYC,EAAQC,GAiB3B,MAhBAC,KAAe,EACfC,GAAgBF,EAChBG,GAAWhJ,YAAc4I,EACrBA,EAAO7T,qBACJkU,KACHA,GAAsB,SAA6BnoB,GACjD,MAAOA,GAAE8T,qBAEXoU,GAAWpiB,OAAOC,GAAG,eAAgBoiB,KAGnCA,KACFD,GAAWpiB,OAAOsiB,eAAe,eAAgBD,IACjDA,OAAsBrlB,IAGnBolB,GAAWG,MAGpB,QAASC,KACPN,IAAe,EACXG,KACFD,GAAWpiB,OAAOsiB,eAAe,eAAgBD,IACjDA,OAAsBrlB,IAQ1B,QAASylB,KACP,GAAIne,GAAI,GAAItG,OAAM0kB,cAIlB,OAHApe,GAAEwD,aAAa,WAAY,GAAI9J,OAAM+J,gBAAgB,GAAIH,eAAc,EAAG,EAAG,EAAG,EAAG,EAAG,MAG/E,GAAI5J,OAAM2kB,KAAKre,EAAGse,IAO3B,QAASC,KACP,MAAO,IAAI7kB,OAAMiB,KAAK,GAAIjB,OAAM8kB,eAAe,KAAO,EAAG,GAAIC,IAU/D,QAASC,KACP,GAAIzJ,GAAcxc,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAAIiB,OAAMC,MAE5Fga,GACFK,QAAS,GAAIta,OAAMilB,UAAU,GAAIjlB,OAAM4I,QAAW,GAAI5I,OAAM4I,SAC5D2b,MAAOE,IACPS,OAAQL,IACRhnB,OAAQ0d,EACRnB,SAAS,EACTgH,SAAS,EACTpf,OAAQ,GAAI6G,GAAS3L,QACrBoB,aACE6mB,SAAMnmB,GACN2b,UAAO3b,GACPomB,UAAOpmB,IAMX,OAFAib,GAAMsK,MAAMjkB,IAAI2Z,EAAMiL,QAEfjL,EAiET,QAASoL,GAAexnB,GACtB,GAAIoc,GAAQ+K,EAAYnnB,EAyBxB,OAvBAoc,GAAMsK,MAAMnK,QAAU,SAAUkL,GAC9B,GAAIlM,GAAOa,EAAMc,aAEbuK,IAAQlM,GAAQA,EAAKxc,OAAS,GAChCqd,EAAMG,SAAU,EAChBH,EAAMsL,SAAU,GAEhBtL,EAAMG,SAAU,GAIpBH,EAAMsK,MAAMnD,QAAU,SAAUkE,GAC9BrL,EAAMmH,QAAUkE,GAGlBrL,EAAMsK,MAAMW,OAASjL,EAAMiL,OAEvBllB,MAAMwlB,gBAAkB3nB,YAAkBmC,OAAMwlB,gBAClDrE,EAAmBlH,EAAOpc,EAAQoc,EAAMsK,MAAMnK,QAASH,EAAMsK,MAAMnD,SAGrE9e,GAAaiK,KAAK0N,GAEXA,EAAMsK,MAOf,QAASkB,GAAU5nB,EAAQC,GACzB,GAAI6I,GAAM5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC1E2H,EAAM3H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAE1E2mB,GAAS,EAAIlD,EAAStlB,UACxB+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAAQ8I,IAAKA,EAAKD,IAAKA,EACrF/B,aAAc9G,EAAOC,IAKvB,OAFA8lB,IAAYrX,KAAKmZ,GAEVA,EAGT,QAASC,GAAY9nB,EAAQC,GAC3B,GAAI8nB,IAAW,EAAIlD,EAAWxlB,UAC5B+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAC9D8G,aAAc9G,EAAOC,IAKvB,OAFA8lB,IAAYrX,KAAKqZ,GAEVA,EAGT,QAASC,GAAUhoB,EAAQC,GACzB,GAAIgoB,IAAS,EAAIlD,EAAS1lB,UACxB+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,GAIhE,OADA+lB,IAAYrX,KAAKuZ,GACVA,EAST,QAASC,GAAepd,EAAM5B,EAAOsW,EAAM7d,GACzC,GAAI3B,IAAW3B,EAAGyM,GAOdmd,GAAS,EAAIhd,EAAc5L,UAC7B+B,YAAaA,GAAapB,OAAQA,EAAQC,aAPzB,IAOqDiJ,MAAOA,EAAOsW,KAAMA,EAAM7d,OAAQA,GAG1G,OADAokB,IAAYrX,KAAKuZ,GACVA,EAGT,QAASvd,GAAgByU,EAAUjW,EAAOsW,EAAM7d,GAC9C,GACIsmB,IAAS,EAAIhd,EAAc5L,UAC7B+B,YAAaA,GAAa+d,SAAUA,EAAUlf,aAF7B,GAEyDiJ,MAAOA,EAAOsW,KAAMA,EAAM7d,OAAQA,GAG9G,OADAokB,IAAYrX,KAAKuZ,GACVA,EAOT,QAASE,GAAoBC,GAG3B,IAAK,GAFDjH,GAAUkH,OAAOC,UAAUF,GAAQA,EAAO,EAErClQ,EAAOhX,UAAUnC,OAAQoZ,EAAO3K,MAAM0K,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC9FD,EAAKC,EAAO,GAAKlX,UAAUkX,EAG7B,IAAI0I,GAAU3I,CACTkQ,QAAOC,UAAUF,IAAOtH,EAAQyH,QAAQH,EAC7C,IAAII,IAAO,EAAInD,EAAkBhmB,UAAW+B,YAAaA,GAAa0f,QAASA,EAASK,QAASA,GAEjG,OADA4E,IAAYrX,KAAK8Z,GACVA,EAGT,QAASC,GAAYC,GACdA,IAAaA,EAAc,SAAqBlN,GACnD,MAAO/K,SAAQ2B,IAAI,WAAaoJ,IAElC,IAAImN,IAAK,EAAIpD,EAAWlmB,UAAWqpB,YAAaA,EAAatnB,YAAaA,IAE1E,OADA2kB,IAAYrX,KAAKia,GACVA,EAGT,QAASC,GAAW5oB,EAAQC,GAC1B,GAAIkX,IAAM,EAAIsO,EAAUpmB,UAAW+B,YAAaA,GAAapB,OAAQA,EAAQC,aAAcA,GAE3F,OADA8lB,IAAYrX,KAAKyI,GACVA,EAGT,QAAS0R,GAAe7oB,EAAQC,GAC9B,GAAIkX,IAAM,EAAIwO,EAActmB,UAAW+B,YAAaA,GAAapB,OAAQA,EAAQC,aAAcA,GAE/F,OADA8lB,IAAYrX,KAAKyI,GACVA,EAGT,QAAS2R,GAAY9oB,EAAQC,EAAc6N,GACzC,GAAIib,IAAW,EAAI5D,EAAW9lB,UAC5B+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAAQ8N,QAASA,GAIjF,OADAiY,IAAYrX,KAAKqa,GACVA,EAiBT,QAAStmB,GAAIzC,EAAQC,EAAc+oB,EAAMC,GAEvC,OAAe9nB,KAAXnB,EAEG,MAAIA,GAAOwV,SAAiBxV,MAENmB,KAAzBnB,EAAOC,IACTwQ,QAAQC,KAAK,oBAAqBzQ,EAAc,YAAaD,GACtD,GAAImC,OAAMC,OAGf6gB,EAAS+F,IAASvb,EAAQub,GACrBF,EAAY9oB,EAAQC,EAAc+oB,GAGvCvG,EAASziB,EAAOC,IACX2nB,EAAU5nB,EAAQC,EAAc+oB,EAAMC,GAG3CpG,EAAU7iB,EAAOC,IACZ6nB,EAAY9nB,EAAQC,GAGzB6iB,EAAW9iB,EAAOC,IACb+nB,EAAUhoB,EAAQC,GAGvBmjB,EAASpjB,EAAOC,IACX2oB,EAAW5oB,EAAQC,GAGxBojB,EAAQrjB,EAAOC,IACV4oB,EAAe7oB,EAAQC,OADhC,GAQF,QAASipB,KACP,GAAIpgB,GAAM5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAO9E,OAAO0mB,IAHLuB,OAAQrgB,GAGc,SAAUA,EANxB5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAShF,QAASkoB,KACP,GAAItb,GAAU5M,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEzEmoB,GACFC,OAAQ,GAOV,YAJgBnoB,KAAZ2M,IACFub,EAAMC,OAAS7b,EAAQK,GAAWA,EAAQ,GAAKA,EAAQrO,OAAOwO,KAAKH,GAAS,KAGvEgb,EAAYO,EAAO,SAAUvb,GAGtC,QAASyb,KAOP,MAAOzB,IAHL0B,QAHkBtoB,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,IAAmBA,UAAU,IAMzD,WAG5B,QAASuoB,GAAgBC,GAKvB,MAAO1B,IAHLC,WAAe9mB,KAAPuoB,EAAmBA,EAAK,cAGV,UAW1B,QAASjiB,KACP,IAAK,GAAImS,GAAQ1Y,UAAUnC,OAAQoZ,EAAO3K,MAAMoM,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF1B,EAAK0B,GAAS3Y,UAAU2Y,EAG1B,IAAI8P,MAAY3R,OAAO1K,EAAmB,GAAIsc,KAAIzR,IAClD,SAAK0R,EAAW/Y,UAAM3P,GAAWmM,EAAmBqc,MACpDA,EAAOra,QAAQ,SAAUnQ,GACvB,GAAIf,GAAI2nB,GAAYvV,QAAQrR,EAC5B,MAAIf,GAAK,GAGP,MADAqS,SAAQ2B,IAAI,2GACL,CAHG2T,IAAYrR,OAAOtW,EAAG,MAM7B,GAUT,QAASyrB,KACP,IAAK,GAAInP,GAAQxZ,UAAUnC,OAAQoZ,EAAO3K,MAAMkN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFxC,EAAKwC,GAASzZ,UAAUyZ,EAG1B,KAAK,GAAIvc,GAAI,EAAGA,EAAI+Z,EAAKpZ,OAAQX,IAAK,CACpC,GAAIe,GAAMgZ,EAAK/Z,EACf,KAAkC,IAA9B2nB,GAAYvV,QAAQrR,KAAgBA,EAAIyH,OAAOqR,SAAS9Y,GAG1D,MADAsR,SAAQ2B,IAAI,2BAA6BjT,IAClC,CAET,IAAIA,EAAIqW,WACDqU,EAAW/Y,UAAM3P,GAAWmM,EAAmBnO,EAAIwX,cAAe,OAAO,EAGlF,OAAO,EAOT,QAASmT,KACP/D,GAAYzW,QAAQ,SAAUhR,GAC5BA,EAAEyB,SAAU,EAAUzB,EAAE8U,SAAW9U,EAAE8U,OAAOuD,aAAarY,EAAE8U,OAAO3L,OAAOnJ,KAE3EynB,GAAYrR,OAAO,EAAGqR,GAAYhnB,QAWpC,QAAS0E,GAAOkB,GACd,GAAIiC,IAAS,EAAIqe,EAAS5lB,UACxB+B,YAAaA,GACbuD,KAAMA,EACNyR,OAAQ3T,EACR4T,UAAW5O,EACX6O,oBACEsR,UAAWsB,EACXJ,YAAaM,EACbtB,YAAayB,EACbvB,UAAWyB,EACXvB,eAAgBA,EAChBxd,gBAAiBA,EACjByd,oBAAqBA,EACrBM,YAAaA,EACbG,WAAYA,GAEdrS,kBAAmBwP,GAEnBgE,mBAKF,OAFAhE,IAAYrX,KAAK9H,GAEVA,EAWT,QAASlC,KACP,GAAIiN,GAAiB0U,IAAgBE,GAAWhJ,YAAYjL,oBACxD0X,KAAYC,sBAAsBvlB,EAEtC,IAAIwlB,GAAiBlE,IACjBD,EAAcD,IACdqE,EAAUpE,EAAYlU,OAAO,SAAUvT,GACzC,MAAOA,GAAEsI,SAAWtI,GAEtB6rB,GAAQ7a,QAAQ,SAAUjR,GACxBA,EAAEyR,SAAS6B,iBAAiBA,GAAiB4U,GAAWhJ,YACpDlf,EAAEsb,4BACJtb,EAAE4J,gBACF5J,EAAEsb,2BAA4B,GAE5Btb,EAAEyR,SAASgG,eAAezX,EAAE2V,kBAG9BqS,KAEFE,GAAWrJ,cAAgBkN,GAAkBF,EAAgB3D,KAG/D9hB,GAAa6K,QAAQ,WACnB,GAAIrO,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEtElB,GADMiB,EAAKkW,IACFlW,EAAKjB,QACdyc,EAAUxb,EAAKwb,QACfiK,EAAQzlB,EAAKylB,MACbW,EAASpmB,EAAKomB,OACd5mB,EAAcQ,EAAKR,YAEnB+O,EAAQtO,UAAU,EAEtBmpB,GAA2B5pB,EAAaypB,GACxClqB,EAAOsT,oBAEP8J,GAAU9V,IAAI,EAAG,EAAG,GAAG+V,sBAAsBrd,EAAOwT,aACpD8W,GAAQvP,WAAWwP,gBAAgBvqB,EAAOwT,aAE1CgX,GAAWljB,IAAI,EAAG,GAAI,GAGlBtH,EAAOyqB,qBAAqBD,GAAWE,gBAAgB1qB,EAAOyqB,qBAClED,GAAWjX,aAAa+W,IAASK,YAEjClO,EAAQnV,IAAI8V,GAAWoN,GAGvB,IAAI/rB,GAAIioB,EAAMhb,SAASG,aAAa,YAAYC,KAChDrN,GAAE,GAAK2e,GAAU9Z,EAAE7E,EAAE,GAAK2e,GAAUxZ,EAAEnF,EAAE,GAAK2e,GAAUhd,CAKvD,IAAI8c,GAAgBT,EAAQmO,iBAAiBV,GAAgB,EAC7DW,GAAmB3N,EAAewJ,EAAOW,GAEzC5iB,GAAa+K,GAAO0N,cAAgBA,EAEhCld,EAAO8P,WAAU9P,EAAO8P,SAASgb,iBAAmB5N,IAG1D,IAAI6N,GAAStmB,GAAaumB,OAEtB3E,KACF0E,EAAOrc,KAAK6X,IAGdR,EAAYzW,QAAQ,SAAUhR,GAC5B,MAAOA,GAAEkG,cAAcumB,IAIzB,IAAIE,GAAeF,EAAOlZ,OAAO,SAAUuK,GACzC,MAAOA,GAAM8O,aAEY,IAAvBD,EAAalsB,SACfksB,EAAa3b,QAAQ,SAAUhH,GAC7B,MAAOA,GAAE4iB,aAAc,IAEzBf,EAAQ7a,QAAQ,SAAUjR,GACxB,MAAOA,GAAEgR,sBAGbkX,GAAWmB,SAAU,EACrBjjB,GAAa6K,QAAQ,SAAUnR,GAC7B,MAAOA,GAAEupB,SAAU,IAMvB,QAAS2C,GAA2Bc,EAAcjB,IAC/C,QAAS,OAAQ,SAAS5a,QAAQ,SAAU8b,GAC3C,GAAI3qB,GAAc0qB,EAAaC,EAC3B3qB,IAAeypB,EAAe1Z,QAAQ/P,EAAY4qB,WAAa,IACjEF,EAAaC,OAAmBjqB,GAEhCV,EAAYiE,cAKlB,QAAS4mB,GAAY5E,EAAO1H,GAC1B,GAAIuM,GAAK7E,EAAMhb,SAASG,aAAa,YAAYC,KACjDyf,GAAG,GAAKvM,EAAM1b,EACdioB,EAAG,GAAKvM,EAAMpb,EACd2nB,EAAG,GAAKvM,EAAM5e,EACdmrB,EAAGthB,aAAc,EAEjByc,EAAM3mB,SAAU,EAChB2mB,EAAMhb,SAAS8f,wBACf9E,EAAMhb,SAAS+f,qBAIjB,QAASZ,GAAmB3N,EAAewJ,EAAOW,GAChD,GAAInK,EAAcne,OAAS,EAAG,CAC5B,GAAI2sB,GAAWxO,EAAc,EAC7BoO,GAAY5E,EAAOgF,EAAS1M,OAC5BqI,EAAOlnB,SAAS0K,KAAK6gB,EAAS1M,OAC9BqI,EAAOtnB,SAAU,EACjBsnB,EAAO/T,wBAEPoT,GAAM3mB,SAAU,EAChBsnB,EAAOtnB,SAAU,EASrB,QAAS4rB,IAAyBlP,EAASH,EAAO6J,GAChD1J,EAAQmP,cAActP,EAAO6J,EAC7B,IAAI+D,GAAiBlE,GACrB,OAAOvJ,GAAQmO,iBAAiBV,GAAgB,GAOlD,QAASE,IAAkBF,GACzB,GAAI/N,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAGvEub,GAFMN,EAAMhF,IACHgF,EAAMnc,OACLmc,EAAMM,SAChBiK,EAAQvK,EAAMuK,MACdW,EAASlL,EAAMkL,OACf/K,EAAQH,EAAMG,MACdiB,EAAcpB,EAAMoB,WAGxB8M,GAFkBlO,EAAM1b,YAEgBypB,EACxC,IAAIhN,KASJ,OAPIK,KACFL,EAAgByO,GAAyBlP,EAASH,EAAOiB,GACzDsN,EAAmB3N,EAAewJ,EAAOW,GACzCA,EAAOtnB,SAAU,EACjB2mB,EAAM3mB,SAAU,GAGXmd,EAxrBT,GAAI9b,IAAcykB,EAAQgG,UAOtBpnB,MACAshB,MA6BAM,IAAe,EACfC,OAAgBnlB,GAChBqlB,OAAsBrlB,GAEtB6oB,IAAa,EAiCbjD,GAAgB,GAAI5kB,OAAM2pB,mBAAoBlrB,MAAO,QAAUgY,aAAa,EAAMmT,SAAU5pB,MAAM6pB,mBAYlG9E,GAAiB,GAAI/kB,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,EAAMmT,SAAU5pB,MAAM6pB,mBAuCnGzF,GAEJ,WACE,GAAIjK,GAAQ,GAAIna,OAAM8pB,SAAS,GAAI,GAE/B7P,EAAQ+K,GAuCZ,OAtCA/K,GAAME,MAAQA,EACdF,EAAMS,kBAAoB,GAAI1a,OAAM4I,QACpCqR,EAAMY,YAAc,GAAI7a,OAAM4I,QAC9BqR,EAAMQ,WAAa,GAAIza,OAAM+pB,MAC7B9P,EAAMc,iBAGNd,EAAMmB,gBAAcpc,GAEpBgrB,OAAOpI,iBAAiB,YAAa,SAAUqI,GAE7C,GAAI9F,GAAe,CACjB,GAAI+F,GAAa/F,GAAcgG,WAAWC,uBAC1CjQ,GAAMhZ,GAAK8oB,EAAMI,QAAUH,EAAW7Z,MAAQ6Z,EAAW9qB,MAAQ,EAAI,EACrE+a,EAAM1Y,IAAOwoB,EAAMK,QAAUJ,EAAW3Z,KAAO2Z,EAAW1qB,OAAU,EAAI,MAItE2a,GAAMhZ,EAAI8oB,EAAMI,QAAUL,OAAOO,WAAa,EAAI,EAClDpQ,EAAM1Y,GAAMwoB,EAAMK,QAAUN,OAAOQ,YAAe,EAAI,IAEzD,GAEHR,OAAOpI,iBAAiB,YAAa,SAAUqI,GACzChQ,EAAMc,cAAcne,OAAS,GAE/BqtB,EAAMQ,2BAERxQ,EAAMG,SAAU,EAGhBH,EAAMsL,SAAU,IACf,GAEHyE,OAAOpI,iBAAiB,UAAW,SAAUqI,GAC3ChQ,EAAMG,SAAU,IACf,GAEIH,KAqWLgB,GAAY,GAAIjb,OAAM4I,QACtByf,GAAa,GAAIroB,OAAM4I,QAAQ,EAAG,GAAI,GACtCuf,GAAU,GAAInoB,OAAMuR,OA2KxBhP,IAMA,IAAImoB,KACFppB,OAAQA,EACR+jB,eAAgBA,EAChBtB,YAAaA,EACbS,aAAcA,EACdvlB,YAAaA,GACb0rB,aAAc5nB,EAAa4nB,aAC3BhD,SAAUA,EACVplB,OAAQA,EAUV,OALAjF,QAAOqF,eAAe+nB,GAAiB,cAAgBxlB,IAAK,WACxD,MAAO2iB,KACN1iB,IAAK,SAAakB,GACnB,MAAOwhB,IAAaxhB,KAEjBqkB,KAGLV,cACiBhrB,KAAfgrB,OAAO5iB,MACT4iB,OAAO5iB,QAGT4iB,OAAO5iB,IAAIC,MAAQA,GAGjBvK,IACFA,EAAOJ,SACL0K,IAAKC,IAIa,kBAAXujB,SAAyBA,OAAOC,KACzCD,UAAWvjB,KA6GVyjB,WAAW,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,aAAa,EAAEC,WAAW,EAAE9hB,gBAAgB,GAAG+hB,oBAAoB,GAAG5nB,gBAAgB,GAAG6nB,aAAa,GAAGC,YAAY,GAAGC,WAAW,GAAGC,YAAY,GAAGpc,UAAU,GAAGnN,OAAS,KAAKwpB,IAAI,SAASpvB,EAAQU,EAAOJ,GAC7P,YAoCA,SAAS+uB,GAAkBvC,GAUzB,QAAS3mB,GAAOD,GAEdopB,GAAW,EACXC,GAAc,EACdC,GAAY,EAEZtpB,EAAa6K,QAAQ,SAAU8M,GAEzB4R,EAAgBxd,QAAQ4L,GAAS,GACnC4R,EAAgBtf,KAAK0N,EAGvB,IAAI6R,GAAcC,EAAW9R,GACzBe,EAAY8Q,EAAY9Q,UACxBgR,EAAWF,EAAYE,SAEvB5G,EAAQ8D,IAAclO,CAC1B0Q,GAAWA,GAAYtG,EAEvB6G,GACEhS,MAAOA,EACPmL,MAAOA,EACPpK,UAAWA,EAAWgR,SAAUA,EAChCE,WAAY,UACZC,gBAAiB,UACjBlD,gBAAiB,QACjBmD,SAAU,YACVC,SAAU,WACVC,OAAQ,aAIRC,UAAW,aAGbN,GACEhS,MAAOA,EACPmL,MAAOA,EACPpK,UAAWA,EAAWgR,SAAUA,EAChCE,WAAY,UACZjD,gBAAiB,OACjBmD,SAAU,YACVC,SAAU,WACVC,OAAQ,kBAGVtqB,EAAOgF,KAAK,QACViT,MAAOA,EACPe,UAAWA,EACXO,YAAatB,EAAMpc,WAKzB,QAASkuB,GAAW9R,GAClB,MAAIA,GAAMc,cAAcne,QAAU,GAE9BovB,SAAUQ,EAAQtR,sBAAsBjB,EAAMiL,OAAO7T,aAAanQ,QAClE8Z,cAAWhc,KAIXgtB,SAAU/R,EAAMc,cAAc,GAAG8B,MACjC7B,UAAWf,EAAMc,cAAc,GAAGld,QAKxC,QAASouB,KACP,GAAIntB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEkb,EAAQnb,EAAKmb,MACbmL,EAAQtmB,EAAKsmB,MACbpK,EAAYlc,EAAKkc,UACjBgR,EAAWltB,EAAKktB,SAChBE,EAAaptB,EAAKotB,WAClBC,EAAkBrtB,EAAKqtB,gBACvBlD,EAAkBnqB,EAAKmqB,gBACvBmD,EAAWttB,EAAKstB,SAChBC,EAAWvtB,EAAKutB,SAChBC,EAASxtB,EAAKwtB,OACdC,EAAYztB,EAAKytB,SAErB,KAA0B,IAAtBtS,EAAMiS,QAAsCltB,KAAdgc,EAIhC,YADAf,EAAM8O,aAAc,EAKtB,IAAIwD,GAAanH,IAA+B,IAAtBnL,EAAMiS,GAAuB,CACrD,GAAIO,IACFxS,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAEV6D,GAAOgF,KAAKulB,EAAWE,GAOzB,GAAIrH,IAAkD,IAAzCnL,EAAMkS,GAAmBD,QAA+DltB,KAAvCib,EAAM3b,YAAY2qB,GAAgC,CAE9G,GAAIyD,IACFzS,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAIL6c,GAAUrN,SAAS4J,cAAa0C,EAAM8O,aAAc,GAEzDlQ,EAAcmC,GAGd2P,EAAa3jB,KAAKolB,EAAUM,GAC5B1qB,EAAOgF,KAAKolB,EAAUM,GAElBA,EAASvuB,SACX8b,EAAM3b,YAAY2qB,GAAmB3qB,EACrC2b,EAAM3b,YAAY8mB,MAAQ9mB,GAG5BqtB,GAAc,EACdC,GAAY,EAId,GAAI3R,EAAMiS,IAAejS,EAAM3b,YAAY2qB,KAAqB3qB,EAAa,CAC3E,GAAIquB,IACF1S,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAGV6D,GAAOgF,KAAKqlB,EAAUM,GAEtBhB,GAAc,EAEd1R,EAAMjY,OAAOgF,KAAK,qBAIM,IAAtBiT,EAAMiS,IAAyBjS,EAAM3b,YAAY2qB,KAAqB3qB,IACxE2b,EAAM3b,YAAY2qB,OAAmBjqB,GACrCib,EAAM3b,YAAY8mB,UAAQpmB,GAC1BgD,EAAOgF,KAAKslB,GACVrS,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,UAKzB,QAASgb,GAAcmC,IACL,EAAInN,EAAOmE,mBAAmBgJ,GACpCnC,gBAGZ,QAAS+T,KAGP,IAAK,GADDC,IAAc,EACT5wB,EAAI,EAAGA,EAAI4vB,EAAgBjvB,OAAQX,IAC1C,OAA6C+C,KAAzC6sB,EAAgB5vB,GAAGqC,YAAY8mB,MAAqB,CACtDyH,GAAc,CACd,OAIJ,MAAIA,GACKnB,EAGLG,EAAgBnc,OAAO,SAAUuK,GACnC,MAAOA,GAAM3b,YAAY8mB,QAAU9mB,IAClC1B,OAAS,EAjMd,GAAIoF,GAAS,GAAI6G,GAAS3L,QAEtBwuB,GAAW,EACXC,GAAc,EACdC,GAAY,EAEZY,EAAU,GAAIxsB,OAAM4I,QACpBijB,KAiMAvtB,GACFC,SAAUquB,EACV5P,SAAU,WACR,MAAO2O,IAETppB,OAAQA,EACRP,OAAQA,EACRknB,UAAWA,EAGb,OAAO5qB,GArPThB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQiuB,iBAAe3rB,GACvBtC,EAAQQ,QAAUuuB,CAElB,IAAIxiB,GAAU7M,EAAQ,UAElByM,EAIJ,SAAgC7L,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAJjDiM,GAElC4E,EAASzR,EAAQ,WAsBjBuuB,EAAejuB,EAAQiuB,aAAe,GAAI9hB,GAAS3L,UAwNpDiS,UAAU,GAAGnN,OAAS,KAAK8qB,IAAI,SAAS1wB,EAAQU,EAAOJ,GAC1D,YAmBA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS+vB,KAgCL,QAASC,KACLC,GAASA,EACTC,EAAUtvB,SAAWqvB,EACrBE,EAAUvvB,QAAUqvB,EAlCxB,GAAInuB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEwnB,EAAcznB,EAAKynB,YACnBtnB,EAAcH,EAAKG,YAEnBtB,EAAQ,GAAIqC,OAAMC,MAClBmtB,EAAkB,GAAIptB,OAAMC,KAChCtC,GAAM2C,IAAI8sB,EAEV,IAAIprB,GAAS,GAAI6G,GAAS3L,OAC1B8E,GAAOC,GAAG,UAAWskB,EAErB,IAAI8G,GAAa,oDAAoDC,MAAM,IACvE3O,EAAU0O,EAAWze,IAAI,SAAUyK,GACnC,OAAS1Q,KAAM,WACP,MAAO3G,GAAOgF,KAAK,UAAWqS,IAC/B0F,KAAM1F,KAEb6T,GAAY,EAAIhK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,IACtGoO,GAAgB9sB,IAAI4sB,GAGpBvO,EADiB,mDAAoD2O,MAAM,IACtD1e,IAAI,SAAUyK,GAC/B,OAAS1Q,KAAM,WACP,MAAO3G,GAAOgF,KAAK,UAAWqS,IAC/B0F,KAAM1F,IAEjB,IAAI8T,IAAY,EAAIjK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,IACtGmO,GAAUvvB,SAAU,EACpBwvB,EAAgB9sB,IAAI6sB,EAEpB,IAAIF,IAAQ,EAORM,GAAW,EAAIrK,EAAkBhmB,UAAW+B,YAAaA,EAAa+f,QAAS,EAAGe,UAAW,GAAKpB,UAAYhW,KAAM,WAC5G,MAAO3G,GAAOgF,KAAK,UAAW,MAC/B+X,KAAM,WACjBqO,GAAgB9sB,IAAIitB,EACpB,IAAI9rB,GAAI8rB,EAASvvB,SAASyD,GAAK,IAAOyrB,EAAU3nB,QAAUgoB,EAAShoB,QAEnEoZ,KAAaI,KAAM,QAASpW,KAAMqkB,IAAiBjO,KAAM,YAAapW,KAAM,WACpE,MAAO3G,GAAOgF,KAAK,UAAW,SAC3B+X,KAAM,QAASpW,KAAM,WACxB,MAAO3G,GAAOgF,KAAK,UAAW,QAEtC,IAAIwmB,IAAc,EAAItK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,EAAGe,UAAW,IAuBtH,OAtBAqN,GAAgB9sB,IAAIktB,GACpBA,EAAYxvB,SAASyD,EAAIA,EAAI,IAAO8rB,EAAShoB,QAAUioB,EAAYjoB,SACnE5H,EAAM4H,QAAU2nB,EAAU3nB,QAAUgoB,EAAShoB,QAAUioB,EAAYjoB,QAEnE6nB,EAAgBpvB,SAASyD,EAAI+rB,EAAYjoB,QAEzCjI,OAAOqF,eAAehF,EAAO,WACzBuH,IAAK,WACD,OAAQsoB,EAAYtrB,QAASqrB,EAASrrB,QAAS+qB,EAAQE,EAAUjrB,QAAUgrB,EAAUhrB,SAAS4hB,OAAO,SAAUxnB,EAAGiK,GAC9G,MAAOjK,GAAEuZ,OAAOtP,WAK5BgnB,EAAS9oB,OAAS0oB,EAAU1oB,OAASyoB,EAAUzoB,OAAS+oB,EAAY/oB,OAAS9G,EAC7EA,EAAM0E,cAAgB,SAAUumB,GAC5B4E,EAAYnrB,cAAcumB,GAC1BsE,EAAU7qB,cAAcumB,GACxB2E,EAASlrB,cAAcumB,GACvBuE,EAAU9qB,cAAcumB,IAGrBjrB,EA3FXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAU6vB,CAElB,IAAI9jB,GAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCga,EAAmB7mB,EAAQ,qBAE3B8mB,EAAoBnmB,EAAuBkmB,GAE3C/Z,EAAe9M,EAAQ,gBAEPW,GAAuBmM,KAwFxCE,gBAAgB,GAAG+hB,oBAAoB,GAAGnpB,OAAS,KAAKyrB,IAAI,SAASrxB,EAAQU,EAAOJ,GACvF,YAoBA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAqBlQ,QAASswB,GAAU1wB,GACjB,GAAIA,YAAegD,OAAMiB,KAAM,CAC7BjE,EAAIuM,SAAS+f,oBACb,IAAIlqB,GAAQpC,EAAIuM,SAASokB,YAAYjnB,IAAIvF,EAAInE,EAAIuM,SAASokB,YAAYjnB,IAAIjF,CAE1E,OADAzE,GAAIuM,SAASzI,UAAU1B,EAAO,EAAG,GAC1BpC,EACF,GAAIA,YAAegD,OAAM0kB,eAAgB,CAC9C1nB,EAAIssB,oBACJ,IAAIsE,GAAS5wB,EAAI2wB,YAAYjnB,IAAIvF,EAAInE,EAAI2wB,YAAYjnB,IAAIjF,CAEzD,OADAzE,GAAI8D,UAAU8sB,EAAQ,EAAG,GAClB5wB,GAIX,QAASqD,GAAYjB,EAAOI,EAAQG,EAAOkuB,GACzC,GAAIrvB,GAAWqvB,EAAiB,GAAI7tB,OAAMgB,mBAAoBvC,MAAO,WAAcqvB,EAAgBC,MAC/F3tB,EAAQ,GAAIJ,OAAMiB,KAAK,GAAIjB,OAAMS,YAAYrB,EAAOI,EAAQG,GAAQnB,EAaxE,OAZA4B,GAAMmJ,SAASzI,UAAkB,GAAR1B,EAAa,EAAG,GAErCyuB,EACFrvB,EAASC,MAAMC,OAAOC,EAAO2L,cAE7B3L,EAAO2K,iBAAiBlJ,EAAMmJ,SAAU5K,EAAO2L,cAGjDlK,EAAMuN,SAASqgB,aAAe5uB,EAC9BgB,EAAMuN,SAASsgB,cAAgBzuB,EAC/BY,EAAMuN,SAASugB,aAAevuB,EAEvBS,EAET,QAASsT,GAAYtT,EAAOhB,EAAOI,EAAQG,GACzCS,EAAMmJ,SAAShI,MAAMnC,EAAQgB,EAAMuN,SAASqgB,aAAcxuB,EAASY,EAAMuN,SAASsgB,cAAetuB,EAAQS,EAAMuN,SAASugB,cACxH9tB,EAAMuN,SAASqgB,aAAe5uB,EAC9BgB,EAAMuN,SAASsgB,cAAgBzuB,EAC/BY,EAAMuN,SAASugB,aAAevuB,EAGhC,QAASkC,GAAsBrC,EAAQf,GACrC,GAAI2B,GAAQ,GAAIJ,OAAMiB,KAAK,GAAIjB,OAAMS,YAAY0tB,EAAqB3uB,EAAQ4uB,GAAsBN,EAAgBC,MAGpH,OAFA3tB,GAAMmJ,SAASzI,UAAgC,GAAtBqtB,EAA2B,EAAG,GACvDxvB,EAAO2K,iBAAiBlJ,EAAMmJ,SAAU9K,GACjC2B,EAGT,QAAS8V,KACP,GACI/P,GAAI,KACJkoB,EAAK,GAAIruB,OAAMsuB,KACnBD,GAAGE,OAAO,EAAG,GACbF,EAAGG,QAJK,MAIMroB,GACdkoB,EAAGG,OALK,MAKKroB,GACbkoB,EAAGG,OAAO,EAAG,EAEb,IAAIjS,GAAM,GAAIvc,OAAMyuB,cAAcJ,EAGlC,OAFA9R,GAAIzb,UAAU,GAAG,KAAU,GAEpB,GAAId,OAAMiB,KAAKsb,EAAKuR,EAAgBC,OAhG7CzwB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQyiB,mBAAqBziB,EAAQ0iB,WAAa1iB,EAAQ4H,cAAgB5H,EAAQ0H,iBAAmB1H,EAAQyZ,mBAAqBzZ,EAAQiW,cAAgBjW,EAAQ+W,gBAAkB/W,EAAQuS,aAAevS,EAAQwB,aAAexB,EAAQ0xB,oBAAsB1xB,EAAQyxB,oBAAsBzxB,EAAQgyB,wBAA0BhyB,EAAQiF,wBAA0BjF,EAAQoD,aAAepD,EAAQ+V,cAAgB/V,EAAQkD,YAAclD,EAAQ+C,aAAe/C,EAAQ4C,gBAAcN,GACpdtC,EAAQgxB,UAAYA,EACpBhxB,EAAQ2D,YAAcA,EACtB3D,EAAQgX,YAAcA,EACtBhX,EAAQmF,sBAAwBA,EAChCnF,EAAQwZ,gBAAkBA,CAE1B,IAAIhT,GAAmB9G,EAAQ,qBAE3B0xB,EAAkB3wB,EAAwB+F,GAE1CF,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GA0FjCmrB,GAPczxB,EAAQ4C,YAAc,EACrB5C,EAAQ+C,aAAe,IACxB/C,EAAQkD,YAAc,IACpBlD,EAAQ+V,cAAgB,EACzB/V,EAAQoD,aAAe,KACZpD,EAAQiF,wBAA0B,IAClCjF,EAAQgyB,wBAA0B,IACtChyB,EAAQyxB,oBAAsB,KACpDC,EAAsB1xB,EAAQ0xB,oBAAsB,IACrC1xB,GAAQwB,aAAe,IACvBxB,EAAQuS,aAAe,MACpBvS,EAAQ+W,gBAAkB,EAC5B/W,EAAQiW,cAAgB,IACnBjW,EAAQyZ,mBAAqB,MAC/BzZ,EAAQ0H,iBAAmB,IAC9B1H,EAAQ4H,cAAgB,IAC3B5H,EAAQ0iB,WAAa,MACb1iB,EAAQyiB,mBAAqB,MAEnD9b,WAAW,EAAEI,oBAAoB,KAAKkrB,IAAI,SAASvyB,EAAQU,EAAOJ,GACrE,YAaA,SAAS4E,KAkBL,QAASstB,GAAanyB,GAClB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,EAAS9G,EAAM8G,WACJzF,KAAXyF,IAIsB,IAAtBA,EAAOyT,aAIX2W,EAAYnmB,KAAKjE,EAAOzG,UACxB8wB,EAAYpmB,KAAKjE,EAAOyO,UAExBzO,EAAOzG,SAASmH,IAAI,EAAG,EAAG,GAC1BV,EAAOyO,SAAS/N,IAAI,EAAG,EAAG,GAC1BV,EAAOyO,SAAS/R,EAAe,IAAVT,KAAKyS,GAE1B1O,EAAOiN,UAAYjN,EAAOwM,OAE1B8d,EAAczuB,IAAImE,GAElB8W,EAAYjb,IAAIyuB,GAEhBtyB,EAAE0B,QAAS,EAEXsG,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,SAAUiT,IAGhC,QAAS+U,KACL,GAAIhV,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEvEkb,GADcD,EAAMuB,YACZvB,EAAMC,OAEdxV,EAAS9G,EAAM8G,WACJzF,KAAXyF,OAIqBzF,KAArByF,EAAOiN,YAIe,IAAtBjN,EAAOyT,aAIXzT,EAAOiN,UAAUpR,IAAImE,GACrBA,EAAOiN,cAAY1S,GAEnByF,EAAOzG,SAAS0K,KAAKmmB,GACrBpqB,EAAOyO,SAASxK,KAAKomB,GAErBrqB,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,cAAeiT,IA7ErC,GAAInb,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEpB,EAAQmB,EAAKnB,MACbyC,EAAQtB,EAAKsB,MAEb9B,GAAc,EAAIyD,EAAc7E,SAASkD,EAE7C9B,GAAY0D,OAAOC,GAAG,YAAa2sB,GACnCtwB,EAAY0D,OAAOC,GAAG,gBAAiB+sB,EAGvC,IAAIH,GAAc,GAAI7uB,OAAM4I,QACxBkmB,EAAc,GAAI9uB,OAAMivB,MAExBF,EAAgB,GAAI/uB,OAAMC,KAmE9B,OAlEA8uB,GAAcxtB,MAAM4D,IAAI,GAAK,GAAK,IAClC4pB,EAAc/wB,SAASmH,KAAK,KAAO,KAAO,GAiEnC7G,EA5FXhB,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQ4E,OAASA,CAEjB,IAAIyB,GAAe3G,EAAQ,iBAEvB2F,EAEJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAF5C+F,KAyGxCQ,gBAAgB,KAAK2rB,IAAI,SAAS9yB,EAAQU,EAAOJ,GACpD,YASA,IAAIyyB,GAAS/yB,EAAQ,gBASrBU,GAAOJ,QAAU,SAAyB0yB,GACxCA,EAAMA,KACN,IAAIC,GAAiC,gBAAhBD,GAAIC,QAAuBD,EAAIC,QAAU,EAI1D5wB,EAAQ2wB,EAAI3wB,MACZmQ,EAAMwgB,EAAIxgB,GAYd,OAVAwgB,GAAIE,WAAaF,EAAIE,eACrBF,EAAIE,WAAWC,aAAc,EAC7BH,EAAI5sB,KAAO,0BAGJ4sB,GAAIxgB,UACJwgB,GAAI3wB,YACJ2wB,GAAII,gBACJJ,GAAIC,QAEJF,GACL1nB,UACE4nB,SAAWI,KAAM,IAAK7sB,MAAOysB,GAC7BzgB,KAAO6gB,KAAM,IAAK7sB,MAAOgM,GAAO,GAAI5O,OAAM8b,SAC1Crd,OAASgxB,KAAM,IAAK7sB,MAAO,GAAI5C,OAAMyJ,MAAMhL,KAE7CwJ,aA7BiB,mdA8BjBE,eA5BiB,0oCA6BhBinB,MAGFM,gBAAgB,KAAKC,IAAI,SAASvzB,EAAQU,EAAOJ,GACpD,YA4BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS4yB,GAAenxB,GAEtB,GAAIsI,GAAQ8oB,EAAK9oB,QACb8U,EAAU,GAAI7b,OAAM8b,QAAQ/U,EAgBhC,OAhBuC8U,GAAQrZ,KAAO,iBACtDqZ,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMsc,aAC1BT,EAAQQ,UAAYrc,MAAMsc,aAC1BT,EAAQiU,iBAAkB,EAKX,GAAI9vB,OAAMgI,gBAAe,EAAI+nB,EAAqB7yB,UAC/D6e,KAAM/b,MAAMgc,WACZvF,aAAa,EACbhY,MAAOA,EACPmQ,IAAKiN,EACL4T,KAAM,cAwBV,QAAS/F,KAMP,QAASsG,GAAWvtB,EAAKwtB,GACvB,GAAIxxB,GAAQM,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,SAC5EwC,EAAQxC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5EK,EAAQL,UAAU,GAClBS,EAAST,UAAU,GAGnBwK,GAAW,EAAI2mB,EAAkBhzB,UACnC6hB,KAAMtc,EACN0tB,MAAO,OACP/wB,MAAOA,EACPI,OAAQA,EACR4wB,OAAO,EACPH,KAAMA,IAGJzuB,EAAS+H,EAAS/H,OAElBhD,EAAW6xB,EAAe5xB,OACbO,KAAbR,IACFA,EAAW6xB,EAAe5xB,GAASmxB,EAAenxB,GAEpD,IAAI6xB,GAAO,GAAItwB,OAAMiB,KAAKsI,EAAU/K,EACpC8xB,GAAK/uB,MAAMgvB,SAAS,GAAIvwB,OAAM4I,QAAQ,GAAI,EAAG,GAE7C,IAAI4nB,GAAajvB,EAAQkvB,CAMzB,OAJAH,GAAK/uB,MAAMmvB,eAAeF,GAE1BF,EAAKtyB,SAASyD,EAAoB,GAAhBD,EAAOhC,OAAegxB,EAEjCF,EAGT,QAAShvB,GAAOmB,GACd,GAAI3D,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtE4xB,EAAa7xB,EAAKL,MAClBA,MAAuBO,KAAf2xB,EAA2B,SAAWA,EAC9CC,EAAa9xB,EAAKyC,MAClBA,MAAuBvC,KAAf4xB,EAA2B,EAAMA,EAEzCjzB,EAAQ,GAAIqC,OAAMC,MAElBqwB,EAAON,EAAWvtB,EAAKwtB,EAAMxxB,EAAO8C,EA2BxC,OA1BA5D,GAAM2C,IAAIgwB,GACV3yB,EAAM6D,OAAS8uB,EAAK/mB,SAAS/H,OAC7B7D,EAAM2hB,aAAe,WACnB,MAAO3hB,GAAM6D,OAAOpC,MAAQmC,EAAQlC,EAAO+f,YAE7CzhB,EAAMkzB,cAAgB,WACpB,MAAOlzB,GAAM6D,OAAOhC,OAAS+B,EAAQlC,EAAO+f,YAG9CzhB,EAAM4hB,gBAAkB,SAAUF,EAAGlZ,GACnCxI,EAAM2H,OAAOgrB,EACb,IAAIlqB,GAAI/G,EAAO+f,UACfkR,GAAON,EAAWvtB,EAAKwtB,EAAMxxB,EAAO8C,EAAO8d,EAAIjZ,EAAGD,EAAIC,EACtD,IAAI0qB,GAAUR,EAAK/mB,SAAS/H,OAAOhC,OAAS4G,EAAID,CAC5C2qB,GAAU,IACZruB,EAAMA,EAAIsuB,UAAU,EAAG,IAAOtuB,EAAI7F,OAASk0B,GAAW,MACtDR,EAAON,EAAWvtB,EAAKwtB,EAAMxxB,EAAO8C,EAAO8d,EAAIjZ,EAAGD,EAAIC,IAExDzI,EAAM2C,IAAIgwB,GACV3yB,EAAM6D,OAAS8uB,EAAK/mB,SAAS/H,QAG/B7D,EAAM+E,YAAc,SAAUD,GAC5B6tB,EAAK/mB,SAAShH,OAAOE,IAGhB9E,EA1ET,GAAIsyB,IAAO,EAAIe,EAAmB9zB,SAAS2yB,EAAKhW,OAE5CwW,IA2EJ,QACE/uB,OAAQA,EACR2vB,YAAa,WACX,MAAOzyB,YAzJblB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQkzB,eAAiBA,EACzBlzB,EAAQgtB,QAAUA,CAElB,IAAIwH,GAAsB90B,EAAQ,wBAE9B2zB,EAAuBhzB,EAAuBm0B,GAE9CC,EAAmB/0B,EAAQ,qBAE3B8zB,EAAoBnzB,EAAuBo0B,GAE3CC,EAAoBh1B,EAAQ,sBAE5B40B,EAAqBj0B,EAAuBq0B,GAE5CnuB,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCouB,EAAQj1B,EAAQ,UAEhByzB,EAAO1yB,EAAwBk0B,GA6C/BZ,EAAYpxB,EAAO+f,aAyFpBkS,SAAS,EAAE9tB,WAAW,GAAG+tB,uBAAuB,GAAGC,qBAAqB,GAAGC,oBAAoB,KAAKC,IAAI,SAASt1B,EAAQU,EAAOJ,GACnI,YAEAY,QAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQi1B,QAAUj1B,EAAQk1B,OAASl1B,EAAQm1B,QAAUn1B,EAAQqxB,UAAQ/uB,EAErE,IAAIgE,GAAU5G,EAAQ,aAItB,SAAiCY,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAUD,GAAOF,QAAUF,IAFjNgG,GAIzBtG,EAAQqxB,MAAQ,GAAI/tB,OAAMgB,mBAAoBvC,MAAO,SAAUqzB,aAAc9xB,MAAM+xB,eAmBjFr1B,EAAQm1B,QAAU,GAAI7xB,OAAMgB,kBAC7BtE,EAAQk1B,OAAS,GAAI5xB,OAAMgB,mBAAoBvC,MAAO,IACrD/B,EAAQi1B,QAAU,GAAI3xB,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,EAAO4Y,QAAS,OAEzGhsB,WAAW,IAAI2uB,IAAI,SAAS51B,EAAQU,EAAOJ,GAC9C,YAmCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASi1B,KACP,GAAInzB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DwF,EAAoB5F,EAAK6F,aACzBA,MAAqC3F,KAAtB0F,EAAkC,EAAMA,EACvDwtB,EAAWpzB,EAAK6H,IAChBA,MAAmB3H,KAAbkzB,EAAyB,EAAMA,EACrCC,EAAWrzB,EAAK4H,IAChBA,MAAmB1H,KAAbmzB,EAAyB,EAAMA,EACrCC,EAAYtzB,EAAKuzB,KACjBA,MAAqBrzB,KAAdozB,EAA0B,GAAMA,EACvCjzB,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDmzB,EAAqBxzB,EAAKyzB,cAC1BA,MAAuCvzB,KAAvBszB,EAAmCjzB,EAAOI,aAAe6yB,EACzE5yB,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACF2uB,MAAO,EACP5vB,MAAO+B,EACP0tB,KAAMA,EACNI,SAAS,EACTjD,UAAW,EACXhrB,QAAQ,EACRmC,IAAKA,EACLD,IAAKA,EACL5C,gBAAa9E,GACb0zB,qBAAkB1zB,GAClBge,UAAU,EAGZnZ,GAAMwuB,KAAOM,EAAe9uB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC1D7C,EAAM2rB,UAAYoD,EAAY/uB,EAAMwuB,MACpCxuB,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,IAE9D,IAAI/I,GAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAI4D,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIrB,OAAQ,EAsNZ,OArNAzC,GAAMyH,UAAY,SAAU5F,GAuD1B,QAASszB,GAAiBlwB,GACpBiB,EAAM4uB,QACRM,EAAWrwB,YAAYswB,EAAenvB,EAAMjB,MAAOiB,EAAM2rB,WAAWrvB,YAEpE4yB,EAAWrwB,YAAYmB,EAAMjB,MAAMzC,YAIvC,QAAS9B,KACHwF,EAAMmZ,SACRxe,EAASC,MAAMC,OAAOC,EAAOuL,mBACpB5L,EAAYC,WACrBC,EAASC,MAAMC,OAAOC,EAAOsL,iBAE7BzL,EAASC,MAAMC,OAAOC,EAAOqL,eAIjC,QAASipB,KACP7xB,EAAaG,MAAMJ,EAAIT,KAAKiG,IAAIjG,KAAKgG,IAAImsB,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAAOtH,EAAO,MAAWA,GAGpH,QAAS8zB,GAAatwB,GACpB/E,EAAOC,GAAgB8E,EAGzB,QAASuwB,GAAqBX,GAC5B3uB,EAAM2uB,MAAQY,EAAgBZ,GAC9B3uB,EAAMjB,MAAQywB,EAAkBxvB,EAAM2uB,MAAO3uB,EAAM8C,IAAK9C,EAAM6C,KAC1D7C,EAAM4uB,UACR5uB,EAAMjB,MAAQ0wB,EAAgBzvB,EAAMjB,MAAOiB,EAAMwuB,OAEnDxuB,EAAMjB,MAAQ2wB,EAAgB1vB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAG9D,QAAS+B,KACP5E,EAAMjB,MAAQ4wB,IACd3vB,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9D7C,EAAM2uB,MAAQY,EAAgBvvB,EAAM2uB,OAGtC,QAASgB,KACP,MAAOhT,YAAW3iB,EAAOC,IA+B3B,QAAS21B,GAAYh3B,IACG,IAAlBkB,EAAMC,UAGViG,EAAMmZ,UAAW,EACjBvgB,EAAE0B,QAAS,GAGb,QAASu1B,KACP,GAAI1Z,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACvE8d,EAAQ7C,EAAM6C,KAElB,KAAsB,IAAlBlf,EAAMC,QAAV,CAIAiG,EAAMmZ,UAAW,EAEjB5b,EAAa+P,oBACbwiB,EAAWxiB,mBAEX,IAAI7U,IAAI,GAAI0D,OAAM4I,SAAUsS,sBAAsB9Z,EAAaiQ,aAC3D9K,GAAI,GAAIvG,OAAM4I,SAAUsS,sBAAsByY,EAAWtiB,aAEzDuiB,EAAgB/vB,EAAMjB,KAE1BuwB,GAAqBU,EAAchX,GAASvgB,EAAGA,EAAGiK,EAAGA,KACrDusB,EAAiBjvB,EAAMjB,OACvBqwB,IACAC,EAAarvB,EAAMjB,OAEfgxB,IAAkB/vB,EAAMjB,OAASiB,EAAMC,aACzCD,EAAMC,YAAYD,EAAMjB,QAI5B,QAASkxB,KACPjwB,EAAMmZ,UAAW,EApKf5c,GAAOzC,EAAM2H,OAAOlF,GAExBzC,EAAM4H,QAAU/F,CAEhB,IAAIu0B,GAAuB,GAAR30B,EAAcC,EAAOS,aACpCk0B,EAAgBx0B,EAASH,EAAOS,aAChCm0B,EAAet0B,EAGfa,EAAO,GAAIR,OAAMS,YAAYszB,EAAcC,EAAeC,EAC9DzzB,GAAKM,UAAyB,GAAfizB,EAAoB,EAAG,EAGtC,IAAIhzB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAI0B,EAC3B5B,EAAcC,SAASmD,EAAY,GAAR/B,EAC3BrB,EAAcyE,KAAO,eAGrB,IAAI0xB,GAAW,GAAIl0B,OAAMiB,KAAKT,EAAKU,QAAS4sB,EAAgBC,MAC5DpvB,GAAO2K,iBAAiB4qB,EAAS3qB,SAAU5K,EAAOoM,WAClDmpB,EAASl2B,SAASC,EAAY,GAAR0B,EACtBu0B,EAASl2B,SAASmD,EAAI4yB,EAAe10B,EAAOS,YAE5C,IAAItB,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOqL,gBACvD5I,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChD4C,GAAapD,SAASC,EAAY,GAAR0B,EAC1B5B,EAAcuC,IAAIc,EAElB,IAAIuyB,GAAa,GAAI3zB,OAAMiB,KAAK,GAAIjB,OAAMS,YAAY,IAAM,IAAM,IAAM,EAAG,EAAG,GAAIqtB,EAAgB+D,QAClG8B,GAAW31B,SAASmD,EAAI4yB,EACxBh2B,EAAcuC,IAAIqzB,GAClBA,EAAW/1B,SAAU,CAErB,IAAIm1B,GAAa9zB,EAAYqC,OAAOuC,EAAMjB,MAAMzC,WAChD4yB,GAAW/0B,SAASmD,EAAI9B,EAAOqvB,wBAAkC,GAARtvB,EACzD2zB,EAAW/0B,SAASC,EAAY,IAAR0B,EACxBozB,EAAW/0B,SAASyD,GAAK,KAEzB,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAO+L,qBAC/D9I,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,GAC1CS,EAAMoC,KAAO,QACbpC,EAAME,IAAIoB,EAAiB3D,EAAem2B,EAAUnB,EAAYnxB,GAEhEjE,EAAM2C,IAAIF,GAEV0yB,EAAiBjvB,EAAMjB,OACvBqwB,IA+CAt1B,EAAMkH,SAAW,SAAUC,GAEzB,MADAjB,GAAMC,YAAcgB,EACbnH,GAGTA,EAAM00B,KAAO,SAAUA,GAUrB,MATAxuB,GAAMwuB,KAAOA,EACbxuB,EAAM2rB,UAAYoD,EAAY/uB,EAAMwuB,MACpCxuB,EAAM4uB,SAAU,EAEhB5uB,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAE9DysB,EAAqBtvB,EAAM2uB,OAC3BM,EAAiBjvB,EAAMjB,OACvBqwB,IACOt1B,GAGTA,EAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,EAGT,IAAIW,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAawxB,GACnCn1B,EAAY0D,OAAOC,GAAG,WAAYyxB,GAClCp1B,EAAY0D,OAAOC,GAAG,aAAc6xB,GA0CpCn2B,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,IACrD2Y,EAAqBC,EAAQ1X,QAAS3D,MAAOA,EAAOyC,MAAOA,GAsC/D,OApCAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvByW,EAAmBxW,OAAOD,GAEtBuB,EAAMW,SACRiE,IACAqqB,EAAiBjvB,EAAMjB,OACvBqwB,KAEF50B,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGTA,EAAMgJ,IAAM,SAAUoR,GAMpB,MALAlU,GAAM8C,IAAMoR,EACZlU,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9DysB,EAAqBtvB,EAAM2uB,OAC3BM,EAAiBjvB,EAAMjB,OACvBqwB,IACOt1B,GAGTA,EAAM+I,IAAM,SAAUqR,GAMpB,MALAlU,GAAM6C,IAAMqR,EACZlU,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9DysB,EAAqBtvB,EAAM2uB,OAC3BM,EAAiBjvB,EAAMjB,OACvBqwB,IACOt1B,GAELA,EAAM8G,QAAQ9G,EAAM8G,OAAOqB,gBACxBnI,GAETA,EAAMyH,UAAUmtB,GACT50B,EAyBT,QAASk2B,GAAchX,EAAOsX,GAC5BC,EAAG1rB,KAAKyrB,EAAQ5tB,GAAGqU,IAAIuZ,EAAQ73B,GAC/B+3B,EAAG3rB,KAAKmU,GAAOjC,IAAIuZ,EAAQ73B,EAE3B,IAAIg4B,GAAYD,EAAGE,gBAAgBH,EAEnCI,GAAK9rB,KAAKmU,GAAOjC,IAAIuZ,EAAQ73B,GAE7Bm4B,EAAK/rB,KAAKyrB,EAAQ5tB,GAAGqU,IAAIuZ,EAAQ73B,GAAGksB,WAEpC,IAAIzM,GAAOyY,EAAKhM,YAAYkM,IAAID,IAAS,EAAI,GAAK,EAE9C73B,EAASu3B,EAAQ73B,EAAEq4B,WAAWR,EAAQ5tB,GAAKwV,EAE3CyW,EAAQ8B,EAAU13B,SAAWA,CAOjC,OANI41B,GAAQ,IACVA,EAAQ,GAENA,EAAQ,IACVA,EAAQ,GAEHA,EAOT,QAASoC,GAAUhyB,EAAOiyB,EAAMC,EAAOC,EAAMC,GAC3C,MAAOD,IAAQC,EAAQD,IAASnyB,EAAQiyB,IAASC,EAAQD,GAG3D,QAASzB,GAAgBZ,GACvB,MAAIA,GAAQ,EACH,EAELA,EAAQ,EACH,EAEFA,EAGT,QAASe,GAAgB3wB,EAAO+D,EAAKD,GACnC,MAAI9D,GAAQ+D,EACHA,EAEL/D,EAAQ8D,EACHA,EAEF9D,EAGT,QAAS+vB,GAAe/vB,EAAO+D,EAAKD,GAMlC,OAHQA,EAAMC,GACC,IAYjB,QAAS0sB,GAAkBb,EAAO7rB,EAAKD,GACrC,MAAOkuB,GAAUpC,EAAO,EAAK,EAAK7rB,EAAKD,GAGzC,QAASmsB,GAAkBjwB,EAAO+D,EAAKD,GACrC,MAAOkuB,GAAUhyB,EAAO+D,EAAKD,EAAK,EAAK,GAGzC,QAAS4sB,GAAgB1wB,EAAOyvB,GAC9B,MAAIzvB,GAAQyvB,GAAQ,EACX3xB,KAAKu0B,MAAMryB,EAAQyvB,GAAQA,EAE7BzvB,EAGT,QAASgwB,GAAYzxB,GAEnB,MADAA,GAAIA,EAAEhB,WACFgB,EAAEkN,QAAQ,MAAQ,EACblN,EAAEvE,OAASuE,EAAEkN,QAAQ,KAAO,EAE5B,EAIX,QAAS2kB,GAAepwB,EAAOsyB,GAC7B,GAAIx0B,KAAKy0B,IAAIvyB,GAAS,KAAkB,IAAVA,EAAa,MAAOA,GAAMwyB,cAAc,EACtE,IAAIC,GAAQ30B,KAAK40B,IAAI,GAAIJ,EACzB,OAAOx0B,MAAKu0B,MAAMryB,EAAQyyB,GAASA,EArarC/3B,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAU+0B,CAElB,IAAInvB,GAAa1G,EAAQ,eAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAE3B0xB,EAAkB3wB,EAAwB+F,GAE1CC,EAAQ/G,EAAQ,UAEhBgG,EAAOjF,EAAwBgG,GAE/BoW,EAAWnd,EAAQ,aAEnB4c,EAAU7b,EAAwBoc,GAkSlC6a,EAAK,GAAIp0B,OAAM4I,QACfyrB,EAAK,GAAIr0B,OAAM4I,QACf4rB,EAAO,GAAIx0B,OAAM4I,QACjB6rB,EAAO,GAAIz0B,OAAM4I,UAoGlBvF,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGiW,YAAY,GAAGhW,oBAAoB,GAAGC,cAAc,KAAK6xB,IAAI,SAASn5B,EAAQU,EAAOJ,GACjJ,YAmCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASo4B,KAyEP,QAASC,GAAahzB,GACpB5E,EAAOC,GAAgB2E,EACvBpB,EAAYqB,YAAYD,GAG1B,QAASizB,KACP,GAAIC,EAGF,MAFAA,GAAS/3B,SAAW+3B,EAAS/3B,aACzB+3B,EAAS/3B,SAASD,EAAM8G,OAAO0C,eAAewuB,GAGlDA,GAAWvuB,IAAIC,MAAM/F,OAAO,YAC5B3D,EAAM2C,IAAIq1B,GACVA,EAASlxB,OAAS9G,EAAM8G,OACxB9G,EAAM8G,OAAO0C,eAAewuB,GAC5BA,EAAS33B,SAASmD,EAAI/B,EACtBu2B,EAAS33B,SAASyD,EAAIpC,EAAOsT,cAC7BgjB,EAASruB,aACTquB,EAASrP,YAAY,SAAUjN,GAC7B,GAAI5W,GAAM5E,EAAOC,EACjB,QAAQub,GACN,IAAK,KAIHuc,WAAWF,EAAgB,IAC3B,MACF,KAAK,KACHjzB,EAAMA,EAAIsuB,UAAU,EAAGtuB,EAAI7F,OAAS,GACpC64B,EAAahzB,EACb,MACF,SACEA,GAAO4W,EACPoc,EAAahzB,MAMvB,QAAS/E,GAAcjB,GAYrBi5B,IAEAj5B,EAAE0B,QAAS,EAGb,QAASE,KAEHC,EAAYC,WACdC,EAASC,MAAMC,OAAOC,EAAOsM,sBAE7BzM,EAASC,MAAMC,OAAOC,EAAOqM,YArIjC,GAAIlM,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DC,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAGxDG,EAAuB,GAART,EAAcC,EAAOS,aACpCC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,UAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACIG,GAAcV,EAAeE,EAC7BS,EAAO,GAAIR,OAAMS,YAAYZ,EAAcE,EAAe7B,EAAcwC,KAAKC,MAFjE,EAEmFJ,GAFnF,EAAA,EAGD,IAAIP,OAAMY,oBAAoB,GACpCC,OAAOL,GAChBA,EAAKM,UAAyB,GAAfjB,EAAoB,EAAG,EAGtC,IAAIkB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAmB,GAAfC,EAC3BH,EAAcC,SAASmD,EAAY,GAAR/B,CAE3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAO,WAChD2C,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAGlB,IAAIC,GAAcpC,EAAYqC,OAAOzD,EAAOC,IAAiBW,MAAO,EAAW8C,MAAO,MAKtFF,GAAYrD,SAASmD,EAAI,KACzBE,EAAYrD,SAASC,EAAmB,IAAfC,EACzBmD,EAAYrD,SAASyD,GAAK,KAC1BL,EAAad,IAAIe,EAEjB,IAAIK,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GAEnCW,GAMA,IAAIs3B,EA6DJh4B,GAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGFA,EA/LTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUs4B,CAElB,IAAIK,GAASz5B,EAAQ,WAIjB0G,GAFM3F,EAAwB04B,GAEjBz5B,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KA8KhCE,WAAW,EAAEC,SAAS,EAAEwyB,UAAU,GAAGvyB,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKqyB,IAAI,SAAS35B,EAAQU,EAAOJ,GAC/I,YAoBA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAAS44B,GAAgB/2B,EAAawD,GACpC,GAAIrD,GAAQL,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC5EY,EAAQZ,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,KAC5Ek3B,EAAUl3B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,SAC9Em3B,EAAUn3B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAKJ,EAAO2L,aACrF/I,EAAQxC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAG5EpB,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,YAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOuC,EAAM,IAG5C,IAAI0zB,GAAsB,GAAIn2B,OAAMC,KACpCtC,GAAM2C,IAAI61B,EAEV,IAAIpX,GAAO9f,EAAYqC,OAAOmB,EAAItC,YAAc1B,MAAOw3B,EAAS10B,MAAOA,GACvE40B,GAAoB71B,IAAIye,GACxBphB,EAAMgQ,SAASoR,KAAOA,EAEtBphB,EAAMkP,UAAY,SAAUpK,OACdzD,KAARyD,IAAmBA,EAAM,eAC7Bsc,EAAKrc,YAAYD,EAAItC,aAIvBxC,EAAMy4B,UAAY,SAAU3zB,GAC1Bsc,EAAKrc,YAAYD,EAAI4zB,QAAQ,KAG/BtX,EAAK/gB,SAASC,EAAI0B,CAElB,IAEI22B,GAAal3B,EAKbm3B,EAAoB,GAAIv2B,OAAMS,YAAY61B,EAJ5B,IAIqD32B,EAAO,EAAG,EAAG,EACpF42B,GAAkBnlB,cAAa,GAAIpR,OAAMuR,SAAUilB,gBAA6B,GAAbF,EAPtD,IAOiF,EAAG,GAEjG,IAAIG,GAAgB,GAAIz2B,OAAMiB,KAAKs1B,EAAmBzI,EAAgBC,MAStE,OARApvB,GAAO2K,iBAAiBmtB,EAAcltB,SAAU2sB,GAEhDO,EAAcz4B,SAASyD,EAAI,IAC3B00B,EAAoB71B,IAAIm2B,GACxBN,EAAoBn4B,SAASyD,GAAI,IAEjC9D,EAAM0O,KAAOoqB,EAEN94B,EAqBT,QAASqR,GAAc/P,EAAa8P,EAAK2nB,GACvC,GAAIC,GAAe53B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK63B,EACnFC,EAAc93B,UAAU,GAExB2gB,EAAUzgB,EAAYqC,OAAOyN,GAE7B+nB,EAAW,GAAI92B,OAAMC,MAErBof,EAAIK,EAAQJ,eACZnZ,EAAI9G,EAAO+f,WAAaM,EAAQle,OAAOhC,MAE3Cs3B,GAAS94B,SAASmD,EAAI,GAAMu1B,EAC5BI,EAAS94B,SAASyD,GAAK,KAAOk1B,EAAexwB,EAC7C2wB,EAAS94B,SAASC,EAAkB,EAAd44B,EACtBC,EAASl5B,SAAU,EAGnBk5B,EAASx2B,IAAIof,EAGb,IAAIqX,GAAU1X,EAAI,IACd2X,EAAU7wB,EAAI,IACd8wB,EAAU,GAAIj3B,OAAMkc,cAAc6a,EAASC,EAAS,EAAG,GACvDE,EAAgB,GAAIl3B,OAAMiB,KAAKg2B,EAASnJ,EAAgB6D,QAY5D,OAXAuF,GAAcl5B,SAASmD,EAAI,EAC3B+1B,EAAcl5B,SAASyD,EAAI0E,EAAI,EAC/B+wB,EAAcl5B,SAASC,EAAmB,IAAd44B,EAC5BC,EAASx2B,IAAI42B,GAEbxX,EAAQ1hB,SAASmD,GAAK,GAAMke,EAC5BK,EAAQ1hB,SAASyD,GAAK,GAAM0E,EAAI,MAEhC2wB,EAASnpB,SAAS0R,EAAIA,EACtByX,EAASnpB,SAASxH,EAAIA,EAEf2wB,EAhITx5B,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAU84B,EAClBt5B,EAAQsS,cAAgBA,CAExB,IAAIhM,GAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCE,EAAmB9G,EAAQ,qBAE3B0xB,EAAkB3wB,EAAwB+F,GAE1CD,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GA4EjC2zB,EAAsBv3B,EAAOI,aAAeJ,EAAOoT,gBAuCpDpP,WAAW,EAAEG,WAAW,GAAGC,oBAAoB,KAAK0zB,IAAI,SAAS/6B,EAAQU,EAAOJ,GACnF,YAYA,SAASigB,GAAoBya,GAC3B,GAAI3yB,GAAS2yB,EAAQ3yB,MASrB,IAAI2yB,EAAQ5gB,eAAgB,MAAOmG,GAAoBlY;gCAIvD,KAAK2yB,EAAQx5B,QAAS,OAAO,CAE7B,MAAO6G,EAAOA,SAAWA,GAAQ,CAC/B,GAAIA,EAAOmR,gBAAkBnR,EAAO7G,QAAS,OAAO,CACpD6G,GAASA,EAAOA,OAElB,QAAKA,EAAOwM,QACLxM,EAAO7G,QAUhB,QAASkQ,GAAcmD,EAAQD,EAAOpT,GACpC,GAAIy5B,GAAUpmB,EAAO6B,SAASR,SAAStB,EACvCA,GAAMpT,QAAUA,EAEZA,IAAYy5B,GAASr3B,MAAMC,MAAM1C,UAAU+C,IAAI3D,KAAKsU,EAAQD,IAC3DpT,GAAWy5B,GAASr3B,MAAMC,MAAM1C,UAAU+H,OAAO3I,KAAKsU,EAAQD,GAC9DC,EAAOrT,SAAS0Q,QAAQC,KAAK,iCAAmCyC,EAAQ,wBAA0BC,GAUzG,QAASe,GAAkBrU,GAEzB,IADA,GAAI8G,GAAS6yB,EAAU35B,GAChB8G,EAAOA,SAAWA,GACvBA,EAASA,EAAOA,MACjB,OAAOA,GAGV,QAAS6yB,GAAU35B,GACjB,GAAIA,EAAM8G,OAAQ,MAAO9G,GAAM8G,MAE/B,KADA,GAAImN,GAAOjU,EAAMsT,QACTW,EAAKnN,QAAU9G,EAAMsT,QAC3BW,EAAOA,EAAKX,MACb,OAAOW,GAAKnN,OAKf,QAASwQ,GAAiBD,EAAKhY,GAC7B,GAAIu6B,KAWJ,OAVAv6B,GAAIw6B,SAAS,SAAUx7B,GACjBA,EAAEuN,UAAYvN,EAAEuN,SAASkuB,kBAAgE,IAA5Cz7B,EAAEuN,SAASmuB,WAAW15B,SAAS25B,WAC9E37B,EAAEuN,SAASkuB,kBAAmB,EAC9BF,EAAUhrB,KAAKvQ,EAAEuN,aAGrByL,EAAI4iB,cAAc56B,GAClBu6B,EAAUpqB,QAAQ,SAAU7G,GAC1B,MAAOA,GAAEmxB,kBAAmB,IAEvBziB,EAtFT1X,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQigB,oBAAsBA,EAC9BjgB,EAAQoR,cAAgBA,EACxBpR,EAAQsV,kBAAoBA,EAC5BtV,EAAQ46B,UAAYA,EACpB56B,EAAQuY,iBAAmBA,OAkFrB4iB,IAAI,SAASz7B,EAAQU,EAAOJ,GAClC,YAkBAsD,OAAMY,oBAAsB,SAAUk3B,GAEpChjB,KAAKgjB,iBAAgC94B,KAAjB84B,EAA6B,EAAIA,GAIvD93B,MAAMY,oBAAoBrD,UAAUsD,OAAS,SAAU0I,GAIrD,IAFA,GAAIwuB,GAAUjjB,KAAKgjB,aAEZC,KAAY,GAEjBjjB,KAAKkjB,OAAOzuB,EAGdA,GAAS0uB,qBACT1uB,EAAS2uB,wBAGX,WA0FEl4B,MAAMY,oBAAoBrD,UAAUy6B,OAAS,SAAUzuB,GACrD,gBAyOE4uB,IAAI,SAAS/7B,EAAQU,EAAOJ,GAKlC,QAAS07B,GAAQhtB,GACf,MACKA,GAAIitB,mBACqB,yBAAzB51B,EAAI9F,KAAKyO,EAAIktB,SACbjtB,MAAMC,QAAQF,GARrB,GAAI3I,GAAMnF,OAAOC,UAAU4C,QAE3BrD,GAAOJ,QAAU07B,OAUXG,IAAI,SAASn8B,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAU,SAAiB87B,EAAKC,GACtC,MAAsB,gBAARD,GACXA,EACgB,gBAARC,GAAmBA,EAAM,QAE/BC,IAAI,SAASt8B,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAU,SAASi8B,GACxB,OAAQA,GACN,IAAK,OACH,MAAOC,UACT,KAAK,QACH,MAAOC,WACT,KAAK,QACH,MAAOC,WACT,KAAK,QACH,MAAOC,WACT,KAAK,SACH,MAAOC,YACT,KAAK,SACH,MAAOC,YACT,KAAK,UACH,MAAOrvB,aACT,KAAK,UACH,MAAOsvB,aACT,KAAK,QACH,MAAO7tB,MACT,KAAK,gBACH,MAAO8tB,0BAIPC,IAAI,SAASh9B,EAAQU,EAAOJ,GA0BlC,QAAS28B,KACFvkB,KAAK7L,SAAY3L,OAAOC,UAAUC,eAAeb,KAAKmY,KAAM,aAC/DA,KAAK7L,QAAUqwB,EAAa,MAC5BxkB,KAAKykB,aAAe,GAGtBzkB,KAAK0kB,cAAgB1kB,KAAK0kB,mBAAiBx6B,GA+C7C,QAASy6B,GAAiBC,GACxB,WAA2B16B,KAAvB06B,EAAKF,cACAH,EAAaM,oBACfD,EAAKF,cAYd,QAASI,GAASC,EAASC,EAAMC,GAC/B,GAAID,EACFD,EAAQl9B,KAAKo9B,OAIb,KAAK,GAFDC,GAAMH,EAAQj9B,OACdq9B,EAAYC,EAAWL,EAASG,GAC3B/9B,EAAI,EAAGA,EAAI+9B,IAAO/9B,EACzBg+B,EAAUh+B,GAAGU,KAAKo9B,GAGxB,QAASI,GAAQN,EAASC,EAAMC,EAAMK,GACpC,GAAIN,EACFD,EAAQl9B,KAAKo9B,EAAMK,OAInB,KAAK,GAFDJ,GAAMH,EAAQj9B,OACdq9B,EAAYC,EAAWL,EAASG,GAC3B/9B,EAAI,EAAGA,EAAI+9B,IAAO/9B,EACzBg+B,EAAUh+B,GAAGU,KAAKo9B,EAAMK,GAG9B,QAASC,GAAQR,EAASC,EAAMC,EAAMK,EAAME,GAC1C,GAAIR,EACFD,EAAQl9B,KAAKo9B,EAAMK,EAAME,OAIzB,KAAK,GAFDN,GAAMH,EAAQj9B,OACdq9B,EAAYC,EAAWL,EAASG,GAC3B/9B,EAAI,EAAGA,EAAI+9B,IAAO/9B,EACzBg+B,EAAUh+B,GAAGU,KAAKo9B,EAAMK,EAAME,GAGpC,QAASC,GAAUV,EAASC,EAAMC,EAAMK,EAAME,EAAMzT,GAClD,GAAIiT,EACFD,EAAQl9B,KAAKo9B,EAAMK,EAAME,EAAMzT,OAI/B,KAAK,GAFDmT,GAAMH,EAAQj9B,OACdq9B,EAAYC,EAAWL,EAASG,GAC3B/9B,EAAI,EAAGA,EAAI+9B,IAAO/9B,EACzBg+B,EAAUh+B,GAAGU,KAAKo9B,EAAMK,EAAME,EAAMzT,GAI1C,QAAS2T,GAASX,EAASC,EAAMC,EAAM/jB,GACrC,GAAI8jB,EACFD,EAAQlrB,MAAMorB,EAAM/jB,OAIpB,KAAK,GAFDgkB,GAAMH,EAAQj9B,OACdq9B,EAAYC,EAAWL,EAASG,GAC3B/9B,EAAI,EAAGA,EAAI+9B,IAAO/9B,EACzBg+B,EAAUh+B,GAAG0S,MAAMorB,EAAM/jB,GA6D/B,QAASykB,GAAaC,EAAQjL,EAAMkL,EAAUC,GAC5C,GAAI7iB,GACA/V,EACA64B,CAEJ,IAAwB,kBAAbF,GACT,KAAM,IAAIG,WAAU,yCAoBtB,IAlBA94B,EAAS04B,EAAOzxB,QACXjH,GAMCA,EAAO+4B,cACTL,EAAO1zB,KAAK,cAAeyoB,EACvBkL,EAASA,SAAWA,EAASA,SAAWA,GAI5C34B,EAAS04B,EAAOzxB,SAElB4xB,EAAW74B,EAAOytB,KAblBztB,EAAS04B,EAAOzxB,QAAUqwB,EAAa,MACvCoB,EAAOnB,aAAe,GAenBsB,GAmBH,GAdwB,kBAAbA,GAETA,EAAW74B,EAAOytB,GACdmL,GAAWD,EAAUE,IAAaA,EAAUF,GAG5CC,EACFC,EAASzU,QAAQuU,GAEjBE,EAAStuB,KAAKouB,IAKbE,EAASG,SACZjjB,EAAI0hB,EAAiBiB,KACZ3iB,EAAI,GAAK8iB,EAASj+B,OAASmb,EAAG,CACrC8iB,EAASG,QAAS,CAClB,IAAI3b,GAAI,GAAI9iB,OAAM,+CACds+B,EAASj+B,OAAS,KAAOq+B,OAAOxL,GAAQ,sEAG5CpQ,GAAE7c,KAAO,8BACT6c,EAAE6b,QAAUR,EACZrb,EAAEoQ,KAAOA,EACTpQ,EAAE8b,MAAQN,EAASj+B,OACI,gBAAZ0R,UAAwBA,QAAQC,MACzCD,QAAQC,KAAK,SAAU8Q,EAAE7c,KAAM6c,EAAE+b,cA9BvCP,GAAW74B,EAAOytB,GAAQkL,IACxBD,EAAOnB,YAmCX,OAAOmB,GAcT,QAASW,KACP,IAAKvmB,KAAKwmB,MAGR,OAFAxmB,KAAK4lB,OAAOpW,eAAexP,KAAK2a,KAAM3a,KAAKymB,QAC3CzmB,KAAKwmB,OAAQ,EACLv8B,UAAUnC,QAChB,IAAK,GACH,MAAOkY,MAAK6lB,SAASh+B,KAAKmY,KAAK4lB,OACjC,KAAK,GACH,MAAO5lB,MAAK6lB,SAASh+B,KAAKmY,KAAK4lB,OAAQ37B,UAAU,GACnD,KAAK,GACH,MAAO+V,MAAK6lB,SAASh+B,KAAKmY,KAAK4lB,OAAQ37B,UAAU,GAAIA,UAAU,GACjE,KAAK,GACH,MAAO+V,MAAK6lB,SAASh+B,KAAKmY,KAAK4lB,OAAQ37B,UAAU,GAAIA,UAAU,GAC3DA,UAAU,GAChB,SAEE,IAAK,GADDiX,GAAO,GAAI3K,OAAMtM,UAAUnC,QACtBX,EAAI,EAAGA,EAAI+Z,EAAKpZ,SAAUX,EACjC+Z,EAAK/Z,GAAK8C,UAAU9C,EACtB6Y,MAAK6lB,SAAShsB,MAAMmG,KAAK4lB,OAAQ1kB,IAKzC,QAASwlB,GAAUd,EAAQjL,EAAMkL,GAC/B,GAAI92B,IAAUy3B,OAAO,EAAOC,WAAQv8B,GAAW07B,OAAQA,EAAQjL,KAAMA,EAAMkL,SAAUA,GACjFc,EAAUC,EAAK/+B,KAAK0+B,EAAax3B,EAGrC,OAFA43B,GAAQd,SAAWA,EACnB92B,EAAM03B,OAASE,EACRA,EA0HT,QAASE,GAAWjB,EAAQjL,EAAMmM,GAChC,GAAI55B,GAAS04B,EAAOzxB,OAEpB,KAAKjH,EACH,QAEF,IAAI65B,GAAa75B,EAAOytB,EACxB,OAAKoM,GAGqB,kBAAfA,GACFD,GAAUC,EAAWlB,UAAYkB,IAAeA,GAElDD,EAASE,EAAgBD,GAAc3B,EAAW2B,EAAYA,EAAWj/B,WAoBlF,QAASm/B,GAActM,GACrB,GAAIztB,GAAS8S,KAAK7L,OAElB,IAAIjH,EAAQ,CACV,GAAI65B,GAAa75B,EAAOytB,EAExB,IAA0B,kBAAfoM,GACT,MAAO,EACF,IAAIA,EACT,MAAOA,GAAWj/B,OAItB,MAAO,GAQT,QAASo/B,GAAUC,EAAM5uB,GACvB,IAAK,GAAIpR,GAAIoR,EAAOgM,EAAIpd,EAAI,EAAGH,EAAImgC,EAAKr/B,OAAQyc,EAAIvd,EAAGG,GAAK,EAAGod,GAAK,EAClE4iB,EAAKhgC,GAAKggC,EAAK5iB,EACjB4iB,GAAKC,MAGP,QAAShC,GAAW9uB,EAAKtP,GAEvB,IAAK,GADD4M,GAAO,GAAI2C,OAAMvP,GACZG,EAAI,EAAGA,EAAIH,IAAKG,EACvByM,EAAKzM,GAAKmP,EAAInP,EAChB,OAAOyM,GAGT,QAASozB,GAAgB1wB,GAEvB,IAAK,GADD+wB,GAAM,GAAI9wB,OAAMD,EAAIxO,QACfX,EAAI,EAAGA,EAAIkgC,EAAIv/B,SAAUX,EAChCkgC,EAAIlgC,GAAKmP,EAAInP,GAAG0+B,UAAYvvB,EAAInP,EAElC,OAAOkgC,GAGT,QAASC,GAAqBC,GAC5B,GAAIC,GAAI,YAER,OADAA,GAAE/+B,UAAY8+B,EACP,GAAIC,GAEb,QAASC,GAAmBv/B,GAC1B,GAAI8O,KACJ,KAAK,GAAIuN,KAAKrc,GAASM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKqc,IAC/DvN,EAAKS,KAAK8M,EAEZ,OAAOA,GAET,QAASmjB,GAAqBC,GAC5B,GAAIlV,GAAKzS,IACT,OAAO,YACL,MAAOyS,GAAG5Y,MAAM8tB,EAAS19B,YAnf7B,GAAIu6B,GAAeh8B,OAAOgE,QAAU86B,EAChCM,EAAap/B,OAAOwO,MAAQywB,EAC5Bb,EAAOiB,SAASp/B,UAAUm+B,MAAQc,CAUtC1/B,GAAOJ,QAAU28B,EAGjBA,EAAaA,aAAeA,EAE5BA,EAAa97B,UAAU0L,YAAUjK,GACjCq6B,EAAa97B,UAAUi8B,kBAAgBx6B,EAIvC,IAEI49B,GAFAjD,EAAsB,EAG1B,KACE,GAAI39B,KACAsB,QAAOqF,gBAAgBrF,OAAOqF,eAAe3G,EAAG,KAAO4G,MAAO,IAClEg6B,EAA4B,IAAR5gC,EAAEmF,EACtB,MAAO07B,GAAOD,GAAoB,EAChCA,EACFt/B,OAAOqF,eAAe02B,EAAc,uBAClCyD,YAAY,EACZ53B,IAAK,WACH,MAAOy0B,IAETx0B,IAAK,SAAS43B,GAGZ,GAAmB,gBAARA,IAAoBA,EAAM,GAAKA,IAAQA,EAChD,KAAM,IAAIjC,WAAU,kDACtBnB,GAAsBoD,KAI1B1D,EAAaM,oBAAsBA,EAKrCN,EAAa97B,UAAUy/B,gBAAkB,SAAyBlhC,GAChE,GAAiB,gBAANA,IAAkBA,EAAI,GAAKykB,MAAMzkB,GAC1C,KAAM,IAAIg/B,WAAU,yCAEtB,OADAhmB,MAAK0kB,cAAgB19B,EACdgZ,MASTukB,EAAa97B,UAAU0/B,gBAAkB,WACvC,MAAOxD,GAAiB3kB,OA4D1BukB,EAAa97B,UAAUyJ,KAAO,SAAcyoB,GAC1C,GAAIyN,GAAIrD,EAASG,EAAKhkB,EAAM/Z,EAAG+F,EAC3Bm7B,EAAoB,UAAT1N,CAGf,IADAztB,EAAS8S,KAAK7L,QAEZk0B,EAAWA,GAA2B,MAAhBn7B,EAAOyW,UAC1B,KAAK0kB,EACR,OAAO,CAGT,IAAIA,EAAS,CAGX,GAFIp+B,UAAUnC,OAAS,IACrBsgC,EAAKn+B,UAAU,IACbm+B,YAAc3gC,OAChB,KAAM2gC,EAGN,IAAIL,GAAM,GAAItgC,OAAM,6BAA+B2gC,EAAK,IAExD,MADAL,GAAIJ,QAAUS,EACRL,EAOV,KAFAhD,EAAU73B,EAAOytB,IAGf,OAAO,CAET,IAAIqK,GAA0B,kBAAZD,EAElB,QADAG,EAAMj7B,UAAUnC,QAGd,IAAK,GACHg9B,EAASC,EAASC,EAAMhlB,KACxB,MACF,KAAK,GACHqlB,EAAQN,EAASC,EAAMhlB,KAAM/V,UAAU,GACvC,MACF,KAAK,GACHs7B,EAAQR,EAASC,EAAMhlB,KAAM/V,UAAU,GAAIA,UAAU,GACrD,MACF,KAAK,GACHw7B,EAAUV,EAASC,EAAMhlB,KAAM/V,UAAU,GAAIA,UAAU,GAAIA,UAAU,GACrE,MAEF,SAEE,IADAiX,EAAO,GAAI3K,OAAM2uB,EAAM,GAClB/9B,EAAI,EAAGA,EAAI+9B,EAAK/9B,IACnB+Z,EAAK/Z,EAAI,GAAK8C,UAAU9C,EAC1Bu+B,GAASX,EAASC,EAAMhlB,KAAMkB,GAGlC,OAAO,GAsETqjB,EAAa97B,UAAU6/B,YAAc,SAAqB3N,EAAMkL,GAC9D,MAAOF,GAAa3lB,KAAM2a,EAAMkL,GAAU,IAG5CtB,EAAa97B,UAAU0E,GAAKo3B,EAAa97B,UAAU6/B,YAEnD/D,EAAa97B,UAAU8/B,gBACnB,SAAyB5N,EAAMkL,GAC7B,MAAOF,GAAa3lB,KAAM2a,EAAMkL,GAAU,IAkChDtB,EAAa97B,UAAU+/B,KAAO,SAAc7N,EAAMkL,GAChD,GAAwB,kBAAbA,GACT,KAAM,IAAIG,WAAU,yCAEtB,OADAhmB,MAAK7S,GAAGwtB,EAAM+L,EAAU1mB,KAAM2a,EAAMkL,IAC7B7lB,MAGTukB,EAAa97B,UAAUggC,oBACnB,SAA6B9N,EAAMkL,GACjC,GAAwB,kBAAbA,GACT,KAAM,IAAIG,WAAU,yCAEtB,OADAhmB,MAAKuoB,gBAAgB5N,EAAM+L,EAAU1mB,KAAM2a,EAAMkL,IAC1C7lB,MAIbukB,EAAa97B,UAAU+mB,eACnB,SAAwBmL,EAAMkL,GAC5B,GAAIsB,GAAMj6B,EAAQhE,EAAU/B,EAAGuhC,CAE/B,IAAwB,kBAAb7C,GACT,KAAM,IAAIG,WAAU,yCAGtB,MADA94B,EAAS8S,KAAK7L,SAEZ,MAAO6L,KAGT,MADAmnB,EAAOj6B,EAAOytB,IAEZ,MAAO3a,KAET,IAAImnB,IAAStB,GAAYsB,EAAKtB,WAAaA,EACb,KAAtB7lB,KAAKykB,aACTzkB,KAAK7L,QAAUqwB,EAAa,aAErBt3B,GAAOytB,GACVztB,EAAOsiB,gBACTxP,KAAK9N,KAAK,iBAAkByoB,EAAMwM,EAAKtB,UAAYA,QAElD,IAAoB,kBAATsB,GAAqB,CAGrC,IAFAj+B,GAAY,EAEP/B,EAAIggC,EAAKr/B,OAAS,EAAGX,GAAK,EAAGA,IAChC,GAAIggC,EAAKhgC,KAAO0+B,GAAYsB,EAAKhgC,GAAG0+B,WAAaA,EAAU,CACzD6C,EAAmBvB,EAAKhgC,GAAG0+B,SAC3B38B,EAAW/B,CACX,OAIJ,GAAI+B,EAAW,EACb,MAAO8W,KAEQ,KAAb9W,EACFi+B,EAAKhP,QAEL+O,EAAUC,EAAMj+B,GAEE,IAAhBi+B,EAAKr/B,SACPoF,EAAOytB,GAAQwM,EAAK,IAElBj6B,EAAOsiB,gBACTxP,KAAK9N,KAAK,iBAAkByoB,EAAM+N,GAAoB7C,GAG1D,MAAO7lB,OAGbukB,EAAa97B,UAAUkgC,mBACnB,SAA4BhO,GAC1B,GAAIwK,GAAWj4B,EAAQ/F,CAGvB,MADA+F,EAAS8S,KAAK7L,SAEZ,MAAO6L,KAGT,KAAK9S,EAAOsiB,eAUV,MATyB,KAArBvlB,UAAUnC,QACZkY,KAAK7L,QAAUqwB,EAAa,MAC5BxkB,KAAKykB,aAAe,GACXv3B,EAAOytB,KACY,KAAtB3a,KAAKykB,aACTzkB,KAAK7L,QAAUqwB,EAAa,YAErBt3B,GAAOytB,IAEX3a,IAIT,IAAyB,IAArB/V,UAAUnC,OAAc,CAC1B,GACIS,GADAyO,EAAO4wB,EAAW16B,EAEtB,KAAK/F,EAAI,EAAGA,EAAI6P,EAAKlP,SAAUX,EAEjB,oBADZoB,EAAMyO,EAAK7P,KAEX6Y,KAAK2oB,mBAAmBpgC,EAK1B,OAHAyX,MAAK2oB,mBAAmB,kBACxB3oB,KAAK7L,QAAUqwB,EAAa,MAC5BxkB,KAAKykB,aAAe,EACbzkB,KAKT,GAAyB,mBAFzBmlB,EAAYj4B,EAAOytB,IAGjB3a,KAAKwP,eAAemL,EAAMwK,OACrB,IAAIA,EAET,IAAKh+B,EAAIg+B,EAAUr9B,OAAS,EAAGX,GAAK,EAAGA,IACrC6Y,KAAKwP,eAAemL,EAAMwK,EAAUh+B,GAIxC,OAAO6Y,OAmBbukB,EAAa97B,UAAU08B,UAAY,SAAmBxK,GACpD,MAAOkM,GAAW7mB,KAAM2a,GAAM,IAGhC4J,EAAa97B,UAAUmgC,aAAe,SAAsBjO,GAC1D,MAAOkM,GAAW7mB,KAAM2a,GAAM,IAGhC4J,EAAa0C,cAAgB,SAASb,EAASzL,GAC7C,MAAqC,kBAA1ByL,GAAQa,cACVb,EAAQa,cAActM,GAEtBsM,EAAcp/B,KAAKu+B,EAASzL,IAIvC4J,EAAa97B,UAAUw+B,cAAgBA,EAiBvC1C,EAAa97B,UAAUogC,WAAa,WAClC,MAAO7oB,MAAKykB,aAAe,EAAIqE,QAAQC,QAAQ/oB,KAAK7L,kBA4ChD60B,IAAI,SAAS1hC,EAAQU,EAAOJ,GAMlC,QAASqhC,GAAmBC,EAAMC,EAAQ3qB,GACxC,IAAK0qB,EAAM,KAAM,IAAIlD,WAAU,uCAG/B,IAFAxnB,EAA0B,IAAfA,GAAU,GAEjBjI,MAAMC,QAAQ0yB,IAAUA,EAAK,IAA4B,gBAAfA,GAAK,GAAG,GAAkB,CACtE,GAEI/hC,GAAGiiC,EAAG7kB,EAAGjJ,EAFT+tB,EAAMH,EAAK,GAAGphC,OACdA,EAASohC,EAAKphC,OAASuhC,CAItBF,IAA4B,gBAAXA,KACpBA,EAAS,IAAKtF,EAAMsF,GAAU,YAAYrhC,EAAS0W,GAGrD,IAAI8qB,GAAYH,EAAOrhC,OAAS0W,CAChC,IAAI1W,IAAWwhC,EACb,KAAM,IAAI7hC,OAAM,iBAAmBK,EAAS,KAAOuhC,EAAM,IAAMH,EAAKphC,OAAS,uCACnCwhC,EAG5C,KAAKniC,EAAI,EAAGod,EAAI/F,EAAQrX,EAAI+hC,EAAKphC,OAAQX,IACvC,IAAKiiC,EAAI,EAAGA,EAAIC,EAAKD,IACnBD,EAAO5kB,KAAsB,OAAf2kB,EAAK/hC,GAAGiiC,GAAcG,IAAML,EAAK/hC,GAAGiiC,OAItD,IAAKD,GAA4B,gBAAXA,GAqBpBA,EAAO94B,IAAI64B,EAAM1qB,OArBwB,CAEzC,GAAIgrB,GAAO3F,EAAMsF,GAAU,UAG3B,IAAI5yB,MAAMC,QAAQ0yB,IAAoB,UAAXC,EAEzB,IADAA,EAAS,GAAIK,GAAKN,EAAKphC,OAAS0W,GAC3BrX,EAAI,EAAGod,EAAI/F,EAAQlD,EAAI6tB,EAAOrhC,OAAQyc,EAAIjJ,EAAGiJ,IAAKpd,IACrDgiC,EAAO5kB,GAAiB,OAAZ2kB,EAAK/hC,GAAcoiC,IAAML,EAAK/hC,OAG7B,KAAXqX,EACF2qB,EAAS,GAAIK,GAAKN,IAElBC,EAAS,GAAIK,GAAKN,EAAKphC,OAAS0W,GAEhC2qB,EAAO94B,IAAI64B,EAAM1qB,IASzB,MAAO2qB,GAvDT,GAAItF,GAAQv8B,EAAQ,QAEpBU,GAAOJ,QAAUqhC,IAwDdpF,MAAQ,KAAK4F,IAAI,SAASniC,EAAQU,EAAOJ,GACf,kBAAlBY,QAAOgE,OAEhBxE,EAAOJ,QAAU,SAAkB8hC,EAAMC,GACvCD,EAAKE,OAASD,EACdD,EAAKjhC,UAAYD,OAAOgE,OAAOm9B,EAAUlhC,WACvC+kB,aACE1f,MAAO47B,EACP1B,YAAY,EACZ6B,UAAU,EACVC,cAAc,MAMpB9hC,EAAOJ,QAAU,SAAkB8hC,EAAMC,GACvCD,EAAKE,OAASD,CACd,IAAII,GAAW,YACfA,GAASthC,UAAYkhC,EAAUlhC,UAC/BihC,EAAKjhC,UAAY,GAAIshC,GACrBL,EAAKjhC,UAAU+kB,YAAckc,QAI3BM,IAAI,SAAS1iC,EAAQU,EAAOJ,GAclC,QAASqiC,GAAU/hC,GACjB,QAASA,EAAIslB,aAAmD,kBAA7BtlB,GAAIslB,YAAYyc,UAA2B/hC,EAAIslB,YAAYyc,SAAS/hC,GAIzG,QAASgiC,GAAchiC,GACrB,MAAkC,kBAApBA,GAAIiiC,aAAmD,kBAAdjiC,GAAI6rB,OAAwBkW,EAAS/hC,EAAI6rB,MAAM,EAAG,IAV3G/rB,EAAOJ,QAAU,SAAUM,GACzB,MAAc,OAAPA,IAAgB+hC,EAAS/hC,IAAQgiC,EAAahiC,MAAUA,EAAIkiC,iBAY/DC,IAAI,SAAS/iC,EAAQU,EAAOJ,GAoBlC,QAAS0iC,GAAWhQ,GAClBta,KAAKuqB,UACLvqB,KAAKwqB,SAAWxqB,KAAKyqB,eAAe7D,KAAK5mB,MACzCA,KAAKvS,OAAO6sB,GA+Ld,QAASoQ,GAAUh9B,GACjBlF,OAAOqF,eAAey8B,EAAW7hC,UAAWiF,GAC1C0C,IAAKu6B,EAAQj9B,GACbo8B,cAAc,IAKlB,QAASa,GAAQj9B,GACf,MAAO,IAAKm6B,WACV,mBAAmBn6B,EAAK,OACxB,kBAAkBA,EAClB,KACAgM,KAAK,SAGT,QAASkxB,GAAazP,EAAMhO,GAC1B,IAAKgO,EAAK0P,OAA+B,IAAtB1P,EAAK0P,MAAM/iC,OAC5B,MAAO,KAET,IAAIgjC,GAAWC,EAAS5P,EAAK0P,MAAO1d,EACpC,OAAI2d,IAAY,EACP3P,EAAK0P,MAAMC,GACb,KAGT,QAASE,GAAW7P,GAClB,IAAK,GAAIh0B,GAAE,EAAGA,EAAE8jC,EAAUnjC,OAAQX,IAAK,CACrC,GAAIgmB,GAAK8d,EAAU9jC,GAAG+jC,WAAW,GAC7BC,EAAMJ,EAAS5P,EAAK0P,MAAO1d,EAC/B,IAAIge,GAAO,EACT,MAAOhQ,GAAK0P,MAAMM,GAAKzgC,OAE3B,MAAO,GAGT,QAAS0gC,GAAUjQ,GACjB,IAAK,GAAIh0B,GAAE,EAAGA,EAAEkkC,EAASvjC,OAAQX,IAAK,CACpC,GAAIgmB,GAAKke,EAASlkC,GAAG+jC,WAAW,GAC5BC,EAAMJ,EAAS5P,EAAK0P,MAAO1d,EAC/B,IAAIge,GAAO,EACT,MAAOhQ,GAAK0P,MAAMM,GAEtB,MAAO,GAGT,QAASG,GAAanQ,GACpB,IAAK,GAAIh0B,GAAE,EAAGA,EAAEokC,EAAYzjC,OAAQX,IAAK,CACvC,GAAIgmB,GAAKoe,EAAYpkC,GAAG+jC,WAAW,GAC/BC,EAAMJ,EAAS5P,EAAK0P,MAAO1d,EAC/B,IAAIge,GAAO,EACT,MAAOhQ,GAAK0P,MAAMM,GAAKzgC,OAE3B,MAAO,GAGT,QAAS8gC,GAAWrQ,EAAM5f,EAAMC,GAC9B,IAAK2f,EAAKsQ,UAAqC,IAAzBtQ,EAAKsQ,SAAS3jC,OAClC,MAAO,EAGT,KAAK,GADD4jC,GAAQvQ,EAAKsQ,SACRtkC,EAAE,EAAGA,EAAEukC,EAAM5jC,OAAQX,IAAK,CACjC,GAAIwkC,GAAOD,EAAMvkC,EACjB,IAAIwkC,EAAKC,QAAUrwB,GAAQowB,EAAKE,SAAWrwB,EACzC,MAAOmwB,GAAKG,OAEhB,MAAO,GAGT,QAASC,GAAa1Q,GACpB,MAAc,WAAVA,EACK2Q,EACU,UAAV3Q,EACA4Q,EACFC,EAGT,QAASnB,GAAUl2B,EAAO/G,EAAOq+B,GAC/BA,EAAQA,GAAS,CACjB,KAAK,GAAIhlC,GAAIglC,EAAOhlC,EAAI0N,EAAM/M,OAAQX,IACpC,GAAI0N,EAAM1N,GAAGgmB,KAAOrf,EAClB,MAAO3G,EAGX,QAAQ,EAzSV,GAAIilC,GAAW9kC,EAAQ,gBACnB+kC,EAAQ/kC,EAAQ,SAChB4qB,EAAS5qB,EAAQ,aAEjB2jC,GAAa,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzEI,GAAY,IAAK,KACjBE,GAAe,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhFe,EAAS,KAAKpB,WAAW,GACzBqB,EAAW,IAAIrB,WAAW,GAC1BgB,EAAa,EACbF,EAAe,EACfC,EAAc,CAElBjkC,GAAOJ,QAAU,SAAsB0yB,GACrC,MAAO,IAAIgQ,GAAWhQ,IASxBgQ,EAAW7hC,UAAUgF,OAAS,SAAS6sB,GAOrC,GANAA,EAAM+R,GACJG,QAASxsB,KAAKwqB,UACblQ,GACHta,KAAKysB,KAAOnS,EACZta,KAAKysB,KAAKC,QAAUxa,EAAOlS,KAAKysB,KAAKC,QAAS,IAEzCpS,EAAIa,KACP,KAAM,IAAI1zB,OAAM,mCAElB,IAAI8iC,GAASvqB,KAAKuqB,OACdtgB,EAAOqQ,EAAIrQ,MAAM,GACjBkR,EAAOb,EAAIa,IACfnb,MAAK2sB,kBAAkBxR,EAEvB,IAAIyR,GAAQR,EAASQ,MAAM3iB,EAAMqQ,GAC7BuS,EAAWvS,EAAIhwB,OAAS,CAG5BigC,GAAOziC,OAAS,CAGhB,IAAIglC,GAAeF,EAAM5d,OAAO,SAAS+d,EAAMC,GAC7C,MAAOphC,MAAKgG,IAAIm7B,EAAMC,EAAK1iC,MAAOuiC,IACjC,GAGCxgC,EAAI,EACJM,EAAI,EACJsgC,EAAa/a,EAAOoI,EAAI2S,WAAY9R,EAAK+R,OAAOD,YAChDE,EAAWhS,EAAK+R,OAAOE,KACvBC,EAAYJ,EAAWE,EACvBG,EAAgBhT,EAAIgT,eAAiB,EACrC5iC,EAASuiC,EAAaL,EAAM9kC,OAASulC,EACrChS,EAAQ0Q,EAAa/rB,KAAKysB,KAAKpR,MAGnC1uB,IAAKjC,EAGLsV,KAAK8Y,OAASgU,EACd9sB,KAAKutB,QAAU7iC,EACfsV,KAAKwtB,WAAaP,EAAaE,EAC/BntB,KAAKytB,UAAYN,EACjBntB,KAAK0tB,SAAW1C,EAAW7P,GAC3Bnb,KAAK2tB,WAAarC,EAAanQ,GAC/Bnb,KAAK4tB,YAAcX,EACnBjtB,KAAK6tB,UAAYZ,EAAaI,EAAYrtB,KAAK0tB,QAG/C,IAAIzI,GAAOjlB,IACX4sB,GAAMv0B,QAAQ,SAAS20B,EAAMc,GAO3B,IAAK,GAHDC,GAHA5B,EAAQa,EAAKb,MACb6B,EAAMhB,EAAKgB,IACXC,EAAYjB,EAAK1iC,MAIZnD,EAAEglC,EAAOhlC,EAAE6mC,EAAK7mC,IAAK,CAC5B,GAAIgmB,GAAKlD,EAAKihB,WAAW/jC,GACrB+mC,EAAQjJ,EAAKkJ,SAAShT,EAAMhO,EAChC,IAAI+gB,EAAO,CACLH,IACF1hC,GAAKm/B,EAAWrQ,EAAM4S,EAAU5gB,GAAI+gB,EAAM/gB,IAE5C,IAAIihB,GAAK/hC,CACLgvB,KAAU2Q,EACZoC,IAAOtB,EAAamB,GAAW,EACxB5S,IAAU4Q,IACjBmC,GAAOtB,EAAamB,GAEtB1D,EAAO9yB,MACLvO,UAAWklC,EAAIzhC,GACfu8B,KAAMgF,EACN31B,MAAOpR,EACP6lC,KAAMc,IAIRzhC,GAAK6hC,EAAMG,SAAWf,EACtBS,EAAYG,GAKhBvhC,GAAKsgC,EACL5gC,EAAI,IAEN2T,KAAKsuB,YAAc1B,EAAM9kC,QAG3BwiC,EAAW7hC,UAAUkkC,kBAAoB,SAASxR,GAMhD,GAHAnb,KAAKuuB,oBAAsB,KAC3BvuB,KAAKwuB,kBAAoB,KAEpBrT,EAAK0P,OAA+B,IAAtB1P,EAAK0P,MAAM/iC,OAA9B,CAMA,GAAI2mC,GAAQ7D,EAAazP,EAAMoR,IACpBnB,EAAUjQ,IACVA,EAAK0P,MAAM,GAGlB6D,EAAW1uB,KAAKysB,KAAKC,QAAU+B,EAAMJ,QACzCruB,MAAKuuB,oBAAsBE,EAC3BzuB,KAAKwuB,kBAAoBnC,EAAMoC,GAC7BpiC,EAAG,EAAGM,EAAG,EAAG0hC,SAAUK,EAAUvhB,GAAImf,EACpCqC,QAAS,EAAGC,QAAS,EAAGtkC,MAAO,EAAGI,OAAQ,MAI9C4/B,EAAW7hC,UAAU0lC,SAAW,SAAShT,EAAMhO,GAC7C,GAAI+gB,GAAQtD,EAAazP,EAAMhO,EAC/B,OAAI+gB,KAEK/gB,IAAOmf,EACPtsB,KAAKwuB,kBACLrhB,IAAOof,EACPvsB,KAAKuuB,oBACP,OAGTjE,EAAW7hC,UAAUgiC,eAAiB,SAASxgB,EAAMkiB,EAAO6B,EAAK1jC,GAC/D,GAKI4jC,GACAH,EANAT,EAAgBttB,KAAKysB,KAAKa,eAAiB,EAC3CnS,EAAOnb,KAAKysB,KAAKtR,KACjB0T,EAAS,EACTC,EAAW,EACXzI,EAAQ,CAIZ,KAAKlL,EAAK0P,OAA+B,IAAtB1P,EAAK0P,MAAM/iC,OAC5B,OACEqkC,MAAOA,EACP6B,IAAK7B,EACL7hC,MAAO,EAIX0jC,GAAMpiC,KAAKiG,IAAIoY,EAAKniB,OAAQkmC,EAC5B,KAAK,GAAI7mC,GAAEglC,EAAOhlC,EAAI6mC,EAAK7mC,IAAK,CAC9B,GAAIgmB,GAAKlD,EAAKihB,WAAW/jC,GACrB+mC,EAAQluB,KAAKmuB,SAAShT,EAAMhO,EAEhC,IAAI+gB,EAAO,CAEEA,EAAMS,OAEjBE,IADWd,EAAYvC,EAAWrQ,EAAM4S,EAAU5gB,GAAI+gB,EAAM/gB,IAAM,CAGlE,IAAI4hB,GAAUF,EAASX,EAAMG,SAAWf,EACpC0B,EAAYH,EAASX,EAAM5jC,KAG/B,IAAI0kC,GAAa1kC,GAASykC,GAAWzkC,EACnC,KAGFukC,GAASE,EACTD,EAAWE,EACXjB,EAAYG,EAEd7H,IAOF,MAHI0H,KACFe,GAAYf,EAAUY,UAGtBxC,MAAOA,EACP6B,IAAK7B,EAAQ9F,EACb/7B,MAAOwkC,KAKT,QAAS,SACT,YAAa,WACb,UAAW,WACX,YACA,cAAez2B,QAAQqyB,KAwFtBuE,YAAY,GAAGC,eAAe,GAAG7C,MAAQ,KAAK8C,IAAI,SAAS7nC,EAAQU,EAAOJ,GAO7E,YAMA,SAASwnC,GAASC,GACjB,GAAY,OAARA,OAAwBnlC,KAARmlC,EACnB,KAAM,IAAIrJ,WAAU,wDAGrB,OAAOx9B,QAAO6mC,GATf,GAAIC,GAAwB9mC,OAAO8mC,sBAC/B5mC,EAAiBF,OAAOC,UAAUC,eAClC6mC,EAAmB/mC,OAAOC,UAAU+mC,oBAsDxCxnC,GAAOJ,QA5CP,WACC,IACC,IAAKY,OAAO6xB,OACX,OAAO,CAMR,IAAIoV,GAAQ,GAAItJ,QAAO,MAEvB,IADAsJ,EAAM,GAAK,KACkC,MAAzCjnC,OAAOknC,oBAAoBD,GAAO,GACrC,OAAO,CAKR,KAAK,GADDE,MACKxoC,EAAI,EAAGA,EAAI,GAAIA,IACvBwoC,EAAM,IAAMxJ,OAAOyJ,aAAazoC,IAAMA,CAKvC,IAAwB,eAHXqB,OAAOknC,oBAAoBC,GAAO71B,IAAI,SAAU9S,GAC5D,MAAO2oC,GAAM3oC,KAEH0S,KAAK,IACf,OAAO,CAIR,IAAIm2B,KAIJ,OAHA,uBAAuBrX,MAAM,IAAIngB,QAAQ,SAAUy3B,GAClDD,EAAMC,GAAUA,IAGf,yBADEtnC,OAAOwO,KAAKxO,OAAO6xB,UAAWwV,IAAQn2B,KAAK,IAM9C,MAAOquB,GAER,OAAO,MAI4Bv/B,OAAO6xB,OAAS,SAAUuL,EAAQmK,GAKtE,IAAK,GAJDr5B,GAEAs5B,EADAC,EAAKb,EAASxJ,GAGTt0B,EAAI,EAAGA,EAAIrH,UAAUnC,OAAQwJ,IAAK,CAC1CoF,EAAOlO,OAAOyB,UAAUqH,GAExB,KAAK,GAAI/I,KAAOmO,GACXhO,EAAeb,KAAK6O,EAAMnO,KAC7B0nC,EAAG1nC,GAAOmO,EAAKnO,GAIjB,IAAI+mC,EAAuB,CAC1BU,EAAUV,EAAsB54B,EAChC,KAAK,GAAIvP,GAAI,EAAGA,EAAI6oC,EAAQloC,OAAQX,IAC/BooC,EAAiB1nC,KAAK6O,EAAMs5B,EAAQ7oC,MACvC8oC,EAAGD,EAAQ7oC,IAAMuP,EAAKs5B,EAAQ7oC,MAMlC,MAAO8oC,SAGFC,IAAI,SAAS5oC,EAAQU,EAAOJ,GA0ClC,QAASuoC,GAAUnD,EAAM7B,GAEvB,KADA6B,EAAOA,EAAKoD,QAAQ,OAAQ,KAAKC,QAE/B,MAAO,KAET,IAAI5B,GAAQzB,EAAKzzB,QAAQ,IACzB,KAAe,IAAXk1B,EACF,KAAM,IAAIhnC,OAAM,wBAA0B0jC,EAE5C,IAAI5iC,GAAMykC,EAAK/Q,UAAU,EAAGwS,EAE5BzB,GAAOA,EAAK/Q,UAAUwS,EAAQ,GAG9BzB,EAAOA,EAAKoD,QAAQ,2BAA4B,IAChDpD,EAAOA,EAAKxU,MAAM,KAClBwU,EAAOA,EAAKlzB,IAAI,SAASnM,GACvB,MAAOA,GAAI0iC,OAAOC,MAAM,kCAI1B,KAAK,GADDpH,MACK/hC,EAAI,EAAGA,EAAI6lC,EAAKllC,OAAQX,IAAK,CACpC,GAAIopC,GAAKvD,EAAK7lC,EACJ,KAANA,EACF+hC,EAAKzxB,MACHlP,IAAKgoC,EAAG,GACRrH,KAAM,KAEC/hC,IAAM6lC,EAAKllC,OAAS,EAC7BohC,EAAKA,EAAKphC,OAAS,GAAGohC,KAAOsH,EAAUD,EAAG,KAE1CrH,EAAKA,EAAKphC,OAAS,GAAGohC,KAAOsH,EAAUD,EAAG,IAC1CrH,EAAKzxB,MACHlP,IAAKgoC,EAAG,GACRrH,KAAM,MAKZ,GAAIuH,IACFloC,IAAKA,EACL2gC,QAOF,OAJAA,GAAK7wB,QAAQ,SAAS9G,GACpBk/B,EAAIvH,KAAK33B,EAAEhJ,KAAOgJ,EAAE23B,OAGfuH,EAGT,QAASD,GAAUtH,GACjB,MAAKA,IAAwB,IAAhBA,EAAKphC,OAGQ,IAAtBohC,EAAK3vB,QAAQ,MAAoC,IAAtB2vB,EAAK3vB,QAAQ,KACnC2vB,EAAKjN,UAAU,EAAGiN,EAAKphC,OAAS,IACd,IAAvBohC,EAAK3vB,QAAQ,KACRm3B,EAAaxH,GACfyH,SAASzH,EAAM,IANb,GASX,QAASwH,GAAaxH,GACpB,MAAOA,GAAK1Q,MAAM,KAAK1e,IAAI,SAASu1B,GAClC,MAAOsB,UAAStB,EAAK,MAzGzBrnC,EAAOJ,QAAU,SAA0BshC,GACzC,IAAKA,EACH,KAAM,IAAIzhC,OAAM,mBAClByhC,GAAOA,EAAK79B,WAAWglC,MAEvB,IAAIlH,IACFyH,SACA/F,SACAY,aAGEmB,EAAQ1D,EAAK1Q,MAAM,YAEvB,IAAqB,IAAjBoU,EAAM9kC,OACR,KAAM,IAAIL,OAAM,yBAElB,KAAK,GAAIN,GAAI,EAAGA,EAAIylC,EAAM9kC,OAAQX,IAAK,CACrC,GAAI0pC,GAAWV,EAAUvD,EAAMzlC,GAAIA,EACnC,IAAK0pC,EAGL,GAAqB,SAAjBA,EAAStoC,IAAgB,CAC3B,GAAgC,gBAArBsoC,GAAS3H,KAAK/b,GACvB,KAAM,IAAI1lB,OAAM,0BAA4BN,EAAI,sBAClD,IAAkC,gBAAvB0pC,GAAS3H,KAAK4H,KACvB,KAAM,IAAIrpC,OAAM,0BAA4BN,EAAI,6BAClDgiC,GAAOyH,MAAMC,EAAS3H,KAAK/b,IAAM0jB,EAAS3H,KAAK4H,SACrB,UAAjBD,EAAStoC,KAAoC,aAAjBsoC,EAAStoC,MAEpB,SAAjBsoC,EAAStoC,IAClB4gC,EAAO0B,MAAMpzB,KAAKo5B,EAAS3H,MACD,YAAjB2H,EAAStoC,IAClB4gC,EAAOsC,SAASh0B,KAAKo5B,EAAS3H,MAE9BC,EAAO0H,EAAStoC,KAAOsoC,EAAS3H,MAIpC,MAAOC,SAsEH4H,IAAI,SAASzpC,EAAQU,EAAOJ,GAClC,GAAIi8B,GAAQv8B,EAAQ,SAChBg8B,EAAUh8B,EAAQ,YAClB2iC,EAAW3iC,EAAQ,aAEnB0pC,GAAM,EAAG,EAAG,GACZC,GAAO,EAAG,EAAG,EAEjBjpC,GAAOJ,QAAU,SAA4BiN,EAAOylB,GAE3CzlB,IAAWyuB,EAAQzuB,IAAUo1B,EAASp1B,MACvCylB,EAAMzlB,MACNA,EAAQ,MAIRylB,EADe,gBAARA,IACC+L,MAAO/L,GAETA,KAcV,KAAK,GAZDK,GAA2B,gBAAbL,GAAIK,KAAoBL,EAAIK,KAAO,SACjD0L,EAA6B,gBAAd/L,GAAI+L,MAAqB/L,EAAI+L,MAAQ,EACpD8F,EAAS7R,EAAI6R,OAAS,EAEtB+E,GAAwB,IAAlB5W,EAAI6W,UAAsBH,EAAKC,EACrCzpC,EAAI0pC,EAAI,GACRz/B,EAAIy/B,EAAI,GACR7pC,EAAI6pC,EAAI,GAERE,EAAqB,EAAR/K,EAEbgL,EAAUx8B,GAAS,IAAKgvB,EAAMlJ,IAAOyW,GAChCjqC,EAAI,EAAGiiC,EAAI,EAAGjiC,EAAIiqC,EAAYjqC,GAAK,EAAGiiC,GAAK,EAAG,CACnD,GAAI/8B,GAAIlF,EAAIglC,CACZkF,GAAQhlC,EAAI,GAAK+8B,EAAI,EACrBiI,EAAQhlC,EAAI,GAAK+8B,EAAI,EACrBiI,EAAQhlC,EAAI,GAAK+8B,EAAI,EACrBiI,EAAQhlC,EAAI,GAAK+8B,EAAI5hC,EACrB6pC,EAAQhlC,EAAI,GAAK+8B,EAAI33B,EACrB4/B,EAAQhlC,EAAI,GAAK+8B,EAAI/hC,EAEzB,MAAOgqC,MAERC,WAAW,GAAGzN,MAAQ,GAAG0N,YAAY,KAAKC,IAAI,SAASlqC,EAAQU,EAAOJ,GAgBzE,QAAS6pC,GAAcnX,GACrBoX,EAAK7pC,KAAKmY,MAES,gBAARsa,KACTA,GAAQrQ,KAAMqQ,IAKhBta,KAAKysB,KAAOpS,KAAWC,GAGnBA,GAAKta,KAAKvS,OAAO6sB,GA3BvB,GAAIqX,GAAerqC,EAAQ,sBACvBsqC,EAAWtqC,EAAQ,YACnBuqC,EAAgBvqC,EAAQ,gBACxBk8B,EAASl8B,EAAQ,4BACjB+yB,EAAS/yB,EAAQ,iBAEjBwqC,EAAWxqC,EAAQ,kBACnByqC,EAAQzqC,EAAQ,eAEhBoqC,EAAOxmC,MAAM0kB,cAEjB5nB,GAAOJ,QAAU,SAA6B0yB,GAC5C,MAAO,IAAImX,GAAanX,IAkB1BsX,EAASH,EAAcC,GAEvBD,EAAahpC,UAAUgF,OAAS,SAAU6sB,GAQxC,GAPmB,gBAARA,KACTA,GAAQrQ,KAAMqQ,IAIhBA,EAAMD,KAAWra,KAAKysB,KAAMnS,IAEvBA,EAAIa,KACP,KAAM,IAAI6K,WAAU,qCAGtBhmB,MAAKtT,OAASilC,EAAarX,EAG3B,IAAIgB,IAAsB,IAAdhB,EAAIgB,MAGZH,EAAOb,EAAIa,KAGX6W,EAAW7W,EAAK+R,OAAO+E,OACvBC,EAAY/W,EAAK+R,OAAOiF,OAGxB5H,EAASvqB,KAAKtT,OAAO69B,OAAO3vB,OAAO,SAAUszB,GAC/C,GAAIkE,GAASlE,EAAMhF,IACnB,OAAOkJ,GAAO9nC,MAAQ8nC,EAAO1nC,OAAS,GAIxCsV,MAAKqyB,cAAgB9H,CAGrB,IAAI+H,GAAYR,EAASQ,UAAU/H,GAC/BgI,EAAMT,EAASS,IAAIhI,EAAQyH,EAAUE,EAAW5W,GAChD+V,EAAUQ,GACZV,WAAW,EACXxW,KAAM,SACN0L,MAAOkE,EAAOziC,QAShB,IALA07B,EAAOjrB,MAAMyH,KAAMqxB,EAAS,EAAG,UAC/B7N,EAAOgP,KAAKxyB,KAAM,WAAYsyB,EAAW,GACzC9O,EAAOgP,KAAKxyB,KAAM,KAAMuyB,EAAK,IAGxBjY,EAAImY,WAAa,QAAUzyB,MAAK4iB,WAEnC5iB,KAAK0yB,gBAAgB,YAChB,IAAIpY,EAAImY,UAAW,CACxB,GAAI7B,GAAQkB,EAASlB,MAAMrG,EAE3B/G,GAAOgP,KAAKxyB,KAAM,OAAQ4wB,EAAO,KAIrCa,EAAahpC,UAAU8rB,sBAAwB,WACjB,OAAxBvU,KAAK2yB,iBACP3yB,KAAK2yB,eAAiB,GAAIznC,OAAM0nC,OAGlC,IAAIN,GAAYtyB,KAAK4iB,WAAW15B,SAAS2L,MACrCguB,EAAW7iB,KAAK4iB,WAAW15B,SAAS25B,QACxC,KAAKyP,IAAczP,GAAYyP,EAAUxqC,OAAS,EAGhD,MAFAkY,MAAK2yB,eAAeE,OAAS,MAC7B7yB,MAAK2yB,eAAeG,OAAOziC,IAAI,EAAG,EAAG,EAGvC0hC,GAAMgB,cAAcT,EAAWtyB,KAAK2yB,gBAChClnB,MAAMzL,KAAK2yB,eAAeE,SAC5Br5B,QAAQmK,MAAM,iIAMlB8tB,EAAahpC,UAAU+rB,mBAAqB,WACjB,OAArBxU,KAAK6Y,cACP7Y,KAAK6Y,YAAc,GAAI3tB,OAAMwZ,KAG/B,IAAIsuB,GAAOhzB,KAAK6Y,YACZyZ,EAAYtyB,KAAK4iB,WAAW15B,SAAS2L,MACrCguB,EAAW7iB,KAAK4iB,WAAW15B,SAAS25B,QACxC,KAAKyP,IAAczP,GAAYyP,EAAUxqC,OAAS,EAEhD,WADAkrC,GAAKC,WAGPlB,GAAMmB,WAAWZ,EAAWU,MAG3BG,cAAc,GAAGC,iBAAiB,GAAGxB,SAAW,GAAGyB,qBAAqB,GAAGzY,gBAAgB,GAAG0Y,eAAe,GAAGC,2BAA2B,KAAKC,IAAI,SAASlsC,EAAQU,EAAOJ,GAI/K,QAAS6rC,GAAQnB,GACf,GAAIjM,GAAQiM,EAAUxqC,OAAS+6B,CAC/B3iB,GAAIrO,IAAI,GAAKygC,EAAU,GACvBpyB,EAAIrO,IAAI,GAAKygC,EAAU,GACvBpyB,EAAItO,IAAI,GAAK0gC,EAAU,GACvBpyB,EAAItO,IAAI,GAAK0gC,EAAU,EAEvB,KAAK,GAAInrC,GAAI,EAAGA,EAAIk/B,EAAOl/B,IAAK,CAC9B,GAAIkF,GAAIimC,EAAUnrC,EAAI07B,EAAW,GAC7Bl2B,EAAI2lC,EAAUnrC,EAAI07B,EAAW,EACjC3iB,GAAIrO,IAAI,GAAKjG,KAAKiG,IAAIxF,EAAG6T,EAAIrO,IAAI,IACjCqO,EAAIrO,IAAI,GAAKjG,KAAKiG,IAAIlF,EAAGuT,EAAIrO,IAAI,IACjCqO,EAAItO,IAAI,GAAKhG,KAAKgG,IAAIvF,EAAG6T,EAAItO,IAAI,IACjCsO,EAAItO,IAAI,GAAKhG,KAAKgG,IAAIjF,EAAGuT,EAAItO,IAAI,KAhBrC,GAAIixB,GAAW,EACX3iB,GAAQrO,KAAM,EAAG,GAAID,KAAM,EAAG,GAmBlC5J,GAAOJ,QAAQsrC,WAAa,SAAUZ,EAAWnJ,GAC/CsK,EAAOnB,GACPnJ,EAAOt3B,IAAIxB,IAAI6P,EAAIrO,IAAI,GAAIqO,EAAIrO,IAAI,GAAI,GACvCs3B,EAAOv3B,IAAIvB,IAAI6P,EAAItO,IAAI,GAAIsO,EAAItO,IAAI,GAAI,IAGzC5J,EAAOJ,QAAQmrC,cAAgB,SAAUT,EAAWnJ,GAClDsK,EAAOnB,EACP,IAAIoB,GAAOxzB,EAAIrO,IAAI,GACf8hC,EAAOzzB,EAAIrO,IAAI,GACf+hC,EAAO1zB,EAAItO,IAAI,GACfiiC,EAAO3zB,EAAItO,IAAI,GACftH,EAAQspC,EAAOF,EACfhpC,EAASmpC,EAAOF,EAChB7rC,EAAS8D,KAAKkoC,KAAKxpC,EAAQA,EAAQI,EAASA,EAChDy+B,GAAO2J,OAAOziC,IAAIqjC,EAAOppC,EAAQ,EAAGqpC,EAAOjpC,EAAS,EAAG,GACvDy+B,EAAO0J,OAAS/qC,EAAS,QAGrBisC,IAAI,SAASzsC,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAQgpC,MAAQ,SAAgBrG,GACrC,GAAIqG,GAAQ,GAAI97B,cAA6B,EAAhBy1B,EAAOziC,OAAa,GAC7CX,EAAI,CAQR,OAPAojC,GAAOlyB,QAAQ,SAAU61B,GACvB,GAAI/gB,GAAK+gB,EAAMhF,KAAK8K,MAAQ,CAC5BpD,GAAMzpC,KAAOgmB,EACbyjB,EAAMzpC,KAAOgmB,EACbyjB,EAAMzpC,KAAOgmB,EACbyjB,EAAMzpC,KAAOgmB,IAERyjB,GAGT5oC,EAAOJ,QAAQ2qC,IAAM,SAAchI,EAAQyH,EAAUE,EAAW5W,GAC9D,GAAIiX,GAAM,GAAIz9B,cAA6B,EAAhBy1B,EAAOziC,OAAa,GAC3CX,EAAI,CA8BR,OA7BAojC,GAAOlyB,QAAQ,SAAU61B,GACvB,GAAIkE,GAASlE,EAAMhF,KACf+K,EAAM7B,EAAO/lC,EAAI+lC,EAAO9nC,MACxB4pC,EAAM9B,EAAOzlC,EAAIylC,EAAO1nC,OAGxBypC,EAAK/B,EAAO/lC,EAAI2lC,EAChBoC,EAAKhC,EAAOzlC,EAAIulC,EAChBmC,EAAKJ,EAAKjC,EACVsC,EAAKJ,EAAKhC,CAEV5W,KACF8Y,GAAMlC,EAAYE,EAAOzlC,GAAKulC,EAC9BoC,GAAMpC,EAAYgC,GAAMhC,GAI1BK,EAAIprC,KAAOgtC,EACX5B,EAAIprC,KAAOitC,EAEX7B,EAAIprC,KAAOgtC,EACX5B,EAAIprC,KAAOmtC,EAEX/B,EAAIprC,KAAOktC,EACX9B,EAAIprC,KAAOmtC,EAEX/B,EAAIprC,KAAOktC,EACX9B,EAAIprC,KAAOitC,IAEN7B,GAGTvqC,EAAOJ,QAAQ0qC,UAAY,SAAoB/H,GAC7C,GAAI+H,GAAY,GAAIx9B,cAA6B,EAAhBy1B,EAAOziC,OAAa,GACjDX,EAAI,CAyBR,OAxBAojC,GAAOlyB,QAAQ,SAAU61B,GACvB,GAAIkE,GAASlE,EAAMhF,KAGf78B,EAAI6hC,EAAMhlC,SAAS,GAAKkpC,EAAOzD,QAC/BhiC,EAAIuhC,EAAMhlC,SAAS,GAAKkpC,EAAOxD,QAG/BrkB,EAAI6nB,EAAO9nC,MACX+G,EAAI+gC,EAAO1nC,MAGf4nC,GAAUnrC,KAAOkF,EACjBimC,EAAUnrC,KAAOwF,EAEjB2lC,EAAUnrC,KAAOkF,EACjBimC,EAAUnrC,KAAOwF,EAAI0E,EAErBihC,EAAUnrC,KAAOkF,EAAIke,EACrB+nB,EAAUnrC,KAAOwF,EAAI0E,EAErBihC,EAAUnrC,KAAOkF,EAAIke,EACrB+nB,EAAUnrC,KAAOwF,IAEZ2lC,QAGHiC,IAAI,SAASjtC,EAAQU,EAAOJ,GAOlC,QAAS4sC,GAAU//B,EAAUy0B,EAAMrG,EAAUgB,GAGmB,MAFtC,gBAAbhB,KAAuBA,EAAW,GACxB,gBAAVgB,KAAoBA,EAAQ,cACvCpvB,GAAS+/B,SAAS,GAAItpC,OAAM+J,gBAAgBi0B,EAAMrG,IAWpD,QAAS7tB,GAAcP,EAAUlM,EAAK2gC,EAAMrG,EAAUgB,GAGmB,MAF/C,gBAAbhB,KAAuBA,EAAW,GACxB,gBAAVgB,KAAoBA,EAAQ,eACvCpvB,GAASO,aAAazM,EAAK,GAAI2C,OAAM+J,gBAAgBi0B,EAAMrG,IAvB/Cv7B,EAAQ,sBAGtBU,GAAOJ,QAAQ4qC,KAAOx9B,EACtBhN,EAAOJ,QAAQ2Q,MAAQi8B,IAiGpBC,sBAAsB,KAAKC,IAAI,SAASptC,EAAQU,EAAOJ,GAgC1D,QAAS+sC,GAAM1qB,EAAM2qB,EAAKzI,EAAO6B,GAC7B,GAAI7C,GAAMlhB,EAAK1Q,QAAQq7B,EAAKzI,EAC5B,QAAa,IAAThB,GAAcA,EAAM6C,EACbA,EACJ7C,EAGX,QAAS0J,GAAaD,GAClB,MAAOE,GAAWC,KAAKH,GAG3B,QAASI,GAAIxI,EAASviB,EAAMkiB,EAAO6B,EAAK1jC,GAGpC,IAAK,GAFDsiC,MACAqI,EAAY9I,EACPhlC,EAAEglC,EAAOhlC,EAAE6mC,GAAO7mC,EAAE8iB,EAAKniB,OAAQX,IAAK,CAC3C,GAAIytC,GAAM3qB,EAAKirB,OAAO/tC,GAClBguC,EAAYC,EAAQL,KAAKH,EAI7B,IAAIO,GAAahuC,IAAI6mC,EAAI,EAAG,CACxB,GAAIqH,GAAUF,EAAYhuC,EAAIA,EAAE,EAC5BmuC,EAAW9I,EAAQviB,EAAMgrB,EAAWI,EAAS/qC,EACjDsiC,GAAMn1B,KAAK69B,GAEXL,EAAY9tC,EAAE,GAGtB,MAAOylC,GAGX,QAAS2I,GAAO/I,EAASviB,EAAMkiB,EAAO6B,EAAK1jC,EAAOkrC,GAG9C,GAAI5I,MAEA6I,EAAYnrC,CAKhB,KAHa,WAATkrC,IACAC,EAAYrkB,OAAOskB,WAEhBvJ,EAAQ6B,GAAO7B,EAAQliB,EAAKniB,QAAQ,CAKvC,IAHA,GAAI6tC,GAAUhB,EAAM1qB,EAAM2rB,EAAazJ,EAAO6B,GAGvC7B,EAAQwJ,GACNd,EAAc5qB,EAAKirB,OAAO/I,KAE/BA,GAIJ,IAAImJ,GAAW9I,EAAQviB,EAAMkiB,EAAOwJ,EAASF,GAEzCJ,EAAUlJ,GAASmJ,EAAStH,IAAIsH,EAASnJ,OACzC0J,EAAYR,EAAUO,EAAY9tC,MAGtC,IAAIutC,EAAUM,EAAS,CAEnB,KAAON,EAAUlJ,IACT0I,EAAa5qB,EAAKirB,OAAOG,KAE7BA,GAEJ,IAAIA,IAAYlJ,EACR0J,EAAY1J,EAAQyJ,EAAY9tC,QAAQ+tC,IAC5CR,EAAUQ,MAIV,KAFAA,EAAYR,EAELA,EAAUlJ,GACR0I,EAAa5qB,EAAKirB,OAAOG,EAAUO,EAAY9tC,UAEpDutC,IAIZ,GAAIA,GAAWlJ,EAAO,CAClB,GAAI2J,GAAStJ,EAAQviB,EAAMkiB,EAAOkJ,EAASI,EAC3C7I,GAAMn1B,KAAKq+B,GAEf3J,EAAQ0J,EAEZ,MAAOjJ,GAIX,QAASmJ,GAAU9rB,EAAMkiB,EAAO6B,EAAK1jC,GAEjC,OACI6hC,MAAOA,EACP6B,IAAK7B,EAHIvgC,KAAKiG,IAAIvH,EAAO0jC,EAAI7B,IAzHrC,GAAIiJ,GAAU,KACVQ,EAAc,KACdd,EAAa,IAEjB9sC,GAAOJ,QAAU,SAASqiB,EAAMqQ,GAE5B,MADYtyB,GAAOJ,QAAQglC,MAAM3iB,EAAMqQ,GAC1BxgB,IAAI,SAASkzB,GACtB,MAAO/iB,GAAKgS,UAAU+Q,EAAKb,MAAOa,EAAKgB,OACxCt0B,KAAK,OAGZ1R,EAAOJ,QAAQglC,MAAQ,SAAkB3iB,EAAMqQ,GAI3C,GAHAA,EAAMA,MAGY,IAAdA,EAAIhwB,OAA4B,WAAbgwB,EAAIkb,KACvB,QAEJvrB,GAAOA,GAAM,EACb,IAAI3f,GAA6B,gBAAdgwB,GAAIhwB,MAAqBgwB,EAAIhwB,MAAQ8mB,OAAOskB,UAC3DvJ,EAAQvgC,KAAKgG,IAAI,EAAG0oB,EAAI6R,OAAO,GAC/B6B,EAAyB,gBAAZ1T,GAAI0T,IAAmB1T,EAAI0T,IAAM/jB,EAAKniB,OACnD0tC,EAAOlb,EAAIkb,KAEXhJ,EAAUlS,EAAIkS,SAAWuJ,CAC7B,OAAa,QAATP,EACOR,EAAIxI,EAASviB,EAAMkiB,EAAO6B,EAAK1jC,GAE/BirC,EAAO/I,EAASviB,EAAMkiB,EAAO6B,EAAK1jC,EAAOkrC,SAmGlDQ,IAAI,SAAS1uC,EAAQU,EAAOJ,GAKlC,QAASquC,KAGL,IAAK,GAFDrQ,MAEKz+B,EAAI,EAAGA,EAAI8C,UAAUnC,OAAQX,IAAK,CACvC,GAAI4oC,GAAS9lC,UAAU9C,EAEvB,KAAK,GAAIoB,KAAOwnC,GACRrnC,EAAeb,KAAKkoC,EAAQxnC,KAC5Bq9B,EAAOr9B,GAAOwnC,EAAOxnC,IAKjC,MAAOq9B,GAjBX59B,EAAOJ,QAAUquC,CAEjB,IAAIvtC,GAAiBF,OAAOC,UAAUC,yBAkB3B","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index 16388fc..ecc8bfe 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -1,10 +1,10 @@ -!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g0&&void 0!==arguments[0]?arguments[0]:{},e=d.textCreator,f=d.object,g=d.propertyName,h=void 0===g?"undefined":g,i=d.width,k=void 0===i?n.PANEL_WIDTH:i,m=d.height,o=void 0===m?n.PANEL_HEIGHT:m,p=d.depth,r=void 0===p?n.PANEL_DEPTH:p,s=.5*k-n.PANEL_MARGIN,t=o-n.PANEL_MARGIN,u=n.BUTTON_DEPTH,v=new THREE.Group;v.guiType="button",v.toString=function(){return"["+v.guiType+": "+h+"]"};var w=n.createPanel(k,o,r);v.add(w);var x=s/t,y=new THREE.BoxGeometry(s,t,u,Math.floor(4*x),4,4);new THREE.SubdivisionModifier(1).modify(y),y.translate(.5*s,0,0);var z=new THREE.MeshBasicMaterial;z.visible=!1;var A=new THREE.Mesh(y.clone(),z);A.position.z=.5*u,A.position.x=.5*k;var B=new THREE.MeshBasicMaterial({color:l.BUTTON_COLOR}),C=new THREE.Mesh(y.clone(),B);A.add(C);var D=e.create(h,{scale:.866});D.position.x=.5*s-11e-6*D.layout.width*.5,D.position.z=1.2*u,D.position.y=-.025,C.add(D);var E=e.create(h);E.position.x=n.PANEL_LABEL_TEXT_MARGIN,E.position.z=r,E.position.y=-.03;var F=n.createControllerIDBox(o,l.CONTROLLER_ID_BUTTON);F.position.z=r,w.add(E,A,F);var G=(0,j.default)(A);G.events.on("onPressed",a),G.events.on("onReleased",b),c(),v.interaction=G,v.hitscan=[A,w];var H=q.create({group:v,panel:w});return v.updateControl=function(a){G.update(a),H.update(a),c()},v.name=function(a){return E.updateLabel(a),v},v.buttonLabel=function(a){return D.updateLabel(a),v},v}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],2:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a){!1!==y.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0)}function b(){B.visible=w.value,C.visible=D.hovering(),F&&(F.checkmark.visible=w.value,F.borderBox.visible=F.interaction.hovering())}function c(){if(F)return F;var a=.6*m.PANEL_HEIGHT,c=new THREE.BoxGeometry(a,a,v);c.translate(.5*a,0,0);var e=new THREE.MeshBasicMaterial;e.visible=!0;var f=new THREE.Mesh(c.clone(),e);F=f,f.position.z=v;var h=m.createPanel(a+m.BORDER_THICKNESS,a+m.BORDER_THICKNESS,v,!0);F.borderBox=h,h.material.color.setHex(2063079),h.position.x=.5*-m.BORDER_THICKNESS+.5*q,h.position.z=.5*v;var k=o.checkmark(.4*a/m.CHECKBOX_SIZE);F.checkmark=k,k.visible=w.value,k.position.z=.51*v,f.add(k);var l=(0,i.default)(f);return l.events.on("onPressed",d),F.interaction=l,F.updateControl=function(a){w.listen&&(w.value=g[j]),l.update(a),b()},F}function d(a){!1!==y.folder.visible&&!1!==F.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0,F.checkmark.visible=w.value)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,j=void 0===h?"undefined":h,l=e.initialValue,n=void 0!==l&&l,p=e.width,q=void 0===p?m.PANEL_WIDTH:p,s=e.height,t=void 0===s?m.PANEL_HEIGHT:s,u=e.depth,v=void 0===u?m.PANEL_DEPTH:u,w={value:n,listen:!1},x=m.PANEL_HEIGHT-m.CHECKBOX_SIZE,y=new THREE.Group;y.guiType="checkbox",y.toString=function(){return"["+y.guiType+": "+j+"]"};var z=f.create(j);z.position.x=m.PANEL_LABEL_TEXT_MARGIN,z.position.z=v,z.position.y=-.03;var A=void 0;y.onChange=function(a){return A=a,y},y.listen=function(){return w.listen=!0,y},y.name=function(a){return z.updateLabel(a),y};var B=void 0,C=void 0,D=void 0,E=!1;y.showInFolderHeader=function(){var a=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return a!==E&&(E=a,F=c(),a?y.folder.addHeaderItem(F):F.visible=!1),y},Object.defineProperty(y,"isShownInFolderHeader",{get:function(){return E},set:y.showInFolderHeader});var F=void 0,G=void 0;return y.setHeight=function(c){G&&y.remove(G),y.spacing=c;var d=c-x,e=d,f=v,h=.4*d/m.CHECKBOX_SIZE;G=m.createPanel(q,c,v),y.add(G);var l=new THREE.BoxGeometry(d,e,f);l.translate(.5*d,0,0);var n=new THREE.MeshBasicMaterial;n.visible=!1;var p=new THREE.Mesh(l.clone(),n);p.position.z=v,p.position.x=.5*q;var s=new THREE.MeshBasicMaterial({color:k.CHECKBOX_BG_COLOR}),t=new THREE.Mesh(l.clone(),s);p.add(t);var u=m.createControllerIDBox(c,k.CONTROLLER_ID_CHECKBOX);u.position.z=v,C=m.createPanel(d+m.BORDER_THICKNESS,e+m.BORDER_THICKNESS,f,!0),C.material.color.setHex(2063079),C.position.x=.5*-m.BORDER_THICKNESS+.5*q,C.position.z=.5*v,B=o.checkmark(h),B.position.z=.51*v,p.add(B),G.add(z,p,u,C),D=(0,i.default)(p),D.events.on("onPressed",a),b(),y.interaction=D,y.hitscan=[p,G];var A=r.create({group:y,panel:G});return y.updateControl=function(a){w.listen&&(w.value=g[j]),D.update(a),A.update(a),b()},y.folder&&y.folder.requestLayout(),y},y.setHeight(t),y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./textlabel"),h=(e(g),a("./interaction")),i=e(h),j=a("./colors"),k=d(j),l=a("./layout"),m=d(l),n=a("./graphic"),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=d(q)},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a,b,c){var d,e,f,g,h,i,j,k;switch(1===arguments.length&&(void 0!==a.x?(b=a.y,c=a.z,a=a.x):(b=a.s,c=a.v,a=a.h)),g=Math.floor(6*a),h=6*a-g,i=c*(1-b),j=c*(1-h*b),k=c*(1-(1-h)*b),g%6){case 0:d=c,e=k,f=i;break;case 1:d=j,e=c,f=i;break;case 2:d=i,e=c,f=k;break;case 3:d=i,e=j,f=c;break;case 4:d=k,e=i,f=c;break;case 5:d=c,e=i,f=j}return{r:d,g:e,b:f}}function g(a,b,c){1===arguments.length&&(b=a.g,c=a.b,a=a.r);var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=e-f,h=0===e?0:g/e,i=e;switch(e){case f:d=0;break;case a:d=b-c+g*(b0&&void 0!==arguments[0]?arguments[0]:{},h=e.object,i=e.propertyName,k=e.textCreator,m=e.width,n=void 0===m?o.PANEL_WIDTH:m,p=e.height,q=void 0===p?o.PANEL_HEIGHT:p,r=e.depth,v=void 0===r?o.PANEL_DEPTH/3:r,w=c,x=h[i],y=g(x),z={selectedHSV:{value:new THREE.Vector3(y.h,y.s,y.v)}},A=new THREE.MeshBasicMaterial({color:x}),B=new j.default,C={listen:!1},D=(0,l.default)({textCreator:k,func:w,image:A,propertyName:i,width:n,height:q,depth:v,changeColorOnHover:!1});D.guiType="ColorPicker";var E,F=!0;D.onChange=function(a){return B.on("onChange",a),D};var G=D.updateControl;return D.updateControl=function(a){C.listen&&d(),G(a)},D.listen=function(){return C.listen=!0,D},D}Object.defineProperty(c,"__esModule",{value:!0}),c.default=h;var i=a("events"),j=e(i),k=a("./imagebutton"),l=e(k),m=a("./colors"),n=(d(m),a("./layout")),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=(d(q),"\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}"),s="\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n",t="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n}\n",u="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n \n}\n"},{"./colors":4,"./grab":8,"./imagebutton":10,"./layout":15,"./sharedmaterials":19,events:28}],4:[function(a,b,c){"use strict";function d(a,b){return a.faces.forEach(function(a){a.color.setHex(b)}),a.colorsNeedUpdate=!0,a}Object.defineProperty(c,"__esModule",{value:!0}),c.colorizeGeometry=d;c.DEFAULT_COLOR=3121622,c.HIGHLIGHT_COLOR=4437482,c.INTERACTION_COLOR=502775,c.EMISSIVE_COLOR=2236962,c.HIGHLIGHT_EMISSIVE_COLOR=10066329,c.OUTLINE_COLOR=10066329,c.DEFAULT_BACK=394758,c.DEFAULT_FOLDER_BACK=1052688,c.HIGHLIGHT_BACK=3223857,c.INACTIVE_COLOR=1447977,c.CONTROLLER_ID_SLIDER=3121622,c.CONTROLLER_ID_CHECKBOX=8415111,c.CONTROLLER_ID_BUTTON=15080799,c.CONTROLLER_ID_TEXT=2020207,c.CONTROLLER_ID_DROPDOWN=16773120,c.DROPDOWN_BG_COLOR=16777215,c.DROPDOWN_FG_COLOR=0,c.CHECKBOX_BG_COLOR=16777215,c.BUTTON_COLOR=15080799,c.BUTTON_HIGHLIGHT_COLOR=16396659,c.SLIDER_BG=4473924,c.TEXTBOX_BG=15790320,c.TEXTBOX_HIGHLIGHT_BG=16777215},{}],5:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&void 0!==arguments[0]?arguments[0]:{},n=l.textCreator,p=l.object,r=l.propertyName,u=void 0===r?"undefined":r,v=(l.initialValue,l.options),w=void 0===v?[]:v,x=l.width,y=void 0===x?o.PANEL_WIDTH:x,z=l.height,A=void 0===z?o.PANEL_HEIGHT:z,B=l.depth,C=void 0===B?o.PANEL_DEPTH:B,D={open:!1,listen:!1},E=.5*y-o.PANEL_MARGIN,F=A-o.PANEL_MARGIN,G=C,H=A-1.2*o.PANEL_MARGIN,I=-.4*o.PANEL_MARGIN,J=25,K=new THREE.Group;K.guiType="dropdown",K.toString=function(){return"["+K.guiType+": "+u+"]"},K.userData.sourceObject=p,K.userData.sourcePropertyName=u,K.userData.setValue=function(a){if(-1===w.indexOf(a))return void console.warn('dat.GUIVR: Unknown option "'+a+'" for dropdown "'+u+'".\nValid options: ['+w.join(", ")+"]");p[u]=a,V&&V(p[u])};var L=o.createPanel(y,A,C);K.add(L),K.hitscan=[L];var M=new THREE.Group;M.visible=!1,M.hitscan=[];var N=[],O=[],P=a(),Q=b(P||" ",!1);Q.position.x=.5*o.PANEL_MARGIN+.5*y,Q.position.z=C;var R=q.downArrow();R.position.set(E-.04,0,1.01*C),Q.add(R),Q.add(M),Array.isArray(w)?M.add.apply(M,f(w.map(g))):M.add.apply(M,f(Object.keys(w).map(g))),c();var S=n.create(u);S.position.x=o.PANEL_LABEL_TEXT_MARGIN,S.position.z=C,S.position.y=-.03;var T=o.createControllerIDBox(A,m.CONTROLLER_ID_DROPDOWN);T.position.z=C;var U=o.createPanel(E+o.BORDER_THICKNESS,F+.5*o.BORDER_THICKNESS,G,!0);U.material.color.setHex(2063079),U.position.x=.5*-o.BORDER_THICKNESS+.5*y,U.position.z=.5*C,L.add(S,T,Q,U),j();var V=void 0,W=void 0;K.onChange=function(a){return V=a,K},K.onChoose=function(a){return W=a,K};var X=s.create({group:K,panel:L});return K.listen=function(){return D.listen=!0,K},K.updateControl=function(b){D.listen&&Q.setString(a()),N.forEach(function(a){a.update(b)}),X.update(b),j()},K.name=function(a){return S.updateLabel(a),K},K.setToolTip=function(a){var b=K;b.userData.tip=a,b.userData.tipObj=(0,h.createToolTip)(n,a,o.FOLDER_WIDTH,b.spacing,o.BUTTON_DEPTH)},K.getToolTip=function(){return K.userData.tip},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=g;var h=a("./textlabel"),i=e(h),j=a("./interaction"),k=e(j),l=a("./colors"),m=d(l),n=a("./layout"),o=d(n),p=a("./graphic"),q=d(p),r=a("./grab"),s=d(r),t=a("./utils")},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./textlabel":22,"./utils":23}],6:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b=c-o.PANEL_DEPTH&&console.log("GUIVR Warning: likely problem with z-order in orthographicFolderLayout")}}function g(a){if(a.isOrthographicCamera){var b=a.near,c=a.far,d=(x.length,a.left),e=a.right,f=a.top,g=a.bottom,h=a.position.z;return z.min.set(d,g,-c+h),z.max.set(e,f,-b+h),z}}function h(){function a(a){L.call(H,a)}function b(a){M.call(H,a)}function c(a,b,c){b.updateMatrixWorld(),a.applyMatrix4(b.matrixWorld),b.remove(a),c.add(a)}function d(a,b,c){c.updateMatrixWorld(),a.applyMatrix4((new THREE.Matrix4).getInverse(c.matrixWorld)),b.remove(a),c.add(a)}function h(a,b,e){for(var f=b;f.parent;)f=f.parent;var g=f;c(a,b,g),d(a,g,e)}function j(){l();var a=(0,w.getTopLevelFolder)(H);a===H?(a.modalEditor&&a.modalEditor.performLayout&&a.modalEditor.performLayout(),a.userData.layoutInProgress=!0,a.userData.columnHeight=0,a.userData.columnIndex=0,a.userData.columnYOff=-a.position.y,x.includes(H)||(x.push(H),H.userData.isOrthographic&&f())):(H.userData.columnHeight=H.folder.userData.columnHeight,H.userData.columnIndex=H.folder.userData.columnIndex,x.includes(H)&&(x.splice(x.indexOf(H),1),H.userData.isOrthographic&&f()));var b=o.PANEL_HEIGHT+o.PANEL_SPACING,c=o.FOLDER_HEIGHT+o.PANEL_SPACING,d=c;I.children.forEach(function(a){a.visible=!G.collapsed});var e=0;if(I.children.forEach(function(a,b){void 0===a.guiIndex?a.guiIndex=e+=1:e=a.guiIndex}),I.children.sort(function(a,b){return a.guiIndex-b.guiIndex}),G.collapsed)P.rotation.z=.5*Math.PI;else{P.rotation.z=0;var g=0,h=c;I.children.forEach(function(a,e){a.isFolder&&(a.userData.columnYOff=H.userData.columnYOff-g,a.performLayout());var f,i=a.spacing?a.spacing:b,j=.5*(h+i);if(a.isFolder){var f=.5*(h+c);a.position.y=g-f}else a.position.y=g-j;g-=j,h=i,e0&&void 0!==arguments[0]?arguments[0]:{},r=p.textCreator,s=p.name,u=p.guiAdd,z=p.guiRemove,B=p.addControllerFuncs,C=p.globalControllers,D=25,E=o.FOLDER_WIDTH,F=o.PANEL_DEPTH,G={collapsed:!1,previousParent:void 0},H=new THREE.Group;H.guiType="folder",H.toString=function(){return"["+H.guiType+": "+s+"]"};var I=new THREE.Group;H.add(I);var J=!1;Object.defineProperty(H,"accordion",{get:function(){return J},set:function(a){a&&!J&&H.guiChildren.filter(function(a){return a.isFolder}).map(function(a){return a.close()}),J=a,H.requestLayout()}}),H.requestLayout=function(){var a=(0,w.getTopLevelFolder)(H);a.userData.layoutInProgress?console.log("requested layout of folder "+H.folderName+" while layout already in progress..."):a.userData.layoutPending=!0},H.performLayout=j;var K=new THREE.Quaternion;H.fixFolderPosition=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.01,b=this;if(b.userData.isOrthographic){b.setRotationFromQuaternion(K);var c=(0,w.setBoxFromObject)(y,b),d=c.max.x-c.min.x,e=(c.max.y,c.max.y,b.userData.isOrthographic),f=g(e),h=c.intersect(f),i=h.getSize(A),j=e.right-e.left,k=e.top-e.bottom;i.x/=d,i.y/=d;var l=!1;i.x-1&&a.userData.semiDetached.splice(c,1)}return H._setDetachedFrom(null),!0},H.addController=function(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},e=d.textCreator,f=d.object,g=d.propertyName,h=void 0===g?"undefined":g,i=d.width,k=void 0===i?n.PANEL_WIDTH:i,m=d.height,o=void 0===m?n.PANEL_HEIGHT:m,p=d.depth,r=void 0===p?n.PANEL_DEPTH:p,s=.5*k-n.PANEL_MARGIN,t=o-n.PANEL_MARGIN,u=n.BUTTON_DEPTH,v=new THREE.Group;v.guiType="button",v.toString=function(){return"["+v.guiType+": "+h+"]"};var w=n.createPanel(k,o,r);v.add(w);var x=s/t,y=new THREE.BoxGeometry(s,t,u,Math.floor(4*x),4,4);new THREE.SubdivisionModifier(1).modify(y),y.translate(.5*s,0,0);var z=new THREE.MeshBasicMaterial;z.visible=!1;var A=new THREE.Mesh(y.clone(),z);A.position.z=.5*u,A.position.x=.5*k;var B=new THREE.MeshBasicMaterial({color:l.BUTTON_COLOR}),C=new THREE.Mesh(y.clone(),B);A.add(C);var D=e.create(h,{scale:.866});D.position.x=.5*s-11e-6*D.layout.width*.5,D.position.z=1.2*u,D.position.y=-.025,C.add(D);var E=e.create(h);E.position.x=n.PANEL_LABEL_TEXT_MARGIN,E.position.z=r,E.position.y=-.03;var F=n.createControllerIDBox(o,l.CONTROLLER_ID_BUTTON);F.position.z=r,w.add(E,A,F);var G=(0,j.default)(A);G.events.on("onPressed",a),G.events.on("onReleased",b),c(),v.interaction=G,v.hitscan=[A,w];var H=q.create({group:v,panel:w});return v.updateControl=function(a){G.update(a),H.update(a),c()},v.name=function(a){return E.updateLabel(a),v},v.buttonLabel=function(a){return D.updateLabel(a),v},v}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],2:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a){!1!==y.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0)}function b(){B.visible=w.value,C.visible=D.hovering(),F&&(F.checkmark.visible=w.value,F.borderBox.visible=F.interaction.hovering())}function c(){if(F)return F;var a=.6*m.PANEL_HEIGHT,c=new THREE.BoxGeometry(a,a,v);c.translate(.5*a,0,0);var e=new THREE.MeshBasicMaterial;e.visible=!0;var f=new THREE.Mesh(c.clone(),e);F=f,f.position.z=v;var h=m.createPanel(a+m.BORDER_THICKNESS,a+m.BORDER_THICKNESS,v,!0);F.borderBox=h,h.material.color.setHex(2063079),h.position.x=.5*-m.BORDER_THICKNESS+.5*q,h.position.z=.5*v;var k=o.checkmark(.4*a/m.CHECKBOX_SIZE);F.checkmark=k,k.visible=w.value,k.position.z=.51*v,f.add(k);var l=(0,i.default)(f);return l.events.on("onPressed",d),F.interaction=l,F.updateControl=function(a){w.listen&&(w.value=g[j]),l.update(a),b()},F}function d(a){!1!==y.folder.visible&&!1!==F.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0,F.checkmark.visible=w.value)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,j=void 0===h?"undefined":h,l=e.initialValue,n=void 0!==l&&l,p=e.width,q=void 0===p?m.PANEL_WIDTH:p,s=e.height,t=void 0===s?m.PANEL_HEIGHT:s,u=e.depth,v=void 0===u?m.PANEL_DEPTH:u,w={value:n,listen:!1},x=m.PANEL_HEIGHT-m.CHECKBOX_SIZE,y=new THREE.Group;y.guiType="checkbox",y.toString=function(){return"["+y.guiType+": "+j+"]"};var z=f.create(j);z.position.x=m.PANEL_LABEL_TEXT_MARGIN,z.position.z=v,z.position.y=-.03;var A=void 0;y.onChange=function(a){return A=a,y},y.listen=function(){return w.listen=!0,y},y.name=function(a){return z.updateLabel(a),y};var B=void 0,C=void 0,D=void 0,E=!1;y.showInFolderHeader=function(){var a=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return a!==E&&(E=a,F=c(),a?y.folder.addHeaderItem(F):F.visible=!1),y},Object.defineProperty(y,"isShownInFolderHeader",{get:function(){return E},set:y.showInFolderHeader});var F=void 0,G=void 0;return y.setHeight=function(c){G&&y.remove(G),y.spacing=c;var d=c-x,e=d,f=v,h=.4*d/m.CHECKBOX_SIZE;G=m.createPanel(q,c,v),y.add(G);var l=new THREE.BoxGeometry(d,e,f);l.translate(.5*d,0,0);var n=new THREE.MeshBasicMaterial;n.visible=!1;var p=new THREE.Mesh(l.clone(),n);p.position.z=v,p.position.x=.5*q;var s=new THREE.MeshBasicMaterial({color:k.CHECKBOX_BG_COLOR}),t=new THREE.Mesh(l.clone(),s);p.add(t);var u=m.createControllerIDBox(c,k.CONTROLLER_ID_CHECKBOX);u.position.z=v,C=m.createPanel(d+m.BORDER_THICKNESS,e+m.BORDER_THICKNESS,f,!0),C.material.color.setHex(2063079),C.position.x=.5*-m.BORDER_THICKNESS+.5*q,C.position.z=.5*v,B=o.checkmark(h),B.position.z=.51*v,p.add(B),G.add(z,p,u,C),D=(0,i.default)(p),D.events.on("onPressed",a),b(),y.interaction=D,y.hitscan=[p,G];var A=r.create({group:y,panel:G});return y.updateControl=function(a){w.listen&&(w.value=g[j]),D.update(a),A.update(a),b()},y.folder&&y.folder.requestLayout(),y},y.setHeight(t),y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./textlabel"),h=(e(g),a("./interaction")),i=e(h),j=a("./colors"),k=d(j),l=a("./layout"),m=d(l),n=a("./graphic"),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=d(q)},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a,b,c){var d,e,f,g,h,i,j,k;switch(1===arguments.length&&(void 0!==a.x?(b=a.y,c=a.z,a=a.x):(b=a.s,c=a.v,a=a.h)),g=Math.floor(6*a),h=6*a-g,i=c*(1-b),j=c*(1-h*b),k=c*(1-(1-h)*b),g%6){case 0:d=c,e=k,f=i;break;case 1:d=j,e=c,f=i;break;case 2:d=i,e=c,f=k;break;case 3:d=i,e=j,f=c;break;case 4:d=k,e=i,f=c;break;case 5:d=c,e=i,f=j}return{r:d,g:e,b:f}}function g(a,b,c){1===arguments.length&&(b=a.g,c=a.b,a=a.r);var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=e-f,h=0===e?0:g/e,i=e;switch(e){case f:d=0;break;case a:d=b-c+g*(b0&&void 0!==arguments[0]?arguments[0]:{},h=e.object,i=e.propertyName,k=e.textCreator,m=e.width,n=void 0===m?o.PANEL_WIDTH:m,p=e.height,q=void 0===p?o.PANEL_HEIGHT:p,r=e.depth,v=void 0===r?o.PANEL_DEPTH/3:r,w=c,x=h[i],y=g(x),z={selectedHSV:{value:new THREE.Vector3(y.h,y.s,y.v)}},A=new THREE.MeshBasicMaterial({color:x}),B=new j.default,C={listen:!1},D=(0,l.default)({textCreator:k,func:w,image:A,propertyName:i,width:n,height:q,depth:v,changeColorOnHover:!1});D.guiType="ColorPicker";var E,F=!0;D.onChange=function(a){return B.on("onChange",a),D};var G=D.updateControl;return D.updateControl=function(a){C.listen&&d(),G(a)},D.listen=function(){return C.listen=!0,D},D}Object.defineProperty(c,"__esModule",{value:!0}),c.default=h;var i=a("events"),j=e(i),k=a("./imagebutton"),l=e(k),m=a("./colors"),n=(d(m),a("./layout")),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=(d(q),"\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}"),s="\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n",t="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n}\n",u="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n \n}\n"},{"./colors":4,"./grab":8,"./imagebutton":10,"./layout":15,"./sharedmaterials":19,events:28}],4:[function(a,b,c){"use strict";function d(a,b){var c=new THREE.Color(b),d=a.getAttribute("color"),e=void 0;d?e=d.array:(e=new Float32Array(a.getAttribute("position").array.length).fill(.5),d=a.setAttribute("color",new THREE.BufferAttribute(e,3)));for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:{},n=l.textCreator,p=l.object,r=l.propertyName,u=void 0===r?"undefined":r,v=(l.initialValue,l.options),w=void 0===v?[]:v,x=l.width,y=void 0===x?o.PANEL_WIDTH:x,z=l.height,A=void 0===z?o.PANEL_HEIGHT:z,B=l.depth,C=void 0===B?o.PANEL_DEPTH:B,D={open:!1,listen:!1},E=.5*y-o.PANEL_MARGIN,F=A-o.PANEL_MARGIN,G=C,H=A-1.2*o.PANEL_MARGIN,I=-.4*o.PANEL_MARGIN,J=25,K=new THREE.Group;K.guiType="dropdown",K.toString=function(){return"["+K.guiType+": "+u+"]"},K.userData.sourceObject=p,K.userData.sourcePropertyName=u,K.userData.setValue=function(a){if(-1===w.indexOf(a))return void console.warn('dat.GUIVR: Unknown option "'+a+'" for dropdown "'+u+'".\nValid options: ['+w.join(", ")+"]");p[u]=a,V&&V(p[u])};var L=o.createPanel(y,A,C);K.add(L),K.hitscan=[L];var M=new THREE.Group;M.visible=!1,M.hitscan=[];var N=[],O=[],P=a(),Q=b(P||" ",!1);Q.position.x=.5*o.PANEL_MARGIN+.5*y,Q.position.z=C;var R=q.downArrow();R.position.set(E-.04,0,1.01*C),Q.add(R),Q.add(M),Array.isArray(w)?M.add.apply(M,f(w.map(g))):M.add.apply(M,f(Object.keys(w).map(g))),c();var S=n.create(u);S.position.x=o.PANEL_LABEL_TEXT_MARGIN,S.position.z=C,S.position.y=-.03;var T=o.createControllerIDBox(A,m.CONTROLLER_ID_DROPDOWN);T.position.z=C;var U=o.createPanel(E+o.BORDER_THICKNESS,F+.5*o.BORDER_THICKNESS,G,!0);U.material.color.setHex(2063079),U.position.x=.5*-o.BORDER_THICKNESS+.5*y,U.position.z=.5*C,L.add(S,T,Q,U),j();var V=void 0,W=void 0;K.onChange=function(a){return V=a,K},K.onChoose=function(a){return W=a,K};var X=s.create({group:K,panel:L});return K.listen=function(){return D.listen=!0,K},K.updateControl=function(b){D.listen&&Q.setString(a()),N.forEach(function(a){a.update(b)}),X.update(b),j()},K.name=function(a){return S.updateLabel(a),K},K.setToolTip=function(a){var b=K;b.userData.tip=a,b.userData.tipObj=(0,h.createToolTip)(n,a,o.FOLDER_WIDTH,b.spacing,o.BUTTON_DEPTH)},K.getToolTip=function(){return K.userData.tip},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=g;var h=a("./textlabel"),i=e(h),j=a("./interaction"),k=e(j),l=a("./colors"),m=d(l),n=a("./layout"),o=d(n),p=a("./graphic"),q=d(p),r=a("./grab"),s=d(r),t=a("./utils")},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./textlabel":22,"./utils":23}],6:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b=c-o.PANEL_DEPTH&&console.log("GUIVR Warning: likely problem with z-order in orthographicFolderLayout")}}function g(a){if(a.isOrthographicCamera){var b=a.near,c=a.far,d=(x.length,a.left),e=a.right,f=a.top,g=a.bottom,h=a.position.z;return z.min.set(d,g,-c+h),z.max.set(e,f,-b+h),z}}function h(){function a(a){L.call(H,a)}function b(a){M.call(H,a)}function c(a,b,c){b.updateMatrixWorld(),a.applyMatrix4(b.matrixWorld),b.remove(a),c.add(a)}function d(a,b,c){c.updateMatrixWorld(),a.applyMatrix4((new THREE.Matrix4).getInverse(c.matrixWorld)),b.remove(a),c.add(a)}function h(a,b,e){for(var f=b;f.parent;)f=f.parent;var g=f;c(a,b,g),d(a,g,e)}function j(){l();var a=(0,w.getTopLevelFolder)(H);a===H?(a.modalEditor&&a.modalEditor.performLayout&&a.modalEditor.performLayout(),a.userData.layoutInProgress=!0,a.userData.columnHeight=0,a.userData.columnIndex=0,a.userData.columnYOff=-a.position.y,x.includes(H)||(x.push(H),H.userData.isOrthographic&&f())):(H.userData.columnHeight=H.folder.userData.columnHeight,H.userData.columnIndex=H.folder.userData.columnIndex,x.includes(H)&&(x.splice(x.indexOf(H),1),H.userData.isOrthographic&&f()));var b=o.PANEL_HEIGHT+o.PANEL_SPACING,c=o.FOLDER_HEIGHT+o.PANEL_SPACING,d=c;I.children.forEach(function(a){a.visible=!G.collapsed});var e=0;if(I.children.forEach(function(a,b){void 0===a.guiIndex?a.guiIndex=e+=1:e=a.guiIndex}),I.children.sort(function(a,b){return a.guiIndex-b.guiIndex}),G.collapsed)P.rotation.z=.5*Math.PI;else{P.rotation.z=0;var g=0,h=c;I.children.forEach(function(a,e){a.isFolder&&(a.userData.columnYOff=H.userData.columnYOff-g,a.performLayout());var f,i=a.spacing?a.spacing:b,j=.5*(h+i);if(a.isFolder){var f=.5*(h+c);a.position.y=g-f}else a.position.y=g-j;g-=j,h=i,e0&&void 0!==arguments[0]?arguments[0]:{},r=p.textCreator,s=p.name,u=p.guiAdd,z=p.guiRemove,B=p.addControllerFuncs,C=p.globalControllers,D=25,E=o.FOLDER_WIDTH,F=o.PANEL_DEPTH,G={collapsed:!1,previousParent:void 0},H=new THREE.Group;H.guiType="folder",H.toString=function(){return"["+H.guiType+": "+s+"]"};var I=new THREE.Group;H.add(I);var J=!1;Object.defineProperty(H,"accordion",{get:function(){return J},set:function(a){a&&!J&&H.guiChildren.filter(function(a){return a.isFolder}).map(function(a){return a.close()}),J=a,H.requestLayout()}}),H.requestLayout=function(){var a=(0,w.getTopLevelFolder)(H);a.userData.layoutInProgress?console.log("requested layout of folder "+H.folderName+" while layout already in progress..."):a.userData.layoutPending=!0},H.performLayout=j;var K=new THREE.Quaternion;H.fixFolderPosition=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.01,b=this;if(b.userData.isOrthographic){b.setRotationFromQuaternion(K);var c=(0,w.setBoxFromObject)(y,b),d=c.max.x-c.min.x,e=(c.max.y,c.max.y,b.userData.isOrthographic),f=g(e),h=c.intersect(f),i=h.getSize(A),j=e.right-e.left,k=e.top-e.bottom;i.x/=d,i.y/=d;var l=!1;i.x-1&&a.userData.semiDetached.splice(c,1)}return H._setDetachedFrom(null),!0},H.addController=function(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image -;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image -;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i);var J=b.text?2184:16777215,K=b.text?273:13421772;j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?J:K),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19, -"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.Geometry;return a.vertices.push(new THREE.Vector3),a.vertices.push(new THREE.Vector3(0,0,0)),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na),e.geometry.vertices[0].copy(ma);var i=c.intersectObjects(d,!1);_(i,e,f),da[h].intersections=i,b.userData&&(b.userData.guiIntersections=i)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){a.geometry.vertices[1].copy(b),a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox(),a.geometry.verticesNeedUpdate=!0}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.Geometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() {\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){ -var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){function a(a,b,c){return c[Math.min(a,b)+"_"+Math.max(a,b)]}function b(a,b,c,d,e,f){var g,h=Math.min(a,b),i=Math.max(a,b),j=h+"_"+i;if(j in d)g=d[j];else{g={a:c[h],b:c[i],newEdge:null,faces:[]},d[j]=g}g.faces.push(e),f[a].edges.push(g),f[b].edges.push(g)}function c(a,c,d,e){var f,g,h;for(f=0,g=a.length;f0;r=new Array(h.length),s={},c(h,i,r,s),t=[];var y,z,A,B,C,D,E;for(n in s){for(z=s[n],A=new THREE.Vector3,C=3/8,D=1/8,E=z.faces.length,2!=E&&(C=.5,D=0),A.addVectors(z.a,z.b).multiplyScalar(C),v.set(0,0,0),p=0;p3&&(F=3/(8*m)),G=1-m*F,H=F,m<=2&&2==m&&(G=.75,H=1/8),L=K.clone().multiplyScalar(G),v.set(0,0,0),p=0;p0&&this._events[a].length>c&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace()),this},d.prototype.on=d.prototype.addListener,d.prototype.once=function(a,b){function c(){this.removeListener(a,c),d||(d=!0,b.apply(this,arguments))}if(!e(b))throw TypeError("listener must be a function");var d=!1;return c.listener=b,this.on(a,c),this},d.prototype.removeListener=function(a,b){var c,d,f,h;if(!e(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],f=c.length,d=-1,c===b||e(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(g(c)){for(h=f;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(d<0)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else if(c)for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){return this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.prototype.listenerCount=function(a){if(this._events){var b=this._events[a];if(e(b))return 1;if(b)return b.length}return 0},d.listenerCount=function(a,b){return a.listenerCount(b)}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:b.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image +;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image +;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i);var J=b.text?2184:16777215,K=b.text?273:13421772;j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?J:K),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8, +"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() {\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":33}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":34,"three-bmfont-text":36}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder +;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){function d(){this._events&&Object.prototype.hasOwnProperty.call(this,"_events")||(this._events=v(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0}function e(a){return void 0===a._maxListeners?d.defaultMaxListeners:a._maxListeners}function f(a,b,c){if(b)a.call(c);else for(var d=a.length,e=q(a,d),f=0;f0&&h.length>f){h.warned=!0;var i=new Error("Possible EventEmitter memory leak detected. "+h.length+' "'+String(b)+'" listeners added. Use emitter.setMaxListeners() to increase limit.');i.name="MaxListenersExceededWarning",i.emitter=a,i.type=b,i.count=h.length,"object"==typeof console&&console.warn&&console.warn("%s: %s",i.name,i.message)}}else h=g[b]=c,++a._eventsCount;return a}function l(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var a=new Array(arguments.length),b=0;b1&&(b=arguments[1]),b instanceof Error)throw b;var n=new Error('Unhandled "error" event. ('+b+")");throw n.context=b,n}if(!(c=l[a]))return!1;var o="function"==typeof c;switch(d=arguments.length){case 1:f(c,o,this);break;case 2:g(c,o,this,arguments[1]);break;case 3:h(c,o,this,arguments[1],arguments[2]);break;case 4:i(c,o,this,arguments[1],arguments[2],arguments[3]);break;default:for(e=new Array(d-1),k=1;k=0;f--)if(c[f]===b||c[f].listener===b){g=c[f].listener,e=f;break}if(e<0)return this;0===e?c.shift():p(c,e),1===c.length&&(d[a]=c[0]),d.removeListener&&this.emit("removeListener",a,g||b)}return this},d.prototype.removeAllListeners=function(a){var b,c,d;if(!(c=this._events))return this;if(!c.removeListener)return 0===arguments.length?(this._events=v(null),this._eventsCount=0):c[a]&&(0==--this._eventsCount?this._events=v(null):delete c[a]),this;if(0===arguments.length){var e,f=w(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},d.prototype.listeners=function(a){return n(this,a,!0)},d.prototype.rawListeners=function(a){return n(this,a,!1)},d.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):o.call(a,b)},d.prototype.listenerCount=o,d.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],29:[function(a,b,c){function d(a,b,c){if(!a)throw new TypeError("must specify data as first parameter");if(c=0|+(c||0),Array.isArray(a)&&a[0]&&"number"==typeof a[0][0]){var d,f,g,h,i=a[0].length,j=a.length*i;b&&"string"!=typeof b||(b=new(e(b||"float32"))(j+c));var k=b.length-c;if(j!==k)throw new Error("source length "+j+" ("+i+"x"+a.length+") does not match destination length "+k);for(d=0,g=c;d=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":40,xtend:41}],33:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=k;var l=j.positions(k),m=j.uvs(k,d,f,b),n=g({clockwise:!0,type:"uint16",count:k.length});if(h.index(this,n,1,"uint16"),h.attr(this,"position",l,2),h.attr(this,"uv",m,2),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var o=j.pages(k);h.attr(this,"page",o,1)}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);k.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();k.computeBox(b,a)}},{"./lib/utils":37,"./lib/vertices":38,inherits:30,"layout-bmfont-text":32,"object-assign":33,"quad-indices":35,"three-buffer-vertex-data":39}],37:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],41:[function(a,b,c){function d(){for(var a={},b=0;b=6" + } }, - "@szmarczak/http-timer": { + "node_modules/@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { + "dependencies": { "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" } }, - "JSONStream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true }, - "abbrev": { + "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, - "requires": { - "mime-types": "~2.1.16", - "negotiator": "0.6.1" + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "align-text": { + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, - "requires": { + "dependencies": { "kind-of": "^3.0.2", "longest": "^1.0.1", "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "an-array": { + "node_modules/align-text/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/an-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/an-array/-/an-array-1.0.0.tgz", "integrity": "sha1-wSWlu4JXd4419LT2qpx9D6nkJmU=" }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "requires": { + "dependencies": { "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true, - "requires": { - "arr-flatten": "^1.0.1" + "engines": { + "node": ">=8" } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "array-find-index": { + "node_modules/array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "array-flatten": { + "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, - "array-shuffle": { + "node_modules/array-shuffle": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-1.0.1.tgz", - "integrity": "sha1-fqSIKjVrS8pfVF4LblLq9tlxVXo=" + "integrity": "sha1-fqSIKjVrS8pfVF4LblLq9tlxVXo=", + "engines": { + "node": ">=0.10.0" + } }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true, - "requires": { - "array-uniq": "^1.0.1" + "engines": { + "node": ">=0.10.0" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "as-number": { + "node_modules/as-number": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/as-number/-/as-number-1.0.0.tgz", "integrity": "sha1-rLJ+NPj52KsNqeN287iVmGD4CmY=" }, - "asn1.js": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", - "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" } }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, - "requires": { + "dependencies": { + "object-assign": "^4.1.1", "util": "0.10.3" } }, - "astw": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz", - "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, - "requires": { - "acorn": "^4.0.3" + "dependencies": { + "inherits": "2.0.1" } }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "babel-code-frame": { + "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, - "requires": { + "dependencies": { "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" } }, - "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, - "requires": { + "dependencies": { "babel-code-frame": "^6.26.0", "babel-generator": "^6.26.0", "babel-helpers": "^6.24.1", @@ -252,82 +337,63 @@ "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", "babylon": "^6.18.0", - "convert-source-map": "^1.5.0", - "debug": "^2.6.8", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", "json5": "^0.5.1", "lodash": "^4.17.4", "minimatch": "^3.0.4", "path-is-absolute": "^1.0.1", - "private": "^0.1.7", + "private": "^0.1.8", "slash": "^1.0.0", - "source-map": "^0.5.6" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } + "source-map": "^0.5.7" } }, - "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, - "requires": { + "dependencies": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "detect-indent": "^4.0.0", "jsesc": "^1.3.0", "lodash": "^4.17.4", - "source-map": "^0.5.6", + "source-map": "^0.5.7", "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - } } }, - "babel-helper-call-delegate": { + "node_modules/babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, - "requires": { + "dependencies": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", "babel-traverse": "^6.24.1", "babel-types": "^6.24.1" } }, - "babel-helper-define-map": { + "node_modules/babel-helper-define-map": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, - "requires": { + "dependencies": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" } }, - "babel-helper-function-name": { + "node_modules/babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, - "requires": { + "dependencies": { "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1", @@ -335,53 +401,53 @@ "babel-types": "^6.24.1" } }, - "babel-helper-get-function-arity": { + "node_modules/babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, - "babel-helper-hoist-variables": { + "node_modules/babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, - "babel-helper-optimise-call-expression": { + "node_modules/babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, - "babel-helper-regex": { + "node_modules/babel-helper-regex": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.26.0", "babel-types": "^6.26.0", "lodash": "^4.17.4" } }, - "babel-helper-replace-supers": { + "node_modules/babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, - "requires": { + "dependencies": { "babel-helper-optimise-call-expression": "^6.24.1", "babel-messages": "^6.23.0", "babel-runtime": "^6.22.0", @@ -390,58 +456,58 @@ "babel-types": "^6.24.1" } }, - "babel-helpers": { + "node_modules/babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, - "babel-messages": { + "node_modules/babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-check-es2015-constants": { + "node_modules/babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-arrow-functions": { + "node_modules/babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-block-scoped-functions": { + "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-block-scoping": { + "node_modules/babel-plugin-transform-es2015-block-scoping": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", "babel-traverse": "^6.26.0", @@ -449,12 +515,12 @@ "lodash": "^4.17.4" } }, - "babel-plugin-transform-es2015-classes": { + "node_modules/babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, - "requires": { + "dependencies": { "babel-helper-define-map": "^6.24.1", "babel-helper-function-name": "^6.24.1", "babel-helper-optimise-call-expression": "^6.24.1", @@ -466,125 +532,125 @@ "babel-types": "^6.24.1" } }, - "babel-plugin-transform-es2015-computed-properties": { + "node_modules/babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, - "babel-plugin-transform-es2015-destructuring": { + "node_modules/babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-duplicate-keys": { + "node_modules/babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, - "babel-plugin-transform-es2015-for-of": { + "node_modules/babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-function-name": { + "node_modules/babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, - "requires": { + "dependencies": { "babel-helper-function-name": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, - "babel-plugin-transform-es2015-literals": { + "node_modules/babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-modules-amd": { + "node_modules/babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, - "requires": { + "dependencies": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, - "requires": { + "dependencies": { "babel-plugin-transform-strict-mode": "^6.24.1", "babel-runtime": "^6.26.0", "babel-template": "^6.26.0", "babel-types": "^6.26.0" } }, - "babel-plugin-transform-es2015-modules-systemjs": { + "node_modules/babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, - "requires": { + "dependencies": { "babel-helper-hoist-variables": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, - "babel-plugin-transform-es2015-modules-umd": { + "node_modules/babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, - "requires": { + "dependencies": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", "babel-runtime": "^6.22.0", "babel-template": "^6.24.1" } }, - "babel-plugin-transform-es2015-object-super": { + "node_modules/babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, - "requires": { + "dependencies": { "babel-helper-replace-supers": "^6.24.1", "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-parameters": { + "node_modules/babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, - "requires": { + "dependencies": { "babel-helper-call-delegate": "^6.24.1", "babel-helper-get-function-arity": "^6.24.1", "babel-runtime": "^6.22.0", @@ -593,90 +659,91 @@ "babel-types": "^6.24.1" } }, - "babel-plugin-transform-es2015-shorthand-properties": { + "node_modules/babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, - "babel-plugin-transform-es2015-spread": { + "node_modules/babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-sticky-regex": { + "node_modules/babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, - "requires": { + "dependencies": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, - "babel-plugin-transform-es2015-template-literals": { + "node_modules/babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-typeof-symbol": { + "node_modules/babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0" } }, - "babel-plugin-transform-es2015-unicode-regex": { + "node_modules/babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, - "requires": { + "dependencies": { "babel-helper-regex": "^6.24.1", "babel-runtime": "^6.22.0", "regexpu-core": "^2.0.0" } }, - "babel-plugin-transform-regenerator": { + "node_modules/babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, - "requires": { + "dependencies": { "regenerator-transform": "^0.10.0" } }, - "babel-plugin-transform-strict-mode": { + "node_modules/babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.22.0", "babel-types": "^6.24.1" } }, - "babel-preset-es2015": { + "node_modules/babel-preset-es2015": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "deprecated": "🙌 Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update!", "dev": true, - "requires": { + "dependencies": { "babel-plugin-check-es2015-constants": "^6.22.0", "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", @@ -703,12 +770,12 @@ "babel-plugin-transform-regenerator": "^6.24.1" } }, - "babel-register": { + "node_modules/babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, - "requires": { + "dependencies": { "babel-core": "^6.26.0", "babel-runtime": "^6.26.0", "core-js": "^2.5.0", @@ -718,22 +785,22 @@ "source-map-support": "^0.4.15" } }, - "babel-runtime": { + "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, - "requires": { + "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" } }, - "babel-template": { + "node_modules/babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", @@ -741,12 +808,12 @@ "lodash": "^4.17.4" } }, - "babel-traverse": { + "node_modules/babel-traverse": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, - "requires": { + "dependencies": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -758,231 +825,258 @@ "lodash": "^4.17.4" } }, - "babel-types": { + "node_modules/babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, - "requires": { + "dependencies": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", "lodash": "^4.17.4", "to-fast-properties": "^1.0.3" } }, - "babelify": { + "node_modules/babelify": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", "dev": true, - "requires": { + "dependencies": { "babel-core": "^6.0.14", "object-assign": "^4.0.0" } }, - "babylon": { + "node_modules/babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "dev": true, + "bin": { + "babylon": "bin/babylon.js" + } }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", "dev": true }, - "body-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "node_modules/body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", "dev": true, - "requires": { - "bytes": "3.0.0", + "dependencies": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + } + }, + "node_modules/body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "dev": true, + "dependencies": { + "bytes": "3.1.1", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", - "iconv-lite": "0.4.19", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "~1.6.15" + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + }, + "engines": { + "node": ">= 0.8" } }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "node_modules/body/node_modules/bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true + }, + "node_modules/body/node_modules/raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", "dev": true, - "requires": { + "dependencies": { + "bytes": "1", + "string_decoder": "0.10" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/body/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "brorand": { + "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "browser-pack": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz", - "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=", + "node_modules/browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "combine-source-map": "~0.7.1", + "dependencies": { + "combine-source-map": "~0.8.0", "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", "through2": "^2.0.0", "umd": "^3.0.0" }, - "dependencies": { - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - } + "bin": { + "browser-pack": "bin/cmd.js" } }, - "browser-resolve": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", "dev": true, - "requires": { - "resolve": "1.1.7" + "dependencies": { + "resolve": "^1.17.0" } }, - "browserify": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.5.0.tgz", - "integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==", + "node_modules/browserify": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", + "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", "dev": true, - "requires": { - "JSONStream": "^1.0.3", + "dependencies": { "assert": "^1.4.0", "browser-pack": "^6.0.1", - "browser-resolve": "^1.11.0", + "browser-resolve": "^2.0.0", "browserify-zlib": "~0.2.0", - "buffer": "^5.0.2", + "buffer": "~5.2.1", "cached-path-relative": "^1.0.0", - "concat-stream": "~1.5.1", + "concat-stream": "^1.6.0", "console-browserify": "^1.1.0", "constants-browserify": "~1.0.0", "crypto-browserify": "^3.0.0", "defined": "^1.0.0", - "deps-sort": "^2.0.0", - "domain-browser": "~1.1.0", + "deps-sort": "^2.0.1", + "domain-browser": "^1.2.0", "duplexer2": "~0.1.2", - "events": "~1.1.0", + "events": "^3.0.0", "glob": "^7.1.0", "has": "^1.0.0", "htmlescape": "^1.1.0", "https-browserify": "^1.0.0", "inherits": "~2.0.1", - "insert-module-globals": "^7.0.0", + "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", "labeled-stream-splicer": "^2.0.0", - "module-deps": "^4.0.8", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", "os-browserify": "~0.3.0", "parents": "^1.0.1", - "path-browserify": "~0.0.0", + "path-browserify": "^1.0.0", "process": "~0.11.0", "punycode": "^1.3.2", "querystring-es3": "~0.2.0", "read-only-stream": "^2.0.0", "readable-stream": "^2.0.2", "resolve": "^1.1.4", - "shasum": "^1.0.0", + "shasum-object": "^1.0.0", "shell-quote": "^1.6.1", - "stream-browserify": "^2.0.0", - "stream-http": "^2.0.0", - "string_decoder": "~1.0.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", "subarg": "^1.0.0", "syntax-error": "^1.1.1", "through2": "^2.0.0", "timers-browserify": "^1.0.1", - "tty-browserify": "~0.0.0", + "tty-browserify": "0.0.1", "url": "~0.11.0", - "util": "~0.10.1", - "vm-browserify": "~0.0.1", + "util": "~0.12.0", + "vm-browserify": "^1.0.0", "xtend": "^4.0.0" }, - "dependencies": { - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - } + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" } }, - "browserify-aes": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, - "requires": { + "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", @@ -991,142 +1085,201 @@ "safe-buffer": "^5.0.1" } }, - "browserify-cache-api": { + "node_modules/browserify-cache-api": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", "dev": true, - "requires": { + "dependencies": { "async": "^1.5.2", "through2": "^2.0.0", "xtend": "^4.0.0" } }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "node_modules/browserify-cache-api/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "requires": { + "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", - "inherits": "^2.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "browserify-incremental": { + "node_modules/browserify-incremental": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", "dev": true, - "requires": { - "JSONStream": "^0.10.0", + "dependencies": { "browserify-cache-api": "^3.0.0", + "JSONStream": "^0.10.0", "through2": "^2.0.0", "xtend": "^4.0.0" }, + "bin": { + "browserifyinc": "bin/cmd.js" + }, + "peerDependencies": { + "browserify": "*" + } + }, + "node_modules/browserify-incremental/node_modules/jsonparse": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/browserify-incremental/node_modules/JSONStream": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", + "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", + "dev": true, "dependencies": { - "JSONStream": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", - "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", - "dev": true, - "requires": { - "jsonparse": "0.0.5", - "through": ">=2.2.7 <3" - } - }, - "jsonparse": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", - "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", - "dev": true - } + "jsonparse": "0.0.5", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "index.js" + }, + "engines": { + "node": "*" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, - "requires": { - "bn.js": "^4.1.0", + "dependencies": { + "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "browserify-zlib": { + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, - "requires": { + "dependencies": { "pako": "~1.0.5" } }, - "buffer": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", - "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", + "node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "dev": true, - "requires": { + "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" } }, - "buffer-xor": { + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { + "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true + "node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "cacheable-request": { + "node_modules/cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { + "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", @@ -1135,278 +1288,365 @@ "normalize-url": "^4.1.0", "responselike": "^1.0.2" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "cached-path-relative": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", - "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/cached-path-relative": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", "dev": true }, - "camelcase": { + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "camelcase-keys": { + "node_modules/camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, - "requires": { + "dependencies": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "center-align": { + "node_modules/center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, - "requires": { + "dependencies": { "align-text": "^0.1.3", "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" } }, - "chalk": { + "node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", "has-ansi": "^2.0.0", "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, - "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "cipher-base": { + "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, - "cliui": { + "node_modules/cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, - "requires": { + "dependencies": { "center-align": "^0.1.1", "right-align": "^0.1.1", "wordwrap": "0.0.2" } }, - "clone-response": { + "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { + "dependencies": { "mimic-response": "^1.0.0" } }, - "coffee-script": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz", - "integrity": "sha1-EpOLz5vhlI+gBvkuDEyegXBRCMA=", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "colors": { + "node_modules/colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.1.90" + } }, - "combine-source-map": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz", - "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=", + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", "dev": true, - "requires": { + "dependencies": { "convert-source-map": "~1.1.0", "inline-source-map": "~0.6.0", "lodash.memoize": "~3.0.3", "source-map": "~0.5.3" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - } } }, - "concat-map": { + "node_modules/combine-source-map/node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + }, + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "~2.0.0", - "typedarray": "~0.0.5" - }, + "engines": [ + "node >= 0.8" + ], "dependencies": { - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true }, - "constants-browserify": { + "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } }, - "content-type": { + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "cookie": { + "node_modules/continuable-cache": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", "dev": true }, - "cookie-signature": { + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, - "core-js": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, - "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" } }, - "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", - "ripemd160": "^2.0.0", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", "sha.js": "^2.4.0" } }, - "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", @@ -1415,12 +1655,12 @@ "sha.js": "^2.4.8" } }, - "crypto-browserify": { + "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, - "requires": { + "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", @@ -1432,1445 +1672,6471 @@ "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" } }, - "currently-unhandled": { + "node_modules/currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, - "requires": { + "dependencies": { "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "node_modules/dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" + "engines": { + "node": "*" } }, - "debug": { + "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { + "dependencies": { "ms": "2.0.0" } }, - "decamelize": { + "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "decompress-response": { + "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { + "dependencies": { "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "defer-to-connect": { + "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" } }, - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, - "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true, - "requires": { + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "dependencies": { "JSONStream": "^1.0.3", - "shasum": "^1.0.0", + "shasum-object": "^1.0.0", "subarg": "^1.0.0", "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" } }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, - "destroy": { + "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-indent": { + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, - "requires": { + "dependencies": { "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "detective": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz", - "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=", + "node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", "dev": true, - "requires": { - "acorn": "^4.0.3", - "defined": "^1.0.0" - }, "dependencies": { - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - } + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" } }, - "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" } }, - "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "dtype": { + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/dtype": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=" + "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=", + "engines": { + "node": ">= 0.8.0" + } }, - "duplexer2": { + "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, - "requires": { + "dependencies": { "readable-stream": "^2.0.2" } }, - "duplexer3": { + "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "duplexify": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz", - "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==", + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, - "requires": { + "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", "readable-stream": "^2.0.0", "stream-shift": "^1.0.0" } }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "end-of-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", - "requires": { + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { "once": "^1.4.0" - }, + } + }, + "node_modules/error": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", + "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", + "dev": true, "dependencies": { - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - } + "string-template": "~0.2.1" } }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "escape-html": { + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "eventemitter2": { + "node_modules/eventemitter2": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", "dev": true }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } }, - "evp_bytestokey": { + "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "requires": { + "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, - "exit": { + "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" + "engines": { + "node": ">= 0.8.0" } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, - "requires": { - "fill-range": "^2.1.0" + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "express": { - "version": "4.16.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", - "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "node_modules/express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", "dev": true, - "requires": { - "accepts": "~1.3.4", + "dependencies": { + "accepts": "~1.3.7", "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.3.1", + "cookie": "0.4.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.1", - "encodeurl": "~1.0.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.1.0", + "finalhandler": "~1.1.2", "fresh": "0.5.2", "merge-descriptors": "1.0.1", "methods": "~1.1.2", "on-finished": "~2.3.0", - "parseurl": "~1.3.2", + "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.2", - "qs": "6.5.1", - "range-parser": "~1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.1", - "serve-static": "1.13.1", - "setprototypeof": "1.1.0", - "statuses": "~1.3.1", - "type-is": "~1.6.15", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "faye-websocket": { + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, - "requires": { + "dependencies": { "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" } }, - "figures": { + "node_modules/figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, - "requires": { + "dependencies": { "escape-string-regexp": "^1.0.5", "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "file-sync-cmp": { + "node_modules/file-sync-cmp": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", "dev": true }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^1.1.3", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.1", + "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.3.1", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "findup-sync": { + "node_modules/findup-sync": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", "dev": true, - "requires": { + "dependencies": { "glob": "~5.0.0" }, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/findup-sync/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" } }, - "for-in": { + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, - "requires": { + "dependencies": { "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "foreach": { + "node_modules/foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, + "hasInstallScript": true, "optional": true, - "requires": { - "nan": "^2.3.0", - "node-pre-gyp": "^0.6.39" + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "dependencies": { + "globule": "^1.0.0" }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "hoek": "2.x.x" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^0.4.1", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "boom": "2.x.x" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "^1.0.0", - "inherits": "2", - "minimatch": "^3.0.0" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-stream/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getobject": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", + "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globule": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", + "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", + "dev": true, + "dependencies": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, + "node_modules/grunt": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.1.tgz", + "integrity": "sha512-ZXIYXTsAVrA7sM+jZxjQdrBOAg7DyMUplOMhTaspMRExei+fD0BTwdWXnn0W5SXqhb/Q/nlkzXclSi3IH55PIA==", + "dev": true, + "dependencies": { + "dateformat": "~3.0.3", + "eventemitter2": "~0.4.13", + "exit": "~0.1.2", + "findup-sync": "~0.3.0", + "glob": "~7.1.6", + "grunt-cli": "~1.4.2", + "grunt-known-options": "~2.0.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "mkdirp": "~1.0.4", + "nopt": "~3.0.6", + "rimraf": "~3.0.2" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/grunt-browserify": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-6.0.0.tgz", + "integrity": "sha512-m130pTVFEsxQZ+dJQd287TrnUI5VvEKJ+MmPjMF/7bVJBTBRWhJlYVFgBOYLZMUykfk1RWXfQ2sAQu5NuXumvg==", + "dev": true, + "dependencies": { + "async": "^2.5.0", + "browserify": "^17.0.0", + "browserify-incremental": "^3.1.1", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "resolve": "^1.1.6", + "watchify": "^4.0.0" + }, + "engines": { + "node": ">= 8.10.x" + } + }, + "node_modules/grunt-cli": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", + "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", + "dev": true, + "dependencies": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" + }, + "bin": { + "grunt": "bin/grunt" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-cli/node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/grunt-concurrent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-3.0.0.tgz", + "integrity": "sha512-AgXtjUJESHEGeGX8neL3nmXBTHSj1QC48ABQ3ng2/vjuSBpDD8gKcVHSlXP71pFkIR8TQHf+eomOx6OSYSgfrA==", + "dev": true, + "dependencies": { + "arrify": "^2.0.1", + "async": "^3.1.0", + "indent-string": "^4.0.0", + "pad-stream": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "grunt": ">=1" + } + }, + "node_modules/grunt-concurrent/node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "node_modules/grunt-contrib-copy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", + "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-uglify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz", + "integrity": "sha1-s9AmDr3WzvoS/y+Onh4ln33kIW8=", + "dev": true, + "dependencies": { + "chalk": "^1.0.0", + "maxmin": "^1.1.0", + "object.assign": "^4.0.4", + "uglify-js": "~2.8.21", + "uri-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-contrib-watch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", + "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", + "dev": true, + "dependencies": { + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-express-server": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/grunt-express-server/-/grunt-express-server-0.5.4.tgz", + "integrity": "sha512-Q9sTDOwxC46uviL1/LSXFflTMv+/WnwANtzxD7hwnEXaej79LS1AUZlWc/O5P+CWjKG69/1xJFn+CVP94fOQ6Q==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + }, + "peerDependencies": { + "grunt": ">=0.4.0" + } + }, + "node_modules/grunt-known-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", + "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/grunt-legacy-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", + "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", + "dev": true, + "dependencies": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.19" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/grunt-legacy-log-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", + "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", + "dev": true, + "dependencies": { + "chalk": "~4.1.0", + "lodash": "~4.17.19" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-legacy-log-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/grunt-legacy-log-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/grunt-legacy-log-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/grunt-legacy-util": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", + "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", + "dev": true, + "dependencies": { + "async": "~3.2.0", + "exit": "~0.1.2", + "getobject": "~1.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.21", + "underscore.string": "~3.3.5", + "which": "~2.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/grunt-legacy-util/node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "node_modules/grunt/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gzip-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", + "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", + "dev": true, + "dependencies": { + "browserify-zlib": "^0.1.4", + "concat-stream": "^1.4.1" + }, + "bin": { + "gzip-size": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gzip-size/node_modules/browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "dependencies": { + "pako": "~0.2.0" + } + }, + "node_modules/gzip-size/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true, - "optional": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", + "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", + "dev": true + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/insert-module-globals": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", + "dev": true, + "dependencies": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "node_modules/layout-bmfont-text": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/layout-bmfont-text/-/layout-bmfont-text-1.3.4.tgz", + "integrity": "sha1-8g8sVGR3T0jabOipl/vObUaUW4E=", + "dependencies": { + "as-number": "^1.0.0", + "word-wrapper": "^1.0.7", + "xtend": "^4.0.0" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/liftup": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", + "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", + "dev": true, + "dependencies": { + "extend": "^3.0.2", + "findup-sync": "^4.0.0", + "fined": "^1.2.0", + "flagged-respawn": "^1.0.1", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.1", + "rechoir": "^0.7.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/liftup/node_modules/findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", + "dev": true + }, + "node_modules/load-grunt-tasks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-5.1.0.tgz", + "integrity": "sha512-oNj0Jlka1TsfDe+9He0kcA1cRln+TMoTsEByW7ij6kyktNLxBKJtslCFEvFrLC2Dj0S19IWJh3fOCIjLby2Xrg==", + "dev": true, + "dependencies": { + "arrify": "^2.0.1", + "multimatch": "^4.0.0", + "pkg-up": "^3.1.0", + "resolve-pkg": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "grunt": ">=1" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/map-limit/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/maxmin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", + "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", + "dev": true, + "dependencies": { + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^1.0.0", + "pretty-bytes": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "dev": true, + "dependencies": { + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/multimatch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/new-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz", + "integrity": "sha1-XbxjnZYerH8an7wacUbsEvKST78=" + }, + "node_modules/nice-color-palettes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-3.0.0.tgz", + "integrity": "sha512-lL4AjabAAFi313tjrtmgm/bxCRzp4l3vCshojfV/ij3IPdtnRqv6Chcw+SqJUhbe7g3o3BecaqCJYUNLswGBhQ==", + "dependencies": { + "got": "^9.2.2", + "map-limit": "0.0.1", + "minimist": "^1.2.0", + "new-array": "^1.0.0" + }, + "bin": { + "nice-color-palettes": "bin/index.js" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true, + "dependencies": { + "shell-quote": "^1.4.2" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pad-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-2.0.0.tgz", + "integrity": "sha1-O+vzTNpJWXISpmny/kF9ZGp8ulY=", + "dev": true, + "dependencies": { + "pumpify": "^1.3.3", + "split2": "^2.1.1", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1", + "meow": "^3.1.0" + }, + "bin": { + "pretty-bytes": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "dev": true, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/quad-indices": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/quad-indices/-/quad-indices-2.0.1.tgz", + "integrity": "sha1-ppQdiaE9Y+7WwdSlpiGgRjYXqBQ=", + "dependencies": { + "an-array": "^1.0.0", + "dtype": "^2.0.0", + "is-buffer": "^1.0.2" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dev": true, + "dependencies": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "node_modules/regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-2.0.0.tgz", + "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "dev": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true, - "optional": true + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/split2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "dev": true, + "dependencies": { + "through2": "^2.0.2" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "inflight": { - "version": "1.0.6", - "bundled": true, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "dependencies": { + "acorn-node": "^1.2.0" + } + }, + "node_modules/three-bmfont-text": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/three-bmfont-text/-/three-bmfont-text-3.0.1.tgz", + "integrity": "sha512-4hZwlXS5fltuvOGGXWReXatykhuU7CXociiMugqR2l/KieaqF2XHvleO3A2iCVQDrvt3NJtsFht+tr//+r7KNQ==", + "dependencies": { + "array-shuffle": "^1.0.1", + "inherits": "^2.0.1", + "layout-bmfont-text": "^1.2.0", + "nice-color-palettes": "^3.0.0", + "object-assign": "^4.0.1", + "quad-indices": "^2.0.1" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "dependencies": { + "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "dependencies": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + } + }, + "node_modules/tiny-lr/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/tiny-lr/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true, + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" + } + }, + "node_modules/underscore.string": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", + "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", + "dev": true, + "dependencies": { + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/underscore.string/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", + "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/watchify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", + "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", + "dev": true, + "dependencies": { + "anymatch": "^3.1.0", + "browserify": "^17.0.0", + "chokidar": "^3.4.0", + "defined": "^1.0.0", + "outpipe": "^1.1.0", + "through2": "^4.0.2", + "xtend": "^4.0.2" + }, + "bin": { + "watchify": "bin/cmd.js" + }, + "engines": { + "node": ">= 8.10.0" + } + }, + "node_modules/watchify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/watchify/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/word-wrapper": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/word-wrapper/-/word-wrapper-1.0.7.tgz", + "integrity": "sha1-HxSv6/Zt/fD+9V79NxhO+9CMKLY=" + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + } + }, + "dependencies": { + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, - "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "is-buffer": "^1.1.5" } - }, + } + } + }, + "an-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/an-array/-/an-array-1.0.0.tgz", + "integrity": "sha1-wSWlu4JXd4419LT2qpx9D6nkJmU=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-shuffle": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-1.0.1.tgz", + "integrity": "sha1-fqSIKjVrS8pfVF4LblLq9tlxVXo=" + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "as-number": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/as-number/-/as-number-1.0.0.tgz", + "integrity": "sha1-rLJ+NPj52KsNqeN287iVmGD4CmY=" + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true, - "optional": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.39", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "hawk": "3.1.3", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "request": "2.81.0", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^2.2.1", - "tar-pack": "^3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true, - "optional": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "~0.4.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } - }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "hoek": "2.x.x" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true }, - "sshpk": { - "version": "1.13.0", - "bundled": true, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, - "optional": true, "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jodid25519": "^1.0.0", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } + "inherits": "2.0.1" } + } + } + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babelify": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", + "dev": true, + "requires": { + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "dev": true, + "requires": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + }, + "dependencies": { + "bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true }, - "string-width": { - "version": "1.0.2", - "bundled": true, + "raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", "dev": true, - "optional": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "bytes": "1", + "string_decoder": "0.10" } }, "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "stringstream": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "body-parser": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", + "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "dev": true, + "requires": { + "bytes": "3.1.1", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.9.6", + "raw-body": "2.4.2", + "type-is": "~1.6.18" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "requires": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + } + }, + "browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "requires": { + "resolve": "^1.17.0" + } + }, + "browserify": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", + "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", + "dev": true, + "requires": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.1", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^3.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "^1.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum-object": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^3.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.12.0", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cache-api": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", + "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", + "dev": true, + "requires": { + "async": "^1.5.2", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-incremental": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", + "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", + "dev": true, + "requires": { + "browserify-cache-api": "^3.0.0", + "JSONStream": "^0.10.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "jsonparse": { "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", + "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "dev": true }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, + "JSONStream": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", + "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", "dev": true, - "optional": true, "requires": { - "debug": "^2.2.0", - "fstream": "^1.0.10", - "fstream-ignore": "^1.0.5", - "once": "^1.3.3", - "readable-stream": "^2.1.4", - "rimraf": "^2.5.1", - "tar": "^2.2.1", - "uid-number": "^0.0.6" + "jsonparse": "0.0.5", + "through": ">=2.2.7 <3" } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, + } + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, - "optional": true, "requires": { - "punycode": "^1.4.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { - "safe-buffer": "^5.0.1" + "pump": "^3.0.0" } }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "extsprintf": "1.0.2" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, + } + } + }, + "cached-path-relative": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + } + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "dtype": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", + "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=" + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "error": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", + "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", + "dev": true, + "requires": { + "string-template": "~0.2.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", + "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.4.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.9.6", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.17.2", + "serve-static": "1.14.2", + "setprototypeof": "1.2.0", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "file-sync-cmp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", + "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "requires": { + "glob": "~5.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, - "optional": true, "requires": { - "string-width": "^1.0.2" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true } } }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2878,14 +8144,31 @@ "dev": true }, "gaze": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "requires": { "globule": "^1.0.0" } }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -2911,29 +8194,78 @@ } } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "getobject": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", + "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", "dev": true }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "globals": { @@ -2943,39 +8275,14 @@ "dev": true }, "globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", + "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", "dev": true, "requires": { "glob": "~7.1.1", - "lodash": "~4.17.4", + "lodash": "~4.17.10", "minimatch": "~3.0.2" - }, - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } } }, "got": { @@ -2997,131 +8304,100 @@ } }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", "dev": true }, "grunt": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz", - "integrity": "sha1-6HeHZOlEsY8yuw8QuQeEdcnftWs=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.1.tgz", + "integrity": "sha512-ZXIYXTsAVrA7sM+jZxjQdrBOAg7DyMUplOMhTaspMRExei+fD0BTwdWXnn0W5SXqhb/Q/nlkzXclSi3IH55PIA==", "dev": true, "requires": { - "coffee-script": "~1.10.0", - "dateformat": "~1.0.12", + "dateformat": "~3.0.3", "eventemitter2": "~0.4.13", - "exit": "~0.1.1", + "exit": "~0.1.2", "findup-sync": "~0.3.0", - "glob": "~7.0.0", - "grunt-cli": "~1.2.0", - "grunt-known-options": "~1.1.0", - "grunt-legacy-log": "~1.0.0", - "grunt-legacy-util": "~1.0.0", + "glob": "~7.1.6", + "grunt-cli": "~1.4.2", + "grunt-known-options": "~2.0.0", + "grunt-legacy-log": "~3.0.0", + "grunt-legacy-util": "~2.0.1", "iconv-lite": "~0.4.13", - "js-yaml": "~3.5.2", - "minimatch": "~3.0.0", + "js-yaml": "~3.14.0", + "minimatch": "~3.0.4", + "mkdirp": "~1.0.4", "nopt": "~3.0.6", - "path-is-absolute": "~1.0.0", - "rimraf": "~2.2.8" + "rimraf": "~3.0.2" }, "dependencies": { - "glob": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", - "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true } } }, "grunt-browserify": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-5.2.0.tgz", - "integrity": "sha512-q2KKJiXiwgew6+iR3GN44Pbee7jpCxdDnIDnkShQw7fCHWEoSWHnOc4jm4lgoCaHFjVXK3O1di3WHsMF3W6BGw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-6.0.0.tgz", + "integrity": "sha512-m130pTVFEsxQZ+dJQd287TrnUI5VvEKJ+MmPjMF/7bVJBTBRWhJlYVFgBOYLZMUykfk1RWXfQ2sAQu5NuXumvg==", "dev": true, "requires": { "async": "^2.5.0", - "browserify": "^14.4.0", + "browserify": "^17.0.0", "browserify-incremental": "^3.1.1", "glob": "^7.1.2", "lodash": "^4.17.4", "resolve": "^1.1.6", - "watchify": "^3.6.1" + "watchify": "^4.0.0" + } + }, + "grunt-cli": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", + "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", + "dev": true, + "requires": { + "grunt-known-options": "~2.0.0", + "interpret": "~1.1.0", + "liftup": "~3.0.1", + "nopt": "~4.0.1", + "v8flags": "~3.2.0" }, "dependencies": { - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, - "requires": { - "lodash": "^4.14.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "abbrev": "1", + "osenv": "^0.1.4" } } } }, - "grunt-cli": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", - "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", - "dev": true, - "requires": { - "findup-sync": "~0.3.0", - "grunt-known-options": "~1.1.0", - "nopt": "~3.0.6", - "resolve": "~1.1.0" - } - }, "grunt-concurrent": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-2.3.1.tgz", - "integrity": "sha1-Hj2zjM71o9oRleYdYx/n4yE0TSM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-3.0.0.tgz", + "integrity": "sha512-AgXtjUJESHEGeGX8neL3nmXBTHSj1QC48ABQ3ng2/vjuSBpDD8gKcVHSlXP71pFkIR8TQHf+eomOx6OSYSgfrA==", "dev": true, "requires": { - "arrify": "^1.0.1", - "async": "^1.2.1", - "indent-string": "^2.0.0", - "pad-stream": "^1.0.0" + "arrify": "^2.0.1", + "async": "^3.1.0", + "indent-string": "^4.0.0", + "pad-stream": "^2.0.0" + }, + "dependencies": { + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + } } }, "grunt-contrib-copy": { @@ -3148,95 +8424,101 @@ } }, "grunt-contrib-watch": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz", - "integrity": "sha1-hKGnodar0m7VaEE0lscxM+mQAY8=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", + "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", "dev": true, "requires": { - "async": "^1.5.0", - "gaze": "^1.0.0", - "lodash": "^3.10.1", - "tiny-lr": "^0.2.1" - }, - "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - } + "async": "^2.6.0", + "gaze": "^1.1.0", + "lodash": "^4.17.10", + "tiny-lr": "^1.1.1" } }, "grunt-express-server": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/grunt-express-server/-/grunt-express-server-0.5.3.tgz", - "integrity": "sha1-gjbP0W5bWhQ5NGT/+CoMVxN7dLg=", - "dev": true + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/grunt-express-server/-/grunt-express-server-0.5.4.tgz", + "integrity": "sha512-Q9sTDOwxC46uviL1/LSXFflTMv+/WnwANtzxD7hwnEXaej79LS1AUZlWc/O5P+CWjKG69/1xJFn+CVP94fOQ6Q==", + "dev": true, + "requires": {} }, "grunt-known-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", - "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", + "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", "dev": true }, "grunt-legacy-log": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz", - "integrity": "sha1-+4bxgJhHvAfcR4Q/ns1srLYt8tU=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", + "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", "dev": true, "requires": { "colors": "~1.1.2", - "grunt-legacy-log-utils": "~1.0.0", + "grunt-legacy-log-utils": "~2.1.0", "hooker": "~0.2.3", - "lodash": "~3.10.1", - "underscore.string": "~3.2.3" - }, - "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - } + "lodash": "~4.17.19" } }, "grunt-legacy-log-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz", - "integrity": "sha1-p7ji0Ps1taUPSvmG/BEnSevJbz0=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", + "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", "dev": true, "requires": { - "chalk": "~1.1.1", - "lodash": "~4.3.0" + "chalk": "~4.1.0", + "lodash": "~4.17.19" }, "dependencies": { - "lodash": { + "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz", - "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=", - "dev": true + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "grunt-legacy-util": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz", - "integrity": "sha1-OGqnjcbtUJhsKxiVcmWxtIq7m4Y=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", + "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", "dev": true, "requires": { - "async": "~1.5.2", - "exit": "~0.1.1", - "getobject": "~0.1.0", + "async": "~3.2.0", + "exit": "~0.1.2", + "getobject": "~1.0.0", "hooker": "~0.2.3", - "lodash": "~4.3.0", - "underscore.string": "~3.2.3", - "which": "~1.2.1" + "lodash": "~4.17.21", + "underscore.string": "~3.3.5", + "which": "~2.0.2" }, "dependencies": { - "lodash": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz", - "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=", + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", "dev": true } } @@ -3269,12 +8551,12 @@ } }, "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.0.2" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -3286,23 +8568,71 @@ "ansi-regex": "^2.0.0" } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, "requires": { - "inherits": "^2.0.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } } }, "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "requires": { "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.1" } }, "hmac-drbg": { @@ -3326,6 +8656,15 @@ "os-tmpdir": "^1.0.1" } }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hooker": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", @@ -3333,9 +8672,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "htmlescape": { @@ -3350,29 +8689,22 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" - }, - "dependencies": { - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true - } + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" } }, "http-parser-js": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", - "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", + "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", "dev": true }, "https-browserify": { @@ -3382,30 +8714,24 @@ "dev": true }, "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } }, "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "inflight": { @@ -3419,9 +8745,15 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true }, "inline-source-map": { "version": "0.6.2", @@ -3433,57 +8765,107 @@ } }, "insert-module-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz", - "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", "dev": true, "requires": { - "JSONStream": "^1.0.3", - "combine-source-map": "~0.7.1", - "concat-stream": "~1.5.1", + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", "is-buffer": "^1.1.0", - "lexical-scope": "^1.2.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", "process": "~0.11.0", "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", "xtend": "^4.0.0" - }, - "dependencies": { - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - } } }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { "loose-envify": "^1.0.0" } }, "ipaddr.js": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", - "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-buffer": { @@ -3491,87 +8873,176 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "has": "^1.0.3" } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "requires": { - "is-primitive": "^2.0.0" + "has-tostringtag": "^1.0.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "has-tostringtag": "^1.0.0" } }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "^2.1.1" } }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "has-tostringtag": "^1.0.0" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", "dev": true }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + } + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3585,13 +9056,10 @@ "dev": true }, "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "js-tokens": { "version": "3.0.2", @@ -3600,19 +9068,19 @@ "dev": true }, "js-yaml": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", - "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { - "argparse": "^1.0.2", - "esprima": "^2.6.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "json-buffer": { @@ -3620,33 +9088,28 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, - "json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -3656,31 +9119,19 @@ } }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true }, "labeled-stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", - "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", "dev": true, "requires": { "inherits": "^2.0.1", - "isarray": "~0.0.1", - "stream-splicer": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } + "stream-splicer": "^2.0.0" } }, "layout-bmfont-text": { @@ -3699,31 +9150,52 @@ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true }, - "lexical-scope": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", - "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", - "dev": true, - "requires": { - "astw": "^2.0.0" + "liftup": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", + "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", + "dev": true, + "requires": { + "extend": "^3.0.2", + "findup-sync": "^4.0.0", + "fined": "^1.2.0", + "flagged-respawn": "^1.0.1", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.1", + "rechoir": "^0.7.0", + "resolve": "^1.19.0" + }, + "dependencies": { + "findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + } + } } }, "livereload-js": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz", - "integrity": "sha1-bIclfmSKtHW8JOoldFftzB+NC8I=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", "dev": true }, "load-grunt-tasks": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz", - "integrity": "sha1-ByhWEYD9IP+KaSdQWFL8WKrqDIg=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-5.1.0.tgz", + "integrity": "sha512-oNj0Jlka1TsfDe+9He0kcA1cRln+TMoTsEByW7ij6kyktNLxBKJtslCFEvFrLC2Dj0S19IWJh3fOCIjLby2Xrg==", "dev": true, "requires": { - "arrify": "^1.0.0", - "multimatch": "^2.0.0", - "pkg-up": "^1.0.0", - "resolve-pkg": "^0.1.0" + "arrify": "^2.0.1", + "multimatch": "^4.0.0", + "pkg-up": "^3.1.0", + "resolve-pkg": "^2.0.0" } }, "load-json-file": { @@ -3739,10 +9211,20 @@ "strip-bom": "^2.0.0" } }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "lodash.memoize": { @@ -3758,12 +9240,12 @@ "dev": true }, "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { @@ -3781,12 +9263,37 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, "map-limit": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", "requires": { "once": "~1.3.0" + }, + "dependencies": { + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "requires": { + "wrappy": "1" + } + } } }, "map-obj": { @@ -3808,25 +9315,14 @@ } }, "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "requires": { "hash-base": "^3.0.0", - "inherits": "^2.0.1" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - } + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { @@ -3866,24 +9362,13 @@ "dev": true }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, "miller-rabin": { @@ -3894,27 +9379,35 @@ "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } } }, "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, "requires": { - "mime-db": "~1.30.0" + "mime-db": "1.51.0" } }, "mimic-response": { @@ -3923,9 +9416,9 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "minimalistic-crypto-utils": { @@ -3934,57 +9427,56 @@ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", "dev": true }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } + "minimist": "^1.2.5" } }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, "module-deps": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", - "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", "dev": true, "requires": { - "JSONStream": "^1.0.3", - "browser-resolve": "^1.7.0", - "cached-path-relative": "^1.0.0", - "concat-stream": "~1.5.0", + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", "defined": "^1.0.0", - "detective": "^4.0.0", + "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", + "JSONStream": "^1.0.3", "parents": "^1.0.0", "readable-stream": "^2.0.2", - "resolve": "^1.1.3", + "resolve": "^1.4.0", "stream-combiner2": "^1.1.1", "subarg": "^1.0.0", "through2": "^2.0.0", "xtend": "^4.0.0" - }, - "dependencies": { - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - } } }, "ms": { @@ -3994,39 +9486,22 @@ "dev": true }, "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", "dev": true, "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" } }, - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "dev": true, - "optional": true - }, "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, "new-array": { @@ -4055,67 +9530,86 @@ } }, "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", + "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true + }, "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object.assign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", - "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.0", - "object-keys": "^1.0.10" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "isobject": "^3.0.1" } }, "on-finished": { @@ -4128,9 +9622,9 @@ } }, "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" } @@ -4153,6 +9647,16 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, "outpipe": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", @@ -4167,23 +9671,45 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "pad-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-1.2.0.tgz", - "integrity": "sha1-Yx3Mn3mBC3BZZeid7eps/w/B38k=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-2.0.0.tgz", + "integrity": "sha1-O+vzTNpJWXISpmny/kF9ZGp8ulY=", "dev": true, "requires": { - "meow": "^3.0.0", "pumpify": "^1.3.3", - "repeating": "^2.0.0", - "split2": "^1.0.0", + "split2": "^2.1.1", "through2": "^2.0.0" } }, "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parents": { @@ -4196,16 +9722,16 @@ } }, "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "dev": true, "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-bmfont-ascii": { @@ -4213,16 +9739,15 @@ "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" } }, "parse-json": { @@ -4234,26 +9759,29 @@ "error-ex": "^1.2.0" } }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -4261,12 +9789,33 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, "path-platform": { "version": "0.11.15", "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", "dev": true }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -4285,9 +9834,9 @@ } }, "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -4297,6 +9846,12 @@ "sha.js": "^2.4.8" } }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -4319,12 +9874,12 @@ } }, "pkg-up": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", - "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "^3.0.0" } }, "prepend-http": { @@ -4332,12 +9887,6 @@ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, "pretty-bytes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", @@ -4354,39 +9903,54 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.5.2" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" } }, "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1" + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } } }, "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -4394,14 +9958,14 @@ } }, "pumpify": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.3.5.tgz", - "integrity": "sha1-G2ccYZlAq8rqwK0OOjwWS+dgmTs=", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "^3.1.2", - "inherits": "^2.0.1", - "pump": "^1.0.0" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, "punycode": { @@ -4411,9 +9975,9 @@ "dev": true }, "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", "dev": true }, "quad-indices": { @@ -4438,60 +10002,19 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, "randomfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", - "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { "randombytes": "^2.0.5", @@ -4499,20 +10022,20 @@ } }, "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", "dev": true, "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, @@ -4544,46 +10067,73 @@ "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } } }, "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", + "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", + "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" }, "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "safe-buffer": "~5.1.0" } } } }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", @@ -4592,18 +10142,29 @@ "requires": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + } } }, "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, "regenerator-runtime": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", - "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regenerator-transform": { @@ -4617,15 +10178,6 @@ "private": "^0.1.6" } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -4650,20 +10202,16 @@ "dev": true, "requires": { "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", @@ -4680,24 +10228,39 @@ } }, "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } }, "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, "resolve-pkg": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz", - "integrity": "sha1-AsyZNBDik2livZcWahsHfalyVTE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-2.0.0.tgz", + "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==", "dev": true, "requires": { - "resolve-from": "^2.0.0" + "resolve-from": "^5.0.0" } }, "responselike": { @@ -4718,114 +10281,141 @@ } }, "rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "dev": true + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } }, "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "hash-base": "^2.0.0", + "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "send": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", - "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", + "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.1", + "depd": "~1.1.2", "destroy": "~1.0.4", - "encodeurl": "~1.0.1", + "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.3.1" + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } } }, "serve-static": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", + "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", "dev": true, "requires": { - "encodeurl": "~1.0.1", + "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.1" + "parseurl": "~1.3.3", + "send": "0.17.2" } }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, "sha.js": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", - "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", "dev": true, "requires": { - "json-stable-stringify": "~0.0.0", - "sha.js": "~2.4.4" + "fast-safe-stringify": "^2.0.7" } }, "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "dev": true + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true }, "slash": { @@ -4850,33 +10440,44 @@ } }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { - "spdx-license-ids": "^1.0.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "split2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz", - "integrity": "sha1-Fi2bGIZfAqsvKtlYVSLbm1TEgfk=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "dev": true, "requires": { - "through2": "~2.0.0" + "through2": "^2.0.2" } }, "sprintf-js": { @@ -4886,19 +10487,32 @@ "dev": true }, "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "stream-combiner2": { @@ -4912,28 +10526,40 @@ } }, "stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", "dev": true, "requires": { "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.2.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -4941,12 +10567,46 @@ } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "strip-ansi": { @@ -4991,13 +10651,19 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "syntax-error": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz", - "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", "dev": true, "requires": { - "acorn": "^4.0.3" + "acorn-node": "^1.2.0" } }, "three-bmfont-text": { @@ -5020,12 +10686,12 @@ "dev": true }, "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "^2.1.5", + "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, @@ -5036,126 +10702,39 @@ "dev": true, "requires": { "process": "~0.11.0" - }, - "dependencies": { - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - } } }, "tiny-lr": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", - "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", "dev": true, "requires": { - "body-parser": "~1.14.0", - "debug": "~2.2.0", + "body": "^5.1.0", + "debug": "^3.1.0", "faye-websocket": "~0.10.0", - "livereload-js": "^2.2.0", - "parseurl": "~1.3.0", - "qs": "~5.1.0" + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" }, "dependencies": { - "body-parser": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", - "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=", - "dev": true, - "requires": { - "bytes": "2.2.0", - "content-type": "~1.0.1", - "debug": "~2.2.0", - "depd": "~1.1.0", - "http-errors": "~1.3.1", - "iconv-lite": "0.4.13", - "on-finished": "~2.3.0", - "qs": "5.2.0", - "raw-body": "~2.1.5", - "type-is": "~1.6.10" - }, - "dependencies": { - "qs": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", - "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=", - "dev": true - } - } - }, - "bytes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", - "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=", - "dev": true - }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "http-errors": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "inherits": "~2.0.1", - "statuses": "1" + "ms": "^2.1.1" } }, - "iconv-lite": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", - "dev": true - }, "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "qs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", - "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true - }, - "raw-body": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", - "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", - "dev": true, - "requires": { - "bytes": "2.4.0", - "iconv-lite": "0.4.13", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", - "dev": true - } - } } } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -5167,6 +10746,21 @@ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", @@ -5180,19 +10774,19 @@ "dev": true }, "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.15" + "mime-types": "~2.1.24" } }, "typedarray": { @@ -5220,17 +10814,60 @@ "optional": true }, "umd": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz", - "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", "dev": true }, - "underscore.string": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz", - "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=", + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, + "undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "underscore.string": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", + "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", + "dev": true, + "requires": { + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + } + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -5270,20 +10907,17 @@ } }, "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", "dev": true, "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" } }, "util-deprecate": { @@ -5298,14 +10932,23 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "vary": { @@ -5315,62 +10958,101 @@ "dev": true }, "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true }, "watchify": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.9.0.tgz", - "integrity": "sha1-8HX9LoqGrN6Eztum5cKgvt1SPZ4=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", + "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", "dev": true, "requires": { - "anymatch": "^1.3.0", - "browserify": "^14.0.0", - "chokidar": "^1.0.0", + "anymatch": "^3.1.0", + "browserify": "^17.0.0", + "chokidar": "^3.4.0", "defined": "^1.0.0", "outpipe": "^1.1.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" + "through2": "^4.0.2", + "xtend": "^4.0.2" }, "dependencies": { - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } } } }, "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "requires": { - "http-parser-js": ">=0.4.0", + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + } + }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", @@ -5394,9 +11076,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "yargs": { "version": "3.10.0", diff --git a/tests/three_examples/webgl_geometry_cube.html b/tests/three_examples/webgl_geometry_cube.html index da61c7d..073a8d0 100644 --- a/tests/three_examples/webgl_geometry_cube.html +++ b/tests/three_examples/webgl_geometry_cube.html @@ -16,7 +16,8 @@ - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/js/vrviewer.js b/examples/js/vrviewer.js index 7b09017..0976db8 100644 --- a/examples/js/vrviewer.js +++ b/examples/js/vrviewer.js @@ -55,7 +55,7 @@ var scene = new THREE.Scene(); - var camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 0.1, 10); + var camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 0.1, 1000); scene.add(camera); if (emptyRoom) { diff --git a/index.html b/index.html index 8e421be..5c75e65 100644 --- a/index.html +++ b/index.html @@ -70,6 +70,7 @@

Examples:

  • Nesting example (no WebVR)
  • Example of extra features in ImageButton branch (no WebVR)
  • Vive controllers - Torus
  • +
  • Gui blur - Torus
  • Vive controllers - Polygon Shredder
  • Gaze control
  • Auto-update example
  • From ac741a0300b0e5a03a8da047d5f892805032bc8f Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Wed, 26 Jan 2022 17:51:16 +0000 Subject: [PATCH 07/24] remove some 'noise' from blur compensate antialias for scale (not quite right, but much better) --- build/datguivr.js | 6 +++--- build/datguivr.map | 2 +- build/datguivr.min.js | 4 ++-- examples/blur.html | 21 +++++++++++---------- modules/datguivr/sdfshader_logdepth.js | 8 +++++++- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index 1e45aac..a7b9a6e 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -4596,9 +4596,9 @@ var assign = require('object-assign'); /** * starting from THREE meshbasic shaders, pruning / modifying... */ -var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() {\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; +var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n\nvoid main() {\n vScale = pow(abs(determinant(mat3(modelViewMatrix))), 0.33333);\n // vScale = 10.;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; -var meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; +var meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; module.exports = function createSDFShader(opt) { opt = opt || {}; @@ -7584,4 +7584,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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O0FBQ0EsYUFBUyxLQUFULEdBQWlCLFFBQWpCO0FBQ0EsUUFBSyxNQUFMLEVBQWMsU0FBUyxhQUFULENBQXdCLENBQXhCLElBQThCLE1BQTlCOztBQUVkO0FBRUEsR0FuUEQ7QUFxUEEsQ0E1VkQ7OztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqIFxyXG4gKiBGb3Igbm93LCBqdXN0IGdvaW5nIHdpdGggUkdCIHNsaWRlcnMgYXMgSSBzaG91bGRuJ3Qgc3BlbmQgdG9vIGxvbmcgb24gdGhpcyBBVE0sXHJcbiAqIGJ1dCB2ZXJ5IHRlbXB0ZWQgYnkgcHJvc3BlY3Qgb2YgYW4gSFMgc3F1YXJlIHdpdGggViBzbGlkZXIuLi4gXHJcbiAqIG9yIEggc2xpZGVyIGFuZCBTViBzcXVhcmUgd2hpY2ggc2VlbXMgdG8gYmUgd2hhdCBkYXQuZ3VpIHVzZXMuXHJcbiAqIE9yIHNvbWV0aGluZyBmYW5jaWVyIGxpa2UgYSBodWUgY2lyY2xlIGFyb3VuZCBhbiBTViB0cmlhbmdsZSBldGMgZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuLy9zbmlwcGV0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2h1Z2hzay9nbHNsLWhzdjJyZ2IvYmxvYi9tYXN0ZXIvaW5kZXguZ2xzbFxyXG4vLyhub3QgZ29pbmcgdG8gdGhlIGxlbmd0aHMgb2YgZ2xzbGlmeSwganVzdCBjb3B5aW5nIHRoZSBmdW5jdGlvbilcclxuY29uc3QgaHN2MnJnYiA9IGBcclxudmVjMyBoc3YycmdiKHZlYzMgYykge1xyXG4gICAgdmVjNCBLID0gdmVjNCgxLjAsIDIuMCAvIDMuMCwgMS4wIC8gMy4wLCAzLjApO1xyXG4gICAgdmVjMyBwID0gYWJzKGZyYWN0KGMueHh4ICsgSy54eXopICogNi4wIC0gSy53d3cpO1xyXG4gICAgcmV0dXJuIGMueiAqIG1peChLLnh4eCwgY2xhbXAocCAtIEsueHh4LCAwLjAsIDEuMCksIGMueSk7XHJcbn1gO1xyXG5cclxuY29uc3QgVmVydFNoYWRlciA9IGBcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZVdiA9IHV2O1xyXG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4pO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBTVkZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdmVjMyBoc3YgPSB2ZWMzKHNlbGVjdGVkSFNWLngsIHZVdik7XHJcblxyXG4gICAgLy8gZHJhdyBhIGJsYWNrIGNpcmNsZSBhcm91bmQgc2VsZWN0ZWQgU1YuXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIGxlc3MgaG91c2VrZWVwaW5nXHJcbiAgICAvLyBuZWVkIHRvIGtub3cgYXNwZWN0IHJhdGlvIGlmIEkgd2FudCBpdCB0byBiZSBhIHByb3BlciBjaXJjbGUsIHRob3VnaC5cclxuICAgIGZsb2F0IGQgPSBsZW5ndGgoc2VsZWN0ZWRIU1YueXogLSB2VXYpO1xyXG4gICAgaWYgKGQgPCAwLjAxNSAmJiBkID4gMC4wMSkgaHN2LnogPSAwLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKGhzdik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBcclxufVxyXG5gO1xyXG5cclxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNzI0MjE0NC9qYXZhc2NyaXB0LWNvbnZlcnQtaHNiLWhzdi1jb2xvci10by1yZ2ItYWNjdXJhdGVseVxyXG4vL3doeSBub3QgdXNlIFRIUkVFLkNvbG9yIG1ldGhvZHM/XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiBoICBPYmplY3QgPSB7aDp4LCBzOnksIHY6en1cclxuICogT1IgXHJcbiAqIGgsIHMsIHZcclxuKi9cclxuZnVuY3Rpb24gSFNWdG9SR0IoaCwgcywgdikge1xyXG4gICAgdmFyIHIsIGcsIGIsIGksIGYsIHAsIHEsIHQ7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIC8vaGFjayB0byB0YWtlIFRIUkVFLlZlY3RvcjMuLi5cclxuICAgICAgICBpZiAoaC54ICE9PSB1bmRlZmluZWQpIHMgPSBoLnksIHYgPSBoLnosIGggPSBoLng7XHJcbiAgICAgICAgZWxzZSBzID0gaC5zLCB2ID0gaC52LCBoID0gaC5oO1xyXG4gICAgfVxyXG4gICAgaSA9IE1hdGguZmxvb3IoaCAqIDYpO1xyXG4gICAgZiA9IGggKiA2IC0gaTtcclxuICAgIHAgPSB2ICogKDEgLSBzKTtcclxuICAgIHEgPSB2ICogKDEgLSBmICogcyk7XHJcbiAgICB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpO1xyXG4gICAgc3dpdGNoIChpICUgNikge1xyXG4gICAgICAgIGNhc2UgMDogciA9IHYsIGcgPSB0LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxOiByID0gcSwgZyA9IHYsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDI6IHIgPSBwLCBnID0gdiwgYiA9IHQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMzogciA9IHAsIGcgPSBxLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0OiByID0gdCwgZyA9IHAsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDU6IHIgPSB2LCBnID0gcCwgYiA9IHE7IGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByOiByLFxyXG4gICAgICAgIGc6IGcsXHJcbiAgICAgICAgYjogYlxyXG4gICAgfTtcclxufVxyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogciAgT2JqZWN0ID0ge3IsIGcsIGJ9XHJcbiAqIE9SIFxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LCBcclxuICAgICAgICB4OiBoLCB5OiBzLCB6OiB2IC8vc28gdGhhdCB3ZSBjYW4gZG8gVmVjdG9yMy5jb3B5KHRoaXMpXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDb2xvclBpY2tlcigge1xyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lLCAvL211c3QgYmUgYSBUSFJFRS5Db2xvciBmb3Igbm93Li4uIHNob3VsZCByZWZlciB0byBvcmlnaW5hbCBkYXQuZ3VpIHRvIHNlZSB3aGF0IGl0IHRha2VzXHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIIC8gMy5cclxufSA9IHt9KSB7XHJcbiAgICAvLyBtYWtlIHRoZSBtYWluIGdyb3VwIGJlICpkaXJlY3RseSogdGhlIG9uZSByZXR1cm5lZCBieSBjcmVhdGVJbWFnZUJ1dHRvbjtcclxuICAgIC8vIHdlJ2xsIHRha2UgY2FyZSBvZiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIGNoaWxkcmVuIGJhc2VkIG9uIGF0dGFjaGVkLi4uXHJcbiAgICAvLyB3aWxsIHdhbnQgdG8gdGhpbmsgYWJvdXQgbGlzdGVuZXIgZnVuY3Rpb25zIGV0Yy5cclxuICAgIGxldCBmdW5jID0gdG9nZ2xlRGV0YWlsUGFuZWw7XHJcbiAgICBsZXQgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTsgLy9mb3Igbm93LCB0aGlzJ2QgYmV0dGVyIGJlIGEgVEhSRUUuQ29sb3Igb3Igd2UnbGwgZnJlYWsgb3V0LlxyXG4gICAgY29uc3QgYyA9IFJHQnRvSFNWKGNvbG9yKTtcclxuICAgIGNvbnN0IHVuaWZvcm1zID0ge3NlbGVjdGVkSFNWOiB7dmFsdWU6IG5ldyBUSFJFRS5WZWN0b3IzKGMuaCwgYy5zLCBjLnYpfX07XHJcbiAgICBjb25zdCBpbWFnZSA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IGNvbG9yfSk7XHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgY29uc3QgY2hhbmdlQ29sb3JPbkhvdmVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICBsaXN0ZW46IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgLy9UT0RPIG1ha2Ugc3VyZSBjb2xvciBwYXRjaCBvY2N1cGllcyBmdWxsIHdpZHRoLiAgQWRkIHRleHQgbGFiZWwgd2l0aCBoZXggdmFsdWU/XHJcbiAgICBjb25zdCBncm91cCA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgICB0ZXh0Q3JlYXRvciwgZnVuYywgaW1hZ2UsIHByb3BlcnR5TmFtZSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGNoYW5nZUNvbG9yT25Ib3ZlclxyXG4gICAgfSk7XHJcbiAgICBncm91cC5ndWlUeXBlID0gXCJDb2xvclBpY2tlclwiO1xyXG4gICAgXHJcbiAgICB2YXIgcGFuZWw7XHJcblxyXG4gICAgZnVuY3Rpb24gY2hhbmdlRm4oKSB7XHJcbiAgICAgICAgaW1hZ2UuY29sb3Iuc2V0KGNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTsgXHJcbiAgICAgICAgICAgIHBhbmVsLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmIChmYW5jeVBhbmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBTVk1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBTVkZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0U1YgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnkgPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS56ID0gcC5sb2NhbFBvaW50Lnk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS5jb3B5KFJHQnRvSFNWKGNvbG9yKSk7XHJcbiAgICB9XHJcbiAgICBncm91cC5saXN0ZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xPUiA9IDB4MkZBMUQ2O1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0NPTE9SID0gMHg0M2I1ZWE7XHJcbmV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9DT0xPUiA9IDB4MDdBQkY3O1xyXG5leHBvcnQgY29uc3QgRU1JU1NJVkVfQ09MT1IgPSAweDIyMjIyMjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9FTUlTU0lWRV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgT1VUTElORV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQUNLID0gMHgwNjA2MDY7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPTERFUl9CQUNLID0gMHgxMDEwMTA7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQkFDSyA9IDB4MzEzMTMxO1xyXG5leHBvcnQgY29uc3QgSU5BQ1RJVkVfQ09MT1IgPSAweDE2MTgyOTtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfU0xJREVSID0gMHgyZmExZDY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0NIRUNLQk9YID0gMHg4MDY3ODc7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0JVVFRPTiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9URVhUID0gMHgxZWQzNmY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RST1BET1dOID0gMHhmZmYwMDA7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fRkdfQ09MT1IgPSAweDAwMDAwMDtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fQ09MT1IgPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ISUdITElHSFRfQ09MT1IgPSAweGZhMzE3MztcclxuZXhwb3J0IGNvbnN0IFNMSURFUl9CRyA9IDB4NDQ0NDQ0O1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9CRyA9IDB4RjBGMEYwO1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9ISUdITElHSFRfQkcgPSAweEZGRkZGRjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xvcml6ZUdlb21ldHJ5KCBnZW9tZXRyeSwgY29sb3IgKXtcclxuICBjb25zdCBjb2wgPSBuZXcgVEhSRUUuQ29sb3IoY29sb3IpOyBcclxuICBsZXQgYyA9IGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgnY29sb3InKTtcclxuICBsZXQgYTtcclxuICBpZiAoIWMpIHtcclxuICAgIGEgPSBuZXcgRmxvYXQzMkFycmF5KGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheS5sZW5ndGgpLmZpbGwoMC41KTtcclxuICAgIGMgPSBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoJ2NvbG9yJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShhLCAzKSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGEgPSBjLmFycmF5O1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKz0zKSB7XHJcbiAgICBhW2ldID0gY29sLnI7XHJcbiAgICBhW2krMV0gPSBjb2wuZztcclxuICAgIGFbaSsyXSA9IGNvbC5iO1xyXG4gIH1cclxuICBjLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgLy8gZ2VvbWV0cnkuZmFjZXMuZm9yRWFjaCggZnVuY3Rpb24oZmFjZSl7XHJcbiAgLy8gICBmYWNlLmNvbG9yLnNldEhleChjb2xvcik7XHJcbiAgLy8gfSk7XHJcbiAgLy8gZ2VvbWV0cnkuY29sb3JzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgcmV0dXJuIGdlb21ldHJ5O1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwsIHtjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZURyb3Bkb3duKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIG9wdGlvbnMgPSBbXSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBvcGVuOiBmYWxzZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG5cclxuICBjb25zdCBEUk9QRE9XTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0RFUFRIID0gZGVwdGg7XHJcbiAgY29uc3QgRFJPUERPV05fT1BUSU9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU4gKiAxLjI7XHJcbiAgY29uc3QgRFJPUERPV05fTUFSR0lOID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIC0wLjQ7XHJcbiAgY29uc3QgTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJkcm9wZG93blwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgLy9hbGxvdyBmb3IgcHJvZ3JhbW1hdGljIHNldC4gQVBJIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBzdGFibGUuXHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlT2JqZWN0ID0gb2JqZWN0O1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZVByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTtcclxuICBncm91cC51c2VyRGF0YS5zZXRWYWx1ZSA9IHYgPT4ge1xyXG4gICAgaWYgKG9wdGlvbnMuaW5kZXhPZih2KSA9PT0gLTEpIHtcclxuICAgICAgLy9JIGNvdWxkIGNvbnNpZGVyIGFubm90YXRpbmcgR1VJIGl0c2VsZiB3aXRoIGVycm9yIGxhYmVscy4uLlxyXG4gICAgICBjb25zb2xlLndhcm4oYGRhdC5HVUlWUjogVW5rbm93biBvcHRpb24gXCIke3Z9XCIgZm9yIGRyb3Bkb3duIFwiJHtwcm9wZXJ0eU5hbWV9XCIuXFxuVmFsaWQgb3B0aW9uczogWyR7b3B0aW9ucy5qb2luKCcsICcpfV1gKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSB2O1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihvYmplY3RbcHJvcGVydHlOYW1lXSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IG1vZGFsRHJvcGRvd24gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBtb2RhbERyb3Bkb3duLnZpc2libGUgPSBmYWxzZTtcclxuICBtb2RhbERyb3Bkb3duLmhpdHNjYW4gPSBbXTtcclxuICBjb25zdCBsYWJlbEludGVyYWN0aW9ucyA9IFtdO1xyXG4gIGNvbnN0IG9wdGlvbkxhYmVscyA9IFtdO1xyXG5cclxuICAvLyAgZmluZCBhY3R1YWxseSB3aGljaCBsYWJlbCBpcyBzZWxlY3RlZFxyXG4gIGNvbnN0IGluaXRpYWxMYWJlbCA9IGZpbmRMYWJlbEZyb21Qcm9wKCk7XHJcblxyXG5cclxuXHJcbiAgZnVuY3Rpb24gZmluZExhYmVsRnJvbVByb3AoKXtcclxuICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgcmV0dXJuIG9wdGlvbnMuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb3B0aW9uTmFtZSA9PT0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvYmplY3RbcHJvcGVydHlOYW1lXSA9PT0gb3B0aW9uc1sgb3B0aW9uTmFtZSBdO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9wdGlvbiggbGFiZWxUZXh0LCBpc09wdGlvbiApe1xyXG4gICAgLy9UT0RPOiB0cnVuY2F0ZSBsb25nIGxhYmVsVGV4dCwgbWF5YmUgc2hvdyBmdWxsIHZlcnNpb24gd2hlbiBob3ZlcmluZy5cclxuICAgIGNvbnN0IGxhYmVsID0gY3JlYXRlVGV4dExhYmVsKFxyXG4gICAgICB0ZXh0Q3JlYXRvciwgbGFiZWxUZXh0LFxyXG4gICAgICAvL2NoZWNrIHdpZHRoIHZhbHVlLi4uXHJcbiAgICAgIERST1BET1dOX1dJRFRILCBkZXB0aCxcclxuICAgICAgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SLCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IsXHJcbiAgICAgIDAuODY2XHJcbiAgICApO1xyXG4gICAgbGFiZWwuYmFjay5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG5cclxuICAgIGlmIChpc09wdGlvbikgbW9kYWxEcm9wZG93bi5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGVsc2UgZ3JvdXAuaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBjb25zdCBsYWJlbEludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGxhYmVsLmJhY2sgKTtcclxuICAgIGxhYmVsSW50ZXJhY3Rpb24uZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5wdXNoKCBsYWJlbEludGVyYWN0aW9uICk7XHJcbiAgICBvcHRpb25MYWJlbHMucHVzaCggbGFiZWwgKTtcclxuXHJcblxyXG4gICAgaWYoIGlzT3B0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBsYWJlbFRleHQgKTtcclxuXHJcbiAgICAgICAgbGV0IHByb3BlcnR5Q2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIG9uQ2hhbmdlZENCICYmIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgb25DaGFuZ2VkQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCBvbkNob29zZUNCICl7XHJcbiAgICAgICAgICBvbkNob29zZUNCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgaWYoIHN0YXRlLm9wZW4gPT09IGZhbHNlICl7XHJcbiAgICAgICAgICBvcGVuT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbGFiZWwuaXNPcHRpb24gPSBpc09wdGlvbjtcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNvbGxhcHNlT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLmNsZWFyTW9kYWxFZGl0b3IoKTsgLy9zaG91bGQgd2UgY2hlY2sgaWYgaXQgd2Fzbid0IHNldCB0byBzb21ldGhpbmcgZWxzZT8/XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcGVuT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IHRydWU7XHJcbiAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IobW9kYWxEcm9wZG93bik7XHJcbiAgICAvL3JldHVybjtcclxuICAgIC8vbGFiZWwuaXNPcHRpb24gc2VlbXMgbW9zdGx5IHJlZHVuZGFudC5cclxuICAgIC8vbGFiZWxzICYgYmFja3Mgc2hvdWxkIGJlIGFkZGVkIHRvIGEgZ3JvdXAgdG8gYmUgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgXHJcbiAgICAvL21ha2luZyBldmVyeXRoaW5nIHZpc2libGUgLyBpbnZpc2libGUgd2l0aCBvbmUgcHJvcGVydHlcclxuICAgIC8vKG5iLCBldmVuIHRob3VnaCB0aGV5IGFyZSBub3cgaW4gYSBncm91cCB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCB3ZSBzdGlsbCBuZWVkIHRvIHNldCB2aXNpYmxlLi4uXHJcbiAgICAvL3NlZSBjb21tZW50IGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpKVxyXG4gICAgb3B0aW9uTGFiZWxzLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbCApe1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBsYWJlbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBsYWJlbC5iYWNrLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICBiYXNlIG9wdGlvblxyXG4gIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSBjcmVhdGVPcHRpb24oIGluaXRpYWxMYWJlbCB8fCAnICcsIGZhbHNlICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IEdyYXBoaWMuZG93bkFycm93KCk7XHJcbiAgLy8gQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggRFJPUERPV05fV0lEVEggLSAwLjA0LCAwLCBkZXB0aCAqIDEuMDEgKTtcclxuICBzZWxlY3RlZExhYmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBsYWJlbCwgaW5kZXggKXtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnkgPSAtRFJPUERPV05fTUFSR0lOIC0gKGluZGV4JU1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKzEpICogKCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUICk7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi54ICs9IERST1BET1dOX1dJRFRIICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wdGlvblRvTGFiZWwoIG9wdGlvbk5hbWUsIGluZGV4ICl7XHJcbiAgICBjb25zdCBvcHRpb25MYWJlbCA9IGNyZWF0ZU9wdGlvbiggb3B0aW9uTmFtZSwgdHJ1ZSApO1xyXG4gICAgY29uZmlndXJlTGFiZWxQb3NpdGlvbiggb3B0aW9uTGFiZWwsIGluZGV4ICk7XHJcbiAgICByZXR1cm4gb3B0aW9uTGFiZWw7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZExhYmVsLmFkZChtb2RhbERyb3Bkb3duKTtcclxuICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCguLi5vcHRpb25zLm1hcChvcHRpb25Ub0xhYmVsKSk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCggLi4uT2JqZWN0LmtleXMob3B0aW9ucykubWFwKCBvcHRpb25Ub0xhYmVsICkgKTtcclxuICB9XHJcblxyXG5cclxuICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfRFJPUERPV04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuXHJcbiAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBEUk9QRE9XTl9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBEUk9QRE9XTl9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSwgRFJPUERPV05fREVQVEgsIHRydWUgKTtcclxuICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGNvbnRyb2xsZXJJRCwgc2VsZWN0ZWRMYWJlbCwgYm9yZGVyQm94ICk7XHJcblxyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggaW50ZXJhY3Rpb24sIGluZGV4ICl7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uTGFiZWxzWyBpbmRleCBdO1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7IC8vYXMgb2YgdGhpcyB3cml0aW5nLCB0aGlzIGlzIGJlbGlldmVkIHRvIGJlIHJlbGlhYmxlLCBidXQgYmV3YXJlIGRyYWdvbnMsIGZ1dHVyZSByZWFkZXIuXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEudGlwT2JqKSB7XHJcbiAgICAgIC8vIGlmIChsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKSB7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coZ3JvdXAudXNlckRhdGEudGlwKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBzZXRWaXNpYmlsaXR5KHBhbmVsLCBncm91cC51c2VyRGF0YS50aXBPYmosIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYoIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkgfHwgc3RhdGUub3BlbiApe1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG4gIGxldCBvbkNob29zZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLm9uQ2hvb3NlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNob29zZUNCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggZmluZExhYmVsRnJvbVByb3AoKSApO1xyXG4gICAgfVxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsSW50ZXJhY3Rpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgIGNvbnN0IG9iaiA9IGdyb3VwO1xyXG4gICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgLy9uYiwgb2JqLnNwYWNpbmcgbWF5IGJlIHVuZGVmaW5lZCwgYnV0IHNob3VsZCBub3cgaGF2ZSBzZW5zaWJsZSBkZWZhdWx0LlxyXG4gICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgLy8vLy0tLSBzZWUgbGFiZWxJbnRlcmFjdGlvbnNbMF0gYWJvdmUgZm9yIGhhbmRsaW5nIHVwZGF0ZS4uLlxyXG4gIH1cclxuICBncm91cC5nZXRUb29sVGlwID0gKCkgPT4gZ3JvdXAudXNlckRhdGEudGlwO1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgeyBjcmVhdGVUb29sVGlwIH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyLCBzZXRCb3hGcm9tT2JqZWN0LCBzZXRWaXNpYmlsaXR5IH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IEZPTERFUl9XSURUSCB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbi8vSWYgeW91J3JlIGxvb2tpbmcgZm9yIG1haW4gY3JlYXRlRm9sZGVyIGZ1bmN0aW9uLCBpdCdzIGZ1cnRoZXIgYmVsb3cuLi5cclxuXHJcbi8qKlxyXG4gKiBOb3QgZW50aXJlbHkgc3VyZSBhYm91dCBzdGFydGluZyB0byBhZGQgdGhpcyBraW5kIG9mIGdsb2JhbCBzdGF0ZSBtYW5hYWdlbWVudCBoZXJlLi4uXHJcbiAqIFRoaXMgaXMgZm9yIHotb3JkZXIgaW4gMmQgb3J0aG9ncmFwaGljIG1vZGUsIGFuZCBtYXliZSBzb21lIG90aGVyIHRoaW5ncyBvbmUgZGF5LlxyXG4gKi9cclxuY29uc3QgdG9wRm9sZGVyU3RhY2sgPSBbXTtcclxuXHJcbmNvbnN0IHNjcmF0Y2hGb2xkZXJCb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoQ2FtQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaFNpemUgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCkge1xyXG4gIGNvbnN0IGNhbSA9IHRvcEZvbGRlclN0YWNrWzBdLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gIGlmICghY2FtIHx8IHRvcEZvbGRlclN0YWNrLmxlbmd0aCA8PSAxKSByZXR1cm47XHJcbiAgLy9jYW1Cb3hTZXR1cChjYW0pO1xyXG4gIGNvbnN0IHRmcyA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcih4ID0+IHgudmlzaWJsZSk7XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdGZzLmxlbmd0aDtcclxuICBjb25zdCB6cyA9IHRmcy5tYXAoZiA9PiBmLnBvc2l0aW9uLnopLnNvcnQoKGEsYik9PmEtYik7XHJcbiAgenNbLTFdID0gLTk5OTk7IC8vIEkgc3VwcG9zZSB0aGlzIGlzIHRvIGRlYWwgd2l0aCBhY2Nlc3NpbmcgenNbaS0xXSBiZWxvdyDCr1xcXyjjg4QpXy/Cr1xyXG4gIHpzLmZvckVhY2goICh6LGkpID0+IHpzW2ldID0gTWF0aC5tYXgoenNbaV0sIHpzW2ktMV0gKyAxMCpMYXlvdXQuUEFORUxfREVQVEgpKTsgLy8gaW4gY2FzZSBvZiBlcXVhbHNcclxuICBcclxuICB0ZnMuZm9yRWFjaCgoZiwgaSkgPT4ge1xyXG4gICAgLy9sZXQgeiA9IC0wLjkqZmFyICsgaSoxMCpMYXlvdXQuUEFORUxfREVQVEg7XHJcbiAgICBjb25zdCB6ID0genNbaV07XHJcbiAgICBpZiAoeiAhPT0gZi5wb3NpdGlvbi56KSB7XHJcbiAgICAgIGYucG9zaXRpb24ueiA9IHo7XHJcbiAgICAgIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIGYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9KTtcclxuICBpZiAodGZzW24tMV0ucG9zaXRpb24ueiA+PSBuZWFyIC0gTGF5b3V0LlBBTkVMX0RFUFRIKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkdVSVZSIFdhcm5pbmc6IGxpa2VseSBwcm9ibGVtIHdpdGggei1vcmRlciBpbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXRcIik7XHJcbiAgfVxyXG4gIC8vY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUgKyAnXFx0OiAnICsgZi5wb3NpdGlvbi56KS5qb2luKCdcXG4nKX1dYCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbUJveFNldHVwKGNhbSkge1xyXG4gIGlmICghY2FtLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSByZXR1cm47XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdG9wRm9sZGVyU3RhY2subGVuZ3RoO1xyXG4gIGNvbnN0IGwgPSBjYW0ubGVmdCwgciA9IGNhbS5yaWdodCwgdCA9IGNhbS50b3AsIGIgPSBjYW0uYm90dG9tO1xyXG4gIGNvbnN0IHogPSBjYW0ucG9zaXRpb24uejsgLy9ub3Qgc3RyaWN0bHkgcmlnaHQuLi5cclxuICBzY3JhdGNoQ2FtQm94Lm1pbi5zZXQobCwgYiwgLWZhciArIHopO1xyXG4gIHNjcmF0Y2hDYW1Cb3gubWF4LnNldChyLCB0LCAtbmVhciArIHopO1xyXG4gIHJldHVybiBzY3JhdGNoQ2FtQm94O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVGb2xkZXIoe1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG5hbWUsXHJcbiAgZ3VpQWRkLFxyXG4gIGd1aVJlbW92ZSxcclxuICBhZGRDb250cm9sbGVyRnVuY3MsXHJcbiAgZ2xvYmFsQ29udHJvbGxlcnNcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IHdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICBjb25zdCBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSDtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBjb2xsYXBzZWQ6IGZhbHNlLFxyXG4gICAgcHJldmlvdXNQYXJlbnQ6IHVuZGVmaW5lZFxyXG4gIH07XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZm9sZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7bmFtZX1dYDtcclxuXHJcbiAgY29uc3QgY29sbGFwc2VHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmFkZCggY29sbGFwc2VHcm91cCApO1xyXG5cclxuICB2YXIgaXNBY2NvcmRpb24gPSBmYWxzZTtcclxuICAvKiogV2hlbiB0cnVlLCB3aWxsIGtlZXAgb25seSBvbmUgY2hpbGQgZm9sZGVyIG9mIHRoaXMgZm9sZGVyIG9wZW4gYXQgYSB0aW1lLlxyXG4gICAqIFNpYmxpbmdzIGF1dG9tYXRpY2FsbHkgY2xvc2UuXHJcbiAgICovXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2FjY29yZGlvbicsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNBY2NvcmRpb247XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAoIG5ld1ZhbHVlICYmICFpc0FjY29yZGlvbiApIGdyb3VwLmd1aUNoaWxkcmVuLmZpbHRlciggYz0+Yy5pc0ZvbGRlciApLm1hcCggYz0+Yy5jbG9zZSgpICk7XHJcbiAgICAgIGlzQWNjb3JkaW9uID0gbmV3VmFsdWU7XHJcbiAgICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy9mbGFnIHRoZSBuZWVkIGZvciBwZXJmb3JtaW5nIGxheW91dCBvZiB0aGUgZm9sZGVyIGhpZXJhcmNoeSBpbiB3aGljaCB0aGlzIGlzIGNvbnRhaW5lZC5cclxuICBncm91cC5yZXF1ZXN0TGF5b3V0ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGByZXF1ZXN0ZWQgbGF5b3V0IG9mIGZvbGRlciAke2dyb3VwLmZvbGRlck5hbWV9IHdoaWxlIGxheW91dCBhbHJlYWR5IGluIHByb2dyZXNzLi4uYCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90b3BGb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20gaW5kZXguanMgdXBkYXRlKD8pIGZvciBlYWNoIHRvcEZvbGRlciwgdGhlbiBmcm9tIHdpdGhpbiBwZXJmb3JtTGF5b3V0KCkgZm9yIGVhY2ggY2hpbGQgZm9sZGVyXHJcbiAgZ3JvdXAucGVyZm9ybUxheW91dCA9IHBlcmZvcm1MYXlvdXQ7XHJcblxyXG4gIGNvbnN0IHN0cmFpZ2h0Um90YXRpb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xyXG4gIC8vcHJvdmlkZSBhcmd1bWVudHMgZm9yIGhvdyBjb25zdHJhaW5lZCB0byBiZSwgYW5kIHJlLXVzZSBzYW1lIGZ1bmN0aW9uIGJvdGggb24gZGV0YWNoIGFuZCBlbHNld2hlcmU/XHJcbiAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24gPSBmdW5jdGlvbih0aHJlc2g9MC4wMSkge1xyXG4gICAgY29uc3QgZiA9IHRoaXM7XHJcbiAgICBpZiAoIWYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIHJldHVybjtcclxuICAgIC8vYWx3YXlzIGZvcmNlIHJvdGF0aW9uIHN0cmFpZ2h0IGZvcndhcmQuLi5cclxuICAgIGYuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbihzdHJhaWdodFJvdGF0aW9uKTtcclxuXHJcbiAgICAvL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuICAgIC8vbWF5YmUgSSBjb3VsZCB1c2UgYSBCb3gyIGFueXdheSBzaW5jZSAzZCBtaWdodCBqdXN0IGNvbmZ1c2UgdGhpbmdzLlxyXG4gICAgY29uc3QgYm94ID0gc2V0Qm94RnJvbU9iamVjdChzY3JhdGNoRm9sZGVyQm94LCBmKTtcclxuICAgIGNvbnN0IGJveFcgPSBib3gubWF4LnggLSBib3gubWluLngsIGJveEggPSBib3gubWF4LnktYm94Lm1heC55O1xyXG4gICAgXHJcbiAgICBjb25zdCBjYW0gPSBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gICAgY29uc3QgY2FtQm94ID0gY2FtQm94U2V0dXAoY2FtKTsgLy9iaXQgd2FzdGVmdWwgdG8gY2FsbCB0aGlzIGhlcmUsIGJ1dCBpbnNpZ25pZmljYW50LlxyXG4gICAgLy9yZWFsbHksIEkgd2FudCB0byBrbm93IGlmIGl0J3MgJ21vc3RseScgaW52aXNpYmxlLlxyXG4gICAgLy9Vc2luZyB0d28gYm94ZXMsIHJhdGhlciB0aGFuIGZydXN0dW0uc2V0RnJvbU1hdHJpeCggbWF0Lm11bHRpcGx5TWF0cmljZXMoIGNhbS5wcm9qZWN0aW9uTWF0cml4LCBjYW0ubWF0cml4V29ybGRJbnZlcnNlICkgKTtcclxuICAgIC8vKGZydXN0dW0gaXMgdW5uZWNlc3NhcnkgKmNvdWdoKmlmIHdlIGFzc3VtZSBvcnRob2dyYXBoaWMgcGVyc3BlY3RpdmUsIG5vIGNhbWVyYSB0cmFuc2Zvcm0gJiBhcmUgZ2VuZXJhbGx5IGxheCBhYm91dCB6KilcclxuICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IGJveC5pbnRlcnNlY3QoY2FtQm94KTsgLy9jYXJlZnVsIG9mIG9yZGVyOyBpbnRlcnNlY3QoKSBtdXRhdGVzXHJcbiAgICAvLyhYWFg6IHN0cmljdGx5IHNwZWFraW5nLCBpZGVhbGx5IEkgd291bGQgdGFrZSBjYW1lcmEgbWF0cml4V29ybGQgaW50byBhY2NvdW50IGlmIEkgd2FudCB0byBiZSBwcm9wZXIpXHJcbiAgICAvLyhtaWdodCBqdXN0IG1ha2UgbG9nIGEgd2FybmluZyBpZiBpdCdzIHNldCBob3cgSSBkb24ndCBleHBlY3QgaXQsIGJ1dCBwcmVmZXIgbm90IHRvIGxlYXZlIHRyYXBzLilcclxuICAgIFxyXG4gICAgLy9sb29rIGF0IGRpbWVuc2lvbnMgb2YgaW50ZXJzZWN0aW9uIGFuZCBmb3JjZSBpbndhcmRzIGlmIG5lY2Vzc2FyeS4uLlxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uU2l6ZSA9IGludGVyc2VjdGlvbi5nZXRTaXplKHNjcmF0Y2hTaXplKTtcclxuICAgIGNvbnN0IHNjcmVlblcgPSBjYW0ucmlnaHQgLSBjYW0ubGVmdCwgc2NyZWVuSCA9IGNhbS50b3AgLSBjYW0uYm90dG9tO1xyXG4gICAgLy93b3JrIGluIHVuaXRzIGFzIGZyYWN0aW9uIG9mIGJveCB3aWR0aCAoYWx0aG91Z2ggdGhhdCdzIG5vdCBhIGdyZWF0IGlkZWEgd2l0aCBtdWx0aS1jb2x1bW4gZm9sZGVycylcclxuICAgIGludGVyc2VjdGlvblNpemUueCAvPSBib3hXOyBpbnRlcnNlY3Rpb25TaXplLnkgLz0gYm94VztcclxuICAgIGxldCBuZWVkc1VwZGF0ZSA9IGZhbHNlO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgJHtmLmZvbGRlck5hbWV9OiAke0pTT04uc3RyaW5naWZ5KGludGVyc2VjdGlvblNpemUpfSwgdGhyZXNoOiAke3RocmVzaH1gKTtcclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnggPCB0aHJlc2gpIHsgLy9UT0RPOiBwYXJhbWF0ZXJpc2UgLyBub24tbWFnaWMtbnVtYmVyXHJcbiAgICAgIC8vVE9ETyB3b3JrIG91dCB3aGljaCBzaWRlIHdlJ3JlIG9uLCBtb3ZlIGJ5IG9iamVjdCB3aWR0aC4uLlxyXG4gICAgICBmLnBvc2l0aW9uLnggPSBjYW0ubGVmdCArIHNjcmVlblcvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueSA8IHRocmVzaCkge1xyXG4gICAgICBmLnBvc2l0aW9uLnkgPSBjYW0uYm90dG9tICsgc2NyZWVuSC8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmVlZHNVcGRhdGUpIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5pc0NvbGxhcHNlZCA9ICgpID0+IHsgcmV0dXJuIHN0YXRlLmNvbGxhcHNlZCB9XHJcbiAgXHJcbiAgLy91c2VmdWwgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhpcyBhcyB3ZWxsLiBVc2luZyBpbiByZW1vdmUgaW1wbGVtZW50YXRpb25cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdndWlDaGlsZHJlbicsIHtcclxuICAgIC8vcGVyaGFwcyBtb2RhbEVkaXRvciBzaG91bGQgYWxzbyBjb3VudCBhcyBhIG1lbWJlciBvZiB0aGlzLi4uXHJcbiAgICAvL2N1cnJlbnRseSBjYW4ndCBzZWUgYW55dGhpbmcgaW4gaW1wbGVtZW50YXRpb24gdGhhdCB3b3VsZCByZXF1aXJlIHRoYXRcclxuICAgIC8vLS0gYWRkaW5nIGhlYWRlckl0ZW1zIHRob3VnaCwgc28gdGhleSdsbCBnZXQgcGlja2VkIHVwIGJ5IHJlbW92ZSgpXHJcbiAgICAvLyAtIG1heWJlIHNhbWUgc2hvdWxkIGFwcGx5IHRvIG1vZGFsRWRpdG9yXHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIFsgLi4uY29sbGFwc2VHcm91cC5jaGlsZHJlbiwgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gXSB9XHJcbiAgfSk7XHJcbiAgLy8gcmV0dXJucyB0cnVlIGlmIGFsbCBvZiB0aGUgc3VwcGxpZWQgYXJncyBhcmUgbWVtYmVycyBvZiB0aGlzIGZvbGRlclxyXG4gIGdyb3VwLmhhc0NoaWxkID0gZnVuY3Rpb24gKCAuLi5hcmdzICl7XHJcbiAgICByZXR1cm4gIWFyZ3MuaW5jbHVkZXMoKG9iaikgPT4geyByZXR1cm4gZ3JvdXAuZ3VpQ2hpbGRyZW4uaW5kZXhPZihvYmopID09PSAtMX0pO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZm9sZGVyTmFtZSA9IG5hbWU7IC8vZm9yIGRlYnVnZ2luZ1xyXG4gIFxyXG4gIC8vICBZZWFoLiBHcm9zcy5cclxuICBjb25zdCBhZGRPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQ7XHJcbiAgLy9hcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIHRoaXMgdG8gYmVoYXZlIGxpa2UgYSByZWd1bGFyIFRIUkVFLkdyb3VwLCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIG9mIHJlbW92ZSBzaG91bGRuJ3QgaHVydFxyXG4gIGNvbnN0IHJlbW92ZU9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZTsgXHJcblxyXG4gIGZ1bmN0aW9uIGFkZEltcGwoIG8gKXtcclxuICAgIC8vIEkgY291bGQgY2hhbmdlIHRoaXMgZnVuY3Rpb24gYXMgcGFydCBvZiBhIHJlZmFjdG9yIHRvIHBsYWNlIGV2ZXJ5dGhpbmcgYXQgdG9wRm9sZGVyIGxldmVsLi4uXHJcbiAgICAvLyBpcyB0aGF0IGEgZ29vZCBpZGVhLCBvciBhIGJhZCBpZGVhP1xyXG4gICAgYWRkT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gcmVtb3ZlSW1wbCggbyApe1xyXG4gICAgcmVtb3ZlT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcblxyXG4gIC8vYWRkSW1wbCggY29sbGFwc2VHcm91cCApOyAvL3JlZHVuZGFudC5cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBhZGRJbXBsKCBwYW5lbCApO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDEuNTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuXHJcbiAgY29uc3QgZG93bkFycm93ID0gTGF5b3V0LmNyZWF0ZURvd25BcnJvdygpO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIDB4ZmZmZmZmICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggMC4wNSwgMCwgZGVwdGggICogMS4wMSApO1xyXG4gIHBhbmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG4gIGNvbnN0IGdyYWJiZXIgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0dSQUJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGdyYWJiZXIucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44NjsgLy9YWFg6IG1hZ2ljIG51bWJlclxyXG4gIGdyYWJiZXIubmFtZSA9ICdncmFiYmVyJztcclxuICBhZGRJbXBsKCBncmFiYmVyICk7XHJcblxyXG4gIGNvbnN0IGdyYWJCYXIgPSBHcmFwaGljLmdyYWJCYXIoKTtcclxuICBncmFiQmFyLnBvc2l0aW9uLnNldCggd2lkdGggKiAwLjUsIDAsIGRlcHRoICogMS4wMDEgKTtcclxuICBncmFiYmVyLmFkZCggZ3JhYkJhciApO1xyXG4gIGdyb3VwLmlzRm9sZGVyID0gdHJ1ZTtcclxuICBncm91cC5oaWRlR3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSBmYWxzZSB9O1xyXG4gIGdyb3VwLnNob3dHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IHRydWUgfTtcclxuICBncm91cC5oaWRlSGVhZGVyID0gZnVuY3Rpb24oKSB7IFxyXG4gICAgZ3JvdXAuaGlkZUdyYWJiZXIoKTtcclxuICAgIC8vZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICB9O1xyXG4gIGdyb3VwLnNob3dIZWFkZXIgPSAoKSA9PiB7XHJcbiAgICAvL2dyYWJiZXIudmlzaWJsZSA9IGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vVE9ETzogaW50ZXJmYWNlIGZvciBhZGRpbmcgdGhpbmdzIHRvIHRoaXMuLi4gTk9UICdzaG93SW5Gb2xkZXJIZWFkZXInIG1ldGhvZCAvIHByb3BlcnR5IG9uIGxpbmVhciBpdGVtcy4uLlxyXG4gIGNvbnN0IGhlYWRlckl0ZW1zID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcGFuZWwuYWRkKGhlYWRlckl0ZW1zKTtcclxuICAvL3RoaXMgZnVuY3Rpb24gd2lsbCBhdHRlbXB0IHRvIG1ha2Ugb2JqIGJlaGF2ZSBhcyBjb250cm9sbGVyIGxheWVkIG91dCBpbiBoZWFkZXJJdGVtcyxcclxuICAvL2Jhc2VkIG9uIHNvbWUgYXNzdW1wdGlvbnMgYWJvdXQgb2JqIHRoYXQgbWF5IGJlIHRydWUgYXQgdGltZSBvZiB3cml0aW5nLi4uXHJcbiAgLy9idXQgYXJlIHBlbmRpbmcgbW9yZSByaWdvcm91cyBzcGVjaWZpY2F0aW9uIC8gcmVmYWN0b3JpbmcgZXRjLlxyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0gPSBmdW5jdGlvbihvYmope1xyXG4gICAgaGVhZGVySXRlbXMuYWRkKG9iaik7XHJcbiAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBvYmouaXNIZWFkZXJPYmplY3QgPSB0cnVlO1xyXG5cclxuICAgIC8vYWxzbyBuZWVkIHRvIGFkZCB0byBnbG9iYWwgY29udHJvbGxlcnMgbGlzdCBldGMuIE5COjogbWFrZSBzdXJlIHRoYXQgdGhleSB3aWxsIGdldCByZW1vdmVkIGFzIHdlbGxcclxuICAgIC8vLS0tIHRoaXMgZ2VuZXJpYyBpbnRlcmFjdGlvbi51cGRhdGUgZG9lc24ndCBtYWtlIGxpc3RlbigpIHdvcmsgcHJvcGVybHkuXHJcbiAgICBpZiAoIW9iai51cGRhdGVDb250cm9sKSBvYmoudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiBvYmouaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICBvYmouaGl0c2NhbiA9IFsgb2JqIF07IC8vaGFja3kgaGFja3lcclxuICAgIGdsb2JhbENvbnRyb2xsZXJzLnB1c2gob2JqKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiAweDg4ODg4OCwgdHJhbnNwYXJlbnQ6IHRydWV9KTtcclxuICBjb25zdCBoID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uUmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggaCwgaCwgTGF5b3V0LkJVVFRPTl9ERVBUSCoyICk7XHJcbiAgLy9zb21ld2hhdCBiYWNrd2FyZHMgd2F5IG9mIGdldHRpbmcgdGV4dHVyZXMuLi4gVE9ETyBtYXliZSBjaGFuZ2UgKGFsb25nIHdpdGggb3RoZXIgc3R5bGUgY29uc2lzdGVuY3kgdHlwZSBzdHVmZilcclxuICBjb25zdCBkb2NrVGV4dHVyZSA9IEdyYXBoaWMuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBjb25zdCB1bmRvY2tUZXh0dXJlID0gR3JhcGhpYy51bmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICBjb25zdCBkZXRhY2hCdXR0b24gPSBuZXcgVEhSRUUuTWVzaCggIGRldGFjaEJ1dHRvblJlY3QsIGRldGFjaEJ1dHRvbk1hdGVyaWFsICk7XHJcbiAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBmYWxzZTtcclxuICBkZXRhY2hCdXR0b24ucG9zaXRpb24ueCA9IExheW91dC5GT0xERVJfV0lEVEggLSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICBjb25zdCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGRldGFjaEJ1dHRvbik7XHJcbiAgZGV0YWNoQnV0dG9uLmludGVyYWN0aW9uID0gZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb247XHJcbiAgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChncm91cC5kZXRhY2hlZFBhcmVudCkge1xyXG4gICAgICBncm91cC5yZWF0dGFjaCgpO1xyXG4gICAgfSBlbHNlIGdyb3VwLmRldGFjaCgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG4gIC8vaGVhZGVySXRlbXMuYWRkKGRldGFjaEJ1dHRvbik7XHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbShkZXRhY2hCdXR0b24pO1xyXG5cclxuICBsZXQgaXNEZXRhY2hhYmxlID0gZmFsc2U7XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2RldGFjaGFibGUnLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzRGV0YWNoYWJsZTtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gaXNEZXRhY2hhYmxlKSByZXR1cm47XHJcbiAgICAgIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gbmV3VmFsdWU7XHJcbiAgICAgIGlzRGV0YWNoYWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZ3JvdXAuYWRkID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGNvbnN0IG5ld0NvbnRyb2xsZXIgPSBndWlBZGQoIC4uLmFyZ3MgKTtcclxuXHJcbiAgICBpZiggbmV3Q29udHJvbGxlciApe1xyXG4gICAgICBncm91cC5hZGRDb250cm9sbGVyKCBuZXdDb250cm9sbGVyICk7XHJcbiAgICAgIHJldHVybiBuZXdDb250cm9sbGVyO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBTb21lIGNvbnRyb2xsZXJzIG1heSBicmluZyB1cCBzdWItR1VJcyB3aGljaCBoYXZlIHRoZSBwb3RlbnRpYWxcclxuICAgIHRvIG92ZXJsYXAgLyBjbGFzaC4gIFRoaXMgZW5zdXJlcyBvbmx5IG9uZSBpcyBwcmVzZW50IGF0IGEgdGltZS5cclxuICAqL1xyXG4gIGdyb3VwLnNldE1vZGFsRWRpdG9yID0gZnVuY3Rpb24oZSl7XHJcbiAgICAvL1RoaXMgY291bGQgZ28gd3JvbmcgaWYgZm9sZGVyIGhpZXJhcmNoeSBjaGFuZ2VzIHNpZ25pZmljYW50bHkuXHJcbiAgICAvL1Nob3VsZCBiZSBnb29kIGVub3VnaCBmb3Igcm9jayduJ3JvbGwgKGZhbW91cyBsYXN0IHdvcmRzKS5cclxuICAgIC8vSSBjb3VsZCBtYWtlIGl0IHNvIHRoYXQgb25seSBvbmUgb2YgdGhlc2UgdGhpbmdzIHdhcyBldmVyIHZpc2libGVcclxuICAgIC8vYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtLiAgVGhhdCBzaG91bGQgYmUgZWFzaWVyIHRvIG1ha2Ugcm9idXN0LCBhbnl3YXkuLi5cclxuICAgIC8vYW5kIHNhdmVzIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLlxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IGU7XHJcbiAgICBpZiAoIWUpIHJldHVybjtcclxuICAgIGUudmlzaWJsZSA9IHRydWU7XHJcbiAgICBpZiAoZS5wZXJmb3JtTGF5b3V0KSBlLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIGZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gdHJ1ZTtcclxuICAgIC8vYWRkIGEgZmxhZyB0byBhbGwgY2hpbGRyZW4gcmVjdXJzaXZlbHkgc28gdGhhdCBpbnRlcmFjdGlvbiBzeXN0ZW0gY2FuIGlkZW50aWZ5IHRoZW0gYXMgYmVsb25naW5nIHRvIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAvL1RPRE86IHNraXAgaWYgYWxyZWFkeSBkb25lLi4uXHJcbiAgICBmdW5jdGlvbiBkZWNvcmF0ZUNoaWxkcmVuKHBhcmVudCkge1xyXG4gICAgICBwYXJlbnQuY2hpbGRyZW4uZm9yRWFjaChjID0+IHtcclxuICAgICAgICBjLnVzZXJEYXRhLnBhcnRPZk1vZGFsID0gZTtcclxuICAgICAgICBkZWNvcmF0ZUNoaWxkcmVuKGMpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGRlY29yYXRlQ2hpbGRyZW4oZSk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgY3VycmVudCBtb2RhbCBlZGl0b3IgZnJvbSB0aGlzIGZvbGRlclxyXG4gICAqICoqYnV0IG5vdCBpZiBpdCB3YXMgYWRkZWQgZHVyaW5nIHRoZSBjdXJyZW50IGNvbnRyb2xsZXIgdXBkYXRlLFxyXG4gICAqIGFzIGluZGljYXRlZCBieSBhIGZsYWcgc2V0IGluIHNldE1vZGFsQ29udHJvbGxlciBhbmQgcmVzZXQgaW4gaW5kZXguanMgdXBkYXRlKipcclxuICAgKi9cclxuICBncm91cC5jbGVhck1vZGFsRWRpdG9yID0gZnVuY3Rpb24oKSB7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoIWZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgIC8vZm9sZGVyLnNldE1vZGFsRWRpdG9yKG51bGwpO1xyXG4gICAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSB7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qIFxyXG4gIFJlbW92ZXMgdGhlIGdpdmVuIGNvbnRyb2xsZXJzIGZyb20gdGhlIEdVSS4gID4+Pk9uY2UgcmVtb3ZlZCwgdGhlIGNvbnRyb2xsZXJzIHdpbGwgZWZmZWN0aXZlbHkgYmUgaW52YWxpZCBmb3IgdXNlPDw8XHJcbiAgPj4+IHNvIGRpc3Bvc2Ugb2YgdGhlbSBhcyB3ZWxsPyBOZWVkIHRvIGJlIGNhcmVmdWwgYWJvdXQgdGV4dHVyZXMgLyBhbnl0aGluZyBzaGFyZWQuLi4gPDw8XHJcbiAgYXMgdGhleSB3aWxsIGFsc28gYmUgcmVtb3ZlZCBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzLiAgVXNlICdkZXRhY2gnIGluc3RlYWQgaWYgaXQgaXNcclxuICBkZXNpcmVkIHRvIHJldXNlIEdVSSBlbGVtZW50cyBlbHNld2hlcmUuXHJcblxyXG4gIElmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQsIGl0IHdpbGwgYXR0ZW1wdCB0byBkZXRlY3QgdGhpcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLCBcclxuICBhYm9ydGluZyB0aGUgcHJvY2VzcyBhbmQgcmV0dXJuaW5nIGZhbHNlIGZyb20gdGhpcyBtZXRob2QuXHJcblxyXG4gIE5vdGU6IGFzIHdpdGggYWRkLCB0aGlzIG92ZXJ3cml0ZXMgYW4gZXhpc3RpbmcgcHJvcGVydHkgb2YgVEhSRUUuR3JvdXAuXHJcbiAgQXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyBmb2xkZXJzIHRvIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgVEhSRUUuR3JvdXBzLCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIuXHJcbiAgKi9cclxuICBncm91cC5yZW1vdmUgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgLy9ndWlSZW1vdmUgaXMgcGFzc2VkIGluIGZyb20gaW5kZXguanMgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBzYW5pdHkgY2hlY2tpbmcgJiByZW1vdmluZyBmcm9tIGdsb2JhbCBjb250cm9sbGVycyBsaXN0XHJcbiAgICBjb25zdCBvayA9IGd1aVJlbW92ZSggLi4uYXJncyApOyAvLyBhbnkgaW52YWxpZCBhcmd1bWVudHMgc2hvdWxkIGNhdXNlIHRoaXMgdG8gcmV0dXJuIGZhbHNlIHdpdGggbm8gc2lkZS1lZmZlY3RzXHJcbiAgICBpZiAoIW9rKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgY29uc29sZS5hc3NlcnQoZ3JvdXAuaGFzQ2hpbGQob2JqKSwgXCJpbnRlcm5hbCBwcm9ibGVtIHdpdGggaG91c2VrZWVwaW5nIGxvZ2ljIG9mIGRhdC5HVUlWUiBmb2xkZXIgbm90IGNhdWdodCBieSBzYW5pdHkgY2hlY2tcIik7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBvYmoucmVtb3ZlKCAuLi5vYmouZ3VpQ2hpbGRyZW4gKTtcclxuICAgICAgfVxyXG4gICAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShvYmopO1xyXG4gICAgfSk7XHJcbiAgICAvL1RPRE86IGRlZmVyIGFjdHVhbCBsYXlvdXQgcGVyZm9ybWFuY2U7IHNldCBhIGZsYWcgYW5kIG1ha2Ugc3VyZSBpdCBnZXRzIGRvbmUgYmVmb3JlIGFueSByZW5kZXJpbmcgb3IgaGl0LXRlc3RpbmcgaGFwcGVucy5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vcmF0aGVyIHRoYW4gbWV0aG9kLCBkZXRhY2hlZFBhcmVudCBiZSBhIHByb3BlcnR5IHRoYXQgZG9lcyB0aGlzIHN0dWZmIGluIHNldHRlci4uLlxyXG4gIC8vYW55d2F5LCBib3RoIGFyZSByZWFsbHkgbWVhbnQgZm9yIGludGVybmFsIHVzZSwgYXMgaGludGVkIGJ5IF8gaW4gbmFtZS5cclxuICBncm91cC5fc2V0RGV0YWNoZWRGcm9tID0gKHBhcmVudCkgPT4ge1xyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICBpZiAocGFyZW50ID09PSBudWxsKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbi5tYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gZG9ja1RleHR1cmU7XHJcbiAgICAgIGdyb3VwLnNob3dIZWFkZXIoKTtcclxuICAgICAgZ3JvdXAuc2hvd0dyYWJiZXIoKTtcclxuICAgICAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIERldGFjaCBhIGNoaWxkIGZvbGRlciBmcm9tIHRoaXMgZm9sZGVyIGhpZXJhcmNoeSwgc3VjaCB0aGF0IGl0IGNhbiBiZSB1c2VkIGVsc2V3aGVyZSBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICogXHJcbiAgICogKHdpbGwgbm90IGJlIHZpc2libGUgdW50aWwgZXhwbGljaXRseSBhZGRlZCBlbHNld2hlcmU7IFxyXG4gICAqIGNhbGxpbmcgZGV0YWNoKCkgaW5zdGVhZCB3aWxsIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYW5kIGlzIG1vcmUgaW50ZW5kZWQgZm9yIHVzZSBpbiBhcHBsaWNhdGlvbiBjb2RlXHJcbiAgICogd2hpbGUgdGhpcyBtZXRob2QgaXMgbW9yZSBvZiBhbiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuKVxyXG4gICAqL1xyXG4gIGdyb3VwLmRldGFjaENoaWxkID0gKGNoaWxkKSA9PiB7XHJcbiAgICBpZiAoIWNoaWxkLmlzRm9sZGVyIHx8IGNoaWxkLmZvbGRlciAhPT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIGNoaWxkLl9zZXREZXRhY2hlZEZyb20oZ3JvdXApO1xyXG4gICAgY29sbGFwc2VHcm91cC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgLy9USFJFRS5PYmplY3QzRC5wcm90b3R5cGUucmVtb3ZlLmNhbGwoZ3JvdXAsIGNoaWxkKTtcclxuICAgIHJlbW92ZUltcGwoY2hpbGQpO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwOyAvL29yIGNoaWxkP1xyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBEZXRhY2ggdGhpcyBvYmplY3QgZnJvbSBpdHMgcGFyZW50LCBhbmQgcmVhdHRhY2ggdG8gc2NlbmVncmFwaCBhcyBhIHNpYmxpbmcgb2YgdGhlICd0b3AgbGV2ZWwnIGZvbGRlciBpblxyXG4gICAgdGhlIGhpZXJhcmNoeSB0aGlzIHByZXZpb3VzbHkgd2FzIGEgbWVtYmVyIG9mLlxyXG4gICovXHJcbiAgZ3JvdXAuZGV0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciA9PT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIC8vYXV0b21hdGljYWxseSBhZGQgdG8gVEhSRUUgcGFyZW50IG9mIHRvcCBsZXZlbCBmb2xkZXIgYW5kIHRyeSB0byBzZXQgYXBwcm9wcmlhdGUgc2NhbGUgLyB0cmFuc2Zvcm0uLi5cclxuICAgIC8vaWYgdGhhdCBmb2xkZXIgYmVpbmdNb3ZlZCBhdCB0aGUgcHJlc2VudCB0aW1lLCB0aGVuIGl0IHdpbGwgaGF2ZSBhbiBvbGRQYXJlbnQgdG8gd2hpY2ggd2Ugc2hvdWxkIGF0dGFjaCBpbnN0ZWFkLlxyXG4gICAgLy8uLi5hbHRob3VnaCBpdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRoZSBkZXRhY2hlZCBmb2xkZXIgdG8gbW92ZSB3aXRoIHRoZSBjb250cm9sbGVyIHVudGlsIGJ1dHRvbiBpcyByZWxlYXNlZC4uLlxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgZ3JvdXAuZm9sZGVyLmRldGFjaENoaWxkKGdyb3VwKTtcclxuICAgIFxyXG4gICAgLy9hZGRpbmcgdG8gdG9wRm9sZGVyLnBhcmVudCBJRiBBVkFJTEFCTEUsIG5vdCBvbGRQYXJlbnQsIHBlbmRpbmcgd29ya2luZyBvdXQgdHJhbnNmb3JtIGxhdGVyIGlmIGJlaW5nTW92ZWQuLi5cclxuICAgIGNvbnN0IHBhciA9IHRvcEZvbGRlci5wYXJlbnQgfHwgZ3JvdXAucGFyZW50OyBcclxuICAgIGlmICghcGFyKSByZXR1cm47IC8vU0pQVCBjaGFuZ2UgZnJvbSBDU3ludGgsIG5vdCBjYXJlZnVsbHkgcmV2aWV3ZWQgYnV0IHByb2JhYmx5IHJpZ2h0LlxyXG4gICAgcGFyLmFkZChncm91cCk7XHJcbiAgICBjb25zdCBtID0gdG9wRm9sZGVyLm1hdHJpeC5jbG9uZSgpO1xyXG5cclxuICAgIGdyb3VwLmFwcGx5TWF0cml4NChtKTtcclxuICAgIG0uc2V0UG9zaXRpb24obmV3IFRIUkVFLlZlY3RvcjMoKSk7XHJcbiAgICBjb25zdCB0ID0gbmV3IFRIUkVFLlZlY3RvcjMoTGF5b3V0LkZPTERFUl9XSURUSCwgMCwgMCkuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgZ3JvdXAucG9zaXRpb24uYWRkKHQpO1xyXG4gICAgXHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9kZXRhY2ggdGhpcyBvYmplY3QgZnJvbSB0b3BGb2xkZXIucGFyZW50IHRoZW4gYXR0YWNoIHRvIHRvcEZvbGRlci5vbGRQYXJlbnQgd2hpbGUgbWFpbnRhaW5pbmcgbWF0cml4V29ybGRcclxuICAgICAgLy8uLi5hY3R1YWxseSwgKG1heWJlKSB3ZSB3YW50IHRvIGRvIHRoaXMgc2NlbmVTaGlmdCBidXNpbmVzcyB3aGVuIGJlaW5nTW92ZWQgZmluaXNoZXMuLi5cclxuICAgICAgLy8gcHV0IHRoaW5ncyBpbnRvIHNlbWlEZXRhY2hlZCwgc28gdGhhdCB3aGVuIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCB0aGV5IGNhbiBiZSBzaGlmdGVkLlxyXG4gICAgICAvL29yIG1heWJlIHdoYXQgd2UgcmVhbGx5IHdhbnQgaXMgdG8gaGF2ZSBhbiBvcHRpb24gdG8gJ3BpbicgcGFuZWxzIHRvZ2V0aGVyIGFuZCB1bnBpbiB0aGVtLCByYXRoZXIgdGhhbiBhc3N1bWVcclxuICAgICAgLy9hdHRhY2htZW50IGNoYW5nZXMgd2hlbiBidXR0b24gcmVsZWFzZWQuICBGb3Igbm93LCB0aGlzIGlzIG5vdCBxdWl0ZSB3b3JraW5nIHJpZ2h0LCBzby4uLlxyXG4gICAgICBjb25zdCBkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgLy93ZSBjb3VsZCBqdXN0IGRldGFjaCwgbGVhdmluZyB0aGUgb2JqZWN0IGFzIGRpcmVjdCBkZXNjZW5kZW50IG9mIHNjZW5lLCBidXQgdGhlcmUgbWF5IGJlIHJlYWwgcmVhc29ucyB0byBzaXR1YXRlXHJcbiAgICAgIC8vdGhlIEdVSSB3aXRoaW4gaGllcmFyY2h5IHNvbWVob3cgKGxpa2UgYXMgY2hpbGRyZW4gb2YgYSBjb250cm9sbGVyKVxyXG4gICAgICBcclxuICAgICAgaWYgKGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5wdXNoKGdyb3VwKTtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEub2xkUGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsvL1hYWDogaGFjayBiZWNhdXNlIHRvcEZvbGRlci5vbGRQYXJlbnQgd2FzIGJlaW5nIHVuZGVmaW5lZCBiZWZvcmUgYmVpbmdNb3ZlZCA9IGZhbHNlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGQgPSBncm91cDtcclxuICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSB0b3BGb2xkZXIucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICBcclxuICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IFxyXG4gICAgZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSB0b3BGb2xkZXIudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7IC8vVE9ETzogcmV2aXNlIGhvdyB0byBwYXNzIHRoaXMgaW5mb1xyXG4gICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oMC41KTtcclxuICAgIGdyb3VwLm9wZW4oKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICAvL2FsYSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2V4YW1wbGVzL3V0aWxzL1NjZW5lVXRpbHNcclxuICBmdW5jdGlvbiBzY2VuZURldGFjaChjaGlsZCwgcGFyZW50LCBzY2VuZSkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQocGFyZW50Lm1hdHJpeFdvcmxkKTtcclxuICAgIHBhcmVudC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgc2NlbmUuYWRkKGNoaWxkKVxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIHBhcmVudCkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkuZ2V0SW52ZXJzZShwYXJlbnQubWF0cml4V29ybGQpICk7XHJcblx0XHRzY2VuZS5yZW1vdmUoY2hpbGQpO1xyXG5cdFx0cGFyZW50LmFkZChjaGlsZCk7ICAgXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KSB7XHJcbiAgICBsZXQgbm9kZSA9IG9sZFBhcmVudDtcclxuICAgIHdoaWxlIChub2RlLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgY29uc3Qgc2NlbmUgPSBub2RlO1xyXG4gICAgXHJcbiAgICBzY2VuZURldGFjaChjaGlsZCwgb2xkUGFyZW50LCBzY2VuZSk7XHJcbiAgICBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIG5ld1BhcmVudCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5kZXRhY2hGcm9tUGFyZW50ID0gZ3JvdXAuZGV0YWNoO1xyXG4gIFxyXG4gIGdyb3VwLnJlYXR0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKCFncm91cC5kZXRhY2hlZFBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9UT0RPOiBjaGVjayBsYXlvdXQgd2l0aCB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiB3cmFwcGluZyBldGMuXHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudC5hZGRGb2xkZXIoZ3JvdXApOyAvLyB0aGlzIHdpbGwgYWxzbyBkZWFsIHdpdGggY29zbWV0aWNzIChoaWRlR3JhYmJlciBldGMpXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cC5kZXRhY2hlZFBhcmVudCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9tYXliZSB3ZSBjb3VsZCBkbyB0aGlzIGtpbmQgb2Ygc3R1ZmYgaW4gX3NldERldGFjaGVkRnJvbVxyXG4gICAgICAvL2luIGFueSBjYXNlLCBpdCdzIGlycmVsZXZhbnQgaWYgXHJcbiAgICAgIGxldCBzZW1pcyA9IHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQ7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VtaXMuaW5kZXhPZihncm91cCk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICAvL2dyb3VwLmRldGFjaGVkUGFyZW50ID0gbnVsbDtcclxuICAgIGdyb3VwLl9zZXREZXRhY2hlZEZyb20obnVsbCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmFkZENvbnRyb2xsZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBncm91cC5hZGRGb2xkZXIob2JqKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICB9XHJcbiAgICAgIC8vWFhYOiBoYWNraW5nIGluIHNvbWUgdW5pdmVyc2FsIHRvb2x0aXAgc3VwcG9ydFxyXG4gICAgICBpZiAob2JqLnNldFRvb2xUaXApIHJldHVybjsgLy9idXQgbm90IGlmIGEgbW9yZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBhbHJlYWR5IGV4aXN0cyAoc2VlIGRyb3Bkb3duLi4uKVxyXG4gICAgICBvYmouc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgICAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgICAgICBjb25zdCB0aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwT2JqID0gdGlwT2JqO1xyXG4gICAgICAgIC8vYXNzb2NpYXRlIGV2ZW50IHdpdGggaG92ZXIgb24gYXBwcm9wcmlhdGUgaGl0c2Nhbi4uLlxyXG5cclxuICAgICAgICBpZiAob2JqLmludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgICAvL1RPRE86IGV2ZW50cy5vZmYoKSBpZiByZXBsYWNpbmcgb2xkIHRvb2x0aXAgKG9yIG5vdCByZXBlYXRpbmcgb24oKSkuXHJcbiAgICAgICAgICBvYmouaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCd0aWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAvL2Rvbid0IGp1c3Qgc2V0IHZpc2liaWxpdHk7IGFkZC9yZW1vdmUgYXMgdGhlc2UgYXJlIGtpbGxpbmcgZnJhbWVyYXRlIGluIGxhcmdlIFZSIGd1aXMuXHJcbiAgICAgICAgICAgIC8vUkVWSUVXLi4uIGNvbnNpZGVyaW5nIG1ha2luZyB0b29sdGlwcyB3b3JrIHdoZW4gaG92ZXJpbmcgb24gbGFiZWwgYXMgd2VsbCxcclxuICAgICAgICAgICAgLy8gYnV0IG9mIGNvdXJzZSB0aGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgbW9yZSBhYm91dCB0aGUgaW50ZXJhY3Rpb24gc2V0dXAsXHJcbiAgICAgICAgICAgIC8vIGFuZCBoYXZpbmcgbW9yZSBvYmplY3RzIHRvIHRlc3QgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAgICAgICAgICAvLyBMZWF2aW5nIGZvciBub3csIGlmIHdvcmtpbmcgbW9yZSBvbiB0aGUgbGlicmFyeSwgaG9wZWZ1bGx5IGZpeCBob3ZlciBldmVudCBldGMuXHJcbiAgICAgICAgICAgIGlmIChvYmoudmlzaWJsZSkgc2V0VmlzaWJpbGl0eShvYmosIHRpcE9iaiwgb2JqLmludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYGNhbid0IGNyZWF0ZSB0b29sdGlwIGZvciAke29iai5ndWlUeXBlfSBiZWNhdXNlIHRoZXJlJ3Mgbm8gb2JqLmludGVyYWN0aW9uIHByb3BlcnR5Li4uYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBvYmouZ2V0VG9vbFRpcCA9ICgpID0+IG9iai51c2VyRGF0YS50aXA7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuYWRkRm9sZGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24gKG9iaikge1xyXG4gICAgICAvL1RPRE8gaWYgb2JqIGlzIHN0cmluZywgbWFrZSBhIG5ldyBndWkgYW5kIGFkZCAvIHJldHVybiBpdC4uLiBidXQgd2hhdCBhYm91dCB2YXJhcmdzP1xyXG4gICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgb2JqLm1hdHJpeC5pZGVudGl0eSgpO1xyXG4gICAgICBvYmouc2NhbGUuc2V0KDEsMSwxKTtcclxuICAgICAgb2JqLnBvc2l0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIG9iai5yb3RhdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBcclxuICAgICAgb2JqLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAgIG9iai5jbG9zZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnByb21vdGVaT3JkZXIgPSAoKSA9PiB7XHJcbiAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCB8fCAhdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGRuJ3QgYmUgYSAncHVibGljIG1ldGhvZCcgKGJ1dCBtYXliZSB0aGVyZSBzaG91bGQgYmUgYSB3ZWxsLWRlZmluZWQgcHVibGljIGludGVyZmFjZSkuXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IGluY29uc2lzdGVuY3kgaW4gZm9sZGVyIGhvdXNla2VlcGluZ2ApO1xyXG4gICAgfVxyXG4gICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYHByb21vdGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAvL3RoaXMgd2lsbCByZXN1bHQgaW4gdGhlIG9iamVjdCB6IGJlaW5nIGRpZmZlcmVudCBmcm9tIHdoZW4gbW91c2VJbnRlcnNlY3Rpb24gaGl0IGl0IGVhcmxpZXIgaW4gdXBkYXRlLlxyXG4gICAgLy9tb3VzZUludGVyc2VjdGlvbiB3aWxsIHRoZW4gbGF0ZXIgYmUgdXNlZCBpbiBoYW5kbGVUaWNrIG9mIGdyYWIgaW50ZXJhY3Rpb24sIHRvIGZ1cnRoZXIgbXV0YXRlIHBvc2l0aW9uXHJcbiAgICAvL3NlZW1zIG9rIHRob3VnaCAoYXMgb2YgMDQvMTIvMTgpXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIC8vZ3JvdXAudXNlckRhdGEub3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0ID0gIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dDtcclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUxheW91dCgpe1xyXG4gICAgcGVyZm9ybUhlYWRlckxheW91dCgpO1xyXG4gICAgXHJcbiAgICBjb25zdCB3cmFwTmVzdGVkID0gZmFsc2U7XHJcbiAgICBcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIC8vc3RhcnRpbmcgd2hvbGUgbmV3IGxheW91dCBvZiB0b3BGb2xkZXI/XHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBpZiAodG9wRm9sZGVyLm1vZGFsRWRpdG9yICYmIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KSB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICBcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbllPZmYgPSAtdG9wRm9sZGVyLnBvc2l0aW9uLnk7XHJcbiAgICAgIC8vSSBjb3VsZCB1bmRlZmluZSB0aGVzZSBhdCB0aGUgZW5kLCBidXQgdGhlcmUncyBubyBwb2ludC5cclxuXHJcbiAgICAgIGlmICghdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgYWRkaW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8va2VlcCBjb3VudGluZyBjb2x1bW5IZWlnaHQgKGN1cnJlbnQgeSkgJiBpbmRleCBmcm9tIHBhcmVudCBmb2xkZXIuXHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL1RPRE86IG1ha2Ugc3VyZSB0byB0ZXN0IHdpdGggZGVlcCBuZXN0aW5nLlxyXG4gICAgICBcclxuICAgICAgaWYgKHRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgcmVtb3ZpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIGNvbnN0IHNwYWNpbmdQZXJDb250cm9sbGVyID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgY29uc3QgZW1wdHlGb2xkZXJTcGFjZSA9IExheW91dC5GT0xERVJfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICB2YXIgdG90YWxTcGFjaW5nID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjKSA9PiB7IGMudmlzaWJsZSA9ICFzdGF0ZS5jb2xsYXBzZWQgfSApO1xyXG4gICAgLy9jaGlsZHJlbiBzaG91bGQgYmUgb3JkZXJlZCBieSBndWlJbmRleC5cclxuICAgIC8vaWYgdGhleSBkb24ndCBhbHJlYWR5IGhhdmUgb25lLCBpdCBjYW4gYmUgYWRkZWQgaGVyZTpcclxuICAgIC8vdGhpcyBzaG91bGQgYmUgdGhlIG9ubHkgcGxhY2UgdGhhdCB3ZSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgcHJvcGVydHlcclxuICAgIC8vaXQgYWxsb3dzIGZvciBkZXRhY2hpbmcgZWxlbWVudHMgYW5kIHJlYXR0YWNoaW5nIGluIHNpbWlsYXIgcGxhY2UsIGV2ZW4gaWYgc29tZSBzaWJsaW5ncyBhcmUgYWxzbyBkZXRhY2hlZC5cclxuICAgIGxldCBsYXN0R3VpSW5kZXggPSAwO1xyXG4gICAgLy90cnkgdG8gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGNsaWVudCBwcm9ncmFtIG1heSBhdHRlbXB0IHRvIHJlc3RvcmUgaXRlbXMgXHJcbiAgICAvL3JlbWVtYmVyaW5nIGRldGFjaGVkUGFyZW50IGJ1dCBub3QgZ3VpSW5kZXg/IE5vaXNlLi4uXHJcbiAgICAvL2NvbnN0IGRldGFjaGVkQ2hpbGRyZW4gPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoZiA9PiBmLmRldGFjaGVkUGFyZW50ID09PSB0aGlzKTtcclxuICAgIC8vY29sbGFwc2VHcm91cC5jaGlsZHJlbi5jb25jYXQoZGV0YWNoZWRDaGlsZHJlbikuZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgICAgICBpZiAoYy5ndWlJbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgYy5ndWlJbmRleCA9IGxhc3RHdWlJbmRleCs9MTtcclxuICAgICAgfSBlbHNlIGxhc3RHdWlJbmRleCA9IGMuZ3VpSW5kZXg7XHJcbiAgICB9KTtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4geyByZXR1cm4gYS5ndWlJbmRleCAtIGIuZ3VpSW5kZXggfSk7XHJcblxyXG4gICAgaWYgKCBzdGF0ZS5jb2xsYXBzZWQgKSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gTWF0aC5QSSAqIDAuNTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gMDtcclxuXHJcbiAgICAgIHZhciB5ID0gMCwgbGFzdEhlaWdodCA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIGZ1bmN0aW9uKCBjaGlsZCwgaW5kZXggKXtcclxuICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgIGNoaWxkLnVzZXJEYXRhLmNvbHVtbllPZmYgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmIC0geTsgLy9leGNlcHQgJ3knIHdpbGwgYmUgd3JvbmcuLi5cclxuICAgICAgICAgIGNoaWxkLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCAhd3JhcE5lc3RlZCApIHtcclxuICAgICAgICAgIC8vT3JpZ2luYWwgbGF5b3V0IGFsZ29yaXRobVxyXG4gICAgICAgICAgdmFyIGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgLy8gaG93IGZhciB0byBnZXQgZnJvbSB0aGUgbWlkZGxlIG9mIHByZXZpb3VzIHRvIG1pZGRsZSBvZiB0aGlzIGNoaWxkP1xyXG4gICAgICAgICAgLy8gaGFsZiBvZiB0aGUgaGVpZ2h0IG9mIHByZXZpb3VzIHBsdXMgaGFsZiBoZWlnaHQgb2YgdGhpcy5cclxuICAgICAgICAgIC8vIGlmIHdlJ3ZlIHdyYXBwZWQgdG8gYSBuZXcgY29sdW1uIHJlY2VudGx5LCBob3cgaXMgdGhpcyBhZmZlY3RlZD9cclxuICAgICAgICAgIC8vIHNwYWNpbmcgcHJvcGVydHkgc2hvdWxkIHRoZW4gYmUgc3BhY2luZyAqd2l0aGluIGN1cnJlbnQgY29sdW1uKiwgc28gdGhlIHdheSB3ZSB0cmFjayB0b3RhbFNwYWNpbmcgc2hvdWxkIHJlZmxlY3QgdGhhdC5cclxuICAgICAgICAgIHZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICBpZiAoaW5kZXggPCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTilcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoKGluZGV4KzEpICUgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPT09IDApIHkgPSAwO1xyXG4gIFxyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTik7XHJcblxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy9uZXcgbGF5b3V0IGFsZ29yaXRobSBXSVAsIHNob3VsZCBhbGxvdyBmb3IgbmVzdGVkIGZvbGRlcnMgdG8gd3JhcCB0byB0aGUgdG9wIG9mIGEgbmV3IGNvbHVtbiwgd2l0aCBhbGwgZm9sZGVyc1xyXG4gICAgICAgICAgLy9pbiBoaWVyYXJjaHkgdXNpbmcgc2FtZSBjb2x1bW4gbGF5b3V0XHJcbiAgICAgICAgICBjb25zdCBtYXhDb2xIZWlnaHQgPSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiAqIHNwYWNpbmdQZXJDb250cm9sbGVyOyAvL01BWF9GT0xERVJfSVRFTVMgaXMgc2xpZ2h0IG1pc25vbWVyXHJcbiAgICAgICAgICBjb25zdCBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIGNvbnN0IGNoaWxkRGlkV3JhcCA9IGNoaWxkLmlzRm9sZGVyICYmIGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vbW92ZSB0byBhIG5ldyBjb2x1bW4/XHJcbiAgICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID4gbWF4Q29sSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIC8vVE9ETzogbWF5YmUgYWRkIGFuIGV4dHJhIGhlYWRlciB0aGluZyB0byBhbGxvdyBmb2xkaW5nIG5lc3RlZCBmb2xkZXI/XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4Kys7IFxyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBoO1xyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgPSAwOyAvL2ggd2lsbCBiZSBhZGRlZCBsYXRlclxyXG4gICAgICAgICAgICBsYXN0SGVpZ2h0ID0gMDsgLy8/Pz8/IHdoYXQgc2hvdWxkIHRoaXMgYmU/ICBPcmlnaW5hbCBhbGdvcml0aG0gaXQncyAnZW1wdHlGb2xkZXJTcGFjZSdcclxuICAgICAgICAgICAgLy9jaGVjayBsb2dpYyBvZiB0aGlzIFdSVCBkZWVwZXIgbmVzdGluZyAoc2hvdWxkIGJlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRvcEZvbGRlciByYXRoZXIgdGhhbiBpbW1lZGlhdGUgcGFyZW50KVxyXG4gICAgICAgICAgICAvL3doYXQgSSBzaG91bGQgZG8gaXMgdXNlIGFjY3VtbXVsYXRpb24gb2YgYWxsIGZvbGRlciBsZXZlbHMgKyBvbmUgcGFyZW50IGFib3ZlLlxyXG4gICAgICAgICAgICAvL3kgPSAtZ3JvdXAucG9zaXRpb24ueTtcclxuICAgICAgICAgICAgeSA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmY7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgKz0gaDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvL3ZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICAgICAgICAgIGxldCBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuXHJcblxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLi4uLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICAvL1hYWDogdGhpcyBsb2dpYyBkb2Vzbid0IHdvcmsgZm9yIGNvbHVtbiB3cmFwcGluZywgKGJlY2F1c2Ugb2YgaG93IHNwYWNpbmcgaXMgY29tcHV0ZWQgYWJvdmU/KVxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcblxyXG4gICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vbmIgZm9yIG5lc3RlZCwgY29uc2lkZXIgZGlmZmVyZW5jZSBiZXR3ZWVuIGdyb3VwICYgcGFyZW50XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvL2lmIChjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4KSBsYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjaGlsZC51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSB0b3RhbFNwYWNpbmc7XHJcbiAgICBcclxuICAgIC8vIGlmIHdlJ3JlIGEgc3ViZm9sZGVyLCB1c2UgYSBzbWFsbGVyIHBhbmVsXHJcbiAgICBsZXQgcGFuZWxXaWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCkge1xyXG4gICAgICBwYW5lbFdpZHRoID0gTGF5b3V0LlNVQkZPTERFUl9XSURUSDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgTGF5b3V0LnJlc2l6ZVBhbmVsKHBhbmVsLCBwYW5lbFdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgpO1xyXG5cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1IZWFkZXJMYXlvdXQoKSB7XHJcbiAgICBsZXQgZHggPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgIGxldCB4ID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGhlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgaWYgKCFjLnZpc2libGUpIHJldHVybjtcclxuICAgICAgeCAtPSBkeCAqIDAuODtcclxuICAgICAgYy5wb3NpdGlvbi54ID0geDtcclxuICAgICAgeCAtPSBkeCAqIDAuMzsgLy9UT0RPOiBkZWhhY2tpZnlcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBncmFiSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE86IG1vcmUgY29uc2lzdGVudCBob3ZlciBzdHlsaW5nXHJcbiAgICBpZiAoIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHg4ODg4ODggKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIGdyb3VwLm9wZW4oKTtcclxuICAgIGVsc2UgZ3JvdXAuY2xvc2UoKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuXHJcbiAgZ3JvdXAub3BlbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKCFzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwICYmIGdyb3VwLmZvbGRlci5hY2NvcmRpb24pIHtcclxuICAgICAgZ3JvdXAuZm9sZGVyLmd1aUNoaWxkcmVuLmZpbHRlcihjPT5jLmlzRm9sZGVyICYmIGMgIT09IGdyb3VwKS5mb3JFYWNoKGM9PmMuY2xvc2UoKSk7XHJcbiAgICB9XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSBmYWxzZTtcclxuICAgIGFkZEltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuY2xvc2UgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IHRydWU7XHJcbiAgICByZW1vdmVJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWw6IGdyYWJiZXIgfSApO1xyXG4gIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIC8vbmI6IGlmIHRoZSBjb250cm9sIGlzIG5vdCB2aXNpYmxlIC8gYWN0aXZlLCB0aGVuIGl0IHdvbid0IGludGVyZmVyZS4uLiAgICBcclxuICAgIC8vYnV0IFwiaWYgKCFpc0RldGFjaGFibGUpXCIgaGVyZSBjYXVzZXMgcHJvYmxlbXMuXHJcbiAgICBcclxuICAgIC8vaGVhZGVySXRlbXMgc2hvdWxkIG5vdyBoYXZlIHRoZWlyIG93biB1cGRhdGVDb250cm9sIGFuZCBiZSBpbiBnbG9iYWxDb250cm9sbGVycyBsaXN0XHJcbiAgICAvL2hlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2gobyA9PiBvLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpKTtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICAvLydncmFiUmVsZWFzZWQnIGlzIGVtaXR0ZWQgb24gaW5wdXQuZXZlbnRzLi4uIHVzZWQgZm9yIG9ydGhvIG1vdXNlIGZpeEZvbGRlclBvc2l0aW9uXHJcbiAgXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IF9iZWluZ01vdmVkID0gZmFsc2U7XHJcbiAgLy9ncm91cC5oaXRzY2FuID0gWyBwYW5lbCwgZ3JhYmJlciwgZGV0YWNoQnV0dG9uIF07XHJcbiAgXHJcbiAgLy8vLy9FWFBFUklNRU5UQUwgRkVBVFVSRSwgQ1VSUkVOVExZIEhBUkRDT0RFRCBOT1QgVE8gSEFQUEVOXHJcbiAgLy9zdWItZm9sZGVycyB0aGF0IGFyZSBkZXRhY2hlZCB3aGlsZSBtb3ZpbmcgcmVtYWluIGF0dGFjaGVkIHRvIHBhcmVudCBvYmplY3QgKHRoZSBjb250cm9sbGVyIHRoYXQncyBtb3ZpbmcgdGhlbSlcclxuICAvLyYga2VwdCBpbiBzZW1pRGV0YWNoZWQgdW50aWwgYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIGF0IHdoaWNoIHBvaW50IHRoZXkgc2hpZnQgYXR0YWNobWVudCB0byBvbGRQYXJlbnRcclxuICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZ3JvdXAsIHtcclxuICAgIGhpdHNjYW46IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgLy9kb24ndCBuZWVkIHRvIGZpbHRlciB2aXNpYmxlIGhlcmUsIHRoaXMnbGwgYmUgZG9uZSBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKVxyXG4gICAgICAgIC8vKGltcGxlbWVudGF0aW9uIG5vdGUgMzEvNy8xOTsgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gaGVyZSBiZWluZyByZW1vdmVkIGFzIGVhY2ggaGVhZGVySXRlbVxyXG4gICAgICAgIC8vc2hvdWxkIG5vdyBiZSBjbG9zZXIgdG8gJ2Z1bGx5IGZsZWRnZWQnIGNvbnRyb2xsZXIpXHJcbiAgICAgICAgbGV0IGhpdHMgPSBbIHBhbmVsLCBncmFiYmVyIF07XHJcbiAgICAgICAgaWYgKGdyb3VwLm1vZGFsRWRpdG9yKSBoaXRzID0gaGl0cy5jb25jYXQoLi4uZ3JvdXAubW9kYWxFZGl0b3IuaGl0c2Nhbik7XHJcbiAgICAgICAgcmV0dXJuIGhpdHM7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBiZWluZ01vdmVkOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBfYmVpbmdNb3ZlZDtcclxuICAgICAgfSxcclxuICAgICAgc2V0OiAodmFsdWUpID0+IHtcclxuICAgICAgICBfYmVpbmdNb3ZlZCA9IHZhbHVlO1xyXG4gICAgICAgIGlmICghX2JlaW5nTW92ZWQpIHtcclxuICAgICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IGdyb3VwLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IGdyb3VwLnVzZXJEYXRhLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgLy9hc3NlcnRpb24uLi4gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIChhbmQgZG9lc24ndCBBRkFJQ1QpLlxyXG4gICAgICAgICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJIb3VzZWtlZXBpbmcgcHJvYmxlbSBpbiBkYXQuR1VJVlIuLi5cIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgLy9hcyB3ZWxsIGFzIHRoaXMgY3VycmVudGx5IGVuZGluZyB1cCB3aXRoIHdyb25nIHRyYW5zZm9ybSwgSSBhbHNvIGhhdmUgd3JvbmcgdHJhbnNmb3JtIGlmIEkgZHJhZyBmb2xkZXIgd2hpbGUgc2VtaURlYXRjaGVkLi4uXHJcbiAgICAgICAgICAgIC8vKiphbHRob3VnaCBpbiB0aGF0IGNhc2UsIGl0IHNoaWZ0cyBiYWNrIHRvIHdoZXJlIGl0IHNob3VsZCBiZSB3aGVuIGJ1dHRvbiBpcyByZWxlYXNlZCoqXHJcbiAgICAgICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBmb3IgKGxldCBrIGluIGFkZENvbnRyb2xsZXJGdW5jcykge1xyXG4gICAgZ3JvdXBba10gPSAoLi4uYXJncykgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sbGVyID0gYWRkQ29udHJvbGxlckZ1bmNzW2tdKC4uLmFyZ3MpO1xyXG4gICAgICBpZiAoIGNvbnRyb2xsZXIgKXtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sbGVyKCBjb250cm9sbGVyICk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXI7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbWFnZSgpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBZ0FBQUFFQUNBTUFBQUR5VGo1VkFBQUFqVkJNVkVWSGNFei8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyt1bUFjN0FBQUFMM1JTVGxNQVduSmZibnFEV0dSNGEyWmNZbkJSYWxSTGdINkVUblI4VUdoMlJvWkRYbGFIU1lvOFFIVTJMeVljRkF3Rm1tVVIxT0lBQUpGaFNVUkJWSGhldEwySldtdTdqalVLSVFra1FMcVp2Z01DWk8yelQvMzMvUi92U2tORGtqMlRyT2FyVmQ1VjZ4RFAzcEpsV2RLUTdxYVBiNit2cnc4dmorUFovdnZyeHovLy9QajYzcy9HNy9jUDJuMC9YWjZPcDZYOGZKSGZhRy8zajlxNVgvTEt0L3Qzdi9RZnVmUWsvWG91Ym9sei9EcTVMSDd5MW5MVmw5eGVINGIyOGppZG5jWnkvWk0wUCtXZmYvN3puLy84Kys5Ly9zRzVVenRhdjNIMWluSklYa2xlOFF2bjMrT1JPUDJvajVPUG16N2V2K201UERERnlYYW4vVXdld0JkODEyNFpEbjJvM2VUQkJtQ0tBelpRZmpZNzVXWC8vWSsvS2o2TG43Ny8vdUYzcjI0dkh5ZlA1YWU5Y1JSc2FINUkvNDh2ZVFxUDVLaDlYOXo4Nnd2bit3amhaZm1ZalR6bXlCZmxTT0J6NVYxbFhPOGVINTRtdzhueks4ZFRIc25QZXBidXB3ZnQxVnUrUHNsdmFaUHRzNzNGYVd4WGJwL2lVangvSTlTVWMzSExxWjJEaG50VlAwRVJmTjc5cTkxOCsvVDJ1RmxPOGV3OEJXK3F3NFJ6NVJaYk9UcDVmc0pqK2RUcUZaL2xsVEFxdUxjK0VtOGpBLzRkQS9TODljOTVraEVoOFpUWW04ZTNwKzBRVjl4UDVmNWZRalU4Vkx1ZUozaXRlOUNUOUxlem41SUQrS3A4dEIzRW1PZmRlZnNsNTgwUFkxV01Ea2FCTkZYcUg1VmplU1NHNUhqUmRUenErZUFNalArRUw4dkh5Q1N6RnpXNkxFOTZQcmp2N3VWcE11cDB1bHVNcDdJcHVXWGI3WFE2d3ljWnR0a1ViOTN0b0kyNjlySExLYThjYnAwVW5NMnZUeE05dC92ODhJaHplTjNrNlNWLzR0Ynlac2U5ZmQ0UWZkMkp2TzdtOGVHNVc1N3lEUmJBck1LNXVEdmVHQ1Q5UWI3SVYremFHTTcyeHhQdVBjTHBTczhqNTluenBCdWZNM3gyNG5IYXZ0b0RobklQNlNYVjhONjRhRFFrUFRsUnRuYjJzOTlFMzlSZmRSaWZycndrbmJ3N2JvL0poWGxMd2VsUG1jaVR4N1BUL2x2N1Q3UFo1aEhqbGtQeXRaZlJqNXVEUnJPVG5BOW12WDk0eGtCMGgzeXZ4ODFKQndJdnF2MTRVem4vK0swdmV5ZWpmZTROVnVDQURjWG1PejVyMTl0MTlmS3h2cG44SFBTMDdWWWorOWpITjdsU2ZuZmkwaCtjemNQT2VkQWJkSVNhNzI5UGNnN2F1ZnYwbGovdDFzdjlhYlpVM3B6SXc2U3Q5UHZHTWthZFFad2lBM0hrUFBuZTQ5eVJuanRZa2FSQ052QlF2dUpneHpFOFljQng3NEVOSGNZWnA2NzRPWU56aHh3ZDR1RnB1TktuajdZUGtBekhrNzRSSHJyUzk5cDFKdlpnT1FENnI3UVRCTVc4eFNKNlBQRlY0OU9YeGdDOHUxeWdoSk5SczFWd3RqSDY3M0Q2UktmVWNyYlgvdkYwS2greDdlNktVWk83Nnl5eG0yTWNwbE9jYjh3NnhFQ2NPenQ3V1E2RWRPc25EOERaT0IveTUwNUh1NWx6UEYxc3Zzb2NITXo3SU9JWVhIc2V6SnYrWXRIdk43MGRiaUVUZFR2YU5mMjhWSG5IMkg3WGEvcWc1cnN3eVc2K2tEYVhkMy9MbjQxOXluSThmWC9Yenp2MytvdW1ZQUQ1aVZQd3BpZVRsRElYeC9odU9kaHZRRkliMXBOTmtYTnYzdGRYbEsrUk1RUzlPZUQ5eFp4RFIvb0x6WnErZmM1NmNGYU9CdkgySmg2R3EvV2lQeGh0alM5T1N3d2VicktUSjloYnpuQTJKc3FnV2ZUWHUxR3NXSmpRR0VSOFZ2K1NBZVFDRWc3ZkJyNjdGL3B6R0RBYjc0VUYwQzlOUG5xbGQxcmpLOUNQZ1ZqM0Z4aUhCejFKK3ZmSG1USHJXaitzMTVPWEJRVlBlekpBbzRSUW1mSHk4bWlhR3hpZzF4emtQcmozN09oRUhNemxMZVhtOTNpV3Z2U0hqTmZpOElHUGxYZFhCdEE3TnNJQnloQ25ieFZBZVA2OGYraXZrd0hrc28rQ0FUNE8vYjVSVitmYjJ4dWUxbnpvbU9oOXlRQWZPT1ZOVlU1NVV4V3R5bCtRRHNLRTh5RHB0OHBEOEpDLzRvZU9JYjdtdE1TQXJ3OGZmTjVzekhuV2dQaU44clJ6TkliSmhKMWNJY3pmblVEU2dXZUVBUmFmL1lHODVnRWZSckg2Z0lteWFHU2tNYTd2MUEwd29mMnpkdlVTQURKL2NNQ25tNW56SFE0MGkvbEJCeFNhVlNqTklJY01xYnhvOUd1blRxYTV5aEpwVUtDVjQ4R3NCM0MzUEdVRUNlQ3lxaWZ2bzJPRDg0MWQ3eDR3L1E1enpxZ1RscGVKM3J0djBzNEd2VGtjbEtkazVIRUwrU0x3eFdDOU9BaFBnYzJPOGlVcTVGZjZmWHF0TU0rTC9oUldyQmhnQWNrbG42OUQrL1Q4aktmWlFJbE9XektBTktqcHk3MUpTaDZiNzRRSm5BRk03T0hqRm8zY2VkMHNEZzFGUHNlajZhL3hQQ291T3gyZ2VXOGdUYzkyamw3aVJoQVB3Z0R5aXJaT1kzbFJXc3Bqeit1K3lpblRySEJ6MEwrSDE1Y25ZQnBBTnhCTlRHZEN5Z2Fzcm5nQ1hzQUk5M0N2ZWdEMWFmMEVvVU1ERG9BYUU1cWVUSGFRZWppcyttM2N6dDFRb0lQakcva3c1ZTJ6dlJRVmEyYzlQWjhxMUE5VkFuSDdOV1RTZUFhK2hpeGE3NkR2UUhqZ3dsVkhsczY1VXB3SzNyWnJQSTdSbm1FRmVsQVNINVJIVks1UzU3bGdBQ3BHR0c5cGNvSU9sUHlsc3lnWlFKcnE5RkRvdnIrU0FZVE8vWkFBTHZibWg4TWNyeWl2dEZDQ3YrbU1oMndZREhiR0VQNXRNa0E3MWVsR25iTktPZ29NbjUrTlNKSERvbGxqblo1Q3FLMVdLMkdYaml5dWcvT3FneWY3WURjeXpMdDVJNU50YTJxZGI2TDRXUjBaYTJnVHdxcFVWanNxbzllckxqZGZNeXJIdTBidUlselF6SGRVaUYzNTB6dHBaNmZWcit1MFBEajZaL1pPdmZYNkRCM25QREpOSXhUclhkeElxQTJ1dkZNaUtCa2JJeU1tQ1RxNHVreU5BU0RFaDVNdVNBTUZDVi9aUGE4UEN3aEZiRGJHV0JmNklpekIzbE9WdU52SkpRUFlvSUJ3NTkxdXArTzZXOGtmcTY3Y09CZ0FQYTRVcTQ0SlhWWlhtTDVPUkZ0WnY2a1JVNnhpSWkzOEZYWHBnMFpwUXN2TzVCd2JkWVNxbmE3T0lya1FJdUNka3VUUTE1V2tUekhGSVJXZUdzckY4Z2RJdmVIU3NLUG1PZEFKQkxYdXRERWwra3l0V2I4QU9nWTFrRkJXengyN1pCbktzWTdBZVJjS2NmVHJBQTA2cTh0K1pjdGQ5RSs1eEsxMnZmVjhQb2NRZzdTaVlyM3VzYTE3U20yb3NuY1E1YWtuYmNBc1p4TUpXQU9UQVdUS1RHVFpkMllmbThLOE9EZ0R4QXpsa2p0ZFludCtsUUdFcUdRdGVkUGRTTnBBL29ETzR2Y1k2Q0ZSOTZuUXdmeGhPcTZRZ3dvRFZsQzc3ZUdnUXV4SkNkNC9VSCtkVVh6MTdmR21RNjR4NVhHWHRaQkhENE0vOVBBV041S242bHBuZkVFOThxQy9aS0FnQUpVQnFFNjQ1cmtlZEV5dG8wb2lyR0phODF6WE51Z1lwMXVYdUhMYzB4SHVka1VIdFVsVjlNc0FEVy8wajloUERsY1pOaGYrcFJCVFFUeDJ4VHBiTW9DK3JzOTQxOEZHL0duTHFGMzgyVjhQZEQ3cWpMV1ZoYU9iRExCdk1ZQnEwT3k1WkFCakxUMkdOVVRKUkozRjc5SDBEL29STHArUHRzdWxDSkJlREdxc083NFU2ZDVFS0ZzeGdPdWdKZzhhV2R5NktvVVhoNFZzWWtRRWNGSER1NXI4R2hWcm0vYnlsN0xIWW0yeVIvdWhUaHhNODV4VGp3N2RrRnJ6d2RYQTVjMUxpbkY1ZnRKTnlNSEd0SlNZMisydis2ZGM0aHA1YU5QZ0NUdW9kbU9uWWJSa2dOTTQxbTNjZy9MVXgrUjBzbm1CenhHaG9qelF0VGxaTVFDc2FadHB4UUNRQ2JjWllPWXpUb1VOcDdCZTVpKzcwSS80Q0lWdS81WFMvaFBUOERVWVlLc3NhM3NlRlJFcmFYcW5OZ05BeEtzQTZJeDBBalh6UnYrVysxRmJ6cmVYYVJTanl2SFJSeG9qUUwwZFUzTEtJRVB6MU9NMlpUQUlPbUNoTlpPSGIxNVNqc3ZMMDFWQ1B6Mzh1cC9FVXgwSUt1NWFuclNHdUlvdjYzbVRDVUlHMkZOdmNOMU9CZ2tyUUkvVGVrYTJiVDVVcUtqeWZPYVd0MkNBTHRUM3BWcUIvNEFCc1BaeHhSN2xqQ01EeUVmSVdnbUZqdm8xYUkzMTZlT1Q1OWFLaHkwZ3owTnF1Y21qZkx5UlVuOWd6UnZzZW1RQTQ1MWtnQkVrVXAram1pcUdYTVlWQU5ZUkcydVpFNTJ6YnJENG9rNW1VUTZoTmNkYWN2T1NXd3p3cC8xVERvL3U2VVlqbFRVNXB2eXlEaHVsbFREQWNSWkg4V1VjSkpjUk1MN2hlL3FReWJyVjRxNHBHQURxb2NvQUhmenU3elBBckpDdUhQaVNEUG9SNTE1dVpvL0h1S0JaSkZza0EwQTFVU2JVUnYyNlpnQ3NiaUxEUlFDb1pJSEJweVBYdXNXRHI2T0ttK2xkYnBraWY2cTRvdmFKWVVuTk0xNzBQazgvUTJ2R245QXhibDd5dHhnZ3gxTzA2UzEyUnJZZmVpOWtHeHRjQW52WkJuSUE1VExNb01mOGdWRzNTWWM3eVh3VW1mbUIyN3NPUUZLZFlRMTgxNm15MnExcDkvc2xBOFRxSXlSeHRiT3lBMno1T1RTK2dobUhtSVVZT3V1dEpjQWpuRVg0d1BzTENVQlZDT3ltVDRQQlIyWkt3emZDNjZqTVhnOEdLNTFEWGJuTHVGQ0xPVEQwV1BEVjVTU29GcHcwMUR0TmlYcDlsb2U0Y0wxMXlkOWpBUG5oMjdSWFhSdGlMdWFZSnYwaEFJUUJVb21pRGk2amlmSGQ2Z1FyMlVNTjZMSnkrWlFNN1VCTVJQZ08wN0dWT0pUUHYyQUFyajQ0R2twY1pRbk0wNFBVcHE3by8vTVp5UUI0ZjJ5UjNRdlNZZ0Q5QVhsdmlvRGVTcTBOemdCY1FxbnVETVRwQVI5aXNjMU0zUWdQZFkzZ2haUU5LZ1RSTVVWOE5HOWU4dGNZZ0kvR1RIS05Gbyt1bG9CMEVxa3BXRFFyNDB3eVFLM0dWUXdnRmltc1hHNWhsalVjQXlhNlJqS0FNa2lQUnFYanp4bmdXS3dCenJlUDQ1c01RQnRsaXhLbjFpNEFhckI3UWE0eHdNSkVlWCtnREtCUEdRMkNBZWdFVVVOUU9EMldabjNBQUswWGxPYkwzREhvU3pzVnpPUDFuQnFrWEpucXljMUwvaElEc0o5Y1Zhbkd0UktZVGlKaGdDL3NvMjh4d0I3RGk2ZXRkUU13ekJQSFZNblVydG9rQStqbWQwNGQ4MWNNY0VycEdpdkE4aVlEcUIwMVpERzNyZUNMVXJRK2dLTmNxN3ZOQUI4bSsvV0FFSVdhdld6VG4rRUdsUzI4T1QzQXgycDlzTTE1UG5WY0tVNHYrWlNhbWhCWlRvVmJsL3hsQm1CL0xkZnJiYUJUOFBoTENiQlA4NzVLeGQwcUYrVXhCZ0cvMVFOTFhVWldDU01GUENPL1lJQTA0czNubEl6VE5nT2tQa3FUYjYyTm1VbVdtNG1CU0xhdFd4UitMZ0gwREprZ0trZmtmSkFWMFF1d3JIVE9NQVQ1S3BQS1RzcWQydUxCcDF4K1pFMkYrcEsvendDL2V2VG5ncTNOQU8xVEIyN3UzY0NSaUcxdFg2V2k4TUM2SGwwajdnaGVBMWpBdXVqNXJWMkFxUFdoTXVPTWJXdG9KOE9TMzVhRmpvTmJjb0xHUXFLR2Q3SHdjczkrVFFjQUhXTUpPR01oR1lVaENBSkdiYXZpSkZnTmFKY1FoVDkxandXTkpjdWFBVzVQNTVzTThIOHZBZUN1djdVRURBb0dPRzM4VlBUR2tvOEYrVlM0K0xFeXduKzZxa1lYNHdUTFAzd2d2NzhOUE9iR1hob05iTHlDenFmZFdpYzJYcVhjTTNUSUdDU0czYVFQN1YzbWJqOE90UmtBekMzWHF6eWZpNUVCNmlkWVFvZnYzWll3SFlkSk4xOTZHVnZoejFnQjhKYXAzaFY2MzF0N0lVNzk5Tm9sZjVzQmJxc2ZWQUpYK0svVERTV1FOQXJGditKWmVKZ1JzUWNIUTlPSENXWUhNL3lsSlZDOW9LOS94QUJwMmpQL1VURzBuK0t4TTJNV1hibUZ4cWh0bmFhQWNHQi9MTXdDcXE5STRWQXhBRmZrK1E3bUdGa0t4Unc4bi9lNTJFOExaWEl5TEJqZ0ZPWnkwSXVibzNKOE9mQzNWWEh3OE0xTC9oWUQzTjZBSkYyR2FHNEdrRzBnM2RvaHQ1MkJmWmRsL2hlMHMvSkFMSTJ6dGk5QWxvdHhXNFA0K1RZUUVWcXZXKzFMcFQ3czFvYytEZWFtRzFBWkNVM21FTk54cGlKQWhKUkdBbnhBZjJkMHhtbFRNd0JtQ0hhQTZ2UFY4K0JZWEZQZFQ1dXZPazduUGoyWGNoZnUybkx2bVZzUCtmaUhWNWUyUDkyTTM3Z2tDYW9IWHArNkpPaWY5OTgyUVJSMGVVSmpBSWt3d01sMVhHcHVibXZoOU9JQ2dTQTVjNS83MW1XNXNVKzk3UTBjejRRQ054bmdYUTlyTExjOW5kdXJ3cUUwZDI4TjdvVTVCL29zMkRDU3VDWWlFZGV5bksvWFlheUdiYnBnZ1BSemlCOFYvdGdkL29jaG5VNDY5WG5JUWhMbVpzVFpob2NNKzF2Yk9wMFpEdk84eFlyQm96Zk5jVGN2TWZNN05KY0pydml3QmVSUCs2ZVhSa2lPYXlFQjJMYU00cnBEek1Rb2xlMTBEcHJCbDJhV2hRcXVMWnp0SEUwaEhtaFhNY0JqcmlacWFzTFlYV2NBT01MbFlVL1BwbDl4TmhkTVJIOHRYYVlrVHlveThtRFhHOFVpWVZib0hjSmczQUhQMVNzWWdQNWU1ZlZkSjZKOE95UEdmdEhySWF2T0FRS216MUNuTWVKc2xWNng2TVRhUmJ1eE9BOVQ4elJCNGdiNWN4cmtiMTZTbjNhVzk1SXJQa21NUCsySE1wUnVpTFc3SWE3NUFoamFlamQrdEx1NWY4M2Yzd1FWZm0vSlZTUFJqcytodUdCMHNWb3dHS0YyekNIbXlNYnVDZ04waDBwVklRaUhObGFBa2dIZzFSdHAwSVJKSXM0ZmZnUjFLN0FlMFFoZDRSbmVTcDJUWEwzYzBhVUdmSnI2MUVtdk45OE5OSzZBY2VFZVVhdXF6dWNpVmdZVmRJajdLRmFBTDFvbDVYMWM4OFJZNDJqTEphZnVMQnZhbTVkRVNKTXd0NFJ0NktVd2l2MXh2enk2ZEVUMlBhZ2x2WUZyL2dlYWdRRTBXcEFFaDJCZnBwd2NJVHlaQXk4WER5UVVBTzQ1eGdTcTFBMHhCZ1pZdWxJL3Q0bkxzYnRnQUFrQzBvZjUwSkxkYURtb3hkVWszRHJwbHRmV0RkRXEzQ0VjQU80WGlqWk83Rk9zWG02WW1DN0RWUzhzc0pZMmIvRHloZ3hoVEQyTUFCL3pYQm5zcmVjaVhIempxWmdBTUZOcW5vZEQyRC9IOTllZDhzdWJsMWhRNHdCQnJkUjd3SHQvMnIrOEZZcmdldFVpbWt2dHJ6dWhQd09DUnRTbzdza1IrblpRQ3NEUUloS2IrWndPK2dsZFo3dDBhWTVQaU0vbHlYMExNdVhZelZzTUlEMGgrbFk2NFlSb1pLS0tBUkM5Q3VoWkZmZUZLRmdxVjR4SDNWUDR6QnR3Y3VVa1dCem9uRURJSElOMUZ0QWxZTVBVT3dqOWlhb1JxU1kwUXZ5VE9aVElBT29INVRDZk5ENnhyWG5PWmJoTTgyeUY1ZlE5TEdkMjh4S0xJUkxUZ3hMdFlLRkNlUFlmOXMrdUJpTmxSRkRSa2dHTVpRNE5lVXZYMHd5Y2crU3k4Tis1K29MeDJ0Sk5xY0tRZU1yaGI0NEtlTFB5Y2tnckdVQmFVekRBQVVQTHhiV2xTTDY4M0NOMDJzMlZIcW5tRDI5WkZIWU5KSGZ0SnV6M2JhWmxlRFFtdWN4K2pUaVRJNHpaSlp6dlNaL1R6Slg5QUt3akF6VE4yaEFRMEowckRJenc4MW9QTW5oeFprZ2FCdVpKSEJVRDgwNDNMd0d3QVRibzNscWFCd3N1LzdpL0hZNjRBdjFWOG1HMmxxM2pTNENPNUR5QkNzQVdLQkVCRmpDMWtBOVRnZG5NaVNLYTBpd3o3NUcvaWZQRHlTdFJ4NHY5VFNNTkRKQS9Dd2FRd1ZnbnVNUVpJSVRFZUtQZ0NUS0F2em0xSFdscFVXQ1hqQWF4VytRSjZQbmNGakpnZDZqSUlEUnhiM2c0dndNMGJWbUMxSDQwcXJIbkRBeVVRVHFKZ294YmlUSUdZZ2E4UkVaaDFHRlVxOUFmRU0yYmx4QmpLQWRVN2NFVldQZit0UDhZQWNralUvUzZERWplUVBSVURXdVBNMERpR2lURUtrUll3L21GaCtrVzBJYU1PRUlmbDA0WEt5VWo5KzNOOUF2UHFwWDQySEZBaTU4cjVRZUx1UFo3QXNacTRRa3lmYWdtQ0ZjTEtvU0xTNzQ1QTZNanVoa25vTXQxK2oyQlpGM2lHY0dqSHJLdk1mTGRpRG9IOTBxVE5leGtRbFFhZ1R0SG14QjZ1cUlJRFUyQnRnOGNMRzhFbks0TW9FTlYvUUFsaVNBWWJsNWloSHN5d0NxdUFKMy91RCsvVDQ0QXVJc0hFSDlidFdkQ0srOHdqM3VKYklLQ2F6QWxxcGIyc0dMSVFpdmI2bThpcUk0VnNMamJCWGZqbkJIK3c0QzJmaHFrVDFwZ2ZhbGRvUk1iQlFBQ0FoWWFpSWI2MTRtcmo0d0k0TDVHT2V2Q2R6OWJYTGIwQ1dnSDZPQ25aN1FuNGs3MmNteXZEY0JJSElSTVJRL1dCV21CZy83bXVid1Zid1RZUEc4aVpCRHNqaDNSSndqOXIxOEMraE9RcndlMDRaMFVNQ0x0V3YvUHp2ZnZRM3NBbEoraUIzM1pIb2pvdmNPa1hISG5yS1A5SFFncHpNSEhKVjdpTFljTWNCYU9sUDQyU1VsNE1qZ0FlQi9ja0tQSkFhMS9JbjBBQm9NY3JHVDR4aElhSk1EQUhiOUtRRHlvb0ZJMmYrblQ5K3d5aXM0QWx5VlVubjBuYTdPbDVnZDRlWHVRWnNpenBmUXRaL0tQdEJrK1ZnNUI5MFFITElIYTgyS1pFTDZQZnVxU3Q1Sm11Z3I2bC9ydlJnL2d5TDFjaGU2TlB1VFV1bVFEOUt0TzNlWDBYUTVvd3p2Sm1adk5XSTdYL1dPOTRNcjVlRTg1dXBuaENYTGtYdHI3Vkg3TFVBamphVi9aeUVvLzdyQW9rZjZuSTRqSVJXem9jeEJjbFVObWdMWWpSd29vUm1uNldyaVkrUmN3NWt1T3BnOW8rVk1KdCtSZzNJczBzTEVUd0xoMzZoWG9Td0RsaS93SEtoQTJpVi95MmVEeXBYMmpxZzFqZzh0cTJnanRzaEZheXBrOEpQKzhXNXR1OU1CVU85RWw1MjJtUElJZTlMTUJVWXV4eHhIOWQ4cGJRVmZCMEQveTN2NFEvZmZSbjdhY3lkVit3UHFJNnowYVoyckRBTS80WXpyV2ZtdnY2QUJhbHVmN0FYMS9IQVdqQ3l0TWRYd2UzMjBzeHRiSHdaQ1JseGJvWUN4S1hJd3dCYjhpMzBMT1Fkd3loOHlnNnh3cFBjQnZNdzdRY1NoSElLNmIrU1h4NVNjT2hwTEVQMDZlSGtQSEMzWFlnNWlRYWc2Y0xubzRndmo5NkwyZ09xWU4yQ01QWVVadWxtUVNuVWRrT3BIV004eFd1VUI3ck4rNFhESDFrTDdXcC8rcWVEZHhjRHBSVXJ6b1ZORUQyby9GUUg2aTAwUUlNUEh5VU8zQmllOGc2UkhMTjlxOXJidjRHeEp1TnJNYm9VTmYwZFloN1IrSEhIamhQSk9qdUJwTEFPY0UreWcwd1NWNzVnZllUUFU3TUNReGtabHg1WTFpY0VPNWhnYVJSVXBMSHk3bmRNWCtDQytHazBQVVBVNTVIUzdod05vemVTcjY5T05BU25iQ1VVRFJzVTl4YnJ5cXR4cEhEK0Q5dWRJOUlJbU1LZGdpODdtVVlvSElXK3l0Z2RkZjlYd3NhQS8zNWNxdlBWaU80RHF4MllHQlJCOHY0RHAxV21JdThRcHFIWEV5OUFGR1lwb21nTXRUUjdBMTlYa3JEZk5PbEduOE1DUXliNFFPWm4zNWFtc0NPUDhKcXF2Y1NwVWZoZGErTVU5TTVnalpFbEhERENFMlg2Y2J6azBpMWlubTFNVTd6UW04TnhuQmREUnlWaXBJZUduVEJFMUg0bExPb2REMUhWdHQ0T000R2xDLy9WeDBjU0hTVG15WmN0Uk9Cak9VdHJYN0FZSm5LcDdDRUtXSHVxNm5jdGxTOFQ5S3cvNGZsejhqb1FzUGZadSt3M0daUU5FM215YXNncWJMNmdxSlFjT29NOWtLK3Z3QzZFN21OeDlxRjNZUmVBWk90cDhUVTJ2VGNMMTFyZHBJQ2pmb2MzZUVXR1RxeS9yMzFtMGF1SkgweEJPL25iMjRGNWpZVVhtc0dmTjBHNGloTUlOVzVBZ2hwdTZMT1lKTW81bHh1cjNvcStEbTFqMXp3Zk5HQlVpb3o0d3RwaXpFRm9rbUV1a0ZUUzFwQTc1d1FyOFRHR01XbXI5dndPMDcwSmVxaU00bmpxY0JLRE81Q29GMkRzR3pwQzF2OENQNmJuZllqZHdwK2x5bWNyQlVNVHhFcUJFUjRicWRIaWxPdFVPRE5QMElaOTM4WTY5TElLTFpLYmJXSnp2WXM0ZlhCbTVSRHVnbTltelB3TW40aWJ2RGd1YWZadnZxYzRkTVJMUTUwUWdJYzVPL2FkV2tmVVd3Q21GMjRiZzloelZnSkVlSmN2VmJxWWxnMUxFcklrZklxa3R6cHRMLzN6dVFwWmh1NUFDYnhwZzV6NjBaL285eURsUDI4S045MDU2c1krU0J3Y09zdFhzdURjaWNjaVlTR0FLUnRvTXpUaVVIV0lZTmppZGV5bE1OQUphaXdUNjBlMnVQM29uWWVNdUxzaHFnOTlWaCtYYnVEbVlpT1dRUkp0aE9FeEd1YmtjMVNUR1NESEVLQ2pLY2kxMVJVS3NZTk13QUdpU2tiN0E2OStRdy9jTkhqeDF1NW5wRjA0T1hBaWZiei9PNllheXNmUm90YTNONWNPR05YcTM3VldvTjkydHMzQnlydHcvZksrMkJBN2hOQnl1R05nVm9BYkh0OGh5N2dzRUM3dEN3ZEViLy92ZE9SVGt0VkpSb1JtallPdElzNGhsa3NHNlEvcDRIWnk3TjBmcWh3aGxBU283d25XWlVEcEU1eGZyQkdMcG5OdXRoWTRFY1dPSk50SFIwUEFkbVNUVm5lcjlQV01wVUZ3REVLdmJuaERBcy9aVDF1YlFTNjJlUURtb1VIcXdYSHE3Q0xTdlNuNmlEc0dFb2pibXhYd2xjWlZRRlZxSTZFQ0N4SURPVFdIa0ZETmxDMWN4UUF0KzhJempoZEJSWGdUVFkwbUc3bkY0SituRUdvT0c5UDI4OFFHcXZYNVVlQVhFdnlWZlFnYzJ6RVJzamgrMEtEMjVQbCtZUExBRkdTSjl1R093dzYrQnJNWTBwdldRSzRDb2s3UU43QkF6T29FRGZ1WW16dkNZTHVIbGVkUERLaERCTU5PTUljdEQvc0VDMDJaTXVRNURtU0lBQlh4ck14alpxN3JXd3RERDR6WVFONGJYUkJDS2ZDWUNXZC9KNDhqNjhaK1JXTEZNZWppRE91UVh5V2tBRk16dFR4UUEwT1hrUWZac0JvQUhBaFlJcjlCa1R2clg5eEJFTWZmaHM2VjNyMHhOMm13RVlmVmVuUmptRjMrV2piL2tNM0Z1MU1RWll5NzNsR1F2UHBXRjVWQXBRSFVUQUhSUDFjYnBSSENIYjFZOElHRzcwd01SemdURVZJak5TUlhvZmswdXArMDBpcndrVk9XcC9LaktzSDRoUzZIOWRPSi9jQTJtRHdUd2F4Z0h1ZnRaTHdUcUlva0Yyby9Bak1EeGNCTWxLQkVNNHFiL2lNeFp6OWREcEVlSmVxV25CRk40elA1S3BZTFE3RjB2QWlrYm5HMHNBdmNQU3RSYjh4RTRkUGFzMGZ1T25Ic0hKSHJXaGVQdWRSajFTcVAwT0F3eDZ3UUNleVlOUkFYTkVUOXBRNkNQZ0VXb1duekk1cWRtNFF6MUdoZ3h3UExXbUcyR2pLUUdVZWYzZWV6SUFNdllvMkRMUysyQnZrWWJjTGhHNEhWdEFpb1F3Wjh1UVF6VVE1NCtRYVFmL3dMZndHTkpjSmFVbHgvSkZnUXNkbDdtbTV4bnVUSlVjblFkc09xallIam9EYUZhSnlEQUhvcm1tQmJWQlZDaGM2OUhjT0pWS1lPRjJnb2JOdmtFb2dmNklzcDBKU0ZhK2tKL0NSQkQxVlJBNzhoU1FKRDlqQUxqemRIeWFQdkV6aVpSRytMUkd1cHVybklsaXRvamtsc0M1QlVOZVoxVWVBT2pmMkFiNkNnbEM2bURIQ21GQ25zbWxsRElVSEV6Ym1YNDc1a0Z5ckRaMVArZ0dndzUwWFhDNEo0UkIvODdWUUh3R2h0T1NyVkFUWnhLVUhZNkFBWmg0emJIdGo0a0JneCtCTzY2VnpBV045NlNYRW9HUFBqMGxHbHduYzZkYlMzTmt6Um5xSG9vcUdCa0FlZ1MyZ1NwM25BRzREUnlaeTl1M2dTNWtEdGtZaDVweFV4M0xKMG84SktnbDhqQUQzRzh6QU5Ra0tJRk5zL1lQTG1NUGtYbXNiNkU2eGkrbVVCNGFDQmdMWTFpMlVqOUFtb01CeXVuV0p4aUNpVDh4cTVoR3pPRmtzUWN3WGhaeWVwYXRZekFGQmhxcXcxa0czZFEwSm9USjFrc2NRdEh3L1hUdDZZR0JKOGprR0JQWFZQMVFEMmtFU2Vqb1U3ZXkzVHNYNktHRzRTTHl6ZlU1anZJblpIQ2sycWp4SEUrdmJUQ0xCOUY5QXBwaVNyTXpnRHpYVzBaTzVnMllZRE9pbVI0d2lSMkJjcE1CcU82ZkI1QTZaT0NNa0JrQlFMTVFyU0x3TUZpY2V6b05vSzNBcVpjb0hNWlo3NU1CY3JwbFhzc2ZxZ1JFWXIzMU9zRWsvMEFGQ0xCMjZwWGZzU3pJQkVEV0x3dU9XNWRncUdqOVpJQis5akxFRkZxWUhGQ0VDZzAzTllJcGYzQXpRWVhrY05Cb3I2WVBOWk83ZHhqcGlEL0lsMDBHc05pOFl2akxtN2ZSVEFGUU9lU0hsL0NxQVJ1MzhKdFdYaHlleUd0QlJDZmNUUVlnYjh0WHFXempFbGFBQUxBUU53RUNHSHR1MTU2MmlHNmVWZW1mekRZREJwaVYweTB6MjFvT1c0L0ZheXJWUVE0bFdQdHpFVExGRmNOZTMyYVZMMUtRNm1TQUpsb3lnSncrOTJZTW9LNjlTUHRnNmFsL3lnQWUzTHpRREhDck0zVXJHaWNzTmdTU1BKWGdnZ0Urc1gvNlBRYllaNWFLakJJK2x2aTZFWm9iOFpZdE1NU21obXdSdmZGekJnaDFmNkZyT3BYWUFvSFVoUWtnTUNkdTNKZ2pGVlZHUkpiWU9qME50S1FTK0lRRVdHQkxURGZMZTgyOFhIR0lxZ01ZSU1IYS9RVHFhaThKZ1RVREFvRERsQmdOTm9zWmlld08wVXRyU1J4ZzB0NzlUeGtnUDA3SUR0MHFvOFlyb2pIZXZWd0NGbVRYMzJJQUg1RUtLMXd4d0dUTEJ0MjB6UURqcTJpeFpJREY0cElCTWxYbjJrS0E2N3d5dWltUnpod041blk5SURTMDd3SW1NWTRwdVlRQlZKYkQ3S1Z6bWZxQkhlSTBydzhsYXlSWU95S0tUOTl1UTJWT1Vnb0FMRG5KQUJZVFFpTngwcm5MTmlRT0pBNlFpajlsQUJ5TVhIR2llWE9NUWJTQU9CL214ZGNuQXpCQSsvY1lnQ1BDTEJXRXM1UXZsOGdMTlp6OElRUDBwRjB5QUhoYmQ3eXJjd2o2dksrT3NvalRCUFFGd3lBWGxVZGd3aC9FWVVoYTNtRXVPeVRHOUFOM0ZkdzhCQlV3d2RyOXpObkZURzVPZUdxcGVGcUowbUlUV1ZOT2RPK0Z3Rzh6d1BmUEdTQWtLOGhMdlF0RFdhY1dLYjYrb0EzMGxOSHZNTUMra0tPWk1hb1NUMngwSDF4ZEFnWTNBTU0wcTE5bEFOMVlkbXhFV3d6UTZjRSttQXdBVGlLOE5qbEcxc25hRkdEUXNLOENvcXYvbDY2Q0g3Y1BRV3pFcHFKSmJZamVzaUVwYjRLWURvcGtnQ0VhZGxEalNnS2s3K2hQR1lDWUpLNkNMd1RNdVNzbE5XWitmWXMyUGRNWWZvTUJUblhHb0lDbTVNdlZ5SXRMQnZBVDhkdmZLNWVBcHJsY0FxQURybGFtMU5VTW9DKzhtNnU5SmNWS3NjK1lETXN4akpkUGtmMGxPa0JpTGhKMGo3VG5OdzlSQlNTSzlKeEFYUWJuaFlXQ0EvdFVwK3hiV1RQcmNxVURoTy9vanhuZ0VxNmRlS0NTYUdWbWlhUU5sTWRCNTljTVVBRlV5Zy8zbHp1MGtSZHRCdUJheFQwN1lKbDgwZHZid1BjM0F2U1I2NU5Ea3JzQVMzV2FYMTl1WXFzeExHZHQ1QXIyN1J4NncxV0FPT25iaHlEcFhacnd5VzU0eFZNNFJyWUpuZFFKdTlaczlsYnRYUURINlk4WjRIYjZqYVd0VnBHT3p2ZkZCUU53cy9vYkRGQ01DSWJjVmNvTE84Qk5Cb0Q1a1JEUkovalNmSzBpQTF5VkFJWlp4TjA1SkNuVjRBUUsxR2JGQUlScXVoNVZBVUVKRERtV3FVS1RwZUZHdlhVSWd2NHQ5SW55aGhRQjlCR3BVS0k1eGhuZzg4RFdyeGpnZzIzeGY4QUFtWWltU2tpNUxHaGpFTTdmWUlBVWZDcVQ4MTc1Y3Q0NjE1Y0E1SnZ4ZmZJUU96aXFWN2NaSUZETDVSSVFsc0E1Tm9hZHpHTDdub3NNTGd3bDBEZDFwY2krMit2aVREN2h2NXpMWHpjUGNYZmdpZUZkMm5vcEhVK1dhZ1pSb21sQ0F2UzkxUktnWWZ0Zk1VQ2RmaU1NcVpucVVGcCtmVUVieXlzeitDVUQrSWg4TWt0RmZIaStYSVc4dUdRQUtxUTBXTWk2M3VoNy9kd1paRExERW96dXlBQUoydXdyYmxjVHdic3ZJSFFBMGJib3VhYXZGbFNvUFVMSUR4Q3BCRWhSaHVyY1BsU3FWVEttWkE1b3lSUWNtVkpsYUlDVFhBSUdiTHRhQjJDamUrMXZLb0hUbUN0b3dja0ZiYnJZdUs1L3pRQWNFWWRaZnNTOThwSUNlYkU1dFJtQWZrUGJwY21NbnN2L2NwQnU2Z0NaczZQYnpWM0EySEdZQWdXR056QlFtdE93ME82WTFpOUJ6UmNlSWM4UGdOT1VhR2srT2Q0K1ZJQzFyWDNrSG9FaUFJc2I1aG9tUWpBQTVEQWFZcllLT3NNNllPbW1OcWUvdUExMHkwMHNNNS84K3BJMnlESFVYRExBc1BZRmNFUnlxZjl3bGJMVXZOZ1FZTnBtQUlmZUtZVDNzRkNVNkJ3WXdaOUxBRTdEbFNLcEMzdmZGalFnUmpoUW1oeDk3YUhoS0VITkZ4Nmh1Mkl1YXl2NFpYL3pVS3FBMmVJcHJJeVNYNDNJdkpJQnVsdHIrdEVsbmJVOUkwVHlKeExnencxQkVRclRzSVhjTG1oalM5YmNHU0ExZFFGWkZXbGcyMWtxVXFVc2VNYWJBWGJiREtCR1M1cjJ5VUp6WWhkL3BRTXMxTW14V0hDejV3NmZoVWNFQlVyVHpQSGtNTG1xQWpWSEZoR0s3THVZeXh5ZHpNNTl1bjBvV2NOYnZVZTQrR284K1JlR0lLVytSVFlMeTl4a2dEODNCU2Nicy9VOUkxWHhscWExSHVpTGdxWk9WN3N2cjNoTzdpYzdhRGtyTWdHUU4rUDlpNkdJV0Q2cjZxSnBzQnB6ZVA5cUYzRDRBQmlja2cwamgzSW5qaEZXK3JjcVZ2U0pIWStJWFNkcUtGdDNGM001ZGphejI0ZEt0UXF0TWdYOGtnSFlXcVpnYTEwNlVmNlFBYkRWdStvTUNqYm1neU9wNkZ1VnBoMjVZejQveVFCVWxSWUl0c2xVWldXV2lvbTA4T3ZtM21zZERVUzlaSURFVDQ1R3FPS2pkUVB3a2IreUE4d2JqWE5ZdTc4TUE2U0JKbzRSOXZLbHAyVUJFay9zK0RkRFBNTGdDRkxlZVE3ek9WdXhzN2w5aUFNRTVZQlZuMUt2L0NVRG9Mbk5wMUFDZC9LZk5IdkVIekxBYVhQTEhaeEVRM0FhTjZoWXNNcTN0QkJHWjRDc3ZHSExLOFBTTUNKMHA2R2NHejg4MytmajRLMjV3UUJmQWVGVm5NSndKSTloeW9XYlVjRUlocElnZE9qSVovckw4STVLK201Z2hJblNQUWFIc1RTcWw0aWpkNGVSL0taczNYblZqbDdNNVVpSWZmc1FkNU1IcnVmUWl6TFM2QmNNRUEwSHEyMWdaaEw0VXdiWUwyOEZoS1JsZkRUUmlzcEZERTZaRXM5TUY1NXZqUWg1THE5ZWU0ZUNqMUV6ekZKUmhxZzEvV3cxQXhSRldsaFg4QVgxcTFHbWJvQVlqOXU0QU11MUJWakl5R2dIWlorMU1haDBFZ0ZyY0pma01FQ0p2QzYwMmZDSkFMQWF5SGVNYnVrUEx1Ynk5UFlocWxYUWdCOGVVc1JpRGZnRkEzampRUWFFWktzWjRPT0NBUllsQTJUVzIrc2hZYkhYYXhxWDFQeVZtVFhYU0hadjY2dzBNRUNFVk9UeXlyMGVnOUlvSmpKRXpmUE1aclBZdlFnOERBRkovS1JoRlI4MDlZSWx3dm9KTWdnMTBBa1ZDOXB0RkJZRURGeUJLZGEyZHhBOGtkSEFMU1BOQXFLOGlBRWl2OXdWMUpOR3V0S2dkUE1RckM0ZUpHSVJVbEZNckdDQXBybGdnQ3I0S3hoZ1hqWm1aK1FCai9vdmtvU2t5QzJ5M21adUNxd2prYmdpMXp3UXJmNzE0Z1dHdGxsc0NPdEdKdm5nOGdxOEJKTlFlTUVWaUFuK2lrelQyVmhaaWFRa2FvdGVOa1hWTGNjS2lRVWVFRUw2SjloQUJhb1FWeDF3eTVuaU4wbDViVURBYmd3SnUwOE9VNzdBNFNYd1BzUTJvMGtYTW9TTUJwVGZiK21iUUxqbXp3NXRSMUUrREVzRmY0RlVsNXJHa2U1amRHVnpRcTdxWHVnQUd6K3dxbFB6NVlEekJ3K25ib1hSanNRVlJvQ1FtNW51Z3lLZE5kaGZIdk52S3pwYnB1QWdCcFJKS0x6Z2lvaUovS1UvUUxGc1Zpc3VTZmw2ejBBTDRpZFBRTVhjT3g3NE5qb1lVTmtwNGQ4RW8wK3piWURpMDV2WkthQXNPT3lkZ0doSENIOTlFZHRNSUxReUFHTTRMV01sZExzSTRyeDl5Q084d2VRWkNaN0pvbkxVbjBBZTIzODhTZXh0L21jSEFYcUxSdEtvZHlVT2JPMnVtU1NFQXg0L2NOaDFLMHBLRnQrbFNrejhLZ1RDZmY3QzJpb05BSVg0R3dFeFRQSlJwT0RZS0wyWWhFSTZ5Q1FQL2dzLzZ2WVMrWDg4UXdKeEZXQUJURWFkbko0UkFISWJUZWRyNWdjQWthWEhFa0FzMGFiRWhDTVhCcktQSElGenp1Y2U0L1c0RWtTYUlnNEhTNlpMN2VDY1orTnExajNlUGpSOUpDWVlVUzlnL3ZqbEVOcFMwOURtUU9Kc1cwOHhYbmN6YmFNZmdIZ014SFlNZi9WRHg1VzZsYTF2VEZ3aC9VeGs0Y0JYcm9EOHBRTkpLVm9PcWd6enljaVJLVGc0L0NsWGdYVjdqMStRdVhXYmNpYnlBT0xhQ0syemVFdTlIRTJ1UndvaFpCYnhIc3NRa20vRkJkNlIxOEdzS3RtWnR3N01iN0JvQXJkVlBobGlHdkxIZE9WaHpyTWphZ2Y3UEt0bjNmdnRRODVzV0l6QWVtLzhaU3ROanJxdFZtaVhjNFFweGltUzJDaWI5bkZBS09sSkNxWXhZTEtBZW82UXFTSFdNamNGWnhIR0gyeVJ1VGlVYXY0TGRTM3RoME1YcFRudHBBTVRsTXVyejhlbFo1dzRGY3VzWlFmQ0N2enU5SHJIV3F4VFRqNDdTQWdCWUJMQWxxeVNoNW5od0h1UTE4QkpqVmtCZERZQ05ZVTB1VnlwZHVlNWxkekV2aVJ3VzlmSVlSWUpJcVEyVjlyOVhTYmtzWVVuZjQxdkh5SlhrOG5qbDZmektFZGRwbzRuVWJtWUk5Qk1aampPbHRySk53NlFPcG1rZ0FxTmovdzd0UnRFc0RFM1JUbHB3QUZCQTBEY0FWN21vcG01S3BDNUkxbjB4VHBPTXl5dlBFQXBqb3dUSm1JOWJSR1R2U0ZGQ1AwQUwyQk1ScVFIQ1UvMnBrVGtJbU5Ecm1LR2llWjh4UnNVcEhaZjY1Y2oxRU5oUmVJS1Q1VG9UcllOODk0T2tCSTdpZ1FSVXB1Njl2Nk9XRTRtUWFsbVhYRm9WazNJSW1HSTdpNmdjUEJrYmptL2M1ekhkYUtRSFBRcDhoM2xtWFdlRUI2NFRGSWdMWlppTG5lR1dhWnVkVEZwa2dZWVZhUXY0S0taMlMzZzRrcEY3Z2tkMzBjN2VlWUhuZ3c5Znp4K015blZNOU94UGJnU3Azb2p1MEJDWWxKSVFrOTZKamQyZzIzcXNhQS9NeHl3RUhXUzJ2MHo4bXpmVVBtVzFWTFgwSFllYm5abXZvWXRPQ3BqNHBubTkvTE1BM2VSa0lkWmVueldiZXgzSk9rcFo2b21INHA4SVpGV3luT3BqUEdWSE9hVUhFYVBtU2NJOFFraFovcXAwenBQaUIrWVZVa0s1RUFxNDh4MllndXJhZGNYaythWU5OaDZGV3B0ZTh2Y1d1aVp5OWpLNmZqejdVeTU1SUZBejMvaGF1NENtWEJDMVN1NVgrUnVCQW1KU2dNSkxiSEZrZE9EK1ExeUo3dDNUTHoyZEFFNUlxa2RhTWhNTzYxS0hWemFTc3RaK29RWGlnMkFGY3d6Z2NQekRVaWx4UU5rbHA2d0RrU0NIOCtOUmtrNlk5b2U1dml5RlVrSG5RQWlEaVU1UUllWjVwbmNoVEVqUitvZ09oKzA4UjUxbmhCdDVTMFlXNUxiY1RrVmhLSnFyV2t0TGlaTlFRTkdBMy9USUFJRHhqbDNtb1lpTjFBUHA2dXYxVTliSEFqMFBQbHNwSmtvbUhDQ00zclhxN0xjSjJpVWlTMkVWc3loUUpUNFlrNEdpRlRDaHFuRms1elVFTml1eUZRTTRDUnFNd0RMeDRqdm9Ja3FQMHdaT3o4UXpxMWk1MDZrRVZYMFRPaHo0b1JtZGtSU3c2Uld5c3laNVF2SktiSUMzcE15NEllMGJ6ZlFCdDdEZkRibjBFR1ljZWlIMzZQTUV3SkNFYnlPVy9nMVlaRERaeFdiYTZnQXJVbWozMElhWUtDWkFJV3ZKdjFwYTFxNnBaYzRlNllYMmRERTJQUVRQYy9vZDFSU1lzSUp6bWhZajdQT3hUSks2eGtOb1BmWTlHSitBNTRwaWc1WUFsSTdVTnBWeFpOSXJWVXdRSkxvZ2dHZWtQbEVIR05nVVppM0hMbUpQQXlBTFh4cGhwRFNRekF4SEdrbU1ScHVTWTN5TE9KcjZWL3dLZEtiRzI2TmVRVHNDQkpDQk9LTDcrNDZ5TWFTQURvTUZVQms1QW5oMnhXM1NDL0IvaHFoc1A2ZlZPRjhyQ2JORWttcEFOeEZlQUJGT0JlQUxnTm5LQUYwMEpEVmd0UFZrejh4Z1VXQm5qOXQzTWw4Y0t0LzVuMkFrNS9SOE5DNlJwSFl3a1FzMVd2bU4raDBzUi9HQ3RJRkhIN2RaMTZOOTVJQk1yVldNb0NUU0RyYlN3QUUxR3BYZVFRTnVVa3p0VkgxVG1hT3c3d2NyVFZHTW9aUng0QmFrTWhtekF2N25wSTUwa2pJd0pGMndJUHhFS2k2TE9VY2dpUXJsbGFWUTBVaTVtUGtDYUY4aXVnaWpHRGVZdWxCVmRyRnl2eklRQVl0WHBlb0tpSjBpcVdhc0JsYnhKY25wVDl2Y3Vpdm1TYzVTYzNwYW1sNXlSWkNLcURuVFpBNTZQZHcwRUJOeUJvUDBZTUhtUVdqQVE5L2dseEhZZ3ZicE1jR0cza3NWbHdlc1VGWG9MUVdNb01SWFFheUhLNU1yWlVNY0FhSjBObVdBSkNuZzNrVkUyQVN3RmtXYStmZGZ3cVlWOU1RVzBiL3M5cnJlejdHU2d0Q0Y0eVpIeE1pd0hGckdxVlNJQVJPU0pLbEF0QzYyNlU4WVk2eFBSK3pJRm1lRUsrandDektsS0hrTFUvSEFwbzRvYUF5eXF4a1J0dUNBUXpkTFBFQjZxcnZNUVdPcGR2R3dnQ3ZJVmtjVmpMalpOYVJRSUxDU0VXeGMxK3Q1WGx5UXptVndQQTZud0hIWVlnMlpXYkhIQ01Vc1pGRFFlZWl1M2ZCWjJZTDUvOG9BK1Z3RmFtMWdnRjZTZ3p4VldGZ2FnYXdaQW9BbEI0aUtxaU9uVFpzWUFuellrbklhVVNnZkh4Z1BvWTZ6VXdTRUZCY0JHRDM5UUlESURYekNKZ3QwbzlRQnBVTVVCbHNHZVRNUENIdVE2Sm1rTlVMOUprcWNqaFYrNnJkNGhaTTFNaWMxc2tBdGh2cWVZa0cxZ2ZEYlpXQ3VoWjFxTnVmNkhVZDBkOG5pazdFUldtWDdxY1o3VzNwMXhtRTJtSFZ6RVRlVGpwOHRZUjdRYnk2aU9WS2pPaEkvU1BEME14SlBzU0x0UUxjUjd0SXJSVU0wS2h6RmNNbHZGSXhRTlN0VVVBcFZpVFlESzR5QUtkMkZrWGlMN2w0M2hEYldTRGpJVFl4UnpuellxL1NXNVY1QkN6anNFSnVvUnBnbmFzWUFCNnlyV1hNSndOZ21BZVJqNFU3UU54Y0l5ZE5mcnRhUGxvaFFValhVWmpZN1kyZ0xXWnBLeTcwVnFRbDRpTXpLRXZhaXJvOWQyR20ySWNhbjBVZXNKaGFyMm5Ud041N21ycHBnVVlDdzZBNzRWNlErRTNUTGlJTVFyWWprWVdRbHdpSGM4K0RYRUlDOUJlTkJqblRRMWN4UUZhdUVqMGdjamhjWTRBQzVyWGdXUjd2TlIrZ0VMQ2ozRUtuSDdDV1JKVGFRZTlxQnpQVWlsc29idXM0eWp0ZGZoOHFoS0IxbXpaNkltOTFMRXVNWldSU0lGNFYyMFJDWmIyTTlScU1BV0dFdFlJTDE3eFhGUXRGQVNkNVdvNkRsN1VvazhtTWFUdURZdDhQTmQ3M1p1aEZaRWlLVWhTWGd1V2xqdW1WUmNmelYyYnY5ZnJNdjgwQVowV3c4dkdPc1VHYXFaN0h3dGNNNEFzU0NuNUh0TVkxQmtpWUZ6bXBLSTNmWFZWbEFaRk9jaUtkaUtIZzl1REVaZFlETWM1TUdMV2tHcEtqL0ZUdWEzcHpkRE85bUZjYTBYdGs0ZlpXZENOdlVWYk1FWnA0clJOcTRYMlQ5YzRBbVpBSGdhTE1sUkFaRnlSMktOSzBSZFc0QlFzeG9UZVVlL1JTaEpBQkZzQUhYREtBMlozQXJuK05BWlQrdmcxTjYwQ255MWo0TmdQa2dyUU5kTkQyS2dNVU1DOENQOEFBaGlpckdNRFR5V0ZyTVJqNDltREpaZGFHYzRGZFhCUTJPck5iZGUwNlMwQWYzUTIxdUhHUkJDTUt0MDk5eVdFdkNSWDZJc3I3SGJnQ01tRFhGaTdOd2RncTVBdHAyelN0akF2ejlUeWlSeVBqelJxeHVpdytwV01ENVI2OW40VW9IY1FTRUF4Z2haUTF2dERCcjMrTEFRcjZsM2FBTHU1Nmd3RW9CbDhuN0w3QkFBbnpZcnhYTUlBczA1bE9ZbWFZUDZKVXJTSVZqRW1iV0dhYk5TckxzcmIwZTZnaEhPVXlUOGduNnJZMWg4Z2U0V2daNmMzaXo0U1lMWkFhUTNzUnk0dGVWRjFVUUl6SHFJUVdEckhZa0FFd3FvUXVic01BRmV2MVlLY0k5cXBvTHFwS2lyQUk2NXV2am1mRGoyWFFhQ2lCS1phSm9aYlJKUGoxcnpHQURnME5rWlVsOERjWWdOMDNHYUN0QW00S0JxRDBMSE1ob3BEOHdtclNRZllTZXFzcXcvazhFSUl3ZHB3UU9Pa1c5WGZ0NExGWXZub3k5c3dmaytGbjBGbHl4WW9nWEhpMEdNdkx1WVlianJqT09iUlNQaGxpOFJ5V2hoeFZYYnhZcXdibklyeTYwOG54OEZ4WlBaMiswa3NHOE5BejlMbzhuSXB1NmhQTGZPMUYxcmJSU0M3WHFPQy95QUFLcVdQVzVOTWZNb0E4N0djTWtFa2dQT1k3R1lEQnZzU0plT0ZWUmFtdTV3dEt6Z0ttN05DMWxKS1FrZHE5aTFSRjhXWkNDeDltaXpHelM2VU4zSG1ST0RidHpiVXU4Ym1ycUhPZHdoNmplcDBCdEpsNVpRSW5BRlI3SHc5NkdCZ0lHZ3lBMExNVmU1MEIxSXhRNXJCNlgvb29vdWg1cjJGUnk3L0VBSjhmQjVrcUZMbS95UUNPbFozOFFnZUlKQkFCN2tvR3NGc3dNV0ZVR2RmSnV4cEUvam5IdStzSE0rc2RLUDJTRzM1ZElpaFNTOWE4d3BrOXRFeWdRclpBNDJxa0h4b1FqS1JKS2V3TEJuaTd1Z1RFaHNIQy9tbk1EOTFTeXpHNkVoRVp0N1NUeUtFTDJNTFV3Vkk2TEZZVmxIYkx2OFFBaDhZVzBlM3ZMZ0VaME5udHdvN0swYjlrZ0VnQ0VmRE9OZ05FbmJqTWJERHNodXh0b3l0NkYva3VSQ202RHQwdjA2V1J0OWpZNjBLRXJRb2tqendESHhmalZ6QUFWVGhrUzZtVlFHS3RGdEpTQWlEaG9pRS8vUVpRa0FFUlFlOTFCaGpET0pFRk5zTVo5SmNZUUtoZ1NaZk0rZlViREJEeVNOVWNHY1BiZG9BRUROUGdjNnFYZ01XY0hBQVo1NWpiQkZTODFBeVFRMTl1aTY0elFJSHNjTlhRV3psUTJWc3hRRC9henhnZzFxZVY2bkRjQnJvV1lRV0VpL0wreE8yTEVBOGRnT2lZd3h5OU54bkF2UmtxVnc0b0FvQ1lncHNNd0hWTzdDUzlTeEVtZkhneFhOQjZhZEQ5TlFPUW03blJTUXZZRlFZZ3pDdnh3cWRLQ2RScm1ZKzdXaytKdi85Zk1jQTJHY0I3ZTk0RzVVeUozbUFBd0Z1amRXNHVBZTlaWnh2VnRKdGFYOUIwUllOa0FMNlFBa0tUQVp4WTZMM05BTzdQbEVsakNjbUYvZzVNdFh6em81cFU5aVFSR1RtT2hCcnFKdVJpdUxDaG90L3FOeGhnWEpnNjBnWitsUUdZOGlBU1FaWU1NQUowVVQ2K25YcW1oREZDeXByU1kyTEhGUHZTTkRyTUJEYVhPZ0N0NDF4dlZ2d1BUK1FXbHIwc0ZCcWtYbzJrZFhZclFHbEtZVi80QXR5VkJ6c09sOUg4RXFpdHlRQWNRR3dqbkFGaXlFYXdKTjFrQU9JU3RGeTVlSE54RmpOalVRSkJFanVwMHBNNFh4Q1A2TnNZc3VwVlV6RFZnSjh4Z0tmZWNReDZCWlBLc3J6SkFFeDVrTmpPWkFCNG9BQmV4YkViRXFEWUJRd2RTaytBTGJ2Qi9KZTdnQ0Z4bGdsQ3dRY3FUV2dLREppK2JobFErNFRiTlc0Wk8wci9lUThnMDRTSG03QW4vZEpxK0NuYUdTdmt2dk8rY2tQVlpyRzlMUEM5dXpRazVKc2htVG5zN2xlaGk4UWxzSVM5czhscEhLWm9VSlVNNE52Ymd5b1ZvVmZnVkxMcTRsSmdqblpRQTlKSGlMV1B1TU5nQUxjL2JHcDNCMHROMVdWNWpRRTRjSW51cmhoQW9Zc2thYkg5Z3ZTbTFFOC9xQXJVekg3dkNUVmw5YW5jRVdrSGdQakRjOE1PSU9SREZneVlBbzNVV0t1SitKNUhYbjBPcWxES2ZZZEs2UlQyWVFuY3ZOTnZnRHpPVmsxN2JPb3NNMmdzRHBSQ0NLTFNYcGdTb1JxbVYwWDBCZTA5ZUVMdVN3YjQraTVMMklPa2tWWFFUQ2NMbjZ1MG5acDd3UWdaOXVrNU90ZnVzeWVwNWFsVzh5Wk4ranVzZllZN2hJdElydzhMNUxMR1NURVNwbDJXVjNNRjEzNmc1YjVrQUkwcGgzakhFT2N1UUNWbnlEUERTREtKVlpyODFMVkNIY0lja211TXAwdUFoUm9UNEdzTXlGNWl1eEhwNGRZOUczMVFpcXpsRDF6NGhpc1RabkFHeWRSS2tDblMrMVBpSy8wTjNVNEw4MEpPSllQWHpnUU40a3Ayays5aWI4TUpsZ0kzR1lDZEpta3d3dlJRMEpuaDNrRHpudERCR0hoZ0U5bzdkSHJVVHBCYWpiNmRBWHNSWlVBWUtYR0hzRVVXUG9nbEN5STlFNVhHZ3BKMVdWNGtpNmJnaWN5QkpRT29ZMjZWSUY4TUc2YTZDSlo1WnVEd29DY1lDS3RNTldKRHMyNGk3Rk4va2N0bGtoMDgycURVV1JDL2dMTEY2TFhSMTE3VFJRRDREaDkvUnQrRnNPZTBJZ05nSmlTUUdDV3BlRitRWmQ0TERHdnBUb3dZd3JFRm4xaHZTdGhOSVhCWmdNZEQ4K0c0WktrQ21zL3B6c3lRcXlLaW1JU2tqOW9Mdnp1NE5FaTlCYW5acTdHWmhKRTZHT2grQ3JRd285ODNBSlVnekY2YllTUVFNWmxsZVdkV0w4RG1hZVlPTFJsZzNzd2hUdnVEY3FwelBrS2o5a3JlR0RpNkNLUTM0bjlIN0k0RU5vNFJYblAwR1crMHJCeTBhd2IvUktBdEhJM3ErZDFTQWJNSk5KLzdob3Y1TEhJR1pjazkwQ0NCeEZaTlBiM011MVZnV011QWdvd2lObzgwZTBQQ0xtdUJlMkplVFM5aHoxcVdyS3pvcVJveTZGSTV3REFGRXhJU3JPcDQxTW16ZzB0QmF2d0FkSmk5RzYvQmZPKzRRN1VQRVMyTUtDdXJPejBtb2hUMWZrOE9kSXBLdjJDQTlBUFpxbEF3Z0JZZW8zTXU0TkFvM0VXMzM1bmc5VWhnMGV1WnZwRUlnRWszWFB3bW1RSWp6TkZuMmZwVHJiTTRNR0xqb3cvaFI0dlV5ZVA4QUZWY2pXekRkWm9WTTZqSTEzOXNvWXFCa0xRNEU1emJUUXdydmQxb2lTUGdXaHFkakI1cENWekd3TllsN0szbWRhUnFRUE93NjZ6eHJpMndONnlKSHNpNUlQVUxvTVBzMWV2UnBvN0pBanFjRkI0VEpqejFJNGk5aFVDUTluaGY0ZFR1b0dSa3lZZGdnS1pwc0hSeDlzWlV6L2w0dGtpTUNLVXlxTHhucW1HUjJPMFEzYTZHRUNNc2paT0NFZUF0YkRlaFVhM2U0Zk1UQVZPY1FDQ0szQmk5KzNJR1piNytZd3RWSExWSzlRNUtsZ0lxdThreStaU2xEdmp4M3BTd0lYQXpDTHBWd2g2STFXTkI2NlNmOUFhME1lcUZINGxIMVJiSXVaclU3QlZzR292RjR6WUpZTFZ5cjRIeGlETDRlekM5d2RaUWFoZ2xPRXdIWUQxUlZ3RjlKVU1BNGpsbkx6My9pQmJtZlBUUWNuRDVtMG9xaktlVmNqNTZEWElPODdQaGt3czQxb1JuVzdYZ1dtZGhWaFB0ZlEvRTl6UFJWZzdpSStEbzFhdmFYcGxCWTRpME5wQVlPN2FBZHI4RldSaFdqTjh1U3hXWnRybm9WY2hnQ2x5RFFRQTZreVhzdmZZaWtaTVZWUTFOdDNINC9xTmZFSGhVbnErQzJrbTlTZHlwUW1xUlhZRGpRQWc3SUtxQjhjQXc2ajhRcFpDREpySzhlakpMd09rU2tJbE5kWENJa0VMajdPWHBKK0lGWWo0cThhSzIveHZIODU0NEV1a0cxTERzZHRTNnRMSjdoaFk2QzNvM0tKcHVlR24ydmlob0Y1MDZUZzQ1MURzWXVQcDBNWVBRRDdJVVFHTGdrSUlzTE8ydmdoTlY5b25YejlWU0Q0ekxYdnpHSWY3RVBWblFIdzhtV290aW9VUVJnOUE0UFNURDI1dUxERlRYUFdWeUYwTGNsZFFGN2pRNDNwY1hUMkxCdVVURW04cFJ6ekdEdUMwcUxicURBMnFLUllQdWlGQWwwa05iNHYyRmpYejJZcG9TTVJUek1VbXRZR0RuMnJIS3FLT05zblpyUHpsZm1ZV2poRzRRbW9qZlFtZUpZY2VCNkdVZnp3NU00NFpJVXVrSllwcDhQQ245ODlYa2VnRHNqMG91b0xtMThTaVBCNloxNHh5R2Z2WWE4K2tSSExMSnFKK1ZxSVRrMVNVSFlaUHJQYWJwNW1SNEV3SWNuNTRVdzA4a2pGWnhwczZBNnUva2k4U2RnbFNFRGxQQkxMTEU2ZG5NenFJYlJ2MFgyNmx3VnVyV1J2RkMyS1pheFJESHFBT1FqcFo0LzNwUysxUi9xYjhSMk1BbGhwR05wOGVTaGlOZ1ptTUEvaGJTampHY2VaRm13UWdvOTN2a2E1QmVFTFJPMlJBbzc3MnVJSUZtZklCUXNINWZGeDc0R2VPbHlOSVpwaUJtbTRzdU5KZWhpbnJOaGQ4Wm5ZaGllWDFWRkZyTEQraWNpWnh5ZG53N1JTZEt2RndKdndtUzFOQlJyZTlOSkF5ck9HUFhJSjBXTTYya0xuR25Jd1Nzby82SGJURVpIT3V4bUxROU5UM2RRQ01jM0ZQam42c2l0cGF4Nmc1THkvMjlma2prUHVBa2ZlZk1JYWxFZm1PMmNnSlR5akhWQllieDZiV0F5K2VTYkFOY0pDNkprOEJzWExZaFpVb285OHRyWnR6bGdsY25iWUUrY0tSWWdmN21jTVkzUjdSU002UjI4cElLbDY0RG9ieTBpUFB0aWZZTUxPZEwzYmZTR2E5ZndPYUloQVRsWW5uTTliR2dLRmRUNG9zdFpTdUErNkpXT3hKbW4wSG9ETHNFVGRGTDNHbnVleG5Gdkc3VTFFTGpVOWFsVXk5NUdPdWlOb0phTWdmMHE1TUJOcTV4S0dFejM0bTBXTG15bDdQVnAyWTV5QnhHYllUTG94ZWliT3MxbEl6Z1dIUUlBYWFHN21wSkNlWEdhY3k0ZStRTXk3Uk4wQWhEMlVpeWtDNDJBZDFGMThYZ3l6TDNac2hteTV1YjI1ZHlvd0xvYjI3K0lWdUpQeVNFV1F5TFBEUWFZbVBLNHVGUWtGTkRSbkI4VWxSYllCQk9NN3FrWllvQ2RkUXgwM0VHb1V1Yk82WVRXNmNMM0drWnhkeG5MS2JhR01LMkd4Q25US1dMd3NwV3lQNlZETUNjSkRKcDdqUC9FUlZpVHVvSDl1WnNMUk1URWhzNjVEQVNMdStHR1poRnVsRkRpV0FCbklRNUVraHZNeCtWVUc0YVdyQURwU1NkWk9LMklSZEltNVlreXhrV0J0RGxnUUltckVPQ3FsS21Jbk9vZGhBR2pCWnhpSFRvd05KRTRBR2V4RXFxZ0NUUUNFV1lMT2pzVzJTZ3RmQjltMWtKS3lnVE9pK0x3dkw5VHk4d1E4c3gweng3elBRbVRPSUxKcGZPUUZwRU1TTTRsaEdUSEVMVVF3YWVpY0RYZ0drRG9XUXNCQ1ZRQlpTMnA0Y3lBOW9wODE5azl2dllUelAvZ2cweXNhRWRtdUQ4bWY1RUhWbUY4Smhkemt2Ujlod0NISkdZUkdnbWxGc0JWcEZ4RjVLVXhHTHFSa2NFZlNPemhKT2xhWXd1SVdEb1lWR2toMFlMcWxwc0V6cWpuT1ZvRW9mVnBERGpFRElFS21DMFBPampqTGtvaDNCUFNDaWFTSEFGZytOdDhoSk54MmthRnZIbGRRbXdMUHdxNmZ4Z3VXSFVHMWZjS1Ixb0dkV1F3YkZwUGdWYkEzbUR4N2xKbW95TDZXWktvUFliaktYTWdiakVtTHBaamR0RW42MjEycW5Bd2l0dUxES2lEQzdnZnZUTkVVZmVCQVRZR0tCdkVFU2Ftd25sVm05eVpOemxETXZrclppWW1kbkZLMldDbG9GTzhRSVo0Z2syZkhaSG1kOXJQWVpsODVERWdjck1pR2JwYW9pTmUwMXNIQVBFR2tETkRLRCtYcVRvYjliQ2hSRXg2NkdpVnU0bGZXTGpVZ2NZOU9SOW9RT01HUnhydmxKUHYxdVVBRkhjcVlld1pmWGs0YVFzYVVDMkx1dk1JcFVmQkJFWUYvNGFHakR2VkxnWXVHR2JlVStaS3RWZ2NxZ29YSlgwaHQ1SktVZVJ3MWc2K1QrK1hoUnIxYjRGbzc4RFdoWVFZRHAyNUNvTVpSbDFVc2F1ZUlYN1B2QUVJbWQ1ZldSMlFXcG5qTEx3d1FFVGtMbk5MTnBsaDZCSFdUTG5sRVg3VTBCSmNOazhFWlN6akdnR05zNkJFVlhKL2dGaWYrbEVRL0prenRHekdLNmpXRllFaXl1aEVkck9JUGJVRFVyVVd4RkVNWXh5WXVXZ0RJc2lVRVg5OUpJQm5LMnRXQUNIbFJIZGZXWHAwQmNRRVhKbklEZmVXL21KZDNuRm1OcDhxakpZTC9yS1I0ZUFBSTNEWTc0dVExbm9VWkJPVUMyV0xVSUw1MWpnRUhObnZrU08vZzBHQUpQaDJRT01jSzhKMFR6emFhbnhBV2c5YUVCRlNRZ2RSL3k3Nm1WNWRFaG5lamVET1BqTUFzQllSb0h0cTVMOW91dWZQZGd5a3lldk5VVnRIUndmRkowTWl3cGhsNUJEZWxzaXJEWS8vd1lEaEVEV3d2ZTVCQlJzTGNnYmhtN2pQYmlJV0FnTW5aaXlCR3c5NlgwVUk4L3FzeWhVZG1nV1ZmU2Z6blBwTlRaeVNBNm1TeG5NNXY3U2dRbVlUa0VQVlVYaGE4RGxYRDNKZW0wR3lJaHRnUGxEK2d6bVhrVFpwK1ZpcnZlRUt6Y1A4cFhCQUJaWk9lZFYzQzlqbGhseE1obDZ3UUJ5QWttR1BFd1piRDE1WmxFY0hQUktZQXJlZWNieXdRTlp5MG9PNE5zekhUbDFBNjQrcnRldEdIY1dwSzR4UytjbzkwTFBFekorQ1BzdldnZ3BWUUtURVNPd1JEQ1NWUnlMdVlQQkVsSEpQdS9DOEpyUGlnRk03U1NzaXpBYkJua05rMlkwUFY2cGViL3pCZ2tBVmJ4cjhTMDNKUUFWWHFVL2RyMk4vdUZCVENSa014ajBMY0pqbmdkREFvenc3eHArN3pMMmxYVUVrUG8vcW0rbkpKYWxsSkFtTVN6TTJHODlXaGRMN3BjUnNBN0VlUzFLQUplem85dk5OTldjcHdsRXhPdFdDTk4yaUc4cWdjUndRaytuQU84ZlhMM01XTXlPY011NlpFVGdzYlhKTFpJQnNweENVVkl2MFZmdHVGWEtPYW9va2RuZVdLZU0vNzlhOHg2ZFhTWUJwNWw2R1prUmJqT0FuVUlyMW55dVNxTE1CR05BVGt2cEdmUVh2WjdKZno5WTZ3RENGNFNkTGs5WmFBNG5NaUxZOVNpR2w4MmROcmJublpibC9yblo2bm1jT2NjQVZ0eHVGQS9POVhFZ2RnT21TNnZuYVZHUzVqb0RVQUQyK2lxUHN4SUdyTlg0QnV3N0NCMlBHZ2hvZ2RKQVlNbEtON2FOdEpJQm92akwyZUhFV0FHeSt1elZBUENKaTR1bnQ3THFRazJ6eTVyM1NDRWNaUUNZZERScGZwc0JTT05WVDJrSllzcTlLK21HMG9ieUVpdjh5NFAzMVM2QUt3UDhsVXpCRjA5NGE5Y1pRenE5eFFJUlRwNlJjRnJXSTRSeGpuU0duZFdHYVRLcUNnZHlMMlF4Y0Qya1NWQjFyeGFiOGVRYkRPREJUb2Evbmp0Q0NDWWNiSllCcUxYUS82cUNhZUpiRXJXaXJWd0NPTm5sUEMrRkd6WFFHR1IvalFFcThBMTdhd2E0V3ZOK285N2QvREw0ZkgvRkFMd1phQ3lNSml3NmtzMlB2bTRWZnk2ZnI2VGZXVnJNM1p3ald0b0JMUEJwaUVUeXBhWUhHSGNaNTh3OXA2REJENDBTemFkejBBY2lXSTNGWkEyT2dWN2VQVmVsUThmM2pENWJ3RzdndGdaeURDS2xJYVA0TGRjWjRKM2hqb3RHU2UzMklVc3JDdy9CZVJmbEFiT0dNVnNOaU84M0ltc3JDVkFJb3hEcVRoT0FoWklCMnFUbTJCRVgwRnRWREhDMTV2MjRYUXRxdHY4dEJ1QWszNWsraDV5TkN0WE45VmVaUVJsQXhCdFNyRWtIYWVsR0ttZ05LRnpOR09tU0FYTGt5VFVPZy83UTNlYk9CZjIwUGlzejBoWU1FSFZqN0NTSXZDNHNNSDJOZ2FTZy9oV2FwbVlBb3BPQXZ4YTJKUDRhcmdCdHdnU2o4MFhKdzJqa0xJSU9MblNBMksrdmZRVmdka09lZG9zQjZxcm5MQ1ZSOUY2dGVULytnMnB3d3dzNDBkd1lnSDd1VG9zQlZpTXFnVXF6WUlEMEJleWdKL2JXYmdlckdhQ1NBQm1NakIzZndGVTlwdy9rWkptUmxoT2FEQUM4WWR3S0hncFk1dGFScGVpUEdJRFN0TVpmRXlGRkUwNkJ5WFNqVVphdmc0bVZFZ2RnbXBvQnNySXlORWI2RTVJbXYxNEM3Z3Q0K0Nwb1Z0VzgvMk1HQUVEcS9BY1NRQWZXbGNCbW9PVGo3cDJPcWk1TUFCcEp2R0Nta1NzNndNRXVpclFFUFZoMEVpZFk2UUJWUmxvU1RsOE9YeHhEeHR4dnFHVllvRFJMeGFrc2RWK2tHUUhORTlUTmwrQmxpWkZjcUppZVlCVWg3akdEOTVId2JHVktDaTdrc0dMNEp5d2ZuN1hWNTBid1ZNeHRoM1NWQWJiRWdIRjVJWXBVRVRVSDE5dnFtdmQveUFBeStOangvRVFIMk0yNWJyb1NPRElsMEhRQTF4Qm5jRlVEQmlDa2JFUWx3UzRoQ2g4eEZVRUFYeE5tQ0NaRTBwSmVHakxCK0VhV2x6SWo3WXNmR0VFcWM4aXEzRy9iQ2RNa1VOdkxzbXZkR2pkRlVzY2ZKYXEvdFBuNXVFRkxBVnRVSlE5aGs0VDdyOEtkaVF4c0hLRUVCZ2p6MWdLUEExV1dSRjh4QzlFRkE0Z25wbE5acWpGaGtMUHM0QXhRMTd6L1l3YjQ2Qk1nNWZramJ1d0NLTEJ4RUF6UTZlbS9zVWVjN1NORmVyK252SEdXb1dxQnZuUkZ3S2hkTEVNd2hpMGlUVTZZaUxHWE1LbGY2RmlZM3FqaVJ3WklYb0xsU04rQy9UL0xxb0hSd2JpVDhmTHVxMkwvemEzSElyMkJnOG9TYUJxakU0bEtvQTFyUEc0bURCQVpZajdWcW1XUXNUSVhoQTczUjhVQW1KMzVSQXhMNUpWc25HWlZ6ZnMvMXdFYXhaak0zYk5FSHIxdUJ3Z2pRVElBZm1aaUUvTlZySGU5aFV4M0lVN2NsQzRXTmV0bFBjblM4Z3JYbkp1OHZKSWlQRHBEcXluTWFSZHdUNWlDcTUxejRoaEhuVFFkT21vWnRkU1piSVBmWXQwWTl5cHZINU9QdUo4aGtoTkhQTUQ1TW5qLzBLZkIzbmREV0FMbmtmRjBMd3d3OCtMS3JLaExtNmQ4YWVEa2FnWlFaMXlUVDl3VW1XWG42MWhVcTVyM2Y4NEE4UHJDdC94TFM2QWRiTVRVMGpRd1p3bnI5K3M2MTFaalY0UjBzMHNHQ0M1WGlRWnJPbmZCU1UzVEhUL2xERmd5TndsV3RFTmh3TW42emdNRVU3dnRyTUF4RG16V3VQTUFkMElLTFdUalpBMXkzZ2Zkb1RHTzBjdjVLNS9Qa3gzZlJQK29ZMnpDeVUxY3NBVW1NQzdDUW9vaURId0dIZUE5NjRBU0hNQVUrNEdUYXkwQnVxRkJhVTVIOVdqRk5lYVdEZ2FvYTk3L09RT3NwRVYweVU5OUFXTVg4V3Rrbmp6dmtOTjNaM0hPSnMwTSs2UUxpT3FIWklCdzRkSzFCL2Q3Umxxa2wxQmtIcjJxa0tUdStLcEs5dU1GalhMMEIxTTA2THVGLzFndk5QZGhKdEdUbGlBYjNnZmRoNzdYL1haREVFak5RS0hFVFJVeGdSZkIreDRaRWFnWkJCV09pakR3TzFRdWdqOWdRUk16QVUySms3dlFBWHJyTXFvZ29zV2xwVnA5dGViOUgyMERoOE9JTDB0djRQelNHN2lNUFBzeXpURFBsUDZzVzM4a0F6VHc3UFVWcHQzblJNOHE2eUFPOGlDUW1xNi9tTk5MaEM1aDJWeE9LSFlQV2JJZjVTTmt2QWh1VEY4cHdHSUlWY0JjQ3BETnhpb3NEQkRDd3VBR2xDeXc4OUhkMjdIdWQ0YmNZQUxMeVFoYllJbVNPanlqSGJ6UDJDZ0wwR05Zc1VmNExIVWJhSldMWkNaazRBTkNWaUhWZDJoVU1KTUJySUJ4bHhpd1k5YVhxSzBEN1pyM2YxZ1UvT2twZ2tkblA0c0h5UHlGUXBWR3R4M2hYcDFad1Jpcnp6dEVNbjQ5VE5IQnBPTkdISVQzRUdYSXIvY3dybDdqc0d5L0JGNWNBaUVoTkMwa2FIUjIzNGRGU3hqcVZRbk5HRExwdGdzWUd4ZVlRNEpzb2hETkdkMWU5M3RHaUxOUjJtS2FtRW41RWhkQWNyVEtKOHJKRVZMcmtYK0FoOTZwaktxY2pCWkthWHBkYjNmbTVyVk9CK1dWSkJ3RHhKanNNdi9JMVpyM2YxWVYvaVZMc3Ywc0lzamxGVWRmam1VcC9lK012KzV1S2RMV25PZ00vYXdEL0N6ZStqRmlCUUdRemtyQVdaZ2Rod0lJaVhjQTVVenlja0xhK21peVZ4ZklxUEhPNkZoaURqUHkyUEYwN0dabEZnKzdIYUpOUEtwUnVpK1FRZElxaEFLd0pTZ3VPWXRxYWxuNVVPc0ZJTlc3aGc1a2hvQmplTXI2dHBXZ3E3bXdBMVMxWkw0SWlxbXFFVHhlclhtLzlEaVJDd1pnbW92S05UaVdCcFRKOFdjeGdjZFRqSDdVeDVpQUxsYmR5VVo2OHV6UVgxeEswUUVabWloVFlnOXh2d3psVGxoMnBGM284SkFESWZrT2NqUEdoV2ZFSkFPV0NXUjhMaTRBV08vWnNRYzFuZzVOaUJxb3QvY01pYmU0NXFPQmp0NnI0cFlBeENpY0xJUDN2Yndzd0dpRTFXZ2pQQmdNSU90L3hrUEpqYkVMaVBTLzRXb3VMWUZ2VVUzcUIyRnhyWG9rMTJ2ZXoxclY3Y0FBTE5XRXZVMmF6c0FmMGdEanVJd0tua1JVOEZlTy9vZ1Y4ekhNamxyQlNLdk0wK3VsNmVHY1dBRGN0SVA4Z1NaOGRyeEF3cktKR0tIWVZhZ0J5UmtFOVpPZHBBYUVTU1JKb0V6MGdFL1VETEVuOHVUbGpkMUtPSlo4RGxBTWtRMWFmZXg0cmJnbFNtTE9yTkpzQUJnSktRNnNEV0F6UUFjelZJVHVaTmI1WFRLRlJaVmlhRnlWQkhmNG05eUU1YnFnT0RDendhMmE5NmVxdmlVVlR1L1I1NGZ4SElkUm9RK0lqTnU0QURuTTBTZWlxa0t0ZlJHZHFUS1AwTjhFbVFvNUFibXJZRDdhQ0VLeDlrWmhTckhyU0svRVRMRXRDVzVNa3Fic2ZTU1dMQkZOSjNsS1lBNkJHR1RaU3dXNEVlTm0zVVFZZ3RUdkRocVdHK3NodlliRkxiTkdNWGdTNE5HRU1BdjM2dXFTV0J1aHM5SmZHTUNpUWdjUkV5MnpodGorVmtXRmRrbncwK21vTC9lUE5KVUN0Z3ptWkxsYTgzN2ZxbkI3L001eWpWRTZLWW9qelRBbnRBbkc2aW95NkNpSHk5RTNaREFuRkZDZ09rQUUyR0xDT2NpVXVETEkwRVNac2tUdGlZQk9ZS2JLU3NDQjlaUWpMNFMzVGNlR25ESjBZcFIvRHRuTE9RcUtCcDRmTDIvM2NxSWVJYVB4TnNwc2ltSkRYVTZ0Tis4WVk2K3JPZFlwRDFUaXQ1VjlPMmFWY2h0b09VRE55Y3VqQndhSFdCdlEvOTg3cXcvVkFkS0N0VTBOdXBvckdpRXpyWkxnK25SdHhnRVV4Rzg1V2E3VnZEL1ZOYTR4UWRoRDFoV0NFSk5KdUN3cHBjSzBYYzc1aENFa1VINVdvTEFwbkRodnhzVHc2dlZURy94RWx1STYvOXNoY1RpYlFGVFhtRFlPaEFPeTI1OVY0eUZMSWN1L2dMZ0tLUXpVWlJaZVBGV0RnYXVCZXNka2NiN0lMQVBLL1RhOThGWXMxSXpHNG1ZZ1Z3cnlTR01DS3dic0hxdkUyaWdEL1B1dnhnTUFFSUlTK2FCcXBqV0lyUVFPdFV1Q28rRjhvYi9EYzNPeUhFK3RtdmZzalNyM25DQ2NiZXpKeVlLemVRd1pUVndNSnNBUGgvT1JMT3lzT0crODE3RUVyUkpyajFiUCtobDVyRjBzRTZXYnN6NDhkQ2FSZFZIanVXNXZWUG05cWpmL2t2NmlSSDNncnFIZVUzWHhFYVhJbkF5eFhJSXpvdnl4VFVoZEhMSEE0cTI4SEwwMkZEZGp4ckJVNVNLUlVVVDFyMkJnWlpKQVpZRC8zc20zUkZLTERWY1c1QzlvcHhnNjFTWEJUekUxQWJVbFFEd3lKc1RtTUp0dlNLbVk0RmpXM1piSEplWVFOelp0ekFhQ2lIaGNISGt2S2lFREpkaEVzWkhmSWFOR0tWd0I3UXR3N2N0MW56cEdGc3NrNXVtNXRKcW9zR1BOU2ZSbnc0cFdBaDNqcjVlVXdqRGZSdzFVV20xRHBrSnBVcnNPRkdhbE56ZmFXQ2FwQWU5VXhRWm1DMklaRWh0TEJQMFVmWWEyY3dmc2VXNUJjLzlSTThBcGsxcU1JU294czdoamlMbUtBMlZKY0lMeE1haEZpb2dzMGZ4dE9nRWJwNFh2dlRKVkNiYS9KR3dMYy9qOW5WUEU4ckJnb1RNeGlBNHE2OXFnOThtSFVHcFMvVS9RS3E1d3VPNkY1cTlmVEhRdnU0bDVxdE5ubU1Mcm1MSnNickVPSVN1VGtIL0psUTUyWk1BZWJEeVo3b3dsNHVDemY0SUZ0NGN0czlBN2NrMFJTM3dHOWszSWg2ZVB1SlNEQWRLbGwrWWNsd285dXUwWXVoN2IvUzlqQUptNzR4ckd6K1ViVGJpQ2Y5YWwxOHNhNEtkajRxeXpSTFBocU5EQkJzdVlJUW1oeDArOGIwYXVvSUlmZTdpOUllQ1oxOUNMMW13ejcwVnVORlNEZ1dDTTdEeUVEQkswU3F3OUVNNzMxZDdmQ2xManpxMWltVk56aXBhZUV5eDJYZzZ6RjYzMFdVSElpazNkL3RJckRleFlwRG1XTmhpbDUxWisrc0V1RENjd3ZNdmZhcytDZDlZZEdnMVQyK1BwdTF6S3Y3TG93NmU3OU9TQU9jTEMyV3dlSDBkK3pJNWtBTnZaWWhWekdQK3NUS3JqaUdEYXBORGFOY0FMbkhXVWFDWlBycklGN0dwclNVcEc2SU53cGF2Q2pkcTA0aEdrU1RDclpXWWloZ0FkTmhGaGFrQTVOeFhMejJXaFcwSkd0UVZLRWp4VldQL0FTblhOc1RXaGhZd0NUdCtwTXNBM2hoVXU5NklwV2RxbDR4am13YkJrMkZLWmY0MXUzbmVHNGxScDhBOEw1aFlYZWx2bHVjM0pTM1k2OEE2K3I1VGtFRW9lMWhOaFhWdzVua1BzdjlLVkRWNUZlcGovS0FPWWJRdXJtTVA0TjJWYUxmN0pIRExmYU8wYTRJbXp6cnFCTlBDc28zRVUzNW1xWktkRUlGSnlPUzNyd0owZHVzbzF6T0hzU0NhSGNrRjlkR0M4NVNMTFdTWVhDUVZaeVVyRnh6SktQUURmeHZLYXRQT3Z3LzV2MWcvalZnWTFoQ2VuRGdKbExqaDhQSHk4bjVuSW5nd1EwWEdDdE5RekdOb1RjVWUwZzd1Y3B0VCtMQmhBMkE4U0FFVytXZFU2R0dEZGE3eklnRHZEbGRlTHlvK0hlWVQyejQ3c0Rpakw4TW9LOEYveEJsN0MrTXZFZWc1QVl5SlJHNE5XRGZERVdTUFRQeG1BUUY4Mkg4V0lRZFc2T2p3NVFOekFITHFiT2ZPV2UwWVRQRGVUMURMMlJWTXV3M011cjZBK0dNQzRLQlJaNmtHeDlnTk11ckY3K3JLU0pONkE5MElBUklBbkx4a0FZMDAzOHFKTVpHOExid1laVFREYWtNZnBhbmNHWU9qRkM2ZG5HZUtsbFFvc3VqeFFUTExmTVV5U2hBU0RBZkIwZXJRMktONmFSUjk2ODlLbUQ4SGd3VnNPaENNbGpRSCs1NDYrWmpnOUhNOVVwdFlrSXBna1lGSHd1Z1k0MTBUaXJNa0FtTDRJUUdWam1IYVp3SVFPb013VVhJYTJiQnk5bFNsdHNzQnNWRXJVSDZ3bU0xRmhZVUhRVUVFQ21ZQ1FKSkNnUmxrTnNneGNrUVlYMk40R2ZISEpBTlFBTFh3STZaU1p5ZDZvRWZtMFFVRXJmREZrajU1QWhtWkZvUWNHZnJJUWh0bElPOFlBSFVjeG1iR1Ird1ZqQUNFSW1BTytBaXBMSkhRejZDMDhHSW9sbVpQdWlOeU1sTEJDZnpBQUl2b0dEWnpwREtVbGtXd3lFNWVZRFBBUEdTRERnaTFjZ3pocjdFT3J1aE5sV1ljcG9md3ExVFVUcmNXcmVPQlU0OEZ0dkFYTDlxNE56K1gxUlNQdlJjUkY3OWJLQUJiNDZ3d3dTK20zWWlCc3A4RHdBQ1c1bXpQRXUwVFVsU0Y2YlFZSURSQjV6dUhUVEEyM3Fxb0RZdlhoWWgxRmRaMWdBSUp3U1J1T3JtVy9OQWJ3T2U2WkZHMDdSQVpRNWdDa2FHS1ZzTTEwejdwTThyQk0rMXF0QWZ4Zkh1TUs4UC91NFBhUlNRWkp5akNXMGllYkRxQzJCTWlpREVVMXFRNHRVWW05UTRsa3o0aU10WU1iSWRPNEswejRxaWdPUmoxeW9xcGhwUVFpNTNJNEhEdGEvdzNnOGhGV3pZNHRBZmJwSkliS1pZcW1LdDQ1UHlIQ3RDa3BvYjFkTWtDaEFYNDBkR3FqVlpXUiswWWwrWFNsMXloVmdKZ1RyR3hpNjBWa1k5ZGRLeG5BUXBqTTRZamRpMXFDeUFCa0RtMDYxSlIyV3hZa3dUckEyRTZvZ1R3aWZlZFlpbklGK0g5MzlPRnFnSk5IekY5bmdOc1NJSmIxWFNjVHVqTExBdWFBdEtGbFJDN1dqaTFLOXhXVkNPWktQVkRIVnhIVEl6M05jeUo2R3gxUFlxTkFJWUJCWXRXa1R6K3BGNGtVWGg4TGQ3UFArV1NBeTRwRE5RTndhOEd5R0Jib2hrYi9GNVZVUUtvMHhHcU5wY2t4R3cvSkFPd2hIb01NZ09BMk1vRE9jYVpwNWEyWHdRQmdqak8rcU5RUnlXZHkxTk80STkxVnh2c1Y0Rit6QWhrRDRIc1N4ai9VcWZhSEVpRFdIMjBlVnBHMXpiaTFCaWVYRnc1WC91bnBBNTVrSVRGWVNuTXRTZ1lndERRa2dDd1JqWEFBVjAwbU9kckFCa0RxRGVIdHdMY1Y3bVlBZ0NuemdnRVM5Wlk0aldDQTFBQjFRSGVzVzVUaElpYWhpcG1JT0R0aUFPVU9HUTFqc0RzVE9zRUFzMkFBb0ppUTVHWE9XTitDQVFhVzZxSmgwV0l1bGF5WE02ckkvRVgxRWM4c1Y0QmpyQUIzOU9Fai9NVURsdjZVQWJnRFdUZGxWaHB1aWhlOUl1cHRlcDBCMGdlcytvM3JBSkI2dzNKTnFDSUtVd2RZbmZVeExoZ3poMXEzWTJnZEVIOHl3WXFaanhMVk4wY2t5MDZpNGxDLy9MSmtnTkFBb1R3V0dGd3Z3clFFcUFpVXNCbWhzekZoNS9uNmM0VDhHOTdyZ2dINmEvdC8xWjhqanpzWm9Ha1FHNnZhYlVSVkZmWWVDekxQdlg3dUR4WTljRWdhQWJnQ01FWE12T2NGdW4raEE4RDlYak1Bc1ZrTG9wY2p0Skx5MDdmVzZMM0JBUFF5SVU0MlRCWE12TFgyaENhWERJQWZHbkd0WTRKVmMrQkpqb3o5ZW9yajRpN3RGUzZ0Y0RjL1U5bkwwSExhVER1cTRWMW5BR3FBcUpPTG1ub2ZCMnRrZ0FSVXpIZVF4SWkwSEFSTDUrc2JtMXZtem9JQkhwbXhTWlVaa1NENllYNE1tUjdWZk5sVFFTZmNudFZLV1BreEt1bFJqYVlwZ0FjVkYvVlJHd0YwRDBBR2tHTGVyQXlBOGZnSkE5QVFlQW1zUk9TUUN1TkRQYWtNV3ZEQjJqQTNHQUErWU9RYWF5SU5ubFZmMkdYUjZQSHlrZ0VzRFZWZnczWWJnRWNqeVJHNTh1TXo3VFFhQ0RQRG8rUlpDTzZWUzdLOENlUDNzUkdwR01DelJKbkxsVW1DT2xDdDFteGtBTk44UVhITTA3Tng1bVdob1FHV0NaQ2tHTjJOK1JpZ3pLaWlvc3Q5TUFDZWpaMUxNemlyaUFBRDBLZUVvWTVXTFBYSEZBK3NiUDFhcVlCa0FDM20zVXV3ejIwR09DM1JLZ1lJU3ZkMnhLbXo3am9NM1FZdUN0REZkUVpRdDIzVUQ2ZWQxOEw5ZTU0UkE0NkptZ0dZelE5THBRdzR4dVZ6VVRJQVFyZERSR3Q4aFhxSWFRMUd0RGV0amtVZEl1eUhEaFVEOENWVEExeXNJV3NKWDBnWGU2RUVJTW9hMWJpNHA2aHF6Wm1xQnBJVW93dUhCRTBBcXFqSXg2VU5CQlpiTXdFZ0l4WVlBQ3QyTFBQa3hsVDJTMU9BSU55aU9Dek53TWtBS09hZHFMUGJET0FKdWRzTTRCbXk5RW1seWVXOEU3c0F5dkJSanQ5Z0FCODVnS2hTaDBDV0RxeExUNGl5cXhtQUdYUlJxQVFtQUJrWHA1YjdjV3dKb0NhMW5Ga01lOUlmZVI1Vng4NDZSQnE4N3lTckdTQTB3TSt5bGkyYTV4aGRSdmxDOEJCS01tT3l0MEtpYmF1QWZXZkpBSGdMbWdCa3RtTTVwK1h1WkVac0NEcnBudytVQWJ4YzFyTmpNTkRLN1g1aER1NWJ2b2ZLQ0pCTHdJNFdxNTh6Z1BpTkdLNzQ2eFFoOFBxcHEyNFNGU0lucnpjWllQeVk4TXF0K25vamI0RytXdFQ3cUlQS0hSalJNY081Z24vN0JQalNrd3ZFTHIyMUZnbTluRksxUUlsQmZSYjhoNHpyTjl3UjdFcXhZSGxOcWJRQkh0aUk3MDhuOW42V05ubmxJVmhuYVptcFVURmdFaENxdFFSNEJTZEFnYkF4aDR6Q0NHMk5PWVRZRkZTNHp0alN6TDNTU0VmT2RUVUg4L2pucFJFZ0dZQUUrUlVEaUJSaUFNdmxFckNnYWFOQTlIb09uU0x1L3lZREpBUWFKWUFNc1VpWmxCVi9hZ2J3d2k5bUF0REJ3Wm9KQ2FLeEhHNlVVVStYeC9YSWZLRnFBV2lKeHluUW53bC9aQmpUb3NBUmZxUUd1R2JENjArc1dTQmtLQUZtbkZiRnNoOHFRTWtBZURObzVUbTZicm1IZ3dJSmxpeUZZVkdERWlhQTFacnlod3hRT255a3FVa3dWM3Q0N3N4VHpGaVJNQUw4T1FORVVPQ2tuZGJDNjhlWHlCRDYwaTNaeGU4eFFOT1FTV3VPeUpwZk5RTXdxSmVycGc2T01vQ2xueU1ETE1BQW1lK1l0Y3hZaHJXSVU0QkhFcVdNVE94a1FmbmR6anpaaFFhNFFrUEdqUTRhK0J4TG1mczZzT1JoVjgvMTVMM1NZUUVOMWpHNVpJQzUxMkE5Tk9sbm9wRkpIRzdJTFN0TnhSUkVlaXlleUYybXhzU3FJZ0RXQUxET3BSSGdUeGtBT3hFcmZuZXRRcmN1STZ2TWFoRGxxQ2JoRVBWZVMvVFNXZ0tLK3Y3VXAzbVpXdE1YMXdva2F6aGhZSC9scTRHL2JESkRTWWVwTXRnOE1wSmxlSGNacHhEaWQ2Y0JPYTF5bHZQR1RLdnZvUUdDYzh6SzFHUHpCTFJMT2hzKzVTeVd4M2FIMDZ4a0FCZ1QxRHhYTWdEREhWUXlJWk40ZXBwaFpBTDhTUlV0NXFEb203cnMrYlh0S2ZHTERNQm9NV0F4YWlQQTcwZ0E1RUhJVjNSYkJPMm96Z0JsenJ0QkpMdEFMd1J0cHhNTW1sV2lMZFZCTUFBOXdnUGlZZDBWM0lCUXUrQ2ZGZ1BRSW1HYU1WS1J5S2dsTnRHeUtucEwvNDUydCtJVVppejdPZ2RLbEFVY3VMaVJvOGxxTG1wQm9yNDMra1ZENVRLcVUvUU9MZzJaSERHb0NhVVNpTENrRVJMek5OYklBREJDQWtxR09qNklOeHFNRk12b0dmYVppckg2aFlqU3dHSjBKMjRHL3AwbEFMa01SSHJTRmxmMmE3SzFicnJTdUlVQ1p0b0hLRklrc25DN3A3Zmt5cTRvWFZHNVAvM1RmYmVLWkhmMCswU2ViYURUOUZHM0dFRG90bVBrajZZSnl0UlZmWGxDMEdoZFpPTDdQRVNyTVd1SUV1bXhJcDZyOUJHK29WeEdmd05tUURabkFJcHh5bHZQejVxK3JDMnpaT3BpUXVlSC9DNjNlaytxVDF3bVZDVTJDb0N4VjBZY2h0RXp3MDVoRkpqRUx4VEdTQ3dHOUJRZ2dzd085UDl1TUFDOW1peWFuNGtzSTk4RmNyK0JnOXQ1Ync5ZURiWk1rV2k0K0ZGWmZkU3NON0VFdUdrcFNNdXBaTWtSby9Mc3RQUUZNRlc4WWVRN3BpaENDVXhQN3FKc0JRUDBpMVl4Z0pVYldORUZGNFdXc00wSHplbFVldUV1TXh2ZDBCQmxJVy9kenM1alhHWkFVNUhtL0YvM2lRSjRaakhhYjZqN3hmOXNWOHh3NWplRkZOeXJ3aHFiejZ5eVkyN0Q4dGMrd1hHQnhUZ3B2b0dMd0EwR2lFUkRUVStUQ3NYOG0wYitpblZwODNPYkxYT0xlNllLZ3EvUkc4Z3pNSXVmS29Tb0dVQ2gyeVlCYUhidlZPaTB4L1FHRWxyS0dGTVpKZ1NrZG5vMm16dzhyMjZac3FOcXRrQ25wOW54MThzb3RaYmFBNTJ3dnNkWjVYK01SS3JsTGJGeXVKd3VhdE9pdDBEZHhQOFM4TzhRUUNFeDdkV0pJZGdibEF5d2xUSHdCMW5ETXFFbmpLLzNYNFlyU3l6R1ZCckJKbHdFYmpBQUJnUFJWR1dkaTZubnJJVjZrc1djcTl6M25ENEp2a1p2QUxiQkxIN3F3REpFVXdta1o0ZUtDcXR6MU9pMG9GSTRPd2ljRmwrek5LanNaMWZaSnpXRnFLZ3JXNDY4Wlp6Q0thc2xFbi9OR3NPUXA5dy9HRUFiVGlYd1hka1lpMWpMMjhES0thR0VnbmhabytsRDliOVdZQWhFUm9XMGQ4SzdIVVcwTE5vTUNDU0hZS0E1REsxQzJHd0FaU0lEOElLeWF1elBHSUFsR0FLTXovbEg4N3owVjlVb3JHSVNwa2RXZzAzd05ab0R0aTErbEtkcU04d280YWhRMWRQMW5tVmpXVzBycVVSMTVqdWdJbUlxeGpIT0pwS3Jha29TWk5YWVZzMEN3N05hSXZIWEpOaERRQjI4M0JrQ3NmVGw2Z2FaSWEyVXQ0bVZBd2xSaHBiQXQwZitMeUZLTEpxSHMzQ1Q5MXROWnpBb1dqZWhkNG14QStyT1FTUEVSeWM4STAwQllBQUc5MldBeHBRUjFRSEdKenJVOGxkWW1laGVlUDVSN2M0eDAxa05OaEpZVk1IK3hIb1VCWDZ4d0xHT29wNklXN0lZR2JTZVJLZVZWQ0oybFBBdlNEZmt4ZUJzU25KbDAzbU5tN1lhWnhpUlVNQ0xiWlpvbURrT2R2S0NoM3A0UEFhOGpQODVVQlJ0RS9KMm5NQTFiNEtXYTVFMlFZbzBzd04wRDNnMy9nTmVyV3d2eEJoZWZrU0pzb1g0Si8wNTVMV29Dbi93ZzlXU2dobjM3T3FJbGVHcXdQaXMvUHNZZGRheW1ITmRIZFBMVEg0RGZNMWVBamFrdFF0bks4S04zVzhGREErazNkVEZaTXVhbGdiekFUaDBDU0F0c1gwK1FrdVE2NlZGbzdHQmhMUFY1SEZvNkRpcE5DVzBGSVdNbzVhcGx5SmxxNUNpd0tpUkVTcGtIQm5KUDZIQWtSUGRYZUR1Q0lxV0lTUlhzNUcvU2VxV0dLUDJFZkRRSDhTeDBNalpLYzBldVFhOFJJQi9xWTRFcWtxYkEwY3pHeEJzbjU1UTRRZzZCSUxJeTB6cWVJM3IzaW4rUTJjQ3I2Y2JJanJaT3gyajVxdGRubVZqN2FRb3o1dWkwTWdFNFJLRWUzVHlzUlgwMFZyNjlzVHhKWUhBT3pIcEV0RVBKRHlxRTBzakI1TlhaN05BaXBLcENTME5ERncyREZnQ1JNdmtJTGJnRmVvQUVpTlFwY3hHQW1FbHZGQmt5a3dibk9TRStwdUdWcG85OXNFQUlUZnZDM1ZFQ2RvQzQyOU9Qbjk5VmhPeUNRQytZZkJqTHFDK0J1ak1pUUtpWjB1bWtJdmlpcnhBbUkyWFU3TG1TUXJpZkNsRklmOW04ZTJpZERwSXNVRUJ5NUpBb0hKa1Q2Z2JaR2MxNlpoN0J5RHRyKzhvclZ3azJxcVJvcHdYZERCZWFDSGNOSGR6anpjMExCUGQvYUhDQU9DTVV2NlEwTjRnb3BQVTJUSlRmRC9Ud0pvQXlKUlhoZGtqR1NCcUpITXNYUUsxd2ZnekZ2Q2RlVDFvNjhYY3A1U2tHS2ZBajNGWGxZUS8ybW9URC9BSy9vbmx2a0ptbHljRlhsU0pWZnlONkFld08zcndEeFFYVStXalNTY0FqVVFEMW0xQ0EwWk91c2krQllVYWtHTWNUOGpvcGthS1JtWTI3aUdyRmxsUG5aeVpUYW93czc5RytYRWF4T2RGSzB5eS9XeGxwdmlLQVk2elNIcjNxZTJTQWRweU02dGV1ektqS3BIU2xySVlZamdCbzlYZnFzaTVhOHloMVVDNGtnaVhpR29jNEJWK0FlaFdJclB4TjAvU0NneVJjdVl4L3M0Z1dHNEZvaHVFU1BvWTVGWm43aFVDMGRpVWsyNjF5a1JRUUdGNjZtRTNMV2NjRjV2blpoeWJTWEJkdGdMT3dqYVBHcU9GbWYwMVNuT0hSeVJhWmF2L09IaTd5UUFaRHZENS8wbTd3Z0M1YlVtZEJHWFgwZThLNXVhZEd4cWZ6cjZrVlg5SElUTWtNYUE3V0ZXU2R4TGhFbEd0QitoTTh3dXc1YXlRMmZFMzBUb3dubWtzbHp5dlNFQjFQRm1BdlBZZ0gxZ0IrZ242REZndlloblpFN0taWmJ1Y2RPdmVnS25naU1LTTFNTmhRaVNOdkRXb1dpbGN5LzVEdHRLZlJYb21EckdnWHBZZlQ1ZFl0SFV3UU9uUXVNVUFNaVVZTHdiNlgyTUFGNXFwazJBSnBrRWpGRXpOSTZJdHBqT1h0TWY4Vzg2Qy9ZaldITEdqWTl3Um81NUVxQkhWUEFCbkdpQnFIcjlmSWJPelBoT3pWU3BwMUY4RHV5NVQwRUUwWlFqSElBcTBvU3ZwNHhsT2FmeFAra1RtNzV4MENBL2krWkNMSGpya2xkU1NBUWdVUFVUZVYvWm4rK3hYSG0wd0dKQndMVERPU0pxckJ1a1VqOVpPcUp1Ni9TVURSSmFRNXVNbUExQm9VaVhwdXNaUC9UTVVURVgvYXZQcW51RmZ6YjhkZFdHT2tDZjR6alJhTDczQVZhUFhOdjBsaU5OMXIzV0Z6T2Jmb0UrbUxGZTZsTUFOYkxzSW94NllWeUFaWUVFQ2ZSd2MvVUlHeVBZWkRKQ1RqbDZNTkR0Tjcrbk1hRE1BZ2FKYUhJaVZnSmsxancyZThjcWZwZFFjUk1hT29KN2hETGlPSkFNRWlaUWJrOVNsSWZJcUEvQXpRZityREVCSGZPb2tRK3o1R2RuZ0NpWXMrTDdEd09MbUU1MlRrL0RHOUpnL2UvejhLdWhNRXBBVXlRRDBLNXZyaC9ibENwVmxmMWNCYUVvdDRiS1NBVXlyaDd4cmRuSlR5ellha2VnTjZXT3Z4RlUzQ2NRUXNhTFdvOUlIZmt6SFpod0xZRkJ6dUdBQXhCMElIaUJJQ2s4QTI4NVJ1Ky9wMEl6Y3lqcEZxbXBmTEQvKzhsZ3dRTXJvYXIwbzBxLzhsQUZ1U2dCN1JLR1RkSEtKQktRT2VHSURUL2NiM05zOHQ0eXBSaGJ2UmVNUlExNWFGVVZPd2Q0ak9GS2NUeXhNRTYzRkFJalRaSnpXeS9TWERNQWM3Z1VEVUt0WFNEcHFpbW0xem0xR29vTkFxNmliU20yZjlMRzZ2NVpDb0p4MGtSTCt5YjA1RmhUUUwrUk9ucTlQWDBYc0FyTG1XVk1weDZFbzQxb1JRRVVIYUtYWFFUVm92VXl4azF3bXFhLzNwZzdBSEFzL1dRSXFQZk9RZVpZeFFhSTZiczVzdkN0bnQvN1V2K3pBcTQycG40Z0RYcnM0bldlZ2RnZXR4Z21BL2w1VWZQd3JCdmd3TGlzWndMWDZRZDlpYlRWSU5ubk14ckNiMlFYR29lUnNoK1RWVG52U3lSSFA4MkhPZm43NllYNlZBWjZmSElZRkRuTlB3S3VEMERBVWxRUllwUVJJdlE3cDVpa3Y0dWF4azZ5Z1c5ZDd5UUNXem9BUmdiOWdBQ29sVFZhNGowclo0RndQaG1OMTBveU53UWdkNW5ZQWUxOG52RE1DNUVrNHowaHRYN2FTQVFnQjJiRWtlY2tBRHcrWERMQ3dGNXRVREVDdHZ0K0h0OXIzWFh3RUNMUXRzSWUremRHUHNZL0RNSllFVmF4S2xCYlVaWkhnaFg0dkdhQ1cwaVVEbUpNQzErQTRhMjJuRG9BYVN3Uk1sRFRkRFM0aXFLcWRaSkQ2ZWk4WlFHMkoyQVo2UHBPZk1RQmZhT0FWN2lOdEIwVUFidUhWRVJJZklTUkFXbzFJM2UrbFVDQ0VBYnl3ekR6dVBJc0ZIOHRXV2J4djV4QVFHc2FTQWJiU0xobkF3enFUQVVLck56bXFLbnl2WmdEUUowY0lobzU3c216ZmRQZWFvSjcvM0FuS3VoVXlSRmNaUUZvQmdkZ2c4U3VFbjh3VzF6ekc5UzVBaXdHMjRIZ3VwNEFvSjNWeUoxbVMraU42cnpHQXREMmg0L0R0d3hMMGNZTUJLSkk2UmFHYWtwZ2pGd0JRaDZFS3U0cUhlVzdNamJpMUI4OFZRSXpRTXc3TTREOHA0U1NXNmpJWlFCY1NCc0hUamtyYWp0QXVHY0JlcU0wQWpUUW84Sm9DcG1reGdIeGdBVDdWL0lUT3k3NEFpUFpiTVVBQU9mU0NRcjVsVWFCQ1lxQWx1RkZUYWRxSEpDNDMwVUVmYUo5Ui82T2dYaW1ubkRwc05ha1hWM3Y1eSt5MlNIWUkzejRRVkIrWEVzQ1NFakRYZ1JIY1pCSUhCMlNHUEkvQzIvZ3FYd1E4aHZhTlFXK2krWFpSaVIyeGRQRDNjNnhidFRxUmZUVzZlbzNSMzZJRzlza0FBN1lMQnFBRVNnYWdqUlU2b014UVJhdkRyaG9NQUxVK3dhZW5vMzhJZVlrQWpKb0JraGJVY0xDYSsxTmZDNTBCVTdycE14MlJCelVrY3RzR0x5UUF0NWtPbXkybzkyeUpJd2JKQUlUZWg2TW5UbTczSmdORTRuQ1dwa0JrenZxS0wwQVhaekxBVUN0aHBRU0R4Q01XSGlUMWVZN1BjclV3ZG5vS25uUWtoYjYvdm9sYjR6UVQ0NmtGS2RYZ3RPd1NlU2F5a0Fpcll6SkFQMXFiQVNpQmtnSG9xUllkY0cwNklEMHJ6Z0JvS21lY1B2S1Vpd1ZnMzJhQUhGSXZQMWV3SGQ2WGsvVEQycUZQd0JuVGRGRXRKbE9VMkFDMEszak1rRk1zR2txU3NHR3E1Y25YZW1GTnpzVGh5OGlYdUxyR0FGQ2R3UUN3aFhkUzR0R1BaS0hWRE92MUZKVFRRRzVpR21KbGlDQnRTR0JabnhwcDhid0xVUGx5WDNUcENzVWJzUWdJTmY4Qzh0cGlBTnMxcGpEbXJrNkd5K0R6bWl5aEtCSHJCT283K0hSMm5BVWY4OUhLbERlWGdIdU9oajdUMkk1aHViVzFkdDRUK2pPblhnb0FHb0ZxaEx1MHpFY1UxS3ZsVkw1TW1ZdW1JUFd0M3V6MkdoU1Q0VlVHTUk4Rm9hWG5icG1oSTlEUWgva2M4dHpteUxlN3hEcHFZdVlDb0dRTGVtcjdNRmhENWxlNlpJRHMraFM1cWZNWjV0MzNhZ21JZG1nekFDbm5IK1YySGJFQXdlN1dvMlRrSTB4RVl5M1doeER0ejVXTUN3QjhtbTBsTUhmcXBoSlI5Y2FyMVpQVTJzcFRwSGl1d2lCeXByNkw5RUw0bE1xUTczS0tJdU9YaHFEWFRMU2V2Wlc0T0ttMkN3VFZMUWJRS005UDJzSXJOWkpaSGFWSHFRTTZJejkxWVJLMWVmdEtMSG9hZkp4MkxCVjAvQVVESEV5WkNLV3hVQUxaTGhrQWo4OE5XVmgyc1d3QVBrbkpuVG9BWUN1czBBYnEwTlNCNXpKa3AySUFLbjNGanV5VFFnbU9ncG9Cd29FY2xVYzJZVGZ3NUkyL1lnQnRLRFRQTkJ1dG02Y1hOQW5saS8yeXBSbGtaQWd3OFM4L1k0QytJWjViREtBeWt1Z01LeHZFL0dKbHJxUVBWd0hHbnRQWUN0YUYvdGI1RFFhQUtGZFZQRlN4Y2h1SWRvVUJodEJQbXBvQkVLN01mOW9NUUx1TGNmS3l2UUNndmJhc3J6UUVwWmV3N3czcVNZc0JJb1FFOUs4RXdHcG9ZTjFmTGdIemVWSEJhdHAyQnRIeldURUExZjM5c3IwM0NEcXFiLzhtQThCajBhTlNzbUpTTzE2WU9neUVwQzFzOUluUkZrU3FJZTdaNmVrRHBPM1hTd0M3V0thWDFyanFmYVZkWlFDalhza0FPK0NOMUpZR1FOS2d4UUN4cS9VRUJKTklFMUdZVk10SlIxTnc3ZHhKQm5mSmtEckRBMHBkZ1A2V1VkZU5mWVRydDVUQUswazVkbVVGcTl4aWVMdmkrTVdHUDZwdkhhS2xTVkI1OFRMdmNXUUpvOTBCMGRlSjVKY0xLUUpZTWg5cGdXMEJLSXhFTUFOUWd5NFo0T1BqRHhtQXdwaHF3RzFUY0RJQUFXbmMyMXJPTU5NQnNSVWtvcnhnZ0dlM0JOTW15eHYwVnRFcWd0SXk1dmF2MHJsREV3VTB4NUlCRUt5SW1FYjdZS29OTkFKSnF1V0xiYUQ3bXBLbVpSNzdpNENRTXZRaktTd21QMmVBS2dBbEdJQjVNd3VSSEF3Z2xwdTBBekJ6RnBOVUl5cWtsaHpBbXFWSlZJWjV2VWhENEN5REx3STUrK3NsZ0YyWWphRUcvQTREMkFUMk1DZG1EWVFYRU80QTVwUW9HUUJHZWU1bkl5MVFlOFNLU2RjVXFKaGw0ZHlKQklTNlhsVU1nTGgrRk9TcTAzVGFCanE5Y3gvaGZOSDRoem94VjFTeVNOUjh0bVNBa3NLbzJVU1VhRFlqaTlFTVFLM0V3U1FEWUJ5Y0Fjb2xiNGxWN0dMcGlLZ29tRTk2aFJ2bG5WaXFMS0FmZ1hPL1pnQzZnMjFCK1ExMzhDSmRWTTRBNzZxWHdndG9ZbUJvV1dYNENGL1RYZWRMcGE0dE0yOTR4MlpSRWduNjlJSzZteS9URHVOR1BLOFFCQlRCdS9aZGhKeXlqTXVjTFpPamx3VVR2WmJOUGxIejJSeW4yQ2twL0lNQzUva3lDSFdKR0hzQXRSamZZeXM1OGFHbEtYZ1UzazhTK3lvRGNBR2dFekRkZ21VQXBsK1MxVlorZ3dHZVN6WGd0eGlBdGdpY0ZLbWE1VFFoRCsxbzAwaFlDUUtaV1g1UjJsaXFsZ3dRdTNyNng3RnRaSXk2d3c3VEY4RFFKNlp2UnlrMVNnQkEzZ2VSbnZQYkFhSnNXVXUweUdESi9XZ1I0emdxL3NQMEFLbVR3bWhXOUNSYkZtOUJ2TFFqWXFDaUpqNjBZQUJwZGZ6RFZRYlFsNEptU0NjZzYyOHpiTXJpZDNPR1pJM2FvSFpDcVZ0ZFJzNEY4ejBUM1pzTXdPdks0b1dteFlXMWlaTm92ZEtaeEVvRXREODZnZnpQMk5jUHZPVytxWnAwaVlvNUhzMjV3eHlVa1JSazQxSXZwbzE4TENCNVJTRXZIOUF2QWtTak9XWnFWaGRNUk9Fak9ic1ZzT2VoemlRMUtYeEMyeDhkSlpvTnk4Z3hJcmNmMFdwOGFESkFJODBMWXBOZnJ6R0F1NWQ4N2ZlTmxJRThFU1JjemhDcXhNa0FnNFJTdDd1QU8vVEQ1VTN3ZHg3STRvVTY5QzRXWXhLZE85clhzV2NRUU80RXlqL2ZHTEZUTi9abmpGeWlZcXdJb1RUQ0RvazF4STZvS0g4anlJRnZLR1hmWlNrL002RnJJMENVTFdxSm5sb0ZFNC9BUnJHd1hEYUNIVWhxUW8wSVJKcnRzNGhha0J2M1RzWm80ME9UQWJqaVJRd2s5UDFyREJEMjNqNmN0MHhkeDhoR0ZLaXRaNGpYcVAwcVNFRW9kYnRMNTJjY0xtK0N2L05BRmkvMHZ6SERZaElOOFk5WkxSeEFUZ0s5RkFCZktuVnNhVHV0SjEwV2UyVVYwejFoaDhRYW5oSkJDcnNyRzNnbGkza0MyQ2hOb1NzQWlIcnpJbWwxd2NRWm9IVW5oeWRtbzgwSHBDYUI4NDlsV2JteGVQSW1sNFpMZk9qZCtHWVVORXFJWmgya0lZbVdxcjRzQURsdDNlbXpiOCtRL2RGMG9pQkZRcWxiWGJvaGljUGxUZkMzSHlpTEYrSnZGNHN4aVo2SXZGYTVqZndZZ2VxdEFMNGNMYmIwbnNTa2kxMTl3TEt0amk5aGg0bzEzSXlKV3dxa2svVW80WWlDNHp3MEtUejJ5b2gxZTVUL3hzdnNWZ1Z3bjJoUmxCY0ZadEU1SURHdUwvbkh0S3pkK3BheUo1WERLL2pRdS9GdEhNUVAzOHFXbUVJNk9EeHhHOUxybGRwK2U0WlliY3R2S0NJa1JVS3A5MVdYdkg0ZUxtOHlMYStMNG9YbDMwQ1l6amlKckU0dmNHdGZlT3k3RTJpWmZ3cWxLQy9yNldVdGZsZGxSakV6QVpBa05Dci95SXZZZ3djQmlhaGNFZStRUlVTWElRc0M3Ym9zeXlRV2FGRjA1djh5NWJIWHRJNC93bFNoUkN5MGoycDcyTWFIM2kwdmtWRDNSZUhsc2hZaVlkdUp0WkpaQnVScEF1V3djaVdPZXF5Q1JMb2k4MEdTWW9sMWE3a3N1eEpKcWlmblRRcGd0Z0ZHMFloVDQ1UmhjZVVDY2IyMFF1Q2JBUDF1ZUJLeGlvNXZ5eGExMkRGbFM0UTRjYUpZQ3hJQWQzLy9GbndaMEJsRGlNcVB4RThXck05eW9tQllhZ01KK2kzTEpJNEx0Q2c2OGI4dTduSlhyMkc1L0NPTmxSYVU3ZmszS2dOUkd4OTZON3VCaFdUWjVxSWFhaFJyRDZDZmJiTTVHbzRVUjdIbUJGVmpEbUljYzdJWWhoNC9PTzBlSFZadGg0dVRIV2lNS2VhektxZVgzRHFyUUhQcXMvUW9iZUFzMFU2d0ZWNFA2MjBVbWtiNVdzb1BycFVzS09wS21JMFA2WllBT05FUG5oTGo1dEFaUFNTYmJaNWlqcUZjNlNpQ2RWOFIrNEZBWldlWlJCaXdBaTNxdU8zRXdZVmRUOE55TzFHeGdEdGJEWG5TU0paK21mbjNJaTBXR1dCL0RRMk5yU016Vm1ROTVLWFZPQTlzSURUOGxJZW9oNTIwdHpLMG1JTTYzY2cwYjFCeHZLUy8wMFovZ0lQUXlHSFdoWnZzQVV2MldmWG0xSHZqbkdRQ0pabGVxVmViR3FYemt1d2RGZjMzOUk5N3FYbWo5V3ljZ0hnM3hOcHNsek5aWmpUb05tRUJDdFRkRG96YkVETVJQVjBtVWVqU3BCKzZyb3BpZ3RQQ0loQnBvcW95aVFWYWROTEovNVdqUmE0cmh1VXlFeGwyc0F3c25JUUpzb2FTQ2tLbVpnQXZ6NHhtY2hLSkYwQm02SlpSUkJZMHp1TFBLc0x4eS9IZysrOWErZ05USHpXWldad1FKbU1pckorZE5rb056QldoejlIWEdIU1oxQUVsNVE1RW5wSjZrWXpFNjhFT1kyZWQzVnFRbERzRlpIN2FlMFZSVW9yUFBYbENHMkJFcmFEb3hzT3Bzc3lvRUFubUJwYWdzUnltRWJrQjZRdjFlR1ZwVkFZRGMrcWxMVUwxNlNyamxSci9hTmE0anpLSjZmSERFZkhHNVArQ2ZGREVhZFkrdzhXSmJTK1l4dUxQK0w5Z2l3U1RJOXk0Y2dmY3lhNE5lb2ZRaURNcXFLOWRTQ3lHOVkwMnBDcmwyRDUwTmZ4cTYzL0k4eEp6c091VFJiakVFTlpEcDQxT0Q4YUNmQmRhcHFjOGQwcktZcWU5WGJrTWh3R2ZzdENPb2g1c3A5VTlXcFZGYTJaUlVSU1VPak04QkNtcG1CUW5DNHBDUVZMRUlsMjBtTGtGREY4STJNSzRyZGVvdk5GaklpVzY5ZDNldGRhc1M0dFd6cnVtOGNxQnpLMXBVNVE1K1poejJxQVd4QmM1Q01MaWJnZE5ZRnJrT1I3R3JPVU1lRzZrazZqQzMwOWtBR1lmZkFLUk1LTllDRHdUN2l3SkRjVmNDVGdGNWpKM2F5ek0yOW9CTWsrUXo4SE9nSlBGRnIrekpoWWxiVVlyblNzNnVycFQ5bjBtSmdKa1BQT1FyVmhIYWNRYzhacWJ6YVBSb3g2c0VMWGRuVVZyUUdvajZ0eHJwSFFUUk03YWxRZ2IweS93a0dxV0dVV3F1eklhd3dpWURDRFR5NktoK3NnUnZJZ0FVUjV0RmlxRTIxa3ZGK0ozU2dab1dNY284bzZqQXRtblBpWmpSY2NackRYUWZ4alNyRUtGWEpKUWhNZ2RSTituOFFxcmgvOTdwMk1Fd2VtYXlOajBwaWVoSkhzd2pzSkNrR1lCcU5JblJySUVNMkF1Sy9NTjdWdFJrM2szNTByRnRMRE5YTEYzbHBweDBFQXc0UjZzUmtBTkJqcUpseVp0TUtzNHZUSWxvUnoyZXJEd3I5WGRjeTlhUTFRREs0b2laaVJDUkNNdHBkdzNDNHA2ellJc003cDkvUmtES01VQlNwRWF2dmdEdEJiWjdBRFZCbmtYR1poT0JwQlhvQTRRWlJJN2hiZXlzUXBrSHlRcVFTb2I1dUU4OUN0Y0JzdUZ5MVB0WDNpaEliVEIzd3poUi9TR1d3SXhzcUpaSUNzMjZNWTBRTEpHbmkxZkJYU1QzY0NrbVlmZU9TbVJMQUZjaFIxQlljQ054Q2MrQjBGU1E4Nno4RTVqdE9uUDlRZnVhQm55c2s2RGJaQzU1UFdGdkF0MTJqVUgrNE0wTmIrN1VvOGU5dXp1b0J1WUowNUdSenlCVko0RHM2eGRPVWhzaFBZaWVYaFJadlQrcHd6UURNNG9VOGxzcWtRVjVkR3lNbUpVMXV5VXFYODZ5RlBCMm0yWXpTZ1RvN0hPcTNWa0hpOEttQjdLZ0l5czRKWTFaRStNOEVlQXQ4ZGNxUUFBQTJDTUdwRWhRaVFENERPOGVpVVMxWkFWSmxjTTlNMjNaalFVM2RXT0RZVWlocmVrcTl4bTdvQno4RURVbWVqRTVzblhOTEtXbnZuZ1ZKdGFqa3huQUNhRUEyTUx0VmpZaG45a3JJNGVCdGt5MEZySngrNm1GOUdBU1dwUWFOZldsRkd0TVdFL1dRV3VxL3ozU3daQXp2eGhseVZhcGFOOVZLWVliNGhueHZXWi9HdHJOcGVpN05wYW8rWG1RRHNvVVFsVVRaODhpSXBKWGRZUWhyQmdzUkVWRnlYK2pUdDlMQUhLQUJpNnpJcjlZcWtBVldFcFg1U0puZm1qWkFBL0JEdFVGU3dUYzVBMW1ZMVZ3UmJXTFZNTEFMblBQdVcySjMweEJ2Q1VrSkc5R29WdEVFRXUxSnRUeUFGeDdVVnJWQ3hTN2hyamdyVzZpZkJDcjhGY2hvSGF2Zy9WSG9XNUZpVUQ2UDBHOGp5TE1mc3BBK0E2dmVUWFIyc0dNRUVIbGRxOUNwak5Yb0VNUmFFSE9yVlpDS0tJeWtvQjRBRThSYVdpTjZheEtoUUF1ejlEQXNnQWN2TU1Ya2U1YU0xZG9XUXBpalQzcnpKQWxuTy9oeUNPY0RsdVFHSU9yaGNoV1QxVUNoUVRsakhGSjdJUjc3U2hGS0FuaGFXalZ3U05nY1NzUUdBclhsZDdXUTB3Z1pWUnZMakUyamo0UVFXRVo5Wlh0a2N1dGJrMFp3RHB4ZjFFVFZQZXNIM0ovd2tEbUpVS3htRjY2NWptMzJvTE5RaDA3L1VkdFhYeXFDeVVuY2l3M0Z3RGxHRk1XSUJWUWdFSXE2NXZBOVYwQUwwanNtSmozZFBrS0xGV1FXZURGNzFkc2tFUFVUMGdIYXFBMlVlSFZwMlJDdDdWa3JLaXNRQTJBeVQ5aWlQTWxMOVk0SDl3SDQrVzhJQmpaaGk0ckVMeERPclczUTFib3UyY2Rlam1jQ0MrRElRcEpSRmtwTDFRTGhHcDNjdGR3TjluQUZRME04Y2l6UnRMTGxhaThxQW90S0x0ZkZtUEZVRDNIY1VhRUZuMis0MVhDQ0k4MFZTWmpyWFNFUFNtQW4rbEk4dXMySXk0V1BkQ1dZa2FCSmNaKzNYM0RPOURodE5lQzVrZmFBVzllWVFiWW1KQlJna1I0RStNUjRFQmpBakE4dGg5V09OZWdQTUdFZ3VyRmgrVFlVWGwyem5vaE8yU0FjTE44Ukt5Q3BqU3hpV0FiWEpVR2NKVHJZcjUveEVEN0dGalY3T2o1Wm1iR2VGVW5GdkNnME16WjM1Mm1OSUMxRFl2dE1DTVExeXdRTVBTZzBVdFI4cTZ0ODdZSlRBQW5EMU0wd1A3RitwQXFvVWtxQUpPOUJERWk3Sk5NQkZFUVAzQVFUUDExRlFCMEl2THlsTE5sdlNRZGJySUFITnB5ckRhWEFLZ2lCS0IzeDhMYno5bkFIWkhhek1BN2JOUmloNkZMQUF1U3NDeG1XT1pMQWJ6Ny8rS0FSZ3NCSE1aekNoakYrY0xGS09PV1oyWkNrRDdYckVQekJwaFVUbU9ES0NhRTF0VE1ZQ3EwRGw4UWtidTVRdUlDQmVGYTFWN1lPaURIOTF0S1NWc0xpa2pBZ0JGZEdzR0dEQWZXS3RTd2JuVUFWenNXRzNLT1ZGWjBYYVhTMEI3WldpSzJodGJzNWU3RGpBTWUxUG9DNkpsWkxYWSswaWwzZEVwYUwwSlQ0VnUrZGNZNExUSnRSYkJ2cjRSQkcwNkF6VXRjVmJQTWl4M0VMczdUUGVvRVJZcmdETkFQMXJOQUswcW9PT3cwN2NaNE9NYUE1aU53WnhxekkxYUFHZnoxb09HTmt0Y1Z0MFFTbWN3d09VdWdJc0x5MXM2U0t6RGhsVTU5YnJoSkZONlJEZnVJK3FwNWUrTHJkMUtPbU52bDR1VmdrR2NBYkpYQzdvR0F6eHhIeWxzT2ovOFBRWmc4WGxmNkdlK0VmeWtPZGlVY3E4dzZhaG1xbmNVRGI0R3FMZ2pCdHFkRjluT0pRTmN4T3JTVS9kN0RKQVp5bjA5R0JiUStRVFpxQURJcWZsT21sdjFIWm1SdkR2anRHbzdRSVhXR21HYkNacnFqbk9IRERTUTFOeFV3TTdDaWNJSnBEditqcG9SYmUwTDY4QmdWOWdCN2xtbGNHMEp3NWd4VHYzckF5NE1QUWR4WmQwVXpmRHhGeG1BbnhudU9xcjB0dlNBc2IyS05nUE9wWW13RU9KeXFhUXBvQ3ljTVNPOGExU242S1FTZUpVQnpNSDM4SHNNTUswTXc2Z1RWQ2JQZUhSb25BcUFjOC9sVXBxNWxjVHl1cDYyZzB5VURHQ1JYMWxDN254V3E0RlFSS20zNjFVV0gxU3RLc0JXVTlhenN3cFZjK2MrRzFWRmhLRWFWVkV2Kzd5bUxiSHZNc1N4bllmS1FHekpkMmxnN2g5K253RVdQRnJhVjBJaUV3UmdGcmNzTTZjS09Vc1FOZzAzZ1p6bTlBMVBFTVBzbFZhWUVTVEwwQndad0pDTlB0bmpEUWFBVC8veE54a2dNcFRqOGUwUTBpei9LbU9IRmNDbVptQW1ZUWVnN1libVd3WkptQy9BNHozTnp3MUR1NmJWVVR2dVhQMXV0UGpZSG03TjBzK0hoaXFSTFpSS3Y0VjFuOE1UNGRXb0RoNEV6YTFTSDE0ZlVidVRXZVFPVGUwaWd0WkU4N1lxdlVsaVFQY0M0R0hPM25ZVlRVamp0RDU2TElmT3ZNZXd1WnV4cHdBTHlEUXBxaXJPaW96SnIwWnVWbG9Cdll2Q0dlS1RqeENtYlBDTG80TDBGUVpBVU5mdk1nRDFDLzZxR2VBeEMwQ3JhVklOK0hPYm1rR0MvaHB5V01zeHIrM2pBamFoSTBNd0xNc2o2OVEvb0VyOW9BSDFsRlN3QkpJa0lGUlVmVlBBUEN2Y0FDd2UzZHhUMXRXbzNOMjBodDlYVFlKa2NITUhyMHNuc2J4a09wbTlkTGp5SU5NV0R3bndrS2Q0ZkhyVzBhVTBWcTVvbGZQYno5THJodmc2ZExESUZNbU1kNDI2SzU3bS82a3NMYld2QzJld3lrT2RyTDhNQzc5a2dLL3ZQMldBajJzTThQb1dKZUNCRk0wcVU3b3lnUDdhTlllUEhKdnNNRFBNczRWQkJrc2RhYWJVZ3krM3h5bFIxa1RJc2xWUjRhWW5MYnF4aGZKcVZEc1BnamJYOFFpMTNGSzdaSVVVaStQcGRCa21ndEZuS0VPVURnZXIxSlUzR1BERlNzWjBrK3VWUkMyMnl2a0pvZEx2RG14QUFSWjRlZk40UUV4enI1cVFhZjZ6dEpRSFI1YWxOTEwyQWd0dkdQMnZNOENQUDJLQTdYVUdJTUtGbVNQN05nY2gyN2lrdzVQSm1keTNEQ1JwWjJxQllhT0dFZEE3blJHcEo3WUtUb21xS29wWGZkdnZnMzdhdXQ0OUs2dFIwZkZ5UXNoSnhCUTVkR0FHNmNseU83cDBJbEJNSGhlQlppd3o4WTVIVlpVM0JPRkg0c0ZSSDRFeUdVSlp4OVl3N2lVaWJ4UlpVT3l5aGN3ZS91d0JXNnd3eEQrTTVJK0loa1hoakFqeHdmdnlvY1FSN1ZrODh2Y1k0UEVtQXdqQncvUmE2UUJuMjNON2dna3ozYkxLMU1adDArdWR5K0VCYW45R0p0MG1HN1VKaitLU0p2UUI5ZkFuNnlPVmRaR2k2dHUzVjdqWmVqV3JsNnFhbFUwK0JrRXpmTkJvR05BQkMwWDBnbHN5L0ZNbFRCbHF5bkRKVFZtOEpBcUQyUitJOFViQU1TWWhoVEVtWTVTWFlwa2NoeDlPbzBJSHFVdE1BTURuUkFCRnBMcmgvcFRhQ092eXdrVE9oZ3cybnBqWUFmOThLMzZSNVdOL2l3SHlSODBBMUpJOTltd0pHQW0ySzJ1enVubWh4eDVGcUNYUE1ZdlhTdVp5VkFYc0RKZ2lySzZuRVZuR0dNZkpPbU5PdldmU05LTjN0YkhxbXpTakZCVWdHS3U4bWxVVWJucmhlc2dBWXFPaFV4VU5FYkRXSTlOTjdnbktSTEM1TmlkUlhhOUl6K0hmWHV3SUhFQ0VTQzdMR1ZOck96QStLODZIWUM4ay9TeC9RSFJBcENVaWhuRmJ1UldRSHhhOXlod3ZpbDUxK3Y4dkdTQ0RWc3FOcXloclpmSksxRytBVUdXc3JiNndSck5MSjJleWlHbEdYTEtpVHY0SEdVOC9tWVBqb3BhWTFXY1NnWWRJOUt4d3N3R05ObHFNYXhNanJUVGFNRm84UVhTc2tJTHFpazVMTkJDVUxhZmJIdkZ5SUQzb0lqOFQwVlVVQkFPaExMb2xYTDBwaG1jVXltenNaa1UxU2h0SUhoN1lVK2tqZVhWNngveWVHYndLMUo1QTUzQi82NWtoUGhaTzArdGhFMk1HSUpBZkJjVC9BZ1BNR1dhR2VFc1luZWFlVnh4MkFtcEVUMTVsU21lZ29TYWZZazdyRDQyNWhoM3lFZ3lMdldtaVd3UFNNN1dwNWMzK0VzcnpPRWpHRXppZmdCZGhiRHNtRzRHU1dDN2NGVHZUQnJIYUJtVmFNUzMrcERvUXNqWUxncEZRaUc1aFRJdHZ4cTNVSG9SeTJaNHRNaFVuVWQ4b0lxTm5tTVMrMnd1RmsxcnQrTjVOUDZNcXByelhNQUUrQzJsN1lXNkFBcEVjUU9qLyt3eHdLT01CNk8xanZYc20yVHZ0R1hDNVk1TE9ISktuQjR5K0lVWEJBWmdhTG9meFErbVBPWEE1N2tJdzFuZ0w2WXpVU0lsOHpiVjR4Z1U2aVhUS0FvYnN3aUtnWGREZ0dFb0JCQ1YvRzRqM2toTlpUcy9kWDdQY2tPc0l2SWY0c29yUFRqVWFHcUl5S2tLY0lKU2ptZUVDZ3J2REhjZnpNQTVzb0V5SHZRZlRHeitRbjQzeGpHTG5PUGNZVzBuNjBhQnBtbG1VM0lZQjRMLy9CZjJEQWViekZnT0VPU09oUmNrQTd1MkxldmRFUm1NQ200WUc3Z3locUFBLzNYMncvdDRzd0FoRTVEbWtlVXcwYkEyRzlXVU9qVm8zSWJoRXZtYS9selpNSXJuU1Z5QjEwQ01uUVRPeU92UXN1ODdmOUxlM0V6T0FvYmY0UHBXMFZIdTU3YWM1c2FqNXptTnBhbFFRTFZrRGtJSm9BNW83MUt6bjBBRVYyenpBR0dDMytEckZHRVJqTTF3TnhZT21URHJIclJXaDlnMDIyaVlCV0R4ZTZYOEhDL1FvclV4Z2dEcGZSU1lrb1RlODQ3WHJNYkpibUJhdHBBclZibW5vbXdGMlFtRnN1WE4wL3B0MnBOVG1XbDNXSVZ1aWhVWm02bEVVNGN1cTZZWTZJdkkxKzcyNEtRdnZFSmpGSXNiY3lpOEIzRWZnNHlvQ0xQQ1IrUnRDOUVJYlRRbG5oTVJwT1ZPbzhxNGJNKzh5dW9WcEpyRWZYZytLcUlwc2RJVWlPcWRSYXhhaTIzcCtJRkVBOUhKbGVqUGQya1lDaloxNmttQ0dMd3ZmbXhWRk45QjZ4SnhBc3Y0TCtjRUFtOEtFY2MrMEFIVytDZ3l5UjA3d0IwZWIwTUEzMXFXM2xaUnluU0FUdDA0ay9jZHBxZkpxbElrMlJFMi9ZcWR0ZSs4b3dtYzBRbXBpeXUxbjBDMHNjbTc4Z2NVQUpqVTV5Y3VZTzkzUUE1Z0I4eUY1VHRlMXAvUGhJdGplajRhT3c0U3pteXMya2tWdmZTZ1lvSXFOMGZRMHhabHNqS2wwTDVQNUhRWXJjYUhSL2NlMHJDeGY5TzR4bFlqeGRpVlBxQzBCazR3cDV3ZXVBTFl3c2V5SlNvb0VZV2hDN0RSaENFV1F6S1BPVnhFSlNmUUg2MjJ5ZGoyc2pOemJqRlZXaDVac0dFTkFUS21IalFFdE5LUnNQZzlrZkl4NjB0THB0alp5SUlTMkI1djBoRWF3M3I5QnRqUHlYL3ZjSmorTkF1Zk5uRm1iRWRadVFKQTU1b3dGdlNnb2dZV29jdi9pWVJSa2dMWkZ5Z3RHaUVhRkU4ZFhHS0IvbFFHc3V1QzZuNXBVTEFGekFvTWlvbmVnZFNTYUFrREFpajFySnUvQUpHVGU4aTRqYVVGdDBCeGtwdW5SQk42VVBsdW44RDhsQTN5ZllsZUp5WWU4QU5DNWNuZmppcGIrd0JIOGVNZEdLeXNFUTg3SFBua0RhTEJoZzNFSnl0RXhhZWsyN05wTGt0SHdKRmF5Q3BhTHNNdEM3NFgxbU1HUnVwWlphdjhOalAyWUtOcWRheTF3T1o3Q2t0N2loWkFOMlhBaklFSE9jTlYzYVpIbFZsRUt5b3RSSTFzWkN0RDBLSndqdTF1YkFlWUZBMWdZbk9WUmQ2RnVTUTFYK005VFhuRUYwZUpHWjZ3RGtZRFAzd1YrQzBEUk1jRUhycmpKVDh5ZjdkWk5tQ2h2eisxa3d2bUsxRERKQUxZQmZtY2I0d1REZEVhbkpqbVlvbTFtdEZYUmxBSFRDT2FyN1ZqZndRSjdGcXRBVmdqbG5udThqTXh0WXgvNGUrQTJnVTV1T1pzQnFuVFhETVlIbmhtdW1SNEN0NWl6K01iVytJU0pwZGFEaHZDb2REU3VxUU81OUZWekpDT0RQZTV4M25jR2dJdFhLZUZaZlYwTHFsSzA4am94ZE9vL3VkWmlwZ0l6bEF5UTJuYzZoTlZiUlJFRGtxRjFhd1lBVVJXNUJvaWhpWGkrQ3dZbkFGZm1hZ0lYdWlZTWk2WEpVSituMEtCY0V5TjVRd0NnaWNESHFweEYyWFVSVUZHOXJBekswa1NOOHl3MDk2ci9rYWRzQmdPVXF6S0NkWSsvdjRMOHFoWlNhZGhBL09NN2tRU1dWaXNBOE5SZlFDcTZ4LzF3OEt6Wm9EWG11c25wWVRoMmxmWUQ1WXJNQzZvc0FmZHprOVlLVkExZDAwQ0ZnQnI1N1F3UThaY0pwMEZQMmJvUkhhbHBhSnRGTDdUdGdPR1NBZVF4YTRqbUN3YkFzcVMvc3VJNGM1NXhDU0JSWFdWWldRVWwxOGk4bkFKTmFhbTRiY3lHb1JaTFN0ckU2Wi8yUm9pTldjRytRZ0FrQStTZUYwc3J5aVRyN0MwTXluQk9IT21HaEx1S3Bwd0hPbjFOZk1NTWE4b0FuanAyOG5jN3BxTFpwd3hIcU9yQWVxTUdhVVdtZElkME1HQ2trVm5NbnFKZUUrUUFkU091aE91RkI4WWFBeWc3WUdsT2E0VTVFTWtBakhzTUJraEFUWiswdEo3ZU92NHJBWnNhWGxBb2MzTW9CSEkwR0lBWmNtMFhnRWQ0VWpxNmxERXh0SlU1ejNKdGZMSk55NGc0WjlmSU1MbGh0MjRwVWlkU08ybitmVlFmUVdqZVIwaGxwR3NTK3BzQVlJdk1uMjZ4c0ZTSGtSNkczWnJwMnJYdTdrZyt3b3k1ZUVFYksvam0xRkJ2TEVEeVB5ZzJlS1RpUEVKc09yc1ZjcmwyT3RoWStxVHQ5M1FiVzhoTzZUbDdUeFlrUTJMNWZnMmdYdmM5S25KempRRVlBclJJQnJDNHgxRXdBTlJzUEF0MjdhemhzNGlHSnpMRVJEMVltZUZYVkc4aXJybTdsOG1ic1dNdXBnR2JpcTJwazZ6S2VaWkU5ZndWaEd0RG5vZVc5c1d0VkhUQlBRaHFrK1plNjE3bkxQSlc2azlwNlFNcUdFQ3VqVDB2YSttb3RVYTdkVmhnVUFiVHlvMGRwYXViS1hQbmdBTzRZMXJEVXp1eHhHb2I3dTBBTWxXbFBEQThNbU5VK0M0MFdRS29Gam5tcFRjWFR4WGF1MVhQZTZ5NkMzNWp6aWNENk9MZVJOa0tSK0pYREVEeDNvc2xZS3p2dGswR2VHZGRqeDcrZ1JyWURxWGxOdERWRllMTkxaQjd4V2xOKzU3RUZhTWo3TGRiQmpzV3hpa2xtYlJsbWZOc0dVVDFERFpFOFlWR2hza3RCS1V4SmJ0SWJmeHIwMXhPUXBNL3BTa1AvTURmYmZvalF3Z3BhQ3VtWmVWQnR3NXdyMkY4cVhUVDdyWFdUYkRTbjBwSzVLbWZLM2FmNVllNXR3UElWQ090WW1PRUpEWVNCQ0s5Rk8rV1hXWFhxSXBrejJLNWNHREdyQ2RydGxvVjNwRURWcUFVZWxlVWl0YVEzWjRoNlRJZ1R4R2laQUFaNjVJQndKZmdJblFSL2xHSDB1STFJQlFwbldIaFovRnNYUk0zYnVHbnlWK1psbnRwd041TEh3SVNTVXFqdzU4S2VoS1ZlVmU0bDZaR2hyeEhjT1FyQjFSZHBIYlFIRVJIQThuLzh3OWIrb0NpWVF0WHhQWEFHamM3YmJMYjVpQ3l2dmljVXc3SVZBYXNHUTJzcjB3Tjd1V1lYR1VBOHN1UjNCaUpKSlltLzdEVEpzcE82SStDUzlpbksrOW9IVjZpY2N5VWJzUnVIT05NN0hHRFZjR3hFUTQ3Yk9aNk1jTHRtRGFqMzNoQlRoRm5OUU5Fa0dybTRHaUYwbkpPazYxRE9pTmZYNlJzVlNLbmR5KzlnUmhSdXZveHYwZ3ltOGk1LzBxaU1oaGdFelArdU5kMmhCQVhjc3JWeDZLTDFQNG5TSzVOenNOZlFuTDdpYjlKLzJ6bWZ3d0d3TWVZN1ljcXFxbTQ2Rll5TUtQelFMVXZDRjdzam9tZlFybjF3VG1ENUFZOTYxd1BNc3MxMGtJY1BxVnpiZkdRQklNZ2JOQllncVh1bE1OMmx0ckZ0NEZyZVNGaW5MRU41T1p3ME1TbW55QWlCQTh5RTd2dEtSYlNzVERsUFJpZ0h3eEFtR2dua21MV29iU2MwMXpZUWpydnFZQXJpYXZnTzI2L3B0eEd5MEVRZGJQeFdTdzBLeWV5ZGlkUnFiUlJiUk82NXV3Mm1yYTdTRzM4QzFjZmlCNGsxNS9TOGE4MCtvQ3lNZEV0R1dBWW1qbTdWekFvZTlZWHN5cURBMWpqaDhCSzFmT0YyaEFEemJyYytFSXNXUENXKzhjNlNqT1pzbWZMTEVJNG1Obys1MXdwdURFOEtLcllrbFN3WUxWQnBjK1cxNGNSME9qcU5jUkc2TXN3cTAvYnFpQmY0am0rWnhzcWJDd1lIakRSYmlSU2pGRGFuTk94cFhZS003Umd5bW1OakdqVzBKR1NHejdRME1RUmp1Y1RlVyt0RnVSY0liNXJlWTYvYlVhemgxMVYreGRTL2w5di8wWDdGLytaQzVEMFovT3NuMkFBbDNXUEdETnJVWHhnUXJtT0tNOEZLMzNESlBmK3dxMmVpb0ZGSzJYR1duSFZvUmpjdjNJcGJ5eDYyMzBabWpGY2JKOVpNWmNid3lqL3liMDhNUHlzTGtmblkyZkhmbHpLa0Uvc3AwZWxYVkUvSkhOOFUySGp6OHlHbVVreGw5ZGlkblJxcG5UbUJrdjlISmpXWHo1eFp5UTBKYmVhUkZNUjV5eU9pWnpkU1ZRbzdoNjVrMnM0L2ZpVTZWVlgyWlRPUm5lUy9ILys1My9ROHo5Qi9td2NXS3YwcXZ2ZHRGVnpCNHpHbVdNZVN3WFVmSkQraklNQS9ia01GQXdndnlnQU1LcUFpbkFwNzN1UWVDQTFGTGZZZ3c1QTJ4MGFyYXhrVktWWkpEa3hQOFl3KzVtQzdOVXkreUVoSXowTHBHemtyNHFRRElUa1JqYk10MHlLcVNic3FtR1NmNVhTK2Y4bjcyeGI0Z2lDSUJ3U0FTRVNDTDdsSUJ3WUR3SW45Ly8vWHFiN3FicWEyZnNVUkJDdGpYdHVhUUNzN2RsK205NFNxQjN3UFdaTjhMWHZyeUpLUk5SRjA4VVRQeTZHREkyaytTYnJ1U0dUaGdrVlJIUGhOQ1EvRGZSM3lMOGdmMnJ0SGsxV0VucUpnOGxCMXZQL21UZTkxbCs0YTZSNUF0eE5nL01HMVM1QWhRZTEybnVtVEwrTFZBNFpDYjNhKzMzckYrbGk3d0szU2F1S2hEVHk5cXFLdHVGVDYvZG96OVFXQlNiWXpaMnlES250K2dZZkttUU9TODRSeFEvTDZ1eDFlNDYyRGdpOXFMdTE0Z0tHSEQ2cXlvZEQzNnpuZW9hM2VTL1VDblErYlFYUDl4YzNRT1A1dnM1TDMwK1FpUW5lMC9Ia080QndzWTMvQ1hjdm96UDdGaUE4Y0lLdG50QjMvZHBIN1lKbFJCOTdndkg0ZHRqN0kwYzZEd1k4OXB1YUJhbkpvc0xUN2VOS0ZoVklCQzZGYnpUQk9BNGI1UXdYTy9wTThNVnoySEFyclZablZHMzkrSllMZkxzNkRVVGNhRm9ma1RHR0RHMFVMN2N0Ni9sUnhvMDVYMURCbC85QzJXa2VBUmljKzM0Q3VjYVUzL0gvZkFjNEVYUmZyODFWUHBDYXBaT0FkL1V6N1lEVHlJWEhVZThZcDFiYlF6b0x1SnA2QndOZ0UwVmFSbTZ5c1lVN1lQQTM0ZTJYTVU2NnJnODRaMGpyQ2Nad3JPeE1SdTNXVWo1SXBzbWNjMWh4Wk1hVUhXNGwydEtCZ2h0MWl4dVFaaVdpK2FhQlBwczVUczl3WU9OZXFWZWdGTjA0Z1U3WlBpNUk2cVgxMS92ZTA0Q1dKTUMxeG1lN0RGRHQvNTVLSUgvaGFnenowYUJQdDJ5UkVLUFBHOEtnWXpZRDkxdlh0c1pvQzQvaFR2RjB1MTg0WjYyc0poaUxLOWhiMi9OS0NENFRxT1hJS28zQzhjZldhTXVIRUhIcjU4aHJHYkZqcytpcGMyR2NvM2doVWkvVTYxRHgzb0RDUVBlaHV1K0hqT3hYWEdQWDBYc1NYM21DeTF0UGt3YWsxMTQ5K2RkRWlMOTBBNmpCLy92SU1YZ3c2ZFNuMzdzb3ZJb0hQNU03NWZTYm9oWmgxSWJITDNOb2haRE9qRGNnNGV5dEpRQkxNczFLK3hSM0cvUEdaR0ZpdnNLZ1dibFJ0M1ZGVWpTMWlCWWRxU2UwMmFQdjIwSVpIeWVDY0l2Yzk5TnlWejVOcmpHdndicXRtVzRkQzFDQ1lZdHdDZ0c4V1dIdlZvQXViWTJ0UXZSZTZkVW9ZOVMrUnhNZldMU2RFRXQwYlRqZERSRHQvQURXazlwOC9MSUlXVXdvWWl0eGY3ZUowem5jMXVHVFpjYldiYk9yNS8waWxmczYyaUp1SFBHZ1dMNmdBNjdmSHJWeFlrNEZFL0RTVHpDbmd0czFWcGFsOU84Mk5BYjhha2hBU29HZCtFZ3pVTmNFcmp6R2lNS0cya0x4NVZpMGs5cUdPRVArOTRXQk9vemE4bXZlcEJDQjY0RDBvOXlYalNXNEJpODVvU3FXYlp2RmhqRnJybXk3SWxBM3FyNDNERHZkYlBMZVBhaWZRSzFvMmwxUWFqbkxVa1hBYnFMdEVkOGFFekkxQXhBRXV3R2NuWGdhQjYvMEdIcXpTVkc1N3F6YVRVendTdTVEQ25VWU5kUHdjOTRrVVRUYTFrZTRYRjdtMG80MlpaL3F3SUlsc1ZXOXRHcSszajFTRG5ibFM2K003V2F1ZW9hVHVhL1pPcFNEMVlsQ0pQNk5nV2JaNVpwMklFeVJrRm0zUUMvNFhRWkRiQVNYczdVa3hFeHNEVDZIZEhVK0pMeTBoUVg4R2t3NFFtdWt0dnNXeE5xeFpaMFdRLzQ0T0J3eVJPWkhkY3crdVA2ay9VamE0N0VieHF0T0ZQeUJ1UXJtL2tDdDFwZ29NcW96cUYvYWt6SVlLYkxMTmR2L2RiWDNaRWxpb1lta1F5ZFBadGlBUTlRL2NiQmNya0I5MnpLbmp3cVVwdkpWaHMzdTBYS3R0Q1BSZXp3d1dweUQ4Z2RjQlNNeFRzY1pYdmk4RXJPOC84bUNYMXhBYldQSmh5VzZYZzBiOGViSE1XRlVhUFBiSkFseEZUQUpWelNXdmdMNVB3ZTZkMHlWTC9iS2x4SGpoTTN0eE9PYUJ6ZlZMNHdlWVAxWis5SEx1czdWYk1wZ1FYNDFjRHdkQXZVRmJGb0tsWEJiUG43WlM1S2lpN1JOSnREaUVqaC8rb213dnBCTFFkYzVERXNUdzI0T3kzUnJCTFFUVy82c3hMb0ZzdUJqM29HVVRjb2tCSVp0YnJWU2FZU09LMjhXL0d2dkRGWWJpR0VnYWdodG9hZWtsM2FocDF3S1lmdi92MWRrV1g2YVFDK0Z3SnJxT1JmN2FsdnhXcU54QzZKdkRlaitXMHg4cEZ4Q0VJU2pFSmZwSTFYaUIzL0FkMnpNcVlmWUNBTVM4QU5pTmpjbWtkalFmK1c1bCtPWFlmUXZVMW5Zb1U3YUtRUkIzdmNVaTFtUDVaZG4vZE1memxRZDNzaFlzQVJTd0dleXAwQ0JDekh1VElUSFJlWENhOGhnM2dTZjgwT3pwb1o5WllDWHlCeXRPNDVJekJJSVNGMHl0YjljaUxIWkh6cjNoZXR2MWFvQVFaQVJNdDJjRlZMUnREZ1AzUGE5QlNOdktRR2Z5KzRqYk95aUsvQS9hS1BnaGVKVjVEMHBMNnhsRTNmV0UzdURiMUpleHVFK3I0cXUzQU1wZERmRUNkZGdBVHhOTUoveENBQjhneUZJT3hxMUFKNGhMNEJPRnZnWmxMMGgyWGwzVzAyc0o0Qi9lS01kanNJZjZRUXJVM3pCd2taZnhqV2k1cDVUWWRocWZtSTlzUVlGc25Bd2tWYzJzVUxnTitpdUcwanhzTlhFZTJRRkNncERCTnZNMk5qSjYvaU9sYnE1am5ZMnl3UDYvSysyQUFxdmROTE52RzNaeURJRWZxZkE4cnJJTEpOb2h5UEFDaFFVaDRKdlpuR1lENEhmNUxLNVJBODhEN2hXQUNoUUJBbGQwNUZIWGVEM0ZpT2JGMFhkaWVheG50amJTaFMybGFWZGg3blhOZnBENEdjaldoU1YrVXJXRXd0Ui9BQnR3elltK0l4U2x3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuICByZXR1cm4gaW1hZ2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmbnQoKXtcclxuICByZXR1cm4gYGluZm8gZmFjZT1cIlJvYm90b1wiIHNpemU9MTkyIGJvbGQ9MCBpdGFsaWM9MCBjaGFyc2V0PVwiXCIgdW5pY29kZT0xIHN0cmV0Y2hIPTEwMCBzbW9vdGg9MSBhYT0xIHBhZGRpbmc9MjQsMjQsMjQsMjQgc3BhY2luZz0xMiwxMiBvdXRsaW5lPTBcclxuY29tbW9uIGxpbmVIZWlnaHQ9MTkyIGJhc2U9MTUyIHNjYWxlVz0zMDcyIHNjYWxlSD0xNTM2IHBhZ2VzPTEgcGFja2VkPTAgYWxwaGFDaG5sPTAgcmVkQ2hubD00IGdyZWVuQ2hubD00IGJsdWVDaG5sPTRcclxucGFnZSBpZD0wIGZpbGU9XCJyb2JvdG9fMC5wbmdcIlxyXG5jaGFycyBjb3VudD0xOTRcclxuY2hhciBpZD0wICAgIHg9NjM2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIgICAgeD01NzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTMgICB4PTQ1MCAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMiAgIHg9Mjk4NyAgeT0xMjQyICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMzICAgeD0xNzE0ICB5PTc2OSAgIHdpZHRoPTY2ICAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzQgICB4PTE5OTkgIHk9MTI2MyAgd2lkdGg9ODEgICAgaGVpZ2h0PTg3ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNSAgIHg9MTIxNCAgeT05NTEgICB3aWR0aD0xMzYgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM2ICAgeD0xNjEwICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzcgICB4PTEzNDEgIHk9NTk1ICAgd2lkdGg9MTUyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOCAgIHg9MTY1OCAgeT01OTIgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM5ICAgeD0yMDkyICB5PTEyNjMgIHdpZHRoPTYyICAgIGhlaWdodD04NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MjggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDAgICB4PTEwMyAgIHk9MCAgICAgd2lkdGg9OTAgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MSAgIHg9MCAgICAgeT0wICAgICB3aWR0aD05MSAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQyICAgeD02NjQgICB5PTEyOTQgIHdpZHRoPTExNCAgIGhlaWdodD0xMTQgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDMgICB4PTAgICAgIHk9MTMxNyAgd2lkdGg9MTI4ICAgaGVpZ2h0PTEyOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NCAgIHg9MTkxNiAgeT0xMjY0ICB3aWR0aD03MSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTExMSAgIHhhZHZhbmNlPTMxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ1ICAgeD0yMzMgICB5PTE0NTcgIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDYgICB4PTI4MjggIHk9MTI0NSAgd2lkdGg9NjggICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMTIgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NyAgIHg9MCAgICAgeT00MjkgICB3aWR0aD0xMDkgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ4ICAgeD0yMzkyICB5PTU4MyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDkgICB4PTExMiAgIHk9MTE0MyAgd2lkdGg9OTMgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MCAgIHg9MTQ0MyAgeT03NzIgICB3aWR0aD0xMjYgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUxICAgeD0yNjYwICB5PTU3NSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTIgICB4PTE3OTQgIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MyAgIHg9NTM5ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU0ICAgeD00MDYgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTUgICB4PTIwODIgIHk9OTQxICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NiAgIHg9MjUyNiAgeT01ODEgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU3ICAgeD0xNTgxICB5PTc3MSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTggICB4PTIzODMgIHk9MTExMyAgd2lkdGg9NjcgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OSAgIHg9MzcyICAgeT0xMTQwICB3aWR0aD03MyAgICBoZWlnaHQ9MTU2ICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYwICAgeD01MzkgICB5PTEzMDcgIHdpZHRoPTExMyAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjEgICB4PTE2ODggIHk9MTI2OSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTkzICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD01MSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MiAgIHg9NDExICAgeT0xMzA4ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYzICAgeD04MDAgICB5PTc3OSAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjQgICB4PTE0MjEgIHk9MCAgICAgd2lkdGg9MTc3ICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xNiAgICB4YWR2YW5jZT0xNDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NSAgIHg9MjcwOCAgeT03NTIgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY2ICAgeD0yMjIxICB5PTkzOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjcgICB4PTE4MTEgIHk9NTkyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OCAgIHg9MTY1MCAgeT05NDYgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY5ICAgeD0yNDk2ICB5PTkzNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzAgICB4PTI2MzAgIHk9OTMyICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MSAgIHg9MTk2MCAgeT01OTAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcyICAgeD05MTYgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzMgICB4PTI5NiAgIHk9MTE0MiAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NCAgIHg9MjcyICAgeT03OTAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc1ICAgeD03NjcgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzYgICB4PTI3NjIgIHk9OTI2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NyAgIHg9MjE5NyAgeT03NjUgICB3aWR0aD0xNjMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc4ICAgeD0xMDY1ICB5PTk1MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzkgICB4PTE1MDUgIHk9NTk0ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MCAgIHg9MTkzOCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgxICAgeD0yMjIyICB5PTIwNyAgIHdpZHRoPTE0MSAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODIgICB4PTEzNjIgIHk9OTQ5ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MyAgIHg9MjEwOSAgeT01ODggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg0ICAgeD02MTcgICB5PTk1NSAgIHdpZHRoPTEzOCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODUgICB4PTEyOCAgIHk9NzkyICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NiAgIHg9Mjg3MCAgeT03NDkgICB3aWR0aD0xNDcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg3ICAgeD0yMDAyICB5PTc2NyAgIHdpZHRoPTE4MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODggICB4PTMxMiAgIHk9OTY2ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OSAgIHg9MTU3ICAgeT05NjggICB3aWR0aD0xNDMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkwICAgeD0xNTA2ICB5PTk0NyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTEgICB4PTY1OCAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MiAgIHg9Mjk0NSAgeT0yMDQgICB3aWR0aD0xMTEgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkzICAgeD01NjcgICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTQgICB4PTE1NzAgIHk9MTI3MSAgd2lkdGg9MTA2ICAgaGVpZ2h0PTEwNSAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NSAgIHg9MCAgICAgeT0xNDU4ICB3aWR0aD0xMjEgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTcyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk2ICAgeD0yNjIyICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NDkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTcgICB4PTE1ODUgIHk9MTEyMSAgd2lkdGg9MTE5ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OCAgIHg9Njc3ICAgeT00MTggICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk5ICAgeD0xNDUzICB5PTExMjMgIHdpZHRoPTEyMCAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAwICB4PTEyMDkgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDEgIHg9MTMyMCAgeT0xMTI1ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMiAgeD0xODY2ICB5PTQwOCAgIHdpZHRoPTEwMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9NiAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAzICB4PTEzNCAgIHk9NjEyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDQgIHg9MjYyNyAgeT0zOTUgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNSAgeD0xMDUwICB5PTc3NiAgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA2ICB4PTEzMjcgIHk9MCAgICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDcgIHg9MjQ5NSAgeT00MDEgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOCAgeD0yNzU1ICB5PTM5MiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA5ICB4PTE5NzMgIHk9MTExNyAgd2lkdGg9MTY4ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTAgIHg9MjE1MyAgeT0xMTE1ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMSAgeD0xMTgxICB5PTExMjYgIHdpZHRoPTEyNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEyICB4PTI2NyAgIHk9NjExICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTMgIHg9NDAwICAgeT02MDAgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNCAgeD0yMjgxICB5PTExMTMgIHdpZHRoPTkwICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE1ICB4PTE3MTYgIHk9MTEyMCAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTYgIHg9NDU3ICAgeT0xMTQwICB3aWR0aD05NSAgICBoZWlnaHQ9MTU1ICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTIzICAgIHhhZHZhbmNlPTUyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNyAgeD0xODQ1ICB5PTExMTcgIHdpZHRoPTExNiAgIGhlaWdodD0xMzUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE4ICB4PTI3NzIgIHk9MTEwMCAgd2lkdGg9MTIyICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTkgIHg9MjQ2MiAgeT0xMTEzICB3aWR0aD0xNjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTEyMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMCAgeD0yNjM3ICB5PTExMDYgIHdpZHRoPTEyMyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIxICB4PTAgICAgIHk9NjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjIgIHg9MjkwNiAgeT0xMDk3ICB3aWR0aD0xMTcgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMyAgeD00NTggICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI0ICB4PTI0NTEgIHk9MjA2ICAgd2lkdGg9NjEgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjUgIHg9MzQ5ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNiAgeD0yMzc4ICB5PTEyNTkgIHdpZHRoPTEzOCAgIGhlaWdodD03OSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYwICB4PTUxMyAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjEgIHg9MjE3ICAgeT0xMTQyICB3aWR0aD02NyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MiAgeD0xMzQxICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MjUgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYzICB4PTEzMDAgIHk9Nzc0ICAgd2lkdGg9MTMxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjQgIHg9NzAyICAgeT0xMTI5ICB3aWR0aD0xNDkgICBoZWlnaHQ9MTQ5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTMwICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NSAgeD00NjUgICB5PTk1NSAgIHdpZHRoPTE0MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY2ICB4PTIzNzUgIHk9MjA2ICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjcgIHg9MjA1ICAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OCAgeD0yNzE2ICB5PTEyNTEgIHdpZHRoPTEwMCAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY5ICB4PTk5NSAgIHk9NTk5ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzAgIHg9MTM2OCAgeT0xMjczICB3aWR0aD05OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTcxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MSAgeD0xMTMxICB5PTEyNzcgIHdpZHRoPTExMCAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcyICB4PTIyNTEgIHk9MTI2MSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTgxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT04OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzMgIHg9MTMzICAgeT0xNDU4ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NCAgeD0xMTY4ICB5PTU5NyAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc1ICB4PTMzMyAgIHk9MTQ0OCAgd2lkdGg9MTA1ICAgaGVpZ2h0PTU5ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzYgIHg9MTgxNSAgeT0xMjY4ICB3aWR0aD04OSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTYwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NyAgeD04NjMgICB5PTExMjkgIHdpZHRoPTEyMSAgIGhlaWdodD0xNDcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MjkgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc4ICB4PTg5OSAgIHk9MTI4OCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzkgIHg9NzkwICAgeT0xMjkwICB3aWR0aD05NyAgICBoZWlnaHQ9MTEyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MCAgeD0yNTI4ICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgxICB4PTg2NiAgIHk9NTk5ICAgd2lkdGg9MTE3ICAgaGVpZ2h0PTE2NiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODIgIHg9Mjg5MyAgeT05MjMgICB3aWR0aD0xMTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MyAgeD0yOTA4ICB5PTEyNDIgIHdpZHRoPTY3ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NjIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg0ICB4PTIxNjYgIHk9MTI2MSAgd2lkdGg9NzMgICAgaGVpZ2h0PTgyICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODUgIHg9MTQ3OSAgeT0xMjcxICB3aWR0aD03OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NiAgeD0xMjUzICB5PTEyNzQgIHdpZHRoPTEwMyAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg3ICB4PTEwMDggIHk9MTI3NyAgd2lkdGg9MTExICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODggIHg9MjU0MiAgeT03NTggICB3aWR0aD0xNTQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OSAgeD0yMzcyICB5PTc2MCAgIHdpZHRoPTE1OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkwICB4PTExMjkgIHk9Nzc2ICAgd2lkdGg9MTU5ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTEgIHg9OTI1ICAgeT03NzcgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MiAgeD0xNjIgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkzICB4PTMyNCAgIHk9MjE0ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTQgIHg9MCAgICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NSAgeD0xMzU5ICB5PTIxMCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk2ICB4PTE4MTQgIHk9MjA4ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTcgIHg9MTAxNiAgeT0wICAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTk5ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0yMyAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OCAgeD0xNzkyICB5PTc2OSAgIHdpZHRoPTE5OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTUwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk5ICB4PTExNzggIHk9MCAgICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDAgIHg9MjkyMiAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMSAgeD02NDEgICB5PTIxNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAyICB4PTc3NSAgIHk9MjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDMgIHg9MTk3NiAgeT0yMDcgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNCAgeD0xMDE4ICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA1ICB4PTExMTIgIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDYgIHg9OTA5ICAgeT0yMTMgICB3aWR0aD05NyAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNyAgeD0yMTEwICB5PTIwNyAgIHdpZHRoPTEwMCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yOCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA4ICB4PTAgICAgIHk9OTY5ICAgd2lkdGg9MTQ1ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDkgIHg9MTUyMSAgeT0yMDggICB3aWR0aD0xMzcgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMCAgeD0yMTg0ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjExICB4PTIwMzEgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTIgIHg9MTg3OCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMyAgeD0yNzY5ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE1ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE0ICB4PTEyMDYgIHk9MjEwICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTMgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTUgIHg9Mjc5ICAgeT0xMzE2ICB3aWR0aD0xMjAgICBoZWlnaHQ9MTIwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQwICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNiAgeD0yNjU1ICB5PTIwNiAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNzQgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTAgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE3ICB4PTI2MjUgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTggIHg9MjQ4MSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOSAgeD0yMzM3ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIwICB4PTE2NzAgIHk9MjA4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjEgIHg9NDg2ICAgeT0yMTQgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMiAgeD0yMzYwICB5PTkzOSAgIHdpZHRoPTEyNCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIzICB4PTEyMSAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD03ICAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjQgIHg9MTYwNCAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNSAgeD0xNDczICB5PTQxMiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI2ICB4PTE3MzUgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjcgIHg9NTMyICAgeT02MDAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOCAgeD0yOTI2ICB5PTU2OSAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI5ICB4PTI1MjQgIHk9MjA2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzAgIHg9OTk2ICAgeT0xMTI5ICB3aWR0aD0xNzMgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTEzNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMSAgeD0xOTc5ICB5PTQwNyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMyICB4PTEwNzYgIHk9NDE1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzMgIHg9OTQzICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNCAgeD04MTAgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM1ICB4PTI3OTMgIHk9NTcyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzYgIHg9NzcyICAgeT02MDAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNyAgeD0yOTcwICB5PTM4OCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM4ICB4PTY2MyAgIHk9NjAwICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzkgIHg9MCAgICAgeT0xMTQzICB3aWR0aD0xMDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MCAgeD0yODEwICB5PTIwNSAgIHdpZHRoPTEyMyAgIGhlaWdodD0xNzMgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NSAgICAgeGFkdmFuY2U9OTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQxICB4PTAgICAgIHk9NzkyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDIgIHg9MjYwICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MyAgeD01MzggICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ0ICB4PTM5OSAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDUgIHg9MjgzMSAgeT0zOTAgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NiAgeD0yMjUzICB5PTU4MyAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ3ICB4PTE0MCAgIHk9MTMxNyAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEyOCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDggIHg9NTY0ICAgeT0xMTI5ICB3aWR0aD0xMjYgICBoZWlnaHQ9MTUzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OSAgeD0yMTExICB5PTQwNyAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUwICB4PTIyMzkgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTEgIHg9MjM2NyAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MiAgeD02NzIgICB5PTc3OSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUzICB4PTc0OSAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTQgIHg9ODgzICAgeT0wICAgICB3aWR0aD0xMjEgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NSAgeD0xNzQ0ICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmtlcm5pbmdzIGNvdW50PTE2ODZcclxua2VybmluZyBmaXJzdD0zMiAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg2ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04OSAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTIyMSBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD02NSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NzQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTQgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTcgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODQgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODYgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9NzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9NzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9ODUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTggYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTUgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk5IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIwIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NyAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTE0XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04OSAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIxIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTIgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTUgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NCAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDYgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjEgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDYgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05OSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NSAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTczIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk3ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDIgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE3MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NjUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQge2dldFRvcExldmVsRm9sZGVyfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAndGljaycsIGhhbmRsZVRpY2sgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIGNvbnN0IHRlbXBNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVUaWNrKCB7IGlucHV0IH0gPSB7fSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICB8fCBmb2xkZXIuZ3JhYkRpc2FibGVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LnByZXNzZWQgJiYgaW5wdXQuc2VsZWN0ZWQgJiYgaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICBpZiggaW5wdXQuaW50ZXJhY3Rpb24ucHJlc3MgPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgICAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbi5zdWIoIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTsgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQud29ybGRUb0xvY2FsKGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9OT1RFOjogaW4gb3J0aG9ncmFwaGljIG1vZGUsIHdlJ3ZlIGFscmVhZHkgbXV0YXRlZCB0aGUgcG9zaXRpb24gb2YgZm9sZGVycyxcclxuICAgICAgICAgIC8vbWVhbmluZyB0aGVyZSBjb3VsZCBiZSBzb21lIGluY29uc2lzdGVuY3kgd2l0aCB0aGUgbW91c2VJbnRlcnNlY3Rpb24gcG9pbnQgbm8gbG9uZ2VyIGJlaW5nIHJpZ2h0Li4uXHJcbiAgICAgICAgICAvL0kgdGhvdWdodCB0aGlzIHdhcyBwbGF5aW5nIGEgcm9sZSBpbiBhIGJ1ZyB3aXRoIG9ydGhvZ3JhcGhpYyBmb2xkZXIgbGF5b3V0LCBhcHBlYXJzIG9rIGZvciBub3cuXHJcbiAgICAgICAgICBmb2xkZXIucG9zaXRpb24uY29weShpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcblxyXG4gICAgICAgICAgZm9sZGVyLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgIGlmKCBoaXRPYmplY3QgPT09IHBhbmVsICl7XHJcbiAgICAgICAgICBoaXRPYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGhpdE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlUGxhbmUuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoIGlucHV0Lm1vdXNlQ2FtZXJhLmdldFdvcmxkRGlyZWN0aW9uKCBpbnB1dC5tb3VzZVBsYW5lLm5vcm1hbCApLCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZVBsYW5lICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICAgIGlmKCBoaXRPYmplY3QgIT09IHBhbmVsICl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZCA9IGZvbGRlcjtcclxuXHJcbiAgICAgICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5zZWxlY3RlZC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlT2Zmc2V0LmNvcHkoIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkuc3ViKCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgICBcclxuICAgICAgdGVtcE1hdHJpeC5nZXRJbnZlcnNlKCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggdGVtcE1hdHJpeCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcblxyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICBpbnB1dE9iamVjdC5hZGQoIGZvbGRlciApOyBcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYmJlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaW5wdXQuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG5cclxuICAgICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJSZWxlYXNlZCcsIGZvbGRlciApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiZXhwb3J0IGNvbnN0IGdyYWJCYXIgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQWdDQVlBQUFDaW5YNkVBQUFBQ1hCSVdYTUFBQzRqQUFBdUl3RjRwVDkyQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBRHNrYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QZ284ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMall0WXpFek1pQTNPUzR4TlRreU9EUXNJREl3TVRZdk1EUXZNVGt0TVRNNk1UTTZOREFnSUNBZ0lDQWdJQ0krQ2lBZ0lEeHlaR1k2VWtSR0lIaHRiRzV6T25Ka1pqMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M4d01pOHlNaTF5WkdZdGMzbHVkR0Y0TFc1ekl5SStDaUFnSUNBZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB3YUc5MGIzTm9iM0E5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmNHaHZkRzl6YUc5d0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRVYyZEQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sUlhabGJuUWpJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenAwYVdabVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM1JwWm1Zdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WlhocFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzlsZUdsbUx6RXVNQzhpUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMGIzSlViMjlzUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5NGJYQTZRM0psWVhSdmNsUnZiMncrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZRM0psWVhSbFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qSTFPak15TFRBM09qQXdQQzk0YlhBNlEzSmxZWFJsUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTmIyUnBabmxFWVhSbFBqSXdNVFl0TURrdE1qaFVNVFk2TXpjNk1qTXRNRGM2TURBOEwzaHRjRHBOYjJScFpubEVZWFJsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPak0zT2pJekxUQTNPakF3UEM5NGJYQTZUV1YwWVdSaGRHRkVZWFJsUGdvZ0lDQWdJQ0FnSUNBOFpHTTZabTl5YldGMFBtbHRZV2RsTDNCdVp6d3ZaR002Wm05eWJXRjBQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0elBDOXdhRzkwYjNOb2IzQTZRMjlzYjNKTmIyUmxQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tsRFExQnliMlpwYkdVK2MxSkhRaUJKUlVNMk1UazJOaTB5TGpFOEwzQm9iM1J2YzJodmNEcEpRME5RY205bWFXeGxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa1J2WTNWdFpXNTBTVVErWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qZGxOemRtWW1aakxUZzFaRFF0TVRGbE5pMWhZemhtTFdGak56VTBaV1ExT0RNM1pqd3ZlRzF3VFUwNlJHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09tTTFabU0wWkdZeUxUa3hZMk10WlRJME1TMDRZMlZqTFRNek9ESXlZMlExWldGbE9Ud3ZlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwVFpYRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrZ2NtUm1PbkJoY25ObFZIbHdaVDBpVW1WemIzVnlZMlVpUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WVdOMGFXOXVQbU55WldGMFpXUThMM04wUlhaME9tRmpkR2x2Ymo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21sdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRwak5XWmpOR1JtTWkwNU1XTmpMV1V5TkRFdE9HTmxZeTB6TXpneU1tTmtOV1ZoWlRrOEwzTjBSWFowT21sdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwM2FHVnVQakl3TVRZdE1Ea3RNamhVTVRZNk1qVTZNekl0TURjNk1EQThMM04wUlhaME9uZG9aVzQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOXpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZMjl1ZG1WeWRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwd1lYSmhiV1YwWlhKelBtWnliMjBnWVhCd2JHbGpZWFJwYjI0dmRtNWtMbUZrYjJKbExuQm9iM1J2YzJodmNDQjBieUJwYldGblpTOXdibWM4TDNOMFJYWjBPbkJoY21GdFpYUmxjbk0rQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajV6WVhabFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4Tmkwd09TMHlPRlF4Tmpvek56b3lNeTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGphR0Z1WjJWa1BpODhMM04wUlhaME9tTm9ZVzVuWldRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0eFBDOWxlR2xtT2tOdmJHOXlVM0JoWTJVK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajQyTkR3dlpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0ek1qd3ZaWGhwWmpwUWFYaGxiRmxFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQZ29nSUNBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBbzhQM2h3WVdOclpYUWdaVzVrUFNKM0lqOCtPaEY3UndBQUFDQmpTRkpOQUFCNkpRQUFnSU1BQVBuL0FBQ0E2UUFBZFRBQUFPcGdBQUE2bUFBQUYyK1NYOFZHQUFBQWxFbEVRVlI0MnV6WnNRM0FJQXhFVVR1VFpKUnNrdDVMUkZtQ2RUTGFwVUtDQmlqby9GMGhuMlNrSnhJS1hKSmxyc09TRndBQUFBQkE2dktJNk83QlVvclhkWnUxL1ZFV0VaZVpmYk41bS9aYW1qZksrQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0JmdWFTbmE3aS9kZDFtYlgrVVNUck43SjdOMjdUWDByeFJ4Z25nWllpZklBQUFBSkM0ZmdBQUFQLy9Bd0F1TVZQdzIwaHhDd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDEnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIC8vIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuNTtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAsIGltYWdlLmhlaWdodCAvIDEwMDAsIDEsIDEgKTtcclxuXHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxufSgpKTtcclxuXHJcbmV4cG9ydCBjb25zdCBkb3duQXJyb3cgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qRTRPakkxTFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRveE9Eb3lOUzB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvek1EUXlZakkwWlMxaU16YzJMV0kwTkdJdE9HSTRZeTFsWlRGalkySXpZV1UxTURVOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pNd05ESmlNalJsTFdJek56WXRZalEwWWkwNFlqaGpMV1ZsTVdOallqTmhaVFV3TlR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NVVpbHowQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFKZFNVUkJWSGphN04zTGNjSkFFSVRoUnVXN25jVWVUUWhrUUFpSURNZ0loVUlJY0ZRV0pnSjg4Rktsb3Z3QXJOMmQ2WjQ1Y1pHQS9UOXZpWWZ0eGVWeVFZenVkTEVFQVNBbUFNUUVnQmpKZVdsMXh5bWxOd0FIQU1keEhIdkZ4VThwRFFDV0FGYmpPSDdJN0FDVCtPOEFObmtoRk9Odjhob2M4cHJ3QTdpSmZ4MHBCSlA0MTJtR29ETVFYd3JCTi9HYkl1aU14SmRBOEV2OFpnZzZRL0dwRWR3UnZ3bUN6bGg4U2dRUHhLK09vTVlPTUR3WW53ckJFL0duQ0FiWEFQS1RYLy9qRkp1VVV1ODRmdjlrL091c1MvOFFkQWJsMzg3ZUk0TDhtUGN6bktyb1RsaHlCMWpPZUM1WENHYU1YMkl0cXdGWUFUaXBJU2dRLzVUWDBoZUEvTjYyRklKUzhVdCtUbEQwSWxBSmdjZjRWVjRHS2lEd0dyL1crd0RVQ0R6SHJ3YUFGWUgzK0ZVQnNDRmdpRjhkQUFzQ2x2aE5BSGhId0JTL0dRQ3ZDTmppTndYZ0RRRmovT1lBdkNCZ2pXOENnSFVFelBITkFMQ0tnRDIrS1FEV0VDakVOd2ZBQ2dLVitDWUJUQkQwQU02MUVSU0lmd2JRVzR4dkZrQkdjTXc3UVRVRWhlS3Y4bk5CQURDTVFERytlUUMxRUtqR0I0Q0ZsNzhSbEZKYTR1c1hURjduakpSdnozNWVEL0ZkQVNpSUFLcngzUUVvaEFDcThWMWNBMVM2SnBDTTd4S0FRUVJ1NDdzRllBaUI2L2l1QVJoQTRENitld0FORVZERXB3RFFBQUZOZkJvQUZSRlF4YWNDVUFFQlhYdzZBQVVSVU1hbkJGQUFBVzE4V2dBeklxQ09UdzFnQmdUMDhla0JUQkRzbmpoMHh4NWZBa0JHTUFEWVBuRElOaCtEQUtDSFFDYStGSUE3RVVqRmx3UHdCd0s1K0pJQWZrQWdHUjl3K0pXd09lZjZ6V0RWK1BJQVl1TGZ4Z1dBV0lJQUVCTUFZZ0pBak9SOERnRCs2T3pndjR1eTlnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBoID0gMC4zO1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAtMC4wMDUsIC0wLjAwNCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja21hcmsgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qTXpPalV6TFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRvek16bzFNeTB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvMk9EY3hZVGs1WXkwek5qRTVMVGxrTkdFdE9EZGtOaTB3WVdFNVlUUmlOV1U0TWpjOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pZNE56RmhPVGxqTFRNMk1Ua3RPV1EwWVMwNE4yUTJMVEJoWVRsaE5HSTFaVGd5Tnp3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NXo5UlQzQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFUdFNVUkJWSGphN0p6YmI1UkZHTVovMnhiQ3ZWaEFTRXhVaUkxNDR3MGhRdEhFR3JIZ0lTcWdONktndE5ZV0FiMHcwV28xWHFyYlBiU2xva1lTeGZNaGVtWC9BYTd3R0FWcThYVHAzMERYaTVtSm0wYTJ1OXYzL2I2WjJYbHVkck9IZHcvUE16UFArNzR6WDZGV3F5R0ZnWUVCRWxwR0QvQWVjQ3R3Qi9EYmNtK1ltNXNUKy9DdTlQL25pbTZnQ0R3Q1hBdDhEVnlYNVJkSUFzZ1BCYUFFak5ROWRpUHdGYkE1Q1NCK1RBRlAvYy9qVzRIUGdMNGtnSGd4Q3d3MWVQNW00R043bXdRUUVib3MrVTgwOGRxdHdFZjJOZ2tnRXJjLzB5VDVEbjEyT2RpU0JCQSsrYVVXeVhmWUFud0RYSjhFRUc2cU53a01yeURHWnBzaTNwQUVFQjZxVjNEN3JhSVArTkttaWtrQWdlQXQ0SWhndkp2c1RKQUU0RGtLd0NuZ3NFTHNzMGtBL3EvNXM4QWhoZGpUd0VGcGQ1b2dTMzVWYWVUUEFrOERpMGtBL3BKZkVsN3pIVTdTdUhLWWxnQVAxdnl5a050Zmloa3Q4cE1BWkVrYVZvaGJWWXFiQkNDSVU4Q1RDbkZMd0pqMmwwOENXTm1hLzdhUzI2OEN4NlFOWHhLQXJIbWVCaDVYV2s3R3NpQS9Ud0dNWWZhL2hVcCttZllhTzgyNC9lR3N5TTlMQUM5Z21pUHZBenNESTcvTHJzMURTaU4vS0k4ZmxDWEdnVmZ0L1Y3Z0RMQXJJQUZNaCtyMmZSREFTOERFa3NjMkFoOEMvUjNzOXN2QWFKNVRXbGJrdjN5RjU5WmpkcjFzOTNqYTEzTDdGZXYyYXpFTFlMd0IrUTVyTWIzdWJSNGF2cE5LYm44YWVBYTRuTGU2dFEzZlJKT3Y3UVcrOEdnbTZMRWpWS094TTRNNUQzQTU3eCtwS1lBWDZ3eGZzOWdBZkFMczhJQjhyY2FPS3h2WGZGQzVsZ0RHZ1ZmYWZLOHpocnR5L0UrMFhIa2xMN2VmcFFBbVdwajJseFBCYlRuOEo3UG8xZlpIOFF6U0Fuak5qbjRKck1lY2pzbXFXRlFBM2xWeSt5WHI5b2xkQUhjS3g3c2ErRHdEWTloajgveURpcW5lWWljSTRGSGdSK0dZYTVXekE4M0d6aFJ3MUZmeU5RVHdDM0NQdlpYRU91QlR6RVVVSkxFcWcxVFBXL0sxVE9DZndDQndVVGp1TmNpV2pic3haVmlOVkMrMzJyNHZhZUFmd0YzQWduRGNUVllFdHd1TlVBM3l5NWpkdTNTeUFBQitCM1lyTEFjYkJPb0U3eWhOKzVOMnpTY0p3R0FlZUFENFRqaHVMNmFCMUtvbjZMYmtQNlkwOG8valNZWFBGd0VBbkFjZVZoREJWUzFtQjY2eG8wSCtGS2F4czBoZ3lLb2RmQUY0RVBoSnFVNnczRXl3eWhxelEwcmtqNFJJZnBZQ0FMZ0U3TEV6Z2lSY3hiQy93Y2l2b0ZQZWRlUUhpNnkzaFAxbGplRzhVb3E0TkRzb1lJbzhXanQ1Z2lZL0R3SFVwNGkvS21RSForcEVVTURzNU5GdyswVXlPTFFScXdEY2NuQXY4TDF3M0hYQWFac2l2cTVrK0lyQUNTSkJucWVENTRFRHdBZkFMWUp4TndIZktwbXlzaVYvTVJZQjVIMHk2QUt3SC9oQk9PNXFZSTJDNFRzYUUvaytDQURNMWJIM0lsOHhsRVRWR3I0YWtjR1hzNEYvQTNmYkdjRTNWQWlvdGgrcUFNQjBFWGQ3Sm9KSlBOekdGYXNBd0RTUUJwSGZWTkt1Mno5RzVQRHhlUGdDOEJCd0x1ZVJmeUxHTlQ4RUFZRFpUSElBK1FaU3Mydis4ZGpjZm1nQ2NIV0MrNUZ2SUMzbjlrYzdoWHpmQmVDTTRSN2t5OFlkNS9aREZRRDgxMEM2cVBnWjBidjlrQVZRbnlKcUZJdmV4R3ptSUFuQWIxd0M3aE0yaGtYZ1dUb1lvVjBsekRXUUpGTEU2Qm83blNBQWx5THVZMlVOcEFvWlhvb3RDVUFlQzVnRzBzOXRrajlLUXRBQ0FOTkFHcVMxUFlhbFJINDhBbkFwWXJQYnk0b0VkbWdqQ2FENUZIRXZqYmVYdllFcDd5WkVLQURuQ2ZaYkVmd0RQSTg1TCtESWY0NE9hT3kwZzM4SEFNL2U3Z3VJUng5NEFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFRVNVUkJWR2lCN2RoQkRvTXdERVJSN2pUaUpDUHVmNVd1bXBoVnhYeWtWSkd6SXBKNWNnc2tkbzRManFPQnJRQTlIQTAwME1EK3dQVmp2QVdjRkJqekVCZ0pwTUNjWjhCTUlBVEtQQUpLQWhsUTV3bndUY0FwTUM1RFlDU1FBdmVyNThCTUlBVEtEUkZRRXNpQUdrOEFVMEFRTUFVRUFWTkFFREFGQkFGVFFCQXdCUVFCVTBBUU1BVUVBVk5BRURBRkJBRlRRQkR3Y2dEL0JQNG40c2ZJWHlUOEt2T1BDWC9PZkVIQlN4cGZWUEd5empjV3ZMWHh6UlZ2Nzd6QXdDVU9MN0p3bWNjTFRWenE4bUk3TC9mUGtrSUU0SmFITjEyNDdlT05KMjU5ZWZOOWkxbHpBRkdERmgzQ2xLaFZCMUV6Yk5saDNJajd3eFBOQmhwb1lEV1FqZ2EyQUQ1Uy9DeUl2Ym1xN2dBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ0J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgdW5kb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVQU1VSQlZHaUI3ZGd4Q3NRd0RBVEEvRW5vSlVMLy84cFZzV1dsT0x3TFVUQnlGZmJFc05jNGRpNG4xOVhBVVlCc3JnWWFhT0I4d1A4c0dqQVdjQm93Rm5BYU1CWndHakFXY0JqUVVBRUNKQXhqUUtpQUFmSjgyZ1JtQlJDWUZWQmdWRUNCeCsvYmdLWnNHOGdEKzBDcXNBK2tDUUJZS3dEQU9vSUFTd1VFV0dZZ0lGYUFnRGlFQWFFQ0JvUXBFSmdWUUdDT29jQ29nQUx3anZTb0FBUDNJQTRvQ3dnTktBc0lEV2c1d1A0RlpRRW5BV1VCSndGbGdUc3IyMUJHVnJXcHpxem94Ukt5bXBkcnpFb09HRXRXY2NoYXM0S0Rac3JlUDJ6bjdQVUx4M2dFZ1ZHZzZ0bzNDeFJkZlVPQm91dC9LRkQ2Q2NSWVFFakFXRUJJd0ZnZ3ozM3dpMllERFRSUURhQ3JnU09BSDhIOEtxZ2dZcEFVQUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDUnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuIiwiLyoqIFxyXG4gKiBCaWcgYnV0dG9uIHdpdGggYW4gaW1hZ2Ugb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBBbHNvIHVzYWJsZSBhcyBhbiAneHkgY29udHJvbGxlcicgdmlhIGFkZFhZQ29udHJvbGxlciBtZXRob2QuXHJcbiAqIFxyXG4gKiBBUEkgc3ViamVjdCB0byBjaGFuZ2UuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtpc0NvbnRyb2xsZXJWaXNpYmxlfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGZ1bmMgPSB1bmRlZmluZWQsXHJcbiAgcHJlc3NpbmcgPSB1bmRlZmluZWQsXHJcbiAgaW1hZ2UgPSBcInRleHR1cmVzL3Nwb3RsaWdodC5qcGdcIiwgLy9UT0RPIGJldHRlciBkZWZhdWx0XHJcbiAgd2lkZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjaGFuZ2VDb2xvck9uSG92ZXIgPSB0cnVlLCAvL3F1aWNrIGhhY2s6IGNvbG9yIHBpY2tlciB3YW50cyB0aGlzIHRvIGJlIGZhbHNlXHJcbiAgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gICAvL1hYWCBtYWdpYyBudW1iZXJzLi4uXHJcbiAgaWYgKCFoZWlnaHQpIGhlaWdodCA9IExheW91dC5QQU5FTF9XSURUSCAgKiAod2lkZSA/IDAuOTQgOiAwLjI1KTtcclxuICBcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqICh3aWRlID8gMC45NCA6IDAuMjUpIC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBidXR0b25EZXB0aDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCAxLCAxICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIC8vbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBjb25zdCBob3ZlckNvbCA9IG9iai50ZXh0ID8gMHg4ODggOiAweEZGRkZGRjtcclxuICAgICAgICBjb25zdCBub0hvdmVyQ29sID0gb2JqLnRleHQgPyAweDExMSA6IDB4Q0NDQ0NDO1xyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChoaWdobGlnaHRMYXN0UHJlc3NlZCAmJiBsYXN0UHJlc3NlZCA9PT0gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGxhc3RQcmVzc2VkQ29sICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgPyBob3ZlckNvbCA6IG5vSG92ZXJDb2wgKTtcclxuICAgICAgICAgICAgaWYgKHN1Ymdyb3VwLnRpcFRleHQpIHNldFZpc2liaWxpdHkoc3ViZ3JvdXAsIHN1Ymdyb3VwLnRpcFRleHQsIGludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgICBpZiAob2JqLmVycm9yKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4QUEzMzMzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldygpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIHN1Ymdyb3VwLmhpdHNjYW4gPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogbWFraW5nIHRoaXMgc2luZ2xlIGVsZW1lbnQgcmF0aGVyIHRoYW4gYXJyYXksXHJcbiAgICAgICAgLy90aGF0IG1lYW5zIHRoZXNlICdzdWJncm91cCcgYnV0dG9ucyBhcmVuJ3QgYWN0aW5nIGV4YWN0bHkgYXMgbm9ybWFsIGRhdC5HVUlWUiBjb250cm9sbGVyc1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IGJ1dHRvbnMubWFwKGI9PmIuaGl0c2Nhbik7Ly8ucHVzaChwYW5lbCk7XHJcbiAgICBncm91cC5oaXRzY2FuLnB1c2gocGFuZWwpO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKSB7XHJcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5iLnVwZGF0ZVZpZXcoKSk7XHJcbiAgfVxyXG4gIFxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+e1xyXG4gICAgICAgIGIuaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgLy9pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlU2xpZGVyIGZyb20gJy4vc2xpZGVyJztcclxuaW1wb3J0IGNyZWF0ZUNoZWNrYm94IGZyb20gJy4vY2hlY2tib3gnO1xyXG5pbXBvcnQgY3JlYXRlQnV0dG9uIGZyb20gJy4vYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUZvbGRlciBmcm9tICcuL2ZvbGRlcic7XHJcbmltcG9ydCBjcmVhdGVEcm9wZG93biBmcm9tICcuL2Ryb3Bkb3duJztcclxuLy9QSlQ6IEknZCByYXRoZXIgaW5qZWN0IGN1c3RvbSBleHRlbnNpb25zIGxpa2UgdGhpcywgYnV0IHdpbGwgd29yayB0aGF0IG91dCBsYXRlci5cclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUtleWJvYXJkIGZyb20gJy4va2V5Ym9hcmQnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dGJveCBmcm9tICcuL3RleHRib3gnO1xyXG5pbXBvcnQgY3JlYXRlQ29sb3JQaWNrZXIgZnJvbSAnLi9jb2xvcnBpY2tlcic7XHJcbmltcG9ydCAqIGFzIFNERlRleHQgZnJvbSAnLi9zZGZ0ZXh0JztcclxuaW1wb3J0IHsgaXNDb250cm9sbGVyVmlzaWJsZSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBnbG9iYWxFdmVudHMgfSBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmNvbnN0IEdVSVZSID0gKGZ1bmN0aW9uIERBVEdVSVZSKCl7XHJcblxyXG4gIC8qXHJcbiAgICBTREYgZm9udFxyXG4gICovXHJcbiAgY29uc3QgdGV4dENyZWF0b3IgPSBTREZUZXh0LmNyZWF0b3IoKTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICBMaXN0cy5cclxuICAgIElucHV0T2JqZWN0cyBhcmUgdGhpbmdzIGxpa2UgVklWRSBjb250cm9sbGVycywgY2FyZGJvYXJkIGhlYWRzZXRzLCBldGMuXHJcbiAgICBDb250cm9sbGVycyBhcmUgdGhlIERBVCBHVUkgc2xpZGVycywgY2hlY2tib3hlcywgZXRjLlxyXG4gICovXHJcbiAgY29uc3QgaW5wdXRPYmplY3RzID0gW107XHJcbiAgY29uc3QgY29udHJvbGxlcnMgPSBbXTtcclxuXHJcbiAgLypcclxuICAgIEZ1bmN0aW9ucyBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuIGNvbnRyb2xsZXIgaXMgdmlzaWJsZSAoYnkgd2hpY2ggd2VcclxuICAgIG1lYW4gbm90IGhpZGRlbiwgbm90ICd2aXNpYmxlJyBpbiB0ZXJtcyBvZiB0aGUgY2FtZXJhIG9yaWVudGF0aW9uIGV0YyksIGFuZFxyXG4gICAgZm9yIHJldHJpZXZpbmcgdGhlIGxpc3Qgb2YgdmlzaWJsZSBoaXRzY2FuT2JqZWN0cyBkeW5hbWljYWxseS5cclxuICAgIFRoaXMgbWlnaHQgYmVuZWZpdCBmcm9tIHNvbWUgY2FjaGluZyBlc3BlY2lhbGx5IGluIGNhc2VzIHdpdGggbGFyZ2UgY29tcGxleCBHVUlzLlxyXG4gICAgSSBoYXZlbid0IG1lYXN1cmVkIHRoZSBpbXBhY3Qgb2YgZ2FyYmFnZSBjb2xsZWN0aW9uIGV0Yy5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVDb250cm9sbGVycygpIHtcclxuICAgIC8vIG5vdCB0ZXJyaWJseSBlZmZpY2llbnRcclxuICAgIHJldHVybiBjb250cm9sbGVycy5maWx0ZXIoIGlzQ29udHJvbGxlclZpc2libGUgKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkge1xyXG4gICAgLy9YWFggV0FSTklORzo6OlxyXG4gICAgLy90aGVyZSBjb3VsZCBleGlzdCBzaXR1YXRpb25zIGluIHdoaWNoIG1lbWJlcnMgb2YgaGl0c2NhbiBmb3IgYSB2aXNpYmxlIGNvbnRyb2xsZXIgYXJlIG5vdCB0aGVtc2VsdmVzIHZpc2libGUuXHJcbiAgICAvL3RoaXMgY2FuIGhhcHBlbiBmb3IgZWcgaWYgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgcGFydGljdWxhciBoaXRzY2FuIGlzIGluIGFuIGludmlzaWJsZSBtb2RhbCBlZGl0b3IuXHJcbiAgICAvL3dlIGNvdWxkIGNoZWNrIHRoYXQsIGFkZGluZyBhIG1vcmUgcm9idXN0IGZpbHRlciB0byBlYWNoIGhpdHNjYW4gYXJyYXkuLi4gZm9yIG5vdywgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mXHJcbiAgICAvL2NvbnRyb2xsZXJzIHRvIGVpdGhlciBvbmx5IHJldHVybiBoaXRzY2FuIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSwgb3IgdG8gc2V0ICd2aXNpYmxlJyBleHBsaWNpdGx5LlxyXG4gICAgY29uc3QgdG1wID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkubWFwKCBvID0+IHsgcmV0dXJuIG8uaGl0c2Nhbi5maWx0ZXIoaCA9PiBoLnZpc2libGUpOyB9IClcclxuICAgIHJldHVybiB0bXAucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKTtcclxuICB9XHJcblxyXG4gIGxldCBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICBsZXQgbW91c2VSZW5kZXJlciA9IHVuZGVmaW5lZDtcclxuICBsZXQgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDsgLy9rZWVwIHRyYWNrIHNvIHRoYXQgd2UgZG9uJ3QgYXR0YWNoIG11bHRpcGxlIGV2ZW50cyAocGFydGljdWxhcmx5IHdoZW4gcmVzaXppbmcgd2luZG93KVxyXG4gIFxyXG4gIGxldCBhdXRvVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgZnVuY3Rpb24gZW5hYmxlTW91c2UoIGNhbWVyYSwgcmVuZGVyZXIgKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IHRydWU7XHJcbiAgICBtb3VzZVJlbmRlcmVyID0gcmVuZGVyZXI7XHJcbiAgICBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhID0gY2FtZXJhO1xyXG4gICAgaWYgKGNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkge1xyXG4gICAgICBpZiAoIW9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gZj0+Zi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLm9uKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQubGFzZXI7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGRpc2FibGVNb3VzZSgpe1xyXG4gICAgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIFRoZSBkZWZhdWx0IGxhc2VyIHBvaW50ZXIgY29taW5nIG91dCBvZiBlYWNoIElucHV0T2JqZWN0LlxyXG4gICovXHJcbiAgY29uc3QgbGFzZXJNYXRlcmlhbCA9IG5ldyBUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg1NWFhZmYsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9KTtcclxuICBmdW5jdGlvbiBjcmVhdGVMYXNlcigpe1xyXG4gICAgY29uc3QgZyA9IG5ldyBUSFJFRS5CdWZmZXJHZW9tZXRyeSgpO1xyXG4gICAgZy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KFswLDAsMCwwLDAsMF0pKSk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKCkgKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoMCwwLDApICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLkxpbmUoIGcsIGxhc2VyTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQSBcImN1cnNvclwiLCBlZyB0aGUgYmFsbCB0aGF0IGFwcGVhcnMgYXQgdGhlIGVuZCBvZiB5b3VyIGxhc2VyLlxyXG4gICovXHJcbiAgY29uc3QgY3Vyc29yTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NDQ0NDQ0LCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSApO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUN1cnNvcigpe1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuU3BoZXJlR2VvbWV0cnkoMC4wMDYsIDQsIDQgKSwgY3Vyc29yTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZ2VuZXJpYyBJbnB1dCB0eXBlLlxyXG4gICAgVGFrZXMgYW55IFRIUkVFLk9iamVjdDNEIHR5cGUgb2JqZWN0IGFuZCB1c2VzIGl0cyBwb3NpdGlvblxyXG4gICAgYW5kIG9yaWVudGF0aW9uIGFzIGFuIGlucHV0IGRldmljZS5cclxuXHJcbiAgICBBIGxhc2VyIHBvaW50ZXIgaXMgaW5jbHVkZWQgYW5kIHdpbGwgYmUgdXBkYXRlZC5cclxuICAgIENvbnRhaW5zIHN0YXRlIGFib3V0IHdoaWNoIEludGVyYWN0aW9uIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkIG9yIGhvdmVyLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gY3JlYXRlSW5wdXQoIGlucHV0T2JqZWN0ID0gbmV3IFRIUkVFLkdyb3VwKCkgKXtcclxuICAgIGNvbnN0IGlucHV0ID0ge1xyXG4gICAgICByYXljYXN0OiBuZXcgVEhSRUUuUmF5Y2FzdGVyKCBuZXcgVEhSRUUuVmVjdG9yMygpLCBuZXcgVEhSRUUuVmVjdG9yMygpICksXHJcbiAgICAgIGxhc2VyOiBjcmVhdGVMYXNlcigpLFxyXG4gICAgICBjdXJzb3I6IGNyZWF0ZUN1cnNvcigpLFxyXG4gICAgICBvYmplY3Q6IGlucHV0T2JqZWN0LFxyXG4gICAgICBwcmVzc2VkOiBmYWxzZSxcclxuICAgICAgZ3JpcHBlZDogZmFsc2UsXHJcbiAgICAgIGV2ZW50czogbmV3IEVtaXR0ZXIoKSxcclxuICAgICAgaW50ZXJhY3Rpb246IHtcclxuICAgICAgICBncmlwOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcHJlc3M6IHVuZGVmaW5lZCxcclxuICAgICAgICBob3ZlcjogdW5kZWZpbmVkXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuYWRkKCBpbnB1dC5jdXJzb3IgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIE1vdXNlSW5wdXQuXHJcbiAgICBBbGxvd3MgeW91IHRvIGNsaWNrIG9uIHRoZSBzY3JlZW4gd2hlbiBub3QgaW4gVlIgZm9yIGRlYnVnZ2luZy5cclxuICAqL1xyXG4gIGNvbnN0IG1vdXNlSW5wdXQgPSBjcmVhdGVNb3VzZUlucHV0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU1vdXNlSW5wdXQoKXtcclxuICAgIGNvbnN0IG1vdXNlID0gbmV3IFRIUkVFLlZlY3RvcjIoLTEsLTEpO1xyXG5cclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoKTtcclxuICAgIGlucHV0Lm1vdXNlID0gbW91c2U7XHJcbiAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZU9mZnNldCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZVBsYW5lID0gbmV3IFRIUkVFLlBsYW5lKCk7XHJcbiAgICBpbnB1dC5pbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgLy8gIHNldCBteSBlbmFibGVNb3VzZVxyXG4gICAgaW5wdXQubW91c2VDYW1lcmEgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZW1vdmUnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgLy8gaWYgYSBzcGVjaWZpYyByZW5kZXJlciBoYXMgYmVlbiBkZWZpbmVkXHJcbiAgICAgIGlmIChtb3VzZVJlbmRlcmVyKSB7XHJcbiAgICAgICAgY29uc3QgY2xpZW50UmVjdCA9IG1vdXNlUmVuZGVyZXIuZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBtb3VzZS54ID0gKCAoZXZlbnQuY2xpZW50WCAtIGNsaWVudFJlY3QubGVmdCkgLyBjbGllbnRSZWN0LndpZHRoKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggKGV2ZW50LmNsaWVudFkgLSBjbGllbnRSZWN0LnRvcCkgLyBjbGllbnRSZWN0LmhlaWdodCkgKiAyICsgMTtcclxuICAgICAgfVxyXG4gICAgICAvLyBkZWZhdWx0IHRvIGZ1bGxzY3JlZW5cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbW91c2UueCA9ICggZXZlbnQuY2xpZW50WCAvIHdpbmRvdy5pbm5lcldpZHRoICkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIGV2ZW50LmNsaWVudFkgLyB3aW5kb3cuaW5uZXJIZWlnaHQgKSAqIDIgKyAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpZiAoaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gcHJldmVudCBtb3VzZSBkb3duIGZyb20gdHJpZ2dlcmluZyBvdGhlciBsaXN0ZW5lcnMgKHBvbHlmaWxsLCBldGMpXHJcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7IC8vc29tZXRpbWVzIHdlIGNhcmUgYWJvdXQgdGhlIG1vdXNlIGJlaW5nIHByZXNzZWQsIGV2ZW4gb24gYmFja2dyb3VuZFxyXG4gICAgICAgLy93aWxsIGJlIHNldCBmYWxzZSBhdCBlbmQgb2YgZmlyc3QgdXBkYXRlLiBTaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHRvIGFkZCBhIG5ldyBwcm9wZXJ0eS4uLiBcclxuICAgICAgIC8vb25QcmVzc2VkIHNob3VsZCBiZSBhZGVxdWF0ZS5cclxuICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICB9LCB0cnVlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZXVwJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIGZ1bmN0aW9uIHVzZXJzIHJ1biB0byBnaXZlIERBVCBHVUkgYW4gaW5wdXQgZGV2aWNlLlxyXG4gICAgQXV0b21hdGljYWxseSBkZXRlY3RzIGZvciBWaXZlQ29udHJvbGxlciBhbmQgYmluZHMgYnV0dG9ucyArIGhhcHRpYyBmZWVkYmFjay5cclxuXHJcbiAgICBSZXR1cm5zIGEgbGFzZXIgcG9pbnRlciBzbyBpdCBjYW4gYmUgZGlyZWN0bHkgYWRkZWQgdG8gc2NlbmUuXHJcblxyXG4gICAgVGhlIGxhc2VyIHdpbGwgdGhlbiBoYXZlIHR3byBtZXRob2RzOlxyXG4gICAgbGFzZXIucHJlc3NlZCgpLCBsYXNlci5ncmlwcGVkKClcclxuXHJcbiAgICBUaGVzZSBjYW4gdGhlbiBiZSBib3VuZCB0byBhbnkgYnV0dG9uIHRoZSB1c2VyIHdhbnRzLiBVc2VmdWwgZm9yIGJpbmRpbmcgdG9cclxuICAgIGNhcmRib2FyZCBvciBhbHRlcm5hdGUgaW5wdXQgZGV2aWNlcy5cclxuXHJcbiAgICBGb3IgZXhhbXBsZS4uLlxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oKXsgbGFzZXIucHJlc3NlZCggdHJ1ZSApOyB9ICk7XHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbnB1dE9iamVjdCggb2JqZWN0ICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCBvYmplY3QgKTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5wcmVzc2VkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgY29uc3QgaGl0cyA9IGlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vIG9ubHkgcGF5IGF0dGVudGlvbiB0byBwcmVzc2VzIG92ZXIgdGhlIEdVSVxyXG4gICAgICBpZiAoZmxhZyAmJiBoaXRzICYmIChoaXRzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7XHJcbiAgICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmdyaXBwZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBpbnB1dC5ncmlwcGVkID0gZmxhZztcclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuY3Vyc29yID0gaW5wdXQuY3Vyc29yO1xyXG5cclxuICAgIGlmKCBUSFJFRS5WaXZlQ29udHJvbGxlciAmJiBvYmplY3QgaW5zdGFuY2VvZiBUSFJFRS5WaXZlQ29udHJvbGxlciApe1xyXG4gICAgICBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBvYmplY3QsIGlucHV0Lmxhc2VyLnByZXNzZWQsIGlucHV0Lmxhc2VyLmdyaXBwZWQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMucHVzaCggaW5wdXQgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQubGFzZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgSGVyZSBhcmUgdGhlIG1haW4gZGF0IGd1aSBjb250cm9sbGVyIHR5cGVzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG1pbiA9IDAuMCwgbWF4ID0gMTAwLjAgKXtcclxuICAgIGNvbnN0IHNsaWRlciA9IGNyZWF0ZVNsaWRlcigge1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG1pbiwgbWF4LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIHNsaWRlciApO1xyXG5cclxuICAgIHJldHVybiBzbGlkZXI7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGNoZWNrYm94ID0gY3JlYXRlQ2hlY2tib3goe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggY2hlY2tib3ggKTtcclxuXHJcbiAgICByZXR1cm4gY2hlY2tib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3RcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuYyB0byBjYWxsIGJhY2sgd2hlbiBidXR0b24gcHJlc3NlZFxyXG4gICAqIEBwYXJhbSB7Kn0gaW1hZ2UgY2FuIGJlIGZpbGVuYW1lLCBXZWJHTFJlbmRlclRhcmdldCBvciBNYXRlcmlhbFxyXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gd2lkZSB3aGV0aGVyIHRvIG1ha2UgYnV0dG9uIGZpbGwgZW50aXJlIHdpZHRoIG9mIHBhbmVsIChhcGkgc3ViamVjdCB0byBjaGFuZ2UpXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b24oZnVuYywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3Qgb2JqZWN0ID0geyBmOiBmdW5jIH07XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnZic7XHJcblxyXG5cclxuICAgIC8vc2VlIGFsc28gZm9sZGVyLmpzIHdoZXJlIHRoaXMgaXMgYWRkZWQgdG8gZ3JvdXAgb2JqZWN0Li4uXHJcbiAgICAvL2FzIHN1Y2ggdGhpcyBmdW5jdGlvbiBhbHNvIG5lZWRzIHRvIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBjcmVhdGVGb2xkZXIuXHJcbiAgICAvL3BlcmhhcHMgYWxsIG9mIHRoZXNlICdhZGRYJyBmdW5jdGlvbnMgY291bGQgYmUgaW5pdGlhbGx5IHB1dCBvbnRvIGFuIG9iamVjdCBzbyB0aGF0XHJcbiAgICAvL25ldyBhZGRpdGlvbnMgY291bGQgYmUgYWRkZWQgc2xpZ2h0bHkgbW9yZSBlYXNpbHkuXHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRYWUNvbnRyb2xsZXIocHJlc3NpbmcsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICcnO1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJlc3NpbmcsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJ1dHRvbik7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBUaGlzIGludGVyZmFjZSBtYXkgYmUgc3ViamVjdCB0byBjaGFuZ2UuICBBcmd1bWVudHMgYXJlIG9iamVjdHMgZGVzY3JpYmluZyBidXR0b25zXHJcbiAgRmlyc3Qgb2JqZWN0IG1heSBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b25QYW5lbChjb2xzLCAuLi5hcmdzKSB7XHJcbiAgICBsZXQgY29sdW1ucyA9IE51bWJlci5pc0ludGVnZXIoY29scykgPyBjb2xzIDogNDtcclxuICAgIGNvbnN0IG9iamVjdHMgPSBhcmdzO1xyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpKSBvYmplY3RzLnVuc2hpZnQoY29scylcclxuICAgIGNvbnN0IGdyaWQgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiBjb2x1bW5zfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGdyaWQpO1xyXG4gICAgcmV0dXJuIGdyaWQ7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRLZXlib2FyZCgga2V5TGlzdGVuZXIgKSB7XHJcbiAgICBpZiAoIWtleUxpc3RlbmVyKSBrZXlMaXN0ZW5lciA9IChrKSA9PiBjb25zb2xlLmxvZyhga2V5RG93biAke2t9YCk7XHJcbiAgICBjb25zdCBrYiA9IGNyZWF0ZUtleWJvYXJkKHtrZXlMaXN0ZW5lciwgdGV4dENyZWF0b3J9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goa2IpO1xyXG4gICAgcmV0dXJuIGtiO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVUZXh0Ym94KHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZUNvbG9yUGlja2VyKHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9wdGlvbnMgKXtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gY3JlYXRlRHJvcGRvd24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG9wdGlvbnNcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGRyb3Bkb3duICk7XHJcbiAgICByZXR1cm4gZHJvcGRvd247XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEFuIGltcGxpY2l0IEFkZCBmdW5jdGlvbiB3aGljaCBkZXRlY3RzIGZvciBwcm9wZXJ0eSB0eXBlXHJcbiAgICBhbmQgZ2l2ZXMgeW91IHRoZSBjb3JyZWN0IGNvbnRyb2xsZXIuXHJcblxyXG4gICAgRHJvcGRvd246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9iamVjdFR5cGUgKVxyXG5cclxuICAgIFNsaWRlcjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZOdW1iZXJUeXBlLCBtaW4sIG1heCApXHJcblxyXG4gICAgQ2hlY2tib3g6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mQm9vbGVhblR5cGUgKVxyXG5cclxuICAgIEJ1dHRvbjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZGdW5jdGlvblR5cGUgKVxyXG5cclxuICAgIE5vdCB1c2VkIGRpcmVjdGx5LiBVc2VkIGJ5IGZvbGRlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApe1xyXG5cclxuICAgIGlmKCBvYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG5cclxuICAgIGlmIChvYmplY3QuaXNGb2xkZXIpIHJldHVybiBvYmplY3Q7XHJcblxyXG4gICAgaWYoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBjb25zb2xlLndhcm4oICdubyBwcm9wZXJ0eSBuYW1lZCcsIHByb3BlcnR5TmFtZSwgJ29uIG9iamVjdCcsIG9iamVjdCApO1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzT2JqZWN0KCBhcmczICkgfHwgaXNBcnJheSggYXJnMyApICl7XHJcbiAgICAgIHJldHVybiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNOdW1iZXIoIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzQm9vbGVhbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Z1bmN0aW9uKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzU3RyaW5nKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc0NvbG9yKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBhZGQgY291bGRuJ3QgZmlndXJlIGl0IG91dCwgcGFzcyBpdCBiYWNrIHRvIGZvbGRlclxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZVNsaWRlciggbWluID0gMCwgbWF4ID0gMSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG51bWJlcjogbWluXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRTbGlkZXIoIHByb3h5LCAnbnVtYmVyJywgbWluLCBtYXggKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZURyb3Bkb3duKCBvcHRpb25zID0gW10gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBvcHRpb246ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGlmKCBvcHRpb25zICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgcHJveHkub3B0aW9uID0gaXNBcnJheSggb3B0aW9ucyApID8gb3B0aW9uc1sgMCBdIDogb3B0aW9uc1sgT2JqZWN0LmtleXMob3B0aW9ucylbMF0gXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWRkRHJvcGRvd24oIHByb3h5LCAnb3B0aW9uJywgb3B0aW9ucyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQ2hlY2tib3goIGRlZmF1bHRPcHRpb24gPSBmYWxzZSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGNoZWNrZWQ6IGRlZmF1bHRPcHRpb25cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZENoZWNrYm94KCBwcm94eSwgJ2NoZWNrZWQnICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVCdXR0b24oIGZuICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgYnV0dG9uOiAoZm4hPT11bmRlZmluZWQpID8gZm4gOiBmdW5jdGlvbigpe31cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZEJ1dHRvbiggcHJveHksICdidXR0b24nICk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIE5vdCB1c2VkIGRpcmVjdGx5OyB1c2VkIGJ5IGZvbGRlcnMuXHJcbiAgUmVtb3ZlIGNvbnRyb2xsZXJzIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBjb250cm9sbGVycyBrbm93biB0byBkYXQuR1VJVlIuXHJcbiAgQ2FsbHMgcmVtb3ZlVGVzdCBmaXJzdCB0byBjaGVjayBpbnB1dCBhcmd1bWVudHMuICByZXR1cm5zIGZhbHNlIGlmIHRoaXMgdGVzdCBmYWlscy5cclxuICByZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bC5cclxuXHJcbiAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVjdXJzaXZlbHkgcmVtb3ZlIGVsZW1lbnRzIGZyb20gZm9sZGVyczsgdGhhdCBpcyBkZWFsdCB3aXRoIGluIHRoZSBmb2xkZXIgY29kZSB3aGljaCBjYWxscyB0aGlzLlxyXG4gIFxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZSggLi4uYXJncyApe1xyXG4gICAgbGV0IGFyZ1NldCA9IFsgLi4ubmV3IFNldChhcmdzKSBdOyAvL2p1c3QgaW4gY2FzZSB0aGVyZSB3ZXJlIHJlcGVhdGVkIGVsZW1lbnRzIGluIGFyZ3MsIHR1cm4gaW50byBTZXQgdGhlbiBiYWNrIHRvIGFycmF5LlxyXG4gICAgaWYgKCAhcmVtb3ZlVGVzdCguLi5hcmdTZXQpICkgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJnU2V0LmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgdmFyIGkgPSBjb250cm9sbGVycy5pbmRleE9mKCBvYmogKTtcclxuICAgICAgaWYgKCBpID4gLTEpIGNvbnRyb2xsZXJzLnNwbGljZSggaSwgMSApO1xyXG4gICAgICBlbHNlIHsgLy8gSSBjYW4ndCBzZWUgaG93IHRoaXMnZCBoYXBwZW4gbm93IHdlIGd1YXJkIGFnYWluc3QgcmVwZWF0ZWQgZWxlbWVudHMuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJJbnRlcm5hbCBlcnJvciBpbiByZW1vdmUsIG5vdCBhbnRpY2lwYXRlZCBieSByZW1vdmVUZXN0LiBJbnRlcm5hbCBkYXQuR1VJVlIgc3RhdGUgbWF5IGJlIGluY29uc2lzdGVudC5cIik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBWZXJpZnkgdGhhdCBhbGwgb2YgdGhlIGl0ZW1zIGluIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZXhpc3RpbmcgY29udHJvbGxlcnMgdGhhdCBzaG91bGQgYmUgb2sgdG8gcmVtb3ZlLlxyXG5cclxuICBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGFyZSBhbnkgbWlzbWF0Y2hlcywgdHJ1ZSBpZiBiZWxpZXZlZCBvayB0byBjb250aW51ZSB3aXRoIGFjdHVhbCByZW1vdmUoKVxyXG5cclxuICBJZiBhbnkgb2YgdGhlIHByb3ZpZGVkIGFyZ3MgYXJlIGZvbGRlcnMgKGhhdmUgaXNGb2xkZXIgcHJvcGVydHkpIHRoaXMgaXMgY2FsbGVkIHJlY3Vyc2l2ZWx5LlxyXG4gIFRoaXMgd2lsbCByZXN1bHQgaW4gcmVkdW5kYW50IHdvcmsgYXMgZWFjaCBmb2xkZXIgd2lsbCBhbHNvIGNhbGwgaXQgYWdhaW4gYXMgaXQncyByZW1vdmVkLCBidXQgdGhpcyBpcyBjaGVhcFxyXG4gIGFuZCBpdCBtZWFucyB0aGF0IGFueSBlcnJvciBzaG91bGQgYmUgY2F1Z2h0IGFzIGVhcmx5IGFzIHBvc3NpYmxlIGFuZCB0aGUgd2hvbGUgcHJvY2VzcyBhYm9ydGVkLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlVGVzdCggLi4uYXJncyApIHtcclxuICAgIGZvciAodmFyIGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBvYmogPSBhcmdzW2ldO1xyXG4gICAgICBpZiAoY29udHJvbGxlcnMuaW5kZXhPZihvYmopID09PSAtMSB8fCAhb2JqLmZvbGRlci5oYXNDaGlsZChvYmopKSB7XHJcbiAgICAgICAgLy9UT0RPOiB0b1N0cmluZyBpbXBsZW1lbnRhdGlvbnMgZm9yIGNvbnRyb2xsZXJzXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJDYW4ndCByZW1vdmUgY29udHJvbGxlciBcIiArIG9iaik7IC8vbm90IHN1cmUgdGhlIHByZWZlcnJlZCB3YXkgb2YgcmVwb3J0aW5nIHByb2JsZW0gdG8gdXNlci5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGlmICghcmVtb3ZlVGVzdCggLi4ub2JqLmd1aUNoaWxkcmVuICkpIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wbGV0ZWx5IHJlbW92ZSBhbGwgR1VJIGVsZW1lbnRzIGZyb20gdGhlIHN5c3RlbSBnbG9iYWxseSwgXHJcbiAgICogaW5jbHVkaW5nIHJlbW92aW5nIGFueSBvYmplY3RzIGZyb20gdGhlIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKi9cclxuICBmdW5jdGlvbiBjbGVhckFsbCgpIHtcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMudmlzaWJsZSA9IGZhbHNlOyBpZiAoYy5wYXJlbnQgJiYgIWMucGFyZW50Lmd1aUNoaWxkcmVuKSBjLnBhcmVudC5yZW1vdmUoYyk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnNwbGljZSgwLCBjb250cm9sbGVycy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZm9sZGVyIHdpdGggdGhlIG5hbWUuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgVEhSRUUuR3JvdXAgdHlwZSBvYmplY3RzIGFuZCBjYW4gZG8gZ3JvdXAuYWRkKCkgZm9yIHNpYmxpbmdzLlxyXG4gICAgRm9sZGVycyB3aWxsIGF1dG9tYXRpY2FsbHkgYXR0ZW1wdCB0byBsYXkgaXRzIGNoaWxkcmVuIG91dCBpbiBzZXF1ZW5jZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBnaXZlbiB0aGUgYWRkKCkgZnVuY3Rpb25hbGl0eSBzbyB0aGF0IHRoZXkgY2FuIGRvXHJcbiAgICBmb2xkZXIuYWRkKCAuLi4gKSB0byBjcmVhdGUgY29udHJvbGxlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBuYW1lICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBjcmVhdGVGb2xkZXIoe1xyXG4gICAgICB0ZXh0Q3JlYXRvcixcclxuICAgICAgbmFtZSxcclxuICAgICAgZ3VpQWRkOiBhZGQsXHJcbiAgICAgIGd1aVJlbW92ZTogcmVtb3ZlLFxyXG4gICAgICBhZGRDb250cm9sbGVyRnVuY3M6IHtcclxuICAgICAgICBhZGRTbGlkZXI6IGFkZFNpbXBsZVNsaWRlcixcclxuICAgICAgICBhZGREcm9wZG93bjogYWRkU2ltcGxlRHJvcGRvd24sXHJcbiAgICAgICAgYWRkQ2hlY2tib3g6IGFkZFNpbXBsZUNoZWNrYm94LFxyXG4gICAgICAgIGFkZEJ1dHRvbjogYWRkU2ltcGxlQnV0dG9uLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uOiBhZGRJbWFnZUJ1dHRvbixcclxuICAgICAgICBhZGRYWUNvbnRyb2xsZXI6IGFkZFhZQ29udHJvbGxlcixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvblBhbmVsOiBhZGRJbWFnZUJ1dHRvblBhbmVsLFxyXG4gICAgICAgIGFkZEtleWJvYXJkOiBhZGRLZXlib2FyZCxcclxuICAgICAgICBhZGRUZXh0Ym94OiBhZGRUZXh0Ym94XHJcbiAgICAgIH0sXHJcbiAgICAgIGdsb2JhbENvbnRyb2xsZXJzOiBjb250cm9sbGVycyxcclxuICAgICAgLy8/Pz9cclxuICAgICAgYWRkSGVhZGVyRnVuY3M6IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZm9sZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUGVyZm9ybSB0aGUgbmVjZXNzYXJ5IHVwZGF0ZXMsIHJheWNhc3RzIG9uIGl0cyBvd24gUkFGLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgdERpcmVjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCAwLCAwLCAtMSApO1xyXG4gIGNvbnN0IHRNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoKSB7XHJcbiAgICBjb25zdCBpc09ydGhvZ3JhcGhpYyA9IG1vdXNlRW5hYmxlZCAmJiBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhO1xyXG4gICAgaWYgKGF1dG9VcGRhdGUpIHJlcXVlc3RBbmltYXRpb25GcmFtZSggdXBkYXRlICk7XHJcbiAgICBcclxuICAgIHZhciBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgY29uc3QgY29udHJvbGxlcnMgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKTtcclxuICAgIGNvbnN0IGZvbGRlcnMgPSBjb250cm9sbGVycy5maWx0ZXIoYyA9PiBjLmZvbGRlciA9PT0gYyk7IC8vYWxsIHRvcC1sZXZlbCBmb2xkZXJzXHJcbiAgICBmb2xkZXJzLmZvckVhY2goZiA9PiB7XHJcbiAgICAgIGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSBpc09ydGhvZ3JhcGhpYyA/IG1vdXNlSW5wdXQubW91c2VDYW1lcmEgOiBmYWxzZTtcclxuICAgICAgaWYgKGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAgIGYucmVxdWVzdExheW91dCgpO1xyXG4gICAgICAgIGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IGZhbHNlOyAvLyBwcm90ZWN0IGFueSBuZXdseS1kaXNwbGF5ZWQgbW9kYWxFZGl0b3IgZnJvbSBiZWluZyBjbGVhcmVkXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGYudXNlckRhdGEubGF5b3V0UGVuZGluZykgZi5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICB9KTsgXHJcblxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICAvL1RPRE86IGxvY2sgbW91c2Ugb24gaG92ZXI/P1xyXG4gICAgICBtb3VzZUlucHV0LmludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLGludGVyYWN0aW9ufSA9IHt9LCBpbmRleCApe1xyXG4gICAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICAgIG9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBcclxuICAgICAgdFBvc2l0aW9uLnNldCgwLDAsMCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgdE1hdHJpeC5pZGVudGl0eSgpLmV4dHJhY3RSb3RhdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIFxyXG4gICAgICB0RGlyZWN0aW9uLnNldCgwLDAsLTEpO1xyXG4gICAgICAvL2FsdGVyaW5nIGRpcmVjdGlvbiBlLmcuIHRvIHBvaW50IGluIGRpcmVjdGlvbiBvZiBleHRlbmRlZCB0cmlnZ2VyIGZpbmdlciwgcmF0aGVyIHRoYW4gJ21haW4gYXhpcycgb2YgVml2ZSBjb250cm9sbGVyLi4uXHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGQgYmUgaW4gdXNlckRhdGEuXHJcbiAgICAgIGlmIChvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcikgdERpcmVjdGlvbi5hcHBseVF1YXRlcm5pb24ob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpO1xyXG4gICAgICB0RGlyZWN0aW9uLmFwcGx5TWF0cml4NCggdE1hdHJpeCApLm5vcm1hbGl6ZSgpO1xyXG4gICAgICBcclxuICAgICAgcmF5Y2FzdC5zZXQoIHRQb3NpdGlvbiwgdERpcmVjdGlvbiApO1xyXG4gICAgICBcclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAwIF0uY29weSggdFBvc2l0aW9uICk7XHJcbiAgICAgIGNvbnN0IGEgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICAgIGFbMF0gPSB0UG9zaXRpb24ueDsgYVsxXSA9IHRQb3NpdGlvbi55OyBhWzJdID0gdFBvc2l0aW9uLno7XHJcbiAgICAgIFxyXG4gICAgICAvLyAgZGVidWcuLi5cclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggdFBvc2l0aW9uICkuYWRkKCB0RGlyZWN0aW9uLm11bHRpcGx5U2NhbGFyKCAxICkgKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbnMgPSByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgXHJcbiAgICAgIGlucHV0T2JqZWN0c1sgaW5kZXggXS5pbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy93YW50IHRvIGFkZCBpbmZvIChoaXQgZGlzY3RhbmNlKSB0byBvYmplY3QgZm9yIHVzZSBvdXRzaWRlLi4uIGp1c3QgYWRkaW5nIGVudGlyZXR5IG9mIGludGVyc2VjdGlvbnMgaW4gY2FzZSB1c2VmdWxcclxuICAgICAgaWYgKG9iamVjdC51c2VyRGF0YSkgb2JqZWN0LnVzZXJEYXRhLmd1aUludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0cyA9IGlucHV0T2JqZWN0cy5zbGljZSgpO1xyXG4gICAgXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIGlucHV0cy5wdXNoKCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goIGMgPT4gYy51cGRhdGVDb250cm9sKCBpbnB1dHMgKSk7XHJcbiAgICAvL25vdyBjaGVjayBpZiBhbnkgcHJlc3Mgb24gYW55IGlucHV0IGhpdCBhbnkgbm9uJ21vZGFsIGVkaXRvcicuLi4gaWYgc28sIHdlJ2xsIHJlbW92ZSBtb2RhbHMgZnJvbSBhbGwgZm9sZGVyc1xyXG4gICAgLy8odGhpcyBpc24ndCBwZXJmZWN0OyBpZiB5b3UgYXJlIGFjdGl2ZWx5IGludGVyYWN0aW5nIHdpdGggc29tZXRoaW5nIGFuZCBwcmVzcyBvdGhlciBidXR0b24gc29tZXdoZXJlIGVsc2UsIGl0J2xsIHJlbW92ZSB5b3VyIG9iamVjdClcclxuICAgIGxldCBoaXROb25Nb2RhbHMgPSBpbnB1dHMuZmlsdGVyKGlucHV0ID0+IGlucHV0LmhpdE5vbk1vZGFsKTtcclxuICAgIGlmIChoaXROb25Nb2RhbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgaGl0Tm9uTW9kYWxzLmZvckVhY2goaCA9PiBoLmhpdE5vbk1vZGFsID0gZmFsc2UpOyAvL3JlbW92ZSBmbGFncyBzbyB0aGV5IGRvbid0IHBlcnNpc3QgdG8gc3Vic2VxdWVudCB1cGRhdGVzXHJcbiAgICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IGYuY2xlYXJNb2RhbEVkaXRvcigpKTsgLy90aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIG5vdCBoaWRlIGl0ZW1zIG5ld2x5IGRpc3BsYXllZCBpbiB0aGlzIGZyYW1lXHJcbiAgICB9XHJcbiAgICBtb3VzZUlucHV0LmNsaWNrZWQgPSBmYWxzZTtcclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKG89Pm8uY2xpY2tlZCA9IGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8vaWYgYW55IGlucHV0LmludGVyYWN0aW9ucyBoYXZlIGhpdFZvbHVtZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHNvbWV0aGluZyBub3QgY3VycmVudGx5IGluIGhpdHNjYW5PYmplY3RzLFxyXG4gIC8vdGhhdCBpbnRlcmFjdGlvbiBzaG91bGQgYmUgY2FuY2VsbGVkLiBFc3BlY2lhbGx5IHByb2JsZW1hdGljIHdpdGggZS5nLiBwcmVzc2luZyAncmVhdHRhY2gnIHdoZW4gdGhlIHBhcmVudCBpcyBjbG9zZWQuXHJcbiAgZnVuY3Rpb24gY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9ucywgaGl0c2Nhbk9iamVjdHMgKSB7XHJcbiAgICBbJ3ByZXNzJywgJ2dyaXAnLCAnaG92ZXInXS5mb3JFYWNoKCBpbnRlcmFjdGlvbk5hbWUgPT4ge1xyXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdO1xyXG4gICAgICBpZiAoaW50ZXJhY3Rpb24gJiYgaGl0c2Nhbk9iamVjdHMuaW5kZXhPZihpbnRlcmFjdGlvbi5oaXRWb2x1bWUpIDwgMCkge1xyXG4gICAgICAgIGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdID0gdW5kZWZpbmVkOyBcclxuICAgICAgICAvL29ubHkgYmUgcG9saXRlIHRvIGluZm9ybSB0aGUgaW50ZXJhY3Rpb24gYXMgd2VsbDsgdXBkYXRlIHdpdGggZW1wdHkgaW5wdXRPYmplY3RzIGFyZyBzaG91bGQgZG8gdGhlIHRyaWNrLlxyXG4gICAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggW10gKTtcclxuICAgICAgfSBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlTGFzZXIoIGxhc2VyLCBwb2ludCApe1xyXG4gICAgY29uc3QgcHAgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICBwcFszXSA9IHBvaW50Lng7XHJcbiAgICBwcFs0XSA9IHBvaW50Lnk7XHJcbiAgICBwcFs1XSA9IHBvaW50Lno7XHJcbiAgICBwcC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHBvaW50ICk7XHJcbiAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnRpY2VzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGlmKCBpbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgY29uc3QgZmlyc3RIaXQgPSBpbnRlcnNlY3Rpb25zWyAwIF07XHJcbiAgICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgY3Vyc29yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZU1vdXNlSW50ZXJzZWN0aW9uKCBpbnRlcnNlY3Rpb24sIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBpbnRlcnNlY3Rpb24gKTtcclxuICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgY3Vyc29yLnBvc2l0aW9uICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBjYW1lcmEgKXtcclxuICAgIHJheWNhc3Quc2V0RnJvbUNhbWVyYSggbW91c2UsIGNhbWVyYSApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIHJldHVybiByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbW91c2VJbnRlcnNlY3RzUGxhbmUoIHJheWNhc3QsIHYsIHBsYW5lICl7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIHBsYW5lLCB2ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLG1vdXNlLG1vdXNlQ2FtZXJhLCBpbnRlcmFjdGlvbn0gPSB7fSApe1xyXG4gICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgbGV0IGludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICBpZiAobW91c2VDYW1lcmEpIHtcclxuICAgICAgaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIG1vdXNlQ2FtZXJhICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnRlcnNlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCk7XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgbWV0aG9kcy5cclxuICAqL1xyXG5cclxuICBjb25zdCBwdWJsaWNJbnRlcmZhY2UgPSB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBhZGRJbnB1dE9iamVjdCxcclxuICAgIGVuYWJsZU1vdXNlLFxyXG4gICAgZGlzYWJsZU1vdXNlLFxyXG4gICAgdGV4dENyZWF0b3IsIC8vY2hlYXAgd2F5IG9mIGV4cG9zaW5nIHRoaXMgc28gaXQgY2FuIGJlIHVzZWQgYnkgaG9zdCBhcHBsaWNhdGlvbi5cclxuICAgIGdsb2JhbEV2ZW50cyxcclxuICAgIGNsZWFyQWxsLFxyXG4gICAgdXBkYXRlXHJcbiAgfTtcclxuICAvLyBhbGxvdyB1c2VyIHRvIGNhbGwgXCJkYXQuR1VJVlIuYXV0b1VwZGF0ZSA9IGZhbHNlXCIgYW5kIHRoZW4gdXBkYXRlIG1hbnVhbGx5IHdpdGhcclxuICAvLyBcImRhdC5HVUlWUi51cGRhdGUoKVwiXHJcbiAgLy8gZXhwb3NlIGF1dG9VcGRhdGUgYXMgcHJvcGVydHkgc28gdGhhdCB0aGUgcmVmZXJlbmNlIHdpbGwgYmUgcHJvcGVybHkgZWZmZWN0ZWRcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIHB1YmxpY0ludGVyZmFjZSwgJ2F1dG9VcGRhdGUnLCB7IGdldDogKCk9PiBhdXRvVXBkYXRlLCBzZXQ6IHYgPT4gYXV0b1VwZGF0ZSA9IHYgfSApO1xyXG4gIHJldHVybiBwdWJsaWNJbnRlcmZhY2U7XHJcblxyXG59KCkpO1xyXG5cclxuaWYoIHdpbmRvdyApe1xyXG4gIGlmKCB3aW5kb3cuZGF0ID09PSB1bmRlZmluZWQgKXtcclxuICAgIHdpbmRvdy5kYXQgPSB7fTtcclxuICB9XHJcblxyXG4gIHdpbmRvdy5kYXQuR1VJVlIgPSBHVUlWUjtcclxufVxyXG5cclxuaWYoIG1vZHVsZSApe1xyXG4gIG1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgZGF0OiBHVUlWUlxyXG4gIH07XHJcbn1cclxuXHJcbmlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xyXG4gIGRlZmluZShbXSwgR1VJVlIpO1xyXG59XHJcblxyXG4vKlxyXG4gIEJ1bmNoIG9mIHN0YXRlLWxlc3MgdXRpbGl0eSBmdW5jdGlvbnMuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBpc051bWJlcihuKSB7XHJcbiAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG4pKSAmJiBpc0Zpbml0ZShuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNCb29sZWFuKG4pe1xyXG4gIHJldHVybiB0eXBlb2YgbiA9PT0gJ2Jvb2xlYW4nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjaykge1xyXG4gIGNvbnN0IGdldFR5cGUgPSB7fTtcclxuICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xyXG59XHJcblxyXG4vLyAgb25seSB7fSBvYmplY3RzIG5vdCBhcnJheXNcclxuLy8gICAgICAgICAgICAgICAgICAgIHdoaWNoIGFyZSB0ZWNobmljYWxseSBvYmplY3RzIGJ1dCB5b3UncmUganVzdCBiZWluZyBwZWRhbnRpY1xyXG5mdW5jdGlvbiBpc09iamVjdCAoaXRlbSkge1xyXG4gIHJldHVybiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pICYmIGl0ZW0gIT09IG51bGwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0FycmF5KCBvICl7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoIG8gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNTdHJpbmcoIG8gKXtcclxuICByZXR1cm4gdHlwZW9mIG8gPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0NvbG9yKCBvICl7XHJcbiAgaWYgKHR5cGVvZiBvICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBvLmlzQ29sb3IgPyB0cnVlIDogZmFsc2U7XHJcbn1cclxuXHJcblxyXG5cclxuLypcclxuICBDb250cm9sbGVyLXNwZWNpZmljIHN1cHBvcnQuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBjb250cm9sbGVyLCBwcmVzc2VkLCBncmlwcGVkICl7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcmRvd24nLCAoKT0+cHJlc3NlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcnVwJywgKCk9PnByZXNzZWQoIGZhbHNlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc2Rvd24nLCAoKT0+Z3JpcHBlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHN1cCcsICgpPT5ncmlwcGVkKCBmYWxzZSApICk7XHJcblxyXG4gIGNvbnN0IGdhbWVwYWQgPSBjb250cm9sbGVyLmdldEdhbWVwYWQoKTtcclxuICBmdW5jdGlvbiB2aWJyYXRlKCB0LCBhICl7XHJcbiAgICBpZiggZ2FtZXBhZCAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycyAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzWyAwIF0ucHVsc2UoIHQsIGEgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NUYXAoKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoMS1hLCAwLjUpLCAxMCwgMjAgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NFY2hvKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDQsIDEuMCAqICgxLWEpKSwgMTAwLCA0ICk7XHJcbiAgfVxyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdvbkNvbnRyb2xsZXJIZWxkJywgZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICB2aWJyYXRlKCAwLjMsIDAuMyApO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiYmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYlJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3Bpbm5lZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3BpblJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldEludGVydmFsVGltZXMoIGNiLCBkZWxheSwgdGltZXMgKXtcclxuICBsZXQgeCA9IDA7XHJcbiAgbGV0IGlkID0gc2V0SW50ZXJ2YWwoIGZ1bmN0aW9uKCl7XHJcbiAgICBjYiggeCwgdGltZXMsIHgvdGltZXMgKTtcclxuICAgIHgrKztcclxuICAgIGlmKCB4Pj10aW1lcyApe1xyXG4gICAgICBjbGVhckludGVydmFsKCBpZCApO1xyXG4gICAgfVxyXG4gIH0sIGRlbGF5ICk7XHJcbiAgcmV0dXJuIGlkO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBnbG9iYWxFdmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdFZvbHVtZSApe1xyXG4gIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG4gIGxldCBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gIGxldCBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gIGxldCBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgdFZlY3RvciA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgYXZhaWxhYmxlSW5wdXRzID0gW107XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSggaW5wdXRPYmplY3RzICl7XHJcblxyXG4gICAgYW55SG92ZXIgPSBmYWxzZTtcclxuICAgIGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgICBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIGlucHV0ICl7XHJcblxyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmluZGV4T2YoIGlucHV0ICkgPCAwICl7XHJcbiAgICAgICAgYXZhaWxhYmxlSW5wdXRzLnB1c2goIGlucHV0ICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHsgaGl0T2JqZWN0LCBoaXRQb2ludCB9ID0gZXh0cmFjdEhpdCggaW5wdXQgKTtcclxuXHJcbiAgICAgIHZhciBob3ZlciA9IGhpdFZvbHVtZSA9PT0gaGl0T2JqZWN0O1xyXG4gICAgICBhbnlIb3ZlciA9IGFueUhvdmVyIHx8IGhvdmVyO1xyXG5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ3ByZXNzZWQnLFxyXG4gICAgICAgIGJ1dHRvbkNsaWNrTmFtZTogJ2NsaWNrZWQnLCAvL21heWJlIG5vdCBzdGFibGUgcGFydCBvZiBBUEkuLi5cclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdwcmVzcycsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvblByZXNzZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAncHJlc3NpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZWQnLFxyXG4gICAgICAgICAvL2ludmVudGluZyBhICdob3ZlcmluZycgZXZlbnQgdGhhdCBvbmx5IGFwcGxpZXMgdG8gJ3ByZXNzZWQnIGJ1dHRvbi4uLlxyXG4gICAgICAgICAvL3RoaXMgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc3RhYmxlIGludGVyZmFjZSwgYnV0IEkgd2FudHMgaXQgbW9yZSB0aGFuIElcclxuICAgICAgICAgLy93YW50IHRvIG1ha2Ugc29tZXRoaW5nIHRvdGFsbHkgY29oZXJlbnQgYW5kIHJvYnVzdCBqdXN0IG5vdy5cclxuICAgICAgICBob3Zlck5hbWU6ICdob3ZlcmluZydcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ2dyaXBwZWQnLFxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ2dyaXAnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25HcmlwcGVkJyxcclxuICAgICAgICBob2xkTmFtZTogJ2dyaXBwaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VHcmlwJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCAndGljaycsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9ICk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZXh0cmFjdEhpdCggaW5wdXQgKXtcclxuICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA8PSAwICl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IHRWZWN0b3Iuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5jdXJzb3IubWF0cml4V29ybGQgKS5jbG9uZSgpLCAvL3h4eDogZ2FyYmFnZT9cclxuICAgICAgICBoaXRPYmplY3Q6IHVuZGVmaW5lZCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5wb2ludCxcclxuICAgICAgICBoaXRPYmplY3Q6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3RcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICBpbnB1dCwgaG92ZXIsXHJcbiAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgYnV0dG9uTmFtZSwgYnV0dG9uQ2xpY2tOYW1lLCBpbnRlcmFjdGlvbk5hbWUsIGRvd25OYW1lLCBob2xkTmFtZSwgdXBOYW1lLCBob3Zlck5hbWVcclxuICB9ID0ge30gKXtcclxuXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBoaXRPYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAvL2NsaWNrZWQgYW5kIGRpZG4ndCBoaXQgYW55IEdVSSBvYmplY3QuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaG92ZXJpbmcgYW5kIGJ1dHRvbiBOT1QgZG93blxyXG4gICAgaWYoIGhvdmVyTmFtZSAmJiBob3ZlciAmJiBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSApIHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBldmVudHMuZW1pdCggaG92ZXJOYW1lLCBwYXlsb2FkICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGhvdmVyaW5nIGFuZCBidXR0b24gZG93biBidXQgbm8gaW50ZXJhY3Rpb25zIGFjdGl2ZSB5ZXRcclxuICAgIC8vLS0tPiBzaG91bGQgYmUgXiBidXR0b24gJ2NsaWNrZWQnLi4uIGllIG9ubHkgaWYgaXQgY2FtZSBkb3duIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS5cclxuICAgIC8vc28sIHNob3VsZCB3ZSBwYXNzICdidXR0b25DbGlja05hbWUnIGFzIGFuIGFyZ3VtZW50IChhbmQgdXNlIGJ1dHRvbk5hbWUgaWYgbm90IHByb3ZpZGVkKT9cclxuICAgIC8vLS0tPj4+PiBYWFg6IGlzIHRoaXMgXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXC8vLy8vLy8vLy8vLyB3b3JraW5nIHdpdGggVml2ZSBjb250cm9sbGVycz8gXHJcbiAgICBpZiggaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbkNsaWNrTmFtZSB8fCBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuXHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaWYgKCFoaXRPYmplY3QudXNlckRhdGEucGFydE9mTW9kYWwpIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuXHJcbiAgICAgIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KTtcclxuICAgICAgXHJcbiAgICAgIC8vZW1pdCBnbG9iYWwgY2xpY2sgZXZlbnQgYXMgd2VsbC4uLlxyXG4gICAgICBnbG9iYWxFdmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBpZiggcGF5bG9hZC5sb2NrZWQgKXtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IGludGVyYWN0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIGFueUFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBzdGlsbCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoIGhvbGROYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBpbnB1dC5ldmVudHMuZW1pdCggJ29uQ29udHJvbGxlckhlbGQnICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBub3QgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSB1bmRlZmluZWQ7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICBldmVudHMuZW1pdCggdXBOYW1lLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KSB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihoaXRPYmplY3QpO1xyXG4gICAgdG9wRm9sZGVyLnByb21vdGVaT3JkZXIoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGlzTWFpbkhvdmVyKCl7XHJcblxyXG4gICAgbGV0IG5vTWFpbkhvdmVyID0gdHJ1ZTtcclxuICAgIGZvciggbGV0IGk9MDsgaTxhdmFpbGFibGVJbnB1dHMubGVuZ3RoOyBpKysgKXtcclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0c1sgaSBdLmludGVyYWN0aW9uLmhvdmVyICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgICBub01haW5Ib3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIG5vTWFpbkhvdmVyICl7XHJcbiAgICAgIHJldHVybiBhbnlIb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmZpbHRlciggZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICAgIHJldHVybiBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9PT0gaW50ZXJhY3Rpb247XHJcbiAgICB9KS5sZW5ndGggPiAwICl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IHtcclxuICAgIGhvdmVyaW5nOiBpc01haW5Ib3ZlcixcclxuICAgIHByZXNzaW5nOiAoKT0+YW55UHJlc3NpbmcsXHJcbiAgICB1cGRhdGUsXHJcbiAgICBldmVudHMsXHJcbiAgICBoaXRWb2x1bWVcclxuICB9O1xyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn1cclxuXHJcbiIsIi8qKlxyXG4gKiBcclxuICogVE9ETzogY3Vyc29ycy4uLlxyXG4gKiBNYXliZSBzb21ldGhpbmcgbGlrZSBtb2JpbGUgaW5wdXQgd2hlcmUgeW91IHN3aXRjaCBiZXR3ZWVuIGxldHRlcnMgJiBudW1iZXJzIC8gc3ltYm9sc1xyXG4gKiBcclxuICogU29tZXRoaW5nIGxpa2UgYSBzcGxpdCBrZXlib2FyZCBhbGEgaHR0cHM6Ly9tZWRpdW0uY29tL2Fhcm9ubi92ci10ZXh0LWlucHV0LXNwbGl0LWtleWJvYXJkLWU1YmYzZmQ4N2E0Y1xyXG4gKiBtaWdodCBiZSBiZXR0ZXIuXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlS2V5Ym9hcmQoIHsgXHJcbiAgICBrZXlMaXN0ZW5lcixcclxuICAgIHRleHRDcmVhdG9yXHJcbn0gPSB7fSkge1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGNvbnN0IG9mZnNldFRyYW5zZm9ybSA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgZ3JvdXAuYWRkKG9mZnNldFRyYW5zZm9ybSk7XHJcblxyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGV2ZW50cy5vbigna2V5RG93bicsIGtleUxpc3RlbmVyKTtcclxuICAgIFxyXG4gICAgY29uc3QgbG93ZXJDaGFycyA9IFwiMTIzNDU2Nzg5MC09cXdlcnR5dWlvcFtdYXNkZmdoamtsOycjXFxcXHp4Y3Zibm0sLi8gXCIuc3BsaXQoJycpO1xyXG4gICAgbGV0IG9iamVjdHMgPSBsb3dlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGxvd2VyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKGxvd2VyS2V5cyk7XHJcblxyXG4gICAgY29uc3QgdXBwZXJDaGFycyA9IFwiIVxcXCLCoyQlXiYqKClfK1FXRVJUWVVJT1B7fUFTREZHSEpLTDpAfnxaWENWQk5NPD4/IFwiLnNwbGl0KCcnKTtcclxuICAgIG9iamVjdHMgPSB1cHBlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHVwcGVyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICB1cHBlcktleXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZCh1cHBlcktleXMpO1xyXG5cclxuICAgIGxldCBzaGlmdCA9IGZhbHNlO1xyXG4gICAgZnVuY3Rpb24gc2hpZnRUb2dnbGUoKSB7XHJcbiAgICAgICAgc2hpZnQgPSAhc2hpZnQ7XHJcbiAgICAgICAgbG93ZXJLZXlzLnZpc2libGUgPSAhc2hpZnQ7XHJcbiAgICAgICAgdXBwZXJLZXlzLnZpc2libGUgPSBzaGlmdDtcclxuICAgfVxyXG5cclxuICAgY29uc3Qgc3BhY2VCYXIgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoeyB0ZXh0Q3JlYXRvciwgY29sdW1uczogMSwgcm93SGVpZ2h0OiAwLjEsIG9iamVjdHM6IFtcclxuICAgICAgIHtmdW5jOiAoKT0+ZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnICcpLCB0ZXh0OiAnc3BhY2UnfVxyXG4gICAgXX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGFjZUJhcik7XHJcbiAgICB2YXIgeSA9IHNwYWNlQmFyLnBvc2l0aW9uLnkgPSAtMC41ICogKGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyk7XHJcbiAgICBcclxuICAgIG9iamVjdHMgPSBbXHJcbiAgICAgICAgeyB0ZXh0OiBcInNoaWZ0XCIsIGZ1bmM6IHNoaWZ0VG9nZ2xlIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImJhY2tzcGFjZVwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXGInKSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJlbnRlclwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXG4nKSB9XHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc3BlY2lhbEtleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAzLCByb3dIZWlnaHQ6IDAuMX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGVjaWFsS2V5cyk7XHJcbiAgICBzcGVjaWFsS2V5cy5wb3NpdGlvbi55ID0geS0wLjUgKiAoc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmcpO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcbiAgICAvL3RoaXMgbG9va3MgcmlnaHQsIG11c3QgYWRtaXQgSSBoYXZlbid0IHRob3VnaHQgdGhyb3VnaCBleGFjdGx5IHdoeSBpdCBzaG91bGQgYmUuXHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0ucG9zaXRpb24ueSA9IHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaGl0c2NhbicsIHtcclxuICAgICAgICBnZXQ6ICgpID0+IFtcclxuICAgICAgICAgICAgc3BlY2lhbEtleXMuaGl0c2Nhbiwgc3BhY2VCYXIuaGl0c2Nhbiwgc2hpZnQgPyB1cHBlcktleXMuaGl0c2NhbiA6IGxvd2VyS2V5cy5oaXRzY2FuXHJcbiAgICAgICAgXS5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBzcGFjZUJhci5mb2xkZXIgPSB1cHBlcktleXMuZm9sZGVyID0gbG93ZXJLZXlzLmZvbGRlciA9IHNwZWNpYWxLZXlzLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IChpbnB1dHMpID0+IHtcclxuICAgICAgICBzcGVjaWFsS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgbG93ZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBzcGFjZUJhci51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgdXBwZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFsaWduTGVmdCggb2JqICl7XHJcbiAgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLk1lc2ggKXtcclxuICAgIG9iai5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIGVsc2UgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5ICl7XHJcbiAgICBvYmouY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgdW5pcXVlTWF0ZXJpYWwgKXtcclxuICBjb25zdCBtYXRlcmlhbCA9IHVuaXF1ZU1hdGVyaWFsID8gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweGZmZmZmZn0pIDogU2hhcmVkTWF0ZXJpYWxzLlBBTkVMO1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggd2lkdGgsIGhlaWdodCwgZGVwdGggKSwgbWF0ZXJpYWwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoICogMC41LCAwLCAwICk7XHJcblxyXG4gIGlmKCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcblxyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcblxyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplUGFuZWwocGFuZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKSB7XHJcbiAgcGFuZWwuZ2VvbWV0cnkuc2NhbGUod2lkdGgvcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoLCBoZWlnaHQvcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCwgZGVwdGgvcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoKTtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIGNvbG9yICl7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDT05UUk9MTEVSX0lEX1dJRFRILCBoZWlnaHQsIENPTlRST0xMRVJfSURfREVQVEggKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCBDT05UUk9MTEVSX0lEX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBjb2xvciApO1xyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURvd25BcnJvdygpe1xyXG4gIGNvbnN0IHcgPSAwLjAwOTY7XHJcbiAgY29uc3QgaCA9IDAuMDE2O1xyXG4gIGNvbnN0IHNoID0gbmV3IFRIUkVFLlNoYXBlKCk7XHJcbiAgc2gubW92ZVRvKDAsMCk7XHJcbiAgc2gubGluZVRvKC13LGgpO1xyXG4gIHNoLmxpbmVUbyh3LGgpO1xyXG4gIHNoLmxpbmVUbygwLDApO1xyXG5cclxuICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuU2hhcGVHZW9tZXRyeSggc2ggKTtcclxuICBnZW8udHJhbnNsYXRlKCAwLCAtaCAqIDAuNSwgMCApO1xyXG5cclxuICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTF9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0hFSUdIVCA9IDAuMDg7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9TUEFDSU5HID0gMDsvLy4wMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9NQVJHSU4gPSAwLjAxNTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOID0gMC4wNjtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfV0lEVEggPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9ERVBUSCA9IDAuMDAxO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9XSURUSCA9IDEuMDI2O1xyXG5leHBvcnQgY29uc3QgU1VCRk9MREVSX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0hFSUdIVCA9IDAuMDk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfR1JBQl9IRUlHSFQgPSAwLjA1MTI7XHJcbmV4cG9ydCBjb25zdCBCT1JERVJfVEhJQ0tORVNTID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX1NJWkUgPSAwLjA1O1xyXG5leHBvcnQgY29uc3QgVEVYVF9TQ0FMRSA9IDAuMDAwMjQ7XHJcbmV4cG9ydCBjb25zdCBHUklEX0JVVFRPTl9NQVJHSU4gPSAwLjAxOyIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25HcmlwcGVkJywgaGFuZGxlT25HcmlwICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlR3JpcCcsIGhhbmRsZU9uR3JpcFJlbGVhc2UgKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIGxldCBvbGRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgbGV0IG9sZFJvdGF0aW9uID0gbmV3IFRIUkVFLkV1bGVyKCk7XHJcblxyXG4gIGNvbnN0IHJvdGF0aW9uR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICByb3RhdGlvbkdyb3VwLnNjYWxlLnNldCggMC4zLCAwLjMsIDAuMyApO1xyXG4gIHJvdGF0aW9uR3JvdXAucG9zaXRpb24uc2V0KCAtMC4wMTUsIDAuMDE1LCAwLjAgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcCggcCApe1xyXG5cclxuICAgIGNvbnN0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvbGRQb3NpdGlvbi5jb3B5KCBmb2xkZXIucG9zaXRpb24gKTtcclxuICAgIG9sZFJvdGF0aW9uLmNvcHkoIGZvbGRlci5yb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnggPSAtTWF0aC5QSSAqIDAuNTtcclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuXHJcbiAgICByb3RhdGlvbkdyb3VwLmFkZCggZm9sZGVyICk7XHJcblxyXG4gICAgaW5wdXRPYmplY3QuYWRkKCByb3RhdGlvbkdyb3VwICk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3Bpbm5lZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXBSZWxlYXNlKCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9PXt9ICl7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KCBvbGRQb3NpdGlvbiApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLmNvcHkoIG9sZFJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3BpblJlbGVhc2VkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsIi8qKlxyXG4gKiBQSlQ6IFRoaXMgaXMgYSB2YXJpYXRpb24gb24gc2Rmc2hhZGVyIGZyb20gYm1mb250LCB3aGljaCBzaG91bGQgSnVzdCBXb3JrIHdpdGggbG9nYXJpdGhtaWMgZGVwdGggYnVmZmVycy5cclxuICogSXQgc2hvdWxkIGFsc28gYWxsb3cgc29tZSBvdGhlciBhc3BlY3RzIG9mIFRIUkVFIHJlbmRlcmluZyB0byBiZSBpbmNvcnBvcmF0ZWQsIGxpa2UgZm9nLCBjbGlwcGluZyBwbGFuZXMuLi5cclxuICogRW52aXJvbm1lbnQgbWFwcyBhbmQgdmFyaW91cyBvdGhlciBiaXRzIGZyb20gTWVzaEJhc2ljTWF0ZXJpYWwgYXJlIHJlbW92ZWQuXHJcbiAqIEF0IHRpbWUgb2Ygd3JpdGluZywgdGhpcyBpcyB3b3JrIGluIHByb2dyZXNzLCBhbmQgc29tZXdoYXQgbW9yZSBibG9hdGVkIHRoYW4gaXQgbmVlZHMgdG8gYmUuXHJcbiAqIFRoZSBzaGFkZXIgY29kZSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggU2hhZGVyTWF0ZXJpYWwgcmF0aGVyIHRoYW4gUmF3U2hhZGVyTWF0ZXJpYWwuXHJcbiAqL1xyXG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xyXG5cclxuLyoqXHJcbiAqIHN0YXJ0aW5nIGZyb20gVEhSRUUgbWVzaGJhc2ljIHNoYWRlcnMsIHBydW5pbmcgLyBtb2RpZnlpbmcuLi5cclxuICovXHJcbmNvbnN0IG1lc2hiYXNpY192ZXJ0ID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4PlxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cclxufVxyXG5gO1xyXG5cclxuY29uc3QgbWVzaGJhc2ljX2ZyYWcgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG51bmlmb3JtIHZlYzMgY29sb3I7XHJcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgI2lmZGVmIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlc1xyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICAjZWxzZVxyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSAoMS4wIC8gMzIuMCkgKiAoMS40MTQyMTM1NjIzNzMwOTUxIC8gKDIuMCAqIGdsX0ZyYWdDb29yZC53KSk7XHJcbiAgICAjZW5kaWZcclxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcclxufVxyXG4vLy8vXHJcblxyXG52b2lkIG1haW4oKSB7XHJcblxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XHJcblxyXG4gICAgLy8vXHJcbiAgICB2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICk7XHJcbiAgICBcclxuICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQobWFwLCB2VXYpO1xyXG4gICAgZmxvYXQgYWxwaGEgPSBhYXN0ZXAodGV4Q29sb3IuYSk7XHJcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xyXG4gICAgaWYgKGdsX0ZyYWdDb2xvci5hIDwgMC4wMDAxKSBkaXNjYXJkO1xyXG4gICAgLy8vXHJcblxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cclxuICAgIC8vWFhYOiBiaWcgY2h1bmsgcmVtb3ZlZCBmcm9tIG9yaWdpbmFsIG1lc2hiYXNpY19mcmFnIGhlcmUuXHJcbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxyXG59XHJcbmA7XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVTREZTaGFkZXIgKG9wdCkge1xyXG4gIG9wdCA9IG9wdCB8fCB7fTtcclxuICB2YXIgb3BhY2l0eSA9IHR5cGVvZiBvcHQub3BhY2l0eSA9PT0gJ251bWJlcicgPyBvcHQub3BhY2l0eSA6IDE7XHJcbiAgLy8vLS0gaGFyZGNvZGVkIGluIHNoYWRlciBjb2RlLCBndWl2ciBuZXZlciBwYXNzZWQgdGhlc2UgaW4gb3B0IC0tXHJcbiAgLy92YXIgYWxwaGFUZXN0ID0gdHlwZW9mIG9wdC5hbHBoYVRlc3QgPT09ICdudW1iZXInID8gb3B0LmFscGhhVGVzdCA6IDAuMDAwMVxyXG4gIC8vdmFyIHByZWNpc2lvbiA9IG9wdC5wcmVjaXNpb24gfHwgJ2hpZ2hwJ1xyXG4gIHZhciBjb2xvciA9IG9wdC5jb2xvcjtcclxuICB2YXIgbWFwID0gb3B0Lm1hcDtcclxuICBcclxuICBvcHQuZXh0ZW5zaW9ucyA9IG9wdC5leHRlbnNpb25zIHx8IHt9O1xyXG4gIG9wdC5leHRlbnNpb25zLmRlcml2YXRpdmVzID0gdHJ1ZTsgLy9uYiwgZmFsc2UgZGVmYXVsdHMgZm9yIGZyYWdEZXB0aCwgZHJhd0J1ZmZlcnMsIHNoYWRlclRleHR1cmVMT0Qgd2lsbCBubyBsb25nZXIgYmUgdGhlcmUuXHJcbiAgb3B0Lm5hbWUgPSBcIlNERiB0ZXh0IG1hdGVyaWFsXCI7XHJcblxyXG4gIC8vIHJlbW92ZSB0byBzYXRpc2Z5IHI3M1xyXG4gIGRlbGV0ZSBvcHQubWFwO1xyXG4gIGRlbGV0ZSBvcHQuY29sb3I7XHJcbiAgZGVsZXRlIG9wdC5wcmVjaXNpb247XHJcbiAgZGVsZXRlIG9wdC5vcGFjaXR5O1xyXG5cclxuICByZXR1cm4gYXNzaWduKHtcclxuICAgIHVuaWZvcm1zOiB7XHJcbiAgICAgIG9wYWNpdHk6IHsgdHlwZTogJ2YnLCB2YWx1ZTogb3BhY2l0eSB9LFxyXG4gICAgICBtYXA6IHsgdHlwZTogJ3QnLCB2YWx1ZTogbWFwIHx8IG5ldyBUSFJFRS5UZXh0dXJlKCkgfSxcclxuICAgICAgY29sb3I6IHsgdHlwZTogJ2MnLCB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGNvbG9yKSB9XHJcbiAgICB9LFxyXG4gICAgdmVydGV4U2hhZGVyOiBtZXNoYmFzaWNfdmVydCxcclxuICAgIGZyYWdtZW50U2hhZGVyOiBtZXNoYmFzaWNfZnJhZ1xyXG4gIH0sIG9wdCk7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBTREZTaGFkZXIgZnJvbSAnLi9zZGZzaGFkZXJfbG9nZGVwdGgnO1xyXG5pbXBvcnQgY3JlYXRlR2VvbWV0cnkgZnJvbSAndGhyZWUtYm1mb250LXRleHQnO1xyXG5pbXBvcnQgcGFyc2VBU0NJSSBmcm9tICdwYXJzZS1ibWZvbnQtYXNjaWknO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuaW1wb3J0ICogYXMgRm9udCBmcm9tICcuL2ZvbnQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApe1xyXG5cclxuICBjb25zdCBpbWFnZSA9IEZvbnQuaW1hZ2UoKTtcclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoaW1hZ2UpOyB0ZXh0dXJlLm5hbWUgPSAnc2RmRm9udFRleHR1cmUnXHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgLy9OQjo6OiBzb21ld2hhdCBleHBlcmltZW50YWwgcmVwbGFjZW1lbnQgb2YgUmF3U2hhZGVyIGNvZGUgZnJvbSBibWZvbnQgd2l0aCB2YXJpYXRpb24gb2YgTWVzaEJhc2ljIHNoYWRlclxyXG4gIC8vdGhpcyBzaG91bGQgYWxsb3cgZm9yIGxvZ2RlcHRoLCBmb2cgaXMgYWxzbyBhbnRpY2lwYXRlZCB0byB3b3JrIHJlYXNvbmFibHkgd2VsbC4uLiBcclxuICAvL3RvbmVtYXBwaW5nIGV0YyBtYXkgY29uY2VpdmFibHkgYmUgaW1wcm92ZWQuLi4gWU1NVi5cclxuICBsZXQgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoU0RGU2hhZGVyKHtcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIGNvbG9yOiBjb2xvcixcclxuICAgIG1hcDogdGV4dHVyZSxcclxuICAgIHR5cGU6ICdTREYgVGV4dCdcclxuICB9KSk7XHJcbiAgcmV0dXJuIG1hdGVyaWFsO1xyXG59XHJcblxyXG5jb25zdCB0ZXh0U2NhbGUgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdG9yKCl7XHJcblxyXG4gIGNvbnN0IGZvbnQgPSBwYXJzZUFTQ0lJKCBGb250LmZudCgpICk7XHJcblxyXG4gIGNvbnN0IGNvbG9yTWF0ZXJpYWxzID0ge307XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IgPSAweGZmZmZmZiwgc2NhbGUgPSAxLjAsIHdpZHRoLCBoZWlnaHQgKXtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IGNyZWF0ZUdlb21ldHJ5KHtcclxuICAgICAgdGV4dDogc3RyLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICBmbGlwWTogdHJ1ZSxcclxuICAgICAgZm9udFxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IGxheW91dCA9IGdlb21ldHJ5LmxheW91dDtcclxuXHJcbiAgICBsZXQgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXTtcclxuICAgIGlmKCBtYXRlcmlhbCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF0gPSBjcmVhdGVNYXRlcmlhbCggY29sb3IgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5KCBuZXcgVEhSRUUuVmVjdG9yMygxLC0xLDEpICk7XHJcblxyXG4gICAgY29uc3QgZmluYWxTY2FsZSA9IHNjYWxlICogdGV4dFNjYWxlO1xyXG5cclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHlTY2FsYXIoIGZpbmFsU2NhbGUgKTtcclxuXHJcbiAgICBtZXNoLnBvc2l0aW9uLnkgPSBsYXlvdXQuaGVpZ2h0ICogMC41ICogZmluYWxTY2FsZTtcclxuXHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIHN0ciwgeyBjb2xvcj0weGZmZmZmZiwgc2NhbGU9MS4wIH0gPSB7fSApe1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgICBsZXQgbWVzaCA9IGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IsIHNjYWxlICk7XHJcbiAgICBncm91cC5hZGQoIG1lc2ggKTtcclxuICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgZ3JvdXAuY29tcHV0ZVdpZHRoID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LndpZHRoICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuICAgIGdyb3VwLmNvbXB1dGVIZWlnaHQgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQuaGVpZ2h0ICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5jb25zdHJhaW5Cb3VuZHMgPSAodywgaCkgPT4ge1xyXG4gICAgICBncm91cC5yZW1vdmUobWVzaCk7XHJcbiAgICAgIGNvbnN0IHMgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgY29uc3QgaEZhY3RvciA9IG1lc2guZ2VvbWV0cnkubGF5b3V0LmhlaWdodCpzL2g7XHJcbiAgICAgIGlmIChoRmFjdG9yID4gMSkge1xyXG4gICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgMC45NSogc3RyLmxlbmd0aC9oRmFjdG9yKSArICcuLi4nO1xyXG4gICAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIH1cclxuICAgICAgZ3JvdXAuYWRkKG1lc2gpO1xyXG4gICAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC51cGRhdGVMYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgZ2V0TWF0ZXJpYWw6ICgpPT4gbWF0ZXJpYWwgLy9YWFg6IHRoaXMgZGF0ZXMgYmFjayBxdWl0ZSBhIGxvbmcgd2F5LCBub3Qgc3VyZSBpdCB3YXMgZXZlciByaWdodC5cclxuICB9XHJcblxyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4ZmZmZmZmLCB2ZXJ0ZXhDb2xvcnM6IFRIUkVFLlZlcnRleENvbG9ycyB9ICk7XHJcbmV4cG9ydCBjb25zdCBMT0NBVE9SID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVIgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MDAwMDAwIH0gKTtcclxuZXhwb3J0IGNvbnN0IFRPT0xUSVAgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MjA1MDgwLCB0cmFuc3BhcmVudDogZmFsc2UsIG9wYWNpdHk6IDAuOCB9ICk7XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNsaWRlcigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSAwLjAsXHJcbiAgbWluID0gMC4wLCBtYXggPSAxLjAsXHJcbiAgc3RlcCA9IDAuMSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBpbml0aWFsSGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgYWxwaGE6IDEuMCxcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBzdGVwOiBzdGVwLFxyXG4gICAgdXNlU3RlcDogdHJ1ZSxcclxuICAgIHByZWNpc2lvbjogMSxcclxuICAgIGxpc3RlbjogZmFsc2UsXHJcbiAgICBtaW46IG1pbixcclxuICAgIG1heDogbWF4LFxyXG4gICAgb25DaGFuZ2VkQ0I6IHVuZGVmaW5lZCxcclxuICAgIG9uRmluaXNoZWRDaGFuZ2U6IHVuZGVmaW5lZCxcclxuICAgIHByZXNzaW5nOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgc3RhdGUuc3RlcCA9IGdldEltcGxpZWRTdGVwKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApO1xyXG4gIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwic2xpZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gaGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0IFNMSURFUl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0RFUFRIID0gZGVwdGg7XHJcblxyXG4gICAgLy8gIGZpbGxlZCB2b2x1bWVcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIFNMSURFUl9XSURUSCwgU0xJREVSX0hFSUdIVCwgU0xJREVSX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShTTElERVJfV0lEVEgqMC41LDAsMCk7XHJcbiAgICAvLyBMYXlvdXQuYWxpZ25MZWZ0KCByZWN0ICk7XHJcblxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLm5hbWUgPSAnaGl0c2NhblZvbHVtZSc7XHJcblxyXG4gICAgLy8gIHNsaWRlckJHIHZvbHVtZVxyXG4gICAgY29uc3Qgc2xpZGVyQkcgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBzbGlkZXJCRy5nZW9tZXRyeSwgQ29sb3JzLlNMSURFUl9CRyApO1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSCArIExheW91dC5QQU5FTF9NQVJHSU47XHJcblxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkRFRkFVTFRfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgZmlsbGVkVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICBjb25zdCBlbmRMb2NhdG9yID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggMC4wNSwgMC4wNSwgMC4wNSwgMSwgMSwgMSApLCBTaGFyZWRNYXRlcmlhbHMuTE9DQVRPUiApO1xyXG4gICAgZW5kTG9jYXRvci5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGVuZExvY2F0b3IgKTtcclxuICAgIGVuZExvY2F0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9WQUxVRV9URVhUX01BUkdJTiArIHdpZHRoICogMC41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGgqMi41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDMyNTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX1NMSURFUiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIHBhbmVsLm5hbWUgPSAncGFuZWwnO1xyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIHNsaWRlckJHLCB2YWx1ZUxhYmVsLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgICBncm91cC5hZGQoIHBhbmVsIClcclxuXHJcbiAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgdXBkYXRlU2xpZGVyKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsdWVMYWJlbCggdmFsdWUgKXtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCByb3VuZFRvRGVjaW1hbCggc3RhdGUudmFsdWUsIHN0YXRlLnByZWNpc2lvbiApLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgICAgaWYoIHN0YXRlLnByZXNzaW5nICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSU5URVJBQ1RJT05fQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTbGlkZXIoKXtcclxuICAgICAgZmlsbGVkVm9sdW1lLnNjYWxlLnggPVxyXG4gICAgICAgIE1hdGgubWluKFxyXG4gICAgICAgICAgTWF0aC5tYXgoIGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKSAqIHdpZHRoLCAwLjAwMDAwMSApLFxyXG4gICAgICAgICAgd2lkdGhcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9iamVjdCggdmFsdWUgKXtcclxuICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBhbHBoYSApe1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggYWxwaGEgKTtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBnZXRTdGVwcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5zdGVwICk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRDbGFtcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpe1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbU9iamVjdCgpO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tT2JqZWN0KCl7XHJcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgICAgc3RhdGUub25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5zdGVwID0gZnVuY3Rpb24oIHN0ZXAgKXtcclxuICAgICAgc3RhdGUuc3RlcCA9IHN0ZXA7XHJcbiAgICAgIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwIClcclxuICAgICAgc3RhdGUudXNlU3RlcCA9IHRydWU7XHJcblxyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVQcmVzcyApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVIb2xkICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlUmVsZWFzZSApO1xyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVByZXNzKCBwICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVIb2xkKCB7IHBvaW50IH0gPSB7fSApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGZpbGxlZFZvbHVtZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBlbmRMb2NhdG9yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcblxyXG4gICAgICBjb25zdCBhID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGZpbGxlZFZvbHVtZS5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBjb25zdCBiID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGVuZExvY2F0b3IubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBnZXRQb2ludEFscGhhKCBwb2ludCwge2EsYn0gKSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHVwZGF0ZU9iamVjdCggc3RhdGUudmFsdWUgKTtcclxuXHJcbiAgICAgIGlmKCBwcmV2aW91c1ZhbHVlICE9PSBzdGF0ZS52YWx1ZSAmJiBzdGF0ZS5vbkNoYW5nZWRDQiApe1xyXG4gICAgICAgIHN0YXRlLm9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUmVsZWFzZSgpe1xyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICAgIHVwZGF0ZVNsaWRlcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5taW4gPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5taW4gPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5tYXggPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5tYXggPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9IC8vIC9zZXRIZWlnaHRcclxuICBncm91cC5zZXRIZWlnaHQoIGluaXRpYWxIZWlnaHQgKTtcclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IHRhID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0VG9BID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgYVRvQiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb2ludEFscGhhKCBwb2ludCwgc2VnbWVudCApe1xyXG4gIHRhLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICk7XHJcbiAgdGIuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBjb25zdCBwcm9qZWN0ZWQgPSB0Yi5wcm9qZWN0T25WZWN0b3IoIHRhICk7XHJcblxyXG4gIHRUb0EuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBhVG9CLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICkubm9ybWFsaXplKCk7XHJcblxyXG4gIGNvbnN0IHNpZGUgPSB0VG9BLm5vcm1hbGl6ZSgpLmRvdCggYVRvQiApID49IDAgPyAxIDogLTE7XHJcblxyXG4gIGNvbnN0IGxlbmd0aCA9IHNlZ21lbnQuYS5kaXN0YW5jZVRvKCBzZWdtZW50LmIgKSAqIHNpZGU7XHJcblxyXG4gIGxldCBhbHBoYSA9IHByb2plY3RlZC5sZW5ndGgoKSAvIGxlbmd0aDtcclxuICBpZiggYWxwaGEgPiAxLjAgKXtcclxuICAgIGFscGhhID0gMS4wO1xyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwLjAgKXtcclxuICAgIGFscGhhID0gMC4wO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxlcnAobWluLCBtYXgsIHZhbHVlKSB7XHJcbiAgcmV0dXJuICgxLXZhbHVlKSptaW4gKyB2YWx1ZSptYXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcF9yYW5nZSh2YWx1ZSwgbG93MSwgaGlnaDEsIGxvdzIsIGhpZ2gyKSB7XHJcbiAgICByZXR1cm4gbG93MiArIChoaWdoMiAtIGxvdzIpICogKHZhbHVlIC0gbG93MSkgLyAoaGlnaDEgLSBsb3cxKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApe1xyXG4gIGlmKCBhbHBoYSA+IDEgKXtcclxuICAgIHJldHVybiAxXHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAgKXtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRWYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgaWYoIHZhbHVlIDwgbWluICl7XHJcbiAgICByZXR1cm4gbWluO1xyXG4gIH1cclxuICBpZiggdmFsdWUgPiBtYXggKXtcclxuICAgIHJldHVybiBtYXg7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0SW1wbGllZFN0ZXAoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIC8vUEpUOiB3aGF0IHdvdWxkIHdlIGxpa2Ugc3RlcCB0byBsb29rIGxpa2U/XHJcbiAgLy9Tb21ldGhpbmcgdGhhdCBoYXMgYWJvdXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSwgYW5kIGxvb2tzIG5pY2UgaW4gYmFzZSAxMD9cclxuICBjb25zdCByID0gbWF4LW1pbjtcclxuICBsZXQgc3RlcCA9IHIvMTAwOyAvL3doYXQgaXMgdGhlIHJhdGlvIG9mIG51bWJlciBvZiBkZWNpbWFscyB0byBvcmRlciBvZiBtYWduaXR1ZGU/XHJcbiAgXHJcbiAgcmV0dXJuIHN0ZXA7XHJcblxyXG4gIC8vIGlmKCB2YWx1ZSA9PT0gMCApe1xyXG4gIC8vICAgcmV0dXJuIDE7IC8vIFdoYXQgYXJlIHdlLCBwc3ljaGljcz8gLy88PDw8LS0tIG5vLCBzbyB3ZSBzaG91bGQgYmFzZSBpbXBsaWVkU3RlcCBvbiBtaW4vbWF4LCBub3QgdmFsdWVcclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgLy8gSGV5IERvdWcsIGNoZWNrIHRoaXMgb3V0LlxyXG4gIC8vICAgcmV0dXJuIE1hdGgucG93KDEwLCBNYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKHZhbHVlKSkvTWF0aC5MTjEwKSkvMTA7XHJcbiAgLy8gfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRWYWx1ZUZyb21BbHBoYSggYWxwaGEsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggYWxwaGEsIDAuMCwgMS4wLCBtaW4sIG1heCApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFscGhhRnJvbVZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCB2YWx1ZSwgbWluLCBtYXgsIDAuMCwgMS4wICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFN0ZXBwZWRWYWx1ZSggdmFsdWUsIHN0ZXAgKXtcclxuICBpZiggdmFsdWUgJSBzdGVwICE9IDApIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKCB2YWx1ZSAvIHN0ZXAgKSAqIHN0ZXA7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gbnVtRGVjaW1hbHMoeCkge1xyXG4gIHggPSB4LnRvU3RyaW5nKCk7XHJcbiAgaWYgKHguaW5kZXhPZignLicpID4gLTEpIHtcclxuICAgIHJldHVybiB4Lmxlbmd0aCAtIHguaW5kZXhPZignLicpIC0gMTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByb3VuZFRvRGVjaW1hbCh2YWx1ZSwgZGVjaW1hbHMpIHtcclxuICBpZiAoTWF0aC5hYnModmFsdWUpIDwgMC4wMSAmJiB2YWx1ZSAhPT0gMCkgcmV0dXJuIHZhbHVlLnRvRXhwb25lbnRpYWwoMyk7XHJcbiAgY29uc3QgdGVuVG8gPSBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xyXG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogdGVuVG8pIC8gdGVuVG87XHJcbn0iLCIvKipcclxuICogV2hlbiB0aGUgdGV4dGJveCBpcyBmb2N1c3NlZCwgIGEga2V5Ym9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuLi5cclxuICogVGhlcmUgc2hvdWxkIGFsc28gYmUgYSB3YXkgb2YgZGlzbWlzc2luZyBpdCBsYXRlci4gIEl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdG9cclxuICogcHJldmVudCBtdWx0aXBsZSBrZXlib2FyZHMgYmVpbmcgbWFkZSBzaW11bHRhbmVvdXNseT9cclxuICogXHJcbiAqIEluIG9yZGVyIHRvIG1ha2UgaXQgYXBwZWFyLCBpdCBjYW4gYmUgYWRkZWQgYXMgYSBjaGlsZCBvZiB0aGUgdGV4Ym94IG5vZGUgaXRzZWxmLi4uXHJcbiAqIFRoaXMnbGwgbWVhbiB0aGF0IGl0IGdldHMgZHJhZ2dlZCBhcm91bmQgYnkgdGhlIHBhcmVudCBHVUkgYXMgaXQgbW92ZXMuLi4uXHJcbiAqIE1ha2VzIGZvciByZWxhdGl2ZWx5IGNsZWFuLCBzaW1wbGUgaW1wbGVtZW50YXRpb24gYXQgbGVhc3QuXHJcbiAqIEF0IHRoZSBtb21lbnQsIGtleWJvYXJkIHBvc2l0aW9uaW5nIGlzIG1lc3NlZCB1cCBieSB0aGlzIGFycmFuZ2VtZW50LlxyXG4gKiBSZW1vdmluZyBncmFiYmVyIG1ha2VzIGl0IGxlc3MgbGlrZWx5IGEgdXNlciB3aWxsIGRvIHRoaXMsIGJ1dCBtaWdodCBiZSB3b3J0aCBmaXhpbmcgdGhlIGJhc2ljIGJ1Zy5cclxuICogXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgR1VJIGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dEJveCh7XHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9KSB7XHJcbiAgLy8gYmlnIG9sZCBjb3B5IC8gcGFzdGUgZnJvbSBidXR0b24uanMuIE1pZ2h0IHRyeSB0byBmYWN0b3Igb3V0IHNvbWUgb2YgdGhpcyBjb21tb24gY29kZS5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0Ym94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogMHhGRkZGRkYgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICAvL2hvdyBjYW4gSSBjaGFuZ2UgY29sb3Igb2YgdGV4dD9cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggb2JqZWN0W3Byb3BlcnR5TmFtZV0sIHsgY29sb3I6IDB4MDAwMDAwMCwgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIC8vYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSAwLjAxNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVTdHJpbmcoc3RyKSB7XHJcbiAgICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RyO1xyXG4gICAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbChzdHIpO1xyXG4gIH1cclxuICB2YXIga2V5Ym9hcmQ7XHJcbiAgZnVuY3Rpb24gdG9nZ2xlS2V5Ym9hcmQoKSB7XHJcbiAgICBpZiAoa2V5Ym9hcmQpIHtcclxuICAgICAgICBrZXlib2FyZC52aXNpYmxlID0gIWtleWJvYXJkLnZpc2libGU7XHJcbiAgICAgICAgaWYgKGtleWJvYXJkLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBrZXlib2FyZCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJrZXlib2FyZFwiKTtcclxuICAgICAgICBncm91cC5hZGQoa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLmZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnggPSB3aWR0aDtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICAgICAga2V5Ym9hcmQuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgIGtleWJvYXJkLmFkZEtleWJvYXJkKCAoaykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgc3RyID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAoaykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxuJzpcclxuICAgICAgICAgICAgICAgICAgICAvL3NldHRpbmcgXCJrZXlib2FyZC52aXNpYmxlID0gZmFsc2VcIiBpbiB0aGUgbWlkZGxlIG9mIGV2ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyIHNlZW1zIHRvIGtpbGwgYWxsIGV2ZW50IHByb2Nlc3NpbmcgZnJvbSB0aGVuIG9uLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0VGltZW91dCBpcyBhbiBhZGVxdWF0ZSB3b3JrYXJvdW5kIGZvciBub3cuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0b2dnbGVLZXlib2FyZCwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcYic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gaztcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy90aGlzIHRlc3Qgc2hvdWxkIGJlIHJlZHVuZGFudCBub3dcclxuICAgIC8vIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy9vYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgLy9oaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgLy8gY3JlYXRlIGEga2V5Ym9hcmQgYW5kIGF0dGFjaCBpdCBhcyBjaGlsZCBvZiBncm91cC4uLiBcclxuICAgIC8vIG9yIGp1c3QgbWFrZSBzdXJlIGV4aXN0aW5nIGtleWJvYXJkIGlzIHZpc2libGUuXHJcbiAgICB0b2dnbGVLZXlib2FyZCgpO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0hJR0hMSUdIVF9CRyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9CRyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0TGFiZWwoIHRleHRDcmVhdG9yLCBzdHIsIHdpZHRoID0gMC40LCBkZXB0aCA9IDAuMDI5LCBmZ0NvbG9yID0gMHhmZmZmZmYsIGJnQ29sb3IgPSBDb2xvcnMuREVGQVVMVF9CQUNLLCBzY2FsZSA9IDEuMCApe1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRsYWJlbFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3N0cn1dYDtcclxuXHJcbiAgY29uc3QgaW50ZXJuYWxQb3NpdGlvbmluZyA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL3JhdGhlciB1bm5lY2Vzc2FyeS5cclxuICBncm91cC5hZGQoIGludGVybmFsUG9zaXRpb25pbmcgKTtcclxuXHJcbiAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RyLnRvU3RyaW5nKCksIHsgY29sb3I6IGZnQ29sb3IsIHNjYWxlIH0gKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggdGV4dCApO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnRleHQgPSB0ZXh0O1xyXG5cclxuICBncm91cC5zZXRTdHJpbmcgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHN0ciA9IFwiW3VuZGVmaW5lZF1cIjtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b1N0cmluZygpICk7XHJcbiAgICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldE51bWJlciA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b0ZpeGVkKDIpICk7XHJcbiAgfTtcclxuXHJcbiAgdGV4dC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIGNvbnN0IGJhY2tCb3VuZHMgPSAwLjAxO1xyXG4gIGNvbnN0IG1hcmdpbiA9IDAuMDE7XHJcbiAgY29uc3QgdG90YWxXaWR0aCA9IHdpZHRoO1xyXG4gIGNvbnN0IHRvdGFsSGVpZ2h0ID0gMC4wNCArIG1hcmdpbiAqIDI7XHJcblxyXG4gIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja0dlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB0b3RhbFdpZHRoLCB0b3RhbEhlaWdodCwgZGVwdGgsIDEsIDEsIDEgKTtcclxuICBsYWJlbEJhY2tHZW9tZXRyeS5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVRyYW5zbGF0aW9uKCB0b3RhbFdpZHRoICogMC41IC0gbWFyZ2luLCAwLCAwICkgKTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrTWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBsYWJlbEJhY2tHZW9tZXRyeSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsQmFja01lc2guZ2VvbWV0cnksIGJnQ29sb3IgKTtcclxuXHJcbiAgbGFiZWxCYWNrTWVzaC5wb3NpdGlvbi55ID0gMC4wMztcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggbGFiZWxCYWNrTWVzaCApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcucG9zaXRpb24ueSA9IC10b3RhbEhlaWdodCAqIDAuNTtcclxuXHJcbiAgZ3JvdXAuYmFjayA9IGxhYmVsQmFja01lc2g7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgZGVmYXVsdFBhcmVudEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2xUaXAoIHRleHRDcmVhdG9yLCB0aXAsIHBhcmVudFdpZHRoLCBwYXJlbnRIZWlnaHQgPSBkZWZhdWx0UGFyZW50SGVpZ2h0LCBwYXJlbnREZXB0aCApIHtcclxuICBjb25zdCB0aXBUZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKHRpcCk7XHJcbiAgXHJcbiAgY29uc3QgdGlwR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgY29uc3QgdyA9IHRpcFRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgY29uc3QgaCA9IExheW91dC5URVhUX1NDQUxFICogdGlwVGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG5cclxuICB0aXBHcm91cC5wb3NpdGlvbi54ICA9IDAuNSAqIHBhcmVudFdpZHRoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnkgPSAtMS4wNSAqIHBhcmVudEhlaWdodCAtIGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueiA9IHBhcmVudERlcHRoICogMztcclxuICB0aXBHcm91cC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4vLyAgc3ViZ3JvdXAuYWRkKHRpcEdyb3VwKTtcclxuICB0aXBHcm91cC5hZGQodGlwVGV4dCk7XHJcbi8vICBzdWJncm91cC50aXBUZXh0ID0gdGlwR3JvdXA7XHJcblxyXG4gIGNvbnN0IHBhZGRlZFcgPSB3ICsgMC4wMywgcGFkZGVkSCA9IGggKyAwLjAzO1xyXG4gIGNvbnN0IHRpcFJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeShwYWRkZWRXLCBwYWRkZWRILCAxLCAxKTtcclxuICBjb25zdCB0aXBCYWNrZ3JvdW5kID0gbmV3IFRIUkVFLk1lc2godGlwUmVjdCwgU2hhcmVkTWF0ZXJpYWxzLlRPT0xUSVApO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueCA9IDA7IC8vcGFkZGVkVyAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi55ID0gaCAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi56ID0gLXBhcmVudERlcHRoICogMC41O1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBCYWNrZ3JvdW5kKTtcclxuXHJcbiAgdGlwVGV4dC5wb3NpdGlvbi54ID0gLTAuNSAqIHc7XHJcbiAgdGlwVGV4dC5wb3NpdGlvbi55ID0gLTAuNSAqIGggKyAwLjAwMTU7XHJcblxyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLncgPSB3O1xyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLmggPSBoO1xyXG5cclxuICByZXR1cm4gdGlwR3JvdXA7XHJcbn1cclxuIiwiLyoqIGJhc2ljIHV0aWxpdHkgZnVuY3Rpb25zICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sbGVyVmlzaWJsZShjb250cm9sKSB7XHJcbiAgdmFyIGZvbGRlciA9IGNvbnRyb2wuZm9sZGVyO1xyXG4gIC8vbm90ZTogdGhlIGJhc2lzIG9uIHdoaWNoIGEgY29udHJvbGxlciBpcyBjb25zaWRlcmVkIHZpc2libGUgcmV2aXNlZCBmb3IgJ2hlYWRlcicgb2JqZWN0cy5cclxuICAvL2ZvciBub3csIHRoaXMgc2hvdWxkIGFsbG93IGhlYWRlciBjb250cm9sbGVycyB0byB1cGRhdGUgd2hpbGUgZm9sZGVyIGlzIGNvbGxhcHNlZC5cclxuICAvL29ubHkgYXBwbGllcyB0byBjaGVja2JveCwgcGVuZGluZyBkZXNpZ24gcmV2aXNpb24gJiBmdWxsZXIgaW1wbGVtZW50YXRpb24uLi5cclxuICBcclxuICAvLy0tLS0gaXNTaG93bkluRm9sZGVySGVhZGVyIG5vIGxvbmdlciByZWxldmFudCwgYnV0IGVuZGluZyB1cCB3aXRoIHNvbWV0aGluZyB0aGF0IGxvb2tzIHNpbWlsYXIuLi4uXHJcbiAgLy9pc0hlYWRlck9iamVjdCB3aWxsIGFwcGx5IHRvIHRoZSBhY3R1YWwgY29udHJvbCBhcHBlYXJpbmcgaW4gdGhlIGZvbGRlciBoZWFkZXIsIHdoZXJlYXNcclxuICAvL2lzU2hvd25JbkZvbGRlckhlYWRlciB3YXMgd2hlbiBzdWNoIG9iamVjdHMgd2VyZW4ndCBzbyBmdWxseS1mbGVkZ2VkXHJcbiAgLy9pZiAoY29udHJvbC5pc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7IC8vPDw8PDwgc3RpbGwgaGl0dGluZyBmb2xkZWQgYnV0dG9uPz8/IChhbHNvLCB0cnkgbnBtIGF1ZGl0KVxyXG4gIGlmIChjb250cm9sLmlzSGVhZGVyT2JqZWN0KSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpO1xyXG5cclxuICAvL1hYWCBoYXZpbmcgc29tZSBkZWZpbml0ZSBidWdzIGUuZy4gbWlzc2luZyBldmVudHMgb3ZlciAncGljdHVyZXMgLyBtYXRlcmlhbHMnIGZvbGRlciBoZWFkZXIgaW4gZGVtby5cclxuICBcclxuICBpZiAoIWNvbnRyb2wudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gIFxyXG4gIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpe1xyXG4gICAgaWYgKGZvbGRlci5pc0NvbGxhcHNlZCgpIHx8ICFmb2xkZXIudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICB9XHJcbiAgaWYgKCFmb2xkZXIucGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIGZvbGRlci52aXNpYmxlO1xyXG59XHJcblxyXG4vKiogXHJcbiAqIEludmlzaWJsZSBUSFJFRSBvYmplY3RzIGluY3VyIHNpZ25pZmljYW50IENQVSBjb3N0LlxyXG4gKiBUaGlzIGF2b2lkcyB0aGF0IGJ5IHJlbW92aW5nIHRoZW0gZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqIFxyXG4gKiBJZiB2aXNpYmxlIGlzIHRydWUsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPXRydWUgYW5kIGlzIGEgY2hpbGQgb2YgcGFyZW50LlxyXG4gKiBJZiB2aXNpYmxlIGlzIGZhbHNlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT1mYWxzZSBhbmQgaXMgcmVtb3ZlZCBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRWaXNpYmlsaXR5KHBhcmVudCwgY2hpbGQsIHZpc2libGUpIHtcclxuICAgIGNvbnN0IGlzQ2hpbGQgPSBwYXJlbnQuY2hpbGRyZW4uaW5jbHVkZXMoY2hpbGQpO1xyXG4gICAgY2hpbGQudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAvL21ha2Ugc3VyZSB3ZSB1c2Ugb3JpZ2luYWwgVEhSRUUgbWV0aG9kcyB0aGF0IHRoaXMgbGlicmFyeSBvdmVycmlkZXMgKFRPRE86IHJlZmFjdG9yLi4uKVxyXG4gICAgaWYgKHZpc2libGUgJiYgIWlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghdmlzaWJsZSAmJiBpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXBhcmVudC52aXNpYmxlKSBjb25zb2xlLndhcm4oYHNldFZpc2liaWxpdHkgY2FsbGVkIG9uIGNoaWxkICR7Y2hpbGR9IG9mIGludmlzaWJsZSBwYXJlbnQgJHtwYXJlbnR9YCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBoaWdoZXN0IGxldmVsIG9mIHBhcmVudCBmb2xkZXIgaW4gdGhlIGd1aSBoaWVhcmNoeSBjb250YWluaW5nIGEgZ2l2ZW4gb2JqZWN0LlxyXG4gKiBuYi4gb2xkZXIgdmVyc2lvbnMgb2YgdGhpcyBmdW5jdGlvbiB3b3VsZCByZXR1cm4gdGhlIGlucHV0IG9iamVjdCBpZiBpdCBkaWRuJ3QgaGF2ZSBhICdmb2xkZXInIHByb3BlcnR5LlxyXG4gKiBOb3csIGl0IGlzIGludGVuZGVkIHRoYXQgaXQgc2hvdWxkIGVpdGhlciByZXR1cm4gYSBmb2xkZXIgaWYgYXBwcm9wcmlhdGUsIG9yIG5vdGhpbmcuXHJcbiAqIEBwYXJhbSB7Kn0gZ3JvdXAgZWl0aGVyIGEgZm9sZGVyLCBvciBhbiBvYmplY3Qgd2hvc2UgcGFyZW50IGhhcyBhIGZvbGRlci4uLiBhcG9sb2dpZXMsIHRoaXMgaXMgbm90IHRoZSBjbGVhcmVzdCBzcGVjLlxyXG4gKiAuLi4gaW50ZW50aW9uIGlzIHRoYXQgaXQgc2hvdWxkIHdvcmsgd2l0aCBhbnkgZ3VpIGVsZW1lbnQsIGluIHBhcnRpY3VsYXIgYW55IGhpdE9iamVjdCBpbiBpbnRlcmFjdGlvbi5qcy4uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSB7XHJcbiAgICB2YXIgZm9sZGVyID0gZ2V0Rm9sZGVyKGdyb3VwKTtcclxuICAgIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9sZGVyKGdyb3VwKSB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSByZXR1cm4gZ3JvdXAuZm9sZGVyO1xyXG4gICAgbGV0IG5vZGUgPSBncm91cC5wYXJlbnQ7XHJcbiAgICB3aGlsZSAoIW5vZGUuZm9sZGVyICYmIGdyb3VwLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgcmV0dXJuIG5vZGUuZm9sZGVyO1xyXG59XHJcblxyXG4vL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Qm94RnJvbU9iamVjdChib3gsIG9iaikge1xyXG4gIGNvbnN0IHdvbmt5R2VvbSA9IFtdO1xyXG4gIG9iai50cmF2ZXJzZShvID0+IHtcclxuICAgIGlmIChvLmdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemUgIT09IDMpIHtcclxuICAgICAgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ID0gZmFsc2U7XHJcbiAgICAgIHdvbmt5R2VvbS5wdXNoKG8uZ2VvbWV0cnkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGJveC5zZXRGcm9tT2JqZWN0KG9iaik7XHJcbiAgd29ua3lHZW9tLmZvckVhY2goZyA9PiBnLmlzQnVmZmVyR2VvbWV0cnkgPSB0cnVlKTtcclxuICByZXR1cm4gYm94O1xyXG59XHJcbiIsIi8qXHJcbiAqXHRAYXV0aG9yIHp6ODUgLyBodHRwOi8vdHdpdHRlci5jb20vYmx1cnNwbGluZSAvIGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2dcclxuICpcdEBhdXRob3IgY2VudGVyaW9ud2FyZSAvIGh0dHA6Ly93d3cuY2VudGVyaW9ud2FyZS5jb21cclxuICpcclxuICpcdFN1YmRpdmlzaW9uIEdlb21ldHJ5IE1vZGlmaWVyXHJcbiAqXHRcdHVzaW5nIExvb3AgU3ViZGl2aXNpb24gU2NoZW1lXHJcbiAqXHJcbiAqXHRSZWZlcmVuY2VzOlxyXG4gKlx0XHRodHRwOi8vZ3JhcGhpY3Muc3RhbmZvcmQuZWR1L35tZGZpc2hlci9zdWJkaXZpc2lvbi5odG1sXHJcbiAqXHRcdGh0dHA6Ly93d3cuaG9sbWVzM2QubmV0L2dyYXBoaWNzL3N1YmRpdmlzaW9uL1xyXG4gKlx0XHRodHRwOi8vd3d3LmNzLnJ1dGdlcnMuZWR1L35kZWNhcmxvL3JlYWRpbmdzL3N1YmRpdi1zZzAwYy5wZGZcclxuICpcclxuICpcdEtub3duIElzc3VlczpcclxuICpcdFx0LSBjdXJyZW50bHkgZG9lc24ndCBoYW5kbGUgXCJTaGFycCBFZGdlc1wiXHJcbiAqL1xyXG5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciA9IGZ1bmN0aW9uICggc3ViZGl2aXNpb25zICkge1xyXG5cclxuXHR0aGlzLnN1YmRpdmlzaW9ucyA9ICggc3ViZGl2aXNpb25zID09PSB1bmRlZmluZWQgKSA/IDEgOiBzdWJkaXZpc2lvbnM7XHJcblxyXG59O1xyXG5cclxuLy8gQXBwbGllcyB0aGUgXCJtb2RpZnlcIiBwYXR0ZXJuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLm1vZGlmeSA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7XHJcblxyXG5cdHZhciByZXBlYXRzID0gdGhpcy5zdWJkaXZpc2lvbnM7XHJcblxyXG5cdHdoaWxlICggcmVwZWF0cyAtLSA+IDAgKSB7XHJcblxyXG5cdFx0dGhpcy5zbW9vdGgoIGdlb21ldHJ5ICk7XHJcblxyXG5cdH1cclxuXHJcblx0Z2VvbWV0cnkuY29tcHV0ZUZhY2VOb3JtYWxzKCk7XHJcblx0Z2VvbWV0cnkuY29tcHV0ZVZlcnRleE5vcm1hbHMoKTtcclxuXHJcbn07XHJcblxyXG4oIGZ1bmN0aW9uKCkge1xyXG5cclxuXHQvLyBTb21lIGNvbnN0YW50c1xyXG5cdHZhciBXQVJOSU5HUyA9ICEgdHJ1ZTsgLy8gU2V0IHRvIHRydWUgZm9yIGRldmVsb3BtZW50XHJcblx0dmFyIEFCQyA9IFsgJ2EnLCAnYicsICdjJyBdO1xyXG5cclxuXHJcblx0ZnVuY3Rpb24gZ2V0RWRnZSggYSwgYiwgbWFwICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHJldHVybiBtYXBbIGtleSBdO1xyXG5cclxuXHR9XHJcblxyXG5cclxuXHRmdW5jdGlvbiBwcm9jZXNzRWRnZSggYSwgYiwgdmVydGljZXMsIG1hcCwgZmFjZSwgbWV0YVZlcnRpY2VzICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHZhciBlZGdlO1xyXG5cclxuXHRcdGlmICgga2V5IGluIG1hcCApIHtcclxuXHJcblx0XHRcdGVkZ2UgPSBtYXBbIGtleSBdO1xyXG5cclxuXHRcdH0gZWxzZSB7XHJcblxyXG5cdFx0XHR2YXIgdmVydGV4QSA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEEgXTtcclxuXHRcdFx0dmFyIHZlcnRleEIgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhCIF07XHJcblxyXG5cdFx0XHRlZGdlID0ge1xyXG5cclxuXHRcdFx0XHRhOiB2ZXJ0ZXhBLCAvLyBwb2ludGVyIHJlZmVyZW5jZVxyXG5cdFx0XHRcdGI6IHZlcnRleEIsXHJcblx0XHRcdFx0bmV3RWRnZTogbnVsbCxcclxuXHRcdFx0XHQvLyBhSW5kZXg6IGEsIC8vIG51bWJlcmVkIHJlZmVyZW5jZVxyXG5cdFx0XHRcdC8vIGJJbmRleDogYixcclxuXHRcdFx0XHRmYWNlczogW10gLy8gcG9pbnRlcnMgdG8gZmFjZVxyXG5cclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdG1hcFsga2V5IF0gPSBlZGdlO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRlZGdlLmZhY2VzLnB1c2goIGZhY2UgKTtcclxuXHJcblx0XHRtZXRhVmVydGljZXNbIGEgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblx0XHRtZXRhVmVydGljZXNbIGIgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGdlbmVyYXRlTG9va3VwcyggdmVydGljZXMsIGZhY2VzLCBtZXRhVmVydGljZXMsIGVkZ2VzICkge1xyXG5cclxuXHRcdHZhciBpLCBpbCwgZmFjZSwgZWRnZTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSB2ZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG1ldGFWZXJ0aWNlc1sgaSBdID0geyBlZGdlczogW10gfTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gZmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gZmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmEsIGZhY2UuYiwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYiwgZmFjZS5jLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5jLCBmYWNlLmEsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld0ZhY2UoIG5ld0ZhY2VzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld0ZhY2VzLnB1c2goIG5ldyBUSFJFRS5GYWNlMyggYSwgYiwgYyApICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbWlkcG9pbnQoIGEsIGIgKSB7XHJcblxyXG5cdFx0cmV0dXJuICggTWF0aC5hYnMoIGIgLSBhICkgLyAyICkgKyBNYXRoLm1pbiggYSwgYiApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld1V2KCBuZXdVdnMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3VXZzLnB1c2goIFsgYS5jbG9uZSgpLCBiLmNsb25lKCksIGMuY2xvbmUoKSBdICk7XHJcblxyXG5cdH1cclxuXHJcblx0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblx0Ly8gUGVyZm9ybXMgb25lIGl0ZXJhdGlvbiBvZiBTdWJkaXZpc2lvblxyXG5cdFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLnNtb290aCA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7IHJldHVybjsgLy8gc2pwdCBURU1QIFRPRE9cclxuXHJcblx0XHR2YXIgdG1wID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHR2YXIgb2xkVmVydGljZXMsIG9sZEZhY2VzLCBvbGRVdnM7XHJcblx0XHR2YXIgbmV3VmVydGljZXMsIG5ld0ZhY2VzLCBuZXdVVnMgPSBbXTtcclxuXHJcblx0XHR2YXIgbiwgbCwgaSwgaWwsIGosIGs7XHJcblx0XHR2YXIgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcztcclxuXHJcblx0XHQvLyBuZXcgc3R1ZmYuXHJcblx0XHR2YXIgc291cmNlRWRnZXMsIG5ld0VkZ2VWZXJ0aWNlcywgbmV3U291cmNlVmVydGljZXM7XHJcblxyXG5cdFx0b2xkVmVydGljZXMgPSBnZW9tZXRyeS52ZXJ0aWNlczsgLy8geyB4LCB5LCB6fVxyXG5cdFx0b2xkRmFjZXMgPSBnZW9tZXRyeS5mYWNlczsgLy8geyBhOiBvbGRWZXJ0ZXgxLCBiOiBvbGRWZXJ0ZXgyLCBjOiBvbGRWZXJ0ZXgzIH1cclxuXHRcdG9sZFV2cyA9IGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXTtcclxuXHJcblx0XHR2YXIgaGFzVXZzID0gb2xkVXZzICE9PSB1bmRlZmluZWQgJiYgb2xkVXZzLmxlbmd0aCA+IDA7XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqIFN0ZXAgMDogUHJlcHJvY2VzcyBHZW9tZXRyeSB0byBHZW5lcmF0ZSBlZGdlcyBMb29rdXBcclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRtZXRhVmVydGljZXMgPSBuZXcgQXJyYXkoIG9sZFZlcnRpY2VzLmxlbmd0aCApO1xyXG5cdFx0c291cmNlRWRnZXMgPSB7fTsgLy8gRWRnZSA9PiB7IG9sZFZlcnRleDEsIG9sZFZlcnRleDIsIGZhY2VzW10gIH1cclxuXHJcblx0XHRnZW5lcmF0ZUxvb2t1cHMoIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcyApO1xyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMS5cclxuXHRcdCAqXHRGb3IgZWFjaCBlZGdlLCBjcmVhdGUgYSBuZXcgRWRnZSBWZXJ0ZXgsXHJcblx0XHQgKlx0dGhlbiBwb3NpdGlvbiBpdC5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdFZGdlVmVydGljZXMgPSBbXTtcclxuXHRcdHZhciBvdGhlciwgY3VycmVudEVkZ2UsIG5ld0VkZ2UsIGZhY2U7XHJcblx0XHR2YXIgZWRnZVZlcnRleFdlaWdodCwgYWRqYWNlbnRWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RlZEZhY2VzO1xyXG5cclxuXHRcdGZvciAoIGkgaW4gc291cmNlRWRnZXMgKSB7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZSA9IHNvdXJjZUVkZ2VzWyBpIF07XHJcblx0XHRcdG5ld0VkZ2UgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDMgLyA4O1xyXG5cdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0Y29ubmVjdGVkRmFjZXMgPSBjdXJyZW50RWRnZS5mYWNlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHQvLyBjaGVjayBob3cgbWFueSBsaW5rZWQgZmFjZXMuIDIgc2hvdWxkIGJlIGNvcnJlY3QuXHJcblx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gaWYgbGVuZ3RoIGlzIG5vdCAyLCBoYW5kbGUgY29uZGl0aW9uXHJcblx0XHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDAuNTtcclxuXHRcdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnU3ViZGl2aXNpb24gTW9kaWZpZXI6IE51bWJlciBvZiBjb25uZWN0ZWQgZmFjZXMgIT0gMiwgaXM6ICcsIGNvbm5lY3RlZEZhY2VzLCBjdXJyZW50RWRnZSApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdFZGdlLmFkZFZlY3RvcnMoIGN1cnJlbnRFZGdlLmEsIGN1cnJlbnRFZGdlLmIgKS5tdWx0aXBseVNjYWxhciggZWRnZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBjb25uZWN0ZWRGYWNlczsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0ZmFjZSA9IGN1cnJlbnRFZGdlLmZhY2VzWyBqIF07XHJcblxyXG5cdFx0XHRcdGZvciAoIGsgPSAwOyBrIDwgMzsgayArKyApIHtcclxuXHJcblx0XHRcdFx0XHRvdGhlciA9IG9sZFZlcnRpY2VzWyBmYWNlWyBBQkNbIGsgXSBdIF07XHJcblx0XHRcdFx0XHRpZiAoIG90aGVyICE9PSBjdXJyZW50RWRnZS5hICYmIG90aGVyICE9PSBjdXJyZW50RWRnZS5iICkgYnJlYWs7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggYWRqYWNlbnRWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3RWRnZS5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UubmV3RWRnZSA9IG5ld0VkZ2VWZXJ0aWNlcy5sZW5ndGg7XHJcblx0XHRcdG5ld0VkZ2VWZXJ0aWNlcy5wdXNoKCBuZXdFZGdlICk7XHJcblxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhjdXJyZW50RWRnZSwgbmV3RWRnZSk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAyLlxyXG5cdFx0ICpcdFJlcG9zaXRpb24gZWFjaCBzb3VyY2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0dmFyIGJldGEsIHNvdXJjZVZlcnRleFdlaWdodCwgY29ubmVjdGluZ1ZlcnRleFdlaWdodDtcclxuXHRcdHZhciBjb25uZWN0aW5nRWRnZSwgY29ubmVjdGluZ0VkZ2VzLCBvbGRWZXJ0ZXgsIG5ld1NvdXJjZVZlcnRleDtcclxuXHRcdG5ld1NvdXJjZVZlcnRpY2VzID0gW107XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkVmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRvbGRWZXJ0ZXggPSBvbGRWZXJ0aWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCBhbGwgY29ubmVjdGluZyBlZGdlcyAodXNpbmcgbG9va3VwVGFibGUpXHJcblx0XHRcdGNvbm5lY3RpbmdFZGdlcyA9IG1ldGFWZXJ0aWNlc1sgaSBdLmVkZ2VzO1xyXG5cdFx0XHRuID0gY29ubmVjdGluZ0VkZ2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdGlmICggbiA9PSAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvIDE2O1xyXG5cclxuXHRcdFx0fSBlbHNlIGlmICggbiA+IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gKCA4ICogbiApOyAvLyBXYXJyZW4ncyBtb2RpZmllZCBmb3JtdWxhXHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBMb29wJ3Mgb3JpZ2luYWwgYmV0YSBmb3JtdWxhXHJcblx0XHRcdC8vIGJldGEgPSAxIC8gbiAqICggNS84IC0gTWF0aC5wb3coIDMvOCArIDEvNCAqIE1hdGguY29zKCAyICogTWF0aC4gUEkgLyBuICksIDIpICk7XHJcblxyXG5cdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxIC0gbiAqIGJldGE7XHJcblx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSBiZXRhO1xyXG5cclxuXHRcdFx0aWYgKCBuIDw9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGNyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXNcclxuXHRcdFx0XHQvLyBjb25zb2xlLndhcm4oJ2NyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXMnKTtcclxuXHJcblx0XHRcdFx0aWYgKCBuID09IDIgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzIgY29ubmVjdGluZyBlZGdlcycsIGNvbm5lY3RpbmdFZGdlcyApO1xyXG5cdFx0XHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMyAvIDQ7XHJcblx0XHRcdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRcdFx0Ly8gc291cmNlVmVydGV4V2VpZ2h0ID0gMTtcclxuXHRcdFx0XHRcdC8vIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ29ubHkgMSBjb25uZWN0aW5nIGVkZ2UnICk7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMCApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMCBjb25uZWN0aW5nIGVkZ2VzJyApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXggPSBvbGRWZXJ0ZXguY2xvbmUoKS5tdWx0aXBseVNjYWxhciggc291cmNlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IG47IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGNvbm5lY3RpbmdFZGdlID0gY29ubmVjdGluZ0VkZ2VzWyBqIF07XHJcblx0XHRcdFx0b3RoZXIgPSBjb25uZWN0aW5nRWRnZS5hICE9PSBvbGRWZXJ0ZXggPyBjb25uZWN0aW5nRWRnZS5hIDogY29ubmVjdGluZ0VkZ2UuYjtcclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleC5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGljZXMucHVzaCggbmV3U291cmNlVmVydGV4ICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMy5cclxuXHRcdCAqXHRHZW5lcmF0ZSBGYWNlcyBiZXR3ZWVuIHNvdXJjZSB2ZXJ0aWNlc1xyXG5cdFx0ICpcdGFuZCBlZGdlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld1ZlcnRpY2VzID0gbmV3U291cmNlVmVydGljZXMuY29uY2F0KCBuZXdFZGdlVmVydGljZXMgKTtcclxuXHRcdHZhciBzbCA9IG5ld1NvdXJjZVZlcnRpY2VzLmxlbmd0aCwgZWRnZTEsIGVkZ2UyLCBlZGdlMztcclxuXHRcdG5ld0ZhY2VzID0gW107XHJcblxyXG5cdFx0dmFyIHV2LCB4MCwgeDEsIHgyO1xyXG5cdFx0dmFyIHgzID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NCA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDUgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZEZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IG9sZEZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIHRoZSAzIG5ldyBlZGdlcyB2ZXJ0ZXggb2YgZWFjaCBvbGQgZmFjZVxyXG5cclxuXHRcdFx0ZWRnZTEgPSBnZXRFZGdlKCBmYWNlLmEsIGZhY2UuYiwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UyID0gZ2V0RWRnZSggZmFjZS5iLCBmYWNlLmMsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMyA9IGdldEVkZ2UoIGZhY2UuYywgZmFjZS5hLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IGZhY2VzLlxyXG5cclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGVkZ2UxLCBlZGdlMiwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYSwgZWRnZTEsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmIsIGVkZ2UyLCBlZGdlMSApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5jLCBlZGdlMywgZWRnZTIgKTtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IG5ldyB1didzXHJcblxyXG5cdFx0XHRpZiAoIGhhc1V2cyApIHtcclxuXHJcblx0XHRcdFx0dXYgPSBvbGRVdnNbIGkgXTtcclxuXHJcblx0XHRcdFx0eDAgPSB1dlsgMCBdO1xyXG5cdFx0XHRcdHgxID0gdXZbIDEgXTtcclxuXHRcdFx0XHR4MiA9IHV2WyAyIF07XHJcblxyXG5cdFx0XHRcdHgzLnNldCggbWlkcG9pbnQoIHgwLngsIHgxLnggKSwgbWlkcG9pbnQoIHgwLnksIHgxLnkgKSApO1xyXG5cdFx0XHRcdHg0LnNldCggbWlkcG9pbnQoIHgxLngsIHgyLnggKSwgbWlkcG9pbnQoIHgxLnksIHgyLnkgKSApO1xyXG5cdFx0XHRcdHg1LnNldCggbWlkcG9pbnQoIHgwLngsIHgyLnggKSwgbWlkcG9pbnQoIHgwLnksIHgyLnkgKSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MywgeDQsIHg1ICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDAsIHgzLCB4NSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MSwgeDQsIHgzICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDIsIHg1LCB4NCApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvLyBPdmVyd3JpdGUgb2xkIGFycmF5c1xyXG5cdFx0Z2VvbWV0cnkudmVydGljZXMgPSBuZXdWZXJ0aWNlcztcclxuXHRcdGdlb21ldHJ5LmZhY2VzID0gbmV3RmFjZXM7XHJcblx0XHRpZiAoIGhhc1V2cyApIGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXSA9IG5ld1VWcztcclxuXHJcblx0XHQvLyBjb25zb2xlLmxvZygnZG9uZScpO1xyXG5cclxuXHR9O1xyXG5cclxufSApKCk7XHJcbiIsInZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXG5cbm1vZHVsZS5leHBvcnRzID0gYW5BcnJheVxuXG5mdW5jdGlvbiBhbkFycmF5KGFycikge1xuICByZXR1cm4gKFxuICAgICAgIGFyci5CWVRFU19QRVJfRUxFTUVOVFxuICAgICYmIHN0ci5jYWxsKGFyci5idWZmZXIpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nXG4gICAgfHwgQXJyYXkuaXNBcnJheShhcnIpXG4gIClcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbnVtdHlwZShudW0sIGRlZikge1xuXHRyZXR1cm4gdHlwZW9mIG51bSA9PT0gJ251bWJlcidcblx0XHQ/IG51bSBcblx0XHQ6ICh0eXBlb2YgZGVmID09PSAnbnVtYmVyJyA/IGRlZiA6IDApXG59IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihkdHlwZSkge1xuICBzd2l0Y2ggKGR0eXBlKSB7XG4gICAgY2FzZSAnaW50OCc6XG4gICAgICByZXR1cm4gSW50OEFycmF5XG4gICAgY2FzZSAnaW50MTYnOlxuICAgICAgcmV0dXJuIEludDE2QXJyYXlcbiAgICBjYXNlICdpbnQzMic6XG4gICAgICByZXR1cm4gSW50MzJBcnJheVxuICAgIGNhc2UgJ3VpbnQ4JzpcbiAgICAgIHJldHVybiBVaW50OEFycmF5XG4gICAgY2FzZSAndWludDE2JzpcbiAgICAgIHJldHVybiBVaW50MTZBcnJheVxuICAgIGNhc2UgJ3VpbnQzMic6XG4gICAgICByZXR1cm4gVWludDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDMyJzpcbiAgICAgIHJldHVybiBGbG9hdDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDY0JzpcbiAgICAgIHJldHVybiBGbG9hdDY0QXJyYXlcbiAgICBjYXNlICdhcnJheSc6XG4gICAgICByZXR1cm4gQXJyYXlcbiAgICBjYXNlICd1aW50OF9jbGFtcGVkJzpcbiAgICAgIHJldHVybiBVaW50OENsYW1wZWRBcnJheVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUiA9IHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyA/IFJlZmxlY3QgOiBudWxsXG52YXIgUmVmbGVjdEFwcGx5ID0gUiAmJiB0eXBlb2YgUi5hcHBseSA9PT0gJ2Z1bmN0aW9uJ1xuICA/IFIuYXBwbHlcbiAgOiBmdW5jdGlvbiBSZWZsZWN0QXBwbHkodGFyZ2V0LCByZWNlaXZlciwgYXJncykge1xuICAgIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbCh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKTtcbiAgfVxuXG52YXIgUmVmbGVjdE93bktleXNcbmlmIChSICYmIHR5cGVvZiBSLm93bktleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgUmVmbGVjdE93bktleXMgPSBSLm93bktleXNcbn0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpXG4gICAgICAuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSk7XG4gIH07XG59IGVsc2Uge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBQcm9jZXNzRW1pdFdhcm5pbmcod2FybmluZykge1xuICBpZiAoY29uc29sZSAmJiBjb25zb2xlLndhcm4pIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbn1cblxudmFyIE51bWJlcklzTmFOID0gTnVtYmVyLmlzTmFOIHx8IGZ1bmN0aW9uIE51bWJlcklzTmFOKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIEV2ZW50RW1pdHRlcigpIHtcbiAgRXZlbnRFbWl0dGVyLmluaXQuY2FsbCh0aGlzKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xubW9kdWxlLmV4cG9ydHMub25jZSA9IG9uY2U7XG5cbi8vIEJhY2t3YXJkcy1jb21wYXQgd2l0aCBub2RlIDAuMTAueFxuRXZlbnRFbWl0dGVyLkV2ZW50RW1pdHRlciA9IEV2ZW50RW1pdHRlcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzID0gdW5kZWZpbmVkO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzQ291bnQgPSAwO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzID0gdW5kZWZpbmVkO1xuXG4vLyBCeSBkZWZhdWx0IEV2ZW50RW1pdHRlcnMgd2lsbCBwcmludCBhIHdhcm5pbmcgaWYgbW9yZSB0aGFuIDEwIGxpc3RlbmVycyBhcmVcbi8vIGFkZGVkIHRvIGl0LiBUaGlzIGlzIGEgdXNlZnVsIGRlZmF1bHQgd2hpY2ggaGVscHMgZmluZGluZyBtZW1vcnkgbGVha3MuXG52YXIgZGVmYXVsdE1heExpc3RlbmVycyA9IDEwO1xuXG5mdW5jdGlvbiBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKSB7XG4gIGlmICh0eXBlb2YgbGlzdGVuZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJsaXN0ZW5lclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGxpc3RlbmVyKTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRFbWl0dGVyLCAnZGVmYXVsdE1heExpc3RlbmVycycsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZGVmYXVsdE1heExpc3RlbmVycztcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbihhcmcpIHtcbiAgICBpZiAodHlwZW9mIGFyZyAhPT0gJ251bWJlcicgfHwgYXJnIDwgMCB8fCBOdW1iZXJJc05hTihhcmcpKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiZGVmYXVsdE1heExpc3RlbmVyc1wiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBhcmcgKyAnLicpO1xuICAgIH1cbiAgICBkZWZhdWx0TWF4TGlzdGVuZXJzID0gYXJnO1xuICB9XG59KTtcblxuRXZlbnRFbWl0dGVyLmluaXQgPSBmdW5jdGlvbigpIHtcblxuICBpZiAodGhpcy5fZXZlbnRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuX2V2ZW50cyA9PT0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHMpIHtcbiAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgfVxuXG4gIHRoaXMuX21heExpc3RlbmVycyA9IHRoaXMuX21heExpc3RlbmVycyB8fCB1bmRlZmluZWQ7XG59O1xuXG4vLyBPYnZpb3VzbHkgbm90IGFsbCBFbWl0dGVycyBzaG91bGQgYmUgbGltaXRlZCB0byAxMC4gVGhpcyBmdW5jdGlvbiBhbGxvd3Ncbi8vIHRoYXQgdG8gYmUgaW5jcmVhc2VkLiBTZXQgdG8gemVybyBmb3IgdW5saW1pdGVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBzZXRNYXhMaXN0ZW5lcnMobikge1xuICBpZiAodHlwZW9mIG4gIT09ICdudW1iZXInIHx8IG4gPCAwIHx8IE51bWJlcklzTmFOKG4pKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcIm5cIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgbiArICcuJyk7XG4gIH1cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5mdW5jdGlvbiBfZ2V0TWF4TGlzdGVuZXJzKHRoYXQpIHtcbiAgaWYgKHRoYXQuX21heExpc3RlbmVycyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgcmV0dXJuIHRoYXQuX21heExpc3RlbmVycztcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBnZXRNYXhMaXN0ZW5lcnMoKSB7XG4gIHJldHVybiBfZ2V0TWF4TGlzdGVuZXJzKHRoaXMpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24gZW1pdCh0eXBlKSB7XG4gIHZhciBhcmdzID0gW107XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgdmFyIGRvRXJyb3IgPSAodHlwZSA9PT0gJ2Vycm9yJyk7XG5cbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKVxuICAgIGRvRXJyb3IgPSAoZG9FcnJvciAmJiBldmVudHMuZXJyb3IgPT09IHVuZGVmaW5lZCk7XG4gIGVsc2UgaWYgKCFkb0Vycm9yKVxuICAgIHJldHVybiBmYWxzZTtcblxuICAvLyBJZiB0aGVyZSBpcyBubyAnZXJyb3InIGV2ZW50IGxpc3RlbmVyIHRoZW4gdGhyb3cuXG4gIGlmIChkb0Vycm9yKSB7XG4gICAgdmFyIGVyO1xuICAgIGlmIChhcmdzLmxlbmd0aCA+IDApXG4gICAgICBlciA9IGFyZ3NbMF07XG4gICAgaWYgKGVyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIE5vdGU6IFRoZSBjb21tZW50cyBvbiB0aGUgYHRocm93YCBsaW5lcyBhcmUgaW50ZW50aW9uYWwsIHRoZXkgc2hvd1xuICAgICAgLy8gdXAgaW4gTm9kZSdzIG91dHB1dCBpZiB0aGlzIHJlc3VsdHMgaW4gYW4gdW5oYW5kbGVkIGV4Y2VwdGlvbi5cbiAgICAgIHRocm93IGVyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICAgIH1cbiAgICAvLyBBdCBsZWFzdCBnaXZlIHNvbWUga2luZCBvZiBjb250ZXh0IHRvIHRoZSB1c2VyXG4gICAgdmFyIGVyciA9IG5ldyBFcnJvcignVW5oYW5kbGVkIGVycm9yLicgKyAoZXIgPyAnICgnICsgZXIubWVzc2FnZSArICcpJyA6ICcnKSk7XG4gICAgZXJyLmNvbnRleHQgPSBlcjtcbiAgICB0aHJvdyBlcnI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gIH1cblxuICB2YXIgaGFuZGxlciA9IGV2ZW50c1t0eXBlXTtcblxuICBpZiAoaGFuZGxlciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBmYWxzZTtcblxuICBpZiAodHlwZW9mIGhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBSZWZsZWN0QXBwbHkoaGFuZGxlciwgdGhpcywgYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGxlbiA9IGhhbmRsZXIubGVuZ3RoO1xuICAgIHZhciBsaXN0ZW5lcnMgPSBhcnJheUNsb25lKGhhbmRsZXIsIGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSlcbiAgICAgIFJlZmxlY3RBcHBseShsaXN0ZW5lcnNbaV0sIHRoaXMsIGFyZ3MpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5mdW5jdGlvbiBfYWRkTGlzdGVuZXIodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lciwgcHJlcGVuZCkge1xuICB2YXIgbTtcbiAgdmFyIGV2ZW50cztcbiAgdmFyIGV4aXN0aW5nO1xuXG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGFyZ2V0Ll9ldmVudHNDb3VudCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgLy8gVG8gYXZvaWQgcmVjdXJzaW9uIGluIHRoZSBjYXNlIHRoYXQgdHlwZSA9PT0gXCJuZXdMaXN0ZW5lclwiISBCZWZvcmVcbiAgICAvLyBhZGRpbmcgaXQgdG8gdGhlIGxpc3RlbmVycywgZmlyc3QgZW1pdCBcIm5ld0xpc3RlbmVyXCIuXG4gICAgaWYgKGV2ZW50cy5uZXdMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YXJnZXQuZW1pdCgnbmV3TGlzdGVuZXInLCB0eXBlLFxuICAgICAgICAgICAgICAgICAgbGlzdGVuZXIubGlzdGVuZXIgPyBsaXN0ZW5lci5saXN0ZW5lciA6IGxpc3RlbmVyKTtcblxuICAgICAgLy8gUmUtYXNzaWduIGBldmVudHNgIGJlY2F1c2UgYSBuZXdMaXN0ZW5lciBoYW5kbGVyIGNvdWxkIGhhdmUgY2F1c2VkIHRoZVxuICAgICAgLy8gdGhpcy5fZXZlbnRzIHRvIGJlIGFzc2lnbmVkIHRvIGEgbmV3IG9iamVjdFxuICAgICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gICAgfVxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdO1xuICB9XG5cbiAgaWYgKGV4aXN0aW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBPcHRpbWl6ZSB0aGUgY2FzZSBvZiBvbmUgbGlzdGVuZXIuIERvbid0IG5lZWQgdGhlIGV4dHJhIGFycmF5IG9iamVjdC5cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9IGxpc3RlbmVyO1xuICAgICsrdGFyZ2V0Ll9ldmVudHNDb3VudDtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGV4aXN0aW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBuZWVkIHRvIGNoYW5nZSB0byBhcnJheS5cbiAgICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID1cbiAgICAgICAgcHJlcGVuZCA/IFtsaXN0ZW5lciwgZXhpc3RpbmddIDogW2V4aXN0aW5nLCBsaXN0ZW5lcl07XG4gICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGdvdCBhbiBhcnJheSwganVzdCBhcHBlbmQuXG4gICAgfSBlbHNlIGlmIChwcmVwZW5kKSB7XG4gICAgICBleGlzdGluZy51bnNoaWZ0KGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RpbmcucHVzaChsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIGxpc3RlbmVyIGxlYWtcbiAgICBtID0gX2dldE1heExpc3RlbmVycyh0YXJnZXQpO1xuICAgIGlmIChtID4gMCAmJiBleGlzdGluZy5sZW5ndGggPiBtICYmICFleGlzdGluZy53YXJuZWQpIHtcbiAgICAgIGV4aXN0aW5nLndhcm5lZCA9IHRydWU7XG4gICAgICAvLyBObyBlcnJvciBjb2RlIGZvciB0aGlzIHNpbmNlIGl0IGlzIGEgV2FybmluZ1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICB2YXIgdyA9IG5ldyBFcnJvcignUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcubGVuZ3RoICsgJyAnICsgU3RyaW5nKHR5cGUpICsgJyBsaXN0ZW5lcnMgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRlZC4gVXNlIGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdpbmNyZWFzZSBsaW1pdCcpO1xuICAgICAgdy5uYW1lID0gJ01heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyc7XG4gICAgICB3LmVtaXR0ZXIgPSB0YXJnZXQ7XG4gICAgICB3LnR5cGUgPSB0eXBlO1xuICAgICAgdy5jb3VudCA9IGV4aXN0aW5nLmxlbmd0aDtcbiAgICAgIFByb2Nlc3NFbWl0V2FybmluZyh3KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyID0gZnVuY3Rpb24gYWRkTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIHRydWUpO1xuICAgIH07XG5cbmZ1bmN0aW9uIG9uY2VXcmFwcGVyKCkge1xuICBpZiAoIXRoaXMuZmlyZWQpIHtcbiAgICB0aGlzLnRhcmdldC5yZW1vdmVMaXN0ZW5lcih0aGlzLnR5cGUsIHRoaXMud3JhcEZuKTtcbiAgICB0aGlzLmZpcmVkID0gdHJ1ZTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQpO1xuICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmFwcGx5KHRoaXMudGFyZ2V0LCBhcmd1bWVudHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9vbmNlV3JhcCh0YXJnZXQsIHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBzdGF0ZSA9IHsgZmlyZWQ6IGZhbHNlLCB3cmFwRm46IHVuZGVmaW5lZCwgdGFyZ2V0OiB0YXJnZXQsIHR5cGU6IHR5cGUsIGxpc3RlbmVyOiBsaXN0ZW5lciB9O1xuICB2YXIgd3JhcHBlZCA9IG9uY2VXcmFwcGVyLmJpbmQoc3RhdGUpO1xuICB3cmFwcGVkLmxpc3RlbmVyID0gbGlzdGVuZXI7XG4gIHN0YXRlLndyYXBGbiA9IHdyYXBwZWQ7XG4gIHJldHVybiB3cmFwcGVkO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbiBvbmNlKHR5cGUsIGxpc3RlbmVyKSB7XG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICB0aGlzLm9uKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZE9uY2VMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZE9uY2VMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gICAgICB0aGlzLnByZXBlbmRMaXN0ZW5lcih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbi8vIEVtaXRzIGEgJ3JlbW92ZUxpc3RlbmVyJyBldmVudCBpZiBhbmQgb25seSBpZiB0aGUgbGlzdGVuZXIgd2FzIHJlbW92ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgdmFyIGxpc3QsIGV2ZW50cywgcG9zaXRpb24sIGksIG9yaWdpbmFsTGlzdGVuZXI7XG5cbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBsaXN0ID0gZXZlbnRzW3R5cGVdO1xuICAgICAgaWYgKGxpc3QgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGlmIChsaXN0ID09PSBsaXN0ZW5lciB8fCBsaXN0Lmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIpXG4gICAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgbGlzdC5saXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGxpc3QgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcG9zaXRpb24gPSAtMTtcblxuICAgICAgICBmb3IgKGkgPSBsaXN0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgaWYgKGxpc3RbaV0gPT09IGxpc3RlbmVyIHx8IGxpc3RbaV0ubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgICAgICBvcmlnaW5hbExpc3RlbmVyID0gbGlzdFtpXS5saXN0ZW5lcjtcbiAgICAgICAgICAgIHBvc2l0aW9uID0gaTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwb3NpdGlvbiA8IDApXG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSAwKVxuICAgICAgICAgIGxpc3Quc2hpZnQoKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgc3BsaWNlT25lKGxpc3QsIHBvc2l0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSlcbiAgICAgICAgICBldmVudHNbdHlwZV0gPSBsaXN0WzBdO1xuXG4gICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgb3JpZ2luYWxMaXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub2ZmID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyh0eXBlKSB7XG4gICAgICB2YXIgbGlzdGVuZXJzLCBldmVudHMsIGk7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIC8vIG5vdCBsaXN0ZW5pbmcgZm9yIHJlbW92ZUxpc3RlbmVyLCBubyBuZWVkIHRvIGVtaXRcbiAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50c1t0eXBlXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIC8vIGVtaXQgcmVtb3ZlTGlzdGVuZXIgZm9yIGFsbCBsaXN0ZW5lcnMgb24gYWxsIGV2ZW50c1xuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhldmVudHMpO1xuICAgICAgICB2YXIga2V5O1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICAgICAgaWYgKGtleSA9PT0gJ3JlbW92ZUxpc3RlbmVyJykgY29udGludWU7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygncmVtb3ZlTGlzdGVuZXInKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgbGlzdGVuZXJzID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgICBpZiAodHlwZW9mIGxpc3RlbmVycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVycyk7XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbmVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIExJRk8gb3JkZXJcbiAgICAgICAgZm9yIChpID0gbGlzdGVuZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbmZ1bmN0aW9uIF9saXN0ZW5lcnModGFyZ2V0LCB0eXBlLCB1bndyYXApIHtcbiAgdmFyIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG4gIGlmIChldmxpc3RlbmVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJylcbiAgICByZXR1cm4gdW53cmFwID8gW2V2bGlzdGVuZXIubGlzdGVuZXIgfHwgZXZsaXN0ZW5lcl0gOiBbZXZsaXN0ZW5lcl07XG5cbiAgcmV0dXJuIHVud3JhcCA/XG4gICAgdW53cmFwTGlzdGVuZXJzKGV2bGlzdGVuZXIpIDogYXJyYXlDbG9uZShldmxpc3RlbmVyLCBldmxpc3RlbmVyLmxlbmd0aCk7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24gbGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgdHJ1ZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJhd0xpc3RlbmVycyA9IGZ1bmN0aW9uIHJhd0xpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24oZW1pdHRlciwgdHlwZSkge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIubGlzdGVuZXJDb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBlbWl0dGVyLmxpc3RlbmVyQ291bnQodHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGxpc3RlbmVyQ291bnQuY2FsbChlbWl0dGVyLCB0eXBlKTtcbiAgfVxufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50ID0gbGlzdGVuZXJDb3VudDtcbmZ1bmN0aW9uIGxpc3RlbmVyQ291bnQodHlwZSkge1xuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKGV2bGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGV2bGlzdGVuZXIubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmV2ZW50TmFtZXMgPSBmdW5jdGlvbiBldmVudE5hbWVzKCkge1xuICByZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQgPiAwID8gUmVmbGVjdE93bktleXModGhpcy5fZXZlbnRzKSA6IFtdO1xufTtcblxuZnVuY3Rpb24gYXJyYXlDbG9uZShhcnIsIG4pIHtcbiAgdmFyIGNvcHkgPSBuZXcgQXJyYXkobik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKVxuICAgIGNvcHlbaV0gPSBhcnJbaV07XG4gIHJldHVybiBjb3B5O1xufVxuXG5mdW5jdGlvbiBzcGxpY2VPbmUobGlzdCwgaW5kZXgpIHtcbiAgZm9yICg7IGluZGV4ICsgMSA8IGxpc3QubGVuZ3RoOyBpbmRleCsrKVxuICAgIGxpc3RbaW5kZXhdID0gbGlzdFtpbmRleCArIDFdO1xuICBsaXN0LnBvcCgpO1xufVxuXG5mdW5jdGlvbiB1bndyYXBMaXN0ZW5lcnMoYXJyKSB7XG4gIHZhciByZXQgPSBuZXcgQXJyYXkoYXJyLmxlbmd0aCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcmV0Lmxlbmd0aDsgKytpKSB7XG4gICAgcmV0W2ldID0gYXJyW2ldLmxpc3RlbmVyIHx8IGFycltpXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvbmNlKGVtaXR0ZXIsIG5hbWUpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBmdW5jdGlvbiBlcnJvckxpc3RlbmVyKGVycikge1xuICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcihuYW1lLCByZXNvbHZlcik7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlcigpIHtcbiAgICAgIGlmICh0eXBlb2YgZW1pdHRlci5yZW1vdmVMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIGVycm9yTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShbXS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO1xuICAgIH07XG5cbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgcmVzb2x2ZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICBpZiAobmFtZSAhPT0gJ2Vycm9yJykge1xuICAgICAgYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgZXJyb3JMaXN0ZW5lciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGhhbmRsZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCAnZXJyb3InLCBoYW5kbGVyLCBmbGFncyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIGxpc3RlbmVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgZW1pdHRlci5vbmNlKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW1pdHRlci5vbihuYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBFdmVudFRhcmdldCBkb2VzIG5vdCBoYXZlIGBlcnJvcmAgZXZlbnQgc2VtYW50aWNzIGxpa2UgTm9kZVxuICAgIC8vIEV2ZW50RW1pdHRlcnMsIHdlIGRvIG5vdCBsaXN0ZW4gZm9yIGBlcnJvcmAgZXZlbnRzIGhlcmUuXG4gICAgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmN0aW9uIHdyYXBMaXN0ZW5lcihhcmcpIHtcbiAgICAgIC8vIElFIGRvZXMgbm90IGhhdmUgYnVpbHRpbiBgeyBvbmNlOiB0cnVlIH1gIHN1cHBvcnQgc28gd2VcbiAgICAgIC8vIGhhdmUgdG8gZG8gaXQgbWFudWFsbHkuXG4gICAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgd3JhcExpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIGxpc3RlbmVyKGFyZyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwiZW1pdHRlclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBlbWl0dGVyKTtcbiAgfVxufVxuIiwiaWYgKHR5cGVvZiBPYmplY3QuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gIC8vIGltcGxlbWVudGF0aW9uIGZyb20gc3RhbmRhcmQgbm9kZS5qcyAndXRpbCcgbW9kdWxlXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICAgICAgdmFsdWU6IGN0b3IsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9O1xufSBlbHNlIHtcbiAgLy8gb2xkIHNjaG9vbCBzaGltIGZvciBvbGQgYnJvd3NlcnNcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgdmFyIFRlbXBDdG9yID0gZnVuY3Rpb24gKCkge31cbiAgICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGVcbiAgICAgIGN0b3IucHJvdG90eXBlID0gbmV3IFRlbXBDdG9yKClcbiAgICAgIGN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY3RvclxuICAgIH1cbiAgfVxufVxuIiwiLyohXG4gKiBEZXRlcm1pbmUgaWYgYW4gb2JqZWN0IGlzIGEgQnVmZmVyXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG4vLyBUaGUgX2lzQnVmZmVyIGNoZWNrIGlzIGZvciBTYWZhcmkgNS03IHN1cHBvcnQsIGJlY2F1c2UgaXQncyBtaXNzaW5nXG4vLyBPYmplY3QucHJvdG90eXBlLmNvbnN0cnVjdG9yLiBSZW1vdmUgdGhpcyBldmVudHVhbGx5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIChpc0J1ZmZlcihvYmopIHx8IGlzU2xvd0J1ZmZlcihvYmopIHx8ICEhb2JqLl9pc0J1ZmZlcilcbn1cblxuZnVuY3Rpb24gaXNCdWZmZXIgKG9iaikge1xuICByZXR1cm4gISFvYmouY29uc3RydWN0b3IgJiYgdHlwZW9mIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIob2JqKVxufVxuXG4vLyBGb3IgTm9kZSB2MC4xMCBzdXBwb3J0LiBSZW1vdmUgdGhpcyBldmVudHVhbGx5LlxuZnVuY3Rpb24gaXNTbG93QnVmZmVyIChvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmoucmVhZEZsb2F0TEUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5zbGljZSA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0J1ZmZlcihvYmouc2xpY2UoMCwgMCkpXG59XG4iLCJ2YXIgd29yZFdyYXAgPSByZXF1aXJlKCd3b3JkLXdyYXBwZXInKVxudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKVxudmFyIG51bWJlciA9IHJlcXVpcmUoJ2FzLW51bWJlcicpXG5cbnZhciBYX0hFSUdIVFMgPSBbJ3gnLCAnZScsICdhJywgJ28nLCAnbicsICdzJywgJ3InLCAnYycsICd1JywgJ20nLCAndicsICd3JywgJ3onXVxudmFyIE1fV0lEVEhTID0gWydtJywgJ3cnXVxudmFyIENBUF9IRUlHSFRTID0gWydIJywgJ0knLCAnTicsICdFJywgJ0YnLCAnSycsICdMJywgJ1QnLCAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onXVxuXG5cbnZhciBUQUJfSUQgPSAnXFx0Jy5jaGFyQ29kZUF0KDApXG52YXIgU1BBQ0VfSUQgPSAnICcuY2hhckNvZGVBdCgwKVxudmFyIEFMSUdOX0xFRlQgPSAwLCBcbiAgICBBTElHTl9DRU5URVIgPSAxLCBcbiAgICBBTElHTl9SSUdIVCA9IDJcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVMYXlvdXQob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dExheW91dChvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRMYXlvdXQob3B0KSB7XG4gIHRoaXMuZ2x5cGhzID0gW11cbiAgdGhpcy5fbWVhc3VyZSA9IHRoaXMuY29tcHV0ZU1ldHJpY3MuYmluZCh0aGlzKVxuICB0aGlzLnVwZGF0ZShvcHQpXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKG9wdCkge1xuICBvcHQgPSB4dGVuZCh7XG4gICAgbWVhc3VyZTogdGhpcy5fbWVhc3VyZVxuICB9LCBvcHQpXG4gIHRoaXMuX29wdCA9IG9wdFxuICB0aGlzLl9vcHQudGFiU2l6ZSA9IG51bWJlcih0aGlzLl9vcHQudGFiU2l6ZSwgNClcblxuICBpZiAoIW9wdC5mb250KVxuICAgIHRocm93IG5ldyBFcnJvcignbXVzdCBwcm92aWRlIGEgdmFsaWQgYml0bWFwIGZvbnQnKVxuXG4gIHZhciBnbHlwaHMgPSB0aGlzLmdseXBoc1xuICB2YXIgdGV4dCA9IG9wdC50ZXh0fHwnJyBcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuICB0aGlzLl9zZXR1cFNwYWNlR2x5cGhzKGZvbnQpXG4gIFxuICB2YXIgbGluZXMgPSB3b3JkV3JhcC5saW5lcyh0ZXh0LCBvcHQpXG4gIHZhciBtaW5XaWR0aCA9IG9wdC53aWR0aCB8fCAwXG5cbiAgLy9jbGVhciBnbHlwaHNcbiAgZ2x5cGhzLmxlbmd0aCA9IDBcblxuICAvL2dldCBtYXggbGluZSB3aWR0aFxuICB2YXIgbWF4TGluZVdpZHRoID0gbGluZXMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGxpbmUpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgocHJldiwgbGluZS53aWR0aCwgbWluV2lkdGgpXG4gIH0sIDApXG5cbiAgLy90aGUgcGVuIHBvc2l0aW9uXG4gIHZhciB4ID0gMFxuICB2YXIgeSA9IDBcbiAgdmFyIGxpbmVIZWlnaHQgPSBudW1iZXIob3B0LmxpbmVIZWlnaHQsIGZvbnQuY29tbW9uLmxpbmVIZWlnaHQpXG4gIHZhciBiYXNlbGluZSA9IGZvbnQuY29tbW9uLmJhc2VcbiAgdmFyIGRlc2NlbmRlciA9IGxpbmVIZWlnaHQtYmFzZWxpbmVcbiAgdmFyIGxldHRlclNwYWNpbmcgPSBvcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBoZWlnaHQgPSBsaW5lSGVpZ2h0ICogbGluZXMubGVuZ3RoIC0gZGVzY2VuZGVyXG4gIHZhciBhbGlnbiA9IGdldEFsaWduVHlwZSh0aGlzLl9vcHQuYWxpZ24pXG5cbiAgLy9kcmF3IHRleHQgYWxvbmcgYmFzZWxpbmVcbiAgeSAtPSBoZWlnaHRcbiAgXG4gIC8vdGhlIG1ldHJpY3MgZm9yIHRoaXMgdGV4dCBsYXlvdXRcbiAgdGhpcy5fd2lkdGggPSBtYXhMaW5lV2lkdGhcbiAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0XG4gIHRoaXMuX2Rlc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBiYXNlbGluZVxuICB0aGlzLl9iYXNlbGluZSA9IGJhc2VsaW5lXG4gIHRoaXMuX3hIZWlnaHQgPSBnZXRYSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2NhcEhlaWdodCA9IGdldENhcEhlaWdodChmb250KVxuICB0aGlzLl9saW5lSGVpZ2h0ID0gbGluZUhlaWdodFxuICB0aGlzLl9hc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBkZXNjZW5kZXIgLSB0aGlzLl94SGVpZ2h0XG4gICAgXG4gIC8vbGF5b3V0IGVhY2ggZ2x5cGhcbiAgdmFyIHNlbGYgPSB0aGlzXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSwgbGluZUluZGV4KSB7XG4gICAgdmFyIHN0YXJ0ID0gbGluZS5zdGFydFxuICAgIHZhciBlbmQgPSBsaW5lLmVuZFxuICAgIHZhciBsaW5lV2lkdGggPSBsaW5lLndpZHRoXG4gICAgdmFyIGxhc3RHbHlwaFxuICAgIFxuICAgIC8vZm9yIGVhY2ggZ2x5cGggaW4gdGhhdCBsaW5lLi4uXG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQ7IGkrKykge1xuICAgICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgICB2YXIgZ2x5cGggPSBzZWxmLmdldEdseXBoKGZvbnQsIGlkKVxuICAgICAgaWYgKGdseXBoKSB7XG4gICAgICAgIGlmIChsYXN0R2x5cGgpIFxuICAgICAgICAgIHggKz0gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKVxuXG4gICAgICAgIHZhciB0eCA9IHhcbiAgICAgICAgaWYgKGFsaWduID09PSBBTElHTl9DRU5URVIpIFxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKS8yXG4gICAgICAgIGVsc2UgaWYgKGFsaWduID09PSBBTElHTl9SSUdIVClcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aClcblxuICAgICAgICBnbHlwaHMucHVzaCh7XG4gICAgICAgICAgcG9zaXRpb246IFt0eCwgeV0sXG4gICAgICAgICAgZGF0YTogZ2x5cGgsXG4gICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgbGluZTogbGluZUluZGV4XG4gICAgICAgIH0pICBcblxuICAgICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgICAgeCArPSBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL25leHQgbGluZSBkb3duXG4gICAgeSArPSBsaW5lSGVpZ2h0XG4gICAgeCA9IDBcbiAgfSlcbiAgdGhpcy5fbGluZXNUb3RhbCA9IGxpbmVzLmxlbmd0aDtcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuX3NldHVwU3BhY2VHbHlwaHMgPSBmdW5jdGlvbihmb250KSB7XG4gIC8vVGhlc2UgYXJlIGZhbGxiYWNrcywgd2hlbiB0aGUgZm9udCBkb2Vzbid0IGluY2x1ZGVcbiAgLy8nICcgb3IgJ1xcdCcgZ2x5cGhzXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IG51bGxcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IG51bGxcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuXG5cbiAgLy90cnkgdG8gZ2V0IHNwYWNlIGdseXBoXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlICdtJyBvciAndycgZ2x5cGhzXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlIGZpcnN0IGdseXBoIGF2YWlsYWJsZVxuICB2YXIgc3BhY2UgPSBnZXRHbHlwaEJ5SWQoZm9udCwgU1BBQ0VfSUQpIFxuICAgICAgICAgIHx8IGdldE1HbHlwaChmb250KSBcbiAgICAgICAgICB8fCBmb250LmNoYXJzWzBdXG5cbiAgLy9hbmQgY3JlYXRlIGEgZmFsbGJhY2sgZm9yIHRhYlxuICB2YXIgdGFiV2lkdGggPSB0aGlzLl9vcHQudGFiU2l6ZSAqIHNwYWNlLnhhZHZhbmNlXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IHNwYWNlXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSB4dGVuZChzcGFjZSwge1xuICAgIHg6IDAsIHk6IDAsIHhhZHZhbmNlOiB0YWJXaWR0aCwgaWQ6IFRBQl9JRCwgXG4gICAgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDAsIGhlaWdodDogMFxuICB9KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5nZXRHbHlwaCA9IGZ1bmN0aW9uKGZvbnQsIGlkKSB7XG4gIHZhciBnbHlwaCA9IGdldEdseXBoQnlJZChmb250LCBpZClcbiAgaWYgKGdseXBoKVxuICAgIHJldHVybiBnbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gVEFCX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tUYWJHbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gU1BBQ0VfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGhcbiAgcmV0dXJuIG51bGxcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuY29tcHV0ZU1ldHJpY3MgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICB2YXIgbGV0dGVyU3BhY2luZyA9IHRoaXMuX29wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGZvbnQgPSB0aGlzLl9vcHQuZm9udFxuICB2YXIgY3VyUGVuID0gMFxuICB2YXIgY3VyV2lkdGggPSAwXG4gIHZhciBjb3VudCA9IDBcbiAgdmFyIGdseXBoXG4gIHZhciBsYXN0R2x5cGhcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgZW5kOiBzdGFydCxcbiAgICAgIHdpZHRoOiAwXG4gICAgfVxuICB9XG5cbiAgZW5kID0gTWF0aC5taW4odGV4dC5sZW5ndGgsIGVuZClcbiAgZm9yICh2YXIgaT1zdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgdmFyIGdseXBoID0gdGhpcy5nZXRHbHlwaChmb250LCBpZClcblxuICAgIGlmIChnbHlwaCkge1xuICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICB2YXIgeG9mZiA9IGdseXBoLnhvZmZzZXRcbiAgICAgIHZhciBrZXJuID0gbGFzdEdseXBoID8gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKSA6IDBcbiAgICAgIGN1clBlbiArPSBrZXJuXG5cbiAgICAgIHZhciBuZXh0UGVuID0gY3VyUGVuICsgZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICB2YXIgbmV4dFdpZHRoID0gY3VyUGVuICsgZ2x5cGgud2lkdGhcblxuICAgICAgLy93ZSd2ZSBoaXQgb3VyIGxpbWl0OyB3ZSBjYW4ndCBtb3ZlIG9udG8gdGhlIG5leHQgZ2x5cGhcbiAgICAgIGlmIChuZXh0V2lkdGggPj0gd2lkdGggfHwgbmV4dFBlbiA+PSB3aWR0aClcbiAgICAgICAgYnJlYWtcblxuICAgICAgLy9vdGhlcndpc2UgY29udGludWUgYWxvbmcgb3VyIGxpbmVcbiAgICAgIGN1clBlbiA9IG5leHRQZW5cbiAgICAgIGN1cldpZHRoID0gbmV4dFdpZHRoXG4gICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgIH1cbiAgICBjb3VudCsrXG4gIH1cbiAgXG4gIC8vbWFrZSBzdXJlIHJpZ2h0bW9zdCBlZGdlIGxpbmVzIHVwIHdpdGggcmVuZGVyZWQgZ2x5cGhzXG4gIGlmIChsYXN0R2x5cGgpXG4gICAgY3VyV2lkdGggKz0gbGFzdEdseXBoLnhvZmZzZXRcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbmQ6IHN0YXJ0ICsgY291bnQsXG4gICAgd2lkdGg6IGN1cldpZHRoXG4gIH1cbn1cblxuLy9nZXR0ZXJzIGZvciB0aGUgcHJpdmF0ZSB2YXJzXG47Wyd3aWR0aCcsICdoZWlnaHQnLCBcbiAgJ2Rlc2NlbmRlcicsICdhc2NlbmRlcicsXG4gICd4SGVpZ2h0JywgJ2Jhc2VsaW5lJyxcbiAgJ2NhcEhlaWdodCcsXG4gICdsaW5lSGVpZ2h0JyBdLmZvckVhY2goYWRkR2V0dGVyKVxuXG5mdW5jdGlvbiBhZGRHZXR0ZXIobmFtZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVGV4dExheW91dC5wcm90b3R5cGUsIG5hbWUsIHtcbiAgICBnZXQ6IHdyYXBwZXIobmFtZSksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pXG59XG5cbi8vY3JlYXRlIGxvb2t1cHMgZm9yIHByaXZhdGUgdmFyc1xuZnVuY3Rpb24gd3JhcHBlcihuYW1lKSB7XG4gIHJldHVybiAobmV3IEZ1bmN0aW9uKFtcbiAgICAncmV0dXJuIGZ1bmN0aW9uICcrbmFtZSsnKCkgeycsXG4gICAgJyAgcmV0dXJuIHRoaXMuXycrbmFtZSxcbiAgICAnfSdcbiAgXS5qb2luKCdcXG4nKSkpKClcbn1cblxuZnVuY3Rpb24gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKSB7XG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBnbHlwaElkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICBpZiAoZ2x5cGhJZHggPj0gMClcbiAgICByZXR1cm4gZm9udC5jaGFyc1tnbHlwaElkeF1cbiAgcmV0dXJuIG51bGxcbn1cblxuZnVuY3Rpb24gZ2V0WEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxYX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBYX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRNR2x5cGgoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8TV9XSURUSFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBNX1dJRFRIU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0Q2FwSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPENBUF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gQ0FQX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRLZXJuaW5nKGZvbnQsIGxlZnQsIHJpZ2h0KSB7XG4gIGlmICghZm9udC5rZXJuaW5ncyB8fCBmb250Lmtlcm5pbmdzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gMFxuXG4gIHZhciB0YWJsZSA9IGZvbnQua2VybmluZ3NcbiAgZm9yICh2YXIgaT0wOyBpPHRhYmxlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtlcm4gPSB0YWJsZVtpXVxuICAgIGlmIChrZXJuLmZpcnN0ID09PSBsZWZ0ICYmIGtlcm4uc2Vjb25kID09PSByaWdodClcbiAgICAgIHJldHVybiBrZXJuLmFtb3VudFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEFsaWduVHlwZShhbGlnbikge1xuICBpZiAoYWxpZ24gPT09ICdjZW50ZXInKVxuICAgIHJldHVybiBBTElHTl9DRU5URVJcbiAgZWxzZSBpZiAoYWxpZ24gPT09ICdyaWdodCcpXG4gICAgcmV0dXJuIEFMSUdOX1JJR0hUXG4gIHJldHVybiBBTElHTl9MRUZUXG59XG5cbmZ1bmN0aW9uIGZpbmRDaGFyIChhcnJheSwgdmFsdWUsIHN0YXJ0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMFxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnJheVtpXS5pZCA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG4gIHJldHVybiAtMVxufSIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlQk1Gb250QXNjaWkoZGF0YSkge1xuICBpZiAoIWRhdGEpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIHByb3ZpZGVkJylcbiAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKS50cmltKClcblxuICB2YXIgb3V0cHV0ID0ge1xuICAgIHBhZ2VzOiBbXSxcbiAgICBjaGFyczogW10sXG4gICAga2VybmluZ3M6IFtdXG4gIH1cblxuICB2YXIgbGluZXMgPSBkYXRhLnNwbGl0KC9cXHJcXG4/fFxcbi9nKVxuXG4gIGlmIChsaW5lcy5sZW5ndGggPT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIGluIEJNRm9udCBmaWxlJylcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxpbmVEYXRhID0gc3BsaXRMaW5lKGxpbmVzW2ldLCBpKVxuICAgIGlmICghbGluZURhdGEpIC8vc2tpcCBlbXB0eSBsaW5lc1xuICAgICAgY29udGludWVcblxuICAgIGlmIChsaW5lRGF0YS5rZXkgPT09ICdwYWdlJykge1xuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmlkICE9PSAnbnVtYmVyJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGlkPU4nKVxuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmZpbGUgIT09ICdzdHJpbmcnKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgZmlsZT1cInBhdGhcIicpXG4gICAgICBvdXRwdXQucGFnZXNbbGluZURhdGEuZGF0YS5pZF0gPSBsaW5lRGF0YS5kYXRhLmZpbGVcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXJzJyB8fCBsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5ncycpIHtcbiAgICAgIC8vLi4uIGRvIG5vdGhpbmcgZm9yIHRoZXNlIHR3byAuLi5cbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXInKSB7XG4gICAgICBvdXRwdXQuY2hhcnMucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAna2VybmluZycpIHtcbiAgICAgIG91dHB1dC5rZXJuaW5ncy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dFtsaW5lRGF0YS5rZXldID0gbGluZURhdGEuZGF0YVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXRcbn1cblxuZnVuY3Rpb24gc3BsaXRMaW5lKGxpbmUsIGlkeCkge1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9cXHQrL2csICcgJykudHJpbSgpXG4gIGlmICghbGluZSlcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBzcGFjZSA9IGxpbmUuaW5kZXhPZignICcpXG4gIGlmIChzcGFjZSA9PT0gLTEpIFxuICAgIHRocm93IG5ldyBFcnJvcihcIm5vIG5hbWVkIHJvdyBhdCBsaW5lIFwiICsgaWR4KVxuXG4gIHZhciBrZXkgPSBsaW5lLnN1YnN0cmluZygwLCBzcGFjZSlcblxuICBsaW5lID0gbGluZS5zdWJzdHJpbmcoc3BhY2UgKyAxKVxuICAvL2NsZWFyIFwibGV0dGVyXCIgZmllbGQgYXMgaXQgaXMgbm9uLXN0YW5kYXJkIGFuZFxuICAvL3JlcXVpcmVzIGFkZGl0aW9uYWwgY29tcGxleGl0eSB0byBwYXJzZSBcIiAvID0gc3ltYm9sc1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9sZXR0ZXI9W1xcJ1xcXCJdXFxTK1tcXCdcXFwiXS9naSwgJycpICBcbiAgbGluZSA9IGxpbmUuc3BsaXQoXCI9XCIpXG4gIGxpbmUgPSBsaW5lLm1hcChmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gc3RyLnRyaW0oKS5tYXRjaCgoLyhcIi4qP1wifFteXCJcXHNdKykrKD89XFxzKnxcXHMqJCkvZykpXG4gIH0pXG5cbiAgdmFyIGRhdGEgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZHQgPSBsaW5lW2ldXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMF0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChpID09PSBsaW5lLmxlbmd0aCAtIDEpIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMV0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgdmFyIG91dCA9IHtcbiAgICBrZXk6IGtleSxcbiAgICBkYXRhOiB7fVxuICB9XG5cbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICBvdXQuZGF0YVt2LmtleV0gPSB2LmRhdGE7XG4gIH0pXG5cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiBwYXJzZURhdGEoZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFwiXCJcblxuICBpZiAoZGF0YS5pbmRleE9mKCdcIicpID09PSAwIHx8IGRhdGEuaW5kZXhPZihcIidcIikgPT09IDApXG4gICAgcmV0dXJuIGRhdGEuc3Vic3RyaW5nKDEsIGRhdGEubGVuZ3RoIC0gMSlcbiAgaWYgKGRhdGEuaW5kZXhPZignLCcpICE9PSAtMSlcbiAgICByZXR1cm4gcGFyc2VJbnRMaXN0KGRhdGEpXG4gIHJldHVybiBwYXJzZUludChkYXRhLCAxMClcbn1cblxuZnVuY3Rpb24gcGFyc2VJbnRMaXN0KGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24odmFsKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbCwgMTApXG4gIH0pXG59IiwidmFyIGR0eXBlID0gcmVxdWlyZSgnZHR5cGUnKVxudmFyIGFuQXJyYXkgPSByZXF1aXJlKCdhbi1hcnJheScpXG52YXIgaXNCdWZmZXIgPSByZXF1aXJlKCdpcy1idWZmZXInKVxuXG52YXIgQ1cgPSBbMCwgMiwgM11cbnZhciBDQ1cgPSBbMiwgMSwgM11cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVRdWFkRWxlbWVudHMoYXJyYXksIG9wdCkge1xuICAgIC8vaWYgdXNlciBkaWRuJ3Qgc3BlY2lmeSBhbiBvdXRwdXQgYXJyYXlcbiAgICBpZiAoIWFycmF5IHx8ICEoYW5BcnJheShhcnJheSkgfHwgaXNCdWZmZXIoYXJyYXkpKSkge1xuICAgICAgICBvcHQgPSBhcnJheSB8fCB7fVxuICAgICAgICBhcnJheSA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdCA9PT0gJ251bWJlcicpIC8vYmFja3dhcmRzLWNvbXBhdGlibGVcbiAgICAgICAgb3B0ID0geyBjb3VudDogb3B0IH1cbiAgICBlbHNlXG4gICAgICAgIG9wdCA9IG9wdCB8fCB7fVxuXG4gICAgdmFyIHR5cGUgPSB0eXBlb2Ygb3B0LnR5cGUgPT09ICdzdHJpbmcnID8gb3B0LnR5cGUgOiAndWludDE2J1xuICAgIHZhciBjb3VudCA9IHR5cGVvZiBvcHQuY291bnQgPT09ICdudW1iZXInID8gb3B0LmNvdW50IDogMVxuICAgIHZhciBzdGFydCA9IChvcHQuc3RhcnQgfHwgMCkgXG5cbiAgICB2YXIgZGlyID0gb3B0LmNsb2Nrd2lzZSAhPT0gZmFsc2UgPyBDVyA6IENDVyxcbiAgICAgICAgYSA9IGRpclswXSwgXG4gICAgICAgIGIgPSBkaXJbMV0sXG4gICAgICAgIGMgPSBkaXJbMl1cblxuICAgIHZhciBudW1JbmRpY2VzID0gY291bnQgKiA2XG5cbiAgICB2YXIgaW5kaWNlcyA9IGFycmF5IHx8IG5ldyAoZHR5cGUodHlwZSkpKG51bUluZGljZXMpXG4gICAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgbnVtSW5kaWNlczsgaSArPSA2LCBqICs9IDQpIHtcbiAgICAgICAgdmFyIHggPSBpICsgc3RhcnRcbiAgICAgICAgaW5kaWNlc1t4ICsgMF0gPSBqICsgMFxuICAgICAgICBpbmRpY2VzW3ggKyAxXSA9IGogKyAxXG4gICAgICAgIGluZGljZXNbeCArIDJdID0gaiArIDJcbiAgICAgICAgaW5kaWNlc1t4ICsgM10gPSBqICsgYVxuICAgICAgICBpbmRpY2VzW3ggKyA0XSA9IGogKyBiXG4gICAgICAgIGluZGljZXNbeCArIDVdID0gaiArIGNcbiAgICB9XG4gICAgcmV0dXJuIGluZGljZXNcbn0iLCJ2YXIgY3JlYXRlTGF5b3V0ID0gcmVxdWlyZSgnbGF5b3V0LWJtZm9udC10ZXh0JylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBjcmVhdGVJbmRpY2VzID0gcmVxdWlyZSgncXVhZC1pbmRpY2VzJylcblxudmFyIHZlcnRpY2VzID0gcmVxdWlyZSgnLi9saWIvdmVydGljZXMnKVxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi9saWIvdXRpbHMnKVxuXG52YXIgQmFzZSA9IFRIUkVFLkJ1ZmZlckdlb21ldHJ5XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0R2VvbWV0cnkob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0R2VvbWV0cnkgKG9wdCkge1xuICBCYXNlLmNhbGwodGhpcylcblxuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgdGhlc2UgYXMgZGVmYXVsdCB2YWx1ZXMgZm9yIGFueSBzdWJzZXF1ZW50XG4gIC8vIGNhbGxzIHRvIHVwZGF0ZSgpXG4gIHRoaXMuX29wdCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdClcblxuICAvLyBhbHNvIGRvIGFuIGluaXRpYWwgc2V0dXAuLi5cbiAgaWYgKG9wdCkgdGhpcy51cGRhdGUob3B0KVxufVxuXG5pbmhlcml0cyhUZXh0R2VvbWV0cnksIEJhc2UpXG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKG9wdCkge1xuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgY29uc3RydWN0b3IgZGVmYXVsdHNcbiAgb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3B0LCBvcHQpXG5cbiAgaWYgKCFvcHQuZm9udCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3BlY2lmeSBhIHsgZm9udCB9IGluIG9wdGlvbnMnKVxuICB9XG5cbiAgdGhpcy5sYXlvdXQgPSBjcmVhdGVMYXlvdXQob3B0KVxuXG4gIC8vIGdldCB2ZWMyIHRleGNvb3Jkc1xuICB2YXIgZmxpcFkgPSBvcHQuZmxpcFkgIT09IGZhbHNlXG5cbiAgLy8gdGhlIGRlc2lyZWQgQk1Gb250IGRhdGFcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuXG4gIC8vIGRldGVybWluZSB0ZXh0dXJlIHNpemUgZnJvbSBmb250IGZpbGVcbiAgdmFyIHRleFdpZHRoID0gZm9udC5jb21tb24uc2NhbGVXXG4gIHZhciB0ZXhIZWlnaHQgPSBmb250LmNvbW1vbi5zY2FsZUhcblxuICAvLyBnZXQgdmlzaWJsZSBnbHlwaHNcbiAgdmFyIGdseXBocyA9IHRoaXMubGF5b3V0LmdseXBocy5maWx0ZXIoZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICByZXR1cm4gYml0bWFwLndpZHRoICogYml0bWFwLmhlaWdodCA+IDBcbiAgfSlcblxuICAvLyBwcm92aWRlIHZpc2libGUgZ2x5cGhzIGZvciBjb252ZW5pZW5jZVxuICB0aGlzLnZpc2libGVHbHlwaHMgPSBnbHlwaHNcblxuICAvLyBnZXQgY29tbW9uIHZlcnRleCBkYXRhXG4gIHZhciBwb3NpdGlvbnMgPSB2ZXJ0aWNlcy5wb3NpdGlvbnMoZ2x5cGhzKVxuICB2YXIgdXZzID0gdmVydGljZXMudXZzKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpXG4gIHZhciBpbmRpY2VzID0gY3JlYXRlSW5kaWNlcyhbXSwge1xuICAgIGNsb2Nrd2lzZTogdHJ1ZSxcbiAgICB0eXBlOiAndWludDE2JyxcbiAgICBjb3VudDogZ2x5cGhzLmxlbmd0aFxuICB9KVxuXG4gIC8vIHVwZGF0ZSB2ZXJ0ZXggZGF0YVxuICB0aGlzLnNldEluZGV4KGluZGljZXMpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocG9zaXRpb25zLCAyKSlcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSh1dnMsIDIpKVxuXG4gIC8vIHVwZGF0ZSBtdWx0aXBhZ2UgZGF0YVxuICBpZiAoIW9wdC5tdWx0aXBhZ2UgJiYgJ3BhZ2UnIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgIC8vIGRpc2FibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwYWdlJylcbiAgfSBlbHNlIGlmIChvcHQubXVsdGlwYWdlKSB7XG4gICAgLy8gZW5hYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB2YXIgcGFnZXMgPSB2ZXJ0aWNlcy5wYWdlcyhnbHlwaHMpXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BhZ2UnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBhZ2VzLCAxKSlcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdTcGhlcmUgPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlID0gbmV3IFRIUkVFLlNwaGVyZSgpXG4gIH1cblxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cyA9IDBcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlci5zZXQoMCwgMCwgMClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlU3BoZXJlKHBvc2l0aW9ucywgdGhpcy5ib3VuZGluZ1NwaGVyZSlcbiAgaWYgKGlzTmFOKHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiAnICtcbiAgICAgICdDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgJyArXG4gICAgICAnXCJwb3NpdGlvblwiIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdCb3ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nQm94ID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ0JveCA9IG5ldyBUSFJFRS5Cb3gzKClcbiAgfVxuXG4gIHZhciBiYm94ID0gdGhpcy5ib3VuZGluZ0JveFxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICBiYm94Lm1ha2VFbXB0eSgpXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZUJveChwb3NpdGlvbnMsIGJib3gpXG59XG4iLCJ2YXIgaXRlbVNpemUgPSAyXG52YXIgYm94ID0geyBtaW46IFswLCAwXSwgbWF4OiBbMCwgMF0gfVxuXG5mdW5jdGlvbiBib3VuZHMgKHBvc2l0aW9ucykge1xuICB2YXIgY291bnQgPSBwb3NpdGlvbnMubGVuZ3RoIC8gaXRlbVNpemVcbiAgYm94Lm1pblswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWluWzFdID0gcG9zaXRpb25zWzFdXG4gIGJveC5tYXhbMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1heFsxXSA9IHBvc2l0aW9uc1sxXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIHZhciB4ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDBdXG4gICAgdmFyIHkgPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMV1cbiAgICBib3gubWluWzBdID0gTWF0aC5taW4oeCwgYm94Lm1pblswXSlcbiAgICBib3gubWluWzFdID0gTWF0aC5taW4oeSwgYm94Lm1pblsxXSlcbiAgICBib3gubWF4WzBdID0gTWF0aC5tYXgoeCwgYm94Lm1heFswXSlcbiAgICBib3gubWF4WzFdID0gTWF0aC5tYXgoeSwgYm94Lm1heFsxXSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlQm94ID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIG91dHB1dC5taW4uc2V0KGJveC5taW5bMF0sIGJveC5taW5bMV0sIDApXG4gIG91dHB1dC5tYXguc2V0KGJveC5tYXhbMF0sIGJveC5tYXhbMV0sIDApXG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVTcGhlcmUgPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgdmFyIG1pblggPSBib3gubWluWzBdXG4gIHZhciBtaW5ZID0gYm94Lm1pblsxXVxuICB2YXIgbWF4WCA9IGJveC5tYXhbMF1cbiAgdmFyIG1heFkgPSBib3gubWF4WzFdXG4gIHZhciB3aWR0aCA9IG1heFggLSBtaW5YXG4gIHZhciBoZWlnaHQgPSBtYXhZIC0gbWluWVxuICB2YXIgbGVuZ3RoID0gTWF0aC5zcXJ0KHdpZHRoICogd2lkdGggKyBoZWlnaHQgKiBoZWlnaHQpXG4gIG91dHB1dC5jZW50ZXIuc2V0KG1pblggKyB3aWR0aCAvIDIsIG1pblkgKyBoZWlnaHQgLyAyLCAwKVxuICBvdXRwdXQucmFkaXVzID0gbGVuZ3RoIC8gMlxufVxuIiwibW9kdWxlLmV4cG9ydHMucGFnZXMgPSBmdW5jdGlvbiBwYWdlcyAoZ2x5cGhzKSB7XG4gIHZhciBwYWdlcyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAxKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGlkID0gZ2x5cGguZGF0YS5wYWdlIHx8IDBcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgfSlcbiAgcmV0dXJuIHBhZ2VzXG59XG5cbm1vZHVsZS5leHBvcnRzLnV2cyA9IGZ1bmN0aW9uIHV2cyAoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSkge1xuICB2YXIgdXZzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHZhciBidyA9IChiaXRtYXAueCArIGJpdG1hcC53aWR0aClcbiAgICB2YXIgYmggPSAoYml0bWFwLnkgKyBiaXRtYXAuaGVpZ2h0KVxuXG4gICAgLy8gdG9wIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgdTAgPSBiaXRtYXAueCAvIHRleFdpZHRoXG4gICAgdmFyIHYxID0gYml0bWFwLnkgLyB0ZXhIZWlnaHRcbiAgICB2YXIgdTEgPSBidyAvIHRleFdpZHRoXG4gICAgdmFyIHYwID0gYmggLyB0ZXhIZWlnaHRcblxuICAgIGlmIChmbGlwWSkge1xuICAgICAgdjEgPSAodGV4SGVpZ2h0IC0gYml0bWFwLnkpIC8gdGV4SGVpZ2h0XG4gICAgICB2MCA9ICh0ZXhIZWlnaHQgLSBiaCkgLyB0ZXhIZWlnaHRcbiAgICB9XG5cbiAgICAvLyBCTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYxXG4gICAgLy8gVExcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIFRSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBCUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYxXG4gIH0pXG4gIHJldHVybiB1dnNcbn1cblxubW9kdWxlLmV4cG9ydHMucG9zaXRpb25zID0gZnVuY3Rpb24gcG9zaXRpb25zIChnbHlwaHMpIHtcbiAgdmFyIHBvc2l0aW9ucyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcblxuICAgIC8vIGJvdHRvbSBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHggPSBnbHlwaC5wb3NpdGlvblswXSArIGJpdG1hcC54b2Zmc2V0XG4gICAgdmFyIHkgPSBnbHlwaC5wb3NpdGlvblsxXSArIGJpdG1hcC55b2Zmc2V0XG5cbiAgICAvLyBxdWFkIHNpemVcbiAgICB2YXIgdyA9IGJpdG1hcC53aWR0aFxuICAgIHZhciBoID0gYml0bWFwLmhlaWdodFxuXG4gICAgLy8gQkxcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgICAvLyBUTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBUUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gQlJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gIH0pXG4gIHJldHVybiBwb3NpdGlvbnNcbn1cbiIsInZhciBuZXdsaW5lID0gL1xcbi9cbnZhciBuZXdsaW5lQ2hhciA9ICdcXG4nXG52YXIgd2hpdGVzcGFjZSA9IC9cXHMvXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odGV4dCwgb3B0KSB7XG4gICAgdmFyIGxpbmVzID0gbW9kdWxlLmV4cG9ydHMubGluZXModGV4dCwgb3B0KVxuICAgIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcobGluZS5zdGFydCwgbGluZS5lbmQpXG4gICAgfSkuam9pbignXFxuJylcbn1cblxubW9kdWxlLmV4cG9ydHMubGluZXMgPSBmdW5jdGlvbiB3b3Jkd3JhcCh0ZXh0LCBvcHQpIHtcbiAgICBvcHQgPSBvcHR8fHt9XG5cbiAgICAvL3plcm8gd2lkdGggcmVzdWx0cyBpbiBub3RoaW5nIHZpc2libGVcbiAgICBpZiAob3B0LndpZHRoID09PSAwICYmIG9wdC5tb2RlICE9PSAnbm93cmFwJykgXG4gICAgICAgIHJldHVybiBbXVxuXG4gICAgdGV4dCA9IHRleHR8fCcnXG4gICAgdmFyIHdpZHRoID0gdHlwZW9mIG9wdC53aWR0aCA9PT0gJ251bWJlcicgPyBvcHQud2lkdGggOiBOdW1iZXIuTUFYX1ZBTFVFXG4gICAgdmFyIHN0YXJ0ID0gTWF0aC5tYXgoMCwgb3B0LnN0YXJ0fHwwKVxuICAgIHZhciBlbmQgPSB0eXBlb2Ygb3B0LmVuZCA9PT0gJ251bWJlcicgPyBvcHQuZW5kIDogdGV4dC5sZW5ndGhcbiAgICB2YXIgbW9kZSA9IG9wdC5tb2RlXG5cbiAgICB2YXIgbWVhc3VyZSA9IG9wdC5tZWFzdXJlIHx8IG1vbm9zcGFjZVxuICAgIGlmIChtb2RlID09PSAncHJlJylcbiAgICAgICAgcmV0dXJuIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aClcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpXG59XG5cbmZ1bmN0aW9uIGlkeE9mKHRleHQsIGNociwgc3RhcnQsIGVuZCkge1xuICAgIHZhciBpZHggPSB0ZXh0LmluZGV4T2YoY2hyLCBzdGFydClcbiAgICBpZiAoaWR4ID09PSAtMSB8fCBpZHggPiBlbmQpXG4gICAgICAgIHJldHVybiBlbmRcbiAgICByZXR1cm4gaWR4XG59XG5cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjaHIpIHtcbiAgICByZXR1cm4gd2hpdGVzcGFjZS50ZXN0KGNocilcbn1cblxuZnVuY3Rpb24gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGxpbmVzID0gW11cbiAgICB2YXIgbGluZVN0YXJ0ID0gc3RhcnRcbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZCAmJiBpPHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNociA9IHRleHQuY2hhckF0KGkpXG4gICAgICAgIHZhciBpc05ld2xpbmUgPSBuZXdsaW5lLnRlc3QoY2hyKVxuXG4gICAgICAgIC8vSWYgd2UndmUgcmVhY2hlZCBhIG5ld2xpbmUsIHRoZW4gc3RlcCBkb3duIGEgbGluZVxuICAgICAgICAvL09yIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIEVPRlxuICAgICAgICBpZiAoaXNOZXdsaW5lIHx8IGk9PT1lbmQtMSkge1xuICAgICAgICAgICAgdmFyIGxpbmVFbmQgPSBpc05ld2xpbmUgPyBpIDogaSsxXG4gICAgICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIGxpbmVTdGFydCwgbGluZUVuZCwgd2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKG1lYXN1cmVkKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBsaW5lU3RhcnQgPSBpKzFcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKSB7XG4gICAgLy9BIGdyZWVkeSB3b3JkIHdyYXBwZXIgYmFzZWQgb24gTGliR0RYIGFsZ29yaXRobVxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL2xpYmdkeC9saWJnZHgvYmxvYi9tYXN0ZXIvZ2R4L3NyYy9jb20vYmFkbG9naWMvZ2R4L2dyYXBoaWNzL2cyZC9CaXRtYXBGb250Q2FjaGUuamF2YVxuICAgIHZhciBsaW5lcyA9IFtdXG5cbiAgICB2YXIgdGVzdFdpZHRoID0gd2lkdGhcbiAgICAvL2lmICdub3dyYXAnIGlzIHNwZWNpZmllZCwgd2Ugb25seSB3cmFwIG9uIG5ld2xpbmUgY2hhcnNcbiAgICBpZiAobW9kZSA9PT0gJ25vd3JhcCcpXG4gICAgICAgIHRlc3RXaWR0aCA9IE51bWJlci5NQVhfVkFMVUVcblxuICAgIHdoaWxlIChzdGFydCA8IGVuZCAmJiBzdGFydCA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgIC8vZ2V0IG5leHQgbmV3bGluZSBwb3NpdGlvblxuICAgICAgICB2YXIgbmV3TGluZSA9IGlkeE9mKHRleHQsIG5ld2xpbmVDaGFyLCBzdGFydCwgZW5kKVxuXG4gICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgc3RhcnQgb2YgbGluZVxuICAgICAgICB3aGlsZSAoc3RhcnQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSggdGV4dC5jaGFyQXQoc3RhcnQpICkpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIHN0YXJ0KytcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZGV0ZXJtaW5lIHZpc2libGUgIyBvZiBnbHlwaHMgZm9yIHRoZSBhdmFpbGFibGUgd2lkdGhcbiAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbmV3TGluZSwgdGVzdFdpZHRoKVxuXG4gICAgICAgIHZhciBsaW5lRW5kID0gc3RhcnQgKyAobWVhc3VyZWQuZW5kLW1lYXN1cmVkLnN0YXJ0KVxuICAgICAgICB2YXIgbmV4dFN0YXJ0ID0gbGluZUVuZCArIG5ld2xpbmVDaGFyLmxlbmd0aFxuXG4gICAgICAgIC8vaWYgd2UgaGFkIHRvIGN1dCB0aGUgbGluZSBiZWZvcmUgdGhlIG5leHQgbmV3bGluZS4uLlxuICAgICAgICBpZiAobGluZUVuZCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIC8vZmluZCBjaGFyIHRvIGJyZWFrIG9uXG4gICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kKSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluZUVuZCA9PT0gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXJ0ID4gc3RhcnQgKyBuZXdsaW5lQ2hhci5sZW5ndGgpIG5leHRTdGFydC0tXG4gICAgICAgICAgICAgICAgbGluZUVuZCA9IG5leHRTdGFydCAvLyBJZiBubyBjaGFyYWN0ZXJzIHRvIGJyZWFrLCBzaG93IGFsbC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gbGluZUVuZFxuICAgICAgICAgICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgZW5kIG9mIGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQgLSBuZXdsaW5lQ2hhci5sZW5ndGgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGluZUVuZCA+PSBzdGFydCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIGxpbmVFbmQsIHRlc3RXaWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KVxuICAgICAgICB9XG4gICAgICAgIHN0YXJ0ID0gbmV4dFN0YXJ0XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG4vL2RldGVybWluZXMgdGhlIHZpc2libGUgbnVtYmVyIG9mIGdseXBocyB3aXRoaW4gYSBnaXZlbiB3aWR0aFxuZnVuY3Rpb24gbW9ub3NwYWNlKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGdseXBocyA9IE1hdGgubWluKHdpZHRoLCBlbmQtc3RhcnQpXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBlbmQ6IHN0YXJ0K2dseXBoc1xuICAgIH1cbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGV4dGVuZFxuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBleHRlbmQoKSB7XG4gICAgdmFyIHRhcmdldCA9IHt9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldXG5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldFxufVxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQlVUVE9OX0NPTE9SIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSwgeyBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0NPTE9SICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAuYnV0dG9uTGFiZWwgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgeyBDSEVDS0JPWF9TSVpFIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ2hlY2tib3goIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgY29uc3QgQ0hFQ0tCT1hfUEFEID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAtIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiY2hlY2tib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGNoZWNrbWFyaywgYm9yZGVyQm94LCBpbnRlcmFjdGlvbjtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBpZiggb25DaGFuZ2VkQ0IgKXtcclxuICAgICAgb25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGJvcmRlckJveC52aXNpYmxlID0gaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIGlmIChfaGVhZGVyKSB7XHJcbiAgICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgICAgX2hlYWRlci5ib3JkZXJCb3gudmlzaWJsZSA9IF9oZWFkZXIuaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG4gIGxldCBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSBmYWxzZTtcclxuICBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXIgPSAodmFsdWU9dHJ1ZSkgPT4ge1xyXG4gICAgaWYgKHZhbHVlICE9PSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHtcclxuICAgICAgaXNTaG93bkluRm9sZGVySGVhZGVyID0gdmFsdWU7XHJcbiAgICAgIC8vZ3JvdXAuZm9sZGVySGVhZGVyT2JqZWN0ID0gdmFsdWUgPyBnZXRGb2xkZXJIZWFkZXJPYmplY3QgOiBudWxsO1xyXG4gICAgICAvL3h4eDogY2FuJ3QgdXNlIG9yZGluYXJ5IGFkZC4uLlxyXG4gICAgICBfaGVhZGVyID0gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCk7XHJcbiAgICAgIGlmICh2YWx1ZSkgZ3JvdXAuZm9sZGVyLmFkZEhlYWRlckl0ZW0oX2hlYWRlcik7XHJcbiAgICAgIGVsc2UgX2hlYWRlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2lzU2hvd25JbkZvbGRlckhlYWRlcicsIHtcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gaXNTaG93bkluRm9sZGVySGVhZGVyIH0sXHJcbiAgICBzZXQ6IGdyb3VwLnNob3dJbkZvbGRlckhlYWRlclxyXG4gIH0pO1xyXG4gIGxldCBfaGVhZGVyO1xyXG4gIGZ1bmN0aW9uIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHtcclxuICAgIGlmIChfaGVhZGVyKSByZXR1cm4gX2hlYWRlcjtcclxuICAgIGxldCBzaXplID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAqIDAuNjtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoc2l6ZSwgc2l6ZSwgZGVwdGgpO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoc2l6ZSowLjUsIDAsIDApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2gocmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwpO1xyXG4gICAgX2hlYWRlciA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBzaWRlLWVmZmVjdC4uLlxyXG4gICAgLy8geCBwb3NpdGlvbiBpcyBzZXQgaW4gZm9sZGVyIHBlcmZvcm1IZWFkZXJMYXlvdXQoKVxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBcclxuICAgIC8vVE9ETzogZ2V0IHRoaXMgdG8gd29yay4uLiBhZGQgdG9vbHRpcFxyXG4gICAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBkZXB0aCwgdHJ1ZSApO1xyXG4gICAgX2hlYWRlci5ib3JkZXJCb3ggPSBib3JkZXJCb3g7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjb25zdCBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyaygwLjQgKiBzaXplIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkUpO1xyXG4gICAgX2hlYWRlci5jaGVja21hcmsgPSBjaGVja21hcms7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZChjaGVja21hcmspO1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oaGl0c2NhblZvbHVtZSk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oJ29uUHJlc3NlZCcsIGhhbmRsZUhlYWRlclByZXNzKTtcclxuICAgIF9oZWFkZXIuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuXHJcbiAgICAvL2FkZCB1cGRhdGVDb250cm9sIG1ldGhvZCBoZXJlIC0gYXR0ZW1wdCB0byBtYWtlIGdlbmVyaWMgdmVyc2lvbiBpbiBmb2xkZXIgd2FzIGluYWRlcXVhdGVcclxuICAgIF9oZWFkZXIudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiB7XHJcbiAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIHtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vbmI6IGludGVyYWN0aW9uIHdpbGwgYmUgZnJvbSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSBzY29wZSwgXHJcbiAgICAgIC8vbm90IHRoZSBtYWluIG9uZSB0aGF0IGFwcGxpZXMgdGhhdCBhcHBsaWVzIHRvIHRoZSBvcmRpbmFyeSBjb250cm9sLlxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBfaGVhZGVyO1xyXG4gIH1cclxuXHJcbiAgLy9UT0RPIHJldmlldyBuZWVkIGZvciBzZXBhcmF0ZSBoZWFkZXIgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uXHJcbiAgZnVuY3Rpb24gaGFuZGxlSGVhZGVyUHJlc3MocCl7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyLnZpc2libGUgPT09IGZhbHNlIHx8IF9oZWFkZXIudmlzaWJsZSA9PT0gZmFsc2UpIHJldHVybjtcclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdGF0ZS52YWx1ZTtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Ioc3RhdGUudmFsdWUpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIC8vbWFrZSBzdXJlIHZpZXcgaXMgYWxzbyB1cCB0byBkYXRlOyB1cGRhdGVWaWV3KCkgd29uJ3QgaGFwcGVuIHdoZW4gcGFyZW50IGZvbGRlciBpcyBjb2xsYXBzZWRcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICAvL2FsbCBsYXlvdXQgZXRjIGlzIGRvbmUgaW5zaWRlIHNldEhlaWdodCwgd2hpY2ggaXMgY2FsbGVkIG9uY2UgYXQgc3RhcnQuXHJcbiAgLy9hbnkgY2FsbGJhY2tzIGV0YyByZW1haW4gYXNzb2NpYXRlZCB3aXRoICdncm91cCcuXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gbmV3SGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IG5ld0hlaWdodDtcclxuICAgIFxyXG4gICAgY29uc3QgQ0hFQ0tCT1hfV0lEVEggPSBuZXdIZWlnaHQgLSBDSEVDS0JPWF9QQUQ7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9IRUlHSFQgPSBDSEVDS0JPWF9XSURUSDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0RFUFRIID0gZGVwdGg7XHJcbiAgICBjb25zdCBDSEVDS01BUktfU0laRSA9IDAuNCAqIENIRUNLQk9YX1dJRFRIIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIG5ld0hlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICBcclxuICAgIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDSEVDS0JPWF9XSURUSCwgQ0hFQ0tCT1hfSEVJR0hULCBDSEVDS0JPWF9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIENIRUNLQk9YX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgXHJcbiAgXHJcbiAgICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuICBcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgXHJcbiAgICAvLyAgb3V0bGluZSB2b2x1bWVcclxuICAgIC8vIGNvbnN0IG91dGxpbmUgPSBuZXcgVEhSRUUuQm94SGVscGVyKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAvLyBvdXRsaW5lLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLk9VVExJTkVfQ09MT1IgKTtcclxuICBcclxuICAgIC8vICBjaGVja2JveCB2b2x1bWVcclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5DSEVDS0JPWF9CR19DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcbiAgXHJcbiAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBuZXdIZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0NIRUNLQk9YICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gICAgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBDSEVDS0JPWF9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfREVQVEgsIHRydWUgKTtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKCBDSEVDS01BUktfU0laRSApO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggY2hlY2ttYXJrICk7XHJcbiAgXHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklELCBib3JkZXJCb3ggKTtcclxuICBcclxuICAgIC8vIGdyb3VwLmFkZCggZmlsbGVkVm9sdW1lLCBvdXRsaW5lLCBoaXRzY2FuVm9sdW1lLCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuICBcclxuICAgIGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICBcclxuICBcclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG4gICAgXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdO1xyXG4gICAgICB9XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KGhlaWdodCk7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4gKiBUaGlzIHNob3VsZCBsb29rIGxpa2UgYW4gaW1hZ2VidXR0b24gd2l0aCBhIHNvbGlkIGNvbG9yIE1lc2hCYXNpY01hdGVyaWFsXHJcbiAqIFdoZW4gcHJlc3NlZCBpdCBjb3VsZCBicmluZyB1cCBzb21lIGtpbmQgb2YgcGlja2VyIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uLlxyXG4gKiBcclxuICogRm9yIG5vdywganVzdCBnb2luZyB3aXRoIFJHQiBzbGlkZXJzIGFzIEkgc2hvdWxkbid0IHNwZW5kIHRvbyBsb25nIG9uIHRoaXMgQVRNLFxyXG4gKiBidXQgdmVyeSB0ZW1wdGVkIGJ5IHByb3NwZWN0IG9mIGFuIEhTIHNxdWFyZSB3aXRoIFYgc2xpZGVyLi4uIFxyXG4gKiBvciBIIHNsaWRlciBhbmQgU1Ygc3F1YXJlIHdoaWNoIHNlZW1zIHRvIGJlIHdoYXQgZGF0Lmd1aSB1c2VzLlxyXG4gKiBPciBzb21ldGhpbmcgZmFuY2llciBsaWtlIGEgaHVlIGNpcmNsZSBhcm91bmQgYW4gU1YgdHJpYW5nbGUgZXRjIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbi8vc25pcHBldCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9odWdoc2svZ2xzbC1oc3YycmdiL2Jsb2IvbWFzdGVyL2luZGV4Lmdsc2xcclxuLy8obm90IGdvaW5nIHRvIHRoZSBsZW5ndGhzIG9mIGdsc2xpZnksIGp1c3QgY29weWluZyB0aGUgZnVuY3Rpb24pXHJcbmNvbnN0IGhzdjJyZ2IgPSBgXHJcbnZlYzMgaHN2MnJnYih2ZWMzIGMpIHtcclxuICAgIHZlYzQgSyA9IHZlYzQoMS4wLCAyLjAgLyAzLjAsIDEuMCAvIDMuMCwgMy4wKTtcclxuICAgIHZlYzMgcCA9IGFicyhmcmFjdChjLnh4eCArIEsueHl6KSAqIDYuMCAtIEsud3d3KTtcclxuICAgIHJldHVybiBjLnogKiBtaXgoSy54eHgsIGNsYW1wKHAgLSBLLnh4eCwgMC4wLCAxLjApLCBjLnkpO1xyXG59YDtcclxuXHJcbmNvbnN0IFZlcnRTaGFkZXIgPSBgXHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2VXYgPSB1djtcclxuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuKTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgU1ZGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZlYzMgaHN2ID0gdmVjMyhzZWxlY3RlZEhTVi54LCB2VXYpO1xyXG5cclxuICAgIC8vIGRyYXcgYSBibGFjayBjaXJjbGUgYXJvdW5kIHNlbGVjdGVkIFNWLlxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBsZXNzIGhvdXNla2VlcGluZ1xyXG4gICAgLy8gbmVlZCB0byBrbm93IGFzcGVjdCByYXRpbyBpZiBJIHdhbnQgaXQgdG8gYmUgYSBwcm9wZXIgY2lyY2xlLCB0aG91Z2guXHJcbiAgICBmbG9hdCBkID0gbGVuZ3RoKHNlbGVjdGVkSFNWLnl6IC0gdlV2KTtcclxuICAgIGlmIChkIDwgMC4wMTUgJiYgZCA+IDAuMDEpIGhzdi56ID0gMC47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYihoc3YpO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBIU2xpZGVyRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICAvLyBkcmF3IGEgcmVjdGFuZ3VsYXIgaW5kaWNhdG9yIGFyb3VuZCBzZWxlY3RlZCBIXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIHNpbXBsZXJcclxuICAgIGZsb2F0IGRpc3QgPSBhYnMoc2VsZWN0ZWRIU1YueCAtIHZVdi54KTtcclxuICAgIGJvb2wgaW5kaWNhdG9yID0gZGlzdCA8IDAuMDEgJiYgZGlzdCA+IDAuMDA1O1xyXG4gICAgZmxvYXQgdiA9IGluZGljYXRvciA/IDAuIDogMS47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYih2ZWMzKHZVdi54LCAxLiwgdikpO1xyXG4gICAgXHJcbn1cclxuYDtcclxuXHJcbi8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTcyNDIxNDQvamF2YXNjcmlwdC1jb252ZXJ0LWhzYi1oc3YtY29sb3ItdG8tcmdiLWFjY3VyYXRlbHlcclxuLy93aHkgbm90IHVzZSBUSFJFRS5Db2xvciBtZXRob2RzP1xyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogaCAgT2JqZWN0ID0ge2g6eCwgczp5LCB2Onp9XHJcbiAqIE9SIFxyXG4gKiBoLCBzLCB2XHJcbiovXHJcbmZ1bmN0aW9uIEhTVnRvUkdCKGgsIHMsIHYpIHtcclxuICAgIHZhciByLCBnLCBiLCBpLCBmLCBwLCBxLCB0O1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAvL2hhY2sgdG8gdGFrZSBUSFJFRS5WZWN0b3IzLi4uXHJcbiAgICAgICAgaWYgKGgueCAhPT0gdW5kZWZpbmVkKSBzID0gaC55LCB2ID0gaC56LCBoID0gaC54O1xyXG4gICAgICAgIGVsc2UgcyA9IGgucywgdiA9IGgudiwgaCA9IGguaDtcclxuICAgIH1cclxuICAgIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIGYgPSBoICogNiAtIGk7XHJcbiAgICBwID0gdiAqICgxIC0gcyk7XHJcbiAgICBxID0gdiAqICgxIC0gZiAqIHMpO1xyXG4gICAgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcclxuICAgIHN3aXRjaCAoaSAlIDYpIHtcclxuICAgICAgICBjYXNlIDA6IHIgPSB2LCBnID0gdCwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTogciA9IHEsIGcgPSB2LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyOiByID0gcCwgZyA9IHYsIGIgPSB0OyBicmVhaztcclxuICAgICAgICBjYXNlIDM6IHIgPSBwLCBnID0gcSwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDogciA9IHQsIGcgPSBwLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA1OiByID0gdiwgZyA9IHAsIGIgPSBxOyBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcjogcixcclxuICAgICAgICBnOiBnLFxyXG4gICAgICAgIGI6IGJcclxuICAgIH07XHJcbn1cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIHIgIE9iamVjdCA9IHtyLCBnLCBifVxyXG4gKiBPUiBcclxuICogciwgZywgYlxyXG4qL1xyXG5mdW5jdGlvbiBSR0J0b0hTVihyLCBnLCBiKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGcgPSByLmcsIGIgPSByLmIsIHIgPSByLnI7XHJcbiAgICB9XHJcbiAgICB2YXIgbWF4ID0gTWF0aC5tYXgociwgZywgYiksIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpLFxyXG4gICAgICAgIGQgPSBtYXggLSBtaW4sXHJcbiAgICAgICAgaCxcclxuICAgICAgICBzID0gKG1heCA9PT0gMCA/IDAgOiBkIC8gbWF4KSxcclxuICAgICAgICB2ID0gbWF4O1xyXG5cclxuICAgIHN3aXRjaCAobWF4KSB7XHJcbiAgICAgICAgY2FzZSBtaW46IGggPSAwOyBicmVhaztcclxuICAgICAgICBjYXNlIHI6IGggPSAoZyAtIGIpICsgZCAqIChnIDwgYiA/IDY6IDApOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGc6IGggPSAoYiAtIHIpICsgZCAqIDI7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgYjogaCA9IChyIC0gZykgKyBkICogNDsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBoOiBoLFxyXG4gICAgICAgIHM6IHMsXHJcbiAgICAgICAgdjogdiwgXHJcbiAgICAgICAgeDogaCwgeTogcywgejogdiAvL3NvIHRoYXQgd2UgY2FuIGRvIFZlY3RvcjMuY29weSh0aGlzKVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ29sb3JQaWNrZXIoIHtcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSwgLy9tdXN0IGJlIGEgVEhSRUUuQ29sb3IgZm9yIG5vdy4uLiBzaG91bGQgcmVmZXIgdG8gb3JpZ2luYWwgZGF0Lmd1aSB0byBzZWUgd2hhdCBpdCB0YWtlc1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCAvIDMuXHJcbn0gPSB7fSkge1xyXG4gICAgLy8gbWFrZSB0aGUgbWFpbiBncm91cCBiZSAqZGlyZWN0bHkqIHRoZSBvbmUgcmV0dXJuZWQgYnkgY3JlYXRlSW1hZ2VCdXR0b247XHJcbiAgICAvLyB3ZSdsbCB0YWtlIGNhcmUgb2YgZHluYW1pY2FsbHkgYWRkaW5nIGFuZCByZW1vdmluZyBjaGlsZHJlbiBiYXNlZCBvbiBhdHRhY2hlZC4uLlxyXG4gICAgLy8gd2lsbCB3YW50IHRvIHRoaW5rIGFib3V0IGxpc3RlbmVyIGZ1bmN0aW9ucyBldGMuXHJcbiAgICBsZXQgZnVuYyA9IHRvZ2dsZURldGFpbFBhbmVsO1xyXG4gICAgbGV0IGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07IC8vZm9yIG5vdywgdGhpcydkIGJldHRlciBiZSBhIFRIUkVFLkNvbG9yIG9yIHdlJ2xsIGZyZWFrIG91dC5cclxuICAgIGNvbnN0IGMgPSBSR0J0b0hTVihjb2xvcik7XHJcbiAgICBjb25zdCB1bmlmb3JtcyA9IHtzZWxlY3RlZEhTVjoge3ZhbHVlOiBuZXcgVEhSRUUuVmVjdG9yMyhjLmgsIGMucywgYy52KX19O1xyXG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiBjb2xvcn0pO1xyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGNvbnN0IGNoYW5nZUNvbG9yT25Ib3ZlciA9IGZhbHNlO1xyXG4gICAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICAgICAgbGlzdGVuOiBmYWxzZVxyXG4gICAgfTtcclxuICAgIC8vVE9ETyBtYWtlIHN1cmUgY29sb3IgcGF0Y2ggb2NjdXBpZXMgZnVsbCB3aWR0aC4gIEFkZCB0ZXh0IGxhYmVsIHdpdGggaGV4IHZhbHVlP1xyXG4gICAgY29uc3QgZ3JvdXAgPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgICAgdGV4dENyZWF0b3IsIGZ1bmMsIGltYWdlLCBwcm9wZXJ0eU5hbWUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBjaGFuZ2VDb2xvck9uSG92ZXJcclxuICAgIH0pO1xyXG4gICAgZ3JvdXAuZ3VpVHlwZSA9IFwiQ29sb3JQaWNrZXJcIjtcclxuICAgIFxyXG4gICAgdmFyIHBhbmVsO1xyXG5cclxuICAgIGZ1bmN0aW9uIGNoYW5nZUZuKCkge1xyXG4gICAgICAgIGltYWdlLmNvbG9yLnNldChjb2xvcik7XHJcbiAgICAgICAgZXZlbnRzLmVtaXQoJ29uQ2hhbmdlJywgY29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhbmN5UGFuZWwgPSB0cnVlO1xyXG5cclxuICAgIGZ1bmN0aW9uIHNldFBhbmVsUG9zaXRpb24oKSB7XHJcbiAgICAgICAgaWYgKCFwYW5lbCkgcmV0dXJuO1xyXG4gICAgICAgIHBhbmVsLnBvc2l0aW9uLnNldCgwLCAwLCA1KmRlcHRoKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB0b2dnbGVEZXRhaWxQYW5lbCgpIHtcclxuICAgICAgICBpZiAocGFuZWwpIHtcclxuICAgICAgICAgICAgcGFuZWwudmlzaWJsZSA9ICFwYW5lbC52aXNpYmxlO1xyXG4gICAgICAgICAgICBpZiAocGFuZWwudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gd291bGQgYmUgaGFuZHkgdG8gaGF2ZSBhIHdheSB0byBtYWtlIG5hcnJvd2VyIHBhbmVsXHJcbiAgICAgICAgICAgIHBhbmVsID0gZGF0LkdVSVZSLmNyZWF0ZShcIkNvbG9yIENob29zZXJcIik7IFxyXG4gICAgICAgICAgICBwYW5lbC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAoZmFuY3lQYW5lbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgU1ZNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogU1ZGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNldFNWID0gKHApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS55ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueiA9IHAubG9jYWxQb2ludC55O1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBsZXQgd2lkZSA9IHRydWUsIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSC8xMDtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRTViwgU1ZNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX1dJRFRIIC8gMiwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IEhNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogSFNsaWRlckZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0SChwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueCA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAvL1RPRE86IGNoZWNrIGxheW91dFxyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldEgsIEhNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX0hFSUdIVCwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ3InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdnJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnYicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncm91cC5hZGQocGFuZWwpO1xyXG4gICAgICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHBhbmVsLmZvbGRlciA9IGdyb3VwLmZvbGRlcjsgLy9taWdodCBzdGlsbCB3YW50IHRvIGRvdWJsZSBjaGVjayBmb2xkZXIgaGllcmFyY2h5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgZXZlbnRzLm9uKCdvbkNoYW5nZScsIGNhbGxiYWNrKTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3JpZ2luYWxVcGRhdGVDb250cm9sID0gZ3JvdXAudXBkYXRlQ29udHJvbDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICkge1xyXG4gICAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIG9yaWdpbmFsVXBkYXRlQ29udHJvbChpbnB1dE9iamVjdHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKSB7XHJcbiAgICAgICAgLy9vYmplY3QgcmVmIG1pZ2h0IGhhdmUgY2hhbmdlZCwgYXMgd2VsbCBhcyB2YWx1ZS5cclxuICAgICAgICAvL2V2ZW4gaWYgcmVmIGhhc24ndCBjaGFuZ2VkLCB2YWx1ZSBzdGlsbCBtaWdodCd2ZSwgYW5kIHdlJ3JlIG5vdCBjdXJyZW50bHkgcmVmbGVjdGluZyB0aGF0LlxyXG4gICAgICAgIGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgaW1hZ2UuY29sb3IuY29weShjb2xvcik7XHJcbiAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUuY29weShSR0J0b0hTVihjb2xvcikpO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAubGlzdGVuID0gKCkgPT4ge1xyXG4gICAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1IgPSAweDJGQTFENjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9DT0xPUiA9IDB4NDNiNWVhO1xyXG5leHBvcnQgY29uc3QgSU5URVJBQ1RJT05fQ09MT1IgPSAweDA3QUJGNztcclxuZXhwb3J0IGNvbnN0IEVNSVNTSVZFX0NPTE9SID0gMHgyMjIyMjI7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfRU1JU1NJVkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IE9VVExJTkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDSyA9IDB4MDYwNjA2O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT0xERVJfQkFDSyA9IDB4MTAxMDEwO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0JBQ0sgPSAweDMxMzEzMTtcclxuZXhwb3J0IGNvbnN0IElOQUNUSVZFX0NPTE9SID0gMHgxNjE4Mjk7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1NMSURFUiA9IDB4MmZhMWQ2O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9DSEVDS0JPWCA9IDB4ODA2Nzg3O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9CVVRUT04gPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfVEVYVCA9IDB4MWVkMzZmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9EUk9QRE9XTiA9IDB4ZmZmMDAwO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0ZHX0NPTE9SID0gMHgwMDAwMDA7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0NPTE9SID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fSElHSExJR0hUX0NPTE9SID0gMHhmYTMxNzM7XHJcbmV4cG9ydCBjb25zdCBTTElERVJfQkcgPSAweDQ0NDQ0NDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfQkcgPSAweEYwRjBGMDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfSElHSExJR0hUX0JHID0gMHhGRkZGRkY7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sb3JpemVHZW9tZXRyeSggZ2VvbWV0cnksIGNvbG9yICl7XHJcbiAgY29uc3QgY29sID0gbmV3IFRIUkVFLkNvbG9yKGNvbG9yKTsgXHJcbiAgbGV0IGMgPSBnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ2NvbG9yJyk7XHJcbiAgbGV0IGE7XHJcbiAgaWYgKCFjKSB7XHJcbiAgICBhID0gbmV3IEZsb2F0MzJBcnJheShnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXkubGVuZ3RoKS5maWxsKDAuNSk7XHJcbiAgICBjID0gZ2VvbWV0cnkuc2V0QXR0cmlidXRlKCdjb2xvcicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoYSwgMykpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBhID0gYy5hcnJheTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSs9Mykge1xyXG4gICAgYVtpXSA9IGNvbC5yO1xyXG4gICAgYVtpKzFdID0gY29sLmc7XHJcbiAgICBhW2krMl0gPSBjb2wuYjtcclxuICB9XHJcbiAgYy5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIC8vIGdlb21ldHJ5LmZhY2VzLmZvckVhY2goIGZ1bmN0aW9uKGZhY2Upe1xyXG4gIC8vICAgZmFjZS5jb2xvci5zZXRIZXgoY29sb3IpO1xyXG4gIC8vIH0pO1xyXG4gIC8vIGdlb21ldHJ5LmNvbG9yc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIHJldHVybiBnZW9tZXRyeTtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsLCB7Y3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gXCIuL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVEcm9wZG93bigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICBvcHRpb25zID0gW10sXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgb3BlbjogZmFsc2UsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgRFJPUERPV05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9ERVBUSCA9IGRlcHRoO1xyXG4gIGNvbnN0IERST1BET1dOX09QVElPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOICogMS4yO1xyXG4gIGNvbnN0IERST1BET1dOX01BUkdJTiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAtMC40O1xyXG4gIGNvbnN0IE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZHJvcGRvd25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIC8vYWxsb3cgZm9yIHByb2dyYW1tYXRpYyBzZXQuIEFQSSBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgc3RhYmxlLlxyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZU9iamVjdCA9IG9iamVjdDtcclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VQcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7XHJcbiAgZ3JvdXAudXNlckRhdGEuc2V0VmFsdWUgPSB2ID0+IHtcclxuICAgIGlmIChvcHRpb25zLmluZGV4T2YodikgPT09IC0xKSB7XHJcbiAgICAgIC8vSSBjb3VsZCBjb25zaWRlciBhbm5vdGF0aW5nIEdVSSBpdHNlbGYgd2l0aCBlcnJvciBsYWJlbHMuLi5cclxuICAgICAgY29uc29sZS53YXJuKGBkYXQuR1VJVlI6IFVua25vd24gb3B0aW9uIFwiJHt2fVwiIGZvciBkcm9wZG93biBcIiR7cHJvcGVydHlOYW1lfVwiLlxcblZhbGlkIG9wdGlvbnM6IFske29wdGlvbnMuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gdjtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Iob2JqZWN0W3Byb3BlcnR5TmFtZV0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICBncm91cC5oaXRzY2FuID0gWyBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBtb2RhbERyb3Bkb3duID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgbW9kYWxEcm9wZG93bi52aXNpYmxlID0gZmFsc2U7XHJcbiAgbW9kYWxEcm9wZG93bi5oaXRzY2FuID0gW107XHJcbiAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbnMgPSBbXTtcclxuICBjb25zdCBvcHRpb25MYWJlbHMgPSBbXTtcclxuXHJcbiAgLy8gIGZpbmQgYWN0dWFsbHkgd2hpY2ggbGFiZWwgaXMgc2VsZWN0ZWRcclxuICBjb25zdCBpbml0aWFsTGFiZWwgPSBmaW5kTGFiZWxGcm9tUHJvcCgpO1xyXG5cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGZpbmRMYWJlbEZyb21Qcm9wKCl7XHJcbiAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgIHJldHVybiBvcHRpb25zLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbk5hbWUgPT09IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMob3B0aW9ucykuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb2JqZWN0W3Byb3BlcnR5TmFtZV0gPT09IG9wdGlvbnNbIG9wdGlvbk5hbWUgXTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVPcHRpb24oIGxhYmVsVGV4dCwgaXNPcHRpb24gKXtcclxuICAgIC8vVE9ETzogdHJ1bmNhdGUgbG9uZyBsYWJlbFRleHQsIG1heWJlIHNob3cgZnVsbCB2ZXJzaW9uIHdoZW4gaG92ZXJpbmcuXHJcbiAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZVRleHRMYWJlbChcclxuICAgICAgdGV4dENyZWF0b3IsIGxhYmVsVGV4dCxcclxuICAgICAgLy9jaGVjayB3aWR0aCB2YWx1ZS4uLlxyXG4gICAgICBEUk9QRE9XTl9XSURUSCwgZGVwdGgsXHJcbiAgICAgIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SLFxyXG4gICAgICAwLjg2NlxyXG4gICAgKTtcclxuICAgIGxhYmVsLmJhY2suZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbC5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuXHJcbiAgICBpZiAoaXNPcHRpb24pIG1vZGFsRHJvcGRvd24uaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBlbHNlIGdyb3VwLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBsYWJlbC5iYWNrICk7XHJcbiAgICBsYWJlbEludGVyYWN0aW9uLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMucHVzaCggbGFiZWxJbnRlcmFjdGlvbiApO1xyXG4gICAgb3B0aW9uTGFiZWxzLnB1c2goIGxhYmVsICk7XHJcblxyXG5cclxuICAgIGlmKCBpc09wdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggbGFiZWxUZXh0ICk7XHJcblxyXG4gICAgICAgIGxldCBwcm9wZXJ0eUNoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBvbkNoYW5nZWRDQiAmJiBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgIG9uQ2hhbmdlZENCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggb25DaG9vc2VDQiApe1xyXG4gICAgICAgICAgb25DaG9vc2VDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIGlmKCBzdGF0ZS5vcGVuID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgb3Blbk9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGxhYmVsLmlzT3B0aW9uID0gaXNPcHRpb247XHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjb2xsYXBzZU9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5jbGVhck1vZGFsRWRpdG9yKCk7IC8vc2hvdWxkIHdlIGNoZWNrIGlmIGl0IHdhc24ndCBzZXQgdG8gc29tZXRoaW5nIGVsc2U/P1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3Blbk9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSB0cnVlO1xyXG4gICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKG1vZGFsRHJvcGRvd24pO1xyXG4gICAgLy9yZXR1cm47XHJcbiAgICAvL2xhYmVsLmlzT3B0aW9uIHNlZW1zIG1vc3RseSByZWR1bmRhbnQuXHJcbiAgICAvL2xhYmVscyAmIGJhY2tzIHNob3VsZCBiZSBhZGRlZCB0byBhIGdyb3VwIHRvIGJlIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIFxyXG4gICAgLy9tYWtpbmcgZXZlcnl0aGluZyB2aXNpYmxlIC8gaW52aXNpYmxlIHdpdGggb25lIHByb3BlcnR5XHJcbiAgICAvLyhuYiwgZXZlbiB0aG91Z2ggdGhleSBhcmUgbm93IGluIGEgZ3JvdXAgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgd2Ugc3RpbGwgbmVlZCB0byBzZXQgdmlzaWJsZS4uLlxyXG4gICAgLy9zZWUgY29tbWVudCBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSlcclxuICAgIG9wdGlvbkxhYmVscy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWwgKXtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgbGFiZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgbGFiZWwuYmFjay52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAgYmFzZSBvcHRpb25cclxuICBjb25zdCBzZWxlY3RlZExhYmVsID0gY3JlYXRlT3B0aW9uKCBpbml0aWFsTGFiZWwgfHwgJyAnLCBmYWxzZSApO1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICBjb25zdCBkb3duQXJyb3cgPSBHcmFwaGljLmRvd25BcnJvdygpO1xyXG4gIC8vIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIERST1BET1dOX1dJRFRIIC0gMC4wNCwgMCwgZGVwdGggKiAxLjAxICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gY29uZmlndXJlTGFiZWxQb3NpdGlvbiggbGFiZWwsIGluZGV4ICl7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi55ID0gLURST1BET1dOX01BUkdJTiAtIChpbmRleCVNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTisxKSAqICggRFJPUERPV05fT1BUSU9OX0hFSUdIVCApO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueCArPSBEUk9QRE9XTl9XSURUSCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTik7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcHRpb25Ub0xhYmVsKCBvcHRpb25OYW1lLCBpbmRleCApe1xyXG4gICAgY29uc3Qgb3B0aW9uTGFiZWwgPSBjcmVhdGVPcHRpb24oIG9wdGlvbk5hbWUsIHRydWUgKTtcclxuICAgIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIG9wdGlvbkxhYmVsLCBpbmRleCApO1xyXG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQobW9kYWxEcm9wZG93bik7XHJcbiAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoLi4ub3B0aW9ucy5tYXAob3B0aW9uVG9MYWJlbCkpO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoIC4uLk9iamVjdC5rZXlzKG9wdGlvbnMpLm1hcCggb3B0aW9uVG9MYWJlbCApICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29sbGFwc2VPcHRpb25zKCk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0RST1BET1dOICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcblxyXG4gIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggRFJPUERPV05fV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgRFJPUERPV05fSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUsIERST1BET1dOX0RFUFRILCB0cnVlICk7XHJcbiAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBjb250cm9sbGVySUQsIHNlbGVjdGVkTGFiZWwsIGJvcmRlckJveCApO1xyXG5cclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGludGVyYWN0aW9uLCBpbmRleCApe1xyXG4gICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbkxhYmVsc1sgaW5kZXggXTtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlOyAvL2FzIG9mIHRoaXMgd3JpdGluZywgdGhpcyBpcyBiZWxpZXZlZCB0byBiZSByZWxpYWJsZSwgYnV0IGJld2FyZSBkcmFnb25zLCBmdXR1cmUgcmVhZGVyLlxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLnRpcE9iaikge1xyXG4gICAgICAvLyBpZiAobGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSkge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGdyb3VwLnVzZXJEYXRhLnRpcCk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgc2V0VmlzaWJpbGl0eShwYW5lbCwgZ3JvdXAudXNlckRhdGEudGlwT2JqLCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKTtcclxuICAgIH1cclxuICAgIGlmKCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpIHx8IHN0YXRlLm9wZW4gKXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuICBsZXQgb25DaG9vc2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5vbkNob29zZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaG9vc2VDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGZpbmRMYWJlbEZyb21Qcm9wKCkgKTtcclxuICAgIH1cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbEludGVyYWN0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICBjb25zdCBvYmogPSBncm91cDtcclxuICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgIC8vbmIsIG9iai5zcGFjaW5nIG1heSBiZSB1bmRlZmluZWQsIGJ1dCBzaG91bGQgbm93IGhhdmUgc2Vuc2libGUgZGVmYXVsdC5cclxuICAgIG9iai51c2VyRGF0YS50aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgIC8vLy8tLS0gc2VlIGxhYmVsSW50ZXJhY3Rpb25zWzBdIGFib3ZlIGZvciBoYW5kbGluZyB1cGRhdGUuLi5cclxuICB9XHJcbiAgZ3JvdXAuZ2V0VG9vbFRpcCA9ICgpID0+IGdyb3VwLnVzZXJEYXRhLnRpcDtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlVG9vbFRpcCB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciwgc2V0Qm94RnJvbU9iamVjdCwgc2V0VmlzaWJpbGl0eSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBGT0xERVJfV0lEVEggfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG4vL0lmIHlvdSdyZSBsb29raW5nIGZvciBtYWluIGNyZWF0ZUZvbGRlciBmdW5jdGlvbiwgaXQncyBmdXJ0aGVyIGJlbG93Li4uXHJcblxyXG4vKipcclxuICogTm90IGVudGlyZWx5IHN1cmUgYWJvdXQgc3RhcnRpbmcgdG8gYWRkIHRoaXMga2luZCBvZiBnbG9iYWwgc3RhdGUgbWFuYWFnZW1lbnQgaGVyZS4uLlxyXG4gKiBUaGlzIGlzIGZvciB6LW9yZGVyIGluIDJkIG9ydGhvZ3JhcGhpYyBtb2RlLCBhbmQgbWF5YmUgc29tZSBvdGhlciB0aGluZ3Mgb25lIGRheS5cclxuICovXHJcbmNvbnN0IHRvcEZvbGRlclN0YWNrID0gW107XHJcblxyXG5jb25zdCBzY3JhdGNoRm9sZGVyQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaENhbUJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hTaXplID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpIHtcclxuICBjb25zdCBjYW0gPSB0b3BGb2xkZXJTdGFja1swXS51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICBpZiAoIWNhbSB8fCB0b3BGb2xkZXJTdGFjay5sZW5ndGggPD0gMSkgcmV0dXJuO1xyXG4gIC8vY2FtQm94U2V0dXAoY2FtKTtcclxuICBjb25zdCB0ZnMgPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoeCA9PiB4LnZpc2libGUpO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRmcy5sZW5ndGg7XHJcbiAgY29uc3QgenMgPSB0ZnMubWFwKGYgPT4gZi5wb3NpdGlvbi56KS5zb3J0KChhLGIpPT5hLWIpO1xyXG4gIHpzWy0xXSA9IC05OTk5OyAvLyBJIHN1cHBvc2UgdGhpcyBpcyB0byBkZWFsIHdpdGggYWNjZXNzaW5nIHpzW2ktMV0gYmVsb3cgwq9cXF8o44OEKV8vwq9cclxuICB6cy5mb3JFYWNoKCAoeixpKSA9PiB6c1tpXSA9IE1hdGgubWF4KHpzW2ldLCB6c1tpLTFdICsgMTAqTGF5b3V0LlBBTkVMX0RFUFRIKSk7IC8vIGluIGNhc2Ugb2YgZXF1YWxzXHJcbiAgXHJcbiAgdGZzLmZvckVhY2goKGYsIGkpID0+IHtcclxuICAgIC8vbGV0IHogPSAtMC45KmZhciArIGkqMTAqTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG4gICAgY29uc3QgeiA9IHpzW2ldO1xyXG4gICAgaWYgKHogIT09IGYucG9zaXRpb24ueikge1xyXG4gICAgICBmLnBvc2l0aW9uLnogPSB6O1xyXG4gICAgICBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICBmLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKHRmc1tuLTFdLnBvc2l0aW9uLnogPj0gbmVhciAtIExheW91dC5QQU5FTF9ERVBUSCkge1xyXG4gICAgY29uc29sZS5sb2coXCJHVUlWUiBXYXJuaW5nOiBsaWtlbHkgcHJvYmxlbSB3aXRoIHotb3JkZXIgaW4gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0XCIpO1xyXG4gIH1cclxuICAvL2NvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lICsgJ1xcdDogJyArIGYucG9zaXRpb24ueikuam9pbignXFxuJyl9XWApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYW1Cb3hTZXR1cChjYW0pIHtcclxuICBpZiAoIWNhbS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkgcmV0dXJuO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRvcEZvbGRlclN0YWNrLmxlbmd0aDtcclxuICBjb25zdCBsID0gY2FtLmxlZnQsIHIgPSBjYW0ucmlnaHQsIHQgPSBjYW0udG9wLCBiID0gY2FtLmJvdHRvbTtcclxuICBjb25zdCB6ID0gY2FtLnBvc2l0aW9uLno7IC8vbm90IHN0cmljdGx5IHJpZ2h0Li4uXHJcbiAgc2NyYXRjaENhbUJveC5taW4uc2V0KGwsIGIsIC1mYXIgKyB6KTtcclxuICBzY3JhdGNoQ2FtQm94Lm1heC5zZXQociwgdCwgLW5lYXIgKyB6KTtcclxuICByZXR1cm4gc2NyYXRjaENhbUJveDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRm9sZGVyKHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBuYW1lLFxyXG4gIGd1aUFkZCxcclxuICBndWlSZW1vdmUsXHJcbiAgYWRkQ29udHJvbGxlckZ1bmNzLFxyXG4gIGdsb2JhbENvbnRyb2xsZXJzXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCB3aWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgY29uc3QgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEg7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgY29sbGFwc2VkOiBmYWxzZSxcclxuICAgIHByZXZpb3VzUGFyZW50OiB1bmRlZmluZWRcclxuICB9O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImZvbGRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke25hbWV9XWA7XHJcblxyXG4gIGNvbnN0IGNvbGxhcHNlR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5hZGQoIGNvbGxhcHNlR3JvdXAgKTtcclxuXHJcbiAgdmFyIGlzQWNjb3JkaW9uID0gZmFsc2U7XHJcbiAgLyoqIFdoZW4gdHJ1ZSwgd2lsbCBrZWVwIG9ubHkgb25lIGNoaWxkIGZvbGRlciBvZiB0aGlzIGZvbGRlciBvcGVuIGF0IGEgdGltZS5cclxuICAgKiBTaWJsaW5ncyBhdXRvbWF0aWNhbGx5IGNsb3NlLlxyXG4gICAqL1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdhY2NvcmRpb24nLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzQWNjb3JkaW9uO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKCBuZXdWYWx1ZSAmJiAhaXNBY2NvcmRpb24gKSBncm91cC5ndWlDaGlsZHJlbi5maWx0ZXIoIGM9PmMuaXNGb2xkZXIgKS5tYXAoIGM9PmMuY2xvc2UoKSApO1xyXG4gICAgICBpc0FjY29yZGlvbiA9IG5ld1ZhbHVlO1xyXG4gICAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIC8vZmxhZyB0aGUgbmVlZCBmb3IgcGVyZm9ybWluZyBsYXlvdXQgb2YgdGhlIGZvbGRlciBoaWVyYXJjaHkgaW4gd2hpY2ggdGhpcyBpcyBjb250YWluZWQuXHJcbiAgZ3JvdXAucmVxdWVzdExheW91dCA9ICgpID0+IHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICh0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcykge1xyXG4gICAgICBjb25zb2xlLmxvZyhgcmVxdWVzdGVkIGxheW91dCBvZiBmb2xkZXIgJHtncm91cC5mb2xkZXJOYW1lfSB3aGlsZSBsYXlvdXQgYWxyZWFkeSBpbiBwcm9ncmVzcy4uLmApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vdG9wRm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL3Nob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIGluZGV4LmpzIHVwZGF0ZSg/KSBmb3IgZWFjaCB0b3BGb2xkZXIsIHRoZW4gZnJvbSB3aXRoaW4gcGVyZm9ybUxheW91dCgpIGZvciBlYWNoIGNoaWxkIGZvbGRlclxyXG4gIGdyb3VwLnBlcmZvcm1MYXlvdXQgPSBwZXJmb3JtTGF5b3V0O1xyXG5cclxuICBjb25zdCBzdHJhaWdodFJvdGF0aW9uID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcclxuICAvL3Byb3ZpZGUgYXJndW1lbnRzIGZvciBob3cgY29uc3RyYWluZWQgdG8gYmUsIGFuZCByZS11c2Ugc2FtZSBmdW5jdGlvbiBib3RoIG9uIGRldGFjaCBhbmQgZWxzZXdoZXJlP1xyXG4gIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uID0gZnVuY3Rpb24odGhyZXNoPTAuMDEpIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzO1xyXG4gICAgaWYgKCFmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSByZXR1cm47XHJcbiAgICAvL2Fsd2F5cyBmb3JjZSByb3RhdGlvbiBzdHJhaWdodCBmb3J3YXJkLi4uXHJcbiAgICBmLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oc3RyYWlnaHRSb3RhdGlvbik7XHJcblxyXG4gICAgLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbiAgICAvL21heWJlIEkgY291bGQgdXNlIGEgQm94MiBhbnl3YXkgc2luY2UgM2QgbWlnaHQganVzdCBjb25mdXNlIHRoaW5ncy5cclxuICAgIGNvbnN0IGJveCA9IHNldEJveEZyb21PYmplY3Qoc2NyYXRjaEZvbGRlckJveCwgZik7XHJcbiAgICBjb25zdCBib3hXID0gYm94Lm1heC54IC0gYm94Lm1pbi54LCBib3hIID0gYm94Lm1heC55LWJveC5tYXgueTtcclxuICAgIFxyXG4gICAgY29uc3QgY2FtID0gZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICAgIGNvbnN0IGNhbUJveCA9IGNhbUJveFNldHVwKGNhbSk7IC8vYml0IHdhc3RlZnVsIHRvIGNhbGwgdGhpcyBoZXJlLCBidXQgaW5zaWduaWZpY2FudC5cclxuICAgIC8vcmVhbGx5LCBJIHdhbnQgdG8ga25vdyBpZiBpdCdzICdtb3N0bHknIGludmlzaWJsZS5cclxuICAgIC8vVXNpbmcgdHdvIGJveGVzLCByYXRoZXIgdGhhbiBmcnVzdHVtLnNldEZyb21NYXRyaXgoIG1hdC5tdWx0aXBseU1hdHJpY2VzKCBjYW0ucHJvamVjdGlvbk1hdHJpeCwgY2FtLm1hdHJpeFdvcmxkSW52ZXJzZSApICk7XHJcbiAgICAvLyhmcnVzdHVtIGlzIHVubmVjZXNzYXJ5ICpjb3VnaCppZiB3ZSBhc3N1bWUgb3J0aG9ncmFwaGljIHBlcnNwZWN0aXZlLCBubyBjYW1lcmEgdHJhbnNmb3JtICYgYXJlIGdlbmVyYWxseSBsYXggYWJvdXQgeiopXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSBib3guaW50ZXJzZWN0KGNhbUJveCk7IC8vY2FyZWZ1bCBvZiBvcmRlcjsgaW50ZXJzZWN0KCkgbXV0YXRlc1xyXG4gICAgLy8oWFhYOiBzdHJpY3RseSBzcGVha2luZywgaWRlYWxseSBJIHdvdWxkIHRha2UgY2FtZXJhIG1hdHJpeFdvcmxkIGludG8gYWNjb3VudCBpZiBJIHdhbnQgdG8gYmUgcHJvcGVyKVxyXG4gICAgLy8obWlnaHQganVzdCBtYWtlIGxvZyBhIHdhcm5pbmcgaWYgaXQncyBzZXQgaG93IEkgZG9uJ3QgZXhwZWN0IGl0LCBidXQgcHJlZmVyIG5vdCB0byBsZWF2ZSB0cmFwcy4pXHJcbiAgICBcclxuICAgIC8vbG9vayBhdCBkaW1lbnNpb25zIG9mIGludGVyc2VjdGlvbiBhbmQgZm9yY2UgaW53YXJkcyBpZiBuZWNlc3NhcnkuLi5cclxuICAgIGNvbnN0IGludGVyc2VjdGlvblNpemUgPSBpbnRlcnNlY3Rpb24uZ2V0U2l6ZShzY3JhdGNoU2l6ZSk7XHJcbiAgICBjb25zdCBzY3JlZW5XID0gY2FtLnJpZ2h0IC0gY2FtLmxlZnQsIHNjcmVlbkggPSBjYW0udG9wIC0gY2FtLmJvdHRvbTtcclxuICAgIC8vd29yayBpbiB1bml0cyBhcyBmcmFjdGlvbiBvZiBib3ggd2lkdGggKGFsdGhvdWdoIHRoYXQncyBub3QgYSBncmVhdCBpZGVhIHdpdGggbXVsdGktY29sdW1uIGZvbGRlcnMpXHJcbiAgICBpbnRlcnNlY3Rpb25TaXplLnggLz0gYm94VzsgaW50ZXJzZWN0aW9uU2l6ZS55IC89IGJveFc7XHJcbiAgICBsZXQgbmVlZHNVcGRhdGUgPSBmYWxzZTtcclxuICAgIC8vY29uc29sZS5sb2coYCR7Zi5mb2xkZXJOYW1lfTogJHtKU09OLnN0cmluZ2lmeShpbnRlcnNlY3Rpb25TaXplKX0sIHRocmVzaDogJHt0aHJlc2h9YCk7XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS54IDwgdGhyZXNoKSB7IC8vVE9ETzogcGFyYW1hdGVyaXNlIC8gbm9uLW1hZ2ljLW51bWJlclxyXG4gICAgICAvL1RPRE8gd29yayBvdXQgd2hpY2ggc2lkZSB3ZSdyZSBvbiwgbW92ZSBieSBvYmplY3Qgd2lkdGguLi5cclxuICAgICAgZi5wb3NpdGlvbi54ID0gY2FtLmxlZnQgKyBzY3JlZW5XLzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnkgPCB0aHJlc2gpIHtcclxuICAgICAgZi5wb3NpdGlvbi55ID0gY2FtLmJvdHRvbSArIHNjcmVlbkgvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKG5lZWRzVXBkYXRlKSBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaXNDb2xsYXBzZWQgPSAoKSA9PiB7IHJldHVybiBzdGF0ZS5jb2xsYXBzZWQgfVxyXG4gIFxyXG4gIC8vdXNlZnVsIHRvIGhhdmUgYWNjZXNzIHRvIHRoaXMgYXMgd2VsbC4gVXNpbmcgaW4gcmVtb3ZlIGltcGxlbWVudGF0aW9uXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnZ3VpQ2hpbGRyZW4nLCB7XHJcbiAgICAvL3BlcmhhcHMgbW9kYWxFZGl0b3Igc2hvdWxkIGFsc28gY291bnQgYXMgYSBtZW1iZXIgb2YgdGhpcy4uLlxyXG4gICAgLy9jdXJyZW50bHkgY2FuJ3Qgc2VlIGFueXRoaW5nIGluIGltcGxlbWVudGF0aW9uIHRoYXQgd291bGQgcmVxdWlyZSB0aGF0XHJcbiAgICAvLy0tIGFkZGluZyBoZWFkZXJJdGVtcyB0aG91Z2gsIHNvIHRoZXknbGwgZ2V0IHBpY2tlZCB1cCBieSByZW1vdmUoKVxyXG4gICAgLy8gLSBtYXliZSBzYW1lIHNob3VsZCBhcHBseSB0byBtb2RhbEVkaXRvclxyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBbIC4uLmNvbGxhcHNlR3JvdXAuY2hpbGRyZW4sIC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIF0gfVxyXG4gIH0pO1xyXG4gIC8vIHJldHVybnMgdHJ1ZSBpZiBhbGwgb2YgdGhlIHN1cHBsaWVkIGFyZ3MgYXJlIG1lbWJlcnMgb2YgdGhpcyBmb2xkZXJcclxuICBncm91cC5oYXNDaGlsZCA9IGZ1bmN0aW9uICggLi4uYXJncyApe1xyXG4gICAgcmV0dXJuICFhcmdzLmluY2x1ZGVzKChvYmopID0+IHsgcmV0dXJuIGdyb3VwLmd1aUNoaWxkcmVuLmluZGV4T2Yob2JqKSA9PT0gLTF9KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmZvbGRlck5hbWUgPSBuYW1lOyAvL2ZvciBkZWJ1Z2dpbmdcclxuICBcclxuICAvLyAgWWVhaC4gR3Jvc3MuXHJcbiAgY29uc3QgYWRkT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkO1xyXG4gIC8vYXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyB0aGlzIHRvIGJlaGF2ZSBsaWtlIGEgcmVndWxhciBUSFJFRS5Hcm91cCwgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBvZiByZW1vdmUgc2hvdWxkbid0IGh1cnRcclxuICBjb25zdCByZW1vdmVPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmU7IFxyXG5cclxuICBmdW5jdGlvbiBhZGRJbXBsKCBvICl7XHJcbiAgICAvLyBJIGNvdWxkIGNoYW5nZSB0aGlzIGZ1bmN0aW9uIGFzIHBhcnQgb2YgYSByZWZhY3RvciB0byBwbGFjZSBldmVyeXRoaW5nIGF0IHRvcEZvbGRlciBsZXZlbC4uLlxyXG4gICAgLy8gaXMgdGhhdCBhIGdvb2QgaWRlYSwgb3IgYSBiYWQgaWRlYT9cclxuICAgIGFkZE9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHJlbW92ZUltcGwoIG8gKXtcclxuICAgIHJlbW92ZU9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG5cclxuICAvL2FkZEltcGwoIGNvbGxhcHNlR3JvdXAgKTsgLy9yZWR1bmRhbnQuXHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgYWRkSW1wbCggcGFuZWwgKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBuYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAxLjU7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsICk7XHJcblxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IExheW91dC5jcmVhdGVEb3duQXJyb3coKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCAweGZmZmZmZiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIDAuMDUsIDAsIGRlcHRoICAqIDEuMDEgKTtcclxuICBwYW5lbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuICBjb25zdCBncmFiYmVyID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9HUkFCX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBncmFiYmVyLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODY7IC8vWFhYOiBtYWdpYyBudW1iZXJcclxuICBncmFiYmVyLm5hbWUgPSAnZ3JhYmJlcic7XHJcbiAgYWRkSW1wbCggZ3JhYmJlciApO1xyXG5cclxuICBjb25zdCBncmFiQmFyID0gR3JhcGhpYy5ncmFiQmFyKCk7XHJcbiAgZ3JhYkJhci5wb3NpdGlvbi5zZXQoIHdpZHRoICogMC41LCAwLCBkZXB0aCAqIDEuMDAxICk7XHJcbiAgZ3JhYmJlci5hZGQoIGdyYWJCYXIgKTtcclxuICBncm91cC5pc0ZvbGRlciA9IHRydWU7XHJcbiAgZ3JvdXAuaGlkZUdyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gZmFsc2UgfTtcclxuICBncm91cC5zaG93R3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSB0cnVlIH07XHJcbiAgZ3JvdXAuaGlkZUhlYWRlciA9IGZ1bmN0aW9uKCkgeyBcclxuICAgIGdyb3VwLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAvL2Rlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgfTtcclxuICBncm91cC5zaG93SGVhZGVyID0gKCkgPT4ge1xyXG4gICAgLy9ncmFiYmVyLnZpc2libGUgPSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL1RPRE86IGludGVyZmFjZSBmb3IgYWRkaW5nIHRoaW5ncyB0byB0aGlzLi4uIE5PVCAnc2hvd0luRm9sZGVySGVhZGVyJyBtZXRob2QgLyBwcm9wZXJ0eSBvbiBsaW5lYXIgaXRlbXMuLi5cclxuICBjb25zdCBoZWFkZXJJdGVtcyA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHBhbmVsLmFkZChoZWFkZXJJdGVtcyk7XHJcbiAgLy90aGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byBtYWtlIG9iaiBiZWhhdmUgYXMgY29udHJvbGxlciBsYXllZCBvdXQgaW4gaGVhZGVySXRlbXMsXHJcbiAgLy9iYXNlZCBvbiBzb21lIGFzc3VtcHRpb25zIGFib3V0IG9iaiB0aGF0IG1heSBiZSB0cnVlIGF0IHRpbWUgb2Ygd3JpdGluZy4uLlxyXG4gIC8vYnV0IGFyZSBwZW5kaW5nIG1vcmUgcmlnb3JvdXMgc3BlY2lmaWNhdGlvbiAvIHJlZmFjdG9yaW5nIGV0Yy5cclxuICBncm91cC5hZGRIZWFkZXJJdGVtID0gZnVuY3Rpb24ob2JqKXtcclxuICAgIGhlYWRlckl0ZW1zLmFkZChvYmopO1xyXG4gICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgb2JqLmlzSGVhZGVyT2JqZWN0ID0gdHJ1ZTtcclxuXHJcbiAgICAvL2Fsc28gbmVlZCB0byBhZGQgdG8gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3QgZXRjLiBOQjo6IG1ha2Ugc3VyZSB0aGF0IHRoZXkgd2lsbCBnZXQgcmVtb3ZlZCBhcyB3ZWxsXHJcbiAgICAvLy0tLSB0aGlzIGdlbmVyaWMgaW50ZXJhY3Rpb24udXBkYXRlIGRvZXNuJ3QgbWFrZSBsaXN0ZW4oKSB3b3JrIHByb3Blcmx5LlxyXG4gICAgaWYgKCFvYmoudXBkYXRlQ29udHJvbCkgb2JqLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4gb2JqLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgb2JqLmhpdHNjYW4gPSBbIG9iaiBdOyAvL2hhY2t5IGhhY2t5XHJcbiAgICBnbG9iYWxDb250cm9sbGVycy5wdXNoKG9iaik7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogMHg4ODg4ODgsIHRyYW5zcGFyZW50OiB0cnVlfSk7XHJcbiAgY29uc3QgaCA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44O1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvblJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIGgsIGgsIExheW91dC5CVVRUT05fREVQVEgqMiApO1xyXG4gIC8vc29tZXdoYXQgYmFja3dhcmRzIHdheSBvZiBnZXR0aW5nIHRleHR1cmVzLi4uIFRPRE8gbWF5YmUgY2hhbmdlIChhbG9uZyB3aXRoIG90aGVyIHN0eWxlIGNvbnNpc3RlbmN5IHR5cGUgc3R1ZmYpXHJcbiAgY29uc3QgZG9ja1RleHR1cmUgPSBHcmFwaGljLmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgY29uc3QgdW5kb2NrVGV4dHVyZSA9IEdyYXBoaWMudW5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uID0gbmV3IFRIUkVFLk1lc2goICBkZXRhY2hCdXR0b25SZWN0LCBkZXRhY2hCdXR0b25NYXRlcmlhbCApO1xyXG4gIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gZmFsc2U7XHJcbiAgZGV0YWNoQnV0dG9uLnBvc2l0aW9uLnggPSBMYXlvdXQuRk9MREVSX1dJRFRIIC0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihkZXRhY2hCdXR0b24pO1xyXG4gIGRldGFjaEJ1dHRvbi5pbnRlcmFjdGlvbiA9IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uO1xyXG4gIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHtcclxuICAgICAgZ3JvdXAucmVhdHRhY2goKTtcclxuICAgIH0gZWxzZSBncm91cC5kZXRhY2goKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuICAvL2hlYWRlckl0ZW1zLmFkZChkZXRhY2hCdXR0b24pO1xyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0oZGV0YWNoQnV0dG9uKTtcclxuXHJcbiAgbGV0IGlzRGV0YWNoYWJsZSA9IGZhbHNlO1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdkZXRhY2hhYmxlJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0RldGFjaGFibGU7XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAobmV3VmFsdWUgPT09IGlzRGV0YWNoYWJsZSkgcmV0dXJuO1xyXG4gICAgICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgICBpc0RldGFjaGFibGUgPSBuZXdWYWx1ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGdyb3VwLmFkZCA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBjb25zdCBuZXdDb250cm9sbGVyID0gZ3VpQWRkKCAuLi5hcmdzICk7XHJcblxyXG4gICAgaWYoIG5ld0NvbnRyb2xsZXIgKXtcclxuICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggbmV3Q29udHJvbGxlciApO1xyXG4gICAgICByZXR1cm4gbmV3Q29udHJvbGxlcjtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgU29tZSBjb250cm9sbGVycyBtYXkgYnJpbmcgdXAgc3ViLUdVSXMgd2hpY2ggaGF2ZSB0aGUgcG90ZW50aWFsXHJcbiAgICB0byBvdmVybGFwIC8gY2xhc2guICBUaGlzIGVuc3VyZXMgb25seSBvbmUgaXMgcHJlc2VudCBhdCBhIHRpbWUuXHJcbiAgKi9cclxuICBncm91cC5zZXRNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKGUpe1xyXG4gICAgLy9UaGlzIGNvdWxkIGdvIHdyb25nIGlmIGZvbGRlciBoaWVyYXJjaHkgY2hhbmdlcyBzaWduaWZpY2FudGx5LlxyXG4gICAgLy9TaG91bGQgYmUgZ29vZCBlbm91Z2ggZm9yIHJvY2snbidyb2xsIChmYW1vdXMgbGFzdCB3b3JkcykuXHJcbiAgICAvL0kgY291bGQgbWFrZSBpdCBzbyB0aGF0IG9ubHkgb25lIG9mIHRoZXNlIHRoaW5ncyB3YXMgZXZlciB2aXNpYmxlXHJcbiAgICAvL2Fjcm9zcyB0aGUgZW50aXJlIHN5c3RlbS4gIFRoYXQgc2hvdWxkIGJlIGVhc2llciB0byBtYWtlIHJvYnVzdCwgYW55d2F5Li4uXHJcbiAgICAvL2FuZCBzYXZlcyBoZWFkYWNoZXMgZG93biB0aGUgbGluZS5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBlO1xyXG4gICAgaWYgKCFlKSByZXR1cm47XHJcbiAgICBlLnZpc2libGUgPSB0cnVlO1xyXG4gICAgaWYgKGUucGVyZm9ybUxheW91dCkgZS5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICBmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IHRydWU7XHJcbiAgICAvL2FkZCBhIGZsYWcgdG8gYWxsIGNoaWxkcmVuIHJlY3Vyc2l2ZWx5IHNvIHRoYXQgaW50ZXJhY3Rpb24gc3lzdGVtIGNhbiBpZGVudGlmeSB0aGVtIGFzIGJlbG9uZ2luZyB0byBhIG1vZGFsIGVkaXRvclxyXG4gICAgLy9UT0RPOiBza2lwIGlmIGFscmVhZHkgZG9uZS4uLlxyXG4gICAgZnVuY3Rpb24gZGVjb3JhdGVDaGlsZHJlbihwYXJlbnQpIHtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgYy51c2VyRGF0YS5wYXJ0T2ZNb2RhbCA9IGU7XHJcbiAgICAgICAgZGVjb3JhdGVDaGlsZHJlbihjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkZWNvcmF0ZUNoaWxkcmVuKGUpO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIGN1cnJlbnQgbW9kYWwgZWRpdG9yIGZyb20gdGhpcyBmb2xkZXJcclxuICAgKiAqKmJ1dCBub3QgaWYgaXQgd2FzIGFkZGVkIGR1cmluZyB0aGUgY3VycmVudCBjb250cm9sbGVyIHVwZGF0ZSxcclxuICAgKiBhcyBpbmRpY2F0ZWQgYnkgYSBmbGFnIHNldCBpbiBzZXRNb2RhbENvbnRyb2xsZXIgYW5kIHJlc2V0IGluIGluZGV4LmpzIHVwZGF0ZSoqXHJcbiAgICovXHJcbiAgZ3JvdXAuY2xlYXJNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKCFmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAvL2ZvbGRlci5zZXRNb2RhbEVkaXRvcihudWxsKTtcclxuICAgICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikge1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG5cclxuICAvKiBcclxuICBSZW1vdmVzIHRoZSBnaXZlbiBjb250cm9sbGVycyBmcm9tIHRoZSBHVUkuICA+Pj5PbmNlIHJlbW92ZWQsIHRoZSBjb250cm9sbGVycyB3aWxsIGVmZmVjdGl2ZWx5IGJlIGludmFsaWQgZm9yIHVzZTw8PFxyXG4gID4+PiBzbyBkaXNwb3NlIG9mIHRoZW0gYXMgd2VsbD8gTmVlZCB0byBiZSBjYXJlZnVsIGFib3V0IHRleHR1cmVzIC8gYW55dGhpbmcgc2hhcmVkLi4uIDw8PFxyXG4gIGFzIHRoZXkgd2lsbCBhbHNvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGRhdC5HVUlWUiBjb250cm9sbGVycy4gIFVzZSAnZGV0YWNoJyBpbnN0ZWFkIGlmIGl0IGlzXHJcbiAgZGVzaXJlZCB0byByZXVzZSBHVUkgZWxlbWVudHMgZWxzZXdoZXJlLlxyXG5cclxuICBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbnZhbGlkLCBpdCB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoaXMgYmVmb3JlIG1ha2luZyBhbnkgY2hhbmdlcywgXHJcbiAgYWJvcnRpbmcgdGhlIHByb2Nlc3MgYW5kIHJldHVybmluZyBmYWxzZSBmcm9tIHRoaXMgbWV0aG9kLlxyXG5cclxuICBOb3RlOiBhcyB3aXRoIGFkZCwgdGhpcyBvdmVyd3JpdGVzIGFuIGV4aXN0aW5nIHByb3BlcnR5IG9mIFRIUkVFLkdyb3VwLlxyXG4gIEFzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgZm9sZGVycyB0byBiZWhhdmUgbGlrZSByZWd1bGFyIFRIUkVFLkdyb3VwcywgdGhhdCBzaG91bGRuJ3QgbWF0dGVyLlxyXG4gICovXHJcbiAgZ3JvdXAucmVtb3ZlID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIC8vZ3VpUmVtb3ZlIGlzIHBhc3NlZCBpbiBmcm9tIGluZGV4LmpzIGFuZCBpcyByZXNwb25zaWJsZSBmb3Igc2FuaXR5IGNoZWNraW5nICYgcmVtb3ZpbmcgZnJvbSBnbG9iYWwgY29udHJvbGxlcnMgbGlzdFxyXG4gICAgY29uc3Qgb2sgPSBndWlSZW1vdmUoIC4uLmFyZ3MgKTsgLy8gYW55IGludmFsaWQgYXJndW1lbnRzIHNob3VsZCBjYXVzZSB0aGlzIHRvIHJldHVybiBmYWxzZSB3aXRoIG5vIHNpZGUtZWZmZWN0c1xyXG4gICAgaWYgKCFvaykgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGNvbnNvbGUuYXNzZXJ0KGdyb3VwLmhhc0NoaWxkKG9iaiksIFwiaW50ZXJuYWwgcHJvYmxlbSB3aXRoIGhvdXNla2VlcGluZyBsb2dpYyBvZiBkYXQuR1VJVlIgZm9sZGVyIG5vdCBjYXVnaHQgYnkgc2FuaXR5IGNoZWNrXCIpO1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgb2JqLnJlbW92ZSggLi4ub2JqLmd1aUNoaWxkcmVuICk7XHJcbiAgICAgIH1cclxuICAgICAgY29sbGFwc2VHcm91cC5yZW1vdmUob2JqKTtcclxuICAgIH0pO1xyXG4gICAgLy9UT0RPOiBkZWZlciBhY3R1YWwgbGF5b3V0IHBlcmZvcm1hbmNlOyBzZXQgYSBmbGFnIGFuZCBtYWtlIHN1cmUgaXQgZ2V0cyBkb25lIGJlZm9yZSBhbnkgcmVuZGVyaW5nIG9yIGhpdC10ZXN0aW5nIGhhcHBlbnMuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL3JhdGhlciB0aGFuIG1ldGhvZCwgZGV0YWNoZWRQYXJlbnQgYmUgYSBwcm9wZXJ0eSB0aGF0IGRvZXMgdGhpcyBzdHVmZiBpbiBzZXR0ZXIuLi5cclxuICAvL2FueXdheSwgYm90aCBhcmUgcmVhbGx5IG1lYW50IGZvciBpbnRlcm5hbCB1c2UsIGFzIGhpbnRlZCBieSBfIGluIG5hbWUuXHJcbiAgZ3JvdXAuX3NldERldGFjaGVkRnJvbSA9IChwYXJlbnQpID0+IHtcclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50ID0gcGFyZW50O1xyXG4gICAgaWYgKHBhcmVudCA9PT0gbnVsbCkge1xyXG4gICAgICBkZXRhY2hCdXR0b24ubWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IGRvY2tUZXh0dXJlO1xyXG4gICAgICBncm91cC5zaG93SGVhZGVyKCk7XHJcbiAgICAgIGdyb3VwLnNob3dHcmFiYmVyKCk7XHJcbiAgICAgIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBEZXRhY2ggYSBjaGlsZCBmb2xkZXIgZnJvbSB0aGlzIGZvbGRlciBoaWVyYXJjaHksIHN1Y2ggdGhhdCBpdCBjYW4gYmUgdXNlZCBlbHNld2hlcmUgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqIFxyXG4gICAqICh3aWxsIG5vdCBiZSB2aXNpYmxlIHVudGlsIGV4cGxpY2l0bHkgYWRkZWQgZWxzZXdoZXJlOyBcclxuICAgKiBjYWxsaW5nIGRldGFjaCgpIGluc3RlYWQgd2lsbCBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGFuZCBpcyBtb3JlIGludGVuZGVkIGZvciB1c2UgaW4gYXBwbGljYXRpb24gY29kZVxyXG4gICAqIHdoaWxlIHRoaXMgbWV0aG9kIGlzIG1vcmUgb2YgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLilcclxuICAgKi9cclxuICBncm91cC5kZXRhY2hDaGlsZCA9IChjaGlsZCkgPT4ge1xyXG4gICAgaWYgKCFjaGlsZC5pc0ZvbGRlciB8fCBjaGlsZC5mb2xkZXIgIT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjaGlsZC5fc2V0RGV0YWNoZWRGcm9tKGdyb3VwKTtcclxuICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKGNoaWxkKTtcclxuICAgIC8vVEhSRUUuT2JqZWN0M0QucHJvdG90eXBlLnJlbW92ZS5jYWxsKGdyb3VwLCBjaGlsZCk7XHJcbiAgICByZW1vdmVJbXBsKGNoaWxkKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDsgLy9vciBjaGlsZD9cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgRGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gaXRzIHBhcmVudCwgYW5kIHJlYXR0YWNoIHRvIHNjZW5lZ3JhcGggYXMgYSBzaWJsaW5nIG9mIHRoZSAndG9wIGxldmVsJyBmb2xkZXIgaW5cclxuICAgIHRoZSBoaWVyYXJjaHkgdGhpcyBwcmV2aW91c2x5IHdhcyBhIG1lbWJlciBvZi5cclxuICAqL1xyXG4gIGdyb3VwLmRldGFjaCA9ICgpID0+IHtcclxuICAgIGlmIChncm91cC5mb2xkZXIgPT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL2F1dG9tYXRpY2FsbHkgYWRkIHRvIFRIUkVFIHBhcmVudCBvZiB0b3AgbGV2ZWwgZm9sZGVyIGFuZCB0cnkgdG8gc2V0IGFwcHJvcHJpYXRlIHNjYWxlIC8gdHJhbnNmb3JtLi4uXHJcbiAgICAvL2lmIHRoYXQgZm9sZGVyIGJlaW5nTW92ZWQgYXQgdGhlIHByZXNlbnQgdGltZSwgdGhlbiBpdCB3aWxsIGhhdmUgYW4gb2xkUGFyZW50IHRvIHdoaWNoIHdlIHNob3VsZCBhdHRhY2ggaW5zdGVhZC5cclxuICAgIC8vLi4uYWx0aG91Z2ggaXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0aGUgZGV0YWNoZWQgZm9sZGVyIHRvIG1vdmUgd2l0aCB0aGUgY29udHJvbGxlciB1bnRpbCBidXR0b24gaXMgcmVsZWFzZWQuLi5cclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGdyb3VwLmZvbGRlci5kZXRhY2hDaGlsZChncm91cCk7XHJcbiAgICBcclxuICAgIC8vYWRkaW5nIHRvIHRvcEZvbGRlci5wYXJlbnQgSUYgQVZBSUxBQkxFLCBub3Qgb2xkUGFyZW50LCBwZW5kaW5nIHdvcmtpbmcgb3V0IHRyYW5zZm9ybSBsYXRlciBpZiBiZWluZ01vdmVkLi4uXHJcbiAgICBjb25zdCBwYXIgPSB0b3BGb2xkZXIucGFyZW50IHx8IGdyb3VwLnBhcmVudDsgXHJcbiAgICBpZiAoIXBhcikgcmV0dXJuOyAvL1NKUFQgY2hhbmdlIGZyb20gQ1N5bnRoLCBub3QgY2FyZWZ1bGx5IHJldmlld2VkIGJ1dCBwcm9iYWJseSByaWdodC5cclxuICAgIHBhci5hZGQoZ3JvdXApO1xyXG4gICAgY29uc3QgbSA9IHRvcEZvbGRlci5tYXRyaXguY2xvbmUoKTtcclxuXHJcbiAgICBncm91cC5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBtLnNldFBvc2l0aW9uKG5ldyBUSFJFRS5WZWN0b3IzKCkpO1xyXG4gICAgY29uc3QgdCA9IG5ldyBUSFJFRS5WZWN0b3IzKExheW91dC5GT0xERVJfV0lEVEgsIDAsIDApLmFwcGx5TWF0cml4NChtKTtcclxuICAgIGdyb3VwLnBvc2l0aW9uLmFkZCh0KTtcclxuICAgIFxyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vZGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gdG9wRm9sZGVyLnBhcmVudCB0aGVuIGF0dGFjaCB0byB0b3BGb2xkZXIub2xkUGFyZW50IHdoaWxlIG1haW50YWluaW5nIG1hdHJpeFdvcmxkXHJcbiAgICAgIC8vLi4uYWN0dWFsbHksIChtYXliZSkgd2Ugd2FudCB0byBkbyB0aGlzIHNjZW5lU2hpZnQgYnVzaW5lc3Mgd2hlbiBiZWluZ01vdmVkIGZpbmlzaGVzLi4uXHJcbiAgICAgIC8vIHB1dCB0aGluZ3MgaW50byBzZW1pRGV0YWNoZWQsIHNvIHRoYXQgd2hlbiBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgdGhleSBjYW4gYmUgc2hpZnRlZC5cclxuICAgICAgLy9vciBtYXliZSB3aGF0IHdlIHJlYWxseSB3YW50IGlzIHRvIGhhdmUgYW4gb3B0aW9uIHRvICdwaW4nIHBhbmVscyB0b2dldGhlciBhbmQgdW5waW4gdGhlbSwgcmF0aGVyIHRoYW4gYXNzdW1lXHJcbiAgICAgIC8vYXR0YWNobWVudCBjaGFuZ2VzIHdoZW4gYnV0dG9uIHJlbGVhc2VkLiAgRm9yIG5vdywgdGhpcyBpcyBub3QgcXVpdGUgd29ya2luZyByaWdodCwgc28uLi5cclxuICAgICAgY29uc3QgZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vd2UgY291bGQganVzdCBkZXRhY2gsIGxlYXZpbmcgdGhlIG9iamVjdCBhcyBkaXJlY3QgZGVzY2VuZGVudCBvZiBzY2VuZSwgYnV0IHRoZXJlIG1heSBiZSByZWFsIHJlYXNvbnMgdG8gc2l0dWF0ZVxyXG4gICAgICAvL3RoZSBHVUkgd2l0aGluIGhpZXJhcmNoeSBzb21laG93IChsaWtlIGFzIGNoaWxkcmVuIG9mIGEgY29udHJvbGxlcilcclxuICAgICAgXHJcbiAgICAgIGlmIChkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZykge1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLm9sZFBhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7Ly9YWFg6IGhhY2sgYmVjYXVzZSB0b3BGb2xkZXIub2xkUGFyZW50IHdhcyBiZWluZyB1bmRlZmluZWQgYmVmb3JlIGJlaW5nTW92ZWQgPSBmYWxzZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkID0gZ3JvdXA7XHJcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gdG9wRm9sZGVyLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgXHJcbiAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBcclxuICAgIGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gdG9wRm9sZGVyLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljOyAvL1RPRE86IHJldmlzZSBob3cgdG8gcGFzcyB0aGlzIGluZm9cclxuICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKDAuNSk7XHJcbiAgICBncm91cC5vcGVuKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgLy9hbGEgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNleGFtcGxlcy91dGlscy9TY2VuZVV0aWxzXHJcbiAgZnVuY3Rpb24gc2NlbmVEZXRhY2goY2hpbGQsIHBhcmVudCwgc2NlbmUpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KHBhcmVudC5tYXRyaXhXb3JsZCk7XHJcbiAgICBwYXJlbnQucmVtb3ZlKGNoaWxkKTtcclxuICAgIHNjZW5lLmFkZChjaGlsZClcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBwYXJlbnQpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLmdldEludmVyc2UocGFyZW50Lm1hdHJpeFdvcmxkKSApO1xyXG5cdFx0c2NlbmUucmVtb3ZlKGNoaWxkKTtcclxuXHRcdHBhcmVudC5hZGQoY2hpbGQpOyAgIFxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCkge1xyXG4gICAgbGV0IG5vZGUgPSBvbGRQYXJlbnQ7XHJcbiAgICB3aGlsZSAobm9kZS5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIGNvbnN0IHNjZW5lID0gbm9kZTtcclxuICAgIFxyXG4gICAgc2NlbmVEZXRhY2goY2hpbGQsIG9sZFBhcmVudCwgc2NlbmUpO1xyXG4gICAgc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBuZXdQYXJlbnQpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZGV0YWNoRnJvbVBhcmVudCA9IGdyb3VwLmRldGFjaDtcclxuICBcclxuICBncm91cC5yZWF0dGFjaCA9ICgpID0+IHtcclxuICAgIGlmICghZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0IHdpdGggdmFyaW91cyBjb21iaW5hdGlvbnMgb2Ygd3JhcHBpbmcgZXRjLlxyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQuYWRkRm9sZGVyKGdyb3VwKTsgLy8gdGhpcyB3aWxsIGFsc28gZGVhbCB3aXRoIGNvc21ldGljcyAoaGlkZUdyYWJiZXIgZXRjKVxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpO1xyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vbWF5YmUgd2UgY291bGQgZG8gdGhpcyBraW5kIG9mIHN0dWZmIGluIF9zZXREZXRhY2hlZEZyb21cclxuICAgICAgLy9pbiBhbnkgY2FzZSwgaXQncyBpcnJlbGV2YW50IGlmIFxyXG4gICAgICBsZXQgc2VtaXMgPSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHNlbWlzLmluZGV4T2YoZ3JvdXApO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgLy9ncm91cC5kZXRhY2hlZFBhcmVudCA9IG51bGw7XHJcbiAgICBncm91cC5fc2V0RGV0YWNoZWRGcm9tKG51bGwpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBncm91cC5hZGRDb250cm9sbGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgZ3JvdXAuYWRkRm9sZGVyKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgfVxyXG4gICAgICAvL1hYWDogaGFja2luZyBpbiBzb21lIHVuaXZlcnNhbCB0b29sdGlwIHN1cHBvcnRcclxuICAgICAgaWYgKG9iai5zZXRUb29sVGlwKSByZXR1cm47IC8vYnV0IG5vdCBpZiBhIG1vcmUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gYWxyZWFkeSBleGlzdHMgKHNlZSBkcm9wZG93bi4uLilcclxuICAgICAgb2JqLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAgICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAgICAgY29uc3QgdGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IHRpcE9iajtcclxuICAgICAgICAvL2Fzc29jaWF0ZSBldmVudCB3aXRoIGhvdmVyIG9uIGFwcHJvcHJpYXRlIGhpdHNjYW4uLi5cclxuXHJcbiAgICAgICAgaWYgKG9iai5pbnRlcmFjdGlvbikge1xyXG4gICAgICAgICAgLy9UT0RPOiBldmVudHMub2ZmKCkgaWYgcmVwbGFjaW5nIG9sZCB0b29sdGlwIChvciBub3QgcmVwZWF0aW5nIG9uKCkpLlxyXG4gICAgICAgICAgb2JqLmludGVyYWN0aW9uLmV2ZW50cy5vbigndGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgLy9kb24ndCBqdXN0IHNldCB2aXNpYmlsaXR5OyBhZGQvcmVtb3ZlIGFzIHRoZXNlIGFyZSBraWxsaW5nIGZyYW1lcmF0ZSBpbiBsYXJnZSBWUiBndWlzLlxyXG4gICAgICAgICAgICAvL1JFVklFVy4uLiBjb25zaWRlcmluZyBtYWtpbmcgdG9vbHRpcHMgd29yayB3aGVuIGhvdmVyaW5nIG9uIGxhYmVsIGFzIHdlbGwsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBvZiBjb3Vyc2UgdGhpcyB3b3VsZCBtZWFuIGNoYW5naW5nIG1vcmUgYWJvdXQgdGhlIGludGVyYWN0aW9uIHNldHVwLFxyXG4gICAgICAgICAgICAvLyBhbmQgaGF2aW5nIG1vcmUgb2JqZWN0cyB0byB0ZXN0IGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgICAgICAgICAgLy8gTGVhdmluZyBmb3Igbm93LCBpZiB3b3JraW5nIG1vcmUgb24gdGhlIGxpYnJhcnksIGhvcGVmdWxseSBmaXggaG92ZXIgZXZlbnQgZXRjLlxyXG4gICAgICAgICAgICBpZiAob2JqLnZpc2libGUpIHNldFZpc2liaWxpdHkob2JqLCB0aXBPYmosIG9iai5pbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBjYW4ndCBjcmVhdGUgdG9vbHRpcCBmb3IgJHtvYmouZ3VpVHlwZX0gYmVjYXVzZSB0aGVyZSdzIG5vIG9iai5pbnRlcmFjdGlvbiBwcm9wZXJ0eS4uLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgb2JqLmdldFRvb2xUaXAgPSAoKSA9PiBvYmoudXNlckRhdGEudGlwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmFkZEZvbGRlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uIChvYmopIHtcclxuICAgICAgLy9UT0RPIGlmIG9iaiBpcyBzdHJpbmcsIG1ha2UgYSBuZXcgZ3VpIGFuZCBhZGQgLyByZXR1cm4gaXQuLi4gYnV0IHdoYXQgYWJvdXQgdmFyYXJncz9cclxuICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIG9iai5tYXRyaXguaWRlbnRpdHkoKTtcclxuICAgICAgb2JqLnNjYWxlLnNldCgxLDEsMSk7XHJcbiAgICAgIG9iai5wb3NpdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBvYmoucm90YXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgXHJcbiAgICAgIG9iai5oaWRlR3JhYmJlcigpO1xyXG4gICAgICBvYmouY2xvc2UoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5wcm9tb3RlWk9yZGVyID0gKCkgPT4ge1xyXG4gICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXAgfHwgIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkbid0IGJlIGEgJ3B1YmxpYyBtZXRob2QnIChidXQgbWF5YmUgdGhlcmUgc2hvdWxkIGJlIGEgd2VsbC1kZWZpbmVkIHB1YmxpYyBpbnRlcmZhY2UpLlxyXG4gICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiBpbmNvbnNpc3RlbmN5IGluIGZvbGRlciBob3VzZWtlZXBpbmdgKTtcclxuICAgIH1cclxuICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBwcm9tb3RpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgLy90aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBvYmplY3QgeiBiZWluZyBkaWZmZXJlbnQgZnJvbSB3aGVuIG1vdXNlSW50ZXJzZWN0aW9uIGhpdCBpdCBlYXJsaWVyIGluIHVwZGF0ZS5cclxuICAgIC8vbW91c2VJbnRlcnNlY3Rpb24gd2lsbCB0aGVuIGxhdGVyIGJlIHVzZWQgaW4gaGFuZGxlVGljayBvZiBncmFiIGludGVyYWN0aW9uLCB0byBmdXJ0aGVyIG11dGF0ZSBwb3NpdGlvblxyXG4gICAgLy9zZWVtcyBvayB0aG91Z2ggKGFzIG9mIDA0LzEyLzE4KVxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICAvL2dyb3VwLnVzZXJEYXRhLm9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCA9ICBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQ7XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1MYXlvdXQoKXtcclxuICAgIHBlcmZvcm1IZWFkZXJMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgY29uc3Qgd3JhcE5lc3RlZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICAvL3N0YXJ0aW5nIHdob2xlIG5ldyBsYXlvdXQgb2YgdG9wRm9sZGVyP1xyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgaWYgKHRvcEZvbGRlci5tb2RhbEVkaXRvciAmJiB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCkgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgXHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gLXRvcEZvbGRlci5wb3NpdGlvbi55O1xyXG4gICAgICAvL0kgY291bGQgdW5kZWZpbmUgdGhlc2UgYXQgdGhlIGVuZCwgYnV0IHRoZXJlJ3Mgbm8gcG9pbnQuXHJcblxyXG4gICAgICBpZiAoIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYGFkZGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2tlZXAgY291bnRpbmcgY29sdW1uSGVpZ2h0IChjdXJyZW50IHkpICYgaW5kZXggZnJvbSBwYXJlbnQgZm9sZGVyLlxyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9UT0RPOiBtYWtlIHN1cmUgdG8gdGVzdCB3aXRoIGRlZXAgbmVzdGluZy5cclxuICAgICAgXHJcbiAgICAgIGlmICh0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHJlbW92aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBjb25zdCBzcGFjaW5nUGVyQ29udHJvbGxlciA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIGNvbnN0IGVtcHR5Rm9sZGVyU3BhY2UgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgdmFyIHRvdGFsU3BhY2luZyA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYykgPT4geyBjLnZpc2libGUgPSAhc3RhdGUuY29sbGFwc2VkIH0gKTtcclxuICAgIC8vY2hpbGRyZW4gc2hvdWxkIGJlIG9yZGVyZWQgYnkgZ3VpSW5kZXguXHJcbiAgICAvL2lmIHRoZXkgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSwgaXQgY2FuIGJlIGFkZGVkIGhlcmU6XHJcbiAgICAvL3RoaXMgc2hvdWxkIGJlIHRoZSBvbmx5IHBsYWNlIHRoYXQgd2UgbmVlZCB0byBjb25zaWRlciB0aGF0IHByb3BlcnR5XHJcbiAgICAvL2l0IGFsbG93cyBmb3IgZGV0YWNoaW5nIGVsZW1lbnRzIGFuZCByZWF0dGFjaGluZyBpbiBzaW1pbGFyIHBsYWNlLCBldmVuIGlmIHNvbWUgc2libGluZ3MgYXJlIGFsc28gZGV0YWNoZWQuXHJcbiAgICBsZXQgbGFzdEd1aUluZGV4ID0gMDtcclxuICAgIC8vdHJ5IHRvIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgdGhhdCBjbGllbnQgcHJvZ3JhbSBtYXkgYXR0ZW1wdCB0byByZXN0b3JlIGl0ZW1zIFxyXG4gICAgLy9yZW1lbWJlcmluZyBkZXRhY2hlZFBhcmVudCBidXQgbm90IGd1aUluZGV4PyBOb2lzZS4uLlxyXG4gICAgLy9jb25zdCBkZXRhY2hlZENoaWxkcmVuID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKGYgPT4gZi5kZXRhY2hlZFBhcmVudCA9PT0gdGhpcyk7XHJcbiAgICAvL2NvbGxhcHNlR3JvdXAuY2hpbGRyZW4uY29uY2F0KGRldGFjaGVkQ2hpbGRyZW4pLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKGMuZ3VpSW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGMuZ3VpSW5kZXggPSBsYXN0R3VpSW5kZXgrPTE7XHJcbiAgICAgIH0gZWxzZSBsYXN0R3VpSW5kZXggPSBjLmd1aUluZGV4O1xyXG4gICAgfSk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLnNvcnQoKGEsIGIpID0+IHsgcmV0dXJuIGEuZ3VpSW5kZXggLSBiLmd1aUluZGV4IH0pO1xyXG5cclxuICAgIGlmICggc3RhdGUuY29sbGFwc2VkICkge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IE1hdGguUEkgKiAwLjU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IDA7XHJcblxyXG4gICAgICB2YXIgeSA9IDAsIGxhc3RIZWlnaHQgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCBmdW5jdGlvbiggY2hpbGQsIGluZGV4ICl7XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICBjaGlsZC51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZiAtIHk7IC8vZXhjZXB0ICd5JyB3aWxsIGJlIHdyb25nLi4uXHJcbiAgICAgICAgICBjaGlsZC5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggIXdyYXBOZXN0ZWQgKSB7XHJcbiAgICAgICAgICAvL09yaWdpbmFsIGxheW91dCBhbGdvcml0aG1cclxuICAgICAgICAgIHZhciBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIC8vIGhvdyBmYXIgdG8gZ2V0IGZyb20gdGhlIG1pZGRsZSBvZiBwcmV2aW91cyB0byBtaWRkbGUgb2YgdGhpcyBjaGlsZD9cclxuICAgICAgICAgIC8vIGhhbGYgb2YgdGhlIGhlaWdodCBvZiBwcmV2aW91cyBwbHVzIGhhbGYgaGVpZ2h0IG9mIHRoaXMuXHJcbiAgICAgICAgICAvLyBpZiB3ZSd2ZSB3cmFwcGVkIHRvIGEgbmV3IGNvbHVtbiByZWNlbnRseSwgaG93IGlzIHRoaXMgYWZmZWN0ZWQ/XHJcbiAgICAgICAgICAvLyBzcGFjaW5nIHByb3BlcnR5IHNob3VsZCB0aGVuIGJlIHNwYWNpbmcgKndpdGhpbiBjdXJyZW50IGNvbHVtbiosIHNvIHRoZSB3YXkgd2UgdHJhY2sgdG90YWxTcGFjaW5nIHNob3VsZCByZWZsZWN0IHRoYXQuXHJcbiAgICAgICAgICB2YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgaWYgKGluZGV4IDwgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pXHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gIFxyXG4gICAgICAgICAgaWYgKChpbmRleCsxKSAlIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID09PSAwKSB5ID0gMDtcclxuICBcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vbmV3IGxheW91dCBhbGdvcml0aG0gV0lQLCBzaG91bGQgYWxsb3cgZm9yIG5lc3RlZCBmb2xkZXJzIHRvIHdyYXAgdG8gdGhlIHRvcCBvZiBhIG5ldyBjb2x1bW4sIHdpdGggYWxsIGZvbGRlcnNcclxuICAgICAgICAgIC8vaW4gaGllcmFyY2h5IHVzaW5nIHNhbWUgY29sdW1uIGxheW91dFxyXG4gICAgICAgICAgY29uc3QgbWF4Q29sSGVpZ2h0ID0gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gKiBzcGFjaW5nUGVyQ29udHJvbGxlcjsgLy9NQVhfRk9MREVSX0lURU1TIGlzIHNsaWdodCBtaXNub21lclxyXG4gICAgICAgICAgY29uc3QgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBjb25zdCBjaGlsZERpZFdyYXAgPSBjaGlsZC5pc0ZvbGRlciAmJiBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL21vdmUgdG8gYSBuZXcgY29sdW1uP1xyXG4gICAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA+IG1heENvbEhlaWdodCkge1xyXG4gICAgICAgICAgICAvL1RPRE86IG1heWJlIGFkZCBhbiBleHRyYSBoZWFkZXIgdGhpbmcgdG8gYWxsb3cgZm9sZGluZyBuZXN0ZWQgZm9sZGVyP1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCsrOyBcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gaDtcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nID0gMDsgLy9oIHdpbGwgYmUgYWRkZWQgbGF0ZXJcclxuICAgICAgICAgICAgbGFzdEhlaWdodCA9IDA7IC8vPz8/PyB3aGF0IHNob3VsZCB0aGlzIGJlPyAgT3JpZ2luYWwgYWxnb3JpdGhtIGl0J3MgJ2VtcHR5Rm9sZGVyU3BhY2UnXHJcbiAgICAgICAgICAgIC8vY2hlY2sgbG9naWMgb2YgdGhpcyBXUlQgZGVlcGVyIG5lc3RpbmcgKHNob3VsZCBiZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0b3BGb2xkZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlIHBhcmVudClcclxuICAgICAgICAgICAgLy93aGF0IEkgc2hvdWxkIGRvIGlzIHVzZSBhY2N1bW11bGF0aW9uIG9mIGFsbCBmb2xkZXIgbGV2ZWxzICsgb25lIHBhcmVudCBhYm92ZS5cclxuICAgICAgICAgICAgLy95ID0gLWdyb3VwLnBvc2l0aW9uLnk7XHJcbiAgICAgICAgICAgIHkgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ICs9IGg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy92YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgICAgICAgICBsZXQgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcblxyXG5cclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC4uLi5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgLy9YWFg6IHRoaXMgbG9naWMgZG9lc24ndCB3b3JrIGZvciBjb2x1bW4gd3JhcHBpbmcsIChiZWNhdXNlIG9mIGhvdyBzcGFjaW5nIGlzIGNvbXB1dGVkIGFib3ZlPylcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG5cclxuICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL25iIGZvciBuZXN0ZWQsIGNvbnNpZGVyIGRpZmZlcmVuY2UgYmV0d2VlbiBncm91cCAmIHBhcmVudFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy9pZiAoY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCkgbGFzdEhlaWdodCA9IDA7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2hpbGQudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gdG90YWxTcGFjaW5nO1xyXG4gICAgXHJcbiAgICAvLyBpZiB3ZSdyZSBhIHN1YmZvbGRlciwgdXNlIGEgc21hbGxlciBwYW5lbFxyXG4gICAgbGV0IHBhbmVsV2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXApIHtcclxuICAgICAgcGFuZWxXaWR0aCA9IExheW91dC5TVUJGT0xERVJfV0lEVEg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIExheW91dC5yZXNpemVQYW5lbChwYW5lbCwgcGFuZWxXaWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoKTtcclxuXHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtSGVhZGVyTGF5b3V0KCkge1xyXG4gICAgbGV0IGR4ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICBsZXQgeCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBoZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGlmICghYy52aXNpYmxlKSByZXR1cm47XHJcbiAgICAgIHggLT0gZHggKiAwLjg7XHJcbiAgICAgIGMucG9zaXRpb24ueCA9IHg7XHJcbiAgICAgIHggLT0gZHggKiAwLjM7IC8vVE9ETzogZGVoYWNraWZ5XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZ3JhYkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9UT0RPOiBtb3JlIGNvbnNpc3RlbnQgaG92ZXIgc3R5bGluZ1xyXG4gICAgaWYgKCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ob3ZlcmluZygpICkge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4ODg4ODg4ICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSBncm91cC5vcGVuKCk7XHJcbiAgICBlbHNlIGdyb3VwLmNsb3NlKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcblxyXG4gIGdyb3VwLm9wZW4gPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICghc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCAmJiBncm91cC5mb2xkZXIuYWNjb3JkaW9uKSB7XHJcbiAgICAgIGdyb3VwLmZvbGRlci5ndWlDaGlsZHJlbi5maWx0ZXIoYz0+Yy5pc0ZvbGRlciAmJiBjICE9PSBncm91cCkuZm9yRWFjaChjPT5jLmNsb3NlKCkpO1xyXG4gICAgfVxyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICBhZGRJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmNsb3NlID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSB0cnVlO1xyXG4gICAgcmVtb3ZlSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsOiBncmFiYmVyIH0gKTtcclxuICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAvL25iOiBpZiB0aGUgY29udHJvbCBpcyBub3QgdmlzaWJsZSAvIGFjdGl2ZSwgdGhlbiBpdCB3b24ndCBpbnRlcmZlcmUuLi4gICAgXHJcbiAgICAvL2J1dCBcImlmICghaXNEZXRhY2hhYmxlKVwiIGhlcmUgY2F1c2VzIHByb2JsZW1zLlxyXG4gICAgXHJcbiAgICAvL2hlYWRlckl0ZW1zIHNob3VsZCBub3cgaGF2ZSB0aGVpciBvd24gdXBkYXRlQ29udHJvbCBhbmQgYmUgaW4gZ2xvYmFsQ29udHJvbGxlcnMgbGlzdFxyXG4gICAgLy9oZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKG8gPT4gby5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKSk7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgLy8nZ3JhYlJlbGVhc2VkJyBpcyBlbWl0dGVkIG9uIGlucHV0LmV2ZW50cy4uLiB1c2VkIGZvciBvcnRobyBtb3VzZSBmaXhGb2xkZXJQb3NpdGlvblxyXG4gIFxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBfYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG4gIC8vZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwsIGdyYWJiZXIsIGRldGFjaEJ1dHRvbiBdO1xyXG4gIFxyXG4gIC8vLy8vRVhQRVJJTUVOVEFMIEZFQVRVUkUsIENVUlJFTlRMWSBIQVJEQ09ERUQgTk9UIFRPIEhBUFBFTlxyXG4gIC8vc3ViLWZvbGRlcnMgdGhhdCBhcmUgZGV0YWNoZWQgd2hpbGUgbW92aW5nIHJlbWFpbiBhdHRhY2hlZCB0byBwYXJlbnQgb2JqZWN0ICh0aGUgY29udHJvbGxlciB0aGF0J3MgbW92aW5nIHRoZW0pXHJcbiAgLy8mIGtlcHQgaW4gc2VtaURldGFjaGVkIHVudGlsIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCBhdCB3aGljaCBwb2ludCB0aGV5IHNoaWZ0IGF0dGFjaG1lbnQgdG8gb2xkUGFyZW50XHJcbiAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGdyb3VwLCB7XHJcbiAgICBoaXRzY2FuOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIC8vZG9uJ3QgbmVlZCB0byBmaWx0ZXIgdmlzaWJsZSBoZXJlLCB0aGlzJ2xsIGJlIGRvbmUgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKClcclxuICAgICAgICAvLyhpbXBsZW1lbnRhdGlvbiBub3RlIDMxLzcvMTk7IC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIGhlcmUgYmVpbmcgcmVtb3ZlZCBhcyBlYWNoIGhlYWRlckl0ZW1cclxuICAgICAgICAvL3Nob3VsZCBub3cgYmUgY2xvc2VyIHRvICdmdWxseSBmbGVkZ2VkJyBjb250cm9sbGVyKVxyXG4gICAgICAgIGxldCBoaXRzID0gWyBwYW5lbCwgZ3JhYmJlciBdO1xyXG4gICAgICAgIGlmIChncm91cC5tb2RhbEVkaXRvcikgaGl0cyA9IGhpdHMuY29uY2F0KC4uLmdyb3VwLm1vZGFsRWRpdG9yLmhpdHNjYW4pO1xyXG4gICAgICAgIHJldHVybiBoaXRzO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYmVpbmdNb3ZlZDoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gX2JlaW5nTW92ZWQ7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldDogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgX2JlaW5nTW92ZWQgPSB2YWx1ZTtcclxuICAgICAgICBpZiAoIV9iZWluZ01vdmVkKSB7XHJcbiAgICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSBncm91cC5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBncm91cC51c2VyRGF0YS5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICAgICAgICAgIC8vYXNzZXJ0aW9uLi4uIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAoYW5kIGRvZXNuJ3QgQUZBSUNUKS5cclxuICAgICAgICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSG91c2VrZWVwaW5nIHByb2JsZW0gaW4gZGF0LkdVSVZSLi4uXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQuZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIC8vYXMgd2VsbCBhcyB0aGlzIGN1cnJlbnRseSBlbmRpbmcgdXAgd2l0aCB3cm9uZyB0cmFuc2Zvcm0sIEkgYWxzbyBoYXZlIHdyb25nIHRyYW5zZm9ybSBpZiBJIGRyYWcgZm9sZGVyIHdoaWxlIHNlbWlEZWF0Y2hlZC4uLlxyXG4gICAgICAgICAgICAvLyoqYWx0aG91Z2ggaW4gdGhhdCBjYXNlLCBpdCBzaGlmdHMgYmFjayB0byB3aGVyZSBpdCBzaG91bGQgYmUgd2hlbiBidXR0b24gaXMgcmVsZWFzZWQqKlxyXG4gICAgICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZm9yIChsZXQgayBpbiBhZGRDb250cm9sbGVyRnVuY3MpIHtcclxuICAgIGdyb3VwW2tdID0gKC4uLmFyZ3MpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbGxlciA9IGFkZENvbnRyb2xsZXJGdW5jc1trXSguLi5hcmdzKTtcclxuICAgICAgaWYgKCBjb250cm9sbGVyICl7XHJcbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggY29udHJvbGxlciApO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sbGVyO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2UoKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBRUFDQU1BQUFEeVRqNVZBQUFBalZCTVZFVkhjRXovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8rdW1BYzdBQUFBTDNSU1RsTUFXbkpmYm5xRFdHUjRhMlpjWW5CUmFsUkxnSDZFVG5SOFVHaDJSb1pEWGxhSFNZbzhRSFUyTHlZY0ZBd0ZtbVVSMU9JQUFKRmhTVVJCVkhoZXRMMkpXbXU3ampVS0lRa2tRTHFadmdNQ1pPMnpULzMzL1IvdlNrTkRrajJUck9hclZkNVY2eERQM3BKbFdkS1E3cWFQYjYrdnJ3OHZqK1BaL3Z2cnh6Ly8vUGo2M3MvRzcvY1AybjAvWFo2T3A2WDhmSkhmYUcvM2o5cTVYL0xLdC90M3YvUWZ1ZlFrL1hvdWJvbHovRHE1TEg3eTFuTFZsOXhlSDRiMjhqaWRuY1p5L1pNMFArV2ZmLzd6bi8vOCsrOS8vc0c1VXp0YXYzSDFpbkpJWGtsZThRdm4zK09ST1Ayb2o1T1BtejdldittNVBEREZ5WGFuL1V3ZXdCZDgxMjRaRG4ybzNlVEJCbUNLQXpaUWZqWTc1V1gvL1krL0tqNkxuNzcvL3VGM3IyNHZIeWZQNWFlOWNSUnNhSDVJLzQ4dmVRcVA1S2g5WDl6ODZ3dm4rd2poWmZtWWpUem15QmZsU09CejVWMWxYTzhlSDU0bXc4bnpLOGRUSHNuUGVwYnVwd2Z0MVZ1K1BzbHZhWlB0czczRmFXeFhicC9pVWp4L0k5U1VjM0hMcVoyRGhudFZQMEVSZk43OXE5MTgrL1QydUZsTzhldzhCVytxdzRSejVSWmJPVHA1ZnNKaitkVHFGWi9sbFRBcXVMYytFbThqQS80ZEEvUzg5Yzk1a2hFaDhaVFltOGUzcCswUVY5eFA1ZjVmUWpVOFZMdWVKM2l0ZTlDVDlMZXpuNUlEK0twOHRCM0VtT2ZkZWZzbDU4MFBZMVdNRGthQk5GWHFINVZqZVNTRzVIalJkVHpxK2VBTWpQK0VMOHZIeUNTekZ6VzZMRTk2UHJqdjd1VnBNdXAwdWx1TXA3SXB1V1hiN1hRNnd5Y1p0dGtVYjkzdG9JMjY5ckhMS2E4Y2JwMFVuTTJ2VHhNOXQvdjg4SWh6ZU4zazZTVi80dGJ5WnNlOWZkNFFmZDJKdk83bThlRzVXNTd5RFJiQXJNSzV1RHZlR0NUOVFiN0lWK3phR003Mnh4UHVQY0xwU3M4ajU5bnpwQnVmTTN4MjRuSGF2dG9EaG5JUDZTWFY4TjY0YURRa1BUbFJ0bmIyczk5RTM5UmZkUmlmcnJ3a25idzdiby9KaFhsTHdlbFBtY2lUeDdQVC9sdjdUN1BaNWhIamxrUHl0WmZSajV1RFJyT1RuQTltdlg5NHhrQjBoM3l2eDgxSkJ3SXZxdjE0VXpuLytLMHZleWVqZmU0TlZ1Q0FEY1htT3o1cjE5dDE5Zkt4dnBuOEhQUzA3VllqKzlqSE43bFNmbmZpMGgrY3pjUE9lZEFiZElTYTcyOVBjZzdhdWZ2MGxqL3Qxc3Y5YWJaVTNwekl3NlN0OVB2R01rYWRRWndpQTNIa1BQbmU0OXlSbmp0WWthUkNOdkJRdnVKZ3h6RThZY0J4NzRFTkhjWVpwNjc0T1lOemh4d2Q0dUZwdU5Lbmo3WVBrQXpIazc0UkhyclM5OXAxSnZaZ09RRDZyN1FUQk1XOHhTSjZQUEZWNDlPWHhnQzh1MXlnaEpOUnMxVnd0akg2NzNENlJLZlVjcmJYL3ZGMEtoK3g3ZTZLVVpPNzZ5eXhtMk1jcGxPY2I4dzZ4RUNjT3p0N1dRNkVkT3NuRDhEWk9CL3k1MDVIdTVselBGMXN2c29jSE16N0lPSVlYSHNlekp2K1l0SHZONzBkYmlFVGRUdmFOZjI4VkhuSDJIN1hhL3FnNXJzd3lXNitrRGFYZDMvTG40MTl5bkk4ZlgvWHp6djMrb3VtWUFENWlWUHdwaWVUbERJWHgvaHVPZGh2UUZJYjFwTk5rWE52M3RkWGxLK1JNUVM5T2VEOXhaeERSL29MelpxK2ZjNTZjRmFPQnZIMkpoNkdxL1dpUHhodGpTOU9Td3dlYnJLVEo5aGJ6bkEySnNxZ1dmVFh1MUdzV0pqUUdFUjhWditTQWVRQ0VnN2ZCcjY3Ri9wekdEQWI3NFVGMEM5TlBucWxkMXJqSzlDUGdWajNGeGlIQnoxSit2ZkhtVEhyV2orczE1T1hCUVZQZXpKQW80UlFtZkh5OG1pYUd4aWcxeHprUHJqMzdPaEVITXpsTGVYbTkzaVd2dlNIak5maThJR1BsWGRYQnRBN05zSUJ5aENuYnhWQWVQNjhmK2l2a3dIa3NvK0NBVDRPL2I1UlYrZmIyeHVlMW56b21PaDl5UUFmT09WTlZVNTVVeFd0eWwrUURzS0U4eURwdDhwRDhKQy80b2VPSWI3bXRNU0FydzhmZk41c3pIbldnUGlOOHJSek5JYkpoSjFjSWN6Zm5VRFNnV2VFQVJhZi9ZRzg1Z0VmUnJINmdJbXlhR1NrTWE3djFBMHdvZjJ6ZHZVU0FESi9jTUNubTVuekhRNDBpL2xCQnhTYVZTak5JSWNNcWJ4bzlHdW5UcWE1eWhKcFVLQ1Y0OEdzQjNDM1BHVUVDZUN5cWlmdm8yT0Q4NDFkN3g0dy9RNXp6cWdUbHBlSjNydHYwczRHdlRrY2xLZGs1SEVMK1NMd3hXQzlPQWhQZ2MyTzhpVXE1RmY2ZlhxdE1NK0wvaFJXckJoZ0Fja2xuNjlEKy9UOGpLZlpRSWxPV3pLQU5LanB5NzFKU2g2Yjc0UUpuQUZNN09IakZvM2NlZDBzRGcxRlBzZWo2YS94UENvdU94MmdlVzhnVGM5MmpsN2lSaEFQd2dEeWlyWk9ZM2xSV3NwanordSt5aW5UckhCejBMK0gxNWNuWUJwQU54Qk5UR2RDeWdhc3JuZ0NYc0FJOTNDdmVnRDFhZjBFb1VNRERvQWFFNXFlVEhhUWVqaXMrbTNjenQxUW9JUGpHL2t3NWUyenZSUVZhMmM5UFo4cTFBOVZBbkg3TldUU2VBYStoaXhhNzZEdlFIamd3bFZIbHM2NVVwd0szclpyUEk3Um5tRUZlbEFTSDVSSFZLNVM1N2xnQUNwR0dHOXBjb0lPbFB5bHN5Z1pRSnJxOUZEb3ZyK1NBWVRPL1pBQUx2Ym1oOE1jcnlpdnRGQ0N2K21NaDJ3WURIYkdFUDV0TWtBNzFlbEduYk5LT2dvTW41K05TSkhEb2xsam5aNUNxSzFXSzJHWGppeXVnL09xZ3lmN1lEY3l6THQ1STVOdGEycWRiNkw0V1IwWmEyZ1R3cXBVVmpzcW85ZXJMamRmTXlySHUwYnVJbHpRekhkVWlGMzUwenRwWjZmVnIrdTBQRGo2Wi9aT3ZmWDZEQjNuUERKTkl4VHJYZHhJcUEydXZGTWlLQmtiSXlNbUNUcTR1a3lOQVNERWg1TXVTQU1GQ1YvWlBhOFBDd2hGYkRiR1dCZjZJaXpCM2xPVnVOdkpKUVBZb0lCdzU5MXVwK082VzhrZnE2N2NPQmdBUGE0VXE0NEpYVlpYbUw1T1JGdFp2NmtSVTZ4aUlpMzhGWFhwZzBacFFzdk81QndiZFlTcW5hN09JcmtRSXVDZGt1VFExNVdrVHpIRklSV2VHc3JGOGdkSXZlSFNzS1BtT2RBSkJMWHV0REVsK2t5dFdiOEFPZ1kxa0ZCV3p4MjdaQm5Lc1k3QWVSY0tjZlRyQUEwNnE4dCtaY3RkOUUrNXhLMTJ2ZlY4UG9jUWc3U2lZcjN1c2ExN1NtMm9zbmNRNWFrbmJjQXNaeE1KV0FPVEFXVEtUR1RaZDJZZm04SzhPRGdEeEF6bGtqdGRZbnQrbFFHRXFHUXRlZFBkU05wQS9vRE80dmNZNkNGUjk2blF3ZnhoT3E2UWd3b0RWbEM3N2VHZ1F1eEpDZDQvVUgrZFVYejE3ZkdtUTY0eDVYR1h0WkJIRDRNLzlQQVdONUtuNmxwbmZFRTk4cUMvWktBZ0FKVUJxRTY0NXJrZWRFeXRvMG9pckdKYTgxelhOdWdZcDF1WHVITGMweEh1ZGtVSHRVbFY5TXNBRFcvMGo5aFBEbGNaTmhmK3BSQlRRVHgyeFRwYk1vQytyczk0MThGRy9HbkxxRjM4MlY4UGREN3FqTFdWaGFPYkRMQnZNWUJxME95NVpBQmpMVDJHTlVUSlJKM0Y3OUgwRC9vUkxwK1B0c3VsQ0pCZURHcXNPNzRVNmQ1RUtGc3hnT3VnSmc4YVdkeTZLb1VYaDRWc1lrUUVjRkhEdTVyOEdoVnJtL2J5bDdMSFltMnlSL3VoVGh4TTg1eFRqdzdka0ZyendkWEE1YzFMaW5GNWZ0Sk55TUhHdEpTWTIrMnYrNmRjNGhwNWFOUGdDVHVvZG1PblliUmtnTk00MW0zY2cvTFV4K1Iwc25tQnp4R2hvanpRdFRsWk1RQ3NhWnRweFFDUUNiY1pZT1l6VG9VTnA3QmU1aSs3MEkvNENJVnUvNVhTL2hQVDhEVVlZS3NzYTNzZUZSRXJhWHFuTmdOQXhLc0E2SXgwQWpYelJ2K1crMUZienJlWGFSU2p5dkhSUnhvalFMMGRVM0xLSUVQejFPTTJaVEFJT21DaE5aT0hiMTVTanN2TDAxVkNQejM4dXAvRVV4MElLdTVhbnJTR3VJb3Y2M21UQ1VJRzJGTnZjTjFPQmdrclFJL1Rla2EyYlQ1VXFLanlmT2FXdDJDQUx0VDNwVnFCLzRBQnNQWnh4UjdsakNNRHlFZklXZ21GanZvMWFJMzE2ZU9UNTlhS2h5MGd6ME5xdWNtamZMeVJVbjlnelJ2c2VtUUE0NTFrZ0JFa1VwK2ptaXFHWE1ZVkFOWVJHMnVaRTUyemJyRDRvazVtVVE2aE5jZGFjdk9TV3d6d3AvMVREby91NlVZamxUVTVwdnl5RGh1bGxUREFjUlpIOFdVY0pKY1JNTDdoZS9xUXliclY0cTRwR0FEcW9jb0FIZnp1N3pQQXJKQ3VIUGlTRFBvUjUxNXVaby9IdUtCWkpGc2tBMEExVVNiVVJ2MjZaZ0NzYmlMRFJRQ29aSUhCcHlQWHVzV0RyNk9LbStsZGJwa2lmNnE0b3ZhSllVbk5NMTcwUGs4L1EydkduOUF4Ymw3eXR4Z2d4MU8wNlMxMlJyWWZlaTlrR3h0Y0FudlpCbklBNVRMTW9NZjhnVkczU1ljN3lYd1VtZm1CMjdzT1FGS2RZUTE4MTZteTJxMXA5L3NsQThUcUl5Unh0Yk95QTJ6NU9UUytnaG1IbUlVWU91dXRKY0FqbkVYNHdQc0xDVUJWQ095bVQ0UEJSMlpLd3pmQzY2ak1YZzhHSzUxRFhibkx1RkNMT1REMFdQRFY1U1NvRnB3MDFEdE5pWHA5bG9lNGNMMTF5ZDlqQVBuaDI3UlhYUnRpTHVhWUp2MGhBSVFCVW9taURpNmppZkhkNmdRcjJVTU42TEp5K1pRTTdVQk1SUGdPMDdHVk9KVFB2MkFBcmo0NEdrcGNaUW5NMDRQVXBxN28vL01aeVFCNGYyeVIzUXZTWWdEOUFYbHZpb0RlU3EwTnpnQmNRcW51RE1UcEFSOWlzYzFNM1FnUGRZM2doWlFOS2dUUk1VVjhORzllOHRjWWdJL0dUSEtORm8rdWxvQjBFcWtwV0RRcjQwd3lRSzNHVlF3Z0ZpbXNYRzVobGpVY0F5YTZSaktBTWtpUFJxWGp6eG5nV0t3QnpyZVA0NXNNUUJ0bGl4S24xaTRBYXJCN1FhNHh3TUpFZVgrZ0RLQlBHUTJDQWVnRVVVTlFPRDJXWm4zQUFLMFhsT2JMM0RIb1N6c1Z6T1AxbkJxa1hKbnF5YzFML2hJRHNKOWNWYW5HdFJLWVRpSmhnQy9zbzI4eHdCN0RpNmV0ZFFNd3pCUEhWTW5VcnRva0Eram1kMDRkODFjTWNFcnBHaXZBOGlZRHFCMDFaREczcmVDTFVyUStnS05jcTd2TkFCOG0rL1dBRUlXYXZXelRuK0VHbFMyOE9UM0F4MnA5c00xNVBuVmNLVTR2K1pTYW1oQlpUb1ZibC94bEJtQi9MZGZyYmFCVDhQaExDYkJQODc1S3hkMHFGK1V4QmdHLzFRTkxYVVpXQ1NNRlBDTy9ZSUEwNHMzbmxJelROZ09rUGtxVGI2Mk5tVW1XbTRtQlNMYXRXeFIrTGdIMERKa2dLa2ZrZkpBVjBRdXdySFRPTUFUNUtwUEtUc3FkMnVMQnAxeCtaRTJGK3BLL3p3Qy9ldlRuZ3EzTkFPMVRCMjd1M2NDUmlHMXRYNldpOE1DNkhsMGo3Z2hlQTFqQXV1ajVyVjJBcVBXaE11T01iV3RvSjhPUzM1YUZqb05iY29MR1FxS0dkN0h3Y3M5K1RRY0FIV01KT0dNaEdZVWhDQUpHYmF2aUpGZ05hSmNRaFQ5MWp3V05KY3VhQVc1UDU1c004SDh2QWVDdXY3VUVEQW9HT0czOFZQVEdrbzhGK1ZTNCtMRXl3bis2cWtZWDR3VExQM3dndjc4TlBPYkdYaG9OYkx5Q3pxZmRXaWMyWHFYY00zVElHQ1NHM2FRUDdWM21iajhPdFJrQXpDM1hxenlmaTVFQjZpZFlRb2Z2M1pZd0hZZEpOMTk2R1Z2aHoxZ0I4SmFwM2hWNjMxdDdJVTc5OU5vbGY1c0JicXNmVkFKWCtLL1REU1dRTkFyRnYrSlplSmdSc1FjSFE5T0hDV1lITS95bEpWQzlvSzkveEFCcDJqUC9VVEcwbitLeE0yTVdYYm1GeHFodG5hYUFjR0IvTE13Q3FxOUk0VkF4QUZmaytRN21HRmtLeFJ3OG4vZTUyRThMWlhJeUxCamdGT1p5MEl1Ym8zSjhPZkMzVlhIdzhNMUwvaFlEM042QUpGMkdhRzRHa0cwZzNkb2h0NTJCZlpkbC9oZTBzL0pBTEkyenRpOUFsb3R4VzRQNCtUWVFFVnF2VysxTHBUN3Mxb2MrRGVhbUcxQVpDVTNtRU5OeHBpSkFoSlJHQW54QWYyZDB4bWxUTXdCbUNIYUE2dlBWOCtCWVhGUGRUNXV2T2s3blBqMlhjaGZ1Mm5Mdm1Wc1ArZmlIVjVlMlA5Mk0zN2drQ2FvSFhwKzZKT2lmOTk4MlFSUjBlVUpqQUlrd3dNbDFYR3B1Ym12aDlPSUNnU0E1YzUvNzFtVzVzVSs5N1EwY3o0UUNOeG5nWFE5ckxMYzluZHVyd3FFMGQyOE43b1U1Qi9vczJEQ1N1Q1lpRWRleW5LL1hZYXlHYmJwZ2dQUnppQjhWL3RnZC9vY2huVTQ2OVhuSVFoTG1ac1RaaG9jTSsxdmJPcDBaRHZPOHhZckJvemZOY1Rjdk1mTTdOSmNKcnZpd0JlUlArNmVYUmtpT2F5RUIyTGFNNHJwRHpNUW9sZTEwRHByQmwyYVdoUXF1TFp6dEhFMGhIbWhYTWNCanJpWnFhc0xZWFdjQU9NTGxZVS9QcGw5eE5oZE1SSDh0WGFZa1R5b3k4bURYRzhVaVlWYm9IY0pnM0FIUDFTc1lnUDVlNWZWZEo2SjhPeVBHZnRIcklhdk9BUUttejFDbk1lSnNsVjZ4Nk1UYVJidXhPQTlUOHpSQjRnYjVjeHJrYjE2U24zYVc5NUlyUGttTVArMkhNcFJ1aUxXN0lhNzVBaGphZWpkK3RMdTVmODNmM3dRVmZtL0pWU1BSanMraHVHQjBzVm93R0tGMnpDSG15TWJ1Q2dOMGgwcFZJUWlITmxhQWtnSGcxUnRwMElSSklzNGZmZ1IxSzdBZTBRaGQ0Um5lU3AyVFhMM2MwYVVHZkpyNjFFbXZOOThOTks2QWNlRWVVYXVxenVjaVZnWVZkSWo3S0ZhQUwxb2w1WDFjODhSWTQyakxKYWZ1TEJ2YW01ZEVTSk13dDRSdDZLVXdpdjF4dnp5NmRFVDJQYWdsdllGci9nZWFnUUUwV3BBRWgyQmZwcHdjSVR5WkF5OFhEeVFVQU80NXhnU3ExQTB4QmdaWXVsSS90NG5Mc2J0Z0FBa0Mwb2Y1MEpMZGFEbW94ZFVrM0RycGx0ZldEZEVxM0NFY0FPNFhpalpPN0ZPc1htNlltQzdEVlM4c3NKWTJiL0R5aGd4aFREMk1BQi96WEJuc3JlY2lYSHpqcVpnQU1GTnFub2REMkQvSDk5ZWQ4c3VibDFoUTR3QkJyZFI3d0h0LzJyKzhGWXJnZXRVaW1rdnRyenVoUHdPQ1J0U283c2tSK25aUUNzRFFJaEtiK1p3TytnbGRaN3QwYVk1UGlNL2x5WDBMTXVYWXpWc01JRDBoK2xZNjRZUm9aS0tLQVJDOUN1aFpGZmVGS0ZncVY0eEgzVlA0ekJ0d2N1VWtXQnpvbkVESUhJTjFGdEFsWU1QVU93ajlpYW9ScVNZMFF2eVRPWlRJQU9vSDVUQ2ZORDZ4clhuT1piaE04MnlGNWZROUxHZDI4eEtMSVJMVGd4THRZS0ZDZVBZZjlzK3VCaU5sUkZEUmtnR01aUTROZVV2WDB3eWNnK1N5OE4rNStvTHgydEpOcWNLUWVNcmhiNDRLZUxQeWNrZ3JHVUJhVXpEQUFVUEx4YldsU0w2ODNDTjAyczJWSHFubUQyOVpGSFlOSkhmdEp1ejNiYVpsZURRbXVjeCtqVGlUSTR6WkpaenZTWi9UekpYOUFLd2pBelROMmhBUTBKMHJESXp3ODFvUE1uaHhaa2dhQnVaSkhCVUQ4MDQzTHdHd0FUYm8zbHFhQndzdS83aS9IWTY0QXYxVjhtRzJscTNqUzRDTzVEeUJDc0FXS0JFQkZqQzFrQTlUZ2RuTWlTS2EwaXd6NzVHL2lmUER5U3RSeDR2OVRTTU5ESkEvQ3dhUXdWZ251TVFaSUlURWVLUGdDVEtBdnptMUhXbHBVV0NYakFheFcrUUo2UG5jRmpKZ2Q2aklJRFJ4YjNnNHZ3TTBiVm1DMUg0MHFySG5EQXlVUVRxSmdveGJpVElHWWdhOFJFWmgxR0ZVcTlBZkVNMmJseEJqS0FkVTdjRVZXUGYrdFA4WUFja2pVL1M2REVqZVFQUlVEV3VQTTBEaUdpVEVLa1JZdy9tRmgra1cwSWFNT0VJZmwwNFhLeVVqOSszTjlBdlBxcFg0MkhGQWk1OHI1UWVMdVBaN0FzWnE0UWt5ZmFnbUNGY0xLb1NMUzc0NUE2TWp1aGtub010MStqMkJaRjNpR2NHakhyS3ZNZkxkaURvSDkwcVROZXhrUWxRYWdUdEhteEI2dXFJSURVMkJ0ZzhjTEc4RW5LNE1vRU5WL1FBbGlTQVlibDVpaEhzeXdDcXVBSjMvdUQrL1Q0NEF1SXNIRUg5YnRXZENLKzh3ajN1SmJJS0NhekFscXBiMnNHTElRaXZiNm04aXFJNFZzTGpiQlhmam5CSCt3NEMyZmhxa1QxcGdmYWxkb1JNYkJRQUNBaFlhaUliNjE0bXJqNHdJNEw1R09ldkNkejliWExiMENXZ0g2T0NuWjdRbjRrNzJjbXl2RGNCSUhJUk1SUS9XQldtQmcvN211YndWYndUWVBHOGlaQkRzamgzUkp3ajlyMThDK2hPUXJ3ZTA0WjBVTUNMdFd2L1B6dmZ2UTNzQWxKK2lCMzNaSG9qb3ZjT2tYSEhucktQOUhRZ3B6TUhISlY3aUxZY01jQmFPbFA0MlNVbDRNamdBZUIvY2tLUEpBYTEvSW4wQUJvTWNyR1Q0eGhJYUpNREFIYjlLUUR5b29GSTJmK25UOSt3eWlzNEFseVZVbm4wbmE3T2w1Z2Q0ZVh1UVpzaXpwZlF0Wi9LUHRCaytWZzVCOTBRSExJSGE4MktaRUw2UGZ1cVN0NUptdWdyNmwvcnZSZy9neUwxY2hlNk5QdVRVdW1RRDlLdE8zZVgwWFE1b3d6dkptWnZOV0k3WC9XTzk0TXI1ZUU4NXVwbmhDWExrWHRyN1ZIN0xVQWpqYVYvWnlFby83ckFva2Y2bkk0aklSV3pvY3hCY2xVTm1nTFlqUndvb1JtbjZXcmlZK1JjdzVrdU9wZzlvK1ZNSnQrUmczSXMwc0xFVHdMaDM2aFhvU3dEbGkvd0hLaEEyaVYveTJlRHlwWDJqcWcxamc4dHEyZ2p0c2hGYXlwazhKUCs4VzV0dTlNQlVPOUVsNTIybVBJSWU5TE1CVVl1eHh4SDlkOHBiUVZmQjBEL3kzdjRRL2ZmUm43YWN5ZFYrd1BxSTZ6MGFaMnJEQU0vNFl6cldmbXZ2NkFCYWx1ZjdBWDEvSEFXakN5dE1kWHdlMzIwc3h0Ykh3WkNSbHhib1lDeEtYSXd3QmI4aTMwTE9RZHd5aDh5ZzZ4d3BQY0J2TXc3UWNTaEhJSzZiK1NYeDVTY09ocExFUDA2ZUhrUEhDM1hZZzVpUWFnNmNMbm80Z3ZqOTZMMmdPcVlOMkNNUFlVWnVsbVFTblVka09wSFdNOHhXdVVCN3JOKzRYREgxa0w3V3AvK3FlRGR4Y0RwUlVyem9WTkVEMm8vRlFINmkwMFFJTVBIeVVPM0JpZThnNlJITE45cTlyYnY0R3hKdU5yTWJvVU5mMGRZaDdSK0hISGpoUEpPanVCcExBT2NFK3lnMHdTVjc1Z2ZZVFBVN01DUXhrWmx4NVkxaWNFTzVoZ2FSUlVwTEh5N25kTVgrQ0MrR2swUFVQVTU1SFM3aHdOb3plU3I2OU9OQVNuYkNVVURSc1U5eGJyeXF0eHBIRCtEOXVkSTlJSW1NS2RnaTg3bVVZb0hJVyt5dGdkZGY5WHdzYUEvMzVjcXZQVmlPNERxeDJZR0JSQjh2NERwMVdtSXU4UXBxSFhFeTlBRkdZcG9tZ010VFI3QTE5WGtyRGZOT2xHbjhNQ1F5YjRRT1puMzVhbXNDT1A4SnFxdmNTcFVmaGRhK01VOU01Z2paRWxIRERDRTJYNmNiemswaTFpbm0xTVU3elFtOE54bkJkRFJ5VmlwSWVHblRCRTFINGxMT29kRDFIVnR0NE9NNEdsQy8vVngwY1NIU1RteVpjdFJPQmpPVXRyWDdBWUpuS3A3Q0VLV0h1cTZuY3RsUzhUOUt3LzRmbHo4am9Rc1BmWnUrdzNHWlFORTNteWFzZ3FiTDZncUpRY09vTTlrSyt2d0M2RTdtTng5cUYzWVJlQVpPdHA4VFUydlRjTDExcmRwSUNqZm9jM2VFV0dUcXkvcjMxbTBhdUpIMHhCTy9uYjI0RjVqWVVYbXNHZk4wRzRpaE1JTlc1QWdocHU2TE9ZSk1vNWx4dXIzb3ErRG0xajF6d2ZOR0JVaW96NHd0cGl6RUZva21FdWtGVFMxcEE3NXdRcjhUR0dNV21yOXZ3TzA3MEplcWlNNG5qcWNCS0RPNUNvRjJEc0d6cEMxdjhDUDZibmZZamR3cCtseW1jckJVTVR4RXFCRVI0YnFkSGlsT3RVT0ROUDBJWjkzOFk2OUxJS0xaS2JiV0p6dllzNGZYQm01UkR1Z205bXpQd01uNGlidkRndWFmWnZ2cWM0ZE1STFE1MFFnSWM1Ty9hZFdrZlVXd0NtRjI0Ymc5aHpWZ0pFZUpjdlZicVlsZzFMRXJJa2ZJcWt0enB0TC8zenVRcFpodTVBQ2J4cGc1ejYwWi9vOXlEbFAyOEtOOTA1NnNZK1NCd2NPc3RYc3VEY2ljY2lZU0dBS1J0b016VGlVSFdJWU5qaWRleWxNTkFKYWl3VDYwZTJ1UDNvblllTXVMc2hxZzk5VmgrWGJ1RG1ZaU9XUVJKdGhPRXhHdWJrYzFTVEdTREhFS0NqS2NpMTFSVUtzWU5Nd0FHaVNrYjdBNjkrUXcvY05IangxdTVucEYwNE9YQWlmYnovTzZZYXlzZlJvdGEzTjVjT0dOWHEzN1ZXb045MnRzM0J5cnR3L2ZLKzJCQTdoTkJ5dUdOZ1ZvQWJIdDhoeTdnc0VDN3RDd2RFYi8vdmRPUlRrdFZKUm9SbWpZT3RJczRobGtzRzZRL3A0SFp5N04wZnFod2hsQVNvN3duV1pVRHBFNXhmckJHTHBuTnV0aFk0RWNXT0pOdEhSMFBBZG1TVFZuZXI5UFdNcFVGd0RFS3ZibmhEQXMvWlQxdWJRUzYyZVFEbW9VSHF3WEhxN0NMU3ZTbjZpRHNHRW9qYm14WHdsY1pWUUZWcUk2RUNDeElET1RXSGtGRE5sQzFjeFFBdCs4SXpqaGRCUlhnVFRZMG1HN25GNEorbkVHb09HOVAyODhRR3F2WDVVZUFYRXZ5VmZRZ2MyekVSc2poKzBLRDI1UGwrWVBMQUZHU0o5dUdPd3c2K0JyTVkwcHZXUUs0Q29rN1FON0JBek9vRURmdVltenZDWUx1SGxlZFBES2hEQk1OT01JY3REL3NFQzAyWk11UTVEbVNJQUJYeHJNeGpacTdyV3d0REQ0ellRTjRiWFJCQ0tmQ1lDV2QvSjQ4ajY4WitSV0xGTWVqaURPdVFYeVdrQUZNenRUeFFBME9Ya1FmWnNCb0FIQWhZSXI5QmtUdnJYOXhCRU1mZmhzNlYzcjB4TjJtd0VZZlZlblJqbUYzK1dqYi9rTTNGdTFNUVpZeTczbEdRdlBwV0Y1VkFwUUhVVEFIUlAxY2JwUkhDSGIxWThJR0c3MHdNUnpnVEVWSWpOU1JYb2ZrMHVwKzAwaXJ3a1ZPV3AvS2pLc0g0aFM2SDlkT0ovY0EybUR3VHdheGdIdWZ0Wkx3VHFJb2tGMm8vQWpNRHhjQk1sS0JFTTRxYi9pTXhaejlkRHBFZUplcVduQkZONHpQNUtwWUxRN0YwdkFpa2JuRzBzQXZjUFN0UmI4eEU0ZFBhczBmdU9uSHNISkhyV2hlUHVkUmoxU3FQME9Bd3g2d1FDZXlZTlJBWE5FVDlwUTZDUGdFV29XbnpJNXFkbTRRejFHaGd4d1BMV21HMkdqS1FHVWVmM2VleklBTXZZbzJETFMrMkJ2a1liY0xoRzRIVnRBaW9Rd1o4dVFRelVRNTQrUWFRZi93TGZ3R05KY0phVWx4L0pGZ1FzZGw3bW01eG51VEpVY25RZHNPcWpZSGpvRGFGYUp5REFIb3JtbUJiVkJWQ2hjNjlIY09KVktZT0YyZ29iTnZrRW9nZjZJc3AwSlNGYStrSi9DUkJEMVZSQTc4aFNRSkQ5akFManpkSHlhUHZFemlaUkcrTFJHdXB1cm5JbGl0b2prbHNDNUJVTmVaMVVlQU9qZjJBYjZDZ2xDNm1ESENtRkNuc21sbERJVUhFemJtWDQ3NWtGeXJEWjFQK2dHZ3c1MFhYQzRKNFJCLzg3VlFId0dodE9TclZBVFp4S1VIWTZBQVpoNHpiSHRqNGtCZ3grQk82NlZ6QVdOOTZTWEVvR1BQajBsR2x3bmM2ZGJTM05relJucUhvb3FHQmtBZWdTMmdTcDNuQUc0RFJ5Wnk5dTNnUzVrRHRrWWg1cHhVeDNMSjBvOEpLZ2w4akFEM0c4ekFOUWtLSUZOcy9ZUExtTVBrWG1zYjZFNnhpK21VQjRhQ0JnTFkxaTJVajlBbW9NQnl1bldKeGlDaVQ4eHE1aEd6T0Zrc1Fjd1hoWnllcGF0WXpBRkJocXF3MWtHM2RRMEpvVEoxa3NjUXRIdy9YVHQ2WUdCSjhqa0dCUFhWUDFRRDJrRVNlam9VN2V5M1RzWDZLR0c0U0x5emZVNWp2SW5aSENrMnFqeEhFK3ZiVENMQjlGOUFwcGlTck16Z0R6WFcwWk81ZzJZWURPaW1SNHdpUjJCY3BNQnFPNmZCNUE2Wk9DTWtCa0JRTE1RclNMd01GaWNlem9Ob0szQXFaY29ITVpaNzVNQmNycGxYc3NmcWdSRVlyMzFPc0VrLzBBRkNMQjI2cFhmc1N6SUJFRFdMd3VPVzVkZ3FHajlaSUIrOWpMRUZGcVlIRkNFQ2cwM05ZSXBmM0F6UVlYa2NOQm9yNllQTlpPN2R4anBpRC9JbDAwR3NOaThZdmpMbTdmUlRBRlFPZVNIbC9DcUFSdTM4SnRXWGh5ZXlHdEJSQ2ZjVFFZZ2I4dFhxV3pqRWxhQUFMQVFOd0VDR0h0dTE1NjJpRzZlVmVtZnpEWURCcGlWMHkwejIxb09XNC9GYXlyVlFRNGxXUHR6RVRMRkZjTmUzMmFWTDFLUTZtU0FKbG95Z0p3KzkyWU1vSzY5U1B0ZzZhbC95Z0FlM0x6UURIQ3JNM1VyR2ljc05nU1NQSlhnZ2dFK3NYLzZQUWJZWjVhS2pCSStsdmk2RVpvYjhaWXRNTVNtaG13UnZmRnpCZ2gxZjZGck9wWFlBb0hVaFFrZ01DZHUzSmdqRlZWR1JKYllPajBOdEtRUytJUUVXR0JMVERmTGU4MjhYSEdJcWdNWUlNSGEvUVRxYWk4SmdUVURBb0REbEJnTk5vc1ppZXdPMFV0clNSeGcwdDc5VHhrZ1AwN0lEdDBxbzhZcm9qSGV2VndDRm1UWDMySUFINUVLSzF3eHdHVExCdDIwelFEanEyaXhaSURGNHBJQk1sWG4ya0tBNjd3eXVpbVJ6aHdONW5ZOUlEUzA3d0ltTVk0cHVZUUJWSmJEN0tWem1mcUJIZUkwcnc4bGF5UllPeUtLVDk5dVEyVk9VZ29BTERuSkFCWVRRaU54MHJuTE5pUU9KQTZRaWo5bEFCeU1YSEdpZVhPTVFiU0FPQi9teGRjbkF6QkErL2NZZ0NQQ0xCV0VzNVF2bDhnTE5aejhJUVAwcEYweUFIaGJkN3lyY3dqNnZLK09zb2pUQlBRRnd5QVhsVWRnd2gvRVlVaGEzbUV1T3lURzlBTjNGZHc4QkJVd3dkcjl6Tm5GVEc1T2VHcXBlRnFKMG1JVFdWTk9kTytGd0c4endQZlBHU0FrSzhoTHZRdERXYWNXS2I2K29BMzBsTkh2TU1DK2tLT1pNYW9TVDJ4MEgxeGRBZ1kzQU1NMHExOWxBTjFZZG14RVd3elE2Y0UrbUF3QVRpSzhOamxHMXNuYUZHRFFzSzhDb3F2L2w2NkNIN2NQUVd6RXBxSkpiWWplc2lFcGI0S1lEb3BrZ0NFYWRsRGpTZ0trNytoUEdZQ1lKSzZDTHdUTXVTc2xOV1orZllzMlBkTVlmb01CVG5YR29JQ201TXZWeUl0TEJ2QVQ4ZHZmSzVlQXBybGNBcUFEcmxhbTFOVU1vQys4bTZ1OUpjVktzYytZRE1zeGpKZFBrZjBsT2tCaUxoSjBqN1RuTnc5UkJTU0s5SnhBWFFibmhZV0NBL3RVcCt4YldUUHJjcVVEaE8vb2p4bmdFcTZkZUtDU2FHVm1pYVFObE1kQjU5Y01VQUZVeWcvM2x6dTBrUmR0QnVCYXhUMDdZSmw4MGR2YndQYzNBdlNSNjVORGtyc0FTM1dhWDE5dVlxc3hMR2R0NUFyMjdSeDZ3MVdBT09uYmh5RHBYWnJ3eVc1NHhWTTRScllKbmRRSnU5WnM5bGJ0WFFESDZZOFo0SGI2amFXdFZwR096dmZGQlFOd3Mvb2JERkNNQ0liY1Zjb0xPOEJOQm9ENWtSRFJKL2pTZkswaUExeVZBSVpaeE4wNUpDblY0QVFLMUdiRkFJUnF1aDVWQVVFSkREbVdxVUtUcGVGR3ZYVUlndjR0OUlueWhoUUI5QkdwVUtJNXhobmc4OERXcnhqZ2cyM3hmOEFBbVlpbVNraTVMR2hqRU03ZllJQVVmQ3FUODE3NWN0NDYxNWNBNUp2eGZmSVFPemlxVjdjWklGREw1UklRbHNBNU5vYWR6R0w3bm9zTUxnd2wwRGQxcGNpKzIrdmlURDdodjV6TFh6Y1BjWGZnaWVGZDJub3BIVStXYWdaUm9tbENBdlM5MVJLZ1lmdGZNVUNkZmlNTXFabnFVRnArZlVFYnl5c3orQ1VEK0loOE1rdEZmSGkrWElXOHVHUUFLcVEwV01pNjN1aDcvZHdaWkRMREVvenV5QUFKMnV3cmJsY1R3YnN2SUhRQTBiYm91YWF2RmxTb1BVTElEeENwQkVoUmh1cmNQbFNxVlRLbVpBNW95UlFjbVZKbGFJQ1RYQUlHYkx0YUIyQ2plKzF2S29IVG1DdG93Y2tGYmJyWXVLNS96UUFjRVlkWmZzUzk4cElDZWJFNXRSbUFma1BicGNtTW5zdi9jcEJ1NmdDWnM2UGJ6VjNBMkhHWUFnV0dOekJRbXRPdzBPNlkxaTlCelJjZUljOFBnTk9VYUdrK09kNCtWSUMxclgza0hvRWlBSXNiNWhvbVFqQUE1REFhWXJZS09zTTZZT21tTnFlL3VBMTB5MDBzTTUvOCtwSTJ5REhVWERMQXNQWUZjRVJ5cWY5d2xiTFV2TmdRWU5wbUFJZmVLWVQzc0ZDVTZCd1l3WjlMQUU3RGxTS3BDM3ZmRmpRZ1JqaFFtaHg5N2FIaEtFSE5GeDZodTJJdWF5djRaWC96VUtxQTJlSXBySXlTWDQzSXZKSUJ1bHRyK3RFbG5iVTlJMFR5SnhMZ3p3MUJFUXJUc0lYY0xtaGpTOWJjR1NBMWRRRlpGV2xnMjFrcVVxVXNlTWFiQVhiYkRLQkdTNXIyeVVKelloZC9wUU1zMU1teFdIQ3o1dzZmaFVjRUJVclR6UEhrTUxtcUFqVkhGaEdLN0x1WXl4eWR6TTU5dW4wb1djTmJ2VWU0K0dvOCtSZUdJS1crUlRZTHk5eGtnRDgzQlNjYnMvVTlJMVh4bHFhMUh1aUxncVpPVjdzdnIzaE83aWM3YURrck1nR1FOK1A5aTZHSVdENnI2cUpwc0JwemVQOXFGM0Q0QUJpY2tnMGpoM0luamhGVytyY3FWdlNKSFkrSVhTZHFLRnQzRjNNNWRqYXoyNGRLdFFxdE1nWDhrZ0hZV3FaZ2ExMDZVZjZRQWJEVnUrb01DamJtZ3lPcDZGdVZwaDI1WXo0L3lRQlVsUllJdHNsVVpXV1dpb20wOE92bTNtc2REVVM5WklERVQ0NUdxT0tqZFFQd2tiK3lBOHdialhOWXU3OE1BNlNCSm80Ujl2S2xwMlVCRWsvcytEZERQTUxnQ0ZMZWVRN3pPVnV4czdsOWlBTUU1WUJWbjFLdi9DVURvTG5OcDFBQ2QvS2ZOSHZFSHpMQWFYUExIWnhFUTNBYU42aFlzTXEzdEJCR1o0Q3N2R0hMSzhQU01DSjBwNkdjR3o4ODMrZmo0SzI1d1FCZkFlRlZuTUp3Skk5aHlvV2JVY0VJaHBJZ2RPaklaL3JMOEk1SyttNWdoSW5TUFFhSHNUU3FsNGlqZDRlUi9LWnMzWG5Wamw3TTVVaUlmZnNRZDVNSHJ1ZlFpekxTNkJjTUVBMEhxMjFnWmhMNFV3YllMMjhGaEtSbGZEVFJpc3BGREU2WkVzOU1GNTV2alFoNUxxOWVlNGVDajFFenpGSlJocWcxL1d3MUF4UkZXbGhYOEFYMXExR21ib0FZajl1NEFNdTFCVmpJeUdnSFpaKzFNYWgwRWdGcmNKZmtNRUNKdkM2MDJmQ0pBTEFheUhlTWJ1a1BMdWJ5OVBZaHFsWFFnQjhlVXNSaURmZ0ZBM2pqUVFhRVpLc1o0T09DQVJZbEEyVFcyK3NoWWJIWGF4cVgxUHlWbVRYWFNIWnY2NncwTUVDRVZPVHl5cjBlZzlJb0pqSkV6ZlBNWnJQWXZRZzhEQUZKL0tSaEZSODA5WUlsd3ZvSk1nZzEwQWtWQzlwdEZCWUVERnlCS2RhMmR4QThrZEhBTFNQTkFxSzhpQUVpdjl3VjFKTkd1dEtnZFBNUXJDNGVKR0lSVWxGTXJHQ0FwcmxnZ0NyNEt4aGdYalptWitRQmovb3Zrb1NreUMyeTNtWnVDcXdqa2JnaTF6d1FyZjcxNGdXR3RsbHNDT3RHSnZuZzhncThCSk5RZU1FVmlBbitpa3pUMlZoWmlhUWthb3RlTmtYVkxjY0tpUVVlRUVMNko5aEFCYW9RVngxd3k1bmlOMGw1YlVEQWJnd0p1MDhPVTc3QTRTWHdQc1EybzBrWE1vU01CcFRmYittYlFMam16dzV0UjFFK0RFc0ZmNEZVbDVyR2tlNWpkR1Z6UXE3cVh1Z0FHeit3cWxQejVZRHpCdytuYm9YUmpzUVZSb0NRbTVudWd5S2ROZGhmSHZOdkt6cGJwdUFnQnBSSktMemdpb2lKL0tVL1FMRnNWaXN1U2ZsNnowQUw0aWRQUU1YY094NzROam9ZVU5rcDRkOEVvMCt6YllEaTA1dlpLYUFzT095ZGdHaEhDSDk5RWR0TUlMUXlBR000TFdNbGRMc0k0cng5eUNPOHdlUVpDWjdKb25MVW4wQWUyMzg4U2V4dC9tY0hBWHFMUnRLb2R5VU9iTzJ1bVNTRUF4NC9jTmgxSzBwS0Z0K2xTa3o4S2dUQ2ZmN0MyaW9OQUlYNEd3RXhUUEpScE9EWUtMMlloRUk2eUNRUC9ncy82dllTK1g4OFF3SnhGV0FCVEVhZG5KNFJBSEliVGVkcjVnY0FrYVhIRWtBczBhYkVoQ01YQnJLUEhJRnp6dWNlNC9XNEVrU2FJZzRIUzZaTDdlQ2NaK05xMWozZVBqUjlKQ1lZVVM5Zy92amxFTnBTMDlEbVFPSnNXMDh4WG5jemJhTWZnSGdNeEhZTWYvVkR4NVc2bGExdlRGd2gvVXhrNGNCWHJvRDhwUU5KS1ZvT3Fnenp5Y2lSS1RnNC9DbFhnWFY3ajErUXVYV2JjaWJ5QU9MYUNLMnplRXU5SEUydVJ3b2haQmJ4SHNzUWttL0ZCZDZSMThHc0t0bVp0dzdNYjdCb0FyZFZQaGxpR3ZMSGRPVmh6ck1qYWdmN1BLdG4zZnZ0UTg1c1dJekFlbS84WlN0TmpycXRWbWlYYzRRcHhpbVMyQ2liOW5GQUtPbEpDcVl4WUxLQWVvNlFxU0hXTWpjRlp4SEdIMnlSdVRpVWF2NExkUzN0aDBNWHBUbnRwQU1UbE11cno4ZWxaNXc0RmN1c1pRZkNDdnp1OUhySFdxeFRUajQ3U0FnQllCTEFscXlTaDVuaHdIdVExOEJKalZrQmREWUNOWVUwdVZ5cGR1ZTVsZHpFdmlSd1c5ZklZUllKSXFRMlY5cjlYU2Jrc1lVbmY0MXZIeUpYazhuamw2ZnpLRWRkcG80blVibVlJOUJNWmpqT2x0ckpOdzZRT3Bta2dBcU5qL3c3dFJ0RXNERTNSVGxwd0FGQkEwRGNBVjdtb3BtNUtwQzVJMW4weFRwT015eXZQRUFwam93VEptSTliUkdUdlNGRkNQMEFMMkJNUnFRSENVLzJwa1RrSW1ORHJtS0dpZVo4eFJzVXBIWmY2NWNqMUVOaFJlSUtUNVRvVHJZTjg5NE9rQkk3aWdRUlVwdTY5djZPV0U0bVFhbG1YWEZvVmszSUltR0k3aTZnY1BCa2JqbS9jNXpIZGFLUUhQUXA4aDNsbVhXZUVCNjRURklnTFpaaUxuZUdXYVp1ZFRGcGtnWVlWYVF2NEtLWjJTM2c0a3BGN2drZDMwYzdlZVlIbmd3OWZ6eCtNeW5WTTlPeFBiZ1NwM29qdTBCQ1lsSklRazk2SmpkMmcyM3FzYUEvTXh5d0VIV1MydjB6OG16ZlVQbVcxVkxYMEhZZWJuWm12b1l0T0NwajRwbm05L0xNQTNlUmtJZFplbnpXYmV4M0pPa3BaNm9tSDRwOElaRld5bk9walBHVkhPYVVIRWFQbVNjSThRa2haL3FwMHpwUGlCK1lWVWtLNUVBcTQ4eDJZZ3VyYWRjWGsrYVlOTmg2RldwdGU4dmNXdWlaeTlqSzZmano3VXk1NUlGQXozL2hhdTRDbVhCQzFTdTVYK1J1QkFtSlNnTUpMYkhGa2RPRCtRMXlKN3QzVEx6MmRBRTVJcWtkYU1oTU82MUtIVnphU3N0WitvUVhpZzJBRmN3emdjUHpEVWlseFFOa2xwNndEa1NDSDgrTlJrazZZOW9lNXZpeUZVa0huUUFpRGlVNVFJZVo1cG5jaFRFalIrb2dPaCswOFI1MW5oQnQ1UzBZVzVMYmNUa1ZoS0pxcldrdExpWk5RUU5HQTMvVElBSUR4amwzbW9ZaU4xQVBwNnV2MVU5YkhBajBQUGxzcEprb21IQ0NNM3JYcTdMY0oyaVVpUzJFVnN5aFFKVDRZazRHaUZUQ2hxbkZrNXpVRU5pdXlGUU00Q1JxTXdETHg0anZvSWtxUDB3Wk96OFF6cTFpNTA2a0VWWDBUT2h6NG9SbWRrUlN3NlJXeXN5WjVRdkpLYklDM3BNeTRJZTBiemZRQnQ3RGZEYm4wRUdZY2VpSDM2UE1Fd0pDRWJ5T1cvZzFZWkREWnhXYmE2Z0FyVW1qMzBJYVlLQ1pBSVd2SnYxcGExcTZwWmM0ZTZZWDJkREUyUFFUUGMvb2QxUlNZc0lKem1oWWo3UE94VEpLNnhrTm9QZlk5R0orQTU0cGlnNVlBbEk3VU5wVnhaTklyVlV3UUpMb2dnR2VrUGxFSEdOZ1VaaTNITG1KUEF5QUxYeHBocERTUXpBeEhHa21NUnB1U1kzeUxPSnI2Vi93S2RLYkcyNk5lUVRzQ0JKQ0JPS0w3KzQ2eU1hU0FEb01GVUJrNUFuaDJ4VzNTQy9CL2hxaHNQNmZWT0Y4ckNiTkVrbXBBTnhGZUFCRk9CZUFMZ05uS0FGMDBKRFZndFBWa3o4eGdVV0Juajl0M01sOGNLdC81bjJBazUvUjhOQzZScEhZd2tRczFXdm1OK2gwc1IvR0N0SUZISDdkWjE2Tjk1SUJNclZXTW9DVFNEcmJTd0FFMUdwWGVRUU51VWt6dFZIMVRtYU93N3djclRWR01vWlJ4NEJha01obXpBdjducEk1MGtqSXdKRjJ3SVB4RUtpNkxPVWNnaVFybGxhVlEwVWk1bVBrQ2FGOGl1Z2lqR0RlWXVsQlZkckZ5dnpJUUFZdFhwZW9LaUowaXFXYXNCbGJ4SmNucFQ5dmN1aXZtU2M1U2MzcGFtbDV5UlpDS3FEblRaQTU2UGR3MEVCTnlCb1AwWU1IbVFXakFROS9nbHhIWWd2YnBNY0dHM2tzVmx3ZXNVRlhvTFFXTW9NUlhRYXlISzVNclpVTWNBYUowTm1XQUpDbmcza1ZFMkFTd0ZrV2ErZmRmd3FZVjlNUVcwYi9zOXJyZXo3R1NndENGNHlaSHhNaXdIRnJHcVZTSUFST1NKS2xBdEM2MjZVOFlZNnhQUit6SUZtZUVLK2p3Q3pLbEtIa0xVL0hBcG80b2FBeXlxeGtSdHVDQVF6ZExQRUI2cXJ2TVFXT3Bkdkd3Z0N2SVZrY1ZqTGpaTmFSUUlMQ1NFV3hjMSt0NVhseVF6bVZ3UEE2bndISFlZZzJaV2JISENNVXNaRkRRZWVpdTNmQloyWUw1LzhvQStWd0ZhbTFnZ0Y2U2d6eFZXRmdhZ2F3WkFvQWxCNGlLcWlPblRac1lBbnpZa25JYVVTZ2ZIeGdQb1k2elV3U0VGQmNCR0QzOVFJRElEWHpDSmd0MG85UUJwVU1VQmxzR2VUTVBDSHVRNkpta05VTDlKa3FjamhWKzZyZDRoWk0xTWljMXNrQXRodnFlWWtHMWdmRGJaV0N1aFoxcU51ZjZIVWQwZDhuaWs3RVJXbVg3cWNaN1czcDF4bUUybUhWekVUZVRqcDh0WVI3UWJ5NmlPVktqT2hJL1NQRDBNeEpQc1NMdFFMY1I3dElyUlVNMEtoekZjTWx2Rkl4UU5TdFVVQXBWaVRZREs0eUFLZDJGa1hpTDdsNDNoRGJXU0RqSVRZeFJ6bnpZcS9TVzVWNUJDempzRUp1b1JwZ25hc1lBQjZ5cldYTUp3TmdtQWVSajRVN1FOeGNJeWROZnJ0YVBsb2hRVWpYVVpqWTdZMmdMV1pwS3k3MFZxUWw0aU16S0V2YWlybzlkMkdtMkljYW4wVWVzSmhhcjJuVHdONTdtcnBwZ1VZQ3c2QTc0VjZRK0UzVExpSU1Rcllqa1lXUWx3aUhjOCtEWEVJQzlCZU5Cam5UUTFjeFFGYXVFajBnY2poY1k0QUM1clhnV1I3dk5SK2dFTENqM0VLbkg3Q1dSSlRhUWU5cUJ6UFVpbHNvYnVzNHlqdGRmaDhxaEtCMW16WjZJbTkxTEV1TVpXUlNJRjRWMjBSQ1piMk05UnFNQVdHRXRZSUwxN3hYRlF0RkFTZDVXbzZEbDdVb2s4bU1hVHVEWXQ4UE5kNzNadWhGWkVpS1VoU1hndVdsanVtVlJjZnpWMmJ2OWZyTXY4MEFaMFd3OHZHT3NVR2FxWjdId3RjTTRBc1NDbjVIdE1ZMUJraVlGem1wS0kzZlhWVmxBWkZPY2lLZGlLSGc5dURFWmRZRE1jNU1HTFdrR3BLai9GVHVhM3B6ZERPOW1GY2EwWHRrNGZaV2RDTnZVVmJNRVpwNHJSTnE0WDJUOWM0QW1aQUhnYUxNbFJBWkZ5UjJLTkswUmRXNEJRc3hvVGVVZS9SU2hKQUJGc0FIWERLQTJaM0FybitOQVpUK3ZnMU42MENueTFqNE5nUGtnclFOZE5EMktnTVVNQzhDUDhBQWhpaXJHTURUeVdGck1SajQ5bURKWmRhR2M0RmRYQlEyT3JOYmRlMDZTMEFmM1EyMXVIR1JCQ01LdDA5OXlXRXZDUlg2SXNyN0hiZ0NNbURYRmk3TndkZ3E1QXRwMnpTdGpBdno5VHlpUnlQanpScXh1aXcrcFdNRDVSNjluNFVvSGNRU0VBeGdoWlExdnREQnIzK0xBUXI2bDNhQUx1NTZnd0VvQmw4bjdMN0JBQW56WXJ4WE1JQXMwNWxPWW1hWVA2SlVyU0lWakVtYldHYWJOU3JMc3JiMGU2Z2hIT1V5VDhnbjZyWTFoOGdlNFdnWjZjM2l6NFNZTFpBYVEzc1J5NHRlVkYxVVFJekhxSVFXRHJIWWtBRXdxb1F1YnNNQUZldjFZS2NJOXFwb0xxcEtpckFJNjV1dmptZkRqMlhRYUNpQktaYUpvWmJSSlBqMXJ6R0FEZzBOa1pVbDhEY1lnTjAzR2FDdEFtNEtCcUQwTEhNaG9wRDh3bXJTUWZZU2Vxc3F3L2s4RUlJd2Rwd1FPT2tXOVhmdDRMRll2bm95OXN3ZmsrRm4wRmx5eFlvZ1hIaTBHTXZMdVlZYmpyak9PYlJTUGhsaThSeVdoaHhWWGJ4WXF3Ym5Jcnk2MDhueDhGeFpQWjIrMGtzRzhOQXo5TG84bklwdTZoUExmTzFGMXJiUlNDN1hxT0MveUFBS3FXUFc1Tk1mTW9BODdHY01rRWtnUE9ZN0dZREJ2c1NKZU9GVlJhbXU1d3RLemdLbTdOQzFsSktRa2RxOWkxUkY4V1pDQ3g5bWl6R3pTNlVOM0htUk9EYnR6YlV1OGJtcnFIT2R3aDZqZXAwQnRKbDVaUUluQUZSN0h3OTZHQmdJR2d5QTBMTVZlNTBCMUl4UTVyQjZYL29vb3VoNXIyRlJ5Ny9FQUo4ZkI1a3FGTG0veVFDT2xaMzhRZ2VJSkJBQjdrb0dzRnN3TVdGVUdkZkp1eHBFL2puSHUrc0hNK3NkS1AyU0czNWRJaWhTUzlhOHdwazl0RXlnUXJaQTQycWtIeG9RaktSSktld0xCbmk3dWdURWhzSEMvbW5NRDkxU3l6RzZFaEVadDdTVHlLRUwyTUxVd1ZJNkxGWVZsSGJMdjhRQWg4WVcwZTN2TGdFWjBObnR3bzdLMGI5a2dFZ0NFZkRPTmdORW5iak1iRERzaHV4dG95dDZGL2t1UkNtNkR0MHYwNldSdDlqWTYwS0VyUW9ranp3REh4ZmpWekFBVlRoa1M2bVZRR0t0RnRKU0FpRGhvaUUvL1FaUWtBRVJRZTkxQmhqRE9KRUZOc01aOUpjWVFLaGdTWmZNK2ZVYkRCRHlTTlVjR2NQYmRvQUVETlBnYzZxWGdNV2NIQUFaNTVqYkJGUzgxQXlRUTE5dWk2NHpRSUhzY05YUVd6bFEyVnN4UUQvYXp4Z2cxcWVWNm5EY0Jyb1dZUVdFaS9MK3hPMkxFQThkZ09pWXd4eTlOeG5BdlJrcVZ3NG9Bb0NZZ3BzTXdIVk83Q1M5U3hFbWZIZ3hYTkI2YWREOU5RT1FtN25SU1F2WUZRWWd6Q3Z4d3FkS0NkUnJtWSs3V2srSnYvOWZNY0EyR2NCN2U5NEc1VXlKM21BQXdGdWpkVzR1QWU5Wlp4dlZ0SnRhWDlCMFJZTmtBTDZRQWtLVEFaeFk2TDNOQU83UGxFbGpDY21GL2c1TXRYenpvNXBVOWlRUkdUbU9oQnJxSnVSaXVMQ2hvdC9xTnhoZ1hKZzYwZ1orbFFHWThpQVNRWllNTUFKMFVUNituWHFtaERGQ3lwclNZMkxIRlB2U05Eck1CRGFYT2dDdDQxeHZWdndQVCtRV2xyMHNGQnFrWG8ya2RYWXJRR2xLWVYvNEF0eVZCenNPbDlIOEVxaXR5UUFjUUd3am5BRml5RWF3Sk4xa0FPSVN0Rnk1ZUhOeEZqTmpVUUpCRWp1cDBwTTRYeENQNk5zWXN1cFZVekRWZ0o4eGdLZmVjUXg2QlpQS3NyekpBRXg1a05qT1pBQjRvQUJleGJFYkVxRFlCUXdkU2srQUxidkIvSmU3Z0NGeGxnbEN3UWNxVFdnS0RKaStiaGxRKzRUYk5XNFpPMHIvZVE4ZzA0U0htN0FuL2RKcStDbmFHU3ZrdnZPK2NrUFZackc5TFBDOXV6UWs1SnNobVRuczdsZWhpOFFsc0lTOXM4bHBIS1pvVUpVTTROdmJneW9Wb1ZmZ1ZMTHE0bEpnam5aUUE5SkhpTFdQdU1OZ0FMYy9iR3AzQjB0TjFXVjVqUUU0Y0ludXJoaEFvWXNrYWJIOWd2U20xRTgvcUFyVXpIN3ZDVFZsOWFuY0VXa0hnUGpEYzhNT0lPUkRGZ3lZQW8zVVdLdUorSjVIWG4wT3FsREtmWWRLNlJUMllRbmN2Tk52Z0R6T1ZrMTdiT29zTTJnc0RwUkNDS0xTWHBnU29ScW1WMFgwQmUwOWVFTHVTd2I0K2k1TDJJT2trVlhRVENjTG42dTBuWnA3d1FnWjl1azVPdGZ1c3llcDVhbFc4eVpOK2p1c2ZZWTdoSXRJcnc4TDVMTEdTVEVTcGwyV1YzTUYxMzZnNWI1a0FJMHBoM2pIRU9jdVFDVm55RFBEU0RLSlZacjgxTFZDSGNJY2ttdU1wMHVBaFJvVDRHc015RjVpdXhIcDRkWTlHMzFRaXF6bEQxejRoaXNUWm5BR3lkUktrQ25TKzFQaUsvME4zVTRMODBKT0pZUFh6Z1FONGtwMmsrOWliOE1KbGdJM0dZQ2RKbWt3d3ZSUTBKbmgza0R6bnREQkdIaGdFOW83ZEhyVVRwQmFqYjZkQVhzUlpVQVlLWEdIc0VVV1BvZ2xDeUk5RTVYR2dwSjFXVjRraTZiZ2ljeUJKUU9vWTI2VklGOE1HNmE2Q0paNVp1RHdvQ2NZQ0t0TU5XSkRzMjRpN0ZOL2tjdGxraDA4MnFEVVdSQy9nTExGNkxYUjExN1RSUUQ0RGg5L1J0K0ZzT2UwSWdOZ0ppU1FHQ1dwZUYrUVpkNExER3ZwVG93WXdyRUZuMWh2U3RoTklYQlpnTWREOCtHNFpLa0Ntcy9wenN5UXF5S2ltSVNrajlvTHZ6dTRORWk5QmFuWnE3R1poSkU2R09oK0NyUXdvOTgzQUpVZ3pGNmJZU1FRTVpsbGVXZFdMOERtYWVZT0xSbGczc3doVHZ1RGNxcHpQa0tqOWtyZUdEaTZDS1EzNG45SDdJNEVObzRSWG5QMEdXKzByQnkwYXdiL1JLQXRISTNxK2QxU0FiTUpOSi83aG92NUxISUdaY2s5MENDQnhGWk5QYjNNdTFWZ1dNdUFnb3dpTm84MGUwUENMbXVCZTJKZVRTOWh6MXFXckt6b3FSb3k2Rkk1d0RBRkV4SVNyT3A0MU1temcwdEJhdndBZEppOUc2L0JmTys0UTdVUEVTMk1LQ3VyT3owbW9oVDFmazhPZElwS3YyQ0E5QVBacWxBd2dCWWVvM011NE5BbzNFVzMzNW5nOVVoZzBldVp2cEVJZ0VrM1hQd21tUUlqek5GbjJmcFRyYk00TUdMam93L2hSNHZVeWVQOEFGVmNqV3pEZFpvVk02akkxMzlzb1lxQmtMUTRFNXpiVFF3cnZkMW9pU1BnV2hxZGpCNXBDVnpHd05ZbDdLM21kYVJxUVBPdzY2enhyaTJ3TjZ5SkhzaTVJUFVMb01QczFldlJwbzdKQWpxY0ZCNFRKanoxSTRpOWhVQ1E5bmhmNGRUdW9HUmt5WWRnZ0tacHNIUng5c1pVei9sNHRraU1DS1V5cUx4bnFtR1IyTzBRM2E2R0VDTXNqWk9DRWVBdGJEZWhVYTNlNGZNVEFWT2NRQ0NLM0JpOSszSUdaYjcrWXd0VkhMVks5UTVLbGdJcXU4a3krWlNsRHZqeDNwU3dJWEF6Q0xwVndoNkkxV05CNjZTZjlBYTBNZXFGSDRsSDFSYkl1WnJVN0JWc0dvdkY0ellKWUxWeXI0SHhpREw0ZXpDOXdkWlFhaGdsT0V3SFlEMVJWd0Y5SlVNQTRqbG5MejMvaUJibWZQVFFjbkQ1bTBvcWpLZVZjajU2RFhJTzg3UGhrd3M0MW9Sblc3WGdXbWRoVmhQdGZRL0U5elBSVmc3aUkrRG8xYXZhWHBsQlk0aTBOcEFZTzdhQWRyOEZXUmhXak44dVN4V1p0cm5vVmNoZ0NseURRUUE2a3lYc3ZmWWlrWk1WVlExTnQzSDQvcU5mRUhoVW5xK0Mya205U2R5cFFtcVJYWURqUUFnN0lLcUI4Y0F3Nmo4UXBaQ0RKcks4ZWpKTHdPa1NrSWxOZFhDSWtFTGo3T1hwSitJRllqNHE4YUsyL3h2SDg1NDRFdWtHMUxEc2R0UzZ0TEo3aGhZNkMzbzNLSnB1ZUduMnZpaG9GNTA2VGc0NTFEc1l1UHAwTVlQUUQ3SVVRR0xna0lJc0xPMnZnaE5WOW9uWHo5VlNENHpMWHZ6R0lmN0VQVm5RSHc4bVdvdGlvVVFSZzlBNFBTVEQyNXVMREZUWFBXVnlGMExjbGRRRjdqUTQzcGNYVDJMQnVVVEVtOHBSenpHRHVDMHFMYnFEQTJxS1JZUHVpRkFsMGtOYjR2MkZqWHoyWXBvU01SVHpNVW10WUdEbjJySEtxS09Oc25aclB6bGZtWVdqaEc0UW1vamZRbWVKWWNlQjZHVWZ6dzVNNDRaSVV1a0pZcHA4UENuOTg5WGtlZ0RzajBvdW9MbTE4U2lQQjZaMTR4eUdmdllhOCtrUkhMTEpxSitWcUlUazFTVUhZWlByUGFicDVtUjRFd0ljbjU0VXcwOGtqRlp4cHM2QTZ1L2tpOFNkZ2xTRURsUEJMTExFNmRuTXpxSWJSdjBYMjZsd1Z1cldSdkZDMktaYXhSREhxQU9RanBaNC8zcFMrMVIvcWI4UjJNQWxocEdOcDhlU2hpTmdabU1BL2hiU2pqR2NlWkZtd1FnbzkzdmthNUJlRUxSTzJSQW83NzJ1SUlGbWZJQlFzSDVmRng3NEdlT2x5TklacGlCbW00c3VOSmVoaW5yTmhkOFpuWWhpZVgxVkZGckxEK2ljaVp4eWRudzdSU2RLdkZ3SnZ3bVMxTkJScmU5TkpBeXJPR1BYSUowV002MmtMbkduSXdTc28vNkhiVEVaSE91eG1MUTlOVDNkUUNNYzNGUGpuNnNpdHBheDZnNUx5LzI5Zmtqa1B1QWtmZWZNSWFsRWZtTzJjZ0pUeWpIVkJZYng2YldBeStlU2JBTmNKQzZKazhCc1hMWWhaVW9vOTh0clp0emxnbGNuYllFK2NLUllnZjdtY01ZM1I3UlNNNlIyOHBJS2w2NERvYnkwaVBQdGlmWU1MT2RMM2JmU0dhOWZ3T2FJaEFUbFlubk05YkdnS0ZkVDRvc3RaU3VBKzZKV094Sm1uMEhvRExzRVRkRkwzR251ZXhuRnZHN1UxRUxqVTlhbFV5OTVHT3VpTm9KYU1nZjBxNU1CTnE1eEtHRXozNG0wV0xteWw3UFZwMlk1eUJ4R2JZVExveGVpYk9zMWxJemdXSFFJQWFhRzdtcEpDZVhHYWN5NGUrUU15N1JOMEFoRDJVaXlrQzQyQWQxRjE4WGd5ekwzWnNobXk1dWIyNWR5b3dMb2IyNytJVnVKUHlTRVdReUxQRFFhWW1QSzR1RlFrRk5EUm5COFVsUmJZQkJPTTdxa1pZb0NkZFF4MDNFR29VdWJPNllUVzZjTDNHa1p4ZHhuTEtiYUdNSzJHeENuVEtXTHdzcFd5UDZWRE1DY0pESnA3alAvRVJWaVR1b0g5dVpzTFJNVEVoczY1REFTTHUrR0daaEZ1bEZEaVdBQm5JUTVFa2h2TXgrVlVHNGFXckFEcFNTZFpPSzJJUmRJbTVZa3l4a1dCdERsZ1FJbXJFT0NxbEttSW5Pb2RoQUdqQlp4aUhUb3dOSkU0QUdleEVxcWdDVFFDRVdZTE9qc1cyU2d0ZkI5bTFrSkt5Z1RPaStMd3ZMOVR5OHdROHN4MHp4N3pQUW1UT0lMSnBmT1FGcEVNU000bGhHVEhFTFVRd2FlaWNEWGdHa0RvV1FzQkNWUUJaUzJwNGN5QTlvcDgxOWs5dnZZVHpQL2dnMHlzYUVkbXVEOG1mNUVIVm1GOEpoZHprdlI5aHdDSEpHWVJHZ21sRnNCVnBGeEY1S1V4R0xxUmtjRWZTT3poSk9sYVl3dUlXRG9ZVkdraDBZTHFscHNFenFqbk9Wb0VvZlZwRERqRURJRUttQzBQT2pqakxrb2gzQlBTQ2lhU0hBRmcrTnQ4aEpOeDJrYUZ2SGxkUW13TFB3cTZmeGd1V0hVRzFmY0tSMW9HZFdRd2JGcFBnVmJBM21EeDdsSm1veUw2V1pLb1BZYmpLWE1nYmpFbUxwWmpkdEVuNjIxMnFuQXdpdHVMREtpREM3Z2Z2VE5FVWZlQkFUWUdLQnZFRVNhbXdubFZtOXlaTnpsRE12a3JaaVltZG5GSzJXQ2xvRk84UUlaNGdrMmZIWkhtZDlyUFlabDg1REVnY3JNaUdicGFvaU5lMDFzSEFQRUdrRE5ES0QrWHFUb2I5YkNoUkV4NjZHaVZ1NGxmV0xqVWdjWTlPUjlvUU9NR1J4cnZsSlB2MXVVQUZIY3FZZXdaZlhrNGFRc2FVQzJMdXZNSXBVZkJCRVlGLzRhR2pEdlZMZ1l1R0diZVUrWkt0VmdjcWdvWEpYMGh0NUpLVWVSdzFnNitUKytYaFJyMWI0Rm83OERXaFlRWURwMjVDb01aUmwxVXNhdWVJWDdQdkFFSW1kNWZXUjJRV3BuakxMd3dRRVRrTG5OTE5wbGg2QkhXVExubEVYN1UwQkpjTms4RVpTempHZ0dOczZCRVZYSi9nRmlmK2xFUS9Ka3p0R3pHSzZqV0ZZRWl5dWhFZHJPSVBiVURVclVXeEZFTVl4eVl1V2dESXNpVUVYOTlKSUJuSzJ0V0FDSGxSSGRmV1hwMEJjUUVYSm5JRGZlVy9tSmQzbkZtTnA4cWpKWUwvcktSNGVBQUkzRFk3NHVRMW5vVVpCT1VDMldMVUlMNTFqZ0VITm52a1NPL2cwR0FKUGgyUU9NY0s4SjBUenphYW54QVdnOWFFQkZTUWdkUi95NzZtVjVkRWhuZWplRE9Qak1Bc0JZUm9IdHE1TDlvdXVmUGRneWt5ZXZOVVZ0SFJ3ZkZKME1pd3BobDVCRGVsc2lyRFkvL3dZRGhFRFd3dmU1QkJSc0xjZ2JobTdqUGJpSVdBZ01uWml5Qkd3OTZYMFVJOC9xc3loVWRtZ1dWZlNmem5QcE5UWnlTQTZtU3huTTV2N1NnUW1ZVGtFUFZVWGhhOERsWEQzSmVtMEd5SWh0Z1BsRCtnem1Ya1RacCtWaXJ2ZUVLemNQOHBYQkFCWlpPZWRWM0M5amxobHhNaGw2d1FCeUFrbUdQRXdaYkQxNVpsRWNIUFJLWUFyZWVjYnl3UU5aeTBvTzROc3pIVGwxQTY0K3J0ZXRHSGNXcEs0eFMrY285MExQRXpKK0NQc3ZXZ2dwVlFLVEVTT3dSRENTVlJ5THVZUEJFbEhKUHUvQzhKclBpZ0ZNN1NTc2l6QWJCbmtOazJZMFBWNnBlYi96QmdrQVZieHI4UzAzSlFBVlhxVS9kcjJOL3VGQlRDUmtNeGowTGNKam5nZERBb3p3N3hwKzd6TDJsWFVFa1BvL3FtK25KSmFsbEpBbU1Tek0yRzg5V2hkTDdwY1JzQTdFZVMxS0FKZXpvOXZOTk5XY3B3bEV4T3RXQ05OMmlHOHFnY1J3UWsrbkFPOGZYTDNNV015T2NNdTZaRVRnc2JYSkxaSUJzcHhDVVZJdjBWZnR1RlhLT2Fvb2tkbmVXS2VNLzc5YTh4NmRYU1lCcDVsNkdaa1Jiak9BblVJcjFueXVTcUxNQkdOQVRrdnBHZlFYdlo3SmZ6OVk2d0RDRjRTZExrOVphQTRuTWlMWTlTaUdsODJkTnJibm5aYmwvcm5aNm5tY09jY0FWdHh1RkEvTzlYRWdkZ09tUzZ2bmFWR1M1am9EVUFEMitpcVBzeElHck5YNEJ1dzdDQjJQR2dob2dkSkFZTWxLTjdhTnRKSUJvdmpMMmVIRVdBR3krdXpWQVBDSmk0dW50N0xxUWsyenk1cjNTQ0VjWlFDWWREUnBmcHNCU09OVlQya0pZc3E5SyttRzBvYnlFaXY4eTRQMzFTNkFLd1A4bFV6QkYwOTRhOWNaUXpxOXhRSVJUcDZSY0ZyV0k0UnhqblNHbmRXR2FUS3FDZ2R5TDJReGNEMmtTVkIxcnhhYjhlUWJET0RCVG9hL25qdENDQ1ljYkpZQnFMWFEvNnFDYWVKYkVyV2lyVndDT05ubFBDK0ZHelhRR0dSL2pRRXE4QTE3YXdhNFd2TitvOTdkL0RMNGZIL0ZBTHdaYUN5TUppdzZrczJQdm00VmZ5NmZyNlRmV1ZyTTNad2pXdG9CTFBCcGlFVHlwYVlIR0hjWjU4dzlwNkRCRDQwU3phZHowQWNpV0kzRlpBMk9nVjdlUFZlbFE4ZjNqRDVid0c3Z3RnWnlEQ0tsSWFQNExkY1o0SjNoam90R1NlMzJJVXNyQ3cvQmVSZmxBYk9HTVZzTmlPODNJbXNyQ1ZBSW94RHFUaE9BaFpJQjJxVG0yQkVYMEZ0VkRIQzE1djI0WFF0cXR2OHRCdUFrMzVrK2g1eU5DdFhOOVZlWlFSbEF4QnRTckVrSGFlbEdLbWdOS0Z6TkdPbVNBWExreVRVT2cvN1EzZWJPQmYyMFBpc3owaFlNRUhWajdDU0l2QzRzTUgyTmdhU2cvaFdhcG1ZQW9wT0F2eGEySlA0YXJnQnR3Z1NqODBYSncyamtMSUlPTG5TQTJLK3ZmUVZnZGtPZWRvc0I2cXJuTENWUjlGNnRlVC8rZzJwd3d3czQwZHdZZ0g3dVRvc0JWaU1xZ1VxellJRDBCZXlnSi9iV2JnZXJHYUNTQUJtTWpCM2Z3RlU5cHcva1pKbVJsaE9hREFDOFlkd0tIZ3BZNXRhUnBlaVBHSURTdE1aZkV5RkZFMDZCeVhTalVaYXZnNG1WRWdkZ21wb0Jzckl5TkViNkU1SW12MTRDN2d0NCtDcG9WdFc4LzJNR0FFRHEvQWNTUUFmV2xjQm1vT1RqN3AyT3FpNU1BQnBKdkdDbWtTczZ3TUV1aXJRRVBWaDBFaWRZNlFCVlJsb1NUbDhPWHh4RHh0eHZxR1ZZb0RSTHhha3NkVitrR1FITkU5VE5sK0JsaVpGY3FKaWVZQlVoN2pHRDk1SHdiR1ZLQ2k3a3NHTDRKeXdmbjdYVjUwYndWTXh0aDNTVkFiYkVnSEY1SVlwVUVUVUgxOXZxbXZkL3lBQXkrTmp4L0VRSDJNMjVicm9TT0RJbDBIUUExeEJuY0ZVREJpQ2tiRVFsd1M0aENoOHhGVUVBWHhObUNDWkUwcEplR2pMQitFYVdseklqN1lzZkdFRXFjOGlxM0cvYkNkTWtVTnZMc212ZEdqZEZVc2NmSmFxL3RQbjV1RUZMQVZ0VUpROWhrNFQ3cjhLZGlReHNIS0VFQmdqejFnS1BBMVdXUkY4eEM5RUZBNGducGxOWnFqRmhrTFBzNEF4UTE3ei9Zd2I0NkJNZzVma2pidXdDS0xCeEVBelE2ZW0vc1VlYzdTTkZlcitudkhHV29XcUJ2blJGd0toZExFTXdoaTBpVFU2WWlMR1hNS2xmNkZpWTNxamlSd1pJWG9MbFNOK0MvVC9McW9IUndiaVQ4Zkx1cTJML3phM0hJcjJCZzhvU2FCcWpFNGxLb0ExclBHNG1EQkFaWWo3VnFtV1FzVElYaEE3M1I4VUFtSjM1UkF4TDVKVnNuR1pWemZzLzF3RWF4WmpNM2JORUhyMXVCd2dqUVRJQWZtWmlFL05WckhlOWhVeDNJVTdjbEM0V05ldGxQY25TOGdyWG5KdTh2SklpUERwRHF5bk1hUmR3VDVpQ3E1MXo0aGhIblRRZE9tb1p0ZFNaYklQZll0MFk5eXB2SDVPUHVKOGhraE5IUE1ENU1uai8wS2ZCM25kRFdBTG5rZkYwTHd3dzgrTEtyS2hMbTZkOGFlRGthZ1pRWjF5VFQ5d1VtV1huNjFoVXE1cjNmODRBOFByQ3QveExTNkFkYk1UVTBqUXdad25yOStzNjExWmpWNFIwczBzR0NDNVhpUVpyT25mQlNVM1RIVC9sREZneU53bFd0RU5od01uNnpnTUVVN3Z0ck1BeERteld1UE1BZDBJS0xXVGpaQTF5M2dmZG9UR08wY3Y1SzUvUGt4M2ZSUCtvWTJ6Q3lVMWNzQVVtTUM3Q1Fvb2lESHdHSGVBOTY0QVNITUFVKzRHVGF5MEJ1cUZCYVU1SDlXakZOZWFXRGdhb2E5Ny9PUU9zcEVWMHlVOTlBV01YOFd0a25qenZrTk4zWjNIT0pzME0rNlFMaU9xSFpJQnc0ZEsxQi9kN1JscWtsMUJrSHIycWtLVHUrS3BLOXVNRmpYTDBCMU0wNkx1Ri8xZ3ZOUGRoSnRHVGxpQWIzZ2ZkaDc3WC9YWkRFRWpOUUtIRVRSVXhnUmZCK3g0WkVhZ1pCQldPaWpEd08xUXVnajlnUVJNekFVMkprN3ZRQVhyck1xb2dvc1dscFZwOXRlYjlIMjBEaDhPSUwwdHY0UHpTRzdpTVBQc3l6VERQbFA2c1czOGtBelR3N1BVVnB0M25STThxNnlBTzhpQ1FtcTYvbU5OTGhDNWgyVnhPS0hZUFdiSWY1U05rdkFodVRGOHB3R0lJVmNCY0NwRE54aW9zREJEQ3d1QUdsQ3l3ODlIZDI3SHVkNGJjWUFMTHlRaGJZSW1TT2p5akhielAyQ2dMMEdOWXNVZjRMSFViYUpXTFpDWms0QU5DVmlIVmQyaFVNSk1CcklCeGx4aXdZOWFYcUswRDdacjNmMWdVL09rcGdrZG5QNHNIeVB5RlFwVkd0eDNoWHAxWndSaXJ6enRFTW40OVROSEJwT05HSElUM0VHWElyL2N3cmw3anNHeS9CRjVjQWlFaE5DMGthSFIyMzRkRlN4anFWUW5OR0RMcHRnc1lHeGVZUTRKc29oRE5HZDFlOTN0R2lMTlIybUthbUVuNUVoZEFjclRLSjhySkVWTHJrWCtBaDk2cGpLcWNqQlpLYVhwZGIzZm01clZPQitXVkpCd0R4SmpzTXYvSTFacjNmMVlWL2lWTHN2MHNJc2psRlVkZmptVXAvZStNdis1dUtkTFduT2dNL2F3RC9DemUrakZpQlFHUXprckFXWmdkaHdJSWlYY0E1VXp5Y2tMYSttaXlWeGZJcVBITzZGaGlEalB5MlBGMDdHWmxGZys3SGFKTlBLcFJ1aStRUWRJcWhBS3dKU2d1T1l0cWFsbjVVT3NGSU5XN2hnNWtob0JqZU1yNnRwV2dxN213QTFTMVpMNElpcW1xRVR4ZXJYbS85RGlSQ3daZ21vdktOVGlXQnBUSjhXY3hnY2RUakg3VXg1aUFMbGJkeVVaNjh1elFYMXhLMFFFWm1paFRZZzl4dnd6bFRsaDJwRjNvOEpBRElma09jalBHaFdmRUpBT1dDV1I4TGk0QVdPL1pzUWMxbmc1TmlCcW90L2NNaWJlNDVxT0JqdDZyNHBZQXhDaWNMSVAzdmJ3c3dHaUUxV2dqUEJnTUlPdC94a1BKamJFTGlQUy80V291TFlGdlVVM3FCMkZ4clhvazEydmV6MXJWN2NBQUxOV0V2VTJhenNBZjBnRGp1SXdLbmtSVThGZU8vb2dWOHpITWpsckJTS3ZNMCt1bDZlR2NXQURjdElQOGdTWjhkcnhBd3JLSkdLSFlWYWdCeVJrRTlaT2RwQWFFU1NSSm9FejBnRS9VRExFbjh1VGxqZDFLT0paOERsQU1rUTFhZmV4NHJiZ2xTbUxPck5Kc0FCZ0pLUTZzRFdBelFBY3pWSVR1Wk5iNVhUS0ZSWlZpYUZ5VkJIZjRtOXlFNWJxZ09EQ3p3YTJhOTZlcXZpVVZUdS9SNTRmeEhJZFJvUStJak51NEFEbk0wU2VpcWtLdGZSR2RxVEtQME44RW1RbzVBYm1yWUQ3YUNFS3g5a1poU3JIclNLL0VUTEV0Q1c1TWtxYnNmU1NXTEJGTkozbEtZQTZCR0dUWlN3VzRFZU5tM1VRWWd0VHZEaHFXRytzaHZZYkZMYk5HTVhnUzROR0VNQXYzNnVxU1dCdWhzOUpmR01DaVFnY1JFeTJ6aHRqK1ZrV0Zka253MCttb0wvZVBOSlVDdGd6bVpMbGE4MzdmcW5CNy9NNXlqVkU2S1lvanpUQW50QW5HNmlveTZDaUh5OUUzWkRBbkZGQ2dPa0FFMkdMQ09jaVV1RExJMEVTWnNrVHRpWUJPWUtiS1NzQ0I5WlFqTDRTM1RjZUduREowWXBSL0R0bkxPUXFLQnA0ZkwyLzNjcUllSWFQeE5zcHNpbUpEWFU2dE4rOFlZNityT2RZcEQxVGl0NVY5TzJhVmNodG9PVUROeWN1akJ3YUhXQnZRLzk4N3F3L1ZBZEtDdFUwTnVwb3JHaUV6clpMZytuUnR4Z0VVeEc4NVdhN1Z2RC9WTmE0eFFkaEQxaFdDRUpOSnVDd3BwY0swWGM3NWhDRWtVSDVXb0xBcG5EaHZ4c1R3NnZWVEcveEVsdUk2LzlzaGNUaWJRRlRYbURZT2hBT3kyNTlWNHlGTEljdS9nTGdLS1F6VVpSWmVQRldEZ2F1QmVzZGtjYjdJTEFQSy9UYTk4RllzMUl6RzRtWWdWd3J5U0dNQ0t3YnNIcXZFMmlnRC9QdXZ4Z01BRUlJUythQnFwaldJclFRT3RVdUNvK0Y4b2IvRGMzT3lIRSt0bXZmc2pTcjNuQ0NjYmV6SnlZS3plUXdaVFZ3TUpzQVBoL09STE95c09HKzgxN0VFclJKcmoxYlAraGw1ckYwc0U2V2JzejQ4ZENhUmRWSGp1VzV2VlBtOXFqZi9rdjZpUkgzZ3JxSGVVM1h4RWFYSW5BeXhYSUl6b3Z5eFRVaGRITEhBNHEyOEhMMDJGRGRqeHJCVTVTS1JVVVQxcjJCZ1paSkFaWUQvM3NtM1JGS0xEVmNXNUM5b3B4ZzYxU1hCVHpFMUFiVWxRRHd5SnNUbU1KdHZTS21ZNEZqVzNaYkhKZVlRTnpadHpBYUNpSGhjSEhrdktpRURKZGhFc1pIZklhTkdLVndCN1F0dzdjdDFuenBHRnNzazV1bTV0SnFvc0dQTlNmUm53NHBXQWgzanI1ZVV3akRmUncxVVdtMURwa0pwVXJzT0ZHYWxOemZhV0NhcEFlOVV4UVptQzJJWkVodExCUDBVZllhMmN3ZnNlVzVCYy85Uk04QXBrMXFNSVNveHM3aGppTG1LQTJWSmNJTHhNYWhGaW9nczBmeHRPZ0VicDRYdnZUSlZDYmEvSkd3TGMvajluVlBFOHJCZ29UTXhpQTRxNjlxZzk4bUhVR3BTL1UvUUtxNXd1TzZGNXE5ZlRIUXZ1NGw1cXRObm1NTHJtTEpzYnJFT0lTdVRrSC9KbFE1MlpNQWViRHlaN293bDR1Q3pmNElGdDRjdHM5QTdjazBSUzN3RzlrM0loNmVQdUpTREFkS2xsK1ljbHdvOXV1MFl1aDdiL1M5akFKbTc0eHJHeitVYlRiaUNmOWFsMThzYTRLZGo0cXl6UkxQaHFOREJCc3VZSVFtaHgwKzhiMGF1b0lJZmU3aTlJZUNaMTlDTDFtd3o3MFZ1TkZTRGdXQ003RHlFREJLMFNxdzlFTTczMWQ3ZkNsTGp6cTFpbVZOemlwYWVFeXgyWGc2ekY2MzBXVUhJaWszZC90SXJEZXhZcERtV05oaWw1MVorK3NFdURDY3d2TXZmYXMrQ2Q5WWRHZzFUMitQcHUxekt2N0xvdzZlNzlPU0FPY0xDMld3ZUgwZCt6STVrQU52WlloVnpHUCtzVEtyamlHRGFwTkRhTmNBTG5IV1VhQ1pQcnJJRjdHcHJTVXBHNklOd3BhdkNqZHEwNGhHa1NUQ3JaV1lpaGdBZE5oRmhha0E1TnhYTHoyV2hXMEpHdFFWS0VqeFZXUC9BU25YTnNUV2hoWXdDVHQrcE1zQTNoaFV1OTZJcFdkcWw0eGptd2JCazJGS1pmNDF1M25lRzRsUnA4QThMNWhZWGVsdmx1YzNKUzNZNjhBNityNVRrRUVvZTFoTmhYVnc1bmtQc3Y5S1ZEVjVGZXBqL0tBT1liUXVybU1QNE4yVmFMZjdKSERMZmFPMGE0SW16enJxQk5QQ3NvM0VVMzVtcVpLZEVJRkp5T1MzcndKMGR1c28xek9Ic1NDYUhja0Y5ZEdDODVTTExXU1lYQ1FWWnlVckZ4ekpLUFFEZnh2S2F0UE92dy81djFnL2pWZ1kxaENlbkRnSmxMamg4UEh5OG41bkluZ3dRMFhHQ3ROUXpHTm9UY1VlMGc3dWNwdFQrTEJoQTJBOFNBRVcrV2RVNkdHRGRhN3pJZ0R2RGxkZUx5bytIZVlUMno0N3NEaWpMOE1vSzhGL3hCbDdDK012RWVnNUFZeUpSRzROV0RmREVXU1BUUHhtQVFGODJIOFdJUWRXNk9qdzVRTnpBSExxYk9mT1dlMFlUUERlVDFETDJSVk11dzNNdXI2QStHTUM0S0JSWjZrR3g5Z05NdXJGNytyS1NKTjZBOTBJQVJJQW5MeGtBWTAwMzhxSk1aRzhMYndZWlRURGFrTWZwYW5jR1lPakZDNmRuR2VLbGxRb3N1anhRVExMZk1VeVNoQVNEQWZCMGVyUTJLTjZhUlI5Njg5S21EOEhnd1ZzT2hDTWxqUUgrNTQ2K1pqZzlITTlVcHRZa0lwZ2tZRkh3dWdZNDEwVGlyTWtBbUw0SVFHVmptSGFad0lRT29Nd1VYSWEyYkJ5OWxTbHRzc0JzVkVyVUg2d21NMUZoWVVIUVVFRUNtWUNRSkpDZ1Jsa05zZ3hja1FZWDJONEdmSEhKQU5RQUxYd0k2WlNaeWQ2b0VmbTBRVUVyZkRGa2o1NUFobVpGb1FjR2ZySVFodGxJTzhZQUhVY3htYkdSK3dWakFDRUltQU8rQWlwTEpIUXo2QzA4R0lvbG1aUHVpTnlNbExCQ2Z6QUFJdm9HRFp6cERLVWxrV3d5RTVlWURQQVBHU0REZ2kxY2d6aHI3RU9ydWhObFdZY3BvZndxMVRVVHJjV3JlT0JVNDhGdHZBWEw5cTROeitYMVJTUHZSY1JGNzliS0FCYjQ2d3d3UyttM1lpQnNwOER3QUNXNW16UEV1MFRVbFNGNmJRWUlEUkI1enVIVFRBMjNxcW9EWXZYaFloMUZkWjFnQUlKd1NSdU9ybVcvTkFid09lNlpGRzA3UkFaUTVnQ2thR0tWc00xMHo3cE04ckJNKzFxdEFmeGZIdU1LOFAvdTRQYVJTUVpKeWpDVzBpZWJEcUMyQk1paURFVTFxUTR0VVltOVE0bGt6NGlNdFlNYklkTzRLMHo0cWlnT1JqMXlvcXBocFFRaTUzSTRIRHRhL3czZzhoRld6WTR0QWZicEpJYktaWXFtS3Q0NVB5SEN0Q2twb2IxZE1rQ2hBWDQwZEdxalZaV1IrMFlsK1hTbDF5aFZnSmdUckd4aTYwVmtZOWRkS3huQVFwak00WWpkaTFxQ3lBQmtEbTA2MUpSMld4WWt3VHJBMkU2b2dUd2lmZWRZaW5JRitIOTM5T0ZxZ0pOSHpGOW5nTnNTSUpiMVhTY1R1akxMQXVhQXRLRmxSQzdXamkxSzl4V1ZDT1pLUFZESFZ4SFRJejNOY3lKNkd4MVBZcU5BSVlCQll0V2tUeitwRjRrVVhoOExkN1BQK1dTQXk0cEROUU53YThHeUdCYm9oa2IvRjVWVVFLbzB4R3FOcGNreEd3L0pBT3doSG9NTWdPQTJNb0RPY2FacDVhMlh3UUJnampPK3FOUVJ5V2R5MU5PNEk5MVZ4dnNWNEYrekFoa0Q0SHNTeGovVXFmYUhFaURXSDIwZVZwRzF6YmkxQmllWEZ3NVgvdW5wQTU1a0lURllTbk10U2dZZ3REUWtnQ3dSalhBQVYwMG1PZHJBQmtEcURlSHR3TGNWN21ZQWdDbnpnZ0VTOVpZNGpXQ0ExQUIxUUhlc1c1VGhJaWFoaXBtSU9EdGlBT1VPR1ExanNEc1RPc0VBczJBQW9KaVE1R1hPV04rQ0FRYVc2cUpoMFdJdWxheVhNNnJJL0VYMUVjOHNWNEJqckFCMzlPRWovTVVEbHY2VUFiZ0RXVGRsVmhwdWloZTlJdXB0ZXAwQjBnZXMrbzNyQUpCNnczSk5xQ0lLVXdkWW5mVXhMaGd6aDFxM1kyZ2RFSDh5d1lxWmp4TFZOMGNreTA2aTRsQy8vTEprZ05BQW9Ud1dHRnd2d3JRRXFBaVVzQm1oc3pGaDUvbjZjNFQ4Rzk3cmdnSDZhL3QvMVo4amp6c1pvR2tRRzZ2YWJVUlZGZlllQ3pMUHZYN3VEeFk5Y0VnYUFiZ0NNRVhNdk9jRnVuK2hBOEQ5WGpNQXNWa0xvcGNqdEpMeTA3Zlc2TDNCQVBReUlVNDJUQlhNdkxYMmhDYVhESUFmR25HdFk0SlZjK0JKam96OWVvcmo0aTd0RlM2dGNEYy9VOW5MMEhMYVREdXE0VjFuQUdxQXFKT0xtbm9mQjJ0a2dBUlV6SGVReElpMEhBUkw1K3NibTF2bXpvSUJIcG14U1pVWmtTRDZZWDRNbVI3VmZObFRRU2ZjbnRWS1dQa3hLdWxSamFZcGdBY1ZGL1ZSR3dGMEQwQUdrR0xlckF5QThmZ0pBOUFRZUFtc1JPU1FDdU5EUGFrTVd2REIyakEzR0FBK1lPUWFheUlObmxWZjJHWFI2UEh5a2dFc0RWVmZ3M1liZ0VjanlSRzU4dU16N1RRYUNEUERvK1JaQ082VlM3SzhDZVAzc1JHcEdNQ3pSSm5MbFVtQ09sQ3QxbXhrQU5OOFFYSE0wN054NW1XaG9RR1dDWkNrR04yTitSaWd6S2lpb3N0OU1BQ2VqWjFMTXppcmlBQUQwS2VFb1k1V0xQWEhGQStzYlAxYXFZQmtBQzNtM1V1d3oyMEdPQzNSS2dZSVN2ZDJ4S216N2pvTTNRWXVDdERGZFFaUXQyM1VENmVkMThMOWU1NFJBNDZKbWdHWXpROUxwUXc0eHVWelVUSUFRcmREUkd0OGhYcUlhUTFHdERldGprVWRJdXlIRGhVRDhDVlRBMXlzSVdzSlgwZ1hlNkVFSU1vYTFiaTRwNmhxelptcUJwSVVvd3VIQkUwQXFxakl4NlVOQkJaYk13RWdJeFlZQUN0MkxQUGt4bFQyUzFPQUlOeWlPQ3pOd01rQUtPYWRxTFBiRE9BSnVkc000Qm15OUVtbHllVzhFN3NBeXZCUmp0OWdBQjg1Z0toU2gwQ1dEcXhMVDRpeXF4bUFHWFJScUFRbUFCa1hwNWI3Y1d3Sm9DYTFuRmtNZTlJZmVSNVZ4ODQ2UkJxODd5U3JHU0Ewd00reWxpMmE1eGhkUnZsQzhCQktNbU95dDBLaWJhdUFmV2ZKQUhnTG1nQmt0bU01cCtYdVpFWnNDRHJwbncrVUFieGMxck5qTU5ESzdYNWhEdTVidm9mS0NKQkx3STRXcTU4emdQaU5HSzc0NnhRaDhQcXBxMjRTRlNJbnJ6Y1pZUHlZOE1xdCtub2piNEcrV3RUN3FJUEtIUmpSTWNPNWduLzdCUGpTa3d2RUxyMjFGZ205bkZLMVFJbEJmUmI4aDR6ck45d1I3RXF4WUhsTnFiUUJIdGlJNzA4bjluNldObm5sSVZobmFabXBVVEZnRWhDcXRRUjRCU2RBZ2JBeGg0ekNDRzJOT1lUWUZGUzR6dGpTekwzU1NFZk9kVFVIOC9qbnBSRWdHWUFFK1JVRGlCUmlBTXZsRXJDZ2FhTkE5SG9PblNMdS95WURKQVFhSllBTXNVaVpsQlYvYWdid3dpOW1BdERCd1pvSkNhS3hIRzZVVVUrWHgvWElmS0ZxQVdpSnh5blFud2wvWkJqVG9zQVJmcVFHdUdiRDYwK3NXU0JrS0FGbW5GYkZzaDhxUU1rQWVETm81VG02YnJtSGd3SUpsaXlGWVZHREVpYUExWnJ5aHd4UU9ueWtxVWt3VjN0NDdzeFR6RmlSTUFMOE9RTkVVT0NrbmRiQzY4ZVh5QkQ2MGkzWnhlOHhRTk9RU1d1T3lKcGZOUU13cUplcnBnNk9Nb0NsbnlNRExNQUFtZStZdGN4WWhyV0lVNEJIRXFXTVRPeGtRZm5kemp6WmhRYTRRa1BHalE0YStCeExtZnM2c09SaFY4LzE1TDNTWVFFTjFqRzVaSUM1MTJBOU5PbG5vcEZKSEc3SUxTdE54UlJFZWl5ZXlGMm14c1NxSWdEV0FMRE9wUkhnVHhrQU94RXJmbmV0UXJjdUk2dk1haERscUNiaEVQVmVTL1RTV2dLSyt2N1VwM21aV3RNWDF3b2themhoWUgvbHE0Ry9iREpEU1llcE10ZzhNcEpsZUhjWnB4RGlkNmNCT2ExeWx2UEdUS3Z2b1FHQ2M4eksxR1B6QkxSTE9ocys1U3lXeDNhSDA2eGtBQmdUMUR4WE1nRERIVlF5SVpONGVwcGhaQUw4U1JVdDVxRG9tN3JzK2JYdEtmR0xETUJvTVdBeGFpUEE3MGdBNUVISVYzUmJCTzJvemdCbHpydEJKTHRBTHdSdHB4TU1tbFdpTGRWQk1BQTl3Z1BpWWQwVjNJQlF1K0NmRmdQUUltR2FNVktSeUtnbE50R3lLbnBMLzQ1MnQrSVVaaXo3T2dkS2xBVWN1TGlSbzhscUxtcEJvcjQzK2tWRDVUS3FVL1FPTGcyWkhER29DYVVTaUxDa0VSTHpOTmJJQURCQ0FrcUdPajZJTnhxTUZNdm9HZmFaaXJINmhZalN3R0owSjI0Ry9wMGxBTGtNUkhyU0ZsZjJhN0sxYnJyU3VJVUNadG9IS0ZJa3NuQzdwN2ZreXE0b1hWRzVQLzNUZmJlS1pIZjArMFNlYmFEVDlGRzNHRURvdG1Qa2o2WUp5dFJWZlhsQzBHaGRaT0w3UEVTck1XdUlFdW14SXA2cjlCRytvVnhHZndObVFEWm5BSXB4eWx2UHo1cStyQzJ6Wk9waVF1ZUgvQzYzZWsrcVQxd21WQ1UyQ29DeFYwWWNodEV6dzA1aEZKakVMeFRHU0N3RzlCUWdnc3dPOVA5dU1BQzltaXlhbjRrc0k5OEZjcitCZzl0NWJ3OWVEYlpNa1dpNCtGRlpmZFNzTjdFRXVHa3BTTXVwWk1rUm8vTHN0UFFGTUZXOFllUTdwaWhDQ1V4UDdxSnNCUVAwaTFZeGdKVWJXTkVGRjRXV3NNMEh6ZWxVZXVFdU14dmQwQkJsSVcvZHpzNWpYR1pBVTVIbS9GLzNpUUo0WmpIYWI2ajd4ZjlzVjh4dzVqZUZGTnlyd2hxYno2eXlZMjdEOHRjK3dYR0J4VGdwdm9HTHdBMEdpRVJEVFUrVENzWDhtMGIraW5WcDgzT2JMWE9MZTZZS2dxL1JHOGd6TUl1ZktvU29HVUNoMnlZQmFIYnZWT2kweC9RR0VscktHRk1aSmdTa2RubzJtenc4cjI2WnNxTnF0a0NucDlueDE4c290WmJhQTUyd3ZzZFo1WCtNUktybExiRnl1Snd1YXRPaXQwRGR4UDhTOE84UVFDRXg3ZFdKSWRnYmxBeXdsVEh3QjFuRE1xRW5qSy8zWDRZclN5ekdWQnJCSmx3RWJqQUFCZ1BSVkdXZGk2bm5ySVY2a3NXY3E5ejNuRDRKdmtadkFMYkJMSDdxd0RKRVV3bWtaNGVLQ3F0ejFPaTBvRkk0T3dpY0ZsK3pOS2pzWjFmWkp6V0ZxS2dyVzQ2OFpaekNLYXNsRW4vTkdzT1FwOXcvR0VBYlRpWHdYZGtZaTFqTDI4REtLYUdFZ25oWm8rbEQ5YjlXWUFoRVJvVzBkOEs3SFVXMExOb01DQ1NIWUtBNURLMUMyR3dBWlNJRDhJS3lhdXpQR0lBbEdBS016L2xIODd6MFY5VW9yR0lTcGtkV2cwM3dOWm9EdGkxK2xLZHFNOHdvNGFoUTFkUDFubVZqV1cwcnFVUjE1anVnSW1JcXhqSE9KcEtyYWtvU1pOWFlWczBDdzdOYUl2SFhKTmhEUUIyODNCa0NzZlRsNmdhWklhMlV0NG1WQXdsUmhwYkF0MGYrTHlGS0xKcUhzM0NUOTF0Tlp6QW9XamVoZDRteEErck9RU1BFUnljOEkwMEJZQUFHOTJXQXhwUVIxUUhHSnpyVThsZFltZWhlZVA1UjdjNHgwMWtOTmhKWVZNSCt4SG9VQlg2eHdMR09vcDZJVzdJWUdiU2VSS2VWVkNKMmxQQXZTRGZreGVCc1NuSmwwM21ObTdZYVp4aVJVTUNMYlpab21Ea09kdktDaDNwNFBBYThqUDg1VUJSdEUvSjJuTUExYjRLV2E1RTJRWW8wc3dOMEQzZzMvZ05lcld3dnhCaGVma1NKc29YNEovMDU1TFdvQ24vd2c5V1NnaG4zN09xSWxlR3F3UGlzL1BzWWRkYXltSE5kSGRQTFRINERmTTFlQWpha3RRdG5LOEtOM1c4RkRBK2szZFRGWk11YWxnYnpBVGgwQ1NBdHNYMCtRa3VRNjZWRm83R0JoTFBWNUhGbzZEaXBOQ1cwRklXTW81YXBseUpscTVDaXdLaVJFU3BrSEJuSlA2SEFrUlBkWGVEdUNJcVdJU1JYczVHL1NlcVdHS1AyRWZEUUg4U3gwTWpaS2MwZXVRYThSSUIvcVk0RXFrcWJBMGN6R3hCc241NVE0UWc2QklMSXkwenFlSTNyM2luK1EyY0NyNmNiSWpyWk94Mmo1cXRkbm1WajdhUW96NXVpME1nRTRSS0VlM1R5c1JYMDBWcjY5c1R4SllIQU96SHBFdEVQSkR5cUUwc2pCNU5YWjdOQWlwS3BDUzBOREZ3MkRGZ0NSTXZrSUxiZ0Zlb0FFaU5RcGN4R0FtRWx2RkJreWt3Ym5PU0UrcHVHVnBvOTlzRUFJVGZ2QzNWRUNkb0M0MjlPUG45OVZoT3lDUUMrWWZCakxxQytCdWpNaVFLaVowdW1rSXZpaXJ4QW1JMlhVN0xtU1FyaWZDbEZJZjltOGUyaWREcElzVUVCeTVKQW9ISmtUNmdiWkdjMTZaaDdCeUR0cis4b3JWd2sycXFSb3B3WGREQmVhQ0hjTkhkemp6YzBMQlBkL2FIQ0FPQ01VdjZRME40Z29wUFUyVEpUZkQvVHdKb0F5SlJYaGRrakdTQnFKSE1zWFFLMXdmZ3pGdkNkZVQxbzY4WGNwNVNrR0tmQWozRlhsWVEvMm1vVEQvQUsvb25sdmtKbWx5Y0ZYbFNKVmZ5TjZBZXdPM3J3RHhRWFUrV2pTU2NBalVRRDFtMUNBMFpPdXNpK0JZVWFrR01jVDhqb3BrYUtSbVkyN2lHckZsbFBuWnlaVGFvd3M3OUcrWEVheE9kRksweXkvV3hscHZpS0FZNnpTSHIzcWUyU0FkcHlNNnRldXpLaktwSFNscklZWWpnQm85WGZxc2k1YTh5aDFVQzRrZ2lYaUdvYzRCVitBZWhXSXJQeE4wL1NDZ3lSY3VZeC9zNGdXRzRGb2h1RVNQb1k1RlpuN2hVQzBkaVVrMjYxeWtSUVFHRjY2bUUzTFdjY0Y1dm5aaHliU1hCZHRnTE93amFQR3FPRm1mMDFTbk9IUnlSYVphdi9PSGk3eVFBWkR2RDUvMG03d2dDNWJVbWRCR1hYMGU4SzV1YWRHeHFmenI2a1ZYOUhJVE1rTWFBN1dGV1NkeExoRWxHdEIraE04d3V3NWF5UTJmRTMwVG93bm1rc2x6eXZTRUIxUEZtQXZQWWdIMWdCK2duNkRGZ3ZZaG5aRTdLWlpidWNkT3ZlZ0tuZ2lNS00xTU5oUWlTTnZEV29XaWxjeS81RHR0S2ZSWG9tRHJHZ1hwWWZUNWRZdEhVd1FPblF1TVVBTWlVWUx3YjZYMk1BRjVxcGsyQUpwa0VqRkV6Tkk2SXRwak9YdE1mOFc4NkMvWWpXSExHalk5d1JvNTVFcUJIVlBBQm5HaUJxSHI5ZkliT3pQaE96VlNwcDFGOER1eTVUMEVFMFpRakhJQXEwb1N2cDR4bE9hZnhQK2tUbTc1eDBDQS9pK1pDTEhqcmtsZFNTQVFnVVBVVGVWL1puKyt4WEhtMHdHSkJ3TFRET1NKcXJCdWtVajlaT3FKdTYvU1VEUkphUTV1TW1BMUJvVWlYcHVzWlAvVE1VVEVYL2F2UHFudUZmemI4ZGRXR09rQ2Y0empSYUw3M0FWYVBYTnYwbGlOTjFyM1dGek9iZm9FK21MRmU2bE1BTmJMc0lveDZZVnlBWllFRUNmUndjL1VJR3lQWVpESkNUamw2TU5EdE43K25NYURNQWdhSmFISWlWZ0prMWp3MmU4Y3FmcGRRY1JNYU9vSjdoRExpT0pBTUVpWlFiazlTbElmSXFBL0F6UWYrckRFQkhmT29rUSt6NUdkbmdDaVlzK0w3RHdPTG1FNTJUay9ERzlKZy9lL3o4S3VoTUVwQVV5UUQwSzV2cmgvYmxDcFZsZjFjQmFFb3Q0YktTQVV5cmg3eHJkbkpUeXpZYWtlZ042V092eEZVM0NjUVFzYUxXbzlJSGZrekhaaHdMWUZCenVHQUF4QjBJSGlCSUNrOEEyODVSdSsvcDBJemN5anBGcW1wZkxELys4bGd3UU1yb2FyMG8wcS84bEFGdVNnQjdSS0dUZEhLSkJLUU9lR0lEVC9jYjNOczh0NHlwUmhidlJlTVJRMTVhRlVWT3dkNGpPRktjVHl4TUU2M0ZBSWpUWkp6V3kvU1hETUFjN2dVRFVLdFhTRHBxaW1tMXptMUdvb05BcTZpYlNtMmY5TEc2djVaQ29KeDBrUkwreWIwNUZoVFFMK1JPbnE5UFgwWHNBckxtV1ZNcHg2RW80MW9SUUVVSGFLWFhRVFZvdlV5eGsxd21xYS8zcGc3QUhBcy9XUUlxUGZPUWVaWXhRYUk2YnM1c3ZDdG50LzdVdit6QXE0MnBuNGdEWHJzNG5XZWdkZ2V0eGdtQS9sNVVmUHdyQnZnd0xpc1p3TFg2UWQ5aWJUVklObm5NeHJDYjJRWEdvZVJzaCtUVlRudlN5UkhQODJIT2ZuNzZZWDZWQVo2ZkhJWUZEbk5Qd0t1RDBEQVVsUVJZcFFSSXZRN3A1aWt2NHVheGs2eWdXOWQ3eVFDV3pvQVJnYjlnQUNvbFRWYTRqMHJaNEZ3UGhtTjEwb3lOd1FnZDVuWUFlMThudkRNQzVFazR6MGh0WDdhU0FRZ0IyYkVrZWNrQUR3K1hETEN3RjV0VURFQ3R2dCtIdDlyM1hYd0VDTFF0c0llK3pkR1BzWS9ETUpZRVZheEtsQmJVWlpIZ2hYNHZHYUNXMGlVRG1KTUMxK0E0YTIybkRvQWFTd1JNbERUZERTNGlxS3FkWkpENmVpOFpRRzJKMkFaNlBwT2ZNUUJmYU9BVjdpTnRCMFVBYnVIVkVSSWZJU1JBV28xSTNlK2xVQ0NFQWJ5d3pEenVQSXNGSDh0V1dieHY1eEFRR3NhU0FiYlNMaG5Bd3pxVEFVS3JOem1xS255dlpnRFFKMGNJaG81N3NtemZkUGVhb0o3LzNBbkt1aFV5UkZjWlFGb0JnZGdnOFN1RW44d1cxenpHOVM1QWl3RzI0SGd1cDRBb0ozVnlKMW1TK2lONnJ6R0F0RDJoNC9EdHd4TDBjWU1CS0pJNlJhR2FrcGdqRndCUWg2RUt1NHFIZVc3TWpiaTFCODhWUUl6UU13N000RDhwNFNTVzZqSVpRQmNTQnNIVGprcmFqdEF1R2NCZXFNMEFqVFFvOEpvQ3Bta3hnSHhnQVQ3Vi9JVE95NzRBaVBaYk1VQUFPZlNDUXI1bFVhQkNZcUFsdUZGVGFkcUhKQzQzMFVFZmFKOVIvNk9nWGltbm5EcHNOYWtYVjN2NXkreTJTSFlJM3o0UVZCK1hFc0NTRWpEWGdSSGNaQklIQjJTR1BJL0MyL2dxWHdROGh2YU5RVytpK1haUmlSMnhkUEQzYzZ4YnRUcVJmVFc2ZW8zUjM2SUc5c2tBQTdZTEJxQUVTZ2FnalJVNm9NeFFSYXZEcmhvTUFMVSt3YWVubzM4SWVZa0FqSm9Ca2hiVWNMQ2ErMU5mQzUwQlU3cnBNeDJSQnpVa2N0c0dMeVFBdDVrT215Mm85MnlKSXdiSkFJVGVoNk1uVG03M0pnTkU0bkNXcGtCa3p2cUtMMEFYWnpMQVVDdGhwUVNEeENNV0hpVDFlWTdQY3JVd2Rub0tublFraGI2L3ZvbGI0elFUNDZrRktkWGd0T3dTZVNheWtBaXJZekpBUDFxYkFTaUJrZ0hvcVJZZGNHMDZJRDByemdCb0ttZWNQdktVaXdWZzMyYUFIRkl2UDFld0hkNlhrL1REMnFGUHdCblRkRkV0SmxPVTJBQzBLM2pNa0ZNc0drcVNzR0dxNWNuWGVtRk56c1RoeThpWHVMckdBRkNkd1FDd2hYZFM0dEdQWktIVkRPdjFGSlRUUUc1aUdtSmxpQ0J0U0dCWm54cHA4YndMVVBseVgzVHBDc1Vic1FnSU5mOEM4dHBpQU5zMXBqRG1yazZHeStEem1peWhLQkhyQk9vNytIUjJuQVVmODlIS2xEZVhnSHVPaGo3VDJJNWh1YlcxZHQ0VCtqT25YZ29BR29GcWhMdTB6RWNVMUt2bFZMNU1tWXVtSVBXdDN1ejJHaFNUNFZVR01JOEZvYVhuYnBtaEk5RFFoL2tjOHR6bXlMZTd4RHBxWXVZQ29HUUxlbXI3TUZoRDVsZTZaSURzK2hTNXFmTVo1dDMzYWdtSWRtZ3pBQ25uSCtWMkhiRUF3ZTdXbzJUa0kweEVZeTNXaHhEdHo1V01Dd0I4bW0wbE1IZnFwaEpSOWNhcjFaUFUyc3BUcEhpdXdpQnlwcjZMOUVMNGxNcVE3M0tLSXVPWGhxRFhUTFNldlpXNE9LbTJDd1RWTFFiUUtNOVAyc0lyTlpKWkhhVkhxUU02SXo5MVlSSzFlZnRLTEhvYWZKeDJMQlYwL0FVREhFeVpDS1d4VUFMWkxoa0FqODhOV1ZoMnNXd0FQa25KblRvQVlDdXMwQWJxME5TQjV6SmtwMklBS24zRmp1eVRRZ21PZ3BvQndvRWNsVWMyWVRmdzVJMi9ZZ0J0S0RUUE5CdXRtNmNYTkFubGkvMnlwUmxrWkFndzhTOC9ZNEMrSVo1YkRLQXlrdWdNS3h2RS9HSmxycVFQVndIR250UFlDdGFGL3RiNURRYUFLRmRWUEZTeGNodUlkb1VCaHRCUG1wb0JFSzdNZjlvTVFMdUxjZkt5dlFDZ3ZiYXNyelFFcFpldzd3M3FTWXNCSW9RRTlLOEV3R3BvWU4xZkxnSHplVkhCYXRwMkJ0SHpXVEVBMWYzOXNyMDNDRHFxYi84bUE4QmowYU5Tc21KU08xNllPZ3lFcEMxczlJblJGa1NxSWU3WjZla0RwTzNYU3dDN1dLYVgxcmpxZmFWZFpRQ2pYc2tBTytDTjFKWUdRTktneFFDeHEvVUVCSk5JRTFHWVZNdEpSMU53N2R4SkJuZkprRHJEQTBwZGdQNldVZGVOZllUcnQ1VEFLMGs1ZG1VRnE5eGllTHZpK01XR1A2cHZIYUtsU1ZCNThUTHZjV1FKbzkwQjBkZUo1SmNMS1FKWU1oOXBnVzBCS0l4RU1BTlFneTRaNE9QakR4bUF3cGhxd0cxVGNESUFBV25jMjFyT01OTUJzUlVrb3J4Z2dHZTNCTk1teXh2MFZ0RXFndEl5NXZhdjBybERFd1UweDVJQkVLeUltRWI3WUtvTk5BSkpxdVdMYmFEN21wS21aUjc3aTRDUU12UWpLU3dtUDJlQUtnQWxHSUI1TXd1UkhBd2dscHUwQXpCekZwTlVJeXFrbGh6QW1xVkpWSVo1dlVoRDRDeURMd0k1KytzbGdGMllqYUVHL0E0RDJBVDJNQ2RtRFlRWEVPNEE1cFFvR1FCR2VlNW5JeTFRZThTS1NkY1VxSmhsNGR5SkJJUzZYbFVNZ0xoK0ZPU3EwM1RhQmpxOWN4L2hmTkg0aHpveFYxU3lTTlI4dG1TQWtzS28yVVNVYURZamk5RU1RSzNFd1NRRFlCeWNBY29sYjRsVjdHTHBpS2dvbUU5NmhSdmxuVmlxTEtBZmdYTy9aZ0M2ZzIxQitRMTM4Q0pkVk00QTc2cVh3Z3RvWW1Cb1dXWDRDRi9UWGVkTHBhNHRNMjk0eDJaUkVnbjY5SUs2bXkvVER1TkdQSzhRQkJUQnUvWmRoSnl5ak11Y0xaT2psd1VUdlpiTlBsSHoyUnluMkNrcC9JTUM1L2t5Q0hXSkdIc0F0UmpmWXlzNThhR2xLWGdVM2s4Uyt5b0RjQUdnRXpEZGdtVUFwbCtTMVZaK2d3R2VTelhndHhpQXRnaWNGS21hNVRRaEQrMW8wMGhZQ1FLWldYNVIybGlxbGd3UXUzcjZ4N0Z0Wkl5Nnd3N1RGOERRSjZadlJ5azFTZ0JBM2dlUm52UGJBYUpzV1V1MHlHREovV2dSNHpncS9zUDBBS21Ud21oVzlDUmJGbTlCdkxRallxQ2lKajYwWUFCcGRmekRWUWJRbDRKbVNDY2c2Mjh6Yk1yaWQzT0daSTNhb0haQ3FWdGRSczRGOHowVDNac013T3ZLNG9XbXhZVzFpWk5vdmRLWnhFb0V0RDg2Z2Z6UDJOY1B2T1crcVpwMGlZbzVIczI1d3h5VWtSUms0MUl2cG8xOExDQjVSU0V2SDlBdkFrU2pPV1pxVmhkTVJPRWpPYnNWc09laHppUTFLWHhDMng4ZEpab055OGd4SXJjZjBXcDhhREpBSTgwTFlwTmZyekdBdTVkODdmZU5sSUU4RVNSY3poQ3F4TWtBZzRSU3Q3dUFPL1RENVUzd2R4N0k0b1U2OUM0V1l4S2RPOXJYc1djUVFPNEV5ai9mR0xGVE4vWm5qRnlpWXF3SW9UVENEb2sxeEk2b0tIOGp5SUZ2S0dYZlpTay9NNkZySTBDVUxXcUpubG9GRTQvQVJyR3dYRGFDSFVocVFvMElSSnJ0czRoYWtCdjNUc1pvNDBPVEFiamlSUXdrOVAxckRCRDIzajZjdDB4ZHg4aEdGS2l0WjRqWHFQMHFTRUVvZGJ0TDUyY2NMbStDdi9OQUZpLzB2ekhEWWhJTjhZOVpMUnhBVGdLOUZBQmZLblZzYVR1dEoxMFdlMlVWMHoxaGg4UWFuaEpCQ3JzckczZ2xpM2tDMkNoTm9Tc0FpSHJ6SW1sMXdjUVpvSFVuaHlkbW84MEhwQ2FCODQ5bFdibXhlUEltbDRaTGZPamQrR1lVTkVxSVpoMmtJWW1XcXI0c0FEbHQzZW16YjgrUS9kRjBvaUJGUXFsYlhib2hpY1BsVGZDM0h5aUxGK0p2RjRzeGlaNkl2RmE1amZ3WWdlcXRBTDRjTGJiMG5zU2tpMTE5d0xLdGppOWhoNG8xM0l5Sld3cWtrL1VvNFlpQzR6dzBLVHoyeW9oMWU1VC94c3ZzVmdWd24yaFJsQmNGWnRFNUlER3VML25IdEt6ZCtwYXlKNVhESy9qUXUvRnRITVFQMzhxV21FSTZPRHh4RzlMcmxkcCtlNFpZYmN0dktDSWtSVUtwOTFXWHZINGVMbTh5TGErTDRvWGwzMENZemppSnJFNHZjR3RmZU95N0UyaVpmd3FsS0MvcjZXVXRmbGRsUmpFekFaQWtOQ3IveUl2WWd3Y0JpYWhjRWUrUVJVU1hJUXNDN2Jvc3l5UVdhRkYwNXY4eTViSFh0STQvd2xTaFJDeTBqMnA3Mk1hSDNpMHZrVkQzUmVIbHNoWWlZZHVKdFpKWkJ1UnBBdVd3Y2lXT2VxeUNSTG9pODBHU1lvbDFhN2tzdXhKSnFpZm5UUXBndGdGRzBZaFQ0NVJoY2VVQ2NiMjBRdUNiQVAxdWVCS3hpbzV2eXhhMTJERmxTNFE0Y2FKWUN4SUFkMy8vRm53WjBCbERpTXFQeEU4V3JNOXlvbUJZYWdNSitpM0xKSTRMdENnNjhiOHU3bkpYcjJHNS9DT05sUmFVN2ZrM0tnTlJHeDk2Tjd1QmhXVFo1cUlhYWhSckQ2Q2ZiYk01R280VVI3SG1CRlZqRG1JY2M3SVloaDQvT08wZUhWWnRoNHVUSFdpTUtlYXpLcWVYM0RxclFIUHFzL1FvYmVBczBVNndGVjRQNjIwVW1rYjVXc29QcnBVc0tPcEttSTBQNlpZQU9ORVBuaExqNXRBWlBTU2JiWjVpanFGYzZTaUNkVjhSKzRGQVpXZVpSQml3QWkzcXVPM0V3WVZkVDhOeU8xR3hnRHRiRFhuU1NKWittZm4zSWkwV0dXQi9EUTJOclNNelZtUTk1S1hWT0E5c0lEVDhsSWVvaDUyMHR6SzBtSU02M2NnMGIxQnh2S1MvMDBaL2dJUFF5R0hXaFp2c0FVdjJXZlhtMUh2am5HUUNKWmxlcVZlYkdxWHprdXdkRmYzMzlJOTdxWG1qOVd5Y2dIZzN4TnBzbHpOWlpqVG9ObUVCQ3RUZERvemJFRE1SUFYwbVVlalNwQis2cm9waWd0UENJaEJwb3FveWlRVmFkTkxKLzVXalJhNHJodVV5RXhsMnNBd3NuSVFKc29hU0NrS21aZ0F2ejR4bWNoS0pGMEJtNkpaUlJCWTB6dUxQS3NMeHkvSGcrKzlhK2dOVEh6V1pXWndRSm1NaXJKK2ROa29OekJXaHo5SFhHSFNaMUFFbDVRNUVucEo2a1l6RTY4RU9ZMmVkM1ZxUWxEc0ZaSDdhZTBWUlVvclBQWGxDRzJCRXJhRG94c09wc3N5b0VBbm1CcGFnc1J5bUVia0I2UXYxZUdWcFZBWURjK3FsTFVMMTZTcmpsUnIvYU5hNGp6S0o2ZkhERWZIRzVQK0NmRkRFYWRZK3c4V0piUytZeHVMUCtMOWdpd1NUSTl5NGNnZmN5YTROZW9mUWlETXFxSzlkU0N5RzlZMDJwQ3JsMkQ1ME5meHE2My9JOHhKenNPdVRSYmpFRU5aRHA0MU9EOGFDZkJkYXBxYzhkMHJLWXFlOVhia01od0dmc3RDT29oNXNwOVU5V3BWRmEyWlJVUlNVT2pNOEJDbXBtQlFuQzRwQ1FWTEVJbDIwbUxrRkRGOEkyTUs0cmRlb3ZORmpJaVc2OWQzZXRkYXNTNHRXenJ1bThjcUJ6SzFwVTVRNStaaHoycUFXeEJjNUNNTGliZ2ROWUZya09SN0dyT1VNZUc2a2s2akMzMDlrQUdZZmZBS1JNS05ZQ0R3VDdpd0pEY1ZjQ1RnRjVqSjNheXpNMjlvQk1rK1F6OEhPZ0pQRkZyK3pKaFlsYlVZcm5TczZ1cnBUOW4wbUpnSmtQUE9RclZoSGFjUWM4WnFiemFQUm94NnNFTFhkblVWclFHb2o2dHhycEhRVFJNN2FsUWdiMHkvd2tHcVdHVVdxdXpJYXd3aVlEQ0RUeTZLaCtzZ1J2SWdBVVI1dEZpcUUyMWt2RitKM1NnWm9XTWNvOG82akF0bW5QaVpqUmNjWnJEWFFmeGpTckVLRlhKSlFoTWdkUk4rbjhRcXJoLzk3cDJNRXdlbWF5TmowcGllaEpIc3dqc0pDa0dZQnFOSW5ScklFTTJBdUsvTU43VnRSazNrMzUwckZ0TEROWExGM2xwcHgwRUF3NFI2c1JrQU5CanFKbHladE1LczR2VElsb1J6MmVyRHdyOVhkY3k5YVExUURLNG9pWmlSQ1JDTXRwZHczQzRwNnpZSXNNN3A5L1JrREtNVUJTcEVhdnZnRHRCYlo3QURWQm5rWEdaaE9CcEJYb0E0UVpSSTdoYmV5c1Fwa0h5UXFRU29iNXVFODlDdGNCc3VGeTFQdFgzaWhJYlRCM3d6aFIvU0dXd0l4c3FKWklDczI2TVkwUUxKR25pMWZCWFNUM2NDa21ZZmVPU21STEFGY2hSMUJZY0NOeENjK0IwRlNRODZ6OEU1anRPblA5UWZ1YUJueXNrNkRiWkM1NVBXRnZBdDEyalVIKzRNME5iKzdVbzhlOXV6dW9CdVlKMDVHUnp5QlZKNERzNnhkT1Voc2hQWWllWGhSWnZUK3B3elFETTRvVThsc3FrUVY1ZEd5TW1KVTF1eVVxWDg2eUZQQjJtMll6U2dUbzdIT3EzVmtIaThLbUI3S2dJeXM0SlkxWkUrTThFZUF0OGRjcVFBQUEyQ01HcEVoUWlRRDRETzhlaVVTMVpBVkpsY005TTIzWmpRVTNkV09EWVVpaHJla3E5eG03b0J6OEVEVW1lakU1c25YTkxLV252bmdWSnRhamt4bkFDYUVBMk1MdFZqWWhuOWtySTRlQnRreTBGckp4KzZtRjlHQVNXcFFhTmZXbEZHdE1XRS9XUVd1cS96M1N3WkF6dnhobHlWYXBhTjlWS1lZYjRobnh2V1ovR3RyTnBlaTdOcGFvK1htUURzb1VRbFVUWjg4aUlwSlhkWVFockJnc1JFVkZ5WCtqVHQ5TEFIS0FCaTZ6SXI5WXFrQVZXRXBYNVNKbmZtalpBQS9CRHRVRlN3VGM1QTFtWTFWd1JiV0xWTUxBTG5QUHVXMkozMHhCdkNVa0pHOUdvVnRFRUV1MUp0VHlBRng3VVZyVkN4Uzdocmpnclc2aWZCQ3I4RmNob0hhdmcvVkhvVzVGaVVENlAwRzhqeUxNZnNwQStBNnZlVFhSMnNHTUVFSGxkcTlDcGpOWG9FTVJhRUhPclZaQ0tLSXlrb0I0QUU4UmFXaU42YXhLaFFBdXo5REFzZ0Fjdk1NWGtlNWFNMWRvV1FwaWpUM3J6SkFsbk8vaHlDT2NEbHVRR0lPcmhjaFdUMVVDaFFUbGpIRko3SVI3N1NoRktBbmhhV2pWd1NOZ2NTc1FHQXJYbGQ3V1Ewd2daVlJ2TGpFMmpqNFFRV0VaOVpYdGtjdXRiazBad0RweGYxRVRWUGVzSDNKL3drRG1KVUt4bUY2NjVqbTMyb0xOUWgwNy9VZHRYWHlxQ3lVbmNpdzNGd0RsR0ZNV0lCVlFnRUlxNjV2QTlWMEFMMGpzbUpqM2RQa0tMRldRV2VERjcxZHNrRVBVVDBnSGFxQTJVZUhWcDJSQ3Q3VmtyS2lzUUEyQXlUOWlpUE1sTDlZNEg5d0g0K1c4SUJqWmhpNHJFTHhET3JXM1ExYm91MmNkZWptY0NDK0RJUXBKUkZrcEwxUUxoR3AzY3Rkd045bkFGUTBNOGNpelJ0TExsYWk4cUFvdEtMdGZGbVBGVUQzSGNVYUVGbjIrNDFYQ0NJODBWU1pqclhTRVBTbUFuK2xJOHVzMkl5NFdQZENXWWthQkpjWiszWDNETzlEaHROZUM1a2ZhQVc5ZVlRYlltSkJSZ2tSNEUrTVI0RUJqQWpBOHRoOVdPTmVnUE1HRWd1ckZoK1RZVVhsMnpub2hPMlNBY0xOOFJLeUNwalN4aVdBYlhKVUdjSlRyWXI1L3hFRDdHRmpWN09qNVptYkdlRlVuRnZDZzBNelozNTJtTklDMURZdnRNQ01RMXl3UU1QU2cwVXRSOHE2dDg3WUpUQUFuRDFNMHdQN0YrcEFxb1VrcUFKTzlCREVpN0pOTUJGRVFQM0FRVFAxMUZRQjBJdkx5bExObHZTUWRicklBSE5weXJEYVhBS2dpQktCM3g4TGJ6OW5BSFpIYXpNQTdiTlJpaDZGTEFBdVNzQ3htV09aTEFiejcvK0tBUmdzQkhNWnpDaGpGK2NMRktPT1daMlpDa0Q3WHJFUHpCcGhVVG1PREtDYUUxdFRNWUNxMERsOFFrYnU1UXVJQ0JlRmExVjdZT2lESDkxdEtTVnNMaWtqQWdCRmRHc0dHREFmV0t0U3diblVBVnpzV0czS09WRlowWGFYUzBCN1pXaUsyaHRiczVlN0RqQU1lMVBvQzZKbFpMWFkrMGlsM2RFcGFMMEpUNFZ1K2RjWTRMVEp0UmJCdnI0UkJHMDZBelV0Y1ZiUE1peDNFTHM3VFBlb0VSWXJnRE5BUDFyTkFLMHFvT093MDdjWjRPTWFBNWlOd1p4cXpJMWFBR2Z6MW9PR05rdGNWdDBRU21jd3dPVXVnSXNMeTFzNlNLekRobFU1OWJyaEpGTjZSRGZ1SStxcDVlK0xyZDFLT21Odmw0dVZna0djQWJKWEM3b0dBenh4SHlsc09qLzhQUVpnOFhsZjZHZStFZnlrT2RpVWNxOHc2YWhtcW5jVURiNEdxTGdqQnRxZEY5bk9KUU5jeE9yU1UvZDdESkFaeW4wOUdCYlErUVRacUFESXFmbE9tbHYxSFptUnZEdmp0R283UUlYV0dtR2JDWnJxam5PSEREU1ExTnhVd003Q2ljSUpwRHYranBvUmJlMEw2OEJnVjlnQjdsbWxjRzBKdzVneFR2M3JBeTRNUFFkeFpkMFV6ZkR4RnhtQW54bnVPcXIwdHZTQXNiMktOZ1BPcFltd0VPSnlxYVFwb0N5Y01TTzhhMVNuNktRU2VKVUJ6TUgzOEhzTU1LME13NmdUVkNiUGVIUm9uQXFBYzgvbFVwcTVsY1R5dXA2MmcweVVER0NSWDFsQzdueFdxNEZRUkttMzYxVVdIMVN0S3NCV1U5YXpzd3BWYytjK0cxVkZoS0VhVlZFdis3eW1MYkh2TXNTeG5ZZktRR3pKZDJsZzdoOStud0VXUEZyYVYwSWlFd1JnRnJjc002Y0tPVXNRTmcwM2daem05QTFQRU1Qc2xWYVlFU1RMMEJ3WndKQ05QdG5qRFFhQVQvL3hOeGtnTXBUajhlMFEwaXovS21PSEZjQ21abUFtWVFlZzdZYm1Xd1pKbUMvQTR6M056dzFEdTZiVlVUdnVYUDF1dFBqWUhtN04wcytIaGlxUkxaUkt2NFYxbjhNVDRkV29EaDRFemExU0gxNGZVYnVUV2VRT1RlMGlndFpFODdZcXZVbGlRUGNDNEdITzNuWVZUVWpqdEQ1NkxJZk92TWV3dVp1eHB3QUx5RFFwcWlyT2lvekpyMFp1VmxvQnZZdkNHZUtUanhDbWJQQ0xvNEwwRlFaQVVOZnZNZ0QxQy82cUdlQXhDMENyYVZJTitIT2Jta0dDL2hweVdNc3hyKzNqQWphaEkwTXdMTXNqNjlRL29FcjlvQUgxbEZTd0JKSWtJRlJVZlZQQVBDdmNBQ3dlM2R4VDF0V28zTjIwaHQ5WFRZSmtjSE1IcjBzbnNieGtPcG05ZExqeUlOTVdEd253a0tkNGZIclcwYVUwVnE1b2xmUGJ6OUxyaHZnNmRMRElGTW1NZDQyNks1N20vNmtzTGJXdkMyZXd5a09kckw4TUM3OWtnSy92UDJXQWoyc004UG9XSmVDQkZNMHFVN295Z1A3YU5ZZVBISnZzTURQTXM0VkJCa3NkYWFiVWd5KzN4eWxSMWtUSXNsVlI0YVluTGJxeGhmSnFWRHNQZ2piWDhRaTEzRks3WklVVWkrUHBkQmttZ3RGbktFT1VEZ2VyMUpVM0dQREZTc1owayt1VlJDMjJ5dmtKb2RMdkRteEFBUlo0ZWZONFFFeHpyNXFRYWY2enRKUUhSNWFsTkxMMkFndHZHUDJ2TThDUFAyS0E3WFVHSU1LRm1TUDdOZ2NoMjdpa3c1UEptZHkzRENScFoycUJZYU9HRWRBN25SR3BKN1lLVG9tcUtvcFhmZHZ2ZzM3YXV0NDlLNnRSMGZGeVFzaEp4QlE1ZEdBRzZjbHlPN3AwSWxCTUhoZUJaaXd6OFk1SFZaVTNCT0ZINHNGUkg0RXlHVUpaeDlZdzdpVWlieFJaVU95eWhjd2UvdXdCVzZ3d3hEK001SStJaGtYaGpBanh3ZnZ5b2NRUjdWazg4dmNZNFBFbUF3akJ3L1JhNlFCbjIzTjdnZ2t6M2JMSzFNWnQwK3VkeStFQmFuOUdKdDBtRzdVSmorS1NKdlFCOWZBbjZ5T1ZkWkdpNnR1M1Y3alplaldybDZxYWxVMCtCa0V6Zk5Cb0dOQUJDMFgwZ2xzeS9GTWxUQmxxeW5ESlRWbThKQXFEMlIrSThVYkFNU1loaFRFbVk1U1hZcGtjaHg5T28wSUhxVXRNQU1EblJBQkZwTHJoL3BUYUNPdnl3a1RPaGd3Mm5wallBZjk4SzM2UjVXTi9pd0h5UjgwQTFKSTk5bXdKR0FtMksydXp1bm1oeHg1RnFDWFBNWXZYU3VaeVZBWHNESmdpcks2bkVWbkdHTWZKT21OT3ZXZlNOS04zdGJIcW16U2pGQlVnR0t1OG1sVVVibnJoZXNnQVlxT2hVeFVORWJEV0k5Tk43Z25LUkxDNU5pZFJYYTlJeitIZlh1d0lIRUNFU0M3TEdWTnJPekErSzg2SFlDOGsvU3gvUUhSQXBDVWlobkZidVJXUUh4YTl5aHd2aWw1MSt2OHZHU0NEVnNxTnF5aHJaZkpLMUcrQVVHV3NyYjZ3UnJOTEoyZXlpR2xHWExLaVR2NEhHVTgvbVlQam9wYVkxV2NTZ1lkSTlLeHdzd0dOTmxxTWF4TWpyVFRhTUZvOFFYU3NrSUxxaWs1TE5CQ1VMYWZiSHZGeUlEM29JajhUMFZVVUJBT2hMTG9sWEwwcGhtY1V5bXpzWmtVMVNodElIaDdZVStramVYVjZ4L3llR2J3SzFKNUE1M0IvNjVraFBoWk8wK3RoRTJNR0lKQWZCY1QvQWdQTUdXYUdlRXNZbmVhZVZ4eDJBbXBFVDE1bFNtZWdvU2FmWWs3ckQ0MjVoaDN5RWd5THZXbWlXd1BTTTdXcDVjMytFc3J6T0VqR0V6aWZnQmRoYkRzbUc0R1NXQzdjRlR2VEJySGFCbVZhTVMzK3BEb1FzallMZ3BGUWlHNWhUSXR2eHEzVUhvUnkyWjR0TWhVblVkOG9JcU5ubU1TKzJ3dUZrMXJ0K041TlA2TXFwcnpYTUFFK0MybDdZVzZBQXBFY1FPai8rd3h3S09NQjZPMWp2WHNtMlR2dEdYQzVZNUxPSEpLbkI0eStJVVhCQVpnYUxvZnhRK21QT1hBNTdrSXcxbmdMNll6VVNJbDh6YlY0eGdVNmlYVEtBb2Jzd2lLZ1hkRGdHRW9CQkNWL0c0ajNraE5aVHMvZFg3UGNrT3NJdklmNHNvclBUalVhR3FJeUtrS2NJSlNqbWVFQ2dydkRIY2Z6TUE1c29FeUh2UWZUR3orUW40M3hqR0xuT1BjWVcwbjYwYUJwbWxtVTNJWUI0TC8vQmYyREFlYnpGZ09FT1NPaFJja0E3dTJMZXZkRVJtTUNtNFlHN2d5aHFBQS8zWDJ3L3Q0c3dBaEU1RG1rZVV3MGJBMkc5V1VPalZvM0liaEV2bWEvbHpaTUlyblNWeUIxMENNblFUT3lPdlFzdTg3ZjlMZTNFek9Bb2JmNFBwVzBWSHU1N2FjNXNhajV6bU5wYWxRUUxWa0RrSUpvQTVvNzFLem4wQUVWMnp6QUdHQzMrRHJGR0VSak0xd054WU9tVERySHJSV2g5ZzAyMmlZQldEeGU2WDhIQy9Rb3JVeGdnRHBmUlNZa29UZTg0N1hyTWJKYm1CYXRwQXJWYm1ub213RjJRbUZzdVhOMC9wdDJwTlRtV2wzV0lWdWloVVptNmxFVTRjdXE2WVk2SXZJMSs3MjRLUXZ2RUpqRklzYmN5aThCM0VmZzR5b0NMUENSK1J0QzlFSWJUUWxuaE1ScE9WT284cTRiTSs4eXVvVnBKckVmWGcrS3FJcHNkSVVpT3FkUmF4YWkyM3ArSUZFQTlISmxlalBkMmtZQ2paMTZrbUNHTHd2Zm14VkZOOUI2eEp4QXN2NEwrY0VBbThLRWNjKzBBSFcrQ2d5eVIwN3dCMGViME1BMzFxVzNsWlJ5blNBVHQwNGsvY2RwcWZKcWxJazJSRTIvWXFkdGUrOG93bWMwUW1waXl1MW4wQzBzY203OGdjVUFKalU1eWN1WU85M1FBNWdCOHlGNVR0ZTFwL1BoSXRqZWo0YU93NFN6bXlzMmtrVnZmU2dZb0lxTjBmUTB4WmxzaktsMEw1UDVIUVlyY2FIUi9jZTByQ3hmOU80eGxZanhkaVZQcUMwQms0d3A1d2V1QUxZd3NleUpTb29FWVdoQzdEUmhDRVdRektQT1Z4RUpTZlFINjIyeWRqMnNqTnpiakZWV2g1WnNHRU5BVEttSGpRRXROS1JzUGc5a2ZJeDYwdExwdGpaeUlJUzJCNXYwaEVhdzNyOUJ0alB5WC92Y0pqK05BdWZObkZtYkVkWnVRSkE1NW93RnZTZ29nWVdvY3YvaVlSUmtnTFpGeWd0R2lFYUZFOGRYR0tCL2xRR3N1dUM2bjVwVUxBRnpBb01pb25lZ2RTU2FBa0RBaWoxckp1L0FKR1RlOGk0amFVRnQwQnhrcHVuUkJONlVQbHVuOEQ4bEEzeWZZbGVKeVllOEFOQzVjbmZqaXBiK3dCSDhlTWRHS3lzRVE4N0hQbmtEYUxCaGczRUp5dEV4YWVrMjdOcExrdEh3SkZheUNwYUxzTXRDNzRYMW1NR1J1cFpaYXY4TmpQMllLTnFkYXkxd09aN0NrdDdpaFpBTjJYQWpJRUhPY05WM2FaSGxWbEVLeW90Ukkxc1pDdEQwS0p3anUxdWJBZVlGQTFnWW5PVlJkNkZ1U1ExWCtNOVRYbkVGMGVKR1o2d0RrWURQM3dWK0MwRFJNY0VIcnJqSlQ4eWY3ZFpObUNodnorMWt3dm1LMURESkFMWUJmbWNiNHdURGRFYW5Kam1Zb20xbXRGWFJsQUhUQ09hcjdWamZ3UUo3RnF0QVZnamxubnU4ak14dFl4LzRlK0EyZ1U1dU9ac0JxblRYRE1ZSG5obXVtUjRDdDVpeitNYlcrSVNKcGRhRGh2Q29kRFN1cVFPNTlGVnpKQ09EUGU1eDNuY0dnSXRYS2VGWmZWMExxbEswOGpveGRPby91ZFppcGdJemxBeVEybmM2aE5WYlJSRURrcUYxYXdZQVVSVzVCb2loaVhpK0N3WW5BRmZtYWdJWHVpWU1pNlhKVUorbjBLQmNFeU41UXdDZ2ljREhxcHhGMlhVUlVGRzlyQXpLMGtTTjh5dzA5NnIva2Fkc0JnT1VxektDZFkrL3Y0TDhxaFpTYWRoQS9PTTdrUVNXVmlzQThOUmZRQ3E2eC8xdzhLelpvRFhtdXNucFlUaDJsZllENVlyTUM2b3NBZmR6azlZS1ZBMWQwMENGZ0JyNTdRd1E4WmNKcDBGUDJib1JIYWxwYUp0Rkw3VHRnT0dTQWVReGE0am1Dd2JBc3FTL3N1STRjNTV4Q1NCUlhXVlpXUVVsMThpOG5BSk5hYW00YmN5R29SWkxTdHJFNlovMlJvaU5XY0crUWdBa0ErU2VGMHNyeWlUcjdDME15bkJPSE9tR2hMdUtwcHdIT24xTmZNTU1hOG9BbmpwMjhuYzdwcUxacHd4SHFPckFlcU1HYVVXbWRJZDBNR0Nra1ZuTW5xSmVFK1FBZFNPdWhPdUZCOFlhQXlnN1lHbE9hNFU1RU1rQWpIc01Ca2hBVForMHRKN2VPdjRyQVpzYVhsQW9jM01vQkhJMEdJQVpjbTBYZ0VkNFVqcTZsREV4dEpVNXozSnRmTEpOeTRnNFo5ZklNTGxodDI0cFVpZFNPMm4rZlZRZlFXamVSMGhscEdzUytwc0FZSXZNbjI2eHNGU0hrUjZHM1pycDJyWHU3a2crd295NWVFRWJLL2ptMUZCdkxFRHlQeWcyZUtUaVBFSnNPcnNWY3JsMk90aFkrcVR0OTNRYlc4aE82VGw3VHhZa1EyTDVmZzJnWHZjOUtuSnpqUUVZQXJSSUJyQzR4MUV3QU5Sc1BBdDI3YXpoczRpR0p6TEVSRDFZbWVGWFZHOGlycm03bDhtYnNXTXVwZ0diaXEycGs2ektlWlpFOWZ3VmhHdERub2VXOXNXdFZIVEJQUWhxaytaZTYxN25MUEpXNms5cDZRTXFHRUN1alQwdmErbW90VWE3ZFZoZ1VBYlR5bzBkcGF1YktYUG5nQU80WTFyRFV6dXh4R29iN3UwQU1sV2xQREE4TW1OVStDNDBXUUtvRmpubXBUY1hUeFhhdTFYUGU2eTZDMzVqemljRDZPTGVSTmtLUitKWERFRHgzb3NsWUt6dnRrMEdlR2Rkang3K2dScllEcVhsTnREVkZZTE5MWkI3eFdsTis1N0VGYU1qN0xkYkJqc1d4aWtsbWJSbG1mTnNHVVQxRERaRThZVkdoc2t0QktVeEpidEliZnhyMDF4T1FwTS9wU2tQL01EZmJmb2pRd2dwYUN1bVplVkJ0dzV3cjJGOHFYVFQ3clhXVGJEU24wcEs1S21mSzNhZjVZZTV0d1BJVkNPdFltT0VKRFlTQkNLOUZPK1dYV1hYcUlwa3oySzVjR0RHckNkcnRsb1YzcEVEVnFBVWVsZVVpdGFRM1o0aDZUSWdUeEdpWkFBWjY1SUJ3SmZnSW5RUi9sR0gwdUkxSUJRcG5XSGhaL0ZzWFJNM2J1R255VitabG50cHdONUxId0lTU1Vxanc1OEtlaEtWZVZlNGw2WkdocnhIY09RckIxUmRwSGJRSEVSSEE4bi84dzliK29DaVlRdFh4UFhBR2pjN2JiTGI1aUN5dnZpY1V3N0lWQWFzR1Eyc3Iwd043dVdZWEdVQThzdVIzQmlKSkpZbS83RFRKc3BPNkkrQ1M5aW5LKzlvSFY2aWNjeVVic1J1SE9OTTdIR0RWY0d4RVE0N2JPWjZNY0x0bURhajMzaEJUaEZuTlFORWtHcm00R2lGMG5KT2s2MURPaU5mWDZSc1ZTS25keSs5Z1JoUnV2b3h2MGd5bThpNS8wcWlNaGhnRXpQK3VOZDJoQkFYY3NyVng2S0wxUDRuU0s1TnpzTmZRbkw3aWI5Si8yem1md3dHd01lWTdZY3FxcW00NkZZeU1LUHpRTFV2Q0Y3c2pvbWZRcm4xd1RtRDVBWTk2MXdQTXNzMTBrSWNQcVZ6YmZHUUJJTWdiTkJZZ3FYdWxNTjJsdHJGdDRGcmVTRmluTEVONU9adzBNU21ueUFpQkE4eUU3dnRLUmJTc1REbFBSaWdId3hBbUdnbmttTFdvYlNjMDF6WVFqcnZxWUFyaWF2Z08yNi9wdHhHeTBFUWRiUHhXU3cwS3lleWRpZFJxYlJSYlJPNjV1dzJtcmE3U0czOEMxY2ZpQjRrMTUvUzhhODArb0N5TWRFdEdXQVltam03VnpBb2U5WVhzeXFEQTFqamg4QksxZk9GMmhBRHpicmMrRUlzV1BDVys4YzZTak9ac21mTExFSTRtTm8rNTF3cHVERThLS3JZa2xTd1lMVkJwYytXMTRjUjBPanFOY1JHNk1zd3EwL2JxaUJmNGptK1p4c3FiQ3dZSGpEUmJpUlNqRkRhbk5PeHBYWUtNN1JneW1tTmpHalcwSkdTR3o3UTBNUVJqdWNUZVcrdEZ1UmNJYjVyZVk2L2JVYXpoMTFWK3hkUy9sOXYvMFg3Ri8rWkM1RDBaL09zbjJBQWwzV1BHRE5yVVh4Z1FybU9LTThGSzMzREpQZit3cTJlaW9GRksyWEdXbkhWb1JqY3YzSXBieXg2MjMwWm1qRmNiSjlaTVpjYnd5ai95YjA4TVB5c0xrZm5ZMmZIZmx6S2tFL3NwMGVsWFZFL0pITjhVMkhqejh5R21Va3hsOWRpZG5ScXBuVG1Ca3Y5SEpqV1h6NXhaeVEwSmJlYVJGTVI1eXlPaVp6ZFNWUW83aDY1azJzNC9maVU2VlZYMlpUT1JuZVMvSC8rNTMvUTh6OUIvbXdjV0t2MHF2dmR0RlZ6QjR6R21XTWVTd1hVZkpEK2pJTUEvYmtNRkF3Z3Z5Z0FNS3FBaW5BcDczdVFlQ0ExRkxmWWd3NUEyeDBhcmF4a1ZLVlpKRGt4UDhZdys1bUM3TlV5K3lFaEl6MExwR3prcjRxUURJVGtSamJNdDB5S3FTYnNxbUdTZjVYUytmOG43MnhiNGdpQ0lCd1NBU0VTQ0w3bElCd1lEd0luOS8vL1hxYjdxYnFhMmZzVVJCQ3RqWHR1YVFDczdkbCttOTRTcUIzd1BXWk44TFh2cnlKS1JOUkYwOFVUUHk2R0RJMmsrU2JydVNHVGhna1ZSSFBoTkNRL0RmUjN5TDhnZjJydEhrMVdFbnFKZzhsQjF2UC9tVGU5MWwrNGE2UjVBdHhOZy9NRzFTNUFoUWUxMm51bVRMK0xWQTRaQ2IzYSszM3JGK2xpN3dLM1NhdUtoRFR5OXFxS3R1RlQ2L2RvejlRV0JTYll6WjJ5REtudCtnWWZLbVFPUzg0UnhRL0w2dXgxZTQ2MkRnaTlxTHUxNGdLR0hENnF5b2REMzZ6bmVvYTNlUy9VQ25RK2JRWFA5eGMzUU9QNXZzNUwzMCtRaVFuZTAvSGtPNEJ3c1kzL0NYY3ZvelA3RmlBOGNJS3RudEIzL2RwSDdZSmxSQjk3Z3ZINGR0ajdJMGM2RHdZODlwdWFCYW5Kb3NMVDdlTktGaFZJQkM2RmJ6VEJPQTRiNVF3WE8vcE04TVZ6MkhBcnJWWm5WRzM5K0pZTGZMczZEVVRjYUZvZmtUR0dERzBVTDdjdDYvbFJ4bzA1WDFEQmwvOUMyV2tlQVJpYyszNEN1Y2FVMy9IL2ZBYzRFWFJmcjgxVlBwQ2FwWk9BZC9VejdZRFR5SVhIVWU4WXAxYmJRem9MdUpwNkJ3TmdFMFZhUm02eXNZVTdZUEEzNGUyWE1VNjZyZzg0WjBqckNjWndyT3hNUnUzV1VqNUlwc21jYzFoeFpNYVVIVzRsMnRLQmdodDFpeHVRWmlXaSthYUJQcHM1VHM5d1lPTmVxVmVnRk4wNGdVN1pQaTVJNnFYMTEvdmUwNENXSk1DMXhtZTdERkR0LzU1S0lIL2hhZ3p6MGFCUHQyeVJFS1BQRzhLZ1l6WUQ5MXZYdHNab0M0L2hUdkYwdTE4NFo2MnNKaGlMSzloYjIvTktDRDRUcU9YSUtvM0M4Y2ZXYU11SEVISHI1OGhyR2JGanMraXBjMkdjbzNnaFVpL1U2MUR4M29EQ1FQZWh1dStIak94WFhHUFgwWHNTWDNtQ3kxdFBrd2FrMTE0OStkZEVpTDkwQTZqQi8vdklNWGd3NmRTbjM3c292SW9IUDVNNzVmU2JvaFpoMUliSEwzTm9oWkRPakRjZzRleXRKUUJMTXMxSyt4UjNHL1BHWkdGaXZzS2dXYmxSdDNWRlVqUzFpQllkcVNlMDJhUHYyMElaSHllQ2NJdmM5OU55Vno1TnJqR3Z3YnF0bVc0ZEMxQ0NZWXR3Q2dHOFdXSHZWb0F1YlkydFF2UmU2ZFVvWTlTK1J4TWZXTFNkRUV0MGJUamREUkR0L0FEV2s5cDgvTElJV1V3b1lpdHhmN2VKMHpuYzF1R1RaY2JXYmJPcjUvMGlsZnM2MmlKdUhQR2dXTDZnQTY3ZkhyVnhZazRGRS9EU1R6Q25ndHMxVnBhbDlPODJOQWI4YWtoQVNvR2QrRWd6VU5jRXJqekdpTUtHMmtMeDVWaTBrOXFHT0VQKzk0V0JPb3phOG12ZXBCQ0I2NEQwbzl5WGpTVzRCaTg1b1NxV2JadkZoakZycm15N0lsQTNxcjQzRER2ZGJQTGVQYWlmUUsxbzJsMVFham5MVWtYQWJxTHRFZDhhRXpJMUF4QUV1d0djblhnYUI2LzBHSHF6U1ZHNTdxemFUVXp3U3U1RENuVVlOZFB3Yzk0a1VUVGExa2U0WEY3bTBvNDJaWi9xd0lJbHNWVzl0R3ErM2oxU0RuYmxTNitNN1dhdWVvYVR1YS9aT3BTRDFZbENKUDZOZ1diWjVacDJJRXlSa0ZtM1FDLzRYUVpEYkFTWHM3VWt4RXhzRFQ2SGRIVStKTHkwaFFYOEdrdzRRbXVrdHZzV3hOcXhaWjBXUS80NE9Cd3lST1pIZGN3K3VQNmsvVWphNDdFYnhxdE9GUHlCdVFybS9rQ3QxcGdvTXFvenFGL2FreklZS2JMTE5kdi9kYlgzWkVsaW9ZbWtReWRQWnRpQVE5US9jYkJjcmtCOTJ6S25qd3FVcHZKVmhzM3UwWEt0dENQUmV6d3dXcHlEOGdkY0JTTXhUc2NaWHZpOEVyTzgvOG1DWDF4QWJXUEpoeVc2WGcwYjhlYkhNV0ZVYVBQYkpBbHhGVEFKVnpTV3ZnTDVQd2U2ZDB5VkwvYktseEhqaE0zdHhPT2FCemZWTDR3ZVlQMVorOUhMdXM3VmJNcGdRWDQxY0R3ZEF2VUZiRm9LbFhCYlBuN1pTNUtpaTdSTkp0RGlFamgvK29td3ZwQkxRZGM1REVzVHcyNE95M1JyQkxRVFcvNnN4TG9Gc3VCajNvR1VUY29rQkladGJyVlNhWVNPSzI4Vy9HdnZERlliaUdFZ2FnaHRvYWVrbDNhaHAxd0tZZnYvdjFka1dYNmFRQytGd0pycU9SZjdhbHZ4V3FOeEM2SnZEZWorVzB4OHBGeENFSVNqRUpmcEkxWGlCMy9BZDJ6TXFZZllDQU1TOEFOaU5qY21rZGpRZitXNWwrT1hZZlF2VTFuWW9VN2FLUVJCM3ZjVWkxbVA1WmRuL2RNZnpsUWQzc2hZc0FSU3dHZXlwMENCQ3pIdVRJVEhSZVhDYThoZzNnU2Y4ME96cG9aOVpZQ1h5Qnl0TzQ1SXpCSUlTRjB5dGI5Y2lMSFpIenIzaGV0djFhb0FRWkFSTXQyY0ZWTFJ0RGdQM1BhOUJTTnZLUUdmeSs0amJPeWlLL0EvYUtQZ2hlSlY1RDBwTDZ4bEUzZldFM3VEYjFKZXh1RStyNHF1M0FNcGREZkVDZGRnQVR4Tk1KL3hDQUI4Z3lGSU94cTFBSjRoTDRCT0Z2Z1psTDBoMlhsM1cwMnNKNEIvZUtNZGpzSWY2UVFyVTN6QndrWmZ4aldpNXA1VFlkaHFmbUk5c1FZRnNuQXdrVmMyc1VMZ04raXVHMGp4c05YRWUyUUZDZ3BEQk52TTJOako2L2lPbGJxNWpuWTJ5d1A2L0srMkFBcXZkTkxOdkczWnlESUVmcWZBOHJySUxKTm9oeVBBQ2hRVWg0SnZabkdZRDRIZjVMSzVSQTg4RDdoV0FDaFFCQWxkMDVGSFhlRDNGaU9iRjBYZGllYXhudGpiU2hTMmxhVmRoN25YTmZwRDRHY2pXaFNWK1VyV0V3dFIvQUJ0d3pZbStJeFNsd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcbiAgcmV0dXJuIGltYWdlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm50KCl7XHJcbiAgcmV0dXJuIGBpbmZvIGZhY2U9XCJSb2JvdG9cIiBzaXplPTE5MiBib2xkPTAgaXRhbGljPTAgY2hhcnNldD1cIlwiIHVuaWNvZGU9MSBzdHJldGNoSD0xMDAgc21vb3RoPTEgYWE9MSBwYWRkaW5nPTI0LDI0LDI0LDI0IHNwYWNpbmc9MTIsMTIgb3V0bGluZT0wXHJcbmNvbW1vbiBsaW5lSGVpZ2h0PTE5MiBiYXNlPTE1MiBzY2FsZVc9MzA3MiBzY2FsZUg9MTUzNiBwYWdlcz0xIHBhY2tlZD0wIGFscGhhQ2hubD0wIHJlZENobmw9NCBncmVlbkNobmw9NCBibHVlQ2hubD00XHJcbnBhZ2UgaWQ9MCBmaWxlPVwicm9ib3RvXzAucG5nXCJcclxuY2hhcnMgY291bnQ9MTk0XHJcbmNoYXIgaWQ9MCAgICB4PTYzNiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yICAgIHg9NTc2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEzICAgeD00NTAgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzIgICB4PTI5ODcgIHk9MTI0MiAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMyAgIHg9MTcxNCAgeT03NjkgICB3aWR0aD02NiAgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM0ICAgeD0xOTk5ICB5PTEyNjMgIHdpZHRoPTgxICAgIGhlaWdodD04NyAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzUgICB4PTEyMTQgIHk9OTUxICAgd2lkdGg9MTM2ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNiAgIHg9MTYxMCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS00ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM3ICAgeD0xMzQxICB5PTU5NSAgIHdpZHRoPTE1MiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzggICB4PTE2NTggIHk9NTkyICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOSAgIHg9MjA5MiAgeT0xMjYzICB3aWR0aD02MiAgICBoZWlnaHQ9ODUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTI4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQwICAgeD0xMDMgICB5PTAgICAgIHdpZHRoPTkwICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDEgICB4PTAgICAgIHk9MCAgICAgd2lkdGg9OTEgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MiAgIHg9NjY0ICAgeT0xMjk0ICB3aWR0aD0xMTQgICBoZWlnaHQ9MTE0ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQzICAgeD0wICAgICB5PTEzMTcgIHdpZHRoPTEyOCAgIGhlaWdodD0xMjkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDQgICB4PTE5MTYgIHk9MTI2NCAgd2lkdGg9NzEgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xMTEgICB4YWR2YW5jZT0zMSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NSAgIHg9MjMzICAgeT0xNDU3ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ2ICAgeD0yODI4ICB5PTEyNDUgIHdpZHRoPTY4ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEyICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDcgICB4PTAgICAgIHk9NDI5ICAgd2lkdGg9MTA5ICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OCAgIHg9MjM5MiAgeT01ODMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ5ICAgeD0xMTIgICB5PTExNDMgIHdpZHRoPTkzICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTAgICB4PTE0NDMgIHk9NzcyICAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MSAgIHg9MjY2MCAgeT01NzUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUyICAgeD0xNzk0ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTMgICB4PTUzOSAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NCAgIHg9NDA2ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU1ICAgeD0yMDgyICB5PTk0MSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTYgICB4PTI1MjYgIHk9NTgxICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NyAgIHg9MTU4MSAgeT03NzEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU4ICAgeD0yMzgzICB5PTExMTMgIHdpZHRoPTY3ICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTkgICB4PTM3MiAgIHk9MTE0MCAgd2lkdGg9NzMgICAgaGVpZ2h0PTE1NiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zNCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MCAgIHg9NTM5ICAgeT0xMzA3ICB3aWR0aD0xMTMgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYxICAgeD0xNjg4ICB5PTEyNjkgIHdpZHRoPTExNSAgIGhlaWdodD05MyAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjIgICB4PTQxMSAgIHk9MTMwOCAgd2lkdGg9MTE2ICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MyAgIHg9ODAwICAgeT03NzkgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY0ICAgeD0xNDIxICB5PTAgICAgIHdpZHRoPTE3NyAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTYgICAgeGFkdmFuY2U9MTQ0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjUgICB4PTI3MDggIHk9NzUyICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NiAgIHg9MjIyMSAgeT05MzkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY3ICAgeD0xODExICB5PTU5MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjggICB4PTE2NTAgIHk9OTQ2ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OSAgIHg9MjQ5NiAgeT05MzQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcwICAgeD0yNjMwICB5PTkzMiAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzEgICB4PTE5NjAgIHk9NTkwICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MiAgIHg9OTE2ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTczICAgeD0yOTYgICB5PTExNDIgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzQgICB4PTI3MiAgIHk9NzkwICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NSAgIHg9NzY3ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc2ICAgeD0yNzYyICB5PTkyNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzcgICB4PTIxOTcgIHk9NzY1ICAgd2lkdGg9MTYzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OCAgIHg9MTA2NSAgeT05NTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc5ICAgeD0xNTA1ICB5PTU5NCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODAgICB4PTE5MzggIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDEgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MSAgIHg9MjIyMiAgeT0yMDcgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgyICAgeD0xMzYyICB5PTk0OSAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODMgICB4PTIxMDkgIHk9NTg4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NCAgIHg9NjE3ICAgeT05NTUgICB3aWR0aD0xMzggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg1ICAgeD0xMjggICB5PTc5MiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODYgICB4PTI4NzAgIHk9NzQ5ICAgd2lkdGg9MTQ3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NyAgIHg9MjAwMiAgeT03NjcgICB3aWR0aD0xODMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg4ICAgeD0zMTIgICB5PTk2NiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODkgICB4PTE1NyAgIHk9OTY4ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MCAgIHg9MTUwNiAgeT05NDcgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkxICAgeD02NTggICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTIgICB4PTI5NDUgIHk9MjA0ICAgd2lkdGg9MTExICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MyAgIHg9NTY3ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk0ICAgeD0xNTcwICB5PTEyNzEgIHdpZHRoPTEwNiAgIGhlaWdodD0xMDUgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTUgICB4PTAgICAgIHk9MTQ1OCAgd2lkdGg9MTIxICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT03MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NiAgIHg9MjYyMiAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTQ5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk3ICAgeD0xNTg1ICB5PTExMjEgIHdpZHRoPTExOSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTggICB4PTY3NyAgIHk9NDE4ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OSAgIHg9MTQ1MyAgeT0xMTIzICB3aWR0aD0xMjAgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMCAgeD0xMjA5ICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAxICB4PTEzMjAgIHk9MTEyNSAgd2lkdGg9MTIxICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDIgIHg9MTg2NiAgeT00MDggICB3aWR0aD0xMDEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTYgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMyAgeD0xMzQgICB5PTYxMiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA0ICB4PTI2MjcgIHk9Mzk1ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDUgIHg9MTA1MCAgeT03NzYgICB3aWR0aD02NyAgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNiAgeD0xMzI3ICB5PTAgICAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA3ICB4PTI0OTUgIHk9NDAxICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDggIHg9Mjc1NSAgeT0zOTIgICB3aWR0aD02NCAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOSAgeD0xOTczICB5PTExMTcgIHdpZHRoPTE2OCAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEwICB4PTIxNTMgIHk9MTExNSAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTEgIHg9MTE4MSAgeT0xMTI2ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMiAgeD0yNjcgICB5PTYxMSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEzICB4PTQwMCAgIHk9NjAwICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTQgIHg9MjI4MSAgeT0xMTEzICB3aWR0aD05MCAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNSAgeD0xNzE2ICB5PTExMjAgIHdpZHRoPTExNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE2ICB4PTQ1NyAgIHk9MTE0MCAgd2lkdGg9OTUgICAgaGVpZ2h0PTE1NSAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0yMyAgICB4YWR2YW5jZT01MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTcgIHg9MTg0NSAgeT0xMTE3ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOCAgeD0yNzcyICB5PTExMDAgIHdpZHRoPTEyMiAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE5ICB4PTI0NjIgIHk9MTExMyAgd2lkdGg9MTYzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0xMjAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjAgIHg9MjYzNyAgeT0xMTA2ICB3aWR0aD0xMjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMSAgeD0wICAgICB5PTYxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIyICB4PTI5MDYgIHk9MTA5NyAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjMgIHg9NDU4ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNCAgeD0yNDUxICB5PTIwNiAgIHdpZHRoPTYxICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI1ICB4PTM0OSAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjYgIHg9MjM3OCAgeT0xMjU5ICB3aWR0aD0xMzggICBoZWlnaHQ9NzkgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MCAgeD01MTMgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYxICB4PTIxNyAgIHk9MTE0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjIgIHg9MTM0MSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTI1ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MyAgeD0xMzAwICB5PTc3NCAgIHdpZHRoPTEzMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY0ICB4PTcwMiAgIHk9MTEyOSAgd2lkdGg9MTQ5ICAgaGVpZ2h0PTE0OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zMCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjUgIHg9NDY1ICAgeT05NTUgICB3aWR0aD0xNDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NiAgeD0yMzc1ICB5PTIwNiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY3ICB4PTIwNSAgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjggIHg9MjcxNiAgeT0xMjUxICB3aWR0aD0xMDAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OSAgeD05OTUgICB5PTU5OSAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcwICB4PTEzNjggIHk9MTI3MyAgd2lkdGg9OTkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzEgIHg9MTEzMSAgeT0xMjc3ICB3aWR0aD0xMTAgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MiAgeD0yMjUxICB5PTEyNjEgIHdpZHRoPTExNSAgIGhlaWdodD04MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9ODkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTczICB4PTEzMyAgIHk9MTQ1OCAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzQgIHg9MTE2OCAgeT01OTcgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NSAgeD0zMzMgICB5PTE0NDggIHdpZHRoPTEwNSAgIGhlaWdodD01OSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc2ICB4PTE4MTUgIHk9MTI2OCAgd2lkdGg9ODkgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT02MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzcgIHg9ODYzICAgeT0xMTI5ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTQ3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTI5ICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OCAgeD04OTkgICB5PTEyODggIHdpZHRoPTk3ICAgIGhlaWdodD0xMTEgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc5ICB4PTc5MCAgIHk9MTI5MCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODAgIHg9MjUyOCAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MSAgeD04NjYgICB5PTU5OSAgIHdpZHRoPTExNyAgIGhlaWdodD0xNjYgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgyICB4PTI4OTMgIHk9OTIzICAgd2lkdGg9MTEwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODMgIHg9MjkwOCAgeT0xMjQyICB3aWR0aD02NyAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTYyICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NCAgeD0yMTY2ICB5PTEyNjEgIHdpZHRoPTczICAgIGhlaWdodD04MiAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg1ICB4PTE0NzkgIHk9MTI3MSAgd2lkdGg9NzkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODYgIHg9MTI1MyAgeT0xMjc0ICB3aWR0aD0xMDMgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NyAgeD0xMDA4ICB5PTEyNzcgIHdpZHRoPTExMSAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg4ICB4PTI1NDIgIHk9NzU4ICAgd2lkdGg9MTU0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODkgIHg9MjM3MiAgeT03NjAgICB3aWR0aD0xNTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MCAgeD0xMTI5ICB5PTc3NiAgIHdpZHRoPTE1OSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkxICB4PTkyNSAgIHk9Nzc3ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTIgIHg9MTYyICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MyAgeD0zMjQgICB5PTIxNCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk0ICB4PTAgICAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTUgIHg9MTM1OSAgeT0yMTAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NiAgeD0xODE0ICB5PTIwOCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk3ICB4PTEwMTYgIHk9MCAgICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5OSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMjMgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTggIHg9MTc5MiAgeT03NjkgICB3aWR0aD0xOTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjYgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE1MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OSAgeD0xMTc4ICB5PTAgICAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAwICB4PTI5MjIgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDEgIHg9NjQxICAgeT0yMTQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMiAgeD03NzUgICB5PTIxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAzICB4PTE5NzYgIHk9MjA3ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDQgIHg9MTAxOCAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNSAgeD0xMTEyICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA2ICB4PTkwOSAgIHk9MjEzICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDcgIHg9MjExMCAgeT0yMDcgICB3aWR0aD0xMDAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjggICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOCAgeD0wICAgICB5PTk2OSAgIHdpZHRoPTE0NSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA5ICB4PTE1MjEgIHk9MjA4ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTAgIHg9MjE4NCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMSAgeD0yMDMxICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEyICB4PTE4NzggIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTMgIHg9Mjc2OSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNSAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNCAgeD0xMjA2ICB5PTIxMCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTEgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTEzICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE1ICB4PTI3OSAgIHk9MTMxNiAgd2lkdGg9MTIwICAgaGVpZ2h0PTEyMCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MCAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTYgIHg9MjY1NSAgeT0yMDYgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTc0ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEwICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNyAgeD0yNjI1ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE4ICB4PTI0ODEgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTkgIHg9MjMzNyAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMCAgeD0xNjcwICB5PTIwOCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIxICB4PTQ4NiAgIHk9MjE0ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjIgIHg9MjM2MCAgeT05MzkgICB3aWR0aD0xMjQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMyAgeD0xMjEgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzEgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NyAgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI0ICB4PTE2MDQgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjUgIHg9MTQ3MyAgeT00MTIgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNiAgeD0xNzM1ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI3ICB4PTUzMiAgIHk9NjAwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjggIHg9MjkyNiAgeT01NjkgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOSAgeD0yNTI0ICB5PTIwNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MSAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMwICB4PTk5NiAgIHk9MTEyOSAgd2lkdGg9MTczICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xMzUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzEgIHg9MTk3OSAgeT00MDcgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMiAgeD0xMDc2ICB5PTQxNSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMzICB4PTk0MyAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzQgIHg9ODEwICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNSAgeD0yNzkzICB5PTU3MiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM2ICB4PTc3MiAgIHk9NjAwICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzcgIHg9Mjk3MCAgeT0zODggICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOCAgeD02NjMgICB5PTYwMCAgIHdpZHRoPTk3ICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM5ICB4PTAgICAgIHk9MTE0MyAgd2lkdGg9MTAwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDAgIHg9MjgxMCAgeT0yMDUgICB3aWR0aD0xMjMgICBoZWlnaHQ9MTczICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTUgICAgIHhhZHZhbmNlPTk0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MSAgeD0wICAgICB5PTc5MiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQyICB4PTI2MCAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDMgIHg9NTM4ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NCAgeD0zOTkgICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ1ICB4PTI4MzEgIHk9MzkwICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDYgIHg9MjI1MyAgeT01ODMgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NyAgeD0xNDAgICB5PTEzMTcgIHdpZHRoPTEyNyAgIGhlaWdodD0xMjggICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ4ICB4PTU2NCAgIHk9MTEyOSAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE1MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDkgIHg9MjExMSAgeT00MDcgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MCAgeD0yMjM5ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUxICB4PTIzNjcgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTIgIHg9NjcyICAgeT03NzkgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MyAgeD03NDkgICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU0ICB4PTg4MyAgIHk9MCAgICAgd2lkdGg9MTIxICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTUgIHg9MTc0NCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5rZXJuaW5ncyBjb3VudD0xNjg2XHJcbmtlcm5pbmcgZmlyc3Q9MzIgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NiAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODkgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD0yMjEgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTMgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTYgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg2ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTc0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTc0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTg1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjU1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTMgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTcxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTgxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zOSAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODcgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NiAgYW1vdW50PS0xNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODkgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD02NSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTQgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTcgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDQgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD03NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIxIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjU1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTExIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0OSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NiAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAwIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIwIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDUgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE3MyBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDEgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05NyAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjggYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03NCAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTExIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQyIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xNzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTY1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5OSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5gO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IHtnZXRUb3BMZXZlbEZvbGRlcn0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3RpY2snLCBoYW5kbGVUaWNrICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICBjb25zdCB0ZW1wTWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlVGljayggeyBpbnB1dCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCAgfHwgZm9sZGVyLmdyYWJEaXNhYmxlZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5wcmVzc2VkICYmIGlucHV0LnNlbGVjdGVkICYmIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgaWYoIGlucHV0LmludGVyYWN0aW9uLnByZXNzID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICAgICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24uc3ViKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7ICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LndvcmxkVG9Mb2NhbChpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vTk9URTo6IGluIG9ydGhvZ3JhcGhpYyBtb2RlLCB3ZSd2ZSBhbHJlYWR5IG11dGF0ZWQgdGhlIHBvc2l0aW9uIG9mIGZvbGRlcnMsXHJcbiAgICAgICAgICAvL21lYW5pbmcgdGhlcmUgY291bGQgYmUgc29tZSBpbmNvbnNpc3RlbmN5IHdpdGggdGhlIG1vdXNlSW50ZXJzZWN0aW9uIHBvaW50IG5vIGxvbmdlciBiZWluZyByaWdodC4uLlxyXG4gICAgICAgICAgLy9JIHRob3VnaHQgdGhpcyB3YXMgcGxheWluZyBhIHJvbGUgaW4gYSBidWcgd2l0aCBvcnRob2dyYXBoaWMgZm9sZGVyIGxheW91dCwgYXBwZWFycyBvayBmb3Igbm93LlxyXG4gICAgICAgICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG5cclxuICAgICAgICAgIGZvbGRlci51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICBpZiggaGl0T2JqZWN0ID09PSBwYW5lbCApe1xyXG4gICAgICAgICAgaGl0T2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBoaXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZVBsYW5lLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KCBpbnB1dC5tb3VzZUNhbWVyYS5nZXRXb3JsZERpcmVjdGlvbiggaW5wdXQubW91c2VQbGFuZS5ub3JtYWwgKSwgdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VQbGFuZSApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBpZiggaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgICBpZiggaGl0T2JqZWN0ICE9PSBwYW5lbCApe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQgPSBmb2xkZXI7XHJcblxyXG4gICAgICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuc2VsZWN0ZWQubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZU9mZnNldC5jb3B5KCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApLnN1YiggdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgXHJcbiAgICAgIHRlbXBNYXRyaXguZ2V0SW52ZXJzZSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIHRlbXBNYXRyaXggKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG5cclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcbiAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgaW5wdXRPYmplY3QuYWRkKCBmb2xkZXIgKTsgXHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJiZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlucHV0LnNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuXHJcbiAgICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiUmVsZWFzZWQnLCBmb2xkZXIgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsImV4cG9ydCBjb25zdCBncmFiQmFyID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFnQ0FZQUFBQ2luWDZFQUFBQUNYQklXWE1BQUM0akFBQXVJd0Y0cFQ5MkFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQURza2FWUllkRmhOVERwamIyMHVZV1J2WW1VdWVHMXdBQUFBQUFBOFAzaHdZV05yWlhRZ1ltVm5hVzQ5SXUrN3Z5SWdhV1E5SWxjMVRUQk5jRU5sYUdsSWVuSmxVM3BPVkdONmEyTTVaQ0kvUGdvOGVEcDRiWEJ0WlhSaElIaHRiRzV6T25nOUltRmtiMkpsT201ek9tMWxkR0V2SWlCNE9uaHRjSFJyUFNKQlpHOWlaU0JZVFZBZ1EyOXlaU0ExTGpZdFl6RXpNaUEzT1M0eE5Ua3lPRFFzSURJd01UWXZNRFF2TVRrdE1UTTZNVE02TkRBZ0lDQWdJQ0FnSUNJK0NpQWdJRHh5WkdZNlVrUkdJSGh0Ykc1ek9uSmtaajBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOHdNaTh5TWkxeVpHWXRjM2x1ZEdGNExXNXpJeUkrQ2lBZ0lDQWdJRHh5WkdZNlJHVnpZM0pwY0hScGIyNGdjbVJtT21GaWIzVjBQU0lpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB6ZEVWMmREMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFJYWmxiblFqSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwMGFXWm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNScFptWXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpYaHBaajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5bGVHbG1MekV1TUM4aVBnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBiM0pVYjI5c1BrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPakkxT2pNeUxUQTNPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRZdE1Ea3RNamhVTVRZNk16YzZNak10TURjNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pNM09qSXpMVEEzT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThaR002Wm05eWJXRjBQbWx0WVdkbEwzQnVaend2WkdNNlptOXliV0YwUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNHpQQzl3YUc5MGIzTm9iM0E2UTI5c2IzSk5iMlJsUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rbERRMUJ5YjJacGJHVStjMUpIUWlCSlJVTTJNVGsyTmkweUxqRThMM0JvYjNSdmMyaHZjRHBKUTBOUWNtOW1hV3hsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmVHMXdUVTA2U1c1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSdlkzVnRaVzUwU1VRK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPamRsTnpkbVltWmpMVGcxWkRRdE1URmxOaTFoWXpobUxXRmpOelUwWldRMU9ETTNaand2ZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pazl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDU0YlhBdVpHbGtPbU0xWm1NMFpHWXlMVGt4WTJNdFpUSTBNUzA0WTJWakxUTXpPREl5WTJRMVpXRmxPVHd2ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG1OeVpXRjBaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEcGpOV1pqTkdSbU1pMDVNV05qTFdVeU5ERXRPR05sWXkwek16Z3lNbU5rTldWaFpUazhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UWXRNRGt0TWpoVU1UWTZNalU2TXpJdE1EYzZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTI5dWRtVnlkR1ZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHdZWEpoYldWMFpYSnpQbVp5YjIwZ1lYQndiR2xqWVhScGIyNHZkbTVrTG1Ga2IySmxMbkJvYjNSdmMyaHZjQ0IwYnlCcGJXRm5aUzl3Ym1jOEwzTjBSWFowT25CaGNtRnRaWFJsY25NK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBJSEprWmpwd1lYSnpaVlI1Y0dVOUlsSmxjMjkxY21ObElqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tRmpkR2x2Ymo1ellYWmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHdPUzB5T0ZReE5qb3pOem95TXkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNHhQQzlsZUdsbU9rTnZiRzl5VTNCaFkyVStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0Mk5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNand2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgrT2hGN1J3QUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUFsRWxFUVZSNDJ1elpzUTNBSUF4RVVUdVRaSlJza3Q1TFJGbUNkVExhcFVLQ0Jpam8vRjBobjJTa0p4SUtYSkpscnNPU0Z3QUFBQUJBNnZLSTZPN0JVb3JYZFp1MS9WRVdFWmVaZmJONW0vWmFtamZLK0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNCZnVhU25hN2kvZGQxbWJYK1VTVHJON0o3TjI3VFgwcnhSeGduZ1pZaWZJQUFBQUpDNGZnQUFBUC8vQXdBdU1WUHcyMGh4Q3dBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQxJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAvLyB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjU7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwLCBpbWFnZS5oZWlnaHQgLyAxMDAwLCAxLCAxICk7XHJcblxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcbn0oKSk7XHJcblxyXG5leHBvcnQgY29uc3QgZG93bkFycm93ID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPakU0T2pJMUxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3hPRG95TlMwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNRFF5WWpJMFpTMWlNemMyTFdJME5HSXRPR0k0WXkxbFpURmpZMkl6WVdVMU1EVThMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qTXdOREppTWpSbExXSXpOell0WWpRMFlpMDRZamhqTFdWbE1XTmpZak5oWlRVd05Ud3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejVVaWx6MEFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBSmRTVVJCVkhqYTdOM0xjY0pBRUlUaFJ1VzduY1VlVFFoa1FBaUlETWdJaFVJSWNGUVdKZ0o4OEZLbG92d0FyTjJkNlo0NWNaR0EvVDl2aVlmdHhlVnlRWXp1ZExFRUFTQW1BTVFFZ0JqSmVXbDF4eW1sTndBSEFNZHhISHZGeFU4cERRQ1dBRmJqT0g3STdBQ1QrTzhBTm5raEZPTnY4aG9jOHByd0E3aUpmeDBwQkpQNDEybUdvRE1RWHdyQk4vR2JJdWlNeEpkQThFdjhaZ2c2US9HcEVkd1J2d21DemxoOFNnUVB4SytPb01ZT01Ed1lud3JCRS9HbkNBYlhBUEtUWC8vakZKdVVVdTg0ZnY5ay9PdXNTLzhRZEFibDM4N2VJNEw4bVBjem5Lcm9UbGh5QjFqT2VDNVhDR2FNWDJJdHF3RllBVGlwSVNnUS81VFgwaGVBL042MkZJSlM4VXQrVGxEMElsQUpnY2Y0VlY0R0tpRHdHci9XK3dEVUNEekhyd2FBRllIMytGVUJzQ0ZnaUY4ZEFBc0NsdmhOQUhoSHdCUy9HUUN2Q05qaU53WGdEUUZqL09ZQXZDQmdqVzhDZ0hVRXpQSE5BTENLZ0QyK0tRRFdFQ2pFTndmQUNnS1YrQ1lCVEJEMEFNNjFFUlNJZndiUVc0eHZGa0JHY013N1FUVUVoZUt2OG5OQkFEQ01RREcrZVFDMUVLakdCNENGbDc4UmxGSmE0dXNYVEY3bmpKUnZ6MzVlRC9GZEFTaUlBS3J4M1FFb2hBQ3E4VjFjQTFTNkpwQ003eEtBUVFSdTQ3c0ZZQWlCNi9pdUFSaEE0RDYrZXdBTkVWREVwd0RRQUFGTmZCb0FGUkZReGFjQ1VBRUJYWHc2QUFVUlVNYW5CRkFBQVcxOFdnQXpJcUNPVHcxZ0JnVDA4ZWtCVEJEc25qaDB4eDVmQWtCR01BRFlQbkRJTmgrREFLQ0hRQ2ErRklBN0VVakZsd1B3QndLNStKSUFma0FnR1I5dytKV3dPZWY2eldEVitQSUFZdUxmeGdXQVdJSUFFQk1BWWdKQWpPUjhEZ0QrNk96Z3Y0dXk5Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgaCA9IDAuMztcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggLTAuMDA1LCAtMC4wMDQsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgY2hlY2ttYXJrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPak16T2pVekxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3pNem8xTXkwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzJPRGN4WVRrNVl5MHpOakU1TFRsa05HRXRPRGRrTmkwd1lXRTVZVFJpTldVNE1qYzhMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qWTROekZoT1RsakxUTTJNVGt0T1dRMFlTMDROMlEyTFRCaFlUbGhOR0kxWlRneU56d3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejV6OVJUM0FBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBVHRTVVJCVkhqYTdKemJiNVJGR01aLzJ4YkN2VmhBU0V4VWlJMTQ0dzBoUXRIRUdySGdJU3FnTjZLZ3ROWVdBYjB3MFdvMVhxcmJQYlNsb2tZU3hmTWhlbVgvQWE3d0dBVnE4WFRwMzBEWGk1bUptMGEydTl2My9iNloyWGx1ZHJPSGR3L1BNelBQKzc0elg2RldxeUdGZ1lFQkVscEdEL0FlY0N0d0IvRGJjbStZbTVzVCsvQ3U5UC9uaW02Z0NEd0NYQXQ4RFZ5WDVSZElBc2dQQmFBRWpOUTlkaVB3RmJBNUNTQitUQUZQL2Mvalc0SFBnTDRrZ0hneEN3dzFlUDVtNEdON213UVFFYm9zK1U4MDhkcXR3RWYyTmdrZ0VyYy8weVQ1RG4xMk9kaVNCQkErK2FVV3lYZllBbndEWEo4RUVHNnFOd2tNcnlER1pwc2kzcEFFRUI2cVYzRDdyYUlQK05LbWlra0FnZUF0NEloZ3ZKdnNUSkFFNERrS3dDbmdzRUxzczBrQS9xLzVzOEFoaGRqVHdFRnBkNW9nUzM1VmFlVFBBazhEaTBrQS9wSmZFbDd6SFU3U3VIS1lsZ0FQMXZ5eWtOdGZpaGt0OHBNQVpFa2FWb2hiVllxYkJDQ0lVOENUQ25GTHdKajJsMDhDV05tYS83YVMyNjhDeDZRTlh4S0FySG1lQmg1WFdrN0dzaUEvVHdHTVlmYS9oVXArbWZZYU84MjQvZUdzeU05TEFDOWdtaVB2QXpzREk3L0xyczFEU2lOL0tJOGZsQ1hHZ1ZmdC9WN2dETEFySUFGTWgrcjJmUkRBUzhERWtzYzJBaDhDL1IzczlzdkFhSjVUV2xia3YzeUY1OVpqZHIxczkzamExM0w3RmV2MmF6RUxZTHdCK1E1ck1iM3ViUjRhdnBOS2JuOGFlQWE0bkxlNnRRM2ZSSk92N1FXKzhHZ202TEVqVktPeE00TTVEM0E1N3grcEtZQVg2d3hmczlnQWZBTHM4SUI4cmNhT0t4dlhmRkM1bGdER2dWZmFmSzh6aHJ0eS9FKzBYSGtsTDdlZnBRQW1XcGoybHhQQmJUbjhKN1BvMWZaSDhRelNBbmpOam40SnJNZWNqc21xV0ZRQTNsVnkreVhyOW9sZEFIY0t4N3NhK0R3RFk5aGo4L3lEaXFuZVlpY0k0RkhnUitHWWE1V3pBODNHemhSdzFGZnlOUVR3QzNDUHZaWEVPdUJUekVVVUpMRXFnMVRQVy9LMVRPQ2Z3Q0J3VVRqdU5jaVdqYnN4WlZpTlZDKzMycjR2YWVBZndGM0FnbkRjVFZZRXR3dU5VQTN5eTVqZHUzU3lBQUIrQjNZckxBY2JCT29FN3loTis1TjJ6U2NKd0dBZWVBRDRUamh1TDZhQjFLb242TGJrUDZZMDhvL2pTWVhQRndFQW5BY2VWaERCVlMxbUI2NnhvMEgrRktheHMwaGd5S29kZkFGNEVQaEpxVTZ3M0V5d3locXpRMHJrajRSSWZwWUNBTGdFN0xFemdpUmN4YkMvd2Npdm9GUGVkZVFIaTZ5M2hQMWxqZUc4VW9xNE5Ec29ZSW84V2p0NWdpWS9Ed0hVcDRpL0ttUUhaK3BFVU1EczVORncrMFV5T0xRUnF3RGNjbkF2OEwxdzNIWEFhWnNpdnE1aytJckFDU0pCbnFlRDU0RUR3QWZBTFlKeE53SGZLcG15c2lWL01SWUI1SDB5NkFLd0gvaEJPTzVxWUkyQzRUc2FFL2srQ0FETTFiSDNJbDh4bEVUVkdyNGFrY0dYczRGL0EzZmJHY0UzVkFpb3RoK3FBTUIwRVhkN0pvSkpQTnpHRmFzQXdEU1FCcEhmVk5LdTJ6OUc1UER4ZVBnQzhCQndMdWVSZnlMR05UOEVBWURaVEhJQStRWlNzMnYrOGRqY2ZtZ0NjSFdDKzVGdklDM245a2M3aFh6ZkJlQ000UjdreThZZDUvWkRGUUQ4MTBDNnFQZ1owYnY5a0FWUW55SnFGSXZleEd6bUlBbkFiMXdDN2hNMmhrWGdXVG9Zb1YwbHpEV1FKRkxFNkJvN25TQUFseUx1WTJVTnBBb1pYb290Q1VBZUM1Z0cwczl0a2o5S1F0QUNBTk5BR3FTMVBZYWxSSDQ4QW5BcFlyUGJ5NG9FZG1nakNhRDVGSEV2amJlWHZZRXA3eVpFS0FEbkNmWmJFZndEUEk4NUwrRElmNDRPYU95MGczOEhBTS9lN2d1SVJ4OTRBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRUVTVVJCVkdpQjdkaEJEb013REVSUjdqVGlKQ1B1ZjVXdW1waFZ4WHlrVkpHeklwSjVjZ3NrZG80TGpxT0JyUUE5SEEwMDBNRCt3UFZqdkFXY0ZCanpFQmdKcE1DY1o4Qk1JQVRLUEFKS0FobFE1d253VGNBcE1DNURZQ1NRQXZlcjU4Qk1JQVRLRFJGUUVzaUFHazhBVTBBUU1BVUVBVk5BRURBRkJBRlRRQkF3QlFRQlUwQVFNQVVFQVZOQUVEQUZCQUZUUUJEd2NnRC9CUDRuNHNmSVh5VDhLdk9QQ1gvT2ZFSEJTeHBmVlBHeXpqY1d2TFh4elJWdjc3ekF3Q1VPTDdKd21jY0xUVnpxOG1JN0wvZlBra0lFNEphSE4xMjQ3ZU9OSjI1OWVmTjlpMWx6QUZHREZoM0NsS2hWQjFFemJObGgzSWo3d3hQTkJocG9ZRFdRamdhMkFENVMvQ3lJdmJtcTdnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NCdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHVuZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFUFNVUkJWR2lCN2RneENzUXdEQVRBL0Vub0pVTC8vOHBWc1dXbE9Md0xVVEJ5RmZiRXNOYzRkaTRuMTlYQVVZQnNyZ1lhYU9COHdQOHNHakFXY0Jvd0ZuQWFNQlp3R2pBV2NCalFVQUVDSkF4alFLaUFBZko4MmdSbUJSQ1lGVkJnVkVDQngrL2JnS1pzRzhnRCswQ3FzQStrQ1FCWUt3REFPb0lBU3dVRVdHWWdJRmFBZ0RpRUFhRUNCb1FwRUpnVlFHQ09vY0NvZ0FMd2p2U29BQVAzSUE0b0N3Z05LQXNJRFdnNXdQNEZaUUVuQVdVQkp3RmxnVHNyMjFCR1ZyV3B6cXpveFJLeW1wZHJ6RW9PR0V0V2NjaGFzNEtEWnNyZVAyem43UFVMeDNnRWdWR2c2dG8zQ3hSZGZVT0JvdXQvS0ZENkNjUllRRWpBV0VCSXdGZ2d6MzN3aTJZRERUUlFEYUNyZ1NPQUg4SDhLcWdnWXBBVUFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ1J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcbiIsIi8qKiBcclxuICogQmlnIGJ1dHRvbiB3aXRoIGFuIGltYWdlIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogQWxzbyB1c2FibGUgYXMgYW4gJ3h5IGNvbnRyb2xsZXInIHZpYSBhZGRYWUNvbnRyb2xsZXIgbWV0aG9kLlxyXG4gKiBcclxuICogQVBJIHN1YmplY3QgdG8gY2hhbmdlLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7aXNDb250cm9sbGVyVmlzaWJsZX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBmdW5jID0gdW5kZWZpbmVkLFxyXG4gIHByZXNzaW5nID0gdW5kZWZpbmVkLFxyXG4gIGltYWdlID0gXCJ0ZXh0dXJlcy9zcG90bGlnaHQuanBnXCIsIC8vVE9ETyBiZXR0ZXIgZGVmYXVsdFxyXG4gIHdpZGUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY2hhbmdlQ29sb3JPbkhvdmVyID0gdHJ1ZSwgLy9xdWljayBoYWNrOiBjb2xvciBwaWNrZXIgd2FudHMgdGhpcyB0byBiZSBmYWxzZVxyXG4gIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAgLy9YWFggbWFnaWMgbnVtYmVycy4uLlxyXG4gIGlmICghaGVpZ2h0KSBoZWlnaHQgPSBMYXlvdXQuUEFORUxfV0lEVEggICogKHdpZGUgPyAwLjk0IDogMC4yNSk7XHJcbiAgXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAod2lkZSA/IDAuOTQgOiAwLjI1KSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gYnV0dG9uRGVwdGg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgMSwgMSApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICAvL21vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gIGlmICghd2lkZSkgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgZWxzZSB7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAwLjc1O1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi55ID0gMC4wMTsgLy9YWFggbWFnaWMgbnVtYmVyXHJcbiAgfVxyXG5cclxuICB2YXIgbWF0ZXJpYWw7XHJcbiAgaWYgKGltYWdlLmlzTWF0ZXJpYWwpIHtcclxuICAgIG1hdGVyaWFsID0gaW1hZ2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgbWF0ZXJpYWwpO1xyXG4gIH1cclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgLy9idXR0b24gbGFiZWwgcmVtb3ZlZDsgbWlnaHQgd2FudCBvcHRpb25zIGxpa2UgYSBob3ZlciBsYWJlbCBpbiBmdXR1cmUuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGlmICh3aWRlKSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIC8vVE9ETzogZHJhZyBhbmQgaG92ZXJcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdob3ZlcmluZycsIGhhbmRsZUhvdmVyICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlUHJlc3NpbmcgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgbGV0IGhvdmVyRnVuYyA9IHVuZGVmaW5lZDtcclxuICAvLyBJIG1pZ2h0IHlldCBkZWNpZGUgdG8gY2hhbmdlIHRoaXMgaW50ZXJmYWNlLlxyXG4gIC8vIG1pZ2h0IHVzZSBhIGRpZmZlcmVudCBuYW1lLCBtaWdodCB3YW50IHRvIGFkZCBsaXN0ZW5lcnMgdG8gZXZlbnRcclxuICAvLyByYXRoZXIgdGhhbiBqdXN0IHNldCBjYWxsYmFjayBmdW5jdGlvbi5cclxuICBncm91cC5vbkhvdmVyID0gZiA9PiB7XHJcbiAgICBob3ZlckZ1bmMgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBncm91cC5vblByZXNzaW5nID0gZiA9PiB7XHJcbiAgICBwcmVzc2luZyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhvdmVyKCBwICl7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChob3ZlckZ1bmMpIGhvdmVyRnVuYyhwKTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy9pdCBzaG91bGQgYmUgdGhhdCB0aGUgY2hlY2tzIGluIGluZGV4LmpzIG1lYW4gdGhhdCBtZXRob2RzIGRvbid0IGdldCBjYWxsZWQgb24gaW52aXNpYmxlXHJcbiAgICAvL29iamVjdHMsIHJlbmRlcmluZyB0aGVzZSB0ZXN0cyByZWR1bmRhbnQuLi4gaG93ZXZlciwgdGhhdCBkb2Vzbid0IGFwcGVhciB0byBiZSB0aGUgY2FzZS5cclxuICAgIC8vZXhwZXJpZW5jZWQgc29tZSBidWdzIHBhcnRpY3VsYXJseSB3aXRoICdtb2RhbCBlZGl0b3InIHR5cGUgcGFuZWxzLlxyXG4gICAgLy9UT0RPOiBlaXRoZXIgbWFrZSBzdXJlIGludmlzaWJsZSBvYmplY3RzIGFyZW4ndCBjYWxsZWQgaW4gdGhlIGZpcnN0IHBsYWNlLFxyXG4gICAgLy9vciBtYWtlIHN1cmUgYWxsIHR5cGVzIG9mIG9iamVjdCBkbyB0aGlzIG1vcmUgdGhvcm91Z2ggdmlzaWJpbGl0eSBjaGVjay4uLlxyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAob2JqZWN0KSBvYmplY3RbIHByb3BlcnR5TmFtZSBdKHApO1xyXG4gICAgaWYgKGZ1bmMpIGZ1bmMocCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vY29tcHV0ZSB4ICYgeSBhcyBub3JtYWxpc2VkIGNvb3JkaW5hdGVzIGZyb20gcC5wb2ludFxyXG4gIC8vY291bGQgY29uc2lkZXIgbW92aW5nIHRoaXMgY29tcHV0YXRpb24gaW50byBpbnRlcmFjdGlvbi5qcyBwZXJmb3JtU3RhdGVFdmVudHMoKVxyXG4gIGZ1bmN0aW9uIGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHBvaW50KSB7XHJcbiAgICBjb25zdCBwID0gaGl0c2NhblZvbHVtZS53b3JsZFRvTG9jYWwocG9pbnQpO1xyXG4gICAgcC54IC89IEJVVFRPTl9XSURUSDtcclxuICAgIHAueSAvPSBCVVRUT05fSEVJR0hUO1xyXG4gICAgcC55ICs9IDAuNTtcclxuICAgIHAueCA9IE1hdGgubWF4KE1hdGgubWluKHAueCwgMSksIDApO1xyXG4gICAgcC55ID0gTWF0aC5tYXgoTWF0aC5taW4ocC55LCAxKSwgMCk7XHJcbiAgICByZXR1cm4gcDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZVByZXNzaW5nKCBwICkge1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgcHJlc3NpbmcgYXQgKCR7cG9pbnQueH0sICR7cG9pbnQueX0pYCk7IC8vZmlyc3QgaW5zdGFuY2Ugb2YgJ3ByZXNzaW5nJyBpcyBhbHdheXMgYXQgKDEsIDEpXHJcbiAgICAvL25iLCBsaWtlbHkgdG8gbmVlZCBhIGRpZmZlcmVudCBzdHJhdGVneSBmb3IgZHVhbCB3aWVsZGluZ1xyXG4gICAgaWYgKHByZXNzaW5nKSBwcmVzc2luZyhwKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYgKCFtYXRlcmlhbC5jb2xvcikgcmV0dXJuO1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweENDQ0NDQyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqIFxyXG4gKiBHcmlkIG9mIGJ1dHRvbnMgd2l0aCBpbWFnZXMgb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBpbWFnZWJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtjcmVhdGVUZXh0TGFiZWwsIGNyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3RzLCAvLyBhcnJheSBvZiB7ZnVuYywgaW1hZ2UgfCB0ZXh0LCB0aXAob3B0aW9uYWwpLCByZWxlYXNlKG9wdGlvbmFsKX1cclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICByb3dIZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY29sdW1ucyA9IDRcclxufSA9IHt9ICl7XHJcbiAgXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdCBtYXJnaW4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMztcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSAod2lkdGggLSBtYXJnaW4pICogKDEvY29sdW1ucyk7XHJcbiAgLy9UT0RPOiBhZGQgc2V0Um93SGVpZ2h0IG1ldGhvZFxyXG4gIGxldCBCVVRUT05fSEVJR0hUID0gcm93SGVpZ2h0ID4gMCA/IHJvd0hlaWdodCA6IEJVVFRPTl9XSURUSDtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uZ3JpZFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke29iamVjdHN9XWA7XHJcbiAgXHJcbiAgY29uc3Qgcm93cyA9IE1hdGguY2VpbChvYmplY3RzLmxlbmd0aCAvIGNvbHVtbnMpO1xyXG4gIGxldCBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgZ3JvdXAuc2V0Um93SGVpZ2h0ID0gaCA9PiB7XHJcbiAgICByb3dIZWlnaHQgPSBCVVRUT05fSEVJR0hUID0gaDtcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcbiAgICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGhpZ2hsaWdodExhc3RQcmVzc2VkID0gZmFsc2U7XHJcbiAgbGV0IGxhc3RQcmVzc2VkID0gbnVsbDtcclxuICBsZXQgbGFzdFByZXNzZWRDb2w7XHJcbiAgZ3JvdXAuaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSAoY29sID0gMHgzMzU1RUUpID0+IHtcclxuICAgICAgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBjb2wgIT09IGZhbHNlO1xyXG4gICAgICBsYXN0UHJlc3NlZENvbCA9IGNvbDtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBcclxuICBsZXQgcGFuZWwsIGdyYWJJbnRlcmFjdGlvbiwgYnV0dG9ucyA9IFtdO1xyXG5cclxuICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaW5pdFBhbmVsKCkge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgcGFuZWwuYWRkKGNvbnRyb2xsZXJJRCk7XHJcbiAgICBcclxuICAgIGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5ncm91cC5yZW1vdmUoYikpO1xyXG4gICAgYnV0dG9ucyA9IFtdO1xyXG4gICAgZ3JvdXAuZ3VpQ2hpbGRyZW4gPSBidXR0b25zO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBsYXlvdXRCdXR0b25zKCkge1xyXG4gICAgaW5pdFBhbmVsKCk7XHJcbiAgICAvL1RPRE86IHBhZGRpbmdcclxuICAgIGNvbnN0IGJ1dHRvbldQYWRkZWQgPSBCVVRUT05fV0lEVEggKiAwLjk5LCBidXR0b25IUGFkZGVkID0gQlVUVE9OX0hFSUdIVCAqIDAuOTk7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGJ1dHRvbldQYWRkZWQsIGJ1dHRvbkhQYWRkZWQsIDEsIDEgKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBidXR0b25XUGFkZGVkIC8gMiwgLWJ1dHRvbkhQYWRkZWQgLyAyLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgICB2YXIgaSA9IDA7XHJcbiAgICBcclxuICAgIC8vVE9ETzogdG9nZ2xlcyByYXRoZXIgdGhhbiB0cmlnZ2Vycy4uLlxyXG4gICAgb2JqZWN0cy5mb3JFYWNoKChvYmosIGkpID0+IHtcclxuICAgICAgICBpZiAoIW9iai5pbWFnZSAmJiAhb2JqLnRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc3ViZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9ub3RlOiByZWR1Y2luZyBuZXN0aW5nIGNvdWxkIGltcHJvdmUgcGVyZm9ybWFuY2UuXHJcbiAgICAgICAgc3ViZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VCdXR0b25HcmlkRWxlbWVudFwiO1xyXG4gICAgICAgIGdyb3VwLmFkZChzdWJncm91cCk7XHJcbiAgICAgICAgYnV0dG9ucy5wdXNoKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sID0gaSAlIGNvbHVtbnM7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gTWF0aC5mbG9vcihpIC8gY29sdW1ucyk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnggPSAoMipMYXlvdXQuUEFORUxfTUFSR0lOKSArIEJVVFRPTl9XSURUSCAqIGNvbDtcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi55ID0gKGhlaWdodC8yKSAtQlVUVE9OX0hFSUdIVCAqIHJvdztcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG5cclxuICAgICAgICAvLyAgaGl0c2NhbiB2b2x1bWUuXHJcbiAgICAgICAgLy8gVGhpcyBtYXRlcmlhbCBjb3VsZCBwcm9iYWJseSBiZSByZXVzZWQuXHJcbiAgICAgICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG5cclxuICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgICAgICBpZiAob2JqLmltYWdlKSBhcHBseUltYWdlVG9NYXRlcmlhbChvYmouaW1hZ2UsIG1hdGVyaWFsKTtcclxuICAgICAgICBpZiAob2JqLnRleHQpIHtcclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZShvYmoudGV4dCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpbiA9IDIqTGF5b3V0LkdSSURfQlVUVE9OX01BUkdJTjtcclxuICAgICAgICAgICAgbGV0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICBpZiAodyA+IEJVVFRPTl9XSURUSCAtIG1hcmdpbikge1xyXG4gICAgICAgICAgICAgICAgdGV4dC5jb25zdHJhaW5Cb3VuZHMoQlVUVE9OX1dJRFRIIC0gbWFyZ2luLCBCVVRUT05fSEVJR0hUIC0gbWFyZ2luKTsgLy88LS1cclxuICAgICAgICAgICAgICAgIGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLmFkZCh0ZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGV4dCA9IHRleHQ7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueCA9IG9iai50ZXh0WCB8fCAwLjUgKiAoQlVUVE9OX1dJRFRIIC0gdyk7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueSA9IG9iai50ZXh0WSB8fCAtMC41ICogQlVUVE9OX0hFSUdIVCAtIGg7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgICAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgICAgIC8vYnV0dG9uIGxhYmVsICYgZGVzY3JpcHRvciBsYWJlbCByZW1vdmVkLlxyXG4gICAgICAgIC8vVG9vbHRpcCB0ZXh0IG9wdGlvbiBhZGRlZC4gIE1pZ2h0IHdhbnQgdG8gYmUgYWJsZSB0byBwYXNzIGluIHJpY2hlciB0aGluZ3MuLi5cclxuICAgICAgICAvL21heWJlIGFuIGFyYml0cmFyeSBUSFJFRSBvYmplY3Qgd291bGQgd29yayB3ZWxsLi4uXHJcbiAgICAgICAgaWYgKG9iai50aXApIHtcclxuICAgICAgICAgICAgY29uc3QgdGlwVGV4dCA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIG9iai50aXAsIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vc3ViZ3JvdXAuYWRkKHRpcFRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50aXBUZXh0ID0gdGlwVGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy9wYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcbiAgICAgICAgc3ViZ3JvdXAuYWRkKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgcGFuZWwuYWRkKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAgICAgICAgIGlmKCBzdWJncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vVE9ETzogc3RhbmRhcmRpc2UgaGFuZGxpbmcgb2YgZXhjZXB0aW9ucyBpbiBjYWxsYmFja3NcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIG9iai5mdW5jKCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIG9iai5lcnJvciA9IGUgfHwgJ3VuZGVmaW5lZCBleGNlcHRpb24nO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxhc3RQcmVzc2VkID0gb2JqO1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC40O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgICAgICAgICAgIGlmIChvYmoucmVsZWFzZSkgb2JqLnJlbGVhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9xdWljayBjb2xvciBoYWNrLi4uXHJcbiAgICAgICAgY29uc3QgaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgY29uc3Qgbm9Ib3ZlckNvbCA9IG9iai50ZXh0ID8gMHgxMTEgOiAweENDQ0NDQztcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3ID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaGlnaGxpZ2h0TGFzdFByZXNzZWQgJiYgbGFzdFByZXNzZWQgPT09IG9iaikge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBsYXN0UHJlc3NlZENvbCApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpID8gaG92ZXJDb2wgOiBub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygpICk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwwKSApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlOyAvL3NvbWV0aW1lcyB3ZSBjYXJlIGFib3V0IHRoZSBtb3VzZSBiZWluZyBwcmVzc2VkLCBldmVuIG9uIGJhY2tncm91bmRcclxuICAgICAgIC8vd2lsbCBiZSBzZXQgZmFsc2UgYXQgZW5kIG9mIGZpcnN0IHVwZGF0ZS4gU2hvdWxkbid0IGJlIG5lY2Vzc2FyeSB0byBhZGQgYSBuZXcgcHJvcGVydHkuLi4gXHJcbiAgICAgICAvL29uUHJlc3NlZCBzaG91bGQgYmUgYWRlcXVhdGUuXHJcbiAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgfSwgdHJ1ZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2V1cCcsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBmdW5jdGlvbiB1c2VycyBydW4gdG8gZ2l2ZSBEQVQgR1VJIGFuIGlucHV0IGRldmljZS5cclxuICAgIEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBmb3IgVml2ZUNvbnRyb2xsZXIgYW5kIGJpbmRzIGJ1dHRvbnMgKyBoYXB0aWMgZmVlZGJhY2suXHJcblxyXG4gICAgUmV0dXJucyBhIGxhc2VyIHBvaW50ZXIgc28gaXQgY2FuIGJlIGRpcmVjdGx5IGFkZGVkIHRvIHNjZW5lLlxyXG5cclxuICAgIFRoZSBsYXNlciB3aWxsIHRoZW4gaGF2ZSB0d28gbWV0aG9kczpcclxuICAgIGxhc2VyLnByZXNzZWQoKSwgbGFzZXIuZ3JpcHBlZCgpXHJcblxyXG4gICAgVGhlc2UgY2FuIHRoZW4gYmUgYm91bmQgdG8gYW55IGJ1dHRvbiB0aGUgdXNlciB3YW50cy4gVXNlZnVsIGZvciBiaW5kaW5nIHRvXHJcbiAgICBjYXJkYm9hcmQgb3IgYWx0ZXJuYXRlIGlucHV0IGRldmljZXMuXHJcblxyXG4gICAgRm9yIGV4YW1wbGUuLi5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCl7IGxhc2VyLnByZXNzZWQoIHRydWUgKTsgfSApO1xyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW5wdXRPYmplY3QoIG9iamVjdCApe1xyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCggb2JqZWN0ICk7XHJcblxyXG4gICAgaW5wdXQubGFzZXIucHJlc3NlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGNvbnN0IGhpdHMgPSBpbnB1dC5pbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvLyBvbmx5IHBheSBhdHRlbnRpb24gdG8gcHJlc3NlcyBvdmVyIHRoZSBHVUlcclxuICAgICAgaWYgKGZsYWcgJiYgaGl0cyAmJiAoaGl0cy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5ncmlwcGVkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgaW5wdXQuZ3JpcHBlZCA9IGZsYWc7XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmN1cnNvciA9IGlucHV0LmN1cnNvcjtcclxuXHJcbiAgICBpZiggVEhSRUUuVml2ZUNvbnRyb2xsZXIgJiYgb2JqZWN0IGluc3RhbmNlb2YgVEhSRUUuVml2ZUNvbnRyb2xsZXIgKXtcclxuICAgICAgYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgb2JqZWN0LCBpbnB1dC5sYXNlci5wcmVzc2VkLCBpbnB1dC5sYXNlci5ncmlwcGVkICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLnB1c2goIGlucHV0ICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0Lmxhc2VyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEhlcmUgYXJlIHRoZSBtYWluIGRhdCBndWkgY29udHJvbGxlciB0eXBlcy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBtaW4gPSAwLjAsIG1heCA9IDEwMC4wICl7XHJcbiAgICBjb25zdCBzbGlkZXIgPSBjcmVhdGVTbGlkZXIoIHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBtaW4sIG1heCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBzbGlkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gc2xpZGVyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBjaGVja2JveCA9IGNyZWF0ZUNoZWNrYm94KHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGNoZWNrYm94ICk7XHJcblxyXG4gICAgcmV0dXJuIGNoZWNrYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmMgdG8gY2FsbCBiYWNrIHdoZW4gYnV0dG9uIHByZXNzZWRcclxuICAgKiBAcGFyYW0geyp9IGltYWdlIGNhbiBiZSBmaWxlbmFtZSwgV2ViR0xSZW5kZXJUYXJnZXQgb3IgTWF0ZXJpYWxcclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHdpZGUgd2hldGhlciB0byBtYWtlIGJ1dHRvbiBmaWxsIGVudGlyZSB3aWR0aCBvZiBwYW5lbCAoYXBpIHN1YmplY3QgdG8gY2hhbmdlKVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uKGZ1bmMsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IG9iamVjdCA9IHsgZjogZnVuYyB9O1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJ2YnO1xyXG5cclxuXHJcbiAgICAvL3NlZSBhbHNvIGZvbGRlci5qcyB3aGVyZSB0aGlzIGlzIGFkZGVkIHRvIGdyb3VwIG9iamVjdC4uLlxyXG4gICAgLy9hcyBzdWNoIHRoaXMgZnVuY3Rpb24gYWxzbyBuZWVkcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gY3JlYXRlRm9sZGVyLlxyXG4gICAgLy9wZXJoYXBzIGFsbCBvZiB0aGVzZSAnYWRkWCcgZnVuY3Rpb25zIGNvdWxkIGJlIGluaXRpYWxseSBwdXQgb250byBhbiBvYmplY3Qgc28gdGhhdFxyXG4gICAgLy9uZXcgYWRkaXRpb25zIGNvdWxkIGJlIGFkZGVkIHNsaWdodGx5IG1vcmUgZWFzaWx5LlxyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkWFlDb250cm9sbGVyKHByZXNzaW5nLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnJztcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByZXNzaW5nLCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChidXR0b24pO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVGhpcyBpbnRlcmZhY2UgbWF5IGJlIHN1YmplY3QgdG8gY2hhbmdlLiAgQXJndW1lbnRzIGFyZSBvYmplY3RzIGRlc2NyaWJpbmcgYnV0dG9uc1xyXG4gIEZpcnN0IG9iamVjdCBtYXkgYmUgYW4gaW50ZWdlciBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uUGFuZWwoY29scywgLi4uYXJncykge1xyXG4gICAgbGV0IGNvbHVtbnMgPSBOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpID8gY29scyA6IDQ7XHJcbiAgICBjb25zdCBvYmplY3RzID0gYXJncztcclxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihjb2xzKSkgb2JqZWN0cy51bnNoaWZ0KGNvbHMpXHJcbiAgICBjb25zdCBncmlkID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogY29sdW1uc30pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChncmlkKTtcclxuICAgIHJldHVybiBncmlkO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkS2V5Ym9hcmQoIGtleUxpc3RlbmVyICkge1xyXG4gICAgaWYgKCFrZXlMaXN0ZW5lcikga2V5TGlzdGVuZXIgPSAoaykgPT4gY29uc29sZS5sb2coYGtleURvd24gJHtrfWApO1xyXG4gICAgY29uc3Qga2IgPSBjcmVhdGVLZXlib2FyZCh7a2V5TGlzdGVuZXIsIHRleHRDcmVhdG9yfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGtiKTtcclxuICAgIHJldHVybiBrYjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlVGV4dGJveCh7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVDb2xvclBpY2tlcih7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvcHRpb25zICl7XHJcbiAgICBjb25zdCBkcm9wZG93biA9IGNyZWF0ZURyb3Bkb3duKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBvcHRpb25zXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBkcm9wZG93biApO1xyXG4gICAgcmV0dXJuIGRyb3Bkb3duO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBbiBpbXBsaWNpdCBBZGQgZnVuY3Rpb24gd2hpY2ggZGV0ZWN0cyBmb3IgcHJvcGVydHkgdHlwZVxyXG4gICAgYW5kIGdpdmVzIHlvdSB0aGUgY29ycmVjdCBjb250cm9sbGVyLlxyXG5cclxuICAgIERyb3Bkb3duOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvYmplY3RUeXBlIClcclxuXHJcbiAgICBTbGlkZXI6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mTnVtYmVyVHlwZSwgbWluLCBtYXggKVxyXG5cclxuICAgIENoZWNrYm94OlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkJvb2xlYW5UeXBlIClcclxuXHJcbiAgICBCdXR0b246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mRnVuY3Rpb25UeXBlIClcclxuXHJcbiAgICBOb3QgdXNlZCBkaXJlY3RseS4gVXNlZCBieSBmb2xkZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKXtcclxuXHJcbiAgICBpZiggb2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2VcclxuXHJcbiAgICBpZiAob2JqZWN0LmlzRm9sZGVyKSByZXR1cm4gb2JqZWN0O1xyXG5cclxuICAgIGlmKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgY29uc29sZS53YXJuKCAnbm8gcHJvcGVydHkgbmFtZWQnLCBwcm9wZXJ0eU5hbWUsICdvbiBvYmplY3QnLCBvYmplY3QgKTtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc09iamVjdCggYXJnMyApIHx8IGlzQXJyYXkoIGFyZzMgKSApe1xyXG4gICAgICByZXR1cm4gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzTnVtYmVyKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Jvb2xlYW4oIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNGdW5jdGlvbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc1N0cmluZyggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNDb2xvciggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYWRkIGNvdWxkbid0IGZpZ3VyZSBpdCBvdXQsIHBhc3MgaXQgYmFjayB0byBmb2xkZXJcclxuICAgIHJldHVybiB1bmRlZmluZWRcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVTbGlkZXIoIG1pbiA9IDAsIG1heCA9IDEgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBudW1iZXI6IG1pblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkU2xpZGVyKCBwcm94eSwgJ251bWJlcicsIG1pbiwgbWF4ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVEcm9wZG93biggb3B0aW9ucyA9IFtdICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgb3B0aW9uOiAnJ1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiggb3B0aW9ucyAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHByb3h5Lm9wdGlvbiA9IGlzQXJyYXkoIG9wdGlvbnMgKSA/IG9wdGlvbnNbIDAgXSA6IG9wdGlvbnNbIE9iamVjdC5rZXlzKG9wdGlvbnMpWzBdIF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFkZERyb3Bkb3duKCBwcm94eSwgJ29wdGlvbicsIG9wdGlvbnMgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUNoZWNrYm94KCBkZWZhdWx0T3B0aW9uID0gZmFsc2UgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBjaGVja2VkOiBkZWZhdWx0T3B0aW9uXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRDaGVja2JveCggcHJveHksICdjaGVja2VkJyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQnV0dG9uKCBmbiApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGJ1dHRvbjogKGZuIT09dW5kZWZpbmVkKSA/IGZuIDogZnVuY3Rpb24oKXt9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRCdXR0b24oIHByb3h5LCAnYnV0dG9uJyApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBOb3QgdXNlZCBkaXJlY3RseTsgdXNlZCBieSBmb2xkZXJzLlxyXG4gIFJlbW92ZSBjb250cm9sbGVycyBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgY29udHJvbGxlcnMga25vd24gdG8gZGF0LkdVSVZSLlxyXG4gIENhbGxzIHJlbW92ZVRlc3QgZmlyc3QgdG8gY2hlY2sgaW5wdXQgYXJndW1lbnRzLiAgcmV0dXJucyBmYWxzZSBpZiB0aGlzIHRlc3QgZmFpbHMuXHJcbiAgcmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuXHJcblxyXG4gIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlY3Vyc2l2ZWx5IHJlbW92ZSBlbGVtZW50cyBmcm9tIGZvbGRlcnM7IHRoYXQgaXMgZGVhbHQgd2l0aCBpbiB0aGUgZm9sZGVyIGNvZGUgd2hpY2ggY2FsbHMgdGhpcy5cclxuICBcclxuICAgKi9cclxuICBmdW5jdGlvbiByZW1vdmUoIC4uLmFyZ3MgKXtcclxuICAgIGxldCBhcmdTZXQgPSBbIC4uLm5ldyBTZXQoYXJncykgXTsgLy9qdXN0IGluIGNhc2UgdGhlcmUgd2VyZSByZXBlYXRlZCBlbGVtZW50cyBpbiBhcmdzLCB0dXJuIGludG8gU2V0IHRoZW4gYmFjayB0byBhcnJheS5cclxuICAgIGlmICggIXJlbW92ZVRlc3QoLi4uYXJnU2V0KSApIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ1NldC5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIHZhciBpID0gY29udHJvbGxlcnMuaW5kZXhPZiggb2JqICk7XHJcbiAgICAgIGlmICggaSA+IC0xKSBjb250cm9sbGVycy5zcGxpY2UoIGksIDEgKTtcclxuICAgICAgZWxzZSB7IC8vIEkgY2FuJ3Qgc2VlIGhvdyB0aGlzJ2QgaGFwcGVuIG5vdyB3ZSBndWFyZCBhZ2FpbnN0IHJlcGVhdGVkIGVsZW1lbnRzLlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW50ZXJuYWwgZXJyb3IgaW4gcmVtb3ZlLCBub3QgYW50aWNpcGF0ZWQgYnkgcmVtb3ZlVGVzdC4gSW50ZXJuYWwgZGF0LkdVSVZSIHN0YXRlIG1heSBiZSBpbmNvbnNpc3RlbnQuXCIpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVmVyaWZ5IHRoYXQgYWxsIG9mIHRoZSBpdGVtcyBpbiBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGV4aXN0aW5nIGNvbnRyb2xsZXJzIHRoYXQgc2hvdWxkIGJlIG9rIHRvIHJlbW92ZS5cclxuXHJcbiAgUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBhcmUgYW55IG1pc21hdGNoZXMsIHRydWUgaWYgYmVsaWV2ZWQgb2sgdG8gY29udGludWUgd2l0aCBhY3R1YWwgcmVtb3ZlKClcclxuXHJcbiAgSWYgYW55IG9mIHRoZSBwcm92aWRlZCBhcmdzIGFyZSBmb2xkZXJzIChoYXZlIGlzRm9sZGVyIHByb3BlcnR5KSB0aGlzIGlzIGNhbGxlZCByZWN1cnNpdmVseS5cclxuICBUaGlzIHdpbGwgcmVzdWx0IGluIHJlZHVuZGFudCB3b3JrIGFzIGVhY2ggZm9sZGVyIHdpbGwgYWxzbyBjYWxsIGl0IGFnYWluIGFzIGl0J3MgcmVtb3ZlZCwgYnV0IHRoaXMgaXMgY2hlYXBcclxuICBhbmQgaXQgbWVhbnMgdGhhdCBhbnkgZXJyb3Igc2hvdWxkIGJlIGNhdWdodCBhcyBlYXJseSBhcyBwb3NzaWJsZSBhbmQgdGhlIHdob2xlIHByb2Nlc3MgYWJvcnRlZC5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZVRlc3QoIC4uLmFyZ3MgKSB7XHJcbiAgICBmb3IgKHZhciBpPTA7IGk8YXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgb2JqID0gYXJnc1tpXTtcclxuICAgICAgaWYgKGNvbnRyb2xsZXJzLmluZGV4T2Yob2JqKSA9PT0gLTEgfHwgIW9iai5mb2xkZXIuaGFzQ2hpbGQob2JqKSkge1xyXG4gICAgICAgIC8vVE9ETzogdG9TdHJpbmcgaW1wbGVtZW50YXRpb25zIGZvciBjb250cm9sbGVyc1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2FuJ3QgcmVtb3ZlIGNvbnRyb2xsZXIgXCIgKyBvYmopOyAvL25vdCBzdXJlIHRoZSBwcmVmZXJyZWQgd2F5IG9mIHJlcG9ydGluZyBwcm9ibGVtIHRvIHVzZXIuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBpZiAoIXJlbW92ZVRlc3QoIC4uLm9iai5ndWlDaGlsZHJlbiApKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGxldGVseSByZW1vdmUgYWxsIEdVSSBlbGVtZW50cyBmcm9tIHRoZSBzeXN0ZW0gZ2xvYmFsbHksIFxyXG4gICAqIGluY2x1ZGluZyByZW1vdmluZyBhbnkgb2JqZWN0cyBmcm9tIHRoZSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY2xlYXJBbGwoKSB7XHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBjLnZpc2libGUgPSBmYWxzZTsgaWYgKGMucGFyZW50ICYmICFjLnBhcmVudC5ndWlDaGlsZHJlbikgYy5wYXJlbnQucmVtb3ZlKGMpO1xyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5zcGxpY2UoMCwgY29udHJvbGxlcnMubGVuZ3RoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGZvbGRlciB3aXRoIHRoZSBuYW1lLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIFRIUkVFLkdyb3VwIHR5cGUgb2JqZWN0cyBhbmQgY2FuIGRvIGdyb3VwLmFkZCgpIGZvciBzaWJsaW5ncy5cclxuICAgIEZvbGRlcnMgd2lsbCBhdXRvbWF0aWNhbGx5IGF0dGVtcHQgdG8gbGF5IGl0cyBjaGlsZHJlbiBvdXQgaW4gc2VxdWVuY2UuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgZ2l2ZW4gdGhlIGFkZCgpIGZ1bmN0aW9uYWxpdHkgc28gdGhhdCB0aGV5IGNhbiBkb1xyXG4gICAgZm9sZGVyLmFkZCggLi4uICkgdG8gY3JlYXRlIGNvbnRyb2xsZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggbmFtZSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gY3JlYXRlRm9sZGVyKHtcclxuICAgICAgdGV4dENyZWF0b3IsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGd1aUFkZDogYWRkLFxyXG4gICAgICBndWlSZW1vdmU6IHJlbW92ZSxcclxuICAgICAgYWRkQ29udHJvbGxlckZ1bmNzOiB7XHJcbiAgICAgICAgYWRkU2xpZGVyOiBhZGRTaW1wbGVTbGlkZXIsXHJcbiAgICAgICAgYWRkRHJvcGRvd246IGFkZFNpbXBsZURyb3Bkb3duLFxyXG4gICAgICAgIGFkZENoZWNrYm94OiBhZGRTaW1wbGVDaGVja2JveCxcclxuICAgICAgICBhZGRCdXR0b246IGFkZFNpbXBsZUJ1dHRvbixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvbjogYWRkSW1hZ2VCdXR0b24sXHJcbiAgICAgICAgYWRkWFlDb250cm9sbGVyOiBhZGRYWUNvbnRyb2xsZXIsXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b25QYW5lbDogYWRkSW1hZ2VCdXR0b25QYW5lbCxcclxuICAgICAgICBhZGRLZXlib2FyZDogYWRkS2V5Ym9hcmQsXHJcbiAgICAgICAgYWRkVGV4dGJveDogYWRkVGV4dGJveFxyXG4gICAgICB9LFxyXG4gICAgICBnbG9iYWxDb250cm9sbGVyczogY29udHJvbGxlcnMsXHJcbiAgICAgIC8vPz8/XHJcbiAgICAgIGFkZEhlYWRlckZ1bmNzOiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGZvbGRlciApO1xyXG5cclxuICAgIHJldHVybiBmb2xkZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFBlcmZvcm0gdGhlIG5lY2Vzc2FyeSB1cGRhdGVzLCByYXljYXN0cyBvbiBpdHMgb3duIFJBRi5cclxuICAqL1xyXG5cclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IHREaXJlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMyggMCwgMCwgLTEgKTtcclxuICBjb25zdCB0TWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCkge1xyXG4gICAgY29uc3QgaXNPcnRob2dyYXBoaWMgPSBtb3VzZUVuYWJsZWQgJiYgbW91c2VJbnB1dC5tb3VzZUNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYTtcclxuICAgIGlmIChhdXRvVXBkYXRlKSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoIHVwZGF0ZSApO1xyXG4gICAgXHJcbiAgICB2YXIgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCk7XHJcbiAgICBjb25zdCBmb2xkZXJzID0gY29udHJvbGxlcnMuZmlsdGVyKGMgPT4gYy5mb2xkZXIgPT09IGMpOyAvL2FsbCB0b3AtbGV2ZWwgZm9sZGVyc1xyXG4gICAgZm9sZGVycy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gaXNPcnRob2dyYXBoaWMgPyBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhIDogZmFsc2U7XHJcbiAgICAgIGlmIChmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgICBmLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgICBmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSBmYWxzZTsgLy8gcHJvdGVjdCBhbnkgbmV3bHktZGlzcGxheWVkIG1vZGFsRWRpdG9yIGZyb20gYmVpbmcgY2xlYXJlZFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChmLnVzZXJEYXRhLmxheW91dFBlbmRpbmcpIGYucGVyZm9ybUxheW91dCgpO1xyXG4gICAgfSk7IFxyXG5cclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgLy9UT0RPOiBsb2NrIG1vdXNlIG9uIGhvdmVyPz9cclxuICAgICAgbW91c2VJbnB1dC5pbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixpbnRlcmFjdGlvbn0gPSB7fSwgaW5kZXggKXtcclxuICAgICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgICBvYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgXHJcbiAgICAgIHRQb3NpdGlvbi5zZXQoMCwwLDApLnNldEZyb21NYXRyaXhQb3NpdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIHRNYXRyaXguaWRlbnRpdHkoKS5leHRyYWN0Um90YXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBcclxuICAgICAgdERpcmVjdGlvbi5zZXQoMCwwLC0xKTtcclxuICAgICAgLy9hbHRlcmluZyBkaXJlY3Rpb24gZS5nLiB0byBwb2ludCBpbiBkaXJlY3Rpb24gb2YgZXh0ZW5kZWQgdHJpZ2dlciBmaW5nZXIsIHJhdGhlciB0aGFuICdtYWluIGF4aXMnIG9mIFZpdmUgY29udHJvbGxlci4uLlxyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkIGJlIGluIHVzZXJEYXRhLlxyXG4gICAgICBpZiAob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpIHREaXJlY3Rpb24uYXBwbHlRdWF0ZXJuaW9uKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKTtcclxuICAgICAgdERpcmVjdGlvbi5hcHBseU1hdHJpeDQoIHRNYXRyaXggKS5ub3JtYWxpemUoKTtcclxuICAgICAgXHJcbiAgICAgIHJheWNhc3Quc2V0KCB0UG9zaXRpb24sIHREaXJlY3Rpb24gKTtcclxuICAgICAgXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMCBdLmNvcHkoIHRQb3NpdGlvbiApO1xyXG4gICAgICBjb25zdCBhID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgICBhWzBdID0gdFBvc2l0aW9uLng7IGFbMV0gPSB0UG9zaXRpb24ueTsgYVsyXSA9IHRQb3NpdGlvbi56O1xyXG4gICAgICBcclxuICAgICAgLy8gIGRlYnVnLi4uXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHRQb3NpdGlvbiApLmFkZCggdERpcmVjdGlvbi5tdWx0aXBseVNjYWxhciggMSApICk7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIFxyXG4gICAgICBpbnB1dE9iamVjdHNbIGluZGV4IF0uaW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vd2FudCB0byBhZGQgaW5mbyAoaGl0IGRpc2N0YW5jZSkgdG8gb2JqZWN0IGZvciB1c2Ugb3V0c2lkZS4uLiBqdXN0IGFkZGluZyBlbnRpcmV0eSBvZiBpbnRlcnNlY3Rpb25zIGluIGNhc2UgdXNlZnVsXHJcbiAgICAgIGlmIChvYmplY3QudXNlckRhdGEpIG9iamVjdC51c2VyRGF0YS5ndWlJbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICBjb25zdCBpbnB1dHMgPSBpbnB1dE9iamVjdHMuc2xpY2UoKTtcclxuICAgIFxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICBpbnB1dHMucHVzaCggbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKCBjID0+IGMudXBkYXRlQ29udHJvbCggaW5wdXRzICkpO1xyXG4gICAgLy9ub3cgY2hlY2sgaWYgYW55IHByZXNzIG9uIGFueSBpbnB1dCBoaXQgYW55IG5vbidtb2RhbCBlZGl0b3InLi4uIGlmIHNvLCB3ZSdsbCByZW1vdmUgbW9kYWxzIGZyb20gYWxsIGZvbGRlcnNcclxuICAgIC8vKHRoaXMgaXNuJ3QgcGVyZmVjdDsgaWYgeW91IGFyZSBhY3RpdmVseSBpbnRlcmFjdGluZyB3aXRoIHNvbWV0aGluZyBhbmQgcHJlc3Mgb3RoZXIgYnV0dG9uIHNvbWV3aGVyZSBlbHNlLCBpdCdsbCByZW1vdmUgeW91ciBvYmplY3QpXHJcbiAgICBsZXQgaGl0Tm9uTW9kYWxzID0gaW5wdXRzLmZpbHRlcihpbnB1dCA9PiBpbnB1dC5oaXROb25Nb2RhbCk7XHJcbiAgICBpZiAoaGl0Tm9uTW9kYWxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGhpdE5vbk1vZGFscy5mb3JFYWNoKGggPT4gaC5oaXROb25Nb2RhbCA9IGZhbHNlKTsgLy9yZW1vdmUgZmxhZ3Mgc28gdGhleSBkb24ndCBwZXJzaXN0IHRvIHN1YnNlcXVlbnQgdXBkYXRlc1xyXG4gICAgICBmb2xkZXJzLmZvckVhY2goZiA9PiBmLmNsZWFyTW9kYWxFZGl0b3IoKSk7IC8vdGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBub3QgaGlkZSBpdGVtcyBuZXdseSBkaXNwbGF5ZWQgaW4gdGhpcyBmcmFtZVxyXG4gICAgfVxyXG4gICAgbW91c2VJbnB1dC5jbGlja2VkID0gZmFsc2U7XHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaChvPT5vLmNsaWNrZWQgPSBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZhcnlpbmcgZmxvYXQgdlNjYWxlO1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gIHZTY2FsZSA9IHBvdyhhYnMoZGV0ZXJtaW5hbnQobWF0Myhtb2RlbFZpZXdNYXRyaXgpKSksIDAuMzMzMzMpO1xyXG4gIC8vIHZTY2FsZSA9IDEwLjtcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG52YXJ5aW5nIGZsb2F0IHZTY2FsZTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgI2lmZGVmIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlc1xyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICAjZWxzZVxyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSAoMS4wIC8gMzIuMCkgKiAoMS40MTQyMTM1NjIzNzMwOTUxIC8gKDIuMCAqIGdsX0ZyYWdDb29yZC53KSk7XHJcbiAgICAjZW5kaWZcclxuICAgIGFmd2lkdGggKj0gdlNjYWxlO1xyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBtZXNoLmdlb21ldHJ5LnVwZGF0ZSggc3RyICk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogVEhSRUUuVmVydGV4Q29sb3JzIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiAweEZGRkZGRiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIC8vaG93IGNhbiBJIGNoYW5nZSBjb2xvciBvZiB0ZXh0P1xyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBvYmplY3RbcHJvcGVydHlOYW1lXSwgeyBjb2xvcjogMHgwMDAwMDAwLCBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgLy9idXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IDAuMDE1O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVN0cmluZyhzdHIpIHtcclxuICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdHI7XHJcbiAgICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKHN0cik7XHJcbiAgfVxyXG4gIHZhciBrZXlib2FyZDtcclxuICBmdW5jdGlvbiB0b2dnbGVLZXlib2FyZCgpIHtcclxuICAgIGlmIChrZXlib2FyZCkge1xyXG4gICAgICAgIGtleWJvYXJkLnZpc2libGUgPSAha2V5Ym9hcmQudmlzaWJsZTtcclxuICAgICAgICBpZiAoa2V5Ym9hcmQudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGtleWJvYXJkID0gZGF0LkdVSVZSLmNyZWF0ZShcImtleWJvYXJkXCIpO1xyXG4gICAgICAgIGdyb3VwLmFkZChrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQuZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueCA9IHdpZHRoO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgICAgICBrZXlib2FyZC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAga2V5Ym9hcmQuYWRkS2V5Ym9hcmQoIChrKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBzdHIgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgc3dpdGNoIChrKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXG4nOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0dGluZyBcImtleWJvYXJkLnZpc2libGUgPSBmYWxzZVwiIGluIHRoZSBtaWRkbGUgb2YgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIgc2VlbXMgdG8ga2lsbCBhbGwgZXZlbnQgcHJvY2Vzc2luZyBmcm9tIHRoZW4gb24uXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0IGlzIGFuIGFkZXF1YXRlIHdvcmthcm91bmQgZm9yIG5vdy5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRvZ2dsZUtleWJvYXJkLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxiJzpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSBrO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL3RoaXMgdGVzdCBzaG91bGQgYmUgcmVkdW5kYW50IG5vd1xyXG4gICAgLy8gaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvL29iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICAvL2hpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICAvLyBjcmVhdGUgYSBrZXlib2FyZCBhbmQgYXR0YWNoIGl0IGFzIGNoaWxkIG9mIGdyb3VwLi4uIFxyXG4gICAgLy8gb3IganVzdCBtYWtlIHN1cmUgZXhpc3Rpbmcga2V5Ym9hcmQgaXMgdmlzaWJsZS5cclxuICAgIHRvZ2dsZUtleWJvYXJkKCk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfSElHSExJR0hUX0JHICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0JHICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRMYWJlbCggdGV4dENyZWF0b3IsIHN0ciwgd2lkdGggPSAwLjQsIGRlcHRoID0gMC4wMjksIGZnQ29sb3IgPSAweGZmZmZmZiwgYmdDb2xvciA9IENvbG9ycy5ERUZBVUxUX0JBQ0ssIHNjYWxlID0gMS4wICl7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGxhYmVsXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7c3RyfV1gO1xyXG5cclxuICBjb25zdCBpbnRlcm5hbFBvc2l0aW9uaW5nID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vcmF0aGVyIHVubmVjZXNzYXJ5LlxyXG4gIGdyb3VwLmFkZCggaW50ZXJuYWxQb3NpdGlvbmluZyApO1xyXG5cclxuICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdHIudG9TdHJpbmcoKSwgeyBjb2xvcjogZmdDb2xvciwgc2NhbGUgfSApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCB0ZXh0ICk7XHJcbiAgZ3JvdXAudXNlckRhdGEudGV4dCA9IHRleHQ7XHJcblxyXG4gIGdyb3VwLnNldFN0cmluZyA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkgc3RyID0gXCJbdW5kZWZpbmVkXVwiO1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvU3RyaW5nKCkgKTtcclxuICAgIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0TnVtYmVyID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvRml4ZWQoMikgKTtcclxuICB9O1xyXG5cclxuICB0ZXh0LnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgY29uc3QgYmFja0JvdW5kcyA9IDAuMDE7XHJcbiAgY29uc3QgbWFyZ2luID0gMC4wMTtcclxuICBjb25zdCB0b3RhbFdpZHRoID0gd2lkdGg7XHJcbiAgY29uc3QgdG90YWxIZWlnaHQgPSAwLjA0ICsgbWFyZ2luICogMjtcclxuXHJcbiAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrR2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0LCBkZXB0aCwgMSwgMSwgMSApO1xyXG4gIGxhYmVsQmFja0dlb21ldHJ5LmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oIHRvdGFsV2lkdGggKiAwLjUgLSBtYXJnaW4sIDAsIDAgKSApO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tNZXNoID0gbmV3IFRIUkVFLk1lc2goIGxhYmVsQmFja0dlb21ldHJ5LCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWxCYWNrTWVzaC5nZW9tZXRyeSwgYmdDb2xvciApO1xyXG5cclxuICBsYWJlbEJhY2tNZXNoLnBvc2l0aW9uLnkgPSAwLjAzO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCBsYWJlbEJhY2tNZXNoICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5wb3NpdGlvbi55ID0gLXRvdGFsSGVpZ2h0ICogMC41O1xyXG5cclxuICBncm91cC5iYWNrID0gbGFiZWxCYWNrTWVzaDtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0UGFyZW50SGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbFRpcCggdGV4dENyZWF0b3IsIHRpcCwgcGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCA9IGRlZmF1bHRQYXJlbnRIZWlnaHQsIHBhcmVudERlcHRoICkge1xyXG4gIGNvbnN0IHRpcFRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUodGlwKTtcclxuICBcclxuICBjb25zdCB0aXBHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICBjb25zdCB3ID0gdGlwVGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICBjb25zdCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0aXBUZXh0LmxheW91dC5oZWlnaHQ7XHJcblxyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnggID0gMC41ICogcGFyZW50V2lkdGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueSA9IC0xLjA1ICogcGFyZW50SGVpZ2h0IC0gaDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi56ID0gcGFyZW50RGVwdGggKiAzO1xyXG4gIHRpcEdyb3VwLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbi8vICBzdWJncm91cC5hZGQodGlwR3JvdXApO1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBUZXh0KTtcclxuLy8gIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBHcm91cDtcclxuXHJcbiAgY29uc3QgcGFkZGVkVyA9IHcgKyAwLjAzLCBwYWRkZWRIID0gaCArIDAuMDM7XHJcbiAgY29uc3QgdGlwUmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KHBhZGRlZFcsIHBhZGRlZEgsIDEsIDEpO1xyXG4gIGNvbnN0IHRpcEJhY2tncm91bmQgPSBuZXcgVEhSRUUuTWVzaCh0aXBSZWN0LCBTaGFyZWRNYXRlcmlhbHMuVE9PTFRJUCk7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi54ID0gMDsgLy9wYWRkZWRXIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnkgPSBoIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnogPSAtcGFyZW50RGVwdGggKiAwLjU7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcEJhY2tncm91bmQpO1xyXG5cclxuICB0aXBUZXh0LnBvc2l0aW9uLnggPSAtMC41ICogdztcclxuICB0aXBUZXh0LnBvc2l0aW9uLnkgPSAtMC41ICogaCArIDAuMDAxNTtcclxuXHJcbiAgdGlwR3JvdXAudXNlckRhdGEudyA9IHc7XHJcbiAgdGlwR3JvdXAudXNlckRhdGEuaCA9IGg7XHJcblxyXG4gIHJldHVybiB0aXBHcm91cDtcclxufVxyXG4iLCIvKiogYmFzaWMgdXRpbGl0eSBmdW5jdGlvbnMgKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xsZXJWaXNpYmxlKGNvbnRyb2wpIHtcclxuICB2YXIgZm9sZGVyID0gY29udHJvbC5mb2xkZXI7XHJcbiAgLy9ub3RlOiB0aGUgYmFzaXMgb24gd2hpY2ggYSBjb250cm9sbGVyIGlzIGNvbnNpZGVyZWQgdmlzaWJsZSByZXZpc2VkIGZvciAnaGVhZGVyJyBvYmplY3RzLlxyXG4gIC8vZm9yIG5vdywgdGhpcyBzaG91bGQgYWxsb3cgaGVhZGVyIGNvbnRyb2xsZXJzIHRvIHVwZGF0ZSB3aGlsZSBmb2xkZXIgaXMgY29sbGFwc2VkLlxyXG4gIC8vb25seSBhcHBsaWVzIHRvIGNoZWNrYm94LCBwZW5kaW5nIGRlc2lnbiByZXZpc2lvbiAmIGZ1bGxlciBpbXBsZW1lbnRhdGlvbi4uLlxyXG4gIFxyXG4gIC8vLS0tLSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgbm8gbG9uZ2VyIHJlbGV2YW50LCBidXQgZW5kaW5nIHVwIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3Mgc2ltaWxhci4uLi5cclxuICAvL2lzSGVhZGVyT2JqZWN0IHdpbGwgYXBwbHkgdG8gdGhlIGFjdHVhbCBjb250cm9sIGFwcGVhcmluZyBpbiB0aGUgZm9sZGVyIGhlYWRlciwgd2hlcmVhc1xyXG4gIC8vaXNTaG93bkluRm9sZGVySGVhZGVyIHdhcyB3aGVuIHN1Y2ggb2JqZWN0cyB3ZXJlbid0IHNvIGZ1bGx5LWZsZWRnZWRcclxuICAvL2lmIChjb250cm9sLmlzU2hvd25JbkZvbGRlckhlYWRlcikgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTsgLy88PDw8PCBzdGlsbCBoaXR0aW5nIGZvbGRlZCBidXR0b24/Pz8gKGFsc28sIHRyeSBucG0gYXVkaXQpXHJcbiAgaWYgKGNvbnRyb2wuaXNIZWFkZXJPYmplY3QpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7XHJcblxyXG4gIC8vWFhYIGhhdmluZyBzb21lIGRlZmluaXRlIGJ1Z3MgZS5nLiBtaXNzaW5nIGV2ZW50cyBvdmVyICdwaWN0dXJlcyAvIG1hdGVyaWFscycgZm9sZGVyIGhlYWRlciBpbiBkZW1vLlxyXG4gIFxyXG4gIGlmICghY29udHJvbC52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcil7XHJcbiAgICBpZiAoZm9sZGVyLmlzQ29sbGFwc2VkKCkgfHwgIWZvbGRlci52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gIH1cclxuICBpZiAoIWZvbGRlci5wYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gZm9sZGVyLnZpc2libGU7XHJcbn1cclxuXHJcbi8qKiBcclxuICogSW52aXNpYmxlIFRIUkVFIG9iamVjdHMgaW5jdXIgc2lnbmlmaWNhbnQgQ1BVIGNvc3QuXHJcbiAqIFRoaXMgYXZvaWRzIHRoYXQgYnkgcmVtb3ZpbmcgdGhlbSBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICogXHJcbiAqIElmIHZpc2libGUgaXMgdHJ1ZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9dHJ1ZSBhbmQgaXMgYSBjaGlsZCBvZiBwYXJlbnQuXHJcbiAqIElmIHZpc2libGUgaXMgZmFsc2UsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPWZhbHNlIGFuZCBpcyByZW1vdmVkIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHkocGFyZW50LCBjaGlsZCwgdmlzaWJsZSkge1xyXG4gICAgY29uc3QgaXNDaGlsZCA9IHBhcmVudC5jaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCk7XHJcbiAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgIC8vbWFrZSBzdXJlIHdlIHVzZSBvcmlnaW5hbCBUSFJFRSBtZXRob2RzIHRoYXQgdGhpcyBsaWJyYXJ5IG92ZXJyaWRlcyAoVE9ETzogcmVmYWN0b3IuLi4pXHJcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZC5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCF2aXNpYmxlICYmIGlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmUuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghcGFyZW50LnZpc2libGUpIGNvbnNvbGUud2Fybihgc2V0VmlzaWJpbGl0eSBjYWxsZWQgb24gY2hpbGQgJHtjaGlsZH0gb2YgaW52aXNpYmxlIHBhcmVudCAke3BhcmVudH1gKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2YgcGFyZW50IGZvbGRlciBpbiB0aGUgZ3VpIGhpZWFyY2h5IGNvbnRhaW5pbmcgYSBnaXZlbiBvYmplY3QuXHJcbiAqIG5iLiBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0IGRpZG4ndCBoYXZlIGEgJ2ZvbGRlcicgcHJvcGVydHkuXHJcbiAqIE5vdywgaXQgaXMgaW50ZW5kZWQgdGhhdCBpdCBzaG91bGQgZWl0aGVyIHJldHVybiBhIGZvbGRlciBpZiBhcHByb3ByaWF0ZSwgb3Igbm90aGluZy5cclxuICogQHBhcmFtIHsqfSBncm91cCBlaXRoZXIgYSBmb2xkZXIsIG9yIGFuIG9iamVjdCB3aG9zZSBwYXJlbnQgaGFzIGEgZm9sZGVyLi4uIGFwb2xvZ2llcywgdGhpcyBpcyBub3QgdGhlIGNsZWFyZXN0IHNwZWMuXHJcbiAqIC4uLiBpbnRlbnRpb24gaXMgdGhhdCBpdCBzaG91bGQgd29yayB3aXRoIGFueSBndWkgZWxlbWVudCwgaW4gcGFydGljdWxhciBhbnkgaGl0T2JqZWN0IGluIGludGVyYWN0aW9uLmpzLi4uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApIHtcclxuICAgIHZhciBmb2xkZXIgPSBnZXRGb2xkZXIoZ3JvdXApO1xyXG4gICAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcikgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICAgIHJldHVybiBmb2xkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoZ3JvdXApIHtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIHJldHVybiBncm91cC5mb2xkZXI7XHJcbiAgICBsZXQgbm9kZSA9IGdyb3VwLnBhcmVudDtcclxuICAgIHdoaWxlICghbm9kZS5mb2xkZXIgJiYgZ3JvdXAucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICByZXR1cm4gbm9kZS5mb2xkZXI7XHJcbn1cclxuXHJcbi8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCb3hGcm9tT2JqZWN0KGJveCwgb2JqKSB7XHJcbiAgY29uc3Qgd29ua3lHZW9tID0gW107XHJcbiAgb2JqLnRyYXZlcnNlKG8gPT4ge1xyXG4gICAgaWYgKG8uZ2VvbWV0cnkgJiYgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZSAhPT0gMykge1xyXG4gICAgICBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgPSBmYWxzZTtcclxuICAgICAgd29ua3lHZW9tLnB1c2goby5nZW9tZXRyeSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgYm94LnNldEZyb21PYmplY3Qob2JqKTtcclxuICB3b25reUdlb20uZm9yRWFjaChnID0+IGcuaXNCdWZmZXJHZW9tZXRyeSA9IHRydWUpO1xyXG4gIHJldHVybiBib3g7XHJcbn1cclxuIiwiLypcclxuICpcdEBhdXRob3Igeno4NSAvIGh0dHA6Ly90d2l0dGVyLmNvbS9ibHVyc3BsaW5lIC8gaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZ1xyXG4gKlx0QGF1dGhvciBjZW50ZXJpb253YXJlIC8gaHR0cDovL3d3dy5jZW50ZXJpb253YXJlLmNvbVxyXG4gKlxyXG4gKlx0U3ViZGl2aXNpb24gR2VvbWV0cnkgTW9kaWZpZXJcclxuICpcdFx0dXNpbmcgTG9vcCBTdWJkaXZpc2lvbiBTY2hlbWVcclxuICpcclxuICpcdFJlZmVyZW5jZXM6XHJcbiAqXHRcdGh0dHA6Ly9ncmFwaGljcy5zdGFuZm9yZC5lZHUvfm1kZmlzaGVyL3N1YmRpdmlzaW9uLmh0bWxcclxuICpcdFx0aHR0cDovL3d3dy5ob2xtZXMzZC5uZXQvZ3JhcGhpY3Mvc3ViZGl2aXNpb24vXHJcbiAqXHRcdGh0dHA6Ly93d3cuY3MucnV0Z2Vycy5lZHUvfmRlY2FybG8vcmVhZGluZ3Mvc3ViZGl2LXNnMDBjLnBkZlxyXG4gKlxyXG4gKlx0S25vd24gSXNzdWVzOlxyXG4gKlx0XHQtIGN1cnJlbnRseSBkb2Vzbid0IGhhbmRsZSBcIlNoYXJwIEVkZ2VzXCJcclxuICovXHJcblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyID0gZnVuY3Rpb24gKCBzdWJkaXZpc2lvbnMgKSB7XHJcblxyXG5cdHRoaXMuc3ViZGl2aXNpb25zID0gKCBzdWJkaXZpc2lvbnMgPT09IHVuZGVmaW5lZCApID8gMSA6IHN1YmRpdmlzaW9ucztcclxuXHJcbn07XHJcblxyXG4vLyBBcHBsaWVzIHRoZSBcIm1vZGlmeVwiIHBhdHRlcm5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUubW9kaWZ5ID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHtcclxuXHJcblx0dmFyIHJlcGVhdHMgPSB0aGlzLnN1YmRpdmlzaW9ucztcclxuXHJcblx0d2hpbGUgKCByZXBlYXRzIC0tID4gMCApIHtcclxuXHJcblx0XHR0aGlzLnNtb290aCggZ2VvbWV0cnkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRnZW9tZXRyeS5jb21wdXRlRmFjZU5vcm1hbHMoKTtcclxuXHRnZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xyXG5cclxufTtcclxuXHJcbiggZnVuY3Rpb24oKSB7XHJcblxyXG5cdC8vIFNvbWUgY29uc3RhbnRzXHJcblx0dmFyIFdBUk5JTkdTID0gISB0cnVlOyAvLyBTZXQgdG8gdHJ1ZSBmb3IgZGV2ZWxvcG1lbnRcclxuXHR2YXIgQUJDID0gWyAnYScsICdiJywgJ2MnIF07XHJcblxyXG5cclxuXHRmdW5jdGlvbiBnZXRFZGdlKCBhLCBiLCBtYXAgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0cmV0dXJuIG1hcFsga2V5IF07XHJcblxyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHByb2Nlc3NFZGdlKCBhLCBiLCB2ZXJ0aWNlcywgbWFwLCBmYWNlLCBtZXRhVmVydGljZXMgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0dmFyIGVkZ2U7XHJcblxyXG5cdFx0aWYgKCBrZXkgaW4gbWFwICkge1xyXG5cclxuXHRcdFx0ZWRnZSA9IG1hcFsga2V5IF07XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHZhciB2ZXJ0ZXhBID0gdmVydGljZXNbIHZlcnRleEluZGV4QSBdO1xyXG5cdFx0XHR2YXIgdmVydGV4QiA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEIgXTtcclxuXHJcblx0XHRcdGVkZ2UgPSB7XHJcblxyXG5cdFx0XHRcdGE6IHZlcnRleEEsIC8vIHBvaW50ZXIgcmVmZXJlbmNlXHJcblx0XHRcdFx0YjogdmVydGV4QixcclxuXHRcdFx0XHRuZXdFZGdlOiBudWxsLFxyXG5cdFx0XHRcdC8vIGFJbmRleDogYSwgLy8gbnVtYmVyZWQgcmVmZXJlbmNlXHJcblx0XHRcdFx0Ly8gYkluZGV4OiBiLFxyXG5cdFx0XHRcdGZhY2VzOiBbXSAvLyBwb2ludGVycyB0byBmYWNlXHJcblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0bWFwWyBrZXkgXSA9IGVkZ2U7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGVkZ2UuZmFjZXMucHVzaCggZmFjZSApO1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlc1sgYSBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHRcdG1ldGFWZXJ0aWNlc1sgYiBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2VuZXJhdGVMb29rdXBzKCB2ZXJ0aWNlcywgZmFjZXMsIG1ldGFWZXJ0aWNlcywgZWRnZXMgKSB7XHJcblxyXG5cdFx0dmFyIGksIGlsLCBmYWNlLCBlZGdlO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IHZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0bWV0YVZlcnRpY2VzWyBpIF0gPSB7IGVkZ2VzOiBbXSB9O1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBmYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBmYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYSwgZmFjZS5iLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5iLCBmYWNlLmMsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmMsIGZhY2UuYSwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3RmFjZSggbmV3RmFjZXMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3RmFjZXMucHVzaCggbmV3IFRIUkVFLkZhY2UzKCBhLCBiLCBjICkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBtaWRwb2ludCggYSwgYiApIHtcclxuXHJcblx0XHRyZXR1cm4gKCBNYXRoLmFicyggYiAtIGEgKSAvIDIgKSArIE1hdGgubWluKCBhLCBiICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3VXYoIG5ld1V2cywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdVdnMucHVzaCggWyBhLmNsb25lKCksIGIuY2xvbmUoKSwgYy5jbG9uZSgpIF0gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHQvLyBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIFN1YmRpdmlzaW9uXHJcblx0VEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUuc21vb3RoID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHsgcmV0dXJuOyAvLyBzanB0IFRFTVAgVE9ET1xyXG5cclxuXHRcdHZhciB0bXAgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdHZhciBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG9sZFV2cztcclxuXHRcdHZhciBuZXdWZXJ0aWNlcywgbmV3RmFjZXMsIG5ld1VWcyA9IFtdO1xyXG5cclxuXHRcdHZhciBuLCBsLCBpLCBpbCwgaiwgaztcclxuXHRcdHZhciBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzO1xyXG5cclxuXHRcdC8vIG5ldyBzdHVmZi5cclxuXHRcdHZhciBzb3VyY2VFZGdlcywgbmV3RWRnZVZlcnRpY2VzLCBuZXdTb3VyY2VWZXJ0aWNlcztcclxuXHJcblx0XHRvbGRWZXJ0aWNlcyA9IGdlb21ldHJ5LnZlcnRpY2VzOyAvLyB7IHgsIHksIHp9XHJcblx0XHRvbGRGYWNlcyA9IGdlb21ldHJ5LmZhY2VzOyAvLyB7IGE6IG9sZFZlcnRleDEsIGI6IG9sZFZlcnRleDIsIGM6IG9sZFZlcnRleDMgfVxyXG5cdFx0b2xkVXZzID0gZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdO1xyXG5cclxuXHRcdHZhciBoYXNVdnMgPSBvbGRVdnMgIT09IHVuZGVmaW5lZCAmJiBvbGRVdnMubGVuZ3RoID4gMDtcclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICogU3RlcCAwOiBQcmVwcm9jZXNzIEdlb21ldHJ5IHRvIEdlbmVyYXRlIGVkZ2VzIExvb2t1cFxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlcyA9IG5ldyBBcnJheSggb2xkVmVydGljZXMubGVuZ3RoICk7XHJcblx0XHRzb3VyY2VFZGdlcyA9IHt9OyAvLyBFZGdlID0+IHsgb2xkVmVydGV4MSwgb2xkVmVydGV4MiwgZmFjZXNbXSAgfVxyXG5cclxuXHRcdGdlbmVyYXRlTG9va3Vwcyggb2xkVmVydGljZXMsIG9sZEZhY2VzLCBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzICk7XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAxLlxyXG5cdFx0ICpcdEZvciBlYWNoIGVkZ2UsIGNyZWF0ZSBhIG5ldyBFZGdlIFZlcnRleCxcclxuXHRcdCAqXHR0aGVuIHBvc2l0aW9uIGl0LlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld0VkZ2VWZXJ0aWNlcyA9IFtdO1xyXG5cdFx0dmFyIG90aGVyLCBjdXJyZW50RWRnZSwgbmV3RWRnZSwgZmFjZTtcclxuXHRcdHZhciBlZGdlVmVydGV4V2VpZ2h0LCBhZGphY2VudFZlcnRleFdlaWdodCwgY29ubmVjdGVkRmFjZXM7XHJcblxyXG5cdFx0Zm9yICggaSBpbiBzb3VyY2VFZGdlcyApIHtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlID0gc291cmNlRWRnZXNbIGkgXTtcclxuXHRcdFx0bmV3RWRnZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMyAvIDg7XHJcblx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRjb25uZWN0ZWRGYWNlcyA9IGN1cnJlbnRFZGdlLmZhY2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdC8vIGNoZWNrIGhvdyBtYW55IGxpbmtlZCBmYWNlcy4gMiBzaG91bGQgYmUgY29ycmVjdC5cclxuXHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiBsZW5ndGggaXMgbm90IDIsIGhhbmRsZSBjb25kaXRpb25cclxuXHRcdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMC41O1xyXG5cdFx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdTdWJkaXZpc2lvbiBNb2RpZmllcjogTnVtYmVyIG9mIGNvbm5lY3RlZCBmYWNlcyAhPSAyLCBpczogJywgY29ubmVjdGVkRmFjZXMsIGN1cnJlbnRFZGdlICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld0VkZ2UuYWRkVmVjdG9ycyggY3VycmVudEVkZ2UuYSwgY3VycmVudEVkZ2UuYiApLm11bHRpcGx5U2NhbGFyKCBlZGdlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IGNvbm5lY3RlZEZhY2VzOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRmYWNlID0gY3VycmVudEVkZ2UuZmFjZXNbIGogXTtcclxuXHJcblx0XHRcdFx0Zm9yICggayA9IDA7IGsgPCAzOyBrICsrICkge1xyXG5cclxuXHRcdFx0XHRcdG90aGVyID0gb2xkVmVydGljZXNbIGZhY2VbIEFCQ1sgayBdIF0gXTtcclxuXHRcdFx0XHRcdGlmICggb3RoZXIgIT09IGN1cnJlbnRFZGdlLmEgJiYgb3RoZXIgIT09IGN1cnJlbnRFZGdlLmIgKSBicmVhaztcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBhZGphY2VudFZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdFZGdlLmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZS5uZXdFZGdlID0gbmV3RWRnZVZlcnRpY2VzLmxlbmd0aDtcclxuXHRcdFx0bmV3RWRnZVZlcnRpY2VzLnB1c2goIG5ld0VkZ2UgKTtcclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGN1cnJlbnRFZGdlLCBuZXdFZGdlKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDIuXHJcblx0XHQgKlx0UmVwb3NpdGlvbiBlYWNoIHNvdXJjZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHR2YXIgYmV0YSwgc291cmNlVmVydGV4V2VpZ2h0LCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0O1xyXG5cdFx0dmFyIGNvbm5lY3RpbmdFZGdlLCBjb25uZWN0aW5nRWRnZXMsIG9sZFZlcnRleCwgbmV3U291cmNlVmVydGV4O1xyXG5cdFx0bmV3U291cmNlVmVydGljZXMgPSBbXTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRWZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG9sZFZlcnRleCA9IG9sZFZlcnRpY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIGFsbCBjb25uZWN0aW5nIGVkZ2VzICh1c2luZyBsb29rdXBUYWJsZSlcclxuXHRcdFx0Y29ubmVjdGluZ0VkZ2VzID0gbWV0YVZlcnRpY2VzWyBpIF0uZWRnZXM7XHJcblx0XHRcdG4gPSBjb25uZWN0aW5nRWRnZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0aWYgKCBuID09IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gMTY7XHJcblxyXG5cdFx0XHR9IGVsc2UgaWYgKCBuID4gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAoIDggKiBuICk7IC8vIFdhcnJlbidzIG1vZGlmaWVkIGZvcm11bGFcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIExvb3AncyBvcmlnaW5hbCBiZXRhIGZvcm11bGFcclxuXHRcdFx0Ly8gYmV0YSA9IDEgLyBuICogKCA1LzggLSBNYXRoLnBvdyggMy84ICsgMS80ICogTWF0aC5jb3MoIDIgKiBNYXRoLiBQSSAvIG4gKSwgMikgKTtcclxuXHJcblx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDEgLSBuICogYmV0YTtcclxuXHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IGJldGE7XHJcblxyXG5cdFx0XHRpZiAoIG4gPD0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlc1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUud2FybignY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlcycpO1xyXG5cclxuXHRcdFx0XHRpZiAoIG4gPT0gMiApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMiBjb25uZWN0aW5nIGVkZ2VzJywgY29ubmVjdGluZ0VkZ2VzICk7XHJcblx0XHRcdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAzIC8gNDtcclxuXHRcdFx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdFx0XHQvLyBzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxO1xyXG5cdFx0XHRcdFx0Ly8gY29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnb25seSAxIGNvbm5lY3RpbmcgZWRnZScgKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAwICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcwIGNvbm5lY3RpbmcgZWRnZXMnICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleCA9IG9sZFZlcnRleC5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKCBzb3VyY2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgbjsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0Y29ubmVjdGluZ0VkZ2UgPSBjb25uZWN0aW5nRWRnZXNbIGogXTtcclxuXHRcdFx0XHRvdGhlciA9IGNvbm5lY3RpbmdFZGdlLmEgIT09IG9sZFZlcnRleCA/IGNvbm5lY3RpbmdFZGdlLmEgOiBjb25uZWN0aW5nRWRnZS5iO1xyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3U291cmNlVmVydGV4LmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0aWNlcy5wdXNoKCBuZXdTb3VyY2VWZXJ0ZXggKTtcclxuXHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAzLlxyXG5cdFx0ICpcdEdlbmVyYXRlIEZhY2VzIGJldHdlZW4gc291cmNlIHZlcnRpY2VzXHJcblx0XHQgKlx0YW5kIGVkZ2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3VmVydGljZXMgPSBuZXdTb3VyY2VWZXJ0aWNlcy5jb25jYXQoIG5ld0VkZ2VWZXJ0aWNlcyApO1xyXG5cdFx0dmFyIHNsID0gbmV3U291cmNlVmVydGljZXMubGVuZ3RoLCBlZGdlMSwgZWRnZTIsIGVkZ2UzO1xyXG5cdFx0bmV3RmFjZXMgPSBbXTtcclxuXHJcblx0XHR2YXIgdXYsIHgwLCB4MSwgeDI7XHJcblx0XHR2YXIgeDMgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg0ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NSA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkRmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gb2xkRmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgdGhlIDMgbmV3IGVkZ2VzIHZlcnRleCBvZiBlYWNoIG9sZCBmYWNlXHJcblxyXG5cdFx0XHRlZGdlMSA9IGdldEVkZ2UoIGZhY2UuYSwgZmFjZS5iLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTIgPSBnZXRFZGdlKCBmYWNlLmIsIGZhY2UuYywgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UzID0gZ2V0RWRnZSggZmFjZS5jLCBmYWNlLmEsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgZmFjZXMuXHJcblxyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZWRnZTEsIGVkZ2UyLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5hLCBlZGdlMSwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYiwgZWRnZTIsIGVkZ2UxICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmMsIGVkZ2UzLCBlZGdlMiApO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgbmV3IHV2J3NcclxuXHJcblx0XHRcdGlmICggaGFzVXZzICkge1xyXG5cclxuXHRcdFx0XHR1diA9IG9sZFV2c1sgaSBdO1xyXG5cclxuXHRcdFx0XHR4MCA9IHV2WyAwIF07XHJcblx0XHRcdFx0eDEgPSB1dlsgMSBdO1xyXG5cdFx0XHRcdHgyID0gdXZbIDIgXTtcclxuXHJcblx0XHRcdFx0eDMuc2V0KCBtaWRwb2ludCggeDAueCwgeDEueCApLCBtaWRwb2ludCggeDAueSwgeDEueSApICk7XHJcblx0XHRcdFx0eDQuc2V0KCBtaWRwb2ludCggeDEueCwgeDIueCApLCBtaWRwb2ludCggeDEueSwgeDIueSApICk7XHJcblx0XHRcdFx0eDUuc2V0KCBtaWRwb2ludCggeDAueCwgeDIueCApLCBtaWRwb2ludCggeDAueSwgeDIueSApICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgzLCB4NCwgeDUgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MCwgeDMsIHg1ICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgxLCB4NCwgeDMgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MiwgeDUsIHg0ICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE92ZXJ3cml0ZSBvbGQgYXJyYXlzXHJcblx0XHRnZW9tZXRyeS52ZXJ0aWNlcyA9IG5ld1ZlcnRpY2VzO1xyXG5cdFx0Z2VvbWV0cnkuZmFjZXMgPSBuZXdGYWNlcztcclxuXHRcdGlmICggaGFzVXZzICkgZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdID0gbmV3VVZzO1xyXG5cclxuXHRcdC8vIGNvbnNvbGUubG9nKCdkb25lJyk7XHJcblxyXG5cdH07XHJcblxyXG59ICkoKTtcclxuIiwidmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBhbkFycmF5XG5cbmZ1bmN0aW9uIGFuQXJyYXkoYXJyKSB7XG4gIHJldHVybiAoXG4gICAgICAgYXJyLkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgJiYgc3RyLmNhbGwoYXJyLmJ1ZmZlcikgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSdcbiAgICB8fCBBcnJheS5pc0FycmF5KGFycilcbiAgKVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBudW10eXBlKG51bSwgZGVmKSB7XG5cdHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJ1xuXHRcdD8gbnVtIFxuXHRcdDogKHR5cGVvZiBkZWYgPT09ICdudW1iZXInID8gZGVmIDogMClcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGR0eXBlKSB7XG4gIHN3aXRjaCAoZHR5cGUpIHtcbiAgICBjYXNlICdpbnQ4JzpcbiAgICAgIHJldHVybiBJbnQ4QXJyYXlcbiAgICBjYXNlICdpbnQxNic6XG4gICAgICByZXR1cm4gSW50MTZBcnJheVxuICAgIGNhc2UgJ2ludDMyJzpcbiAgICAgIHJldHVybiBJbnQzMkFycmF5XG4gICAgY2FzZSAndWludDgnOlxuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlcbiAgICBjYXNlICd1aW50MTYnOlxuICAgICAgcmV0dXJuIFVpbnQxNkFycmF5XG4gICAgY2FzZSAndWludDMyJzpcbiAgICAgIHJldHVybiBVaW50MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0MzInOlxuICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0NjQnOlxuICAgICAgcmV0dXJuIEZsb2F0NjRBcnJheVxuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIHJldHVybiBBcnJheVxuICAgIGNhc2UgJ3VpbnQ4X2NsYW1wZWQnOlxuICAgICAgcmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSID0gdHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnID8gUmVmbGVjdCA6IG51bGxcbnZhciBSZWZsZWN0QXBwbHkgPSBSICYmIHR5cGVvZiBSLmFwcGx5ID09PSAnZnVuY3Rpb24nXG4gID8gUi5hcHBseVxuICA6IGZ1bmN0aW9uIFJlZmxlY3RBcHBseSh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpO1xuICB9XG5cbnZhciBSZWZsZWN0T3duS2V5c1xuaWYgKFIgJiYgdHlwZW9mIFIub3duS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICBSZWZsZWN0T3duS2V5cyA9IFIub3duS2V5c1xufSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldClcbiAgICAgIC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKTtcbiAgfTtcbn0gZWxzZSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyh3YXJuaW5nKSB7XG4gIGlmIChjb25zb2xlICYmIGNvbnNvbGUud2FybikgY29uc29sZS53YXJuKHdhcm5pbmcpO1xufVxuXG52YXIgTnVtYmVySXNOYU4gPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gTnVtYmVySXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5tb2R1bGUuZXhwb3J0cy5vbmNlID0gb25jZTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9uY2UoZW1pdHRlciwgbmFtZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZ1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXJyKSB7XG4gICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKG5hbWUsIHJlc29sdmVyKTtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKCkge1xuICAgICAgaWYgKHR5cGVvZiBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgfTtcblxuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCByZXNvbHZlciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIGlmIChuYW1lICE9PSAnZXJyb3InKSB7XG4gICAgICBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBlcnJvckxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgaGFuZGxlciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsICdlcnJvcicsIGhhbmRsZXIsIGZsYWdzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgbGlzdGVuZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICBlbWl0dGVyLm9uY2UobmFtZSwgbGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbWl0dGVyLm9uKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEV2ZW50VGFyZ2V0IGRvZXMgbm90IGhhdmUgYGVycm9yYCBldmVudCBzZW1hbnRpY3MgbGlrZSBOb2RlXG4gICAgLy8gRXZlbnRFbWl0dGVycywgd2UgZG8gbm90IGxpc3RlbiBmb3IgYGVycm9yYCBldmVudHMgaGVyZS5cbiAgICBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZnVuY3Rpb24gd3JhcExpc3RlbmVyKGFyZykge1xuICAgICAgLy8gSUUgZG9lcyBub3QgaGF2ZSBidWlsdGluIGB7IG9uY2U6IHRydWUgfWAgc3VwcG9ydCBzbyB3ZVxuICAgICAgLy8gaGF2ZSB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXIoYXJnKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJlbWl0dGVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGVtaXR0ZXIpO1xuICB9XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gICAgfVxuICB9XG59XG4iLCIvKiFcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXJcbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbi8vIFRoZSBfaXNCdWZmZXIgY2hlY2sgaXMgZm9yIFNhZmFyaSA1LTcgc3VwcG9ydCwgYmVjYXVzZSBpdCdzIG1pc3Npbmdcbi8vIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKGlzQnVmZmVyKG9iaikgfHwgaXNTbG93QnVmZmVyKG9iaikgfHwgISFvYmouX2lzQnVmZmVyKVxufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiAhIW9iai5jb25zdHJ1Y3RvciAmJiB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopXG59XG5cbi8vIEZvciBOb2RlIHYwLjEwIHN1cHBvcnQuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHkuXG5mdW5jdGlvbiBpc1Nsb3dCdWZmZXIgKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iai5yZWFkRmxvYXRMRSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnNsaWNlID09PSAnZnVuY3Rpb24nICYmIGlzQnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsInZhciB3b3JkV3JhcCA9IHJlcXVpcmUoJ3dvcmQtd3JhcHBlcicpXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpXG52YXIgbnVtYmVyID0gcmVxdWlyZSgnYXMtbnVtYmVyJylcblxudmFyIFhfSEVJR0hUUyA9IFsneCcsICdlJywgJ2EnLCAnbycsICduJywgJ3MnLCAncicsICdjJywgJ3UnLCAnbScsICd2JywgJ3cnLCAneiddXG52YXIgTV9XSURUSFMgPSBbJ20nLCAndyddXG52YXIgQ0FQX0hFSUdIVFMgPSBbJ0gnLCAnSScsICdOJywgJ0UnLCAnRicsICdLJywgJ0wnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWiddXG5cblxudmFyIFRBQl9JRCA9ICdcXHQnLmNoYXJDb2RlQXQoMClcbnZhciBTUEFDRV9JRCA9ICcgJy5jaGFyQ29kZUF0KDApXG52YXIgQUxJR05fTEVGVCA9IDAsIFxuICAgIEFMSUdOX0NFTlRFUiA9IDEsIFxuICAgIEFMSUdOX1JJR0hUID0gMlxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUxheW91dChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0TGF5b3V0KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dExheW91dChvcHQpIHtcbiAgdGhpcy5nbHlwaHMgPSBbXVxuICB0aGlzLl9tZWFzdXJlID0gdGhpcy5jb21wdXRlTWV0cmljcy5iaW5kKHRoaXMpXG4gIHRoaXMudXBkYXRlKG9wdClcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24ob3B0KSB7XG4gIG9wdCA9IHh0ZW5kKHtcbiAgICBtZWFzdXJlOiB0aGlzLl9tZWFzdXJlXG4gIH0sIG9wdClcbiAgdGhpcy5fb3B0ID0gb3B0XG4gIHRoaXMuX29wdC50YWJTaXplID0gbnVtYmVyKHRoaXMuX29wdC50YWJTaXplLCA0KVxuXG4gIGlmICghb3B0LmZvbnQpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHByb3ZpZGUgYSB2YWxpZCBiaXRtYXAgZm9udCcpXG5cbiAgdmFyIGdseXBocyA9IHRoaXMuZ2x5cGhzXG4gIHZhciB0ZXh0ID0gb3B0LnRleHR8fCcnIFxuICB2YXIgZm9udCA9IG9wdC5mb250XG4gIHRoaXMuX3NldHVwU3BhY2VHbHlwaHMoZm9udClcbiAgXG4gIHZhciBsaW5lcyA9IHdvcmRXcmFwLmxpbmVzKHRleHQsIG9wdClcbiAgdmFyIG1pbldpZHRoID0gb3B0LndpZHRoIHx8IDBcblxuICAvL2NsZWFyIGdseXBoc1xuICBnbHlwaHMubGVuZ3RoID0gMFxuXG4gIC8vZ2V0IG1heCBsaW5lIHdpZHRoXG4gIHZhciBtYXhMaW5lV2lkdGggPSBsaW5lcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbGluZSkge1xuICAgIHJldHVybiBNYXRoLm1heChwcmV2LCBsaW5lLndpZHRoLCBtaW5XaWR0aClcbiAgfSwgMClcblxuICAvL3RoZSBwZW4gcG9zaXRpb25cbiAgdmFyIHggPSAwXG4gIHZhciB5ID0gMFxuICB2YXIgbGluZUhlaWdodCA9IG51bWJlcihvcHQubGluZUhlaWdodCwgZm9udC5jb21tb24ubGluZUhlaWdodClcbiAgdmFyIGJhc2VsaW5lID0gZm9udC5jb21tb24uYmFzZVxuICB2YXIgZGVzY2VuZGVyID0gbGluZUhlaWdodC1iYXNlbGluZVxuICB2YXIgbGV0dGVyU3BhY2luZyA9IG9wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGhlaWdodCA9IGxpbmVIZWlnaHQgKiBsaW5lcy5sZW5ndGggLSBkZXNjZW5kZXJcbiAgdmFyIGFsaWduID0gZ2V0QWxpZ25UeXBlKHRoaXMuX29wdC5hbGlnbilcblxuICAvL2RyYXcgdGV4dCBhbG9uZyBiYXNlbGluZVxuICB5IC09IGhlaWdodFxuICBcbiAgLy90aGUgbWV0cmljcyBmb3IgdGhpcyB0ZXh0IGxheW91dFxuICB0aGlzLl93aWR0aCA9IG1heExpbmVXaWR0aFxuICB0aGlzLl9oZWlnaHQgPSBoZWlnaHRcbiAgdGhpcy5fZGVzY2VuZGVyID0gbGluZUhlaWdodCAtIGJhc2VsaW5lXG4gIHRoaXMuX2Jhc2VsaW5lID0gYmFzZWxpbmVcbiAgdGhpcy5feEhlaWdodCA9IGdldFhIZWlnaHQoZm9udClcbiAgdGhpcy5fY2FwSGVpZ2h0ID0gZ2V0Q2FwSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0XG4gIHRoaXMuX2FzY2VuZGVyID0gbGluZUhlaWdodCAtIGRlc2NlbmRlciAtIHRoaXMuX3hIZWlnaHRcbiAgICBcbiAgLy9sYXlvdXQgZWFjaCBnbHlwaFxuICB2YXIgc2VsZiA9IHRoaXNcbiAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLCBsaW5lSW5kZXgpIHtcbiAgICB2YXIgc3RhcnQgPSBsaW5lLnN0YXJ0XG4gICAgdmFyIGVuZCA9IGxpbmUuZW5kXG4gICAgdmFyIGxpbmVXaWR0aCA9IGxpbmUud2lkdGhcbiAgICB2YXIgbGFzdEdseXBoXG4gICAgXG4gICAgLy9mb3IgZWFjaCBnbHlwaCBpbiB0aGF0IGxpbmUuLi5cbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZDsgaSsrKSB7XG4gICAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICAgIHZhciBnbHlwaCA9IHNlbGYuZ2V0R2x5cGgoZm9udCwgaWQpXG4gICAgICBpZiAoZ2x5cGgpIHtcbiAgICAgICAgaWYgKGxhc3RHbHlwaCkgXG4gICAgICAgICAgeCArPSBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpXG5cbiAgICAgICAgdmFyIHR4ID0geFxuICAgICAgICBpZiAoYWxpZ24gPT09IEFMSUdOX0NFTlRFUikgXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpLzJcbiAgICAgICAgZWxzZSBpZiAoYWxpZ24gPT09IEFMSUdOX1JJR0hUKVxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKVxuXG4gICAgICAgIGdseXBocy5wdXNoKHtcbiAgICAgICAgICBwb3NpdGlvbjogW3R4LCB5XSxcbiAgICAgICAgICBkYXRhOiBnbHlwaCxcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBsaW5lOiBsaW5lSW5kZXhcbiAgICAgICAgfSkgIFxuXG4gICAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgICB4ICs9IGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vbmV4dCBsaW5lIGRvd25cbiAgICB5ICs9IGxpbmVIZWlnaHRcbiAgICB4ID0gMFxuICB9KVxuICB0aGlzLl9saW5lc1RvdGFsID0gbGluZXMubGVuZ3RoO1xufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5fc2V0dXBTcGFjZUdseXBocyA9IGZ1bmN0aW9uKGZvbnQpIHtcbiAgLy9UaGVzZSBhcmUgZmFsbGJhY2tzLCB3aGVuIHRoZSBmb250IGRvZXNuJ3QgaW5jbHVkZVxuICAvLycgJyBvciAnXFx0JyBnbHlwaHNcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gbnVsbFxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0gbnVsbFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm5cblxuICAvL3RyeSB0byBnZXQgc3BhY2UgZ2x5cGhcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgJ20nIG9yICd3JyBnbHlwaHNcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgZmlyc3QgZ2x5cGggYXZhaWxhYmxlXG4gIHZhciBzcGFjZSA9IGdldEdseXBoQnlJZChmb250LCBTUEFDRV9JRCkgXG4gICAgICAgICAgfHwgZ2V0TUdseXBoKGZvbnQpIFxuICAgICAgICAgIHx8IGZvbnQuY2hhcnNbMF1cblxuICAvL2FuZCBjcmVhdGUgYSBmYWxsYmFjayBmb3IgdGFiXG4gIHZhciB0YWJXaWR0aCA9IHRoaXMuX29wdC50YWJTaXplICogc3BhY2UueGFkdmFuY2VcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gc3BhY2VcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IHh0ZW5kKHNwYWNlLCB7XG4gICAgeDogMCwgeTogMCwgeGFkdmFuY2U6IHRhYldpZHRoLCBpZDogVEFCX0lELCBcbiAgICB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwXG4gIH0pXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmdldEdseXBoID0gZnVuY3Rpb24oZm9udCwgaWQpIHtcbiAgdmFyIGdseXBoID0gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKVxuICBpZiAoZ2x5cGgpXG4gICAgcmV0dXJuIGdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBUQUJfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1RhYkdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBTUEFDRV9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaFxuICByZXR1cm4gbnVsbFxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5jb21wdXRlTWV0cmljcyA9IGZ1bmN0aW9uKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gdGhpcy5fb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgZm9udCA9IHRoaXMuX29wdC5mb250XG4gIHZhciBjdXJQZW4gPSAwXG4gIHZhciBjdXJXaWR0aCA9IDBcbiAgdmFyIGNvdW50ID0gMFxuICB2YXIgZ2x5cGhcbiAgdmFyIGxhc3RHbHlwaFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogc3RhcnQsXG4gICAgICBlbmQ6IHN0YXJ0LFxuICAgICAgd2lkdGg6IDBcbiAgICB9XG4gIH1cblxuICBlbmQgPSBNYXRoLm1pbih0ZXh0Lmxlbmd0aCwgZW5kKVxuICBmb3IgKHZhciBpPXN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB2YXIgZ2x5cGggPSB0aGlzLmdldEdseXBoKGZvbnQsIGlkKVxuXG4gICAgaWYgKGdseXBoKSB7XG4gICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgIHZhciB4b2ZmID0gZ2x5cGgueG9mZnNldFxuICAgICAgdmFyIGtlcm4gPSBsYXN0R2x5cGggPyBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpIDogMFxuICAgICAgY3VyUGVuICs9IGtlcm5cblxuICAgICAgdmFyIG5leHRQZW4gPSBjdXJQZW4gKyBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgIHZhciBuZXh0V2lkdGggPSBjdXJQZW4gKyBnbHlwaC53aWR0aFxuXG4gICAgICAvL3dlJ3ZlIGhpdCBvdXIgbGltaXQ7IHdlIGNhbid0IG1vdmUgb250byB0aGUgbmV4dCBnbHlwaFxuICAgICAgaWYgKG5leHRXaWR0aCA+PSB3aWR0aCB8fCBuZXh0UGVuID49IHdpZHRoKVxuICAgICAgICBicmVha1xuXG4gICAgICAvL290aGVyd2lzZSBjb250aW51ZSBhbG9uZyBvdXIgbGluZVxuICAgICAgY3VyUGVuID0gbmV4dFBlblxuICAgICAgY3VyV2lkdGggPSBuZXh0V2lkdGhcbiAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgfVxuICAgIGNvdW50KytcbiAgfVxuICBcbiAgLy9tYWtlIHN1cmUgcmlnaHRtb3N0IGVkZ2UgbGluZXMgdXAgd2l0aCByZW5kZXJlZCBnbHlwaHNcbiAgaWYgKGxhc3RHbHlwaClcbiAgICBjdXJXaWR0aCArPSBsYXN0R2x5cGgueG9mZnNldFxuXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IHN0YXJ0LFxuICAgIGVuZDogc3RhcnQgKyBjb3VudCxcbiAgICB3aWR0aDogY3VyV2lkdGhcbiAgfVxufVxuXG4vL2dldHRlcnMgZm9yIHRoZSBwcml2YXRlIHZhcnNcbjtbJ3dpZHRoJywgJ2hlaWdodCcsIFxuICAnZGVzY2VuZGVyJywgJ2FzY2VuZGVyJyxcbiAgJ3hIZWlnaHQnLCAnYmFzZWxpbmUnLFxuICAnY2FwSGVpZ2h0JyxcbiAgJ2xpbmVIZWlnaHQnIF0uZm9yRWFjaChhZGRHZXR0ZXIpXG5cbmZ1bmN0aW9uIGFkZEdldHRlcihuYW1lKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZXh0TGF5b3V0LnByb3RvdHlwZSwgbmFtZSwge1xuICAgIGdldDogd3JhcHBlcihuYW1lKSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSlcbn1cblxuLy9jcmVhdGUgbG9va3VwcyBmb3IgcHJpdmF0ZSB2YXJzXG5mdW5jdGlvbiB3cmFwcGVyKG5hbWUpIHtcbiAgcmV0dXJuIChuZXcgRnVuY3Rpb24oW1xuICAgICdyZXR1cm4gZnVuY3Rpb24gJytuYW1lKycoKSB7JyxcbiAgICAnICByZXR1cm4gdGhpcy5fJytuYW1lLFxuICAgICd9J1xuICBdLmpvaW4oJ1xcbicpKSkoKVxufVxuXG5mdW5jdGlvbiBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpIHtcbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIGdseXBoSWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gIGlmIChnbHlwaElkeCA+PSAwKVxuICAgIHJldHVybiBmb250LmNoYXJzW2dseXBoSWR4XVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBnZXRYSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPFhfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IFhfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldE1HbHlwaChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxNX1dJRFRIUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IE1fV0lEVEhTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRDYXBIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8Q0FQX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBDQVBfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEtlcm5pbmcoZm9udCwgbGVmdCwgcmlnaHQpIHtcbiAgaWYgKCFmb250Lmtlcm5pbmdzIHx8IGZvbnQua2VybmluZ3MubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiAwXG5cbiAgdmFyIHRhYmxlID0gZm9udC5rZXJuaW5nc1xuICBmb3IgKHZhciBpPTA7IGk8dGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2VybiA9IHRhYmxlW2ldXG4gICAgaWYgKGtlcm4uZmlyc3QgPT09IGxlZnQgJiYga2Vybi5zZWNvbmQgPT09IHJpZ2h0KVxuICAgICAgcmV0dXJuIGtlcm4uYW1vdW50XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0QWxpZ25UeXBlKGFsaWduKSB7XG4gIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpXG4gICAgcmV0dXJuIEFMSUdOX0NFTlRFUlxuICBlbHNlIGlmIChhbGlnbiA9PT0gJ3JpZ2h0JylcbiAgICByZXR1cm4gQUxJR05fUklHSFRcbiAgcmV0dXJuIEFMSUdOX0xFRlRcbn1cblxuZnVuY3Rpb24gZmluZENoYXIgKGFycmF5LCB2YWx1ZSwgc3RhcnQpIHtcbiAgc3RhcnQgPSBzdGFydCB8fCAwXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldLmlkID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xXG59IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcGFyc2VCTUZvbnRBc2NpaShkYXRhKSB7XG4gIGlmICghZGF0YSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgcHJvdmlkZWQnKVxuICBkYXRhID0gZGF0YS50b1N0cmluZygpLnRyaW0oKVxuXG4gIHZhciBvdXRwdXQgPSB7XG4gICAgcGFnZXM6IFtdLFxuICAgIGNoYXJzOiBbXSxcbiAgICBrZXJuaW5nczogW11cbiAgfVxuXG4gIHZhciBsaW5lcyA9IGRhdGEuc3BsaXQoL1xcclxcbj98XFxuL2cpXG5cbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgaW4gQk1Gb250IGZpbGUnKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGluZURhdGEgPSBzcGxpdExpbmUobGluZXNbaV0sIGkpXG4gICAgaWYgKCFsaW5lRGF0YSkgLy9za2lwIGVtcHR5IGxpbmVzXG4gICAgICBjb250aW51ZVxuXG4gICAgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ3BhZ2UnKSB7XG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuaWQgIT09ICdudW1iZXInKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgaWQ9TicpXG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuZmlsZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBmaWxlPVwicGF0aFwiJylcbiAgICAgIG91dHB1dC5wYWdlc1tsaW5lRGF0YS5kYXRhLmlkXSA9IGxpbmVEYXRhLmRhdGEuZmlsZVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcnMnIHx8IGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmdzJykge1xuICAgICAgLy8uLi4gZG8gbm90aGluZyBmb3IgdGhlc2UgdHdvIC4uLlxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcicpIHtcbiAgICAgIG91dHB1dC5jaGFycy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5nJykge1xuICAgICAgb3V0cHV0Lmtlcm5pbmdzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0W2xpbmVEYXRhLmtleV0gPSBsaW5lRGF0YS5kYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBzcGxpdExpbmUobGluZSwgaWR4KSB7XG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL1xcdCsvZywgJyAnKS50cmltKClcbiAgaWYgKCFsaW5lKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIHNwYWNlID0gbGluZS5pbmRleE9mKCcgJylcbiAgaWYgKHNwYWNlID09PSAtMSkgXG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm8gbmFtZWQgcm93IGF0IGxpbmUgXCIgKyBpZHgpXG5cbiAgdmFyIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIHNwYWNlKVxuXG4gIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhzcGFjZSArIDEpXG4gIC8vY2xlYXIgXCJsZXR0ZXJcIiBmaWVsZCBhcyBpdCBpcyBub24tc3RhbmRhcmQgYW5kXG4gIC8vcmVxdWlyZXMgYWRkaXRpb25hbCBjb21wbGV4aXR5IHRvIHBhcnNlIFwiIC8gPSBzeW1ib2xzXG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL2xldHRlcj1bXFwnXFxcIl1cXFMrW1xcJ1xcXCJdL2dpLCAnJykgIFxuICBsaW5lID0gbGluZS5zcGxpdChcIj1cIilcbiAgbGluZSA9IGxpbmUubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBzdHIudHJpbSgpLm1hdGNoKCgvKFwiLio/XCJ8W15cIlxcc10rKSsoPz1cXHMqfFxccyokKS9nKSlcbiAgfSlcblxuICB2YXIgZGF0YSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkdCA9IGxpbmVbaV1cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFswXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFsxXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0ID0ge1xuICAgIGtleToga2V5LFxuICAgIGRhdGE6IHt9XG4gIH1cblxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIG91dC5kYXRhW3Yua2V5XSA9IHYuZGF0YTtcbiAgfSlcblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShkYXRhKSB7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gXCJcIlxuXG4gIGlmIChkYXRhLmluZGV4T2YoJ1wiJykgPT09IDAgfHwgZGF0YS5pbmRleE9mKFwiJ1wiKSA9PT0gMClcbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoMSwgZGF0YS5sZW5ndGggLSAxKVxuICBpZiAoZGF0YS5pbmRleE9mKCcsJykgIT09IC0xKVxuICAgIHJldHVybiBwYXJzZUludExpc3QoZGF0YSlcbiAgcmV0dXJuIHBhcnNlSW50KGRhdGEsIDEwKVxufVxuXG5mdW5jdGlvbiBwYXJzZUludExpc3QoZGF0YSkge1xuICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMClcbiAgfSlcbn0iLCJ2YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG52YXIgYW5BcnJheSA9IHJlcXVpcmUoJ2FuLWFycmF5JylcbnZhciBpc0J1ZmZlciA9IHJlcXVpcmUoJ2lzLWJ1ZmZlcicpXG5cbnZhciBDVyA9IFswLCAyLCAzXVxudmFyIENDVyA9IFsyLCAxLCAzXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVF1YWRFbGVtZW50cyhhcnJheSwgb3B0KSB7XG4gICAgLy9pZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IGFuIG91dHB1dCBhcnJheVxuICAgIGlmICghYXJyYXkgfHwgIShhbkFycmF5KGFycmF5KSB8fCBpc0J1ZmZlcihhcnJheSkpKSB7XG4gICAgICAgIG9wdCA9IGFycmF5IHx8IHt9XG4gICAgICAgIGFycmF5ID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnbnVtYmVyJykgLy9iYWNrd2FyZHMtY29tcGF0aWJsZVxuICAgICAgICBvcHQgPSB7IGNvdW50OiBvcHQgfVxuICAgIGVsc2VcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9XG5cbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvcHQudHlwZSA9PT0gJ3N0cmluZycgPyBvcHQudHlwZSA6ICd1aW50MTYnXG4gICAgdmFyIGNvdW50ID0gdHlwZW9mIG9wdC5jb3VudCA9PT0gJ251bWJlcicgPyBvcHQuY291bnQgOiAxXG4gICAgdmFyIHN0YXJ0ID0gKG9wdC5zdGFydCB8fCAwKSBcblxuICAgIHZhciBkaXIgPSBvcHQuY2xvY2t3aXNlICE9PSBmYWxzZSA/IENXIDogQ0NXLFxuICAgICAgICBhID0gZGlyWzBdLCBcbiAgICAgICAgYiA9IGRpclsxXSxcbiAgICAgICAgYyA9IGRpclsyXVxuXG4gICAgdmFyIG51bUluZGljZXMgPSBjb3VudCAqIDZcblxuICAgIHZhciBpbmRpY2VzID0gYXJyYXkgfHwgbmV3IChkdHlwZSh0eXBlKSkobnVtSW5kaWNlcylcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBudW1JbmRpY2VzOyBpICs9IDYsIGogKz0gNCkge1xuICAgICAgICB2YXIgeCA9IGkgKyBzdGFydFxuICAgICAgICBpbmRpY2VzW3ggKyAwXSA9IGogKyAwXG4gICAgICAgIGluZGljZXNbeCArIDFdID0gaiArIDFcbiAgICAgICAgaW5kaWNlc1t4ICsgMl0gPSBqICsgMlxuICAgICAgICBpbmRpY2VzW3ggKyAzXSA9IGogKyBhXG4gICAgICAgIGluZGljZXNbeCArIDRdID0gaiArIGJcbiAgICAgICAgaW5kaWNlc1t4ICsgNV0gPSBqICsgY1xuICAgIH1cbiAgICByZXR1cm4gaW5kaWNlc1xufSIsInZhciBjcmVhdGVMYXlvdXQgPSByZXF1aXJlKCdsYXlvdXQtYm1mb250LXRleHQnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIGNyZWF0ZUluZGljZXMgPSByZXF1aXJlKCdxdWFkLWluZGljZXMnKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIEJhc2UuY2FsbCh0aGlzKVxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0KVxuXG4gIC8vIGFsc28gZG8gYW4gaW5pdGlhbCBzZXR1cC4uLlxuICBpZiAob3B0KSB0aGlzLnVwZGF0ZShvcHQpXG59XG5cbmluaGVyaXRzKFRleHRHZW9tZXRyeSwgQmFzZSlcblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAob3B0KSB7XG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSBjb25zdHJ1Y3RvciBkZWZhdWx0c1xuICBvcHQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vcHQsIG9wdClcblxuICBpZiAoIW9wdC5mb250KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGEgeyBmb250IH0gaW4gb3B0aW9ucycpXG4gIH1cblxuICB0aGlzLmxheW91dCA9IGNyZWF0ZUxheW91dChvcHQpXG5cbiAgLy8gZ2V0IHZlYzIgdGV4Y29vcmRzXG4gIHZhciBmbGlwWSA9IG9wdC5mbGlwWSAhPT0gZmFsc2VcblxuICAvLyB0aGUgZGVzaXJlZCBCTUZvbnQgZGF0YVxuICB2YXIgZm9udCA9IG9wdC5mb250XG5cbiAgLy8gZGV0ZXJtaW5lIHRleHR1cmUgc2l6ZSBmcm9tIGZvbnQgZmlsZVxuICB2YXIgdGV4V2lkdGggPSBmb250LmNvbW1vbi5zY2FsZVdcbiAgdmFyIHRleEhlaWdodCA9IGZvbnQuY29tbW9uLnNjYWxlSFxuXG4gIC8vIGdldCB2aXNpYmxlIGdseXBoc1xuICB2YXIgZ2x5cGhzID0gdGhpcy5sYXlvdXQuZ2x5cGhzLmZpbHRlcihmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHJldHVybiBiaXRtYXAud2lkdGggKiBiaXRtYXAuaGVpZ2h0ID4gMFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdmlzaWJsZSBnbHlwaHMgZm9yIGNvbnZlbmllbmNlXG4gIHRoaXMudmlzaWJsZUdseXBocyA9IGdseXBoc1xuXG4gIC8vIGdldCBjb21tb24gdmVydGV4IGRhdGFcbiAgdmFyIHBvc2l0aW9ucyA9IHZlcnRpY2VzLnBvc2l0aW9ucyhnbHlwaHMpXG4gIHZhciB1dnMgPSB2ZXJ0aWNlcy51dnMoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSlcbiAgdmFyIGluZGljZXMgPSBjcmVhdGVJbmRpY2VzKFtdLCB7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIHRoaXMuc2V0SW5kZXgoaW5kaWNlcylcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwb3NpdGlvbnMsIDIpKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHV2cywgMikpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICAvLyBlbmFibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHZhciBwYWdlcyA9IHZlcnRpY2VzLnBhZ2VzKGdseXBocylcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGFnZScsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocGFnZXMsIDEpKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIG5ld2xpbmUgPSAvXFxuL1xudmFyIG5ld2xpbmVDaGFyID0gJ1xcbidcbnZhciB3aGl0ZXNwYWNlID0gL1xccy9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih0ZXh0LCBvcHQpIHtcbiAgICB2YXIgbGluZXMgPSBtb2R1bGUuZXhwb3J0cy5saW5lcyh0ZXh0LCBvcHQpXG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhsaW5lLnN0YXJ0LCBsaW5lLmVuZClcbiAgICB9KS5qb2luKCdcXG4nKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5saW5lcyA9IGZ1bmN0aW9uIHdvcmR3cmFwKHRleHQsIG9wdCkge1xuICAgIG9wdCA9IG9wdHx8e31cblxuICAgIC8vemVybyB3aWR0aCByZXN1bHRzIGluIG5vdGhpbmcgdmlzaWJsZVxuICAgIGlmIChvcHQud2lkdGggPT09IDAgJiYgb3B0Lm1vZGUgIT09ICdub3dyYXAnKSBcbiAgICAgICAgcmV0dXJuIFtdXG5cbiAgICB0ZXh0ID0gdGV4dHx8JydcbiAgICB2YXIgd2lkdGggPSB0eXBlb2Ygb3B0LndpZHRoID09PSAnbnVtYmVyJyA/IG9wdC53aWR0aCA6IE51bWJlci5NQVhfVkFMVUVcbiAgICB2YXIgc3RhcnQgPSBNYXRoLm1heCgwLCBvcHQuc3RhcnR8fDApXG4gICAgdmFyIGVuZCA9IHR5cGVvZiBvcHQuZW5kID09PSAnbnVtYmVyJyA/IG9wdC5lbmQgOiB0ZXh0Lmxlbmd0aFxuICAgIHZhciBtb2RlID0gb3B0Lm1vZGVcblxuICAgIHZhciBtZWFzdXJlID0gb3B0Lm1lYXN1cmUgfHwgbW9ub3NwYWNlXG4gICAgaWYgKG1vZGUgPT09ICdwcmUnKVxuICAgICAgICByZXR1cm4gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKVxuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSlcbn1cblxuZnVuY3Rpb24gaWR4T2YodGV4dCwgY2hyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIGlkeCA9IHRleHQuaW5kZXhPZihjaHIsIHN0YXJ0KVxuICAgIGlmIChpZHggPT09IC0xIHx8IGlkeCA+IGVuZClcbiAgICAgICAgcmV0dXJuIGVuZFxuICAgIHJldHVybiBpZHhcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNocikge1xuICAgIHJldHVybiB3aGl0ZXNwYWNlLnRlc3QoY2hyKVxufVxuXG5mdW5jdGlvbiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgbGluZXMgPSBbXVxuICAgIHZhciBsaW5lU3RhcnQgPSBzdGFydFxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kICYmIGk8dGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hyID0gdGV4dC5jaGFyQXQoaSlcbiAgICAgICAgdmFyIGlzTmV3bGluZSA9IG5ld2xpbmUudGVzdChjaHIpXG5cbiAgICAgICAgLy9JZiB3ZSd2ZSByZWFjaGVkIGEgbmV3bGluZSwgdGhlbiBzdGVwIGRvd24gYSBsaW5lXG4gICAgICAgIC8vT3IgaWYgd2UndmUgcmVhY2hlZCB0aGUgRU9GXG4gICAgICAgIGlmIChpc05ld2xpbmUgfHwgaT09PWVuZC0xKSB7XG4gICAgICAgICAgICB2YXIgbGluZUVuZCA9IGlzTmV3bGluZSA/IGkgOiBpKzFcbiAgICAgICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgbGluZVN0YXJ0LCBsaW5lRW5kLCB3aWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobWVhc3VyZWQpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmVTdGFydCA9IGkrMVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpIHtcbiAgICAvL0EgZ3JlZWR5IHdvcmQgd3JhcHBlciBiYXNlZCBvbiBMaWJHRFggYWxnb3JpdGhtXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbGliZ2R4L2xpYmdkeC9ibG9iL21hc3Rlci9nZHgvc3JjL2NvbS9iYWRsb2dpYy9nZHgvZ3JhcGhpY3MvZzJkL0JpdG1hcEZvbnRDYWNoZS5qYXZhXG4gICAgdmFyIGxpbmVzID0gW11cblxuICAgIHZhciB0ZXN0V2lkdGggPSB3aWR0aFxuICAgIC8vaWYgJ25vd3JhcCcgaXMgc3BlY2lmaWVkLCB3ZSBvbmx5IHdyYXAgb24gbmV3bGluZSBjaGFyc1xuICAgIGlmIChtb2RlID09PSAnbm93cmFwJylcbiAgICAgICAgdGVzdFdpZHRoID0gTnVtYmVyLk1BWF9WQUxVRVxuXG4gICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgLy9nZXQgbmV4dCBuZXdsaW5lIHBvc2l0aW9uXG4gICAgICAgIHZhciBuZXdMaW5lID0gaWR4T2YodGV4dCwgbmV3bGluZUNoYXIsIHN0YXJ0LCBlbmQpXG5cbiAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBzdGFydCBvZiBsaW5lXG4gICAgICAgIHdoaWxlIChzdGFydCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKCB0ZXh0LmNoYXJBdChzdGFydCkgKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgc3RhcnQrK1xuICAgICAgICB9XG5cbiAgICAgICAgLy9kZXRlcm1pbmUgdmlzaWJsZSAjIG9mIGdseXBocyBmb3IgdGhlIGF2YWlsYWJsZSB3aWR0aFxuICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBuZXdMaW5lLCB0ZXN0V2lkdGgpXG5cbiAgICAgICAgdmFyIGxpbmVFbmQgPSBzdGFydCArIChtZWFzdXJlZC5lbmQtbWVhc3VyZWQuc3RhcnQpXG4gICAgICAgIHZhciBuZXh0U3RhcnQgPSBsaW5lRW5kICsgbmV3bGluZUNoYXIubGVuZ3RoXG5cbiAgICAgICAgLy9pZiB3ZSBoYWQgdG8gY3V0IHRoZSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBuZXdsaW5lLi4uXG4gICAgICAgIGlmIChsaW5lRW5kIDwgbmV3TGluZSkge1xuICAgICAgICAgICAgLy9maW5kIGNoYXIgdG8gYnJlYWsgb25cbiAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQpKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5lRW5kID09PSBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPiBzdGFydCArIG5ld2xpbmVDaGFyLmxlbmd0aCkgbmV4dFN0YXJ0LS1cbiAgICAgICAgICAgICAgICBsaW5lRW5kID0gbmV4dFN0YXJ0IC8vIElmIG5vIGNoYXJhY3RlcnMgdG8gYnJlYWssIHNob3cgYWxsLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBsaW5lRW5kXG4gICAgICAgICAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCAtIG5ld2xpbmVDaGFyLmxlbmd0aCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5lRW5kID49IHN0YXJ0KSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbGluZUVuZCwgdGVzdFdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnRcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbi8vZGV0ZXJtaW5lcyB0aGUgdmlzaWJsZSBudW1iZXIgb2YgZ2x5cGhzIHdpdGhpbiBhIGdpdmVuIHdpZHRoXG5mdW5jdGlvbiBtb25vc3BhY2UodGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgZ2x5cGhzID0gTWF0aC5taW4od2lkdGgsIGVuZC1zdGFydClcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnQrZ2x5cGhzXG4gICAgfVxufSIsIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXX0= diff --git a/build/datguivr.map b/build/datguivr.map index 3a4302a..b9003bc 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index 1a86fc3..e92c61f 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -5,6 +5,6 @@ return'info face="Roboto" size=192 bold=0 italic=0 charset="" unicode=1 stretchH }Object.defineProperty(c,"__esModule",{value:!0}),c.image=d,c.fnt=e},{}],8:[function(a,b,c){"use strict";function d(){function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i);var J=b.text?2184:16777215,K=b.text?273:13421772;j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?J:K),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8, -"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() {\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder -;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n\nvoid main() {\n vScale = pow(abs(determinant(mat3(modelViewMatrix))), 0.33333);\n // vScale = 10.;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f +;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b #include +varying float vScale; + void main() { - vUv = uv; + vScale = pow(abs(determinant(mat3(modelViewMatrix))), 0.33333); + // vScale = 10.; + vUv = uv; #include #include @@ -39,6 +43,7 @@ const meshbasic_frag = ` #define USE_UV uniform vec3 color; uniform float opacity; +varying float vScale; #include //#include @@ -55,6 +60,7 @@ float aastep(float value) { #else float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w)); #endif + afwidth *= vScale; return smoothstep(0.5 - afwidth, 0.5 + afwidth, value); } //// From 62c547a16a20d28e908f67d8b7514ffd2a6417b5 Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Wed, 26 Jan 2022 18:20:08 +0000 Subject: [PATCH 08/24] modify (correct?) vScale calculation --- build/datguivr.js | 4 ++-- build/datguivr.map | 2 +- build/datguivr.min.js | 4 ++-- modules/datguivr/sdfshader_logdepth.js | 6 ++++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index a7b9a6e..c0dc277 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -4596,7 +4596,7 @@ var assign = require('object-assign'); /** * starting from THREE meshbasic shaders, pruning / modifying... */ -var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n\nvoid main() {\n vScale = pow(abs(determinant(mat3(modelViewMatrix))), 0.33333);\n // vScale = 10.;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; +var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n// This is defined in layout.js (and was observed looking at three heirachy matrices)\n#define TEXT_SCALE 0.00024;\nvoid main() {\n \n vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n // vScale = 10.;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; var meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; @@ -7584,4 +7584,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQlVUVE9OX0NPTE9SIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSwgeyBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0NPTE9SICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAuYnV0dG9uTGFiZWwgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgeyBDSEVDS0JPWF9TSVpFIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ2hlY2tib3goIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgY29uc3QgQ0hFQ0tCT1hfUEFEID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAtIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiY2hlY2tib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGNoZWNrbWFyaywgYm9yZGVyQm94LCBpbnRlcmFjdGlvbjtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBpZiggb25DaGFuZ2VkQ0IgKXtcclxuICAgICAgb25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGJvcmRlckJveC52aXNpYmxlID0gaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIGlmIChfaGVhZGVyKSB7XHJcbiAgICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgICAgX2hlYWRlci5ib3JkZXJCb3gudmlzaWJsZSA9IF9oZWFkZXIuaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG4gIGxldCBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSBmYWxzZTtcclxuICBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXIgPSAodmFsdWU9dHJ1ZSkgPT4ge1xyXG4gICAgaWYgKHZhbHVlICE9PSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHtcclxuICAgICAgaXNTaG93bkluRm9sZGVySGVhZGVyID0gdmFsdWU7XHJcbiAgICAgIC8vZ3JvdXAuZm9sZGVySGVhZGVyT2JqZWN0ID0gdmFsdWUgPyBnZXRGb2xkZXJIZWFkZXJPYmplY3QgOiBudWxsO1xyXG4gICAgICAvL3h4eDogY2FuJ3QgdXNlIG9yZGluYXJ5IGFkZC4uLlxyXG4gICAgICBfaGVhZGVyID0gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCk7XHJcbiAgICAgIGlmICh2YWx1ZSkgZ3JvdXAuZm9sZGVyLmFkZEhlYWRlckl0ZW0oX2hlYWRlcik7XHJcbiAgICAgIGVsc2UgX2hlYWRlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2lzU2hvd25JbkZvbGRlckhlYWRlcicsIHtcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gaXNTaG93bkluRm9sZGVySGVhZGVyIH0sXHJcbiAgICBzZXQ6IGdyb3VwLnNob3dJbkZvbGRlckhlYWRlclxyXG4gIH0pO1xyXG4gIGxldCBfaGVhZGVyO1xyXG4gIGZ1bmN0aW9uIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHtcclxuICAgIGlmIChfaGVhZGVyKSByZXR1cm4gX2hlYWRlcjtcclxuICAgIGxldCBzaXplID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAqIDAuNjtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoc2l6ZSwgc2l6ZSwgZGVwdGgpO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoc2l6ZSowLjUsIDAsIDApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2gocmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwpO1xyXG4gICAgX2hlYWRlciA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBzaWRlLWVmZmVjdC4uLlxyXG4gICAgLy8geCBwb3NpdGlvbiBpcyBzZXQgaW4gZm9sZGVyIHBlcmZvcm1IZWFkZXJMYXlvdXQoKVxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBcclxuICAgIC8vVE9ETzogZ2V0IHRoaXMgdG8gd29yay4uLiBhZGQgdG9vbHRpcFxyXG4gICAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBkZXB0aCwgdHJ1ZSApO1xyXG4gICAgX2hlYWRlci5ib3JkZXJCb3ggPSBib3JkZXJCb3g7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjb25zdCBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyaygwLjQgKiBzaXplIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkUpO1xyXG4gICAgX2hlYWRlci5jaGVja21hcmsgPSBjaGVja21hcms7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZChjaGVja21hcmspO1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oaGl0c2NhblZvbHVtZSk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oJ29uUHJlc3NlZCcsIGhhbmRsZUhlYWRlclByZXNzKTtcclxuICAgIF9oZWFkZXIuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuXHJcbiAgICAvL2FkZCB1cGRhdGVDb250cm9sIG1ldGhvZCBoZXJlIC0gYXR0ZW1wdCB0byBtYWtlIGdlbmVyaWMgdmVyc2lvbiBpbiBmb2xkZXIgd2FzIGluYWRlcXVhdGVcclxuICAgIF9oZWFkZXIudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiB7XHJcbiAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIHtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vbmI6IGludGVyYWN0aW9uIHdpbGwgYmUgZnJvbSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSBzY29wZSwgXHJcbiAgICAgIC8vbm90IHRoZSBtYWluIG9uZSB0aGF0IGFwcGxpZXMgdGhhdCBhcHBsaWVzIHRvIHRoZSBvcmRpbmFyeSBjb250cm9sLlxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBfaGVhZGVyO1xyXG4gIH1cclxuXHJcbiAgLy9UT0RPIHJldmlldyBuZWVkIGZvciBzZXBhcmF0ZSBoZWFkZXIgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uXHJcbiAgZnVuY3Rpb24gaGFuZGxlSGVhZGVyUHJlc3MocCl7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyLnZpc2libGUgPT09IGZhbHNlIHx8IF9oZWFkZXIudmlzaWJsZSA9PT0gZmFsc2UpIHJldHVybjtcclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdGF0ZS52YWx1ZTtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Ioc3RhdGUudmFsdWUpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIC8vbWFrZSBzdXJlIHZpZXcgaXMgYWxzbyB1cCB0byBkYXRlOyB1cGRhdGVWaWV3KCkgd29uJ3QgaGFwcGVuIHdoZW4gcGFyZW50IGZvbGRlciBpcyBjb2xsYXBzZWRcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICAvL2FsbCBsYXlvdXQgZXRjIGlzIGRvbmUgaW5zaWRlIHNldEhlaWdodCwgd2hpY2ggaXMgY2FsbGVkIG9uY2UgYXQgc3RhcnQuXHJcbiAgLy9hbnkgY2FsbGJhY2tzIGV0YyByZW1haW4gYXNzb2NpYXRlZCB3aXRoICdncm91cCcuXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gbmV3SGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IG5ld0hlaWdodDtcclxuICAgIFxyXG4gICAgY29uc3QgQ0hFQ0tCT1hfV0lEVEggPSBuZXdIZWlnaHQgLSBDSEVDS0JPWF9QQUQ7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9IRUlHSFQgPSBDSEVDS0JPWF9XSURUSDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0RFUFRIID0gZGVwdGg7XHJcbiAgICBjb25zdCBDSEVDS01BUktfU0laRSA9IDAuNCAqIENIRUNLQk9YX1dJRFRIIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIG5ld0hlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICBcclxuICAgIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDSEVDS0JPWF9XSURUSCwgQ0hFQ0tCT1hfSEVJR0hULCBDSEVDS0JPWF9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIENIRUNLQk9YX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgXHJcbiAgXHJcbiAgICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuICBcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgXHJcbiAgICAvLyAgb3V0bGluZSB2b2x1bWVcclxuICAgIC8vIGNvbnN0IG91dGxpbmUgPSBuZXcgVEhSRUUuQm94SGVscGVyKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAvLyBvdXRsaW5lLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLk9VVExJTkVfQ09MT1IgKTtcclxuICBcclxuICAgIC8vICBjaGVja2JveCB2b2x1bWVcclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5DSEVDS0JPWF9CR19DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcbiAgXHJcbiAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBuZXdIZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0NIRUNLQk9YICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gICAgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBDSEVDS0JPWF9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfREVQVEgsIHRydWUgKTtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKCBDSEVDS01BUktfU0laRSApO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggY2hlY2ttYXJrICk7XHJcbiAgXHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklELCBib3JkZXJCb3ggKTtcclxuICBcclxuICAgIC8vIGdyb3VwLmFkZCggZmlsbGVkVm9sdW1lLCBvdXRsaW5lLCBoaXRzY2FuVm9sdW1lLCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuICBcclxuICAgIGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICBcclxuICBcclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG4gICAgXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdO1xyXG4gICAgICB9XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KGhlaWdodCk7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4gKiBUaGlzIHNob3VsZCBsb29rIGxpa2UgYW4gaW1hZ2VidXR0b24gd2l0aCBhIHNvbGlkIGNvbG9yIE1lc2hCYXNpY01hdGVyaWFsXHJcbiAqIFdoZW4gcHJlc3NlZCBpdCBjb3VsZCBicmluZyB1cCBzb21lIGtpbmQgb2YgcGlja2VyIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uLlxyXG4gKiBcclxuICogRm9yIG5vdywganVzdCBnb2luZyB3aXRoIFJHQiBzbGlkZXJzIGFzIEkgc2hvdWxkbid0IHNwZW5kIHRvbyBsb25nIG9uIHRoaXMgQVRNLFxyXG4gKiBidXQgdmVyeSB0ZW1wdGVkIGJ5IHByb3NwZWN0IG9mIGFuIEhTIHNxdWFyZSB3aXRoIFYgc2xpZGVyLi4uIFxyXG4gKiBvciBIIHNsaWRlciBhbmQgU1Ygc3F1YXJlIHdoaWNoIHNlZW1zIHRvIGJlIHdoYXQgZGF0Lmd1aSB1c2VzLlxyXG4gKiBPciBzb21ldGhpbmcgZmFuY2llciBsaWtlIGEgaHVlIGNpcmNsZSBhcm91bmQgYW4gU1YgdHJpYW5nbGUgZXRjIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbi8vc25pcHBldCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9odWdoc2svZ2xzbC1oc3YycmdiL2Jsb2IvbWFzdGVyL2luZGV4Lmdsc2xcclxuLy8obm90IGdvaW5nIHRvIHRoZSBsZW5ndGhzIG9mIGdsc2xpZnksIGp1c3QgY29weWluZyB0aGUgZnVuY3Rpb24pXHJcbmNvbnN0IGhzdjJyZ2IgPSBgXHJcbnZlYzMgaHN2MnJnYih2ZWMzIGMpIHtcclxuICAgIHZlYzQgSyA9IHZlYzQoMS4wLCAyLjAgLyAzLjAsIDEuMCAvIDMuMCwgMy4wKTtcclxuICAgIHZlYzMgcCA9IGFicyhmcmFjdChjLnh4eCArIEsueHl6KSAqIDYuMCAtIEsud3d3KTtcclxuICAgIHJldHVybiBjLnogKiBtaXgoSy54eHgsIGNsYW1wKHAgLSBLLnh4eCwgMC4wLCAxLjApLCBjLnkpO1xyXG59YDtcclxuXHJcbmNvbnN0IFZlcnRTaGFkZXIgPSBgXHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2VXYgPSB1djtcclxuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuKTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgU1ZGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZlYzMgaHN2ID0gdmVjMyhzZWxlY3RlZEhTVi54LCB2VXYpO1xyXG5cclxuICAgIC8vIGRyYXcgYSBibGFjayBjaXJjbGUgYXJvdW5kIHNlbGVjdGVkIFNWLlxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBsZXNzIGhvdXNla2VlcGluZ1xyXG4gICAgLy8gbmVlZCB0byBrbm93IGFzcGVjdCByYXRpbyBpZiBJIHdhbnQgaXQgdG8gYmUgYSBwcm9wZXIgY2lyY2xlLCB0aG91Z2guXHJcbiAgICBmbG9hdCBkID0gbGVuZ3RoKHNlbGVjdGVkSFNWLnl6IC0gdlV2KTtcclxuICAgIGlmIChkIDwgMC4wMTUgJiYgZCA+IDAuMDEpIGhzdi56ID0gMC47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYihoc3YpO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBIU2xpZGVyRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICAvLyBkcmF3IGEgcmVjdGFuZ3VsYXIgaW5kaWNhdG9yIGFyb3VuZCBzZWxlY3RlZCBIXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIHNpbXBsZXJcclxuICAgIGZsb2F0IGRpc3QgPSBhYnMoc2VsZWN0ZWRIU1YueCAtIHZVdi54KTtcclxuICAgIGJvb2wgaW5kaWNhdG9yID0gZGlzdCA8IDAuMDEgJiYgZGlzdCA+IDAuMDA1O1xyXG4gICAgZmxvYXQgdiA9IGluZGljYXRvciA/IDAuIDogMS47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYih2ZWMzKHZVdi54LCAxLiwgdikpO1xyXG4gICAgXHJcbn1cclxuYDtcclxuXHJcbi8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTcyNDIxNDQvamF2YXNjcmlwdC1jb252ZXJ0LWhzYi1oc3YtY29sb3ItdG8tcmdiLWFjY3VyYXRlbHlcclxuLy93aHkgbm90IHVzZSBUSFJFRS5Db2xvciBtZXRob2RzP1xyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogaCAgT2JqZWN0ID0ge2g6eCwgczp5LCB2Onp9XHJcbiAqIE9SIFxyXG4gKiBoLCBzLCB2XHJcbiovXHJcbmZ1bmN0aW9uIEhTVnRvUkdCKGgsIHMsIHYpIHtcclxuICAgIHZhciByLCBnLCBiLCBpLCBmLCBwLCBxLCB0O1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAvL2hhY2sgdG8gdGFrZSBUSFJFRS5WZWN0b3IzLi4uXHJcbiAgICAgICAgaWYgKGgueCAhPT0gdW5kZWZpbmVkKSBzID0gaC55LCB2ID0gaC56LCBoID0gaC54O1xyXG4gICAgICAgIGVsc2UgcyA9IGgucywgdiA9IGgudiwgaCA9IGguaDtcclxuICAgIH1cclxuICAgIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIGYgPSBoICogNiAtIGk7XHJcbiAgICBwID0gdiAqICgxIC0gcyk7XHJcbiAgICBxID0gdiAqICgxIC0gZiAqIHMpO1xyXG4gICAgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcclxuICAgIHN3aXRjaCAoaSAlIDYpIHtcclxuICAgICAgICBjYXNlIDA6IHIgPSB2LCBnID0gdCwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTogciA9IHEsIGcgPSB2LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyOiByID0gcCwgZyA9IHYsIGIgPSB0OyBicmVhaztcclxuICAgICAgICBjYXNlIDM6IHIgPSBwLCBnID0gcSwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDogciA9IHQsIGcgPSBwLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA1OiByID0gdiwgZyA9IHAsIGIgPSBxOyBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcjogcixcclxuICAgICAgICBnOiBnLFxyXG4gICAgICAgIGI6IGJcclxuICAgIH07XHJcbn1cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIHIgIE9iamVjdCA9IHtyLCBnLCBifVxyXG4gKiBPUiBcclxuICogciwgZywgYlxyXG4qL1xyXG5mdW5jdGlvbiBSR0J0b0hTVihyLCBnLCBiKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGcgPSByLmcsIGIgPSByLmIsIHIgPSByLnI7XHJcbiAgICB9XHJcbiAgICB2YXIgbWF4ID0gTWF0aC5tYXgociwgZywgYiksIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpLFxyXG4gICAgICAgIGQgPSBtYXggLSBtaW4sXHJcbiAgICAgICAgaCxcclxuICAgICAgICBzID0gKG1heCA9PT0gMCA/IDAgOiBkIC8gbWF4KSxcclxuICAgICAgICB2ID0gbWF4O1xyXG5cclxuICAgIHN3aXRjaCAobWF4KSB7XHJcbiAgICAgICAgY2FzZSBtaW46IGggPSAwOyBicmVhaztcclxuICAgICAgICBjYXNlIHI6IGggPSAoZyAtIGIpICsgZCAqIChnIDwgYiA/IDY6IDApOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGc6IGggPSAoYiAtIHIpICsgZCAqIDI7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgYjogaCA9IChyIC0gZykgKyBkICogNDsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBoOiBoLFxyXG4gICAgICAgIHM6IHMsXHJcbiAgICAgICAgdjogdiwgXHJcbiAgICAgICAgeDogaCwgeTogcywgejogdiAvL3NvIHRoYXQgd2UgY2FuIGRvIFZlY3RvcjMuY29weSh0aGlzKVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ29sb3JQaWNrZXIoIHtcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSwgLy9tdXN0IGJlIGEgVEhSRUUuQ29sb3IgZm9yIG5vdy4uLiBzaG91bGQgcmVmZXIgdG8gb3JpZ2luYWwgZGF0Lmd1aSB0byBzZWUgd2hhdCBpdCB0YWtlc1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCAvIDMuXHJcbn0gPSB7fSkge1xyXG4gICAgLy8gbWFrZSB0aGUgbWFpbiBncm91cCBiZSAqZGlyZWN0bHkqIHRoZSBvbmUgcmV0dXJuZWQgYnkgY3JlYXRlSW1hZ2VCdXR0b247XHJcbiAgICAvLyB3ZSdsbCB0YWtlIGNhcmUgb2YgZHluYW1pY2FsbHkgYWRkaW5nIGFuZCByZW1vdmluZyBjaGlsZHJlbiBiYXNlZCBvbiBhdHRhY2hlZC4uLlxyXG4gICAgLy8gd2lsbCB3YW50IHRvIHRoaW5rIGFib3V0IGxpc3RlbmVyIGZ1bmN0aW9ucyBldGMuXHJcbiAgICBsZXQgZnVuYyA9IHRvZ2dsZURldGFpbFBhbmVsO1xyXG4gICAgbGV0IGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07IC8vZm9yIG5vdywgdGhpcydkIGJldHRlciBiZSBhIFRIUkVFLkNvbG9yIG9yIHdlJ2xsIGZyZWFrIG91dC5cclxuICAgIGNvbnN0IGMgPSBSR0J0b0hTVihjb2xvcik7XHJcbiAgICBjb25zdCB1bmlmb3JtcyA9IHtzZWxlY3RlZEhTVjoge3ZhbHVlOiBuZXcgVEhSRUUuVmVjdG9yMyhjLmgsIGMucywgYy52KX19O1xyXG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiBjb2xvcn0pO1xyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGNvbnN0IGNoYW5nZUNvbG9yT25Ib3ZlciA9IGZhbHNlO1xyXG4gICAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICAgICAgbGlzdGVuOiBmYWxzZVxyXG4gICAgfTtcclxuICAgIC8vVE9ETyBtYWtlIHN1cmUgY29sb3IgcGF0Y2ggb2NjdXBpZXMgZnVsbCB3aWR0aC4gIEFkZCB0ZXh0IGxhYmVsIHdpdGggaGV4IHZhbHVlP1xyXG4gICAgY29uc3QgZ3JvdXAgPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgICAgdGV4dENyZWF0b3IsIGZ1bmMsIGltYWdlLCBwcm9wZXJ0eU5hbWUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBjaGFuZ2VDb2xvck9uSG92ZXJcclxuICAgIH0pO1xyXG4gICAgZ3JvdXAuZ3VpVHlwZSA9IFwiQ29sb3JQaWNrZXJcIjtcclxuICAgIFxyXG4gICAgdmFyIHBhbmVsO1xyXG5cclxuICAgIGZ1bmN0aW9uIGNoYW5nZUZuKCkge1xyXG4gICAgICAgIGltYWdlLmNvbG9yLnNldChjb2xvcik7XHJcbiAgICAgICAgZXZlbnRzLmVtaXQoJ29uQ2hhbmdlJywgY29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhbmN5UGFuZWwgPSB0cnVlO1xyXG5cclxuICAgIGZ1bmN0aW9uIHNldFBhbmVsUG9zaXRpb24oKSB7XHJcbiAgICAgICAgaWYgKCFwYW5lbCkgcmV0dXJuO1xyXG4gICAgICAgIHBhbmVsLnBvc2l0aW9uLnNldCgwLCAwLCA1KmRlcHRoKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB0b2dnbGVEZXRhaWxQYW5lbCgpIHtcclxuICAgICAgICBpZiAocGFuZWwpIHtcclxuICAgICAgICAgICAgcGFuZWwudmlzaWJsZSA9ICFwYW5lbC52aXNpYmxlO1xyXG4gICAgICAgICAgICBpZiAocGFuZWwudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gd291bGQgYmUgaGFuZHkgdG8gaGF2ZSBhIHdheSB0byBtYWtlIG5hcnJvd2VyIHBhbmVsXHJcbiAgICAgICAgICAgIHBhbmVsID0gZGF0LkdVSVZSLmNyZWF0ZShcIkNvbG9yIENob29zZXJcIik7IFxyXG4gICAgICAgICAgICBwYW5lbC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAoZmFuY3lQYW5lbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgU1ZNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogU1ZGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNldFNWID0gKHApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS55ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueiA9IHAubG9jYWxQb2ludC55O1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBsZXQgd2lkZSA9IHRydWUsIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSC8xMDtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRTViwgU1ZNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX1dJRFRIIC8gMiwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IEhNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogSFNsaWRlckZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0SChwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueCA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAvL1RPRE86IGNoZWNrIGxheW91dFxyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldEgsIEhNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX0hFSUdIVCwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ3InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdnJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnYicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncm91cC5hZGQocGFuZWwpO1xyXG4gICAgICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHBhbmVsLmZvbGRlciA9IGdyb3VwLmZvbGRlcjsgLy9taWdodCBzdGlsbCB3YW50IHRvIGRvdWJsZSBjaGVjayBmb2xkZXIgaGllcmFyY2h5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgZXZlbnRzLm9uKCdvbkNoYW5nZScsIGNhbGxiYWNrKTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3JpZ2luYWxVcGRhdGVDb250cm9sID0gZ3JvdXAudXBkYXRlQ29udHJvbDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICkge1xyXG4gICAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIG9yaWdpbmFsVXBkYXRlQ29udHJvbChpbnB1dE9iamVjdHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKSB7XHJcbiAgICAgICAgLy9vYmplY3QgcmVmIG1pZ2h0IGhhdmUgY2hhbmdlZCwgYXMgd2VsbCBhcyB2YWx1ZS5cclxuICAgICAgICAvL2V2ZW4gaWYgcmVmIGhhc24ndCBjaGFuZ2VkLCB2YWx1ZSBzdGlsbCBtaWdodCd2ZSwgYW5kIHdlJ3JlIG5vdCBjdXJyZW50bHkgcmVmbGVjdGluZyB0aGF0LlxyXG4gICAgICAgIGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgaW1hZ2UuY29sb3IuY29weShjb2xvcik7XHJcbiAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUuY29weShSR0J0b0hTVihjb2xvcikpO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAubGlzdGVuID0gKCkgPT4ge1xyXG4gICAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1IgPSAweDJGQTFENjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9DT0xPUiA9IDB4NDNiNWVhO1xyXG5leHBvcnQgY29uc3QgSU5URVJBQ1RJT05fQ09MT1IgPSAweDA3QUJGNztcclxuZXhwb3J0IGNvbnN0IEVNSVNTSVZFX0NPTE9SID0gMHgyMjIyMjI7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfRU1JU1NJVkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IE9VVExJTkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDSyA9IDB4MDYwNjA2O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT0xERVJfQkFDSyA9IDB4MTAxMDEwO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0JBQ0sgPSAweDMxMzEzMTtcclxuZXhwb3J0IGNvbnN0IElOQUNUSVZFX0NPTE9SID0gMHgxNjE4Mjk7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1NMSURFUiA9IDB4MmZhMWQ2O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9DSEVDS0JPWCA9IDB4ODA2Nzg3O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9CVVRUT04gPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfVEVYVCA9IDB4MWVkMzZmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9EUk9QRE9XTiA9IDB4ZmZmMDAwO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0ZHX0NPTE9SID0gMHgwMDAwMDA7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0NPTE9SID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fSElHSExJR0hUX0NPTE9SID0gMHhmYTMxNzM7XHJcbmV4cG9ydCBjb25zdCBTTElERVJfQkcgPSAweDQ0NDQ0NDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfQkcgPSAweEYwRjBGMDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfSElHSExJR0hUX0JHID0gMHhGRkZGRkY7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sb3JpemVHZW9tZXRyeSggZ2VvbWV0cnksIGNvbG9yICl7XHJcbiAgY29uc3QgY29sID0gbmV3IFRIUkVFLkNvbG9yKGNvbG9yKTsgXHJcbiAgbGV0IGMgPSBnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ2NvbG9yJyk7XHJcbiAgbGV0IGE7XHJcbiAgaWYgKCFjKSB7XHJcbiAgICBhID0gbmV3IEZsb2F0MzJBcnJheShnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXkubGVuZ3RoKS5maWxsKDAuNSk7XHJcbiAgICBjID0gZ2VvbWV0cnkuc2V0QXR0cmlidXRlKCdjb2xvcicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoYSwgMykpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBhID0gYy5hcnJheTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSs9Mykge1xyXG4gICAgYVtpXSA9IGNvbC5yO1xyXG4gICAgYVtpKzFdID0gY29sLmc7XHJcbiAgICBhW2krMl0gPSBjb2wuYjtcclxuICB9XHJcbiAgYy5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIC8vIGdlb21ldHJ5LmZhY2VzLmZvckVhY2goIGZ1bmN0aW9uKGZhY2Upe1xyXG4gIC8vICAgZmFjZS5jb2xvci5zZXRIZXgoY29sb3IpO1xyXG4gIC8vIH0pO1xyXG4gIC8vIGdlb21ldHJ5LmNvbG9yc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIHJldHVybiBnZW9tZXRyeTtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsLCB7Y3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gXCIuL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVEcm9wZG93bigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICBvcHRpb25zID0gW10sXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgb3BlbjogZmFsc2UsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgRFJPUERPV05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9ERVBUSCA9IGRlcHRoO1xyXG4gIGNvbnN0IERST1BET1dOX09QVElPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOICogMS4yO1xyXG4gIGNvbnN0IERST1BET1dOX01BUkdJTiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAtMC40O1xyXG4gIGNvbnN0IE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZHJvcGRvd25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIC8vYWxsb3cgZm9yIHByb2dyYW1tYXRpYyBzZXQuIEFQSSBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgc3RhYmxlLlxyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZU9iamVjdCA9IG9iamVjdDtcclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VQcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7XHJcbiAgZ3JvdXAudXNlckRhdGEuc2V0VmFsdWUgPSB2ID0+IHtcclxuICAgIGlmIChvcHRpb25zLmluZGV4T2YodikgPT09IC0xKSB7XHJcbiAgICAgIC8vSSBjb3VsZCBjb25zaWRlciBhbm5vdGF0aW5nIEdVSSBpdHNlbGYgd2l0aCBlcnJvciBsYWJlbHMuLi5cclxuICAgICAgY29uc29sZS53YXJuKGBkYXQuR1VJVlI6IFVua25vd24gb3B0aW9uIFwiJHt2fVwiIGZvciBkcm9wZG93biBcIiR7cHJvcGVydHlOYW1lfVwiLlxcblZhbGlkIG9wdGlvbnM6IFske29wdGlvbnMuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gdjtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Iob2JqZWN0W3Byb3BlcnR5TmFtZV0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICBncm91cC5oaXRzY2FuID0gWyBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBtb2RhbERyb3Bkb3duID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgbW9kYWxEcm9wZG93bi52aXNpYmxlID0gZmFsc2U7XHJcbiAgbW9kYWxEcm9wZG93bi5oaXRzY2FuID0gW107XHJcbiAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbnMgPSBbXTtcclxuICBjb25zdCBvcHRpb25MYWJlbHMgPSBbXTtcclxuXHJcbiAgLy8gIGZpbmQgYWN0dWFsbHkgd2hpY2ggbGFiZWwgaXMgc2VsZWN0ZWRcclxuICBjb25zdCBpbml0aWFsTGFiZWwgPSBmaW5kTGFiZWxGcm9tUHJvcCgpO1xyXG5cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGZpbmRMYWJlbEZyb21Qcm9wKCl7XHJcbiAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgIHJldHVybiBvcHRpb25zLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbk5hbWUgPT09IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMob3B0aW9ucykuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb2JqZWN0W3Byb3BlcnR5TmFtZV0gPT09IG9wdGlvbnNbIG9wdGlvbk5hbWUgXTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVPcHRpb24oIGxhYmVsVGV4dCwgaXNPcHRpb24gKXtcclxuICAgIC8vVE9ETzogdHJ1bmNhdGUgbG9uZyBsYWJlbFRleHQsIG1heWJlIHNob3cgZnVsbCB2ZXJzaW9uIHdoZW4gaG92ZXJpbmcuXHJcbiAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZVRleHRMYWJlbChcclxuICAgICAgdGV4dENyZWF0b3IsIGxhYmVsVGV4dCxcclxuICAgICAgLy9jaGVjayB3aWR0aCB2YWx1ZS4uLlxyXG4gICAgICBEUk9QRE9XTl9XSURUSCwgZGVwdGgsXHJcbiAgICAgIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SLFxyXG4gICAgICAwLjg2NlxyXG4gICAgKTtcclxuICAgIGxhYmVsLmJhY2suZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbC5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuXHJcbiAgICBpZiAoaXNPcHRpb24pIG1vZGFsRHJvcGRvd24uaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBlbHNlIGdyb3VwLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBsYWJlbC5iYWNrICk7XHJcbiAgICBsYWJlbEludGVyYWN0aW9uLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMucHVzaCggbGFiZWxJbnRlcmFjdGlvbiApO1xyXG4gICAgb3B0aW9uTGFiZWxzLnB1c2goIGxhYmVsICk7XHJcblxyXG5cclxuICAgIGlmKCBpc09wdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggbGFiZWxUZXh0ICk7XHJcblxyXG4gICAgICAgIGxldCBwcm9wZXJ0eUNoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBvbkNoYW5nZWRDQiAmJiBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgIG9uQ2hhbmdlZENCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggb25DaG9vc2VDQiApe1xyXG4gICAgICAgICAgb25DaG9vc2VDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIGlmKCBzdGF0ZS5vcGVuID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgb3Blbk9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGxhYmVsLmlzT3B0aW9uID0gaXNPcHRpb247XHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjb2xsYXBzZU9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5jbGVhck1vZGFsRWRpdG9yKCk7IC8vc2hvdWxkIHdlIGNoZWNrIGlmIGl0IHdhc24ndCBzZXQgdG8gc29tZXRoaW5nIGVsc2U/P1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3Blbk9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSB0cnVlO1xyXG4gICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKG1vZGFsRHJvcGRvd24pO1xyXG4gICAgLy9yZXR1cm47XHJcbiAgICAvL2xhYmVsLmlzT3B0aW9uIHNlZW1zIG1vc3RseSByZWR1bmRhbnQuXHJcbiAgICAvL2xhYmVscyAmIGJhY2tzIHNob3VsZCBiZSBhZGRlZCB0byBhIGdyb3VwIHRvIGJlIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIFxyXG4gICAgLy9tYWtpbmcgZXZlcnl0aGluZyB2aXNpYmxlIC8gaW52aXNpYmxlIHdpdGggb25lIHByb3BlcnR5XHJcbiAgICAvLyhuYiwgZXZlbiB0aG91Z2ggdGhleSBhcmUgbm93IGluIGEgZ3JvdXAgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgd2Ugc3RpbGwgbmVlZCB0byBzZXQgdmlzaWJsZS4uLlxyXG4gICAgLy9zZWUgY29tbWVudCBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSlcclxuICAgIG9wdGlvbkxhYmVscy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWwgKXtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgbGFiZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgbGFiZWwuYmFjay52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAgYmFzZSBvcHRpb25cclxuICBjb25zdCBzZWxlY3RlZExhYmVsID0gY3JlYXRlT3B0aW9uKCBpbml0aWFsTGFiZWwgfHwgJyAnLCBmYWxzZSApO1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICBjb25zdCBkb3duQXJyb3cgPSBHcmFwaGljLmRvd25BcnJvdygpO1xyXG4gIC8vIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIERST1BET1dOX1dJRFRIIC0gMC4wNCwgMCwgZGVwdGggKiAxLjAxICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gY29uZmlndXJlTGFiZWxQb3NpdGlvbiggbGFiZWwsIGluZGV4ICl7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi55ID0gLURST1BET1dOX01BUkdJTiAtIChpbmRleCVNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTisxKSAqICggRFJPUERPV05fT1BUSU9OX0hFSUdIVCApO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueCArPSBEUk9QRE9XTl9XSURUSCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTik7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcHRpb25Ub0xhYmVsKCBvcHRpb25OYW1lLCBpbmRleCApe1xyXG4gICAgY29uc3Qgb3B0aW9uTGFiZWwgPSBjcmVhdGVPcHRpb24oIG9wdGlvbk5hbWUsIHRydWUgKTtcclxuICAgIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIG9wdGlvbkxhYmVsLCBpbmRleCApO1xyXG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQobW9kYWxEcm9wZG93bik7XHJcbiAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoLi4ub3B0aW9ucy5tYXAob3B0aW9uVG9MYWJlbCkpO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoIC4uLk9iamVjdC5rZXlzKG9wdGlvbnMpLm1hcCggb3B0aW9uVG9MYWJlbCApICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29sbGFwc2VPcHRpb25zKCk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0RST1BET1dOICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcblxyXG4gIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggRFJPUERPV05fV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgRFJPUERPV05fSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUsIERST1BET1dOX0RFUFRILCB0cnVlICk7XHJcbiAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBjb250cm9sbGVySUQsIHNlbGVjdGVkTGFiZWwsIGJvcmRlckJveCApO1xyXG5cclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGludGVyYWN0aW9uLCBpbmRleCApe1xyXG4gICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbkxhYmVsc1sgaW5kZXggXTtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlOyAvL2FzIG9mIHRoaXMgd3JpdGluZywgdGhpcyBpcyBiZWxpZXZlZCB0byBiZSByZWxpYWJsZSwgYnV0IGJld2FyZSBkcmFnb25zLCBmdXR1cmUgcmVhZGVyLlxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLnRpcE9iaikge1xyXG4gICAgICAvLyBpZiAobGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSkge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGdyb3VwLnVzZXJEYXRhLnRpcCk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgc2V0VmlzaWJpbGl0eShwYW5lbCwgZ3JvdXAudXNlckRhdGEudGlwT2JqLCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKTtcclxuICAgIH1cclxuICAgIGlmKCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpIHx8IHN0YXRlLm9wZW4gKXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuICBsZXQgb25DaG9vc2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5vbkNob29zZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaG9vc2VDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGZpbmRMYWJlbEZyb21Qcm9wKCkgKTtcclxuICAgIH1cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbEludGVyYWN0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICBjb25zdCBvYmogPSBncm91cDtcclxuICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgIC8vbmIsIG9iai5zcGFjaW5nIG1heSBiZSB1bmRlZmluZWQsIGJ1dCBzaG91bGQgbm93IGhhdmUgc2Vuc2libGUgZGVmYXVsdC5cclxuICAgIG9iai51c2VyRGF0YS50aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgIC8vLy8tLS0gc2VlIGxhYmVsSW50ZXJhY3Rpb25zWzBdIGFib3ZlIGZvciBoYW5kbGluZyB1cGRhdGUuLi5cclxuICB9XHJcbiAgZ3JvdXAuZ2V0VG9vbFRpcCA9ICgpID0+IGdyb3VwLnVzZXJEYXRhLnRpcDtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlVG9vbFRpcCB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciwgc2V0Qm94RnJvbU9iamVjdCwgc2V0VmlzaWJpbGl0eSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBGT0xERVJfV0lEVEggfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG4vL0lmIHlvdSdyZSBsb29raW5nIGZvciBtYWluIGNyZWF0ZUZvbGRlciBmdW5jdGlvbiwgaXQncyBmdXJ0aGVyIGJlbG93Li4uXHJcblxyXG4vKipcclxuICogTm90IGVudGlyZWx5IHN1cmUgYWJvdXQgc3RhcnRpbmcgdG8gYWRkIHRoaXMga2luZCBvZiBnbG9iYWwgc3RhdGUgbWFuYWFnZW1lbnQgaGVyZS4uLlxyXG4gKiBUaGlzIGlzIGZvciB6LW9yZGVyIGluIDJkIG9ydGhvZ3JhcGhpYyBtb2RlLCBhbmQgbWF5YmUgc29tZSBvdGhlciB0aGluZ3Mgb25lIGRheS5cclxuICovXHJcbmNvbnN0IHRvcEZvbGRlclN0YWNrID0gW107XHJcblxyXG5jb25zdCBzY3JhdGNoRm9sZGVyQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaENhbUJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hTaXplID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpIHtcclxuICBjb25zdCBjYW0gPSB0b3BGb2xkZXJTdGFja1swXS51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICBpZiAoIWNhbSB8fCB0b3BGb2xkZXJTdGFjay5sZW5ndGggPD0gMSkgcmV0dXJuO1xyXG4gIC8vY2FtQm94U2V0dXAoY2FtKTtcclxuICBjb25zdCB0ZnMgPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoeCA9PiB4LnZpc2libGUpO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRmcy5sZW5ndGg7XHJcbiAgY29uc3QgenMgPSB0ZnMubWFwKGYgPT4gZi5wb3NpdGlvbi56KS5zb3J0KChhLGIpPT5hLWIpO1xyXG4gIHpzWy0xXSA9IC05OTk5OyAvLyBJIHN1cHBvc2UgdGhpcyBpcyB0byBkZWFsIHdpdGggYWNjZXNzaW5nIHpzW2ktMV0gYmVsb3cgwq9cXF8o44OEKV8vwq9cclxuICB6cy5mb3JFYWNoKCAoeixpKSA9PiB6c1tpXSA9IE1hdGgubWF4KHpzW2ldLCB6c1tpLTFdICsgMTAqTGF5b3V0LlBBTkVMX0RFUFRIKSk7IC8vIGluIGNhc2Ugb2YgZXF1YWxzXHJcbiAgXHJcbiAgdGZzLmZvckVhY2goKGYsIGkpID0+IHtcclxuICAgIC8vbGV0IHogPSAtMC45KmZhciArIGkqMTAqTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG4gICAgY29uc3QgeiA9IHpzW2ldO1xyXG4gICAgaWYgKHogIT09IGYucG9zaXRpb24ueikge1xyXG4gICAgICBmLnBvc2l0aW9uLnogPSB6O1xyXG4gICAgICBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICBmLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKHRmc1tuLTFdLnBvc2l0aW9uLnogPj0gbmVhciAtIExheW91dC5QQU5FTF9ERVBUSCkge1xyXG4gICAgY29uc29sZS5sb2coXCJHVUlWUiBXYXJuaW5nOiBsaWtlbHkgcHJvYmxlbSB3aXRoIHotb3JkZXIgaW4gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0XCIpO1xyXG4gIH1cclxuICAvL2NvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lICsgJ1xcdDogJyArIGYucG9zaXRpb24ueikuam9pbignXFxuJyl9XWApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYW1Cb3hTZXR1cChjYW0pIHtcclxuICBpZiAoIWNhbS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkgcmV0dXJuO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRvcEZvbGRlclN0YWNrLmxlbmd0aDtcclxuICBjb25zdCBsID0gY2FtLmxlZnQsIHIgPSBjYW0ucmlnaHQsIHQgPSBjYW0udG9wLCBiID0gY2FtLmJvdHRvbTtcclxuICBjb25zdCB6ID0gY2FtLnBvc2l0aW9uLno7IC8vbm90IHN0cmljdGx5IHJpZ2h0Li4uXHJcbiAgc2NyYXRjaENhbUJveC5taW4uc2V0KGwsIGIsIC1mYXIgKyB6KTtcclxuICBzY3JhdGNoQ2FtQm94Lm1heC5zZXQociwgdCwgLW5lYXIgKyB6KTtcclxuICByZXR1cm4gc2NyYXRjaENhbUJveDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRm9sZGVyKHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBuYW1lLFxyXG4gIGd1aUFkZCxcclxuICBndWlSZW1vdmUsXHJcbiAgYWRkQ29udHJvbGxlckZ1bmNzLFxyXG4gIGdsb2JhbENvbnRyb2xsZXJzXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCB3aWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgY29uc3QgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEg7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgY29sbGFwc2VkOiBmYWxzZSxcclxuICAgIHByZXZpb3VzUGFyZW50OiB1bmRlZmluZWRcclxuICB9O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImZvbGRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke25hbWV9XWA7XHJcblxyXG4gIGNvbnN0IGNvbGxhcHNlR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5hZGQoIGNvbGxhcHNlR3JvdXAgKTtcclxuXHJcbiAgdmFyIGlzQWNjb3JkaW9uID0gZmFsc2U7XHJcbiAgLyoqIFdoZW4gdHJ1ZSwgd2lsbCBrZWVwIG9ubHkgb25lIGNoaWxkIGZvbGRlciBvZiB0aGlzIGZvbGRlciBvcGVuIGF0IGEgdGltZS5cclxuICAgKiBTaWJsaW5ncyBhdXRvbWF0aWNhbGx5IGNsb3NlLlxyXG4gICAqL1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdhY2NvcmRpb24nLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzQWNjb3JkaW9uO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKCBuZXdWYWx1ZSAmJiAhaXNBY2NvcmRpb24gKSBncm91cC5ndWlDaGlsZHJlbi5maWx0ZXIoIGM9PmMuaXNGb2xkZXIgKS5tYXAoIGM9PmMuY2xvc2UoKSApO1xyXG4gICAgICBpc0FjY29yZGlvbiA9IG5ld1ZhbHVlO1xyXG4gICAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIC8vZmxhZyB0aGUgbmVlZCBmb3IgcGVyZm9ybWluZyBsYXlvdXQgb2YgdGhlIGZvbGRlciBoaWVyYXJjaHkgaW4gd2hpY2ggdGhpcyBpcyBjb250YWluZWQuXHJcbiAgZ3JvdXAucmVxdWVzdExheW91dCA9ICgpID0+IHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICh0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcykge1xyXG4gICAgICBjb25zb2xlLmxvZyhgcmVxdWVzdGVkIGxheW91dCBvZiBmb2xkZXIgJHtncm91cC5mb2xkZXJOYW1lfSB3aGlsZSBsYXlvdXQgYWxyZWFkeSBpbiBwcm9ncmVzcy4uLmApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vdG9wRm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL3Nob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIGluZGV4LmpzIHVwZGF0ZSg/KSBmb3IgZWFjaCB0b3BGb2xkZXIsIHRoZW4gZnJvbSB3aXRoaW4gcGVyZm9ybUxheW91dCgpIGZvciBlYWNoIGNoaWxkIGZvbGRlclxyXG4gIGdyb3VwLnBlcmZvcm1MYXlvdXQgPSBwZXJmb3JtTGF5b3V0O1xyXG5cclxuICBjb25zdCBzdHJhaWdodFJvdGF0aW9uID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcclxuICAvL3Byb3ZpZGUgYXJndW1lbnRzIGZvciBob3cgY29uc3RyYWluZWQgdG8gYmUsIGFuZCByZS11c2Ugc2FtZSBmdW5jdGlvbiBib3RoIG9uIGRldGFjaCBhbmQgZWxzZXdoZXJlP1xyXG4gIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uID0gZnVuY3Rpb24odGhyZXNoPTAuMDEpIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzO1xyXG4gICAgaWYgKCFmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSByZXR1cm47XHJcbiAgICAvL2Fsd2F5cyBmb3JjZSByb3RhdGlvbiBzdHJhaWdodCBmb3J3YXJkLi4uXHJcbiAgICBmLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oc3RyYWlnaHRSb3RhdGlvbik7XHJcblxyXG4gICAgLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbiAgICAvL21heWJlIEkgY291bGQgdXNlIGEgQm94MiBhbnl3YXkgc2luY2UgM2QgbWlnaHQganVzdCBjb25mdXNlIHRoaW5ncy5cclxuICAgIGNvbnN0IGJveCA9IHNldEJveEZyb21PYmplY3Qoc2NyYXRjaEZvbGRlckJveCwgZik7XHJcbiAgICBjb25zdCBib3hXID0gYm94Lm1heC54IC0gYm94Lm1pbi54LCBib3hIID0gYm94Lm1heC55LWJveC5tYXgueTtcclxuICAgIFxyXG4gICAgY29uc3QgY2FtID0gZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICAgIGNvbnN0IGNhbUJveCA9IGNhbUJveFNldHVwKGNhbSk7IC8vYml0IHdhc3RlZnVsIHRvIGNhbGwgdGhpcyBoZXJlLCBidXQgaW5zaWduaWZpY2FudC5cclxuICAgIC8vcmVhbGx5LCBJIHdhbnQgdG8ga25vdyBpZiBpdCdzICdtb3N0bHknIGludmlzaWJsZS5cclxuICAgIC8vVXNpbmcgdHdvIGJveGVzLCByYXRoZXIgdGhhbiBmcnVzdHVtLnNldEZyb21NYXRyaXgoIG1hdC5tdWx0aXBseU1hdHJpY2VzKCBjYW0ucHJvamVjdGlvbk1hdHJpeCwgY2FtLm1hdHJpeFdvcmxkSW52ZXJzZSApICk7XHJcbiAgICAvLyhmcnVzdHVtIGlzIHVubmVjZXNzYXJ5ICpjb3VnaCppZiB3ZSBhc3N1bWUgb3J0aG9ncmFwaGljIHBlcnNwZWN0aXZlLCBubyBjYW1lcmEgdHJhbnNmb3JtICYgYXJlIGdlbmVyYWxseSBsYXggYWJvdXQgeiopXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSBib3guaW50ZXJzZWN0KGNhbUJveCk7IC8vY2FyZWZ1bCBvZiBvcmRlcjsgaW50ZXJzZWN0KCkgbXV0YXRlc1xyXG4gICAgLy8oWFhYOiBzdHJpY3RseSBzcGVha2luZywgaWRlYWxseSBJIHdvdWxkIHRha2UgY2FtZXJhIG1hdHJpeFdvcmxkIGludG8gYWNjb3VudCBpZiBJIHdhbnQgdG8gYmUgcHJvcGVyKVxyXG4gICAgLy8obWlnaHQganVzdCBtYWtlIGxvZyBhIHdhcm5pbmcgaWYgaXQncyBzZXQgaG93IEkgZG9uJ3QgZXhwZWN0IGl0LCBidXQgcHJlZmVyIG5vdCB0byBsZWF2ZSB0cmFwcy4pXHJcbiAgICBcclxuICAgIC8vbG9vayBhdCBkaW1lbnNpb25zIG9mIGludGVyc2VjdGlvbiBhbmQgZm9yY2UgaW53YXJkcyBpZiBuZWNlc3NhcnkuLi5cclxuICAgIGNvbnN0IGludGVyc2VjdGlvblNpemUgPSBpbnRlcnNlY3Rpb24uZ2V0U2l6ZShzY3JhdGNoU2l6ZSk7XHJcbiAgICBjb25zdCBzY3JlZW5XID0gY2FtLnJpZ2h0IC0gY2FtLmxlZnQsIHNjcmVlbkggPSBjYW0udG9wIC0gY2FtLmJvdHRvbTtcclxuICAgIC8vd29yayBpbiB1bml0cyBhcyBmcmFjdGlvbiBvZiBib3ggd2lkdGggKGFsdGhvdWdoIHRoYXQncyBub3QgYSBncmVhdCBpZGVhIHdpdGggbXVsdGktY29sdW1uIGZvbGRlcnMpXHJcbiAgICBpbnRlcnNlY3Rpb25TaXplLnggLz0gYm94VzsgaW50ZXJzZWN0aW9uU2l6ZS55IC89IGJveFc7XHJcbiAgICBsZXQgbmVlZHNVcGRhdGUgPSBmYWxzZTtcclxuICAgIC8vY29uc29sZS5sb2coYCR7Zi5mb2xkZXJOYW1lfTogJHtKU09OLnN0cmluZ2lmeShpbnRlcnNlY3Rpb25TaXplKX0sIHRocmVzaDogJHt0aHJlc2h9YCk7XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS54IDwgdGhyZXNoKSB7IC8vVE9ETzogcGFyYW1hdGVyaXNlIC8gbm9uLW1hZ2ljLW51bWJlclxyXG4gICAgICAvL1RPRE8gd29yayBvdXQgd2hpY2ggc2lkZSB3ZSdyZSBvbiwgbW92ZSBieSBvYmplY3Qgd2lkdGguLi5cclxuICAgICAgZi5wb3NpdGlvbi54ID0gY2FtLmxlZnQgKyBzY3JlZW5XLzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnkgPCB0aHJlc2gpIHtcclxuICAgICAgZi5wb3NpdGlvbi55ID0gY2FtLmJvdHRvbSArIHNjcmVlbkgvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKG5lZWRzVXBkYXRlKSBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaXNDb2xsYXBzZWQgPSAoKSA9PiB7IHJldHVybiBzdGF0ZS5jb2xsYXBzZWQgfVxyXG4gIFxyXG4gIC8vdXNlZnVsIHRvIGhhdmUgYWNjZXNzIHRvIHRoaXMgYXMgd2VsbC4gVXNpbmcgaW4gcmVtb3ZlIGltcGxlbWVudGF0aW9uXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnZ3VpQ2hpbGRyZW4nLCB7XHJcbiAgICAvL3BlcmhhcHMgbW9kYWxFZGl0b3Igc2hvdWxkIGFsc28gY291bnQgYXMgYSBtZW1iZXIgb2YgdGhpcy4uLlxyXG4gICAgLy9jdXJyZW50bHkgY2FuJ3Qgc2VlIGFueXRoaW5nIGluIGltcGxlbWVudGF0aW9uIHRoYXQgd291bGQgcmVxdWlyZSB0aGF0XHJcbiAgICAvLy0tIGFkZGluZyBoZWFkZXJJdGVtcyB0aG91Z2gsIHNvIHRoZXknbGwgZ2V0IHBpY2tlZCB1cCBieSByZW1vdmUoKVxyXG4gICAgLy8gLSBtYXliZSBzYW1lIHNob3VsZCBhcHBseSB0byBtb2RhbEVkaXRvclxyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBbIC4uLmNvbGxhcHNlR3JvdXAuY2hpbGRyZW4sIC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIF0gfVxyXG4gIH0pO1xyXG4gIC8vIHJldHVybnMgdHJ1ZSBpZiBhbGwgb2YgdGhlIHN1cHBsaWVkIGFyZ3MgYXJlIG1lbWJlcnMgb2YgdGhpcyBmb2xkZXJcclxuICBncm91cC5oYXNDaGlsZCA9IGZ1bmN0aW9uICggLi4uYXJncyApe1xyXG4gICAgcmV0dXJuICFhcmdzLmluY2x1ZGVzKChvYmopID0+IHsgcmV0dXJuIGdyb3VwLmd1aUNoaWxkcmVuLmluZGV4T2Yob2JqKSA9PT0gLTF9KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmZvbGRlck5hbWUgPSBuYW1lOyAvL2ZvciBkZWJ1Z2dpbmdcclxuICBcclxuICAvLyAgWWVhaC4gR3Jvc3MuXHJcbiAgY29uc3QgYWRkT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkO1xyXG4gIC8vYXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyB0aGlzIHRvIGJlaGF2ZSBsaWtlIGEgcmVndWxhciBUSFJFRS5Hcm91cCwgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBvZiByZW1vdmUgc2hvdWxkbid0IGh1cnRcclxuICBjb25zdCByZW1vdmVPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmU7IFxyXG5cclxuICBmdW5jdGlvbiBhZGRJbXBsKCBvICl7XHJcbiAgICAvLyBJIGNvdWxkIGNoYW5nZSB0aGlzIGZ1bmN0aW9uIGFzIHBhcnQgb2YgYSByZWZhY3RvciB0byBwbGFjZSBldmVyeXRoaW5nIGF0IHRvcEZvbGRlciBsZXZlbC4uLlxyXG4gICAgLy8gaXMgdGhhdCBhIGdvb2QgaWRlYSwgb3IgYSBiYWQgaWRlYT9cclxuICAgIGFkZE9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHJlbW92ZUltcGwoIG8gKXtcclxuICAgIHJlbW92ZU9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG5cclxuICAvL2FkZEltcGwoIGNvbGxhcHNlR3JvdXAgKTsgLy9yZWR1bmRhbnQuXHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgYWRkSW1wbCggcGFuZWwgKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBuYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAxLjU7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsICk7XHJcblxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IExheW91dC5jcmVhdGVEb3duQXJyb3coKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCAweGZmZmZmZiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIDAuMDUsIDAsIGRlcHRoICAqIDEuMDEgKTtcclxuICBwYW5lbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuICBjb25zdCBncmFiYmVyID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9HUkFCX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBncmFiYmVyLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODY7IC8vWFhYOiBtYWdpYyBudW1iZXJcclxuICBncmFiYmVyLm5hbWUgPSAnZ3JhYmJlcic7XHJcbiAgYWRkSW1wbCggZ3JhYmJlciApO1xyXG5cclxuICBjb25zdCBncmFiQmFyID0gR3JhcGhpYy5ncmFiQmFyKCk7XHJcbiAgZ3JhYkJhci5wb3NpdGlvbi5zZXQoIHdpZHRoICogMC41LCAwLCBkZXB0aCAqIDEuMDAxICk7XHJcbiAgZ3JhYmJlci5hZGQoIGdyYWJCYXIgKTtcclxuICBncm91cC5pc0ZvbGRlciA9IHRydWU7XHJcbiAgZ3JvdXAuaGlkZUdyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gZmFsc2UgfTtcclxuICBncm91cC5zaG93R3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSB0cnVlIH07XHJcbiAgZ3JvdXAuaGlkZUhlYWRlciA9IGZ1bmN0aW9uKCkgeyBcclxuICAgIGdyb3VwLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAvL2Rlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgfTtcclxuICBncm91cC5zaG93SGVhZGVyID0gKCkgPT4ge1xyXG4gICAgLy9ncmFiYmVyLnZpc2libGUgPSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL1RPRE86IGludGVyZmFjZSBmb3IgYWRkaW5nIHRoaW5ncyB0byB0aGlzLi4uIE5PVCAnc2hvd0luRm9sZGVySGVhZGVyJyBtZXRob2QgLyBwcm9wZXJ0eSBvbiBsaW5lYXIgaXRlbXMuLi5cclxuICBjb25zdCBoZWFkZXJJdGVtcyA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHBhbmVsLmFkZChoZWFkZXJJdGVtcyk7XHJcbiAgLy90aGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byBtYWtlIG9iaiBiZWhhdmUgYXMgY29udHJvbGxlciBsYXllZCBvdXQgaW4gaGVhZGVySXRlbXMsXHJcbiAgLy9iYXNlZCBvbiBzb21lIGFzc3VtcHRpb25zIGFib3V0IG9iaiB0aGF0IG1heSBiZSB0cnVlIGF0IHRpbWUgb2Ygd3JpdGluZy4uLlxyXG4gIC8vYnV0IGFyZSBwZW5kaW5nIG1vcmUgcmlnb3JvdXMgc3BlY2lmaWNhdGlvbiAvIHJlZmFjdG9yaW5nIGV0Yy5cclxuICBncm91cC5hZGRIZWFkZXJJdGVtID0gZnVuY3Rpb24ob2JqKXtcclxuICAgIGhlYWRlckl0ZW1zLmFkZChvYmopO1xyXG4gICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgb2JqLmlzSGVhZGVyT2JqZWN0ID0gdHJ1ZTtcclxuXHJcbiAgICAvL2Fsc28gbmVlZCB0byBhZGQgdG8gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3QgZXRjLiBOQjo6IG1ha2Ugc3VyZSB0aGF0IHRoZXkgd2lsbCBnZXQgcmVtb3ZlZCBhcyB3ZWxsXHJcbiAgICAvLy0tLSB0aGlzIGdlbmVyaWMgaW50ZXJhY3Rpb24udXBkYXRlIGRvZXNuJ3QgbWFrZSBsaXN0ZW4oKSB3b3JrIHByb3Blcmx5LlxyXG4gICAgaWYgKCFvYmoudXBkYXRlQ29udHJvbCkgb2JqLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4gb2JqLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgb2JqLmhpdHNjYW4gPSBbIG9iaiBdOyAvL2hhY2t5IGhhY2t5XHJcbiAgICBnbG9iYWxDb250cm9sbGVycy5wdXNoKG9iaik7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogMHg4ODg4ODgsIHRyYW5zcGFyZW50OiB0cnVlfSk7XHJcbiAgY29uc3QgaCA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44O1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvblJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIGgsIGgsIExheW91dC5CVVRUT05fREVQVEgqMiApO1xyXG4gIC8vc29tZXdoYXQgYmFja3dhcmRzIHdheSBvZiBnZXR0aW5nIHRleHR1cmVzLi4uIFRPRE8gbWF5YmUgY2hhbmdlIChhbG9uZyB3aXRoIG90aGVyIHN0eWxlIGNvbnNpc3RlbmN5IHR5cGUgc3R1ZmYpXHJcbiAgY29uc3QgZG9ja1RleHR1cmUgPSBHcmFwaGljLmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgY29uc3QgdW5kb2NrVGV4dHVyZSA9IEdyYXBoaWMudW5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uID0gbmV3IFRIUkVFLk1lc2goICBkZXRhY2hCdXR0b25SZWN0LCBkZXRhY2hCdXR0b25NYXRlcmlhbCApO1xyXG4gIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gZmFsc2U7XHJcbiAgZGV0YWNoQnV0dG9uLnBvc2l0aW9uLnggPSBMYXlvdXQuRk9MREVSX1dJRFRIIC0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihkZXRhY2hCdXR0b24pO1xyXG4gIGRldGFjaEJ1dHRvbi5pbnRlcmFjdGlvbiA9IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uO1xyXG4gIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHtcclxuICAgICAgZ3JvdXAucmVhdHRhY2goKTtcclxuICAgIH0gZWxzZSBncm91cC5kZXRhY2goKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuICAvL2hlYWRlckl0ZW1zLmFkZChkZXRhY2hCdXR0b24pO1xyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0oZGV0YWNoQnV0dG9uKTtcclxuXHJcbiAgbGV0IGlzRGV0YWNoYWJsZSA9IGZhbHNlO1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdkZXRhY2hhYmxlJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0RldGFjaGFibGU7XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAobmV3VmFsdWUgPT09IGlzRGV0YWNoYWJsZSkgcmV0dXJuO1xyXG4gICAgICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgICBpc0RldGFjaGFibGUgPSBuZXdWYWx1ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGdyb3VwLmFkZCA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBjb25zdCBuZXdDb250cm9sbGVyID0gZ3VpQWRkKCAuLi5hcmdzICk7XHJcblxyXG4gICAgaWYoIG5ld0NvbnRyb2xsZXIgKXtcclxuICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggbmV3Q29udHJvbGxlciApO1xyXG4gICAgICByZXR1cm4gbmV3Q29udHJvbGxlcjtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgU29tZSBjb250cm9sbGVycyBtYXkgYnJpbmcgdXAgc3ViLUdVSXMgd2hpY2ggaGF2ZSB0aGUgcG90ZW50aWFsXHJcbiAgICB0byBvdmVybGFwIC8gY2xhc2guICBUaGlzIGVuc3VyZXMgb25seSBvbmUgaXMgcHJlc2VudCBhdCBhIHRpbWUuXHJcbiAgKi9cclxuICBncm91cC5zZXRNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKGUpe1xyXG4gICAgLy9UaGlzIGNvdWxkIGdvIHdyb25nIGlmIGZvbGRlciBoaWVyYXJjaHkgY2hhbmdlcyBzaWduaWZpY2FudGx5LlxyXG4gICAgLy9TaG91bGQgYmUgZ29vZCBlbm91Z2ggZm9yIHJvY2snbidyb2xsIChmYW1vdXMgbGFzdCB3b3JkcykuXHJcbiAgICAvL0kgY291bGQgbWFrZSBpdCBzbyB0aGF0IG9ubHkgb25lIG9mIHRoZXNlIHRoaW5ncyB3YXMgZXZlciB2aXNpYmxlXHJcbiAgICAvL2Fjcm9zcyB0aGUgZW50aXJlIHN5c3RlbS4gIFRoYXQgc2hvdWxkIGJlIGVhc2llciB0byBtYWtlIHJvYnVzdCwgYW55d2F5Li4uXHJcbiAgICAvL2FuZCBzYXZlcyBoZWFkYWNoZXMgZG93biB0aGUgbGluZS5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBlO1xyXG4gICAgaWYgKCFlKSByZXR1cm47XHJcbiAgICBlLnZpc2libGUgPSB0cnVlO1xyXG4gICAgaWYgKGUucGVyZm9ybUxheW91dCkgZS5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICBmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IHRydWU7XHJcbiAgICAvL2FkZCBhIGZsYWcgdG8gYWxsIGNoaWxkcmVuIHJlY3Vyc2l2ZWx5IHNvIHRoYXQgaW50ZXJhY3Rpb24gc3lzdGVtIGNhbiBpZGVudGlmeSB0aGVtIGFzIGJlbG9uZ2luZyB0byBhIG1vZGFsIGVkaXRvclxyXG4gICAgLy9UT0RPOiBza2lwIGlmIGFscmVhZHkgZG9uZS4uLlxyXG4gICAgZnVuY3Rpb24gZGVjb3JhdGVDaGlsZHJlbihwYXJlbnQpIHtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgYy51c2VyRGF0YS5wYXJ0T2ZNb2RhbCA9IGU7XHJcbiAgICAgICAgZGVjb3JhdGVDaGlsZHJlbihjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkZWNvcmF0ZUNoaWxkcmVuKGUpO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIGN1cnJlbnQgbW9kYWwgZWRpdG9yIGZyb20gdGhpcyBmb2xkZXJcclxuICAgKiAqKmJ1dCBub3QgaWYgaXQgd2FzIGFkZGVkIGR1cmluZyB0aGUgY3VycmVudCBjb250cm9sbGVyIHVwZGF0ZSxcclxuICAgKiBhcyBpbmRpY2F0ZWQgYnkgYSBmbGFnIHNldCBpbiBzZXRNb2RhbENvbnRyb2xsZXIgYW5kIHJlc2V0IGluIGluZGV4LmpzIHVwZGF0ZSoqXHJcbiAgICovXHJcbiAgZ3JvdXAuY2xlYXJNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKCFmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAvL2ZvbGRlci5zZXRNb2RhbEVkaXRvcihudWxsKTtcclxuICAgICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikge1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG5cclxuICAvKiBcclxuICBSZW1vdmVzIHRoZSBnaXZlbiBjb250cm9sbGVycyBmcm9tIHRoZSBHVUkuICA+Pj5PbmNlIHJlbW92ZWQsIHRoZSBjb250cm9sbGVycyB3aWxsIGVmZmVjdGl2ZWx5IGJlIGludmFsaWQgZm9yIHVzZTw8PFxyXG4gID4+PiBzbyBkaXNwb3NlIG9mIHRoZW0gYXMgd2VsbD8gTmVlZCB0byBiZSBjYXJlZnVsIGFib3V0IHRleHR1cmVzIC8gYW55dGhpbmcgc2hhcmVkLi4uIDw8PFxyXG4gIGFzIHRoZXkgd2lsbCBhbHNvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGRhdC5HVUlWUiBjb250cm9sbGVycy4gIFVzZSAnZGV0YWNoJyBpbnN0ZWFkIGlmIGl0IGlzXHJcbiAgZGVzaXJlZCB0byByZXVzZSBHVUkgZWxlbWVudHMgZWxzZXdoZXJlLlxyXG5cclxuICBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbnZhbGlkLCBpdCB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoaXMgYmVmb3JlIG1ha2luZyBhbnkgY2hhbmdlcywgXHJcbiAgYWJvcnRpbmcgdGhlIHByb2Nlc3MgYW5kIHJldHVybmluZyBmYWxzZSBmcm9tIHRoaXMgbWV0aG9kLlxyXG5cclxuICBOb3RlOiBhcyB3aXRoIGFkZCwgdGhpcyBvdmVyd3JpdGVzIGFuIGV4aXN0aW5nIHByb3BlcnR5IG9mIFRIUkVFLkdyb3VwLlxyXG4gIEFzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgZm9sZGVycyB0byBiZWhhdmUgbGlrZSByZWd1bGFyIFRIUkVFLkdyb3VwcywgdGhhdCBzaG91bGRuJ3QgbWF0dGVyLlxyXG4gICovXHJcbiAgZ3JvdXAucmVtb3ZlID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIC8vZ3VpUmVtb3ZlIGlzIHBhc3NlZCBpbiBmcm9tIGluZGV4LmpzIGFuZCBpcyByZXNwb25zaWJsZSBmb3Igc2FuaXR5IGNoZWNraW5nICYgcmVtb3ZpbmcgZnJvbSBnbG9iYWwgY29udHJvbGxlcnMgbGlzdFxyXG4gICAgY29uc3Qgb2sgPSBndWlSZW1vdmUoIC4uLmFyZ3MgKTsgLy8gYW55IGludmFsaWQgYXJndW1lbnRzIHNob3VsZCBjYXVzZSB0aGlzIHRvIHJldHVybiBmYWxzZSB3aXRoIG5vIHNpZGUtZWZmZWN0c1xyXG4gICAgaWYgKCFvaykgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGNvbnNvbGUuYXNzZXJ0KGdyb3VwLmhhc0NoaWxkKG9iaiksIFwiaW50ZXJuYWwgcHJvYmxlbSB3aXRoIGhvdXNla2VlcGluZyBsb2dpYyBvZiBkYXQuR1VJVlIgZm9sZGVyIG5vdCBjYXVnaHQgYnkgc2FuaXR5IGNoZWNrXCIpO1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgb2JqLnJlbW92ZSggLi4ub2JqLmd1aUNoaWxkcmVuICk7XHJcbiAgICAgIH1cclxuICAgICAgY29sbGFwc2VHcm91cC5yZW1vdmUob2JqKTtcclxuICAgIH0pO1xyXG4gICAgLy9UT0RPOiBkZWZlciBhY3R1YWwgbGF5b3V0IHBlcmZvcm1hbmNlOyBzZXQgYSBmbGFnIGFuZCBtYWtlIHN1cmUgaXQgZ2V0cyBkb25lIGJlZm9yZSBhbnkgcmVuZGVyaW5nIG9yIGhpdC10ZXN0aW5nIGhhcHBlbnMuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL3JhdGhlciB0aGFuIG1ldGhvZCwgZGV0YWNoZWRQYXJlbnQgYmUgYSBwcm9wZXJ0eSB0aGF0IGRvZXMgdGhpcyBzdHVmZiBpbiBzZXR0ZXIuLi5cclxuICAvL2FueXdheSwgYm90aCBhcmUgcmVhbGx5IG1lYW50IGZvciBpbnRlcm5hbCB1c2UsIGFzIGhpbnRlZCBieSBfIGluIG5hbWUuXHJcbiAgZ3JvdXAuX3NldERldGFjaGVkRnJvbSA9IChwYXJlbnQpID0+IHtcclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50ID0gcGFyZW50O1xyXG4gICAgaWYgKHBhcmVudCA9PT0gbnVsbCkge1xyXG4gICAgICBkZXRhY2hCdXR0b24ubWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IGRvY2tUZXh0dXJlO1xyXG4gICAgICBncm91cC5zaG93SGVhZGVyKCk7XHJcbiAgICAgIGdyb3VwLnNob3dHcmFiYmVyKCk7XHJcbiAgICAgIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBEZXRhY2ggYSBjaGlsZCBmb2xkZXIgZnJvbSB0aGlzIGZvbGRlciBoaWVyYXJjaHksIHN1Y2ggdGhhdCBpdCBjYW4gYmUgdXNlZCBlbHNld2hlcmUgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqIFxyXG4gICAqICh3aWxsIG5vdCBiZSB2aXNpYmxlIHVudGlsIGV4cGxpY2l0bHkgYWRkZWQgZWxzZXdoZXJlOyBcclxuICAgKiBjYWxsaW5nIGRldGFjaCgpIGluc3RlYWQgd2lsbCBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGFuZCBpcyBtb3JlIGludGVuZGVkIGZvciB1c2UgaW4gYXBwbGljYXRpb24gY29kZVxyXG4gICAqIHdoaWxlIHRoaXMgbWV0aG9kIGlzIG1vcmUgb2YgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLilcclxuICAgKi9cclxuICBncm91cC5kZXRhY2hDaGlsZCA9IChjaGlsZCkgPT4ge1xyXG4gICAgaWYgKCFjaGlsZC5pc0ZvbGRlciB8fCBjaGlsZC5mb2xkZXIgIT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjaGlsZC5fc2V0RGV0YWNoZWRGcm9tKGdyb3VwKTtcclxuICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKGNoaWxkKTtcclxuICAgIC8vVEhSRUUuT2JqZWN0M0QucHJvdG90eXBlLnJlbW92ZS5jYWxsKGdyb3VwLCBjaGlsZCk7XHJcbiAgICByZW1vdmVJbXBsKGNoaWxkKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDsgLy9vciBjaGlsZD9cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgRGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gaXRzIHBhcmVudCwgYW5kIHJlYXR0YWNoIHRvIHNjZW5lZ3JhcGggYXMgYSBzaWJsaW5nIG9mIHRoZSAndG9wIGxldmVsJyBmb2xkZXIgaW5cclxuICAgIHRoZSBoaWVyYXJjaHkgdGhpcyBwcmV2aW91c2x5IHdhcyBhIG1lbWJlciBvZi5cclxuICAqL1xyXG4gIGdyb3VwLmRldGFjaCA9ICgpID0+IHtcclxuICAgIGlmIChncm91cC5mb2xkZXIgPT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL2F1dG9tYXRpY2FsbHkgYWRkIHRvIFRIUkVFIHBhcmVudCBvZiB0b3AgbGV2ZWwgZm9sZGVyIGFuZCB0cnkgdG8gc2V0IGFwcHJvcHJpYXRlIHNjYWxlIC8gdHJhbnNmb3JtLi4uXHJcbiAgICAvL2lmIHRoYXQgZm9sZGVyIGJlaW5nTW92ZWQgYXQgdGhlIHByZXNlbnQgdGltZSwgdGhlbiBpdCB3aWxsIGhhdmUgYW4gb2xkUGFyZW50IHRvIHdoaWNoIHdlIHNob3VsZCBhdHRhY2ggaW5zdGVhZC5cclxuICAgIC8vLi4uYWx0aG91Z2ggaXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0aGUgZGV0YWNoZWQgZm9sZGVyIHRvIG1vdmUgd2l0aCB0aGUgY29udHJvbGxlciB1bnRpbCBidXR0b24gaXMgcmVsZWFzZWQuLi5cclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGdyb3VwLmZvbGRlci5kZXRhY2hDaGlsZChncm91cCk7XHJcbiAgICBcclxuICAgIC8vYWRkaW5nIHRvIHRvcEZvbGRlci5wYXJlbnQgSUYgQVZBSUxBQkxFLCBub3Qgb2xkUGFyZW50LCBwZW5kaW5nIHdvcmtpbmcgb3V0IHRyYW5zZm9ybSBsYXRlciBpZiBiZWluZ01vdmVkLi4uXHJcbiAgICBjb25zdCBwYXIgPSB0b3BGb2xkZXIucGFyZW50IHx8IGdyb3VwLnBhcmVudDsgXHJcbiAgICBpZiAoIXBhcikgcmV0dXJuOyAvL1NKUFQgY2hhbmdlIGZyb20gQ1N5bnRoLCBub3QgY2FyZWZ1bGx5IHJldmlld2VkIGJ1dCBwcm9iYWJseSByaWdodC5cclxuICAgIHBhci5hZGQoZ3JvdXApO1xyXG4gICAgY29uc3QgbSA9IHRvcEZvbGRlci5tYXRyaXguY2xvbmUoKTtcclxuXHJcbiAgICBncm91cC5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBtLnNldFBvc2l0aW9uKG5ldyBUSFJFRS5WZWN0b3IzKCkpO1xyXG4gICAgY29uc3QgdCA9IG5ldyBUSFJFRS5WZWN0b3IzKExheW91dC5GT0xERVJfV0lEVEgsIDAsIDApLmFwcGx5TWF0cml4NChtKTtcclxuICAgIGdyb3VwLnBvc2l0aW9uLmFkZCh0KTtcclxuICAgIFxyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vZGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gdG9wRm9sZGVyLnBhcmVudCB0aGVuIGF0dGFjaCB0byB0b3BGb2xkZXIub2xkUGFyZW50IHdoaWxlIG1haW50YWluaW5nIG1hdHJpeFdvcmxkXHJcbiAgICAgIC8vLi4uYWN0dWFsbHksIChtYXliZSkgd2Ugd2FudCB0byBkbyB0aGlzIHNjZW5lU2hpZnQgYnVzaW5lc3Mgd2hlbiBiZWluZ01vdmVkIGZpbmlzaGVzLi4uXHJcbiAgICAgIC8vIHB1dCB0aGluZ3MgaW50byBzZW1pRGV0YWNoZWQsIHNvIHRoYXQgd2hlbiBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgdGhleSBjYW4gYmUgc2hpZnRlZC5cclxuICAgICAgLy9vciBtYXliZSB3aGF0IHdlIHJlYWxseSB3YW50IGlzIHRvIGhhdmUgYW4gb3B0aW9uIHRvICdwaW4nIHBhbmVscyB0b2dldGhlciBhbmQgdW5waW4gdGhlbSwgcmF0aGVyIHRoYW4gYXNzdW1lXHJcbiAgICAgIC8vYXR0YWNobWVudCBjaGFuZ2VzIHdoZW4gYnV0dG9uIHJlbGVhc2VkLiAgRm9yIG5vdywgdGhpcyBpcyBub3QgcXVpdGUgd29ya2luZyByaWdodCwgc28uLi5cclxuICAgICAgY29uc3QgZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vd2UgY291bGQganVzdCBkZXRhY2gsIGxlYXZpbmcgdGhlIG9iamVjdCBhcyBkaXJlY3QgZGVzY2VuZGVudCBvZiBzY2VuZSwgYnV0IHRoZXJlIG1heSBiZSByZWFsIHJlYXNvbnMgdG8gc2l0dWF0ZVxyXG4gICAgICAvL3RoZSBHVUkgd2l0aGluIGhpZXJhcmNoeSBzb21laG93IChsaWtlIGFzIGNoaWxkcmVuIG9mIGEgY29udHJvbGxlcilcclxuICAgICAgXHJcbiAgICAgIGlmIChkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZykge1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLm9sZFBhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7Ly9YWFg6IGhhY2sgYmVjYXVzZSB0b3BGb2xkZXIub2xkUGFyZW50IHdhcyBiZWluZyB1bmRlZmluZWQgYmVmb3JlIGJlaW5nTW92ZWQgPSBmYWxzZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkID0gZ3JvdXA7XHJcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gdG9wRm9sZGVyLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgXHJcbiAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBcclxuICAgIGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gdG9wRm9sZGVyLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljOyAvL1RPRE86IHJldmlzZSBob3cgdG8gcGFzcyB0aGlzIGluZm9cclxuICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKDAuNSk7XHJcbiAgICBncm91cC5vcGVuKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgLy9hbGEgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNleGFtcGxlcy91dGlscy9TY2VuZVV0aWxzXHJcbiAgZnVuY3Rpb24gc2NlbmVEZXRhY2goY2hpbGQsIHBhcmVudCwgc2NlbmUpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KHBhcmVudC5tYXRyaXhXb3JsZCk7XHJcbiAgICBwYXJlbnQucmVtb3ZlKGNoaWxkKTtcclxuICAgIHNjZW5lLmFkZChjaGlsZClcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBwYXJlbnQpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLmdldEludmVyc2UocGFyZW50Lm1hdHJpeFdvcmxkKSApO1xyXG5cdFx0c2NlbmUucmVtb3ZlKGNoaWxkKTtcclxuXHRcdHBhcmVudC5hZGQoY2hpbGQpOyAgIFxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCkge1xyXG4gICAgbGV0IG5vZGUgPSBvbGRQYXJlbnQ7XHJcbiAgICB3aGlsZSAobm9kZS5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIGNvbnN0IHNjZW5lID0gbm9kZTtcclxuICAgIFxyXG4gICAgc2NlbmVEZXRhY2goY2hpbGQsIG9sZFBhcmVudCwgc2NlbmUpO1xyXG4gICAgc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBuZXdQYXJlbnQpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZGV0YWNoRnJvbVBhcmVudCA9IGdyb3VwLmRldGFjaDtcclxuICBcclxuICBncm91cC5yZWF0dGFjaCA9ICgpID0+IHtcclxuICAgIGlmICghZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0IHdpdGggdmFyaW91cyBjb21iaW5hdGlvbnMgb2Ygd3JhcHBpbmcgZXRjLlxyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQuYWRkRm9sZGVyKGdyb3VwKTsgLy8gdGhpcyB3aWxsIGFsc28gZGVhbCB3aXRoIGNvc21ldGljcyAoaGlkZUdyYWJiZXIgZXRjKVxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpO1xyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vbWF5YmUgd2UgY291bGQgZG8gdGhpcyBraW5kIG9mIHN0dWZmIGluIF9zZXREZXRhY2hlZEZyb21cclxuICAgICAgLy9pbiBhbnkgY2FzZSwgaXQncyBpcnJlbGV2YW50IGlmIFxyXG4gICAgICBsZXQgc2VtaXMgPSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHNlbWlzLmluZGV4T2YoZ3JvdXApO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgLy9ncm91cC5kZXRhY2hlZFBhcmVudCA9IG51bGw7XHJcbiAgICBncm91cC5fc2V0RGV0YWNoZWRGcm9tKG51bGwpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBncm91cC5hZGRDb250cm9sbGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgZ3JvdXAuYWRkRm9sZGVyKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgfVxyXG4gICAgICAvL1hYWDogaGFja2luZyBpbiBzb21lIHVuaXZlcnNhbCB0b29sdGlwIHN1cHBvcnRcclxuICAgICAgaWYgKG9iai5zZXRUb29sVGlwKSByZXR1cm47IC8vYnV0IG5vdCBpZiBhIG1vcmUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gYWxyZWFkeSBleGlzdHMgKHNlZSBkcm9wZG93bi4uLilcclxuICAgICAgb2JqLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAgICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAgICAgY29uc3QgdGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IHRpcE9iajtcclxuICAgICAgICAvL2Fzc29jaWF0ZSBldmVudCB3aXRoIGhvdmVyIG9uIGFwcHJvcHJpYXRlIGhpdHNjYW4uLi5cclxuXHJcbiAgICAgICAgaWYgKG9iai5pbnRlcmFjdGlvbikge1xyXG4gICAgICAgICAgLy9UT0RPOiBldmVudHMub2ZmKCkgaWYgcmVwbGFjaW5nIG9sZCB0b29sdGlwIChvciBub3QgcmVwZWF0aW5nIG9uKCkpLlxyXG4gICAgICAgICAgb2JqLmludGVyYWN0aW9uLmV2ZW50cy5vbigndGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgLy9kb24ndCBqdXN0IHNldCB2aXNpYmlsaXR5OyBhZGQvcmVtb3ZlIGFzIHRoZXNlIGFyZSBraWxsaW5nIGZyYW1lcmF0ZSBpbiBsYXJnZSBWUiBndWlzLlxyXG4gICAgICAgICAgICAvL1JFVklFVy4uLiBjb25zaWRlcmluZyBtYWtpbmcgdG9vbHRpcHMgd29yayB3aGVuIGhvdmVyaW5nIG9uIGxhYmVsIGFzIHdlbGwsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBvZiBjb3Vyc2UgdGhpcyB3b3VsZCBtZWFuIGNoYW5naW5nIG1vcmUgYWJvdXQgdGhlIGludGVyYWN0aW9uIHNldHVwLFxyXG4gICAgICAgICAgICAvLyBhbmQgaGF2aW5nIG1vcmUgb2JqZWN0cyB0byB0ZXN0IGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgICAgICAgICAgLy8gTGVhdmluZyBmb3Igbm93LCBpZiB3b3JraW5nIG1vcmUgb24gdGhlIGxpYnJhcnksIGhvcGVmdWxseSBmaXggaG92ZXIgZXZlbnQgZXRjLlxyXG4gICAgICAgICAgICBpZiAob2JqLnZpc2libGUpIHNldFZpc2liaWxpdHkob2JqLCB0aXBPYmosIG9iai5pbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBjYW4ndCBjcmVhdGUgdG9vbHRpcCBmb3IgJHtvYmouZ3VpVHlwZX0gYmVjYXVzZSB0aGVyZSdzIG5vIG9iai5pbnRlcmFjdGlvbiBwcm9wZXJ0eS4uLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgb2JqLmdldFRvb2xUaXAgPSAoKSA9PiBvYmoudXNlckRhdGEudGlwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmFkZEZvbGRlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uIChvYmopIHtcclxuICAgICAgLy9UT0RPIGlmIG9iaiBpcyBzdHJpbmcsIG1ha2UgYSBuZXcgZ3VpIGFuZCBhZGQgLyByZXR1cm4gaXQuLi4gYnV0IHdoYXQgYWJvdXQgdmFyYXJncz9cclxuICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIG9iai5tYXRyaXguaWRlbnRpdHkoKTtcclxuICAgICAgb2JqLnNjYWxlLnNldCgxLDEsMSk7XHJcbiAgICAgIG9iai5wb3NpdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBvYmoucm90YXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgXHJcbiAgICAgIG9iai5oaWRlR3JhYmJlcigpO1xyXG4gICAgICBvYmouY2xvc2UoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5wcm9tb3RlWk9yZGVyID0gKCkgPT4ge1xyXG4gICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXAgfHwgIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkbid0IGJlIGEgJ3B1YmxpYyBtZXRob2QnIChidXQgbWF5YmUgdGhlcmUgc2hvdWxkIGJlIGEgd2VsbC1kZWZpbmVkIHB1YmxpYyBpbnRlcmZhY2UpLlxyXG4gICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiBpbmNvbnNpc3RlbmN5IGluIGZvbGRlciBob3VzZWtlZXBpbmdgKTtcclxuICAgIH1cclxuICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBwcm9tb3RpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgLy90aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBvYmplY3QgeiBiZWluZyBkaWZmZXJlbnQgZnJvbSB3aGVuIG1vdXNlSW50ZXJzZWN0aW9uIGhpdCBpdCBlYXJsaWVyIGluIHVwZGF0ZS5cclxuICAgIC8vbW91c2VJbnRlcnNlY3Rpb24gd2lsbCB0aGVuIGxhdGVyIGJlIHVzZWQgaW4gaGFuZGxlVGljayBvZiBncmFiIGludGVyYWN0aW9uLCB0byBmdXJ0aGVyIG11dGF0ZSBwb3NpdGlvblxyXG4gICAgLy9zZWVtcyBvayB0aG91Z2ggKGFzIG9mIDA0LzEyLzE4KVxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICAvL2dyb3VwLnVzZXJEYXRhLm9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCA9ICBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQ7XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1MYXlvdXQoKXtcclxuICAgIHBlcmZvcm1IZWFkZXJMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgY29uc3Qgd3JhcE5lc3RlZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICAvL3N0YXJ0aW5nIHdob2xlIG5ldyBsYXlvdXQgb2YgdG9wRm9sZGVyP1xyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgaWYgKHRvcEZvbGRlci5tb2RhbEVkaXRvciAmJiB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCkgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgXHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gLXRvcEZvbGRlci5wb3NpdGlvbi55O1xyXG4gICAgICAvL0kgY291bGQgdW5kZWZpbmUgdGhlc2UgYXQgdGhlIGVuZCwgYnV0IHRoZXJlJ3Mgbm8gcG9pbnQuXHJcblxyXG4gICAgICBpZiAoIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYGFkZGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2tlZXAgY291bnRpbmcgY29sdW1uSGVpZ2h0IChjdXJyZW50IHkpICYgaW5kZXggZnJvbSBwYXJlbnQgZm9sZGVyLlxyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9UT0RPOiBtYWtlIHN1cmUgdG8gdGVzdCB3aXRoIGRlZXAgbmVzdGluZy5cclxuICAgICAgXHJcbiAgICAgIGlmICh0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHJlbW92aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBjb25zdCBzcGFjaW5nUGVyQ29udHJvbGxlciA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIGNvbnN0IGVtcHR5Rm9sZGVyU3BhY2UgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgdmFyIHRvdGFsU3BhY2luZyA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYykgPT4geyBjLnZpc2libGUgPSAhc3RhdGUuY29sbGFwc2VkIH0gKTtcclxuICAgIC8vY2hpbGRyZW4gc2hvdWxkIGJlIG9yZGVyZWQgYnkgZ3VpSW5kZXguXHJcbiAgICAvL2lmIHRoZXkgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSwgaXQgY2FuIGJlIGFkZGVkIGhlcmU6XHJcbiAgICAvL3RoaXMgc2hvdWxkIGJlIHRoZSBvbmx5IHBsYWNlIHRoYXQgd2UgbmVlZCB0byBjb25zaWRlciB0aGF0IHByb3BlcnR5XHJcbiAgICAvL2l0IGFsbG93cyBmb3IgZGV0YWNoaW5nIGVsZW1lbnRzIGFuZCByZWF0dGFjaGluZyBpbiBzaW1pbGFyIHBsYWNlLCBldmVuIGlmIHNvbWUgc2libGluZ3MgYXJlIGFsc28gZGV0YWNoZWQuXHJcbiAgICBsZXQgbGFzdEd1aUluZGV4ID0gMDtcclxuICAgIC8vdHJ5IHRvIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgdGhhdCBjbGllbnQgcHJvZ3JhbSBtYXkgYXR0ZW1wdCB0byByZXN0b3JlIGl0ZW1zIFxyXG4gICAgLy9yZW1lbWJlcmluZyBkZXRhY2hlZFBhcmVudCBidXQgbm90IGd1aUluZGV4PyBOb2lzZS4uLlxyXG4gICAgLy9jb25zdCBkZXRhY2hlZENoaWxkcmVuID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKGYgPT4gZi5kZXRhY2hlZFBhcmVudCA9PT0gdGhpcyk7XHJcbiAgICAvL2NvbGxhcHNlR3JvdXAuY2hpbGRyZW4uY29uY2F0KGRldGFjaGVkQ2hpbGRyZW4pLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKGMuZ3VpSW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGMuZ3VpSW5kZXggPSBsYXN0R3VpSW5kZXgrPTE7XHJcbiAgICAgIH0gZWxzZSBsYXN0R3VpSW5kZXggPSBjLmd1aUluZGV4O1xyXG4gICAgfSk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLnNvcnQoKGEsIGIpID0+IHsgcmV0dXJuIGEuZ3VpSW5kZXggLSBiLmd1aUluZGV4IH0pO1xyXG5cclxuICAgIGlmICggc3RhdGUuY29sbGFwc2VkICkge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IE1hdGguUEkgKiAwLjU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IDA7XHJcblxyXG4gICAgICB2YXIgeSA9IDAsIGxhc3RIZWlnaHQgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCBmdW5jdGlvbiggY2hpbGQsIGluZGV4ICl7XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICBjaGlsZC51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZiAtIHk7IC8vZXhjZXB0ICd5JyB3aWxsIGJlIHdyb25nLi4uXHJcbiAgICAgICAgICBjaGlsZC5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggIXdyYXBOZXN0ZWQgKSB7XHJcbiAgICAgICAgICAvL09yaWdpbmFsIGxheW91dCBhbGdvcml0aG1cclxuICAgICAgICAgIHZhciBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIC8vIGhvdyBmYXIgdG8gZ2V0IGZyb20gdGhlIG1pZGRsZSBvZiBwcmV2aW91cyB0byBtaWRkbGUgb2YgdGhpcyBjaGlsZD9cclxuICAgICAgICAgIC8vIGhhbGYgb2YgdGhlIGhlaWdodCBvZiBwcmV2aW91cyBwbHVzIGhhbGYgaGVpZ2h0IG9mIHRoaXMuXHJcbiAgICAgICAgICAvLyBpZiB3ZSd2ZSB3cmFwcGVkIHRvIGEgbmV3IGNvbHVtbiByZWNlbnRseSwgaG93IGlzIHRoaXMgYWZmZWN0ZWQ/XHJcbiAgICAgICAgICAvLyBzcGFjaW5nIHByb3BlcnR5IHNob3VsZCB0aGVuIGJlIHNwYWNpbmcgKndpdGhpbiBjdXJyZW50IGNvbHVtbiosIHNvIHRoZSB3YXkgd2UgdHJhY2sgdG90YWxTcGFjaW5nIHNob3VsZCByZWZsZWN0IHRoYXQuXHJcbiAgICAgICAgICB2YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgaWYgKGluZGV4IDwgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pXHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gIFxyXG4gICAgICAgICAgaWYgKChpbmRleCsxKSAlIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID09PSAwKSB5ID0gMDtcclxuICBcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vbmV3IGxheW91dCBhbGdvcml0aG0gV0lQLCBzaG91bGQgYWxsb3cgZm9yIG5lc3RlZCBmb2xkZXJzIHRvIHdyYXAgdG8gdGhlIHRvcCBvZiBhIG5ldyBjb2x1bW4sIHdpdGggYWxsIGZvbGRlcnNcclxuICAgICAgICAgIC8vaW4gaGllcmFyY2h5IHVzaW5nIHNhbWUgY29sdW1uIGxheW91dFxyXG4gICAgICAgICAgY29uc3QgbWF4Q29sSGVpZ2h0ID0gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gKiBzcGFjaW5nUGVyQ29udHJvbGxlcjsgLy9NQVhfRk9MREVSX0lURU1TIGlzIHNsaWdodCBtaXNub21lclxyXG4gICAgICAgICAgY29uc3QgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBjb25zdCBjaGlsZERpZFdyYXAgPSBjaGlsZC5pc0ZvbGRlciAmJiBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL21vdmUgdG8gYSBuZXcgY29sdW1uP1xyXG4gICAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA+IG1heENvbEhlaWdodCkge1xyXG4gICAgICAgICAgICAvL1RPRE86IG1heWJlIGFkZCBhbiBleHRyYSBoZWFkZXIgdGhpbmcgdG8gYWxsb3cgZm9sZGluZyBuZXN0ZWQgZm9sZGVyP1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCsrOyBcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gaDtcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nID0gMDsgLy9oIHdpbGwgYmUgYWRkZWQgbGF0ZXJcclxuICAgICAgICAgICAgbGFzdEhlaWdodCA9IDA7IC8vPz8/PyB3aGF0IHNob3VsZCB0aGlzIGJlPyAgT3JpZ2luYWwgYWxnb3JpdGhtIGl0J3MgJ2VtcHR5Rm9sZGVyU3BhY2UnXHJcbiAgICAgICAgICAgIC8vY2hlY2sgbG9naWMgb2YgdGhpcyBXUlQgZGVlcGVyIG5lc3RpbmcgKHNob3VsZCBiZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0b3BGb2xkZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlIHBhcmVudClcclxuICAgICAgICAgICAgLy93aGF0IEkgc2hvdWxkIGRvIGlzIHVzZSBhY2N1bW11bGF0aW9uIG9mIGFsbCBmb2xkZXIgbGV2ZWxzICsgb25lIHBhcmVudCBhYm92ZS5cclxuICAgICAgICAgICAgLy95ID0gLWdyb3VwLnBvc2l0aW9uLnk7XHJcbiAgICAgICAgICAgIHkgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ICs9IGg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy92YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgICAgICAgICBsZXQgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcblxyXG5cclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC4uLi5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgLy9YWFg6IHRoaXMgbG9naWMgZG9lc24ndCB3b3JrIGZvciBjb2x1bW4gd3JhcHBpbmcsIChiZWNhdXNlIG9mIGhvdyBzcGFjaW5nIGlzIGNvbXB1dGVkIGFib3ZlPylcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG5cclxuICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL25iIGZvciBuZXN0ZWQsIGNvbnNpZGVyIGRpZmZlcmVuY2UgYmV0d2VlbiBncm91cCAmIHBhcmVudFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy9pZiAoY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCkgbGFzdEhlaWdodCA9IDA7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2hpbGQudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gdG90YWxTcGFjaW5nO1xyXG4gICAgXHJcbiAgICAvLyBpZiB3ZSdyZSBhIHN1YmZvbGRlciwgdXNlIGEgc21hbGxlciBwYW5lbFxyXG4gICAgbGV0IHBhbmVsV2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXApIHtcclxuICAgICAgcGFuZWxXaWR0aCA9IExheW91dC5TVUJGT0xERVJfV0lEVEg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIExheW91dC5yZXNpemVQYW5lbChwYW5lbCwgcGFuZWxXaWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoKTtcclxuXHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtSGVhZGVyTGF5b3V0KCkge1xyXG4gICAgbGV0IGR4ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICBsZXQgeCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBoZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGlmICghYy52aXNpYmxlKSByZXR1cm47XHJcbiAgICAgIHggLT0gZHggKiAwLjg7XHJcbiAgICAgIGMucG9zaXRpb24ueCA9IHg7XHJcbiAgICAgIHggLT0gZHggKiAwLjM7IC8vVE9ETzogZGVoYWNraWZ5XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZ3JhYkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9UT0RPOiBtb3JlIGNvbnNpc3RlbnQgaG92ZXIgc3R5bGluZ1xyXG4gICAgaWYgKCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ob3ZlcmluZygpICkge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4ODg4ODg4ICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSBncm91cC5vcGVuKCk7XHJcbiAgICBlbHNlIGdyb3VwLmNsb3NlKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcblxyXG4gIGdyb3VwLm9wZW4gPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICghc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCAmJiBncm91cC5mb2xkZXIuYWNjb3JkaW9uKSB7XHJcbiAgICAgIGdyb3VwLmZvbGRlci5ndWlDaGlsZHJlbi5maWx0ZXIoYz0+Yy5pc0ZvbGRlciAmJiBjICE9PSBncm91cCkuZm9yRWFjaChjPT5jLmNsb3NlKCkpO1xyXG4gICAgfVxyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICBhZGRJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmNsb3NlID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSB0cnVlO1xyXG4gICAgcmVtb3ZlSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsOiBncmFiYmVyIH0gKTtcclxuICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAvL25iOiBpZiB0aGUgY29udHJvbCBpcyBub3QgdmlzaWJsZSAvIGFjdGl2ZSwgdGhlbiBpdCB3b24ndCBpbnRlcmZlcmUuLi4gICAgXHJcbiAgICAvL2J1dCBcImlmICghaXNEZXRhY2hhYmxlKVwiIGhlcmUgY2F1c2VzIHByb2JsZW1zLlxyXG4gICAgXHJcbiAgICAvL2hlYWRlckl0ZW1zIHNob3VsZCBub3cgaGF2ZSB0aGVpciBvd24gdXBkYXRlQ29udHJvbCBhbmQgYmUgaW4gZ2xvYmFsQ29udHJvbGxlcnMgbGlzdFxyXG4gICAgLy9oZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKG8gPT4gby5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKSk7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgLy8nZ3JhYlJlbGVhc2VkJyBpcyBlbWl0dGVkIG9uIGlucHV0LmV2ZW50cy4uLiB1c2VkIGZvciBvcnRobyBtb3VzZSBmaXhGb2xkZXJQb3NpdGlvblxyXG4gIFxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBfYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG4gIC8vZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwsIGdyYWJiZXIsIGRldGFjaEJ1dHRvbiBdO1xyXG4gIFxyXG4gIC8vLy8vRVhQRVJJTUVOVEFMIEZFQVRVUkUsIENVUlJFTlRMWSBIQVJEQ09ERUQgTk9UIFRPIEhBUFBFTlxyXG4gIC8vc3ViLWZvbGRlcnMgdGhhdCBhcmUgZGV0YWNoZWQgd2hpbGUgbW92aW5nIHJlbWFpbiBhdHRhY2hlZCB0byBwYXJlbnQgb2JqZWN0ICh0aGUgY29udHJvbGxlciB0aGF0J3MgbW92aW5nIHRoZW0pXHJcbiAgLy8mIGtlcHQgaW4gc2VtaURldGFjaGVkIHVudGlsIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCBhdCB3aGljaCBwb2ludCB0aGV5IHNoaWZ0IGF0dGFjaG1lbnQgdG8gb2xkUGFyZW50XHJcbiAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGdyb3VwLCB7XHJcbiAgICBoaXRzY2FuOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIC8vZG9uJ3QgbmVlZCB0byBmaWx0ZXIgdmlzaWJsZSBoZXJlLCB0aGlzJ2xsIGJlIGRvbmUgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKClcclxuICAgICAgICAvLyhpbXBsZW1lbnRhdGlvbiBub3RlIDMxLzcvMTk7IC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIGhlcmUgYmVpbmcgcmVtb3ZlZCBhcyBlYWNoIGhlYWRlckl0ZW1cclxuICAgICAgICAvL3Nob3VsZCBub3cgYmUgY2xvc2VyIHRvICdmdWxseSBmbGVkZ2VkJyBjb250cm9sbGVyKVxyXG4gICAgICAgIGxldCBoaXRzID0gWyBwYW5lbCwgZ3JhYmJlciBdO1xyXG4gICAgICAgIGlmIChncm91cC5tb2RhbEVkaXRvcikgaGl0cyA9IGhpdHMuY29uY2F0KC4uLmdyb3VwLm1vZGFsRWRpdG9yLmhpdHNjYW4pO1xyXG4gICAgICAgIHJldHVybiBoaXRzO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYmVpbmdNb3ZlZDoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gX2JlaW5nTW92ZWQ7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldDogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgX2JlaW5nTW92ZWQgPSB2YWx1ZTtcclxuICAgICAgICBpZiAoIV9iZWluZ01vdmVkKSB7XHJcbiAgICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSBncm91cC5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBncm91cC51c2VyRGF0YS5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICAgICAgICAgIC8vYXNzZXJ0aW9uLi4uIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAoYW5kIGRvZXNuJ3QgQUZBSUNUKS5cclxuICAgICAgICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSG91c2VrZWVwaW5nIHByb2JsZW0gaW4gZGF0LkdVSVZSLi4uXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQuZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIC8vYXMgd2VsbCBhcyB0aGlzIGN1cnJlbnRseSBlbmRpbmcgdXAgd2l0aCB3cm9uZyB0cmFuc2Zvcm0sIEkgYWxzbyBoYXZlIHdyb25nIHRyYW5zZm9ybSBpZiBJIGRyYWcgZm9sZGVyIHdoaWxlIHNlbWlEZWF0Y2hlZC4uLlxyXG4gICAgICAgICAgICAvLyoqYWx0aG91Z2ggaW4gdGhhdCBjYXNlLCBpdCBzaGlmdHMgYmFjayB0byB3aGVyZSBpdCBzaG91bGQgYmUgd2hlbiBidXR0b24gaXMgcmVsZWFzZWQqKlxyXG4gICAgICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZm9yIChsZXQgayBpbiBhZGRDb250cm9sbGVyRnVuY3MpIHtcclxuICAgIGdyb3VwW2tdID0gKC4uLmFyZ3MpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbGxlciA9IGFkZENvbnRyb2xsZXJGdW5jc1trXSguLi5hcmdzKTtcclxuICAgICAgaWYgKCBjb250cm9sbGVyICl7XHJcbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggY29udHJvbGxlciApO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sbGVyO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2UoKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBRUFDQU1BQUFEeVRqNVZBQUFBalZCTVZFVkhjRXovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8rdW1BYzdBQUFBTDNSU1RsTUFXbkpmYm5xRFdHUjRhMlpjWW5CUmFsUkxnSDZFVG5SOFVHaDJSb1pEWGxhSFNZbzhRSFUyTHlZY0ZBd0ZtbVVSMU9JQUFKRmhTVVJCVkhoZXRMMkpXbXU3ampVS0lRa2tRTHFadmdNQ1pPMnpULzMzL1IvdlNrTkRrajJUck9hclZkNVY2eERQM3BKbFdkS1E3cWFQYjYrdnJ3OHZqK1BaL3Z2cnh6Ly8vUGo2M3MvRzcvY1AybjAvWFo2T3A2WDhmSkhmYUcvM2o5cTVYL0xLdC90M3YvUWZ1ZlFrL1hvdWJvbHovRHE1TEg3eTFuTFZsOXhlSDRiMjhqaWRuY1p5L1pNMFArV2ZmLzd6bi8vOCsrOS8vc0c1VXp0YXYzSDFpbkpJWGtsZThRdm4zK09ST1Ayb2o1T1BtejdldittNVBEREZ5WGFuL1V3ZXdCZDgxMjRaRG4ybzNlVEJCbUNLQXpaUWZqWTc1V1gvL1krL0tqNkxuNzcvL3VGM3IyNHZIeWZQNWFlOWNSUnNhSDVJLzQ4dmVRcVA1S2g5WDl6ODZ3dm4rd2poWmZtWWpUem15QmZsU09CejVWMWxYTzhlSDU0bXc4bnpLOGRUSHNuUGVwYnVwd2Z0MVZ1K1BzbHZhWlB0czczRmFXeFhicC9pVWp4L0k5U1VjM0hMcVoyRGhudFZQMEVSZk43OXE5MTgrL1QydUZsTzhldzhCVytxdzRSejVSWmJPVHA1ZnNKaitkVHFGWi9sbFRBcXVMYytFbThqQS80ZEEvUzg5Yzk1a2hFaDhaVFltOGUzcCswUVY5eFA1ZjVmUWpVOFZMdWVKM2l0ZTlDVDlMZXpuNUlEK0twOHRCM0VtT2ZkZWZzbDU4MFBZMVdNRGthQk5GWHFINVZqZVNTRzVIalJkVHpxK2VBTWpQK0VMOHZIeUNTekZ6VzZMRTk2UHJqdjd1VnBNdXAwdWx1TXA3SXB1V1hiN1hRNnd5Y1p0dGtVYjkzdG9JMjY5ckhMS2E4Y2JwMFVuTTJ2VHhNOXQvdjg4SWh6ZU4zazZTVi80dGJ5WnNlOWZkNFFmZDJKdk83bThlRzVXNTd5RFJiQXJNSzV1RHZlR0NUOVFiN0lWK3phR003Mnh4UHVQY0xwU3M4ajU5bnpwQnVmTTN4MjRuSGF2dG9EaG5JUDZTWFY4TjY0YURRa1BUbFJ0bmIyczk5RTM5UmZkUmlmcnJ3a25idzdiby9KaFhsTHdlbFBtY2lUeDdQVC9sdjdUN1BaNWhIamxrUHl0WmZSajV1RFJyT1RuQTltdlg5NHhrQjBoM3l2eDgxSkJ3SXZxdjE0VXpuLytLMHZleWVqZmU0TlZ1Q0FEY1htT3o1cjE5dDE5Zkt4dnBuOEhQUzA3VllqKzlqSE43bFNmbmZpMGgrY3pjUE9lZEFiZElTYTcyOVBjZzdhdWZ2MGxqL3Qxc3Y5YWJaVTNwekl3NlN0OVB2R01rYWRRWndpQTNIa1BQbmU0OXlSbmp0WWthUkNOdkJRdnVKZ3h6RThZY0J4NzRFTkhjWVpwNjc0T1lOemh4d2Q0dUZwdU5Lbmo3WVBrQXpIazc0UkhyclM5OXAxSnZaZ09RRDZyN1FUQk1XOHhTSjZQUEZWNDlPWHhnQzh1MXlnaEpOUnMxVnd0akg2NzNENlJLZlVjcmJYL3ZGMEtoK3g3ZTZLVVpPNzZ5eXhtMk1jcGxPY2I4dzZ4RUNjT3p0N1dRNkVkT3NuRDhEWk9CL3k1MDVIdTVselBGMXN2c29jSE16N0lPSVlYSHNlekp2K1l0SHZONzBkYmlFVGRUdmFOZjI4VkhuSDJIN1hhL3FnNXJzd3lXNitrRGFYZDMvTG40MTl5bkk4ZlgvWHp6djMrb3VtWUFENWlWUHdwaWVUbERJWHgvaHVPZGh2UUZJYjFwTk5rWE52M3RkWGxLK1JNUVM5T2VEOXhaeERSL29MelpxK2ZjNTZjRmFPQnZIMkpoNkdxL1dpUHhodGpTOU9Td3dlYnJLVEo5aGJ6bkEySnNxZ1dmVFh1MUdzV0pqUUdFUjhWditTQWVRQ0VnN2ZCcjY3Ri9wekdEQWI3NFVGMEM5TlBucWxkMXJqSzlDUGdWajNGeGlIQnoxSit2ZkhtVEhyV2orczE1T1hCUVZQZXpKQW80UlFtZkh5OG1pYUd4aWcxeHprUHJqMzdPaEVITXpsTGVYbTkzaVd2dlNIak5maThJR1BsWGRYQnRBN05zSUJ5aENuYnhWQWVQNjhmK2l2a3dIa3NvK0NBVDRPL2I1UlYrZmIyeHVlMW56b21PaDl5UUFmT09WTlZVNTVVeFd0eWwrUURzS0U4eURwdDhwRDhKQy80b2VPSWI3bXRNU0FydzhmZk41c3pIbldnUGlOOHJSek5JYkpoSjFjSWN6Zm5VRFNnV2VFQVJhZi9ZRzg1Z0VmUnJINmdJbXlhR1NrTWE3djFBMHdvZjJ6ZHZVU0FESi9jTUNubTVuekhRNDBpL2xCQnhTYVZTak5JSWNNcWJ4bzlHdW5UcWE1eWhKcFVLQ1Y0OEdzQjNDM1BHVUVDZUN5cWlmdm8yT0Q4NDFkN3g0dy9RNXp6cWdUbHBlSjNydHYwczRHdlRrY2xLZGs1SEVMK1NMd3hXQzlPQWhQZ2MyTzhpVXE1RmY2ZlhxdE1NK0wvaFJXckJoZ0Fja2xuNjlEKy9UOGpLZlpRSWxPV3pLQU5LanB5NzFKU2g2Yjc0UUpuQUZNN09IakZvM2NlZDBzRGcxRlBzZWo2YS94UENvdU94MmdlVzhnVGM5MmpsN2lSaEFQd2dEeWlyWk9ZM2xSV3NwanordSt5aW5UckhCejBMK0gxNWNuWUJwQU54Qk5UR2RDeWdhc3JuZ0NYc0FJOTNDdmVnRDFhZjBFb1VNRERvQWFFNXFlVEhhUWVqaXMrbTNjenQxUW9JUGpHL2t3NWUyenZSUVZhMmM5UFo4cTFBOVZBbkg3TldUU2VBYStoaXhhNzZEdlFIamd3bFZIbHM2NVVwd0szclpyUEk3Um5tRUZlbEFTSDVSSFZLNVM1N2xnQUNwR0dHOXBjb0lPbFB5bHN5Z1pRSnJxOUZEb3ZyK1NBWVRPL1pBQUx2Ym1oOE1jcnlpdnRGQ0N2K21NaDJ3WURIYkdFUDV0TWtBNzFlbEduYk5LT2dvTW41K05TSkhEb2xsam5aNUNxSzFXSzJHWGppeXVnL09xZ3lmN1lEY3l6THQ1STVOdGEycWRiNkw0V1IwWmEyZ1R3cXBVVmpzcW85ZXJMamRmTXlySHUwYnVJbHpRekhkVWlGMzUwenRwWjZmVnIrdTBQRGo2Wi9aT3ZmWDZEQjNuUERKTkl4VHJYZHhJcUEydXZGTWlLQmtiSXlNbUNUcTR1a3lOQVNERWg1TXVTQU1GQ1YvWlBhOFBDd2hGYkRiR1dCZjZJaXpCM2xPVnVOdkpKUVBZb0lCdzU5MXVwK082VzhrZnE2N2NPQmdBUGE0VXE0NEpYVlpYbUw1T1JGdFp2NmtSVTZ4aUlpMzhGWFhwZzBacFFzdk81QndiZFlTcW5hN09JcmtRSXVDZGt1VFExNVdrVHpIRklSV2VHc3JGOGdkSXZlSFNzS1BtT2RBSkJMWHV0REVsK2t5dFdiOEFPZ1kxa0ZCV3p4MjdaQm5Lc1k3QWVSY0tjZlRyQUEwNnE4dCtaY3RkOUUrNXhLMTJ2ZlY4UG9jUWc3U2lZcjN1c2ExN1NtMm9zbmNRNWFrbmJjQXNaeE1KV0FPVEFXVEtUR1RaZDJZZm04SzhPRGdEeEF6bGtqdGRZbnQrbFFHRXFHUXRlZFBkU05wQS9vRE80dmNZNkNGUjk2blF3ZnhoT3E2UWd3b0RWbEM3N2VHZ1F1eEpDZDQvVUgrZFVYejE3ZkdtUTY0eDVYR1h0WkJIRDRNLzlQQVdONUtuNmxwbmZFRTk4cUMvWktBZ0FKVUJxRTY0NXJrZWRFeXRvMG9pckdKYTgxelhOdWdZcDF1WHVITGMweEh1ZGtVSHRVbFY5TXNBRFcvMGo5aFBEbGNaTmhmK3BSQlRRVHgyeFRwYk1vQytyczk0MThGRy9HbkxxRjM4MlY4UGREN3FqTFdWaGFPYkRMQnZNWUJxME95NVpBQmpMVDJHTlVUSlJKM0Y3OUgwRC9vUkxwK1B0c3VsQ0pCZURHcXNPNzRVNmQ1RUtGc3hnT3VnSmc4YVdkeTZLb1VYaDRWc1lrUUVjRkhEdTVyOEdoVnJtL2J5bDdMSFltMnlSL3VoVGh4TTg1eFRqdzdka0ZyendkWEE1YzFMaW5GNWZ0Sk55TUhHdEpTWTIrMnYrNmRjNGhwNWFOUGdDVHVvZG1PblliUmtnTk00MW0zY2cvTFV4K1Iwc25tQnp4R2hvanpRdFRsWk1RQ3NhWnRweFFDUUNiY1pZT1l6VG9VTnA3QmU1aSs3MEkvNENJVnUvNVhTL2hQVDhEVVlZS3NzYTNzZUZSRXJhWHFuTmdOQXhLc0E2SXgwQWpYelJ2K1crMUZienJlWGFSU2p5dkhSUnhvalFMMGRVM0xLSUVQejFPTTJaVEFJT21DaE5aT0hiMTVTanN2TDAxVkNQejM4dXAvRVV4MElLdTVhbnJTR3VJb3Y2M21UQ1VJRzJGTnZjTjFPQmdrclFJL1Rla2EyYlQ1VXFLanlmT2FXdDJDQUx0VDNwVnFCLzRBQnNQWnh4UjdsakNNRHlFZklXZ21GanZvMWFJMzE2ZU9UNTlhS2h5MGd6ME5xdWNtamZMeVJVbjlnelJ2c2VtUUE0NTFrZ0JFa1VwK2ptaXFHWE1ZVkFOWVJHMnVaRTUyemJyRDRvazVtVVE2aE5jZGFjdk9TV3d6d3AvMVREby91NlVZamxUVTVwdnl5RGh1bGxUREFjUlpIOFdVY0pKY1JNTDdoZS9xUXliclY0cTRwR0FEcW9jb0FIZnp1N3pQQXJKQ3VIUGlTRFBvUjUxNXVaby9IdUtCWkpGc2tBMEExVVNiVVJ2MjZaZ0NzYmlMRFJRQ29aSUhCcHlQWHVzV0RyNk9LbStsZGJwa2lmNnE0b3ZhSllVbk5NMTcwUGs4L1EydkduOUF4Ymw3eXR4Z2d4MU8wNlMxMlJyWWZlaTlrR3h0Y0FudlpCbklBNVRMTW9NZjhnVkczU1ljN3lYd1VtZm1CMjdzT1FGS2RZUTE4MTZteTJxMXA5L3NsQThUcUl5Unh0Yk95QTJ6NU9UUytnaG1IbUlVWU91dXRKY0FqbkVYNHdQc0xDVUJWQ095bVQ0UEJSMlpLd3pmQzY2ak1YZzhHSzUxRFhibkx1RkNMT1REMFdQRFY1U1NvRnB3MDFEdE5pWHA5bG9lNGNMMTF5ZDlqQVBuaDI3UlhYUnRpTHVhWUp2MGhBSVFCVW9taURpNmppZkhkNmdRcjJVTU42TEp5K1pRTTdVQk1SUGdPMDdHVk9KVFB2MkFBcmo0NEdrcGNaUW5NMDRQVXBxN28vL01aeVFCNGYyeVIzUXZTWWdEOUFYbHZpb0RlU3EwTnpnQmNRcW51RE1UcEFSOWlzYzFNM1FnUGRZM2doWlFOS2dUUk1VVjhORzllOHRjWWdJL0dUSEtORm8rdWxvQjBFcWtwV0RRcjQwd3lRSzNHVlF3Z0ZpbXNYRzVobGpVY0F5YTZSaktBTWtpUFJxWGp6eG5nV0t3QnpyZVA0NXNNUUJ0bGl4S24xaTRBYXJCN1FhNHh3TUpFZVgrZ0RLQlBHUTJDQWVnRVVVTlFPRDJXWm4zQUFLMFhsT2JMM0RIb1N6c1Z6T1AxbkJxa1hKbnF5YzFML2hJRHNKOWNWYW5HdFJLWVRpSmhnQy9zbzI4eHdCN0RpNmV0ZFFNd3pCUEhWTW5VcnRva0Eram1kMDRkODFjTWNFcnBHaXZBOGlZRHFCMDFaREczcmVDTFVyUStnS05jcTd2TkFCOG0rL1dBRUlXYXZXelRuK0VHbFMyOE9UM0F4MnA5c00xNVBuVmNLVTR2K1pTYW1oQlpUb1ZibC94bEJtQi9MZGZyYmFCVDhQaExDYkJQODc1S3hkMHFGK1V4QmdHLzFRTkxYVVpXQ1NNRlBDTy9ZSUEwNHMzbmxJelROZ09rUGtxVGI2Mk5tVW1XbTRtQlNMYXRXeFIrTGdIMERKa2dLa2ZrZkpBVjBRdXdySFRPTUFUNUtwUEtUc3FkMnVMQnAxeCtaRTJGK3BLL3p3Qy9ldlRuZ3EzTkFPMVRCMjd1M2NDUmlHMXRYNldpOE1DNkhsMGo3Z2hlQTFqQXV1ajVyVjJBcVBXaE11T01iV3RvSjhPUzM1YUZqb05iY29MR1FxS0dkN0h3Y3M5K1RRY0FIV01KT0dNaEdZVWhDQUpHYmF2aUpGZ05hSmNRaFQ5MWp3V05KY3VhQVc1UDU1c004SDh2QWVDdXY3VUVEQW9HT0czOFZQVEdrbzhGK1ZTNCtMRXl3bis2cWtZWDR3VExQM3dndjc4TlBPYkdYaG9OYkx5Q3pxZmRXaWMyWHFYY00zVElHQ1NHM2FRUDdWM21iajhPdFJrQXpDM1hxenlmaTVFQjZpZFlRb2Z2M1pZd0hZZEpOMTk2R1Z2aHoxZ0I4SmFwM2hWNjMxdDdJVTc5OU5vbGY1c0JicXNmVkFKWCtLL1REU1dRTkFyRnYrSlplSmdSc1FjSFE5T0hDV1lITS95bEpWQzlvSzkveEFCcDJqUC9VVEcwbitLeE0yTVdYYm1GeHFodG5hYUFjR0IvTE13Q3FxOUk0VkF4QUZmaytRN21HRmtLeFJ3OG4vZTUyRThMWlhJeUxCamdGT1p5MEl1Ym8zSjhPZkMzVlhIdzhNMUwvaFlEM042QUpGMkdhRzRHa0cwZzNkb2h0NTJCZlpkbC9oZTBzL0pBTEkyenRpOUFsb3R4VzRQNCtUWVFFVnF2VysxTHBUN3Mxb2MrRGVhbUcxQVpDVTNtRU5OeHBpSkFoSlJHQW54QWYyZDB4bWxUTXdCbUNIYUE2dlBWOCtCWVhGUGRUNXV2T2s3blBqMlhjaGZ1Mm5Mdm1Wc1ArZmlIVjVlMlA5Mk0zN2drQ2FvSFhwKzZKT2lmOTk4MlFSUjBlVUpqQUlrd3dNbDFYR3B1Ym12aDlPSUNnU0E1YzUvNzFtVzVzVSs5N1EwY3o0UUNOeG5nWFE5ckxMYzluZHVyd3FFMGQyOE43b1U1Qi9vczJEQ1N1Q1lpRWRleW5LL1hZYXlHYmJwZ2dQUnppQjhWL3RnZC9vY2huVTQ2OVhuSVFoTG1ac1RaaG9jTSsxdmJPcDBaRHZPOHhZckJvemZOY1Rjdk1mTTdOSmNKcnZpd0JlUlArNmVYUmtpT2F5RUIyTGFNNHJwRHpNUW9sZTEwRHByQmwyYVdoUXF1TFp6dEhFMGhIbWhYTWNCanJpWnFhc0xZWFdjQU9NTGxZVS9QcGw5eE5oZE1SSDh0WGFZa1R5b3k4bURYRzhVaVlWYm9IY0pnM0FIUDFTc1lnUDVlNWZWZEo2SjhPeVBHZnRIcklhdk9BUUttejFDbk1lSnNsVjZ4Nk1UYVJidXhPQTlUOHpSQjRnYjVjeHJrYjE2U24zYVc5NUlyUGttTVArMkhNcFJ1aUxXN0lhNzVBaGphZWpkK3RMdTVmODNmM3dRVmZtL0pWU1BSanMraHVHQjBzVm93R0tGMnpDSG15TWJ1Q2dOMGgwcFZJUWlITmxhQWtnSGcxUnRwMElSSklzNGZmZ1IxSzdBZTBRaGQ0Um5lU3AyVFhMM2MwYVVHZkpyNjFFbXZOOThOTks2QWNlRWVVYXVxenVjaVZnWVZkSWo3S0ZhQUwxb2w1WDFjODhSWTQyakxKYWZ1TEJ2YW01ZEVTSk13dDRSdDZLVXdpdjF4dnp5NmRFVDJQYWdsdllGci9nZWFnUUUwV3BBRWgyQmZwcHdjSVR5WkF5OFhEeVFVQU80NXhnU3ExQTB4QmdaWXVsSS90NG5Mc2J0Z0FBa0Mwb2Y1MEpMZGFEbW94ZFVrM0RycGx0ZldEZEVxM0NFY0FPNFhpalpPN0ZPc1htNlltQzdEVlM4c3NKWTJiL0R5aGd4aFREMk1BQi96WEJuc3JlY2lYSHpqcVpnQU1GTnFub2REMkQvSDk5ZWQ4c3VibDFoUTR3QkJyZFI3d0h0LzJyKzhGWXJnZXRVaW1rdnRyenVoUHdPQ1J0U283c2tSK25aUUNzRFFJaEtiK1p3TytnbGRaN3QwYVk1UGlNL2x5WDBMTXVYWXpWc01JRDBoK2xZNjRZUm9aS0tLQVJDOUN1aFpGZmVGS0ZncVY0eEgzVlA0ekJ0d2N1VWtXQnpvbkVESUhJTjFGdEFsWU1QVU93ajlpYW9ScVNZMFF2eVRPWlRJQU9vSDVUQ2ZORDZ4clhuT1piaE04MnlGNWZROUxHZDI4eEtMSVJMVGd4THRZS0ZDZVBZZjlzK3VCaU5sUkZEUmtnR01aUTROZVV2WDB3eWNnK1N5OE4rNStvTHgydEpOcWNLUWVNcmhiNDRLZUxQeWNrZ3JHVUJhVXpEQUFVUEx4YldsU0w2ODNDTjAyczJWSHFubUQyOVpGSFlOSkhmdEp1ejNiYVpsZURRbXVjeCtqVGlUSTR6WkpaenZTWi9UekpYOUFLd2pBelROMmhBUTBKMHJESXp3ODFvUE1uaHhaa2dhQnVaSkhCVUQ4MDQzTHdHd0FUYm8zbHFhQndzdS83aS9IWTY0QXYxVjhtRzJscTNqUzRDTzVEeUJDc0FXS0JFQkZqQzFrQTlUZ2RuTWlTS2EwaXd6NzVHL2lmUER5U3RSeDR2OVRTTU5ESkEvQ3dhUXdWZ251TVFaSUlURWVLUGdDVEtBdnptMUhXbHBVV0NYakFheFcrUUo2UG5jRmpKZ2Q2aklJRFJ4YjNnNHZ3TTBiVm1DMUg0MHFySG5EQXlVUVRxSmdveGJpVElHWWdhOFJFWmgxR0ZVcTlBZkVNMmJseEJqS0FkVTdjRVZXUGYrdFA4WUFja2pVL1M2REVqZVFQUlVEV3VQTTBEaUdpVEVLa1JZdy9tRmgra1cwSWFNT0VJZmwwNFhLeVVqOSszTjlBdlBxcFg0MkhGQWk1OHI1UWVMdVBaN0FzWnE0UWt5ZmFnbUNGY0xLb1NMUzc0NUE2TWp1aGtub010MStqMkJaRjNpR2NHakhyS3ZNZkxkaURvSDkwcVROZXhrUWxRYWdUdEhteEI2dXFJSURVMkJ0ZzhjTEc4RW5LNE1vRU5WL1FBbGlTQVlibDVpaEhzeXdDcXVBSjMvdUQrL1Q0NEF1SXNIRUg5YnRXZENLKzh3ajN1SmJJS0NhekFscXBiMnNHTElRaXZiNm04aXFJNFZzTGpiQlhmam5CSCt3NEMyZmhxa1QxcGdmYWxkb1JNYkJRQUNBaFlhaUliNjE0bXJqNHdJNEw1R09ldkNkejliWExiMENXZ0g2T0NuWjdRbjRrNzJjbXl2RGNCSUhJUk1SUS9XQldtQmcvN211YndWYndUWVBHOGlaQkRzamgzUkp3ajlyMThDK2hPUXJ3ZTA0WjBVTUNMdFd2L1B6dmZ2UTNzQWxKK2lCMzNaSG9qb3ZjT2tYSEhucktQOUhRZ3B6TUhISlY3aUxZY01jQmFPbFA0MlNVbDRNamdBZUIvY2tLUEpBYTEvSW4wQUJvTWNyR1Q0eGhJYUpNREFIYjlLUUR5b29GSTJmK25UOSt3eWlzNEFseVZVbm4wbmE3T2w1Z2Q0ZVh1UVpzaXpwZlF0Wi9LUHRCaytWZzVCOTBRSExJSGE4MktaRUw2UGZ1cVN0NUptdWdyNmwvcnZSZy9neUwxY2hlNk5QdVRVdW1RRDlLdE8zZVgwWFE1b3d6dkptWnZOV0k3WC9XTzk0TXI1ZUU4NXVwbmhDWExrWHRyN1ZIN0xVQWpqYVYvWnlFby83ckFva2Y2bkk0aklSV3pvY3hCY2xVTm1nTFlqUndvb1JtbjZXcmlZK1JjdzVrdU9wZzlvK1ZNSnQrUmczSXMwc0xFVHdMaDM2aFhvU3dEbGkvd0hLaEEyaVYveTJlRHlwWDJqcWcxamc4dHEyZ2p0c2hGYXlwazhKUCs4VzV0dTlNQlVPOUVsNTIybVBJSWU5TE1CVVl1eHh4SDlkOHBiUVZmQjBEL3kzdjRRL2ZmUm43YWN5ZFYrd1BxSTZ6MGFaMnJEQU0vNFl6cldmbXZ2NkFCYWx1ZjdBWDEvSEFXakN5dE1kWHdlMzIwc3h0Ykh3WkNSbHhib1lDeEtYSXd3QmI4aTMwTE9RZHd5aDh5ZzZ4d3BQY0J2TXc3UWNTaEhJSzZiK1NYeDVTY09ocExFUDA2ZUhrUEhDM1hZZzVpUWFnNmNMbm80Z3ZqOTZMMmdPcVlOMkNNUFlVWnVsbVFTblVka09wSFdNOHhXdVVCN3JOKzRYREgxa0w3V3AvK3FlRGR4Y0RwUlVyem9WTkVEMm8vRlFINmkwMFFJTVBIeVVPM0JpZThnNlJITE45cTlyYnY0R3hKdU5yTWJvVU5mMGRZaDdSK0hISGpoUEpPanVCcExBT2NFK3lnMHdTVjc1Z2ZZVFBVN01DUXhrWmx4NVkxaWNFTzVoZ2FSUlVwTEh5N25kTVgrQ0MrR2swUFVQVTU1SFM3aHdOb3plU3I2OU9OQVNuYkNVVURSc1U5eGJyeXF0eHBIRCtEOXVkSTlJSW1NS2RnaTg3bVVZb0hJVyt5dGdkZGY5WHdzYUEvMzVjcXZQVmlPNERxeDJZR0JSQjh2NERwMVdtSXU4UXBxSFhFeTlBRkdZcG9tZ010VFI3QTE5WGtyRGZOT2xHbjhNQ1F5YjRRT1puMzVhbXNDT1A4SnFxdmNTcFVmaGRhK01VOU01Z2paRWxIRERDRTJYNmNiemswaTFpbm0xTVU3elFtOE54bkJkRFJ5VmlwSWVHblRCRTFINGxMT29kRDFIVnR0NE9NNEdsQy8vVngwY1NIU1RteVpjdFJPQmpPVXRyWDdBWUpuS3A3Q0VLV0h1cTZuY3RsUzhUOUt3LzRmbHo4am9Rc1BmWnUrdzNHWlFORTNteWFzZ3FiTDZncUpRY09vTTlrSyt2d0M2RTdtTng5cUYzWVJlQVpPdHA4VFUydlRjTDExcmRwSUNqZm9jM2VFV0dUcXkvcjMxbTBhdUpIMHhCTy9uYjI0RjVqWVVYbXNHZk4wRzRpaE1JTlc1QWdocHU2TE9ZSk1vNWx4dXIzb3ErRG0xajF6d2ZOR0JVaW96NHd0cGl6RUZva21FdWtGVFMxcEE3NXdRcjhUR0dNV21yOXZ3TzA3MEplcWlNNG5qcWNCS0RPNUNvRjJEc0d6cEMxdjhDUDZibmZZamR3cCtseW1jckJVTVR4RXFCRVI0YnFkSGlsT3RVT0ROUDBJWjkzOFk2OUxJS0xaS2JiV0p6dllzNGZYQm01UkR1Z205bXpQd01uNGlidkRndWFmWnZ2cWM0ZE1STFE1MFFnSWM1Ty9hZFdrZlVXd0NtRjI0Ymc5aHpWZ0pFZUpjdlZicVlsZzFMRXJJa2ZJcWt0enB0TC8zenVRcFpodTVBQ2J4cGc1ejYwWi9vOXlEbFAyOEtOOTA1NnNZK1NCd2NPc3RYc3VEY2ljY2lZU0dBS1J0b016VGlVSFdJWU5qaWRleWxNTkFKYWl3VDYwZTJ1UDNvblllTXVMc2hxZzk5VmgrWGJ1RG1ZaU9XUVJKdGhPRXhHdWJrYzFTVEdTREhFS0NqS2NpMTFSVUtzWU5Nd0FHaVNrYjdBNjkrUXcvY05IangxdTVucEYwNE9YQWlmYnovTzZZYXlzZlJvdGEzTjVjT0dOWHEzN1ZXb045MnRzM0J5cnR3L2ZLKzJCQTdoTkJ5dUdOZ1ZvQWJIdDhoeTdnc0VDN3RDd2RFYi8vdmRPUlRrdFZKUm9SbWpZT3RJczRobGtzRzZRL3A0SFp5N04wZnFod2hsQVNvN3duV1pVRHBFNXhmckJHTHBuTnV0aFk0RWNXT0pOdEhSMFBBZG1TVFZuZXI5UFdNcFVGd0RFS3ZibmhEQXMvWlQxdWJRUzYyZVFEbW9VSHF3WEhxN0NMU3ZTbjZpRHNHRW9qYm14WHdsY1pWUUZWcUk2RUNDeElET1RXSGtGRE5sQzFjeFFBdCs4SXpqaGRCUlhnVFRZMG1HN25GNEorbkVHb09HOVAyODhRR3F2WDVVZUFYRXZ5VmZRZ2MyekVSc2poKzBLRDI1UGwrWVBMQUZHU0o5dUdPd3c2K0JyTVkwcHZXUUs0Q29rN1FON0JBek9vRURmdVltenZDWUx1SGxlZFBES2hEQk1OT01JY3REL3NFQzAyWk11UTVEbVNJQUJYeHJNeGpacTdyV3d0REQ0ellRTjRiWFJCQ0tmQ1lDV2QvSjQ4ajY4WitSV0xGTWVqaURPdVFYeVdrQUZNenRUeFFBME9Ya1FmWnNCb0FIQWhZSXI5QmtUdnJYOXhCRU1mZmhzNlYzcjB4TjJtd0VZZlZlblJqbUYzK1dqYi9rTTNGdTFNUVpZeTczbEdRdlBwV0Y1VkFwUUhVVEFIUlAxY2JwUkhDSGIxWThJR0c3MHdNUnpnVEVWSWpOU1JYb2ZrMHVwKzAwaXJ3a1ZPV3AvS2pLc0g0aFM2SDlkT0ovY0EybUR3VHdheGdIdWZ0Wkx3VHFJb2tGMm8vQWpNRHhjQk1sS0JFTTRxYi9pTXhaejlkRHBFZUplcVduQkZONHpQNUtwWUxRN0YwdkFpa2JuRzBzQXZjUFN0UmI4eEU0ZFBhczBmdU9uSHNISkhyV2hlUHVkUmoxU3FQME9Bd3g2d1FDZXlZTlJBWE5FVDlwUTZDUGdFV29XbnpJNXFkbTRRejFHaGd4d1BMV21HMkdqS1FHVWVmM2VleklBTXZZbzJETFMrMkJ2a1liY0xoRzRIVnRBaW9Rd1o4dVFRelVRNTQrUWFRZi93TGZ3R05KY0phVWx4L0pGZ1FzZGw3bW01eG51VEpVY25RZHNPcWpZSGpvRGFGYUp5REFIb3JtbUJiVkJWQ2hjNjlIY09KVktZT0YyZ29iTnZrRW9nZjZJc3AwSlNGYStrSi9DUkJEMVZSQTc4aFNRSkQ5akFManpkSHlhUHZFemlaUkcrTFJHdXB1cm5JbGl0b2prbHNDNUJVTmVaMVVlQU9qZjJBYjZDZ2xDNm1ESENtRkNuc21sbERJVUhFemJtWDQ3NWtGeXJEWjFQK2dHZ3c1MFhYQzRKNFJCLzg3VlFId0dodE9TclZBVFp4S1VIWTZBQVpoNHpiSHRqNGtCZ3grQk82NlZ6QVdOOTZTWEVvR1BQajBsR2x3bmM2ZGJTM05relJucUhvb3FHQmtBZWdTMmdTcDNuQUc0RFJ5Wnk5dTNnUzVrRHRrWWg1cHhVeDNMSjBvOEpLZ2w4akFEM0c4ekFOUWtLSUZOcy9ZUExtTVBrWG1zYjZFNnhpK21VQjRhQ0JnTFkxaTJVajlBbW9NQnl1bldKeGlDaVQ4eHE1aEd6T0Zrc1Fjd1hoWnllcGF0WXpBRkJocXF3MWtHM2RRMEpvVEoxa3NjUXRIdy9YVHQ2WUdCSjhqa0dCUFhWUDFRRDJrRVNlam9VN2V5M1RzWDZLR0c0U0x5emZVNWp2SW5aSENrMnFqeEhFK3ZiVENMQjlGOUFwcGlTck16Z0R6WFcwWk81ZzJZWURPaW1SNHdpUjJCY3BNQnFPNmZCNUE2Wk9DTWtCa0JRTE1RclNMd01GaWNlem9Ob0szQXFaY29ITVpaNzVNQmNycGxYc3NmcWdSRVlyMzFPc0VrLzBBRkNMQjI2cFhmc1N6SUJFRFdMd3VPVzVkZ3FHajlaSUIrOWpMRUZGcVlIRkNFQ2cwM05ZSXBmM0F6UVlYa2NOQm9yNllQTlpPN2R4anBpRC9JbDAwR3NOaThZdmpMbTdmUlRBRlFPZVNIbC9DcUFSdTM4SnRXWGh5ZXlHdEJSQ2ZjVFFZZ2I4dFhxV3pqRWxhQUFMQVFOd0VDR0h0dTE1NjJpRzZlVmVtZnpEWURCcGlWMHkwejIxb09XNC9GYXlyVlFRNGxXUHR6RVRMRkZjTmUzMmFWTDFLUTZtU0FKbG95Z0p3KzkyWU1vSzY5U1B0ZzZhbC95Z0FlM0x6UURIQ3JNM1VyR2ljc05nU1NQSlhnZ2dFK3NYLzZQUWJZWjVhS2pCSStsdmk2RVpvYjhaWXRNTVNtaG13UnZmRnpCZ2gxZjZGck9wWFlBb0hVaFFrZ01DZHUzSmdqRlZWR1JKYllPajBOdEtRUytJUUVXR0JMVERmTGU4MjhYSEdJcWdNWUlNSGEvUVRxYWk4SmdUVURBb0REbEJnTk5vc1ppZXdPMFV0clNSeGcwdDc5VHhrZ1AwN0lEdDBxbzhZcm9qSGV2VndDRm1UWDMySUFINUVLSzF3eHdHVExCdDIwelFEanEyaXhaSURGNHBJQk1sWG4ya0tBNjd3eXVpbVJ6aHdONW5ZOUlEUzA3d0ltTVk0cHVZUUJWSmJEN0tWem1mcUJIZUkwcnc4bGF5UllPeUtLVDk5dVEyVk9VZ29BTERuSkFCWVRRaU54MHJuTE5pUU9KQTZRaWo5bEFCeU1YSEdpZVhPTVFiU0FPQi9teGRjbkF6QkErL2NZZ0NQQ0xCV0VzNVF2bDhnTE5aejhJUVAwcEYweUFIaGJkN3lyY3dqNnZLK09zb2pUQlBRRnd5QVhsVWRnd2gvRVlVaGEzbUV1T3lURzlBTjNGZHc4QkJVd3dkcjl6Tm5GVEc1T2VHcXBlRnFKMG1JVFdWTk9kTytGd0c4endQZlBHU0FrSzhoTHZRdERXYWNXS2I2K29BMzBsTkh2TU1DK2tLT1pNYW9TVDJ4MEgxeGRBZ1kzQU1NMHExOWxBTjFZZG14RVd3elE2Y0UrbUF3QVRpSzhOamxHMXNuYUZHRFFzSzhDb3F2L2w2NkNIN2NQUVd6RXBxSkpiWWplc2lFcGI0S1lEb3BrZ0NFYWRsRGpTZ0trNytoUEdZQ1lKSzZDTHdUTXVTc2xOV1orZllzMlBkTVlmb01CVG5YR29JQ201TXZWeUl0TEJ2QVQ4ZHZmSzVlQXBybGNBcUFEcmxhbTFOVU1vQys4bTZ1OUpjVktzYytZRE1zeGpKZFBrZjBsT2tCaUxoSjBqN1RuTnc5UkJTU0s5SnhBWFFibmhZV0NBL3RVcCt4YldUUHJjcVVEaE8vb2p4bmdFcTZkZUtDU2FHVm1pYVFObE1kQjU5Y01VQUZVeWcvM2x6dTBrUmR0QnVCYXhUMDdZSmw4MGR2YndQYzNBdlNSNjVORGtyc0FTM1dhWDE5dVlxc3hMR2R0NUFyMjdSeDZ3MVdBT09uYmh5RHBYWnJ3eVc1NHhWTTRScllKbmRRSnU5WnM5bGJ0WFFESDZZOFo0SGI2amFXdFZwR096dmZGQlFOd3Mvb2JERkNNQ0liY1Zjb0xPOEJOQm9ENWtSRFJKL2pTZkswaUExeVZBSVpaeE4wNUpDblY0QVFLMUdiRkFJUnF1aDVWQVVFSkREbVdxVUtUcGVGR3ZYVUlndjR0OUlueWhoUUI5QkdwVUtJNXhobmc4OERXcnhqZ2cyM3hmOEFBbVlpbVNraTVMR2hqRU03ZllJQVVmQ3FUODE3NWN0NDYxNWNBNUp2eGZmSVFPemlxVjdjWklGREw1UklRbHNBNU5vYWR6R0w3bm9zTUxnd2wwRGQxcGNpKzIrdmlURDdodjV6TFh6Y1BjWGZnaWVGZDJub3BIVStXYWdaUm9tbENBdlM5MVJLZ1lmdGZNVUNkZmlNTXFabnFVRnArZlVFYnl5c3orQ1VEK0loOE1rdEZmSGkrWElXOHVHUUFLcVEwV01pNjN1aDcvZHdaWkRMREVvenV5QUFKMnV3cmJsY1R3YnN2SUhRQTBiYm91YWF2RmxTb1BVTElEeENwQkVoUmh1cmNQbFNxVlRLbVpBNW95UlFjbVZKbGFJQ1RYQUlHYkx0YUIyQ2plKzF2S29IVG1DdG93Y2tGYmJyWXVLNS96UUFjRVlkWmZzUzk4cElDZWJFNXRSbUFma1BicGNtTW5zdi9jcEJ1NmdDWnM2UGJ6VjNBMkhHWUFnV0dOekJRbXRPdzBPNlkxaTlCelJjZUljOFBnTk9VYUdrK09kNCtWSUMxclgza0hvRWlBSXNiNWhvbVFqQUE1REFhWXJZS09zTTZZT21tTnFlL3VBMTB5MDBzTTUvOCtwSTJ5REhVWERMQXNQWUZjRVJ5cWY5d2xiTFV2TmdRWU5wbUFJZmVLWVQzc0ZDVTZCd1l3WjlMQUU3RGxTS3BDM3ZmRmpRZ1JqaFFtaHg5N2FIaEtFSE5GeDZodTJJdWF5djRaWC96VUtxQTJlSXBySXlTWDQzSXZKSUJ1bHRyK3RFbG5iVTlJMFR5SnhMZ3p3MUJFUXJUc0lYY0xtaGpTOWJjR1NBMWRRRlpGV2xnMjFrcVVxVXNlTWFiQVhiYkRLQkdTNXIyeVVKelloZC9wUU1zMU1teFdIQ3o1dzZmaFVjRUJVclR6UEhrTUxtcUFqVkhGaEdLN0x1WXl4eWR6TTU5dW4wb1djTmJ2VWU0K0dvOCtSZUdJS1crUlRZTHk5eGtnRDgzQlNjYnMvVTlJMVh4bHFhMUh1aUxncVpPVjdzdnIzaE83aWM3YURrck1nR1FOK1A5aTZHSVdENnI2cUpwc0JwemVQOXFGM0Q0QUJpY2tnMGpoM0luamhGVytyY3FWdlNKSFkrSVhTZHFLRnQzRjNNNWRqYXoyNGRLdFFxdE1nWDhrZ0hZV3FaZ2ExMDZVZjZRQWJEVnUrb01DamJtZ3lPcDZGdVZwaDI1WXo0L3lRQlVsUllJdHNsVVpXV1dpb20wOE92bTNtc2REVVM5WklERVQ0NUdxT0tqZFFQd2tiK3lBOHdialhOWXU3OE1BNlNCSm80Ujl2S2xwMlVCRWsvcytEZERQTUxnQ0ZMZWVRN3pPVnV4czdsOWlBTUU1WUJWbjFLdi9DVURvTG5OcDFBQ2QvS2ZOSHZFSHpMQWFYUExIWnhFUTNBYU42aFlzTXEzdEJCR1o0Q3N2R0hMSzhQU01DSjBwNkdjR3o4ODMrZmo0SzI1d1FCZkFlRlZuTUp3Skk5aHlvV2JVY0VJaHBJZ2RPaklaL3JMOEk1SyttNWdoSW5TUFFhSHNUU3FsNGlqZDRlUi9LWnMzWG5Wamw3TTVVaUlmZnNRZDVNSHJ1ZlFpekxTNkJjTUVBMEhxMjFnWmhMNFV3YllMMjhGaEtSbGZEVFJpc3BGREU2WkVzOU1GNTV2alFoNUxxOWVlNGVDajFFenpGSlJocWcxL1d3MUF4UkZXbGhYOEFYMXExR21ib0FZajl1NEFNdTFCVmpJeUdnSFpaKzFNYWgwRWdGcmNKZmtNRUNKdkM2MDJmQ0pBTEFheUhlTWJ1a1BMdWJ5OVBZaHFsWFFnQjhlVXNSaURmZ0ZBM2pqUVFhRVpLc1o0T09DQVJZbEEyVFcyK3NoWWJIWGF4cVgxUHlWbVRYWFNIWnY2NncwTUVDRVZPVHl5cjBlZzlJb0pqSkV6ZlBNWnJQWXZRZzhEQUZKL0tSaEZSODA5WUlsd3ZvSk1nZzEwQWtWQzlwdEZCWUVERnlCS2RhMmR4QThrZEhBTFNQTkFxSzhpQUVpdjl3VjFKTkd1dEtnZFBNUXJDNGVKR0lSVWxGTXJHQ0FwcmxnZ0NyNEt4aGdYalptWitRQmovb3Zrb1NreUMyeTNtWnVDcXdqa2JnaTF6d1FyZjcxNGdXR3RsbHNDT3RHSnZuZzhncThCSk5RZU1FVmlBbitpa3pUMlZoWmlhUWthb3RlTmtYVkxjY0tpUVVlRUVMNko5aEFCYW9RVngxd3k1bmlOMGw1YlVEQWJnd0p1MDhPVTc3QTRTWHdQc1EybzBrWE1vU01CcFRmYittYlFMam16dzV0UjFFK0RFc0ZmNEZVbDVyR2tlNWpkR1Z6UXE3cVh1Z0FHeit3cWxQejVZRHpCdytuYm9YUmpzUVZSb0NRbTVudWd5S2ROZGhmSHZOdkt6cGJwdUFnQnBSSktMemdpb2lKL0tVL1FMRnNWaXN1U2ZsNnowQUw0aWRQUU1YY094NzROam9ZVU5rcDRkOEVvMCt6YllEaTA1dlpLYUFzT095ZGdHaEhDSDk5RWR0TUlMUXlBR000TFdNbGRMc0k0cng5eUNPOHdlUVpDWjdKb25MVW4wQWUyMzg4U2V4dC9tY0hBWHFMUnRLb2R5VU9iTzJ1bVNTRUF4NC9jTmgxSzBwS0Z0K2xTa3o4S2dUQ2ZmN0MyaW9OQUlYNEd3RXhUUEpScE9EWUtMMlloRUk2eUNRUC9ncy82dllTK1g4OFF3SnhGV0FCVEVhZG5KNFJBSEliVGVkcjVnY0FrYVhIRWtBczBhYkVoQ01YQnJLUEhJRnp6dWNlNC9XNEVrU2FJZzRIUzZaTDdlQ2NaK05xMWozZVBqUjlKQ1lZVVM5Zy92amxFTnBTMDlEbVFPSnNXMDh4WG5jemJhTWZnSGdNeEhZTWYvVkR4NVc2bGExdlRGd2gvVXhrNGNCWHJvRDhwUU5KS1ZvT3Fnenp5Y2lSS1RnNC9DbFhnWFY3ajErUXVYV2JjaWJ5QU9MYUNLMnplRXU5SEUydVJ3b2haQmJ4SHNzUWttL0ZCZDZSMThHc0t0bVp0dzdNYjdCb0FyZFZQaGxpR3ZMSGRPVmh6ck1qYWdmN1BLdG4zZnZ0UTg1c1dJekFlbS84WlN0TmpycXRWbWlYYzRRcHhpbVMyQ2liOW5GQUtPbEpDcVl4WUxLQWVvNlFxU0hXTWpjRlp4SEdIMnlSdVRpVWF2NExkUzN0aDBNWHBUbnRwQU1UbE11cno4ZWxaNXc0RmN1c1pRZkNDdnp1OUhySFdxeFRUajQ3U0FnQllCTEFscXlTaDVuaHdIdVExOEJKalZrQmREWUNOWVUwdVZ5cGR1ZTVsZHpFdmlSd1c5ZklZUllKSXFRMlY5cjlYU2Jrc1lVbmY0MXZIeUpYazhuamw2ZnpLRWRkcG80blVibVlJOUJNWmpqT2x0ckpOdzZRT3Bta2dBcU5qL3c3dFJ0RXNERTNSVGxwd0FGQkEwRGNBVjdtb3BtNUtwQzVJMW4weFRwT015eXZQRUFwam93VEptSTliUkdUdlNGRkNQMEFMMkJNUnFRSENVLzJwa1RrSW1ORHJtS0dpZVo4eFJzVXBIWmY2NWNqMUVOaFJlSUtUNVRvVHJZTjg5NE9rQkk3aWdRUlVwdTY5djZPV0U0bVFhbG1YWEZvVmszSUltR0k3aTZnY1BCa2JqbS9jNXpIZGFLUUhQUXA4aDNsbVhXZUVCNjRURklnTFpaaUxuZUdXYVp1ZFRGcGtnWVlWYVF2NEtLWjJTM2c0a3BGN2drZDMwYzdlZVlIbmd3OWZ6eCtNeW5WTTlPeFBiZ1NwM29qdTBCQ1lsSklRazk2SmpkMmcyM3FzYUEvTXh5d0VIV1MydjB6OG16ZlVQbVcxVkxYMEhZZWJuWm12b1l0T0NwajRwbm05L0xNQTNlUmtJZFplbnpXYmV4M0pPa3BaNm9tSDRwOElaRld5bk9walBHVkhPYVVIRWFQbVNjSThRa2haL3FwMHpwUGlCK1lWVWtLNUVBcTQ4eDJZZ3VyYWRjWGsrYVlOTmg2RldwdGU4dmNXdWlaeTlqSzZmano3VXk1NUlGQXozL2hhdTRDbVhCQzFTdTVYK1J1QkFtSlNnTUpMYkhGa2RPRCtRMXlKN3QzVEx6MmRBRTVJcWtkYU1oTU82MUtIVnphU3N0WitvUVhpZzJBRmN3emdjUHpEVWlseFFOa2xwNndEa1NDSDgrTlJrazZZOW9lNXZpeUZVa0huUUFpRGlVNVFJZVo1cG5jaFRFalIrb2dPaCswOFI1MW5oQnQ1UzBZVzVMYmNUa1ZoS0pxcldrdExpWk5RUU5HQTMvVElBSUR4amwzbW9ZaU4xQVBwNnV2MVU5YkhBajBQUGxzcEprb21IQ0NNM3JYcTdMY0oyaVVpUzJFVnN5aFFKVDRZazRHaUZUQ2hxbkZrNXpVRU5pdXlGUU00Q1JxTXdETHg0anZvSWtxUDB3Wk96OFF6cTFpNTA2a0VWWDBUT2h6NG9SbWRrUlN3NlJXeXN5WjVRdkpLYklDM3BNeTRJZTBiemZRQnQ3RGZEYm4wRUdZY2VpSDM2UE1Fd0pDRWJ5T1cvZzFZWkREWnhXYmE2Z0FyVW1qMzBJYVlLQ1pBSVd2SnYxcGExcTZwWmM0ZTZZWDJkREUyUFFUUGMvb2QxUlNZc0lKem1oWWo3UE94VEpLNnhrTm9QZlk5R0orQTU0cGlnNVlBbEk3VU5wVnhaTklyVlV3UUpMb2dnR2VrUGxFSEdOZ1VaaTNITG1KUEF5QUxYeHBocERTUXpBeEhHa21NUnB1U1kzeUxPSnI2Vi93S2RLYkcyNk5lUVRzQ0JKQ0JPS0w3KzQ2eU1hU0FEb01GVUJrNUFuaDJ4VzNTQy9CL2hxaHNQNmZWT0Y4ckNiTkVrbXBBTnhGZUFCRk9CZUFMZ05uS0FGMDBKRFZndFBWa3o4eGdVV0Juajl0M01sOGNLdC81bjJBazUvUjhOQzZScEhZd2tRczFXdm1OK2gwc1IvR0N0SUZISDdkWjE2Tjk1SUJNclZXTW9DVFNEcmJTd0FFMUdwWGVRUU51VWt6dFZIMVRtYU93N3djclRWR01vWlJ4NEJha01obXpBdjducEk1MGtqSXdKRjJ3SVB4RUtpNkxPVWNnaVFybGxhVlEwVWk1bVBrQ2FGOGl1Z2lqR0RlWXVsQlZkckZ5dnpJUUFZdFhwZW9LaUowaXFXYXNCbGJ4SmNucFQ5dmN1aXZtU2M1U2MzcGFtbDV5UlpDS3FEblRaQTU2UGR3MEVCTnlCb1AwWU1IbVFXakFROS9nbHhIWWd2YnBNY0dHM2tzVmx3ZXNVRlhvTFFXTW9NUlhRYXlISzVNclpVTWNBYUowTm1XQUpDbmcza1ZFMkFTd0ZrV2ErZmRmd3FZVjlNUVcwYi9zOXJyZXo3R1NndENGNHlaSHhNaXdIRnJHcVZTSUFST1NKS2xBdEM2MjZVOFlZNnhQUit6SUZtZUVLK2p3Q3pLbEtIa0xVL0hBcG80b2FBeXlxeGtSdHVDQVF6ZExQRUI2cXJ2TVFXT3Bkdkd3Z0N2SVZrY1ZqTGpaTmFSUUlMQ1NFV3hjMSt0NVhseVF6bVZ3UEE2bndISFlZZzJaV2JISENNVXNaRkRRZWVpdTNmQloyWUw1LzhvQStWd0ZhbTFnZ0Y2U2d6eFZXRmdhZ2F3WkFvQWxCNGlLcWlPblRac1lBbnpZa25JYVVTZ2ZIeGdQb1k2elV3U0VGQmNCR0QzOVFJRElEWHpDSmd0MG85UUJwVU1VQmxzR2VUTVBDSHVRNkpta05VTDlKa3FjamhWKzZyZDRoWk0xTWljMXNrQXRodnFlWWtHMWdmRGJaV0N1aFoxcU51ZjZIVWQwZDhuaWs3RVJXbVg3cWNaN1czcDF4bUUybUhWekVUZVRqcDh0WVI3UWJ5NmlPVktqT2hJL1NQRDBNeEpQc1NMdFFMY1I3dElyUlVNMEtoekZjTWx2Rkl4UU5TdFVVQXBWaVRZREs0eUFLZDJGa1hpTDdsNDNoRGJXU0RqSVRZeFJ6bnpZcS9TVzVWNUJDempzRUp1b1JwZ25hc1lBQjZ5cldYTUp3TmdtQWVSajRVN1FOeGNJeWROZnJ0YVBsb2hRVWpYVVpqWTdZMmdMV1pwS3k3MFZxUWw0aU16S0V2YWlybzlkMkdtMkljYW4wVWVzSmhhcjJuVHdONTdtcnBwZ1VZQ3c2QTc0VjZRK0UzVExpSU1Rcllqa1lXUWx3aUhjOCtEWEVJQzlCZU5Cam5UUTFjeFFGYXVFajBnY2poY1k0QUM1clhnV1I3dk5SK2dFTENqM0VLbkg3Q1dSSlRhUWU5cUJ6UFVpbHNvYnVzNHlqdGRmaDhxaEtCMW16WjZJbTkxTEV1TVpXUlNJRjRWMjBSQ1piMk05UnFNQVdHRXRZSUwxN3hYRlF0RkFTZDVXbzZEbDdVb2s4bU1hVHVEWXQ4UE5kNzNadWhGWkVpS1VoU1hndVdsanVtVlJjZnpWMmJ2OWZyTXY4MEFaMFd3OHZHT3NVR2FxWjdId3RjTTRBc1NDbjVIdE1ZMUJraVlGem1wS0kzZlhWVmxBWkZPY2lLZGlLSGc5dURFWmRZRE1jNU1HTFdrR3BLai9GVHVhM3B6ZERPOW1GY2EwWHRrNGZaV2RDTnZVVmJNRVpwNHJSTnE0WDJUOWM0QW1aQUhnYUxNbFJBWkZ5UjJLTkswUmRXNEJRc3hvVGVVZS9SU2hKQUJGc0FIWERLQTJaM0FybitOQVpUK3ZnMU42MENueTFqNE5nUGtnclFOZE5EMktnTVVNQzhDUDhBQWhpaXJHTURUeVdGck1SajQ5bURKWmRhR2M0RmRYQlEyT3JOYmRlMDZTMEFmM1EyMXVIR1JCQ01LdDA5OXlXRXZDUlg2SXNyN0hiZ0NNbURYRmk3TndkZ3E1QXRwMnpTdGpBdno5VHlpUnlQanpScXh1aXcrcFdNRDVSNjluNFVvSGNRU0VBeGdoWlExdnREQnIzK0xBUXI2bDNhQUx1NTZnd0VvQmw4bjdMN0JBQW56WXJ4WE1JQXMwNWxPWW1hWVA2SlVyU0lWakVtYldHYWJOU3JMc3JiMGU2Z2hIT1V5VDhnbjZyWTFoOGdlNFdnWjZjM2l6NFNZTFpBYVEzc1J5NHRlVkYxVVFJekhxSVFXRHJIWWtBRXdxb1F1YnNNQUZldjFZS2NJOXFwb0xxcEtpckFJNjV1dmptZkRqMlhRYUNpQktaYUpvWmJSSlBqMXJ6R0FEZzBOa1pVbDhEY1lnTjAzR2FDdEFtNEtCcUQwTEhNaG9wRDh3bXJTUWZZU2Vxc3F3L2s4RUlJd2Rwd1FPT2tXOVhmdDRMRll2bm95OXN3ZmsrRm4wRmx5eFlvZ1hIaTBHTXZMdVlZYmpyak9PYlJTUGhsaThSeVdoaHhWWGJ4WXF3Ym5Jcnk2MDhueDhGeFpQWjIrMGtzRzhOQXo5TG84bklwdTZoUExmTzFGMXJiUlNDN1hxT0MveUFBS3FXUFc1Tk1mTW9BODdHY01rRWtnUE9ZN0dZREJ2c1NKZU9GVlJhbXU1d3RLemdLbTdOQzFsSktRa2RxOWkxUkY4V1pDQ3g5bWl6R3pTNlVOM0htUk9EYnR6YlV1OGJtcnFIT2R3aDZqZXAwQnRKbDVaUUluQUZSN0h3OTZHQmdJR2d5QTBMTVZlNTBCMUl4UTVyQjZYL29vb3VoNXIyRlJ5Ny9FQUo4ZkI1a3FGTG0veVFDT2xaMzhRZ2VJSkJBQjdrb0dzRnN3TVdGVUdkZkp1eHBFL2puSHUrc0hNK3NkS1AyU0czNWRJaWhTUzlhOHdwazl0RXlnUXJaQTQycWtIeG9RaktSSktld0xCbmk3dWdURWhzSEMvbW5NRDkxU3l6RzZFaEVadDdTVHlLRUwyTUxVd1ZJNkxGWVZsSGJMdjhRQWg4WVcwZTN2TGdFWjBObnR3bzdLMGI5a2dFZ0NFZkRPTmdORW5iak1iRERzaHV4dG95dDZGL2t1UkNtNkR0MHYwNldSdDlqWTYwS0VyUW9ranp3REh4ZmpWekFBVlRoa1M2bVZRR0t0RnRKU0FpRGhvaUUvL1FaUWtBRVJRZTkxQmhqRE9KRUZOc01aOUpjWVFLaGdTWmZNK2ZVYkRCRHlTTlVjR2NQYmRvQUVETlBnYzZxWGdNV2NIQUFaNTVqYkJGUzgxQXlRUTE5dWk2NHpRSUhzY05YUVd6bFEyVnN4UUQvYXp4Z2cxcWVWNm5EY0Jyb1dZUVdFaS9MK3hPMkxFQThkZ09pWXd4eTlOeG5BdlJrcVZ3NG9Bb0NZZ3BzTXdIVk83Q1M5U3hFbWZIZ3hYTkI2YWREOU5RT1FtN25SU1F2WUZRWWd6Q3Z4d3FkS0NkUnJtWSs3V2srSnYvOWZNY0EyR2NCN2U5NEc1VXlKM21BQXdGdWpkVzR1QWU5Wlp4dlZ0SnRhWDlCMFJZTmtBTDZRQWtLVEFaeFk2TDNOQU83UGxFbGpDY21GL2c1TXRYenpvNXBVOWlRUkdUbU9oQnJxSnVSaXVMQ2hvdC9xTnhoZ1hKZzYwZ1orbFFHWThpQVNRWllNTUFKMFVUNituWHFtaERGQ3lwclNZMkxIRlB2U05Eck1CRGFYT2dDdDQxeHZWdndQVCtRV2xyMHNGQnFrWG8ya2RYWXJRR2xLWVYvNEF0eVZCenNPbDlIOEVxaXR5UUFjUUd3am5BRml5RWF3Sk4xa0FPSVN0Rnk1ZUhOeEZqTmpVUUpCRWp1cDBwTTRYeENQNk5zWXN1cFZVekRWZ0o4eGdLZmVjUXg2QlpQS3NyekpBRXg1a05qT1pBQjRvQUJleGJFYkVxRFlCUXdkU2srQUxidkIvSmU3Z0NGeGxnbEN3UWNxVFdnS0RKaStiaGxRKzRUYk5XNFpPMHIvZVE4ZzA0U0htN0FuL2RKcStDbmFHU3ZrdnZPK2NrUFZackc5TFBDOXV6UWs1SnNobVRuczdsZWhpOFFsc0lTOXM4bHBIS1pvVUpVTTROdmJneW9Wb1ZmZ1ZMTHE0bEpnam5aUUE5SkhpTFdQdU1OZ0FMYy9iR3AzQjB0TjFXVjVqUUU0Y0ludXJoaEFvWXNrYWJIOWd2U20xRTgvcUFyVXpIN3ZDVFZsOWFuY0VXa0hnUGpEYzhNT0lPUkRGZ3lZQW8zVVdLdUorSjVIWG4wT3FsREtmWWRLNlJUMllRbmN2Tk52Z0R6T1ZrMTdiT29zTTJnc0RwUkNDS0xTWHBnU29ScW1WMFgwQmUwOWVFTHVTd2I0K2k1TDJJT2trVlhRVENjTG42dTBuWnA3d1FnWjl1azVPdGZ1c3llcDVhbFc4eVpOK2p1c2ZZWTdoSXRJcnc4TDVMTEdTVEVTcGwyV1YzTUYxMzZnNWI1a0FJMHBoM2pIRU9jdVFDVm55RFBEU0RLSlZacjgxTFZDSGNJY2ttdU1wMHVBaFJvVDRHc015RjVpdXhIcDRkWTlHMzFRaXF6bEQxejRoaXNUWm5BR3lkUktrQ25TKzFQaUsvME4zVTRMODBKT0pZUFh6Z1FONGtwMmsrOWliOE1KbGdJM0dZQ2RKbWt3d3ZSUTBKbmgza0R6bnREQkdIaGdFOW83ZEhyVVRwQmFqYjZkQVhzUlpVQVlLWEdIc0VVV1BvZ2xDeUk5RTVYR2dwSjFXVjRraTZiZ2ljeUJKUU9vWTI2VklGOE1HNmE2Q0paNVp1RHdvQ2NZQ0t0TU5XSkRzMjRpN0ZOL2tjdGxraDA4MnFEVVdSQy9nTExGNkxYUjExN1RSUUQ0RGg5L1J0K0ZzT2UwSWdOZ0ppU1FHQ1dwZUYrUVpkNExER3ZwVG93WXdyRUZuMWh2U3RoTklYQlpnTWREOCtHNFpLa0Ntcy9wenN5UXF5S2ltSVNrajlvTHZ6dTRORWk5QmFuWnE3R1poSkU2R09oK0NyUXdvOTgzQUpVZ3pGNmJZU1FRTVpsbGVXZFdMOERtYWVZT0xSbGczc3doVHZ1RGNxcHpQa0tqOWtyZUdEaTZDS1EzNG45SDdJNEVObzRSWG5QMEdXKzByQnkwYXdiL1JLQXRISTNxK2QxU0FiTUpOSi83aG92NUxISUdaY2s5MENDQnhGWk5QYjNNdTFWZ1dNdUFnb3dpTm84MGUwUENMbXVCZTJKZVRTOWh6MXFXckt6b3FSb3k2Rkk1d0RBRkV4SVNyT3A0MU1temcwdEJhdndBZEppOUc2L0JmTys0UTdVUEVTMk1LQ3VyT3owbW9oVDFmazhPZElwS3YyQ0E5QVBacWxBd2dCWWVvM011NE5BbzNFVzMzNW5nOVVoZzBldVp2cEVJZ0VrM1hQd21tUUlqek5GbjJmcFRyYk00TUdMam93L2hSNHZVeWVQOEFGVmNqV3pEZFpvVk02akkxMzlzb1lxQmtMUTRFNXpiVFF3cnZkMW9pU1BnV2hxZGpCNXBDVnpHd05ZbDdLM21kYVJxUVBPdzY2enhyaTJ3TjZ5SkhzaTVJUFVMb01QczFldlJwbzdKQWpxY0ZCNFRKanoxSTRpOWhVQ1E5bmhmNGRUdW9HUmt5WWRnZ0tacHNIUng5c1pVei9sNHRraU1DS1V5cUx4bnFtR1IyTzBRM2E2R0VDTXNqWk9DRWVBdGJEZWhVYTNlNGZNVEFWT2NRQ0NLM0JpOSszSUdaYjcrWXd0VkhMVks5UTVLbGdJcXU4a3krWlNsRHZqeDNwU3dJWEF6Q0xwVndoNkkxV05CNjZTZjlBYTBNZXFGSDRsSDFSYkl1WnJVN0JWc0dvdkY0ellKWUxWeXI0SHhpREw0ZXpDOXdkWlFhaGdsT0V3SFlEMVJWd0Y5SlVNQTRqbG5MejMvaUJibWZQVFFjbkQ1bTBvcWpLZVZjajU2RFhJTzg3UGhrd3M0MW9Sblc3WGdXbWRoVmhQdGZRL0U5elBSVmc3aUkrRG8xYXZhWHBsQlk0aTBOcEFZTzdhQWRyOEZXUmhXak44dVN4V1p0cm5vVmNoZ0NseURRUUE2a3lYc3ZmWWlrWk1WVlExTnQzSDQvcU5mRUhoVW5xK0Mya205U2R5cFFtcVJYWURqUUFnN0lLcUI4Y0F3Nmo4UXBaQ0RKcks4ZWpKTHdPa1NrSWxOZFhDSWtFTGo3T1hwSitJRllqNHE4YUsyL3h2SDg1NDRFdWtHMUxEc2R0UzZ0TEo3aGhZNkMzbzNLSnB1ZUduMnZpaG9GNTA2VGc0NTFEc1l1UHAwTVlQUUQ3SVVRR0xna0lJc0xPMnZnaE5WOW9uWHo5VlNENHpMWHZ6R0lmN0VQVm5RSHc4bVdvdGlvVVFSZzlBNFBTVEQyNXVMREZUWFBXVnlGMExjbGRRRjdqUTQzcGNYVDJMQnVVVEVtOHBSenpHRHVDMHFMYnFEQTJxS1JZUHVpRkFsMGtOYjR2MkZqWHoyWXBvU01SVHpNVW10WUdEbjJySEtxS09Oc25aclB6bGZtWVdqaEc0UW1vamZRbWVKWWNlQjZHVWZ6dzVNNDRaSVV1a0pZcHA4UENuOTg5WGtlZ0RzajBvdW9MbTE4U2lQQjZaMTR4eUdmdllhOCtrUkhMTEpxSitWcUlUazFTVUhZWlByUGFicDVtUjRFd0ljbjU0VXcwOGtqRlp4cHM2QTZ1L2tpOFNkZ2xTRURsUEJMTExFNmRuTXpxSWJSdjBYMjZsd1Z1cldSdkZDMktaYXhSREhxQU9RanBaNC8zcFMrMVIvcWI4UjJNQWxocEdOcDhlU2hpTmdabU1BL2hiU2pqR2NlWkZtd1FnbzkzdmthNUJlRUxSTzJSQW83NzJ1SUlGbWZJQlFzSDVmRng3NEdlT2x5TklacGlCbW00c3VOSmVoaW5yTmhkOFpuWWhpZVgxVkZGckxEK2ljaVp4eWRudzdSU2RLdkZ3SnZ3bVMxTkJScmU5TkpBeXJPR1BYSUowV002MmtMbkduSXdTc28vNkhiVEVaSE91eG1MUTlOVDNkUUNNYzNGUGpuNnNpdHBheDZnNUx5LzI5Zmtqa1B1QWtmZWZNSWFsRWZtTzJjZ0pUeWpIVkJZYng2YldBeStlU2JBTmNKQzZKazhCc1hMWWhaVW9vOTh0clp0emxnbGNuYllFK2NLUllnZjdtY01ZM1I3UlNNNlIyOHBJS2w2NERvYnkwaVBQdGlmWU1MT2RMM2JmU0dhOWZ3T2FJaEFUbFlubk05YkdnS0ZkVDRvc3RaU3VBKzZKV094Sm1uMEhvRExzRVRkRkwzR251ZXhuRnZHN1UxRUxqVTlhbFV5OTVHT3VpTm9KYU1nZjBxNU1CTnE1eEtHRXozNG0wV0xteWw3UFZwMlk1eUJ4R2JZVExveGVpYk9zMWxJemdXSFFJQWFhRzdtcEpDZVhHYWN5NGUrUU15N1JOMEFoRDJVaXlrQzQyQWQxRjE4WGd5ekwzWnNobXk1dWIyNWR5b3dMb2IyNytJVnVKUHlTRVdReUxQRFFhWW1QSzR1RlFrRk5EUm5COFVsUmJZQkJPTTdxa1pZb0NkZFF4MDNFR29VdWJPNllUVzZjTDNHa1p4ZHhuTEtiYUdNSzJHeENuVEtXTHdzcFd5UDZWRE1DY0pESnA3alAvRVJWaVR1b0g5dVpzTFJNVEVoczY1REFTTHUrR0daaEZ1bEZEaVdBQm5JUTVFa2h2TXgrVlVHNGFXckFEcFNTZFpPSzJJUmRJbTVZa3l4a1dCdERsZ1FJbXJFT0NxbEttSW5Pb2RoQUdqQlp4aUhUb3dOSkU0QUdleEVxcWdDVFFDRVdZTE9qc1cyU2d0ZkI5bTFrSkt5Z1RPaStMd3ZMOVR5OHdROHN4MHp4N3pQUW1UT0lMSnBmT1FGcEVNU000bGhHVEhFTFVRd2FlaWNEWGdHa0RvV1FzQkNWUUJaUzJwNGN5QTlvcDgxOWs5dnZZVHpQL2dnMHlzYUVkbXVEOG1mNUVIVm1GOEpoZHprdlI5aHdDSEpHWVJHZ21sRnNCVnBGeEY1S1V4R0xxUmtjRWZTT3poSk9sYVl3dUlXRG9ZVkdraDBZTHFscHNFenFqbk9Wb0VvZlZwRERqRURJRUttQzBQT2pqakxrb2gzQlBTQ2lhU0hBRmcrTnQ4aEpOeDJrYUZ2SGxkUW13TFB3cTZmeGd1V0hVRzFmY0tSMW9HZFdRd2JGcFBnVmJBM21EeDdsSm1veUw2V1pLb1BZYmpLWE1nYmpFbUxwWmpkdEVuNjIxMnFuQXdpdHVMREtpREM3Z2Z2VE5FVWZlQkFUWUdLQnZFRVNhbXdubFZtOXlaTnpsRE12a3JaaVltZG5GSzJXQ2xvRk84UUlaNGdrMmZIWkhtZDlyUFlabDg1REVnY3JNaUdicGFvaU5lMDFzSEFQRUdrRE5ES0QrWHFUb2I5YkNoUkV4NjZHaVZ1NGxmV0xqVWdjWTlPUjlvUU9NR1J4cnZsSlB2MXVVQUZIY3FZZXdaZlhrNGFRc2FVQzJMdXZNSXBVZkJCRVlGLzRhR2pEdlZMZ1l1R0diZVUrWkt0VmdjcWdvWEpYMGh0NUpLVWVSdzFnNitUKytYaFJyMWI0Rm83OERXaFlRWURwMjVDb01aUmwxVXNhdWVJWDdQdkFFSW1kNWZXUjJRV3BuakxMd3dRRVRrTG5OTE5wbGg2QkhXVExubEVYN1UwQkpjTms4RVpTempHZ0dOczZCRVZYSi9nRmlmK2xFUS9Ka3p0R3pHSzZqV0ZZRWl5dWhFZHJPSVBiVURVclVXeEZFTVl4eVl1V2dESXNpVUVYOTlKSUJuSzJ0V0FDSGxSSGRmV1hwMEJjUUVYSm5JRGZlVy9tSmQzbkZtTnA4cWpKWUwvcktSNGVBQUkzRFk3NHVRMW5vVVpCT1VDMldMVUlMNTFqZ0VITm52a1NPL2cwR0FKUGgyUU9NY0s4SjBUenphYW54QVdnOWFFQkZTUWdkUi95NzZtVjVkRWhuZWplRE9Qak1Bc0JZUm9IdHE1TDlvdXVmUGRneWt5ZXZOVVZ0SFJ3ZkZKME1pd3BobDVCRGVsc2lyRFkvL3dZRGhFRFd3dmU1QkJSc0xjZ2JobTdqUGJpSVdBZ01uWml5Qkd3OTZYMFVJOC9xc3loVWRtZ1dWZlNmem5QcE5UWnlTQTZtU3huTTV2N1NnUW1ZVGtFUFZVWGhhOERsWEQzSmVtMEd5SWh0Z1BsRCtnem1Ya1RacCtWaXJ2ZUVLemNQOHBYQkFCWlpPZWRWM0M5amxobHhNaGw2d1FCeUFrbUdQRXdaYkQxNVpsRWNIUFJLWUFyZWVjYnl3UU5aeTBvTzROc3pIVGwxQTY0K3J0ZXRHSGNXcEs0eFMrY285MExQRXpKK0NQc3ZXZ2dwVlFLVEVTT3dSRENTVlJ5THVZUEJFbEhKUHUvQzhKclBpZ0ZNN1NTc2l6QWJCbmtOazJZMFBWNnBlYi96QmdrQVZieHI4UzAzSlFBVlhxVS9kcjJOL3VGQlRDUmtNeGowTGNKam5nZERBb3p3N3hwKzd6TDJsWFVFa1BvL3FtK25KSmFsbEpBbU1Tek0yRzg5V2hkTDdwY1JzQTdFZVMxS0FKZXpvOXZOTk5XY3B3bEV4T3RXQ05OMmlHOHFnY1J3UWsrbkFPOGZYTDNNV015T2NNdTZaRVRnc2JYSkxaSUJzcHhDVVZJdjBWZnR1RlhLT2Fvb2tkbmVXS2VNLzc5YTh4NmRYU1lCcDVsNkdaa1Jiak9BblVJcjFueXVTcUxNQkdOQVRrdnBHZlFYdlo3SmZ6OVk2d0RDRjRTZExrOVphQTRuTWlMWTlTaUdsODJkTnJibm5aYmwvcm5aNm5tY09jY0FWdHh1RkEvTzlYRWdkZ09tUzZ2bmFWR1M1am9EVUFEMitpcVBzeElHck5YNEJ1dzdDQjJQR2dob2dkSkFZTWxLTjdhTnRKSUJvdmpMMmVIRVdBR3krdXpWQVBDSmk0dW50N0xxUWsyenk1cjNTQ0VjWlFDWWREUnBmcHNCU09OVlQya0pZc3E5SyttRzBvYnlFaXY4eTRQMzFTNkFLd1A4bFV6QkYwOTRhOWNaUXpxOXhRSVJUcDZSY0ZyV0k0UnhqblNHbmRXR2FUS3FDZ2R5TDJReGNEMmtTVkIxcnhhYjhlUWJET0RCVG9hL25qdENDQ1ljYkpZQnFMWFEvNnFDYWVKYkVyV2lyVndDT05ubFBDK0ZHelhRR0dSL2pRRXE4QTE3YXdhNFd2TitvOTdkL0RMNGZIL0ZBTHdaYUN5TUppdzZrczJQdm00VmZ5NmZyNlRmV1ZyTTNad2pXdG9CTFBCcGlFVHlwYVlIR0hjWjU4dzlwNkRCRDQwU3phZHowQWNpV0kzRlpBMk9nVjdlUFZlbFE4ZjNqRDVid0c3Z3RnWnlEQ0tsSWFQNExkY1o0SjNoam90R1NlMzJJVXNyQ3cvQmVSZmxBYk9HTVZzTmlPODNJbXNyQ1ZBSW94RHFUaE9BaFpJQjJxVG0yQkVYMEZ0VkRIQzE1djI0WFF0cXR2OHRCdUFrMzVrK2g1eU5DdFhOOVZlWlFSbEF4QnRTckVrSGFlbEdLbWdOS0Z6TkdPbVNBWExreVRVT2cvN1EzZWJPQmYyMFBpc3owaFlNRUhWajdDU0l2QzRzTUgyTmdhU2cvaFdhcG1ZQW9wT0F2eGEySlA0YXJnQnR3Z1NqODBYSncyamtMSUlPTG5TQTJLK3ZmUVZnZGtPZWRvc0I2cXJuTENWUjlGNnRlVC8rZzJwd3d3czQwZHdZZ0g3dVRvc0JWaU1xZ1VxellJRDBCZXlnSi9iV2JnZXJHYUNTQUJtTWpCM2Z3RlU5cHcva1pKbVJsaE9hREFDOFlkd0tIZ3BZNXRhUnBlaVBHSURTdE1aZkV5RkZFMDZCeVhTalVaYXZnNG1WRWdkZ21wb0Jzckl5TkViNkU1SW12MTRDN2d0NCtDcG9WdFc4LzJNR0FFRHEvQWNTUUFmV2xjQm1vT1RqN3AyT3FpNU1BQnBKdkdDbWtTczZ3TUV1aXJRRVBWaDBFaWRZNlFCVlJsb1NUbDhPWHh4RHh0eHZxR1ZZb0RSTHhha3NkVitrR1FITkU5VE5sK0JsaVpGY3FKaWVZQlVoN2pHRDk1SHdiR1ZLQ2k3a3NHTDRKeXdmbjdYVjUwYndWTXh0aDNTVkFiYkVnSEY1SVlwVUVUVUgxOXZxbXZkL3lBQXkrTmp4L0VRSDJNMjVicm9TT0RJbDBIUUExeEJuY0ZVREJpQ2tiRVFsd1M0aENoOHhGVUVBWHhObUNDWkUwcEplR2pMQitFYVdseklqN1lzZkdFRXFjOGlxM0cvYkNkTWtVTnZMc212ZEdqZEZVc2NmSmFxL3RQbjV1RUZMQVZ0VUpROWhrNFQ3cjhLZGlReHNIS0VFQmdqejFnS1BBMVdXUkY4eEM5RUZBNGducGxOWnFqRmhrTFBzNEF4UTE3ei9Zd2I0NkJNZzVma2pidXdDS0xCeEVBelE2ZW0vc1VlYzdTTkZlcitudkhHV29XcUJ2blJGd0toZExFTXdoaTBpVFU2WWlMR1hNS2xmNkZpWTNxamlSd1pJWG9MbFNOK0MvVC9McW9IUndiaVQ4Zkx1cTJML3phM0hJcjJCZzhvU2FCcWpFNGxLb0ExclBHNG1EQkFaWWo3VnFtV1FzVElYaEE3M1I4VUFtSjM1UkF4TDVKVnNuR1pWemZzLzF3RWF4WmpNM2JORUhyMXVCd2dqUVRJQWZtWmlFL05WckhlOWhVeDNJVTdjbEM0V05ldGxQY25TOGdyWG5KdTh2SklpUERwRHF5bk1hUmR3VDVpQ3E1MXo0aGhIblRRZE9tb1p0ZFNaYklQZll0MFk5eXB2SDVPUHVKOGhraE5IUE1ENU1uai8wS2ZCM25kRFdBTG5rZkYwTHd3dzgrTEtyS2hMbTZkOGFlRGthZ1pRWjF5VFQ5d1VtV1huNjFoVXE1cjNmODRBOFByQ3QveExTNkFkYk1UVTBqUXdad25yOStzNjExWmpWNFIwczBzR0NDNVhpUVpyT25mQlNVM1RIVC9sREZneU53bFd0RU5od01uNnpnTUVVN3Z0ck1BeERteld1UE1BZDBJS0xXVGpaQTF5M2dmZG9UR08wY3Y1SzUvUGt4M2ZSUCtvWTJ6Q3lVMWNzQVVtTUM3Q1Fvb2lESHdHSGVBOTY0QVNITUFVKzRHVGF5MEJ1cUZCYVU1SDlXakZOZWFXRGdhb2E5Ny9PUU9zcEVWMHlVOTlBV01YOFd0a25qenZrTk4zWjNIT0pzME0rNlFMaU9xSFpJQnc0ZEsxQi9kN1JscWtsMUJrSHIycWtLVHUrS3BLOXVNRmpYTDBCMU0wNkx1Ri8xZ3ZOUGRoSnRHVGxpQWIzZ2ZkaDc3WC9YWkRFRWpOUUtIRVRSVXhnUmZCK3g0WkVhZ1pCQldPaWpEd08xUXVnajlnUVJNekFVMkprN3ZRQVhyck1xb2dvc1dscFZwOXRlYjlIMjBEaDhPSUwwdHY0UHpTRzdpTVBQc3l6VERQbFA2c1czOGtBelR3N1BVVnB0M25STThxNnlBTzhpQ1FtcTYvbU5OTGhDNWgyVnhPS0hZUFdiSWY1U05rdkFodVRGOHB3R0lJVmNCY0NwRE54aW9zREJEQ3d1QUdsQ3l3ODlIZDI3SHVkNGJjWUFMTHlRaGJZSW1TT2p5akhielAyQ2dMMEdOWXNVZjRMSFViYUpXTFpDWms0QU5DVmlIVmQyaFVNSk1CcklCeGx4aXdZOWFYcUswRDdacjNmMWdVL09rcGdrZG5QNHNIeVB5RlFwVkd0eDNoWHAxWndSaXJ6enRFTW40OVROSEJwT05HSElUM0VHWElyL2N3cmw3anNHeS9CRjVjQWlFaE5DMGthSFIyMzRkRlN4anFWUW5OR0RMcHRnc1lHeGVZUTRKc29oRE5HZDFlOTN0R2lMTlIybUthbUVuNUVoZEFjclRLSjhySkVWTHJrWCtBaDk2cGpLcWNqQlpLYVhwZGIzZm01clZPQitXVkpCd0R4SmpzTXYvSTFacjNmMVlWL2lWTHN2MHNJc2psRlVkZmptVXAvZStNdis1dUtkTFduT2dNL2F3RC9DemUrakZpQlFHUXprckFXWmdkaHdJSWlYY0E1VXp5Y2tMYSttaXlWeGZJcVBITzZGaGlEalB5MlBGMDdHWmxGZys3SGFKTlBLcFJ1aStRUWRJcWhBS3dKU2d1T1l0cWFsbjVVT3NGSU5XN2hnNWtob0JqZU1yNnRwV2dxN213QTFTMVpMNElpcW1xRVR4ZXJYbS85RGlSQ3daZ21vdktOVGlXQnBUSjhXY3hnY2RUakg3VXg1aUFMbGJkeVVaNjh1elFYMXhLMFFFWm1paFRZZzl4dnd6bFRsaDJwRjNvOEpBRElma09jalBHaFdmRUpBT1dDV1I4TGk0QVdPL1pzUWMxbmc1TmlCcW90L2NNaWJlNDVxT0JqdDZyNHBZQXhDaWNMSVAzdmJ3c3dHaUUxV2dqUEJnTUlPdC94a1BKamJFTGlQUy80V291TFlGdlVVM3FCMkZ4clhvazEydmV6MXJWN2NBQUxOV0V2VTJhenNBZjBnRGp1SXdLbmtSVThGZU8vb2dWOHpITWpsckJTS3ZNMCt1bDZlR2NXQURjdElQOGdTWjhkcnhBd3JLSkdLSFlWYWdCeVJrRTlaT2RwQWFFU1NSSm9FejBnRS9VRExFbjh1VGxqZDFLT0paOERsQU1rUTFhZmV4NHJiZ2xTbUxPck5Kc0FCZ0pLUTZzRFdBelFBY3pWSVR1Wk5iNVhUS0ZSWlZpYUZ5VkJIZjRtOXlFNWJxZ09EQ3p3YTJhOTZlcXZpVVZUdS9SNTRmeEhJZFJvUStJak51NEFEbk0wU2VpcWtLdGZSR2RxVEtQME44RW1RbzVBYm1yWUQ3YUNFS3g5a1poU3JIclNLL0VUTEV0Q1c1TWtxYnNmU1NXTEJGTkozbEtZQTZCR0dUWlN3VzRFZU5tM1VRWWd0VHZEaHFXRytzaHZZYkZMYk5HTVhnUzROR0VNQXYzNnVxU1dCdWhzOUpmR01DaVFnY1JFeTJ6aHRqK1ZrV0Zka253MCttb0wvZVBOSlVDdGd6bVpMbGE4MzdmcW5CNy9NNXlqVkU2S1lvanpUQW50QW5HNmlveTZDaUh5OUUzWkRBbkZGQ2dPa0FFMkdMQ09jaVV1RExJMEVTWnNrVHRpWUJPWUtiS1NzQ0I5WlFqTDRTM1RjZUduREowWXBSL0R0bkxPUXFLQnA0ZkwyLzNjcUllSWFQeE5zcHNpbUpEWFU2dE4rOFlZNityT2RZcEQxVGl0NVY5TzJhVmNodG9PVUROeWN1akJ3YUhXQnZRLzk4N3F3L1ZBZEtDdFUwTnVwb3JHaUV6clpMZytuUnR4Z0VVeEc4NVdhN1Z2RC9WTmE0eFFkaEQxaFdDRUpOSnVDd3BwY0swWGM3NWhDRWtVSDVXb0xBcG5EaHZ4c1R3NnZWVEcveEVsdUk2LzlzaGNUaWJRRlRYbURZT2hBT3kyNTlWNHlGTEljdS9nTGdLS1F6VVpSWmVQRldEZ2F1QmVzZGtjYjdJTEFQSy9UYTk4RllzMUl6RzRtWWdWd3J5U0dNQ0t3YnNIcXZFMmlnRC9QdXZ4Z01BRUlJUythQnFwaldJclFRT3RVdUNvK0Y4b2IvRGMzT3lIRSt0bXZmc2pTcjNuQ0NjYmV6SnlZS3plUXdaVFZ3TUpzQVBoL09STE95c09HKzgxN0VFclJKcmoxYlAraGw1ckYwc0U2V2JzejQ4ZENhUmRWSGp1VzV2VlBtOXFqZi9rdjZpUkgzZ3JxSGVVM1h4RWFYSW5BeXhYSUl6b3Z5eFRVaGRITEhBNHEyOEhMMDJGRGRqeHJCVTVTS1JVVVQxcjJCZ1paSkFaWUQvM3NtM1JGS0xEVmNXNUM5b3B4ZzYxU1hCVHpFMUFiVWxRRHd5SnNUbU1KdHZTS21ZNEZqVzNaYkhKZVlRTnpadHpBYUNpSGhjSEhrdktpRURKZGhFc1pIZklhTkdLVndCN1F0dzdjdDFuenBHRnNzazV1bTV0SnFvc0dQTlNmUm53NHBXQWgzanI1ZVV3akRmUncxVVdtMURwa0pwVXJzT0ZHYWxOemZhV0NhcEFlOVV4UVptQzJJWkVodExCUDBVZllhMmN3ZnNlVzVCYy85Uk04QXBrMXFNSVNveHM3aGppTG1LQTJWSmNJTHhNYWhGaW9nczBmeHRPZ0VicDRYdnZUSlZDYmEvSkd3TGMvajluVlBFOHJCZ29UTXhpQTRxNjlxZzk4bUhVR3BTL1UvUUtxNXd1TzZGNXE5ZlRIUXZ1NGw1cXRObm1NTHJtTEpzYnJFT0lTdVRrSC9KbFE1MlpNQWViRHlaN293bDR1Q3pmNElGdDRjdHM5QTdjazBSUzN3RzlrM0loNmVQdUpTREFkS2xsK1ljbHdvOXV1MFl1aDdiL1M5akFKbTc0eHJHeitVYlRiaUNmOWFsMThzYTRLZGo0cXl6UkxQaHFOREJCc3VZSVFtaHgwKzhiMGF1b0lJZmU3aTlJZUNaMTlDTDFtd3o3MFZ1TkZTRGdXQ003RHlFREJLMFNxdzlFTTczMWQ3ZkNsTGp6cTFpbVZOemlwYWVFeXgyWGc2ekY2MzBXVUhJaWszZC90SXJEZXhZcERtV05oaWw1MVorK3NFdURDY3d2TXZmYXMrQ2Q5WWRHZzFUMitQcHUxekt2N0xvdzZlNzlPU0FPY0xDMld3ZUgwZCt6STVrQU52WlloVnpHUCtzVEtyamlHRGFwTkRhTmNBTG5IV1VhQ1pQcnJJRjdHcHJTVXBHNklOd3BhdkNqZHEwNGhHa1NUQ3JaV1lpaGdBZE5oRmhha0E1TnhYTHoyV2hXMEpHdFFWS0VqeFZXUC9BU25YTnNUV2hoWXdDVHQrcE1zQTNoaFV1OTZJcFdkcWw0eGptd2JCazJGS1pmNDF1M25lRzRsUnA4QThMNWhZWGVsdmx1YzNKUzNZNjhBNityNVRrRUVvZTFoTmhYVnc1bmtQc3Y5S1ZEVjVGZXBqL0tBT1liUXVybU1QNE4yVmFMZjdKSERMZmFPMGE0SW16enJxQk5QQ3NvM0VVMzVtcVpLZEVJRkp5T1MzcndKMGR1c28xek9Ic1NDYUhja0Y5ZEdDODVTTExXU1lYQ1FWWnlVckZ4ekpLUFFEZnh2S2F0UE92dy81djFnL2pWZ1kxaENlbkRnSmxMamg4UEh5OG41bkluZ3dRMFhHQ3ROUXpHTm9UY1VlMGc3dWNwdFQrTEJoQTJBOFNBRVcrV2RVNkdHRGRhN3pJZ0R2RGxkZUx5bytIZVlUMno0N3NEaWpMOE1vSzhGL3hCbDdDK012RWVnNUFZeUpSRzROV0RmREVXU1BUUHhtQVFGODJIOFdJUWRXNk9qdzVRTnpBSExxYk9mT1dlMFlUUERlVDFETDJSVk11dzNNdXI2QStHTUM0S0JSWjZrR3g5Z05NdXJGNytyS1NKTjZBOTBJQVJJQW5MeGtBWTAwMzhxSk1aRzhMYndZWlRURGFrTWZwYW5jR1lPakZDNmRuR2VLbGxRb3N1anhRVExMZk1VeVNoQVNEQWZCMGVyUTJLTjZhUlI5Njg5S21EOEhnd1ZzT2hDTWxqUUgrNTQ2K1pqZzlITTlVcHRZa0lwZ2tZRkh3dWdZNDEwVGlyTWtBbUw0SVFHVmptSGFad0lRT29Nd1VYSWEyYkJ5OWxTbHRzc0JzVkVyVUg2d21NMUZoWVVIUVVFRUNtWUNRSkpDZ1Jsa05zZ3hja1FZWDJONEdmSEhKQU5RQUxYd0k2WlNaeWQ2b0VmbTBRVUVyZkRGa2o1NUFobVpGb1FjR2ZySVFodGxJTzhZQUhVY3htYkdSK3dWakFDRUltQU8rQWlwTEpIUXo2QzA4R0lvbG1aUHVpTnlNbExCQ2Z6QUFJdm9HRFp6cERLVWxrV3d5RTVlWURQQVBHU0REZ2kxY2d6aHI3RU9ydWhObFdZY3BvZndxMVRVVHJjV3JlT0JVNDhGdHZBWEw5cTROeitYMVJTUHZSY1JGNzliS0FCYjQ2d3d3UyttM1lpQnNwOER3QUNXNW16UEV1MFRVbFNGNmJRWUlEUkI1enVIVFRBMjNxcW9EWXZYaFloMUZkWjFnQUlKd1NSdU9ybVcvTkFid09lNlpGRzA3UkFaUTVnQ2thR0tWc00xMHo3cE04ckJNKzFxdEFmeGZIdU1LOFAvdTRQYVJTUVpKeWpDVzBpZWJEcUMyQk1paURFVTFxUTR0VVltOVE0bGt6NGlNdFlNYklkTzRLMHo0cWlnT1JqMXlvcXBocFFRaTUzSTRIRHRhL3czZzhoRld6WTR0QWZicEpJYktaWXFtS3Q0NVB5SEN0Q2twb2IxZE1rQ2hBWDQwZEdxalZaV1IrMFlsK1hTbDF5aFZnSmdUckd4aTYwVmtZOWRkS3huQVFwak00WWpkaTFxQ3lBQmtEbTA2MUpSMld4WWt3VHJBMkU2b2dUd2lmZWRZaW5JRitIOTM5T0ZxZ0pOSHpGOW5nTnNTSUpiMVhTY1R1akxMQXVhQXRLRmxSQzdXamkxSzl4V1ZDT1pLUFZESFZ4SFRJejNOY3lKNkd4MVBZcU5BSVlCQll0V2tUeitwRjRrVVhoOExkN1BQK1dTQXk0cEROUU53YThHeUdCYm9oa2IvRjVWVVFLbzB4R3FOcGNreEd3L0pBT3doSG9NTWdPQTJNb0RPY2FacDVhMlh3UUJnampPK3FOUVJ5V2R5MU5PNEk5MVZ4dnNWNEYrekFoa0Q0SHNTeGovVXFmYUhFaURXSDIwZVZwRzF6YmkxQmllWEZ3NVgvdW5wQTU1a0lURllTbk10U2dZZ3REUWtnQ3dSalhBQVYwMG1PZHJBQmtEcURlSHR3TGNWN21ZQWdDbnpnZ0VTOVpZNGpXQ0ExQUIxUUhlc1c1VGhJaWFoaXBtSU9EdGlBT1VPR1ExanNEc1RPc0VBczJBQW9KaVE1R1hPV04rQ0FRYVc2cUpoMFdJdWxheVhNNnJJL0VYMUVjOHNWNEJqckFCMzlPRWovTVVEbHY2VUFiZ0RXVGRsVmhwdWloZTlJdXB0ZXAwQjBnZXMrbzNyQUpCNnczSk5xQ0lLVXdkWW5mVXhMaGd6aDFxM1kyZ2RFSDh5d1lxWmp4TFZOMGNreTA2aTRsQy8vTEprZ05BQW9Ud1dHRnd2d3JRRXFBaVVzQm1oc3pGaDUvbjZjNFQ4Rzk3cmdnSDZhL3QvMVo4amp6c1pvR2tRRzZ2YWJVUlZGZlllQ3pMUHZYN3VEeFk5Y0VnYUFiZ0NNRVhNdk9jRnVuK2hBOEQ5WGpNQXNWa0xvcGNqdEpMeTA3Zlc2TDNCQVBReUlVNDJUQlhNdkxYMmhDYVhESUFmR25HdFk0SlZjK0JKam96OWVvcmo0aTd0RlM2dGNEYy9VOW5MMEhMYVREdXE0VjFuQUdxQXFKT0xtbm9mQjJ0a2dBUlV6SGVReElpMEhBUkw1K3NibTF2bXpvSUJIcG14U1pVWmtTRDZZWDRNbVI3VmZObFRRU2ZjbnRWS1dQa3hLdWxSamFZcGdBY1ZGL1ZSR3dGMEQwQUdrR0xlckF5QThmZ0pBOUFRZUFtc1JPU1FDdU5EUGFrTVd2REIyakEzR0FBK1lPUWFheUlObmxWZjJHWFI2UEh5a2dFc0RWVmZ3M1liZ0VjanlSRzU4dU16N1RRYUNEUERvK1JaQ082VlM3SzhDZVAzc1JHcEdNQ3pSSm5MbFVtQ09sQ3QxbXhrQU5OOFFYSE0wN054NW1XaG9RR1dDWkNrR04yTitSaWd6S2lpb3N0OU1BQ2VqWjFMTXppcmlBQUQwS2VFb1k1V0xQWEhGQStzYlAxYXFZQmtBQzNtM1V1d3oyMEdPQzNSS2dZSVN2ZDJ4S216N2pvTTNRWXVDdERGZFFaUXQyM1VENmVkMThMOWU1NFJBNDZKbWdHWXpROUxwUXc0eHVWelVUSUFRcmREUkd0OGhYcUlhUTFHdERldGprVWRJdXlIRGhVRDhDVlRBMXlzSVdzSlgwZ1hlNkVFSU1vYTFiaTRwNmhxelptcUJwSVVvd3VIQkUwQXFxakl4NlVOQkJaYk13RWdJeFlZQUN0MkxQUGt4bFQyUzFPQUlOeWlPQ3pOd01rQUtPYWRxTFBiRE9BSnVkc000Qm15OUVtbHllVzhFN3NBeXZCUmp0OWdBQjg1Z0toU2gwQ1dEcXhMVDRpeXF4bUFHWFJScUFRbUFCa1hwNWI3Y1d3Sm9DYTFuRmtNZTlJZmVSNVZ4ODQ2UkJxODd5U3JHU0Ewd00reWxpMmE1eGhkUnZsQzhCQktNbU95dDBLaWJhdUFmV2ZKQUhnTG1nQmt0bU01cCtYdVpFWnNDRHJwbncrVUFieGMxck5qTU5ESzdYNWhEdTVidm9mS0NKQkx3STRXcTU4emdQaU5HSzc0NnhRaDhQcXBxMjRTRlNJbnJ6Y1pZUHlZOE1xdCtub2piNEcrV3RUN3FJUEtIUmpSTWNPNWduLzdCUGpTa3d2RUxyMjFGZ205bkZLMVFJbEJmUmI4aDR6ck45d1I3RXF4WUhsTnFiUUJIdGlJNzA4bjluNldObm5sSVZobmFabXBVVEZnRWhDcXRRUjRCU2RBZ2JBeGg0ekNDRzJOT1lUWUZGUzR6dGpTekwzU1NFZk9kVFVIOC9qbnBSRWdHWUFFK1JVRGlCUmlBTXZsRXJDZ2FhTkE5SG9PblNMdS95WURKQVFhSllBTXNVaVpsQlYvYWdid3dpOW1BdERCd1pvSkNhS3hIRzZVVVUrWHgvWElmS0ZxQVdpSnh5blFud2wvWkJqVG9zQVJmcVFHdUdiRDYwK3NXU0JrS0FGbW5GYkZzaDhxUU1rQWVETm81VG02YnJtSGd3SUpsaXlGWVZHREVpYUExWnJ5aHd4UU9ueWtxVWt3VjN0NDdzeFR6RmlSTUFMOE9RTkVVT0NrbmRiQzY4ZVh5QkQ2MGkzWnhlOHhRTk9RU1d1T3lKcGZOUU13cUplcnBnNk9Nb0NsbnlNRExNQUFtZStZdGN4WWhyV0lVNEJIRXFXTVRPeGtRZm5kemp6WmhRYTRRa1BHalE0YStCeExtZnM2c09SaFY4LzE1TDNTWVFFTjFqRzVaSUM1MTJBOU5PbG5vcEZKSEc3SUxTdE54UlJFZWl5ZXlGMm14c1NxSWdEV0FMRE9wUkhnVHhrQU94RXJmbmV0UXJjdUk2dk1haERscUNiaEVQVmVTL1RTV2dLSyt2N1VwM21aV3RNWDF3b2themhoWUgvbHE0Ry9iREpEU1llcE10ZzhNcEpsZUhjWnB4RGlkNmNCT2ExeWx2UEdUS3Z2b1FHQ2M4eksxR1B6QkxSTE9ocys1U3lXeDNhSDA2eGtBQmdUMUR4WE1nRERIVlF5SVpONGVwcGhaQUw4U1JVdDVxRG9tN3JzK2JYdEtmR0xETUJvTVdBeGFpUEE3MGdBNUVISVYzUmJCTzJvemdCbHpydEJKTHRBTHdSdHB4TU1tbFdpTGRWQk1BQTl3Z1BpWWQwVjNJQlF1K0NmRmdQUUltR2FNVktSeUtnbE50R3lLbnBMLzQ1MnQrSVVaaXo3T2dkS2xBVWN1TGlSbzhscUxtcEJvcjQzK2tWRDVUS3FVL1FPTGcyWkhER29DYVVTaUxDa0VSTHpOTmJJQURCQ0FrcUdPajZJTnhxTUZNdm9HZmFaaXJINmhZalN3R0owSjI0Ry9wMGxBTGtNUkhyU0ZsZjJhN0sxYnJyU3VJVUNadG9IS0ZJa3NuQzdwN2ZreXE0b1hWRzVQLzNUZmJlS1pIZjArMFNlYmFEVDlGRzNHRURvdG1Qa2o2WUp5dFJWZlhsQzBHaGRaT0w3UEVTck1XdUlFdW14SXA2cjlCRytvVnhHZndObVFEWm5BSXB4eWx2UHo1cStyQzJ6Wk9waVF1ZUgvQzYzZWsrcVQxd21WQ1UyQ29DeFYwWWNodEV6dzA1aEZKakVMeFRHU0N3RzlCUWdnc3dPOVA5dU1BQzltaXlhbjRrc0k5OEZjcitCZzl0NWJ3OWVEYlpNa1dpNCtGRlpmZFNzTjdFRXVHa3BTTXVwWk1rUm8vTHN0UFFGTUZXOFllUTdwaWhDQ1V4UDdxSnNCUVAwaTFZeGdKVWJXTkVGRjRXV3NNMEh6ZWxVZXVFdU14dmQwQkJsSVcvZHpzNWpYR1pBVTVIbS9GLzNpUUo0WmpIYWI2ajd4ZjlzVjh4dzVqZUZGTnlyd2hxYno2eXlZMjdEOHRjK3dYR0J4VGdwdm9HTHdBMEdpRVJEVFUrVENzWDhtMGIraW5WcDgzT2JMWE9MZTZZS2dxL1JHOGd6TUl1ZktvU29HVUNoMnlZQmFIYnZWT2kweC9RR0VscktHRk1aSmdTa2RubzJtenc4cjI2WnNxTnF0a0NucDlueDE4c290WmJhQTUyd3ZzZFo1WCtNUktybExiRnl1Snd1YXRPaXQwRGR4UDhTOE84UVFDRXg3ZFdKSWRnYmxBeXdsVEh3QjFuRE1xRW5qSy8zWDRZclN5ekdWQnJCSmx3RWJqQUFCZ1BSVkdXZGk2bm5ySVY2a3NXY3E5ejNuRDRKdmtadkFMYkJMSDdxd0RKRVV3bWtaNGVLQ3F0ejFPaTBvRkk0T3dpY0ZsK3pOS2pzWjFmWkp6V0ZxS2dyVzQ2OFpaekNLYXNsRW4vTkdzT1FwOXcvR0VBYlRpWHdYZGtZaTFqTDI4REtLYUdFZ25oWm8rbEQ5YjlXWUFoRVJvVzBkOEs3SFVXMExOb01DQ1NIWUtBNURLMUMyR3dBWlNJRDhJS3lhdXpQR0lBbEdBS016L2xIODd6MFY5VW9yR0lTcGtkV2cwM3dOWm9EdGkxK2xLZHFNOHdvNGFoUTFkUDFubVZqV1cwcnFVUjE1anVnSW1JcXhqSE9KcEtyYWtvU1pOWFlWczBDdzdOYUl2SFhKTmhEUUIyODNCa0NzZlRsNmdhWklhMlV0NG1WQXdsUmhwYkF0MGYrTHlGS0xKcUhzM0NUOTF0Tlp6QW9XamVoZDRteEErck9RU1BFUnljOEkwMEJZQUFHOTJXQXhwUVIxUUhHSnpyVThsZFltZWhlZVA1UjdjNHgwMWtOTmhKWVZNSCt4SG9VQlg2eHdMR09vcDZJVzdJWUdiU2VSS2VWVkNKMmxQQXZTRGZreGVCc1NuSmwwM21ObTdZYVp4aVJVTUNMYlpab21Ea09kdktDaDNwNFBBYThqUDg1VUJSdEUvSjJuTUExYjRLV2E1RTJRWW8wc3dOMEQzZzMvZ05lcld3dnhCaGVma1NKc29YNEovMDU1TFdvQ24vd2c5V1NnaG4zN09xSWxlR3F3UGlzL1BzWWRkYXltSE5kSGRQTFRINERmTTFlQWpha3RRdG5LOEtOM1c4RkRBK2szZFRGWk11YWxnYnpBVGgwQ1NBdHNYMCtRa3VRNjZWRm83R0JoTFBWNUhGbzZEaXBOQ1cwRklXTW81YXBseUpscTVDaXdLaVJFU3BrSEJuSlA2SEFrUlBkWGVEdUNJcVdJU1JYczVHL1NlcVdHS1AyRWZEUUg4U3gwTWpaS2MwZXVRYThSSUIvcVk0RXFrcWJBMGN6R3hCc241NVE0UWc2QklMSXkwenFlSTNyM2luK1EyY0NyNmNiSWpyWk94Mmo1cXRkbm1WajdhUW96NXVpME1nRTRSS0VlM1R5c1JYMDBWcjY5c1R4SllIQU96SHBFdEVQSkR5cUUwc2pCNU5YWjdOQWlwS3BDUzBOREZ3MkRGZ0NSTXZrSUxiZ0Zlb0FFaU5RcGN4R0FtRWx2RkJreWt3Ym5PU0UrcHVHVnBvOTlzRUFJVGZ2QzNWRUNkb0M0MjlPUG45OVZoT3lDUUMrWWZCakxxQytCdWpNaVFLaVowdW1rSXZpaXJ4QW1JMlhVN0xtU1FyaWZDbEZJZjltOGUyaWREcElzVUVCeTVKQW9ISmtUNmdiWkdjMTZaaDdCeUR0cis4b3JWd2sycXFSb3B3WGREQmVhQ0hjTkhkemp6YzBMQlBkL2FIQ0FPQ01VdjZRME40Z29wUFUyVEpUZkQvVHdKb0F5SlJYaGRrakdTQnFKSE1zWFFLMXdmZ3pGdkNkZVQxbzY4WGNwNVNrR0tmQWozRlhsWVEvMm1vVEQvQUsvb25sdmtKbWx5Y0ZYbFNKVmZ5TjZBZXdPM3J3RHhRWFUrV2pTU2NBalVRRDFtMUNBMFpPdXNpK0JZVWFrR01jVDhqb3BrYUtSbVkyN2lHckZsbFBuWnlaVGFvd3M3OUcrWEVheE9kRksweXkvV3hscHZpS0FZNnpTSHIzcWUyU0FkcHlNNnRldXpLaktwSFNscklZWWpnQm85WGZxc2k1YTh5aDFVQzRrZ2lYaUdvYzRCVitBZWhXSXJQeE4wL1NDZ3lSY3VZeC9zNGdXRzRGb2h1RVNQb1k1RlpuN2hVQzBkaVVrMjYxeWtSUVFHRjY2bUUzTFdjY0Y1dm5aaHliU1hCZHRnTE93amFQR3FPRm1mMDFTbk9IUnlSYVphdi9PSGk3eVFBWkR2RDUvMG03d2dDNWJVbWRCR1hYMGU4SzV1YWRHeHFmenI2a1ZYOUhJVE1rTWFBN1dGV1NkeExoRWxHdEIraE04d3V3NWF5UTJmRTMwVG93bm1rc2x6eXZTRUIxUEZtQXZQWWdIMWdCK2duNkRGZ3ZZaG5aRTdLWlpidWNkT3ZlZ0tuZ2lNS00xTU5oUWlTTnZEV29XaWxjeS81RHR0S2ZSWG9tRHJHZ1hwWWZUNWRZdEhVd1FPblF1TVVBTWlVWUx3YjZYMk1BRjVxcGsyQUpwa0VqRkV6Tkk2SXRwak9YdE1mOFc4NkMvWWpXSExHalk5d1JvNTVFcUJIVlBBQm5HaUJxSHI5ZkliT3pQaE96VlNwcDFGOER1eTVUMEVFMFpRakhJQXEwb1N2cDR4bE9hZnhQK2tUbTc1eDBDQS9pK1pDTEhqcmtsZFNTQVFnVVBVVGVWL1puKyt4WEhtMHdHSkJ3TFRET1NKcXJCdWtVajlaT3FKdTYvU1VEUkphUTV1TW1BMUJvVWlYcHVzWlAvVE1VVEVYL2F2UHFudUZmemI4ZGRXR09rQ2Y0empSYUw3M0FWYVBYTnYwbGlOTjFyM1dGek9iZm9FK21MRmU2bE1BTmJMc0lveDZZVnlBWllFRUNmUndjL1VJR3lQWVpESkNUamw2TU5EdE43K25NYURNQWdhSmFISWlWZ0prMWp3MmU4Y3FmcGRRY1JNYU9vSjdoRExpT0pBTUVpWlFiazlTbElmSXFBL0F6UWYrckRFQkhmT29rUSt6NUdkbmdDaVlzK0w3RHdPTG1FNTJUay9ERzlKZy9lL3o4S3VoTUVwQVV5UUQwSzV2cmgvYmxDcFZsZjFjQmFFb3Q0YktTQVV5cmg3eHJkbkpUeXpZYWtlZ042V092eEZVM0NjUVFzYUxXbzlJSGZrekhaaHdMWUZCenVHQUF4QjBJSGlCSUNrOEEyODVSdSsvcDBJemN5anBGcW1wZkxELys4bGd3UU1yb2FyMG8wcS84bEFGdVNnQjdSS0dUZEhLSkJLUU9lR0lEVC9jYjNOczh0NHlwUmhidlJlTVJRMTVhRlVWT3dkNGpPRktjVHl4TUU2M0ZBSWpUWkp6V3kvU1hETUFjN2dVRFVLdFhTRHBxaW1tMXptMUdvb05BcTZpYlNtMmY5TEc2djVaQ29KeDBrUkwreWIwNUZoVFFMK1JPbnE5UFgwWHNBckxtV1ZNcHg2RW80MW9SUUVVSGFLWFhRVFZvdlV5eGsxd21xYS8zcGc3QUhBcy9XUUlxUGZPUWVaWXhRYUk2YnM1c3ZDdG50LzdVdit6QXE0MnBuNGdEWHJzNG5XZWdkZ2V0eGdtQS9sNVVmUHdyQnZnd0xpc1p3TFg2UWQ5aWJUVklObm5NeHJDYjJRWEdvZVJzaCtUVlRudlN5UkhQODJIT2ZuNzZZWDZWQVo2ZkhJWUZEbk5Qd0t1RDBEQVVsUVJZcFFSSXZRN3A1aWt2NHVheGs2eWdXOWQ3eVFDV3pvQVJnYjlnQUNvbFRWYTRqMHJaNEZ3UGhtTjEwb3lOd1FnZDVuWUFlMThudkRNQzVFazR6MGh0WDdhU0FRZ0IyYkVrZWNrQUR3K1hETEN3RjV0VURFQ3R2dCtIdDlyM1hYd0VDTFF0c0llK3pkR1BzWS9ETUpZRVZheEtsQmJVWlpIZ2hYNHZHYUNXMGlVRG1KTUMxK0E0YTIybkRvQWFTd1JNbERUZERTNGlxS3FkWkpENmVpOFpRRzJKMkFaNlBwT2ZNUUJmYU9BVjdpTnRCMFVBYnVIVkVSSWZJU1JBV28xSTNlK2xVQ0NFQWJ5d3pEenVQSXNGSDh0V1dieHY1eEFRR3NhU0FiYlNMaG5Bd3pxVEFVS3JOem1xS255dlpnRFFKMGNJaG81N3NtemZkUGVhb0o3LzNBbkt1aFV5UkZjWlFGb0JnZGdnOFN1RW44d1cxenpHOVM1QWl3RzI0SGd1cDRBb0ozVnlKMW1TK2lONnJ6R0F0RDJoNC9EdHd4TDBjWU1CS0pJNlJhR2FrcGdqRndCUWg2RUt1NHFIZVc3TWpiaTFCODhWUUl6UU13N000RDhwNFNTVzZqSVpRQmNTQnNIVGprcmFqdEF1R2NCZXFNMEFqVFFvOEpvQ3Bta3hnSHhnQVQ3Vi9JVE95NzRBaVBaYk1VQUFPZlNDUXI1bFVhQkNZcUFsdUZGVGFkcUhKQzQzMFVFZmFKOVIvNk9nWGltbm5EcHNOYWtYVjN2NXkreTJTSFlJM3o0UVZCK1hFc0NTRWpEWGdSSGNaQklIQjJTR1BJL0MyL2dxWHdROGh2YU5RVytpK1haUmlSMnhkUEQzYzZ4YnRUcVJmVFc2ZW8zUjM2SUc5c2tBQTdZTEJxQUVTZ2FnalJVNm9NeFFSYXZEcmhvTUFMVSt3YWVubzM4SWVZa0FqSm9Ca2hiVWNMQ2ErMU5mQzUwQlU3cnBNeDJSQnpVa2N0c0dMeVFBdDVrT215Mm85MnlKSXdiSkFJVGVoNk1uVG03M0pnTkU0bkNXcGtCa3p2cUtMMEFYWnpMQVVDdGhwUVNEeENNV0hpVDFlWTdQY3JVd2Rub0tublFraGI2L3ZvbGI0elFUNDZrRktkWGd0T3dTZVNheWtBaXJZekpBUDFxYkFTaUJrZ0hvcVJZZGNHMDZJRDByemdCb0ttZWNQdktVaXdWZzMyYUFIRkl2UDFld0hkNlhrL1REMnFGUHdCblRkRkV0SmxPVTJBQzBLM2pNa0ZNc0drcVNzR0dxNWNuWGVtRk56c1RoeThpWHVMckdBRkNkd1FDd2hYZFM0dEdQWktIVkRPdjFGSlRUUUc1aUdtSmxpQ0J0U0dCWm54cHA4YndMVVBseVgzVHBDc1Vic1FnSU5mOEM4dHBpQU5zMXBqRG1yazZHeStEem1peWhLQkhyQk9vNytIUjJuQVVmODlIS2xEZVhnSHVPaGo3VDJJNWh1YlcxZHQ0VCtqT25YZ29BR29GcWhMdTB6RWNVMUt2bFZMNU1tWXVtSVBXdDN1ejJHaFNUNFZVR01JOEZvYVhuYnBtaEk5RFFoL2tjOHR6bXlMZTd4RHBxWXVZQ29HUUxlbXI3TUZoRDVsZTZaSURzK2hTNXFmTVo1dDMzYWdtSWRtZ3pBQ25uSCtWMkhiRUF3ZTdXbzJUa0kweEVZeTNXaHhEdHo1V01Dd0I4bW0wbE1IZnFwaEpSOWNhcjFaUFUyc3BUcEhpdXdpQnlwcjZMOUVMNGxNcVE3M0tLSXVPWGhxRFhUTFNldlpXNE9LbTJDd1RWTFFiUUtNOVAyc0lyTlpKWkhhVkhxUU02SXo5MVlSSzFlZnRLTEhvYWZKeDJMQlYwL0FVREhFeVpDS1d4VUFMWkxoa0FqODhOV1ZoMnNXd0FQa25KblRvQVlDdXMwQWJxME5TQjV6SmtwMklBS24zRmp1eVRRZ21PZ3BvQndvRWNsVWMyWVRmdzVJMi9ZZ0J0S0RUUE5CdXRtNmNYTkFubGkvMnlwUmxrWkFndzhTOC9ZNEMrSVo1YkRLQXlrdWdNS3h2RS9HSmxycVFQVndIR250UFlDdGFGL3RiNURRYUFLRmRWUEZTeGNodUlkb1VCaHRCUG1wb0JFSzdNZjlvTVFMdUxjZkt5dlFDZ3ZiYXNyelFFcFpldzd3M3FTWXNCSW9RRTlLOEV3R3BvWU4xZkxnSHplVkhCYXRwMkJ0SHpXVEVBMWYzOXNyMDNDRHFxYi84bUE4QmowYU5Tc21KU08xNllPZ3lFcEMxczlJblJGa1NxSWU3WjZla0RwTzNYU3dDN1dLYVgxcmpxZmFWZFpRQ2pYc2tBTytDTjFKWUdRTktneFFDeHEvVUVCSk5JRTFHWVZNdEpSMU53N2R4SkJuZkprRHJEQTBwZGdQNldVZGVOZllUcnQ1VEFLMGs1ZG1VRnE5eGllTHZpK01XR1A2cHZIYUtsU1ZCNThUTHZjV1FKbzkwQjBkZUo1SmNMS1FKWU1oOXBnVzBCS0l4RU1BTlFneTRaNE9QakR4bUF3cGhxd0cxVGNESUFBV25jMjFyT01OTUJzUlVrb3J4Z2dHZTNCTk1teXh2MFZ0RXFndEl5NXZhdjBybERFd1UweDVJQkVLeUltRWI3WUtvTk5BSkpxdVdMYmFEN21wS21aUjc3aTRDUU12UWpLU3dtUDJlQUtnQWxHSUI1TXd1UkhBd2dscHUwQXpCekZwTlVJeXFrbGh6QW1xVkpWSVo1dlVoRDRDeURMd0k1KytzbGdGMllqYUVHL0E0RDJBVDJNQ2RtRFlRWEVPNEE1cFFvR1FCR2VlNW5JeTFRZThTS1NkY1VxSmhsNGR5SkJJUzZYbFVNZ0xoK0ZPU3EwM1RhQmpxOWN4L2hmTkg0aHpveFYxU3lTTlI4dG1TQWtzS28yVVNVYURZamk5RU1RSzNFd1NRRFlCeWNBY29sYjRsVjdHTHBpS2dvbUU5NmhSdmxuVmlxTEtBZmdYTy9aZ0M2ZzIxQitRMTM4Q0pkVk00QTc2cVh3Z3RvWW1Cb1dXWDRDRi9UWGVkTHBhNHRNMjk0eDJaUkVnbjY5SUs2bXkvVER1TkdQSzhRQkJUQnUvWmRoSnl5ak11Y0xaT2psd1VUdlpiTlBsSHoyUnluMkNrcC9JTUM1L2t5Q0hXSkdIc0F0UmpmWXlzNThhR2xLWGdVM2s4Uyt5b0RjQUdnRXpEZGdtVUFwbCtTMVZaK2d3R2VTelhndHhpQXRnaWNGS21hNVRRaEQrMW8wMGhZQ1FLWldYNVIybGlxbGd3UXUzcjZ4N0Z0Wkl5Nnd3N1RGOERRSjZadlJ5azFTZ0JBM2dlUm52UGJBYUpzV1V1MHlHREovV2dSNHpncS9zUDBBS21Ud21oVzlDUmJGbTlCdkxRallxQ2lKajYwWUFCcGRmekRWUWJRbDRKbVNDY2c2Mjh6Yk1yaWQzT0daSTNhb0haQ3FWdGRSczRGOHowVDNac013T3ZLNG9XbXhZVzFpWk5vdmRLWnhFb0V0RDg2Z2Z6UDJOY1B2T1crcVpwMGlZbzVIczI1d3h5VWtSUms0MUl2cG8xOExDQjVSU0V2SDlBdkFrU2pPV1pxVmhkTVJPRWpPYnNWc09laHppUTFLWHhDMng4ZEpab055OGd4SXJjZjBXcDhhREpBSTgwTFlwTmZyekdBdTVkODdmZU5sSUU4RVNSY3poQ3F4TWtBZzRSU3Q3dUFPL1RENVUzd2R4N0k0b1U2OUM0V1l4S2RPOXJYc1djUVFPNEV5ai9mR0xGVE4vWm5qRnlpWXF3SW9UVENEb2sxeEk2b0tIOGp5SUZ2S0dYZlpTay9NNkZySTBDVUxXcUpubG9GRTQvQVJyR3dYRGFDSFVocVFvMElSSnJ0czRoYWtCdjNUc1pvNDBPVEFiamlSUXdrOVAxckRCRDIzajZjdDB4ZHg4aEdGS2l0WjRqWHFQMHFTRUVvZGJ0TDUyY2NMbStDdi9OQUZpLzB2ekhEWWhJTjhZOVpMUnhBVGdLOUZBQmZLblZzYVR1dEoxMFdlMlVWMHoxaGg4UWFuaEpCQ3JzckczZ2xpM2tDMkNoTm9Tc0FpSHJ6SW1sMXdjUVpvSFVuaHlkbW84MEhwQ2FCODQ5bFdibXhlUEltbDRaTGZPamQrR1lVTkVxSVpoMmtJWW1XcXI0c0FEbHQzZW16YjgrUS9kRjBvaUJGUXFsYlhib2hpY1BsVGZDM0h5aUxGK0p2RjRzeGlaNkl2RmE1amZ3WWdlcXRBTDRjTGJiMG5zU2tpMTE5d0xLdGppOWhoNG8xM0l5Sld3cWtrL1VvNFlpQzR6dzBLVHoyeW9oMWU1VC94c3ZzVmdWd24yaFJsQmNGWnRFNUlER3VML25IdEt6ZCtwYXlKNVhESy9qUXUvRnRITVFQMzhxV21FSTZPRHh4RzlMcmxkcCtlNFpZYmN0dktDSWtSVUtwOTFXWHZINGVMbTh5TGErTDRvWGwzMENZemppSnJFNHZjR3RmZU95N0UyaVpmd3FsS0MvcjZXVXRmbGRsUmpFekFaQWtOQ3IveUl2WWd3Y0JpYWhjRWUrUVJVU1hJUXNDN2Jvc3l5UVdhRkYwNXY4eTViSFh0STQvd2xTaFJDeTBqMnA3Mk1hSDNpMHZrVkQzUmVIbHNoWWlZZHVKdFpKWkJ1UnBBdVd3Y2lXT2VxeUNSTG9pODBHU1lvbDFhN2tzdXhKSnFpZm5UUXBndGdGRzBZaFQ0NVJoY2VVQ2NiMjBRdUNiQVAxdWVCS3hpbzV2eXhhMTJERmxTNFE0Y2FKWUN4SUFkMy8vRm53WjBCbERpTXFQeEU4V3JNOXlvbUJZYWdNSitpM0xKSTRMdENnNjhiOHU3bkpYcjJHNS9DT05sUmFVN2ZrM0tnTlJHeDk2Tjd1QmhXVFo1cUlhYWhSckQ2Q2ZiYk01R280VVI3SG1CRlZqRG1JY2M3SVloaDQvT08wZUhWWnRoNHVUSFdpTUtlYXpLcWVYM0RxclFIUHFzL1FvYmVBczBVNndGVjRQNjIwVW1rYjVXc29QcnBVc0tPcEttSTBQNlpZQU9ORVBuaExqNXRBWlBTU2JiWjVpanFGYzZTaUNkVjhSKzRGQVpXZVpSQml3QWkzcXVPM0V3WVZkVDhOeU8xR3hnRHRiRFhuU1NKWittZm4zSWkwV0dXQi9EUTJOclNNelZtUTk1S1hWT0E5c0lEVDhsSWVvaDUyMHR6SzBtSU02M2NnMGIxQnh2S1MvMDBaL2dJUFF5R0hXaFp2c0FVdjJXZlhtMUh2am5HUUNKWmxlcVZlYkdxWHprdXdkRmYzMzlJOTdxWG1qOVd5Y2dIZzN4TnBzbHpOWlpqVG9ObUVCQ3RUZERvemJFRE1SUFYwbVVlalNwQis2cm9waWd0UENJaEJwb3FveWlRVmFkTkxKLzVXalJhNHJodVV5RXhsMnNBd3NuSVFKc29hU0NrS21aZ0F2ejR4bWNoS0pGMEJtNkpaUlJCWTB6dUxQS3NMeHkvSGcrKzlhK2dOVEh6V1pXWndRSm1NaXJKK2ROa29OekJXaHo5SFhHSFNaMUFFbDVRNUVucEo2a1l6RTY4RU9ZMmVkM1ZxUWxEc0ZaSDdhZTBWUlVvclBQWGxDRzJCRXJhRG94c09wc3N5b0VBbm1CcGFnc1J5bUVia0I2UXYxZUdWcFZBWURjK3FsTFVMMTZTcmpsUnIvYU5hNGp6S0o2ZkhERWZIRzVQK0NmRkRFYWRZK3c4V0piUytZeHVMUCtMOWdpd1NUSTl5NGNnZmN5YTROZW9mUWlETXFxSzlkU0N5RzlZMDJwQ3JsMkQ1ME5meHE2My9JOHhKenNPdVRSYmpFRU5aRHA0MU9EOGFDZkJkYXBxYzhkMHJLWXFlOVhia01od0dmc3RDT29oNXNwOVU5V3BWRmEyWlJVUlNVT2pNOEJDbXBtQlFuQzRwQ1FWTEVJbDIwbUxrRkRGOEkyTUs0cmRlb3ZORmpJaVc2OWQzZXRkYXNTNHRXenJ1bThjcUJ6SzFwVTVRNStaaHoycUFXeEJjNUNNTGliZ2ROWUZya09SN0dyT1VNZUc2a2s2akMzMDlrQUdZZmZBS1JNS05ZQ0R3VDdpd0pEY1ZjQ1RnRjVqSjNheXpNMjlvQk1rK1F6OEhPZ0pQRkZyK3pKaFlsYlVZcm5TczZ1cnBUOW4wbUpnSmtQUE9RclZoSGFjUWM4WnFiemFQUm94NnNFTFhkblVWclFHb2o2dHhycEhRVFJNN2FsUWdiMHkvd2tHcVdHVVdxdXpJYXd3aVlEQ0RUeTZLaCtzZ1J2SWdBVVI1dEZpcUUyMWt2RitKM1NnWm9XTWNvOG82akF0bW5QaVpqUmNjWnJEWFFmeGpTckVLRlhKSlFoTWdkUk4rbjhRcXJoLzk3cDJNRXdlbWF5TmowcGllaEpIc3dqc0pDa0dZQnFOSW5ScklFTTJBdUsvTU43VnRSazNrMzUwckZ0TEROWExGM2xwcHgwRUF3NFI2c1JrQU5CanFKbHladE1LczR2VElsb1J6MmVyRHdyOVhkY3k5YVExUURLNG9pWmlSQ1JDTXRwZHczQzRwNnpZSXNNN3A5L1JrREtNVUJTcEVhdnZnRHRCYlo3QURWQm5rWEdaaE9CcEJYb0E0UVpSSTdoYmV5c1Fwa0h5UXFRU29iNXVFODlDdGNCc3VGeTFQdFgzaWhJYlRCM3d6aFIvU0dXd0l4c3FKWklDczI2TVkwUUxKR25pMWZCWFNUM2NDa21ZZmVPU21STEFGY2hSMUJZY0NOeENjK0IwRlNRODZ6OEU1anRPblA5UWZ1YUJueXNrNkRiWkM1NVBXRnZBdDEyalVIKzRNME5iKzdVbzhlOXV6dW9CdVlKMDVHUnp5QlZKNERzNnhkT1Voc2hQWWllWGhSWnZUK3B3elFETTRvVThsc3FrUVY1ZEd5TW1KVTF1eVVxWDg2eUZQQjJtMll6U2dUbzdIT3EzVmtIaThLbUI3S2dJeXM0SlkxWkUrTThFZUF0OGRjcVFBQUEyQ01HcEVoUWlRRDRETzhlaVVTMVpBVkpsY005TTIzWmpRVTNkV09EWVVpaHJla3E5eG03b0J6OEVEVW1lakU1c25YTkxLV252bmdWSnRhamt4bkFDYUVBMk1MdFZqWWhuOWtySTRlQnRreTBGckp4KzZtRjlHQVNXcFFhTmZXbEZHdE1XRS9XUVd1cS96M1N3WkF6dnhobHlWYXBhTjlWS1lZYjRobnh2V1ovR3RyTnBlaTdOcGFvK1htUURzb1VRbFVUWjg4aUlwSlhkWVFockJnc1JFVkZ5WCtqVHQ5TEFIS0FCaTZ6SXI5WXFrQVZXRXBYNVNKbmZtalpBQS9CRHRVRlN3VGM1QTFtWTFWd1JiV0xWTUxBTG5QUHVXMkozMHhCdkNVa0pHOUdvVnRFRUV1MUp0VHlBRng3VVZyVkN4Uzdocmpnclc2aWZCQ3I4RmNob0hhdmcvVkhvVzVGaVVENlAwRzhqeUxNZnNwQStBNnZlVFhSMnNHTUVFSGxkcTlDcGpOWG9FTVJhRUhPclZaQ0tLSXlrb0I0QUU4UmFXaU42YXhLaFFBdXo5REFzZ0Fjdk1NWGtlNWFNMWRvV1FwaWpUM3J6SkFsbk8vaHlDT2NEbHVRR0lPcmhjaFdUMVVDaFFUbGpIRko3SVI3N1NoRktBbmhhV2pWd1NOZ2NTc1FHQXJYbGQ3V1Ewd2daVlJ2TGpFMmpqNFFRV0VaOVpYdGtjdXRiazBad0RweGYxRVRWUGVzSDNKL3drRG1KVUt4bUY2NjVqbTMyb0xOUWgwNy9VZHRYWHlxQ3lVbmNpdzNGd0RsR0ZNV0lCVlFnRUlxNjV2QTlWMEFMMGpzbUpqM2RQa0tMRldRV2VERjcxZHNrRVBVVDBnSGFxQTJVZUhWcDJSQ3Q3VmtyS2lzUUEyQXlUOWlpUE1sTDlZNEg5d0g0K1c4SUJqWmhpNHJFTHhET3JXM1ExYm91MmNkZWptY0NDK0RJUXBKUkZrcEwxUUxoR3AzY3Rkd045bkFGUTBNOGNpelJ0TExsYWk4cUFvdEtMdGZGbVBGVUQzSGNVYUVGbjIrNDFYQ0NJODBWU1pqclhTRVBTbUFuK2xJOHVzMkl5NFdQZENXWWthQkpjWiszWDNETzlEaHROZUM1a2ZhQVc5ZVlRYlltSkJSZ2tSNEUrTVI0RUJqQWpBOHRoOVdPTmVnUE1HRWd1ckZoK1RZVVhsMnpub2hPMlNBY0xOOFJLeUNwalN4aVdBYlhKVUdjSlRyWXI1L3hFRDdHRmpWN09qNVptYkdlRlVuRnZDZzBNelozNTJtTklDMURZdnRNQ01RMXl3UU1QU2cwVXRSOHE2dDg3WUpUQUFuRDFNMHdQN0YrcEFxb1VrcUFKTzlCREVpN0pOTUJGRVFQM0FRVFAxMUZRQjBJdkx5bExObHZTUWRicklBSE5weXJEYVhBS2dpQktCM3g4TGJ6OW5BSFpIYXpNQTdiTlJpaDZGTEFBdVNzQ3htV09aTEFiejcvK0tBUmdzQkhNWnpDaGpGK2NMRktPT1daMlpDa0Q3WHJFUHpCcGhVVG1PREtDYUUxdFRNWUNxMERsOFFrYnU1UXVJQ0JlRmExVjdZT2lESDkxdEtTVnNMaWtqQWdCRmRHc0dHREFmV0t0U3diblVBVnpzV0czS09WRlowWGFYUzBCN1pXaUsyaHRiczVlN0RqQU1lMVBvQzZKbFpMWFkrMGlsM2RFcGFMMEpUNFZ1K2RjWTRMVEp0UmJCdnI0UkJHMDZBelV0Y1ZiUE1peDNFTHM3VFBlb0VSWXJnRE5BUDFyTkFLMHFvT093MDdjWjRPTWFBNWlOd1p4cXpJMWFBR2Z6MW9PR05rdGNWdDBRU21jd3dPVXVnSXNMeTFzNlNLekRobFU1OWJyaEpGTjZSRGZ1SStxcDVlK0xyZDFLT21Odmw0dVZna0djQWJKWEM3b0dBenh4SHlsc09qLzhQUVpnOFhsZjZHZStFZnlrT2RpVWNxOHc2YWhtcW5jVURiNEdxTGdqQnRxZEY5bk9KUU5jeE9yU1UvZDdESkFaeW4wOUdCYlErUVRacUFESXFmbE9tbHYxSFptUnZEdmp0R283UUlYV0dtR2JDWnJxam5PSEREU1ExTnhVd003Q2ljSUpwRHYranBvUmJlMEw2OEJnVjlnQjdsbWxjRzBKdzVneFR2M3JBeTRNUFFkeFpkMFV6ZkR4RnhtQW54bnVPcXIwdHZTQXNiMktOZ1BPcFltd0VPSnlxYVFwb0N5Y01TTzhhMVNuNktRU2VKVUJ6TUgzOEhzTU1LME13NmdUVkNiUGVIUm9uQXFBYzgvbFVwcTVsY1R5dXA2MmcweVVER0NSWDFsQzdueFdxNEZRUkttMzYxVVdIMVN0S3NCV1U5YXpzd3BWYytjK0cxVkZoS0VhVlZFdis3eW1MYkh2TXNTeG5ZZktRR3pKZDJsZzdoOStud0VXUEZyYVYwSWlFd1JnRnJjc002Y0tPVXNRTmcwM2daem05QTFQRU1Qc2xWYVlFU1RMMEJ3WndKQ05QdG5qRFFhQVQvL3hOeGtnTXBUajhlMFEwaXovS21PSEZjQ21abUFtWVFlZzdZYm1Xd1pKbUMvQTR6M056dzFEdTZiVlVUdnVYUDF1dFBqWUhtN04wcytIaGlxUkxaUkt2NFYxbjhNVDRkV29EaDRFemExU0gxNGZVYnVUV2VRT1RlMGlndFpFODdZcXZVbGlRUGNDNEdITzNuWVZUVWpqdEQ1NkxJZk92TWV3dVp1eHB3QUx5RFFwcWlyT2lvekpyMFp1VmxvQnZZdkNHZUtUanhDbWJQQ0xvNEwwRlFaQVVOZnZNZ0QxQy82cUdlQXhDMENyYVZJTitIT2Jta0dDL2hweVdNc3hyKzNqQWphaEkwTXdMTXNqNjlRL29FcjlvQUgxbEZTd0JKSWtJRlJVZlZQQVBDdmNBQ3dlM2R4VDF0V28zTjIwaHQ5WFRZSmtjSE1IcjBzbnNieGtPcG05ZExqeUlOTVdEd253a0tkNGZIclcwYVUwVnE1b2xmUGJ6OUxyaHZnNmRMRElGTW1NZDQyNks1N20vNmtzTGJXdkMyZXd5a09kckw4TUM3OWtnSy92UDJXQWoyc004UG9XSmVDQkZNMHFVN295Z1A3YU5ZZVBISnZzTURQTXM0VkJCa3NkYWFiVWd5KzN4eWxSMWtUSXNsVlI0YVluTGJxeGhmSnFWRHNQZ2piWDhRaTEzRks3WklVVWkrUHBkQmttZ3RGbktFT1VEZ2VyMUpVM0dQREZTc1owayt1VlJDMjJ5dmtKb2RMdkRteEFBUlo0ZWZONFFFeHpyNXFRYWY2enRKUUhSNWFsTkxMMkFndHZHUDJ2TThDUFAyS0E3WFVHSU1LRm1TUDdOZ2NoMjdpa3c1UEptZHkzRENScFoycUJZYU9HRWRBN25SR3BKN1lLVG9tcUtvcFhmZHZ2ZzM3YXV0NDlLNnRSMGZGeVFzaEp4QlE1ZEdBRzZjbHlPN3AwSWxCTUhoZUJaaXd6OFk1SFZaVTNCT0ZINHNGUkg0RXlHVUpaeDlZdzdpVWlieFJaVU95eWhjd2UvdXdCVzZ3d3hEK001SStJaGtYaGpBanh3ZnZ5b2NRUjdWazg4dmNZNFBFbUF3akJ3L1JhNlFCbjIzTjdnZ2t6M2JMSzFNWnQwK3VkeStFQmFuOUdKdDBtRzdVSmorS1NKdlFCOWZBbjZ5T1ZkWkdpNnR1M1Y3alplaldybDZxYWxVMCtCa0V6Zk5Cb0dOQUJDMFgwZ2xzeS9GTWxUQmxxeW5ESlRWbThKQXFEMlIrSThVYkFNU1loaFRFbVk1U1hZcGtjaHg5T28wSUhxVXRNQU1EblJBQkZwTHJoL3BUYUNPdnl3a1RPaGd3Mm5wallBZjk4SzM2UjVXTi9pd0h5UjgwQTFKSTk5bXdKR0FtMksydXp1bm1oeHg1RnFDWFBNWXZYU3VaeVZBWHNESmdpcks2bkVWbkdHTWZKT21OT3ZXZlNOS04zdGJIcW16U2pGQlVnR0t1OG1sVVVibnJoZXNnQVlxT2hVeFVORWJEV0k5Tk43Z25LUkxDNU5pZFJYYTlJeitIZlh1d0lIRUNFU0M3TEdWTnJPekErSzg2SFlDOGsvU3gvUUhSQXBDVWlobkZidVJXUUh4YTl5aHd2aWw1MSt2OHZHU0NEVnNxTnF5aHJaZkpLMUcrQVVHV3NyYjZ3UnJOTEoyZXlpR2xHWExLaVR2NEhHVTgvbVlQam9wYVkxV2NTZ1lkSTlLeHdzd0dOTmxxTWF4TWpyVFRhTUZvOFFYU3NrSUxxaWs1TE5CQ1VMYWZiSHZGeUlEM29JajhUMFZVVUJBT2hMTG9sWEwwcGhtY1V5bXpzWmtVMVNodElIaDdZVStramVYVjZ4L3llR2J3SzFKNUE1M0IvNjVraFBoWk8wK3RoRTJNR0lKQWZCY1QvQWdQTUdXYUdlRXNZbmVhZVZ4eDJBbXBFVDE1bFNtZWdvU2FmWWs3ckQ0MjVoaDN5RWd5THZXbWlXd1BTTTdXcDVjMytFc3J6T0VqR0V6aWZnQmRoYkRzbUc0R1NXQzdjRlR2VEJySGFCbVZhTVMzK3BEb1FzallMZ3BGUWlHNWhUSXR2eHEzVUhvUnkyWjR0TWhVblVkOG9JcU5ubU1TKzJ3dUZrMXJ0K041TlA2TXFwcnpYTUFFK0MybDdZVzZBQXBFY1FPai8rd3h3S09NQjZPMWp2WHNtMlR2dEdYQzVZNUxPSEpLbkI0eStJVVhCQVpnYUxvZnhRK21QT1hBNTdrSXcxbmdMNll6VVNJbDh6YlY0eGdVNmlYVEtBb2Jzd2lLZ1hkRGdHRW9CQkNWL0c0ajNraE5aVHMvZFg3UGNrT3NJdklmNHNvclBUalVhR3FJeUtrS2NJSlNqbWVFQ2dydkRIY2Z6TUE1c29FeUh2UWZUR3orUW40M3hqR0xuT1BjWVcwbjYwYUJwbWxtVTNJWUI0TC8vQmYyREFlYnpGZ09FT1NPaFJja0E3dTJMZXZkRVJtTUNtNFlHN2d5aHFBQS8zWDJ3L3Q0c3dBaEU1RG1rZVV3MGJBMkc5V1VPalZvM0liaEV2bWEvbHpaTUlyblNWeUIxMENNblFUT3lPdlFzdTg3ZjlMZTNFek9Bb2JmNFBwVzBWSHU1N2FjNXNhajV6bU5wYWxRUUxWa0RrSUpvQTVvNzFLem4wQUVWMnp6QUdHQzMrRHJGR0VSak0xd054WU9tVERySHJSV2g5ZzAyMmlZQldEeGU2WDhIQy9Rb3JVeGdnRHBmUlNZa29UZTg0N1hyTWJKYm1CYXRwQXJWYm1ub213RjJRbUZzdVhOMC9wdDJwTlRtV2wzV0lWdWloVVptNmxFVTRjdXE2WVk2SXZJMSs3MjRLUXZ2RUpqRklzYmN5aThCM0VmZzR5b0NMUENSK1J0QzlFSWJUUWxuaE1ScE9WT284cTRiTSs4eXVvVnBKckVmWGcrS3FJcHNkSVVpT3FkUmF4YWkyM3ArSUZFQTlISmxlalBkMmtZQ2paMTZrbUNHTHd2Zm14VkZOOUI2eEp4QXN2NEwrY0VBbThLRWNjKzBBSFcrQ2d5eVIwN3dCMGViME1BMzFxVzNsWlJ5blNBVHQwNGsvY2RwcWZKcWxJazJSRTIvWXFkdGUrOG93bWMwUW1waXl1MW4wQzBzY203OGdjVUFKalU1eWN1WU85M1FBNWdCOHlGNVR0ZTFwL1BoSXRqZWo0YU93NFN6bXlzMmtrVnZmU2dZb0lxTjBmUTB4WmxzaktsMEw1UDVIUVlyY2FIUi9jZTByQ3hmOU80eGxZanhkaVZQcUMwQms0d3A1d2V1QUxZd3NleUpTb29FWVdoQzdEUmhDRVdRektQT1Z4RUpTZlFINjIyeWRqMnNqTnpiakZWV2g1WnNHRU5BVEttSGpRRXROS1JzUGc5a2ZJeDYwdExwdGpaeUlJUzJCNXYwaEVhdzNyOUJ0alB5WC92Y0pqK05BdWZObkZtYkVkWnVRSkE1NW93RnZTZ29nWVdvY3YvaVlSUmtnTFpGeWd0R2lFYUZFOGRYR0tCL2xRR3N1dUM2bjVwVUxBRnpBb01pb25lZ2RTU2FBa0RBaWoxckp1L0FKR1RlOGk0amFVRnQwQnhrcHVuUkJONlVQbHVuOEQ4bEEzeWZZbGVKeVllOEFOQzVjbmZqaXBiK3dCSDhlTWRHS3lzRVE4N0hQbmtEYUxCaGczRUp5dEV4YWVrMjdOcExrdEh3SkZheUNwYUxzTXRDNzRYMW1NR1J1cFpaYXY4TmpQMllLTnFkYXkxd09aN0NrdDdpaFpBTjJYQWpJRUhPY05WM2FaSGxWbEVLeW90Ukkxc1pDdEQwS0p3anUxdWJBZVlGQTFnWW5PVlJkNkZ1U1ExWCtNOVRYbkVGMGVKR1o2d0RrWURQM3dWK0MwRFJNY0VIcnJqSlQ4eWY3ZFpObUNodnorMWt3dm1LMURESkFMWUJmbWNiNHdURGRFYW5Kam1Zb20xbXRGWFJsQUhUQ09hcjdWamZ3UUo3RnF0QVZnamxubnU4ak14dFl4LzRlK0EyZ1U1dU9ac0JxblRYRE1ZSG5obXVtUjRDdDVpeitNYlcrSVNKcGRhRGh2Q29kRFN1cVFPNTlGVnpKQ09EUGU1eDNuY0dnSXRYS2VGWmZWMExxbEswOGpveGRPby91ZFppcGdJemxBeVEybmM2aE5WYlJSRURrcUYxYXdZQVVSVzVCb2loaVhpK0N3WW5BRmZtYWdJWHVpWU1pNlhKVUorbjBLQmNFeU41UXdDZ2ljREhxcHhGMlhVUlVGRzlyQXpLMGtTTjh5dzA5NnIva2Fkc0JnT1VxektDZFkrL3Y0TDhxaFpTYWRoQS9PTTdrUVNXVmlzQThOUmZRQ3E2eC8xdzhLelpvRFhtdXNucFlUaDJsZllENVlyTUM2b3NBZmR6azlZS1ZBMWQwMENGZ0JyNTdRd1E4WmNKcDBGUDJib1JIYWxwYUp0Rkw3VHRnT0dTQWVReGE0am1Dd2JBc3FTL3N1STRjNTV4Q1NCUlhXVlpXUVVsMThpOG5BSk5hYW00YmN5R29SWkxTdHJFNlovMlJvaU5XY0crUWdBa0ErU2VGMHNyeWlUcjdDME15bkJPSE9tR2hMdUtwcHdIT24xTmZNTU1hOG9BbmpwMjhuYzdwcUxacHd4SHFPckFlcU1HYVVXbWRJZDBNR0Nra1ZuTW5xSmVFK1FBZFNPdWhPdUZCOFlhQXlnN1lHbE9hNFU1RU1rQWpIc01Ca2hBVForMHRKN2VPdjRyQVpzYVhsQW9jM01vQkhJMEdJQVpjbTBYZ0VkNFVqcTZsREV4dEpVNXozSnRmTEpOeTRnNFo5ZklNTGxodDI0cFVpZFNPMm4rZlZRZlFXamVSMGhscEdzUytwc0FZSXZNbjI2eHNGU0hrUjZHM1pycDJyWHU3a2crd295NWVFRWJLL2ptMUZCdkxFRHlQeWcyZUtUaVBFSnNPcnNWY3JsMk90aFkrcVR0OTNRYlc4aE82VGw3VHhZa1EyTDVmZzJnWHZjOUtuSnpqUUVZQXJSSUJyQzR4MUV3QU5Sc1BBdDI3YXpoczRpR0p6TEVSRDFZbWVGWFZHOGlycm03bDhtYnNXTXVwZ0diaXEycGs2ektlWlpFOWZ3VmhHdERub2VXOXNXdFZIVEJQUWhxaytaZTYxN25MUEpXNms5cDZRTXFHRUN1alQwdmErbW90VWE3ZFZoZ1VBYlR5bzBkcGF1YktYUG5nQU80WTFyRFV6dXh4R29iN3UwQU1sV2xQREE4TW1OVStDNDBXUUtvRmpubXBUY1hUeFhhdTFYUGU2eTZDMzVqemljRDZPTGVSTmtLUitKWERFRHgzb3NsWUt6dnRrMEdlR2Rkang3K2dScllEcVhsTnREVkZZTE5MWkI3eFdsTis1N0VGYU1qN0xkYkJqc1d4aWtsbWJSbG1mTnNHVVQxRERaRThZVkdoc2t0QktVeEpidEliZnhyMDF4T1FwTS9wU2tQL01EZmJmb2pRd2dwYUN1bVplVkJ0dzV3cjJGOHFYVFQ3clhXVGJEU24wcEs1S21mSzNhZjVZZTV0d1BJVkNPdFltT0VKRFlTQkNLOUZPK1dYV1hYcUlwa3oySzVjR0RHckNkcnRsb1YzcEVEVnFBVWVsZVVpdGFRM1o0aDZUSWdUeEdpWkFBWjY1SUJ3SmZnSW5RUi9sR0gwdUkxSUJRcG5XSGhaL0ZzWFJNM2J1R255VitabG50cHdONUxId0lTU1Vxanc1OEtlaEtWZVZlNGw2WkdocnhIY09RckIxUmRwSGJRSEVSSEE4bi84dzliK29DaVlRdFh4UFhBR2pjN2JiTGI1aUN5dnZpY1V3N0lWQWFzR1Eyc3Iwd043dVdZWEdVQThzdVIzQmlKSkpZbS83RFRKc3BPNkkrQ1M5aW5LKzlvSFY2aWNjeVVic1J1SE9OTTdIR0RWY0d4RVE0N2JPWjZNY0x0bURhajMzaEJUaEZuTlFORWtHcm00R2lGMG5KT2s2MURPaU5mWDZSc1ZTS25keSs5Z1JoUnV2b3h2MGd5bThpNS8wcWlNaGhnRXpQK3VOZDJoQkFYY3NyVng2S0wxUDRuU0s1TnpzTmZRbkw3aWI5Si8yem1md3dHd01lWTdZY3FxcW00NkZZeU1LUHpRTFV2Q0Y3c2pvbWZRcm4xd1RtRDVBWTk2MXdQTXNzMTBrSWNQcVZ6YmZHUUJJTWdiTkJZZ3FYdWxNTjJsdHJGdDRGcmVTRmluTEVONU9adzBNU21ueUFpQkE4eUU3dnRLUmJTc1REbFBSaWdId3hBbUdnbmttTFdvYlNjMDF6WVFqcnZxWUFyaWF2Z08yNi9wdHhHeTBFUWRiUHhXU3cwS3lleWRpZFJxYlJSYlJPNjV1dzJtcmE3U0czOEMxY2ZpQjRrMTUvUzhhODArb0N5TWRFdEdXQVltam03VnpBb2U5WVhzeXFEQTFqamg4QksxZk9GMmhBRHpicmMrRUlzV1BDVys4YzZTak9ac21mTExFSTRtTm8rNTF3cHVERThLS3JZa2xTd1lMVkJwYytXMTRjUjBPanFOY1JHNk1zd3EwL2JxaUJmNGptK1p4c3FiQ3dZSGpEUmJpUlNqRkRhbk5PeHBYWUtNN1JneW1tTmpHalcwSkdTR3o3UTBNUVJqdWNUZVcrdEZ1UmNJYjVyZVk2L2JVYXpoMTFWK3hkUy9sOXYvMFg3Ri8rWkM1RDBaL09zbjJBQWwzV1BHRE5yVVh4Z1FybU9LTThGSzMzREpQZit3cTJlaW9GRksyWEdXbkhWb1JqY3YzSXBieXg2MjMwWm1qRmNiSjlaTVpjYnd5ai95YjA4TVB5c0xrZm5ZMmZIZmx6S2tFL3NwMGVsWFZFL0pITjhVMkhqejh5R21Va3hsOWRpZG5ScXBuVG1Ca3Y5SEpqV1h6NXhaeVEwSmJlYVJGTVI1eXlPaVp6ZFNWUW83aDY1azJzNC9maVU2VlZYMlpUT1JuZVMvSC8rNTMvUTh6OUIvbXdjV0t2MHF2dmR0RlZ6QjR6R21XTWVTd1hVZkpEK2pJTUEvYmtNRkF3Z3Z5Z0FNS3FBaW5BcDczdVFlQ0ExRkxmWWd3NUEyeDBhcmF4a1ZLVlpKRGt4UDhZdys1bUM3TlV5K3lFaEl6MExwR3prcjRxUURJVGtSamJNdDB5S3FTYnNxbUdTZjVYUytmOG43MnhiNGdpQ0lCd1NBU0VTQ0w3bElCd1lEd0luOS8vL1hxYjdxYnFhMmZzVVJCQ3RqWHR1YVFDczdkbCttOTRTcUIzd1BXWk44TFh2cnlKS1JOUkYwOFVUUHk2R0RJMmsrU2JydVNHVGhna1ZSSFBoTkNRL0RmUjN5TDhnZjJydEhrMVdFbnFKZzhsQjF2UC9tVGU5MWwrNGE2UjVBdHhOZy9NRzFTNUFoUWUxMm51bVRMK0xWQTRaQ2IzYSszM3JGK2xpN3dLM1NhdUtoRFR5OXFxS3R1RlQ2L2RvejlRV0JTYll6WjJ5REtudCtnWWZLbVFPUzg0UnhRL0w2dXgxZTQ2MkRnaTlxTHUxNGdLR0hENnF5b2REMzZ6bmVvYTNlUy9VQ25RK2JRWFA5eGMzUU9QNXZzNUwzMCtRaVFuZTAvSGtPNEJ3c1kzL0NYY3ZvelA3RmlBOGNJS3RudEIzL2RwSDdZSmxSQjk3Z3ZINGR0ajdJMGM2RHdZODlwdWFCYW5Kb3NMVDdlTktGaFZJQkM2RmJ6VEJPQTRiNVF3WE8vcE04TVZ6MkhBcnJWWm5WRzM5K0pZTGZMczZEVVRjYUZvZmtUR0dERzBVTDdjdDYvbFJ4bzA1WDFEQmwvOUMyV2tlQVJpYyszNEN1Y2FVMy9IL2ZBYzRFWFJmcjgxVlBwQ2FwWk9BZC9VejdZRFR5SVhIVWU4WXAxYmJRem9MdUpwNkJ3TmdFMFZhUm02eXNZVTdZUEEzNGUyWE1VNjZyZzg0WjBqckNjWndyT3hNUnUzV1VqNUlwc21jYzFoeFpNYVVIVzRsMnRLQmdodDFpeHVRWmlXaSthYUJQcHM1VHM5d1lPTmVxVmVnRk4wNGdVN1pQaTVJNnFYMTEvdmUwNENXSk1DMXhtZTdERkR0LzU1S0lIL2hhZ3p6MGFCUHQyeVJFS1BQRzhLZ1l6WUQ5MXZYdHNab0M0L2hUdkYwdTE4NFo2MnNKaGlMSzloYjIvTktDRDRUcU9YSUtvM0M4Y2ZXYU11SEVISHI1OGhyR2JGanMraXBjMkdjbzNnaFVpL1U2MUR4M29EQ1FQZWh1dStIak94WFhHUFgwWHNTWDNtQ3kxdFBrd2FrMTE0OStkZEVpTDkwQTZqQi8vdklNWGd3NmRTbjM3c292SW9IUDVNNzVmU2JvaFpoMUliSEwzTm9oWkRPakRjZzRleXRKUUJMTXMxSyt4UjNHL1BHWkdGaXZzS2dXYmxSdDNWRlVqUzFpQllkcVNlMDJhUHYyMElaSHllQ2NJdmM5OU55Vno1TnJqR3Z3YnF0bVc0ZEMxQ0NZWXR3Q2dHOFdXSHZWb0F1YlkydFF2UmU2ZFVvWTlTK1J4TWZXTFNkRUV0MGJUamREUkR0L0FEV2s5cDgvTElJV1V3b1lpdHhmN2VKMHpuYzF1R1RaY2JXYmJPcjUvMGlsZnM2MmlKdUhQR2dXTDZnQTY3ZkhyVnhZazRGRS9EU1R6Q25ndHMxVnBhbDlPODJOQWI4YWtoQVNvR2QrRWd6VU5jRXJqekdpTUtHMmtMeDVWaTBrOXFHT0VQKzk0V0JPb3phOG12ZXBCQ0I2NEQwbzl5WGpTVzRCaTg1b1NxV2JadkZoakZycm15N0lsQTNxcjQzRER2ZGJQTGVQYWlmUUsxbzJsMVFham5MVWtYQWJxTHRFZDhhRXpJMUF4QUV1d0djblhnYUI2LzBHSHF6U1ZHNTdxemFUVXp3U3U1RENuVVlOZFB3Yzk0a1VUVGExa2U0WEY3bTBvNDJaWi9xd0lJbHNWVzl0R3ErM2oxU0RuYmxTNitNN1dhdWVvYVR1YS9aT3BTRDFZbENKUDZOZ1diWjVacDJJRXlSa0ZtM1FDLzRYUVpEYkFTWHM3VWt4RXhzRFQ2SGRIVStKTHkwaFFYOEdrdzRRbXVrdHZzV3hOcXhaWjBXUS80NE9Cd3lST1pIZGN3K3VQNmsvVWphNDdFYnhxdE9GUHlCdVFybS9rQ3QxcGdvTXFvenFGL2FreklZS2JMTE5kdi9kYlgzWkVsaW9ZbWtReWRQWnRpQVE5US9jYkJjcmtCOTJ6S25qd3FVcHZKVmhzM3UwWEt0dENQUmV6d3dXcHlEOGdkY0JTTXhUc2NaWHZpOEVyTzgvOG1DWDF4QWJXUEpoeVc2WGcwYjhlYkhNV0ZVYVBQYkpBbHhGVEFKVnpTV3ZnTDVQd2U2ZDB5VkwvYktseEhqaE0zdHhPT2FCemZWTDR3ZVlQMVorOUhMdXM3VmJNcGdRWDQxY0R3ZEF2VUZiRm9LbFhCYlBuN1pTNUtpaTdSTkp0RGlFamgvK29td3ZwQkxRZGM1REVzVHcyNE95M1JyQkxRVFcvNnN4TG9Gc3VCajNvR1VUY29rQkladGJyVlNhWVNPSzI4Vy9HdnZERlliaUdFZ2FnaHRvYWVrbDNhaHAxd0tZZnYvdjFka1dYNmFRQytGd0pycU9SZjdhbHZ4V3FOeEM2SnZEZWorVzB4OHBGeENFSVNqRUpmcEkxWGlCMy9BZDJ6TXFZZllDQU1TOEFOaU5qY21rZGpRZitXNWwrT1hZZlF2VTFuWW9VN2FLUVJCM3ZjVWkxbVA1WmRuL2RNZnpsUWQzc2hZc0FSU3dHZXlwMENCQ3pIdVRJVEhSZVhDYThoZzNnU2Y4ME96cG9aOVpZQ1h5Qnl0TzQ1SXpCSUlTRjB5dGI5Y2lMSFpIenIzaGV0djFhb0FRWkFSTXQyY0ZWTFJ0RGdQM1BhOUJTTnZLUUdmeSs0amJPeWlLL0EvYUtQZ2hlSlY1RDBwTDZ4bEUzZldFM3VEYjFKZXh1RStyNHF1M0FNcGREZkVDZGRnQVR4Tk1KL3hDQUI4Z3lGSU94cTFBSjRoTDRCT0Z2Z1psTDBoMlhsM1cwMnNKNEIvZUtNZGpzSWY2UVFyVTN6QndrWmZ4aldpNXA1VFlkaHFmbUk5c1FZRnNuQXdrVmMyc1VMZ04raXVHMGp4c05YRWUyUUZDZ3BEQk52TTJOako2L2lPbGJxNWpuWTJ5d1A2L0srMkFBcXZkTkxOdkczWnlESUVmcWZBOHJySUxKTm9oeVBBQ2hRVWg0SnZabkdZRDRIZjVMSzVSQTg4RDdoV0FDaFFCQWxkMDVGSFhlRDNGaU9iRjBYZGllYXhudGpiU2hTMmxhVmRoN25YTmZwRDRHY2pXaFNWK1VyV0V3dFIvQUJ0d3pZbStJeFNsd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcbiAgcmV0dXJuIGltYWdlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm50KCl7XHJcbiAgcmV0dXJuIGBpbmZvIGZhY2U9XCJSb2JvdG9cIiBzaXplPTE5MiBib2xkPTAgaXRhbGljPTAgY2hhcnNldD1cIlwiIHVuaWNvZGU9MSBzdHJldGNoSD0xMDAgc21vb3RoPTEgYWE9MSBwYWRkaW5nPTI0LDI0LDI0LDI0IHNwYWNpbmc9MTIsMTIgb3V0bGluZT0wXHJcbmNvbW1vbiBsaW5lSGVpZ2h0PTE5MiBiYXNlPTE1MiBzY2FsZVc9MzA3MiBzY2FsZUg9MTUzNiBwYWdlcz0xIHBhY2tlZD0wIGFscGhhQ2hubD0wIHJlZENobmw9NCBncmVlbkNobmw9NCBibHVlQ2hubD00XHJcbnBhZ2UgaWQ9MCBmaWxlPVwicm9ib3RvXzAucG5nXCJcclxuY2hhcnMgY291bnQ9MTk0XHJcbmNoYXIgaWQ9MCAgICB4PTYzNiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yICAgIHg9NTc2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEzICAgeD00NTAgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzIgICB4PTI5ODcgIHk9MTI0MiAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMyAgIHg9MTcxNCAgeT03NjkgICB3aWR0aD02NiAgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM0ICAgeD0xOTk5ICB5PTEyNjMgIHdpZHRoPTgxICAgIGhlaWdodD04NyAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzUgICB4PTEyMTQgIHk9OTUxICAgd2lkdGg9MTM2ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNiAgIHg9MTYxMCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS00ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM3ICAgeD0xMzQxICB5PTU5NSAgIHdpZHRoPTE1MiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzggICB4PTE2NTggIHk9NTkyICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOSAgIHg9MjA5MiAgeT0xMjYzICB3aWR0aD02MiAgICBoZWlnaHQ9ODUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTI4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQwICAgeD0xMDMgICB5PTAgICAgIHdpZHRoPTkwICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDEgICB4PTAgICAgIHk9MCAgICAgd2lkdGg9OTEgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MiAgIHg9NjY0ICAgeT0xMjk0ICB3aWR0aD0xMTQgICBoZWlnaHQ9MTE0ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQzICAgeD0wICAgICB5PTEzMTcgIHdpZHRoPTEyOCAgIGhlaWdodD0xMjkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDQgICB4PTE5MTYgIHk9MTI2NCAgd2lkdGg9NzEgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xMTEgICB4YWR2YW5jZT0zMSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NSAgIHg9MjMzICAgeT0xNDU3ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ2ICAgeD0yODI4ICB5PTEyNDUgIHdpZHRoPTY4ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEyICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDcgICB4PTAgICAgIHk9NDI5ICAgd2lkdGg9MTA5ICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OCAgIHg9MjM5MiAgeT01ODMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ5ICAgeD0xMTIgICB5PTExNDMgIHdpZHRoPTkzICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTAgICB4PTE0NDMgIHk9NzcyICAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MSAgIHg9MjY2MCAgeT01NzUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUyICAgeD0xNzk0ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTMgICB4PTUzOSAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NCAgIHg9NDA2ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU1ICAgeD0yMDgyICB5PTk0MSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTYgICB4PTI1MjYgIHk9NTgxICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NyAgIHg9MTU4MSAgeT03NzEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU4ICAgeD0yMzgzICB5PTExMTMgIHdpZHRoPTY3ICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTkgICB4PTM3MiAgIHk9MTE0MCAgd2lkdGg9NzMgICAgaGVpZ2h0PTE1NiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zNCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MCAgIHg9NTM5ICAgeT0xMzA3ICB3aWR0aD0xMTMgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYxICAgeD0xNjg4ICB5PTEyNjkgIHdpZHRoPTExNSAgIGhlaWdodD05MyAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjIgICB4PTQxMSAgIHk9MTMwOCAgd2lkdGg9MTE2ICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MyAgIHg9ODAwICAgeT03NzkgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY0ICAgeD0xNDIxICB5PTAgICAgIHdpZHRoPTE3NyAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTYgICAgeGFkdmFuY2U9MTQ0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjUgICB4PTI3MDggIHk9NzUyICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NiAgIHg9MjIyMSAgeT05MzkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY3ICAgeD0xODExICB5PTU5MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjggICB4PTE2NTAgIHk9OTQ2ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OSAgIHg9MjQ5NiAgeT05MzQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcwICAgeD0yNjMwICB5PTkzMiAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzEgICB4PTE5NjAgIHk9NTkwICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MiAgIHg9OTE2ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTczICAgeD0yOTYgICB5PTExNDIgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzQgICB4PTI3MiAgIHk9NzkwICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NSAgIHg9NzY3ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc2ICAgeD0yNzYyICB5PTkyNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzcgICB4PTIxOTcgIHk9NzY1ICAgd2lkdGg9MTYzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OCAgIHg9MTA2NSAgeT05NTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc5ICAgeD0xNTA1ICB5PTU5NCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODAgICB4PTE5MzggIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDEgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MSAgIHg9MjIyMiAgeT0yMDcgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgyICAgeD0xMzYyICB5PTk0OSAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODMgICB4PTIxMDkgIHk9NTg4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NCAgIHg9NjE3ICAgeT05NTUgICB3aWR0aD0xMzggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg1ICAgeD0xMjggICB5PTc5MiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODYgICB4PTI4NzAgIHk9NzQ5ICAgd2lkdGg9MTQ3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NyAgIHg9MjAwMiAgeT03NjcgICB3aWR0aD0xODMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg4ICAgeD0zMTIgICB5PTk2NiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODkgICB4PTE1NyAgIHk9OTY4ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MCAgIHg9MTUwNiAgeT05NDcgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkxICAgeD02NTggICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTIgICB4PTI5NDUgIHk9MjA0ICAgd2lkdGg9MTExICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MyAgIHg9NTY3ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk0ICAgeD0xNTcwICB5PTEyNzEgIHdpZHRoPTEwNiAgIGhlaWdodD0xMDUgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTUgICB4PTAgICAgIHk9MTQ1OCAgd2lkdGg9MTIxICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT03MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NiAgIHg9MjYyMiAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTQ5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk3ICAgeD0xNTg1ICB5PTExMjEgIHdpZHRoPTExOSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTggICB4PTY3NyAgIHk9NDE4ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OSAgIHg9MTQ1MyAgeT0xMTIzICB3aWR0aD0xMjAgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMCAgeD0xMjA5ICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAxICB4PTEzMjAgIHk9MTEyNSAgd2lkdGg9MTIxICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDIgIHg9MTg2NiAgeT00MDggICB3aWR0aD0xMDEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTYgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMyAgeD0xMzQgICB5PTYxMiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA0ICB4PTI2MjcgIHk9Mzk1ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDUgIHg9MTA1MCAgeT03NzYgICB3aWR0aD02NyAgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNiAgeD0xMzI3ICB5PTAgICAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA3ICB4PTI0OTUgIHk9NDAxICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDggIHg9Mjc1NSAgeT0zOTIgICB3aWR0aD02NCAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOSAgeD0xOTczICB5PTExMTcgIHdpZHRoPTE2OCAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEwICB4PTIxNTMgIHk9MTExNSAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTEgIHg9MTE4MSAgeT0xMTI2ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMiAgeD0yNjcgICB5PTYxMSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEzICB4PTQwMCAgIHk9NjAwICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTQgIHg9MjI4MSAgeT0xMTEzICB3aWR0aD05MCAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNSAgeD0xNzE2ICB5PTExMjAgIHdpZHRoPTExNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE2ICB4PTQ1NyAgIHk9MTE0MCAgd2lkdGg9OTUgICAgaGVpZ2h0PTE1NSAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0yMyAgICB4YWR2YW5jZT01MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTcgIHg9MTg0NSAgeT0xMTE3ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOCAgeD0yNzcyICB5PTExMDAgIHdpZHRoPTEyMiAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE5ICB4PTI0NjIgIHk9MTExMyAgd2lkdGg9MTYzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0xMjAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjAgIHg9MjYzNyAgeT0xMTA2ICB3aWR0aD0xMjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMSAgeD0wICAgICB5PTYxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIyICB4PTI5MDYgIHk9MTA5NyAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjMgIHg9NDU4ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNCAgeD0yNDUxICB5PTIwNiAgIHdpZHRoPTYxICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI1ICB4PTM0OSAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjYgIHg9MjM3OCAgeT0xMjU5ICB3aWR0aD0xMzggICBoZWlnaHQ9NzkgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MCAgeD01MTMgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYxICB4PTIxNyAgIHk9MTE0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjIgIHg9MTM0MSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTI1ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MyAgeD0xMzAwICB5PTc3NCAgIHdpZHRoPTEzMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY0ICB4PTcwMiAgIHk9MTEyOSAgd2lkdGg9MTQ5ICAgaGVpZ2h0PTE0OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zMCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjUgIHg9NDY1ICAgeT05NTUgICB3aWR0aD0xNDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NiAgeD0yMzc1ICB5PTIwNiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY3ICB4PTIwNSAgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjggIHg9MjcxNiAgeT0xMjUxICB3aWR0aD0xMDAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OSAgeD05OTUgICB5PTU5OSAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcwICB4PTEzNjggIHk9MTI3MyAgd2lkdGg9OTkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzEgIHg9MTEzMSAgeT0xMjc3ICB3aWR0aD0xMTAgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MiAgeD0yMjUxICB5PTEyNjEgIHdpZHRoPTExNSAgIGhlaWdodD04MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9ODkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTczICB4PTEzMyAgIHk9MTQ1OCAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzQgIHg9MTE2OCAgeT01OTcgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NSAgeD0zMzMgICB5PTE0NDggIHdpZHRoPTEwNSAgIGhlaWdodD01OSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc2ICB4PTE4MTUgIHk9MTI2OCAgd2lkdGg9ODkgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT02MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzcgIHg9ODYzICAgeT0xMTI5ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTQ3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTI5ICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OCAgeD04OTkgICB5PTEyODggIHdpZHRoPTk3ICAgIGhlaWdodD0xMTEgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc5ICB4PTc5MCAgIHk9MTI5MCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODAgIHg9MjUyOCAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MSAgeD04NjYgICB5PTU5OSAgIHdpZHRoPTExNyAgIGhlaWdodD0xNjYgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgyICB4PTI4OTMgIHk9OTIzICAgd2lkdGg9MTEwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODMgIHg9MjkwOCAgeT0xMjQyICB3aWR0aD02NyAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTYyICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NCAgeD0yMTY2ICB5PTEyNjEgIHdpZHRoPTczICAgIGhlaWdodD04MiAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg1ICB4PTE0NzkgIHk9MTI3MSAgd2lkdGg9NzkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODYgIHg9MTI1MyAgeT0xMjc0ICB3aWR0aD0xMDMgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NyAgeD0xMDA4ICB5PTEyNzcgIHdpZHRoPTExMSAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg4ICB4PTI1NDIgIHk9NzU4ICAgd2lkdGg9MTU0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODkgIHg9MjM3MiAgeT03NjAgICB3aWR0aD0xNTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MCAgeD0xMTI5ICB5PTc3NiAgIHdpZHRoPTE1OSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkxICB4PTkyNSAgIHk9Nzc3ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTIgIHg9MTYyICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MyAgeD0zMjQgICB5PTIxNCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk0ICB4PTAgICAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTUgIHg9MTM1OSAgeT0yMTAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NiAgeD0xODE0ICB5PTIwOCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk3ICB4PTEwMTYgIHk9MCAgICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5OSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMjMgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTggIHg9MTc5MiAgeT03NjkgICB3aWR0aD0xOTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjYgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE1MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OSAgeD0xMTc4ICB5PTAgICAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAwICB4PTI5MjIgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDEgIHg9NjQxICAgeT0yMTQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMiAgeD03NzUgICB5PTIxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAzICB4PTE5NzYgIHk9MjA3ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDQgIHg9MTAxOCAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNSAgeD0xMTEyICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA2ICB4PTkwOSAgIHk9MjEzICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDcgIHg9MjExMCAgeT0yMDcgICB3aWR0aD0xMDAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjggICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOCAgeD0wICAgICB5PTk2OSAgIHdpZHRoPTE0NSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA5ICB4PTE1MjEgIHk9MjA4ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTAgIHg9MjE4NCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMSAgeD0yMDMxICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEyICB4PTE4NzggIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTMgIHg9Mjc2OSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNSAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNCAgeD0xMjA2ICB5PTIxMCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTEgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTEzICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE1ICB4PTI3OSAgIHk9MTMxNiAgd2lkdGg9MTIwICAgaGVpZ2h0PTEyMCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MCAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTYgIHg9MjY1NSAgeT0yMDYgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTc0ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEwICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNyAgeD0yNjI1ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE4ICB4PTI0ODEgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTkgIHg9MjMzNyAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMCAgeD0xNjcwICB5PTIwOCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIxICB4PTQ4NiAgIHk9MjE0ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjIgIHg9MjM2MCAgeT05MzkgICB3aWR0aD0xMjQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMyAgeD0xMjEgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzEgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NyAgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI0ICB4PTE2MDQgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjUgIHg9MTQ3MyAgeT00MTIgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNiAgeD0xNzM1ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI3ICB4PTUzMiAgIHk9NjAwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjggIHg9MjkyNiAgeT01NjkgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOSAgeD0yNTI0ICB5PTIwNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MSAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMwICB4PTk5NiAgIHk9MTEyOSAgd2lkdGg9MTczICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xMzUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzEgIHg9MTk3OSAgeT00MDcgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMiAgeD0xMDc2ICB5PTQxNSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMzICB4PTk0MyAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzQgIHg9ODEwICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNSAgeD0yNzkzICB5PTU3MiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM2ICB4PTc3MiAgIHk9NjAwICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzcgIHg9Mjk3MCAgeT0zODggICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOCAgeD02NjMgICB5PTYwMCAgIHdpZHRoPTk3ICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM5ICB4PTAgICAgIHk9MTE0MyAgd2lkdGg9MTAwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDAgIHg9MjgxMCAgeT0yMDUgICB3aWR0aD0xMjMgICBoZWlnaHQ9MTczICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTUgICAgIHhhZHZhbmNlPTk0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MSAgeD0wICAgICB5PTc5MiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQyICB4PTI2MCAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDMgIHg9NTM4ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NCAgeD0zOTkgICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ1ICB4PTI4MzEgIHk9MzkwICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDYgIHg9MjI1MyAgeT01ODMgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NyAgeD0xNDAgICB5PTEzMTcgIHdpZHRoPTEyNyAgIGhlaWdodD0xMjggICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ4ICB4PTU2NCAgIHk9MTEyOSAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE1MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDkgIHg9MjExMSAgeT00MDcgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MCAgeD0yMjM5ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUxICB4PTIzNjcgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTIgIHg9NjcyICAgeT03NzkgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MyAgeD03NDkgICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU0ICB4PTg4MyAgIHk9MCAgICAgd2lkdGg9MTIxICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTUgIHg9MTc0NCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5rZXJuaW5ncyBjb3VudD0xNjg2XHJcbmtlcm5pbmcgZmlyc3Q9MzIgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NiAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODkgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD0yMjEgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTMgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTYgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg2ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTc0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTc0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTg1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjU1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTMgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTcxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTgxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zOSAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODcgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NiAgYW1vdW50PS0xNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODkgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD02NSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTQgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTcgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDQgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD03NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIxIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjU1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTExIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0OSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NiAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAwIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIwIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDUgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE3MyBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDEgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05NyAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjggYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03NCAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTExIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQyIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xNzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTY1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5OSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5gO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IHtnZXRUb3BMZXZlbEZvbGRlcn0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3RpY2snLCBoYW5kbGVUaWNrICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICBjb25zdCB0ZW1wTWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlVGljayggeyBpbnB1dCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCAgfHwgZm9sZGVyLmdyYWJEaXNhYmxlZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5wcmVzc2VkICYmIGlucHV0LnNlbGVjdGVkICYmIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgaWYoIGlucHV0LmludGVyYWN0aW9uLnByZXNzID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICAgICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24uc3ViKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7ICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LndvcmxkVG9Mb2NhbChpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vTk9URTo6IGluIG9ydGhvZ3JhcGhpYyBtb2RlLCB3ZSd2ZSBhbHJlYWR5IG11dGF0ZWQgdGhlIHBvc2l0aW9uIG9mIGZvbGRlcnMsXHJcbiAgICAgICAgICAvL21lYW5pbmcgdGhlcmUgY291bGQgYmUgc29tZSBpbmNvbnNpc3RlbmN5IHdpdGggdGhlIG1vdXNlSW50ZXJzZWN0aW9uIHBvaW50IG5vIGxvbmdlciBiZWluZyByaWdodC4uLlxyXG4gICAgICAgICAgLy9JIHRob3VnaHQgdGhpcyB3YXMgcGxheWluZyBhIHJvbGUgaW4gYSBidWcgd2l0aCBvcnRob2dyYXBoaWMgZm9sZGVyIGxheW91dCwgYXBwZWFycyBvayBmb3Igbm93LlxyXG4gICAgICAgICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG5cclxuICAgICAgICAgIGZvbGRlci51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICBpZiggaGl0T2JqZWN0ID09PSBwYW5lbCApe1xyXG4gICAgICAgICAgaGl0T2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBoaXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZVBsYW5lLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KCBpbnB1dC5tb3VzZUNhbWVyYS5nZXRXb3JsZERpcmVjdGlvbiggaW5wdXQubW91c2VQbGFuZS5ub3JtYWwgKSwgdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VQbGFuZSApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBpZiggaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgICBpZiggaGl0T2JqZWN0ICE9PSBwYW5lbCApe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQgPSBmb2xkZXI7XHJcblxyXG4gICAgICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuc2VsZWN0ZWQubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZU9mZnNldC5jb3B5KCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApLnN1YiggdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgXHJcbiAgICAgIHRlbXBNYXRyaXguZ2V0SW52ZXJzZSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIHRlbXBNYXRyaXggKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG5cclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcbiAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgaW5wdXRPYmplY3QuYWRkKCBmb2xkZXIgKTsgXHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJiZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlucHV0LnNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuXHJcbiAgICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiUmVsZWFzZWQnLCBmb2xkZXIgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsImV4cG9ydCBjb25zdCBncmFiQmFyID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFnQ0FZQUFBQ2luWDZFQUFBQUNYQklXWE1BQUM0akFBQXVJd0Y0cFQ5MkFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQURza2FWUllkRmhOVERwamIyMHVZV1J2WW1VdWVHMXdBQUFBQUFBOFAzaHdZV05yWlhRZ1ltVm5hVzQ5SXUrN3Z5SWdhV1E5SWxjMVRUQk5jRU5sYUdsSWVuSmxVM3BPVkdONmEyTTVaQ0kvUGdvOGVEcDRiWEJ0WlhSaElIaHRiRzV6T25nOUltRmtiMkpsT201ek9tMWxkR0V2SWlCNE9uaHRjSFJyUFNKQlpHOWlaU0JZVFZBZ1EyOXlaU0ExTGpZdFl6RXpNaUEzT1M0eE5Ua3lPRFFzSURJd01UWXZNRFF2TVRrdE1UTTZNVE02TkRBZ0lDQWdJQ0FnSUNJK0NpQWdJRHh5WkdZNlVrUkdJSGh0Ykc1ek9uSmtaajBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOHdNaTh5TWkxeVpHWXRjM2x1ZEdGNExXNXpJeUkrQ2lBZ0lDQWdJRHh5WkdZNlJHVnpZM0pwY0hScGIyNGdjbVJtT21GaWIzVjBQU0lpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB6ZEVWMmREMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFJYWmxiblFqSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwMGFXWm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNScFptWXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpYaHBaajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5bGVHbG1MekV1TUM4aVBnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBiM0pVYjI5c1BrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPakkxT2pNeUxUQTNPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRZdE1Ea3RNamhVTVRZNk16YzZNak10TURjNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pNM09qSXpMVEEzT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThaR002Wm05eWJXRjBQbWx0WVdkbEwzQnVaend2WkdNNlptOXliV0YwUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNHpQQzl3YUc5MGIzTm9iM0E2UTI5c2IzSk5iMlJsUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rbERRMUJ5YjJacGJHVStjMUpIUWlCSlJVTTJNVGsyTmkweUxqRThMM0JvYjNSdmMyaHZjRHBKUTBOUWNtOW1hV3hsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmVHMXdUVTA2U1c1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSdlkzVnRaVzUwU1VRK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPamRsTnpkbVltWmpMVGcxWkRRdE1URmxOaTFoWXpobUxXRmpOelUwWldRMU9ETTNaand2ZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pazl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDU0YlhBdVpHbGtPbU0xWm1NMFpHWXlMVGt4WTJNdFpUSTBNUzA0WTJWakxUTXpPREl5WTJRMVpXRmxPVHd2ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG1OeVpXRjBaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEcGpOV1pqTkdSbU1pMDVNV05qTFdVeU5ERXRPR05sWXkwek16Z3lNbU5rTldWaFpUazhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UWXRNRGt0TWpoVU1UWTZNalU2TXpJdE1EYzZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTI5dWRtVnlkR1ZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHdZWEpoYldWMFpYSnpQbVp5YjIwZ1lYQndiR2xqWVhScGIyNHZkbTVrTG1Ga2IySmxMbkJvYjNSdmMyaHZjQ0IwYnlCcGJXRm5aUzl3Ym1jOEwzTjBSWFowT25CaGNtRnRaWFJsY25NK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBJSEprWmpwd1lYSnpaVlI1Y0dVOUlsSmxjMjkxY21ObElqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tRmpkR2x2Ymo1ellYWmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHdPUzB5T0ZReE5qb3pOem95TXkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNHhQQzlsZUdsbU9rTnZiRzl5VTNCaFkyVStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0Mk5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNand2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgrT2hGN1J3QUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUFsRWxFUVZSNDJ1elpzUTNBSUF4RVVUdVRaSlJza3Q1TFJGbUNkVExhcFVLQ0Jpam8vRjBobjJTa0p4SUtYSkpscnNPU0Z3QUFBQUJBNnZLSTZPN0JVb3JYZFp1MS9WRVdFWmVaZmJONW0vWmFtamZLK0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNCZnVhU25hN2kvZGQxbWJYK1VTVHJON0o3TjI3VFgwcnhSeGduZ1pZaWZJQUFBQUpDNGZnQUFBUC8vQXdBdU1WUHcyMGh4Q3dBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQxJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAvLyB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjU7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwLCBpbWFnZS5oZWlnaHQgLyAxMDAwLCAxLCAxICk7XHJcblxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcbn0oKSk7XHJcblxyXG5leHBvcnQgY29uc3QgZG93bkFycm93ID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPakU0T2pJMUxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3hPRG95TlMwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNRFF5WWpJMFpTMWlNemMyTFdJME5HSXRPR0k0WXkxbFpURmpZMkl6WVdVMU1EVThMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qTXdOREppTWpSbExXSXpOell0WWpRMFlpMDRZamhqTFdWbE1XTmpZak5oWlRVd05Ud3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejVVaWx6MEFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBSmRTVVJCVkhqYTdOM0xjY0pBRUlUaFJ1VzduY1VlVFFoa1FBaUlETWdJaFVJSWNGUVdKZ0o4OEZLbG92d0FyTjJkNlo0NWNaR0EvVDl2aVlmdHhlVnlRWXp1ZExFRUFTQW1BTVFFZ0JqSmVXbDF4eW1sTndBSEFNZHhISHZGeFU4cERRQ1dBRmJqT0g3STdBQ1QrTzhBTm5raEZPTnY4aG9jOHByd0E3aUpmeDBwQkpQNDEybUdvRE1RWHdyQk4vR2JJdWlNeEpkQThFdjhaZ2c2US9HcEVkd1J2d21DemxoOFNnUVB4SytPb01ZT01Ed1lud3JCRS9HbkNBYlhBUEtUWC8vakZKdVVVdTg0ZnY5ay9PdXNTLzhRZEFibDM4N2VJNEw4bVBjem5Lcm9UbGh5QjFqT2VDNVhDR2FNWDJJdHF3RllBVGlwSVNnUS81VFgwaGVBL042MkZJSlM4VXQrVGxEMElsQUpnY2Y0VlY0R0tpRHdHci9XK3dEVUNEekhyd2FBRllIMytGVUJzQ0ZnaUY4ZEFBc0NsdmhOQUhoSHdCUy9HUUN2Q05qaU53WGdEUUZqL09ZQXZDQmdqVzhDZ0hVRXpQSE5BTENLZ0QyK0tRRFdFQ2pFTndmQUNnS1YrQ1lCVEJEMEFNNjFFUlNJZndiUVc0eHZGa0JHY013N1FUVUVoZUt2OG5OQkFEQ01RREcrZVFDMUVLakdCNENGbDc4UmxGSmE0dXNYVEY3bmpKUnZ6MzVlRC9GZEFTaUlBS3J4M1FFb2hBQ3E4VjFjQTFTNkpwQ003eEtBUVFSdTQ3c0ZZQWlCNi9pdUFSaEE0RDYrZXdBTkVWREVwd0RRQUFGTmZCb0FGUkZReGFjQ1VBRUJYWHc2QUFVUlVNYW5CRkFBQVcxOFdnQXpJcUNPVHcxZ0JnVDA4ZWtCVEJEc25qaDB4eDVmQWtCR01BRFlQbkRJTmgrREFLQ0hRQ2ErRklBN0VVakZsd1B3QndLNStKSUFma0FnR1I5dytKV3dPZWY2eldEVitQSUFZdUxmeGdXQVdJSUFFQk1BWWdKQWpPUjhEZ0QrNk96Z3Y0dXk5Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgaCA9IDAuMztcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggLTAuMDA1LCAtMC4wMDQsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgY2hlY2ttYXJrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPak16T2pVekxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3pNem8xTXkwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzJPRGN4WVRrNVl5MHpOakU1TFRsa05HRXRPRGRrTmkwd1lXRTVZVFJpTldVNE1qYzhMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qWTROekZoT1RsakxUTTJNVGt0T1dRMFlTMDROMlEyTFRCaFlUbGhOR0kxWlRneU56d3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejV6OVJUM0FBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBVHRTVVJCVkhqYTdKemJiNVJGR01aLzJ4YkN2VmhBU0V4VWlJMTQ0dzBoUXRIRUdySGdJU3FnTjZLZ3ROWVdBYjB3MFdvMVhxcmJQYlNsb2tZU3hmTWhlbVgvQWE3d0dBVnE4WFRwMzBEWGk1bUptMGEydTl2My9iNloyWGx1ZHJPSGR3L1BNelBQKzc0elg2RldxeUdGZ1lFQkVscEdEL0FlY0N0d0IvRGJjbStZbTVzVCsvQ3U5UC9uaW02Z0NEd0NYQXQ4RFZ5WDVSZElBc2dQQmFBRWpOUTlkaVB3RmJBNUNTQitUQUZQL2Mvalc0SFBnTDRrZ0hneEN3dzFlUDVtNEdON213UVFFYm9zK1U4MDhkcXR3RWYyTmdrZ0VyYy8weVQ1RG4xMk9kaVNCQkErK2FVV3lYZllBbndEWEo4RUVHNnFOd2tNcnlER1pwc2kzcEFFRUI2cVYzRDdyYUlQK05LbWlra0FnZUF0NEloZ3ZKdnNUSkFFNERrS3dDbmdzRUxzczBrQS9xLzVzOEFoaGRqVHdFRnBkNW9nUzM1VmFlVFBBazhEaTBrQS9wSmZFbDd6SFU3U3VIS1lsZ0FQMXZ5eWtOdGZpaGt0OHBNQVpFa2FWb2hiVllxYkJDQ0lVOENUQ25GTHdKajJsMDhDV05tYS83YVMyNjhDeDZRTlh4S0FySG1lQmg1WFdrN0dzaUEvVHdHTVlmYS9oVXArbWZZYU84MjQvZUdzeU05TEFDOWdtaVB2QXpzREk3L0xyczFEU2lOL0tJOGZsQ1hHZ1ZmdC9WN2dETEFySUFGTWgrcjJmUkRBUzhERWtzYzJBaDhDL1IzczlzdkFhSjVUV2xia3YzeUY1OVpqZHIxczkzamExM0w3RmV2MmF6RUxZTHdCK1E1ck1iM3ViUjRhdnBOS2JuOGFlQWE0bkxlNnRRM2ZSSk92N1FXKzhHZ202TEVqVktPeE00TTVEM0E1N3grcEtZQVg2d3hmczlnQWZBTHM4SUI4cmNhT0t4dlhmRkM1bGdER2dWZmFmSzh6aHJ0eS9FKzBYSGtsTDdlZnBRQW1XcGoybHhQQmJUbjhKN1BvMWZaSDhRelNBbmpOam40SnJNZWNqc21xV0ZRQTNsVnkreVhyOW9sZEFIY0t4N3NhK0R3RFk5aGo4L3lEaXFuZVlpY0k0RkhnUitHWWE1V3pBODNHemhSdzFGZnlOUVR3QzNDUHZaWEVPdUJUekVVVUpMRXFnMVRQVy9LMVRPQ2Z3Q0J3VVRqdU5jaVdqYnN4WlZpTlZDKzMycjR2YWVBZndGM0FnbkRjVFZZRXR3dU5VQTN5eTVqZHUzU3lBQUIrQjNZckxBY2JCT29FN3loTis1TjJ6U2NKd0dBZWVBRDRUamh1TDZhQjFLb242TGJrUDZZMDhvL2pTWVhQRndFQW5BY2VWaERCVlMxbUI2NnhvMEgrRktheHMwaGd5S29kZkFGNEVQaEpxVTZ3M0V5d3locXpRMHJrajRSSWZwWUNBTGdFN0xFemdpUmN4YkMvd2Npdm9GUGVkZVFIaTZ5M2hQMWxqZUc4VW9xNE5Ec29ZSW84V2p0NWdpWS9Ed0hVcDRpL0ttUUhaK3BFVU1EczVORncrMFV5T0xRUnF3RGNjbkF2OEwxdzNIWEFhWnNpdnE1aytJckFDU0pCbnFlRDU0RUR3QWZBTFlKeE53SGZLcG15c2lWL01SWUI1SDB5NkFLd0gvaEJPTzVxWUkyQzRUc2FFL2srQ0FETTFiSDNJbDh4bEVUVkdyNGFrY0dYczRGL0EzZmJHY0UzVkFpb3RoK3FBTUIwRVhkN0pvSkpQTnpHRmFzQXdEU1FCcEhmVk5LdTJ6OUc1UER4ZVBnQzhCQndMdWVSZnlMR05UOEVBWURaVEhJQStRWlNzMnYrOGRqY2ZtZ0NjSFdDKzVGdklDM245a2M3aFh6ZkJlQ000UjdreThZZDUvWkRGUUQ4MTBDNnFQZ1owYnY5a0FWUW55SnFGSXZleEd6bUlBbkFiMXdDN2hNMmhrWGdXVG9Zb1YwbHpEV1FKRkxFNkJvN25TQUFseUx1WTJVTnBBb1pYb290Q1VBZUM1Z0cwczl0a2o5S1F0QUNBTk5BR3FTMVBZYWxSSDQ4QW5BcFlyUGJ5NG9FZG1nakNhRDVGSEV2amJlWHZZRXA3eVpFS0FEbkNmWmJFZndEUEk4NUwrRElmNDRPYU95MGczOEhBTS9lN2d1SVJ4OTRBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRUVTVVJCVkdpQjdkaEJEb013REVSUjdqVGlKQ1B1ZjVXdW1waFZ4WHlrVkpHeklwSjVjZ3NrZG80TGpxT0JyUUE5SEEwMDBNRCt3UFZqdkFXY0ZCanpFQmdKcE1DY1o4Qk1JQVRLUEFKS0FobFE1d253VGNBcE1DNURZQ1NRQXZlcjU4Qk1JQVRLRFJGUUVzaUFHazhBVTBBUU1BVUVBVk5BRURBRkJBRlRRQkF3QlFRQlUwQVFNQVVFQVZOQUVEQUZCQUZUUUJEd2NnRC9CUDRuNHNmSVh5VDhLdk9QQ1gvT2ZFSEJTeHBmVlBHeXpqY1d2TFh4elJWdjc3ekF3Q1VPTDdKd21jY0xUVnpxOG1JN0wvZlBra0lFNEphSE4xMjQ3ZU9OSjI1OWVmTjlpMWx6QUZHREZoM0NsS2hWQjFFemJObGgzSWo3d3hQTkJocG9ZRFdRamdhMkFENVMvQ3lJdmJtcTdnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NCdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHVuZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFUFNVUkJWR2lCN2RneENzUXdEQVRBL0Vub0pVTC8vOHBWc1dXbE9Md0xVVEJ5RmZiRXNOYzRkaTRuMTlYQVVZQnNyZ1lhYU9COHdQOHNHakFXY0Jvd0ZuQWFNQlp3R2pBV2NCalFVQUVDSkF4alFLaUFBZko4MmdSbUJSQ1lGVkJnVkVDQngrL2JnS1pzRzhnRCswQ3FzQStrQ1FCWUt3REFPb0lBU3dVRVdHWWdJRmFBZ0RpRUFhRUNCb1FwRUpnVlFHQ09vY0NvZ0FMd2p2U29BQVAzSUE0b0N3Z05LQXNJRFdnNXdQNEZaUUVuQVdVQkp3RmxnVHNyMjFCR1ZyV3B6cXpveFJLeW1wZHJ6RW9PR0V0V2NjaGFzNEtEWnNyZVAyem43UFVMeDNnRWdWR2c2dG8zQ3hSZGZVT0JvdXQvS0ZENkNjUllRRWpBV0VCSXdGZ2d6MzN3aTJZRERUUlFEYUNyZ1NPQUg4SDhLcWdnWXBBVUFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ1J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcbiIsIi8qKiBcclxuICogQmlnIGJ1dHRvbiB3aXRoIGFuIGltYWdlIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogQWxzbyB1c2FibGUgYXMgYW4gJ3h5IGNvbnRyb2xsZXInIHZpYSBhZGRYWUNvbnRyb2xsZXIgbWV0aG9kLlxyXG4gKiBcclxuICogQVBJIHN1YmplY3QgdG8gY2hhbmdlLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7aXNDb250cm9sbGVyVmlzaWJsZX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBmdW5jID0gdW5kZWZpbmVkLFxyXG4gIHByZXNzaW5nID0gdW5kZWZpbmVkLFxyXG4gIGltYWdlID0gXCJ0ZXh0dXJlcy9zcG90bGlnaHQuanBnXCIsIC8vVE9ETyBiZXR0ZXIgZGVmYXVsdFxyXG4gIHdpZGUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY2hhbmdlQ29sb3JPbkhvdmVyID0gdHJ1ZSwgLy9xdWljayBoYWNrOiBjb2xvciBwaWNrZXIgd2FudHMgdGhpcyB0byBiZSBmYWxzZVxyXG4gIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAgLy9YWFggbWFnaWMgbnVtYmVycy4uLlxyXG4gIGlmICghaGVpZ2h0KSBoZWlnaHQgPSBMYXlvdXQuUEFORUxfV0lEVEggICogKHdpZGUgPyAwLjk0IDogMC4yNSk7XHJcbiAgXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAod2lkZSA/IDAuOTQgOiAwLjI1KSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gYnV0dG9uRGVwdGg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgMSwgMSApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICAvL21vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gIGlmICghd2lkZSkgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgZWxzZSB7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAwLjc1O1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi55ID0gMC4wMTsgLy9YWFggbWFnaWMgbnVtYmVyXHJcbiAgfVxyXG5cclxuICB2YXIgbWF0ZXJpYWw7XHJcbiAgaWYgKGltYWdlLmlzTWF0ZXJpYWwpIHtcclxuICAgIG1hdGVyaWFsID0gaW1hZ2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgbWF0ZXJpYWwpO1xyXG4gIH1cclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgLy9idXR0b24gbGFiZWwgcmVtb3ZlZDsgbWlnaHQgd2FudCBvcHRpb25zIGxpa2UgYSBob3ZlciBsYWJlbCBpbiBmdXR1cmUuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGlmICh3aWRlKSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIC8vVE9ETzogZHJhZyBhbmQgaG92ZXJcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdob3ZlcmluZycsIGhhbmRsZUhvdmVyICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlUHJlc3NpbmcgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgbGV0IGhvdmVyRnVuYyA9IHVuZGVmaW5lZDtcclxuICAvLyBJIG1pZ2h0IHlldCBkZWNpZGUgdG8gY2hhbmdlIHRoaXMgaW50ZXJmYWNlLlxyXG4gIC8vIG1pZ2h0IHVzZSBhIGRpZmZlcmVudCBuYW1lLCBtaWdodCB3YW50IHRvIGFkZCBsaXN0ZW5lcnMgdG8gZXZlbnRcclxuICAvLyByYXRoZXIgdGhhbiBqdXN0IHNldCBjYWxsYmFjayBmdW5jdGlvbi5cclxuICBncm91cC5vbkhvdmVyID0gZiA9PiB7XHJcbiAgICBob3ZlckZ1bmMgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBncm91cC5vblByZXNzaW5nID0gZiA9PiB7XHJcbiAgICBwcmVzc2luZyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhvdmVyKCBwICl7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChob3ZlckZ1bmMpIGhvdmVyRnVuYyhwKTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy9pdCBzaG91bGQgYmUgdGhhdCB0aGUgY2hlY2tzIGluIGluZGV4LmpzIG1lYW4gdGhhdCBtZXRob2RzIGRvbid0IGdldCBjYWxsZWQgb24gaW52aXNpYmxlXHJcbiAgICAvL29iamVjdHMsIHJlbmRlcmluZyB0aGVzZSB0ZXN0cyByZWR1bmRhbnQuLi4gaG93ZXZlciwgdGhhdCBkb2Vzbid0IGFwcGVhciB0byBiZSB0aGUgY2FzZS5cclxuICAgIC8vZXhwZXJpZW5jZWQgc29tZSBidWdzIHBhcnRpY3VsYXJseSB3aXRoICdtb2RhbCBlZGl0b3InIHR5cGUgcGFuZWxzLlxyXG4gICAgLy9UT0RPOiBlaXRoZXIgbWFrZSBzdXJlIGludmlzaWJsZSBvYmplY3RzIGFyZW4ndCBjYWxsZWQgaW4gdGhlIGZpcnN0IHBsYWNlLFxyXG4gICAgLy9vciBtYWtlIHN1cmUgYWxsIHR5cGVzIG9mIG9iamVjdCBkbyB0aGlzIG1vcmUgdGhvcm91Z2ggdmlzaWJpbGl0eSBjaGVjay4uLlxyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAob2JqZWN0KSBvYmplY3RbIHByb3BlcnR5TmFtZSBdKHApO1xyXG4gICAgaWYgKGZ1bmMpIGZ1bmMocCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vY29tcHV0ZSB4ICYgeSBhcyBub3JtYWxpc2VkIGNvb3JkaW5hdGVzIGZyb20gcC5wb2ludFxyXG4gIC8vY291bGQgY29uc2lkZXIgbW92aW5nIHRoaXMgY29tcHV0YXRpb24gaW50byBpbnRlcmFjdGlvbi5qcyBwZXJmb3JtU3RhdGVFdmVudHMoKVxyXG4gIGZ1bmN0aW9uIGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHBvaW50KSB7XHJcbiAgICBjb25zdCBwID0gaGl0c2NhblZvbHVtZS53b3JsZFRvTG9jYWwocG9pbnQpO1xyXG4gICAgcC54IC89IEJVVFRPTl9XSURUSDtcclxuICAgIHAueSAvPSBCVVRUT05fSEVJR0hUO1xyXG4gICAgcC55ICs9IDAuNTtcclxuICAgIHAueCA9IE1hdGgubWF4KE1hdGgubWluKHAueCwgMSksIDApO1xyXG4gICAgcC55ID0gTWF0aC5tYXgoTWF0aC5taW4ocC55LCAxKSwgMCk7XHJcbiAgICByZXR1cm4gcDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZVByZXNzaW5nKCBwICkge1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgcHJlc3NpbmcgYXQgKCR7cG9pbnQueH0sICR7cG9pbnQueX0pYCk7IC8vZmlyc3QgaW5zdGFuY2Ugb2YgJ3ByZXNzaW5nJyBpcyBhbHdheXMgYXQgKDEsIDEpXHJcbiAgICAvL25iLCBsaWtlbHkgdG8gbmVlZCBhIGRpZmZlcmVudCBzdHJhdGVneSBmb3IgZHVhbCB3aWVsZGluZ1xyXG4gICAgaWYgKHByZXNzaW5nKSBwcmVzc2luZyhwKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYgKCFtYXRlcmlhbC5jb2xvcikgcmV0dXJuO1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweENDQ0NDQyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqIFxyXG4gKiBHcmlkIG9mIGJ1dHRvbnMgd2l0aCBpbWFnZXMgb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBpbWFnZWJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtjcmVhdGVUZXh0TGFiZWwsIGNyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3RzLCAvLyBhcnJheSBvZiB7ZnVuYywgaW1hZ2UgfCB0ZXh0LCB0aXAob3B0aW9uYWwpLCByZWxlYXNlKG9wdGlvbmFsKX1cclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICByb3dIZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY29sdW1ucyA9IDRcclxufSA9IHt9ICl7XHJcbiAgXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdCBtYXJnaW4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMztcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSAod2lkdGggLSBtYXJnaW4pICogKDEvY29sdW1ucyk7XHJcbiAgLy9UT0RPOiBhZGQgc2V0Um93SGVpZ2h0IG1ldGhvZFxyXG4gIGxldCBCVVRUT05fSEVJR0hUID0gcm93SGVpZ2h0ID4gMCA/IHJvd0hlaWdodCA6IEJVVFRPTl9XSURUSDtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uZ3JpZFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke29iamVjdHN9XWA7XHJcbiAgXHJcbiAgY29uc3Qgcm93cyA9IE1hdGguY2VpbChvYmplY3RzLmxlbmd0aCAvIGNvbHVtbnMpO1xyXG4gIGxldCBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgZ3JvdXAuc2V0Um93SGVpZ2h0ID0gaCA9PiB7XHJcbiAgICByb3dIZWlnaHQgPSBCVVRUT05fSEVJR0hUID0gaDtcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcbiAgICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGhpZ2hsaWdodExhc3RQcmVzc2VkID0gZmFsc2U7XHJcbiAgbGV0IGxhc3RQcmVzc2VkID0gbnVsbDtcclxuICBsZXQgbGFzdFByZXNzZWRDb2w7XHJcbiAgZ3JvdXAuaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSAoY29sID0gMHgzMzU1RUUpID0+IHtcclxuICAgICAgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBjb2wgIT09IGZhbHNlO1xyXG4gICAgICBsYXN0UHJlc3NlZENvbCA9IGNvbDtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBcclxuICBsZXQgcGFuZWwsIGdyYWJJbnRlcmFjdGlvbiwgYnV0dG9ucyA9IFtdO1xyXG5cclxuICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaW5pdFBhbmVsKCkge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgcGFuZWwuYWRkKGNvbnRyb2xsZXJJRCk7XHJcbiAgICBcclxuICAgIGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5ncm91cC5yZW1vdmUoYikpO1xyXG4gICAgYnV0dG9ucyA9IFtdO1xyXG4gICAgZ3JvdXAuZ3VpQ2hpbGRyZW4gPSBidXR0b25zO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBsYXlvdXRCdXR0b25zKCkge1xyXG4gICAgaW5pdFBhbmVsKCk7XHJcbiAgICAvL1RPRE86IHBhZGRpbmdcclxuICAgIGNvbnN0IGJ1dHRvbldQYWRkZWQgPSBCVVRUT05fV0lEVEggKiAwLjk5LCBidXR0b25IUGFkZGVkID0gQlVUVE9OX0hFSUdIVCAqIDAuOTk7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGJ1dHRvbldQYWRkZWQsIGJ1dHRvbkhQYWRkZWQsIDEsIDEgKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBidXR0b25XUGFkZGVkIC8gMiwgLWJ1dHRvbkhQYWRkZWQgLyAyLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgICB2YXIgaSA9IDA7XHJcbiAgICBcclxuICAgIC8vVE9ETzogdG9nZ2xlcyByYXRoZXIgdGhhbiB0cmlnZ2Vycy4uLlxyXG4gICAgb2JqZWN0cy5mb3JFYWNoKChvYmosIGkpID0+IHtcclxuICAgICAgICBpZiAoIW9iai5pbWFnZSAmJiAhb2JqLnRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc3ViZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9ub3RlOiByZWR1Y2luZyBuZXN0aW5nIGNvdWxkIGltcHJvdmUgcGVyZm9ybWFuY2UuXHJcbiAgICAgICAgc3ViZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VCdXR0b25HcmlkRWxlbWVudFwiO1xyXG4gICAgICAgIGdyb3VwLmFkZChzdWJncm91cCk7XHJcbiAgICAgICAgYnV0dG9ucy5wdXNoKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sID0gaSAlIGNvbHVtbnM7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gTWF0aC5mbG9vcihpIC8gY29sdW1ucyk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnggPSAoMipMYXlvdXQuUEFORUxfTUFSR0lOKSArIEJVVFRPTl9XSURUSCAqIGNvbDtcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi55ID0gKGhlaWdodC8yKSAtQlVUVE9OX0hFSUdIVCAqIHJvdztcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG5cclxuICAgICAgICAvLyAgaGl0c2NhbiB2b2x1bWUuXHJcbiAgICAgICAgLy8gVGhpcyBtYXRlcmlhbCBjb3VsZCBwcm9iYWJseSBiZSByZXVzZWQuXHJcbiAgICAgICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG5cclxuICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgICAgICBpZiAob2JqLmltYWdlKSBhcHBseUltYWdlVG9NYXRlcmlhbChvYmouaW1hZ2UsIG1hdGVyaWFsKTtcclxuICAgICAgICBpZiAob2JqLnRleHQpIHtcclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZShvYmoudGV4dCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpbiA9IDIqTGF5b3V0LkdSSURfQlVUVE9OX01BUkdJTjtcclxuICAgICAgICAgICAgbGV0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICBpZiAodyA+IEJVVFRPTl9XSURUSCAtIG1hcmdpbikge1xyXG4gICAgICAgICAgICAgICAgdGV4dC5jb25zdHJhaW5Cb3VuZHMoQlVUVE9OX1dJRFRIIC0gbWFyZ2luLCBCVVRUT05fSEVJR0hUIC0gbWFyZ2luKTsgLy88LS1cclxuICAgICAgICAgICAgICAgIGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLmFkZCh0ZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGV4dCA9IHRleHQ7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueCA9IG9iai50ZXh0WCB8fCAwLjUgKiAoQlVUVE9OX1dJRFRIIC0gdyk7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueSA9IG9iai50ZXh0WSB8fCAtMC41ICogQlVUVE9OX0hFSUdIVCAtIGg7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgICAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgICAgIC8vYnV0dG9uIGxhYmVsICYgZGVzY3JpcHRvciBsYWJlbCByZW1vdmVkLlxyXG4gICAgICAgIC8vVG9vbHRpcCB0ZXh0IG9wdGlvbiBhZGRlZC4gIE1pZ2h0IHdhbnQgdG8gYmUgYWJsZSB0byBwYXNzIGluIHJpY2hlciB0aGluZ3MuLi5cclxuICAgICAgICAvL21heWJlIGFuIGFyYml0cmFyeSBUSFJFRSBvYmplY3Qgd291bGQgd29yayB3ZWxsLi4uXHJcbiAgICAgICAgaWYgKG9iai50aXApIHtcclxuICAgICAgICAgICAgY29uc3QgdGlwVGV4dCA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIG9iai50aXAsIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vc3ViZ3JvdXAuYWRkKHRpcFRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50aXBUZXh0ID0gdGlwVGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy9wYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcbiAgICAgICAgc3ViZ3JvdXAuYWRkKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgcGFuZWwuYWRkKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAgICAgICAgIGlmKCBzdWJncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vVE9ETzogc3RhbmRhcmRpc2UgaGFuZGxpbmcgb2YgZXhjZXB0aW9ucyBpbiBjYWxsYmFja3NcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIG9iai5mdW5jKCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIG9iai5lcnJvciA9IGUgfHwgJ3VuZGVmaW5lZCBleGNlcHRpb24nO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxhc3RQcmVzc2VkID0gb2JqO1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC40O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgICAgICAgICAgIGlmIChvYmoucmVsZWFzZSkgb2JqLnJlbGVhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9xdWljayBjb2xvciBoYWNrLi4uXHJcbiAgICAgICAgY29uc3QgaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgY29uc3Qgbm9Ib3ZlckNvbCA9IG9iai50ZXh0ID8gMHgxMTEgOiAweENDQ0NDQztcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3ID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaGlnaGxpZ2h0TGFzdFByZXNzZWQgJiYgbGFzdFByZXNzZWQgPT09IG9iaikge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBsYXN0UHJlc3NlZENvbCApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpID8gaG92ZXJDb2wgOiBub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygpICk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwwKSApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlOyAvL3NvbWV0aW1lcyB3ZSBjYXJlIGFib3V0IHRoZSBtb3VzZSBiZWluZyBwcmVzc2VkLCBldmVuIG9uIGJhY2tncm91bmRcclxuICAgICAgIC8vd2lsbCBiZSBzZXQgZmFsc2UgYXQgZW5kIG9mIGZpcnN0IHVwZGF0ZS4gU2hvdWxkbid0IGJlIG5lY2Vzc2FyeSB0byBhZGQgYSBuZXcgcHJvcGVydHkuLi4gXHJcbiAgICAgICAvL29uUHJlc3NlZCBzaG91bGQgYmUgYWRlcXVhdGUuXHJcbiAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgfSwgdHJ1ZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2V1cCcsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBmdW5jdGlvbiB1c2VycyBydW4gdG8gZ2l2ZSBEQVQgR1VJIGFuIGlucHV0IGRldmljZS5cclxuICAgIEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBmb3IgVml2ZUNvbnRyb2xsZXIgYW5kIGJpbmRzIGJ1dHRvbnMgKyBoYXB0aWMgZmVlZGJhY2suXHJcblxyXG4gICAgUmV0dXJucyBhIGxhc2VyIHBvaW50ZXIgc28gaXQgY2FuIGJlIGRpcmVjdGx5IGFkZGVkIHRvIHNjZW5lLlxyXG5cclxuICAgIFRoZSBsYXNlciB3aWxsIHRoZW4gaGF2ZSB0d28gbWV0aG9kczpcclxuICAgIGxhc2VyLnByZXNzZWQoKSwgbGFzZXIuZ3JpcHBlZCgpXHJcblxyXG4gICAgVGhlc2UgY2FuIHRoZW4gYmUgYm91bmQgdG8gYW55IGJ1dHRvbiB0aGUgdXNlciB3YW50cy4gVXNlZnVsIGZvciBiaW5kaW5nIHRvXHJcbiAgICBjYXJkYm9hcmQgb3IgYWx0ZXJuYXRlIGlucHV0IGRldmljZXMuXHJcblxyXG4gICAgRm9yIGV4YW1wbGUuLi5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCl7IGxhc2VyLnByZXNzZWQoIHRydWUgKTsgfSApO1xyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW5wdXRPYmplY3QoIG9iamVjdCApe1xyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCggb2JqZWN0ICk7XHJcblxyXG4gICAgaW5wdXQubGFzZXIucHJlc3NlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGNvbnN0IGhpdHMgPSBpbnB1dC5pbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvLyBvbmx5IHBheSBhdHRlbnRpb24gdG8gcHJlc3NlcyBvdmVyIHRoZSBHVUlcclxuICAgICAgaWYgKGZsYWcgJiYgaGl0cyAmJiAoaGl0cy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5ncmlwcGVkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgaW5wdXQuZ3JpcHBlZCA9IGZsYWc7XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmN1cnNvciA9IGlucHV0LmN1cnNvcjtcclxuXHJcbiAgICBpZiggVEhSRUUuVml2ZUNvbnRyb2xsZXIgJiYgb2JqZWN0IGluc3RhbmNlb2YgVEhSRUUuVml2ZUNvbnRyb2xsZXIgKXtcclxuICAgICAgYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgb2JqZWN0LCBpbnB1dC5sYXNlci5wcmVzc2VkLCBpbnB1dC5sYXNlci5ncmlwcGVkICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLnB1c2goIGlucHV0ICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0Lmxhc2VyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEhlcmUgYXJlIHRoZSBtYWluIGRhdCBndWkgY29udHJvbGxlciB0eXBlcy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBtaW4gPSAwLjAsIG1heCA9IDEwMC4wICl7XHJcbiAgICBjb25zdCBzbGlkZXIgPSBjcmVhdGVTbGlkZXIoIHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBtaW4sIG1heCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBzbGlkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gc2xpZGVyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBjaGVja2JveCA9IGNyZWF0ZUNoZWNrYm94KHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGNoZWNrYm94ICk7XHJcblxyXG4gICAgcmV0dXJuIGNoZWNrYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmMgdG8gY2FsbCBiYWNrIHdoZW4gYnV0dG9uIHByZXNzZWRcclxuICAgKiBAcGFyYW0geyp9IGltYWdlIGNhbiBiZSBmaWxlbmFtZSwgV2ViR0xSZW5kZXJUYXJnZXQgb3IgTWF0ZXJpYWxcclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHdpZGUgd2hldGhlciB0byBtYWtlIGJ1dHRvbiBmaWxsIGVudGlyZSB3aWR0aCBvZiBwYW5lbCAoYXBpIHN1YmplY3QgdG8gY2hhbmdlKVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uKGZ1bmMsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IG9iamVjdCA9IHsgZjogZnVuYyB9O1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJ2YnO1xyXG5cclxuXHJcbiAgICAvL3NlZSBhbHNvIGZvbGRlci5qcyB3aGVyZSB0aGlzIGlzIGFkZGVkIHRvIGdyb3VwIG9iamVjdC4uLlxyXG4gICAgLy9hcyBzdWNoIHRoaXMgZnVuY3Rpb24gYWxzbyBuZWVkcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gY3JlYXRlRm9sZGVyLlxyXG4gICAgLy9wZXJoYXBzIGFsbCBvZiB0aGVzZSAnYWRkWCcgZnVuY3Rpb25zIGNvdWxkIGJlIGluaXRpYWxseSBwdXQgb250byBhbiBvYmplY3Qgc28gdGhhdFxyXG4gICAgLy9uZXcgYWRkaXRpb25zIGNvdWxkIGJlIGFkZGVkIHNsaWdodGx5IG1vcmUgZWFzaWx5LlxyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkWFlDb250cm9sbGVyKHByZXNzaW5nLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnJztcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByZXNzaW5nLCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChidXR0b24pO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVGhpcyBpbnRlcmZhY2UgbWF5IGJlIHN1YmplY3QgdG8gY2hhbmdlLiAgQXJndW1lbnRzIGFyZSBvYmplY3RzIGRlc2NyaWJpbmcgYnV0dG9uc1xyXG4gIEZpcnN0IG9iamVjdCBtYXkgYmUgYW4gaW50ZWdlciBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uUGFuZWwoY29scywgLi4uYXJncykge1xyXG4gICAgbGV0IGNvbHVtbnMgPSBOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpID8gY29scyA6IDQ7XHJcbiAgICBjb25zdCBvYmplY3RzID0gYXJncztcclxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihjb2xzKSkgb2JqZWN0cy51bnNoaWZ0KGNvbHMpXHJcbiAgICBjb25zdCBncmlkID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogY29sdW1uc30pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChncmlkKTtcclxuICAgIHJldHVybiBncmlkO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkS2V5Ym9hcmQoIGtleUxpc3RlbmVyICkge1xyXG4gICAgaWYgKCFrZXlMaXN0ZW5lcikga2V5TGlzdGVuZXIgPSAoaykgPT4gY29uc29sZS5sb2coYGtleURvd24gJHtrfWApO1xyXG4gICAgY29uc3Qga2IgPSBjcmVhdGVLZXlib2FyZCh7a2V5TGlzdGVuZXIsIHRleHRDcmVhdG9yfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGtiKTtcclxuICAgIHJldHVybiBrYjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlVGV4dGJveCh7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVDb2xvclBpY2tlcih7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvcHRpb25zICl7XHJcbiAgICBjb25zdCBkcm9wZG93biA9IGNyZWF0ZURyb3Bkb3duKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBvcHRpb25zXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBkcm9wZG93biApO1xyXG4gICAgcmV0dXJuIGRyb3Bkb3duO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBbiBpbXBsaWNpdCBBZGQgZnVuY3Rpb24gd2hpY2ggZGV0ZWN0cyBmb3IgcHJvcGVydHkgdHlwZVxyXG4gICAgYW5kIGdpdmVzIHlvdSB0aGUgY29ycmVjdCBjb250cm9sbGVyLlxyXG5cclxuICAgIERyb3Bkb3duOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvYmplY3RUeXBlIClcclxuXHJcbiAgICBTbGlkZXI6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mTnVtYmVyVHlwZSwgbWluLCBtYXggKVxyXG5cclxuICAgIENoZWNrYm94OlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkJvb2xlYW5UeXBlIClcclxuXHJcbiAgICBCdXR0b246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mRnVuY3Rpb25UeXBlIClcclxuXHJcbiAgICBOb3QgdXNlZCBkaXJlY3RseS4gVXNlZCBieSBmb2xkZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKXtcclxuXHJcbiAgICBpZiggb2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2VcclxuXHJcbiAgICBpZiAob2JqZWN0LmlzRm9sZGVyKSByZXR1cm4gb2JqZWN0O1xyXG5cclxuICAgIGlmKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgY29uc29sZS53YXJuKCAnbm8gcHJvcGVydHkgbmFtZWQnLCBwcm9wZXJ0eU5hbWUsICdvbiBvYmplY3QnLCBvYmplY3QgKTtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc09iamVjdCggYXJnMyApIHx8IGlzQXJyYXkoIGFyZzMgKSApe1xyXG4gICAgICByZXR1cm4gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzTnVtYmVyKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Jvb2xlYW4oIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNGdW5jdGlvbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc1N0cmluZyggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNDb2xvciggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYWRkIGNvdWxkbid0IGZpZ3VyZSBpdCBvdXQsIHBhc3MgaXQgYmFjayB0byBmb2xkZXJcclxuICAgIHJldHVybiB1bmRlZmluZWRcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVTbGlkZXIoIG1pbiA9IDAsIG1heCA9IDEgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBudW1iZXI6IG1pblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkU2xpZGVyKCBwcm94eSwgJ251bWJlcicsIG1pbiwgbWF4ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVEcm9wZG93biggb3B0aW9ucyA9IFtdICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgb3B0aW9uOiAnJ1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiggb3B0aW9ucyAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHByb3h5Lm9wdGlvbiA9IGlzQXJyYXkoIG9wdGlvbnMgKSA/IG9wdGlvbnNbIDAgXSA6IG9wdGlvbnNbIE9iamVjdC5rZXlzKG9wdGlvbnMpWzBdIF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFkZERyb3Bkb3duKCBwcm94eSwgJ29wdGlvbicsIG9wdGlvbnMgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUNoZWNrYm94KCBkZWZhdWx0T3B0aW9uID0gZmFsc2UgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBjaGVja2VkOiBkZWZhdWx0T3B0aW9uXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRDaGVja2JveCggcHJveHksICdjaGVja2VkJyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQnV0dG9uKCBmbiApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGJ1dHRvbjogKGZuIT09dW5kZWZpbmVkKSA/IGZuIDogZnVuY3Rpb24oKXt9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRCdXR0b24oIHByb3h5LCAnYnV0dG9uJyApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBOb3QgdXNlZCBkaXJlY3RseTsgdXNlZCBieSBmb2xkZXJzLlxyXG4gIFJlbW92ZSBjb250cm9sbGVycyBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgY29udHJvbGxlcnMga25vd24gdG8gZGF0LkdVSVZSLlxyXG4gIENhbGxzIHJlbW92ZVRlc3QgZmlyc3QgdG8gY2hlY2sgaW5wdXQgYXJndW1lbnRzLiAgcmV0dXJucyBmYWxzZSBpZiB0aGlzIHRlc3QgZmFpbHMuXHJcbiAgcmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuXHJcblxyXG4gIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlY3Vyc2l2ZWx5IHJlbW92ZSBlbGVtZW50cyBmcm9tIGZvbGRlcnM7IHRoYXQgaXMgZGVhbHQgd2l0aCBpbiB0aGUgZm9sZGVyIGNvZGUgd2hpY2ggY2FsbHMgdGhpcy5cclxuICBcclxuICAgKi9cclxuICBmdW5jdGlvbiByZW1vdmUoIC4uLmFyZ3MgKXtcclxuICAgIGxldCBhcmdTZXQgPSBbIC4uLm5ldyBTZXQoYXJncykgXTsgLy9qdXN0IGluIGNhc2UgdGhlcmUgd2VyZSByZXBlYXRlZCBlbGVtZW50cyBpbiBhcmdzLCB0dXJuIGludG8gU2V0IHRoZW4gYmFjayB0byBhcnJheS5cclxuICAgIGlmICggIXJlbW92ZVRlc3QoLi4uYXJnU2V0KSApIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ1NldC5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIHZhciBpID0gY29udHJvbGxlcnMuaW5kZXhPZiggb2JqICk7XHJcbiAgICAgIGlmICggaSA+IC0xKSBjb250cm9sbGVycy5zcGxpY2UoIGksIDEgKTtcclxuICAgICAgZWxzZSB7IC8vIEkgY2FuJ3Qgc2VlIGhvdyB0aGlzJ2QgaGFwcGVuIG5vdyB3ZSBndWFyZCBhZ2FpbnN0IHJlcGVhdGVkIGVsZW1lbnRzLlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW50ZXJuYWwgZXJyb3IgaW4gcmVtb3ZlLCBub3QgYW50aWNpcGF0ZWQgYnkgcmVtb3ZlVGVzdC4gSW50ZXJuYWwgZGF0LkdVSVZSIHN0YXRlIG1heSBiZSBpbmNvbnNpc3RlbnQuXCIpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVmVyaWZ5IHRoYXQgYWxsIG9mIHRoZSBpdGVtcyBpbiBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGV4aXN0aW5nIGNvbnRyb2xsZXJzIHRoYXQgc2hvdWxkIGJlIG9rIHRvIHJlbW92ZS5cclxuXHJcbiAgUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBhcmUgYW55IG1pc21hdGNoZXMsIHRydWUgaWYgYmVsaWV2ZWQgb2sgdG8gY29udGludWUgd2l0aCBhY3R1YWwgcmVtb3ZlKClcclxuXHJcbiAgSWYgYW55IG9mIHRoZSBwcm92aWRlZCBhcmdzIGFyZSBmb2xkZXJzIChoYXZlIGlzRm9sZGVyIHByb3BlcnR5KSB0aGlzIGlzIGNhbGxlZCByZWN1cnNpdmVseS5cclxuICBUaGlzIHdpbGwgcmVzdWx0IGluIHJlZHVuZGFudCB3b3JrIGFzIGVhY2ggZm9sZGVyIHdpbGwgYWxzbyBjYWxsIGl0IGFnYWluIGFzIGl0J3MgcmVtb3ZlZCwgYnV0IHRoaXMgaXMgY2hlYXBcclxuICBhbmQgaXQgbWVhbnMgdGhhdCBhbnkgZXJyb3Igc2hvdWxkIGJlIGNhdWdodCBhcyBlYXJseSBhcyBwb3NzaWJsZSBhbmQgdGhlIHdob2xlIHByb2Nlc3MgYWJvcnRlZC5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZVRlc3QoIC4uLmFyZ3MgKSB7XHJcbiAgICBmb3IgKHZhciBpPTA7IGk8YXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgb2JqID0gYXJnc1tpXTtcclxuICAgICAgaWYgKGNvbnRyb2xsZXJzLmluZGV4T2Yob2JqKSA9PT0gLTEgfHwgIW9iai5mb2xkZXIuaGFzQ2hpbGQob2JqKSkge1xyXG4gICAgICAgIC8vVE9ETzogdG9TdHJpbmcgaW1wbGVtZW50YXRpb25zIGZvciBjb250cm9sbGVyc1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2FuJ3QgcmVtb3ZlIGNvbnRyb2xsZXIgXCIgKyBvYmopOyAvL25vdCBzdXJlIHRoZSBwcmVmZXJyZWQgd2F5IG9mIHJlcG9ydGluZyBwcm9ibGVtIHRvIHVzZXIuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBpZiAoIXJlbW92ZVRlc3QoIC4uLm9iai5ndWlDaGlsZHJlbiApKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGxldGVseSByZW1vdmUgYWxsIEdVSSBlbGVtZW50cyBmcm9tIHRoZSBzeXN0ZW0gZ2xvYmFsbHksIFxyXG4gICAqIGluY2x1ZGluZyByZW1vdmluZyBhbnkgb2JqZWN0cyBmcm9tIHRoZSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY2xlYXJBbGwoKSB7XHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBjLnZpc2libGUgPSBmYWxzZTsgaWYgKGMucGFyZW50ICYmICFjLnBhcmVudC5ndWlDaGlsZHJlbikgYy5wYXJlbnQucmVtb3ZlKGMpO1xyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5zcGxpY2UoMCwgY29udHJvbGxlcnMubGVuZ3RoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGZvbGRlciB3aXRoIHRoZSBuYW1lLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIFRIUkVFLkdyb3VwIHR5cGUgb2JqZWN0cyBhbmQgY2FuIGRvIGdyb3VwLmFkZCgpIGZvciBzaWJsaW5ncy5cclxuICAgIEZvbGRlcnMgd2lsbCBhdXRvbWF0aWNhbGx5IGF0dGVtcHQgdG8gbGF5IGl0cyBjaGlsZHJlbiBvdXQgaW4gc2VxdWVuY2UuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgZ2l2ZW4gdGhlIGFkZCgpIGZ1bmN0aW9uYWxpdHkgc28gdGhhdCB0aGV5IGNhbiBkb1xyXG4gICAgZm9sZGVyLmFkZCggLi4uICkgdG8gY3JlYXRlIGNvbnRyb2xsZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggbmFtZSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gY3JlYXRlRm9sZGVyKHtcclxuICAgICAgdGV4dENyZWF0b3IsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGd1aUFkZDogYWRkLFxyXG4gICAgICBndWlSZW1vdmU6IHJlbW92ZSxcclxuICAgICAgYWRkQ29udHJvbGxlckZ1bmNzOiB7XHJcbiAgICAgICAgYWRkU2xpZGVyOiBhZGRTaW1wbGVTbGlkZXIsXHJcbiAgICAgICAgYWRkRHJvcGRvd246IGFkZFNpbXBsZURyb3Bkb3duLFxyXG4gICAgICAgIGFkZENoZWNrYm94OiBhZGRTaW1wbGVDaGVja2JveCxcclxuICAgICAgICBhZGRCdXR0b246IGFkZFNpbXBsZUJ1dHRvbixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvbjogYWRkSW1hZ2VCdXR0b24sXHJcbiAgICAgICAgYWRkWFlDb250cm9sbGVyOiBhZGRYWUNvbnRyb2xsZXIsXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b25QYW5lbDogYWRkSW1hZ2VCdXR0b25QYW5lbCxcclxuICAgICAgICBhZGRLZXlib2FyZDogYWRkS2V5Ym9hcmQsXHJcbiAgICAgICAgYWRkVGV4dGJveDogYWRkVGV4dGJveFxyXG4gICAgICB9LFxyXG4gICAgICBnbG9iYWxDb250cm9sbGVyczogY29udHJvbGxlcnMsXHJcbiAgICAgIC8vPz8/XHJcbiAgICAgIGFkZEhlYWRlckZ1bmNzOiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGZvbGRlciApO1xyXG5cclxuICAgIHJldHVybiBmb2xkZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFBlcmZvcm0gdGhlIG5lY2Vzc2FyeSB1cGRhdGVzLCByYXljYXN0cyBvbiBpdHMgb3duIFJBRi5cclxuICAqL1xyXG5cclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IHREaXJlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMyggMCwgMCwgLTEgKTtcclxuICBjb25zdCB0TWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCkge1xyXG4gICAgY29uc3QgaXNPcnRob2dyYXBoaWMgPSBtb3VzZUVuYWJsZWQgJiYgbW91c2VJbnB1dC5tb3VzZUNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYTtcclxuICAgIGlmIChhdXRvVXBkYXRlKSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoIHVwZGF0ZSApO1xyXG4gICAgXHJcbiAgICB2YXIgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCk7XHJcbiAgICBjb25zdCBmb2xkZXJzID0gY29udHJvbGxlcnMuZmlsdGVyKGMgPT4gYy5mb2xkZXIgPT09IGMpOyAvL2FsbCB0b3AtbGV2ZWwgZm9sZGVyc1xyXG4gICAgZm9sZGVycy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gaXNPcnRob2dyYXBoaWMgPyBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhIDogZmFsc2U7XHJcbiAgICAgIGlmIChmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgICBmLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgICBmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSBmYWxzZTsgLy8gcHJvdGVjdCBhbnkgbmV3bHktZGlzcGxheWVkIG1vZGFsRWRpdG9yIGZyb20gYmVpbmcgY2xlYXJlZFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChmLnVzZXJEYXRhLmxheW91dFBlbmRpbmcpIGYucGVyZm9ybUxheW91dCgpO1xyXG4gICAgfSk7IFxyXG5cclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgLy9UT0RPOiBsb2NrIG1vdXNlIG9uIGhvdmVyPz9cclxuICAgICAgbW91c2VJbnB1dC5pbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixpbnRlcmFjdGlvbn0gPSB7fSwgaW5kZXggKXtcclxuICAgICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgICBvYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgXHJcbiAgICAgIHRQb3NpdGlvbi5zZXQoMCwwLDApLnNldEZyb21NYXRyaXhQb3NpdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIHRNYXRyaXguaWRlbnRpdHkoKS5leHRyYWN0Um90YXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBcclxuICAgICAgdERpcmVjdGlvbi5zZXQoMCwwLC0xKTtcclxuICAgICAgLy9hbHRlcmluZyBkaXJlY3Rpb24gZS5nLiB0byBwb2ludCBpbiBkaXJlY3Rpb24gb2YgZXh0ZW5kZWQgdHJpZ2dlciBmaW5nZXIsIHJhdGhlciB0aGFuICdtYWluIGF4aXMnIG9mIFZpdmUgY29udHJvbGxlci4uLlxyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkIGJlIGluIHVzZXJEYXRhLlxyXG4gICAgICBpZiAob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpIHREaXJlY3Rpb24uYXBwbHlRdWF0ZXJuaW9uKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKTtcclxuICAgICAgdERpcmVjdGlvbi5hcHBseU1hdHJpeDQoIHRNYXRyaXggKS5ub3JtYWxpemUoKTtcclxuICAgICAgXHJcbiAgICAgIHJheWNhc3Quc2V0KCB0UG9zaXRpb24sIHREaXJlY3Rpb24gKTtcclxuICAgICAgXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMCBdLmNvcHkoIHRQb3NpdGlvbiApO1xyXG4gICAgICBjb25zdCBhID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgICBhWzBdID0gdFBvc2l0aW9uLng7IGFbMV0gPSB0UG9zaXRpb24ueTsgYVsyXSA9IHRQb3NpdGlvbi56O1xyXG4gICAgICBcclxuICAgICAgLy8gIGRlYnVnLi4uXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHRQb3NpdGlvbiApLmFkZCggdERpcmVjdGlvbi5tdWx0aXBseVNjYWxhciggMSApICk7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIFxyXG4gICAgICBpbnB1dE9iamVjdHNbIGluZGV4IF0uaW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vd2FudCB0byBhZGQgaW5mbyAoaGl0IGRpc2N0YW5jZSkgdG8gb2JqZWN0IGZvciB1c2Ugb3V0c2lkZS4uLiBqdXN0IGFkZGluZyBlbnRpcmV0eSBvZiBpbnRlcnNlY3Rpb25zIGluIGNhc2UgdXNlZnVsXHJcbiAgICAgIGlmIChvYmplY3QudXNlckRhdGEpIG9iamVjdC51c2VyRGF0YS5ndWlJbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICBjb25zdCBpbnB1dHMgPSBpbnB1dE9iamVjdHMuc2xpY2UoKTtcclxuICAgIFxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICBpbnB1dHMucHVzaCggbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKCBjID0+IGMudXBkYXRlQ29udHJvbCggaW5wdXRzICkpO1xyXG4gICAgLy9ub3cgY2hlY2sgaWYgYW55IHByZXNzIG9uIGFueSBpbnB1dCBoaXQgYW55IG5vbidtb2RhbCBlZGl0b3InLi4uIGlmIHNvLCB3ZSdsbCByZW1vdmUgbW9kYWxzIGZyb20gYWxsIGZvbGRlcnNcclxuICAgIC8vKHRoaXMgaXNuJ3QgcGVyZmVjdDsgaWYgeW91IGFyZSBhY3RpdmVseSBpbnRlcmFjdGluZyB3aXRoIHNvbWV0aGluZyBhbmQgcHJlc3Mgb3RoZXIgYnV0dG9uIHNvbWV3aGVyZSBlbHNlLCBpdCdsbCByZW1vdmUgeW91ciBvYmplY3QpXHJcbiAgICBsZXQgaGl0Tm9uTW9kYWxzID0gaW5wdXRzLmZpbHRlcihpbnB1dCA9PiBpbnB1dC5oaXROb25Nb2RhbCk7XHJcbiAgICBpZiAoaGl0Tm9uTW9kYWxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGhpdE5vbk1vZGFscy5mb3JFYWNoKGggPT4gaC5oaXROb25Nb2RhbCA9IGZhbHNlKTsgLy9yZW1vdmUgZmxhZ3Mgc28gdGhleSBkb24ndCBwZXJzaXN0IHRvIHN1YnNlcXVlbnQgdXBkYXRlc1xyXG4gICAgICBmb2xkZXJzLmZvckVhY2goZiA9PiBmLmNsZWFyTW9kYWxFZGl0b3IoKSk7IC8vdGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBub3QgaGlkZSBpdGVtcyBuZXdseSBkaXNwbGF5ZWQgaW4gdGhpcyBmcmFtZVxyXG4gICAgfVxyXG4gICAgbW91c2VJbnB1dC5jbGlja2VkID0gZmFsc2U7XHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaChvPT5vLmNsaWNrZWQgPSBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZhcnlpbmcgZmxvYXQgdlNjYWxlO1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gIHZTY2FsZSA9IHBvdyhhYnMoZGV0ZXJtaW5hbnQobWF0Myhtb2RlbFZpZXdNYXRyaXgpKSksIDAuMzMzMzMpO1xyXG4gIC8vIHZTY2FsZSA9IDEwLjtcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG52YXJ5aW5nIGZsb2F0IHZTY2FsZTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgI2lmZGVmIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlc1xyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICAjZWxzZVxyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSAoMS4wIC8gMzIuMCkgKiAoMS40MTQyMTM1NjIzNzMwOTUxIC8gKDIuMCAqIGdsX0ZyYWdDb29yZC53KSk7XHJcbiAgICAjZW5kaWZcclxuICAgIGFmd2lkdGggKj0gdlNjYWxlO1xyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBtZXNoLmdlb21ldHJ5LnVwZGF0ZSggc3RyICk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogVEhSRUUuVmVydGV4Q29sb3JzIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiAweEZGRkZGRiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIC8vaG93IGNhbiBJIGNoYW5nZSBjb2xvciBvZiB0ZXh0P1xyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBvYmplY3RbcHJvcGVydHlOYW1lXSwgeyBjb2xvcjogMHgwMDAwMDAwLCBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgLy9idXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IDAuMDE1O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVN0cmluZyhzdHIpIHtcclxuICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdHI7XHJcbiAgICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKHN0cik7XHJcbiAgfVxyXG4gIHZhciBrZXlib2FyZDtcclxuICBmdW5jdGlvbiB0b2dnbGVLZXlib2FyZCgpIHtcclxuICAgIGlmIChrZXlib2FyZCkge1xyXG4gICAgICAgIGtleWJvYXJkLnZpc2libGUgPSAha2V5Ym9hcmQudmlzaWJsZTtcclxuICAgICAgICBpZiAoa2V5Ym9hcmQudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGtleWJvYXJkID0gZGF0LkdVSVZSLmNyZWF0ZShcImtleWJvYXJkXCIpO1xyXG4gICAgICAgIGdyb3VwLmFkZChrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQuZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueCA9IHdpZHRoO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgICAgICBrZXlib2FyZC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAga2V5Ym9hcmQuYWRkS2V5Ym9hcmQoIChrKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBzdHIgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgc3dpdGNoIChrKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXG4nOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0dGluZyBcImtleWJvYXJkLnZpc2libGUgPSBmYWxzZVwiIGluIHRoZSBtaWRkbGUgb2YgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIgc2VlbXMgdG8ga2lsbCBhbGwgZXZlbnQgcHJvY2Vzc2luZyBmcm9tIHRoZW4gb24uXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0IGlzIGFuIGFkZXF1YXRlIHdvcmthcm91bmQgZm9yIG5vdy5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRvZ2dsZUtleWJvYXJkLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxiJzpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSBrO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL3RoaXMgdGVzdCBzaG91bGQgYmUgcmVkdW5kYW50IG5vd1xyXG4gICAgLy8gaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvL29iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICAvL2hpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICAvLyBjcmVhdGUgYSBrZXlib2FyZCBhbmQgYXR0YWNoIGl0IGFzIGNoaWxkIG9mIGdyb3VwLi4uIFxyXG4gICAgLy8gb3IganVzdCBtYWtlIHN1cmUgZXhpc3Rpbmcga2V5Ym9hcmQgaXMgdmlzaWJsZS5cclxuICAgIHRvZ2dsZUtleWJvYXJkKCk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfSElHSExJR0hUX0JHICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0JHICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRMYWJlbCggdGV4dENyZWF0b3IsIHN0ciwgd2lkdGggPSAwLjQsIGRlcHRoID0gMC4wMjksIGZnQ29sb3IgPSAweGZmZmZmZiwgYmdDb2xvciA9IENvbG9ycy5ERUZBVUxUX0JBQ0ssIHNjYWxlID0gMS4wICl7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGxhYmVsXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7c3RyfV1gO1xyXG5cclxuICBjb25zdCBpbnRlcm5hbFBvc2l0aW9uaW5nID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vcmF0aGVyIHVubmVjZXNzYXJ5LlxyXG4gIGdyb3VwLmFkZCggaW50ZXJuYWxQb3NpdGlvbmluZyApO1xyXG5cclxuICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdHIudG9TdHJpbmcoKSwgeyBjb2xvcjogZmdDb2xvciwgc2NhbGUgfSApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCB0ZXh0ICk7XHJcbiAgZ3JvdXAudXNlckRhdGEudGV4dCA9IHRleHQ7XHJcblxyXG4gIGdyb3VwLnNldFN0cmluZyA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkgc3RyID0gXCJbdW5kZWZpbmVkXVwiO1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvU3RyaW5nKCkgKTtcclxuICAgIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0TnVtYmVyID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvRml4ZWQoMikgKTtcclxuICB9O1xyXG5cclxuICB0ZXh0LnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgY29uc3QgYmFja0JvdW5kcyA9IDAuMDE7XHJcbiAgY29uc3QgbWFyZ2luID0gMC4wMTtcclxuICBjb25zdCB0b3RhbFdpZHRoID0gd2lkdGg7XHJcbiAgY29uc3QgdG90YWxIZWlnaHQgPSAwLjA0ICsgbWFyZ2luICogMjtcclxuXHJcbiAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrR2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0LCBkZXB0aCwgMSwgMSwgMSApO1xyXG4gIGxhYmVsQmFja0dlb21ldHJ5LmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oIHRvdGFsV2lkdGggKiAwLjUgLSBtYXJnaW4sIDAsIDAgKSApO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tNZXNoID0gbmV3IFRIUkVFLk1lc2goIGxhYmVsQmFja0dlb21ldHJ5LCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWxCYWNrTWVzaC5nZW9tZXRyeSwgYmdDb2xvciApO1xyXG5cclxuICBsYWJlbEJhY2tNZXNoLnBvc2l0aW9uLnkgPSAwLjAzO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCBsYWJlbEJhY2tNZXNoICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5wb3NpdGlvbi55ID0gLXRvdGFsSGVpZ2h0ICogMC41O1xyXG5cclxuICBncm91cC5iYWNrID0gbGFiZWxCYWNrTWVzaDtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0UGFyZW50SGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbFRpcCggdGV4dENyZWF0b3IsIHRpcCwgcGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCA9IGRlZmF1bHRQYXJlbnRIZWlnaHQsIHBhcmVudERlcHRoICkge1xyXG4gIGNvbnN0IHRpcFRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUodGlwKTtcclxuICBcclxuICBjb25zdCB0aXBHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICBjb25zdCB3ID0gdGlwVGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICBjb25zdCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0aXBUZXh0LmxheW91dC5oZWlnaHQ7XHJcblxyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnggID0gMC41ICogcGFyZW50V2lkdGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueSA9IC0xLjA1ICogcGFyZW50SGVpZ2h0IC0gaDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi56ID0gcGFyZW50RGVwdGggKiAzO1xyXG4gIHRpcEdyb3VwLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbi8vICBzdWJncm91cC5hZGQodGlwR3JvdXApO1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBUZXh0KTtcclxuLy8gIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBHcm91cDtcclxuXHJcbiAgY29uc3QgcGFkZGVkVyA9IHcgKyAwLjAzLCBwYWRkZWRIID0gaCArIDAuMDM7XHJcbiAgY29uc3QgdGlwUmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KHBhZGRlZFcsIHBhZGRlZEgsIDEsIDEpO1xyXG4gIGNvbnN0IHRpcEJhY2tncm91bmQgPSBuZXcgVEhSRUUuTWVzaCh0aXBSZWN0LCBTaGFyZWRNYXRlcmlhbHMuVE9PTFRJUCk7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi54ID0gMDsgLy9wYWRkZWRXIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnkgPSBoIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnogPSAtcGFyZW50RGVwdGggKiAwLjU7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcEJhY2tncm91bmQpO1xyXG5cclxuICB0aXBUZXh0LnBvc2l0aW9uLnggPSAtMC41ICogdztcclxuICB0aXBUZXh0LnBvc2l0aW9uLnkgPSAtMC41ICogaCArIDAuMDAxNTtcclxuXHJcbiAgdGlwR3JvdXAudXNlckRhdGEudyA9IHc7XHJcbiAgdGlwR3JvdXAudXNlckRhdGEuaCA9IGg7XHJcblxyXG4gIHJldHVybiB0aXBHcm91cDtcclxufVxyXG4iLCIvKiogYmFzaWMgdXRpbGl0eSBmdW5jdGlvbnMgKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xsZXJWaXNpYmxlKGNvbnRyb2wpIHtcclxuICB2YXIgZm9sZGVyID0gY29udHJvbC5mb2xkZXI7XHJcbiAgLy9ub3RlOiB0aGUgYmFzaXMgb24gd2hpY2ggYSBjb250cm9sbGVyIGlzIGNvbnNpZGVyZWQgdmlzaWJsZSByZXZpc2VkIGZvciAnaGVhZGVyJyBvYmplY3RzLlxyXG4gIC8vZm9yIG5vdywgdGhpcyBzaG91bGQgYWxsb3cgaGVhZGVyIGNvbnRyb2xsZXJzIHRvIHVwZGF0ZSB3aGlsZSBmb2xkZXIgaXMgY29sbGFwc2VkLlxyXG4gIC8vb25seSBhcHBsaWVzIHRvIGNoZWNrYm94LCBwZW5kaW5nIGRlc2lnbiByZXZpc2lvbiAmIGZ1bGxlciBpbXBsZW1lbnRhdGlvbi4uLlxyXG4gIFxyXG4gIC8vLS0tLSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgbm8gbG9uZ2VyIHJlbGV2YW50LCBidXQgZW5kaW5nIHVwIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3Mgc2ltaWxhci4uLi5cclxuICAvL2lzSGVhZGVyT2JqZWN0IHdpbGwgYXBwbHkgdG8gdGhlIGFjdHVhbCBjb250cm9sIGFwcGVhcmluZyBpbiB0aGUgZm9sZGVyIGhlYWRlciwgd2hlcmVhc1xyXG4gIC8vaXNTaG93bkluRm9sZGVySGVhZGVyIHdhcyB3aGVuIHN1Y2ggb2JqZWN0cyB3ZXJlbid0IHNvIGZ1bGx5LWZsZWRnZWRcclxuICAvL2lmIChjb250cm9sLmlzU2hvd25JbkZvbGRlckhlYWRlcikgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTsgLy88PDw8PCBzdGlsbCBoaXR0aW5nIGZvbGRlZCBidXR0b24/Pz8gKGFsc28sIHRyeSBucG0gYXVkaXQpXHJcbiAgaWYgKGNvbnRyb2wuaXNIZWFkZXJPYmplY3QpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7XHJcblxyXG4gIC8vWFhYIGhhdmluZyBzb21lIGRlZmluaXRlIGJ1Z3MgZS5nLiBtaXNzaW5nIGV2ZW50cyBvdmVyICdwaWN0dXJlcyAvIG1hdGVyaWFscycgZm9sZGVyIGhlYWRlciBpbiBkZW1vLlxyXG4gIFxyXG4gIGlmICghY29udHJvbC52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcil7XHJcbiAgICBpZiAoZm9sZGVyLmlzQ29sbGFwc2VkKCkgfHwgIWZvbGRlci52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gIH1cclxuICBpZiAoIWZvbGRlci5wYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gZm9sZGVyLnZpc2libGU7XHJcbn1cclxuXHJcbi8qKiBcclxuICogSW52aXNpYmxlIFRIUkVFIG9iamVjdHMgaW5jdXIgc2lnbmlmaWNhbnQgQ1BVIGNvc3QuXHJcbiAqIFRoaXMgYXZvaWRzIHRoYXQgYnkgcmVtb3ZpbmcgdGhlbSBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICogXHJcbiAqIElmIHZpc2libGUgaXMgdHJ1ZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9dHJ1ZSBhbmQgaXMgYSBjaGlsZCBvZiBwYXJlbnQuXHJcbiAqIElmIHZpc2libGUgaXMgZmFsc2UsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPWZhbHNlIGFuZCBpcyByZW1vdmVkIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHkocGFyZW50LCBjaGlsZCwgdmlzaWJsZSkge1xyXG4gICAgY29uc3QgaXNDaGlsZCA9IHBhcmVudC5jaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCk7XHJcbiAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgIC8vbWFrZSBzdXJlIHdlIHVzZSBvcmlnaW5hbCBUSFJFRSBtZXRob2RzIHRoYXQgdGhpcyBsaWJyYXJ5IG92ZXJyaWRlcyAoVE9ETzogcmVmYWN0b3IuLi4pXHJcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZC5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCF2aXNpYmxlICYmIGlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmUuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghcGFyZW50LnZpc2libGUpIGNvbnNvbGUud2Fybihgc2V0VmlzaWJpbGl0eSBjYWxsZWQgb24gY2hpbGQgJHtjaGlsZH0gb2YgaW52aXNpYmxlIHBhcmVudCAke3BhcmVudH1gKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2YgcGFyZW50IGZvbGRlciBpbiB0aGUgZ3VpIGhpZWFyY2h5IGNvbnRhaW5pbmcgYSBnaXZlbiBvYmplY3QuXHJcbiAqIG5iLiBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0IGRpZG4ndCBoYXZlIGEgJ2ZvbGRlcicgcHJvcGVydHkuXHJcbiAqIE5vdywgaXQgaXMgaW50ZW5kZWQgdGhhdCBpdCBzaG91bGQgZWl0aGVyIHJldHVybiBhIGZvbGRlciBpZiBhcHByb3ByaWF0ZSwgb3Igbm90aGluZy5cclxuICogQHBhcmFtIHsqfSBncm91cCBlaXRoZXIgYSBmb2xkZXIsIG9yIGFuIG9iamVjdCB3aG9zZSBwYXJlbnQgaGFzIGEgZm9sZGVyLi4uIGFwb2xvZ2llcywgdGhpcyBpcyBub3QgdGhlIGNsZWFyZXN0IHNwZWMuXHJcbiAqIC4uLiBpbnRlbnRpb24gaXMgdGhhdCBpdCBzaG91bGQgd29yayB3aXRoIGFueSBndWkgZWxlbWVudCwgaW4gcGFydGljdWxhciBhbnkgaGl0T2JqZWN0IGluIGludGVyYWN0aW9uLmpzLi4uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApIHtcclxuICAgIHZhciBmb2xkZXIgPSBnZXRGb2xkZXIoZ3JvdXApO1xyXG4gICAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcikgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICAgIHJldHVybiBmb2xkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoZ3JvdXApIHtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIHJldHVybiBncm91cC5mb2xkZXI7XHJcbiAgICBsZXQgbm9kZSA9IGdyb3VwLnBhcmVudDtcclxuICAgIHdoaWxlICghbm9kZS5mb2xkZXIgJiYgZ3JvdXAucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICByZXR1cm4gbm9kZS5mb2xkZXI7XHJcbn1cclxuXHJcbi8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCb3hGcm9tT2JqZWN0KGJveCwgb2JqKSB7XHJcbiAgY29uc3Qgd29ua3lHZW9tID0gW107XHJcbiAgb2JqLnRyYXZlcnNlKG8gPT4ge1xyXG4gICAgaWYgKG8uZ2VvbWV0cnkgJiYgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZSAhPT0gMykge1xyXG4gICAgICBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgPSBmYWxzZTtcclxuICAgICAgd29ua3lHZW9tLnB1c2goby5nZW9tZXRyeSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgYm94LnNldEZyb21PYmplY3Qob2JqKTtcclxuICB3b25reUdlb20uZm9yRWFjaChnID0+IGcuaXNCdWZmZXJHZW9tZXRyeSA9IHRydWUpO1xyXG4gIHJldHVybiBib3g7XHJcbn1cclxuIiwiLypcclxuICpcdEBhdXRob3Igeno4NSAvIGh0dHA6Ly90d2l0dGVyLmNvbS9ibHVyc3BsaW5lIC8gaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZ1xyXG4gKlx0QGF1dGhvciBjZW50ZXJpb253YXJlIC8gaHR0cDovL3d3dy5jZW50ZXJpb253YXJlLmNvbVxyXG4gKlxyXG4gKlx0U3ViZGl2aXNpb24gR2VvbWV0cnkgTW9kaWZpZXJcclxuICpcdFx0dXNpbmcgTG9vcCBTdWJkaXZpc2lvbiBTY2hlbWVcclxuICpcclxuICpcdFJlZmVyZW5jZXM6XHJcbiAqXHRcdGh0dHA6Ly9ncmFwaGljcy5zdGFuZm9yZC5lZHUvfm1kZmlzaGVyL3N1YmRpdmlzaW9uLmh0bWxcclxuICpcdFx0aHR0cDovL3d3dy5ob2xtZXMzZC5uZXQvZ3JhcGhpY3Mvc3ViZGl2aXNpb24vXHJcbiAqXHRcdGh0dHA6Ly93d3cuY3MucnV0Z2Vycy5lZHUvfmRlY2FybG8vcmVhZGluZ3Mvc3ViZGl2LXNnMDBjLnBkZlxyXG4gKlxyXG4gKlx0S25vd24gSXNzdWVzOlxyXG4gKlx0XHQtIGN1cnJlbnRseSBkb2Vzbid0IGhhbmRsZSBcIlNoYXJwIEVkZ2VzXCJcclxuICovXHJcblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyID0gZnVuY3Rpb24gKCBzdWJkaXZpc2lvbnMgKSB7XHJcblxyXG5cdHRoaXMuc3ViZGl2aXNpb25zID0gKCBzdWJkaXZpc2lvbnMgPT09IHVuZGVmaW5lZCApID8gMSA6IHN1YmRpdmlzaW9ucztcclxuXHJcbn07XHJcblxyXG4vLyBBcHBsaWVzIHRoZSBcIm1vZGlmeVwiIHBhdHRlcm5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUubW9kaWZ5ID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHtcclxuXHJcblx0dmFyIHJlcGVhdHMgPSB0aGlzLnN1YmRpdmlzaW9ucztcclxuXHJcblx0d2hpbGUgKCByZXBlYXRzIC0tID4gMCApIHtcclxuXHJcblx0XHR0aGlzLnNtb290aCggZ2VvbWV0cnkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRnZW9tZXRyeS5jb21wdXRlRmFjZU5vcm1hbHMoKTtcclxuXHRnZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xyXG5cclxufTtcclxuXHJcbiggZnVuY3Rpb24oKSB7XHJcblxyXG5cdC8vIFNvbWUgY29uc3RhbnRzXHJcblx0dmFyIFdBUk5JTkdTID0gISB0cnVlOyAvLyBTZXQgdG8gdHJ1ZSBmb3IgZGV2ZWxvcG1lbnRcclxuXHR2YXIgQUJDID0gWyAnYScsICdiJywgJ2MnIF07XHJcblxyXG5cclxuXHRmdW5jdGlvbiBnZXRFZGdlKCBhLCBiLCBtYXAgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0cmV0dXJuIG1hcFsga2V5IF07XHJcblxyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHByb2Nlc3NFZGdlKCBhLCBiLCB2ZXJ0aWNlcywgbWFwLCBmYWNlLCBtZXRhVmVydGljZXMgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0dmFyIGVkZ2U7XHJcblxyXG5cdFx0aWYgKCBrZXkgaW4gbWFwICkge1xyXG5cclxuXHRcdFx0ZWRnZSA9IG1hcFsga2V5IF07XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHZhciB2ZXJ0ZXhBID0gdmVydGljZXNbIHZlcnRleEluZGV4QSBdO1xyXG5cdFx0XHR2YXIgdmVydGV4QiA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEIgXTtcclxuXHJcblx0XHRcdGVkZ2UgPSB7XHJcblxyXG5cdFx0XHRcdGE6IHZlcnRleEEsIC8vIHBvaW50ZXIgcmVmZXJlbmNlXHJcblx0XHRcdFx0YjogdmVydGV4QixcclxuXHRcdFx0XHRuZXdFZGdlOiBudWxsLFxyXG5cdFx0XHRcdC8vIGFJbmRleDogYSwgLy8gbnVtYmVyZWQgcmVmZXJlbmNlXHJcblx0XHRcdFx0Ly8gYkluZGV4OiBiLFxyXG5cdFx0XHRcdGZhY2VzOiBbXSAvLyBwb2ludGVycyB0byBmYWNlXHJcblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0bWFwWyBrZXkgXSA9IGVkZ2U7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGVkZ2UuZmFjZXMucHVzaCggZmFjZSApO1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlc1sgYSBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHRcdG1ldGFWZXJ0aWNlc1sgYiBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2VuZXJhdGVMb29rdXBzKCB2ZXJ0aWNlcywgZmFjZXMsIG1ldGFWZXJ0aWNlcywgZWRnZXMgKSB7XHJcblxyXG5cdFx0dmFyIGksIGlsLCBmYWNlLCBlZGdlO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IHZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0bWV0YVZlcnRpY2VzWyBpIF0gPSB7IGVkZ2VzOiBbXSB9O1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBmYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBmYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYSwgZmFjZS5iLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5iLCBmYWNlLmMsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmMsIGZhY2UuYSwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3RmFjZSggbmV3RmFjZXMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3RmFjZXMucHVzaCggbmV3IFRIUkVFLkZhY2UzKCBhLCBiLCBjICkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBtaWRwb2ludCggYSwgYiApIHtcclxuXHJcblx0XHRyZXR1cm4gKCBNYXRoLmFicyggYiAtIGEgKSAvIDIgKSArIE1hdGgubWluKCBhLCBiICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3VXYoIG5ld1V2cywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdVdnMucHVzaCggWyBhLmNsb25lKCksIGIuY2xvbmUoKSwgYy5jbG9uZSgpIF0gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHQvLyBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIFN1YmRpdmlzaW9uXHJcblx0VEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUuc21vb3RoID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHsgcmV0dXJuOyAvLyBzanB0IFRFTVAgVE9ET1xyXG5cclxuXHRcdHZhciB0bXAgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdHZhciBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG9sZFV2cztcclxuXHRcdHZhciBuZXdWZXJ0aWNlcywgbmV3RmFjZXMsIG5ld1VWcyA9IFtdO1xyXG5cclxuXHRcdHZhciBuLCBsLCBpLCBpbCwgaiwgaztcclxuXHRcdHZhciBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzO1xyXG5cclxuXHRcdC8vIG5ldyBzdHVmZi5cclxuXHRcdHZhciBzb3VyY2VFZGdlcywgbmV3RWRnZVZlcnRpY2VzLCBuZXdTb3VyY2VWZXJ0aWNlcztcclxuXHJcblx0XHRvbGRWZXJ0aWNlcyA9IGdlb21ldHJ5LnZlcnRpY2VzOyAvLyB7IHgsIHksIHp9XHJcblx0XHRvbGRGYWNlcyA9IGdlb21ldHJ5LmZhY2VzOyAvLyB7IGE6IG9sZFZlcnRleDEsIGI6IG9sZFZlcnRleDIsIGM6IG9sZFZlcnRleDMgfVxyXG5cdFx0b2xkVXZzID0gZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdO1xyXG5cclxuXHRcdHZhciBoYXNVdnMgPSBvbGRVdnMgIT09IHVuZGVmaW5lZCAmJiBvbGRVdnMubGVuZ3RoID4gMDtcclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICogU3RlcCAwOiBQcmVwcm9jZXNzIEdlb21ldHJ5IHRvIEdlbmVyYXRlIGVkZ2VzIExvb2t1cFxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlcyA9IG5ldyBBcnJheSggb2xkVmVydGljZXMubGVuZ3RoICk7XHJcblx0XHRzb3VyY2VFZGdlcyA9IHt9OyAvLyBFZGdlID0+IHsgb2xkVmVydGV4MSwgb2xkVmVydGV4MiwgZmFjZXNbXSAgfVxyXG5cclxuXHRcdGdlbmVyYXRlTG9va3Vwcyggb2xkVmVydGljZXMsIG9sZEZhY2VzLCBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzICk7XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAxLlxyXG5cdFx0ICpcdEZvciBlYWNoIGVkZ2UsIGNyZWF0ZSBhIG5ldyBFZGdlIFZlcnRleCxcclxuXHRcdCAqXHR0aGVuIHBvc2l0aW9uIGl0LlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld0VkZ2VWZXJ0aWNlcyA9IFtdO1xyXG5cdFx0dmFyIG90aGVyLCBjdXJyZW50RWRnZSwgbmV3RWRnZSwgZmFjZTtcclxuXHRcdHZhciBlZGdlVmVydGV4V2VpZ2h0LCBhZGphY2VudFZlcnRleFdlaWdodCwgY29ubmVjdGVkRmFjZXM7XHJcblxyXG5cdFx0Zm9yICggaSBpbiBzb3VyY2VFZGdlcyApIHtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlID0gc291cmNlRWRnZXNbIGkgXTtcclxuXHRcdFx0bmV3RWRnZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMyAvIDg7XHJcblx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRjb25uZWN0ZWRGYWNlcyA9IGN1cnJlbnRFZGdlLmZhY2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdC8vIGNoZWNrIGhvdyBtYW55IGxpbmtlZCBmYWNlcy4gMiBzaG91bGQgYmUgY29ycmVjdC5cclxuXHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiBsZW5ndGggaXMgbm90IDIsIGhhbmRsZSBjb25kaXRpb25cclxuXHRcdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMC41O1xyXG5cdFx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdTdWJkaXZpc2lvbiBNb2RpZmllcjogTnVtYmVyIG9mIGNvbm5lY3RlZCBmYWNlcyAhPSAyLCBpczogJywgY29ubmVjdGVkRmFjZXMsIGN1cnJlbnRFZGdlICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld0VkZ2UuYWRkVmVjdG9ycyggY3VycmVudEVkZ2UuYSwgY3VycmVudEVkZ2UuYiApLm11bHRpcGx5U2NhbGFyKCBlZGdlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IGNvbm5lY3RlZEZhY2VzOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRmYWNlID0gY3VycmVudEVkZ2UuZmFjZXNbIGogXTtcclxuXHJcblx0XHRcdFx0Zm9yICggayA9IDA7IGsgPCAzOyBrICsrICkge1xyXG5cclxuXHRcdFx0XHRcdG90aGVyID0gb2xkVmVydGljZXNbIGZhY2VbIEFCQ1sgayBdIF0gXTtcclxuXHRcdFx0XHRcdGlmICggb3RoZXIgIT09IGN1cnJlbnRFZGdlLmEgJiYgb3RoZXIgIT09IGN1cnJlbnRFZGdlLmIgKSBicmVhaztcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBhZGphY2VudFZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdFZGdlLmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZS5uZXdFZGdlID0gbmV3RWRnZVZlcnRpY2VzLmxlbmd0aDtcclxuXHRcdFx0bmV3RWRnZVZlcnRpY2VzLnB1c2goIG5ld0VkZ2UgKTtcclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGN1cnJlbnRFZGdlLCBuZXdFZGdlKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDIuXHJcblx0XHQgKlx0UmVwb3NpdGlvbiBlYWNoIHNvdXJjZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHR2YXIgYmV0YSwgc291cmNlVmVydGV4V2VpZ2h0LCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0O1xyXG5cdFx0dmFyIGNvbm5lY3RpbmdFZGdlLCBjb25uZWN0aW5nRWRnZXMsIG9sZFZlcnRleCwgbmV3U291cmNlVmVydGV4O1xyXG5cdFx0bmV3U291cmNlVmVydGljZXMgPSBbXTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRWZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG9sZFZlcnRleCA9IG9sZFZlcnRpY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIGFsbCBjb25uZWN0aW5nIGVkZ2VzICh1c2luZyBsb29rdXBUYWJsZSlcclxuXHRcdFx0Y29ubmVjdGluZ0VkZ2VzID0gbWV0YVZlcnRpY2VzWyBpIF0uZWRnZXM7XHJcblx0XHRcdG4gPSBjb25uZWN0aW5nRWRnZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0aWYgKCBuID09IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gMTY7XHJcblxyXG5cdFx0XHR9IGVsc2UgaWYgKCBuID4gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAoIDggKiBuICk7IC8vIFdhcnJlbidzIG1vZGlmaWVkIGZvcm11bGFcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIExvb3AncyBvcmlnaW5hbCBiZXRhIGZvcm11bGFcclxuXHRcdFx0Ly8gYmV0YSA9IDEgLyBuICogKCA1LzggLSBNYXRoLnBvdyggMy84ICsgMS80ICogTWF0aC5jb3MoIDIgKiBNYXRoLiBQSSAvIG4gKSwgMikgKTtcclxuXHJcblx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDEgLSBuICogYmV0YTtcclxuXHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IGJldGE7XHJcblxyXG5cdFx0XHRpZiAoIG4gPD0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlc1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUud2FybignY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlcycpO1xyXG5cclxuXHRcdFx0XHRpZiAoIG4gPT0gMiApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMiBjb25uZWN0aW5nIGVkZ2VzJywgY29ubmVjdGluZ0VkZ2VzICk7XHJcblx0XHRcdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAzIC8gNDtcclxuXHRcdFx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdFx0XHQvLyBzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxO1xyXG5cdFx0XHRcdFx0Ly8gY29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnb25seSAxIGNvbm5lY3RpbmcgZWRnZScgKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAwICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcwIGNvbm5lY3RpbmcgZWRnZXMnICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleCA9IG9sZFZlcnRleC5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKCBzb3VyY2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgbjsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0Y29ubmVjdGluZ0VkZ2UgPSBjb25uZWN0aW5nRWRnZXNbIGogXTtcclxuXHRcdFx0XHRvdGhlciA9IGNvbm5lY3RpbmdFZGdlLmEgIT09IG9sZFZlcnRleCA/IGNvbm5lY3RpbmdFZGdlLmEgOiBjb25uZWN0aW5nRWRnZS5iO1xyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3U291cmNlVmVydGV4LmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0aWNlcy5wdXNoKCBuZXdTb3VyY2VWZXJ0ZXggKTtcclxuXHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAzLlxyXG5cdFx0ICpcdEdlbmVyYXRlIEZhY2VzIGJldHdlZW4gc291cmNlIHZlcnRpY2VzXHJcblx0XHQgKlx0YW5kIGVkZ2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3VmVydGljZXMgPSBuZXdTb3VyY2VWZXJ0aWNlcy5jb25jYXQoIG5ld0VkZ2VWZXJ0aWNlcyApO1xyXG5cdFx0dmFyIHNsID0gbmV3U291cmNlVmVydGljZXMubGVuZ3RoLCBlZGdlMSwgZWRnZTIsIGVkZ2UzO1xyXG5cdFx0bmV3RmFjZXMgPSBbXTtcclxuXHJcblx0XHR2YXIgdXYsIHgwLCB4MSwgeDI7XHJcblx0XHR2YXIgeDMgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg0ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NSA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkRmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gb2xkRmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgdGhlIDMgbmV3IGVkZ2VzIHZlcnRleCBvZiBlYWNoIG9sZCBmYWNlXHJcblxyXG5cdFx0XHRlZGdlMSA9IGdldEVkZ2UoIGZhY2UuYSwgZmFjZS5iLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTIgPSBnZXRFZGdlKCBmYWNlLmIsIGZhY2UuYywgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UzID0gZ2V0RWRnZSggZmFjZS5jLCBmYWNlLmEsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgZmFjZXMuXHJcblxyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZWRnZTEsIGVkZ2UyLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5hLCBlZGdlMSwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYiwgZWRnZTIsIGVkZ2UxICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmMsIGVkZ2UzLCBlZGdlMiApO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgbmV3IHV2J3NcclxuXHJcblx0XHRcdGlmICggaGFzVXZzICkge1xyXG5cclxuXHRcdFx0XHR1diA9IG9sZFV2c1sgaSBdO1xyXG5cclxuXHRcdFx0XHR4MCA9IHV2WyAwIF07XHJcblx0XHRcdFx0eDEgPSB1dlsgMSBdO1xyXG5cdFx0XHRcdHgyID0gdXZbIDIgXTtcclxuXHJcblx0XHRcdFx0eDMuc2V0KCBtaWRwb2ludCggeDAueCwgeDEueCApLCBtaWRwb2ludCggeDAueSwgeDEueSApICk7XHJcblx0XHRcdFx0eDQuc2V0KCBtaWRwb2ludCggeDEueCwgeDIueCApLCBtaWRwb2ludCggeDEueSwgeDIueSApICk7XHJcblx0XHRcdFx0eDUuc2V0KCBtaWRwb2ludCggeDAueCwgeDIueCApLCBtaWRwb2ludCggeDAueSwgeDIueSApICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgzLCB4NCwgeDUgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MCwgeDMsIHg1ICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgxLCB4NCwgeDMgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MiwgeDUsIHg0ICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE92ZXJ3cml0ZSBvbGQgYXJyYXlzXHJcblx0XHRnZW9tZXRyeS52ZXJ0aWNlcyA9IG5ld1ZlcnRpY2VzO1xyXG5cdFx0Z2VvbWV0cnkuZmFjZXMgPSBuZXdGYWNlcztcclxuXHRcdGlmICggaGFzVXZzICkgZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdID0gbmV3VVZzO1xyXG5cclxuXHRcdC8vIGNvbnNvbGUubG9nKCdkb25lJyk7XHJcblxyXG5cdH07XHJcblxyXG59ICkoKTtcclxuIiwidmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBhbkFycmF5XG5cbmZ1bmN0aW9uIGFuQXJyYXkoYXJyKSB7XG4gIHJldHVybiAoXG4gICAgICAgYXJyLkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgJiYgc3RyLmNhbGwoYXJyLmJ1ZmZlcikgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSdcbiAgICB8fCBBcnJheS5pc0FycmF5KGFycilcbiAgKVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBudW10eXBlKG51bSwgZGVmKSB7XG5cdHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJ1xuXHRcdD8gbnVtIFxuXHRcdDogKHR5cGVvZiBkZWYgPT09ICdudW1iZXInID8gZGVmIDogMClcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGR0eXBlKSB7XG4gIHN3aXRjaCAoZHR5cGUpIHtcbiAgICBjYXNlICdpbnQ4JzpcbiAgICAgIHJldHVybiBJbnQ4QXJyYXlcbiAgICBjYXNlICdpbnQxNic6XG4gICAgICByZXR1cm4gSW50MTZBcnJheVxuICAgIGNhc2UgJ2ludDMyJzpcbiAgICAgIHJldHVybiBJbnQzMkFycmF5XG4gICAgY2FzZSAndWludDgnOlxuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlcbiAgICBjYXNlICd1aW50MTYnOlxuICAgICAgcmV0dXJuIFVpbnQxNkFycmF5XG4gICAgY2FzZSAndWludDMyJzpcbiAgICAgIHJldHVybiBVaW50MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0MzInOlxuICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0NjQnOlxuICAgICAgcmV0dXJuIEZsb2F0NjRBcnJheVxuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIHJldHVybiBBcnJheVxuICAgIGNhc2UgJ3VpbnQ4X2NsYW1wZWQnOlxuICAgICAgcmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSID0gdHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnID8gUmVmbGVjdCA6IG51bGxcbnZhciBSZWZsZWN0QXBwbHkgPSBSICYmIHR5cGVvZiBSLmFwcGx5ID09PSAnZnVuY3Rpb24nXG4gID8gUi5hcHBseVxuICA6IGZ1bmN0aW9uIFJlZmxlY3RBcHBseSh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpO1xuICB9XG5cbnZhciBSZWZsZWN0T3duS2V5c1xuaWYgKFIgJiYgdHlwZW9mIFIub3duS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICBSZWZsZWN0T3duS2V5cyA9IFIub3duS2V5c1xufSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldClcbiAgICAgIC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKTtcbiAgfTtcbn0gZWxzZSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyh3YXJuaW5nKSB7XG4gIGlmIChjb25zb2xlICYmIGNvbnNvbGUud2FybikgY29uc29sZS53YXJuKHdhcm5pbmcpO1xufVxuXG52YXIgTnVtYmVySXNOYU4gPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gTnVtYmVySXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5tb2R1bGUuZXhwb3J0cy5vbmNlID0gb25jZTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9uY2UoZW1pdHRlciwgbmFtZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZ1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXJyKSB7XG4gICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKG5hbWUsIHJlc29sdmVyKTtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKCkge1xuICAgICAgaWYgKHR5cGVvZiBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgfTtcblxuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCByZXNvbHZlciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIGlmIChuYW1lICE9PSAnZXJyb3InKSB7XG4gICAgICBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBlcnJvckxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgaGFuZGxlciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsICdlcnJvcicsIGhhbmRsZXIsIGZsYWdzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgbGlzdGVuZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICBlbWl0dGVyLm9uY2UobmFtZSwgbGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbWl0dGVyLm9uKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEV2ZW50VGFyZ2V0IGRvZXMgbm90IGhhdmUgYGVycm9yYCBldmVudCBzZW1hbnRpY3MgbGlrZSBOb2RlXG4gICAgLy8gRXZlbnRFbWl0dGVycywgd2UgZG8gbm90IGxpc3RlbiBmb3IgYGVycm9yYCBldmVudHMgaGVyZS5cbiAgICBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZnVuY3Rpb24gd3JhcExpc3RlbmVyKGFyZykge1xuICAgICAgLy8gSUUgZG9lcyBub3QgaGF2ZSBidWlsdGluIGB7IG9uY2U6IHRydWUgfWAgc3VwcG9ydCBzbyB3ZVxuICAgICAgLy8gaGF2ZSB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXIoYXJnKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJlbWl0dGVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGVtaXR0ZXIpO1xuICB9XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gICAgfVxuICB9XG59XG4iLCIvKiFcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXJcbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbi8vIFRoZSBfaXNCdWZmZXIgY2hlY2sgaXMgZm9yIFNhZmFyaSA1LTcgc3VwcG9ydCwgYmVjYXVzZSBpdCdzIG1pc3Npbmdcbi8vIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKGlzQnVmZmVyKG9iaikgfHwgaXNTbG93QnVmZmVyKG9iaikgfHwgISFvYmouX2lzQnVmZmVyKVxufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiAhIW9iai5jb25zdHJ1Y3RvciAmJiB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopXG59XG5cbi8vIEZvciBOb2RlIHYwLjEwIHN1cHBvcnQuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHkuXG5mdW5jdGlvbiBpc1Nsb3dCdWZmZXIgKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iai5yZWFkRmxvYXRMRSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnNsaWNlID09PSAnZnVuY3Rpb24nICYmIGlzQnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsInZhciB3b3JkV3JhcCA9IHJlcXVpcmUoJ3dvcmQtd3JhcHBlcicpXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpXG52YXIgbnVtYmVyID0gcmVxdWlyZSgnYXMtbnVtYmVyJylcblxudmFyIFhfSEVJR0hUUyA9IFsneCcsICdlJywgJ2EnLCAnbycsICduJywgJ3MnLCAncicsICdjJywgJ3UnLCAnbScsICd2JywgJ3cnLCAneiddXG52YXIgTV9XSURUSFMgPSBbJ20nLCAndyddXG52YXIgQ0FQX0hFSUdIVFMgPSBbJ0gnLCAnSScsICdOJywgJ0UnLCAnRicsICdLJywgJ0wnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWiddXG5cblxudmFyIFRBQl9JRCA9ICdcXHQnLmNoYXJDb2RlQXQoMClcbnZhciBTUEFDRV9JRCA9ICcgJy5jaGFyQ29kZUF0KDApXG52YXIgQUxJR05fTEVGVCA9IDAsIFxuICAgIEFMSUdOX0NFTlRFUiA9IDEsIFxuICAgIEFMSUdOX1JJR0hUID0gMlxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUxheW91dChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0TGF5b3V0KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dExheW91dChvcHQpIHtcbiAgdGhpcy5nbHlwaHMgPSBbXVxuICB0aGlzLl9tZWFzdXJlID0gdGhpcy5jb21wdXRlTWV0cmljcy5iaW5kKHRoaXMpXG4gIHRoaXMudXBkYXRlKG9wdClcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24ob3B0KSB7XG4gIG9wdCA9IHh0ZW5kKHtcbiAgICBtZWFzdXJlOiB0aGlzLl9tZWFzdXJlXG4gIH0sIG9wdClcbiAgdGhpcy5fb3B0ID0gb3B0XG4gIHRoaXMuX29wdC50YWJTaXplID0gbnVtYmVyKHRoaXMuX29wdC50YWJTaXplLCA0KVxuXG4gIGlmICghb3B0LmZvbnQpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHByb3ZpZGUgYSB2YWxpZCBiaXRtYXAgZm9udCcpXG5cbiAgdmFyIGdseXBocyA9IHRoaXMuZ2x5cGhzXG4gIHZhciB0ZXh0ID0gb3B0LnRleHR8fCcnIFxuICB2YXIgZm9udCA9IG9wdC5mb250XG4gIHRoaXMuX3NldHVwU3BhY2VHbHlwaHMoZm9udClcbiAgXG4gIHZhciBsaW5lcyA9IHdvcmRXcmFwLmxpbmVzKHRleHQsIG9wdClcbiAgdmFyIG1pbldpZHRoID0gb3B0LndpZHRoIHx8IDBcblxuICAvL2NsZWFyIGdseXBoc1xuICBnbHlwaHMubGVuZ3RoID0gMFxuXG4gIC8vZ2V0IG1heCBsaW5lIHdpZHRoXG4gIHZhciBtYXhMaW5lV2lkdGggPSBsaW5lcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbGluZSkge1xuICAgIHJldHVybiBNYXRoLm1heChwcmV2LCBsaW5lLndpZHRoLCBtaW5XaWR0aClcbiAgfSwgMClcblxuICAvL3RoZSBwZW4gcG9zaXRpb25cbiAgdmFyIHggPSAwXG4gIHZhciB5ID0gMFxuICB2YXIgbGluZUhlaWdodCA9IG51bWJlcihvcHQubGluZUhlaWdodCwgZm9udC5jb21tb24ubGluZUhlaWdodClcbiAgdmFyIGJhc2VsaW5lID0gZm9udC5jb21tb24uYmFzZVxuICB2YXIgZGVzY2VuZGVyID0gbGluZUhlaWdodC1iYXNlbGluZVxuICB2YXIgbGV0dGVyU3BhY2luZyA9IG9wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGhlaWdodCA9IGxpbmVIZWlnaHQgKiBsaW5lcy5sZW5ndGggLSBkZXNjZW5kZXJcbiAgdmFyIGFsaWduID0gZ2V0QWxpZ25UeXBlKHRoaXMuX29wdC5hbGlnbilcblxuICAvL2RyYXcgdGV4dCBhbG9uZyBiYXNlbGluZVxuICB5IC09IGhlaWdodFxuICBcbiAgLy90aGUgbWV0cmljcyBmb3IgdGhpcyB0ZXh0IGxheW91dFxuICB0aGlzLl93aWR0aCA9IG1heExpbmVXaWR0aFxuICB0aGlzLl9oZWlnaHQgPSBoZWlnaHRcbiAgdGhpcy5fZGVzY2VuZGVyID0gbGluZUhlaWdodCAtIGJhc2VsaW5lXG4gIHRoaXMuX2Jhc2VsaW5lID0gYmFzZWxpbmVcbiAgdGhpcy5feEhlaWdodCA9IGdldFhIZWlnaHQoZm9udClcbiAgdGhpcy5fY2FwSGVpZ2h0ID0gZ2V0Q2FwSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0XG4gIHRoaXMuX2FzY2VuZGVyID0gbGluZUhlaWdodCAtIGRlc2NlbmRlciAtIHRoaXMuX3hIZWlnaHRcbiAgICBcbiAgLy9sYXlvdXQgZWFjaCBnbHlwaFxuICB2YXIgc2VsZiA9IHRoaXNcbiAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLCBsaW5lSW5kZXgpIHtcbiAgICB2YXIgc3RhcnQgPSBsaW5lLnN0YXJ0XG4gICAgdmFyIGVuZCA9IGxpbmUuZW5kXG4gICAgdmFyIGxpbmVXaWR0aCA9IGxpbmUud2lkdGhcbiAgICB2YXIgbGFzdEdseXBoXG4gICAgXG4gICAgLy9mb3IgZWFjaCBnbHlwaCBpbiB0aGF0IGxpbmUuLi5cbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZDsgaSsrKSB7XG4gICAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICAgIHZhciBnbHlwaCA9IHNlbGYuZ2V0R2x5cGgoZm9udCwgaWQpXG4gICAgICBpZiAoZ2x5cGgpIHtcbiAgICAgICAgaWYgKGxhc3RHbHlwaCkgXG4gICAgICAgICAgeCArPSBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpXG5cbiAgICAgICAgdmFyIHR4ID0geFxuICAgICAgICBpZiAoYWxpZ24gPT09IEFMSUdOX0NFTlRFUikgXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpLzJcbiAgICAgICAgZWxzZSBpZiAoYWxpZ24gPT09IEFMSUdOX1JJR0hUKVxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKVxuXG4gICAgICAgIGdseXBocy5wdXNoKHtcbiAgICAgICAgICBwb3NpdGlvbjogW3R4LCB5XSxcbiAgICAgICAgICBkYXRhOiBnbHlwaCxcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBsaW5lOiBsaW5lSW5kZXhcbiAgICAgICAgfSkgIFxuXG4gICAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgICB4ICs9IGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vbmV4dCBsaW5lIGRvd25cbiAgICB5ICs9IGxpbmVIZWlnaHRcbiAgICB4ID0gMFxuICB9KVxuICB0aGlzLl9saW5lc1RvdGFsID0gbGluZXMubGVuZ3RoO1xufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5fc2V0dXBTcGFjZUdseXBocyA9IGZ1bmN0aW9uKGZvbnQpIHtcbiAgLy9UaGVzZSBhcmUgZmFsbGJhY2tzLCB3aGVuIHRoZSBmb250IGRvZXNuJ3QgaW5jbHVkZVxuICAvLycgJyBvciAnXFx0JyBnbHlwaHNcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gbnVsbFxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0gbnVsbFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm5cblxuICAvL3RyeSB0byBnZXQgc3BhY2UgZ2x5cGhcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgJ20nIG9yICd3JyBnbHlwaHNcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgZmlyc3QgZ2x5cGggYXZhaWxhYmxlXG4gIHZhciBzcGFjZSA9IGdldEdseXBoQnlJZChmb250LCBTUEFDRV9JRCkgXG4gICAgICAgICAgfHwgZ2V0TUdseXBoKGZvbnQpIFxuICAgICAgICAgIHx8IGZvbnQuY2hhcnNbMF1cblxuICAvL2FuZCBjcmVhdGUgYSBmYWxsYmFjayBmb3IgdGFiXG4gIHZhciB0YWJXaWR0aCA9IHRoaXMuX29wdC50YWJTaXplICogc3BhY2UueGFkdmFuY2VcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gc3BhY2VcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IHh0ZW5kKHNwYWNlLCB7XG4gICAgeDogMCwgeTogMCwgeGFkdmFuY2U6IHRhYldpZHRoLCBpZDogVEFCX0lELCBcbiAgICB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwXG4gIH0pXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmdldEdseXBoID0gZnVuY3Rpb24oZm9udCwgaWQpIHtcbiAgdmFyIGdseXBoID0gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKVxuICBpZiAoZ2x5cGgpXG4gICAgcmV0dXJuIGdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBUQUJfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1RhYkdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBTUEFDRV9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaFxuICByZXR1cm4gbnVsbFxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5jb21wdXRlTWV0cmljcyA9IGZ1bmN0aW9uKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gdGhpcy5fb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgZm9udCA9IHRoaXMuX29wdC5mb250XG4gIHZhciBjdXJQZW4gPSAwXG4gIHZhciBjdXJXaWR0aCA9IDBcbiAgdmFyIGNvdW50ID0gMFxuICB2YXIgZ2x5cGhcbiAgdmFyIGxhc3RHbHlwaFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogc3RhcnQsXG4gICAgICBlbmQ6IHN0YXJ0LFxuICAgICAgd2lkdGg6IDBcbiAgICB9XG4gIH1cblxuICBlbmQgPSBNYXRoLm1pbih0ZXh0Lmxlbmd0aCwgZW5kKVxuICBmb3IgKHZhciBpPXN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB2YXIgZ2x5cGggPSB0aGlzLmdldEdseXBoKGZvbnQsIGlkKVxuXG4gICAgaWYgKGdseXBoKSB7XG4gICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgIHZhciB4b2ZmID0gZ2x5cGgueG9mZnNldFxuICAgICAgdmFyIGtlcm4gPSBsYXN0R2x5cGggPyBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpIDogMFxuICAgICAgY3VyUGVuICs9IGtlcm5cblxuICAgICAgdmFyIG5leHRQZW4gPSBjdXJQZW4gKyBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgIHZhciBuZXh0V2lkdGggPSBjdXJQZW4gKyBnbHlwaC53aWR0aFxuXG4gICAgICAvL3dlJ3ZlIGhpdCBvdXIgbGltaXQ7IHdlIGNhbid0IG1vdmUgb250byB0aGUgbmV4dCBnbHlwaFxuICAgICAgaWYgKG5leHRXaWR0aCA+PSB3aWR0aCB8fCBuZXh0UGVuID49IHdpZHRoKVxuICAgICAgICBicmVha1xuXG4gICAgICAvL290aGVyd2lzZSBjb250aW51ZSBhbG9uZyBvdXIgbGluZVxuICAgICAgY3VyUGVuID0gbmV4dFBlblxuICAgICAgY3VyV2lkdGggPSBuZXh0V2lkdGhcbiAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgfVxuICAgIGNvdW50KytcbiAgfVxuICBcbiAgLy9tYWtlIHN1cmUgcmlnaHRtb3N0IGVkZ2UgbGluZXMgdXAgd2l0aCByZW5kZXJlZCBnbHlwaHNcbiAgaWYgKGxhc3RHbHlwaClcbiAgICBjdXJXaWR0aCArPSBsYXN0R2x5cGgueG9mZnNldFxuXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IHN0YXJ0LFxuICAgIGVuZDogc3RhcnQgKyBjb3VudCxcbiAgICB3aWR0aDogY3VyV2lkdGhcbiAgfVxufVxuXG4vL2dldHRlcnMgZm9yIHRoZSBwcml2YXRlIHZhcnNcbjtbJ3dpZHRoJywgJ2hlaWdodCcsIFxuICAnZGVzY2VuZGVyJywgJ2FzY2VuZGVyJyxcbiAgJ3hIZWlnaHQnLCAnYmFzZWxpbmUnLFxuICAnY2FwSGVpZ2h0JyxcbiAgJ2xpbmVIZWlnaHQnIF0uZm9yRWFjaChhZGRHZXR0ZXIpXG5cbmZ1bmN0aW9uIGFkZEdldHRlcihuYW1lKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZXh0TGF5b3V0LnByb3RvdHlwZSwgbmFtZSwge1xuICAgIGdldDogd3JhcHBlcihuYW1lKSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSlcbn1cblxuLy9jcmVhdGUgbG9va3VwcyBmb3IgcHJpdmF0ZSB2YXJzXG5mdW5jdGlvbiB3cmFwcGVyKG5hbWUpIHtcbiAgcmV0dXJuIChuZXcgRnVuY3Rpb24oW1xuICAgICdyZXR1cm4gZnVuY3Rpb24gJytuYW1lKycoKSB7JyxcbiAgICAnICByZXR1cm4gdGhpcy5fJytuYW1lLFxuICAgICd9J1xuICBdLmpvaW4oJ1xcbicpKSkoKVxufVxuXG5mdW5jdGlvbiBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpIHtcbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIGdseXBoSWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gIGlmIChnbHlwaElkeCA+PSAwKVxuICAgIHJldHVybiBmb250LmNoYXJzW2dseXBoSWR4XVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBnZXRYSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPFhfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IFhfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldE1HbHlwaChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxNX1dJRFRIUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IE1fV0lEVEhTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRDYXBIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8Q0FQX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBDQVBfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEtlcm5pbmcoZm9udCwgbGVmdCwgcmlnaHQpIHtcbiAgaWYgKCFmb250Lmtlcm5pbmdzIHx8IGZvbnQua2VybmluZ3MubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiAwXG5cbiAgdmFyIHRhYmxlID0gZm9udC5rZXJuaW5nc1xuICBmb3IgKHZhciBpPTA7IGk8dGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2VybiA9IHRhYmxlW2ldXG4gICAgaWYgKGtlcm4uZmlyc3QgPT09IGxlZnQgJiYga2Vybi5zZWNvbmQgPT09IHJpZ2h0KVxuICAgICAgcmV0dXJuIGtlcm4uYW1vdW50XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0QWxpZ25UeXBlKGFsaWduKSB7XG4gIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpXG4gICAgcmV0dXJuIEFMSUdOX0NFTlRFUlxuICBlbHNlIGlmIChhbGlnbiA9PT0gJ3JpZ2h0JylcbiAgICByZXR1cm4gQUxJR05fUklHSFRcbiAgcmV0dXJuIEFMSUdOX0xFRlRcbn1cblxuZnVuY3Rpb24gZmluZENoYXIgKGFycmF5LCB2YWx1ZSwgc3RhcnQpIHtcbiAgc3RhcnQgPSBzdGFydCB8fCAwXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldLmlkID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xXG59IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcGFyc2VCTUZvbnRBc2NpaShkYXRhKSB7XG4gIGlmICghZGF0YSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgcHJvdmlkZWQnKVxuICBkYXRhID0gZGF0YS50b1N0cmluZygpLnRyaW0oKVxuXG4gIHZhciBvdXRwdXQgPSB7XG4gICAgcGFnZXM6IFtdLFxuICAgIGNoYXJzOiBbXSxcbiAgICBrZXJuaW5nczogW11cbiAgfVxuXG4gIHZhciBsaW5lcyA9IGRhdGEuc3BsaXQoL1xcclxcbj98XFxuL2cpXG5cbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgaW4gQk1Gb250IGZpbGUnKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGluZURhdGEgPSBzcGxpdExpbmUobGluZXNbaV0sIGkpXG4gICAgaWYgKCFsaW5lRGF0YSkgLy9za2lwIGVtcHR5IGxpbmVzXG4gICAgICBjb250aW51ZVxuXG4gICAgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ3BhZ2UnKSB7XG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuaWQgIT09ICdudW1iZXInKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgaWQ9TicpXG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuZmlsZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBmaWxlPVwicGF0aFwiJylcbiAgICAgIG91dHB1dC5wYWdlc1tsaW5lRGF0YS5kYXRhLmlkXSA9IGxpbmVEYXRhLmRhdGEuZmlsZVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcnMnIHx8IGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmdzJykge1xuICAgICAgLy8uLi4gZG8gbm90aGluZyBmb3IgdGhlc2UgdHdvIC4uLlxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcicpIHtcbiAgICAgIG91dHB1dC5jaGFycy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5nJykge1xuICAgICAgb3V0cHV0Lmtlcm5pbmdzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0W2xpbmVEYXRhLmtleV0gPSBsaW5lRGF0YS5kYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBzcGxpdExpbmUobGluZSwgaWR4KSB7XG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL1xcdCsvZywgJyAnKS50cmltKClcbiAgaWYgKCFsaW5lKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIHNwYWNlID0gbGluZS5pbmRleE9mKCcgJylcbiAgaWYgKHNwYWNlID09PSAtMSkgXG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm8gbmFtZWQgcm93IGF0IGxpbmUgXCIgKyBpZHgpXG5cbiAgdmFyIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIHNwYWNlKVxuXG4gIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhzcGFjZSArIDEpXG4gIC8vY2xlYXIgXCJsZXR0ZXJcIiBmaWVsZCBhcyBpdCBpcyBub24tc3RhbmRhcmQgYW5kXG4gIC8vcmVxdWlyZXMgYWRkaXRpb25hbCBjb21wbGV4aXR5IHRvIHBhcnNlIFwiIC8gPSBzeW1ib2xzXG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL2xldHRlcj1bXFwnXFxcIl1cXFMrW1xcJ1xcXCJdL2dpLCAnJykgIFxuICBsaW5lID0gbGluZS5zcGxpdChcIj1cIilcbiAgbGluZSA9IGxpbmUubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBzdHIudHJpbSgpLm1hdGNoKCgvKFwiLio/XCJ8W15cIlxcc10rKSsoPz1cXHMqfFxccyokKS9nKSlcbiAgfSlcblxuICB2YXIgZGF0YSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkdCA9IGxpbmVbaV1cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFswXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFsxXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0ID0ge1xuICAgIGtleToga2V5LFxuICAgIGRhdGE6IHt9XG4gIH1cblxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIG91dC5kYXRhW3Yua2V5XSA9IHYuZGF0YTtcbiAgfSlcblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShkYXRhKSB7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gXCJcIlxuXG4gIGlmIChkYXRhLmluZGV4T2YoJ1wiJykgPT09IDAgfHwgZGF0YS5pbmRleE9mKFwiJ1wiKSA9PT0gMClcbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoMSwgZGF0YS5sZW5ndGggLSAxKVxuICBpZiAoZGF0YS5pbmRleE9mKCcsJykgIT09IC0xKVxuICAgIHJldHVybiBwYXJzZUludExpc3QoZGF0YSlcbiAgcmV0dXJuIHBhcnNlSW50KGRhdGEsIDEwKVxufVxuXG5mdW5jdGlvbiBwYXJzZUludExpc3QoZGF0YSkge1xuICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMClcbiAgfSlcbn0iLCJ2YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG52YXIgYW5BcnJheSA9IHJlcXVpcmUoJ2FuLWFycmF5JylcbnZhciBpc0J1ZmZlciA9IHJlcXVpcmUoJ2lzLWJ1ZmZlcicpXG5cbnZhciBDVyA9IFswLCAyLCAzXVxudmFyIENDVyA9IFsyLCAxLCAzXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVF1YWRFbGVtZW50cyhhcnJheSwgb3B0KSB7XG4gICAgLy9pZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IGFuIG91dHB1dCBhcnJheVxuICAgIGlmICghYXJyYXkgfHwgIShhbkFycmF5KGFycmF5KSB8fCBpc0J1ZmZlcihhcnJheSkpKSB7XG4gICAgICAgIG9wdCA9IGFycmF5IHx8IHt9XG4gICAgICAgIGFycmF5ID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnbnVtYmVyJykgLy9iYWNrd2FyZHMtY29tcGF0aWJsZVxuICAgICAgICBvcHQgPSB7IGNvdW50OiBvcHQgfVxuICAgIGVsc2VcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9XG5cbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvcHQudHlwZSA9PT0gJ3N0cmluZycgPyBvcHQudHlwZSA6ICd1aW50MTYnXG4gICAgdmFyIGNvdW50ID0gdHlwZW9mIG9wdC5jb3VudCA9PT0gJ251bWJlcicgPyBvcHQuY291bnQgOiAxXG4gICAgdmFyIHN0YXJ0ID0gKG9wdC5zdGFydCB8fCAwKSBcblxuICAgIHZhciBkaXIgPSBvcHQuY2xvY2t3aXNlICE9PSBmYWxzZSA/IENXIDogQ0NXLFxuICAgICAgICBhID0gZGlyWzBdLCBcbiAgICAgICAgYiA9IGRpclsxXSxcbiAgICAgICAgYyA9IGRpclsyXVxuXG4gICAgdmFyIG51bUluZGljZXMgPSBjb3VudCAqIDZcblxuICAgIHZhciBpbmRpY2VzID0gYXJyYXkgfHwgbmV3IChkdHlwZSh0eXBlKSkobnVtSW5kaWNlcylcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBudW1JbmRpY2VzOyBpICs9IDYsIGogKz0gNCkge1xuICAgICAgICB2YXIgeCA9IGkgKyBzdGFydFxuICAgICAgICBpbmRpY2VzW3ggKyAwXSA9IGogKyAwXG4gICAgICAgIGluZGljZXNbeCArIDFdID0gaiArIDFcbiAgICAgICAgaW5kaWNlc1t4ICsgMl0gPSBqICsgMlxuICAgICAgICBpbmRpY2VzW3ggKyAzXSA9IGogKyBhXG4gICAgICAgIGluZGljZXNbeCArIDRdID0gaiArIGJcbiAgICAgICAgaW5kaWNlc1t4ICsgNV0gPSBqICsgY1xuICAgIH1cbiAgICByZXR1cm4gaW5kaWNlc1xufSIsInZhciBjcmVhdGVMYXlvdXQgPSByZXF1aXJlKCdsYXlvdXQtYm1mb250LXRleHQnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIGNyZWF0ZUluZGljZXMgPSByZXF1aXJlKCdxdWFkLWluZGljZXMnKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIEJhc2UuY2FsbCh0aGlzKVxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0KVxuXG4gIC8vIGFsc28gZG8gYW4gaW5pdGlhbCBzZXR1cC4uLlxuICBpZiAob3B0KSB0aGlzLnVwZGF0ZShvcHQpXG59XG5cbmluaGVyaXRzKFRleHRHZW9tZXRyeSwgQmFzZSlcblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAob3B0KSB7XG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSBjb25zdHJ1Y3RvciBkZWZhdWx0c1xuICBvcHQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vcHQsIG9wdClcblxuICBpZiAoIW9wdC5mb250KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGEgeyBmb250IH0gaW4gb3B0aW9ucycpXG4gIH1cblxuICB0aGlzLmxheW91dCA9IGNyZWF0ZUxheW91dChvcHQpXG5cbiAgLy8gZ2V0IHZlYzIgdGV4Y29vcmRzXG4gIHZhciBmbGlwWSA9IG9wdC5mbGlwWSAhPT0gZmFsc2VcblxuICAvLyB0aGUgZGVzaXJlZCBCTUZvbnQgZGF0YVxuICB2YXIgZm9udCA9IG9wdC5mb250XG5cbiAgLy8gZGV0ZXJtaW5lIHRleHR1cmUgc2l6ZSBmcm9tIGZvbnQgZmlsZVxuICB2YXIgdGV4V2lkdGggPSBmb250LmNvbW1vbi5zY2FsZVdcbiAgdmFyIHRleEhlaWdodCA9IGZvbnQuY29tbW9uLnNjYWxlSFxuXG4gIC8vIGdldCB2aXNpYmxlIGdseXBoc1xuICB2YXIgZ2x5cGhzID0gdGhpcy5sYXlvdXQuZ2x5cGhzLmZpbHRlcihmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHJldHVybiBiaXRtYXAud2lkdGggKiBiaXRtYXAuaGVpZ2h0ID4gMFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdmlzaWJsZSBnbHlwaHMgZm9yIGNvbnZlbmllbmNlXG4gIHRoaXMudmlzaWJsZUdseXBocyA9IGdseXBoc1xuXG4gIC8vIGdldCBjb21tb24gdmVydGV4IGRhdGFcbiAgdmFyIHBvc2l0aW9ucyA9IHZlcnRpY2VzLnBvc2l0aW9ucyhnbHlwaHMpXG4gIHZhciB1dnMgPSB2ZXJ0aWNlcy51dnMoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSlcbiAgdmFyIGluZGljZXMgPSBjcmVhdGVJbmRpY2VzKFtdLCB7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIHRoaXMuc2V0SW5kZXgoaW5kaWNlcylcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwb3NpdGlvbnMsIDIpKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHV2cywgMikpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICAvLyBlbmFibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHZhciBwYWdlcyA9IHZlcnRpY2VzLnBhZ2VzKGdseXBocylcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGFnZScsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocGFnZXMsIDEpKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIG5ld2xpbmUgPSAvXFxuL1xudmFyIG5ld2xpbmVDaGFyID0gJ1xcbidcbnZhciB3aGl0ZXNwYWNlID0gL1xccy9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih0ZXh0LCBvcHQpIHtcbiAgICB2YXIgbGluZXMgPSBtb2R1bGUuZXhwb3J0cy5saW5lcyh0ZXh0LCBvcHQpXG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhsaW5lLnN0YXJ0LCBsaW5lLmVuZClcbiAgICB9KS5qb2luKCdcXG4nKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5saW5lcyA9IGZ1bmN0aW9uIHdvcmR3cmFwKHRleHQsIG9wdCkge1xuICAgIG9wdCA9IG9wdHx8e31cblxuICAgIC8vemVybyB3aWR0aCByZXN1bHRzIGluIG5vdGhpbmcgdmlzaWJsZVxuICAgIGlmIChvcHQud2lkdGggPT09IDAgJiYgb3B0Lm1vZGUgIT09ICdub3dyYXAnKSBcbiAgICAgICAgcmV0dXJuIFtdXG5cbiAgICB0ZXh0ID0gdGV4dHx8JydcbiAgICB2YXIgd2lkdGggPSB0eXBlb2Ygb3B0LndpZHRoID09PSAnbnVtYmVyJyA/IG9wdC53aWR0aCA6IE51bWJlci5NQVhfVkFMVUVcbiAgICB2YXIgc3RhcnQgPSBNYXRoLm1heCgwLCBvcHQuc3RhcnR8fDApXG4gICAgdmFyIGVuZCA9IHR5cGVvZiBvcHQuZW5kID09PSAnbnVtYmVyJyA/IG9wdC5lbmQgOiB0ZXh0Lmxlbmd0aFxuICAgIHZhciBtb2RlID0gb3B0Lm1vZGVcblxuICAgIHZhciBtZWFzdXJlID0gb3B0Lm1lYXN1cmUgfHwgbW9ub3NwYWNlXG4gICAgaWYgKG1vZGUgPT09ICdwcmUnKVxuICAgICAgICByZXR1cm4gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKVxuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSlcbn1cblxuZnVuY3Rpb24gaWR4T2YodGV4dCwgY2hyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIGlkeCA9IHRleHQuaW5kZXhPZihjaHIsIHN0YXJ0KVxuICAgIGlmIChpZHggPT09IC0xIHx8IGlkeCA+IGVuZClcbiAgICAgICAgcmV0dXJuIGVuZFxuICAgIHJldHVybiBpZHhcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNocikge1xuICAgIHJldHVybiB3aGl0ZXNwYWNlLnRlc3QoY2hyKVxufVxuXG5mdW5jdGlvbiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgbGluZXMgPSBbXVxuICAgIHZhciBsaW5lU3RhcnQgPSBzdGFydFxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kICYmIGk8dGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hyID0gdGV4dC5jaGFyQXQoaSlcbiAgICAgICAgdmFyIGlzTmV3bGluZSA9IG5ld2xpbmUudGVzdChjaHIpXG5cbiAgICAgICAgLy9JZiB3ZSd2ZSByZWFjaGVkIGEgbmV3bGluZSwgdGhlbiBzdGVwIGRvd24gYSBsaW5lXG4gICAgICAgIC8vT3IgaWYgd2UndmUgcmVhY2hlZCB0aGUgRU9GXG4gICAgICAgIGlmIChpc05ld2xpbmUgfHwgaT09PWVuZC0xKSB7XG4gICAgICAgICAgICB2YXIgbGluZUVuZCA9IGlzTmV3bGluZSA/IGkgOiBpKzFcbiAgICAgICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgbGluZVN0YXJ0LCBsaW5lRW5kLCB3aWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobWVhc3VyZWQpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmVTdGFydCA9IGkrMVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpIHtcbiAgICAvL0EgZ3JlZWR5IHdvcmQgd3JhcHBlciBiYXNlZCBvbiBMaWJHRFggYWxnb3JpdGhtXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbGliZ2R4L2xpYmdkeC9ibG9iL21hc3Rlci9nZHgvc3JjL2NvbS9iYWRsb2dpYy9nZHgvZ3JhcGhpY3MvZzJkL0JpdG1hcEZvbnRDYWNoZS5qYXZhXG4gICAgdmFyIGxpbmVzID0gW11cblxuICAgIHZhciB0ZXN0V2lkdGggPSB3aWR0aFxuICAgIC8vaWYgJ25vd3JhcCcgaXMgc3BlY2lmaWVkLCB3ZSBvbmx5IHdyYXAgb24gbmV3bGluZSBjaGFyc1xuICAgIGlmIChtb2RlID09PSAnbm93cmFwJylcbiAgICAgICAgdGVzdFdpZHRoID0gTnVtYmVyLk1BWF9WQUxVRVxuXG4gICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgLy9nZXQgbmV4dCBuZXdsaW5lIHBvc2l0aW9uXG4gICAgICAgIHZhciBuZXdMaW5lID0gaWR4T2YodGV4dCwgbmV3bGluZUNoYXIsIHN0YXJ0LCBlbmQpXG5cbiAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBzdGFydCBvZiBsaW5lXG4gICAgICAgIHdoaWxlIChzdGFydCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKCB0ZXh0LmNoYXJBdChzdGFydCkgKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgc3RhcnQrK1xuICAgICAgICB9XG5cbiAgICAgICAgLy9kZXRlcm1pbmUgdmlzaWJsZSAjIG9mIGdseXBocyBmb3IgdGhlIGF2YWlsYWJsZSB3aWR0aFxuICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBuZXdMaW5lLCB0ZXN0V2lkdGgpXG5cbiAgICAgICAgdmFyIGxpbmVFbmQgPSBzdGFydCArIChtZWFzdXJlZC5lbmQtbWVhc3VyZWQuc3RhcnQpXG4gICAgICAgIHZhciBuZXh0U3RhcnQgPSBsaW5lRW5kICsgbmV3bGluZUNoYXIubGVuZ3RoXG5cbiAgICAgICAgLy9pZiB3ZSBoYWQgdG8gY3V0IHRoZSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBuZXdsaW5lLi4uXG4gICAgICAgIGlmIChsaW5lRW5kIDwgbmV3TGluZSkge1xuICAgICAgICAgICAgLy9maW5kIGNoYXIgdG8gYnJlYWsgb25cbiAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQpKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5lRW5kID09PSBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPiBzdGFydCArIG5ld2xpbmVDaGFyLmxlbmd0aCkgbmV4dFN0YXJ0LS1cbiAgICAgICAgICAgICAgICBsaW5lRW5kID0gbmV4dFN0YXJ0IC8vIElmIG5vIGNoYXJhY3RlcnMgdG8gYnJlYWssIHNob3cgYWxsLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBsaW5lRW5kXG4gICAgICAgICAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCAtIG5ld2xpbmVDaGFyLmxlbmd0aCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5lRW5kID49IHN0YXJ0KSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbGluZUVuZCwgdGVzdFdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnRcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbi8vZGV0ZXJtaW5lcyB0aGUgdmlzaWJsZSBudW1iZXIgb2YgZ2x5cGhzIHdpdGhpbiBhIGdpdmVuIHdpZHRoXG5mdW5jdGlvbiBtb25vc3BhY2UodGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgZ2x5cGhzID0gTWF0aC5taW4od2lkdGgsIGVuZC1zdGFydClcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnQrZ2x5cGhzXG4gICAgfVxufSIsIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQlVUVE9OX0NPTE9SIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSwgeyBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0NPTE9SICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAuYnV0dG9uTGFiZWwgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgeyBDSEVDS0JPWF9TSVpFIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ2hlY2tib3goIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgY29uc3QgQ0hFQ0tCT1hfUEFEID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAtIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiY2hlY2tib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGNoZWNrbWFyaywgYm9yZGVyQm94LCBpbnRlcmFjdGlvbjtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBpZiggb25DaGFuZ2VkQ0IgKXtcclxuICAgICAgb25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGJvcmRlckJveC52aXNpYmxlID0gaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIGlmIChfaGVhZGVyKSB7XHJcbiAgICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgICAgX2hlYWRlci5ib3JkZXJCb3gudmlzaWJsZSA9IF9oZWFkZXIuaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG4gIGxldCBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSBmYWxzZTtcclxuICBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXIgPSAodmFsdWU9dHJ1ZSkgPT4ge1xyXG4gICAgaWYgKHZhbHVlICE9PSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHtcclxuICAgICAgaXNTaG93bkluRm9sZGVySGVhZGVyID0gdmFsdWU7XHJcbiAgICAgIC8vZ3JvdXAuZm9sZGVySGVhZGVyT2JqZWN0ID0gdmFsdWUgPyBnZXRGb2xkZXJIZWFkZXJPYmplY3QgOiBudWxsO1xyXG4gICAgICAvL3h4eDogY2FuJ3QgdXNlIG9yZGluYXJ5IGFkZC4uLlxyXG4gICAgICBfaGVhZGVyID0gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCk7XHJcbiAgICAgIGlmICh2YWx1ZSkgZ3JvdXAuZm9sZGVyLmFkZEhlYWRlckl0ZW0oX2hlYWRlcik7XHJcbiAgICAgIGVsc2UgX2hlYWRlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2lzU2hvd25JbkZvbGRlckhlYWRlcicsIHtcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gaXNTaG93bkluRm9sZGVySGVhZGVyIH0sXHJcbiAgICBzZXQ6IGdyb3VwLnNob3dJbkZvbGRlckhlYWRlclxyXG4gIH0pO1xyXG4gIGxldCBfaGVhZGVyO1xyXG4gIGZ1bmN0aW9uIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHtcclxuICAgIGlmIChfaGVhZGVyKSByZXR1cm4gX2hlYWRlcjtcclxuICAgIGxldCBzaXplID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAqIDAuNjtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoc2l6ZSwgc2l6ZSwgZGVwdGgpO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoc2l6ZSowLjUsIDAsIDApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2gocmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwpO1xyXG4gICAgX2hlYWRlciA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBzaWRlLWVmZmVjdC4uLlxyXG4gICAgLy8geCBwb3NpdGlvbiBpcyBzZXQgaW4gZm9sZGVyIHBlcmZvcm1IZWFkZXJMYXlvdXQoKVxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBcclxuICAgIC8vVE9ETzogZ2V0IHRoaXMgdG8gd29yay4uLiBhZGQgdG9vbHRpcFxyXG4gICAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBkZXB0aCwgdHJ1ZSApO1xyXG4gICAgX2hlYWRlci5ib3JkZXJCb3ggPSBib3JkZXJCb3g7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjb25zdCBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyaygwLjQgKiBzaXplIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkUpO1xyXG4gICAgX2hlYWRlci5jaGVja21hcmsgPSBjaGVja21hcms7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZChjaGVja21hcmspO1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oaGl0c2NhblZvbHVtZSk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oJ29uUHJlc3NlZCcsIGhhbmRsZUhlYWRlclByZXNzKTtcclxuICAgIF9oZWFkZXIuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuXHJcbiAgICAvL2FkZCB1cGRhdGVDb250cm9sIG1ldGhvZCBoZXJlIC0gYXR0ZW1wdCB0byBtYWtlIGdlbmVyaWMgdmVyc2lvbiBpbiBmb2xkZXIgd2FzIGluYWRlcXVhdGVcclxuICAgIF9oZWFkZXIudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiB7XHJcbiAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIHtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vbmI6IGludGVyYWN0aW9uIHdpbGwgYmUgZnJvbSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSBzY29wZSwgXHJcbiAgICAgIC8vbm90IHRoZSBtYWluIG9uZSB0aGF0IGFwcGxpZXMgdGhhdCBhcHBsaWVzIHRvIHRoZSBvcmRpbmFyeSBjb250cm9sLlxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBfaGVhZGVyO1xyXG4gIH1cclxuXHJcbiAgLy9UT0RPIHJldmlldyBuZWVkIGZvciBzZXBhcmF0ZSBoZWFkZXIgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uXHJcbiAgZnVuY3Rpb24gaGFuZGxlSGVhZGVyUHJlc3MocCl7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyLnZpc2libGUgPT09IGZhbHNlIHx8IF9oZWFkZXIudmlzaWJsZSA9PT0gZmFsc2UpIHJldHVybjtcclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdGF0ZS52YWx1ZTtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Ioc3RhdGUudmFsdWUpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIC8vbWFrZSBzdXJlIHZpZXcgaXMgYWxzbyB1cCB0byBkYXRlOyB1cGRhdGVWaWV3KCkgd29uJ3QgaGFwcGVuIHdoZW4gcGFyZW50IGZvbGRlciBpcyBjb2xsYXBzZWRcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICAvL2FsbCBsYXlvdXQgZXRjIGlzIGRvbmUgaW5zaWRlIHNldEhlaWdodCwgd2hpY2ggaXMgY2FsbGVkIG9uY2UgYXQgc3RhcnQuXHJcbiAgLy9hbnkgY2FsbGJhY2tzIGV0YyByZW1haW4gYXNzb2NpYXRlZCB3aXRoICdncm91cCcuXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gbmV3SGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IG5ld0hlaWdodDtcclxuICAgIFxyXG4gICAgY29uc3QgQ0hFQ0tCT1hfV0lEVEggPSBuZXdIZWlnaHQgLSBDSEVDS0JPWF9QQUQ7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9IRUlHSFQgPSBDSEVDS0JPWF9XSURUSDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0RFUFRIID0gZGVwdGg7XHJcbiAgICBjb25zdCBDSEVDS01BUktfU0laRSA9IDAuNCAqIENIRUNLQk9YX1dJRFRIIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIG5ld0hlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICBcclxuICAgIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDSEVDS0JPWF9XSURUSCwgQ0hFQ0tCT1hfSEVJR0hULCBDSEVDS0JPWF9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIENIRUNLQk9YX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgXHJcbiAgXHJcbiAgICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuICBcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgXHJcbiAgICAvLyAgb3V0bGluZSB2b2x1bWVcclxuICAgIC8vIGNvbnN0IG91dGxpbmUgPSBuZXcgVEhSRUUuQm94SGVscGVyKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAvLyBvdXRsaW5lLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLk9VVExJTkVfQ09MT1IgKTtcclxuICBcclxuICAgIC8vICBjaGVja2JveCB2b2x1bWVcclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5DSEVDS0JPWF9CR19DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcbiAgXHJcbiAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBuZXdIZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0NIRUNLQk9YICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gICAgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBDSEVDS0JPWF9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfREVQVEgsIHRydWUgKTtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKCBDSEVDS01BUktfU0laRSApO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggY2hlY2ttYXJrICk7XHJcbiAgXHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklELCBib3JkZXJCb3ggKTtcclxuICBcclxuICAgIC8vIGdyb3VwLmFkZCggZmlsbGVkVm9sdW1lLCBvdXRsaW5lLCBoaXRzY2FuVm9sdW1lLCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuICBcclxuICAgIGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICBcclxuICBcclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG4gICAgXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdO1xyXG4gICAgICB9XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KGhlaWdodCk7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4gKiBUaGlzIHNob3VsZCBsb29rIGxpa2UgYW4gaW1hZ2VidXR0b24gd2l0aCBhIHNvbGlkIGNvbG9yIE1lc2hCYXNpY01hdGVyaWFsXHJcbiAqIFdoZW4gcHJlc3NlZCBpdCBjb3VsZCBicmluZyB1cCBzb21lIGtpbmQgb2YgcGlja2VyIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uLlxyXG4gKiBcclxuICogRm9yIG5vdywganVzdCBnb2luZyB3aXRoIFJHQiBzbGlkZXJzIGFzIEkgc2hvdWxkbid0IHNwZW5kIHRvbyBsb25nIG9uIHRoaXMgQVRNLFxyXG4gKiBidXQgdmVyeSB0ZW1wdGVkIGJ5IHByb3NwZWN0IG9mIGFuIEhTIHNxdWFyZSB3aXRoIFYgc2xpZGVyLi4uIFxyXG4gKiBvciBIIHNsaWRlciBhbmQgU1Ygc3F1YXJlIHdoaWNoIHNlZW1zIHRvIGJlIHdoYXQgZGF0Lmd1aSB1c2VzLlxyXG4gKiBPciBzb21ldGhpbmcgZmFuY2llciBsaWtlIGEgaHVlIGNpcmNsZSBhcm91bmQgYW4gU1YgdHJpYW5nbGUgZXRjIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbi8vc25pcHBldCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9odWdoc2svZ2xzbC1oc3YycmdiL2Jsb2IvbWFzdGVyL2luZGV4Lmdsc2xcclxuLy8obm90IGdvaW5nIHRvIHRoZSBsZW5ndGhzIG9mIGdsc2xpZnksIGp1c3QgY29weWluZyB0aGUgZnVuY3Rpb24pXHJcbmNvbnN0IGhzdjJyZ2IgPSBgXHJcbnZlYzMgaHN2MnJnYih2ZWMzIGMpIHtcclxuICAgIHZlYzQgSyA9IHZlYzQoMS4wLCAyLjAgLyAzLjAsIDEuMCAvIDMuMCwgMy4wKTtcclxuICAgIHZlYzMgcCA9IGFicyhmcmFjdChjLnh4eCArIEsueHl6KSAqIDYuMCAtIEsud3d3KTtcclxuICAgIHJldHVybiBjLnogKiBtaXgoSy54eHgsIGNsYW1wKHAgLSBLLnh4eCwgMC4wLCAxLjApLCBjLnkpO1xyXG59YDtcclxuXHJcbmNvbnN0IFZlcnRTaGFkZXIgPSBgXHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2VXYgPSB1djtcclxuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuKTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgU1ZGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZlYzMgaHN2ID0gdmVjMyhzZWxlY3RlZEhTVi54LCB2VXYpO1xyXG5cclxuICAgIC8vIGRyYXcgYSBibGFjayBjaXJjbGUgYXJvdW5kIHNlbGVjdGVkIFNWLlxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBsZXNzIGhvdXNla2VlcGluZ1xyXG4gICAgLy8gbmVlZCB0byBrbm93IGFzcGVjdCByYXRpbyBpZiBJIHdhbnQgaXQgdG8gYmUgYSBwcm9wZXIgY2lyY2xlLCB0aG91Z2guXHJcbiAgICBmbG9hdCBkID0gbGVuZ3RoKHNlbGVjdGVkSFNWLnl6IC0gdlV2KTtcclxuICAgIGlmIChkIDwgMC4wMTUgJiYgZCA+IDAuMDEpIGhzdi56ID0gMC47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYihoc3YpO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBIU2xpZGVyRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICAvLyBkcmF3IGEgcmVjdGFuZ3VsYXIgaW5kaWNhdG9yIGFyb3VuZCBzZWxlY3RlZCBIXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIHNpbXBsZXJcclxuICAgIGZsb2F0IGRpc3QgPSBhYnMoc2VsZWN0ZWRIU1YueCAtIHZVdi54KTtcclxuICAgIGJvb2wgaW5kaWNhdG9yID0gZGlzdCA8IDAuMDEgJiYgZGlzdCA+IDAuMDA1O1xyXG4gICAgZmxvYXQgdiA9IGluZGljYXRvciA/IDAuIDogMS47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYih2ZWMzKHZVdi54LCAxLiwgdikpO1xyXG4gICAgXHJcbn1cclxuYDtcclxuXHJcbi8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTcyNDIxNDQvamF2YXNjcmlwdC1jb252ZXJ0LWhzYi1oc3YtY29sb3ItdG8tcmdiLWFjY3VyYXRlbHlcclxuLy93aHkgbm90IHVzZSBUSFJFRS5Db2xvciBtZXRob2RzP1xyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogaCAgT2JqZWN0ID0ge2g6eCwgczp5LCB2Onp9XHJcbiAqIE9SIFxyXG4gKiBoLCBzLCB2XHJcbiovXHJcbmZ1bmN0aW9uIEhTVnRvUkdCKGgsIHMsIHYpIHtcclxuICAgIHZhciByLCBnLCBiLCBpLCBmLCBwLCBxLCB0O1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAvL2hhY2sgdG8gdGFrZSBUSFJFRS5WZWN0b3IzLi4uXHJcbiAgICAgICAgaWYgKGgueCAhPT0gdW5kZWZpbmVkKSBzID0gaC55LCB2ID0gaC56LCBoID0gaC54O1xyXG4gICAgICAgIGVsc2UgcyA9IGgucywgdiA9IGgudiwgaCA9IGguaDtcclxuICAgIH1cclxuICAgIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIGYgPSBoICogNiAtIGk7XHJcbiAgICBwID0gdiAqICgxIC0gcyk7XHJcbiAgICBxID0gdiAqICgxIC0gZiAqIHMpO1xyXG4gICAgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcclxuICAgIHN3aXRjaCAoaSAlIDYpIHtcclxuICAgICAgICBjYXNlIDA6IHIgPSB2LCBnID0gdCwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTogciA9IHEsIGcgPSB2LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyOiByID0gcCwgZyA9IHYsIGIgPSB0OyBicmVhaztcclxuICAgICAgICBjYXNlIDM6IHIgPSBwLCBnID0gcSwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDogciA9IHQsIGcgPSBwLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA1OiByID0gdiwgZyA9IHAsIGIgPSBxOyBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcjogcixcclxuICAgICAgICBnOiBnLFxyXG4gICAgICAgIGI6IGJcclxuICAgIH07XHJcbn1cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIHIgIE9iamVjdCA9IHtyLCBnLCBifVxyXG4gKiBPUiBcclxuICogciwgZywgYlxyXG4qL1xyXG5mdW5jdGlvbiBSR0J0b0hTVihyLCBnLCBiKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGcgPSByLmcsIGIgPSByLmIsIHIgPSByLnI7XHJcbiAgICB9XHJcbiAgICB2YXIgbWF4ID0gTWF0aC5tYXgociwgZywgYiksIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpLFxyXG4gICAgICAgIGQgPSBtYXggLSBtaW4sXHJcbiAgICAgICAgaCxcclxuICAgICAgICBzID0gKG1heCA9PT0gMCA/IDAgOiBkIC8gbWF4KSxcclxuICAgICAgICB2ID0gbWF4O1xyXG5cclxuICAgIHN3aXRjaCAobWF4KSB7XHJcbiAgICAgICAgY2FzZSBtaW46IGggPSAwOyBicmVhaztcclxuICAgICAgICBjYXNlIHI6IGggPSAoZyAtIGIpICsgZCAqIChnIDwgYiA/IDY6IDApOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGc6IGggPSAoYiAtIHIpICsgZCAqIDI7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgYjogaCA9IChyIC0gZykgKyBkICogNDsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBoOiBoLFxyXG4gICAgICAgIHM6IHMsXHJcbiAgICAgICAgdjogdiwgXHJcbiAgICAgICAgeDogaCwgeTogcywgejogdiAvL3NvIHRoYXQgd2UgY2FuIGRvIFZlY3RvcjMuY29weSh0aGlzKVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ29sb3JQaWNrZXIoIHtcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSwgLy9tdXN0IGJlIGEgVEhSRUUuQ29sb3IgZm9yIG5vdy4uLiBzaG91bGQgcmVmZXIgdG8gb3JpZ2luYWwgZGF0Lmd1aSB0byBzZWUgd2hhdCBpdCB0YWtlc1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCAvIDMuXHJcbn0gPSB7fSkge1xyXG4gICAgLy8gbWFrZSB0aGUgbWFpbiBncm91cCBiZSAqZGlyZWN0bHkqIHRoZSBvbmUgcmV0dXJuZWQgYnkgY3JlYXRlSW1hZ2VCdXR0b247XHJcbiAgICAvLyB3ZSdsbCB0YWtlIGNhcmUgb2YgZHluYW1pY2FsbHkgYWRkaW5nIGFuZCByZW1vdmluZyBjaGlsZHJlbiBiYXNlZCBvbiBhdHRhY2hlZC4uLlxyXG4gICAgLy8gd2lsbCB3YW50IHRvIHRoaW5rIGFib3V0IGxpc3RlbmVyIGZ1bmN0aW9ucyBldGMuXHJcbiAgICBsZXQgZnVuYyA9IHRvZ2dsZURldGFpbFBhbmVsO1xyXG4gICAgbGV0IGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07IC8vZm9yIG5vdywgdGhpcydkIGJldHRlciBiZSBhIFRIUkVFLkNvbG9yIG9yIHdlJ2xsIGZyZWFrIG91dC5cclxuICAgIGNvbnN0IGMgPSBSR0J0b0hTVihjb2xvcik7XHJcbiAgICBjb25zdCB1bmlmb3JtcyA9IHtzZWxlY3RlZEhTVjoge3ZhbHVlOiBuZXcgVEhSRUUuVmVjdG9yMyhjLmgsIGMucywgYy52KX19O1xyXG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiBjb2xvcn0pO1xyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGNvbnN0IGNoYW5nZUNvbG9yT25Ib3ZlciA9IGZhbHNlO1xyXG4gICAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICAgICAgbGlzdGVuOiBmYWxzZVxyXG4gICAgfTtcclxuICAgIC8vVE9ETyBtYWtlIHN1cmUgY29sb3IgcGF0Y2ggb2NjdXBpZXMgZnVsbCB3aWR0aC4gIEFkZCB0ZXh0IGxhYmVsIHdpdGggaGV4IHZhbHVlP1xyXG4gICAgY29uc3QgZ3JvdXAgPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgICAgdGV4dENyZWF0b3IsIGZ1bmMsIGltYWdlLCBwcm9wZXJ0eU5hbWUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBjaGFuZ2VDb2xvck9uSG92ZXJcclxuICAgIH0pO1xyXG4gICAgZ3JvdXAuZ3VpVHlwZSA9IFwiQ29sb3JQaWNrZXJcIjtcclxuICAgIFxyXG4gICAgdmFyIHBhbmVsO1xyXG5cclxuICAgIGZ1bmN0aW9uIGNoYW5nZUZuKCkge1xyXG4gICAgICAgIGltYWdlLmNvbG9yLnNldChjb2xvcik7XHJcbiAgICAgICAgZXZlbnRzLmVtaXQoJ29uQ2hhbmdlJywgY29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhbmN5UGFuZWwgPSB0cnVlO1xyXG5cclxuICAgIGZ1bmN0aW9uIHNldFBhbmVsUG9zaXRpb24oKSB7XHJcbiAgICAgICAgaWYgKCFwYW5lbCkgcmV0dXJuO1xyXG4gICAgICAgIHBhbmVsLnBvc2l0aW9uLnNldCgwLCAwLCA1KmRlcHRoKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB0b2dnbGVEZXRhaWxQYW5lbCgpIHtcclxuICAgICAgICBpZiAocGFuZWwpIHtcclxuICAgICAgICAgICAgcGFuZWwudmlzaWJsZSA9ICFwYW5lbC52aXNpYmxlO1xyXG4gICAgICAgICAgICBpZiAocGFuZWwudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gd291bGQgYmUgaGFuZHkgdG8gaGF2ZSBhIHdheSB0byBtYWtlIG5hcnJvd2VyIHBhbmVsXHJcbiAgICAgICAgICAgIHBhbmVsID0gZGF0LkdVSVZSLmNyZWF0ZShcIkNvbG9yIENob29zZXJcIik7IFxyXG4gICAgICAgICAgICBwYW5lbC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAoZmFuY3lQYW5lbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgU1ZNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogU1ZGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNldFNWID0gKHApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS55ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueiA9IHAubG9jYWxQb2ludC55O1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBsZXQgd2lkZSA9IHRydWUsIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSC8xMDtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRTViwgU1ZNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX1dJRFRIIC8gMiwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IEhNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogSFNsaWRlckZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0SChwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueCA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAvL1RPRE86IGNoZWNrIGxheW91dFxyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldEgsIEhNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX0hFSUdIVCwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ3InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdnJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnYicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncm91cC5hZGQocGFuZWwpO1xyXG4gICAgICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHBhbmVsLmZvbGRlciA9IGdyb3VwLmZvbGRlcjsgLy9taWdodCBzdGlsbCB3YW50IHRvIGRvdWJsZSBjaGVjayBmb2xkZXIgaGllcmFyY2h5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgZXZlbnRzLm9uKCdvbkNoYW5nZScsIGNhbGxiYWNrKTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3JpZ2luYWxVcGRhdGVDb250cm9sID0gZ3JvdXAudXBkYXRlQ29udHJvbDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICkge1xyXG4gICAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIG9yaWdpbmFsVXBkYXRlQ29udHJvbChpbnB1dE9iamVjdHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKSB7XHJcbiAgICAgICAgLy9vYmplY3QgcmVmIG1pZ2h0IGhhdmUgY2hhbmdlZCwgYXMgd2VsbCBhcyB2YWx1ZS5cclxuICAgICAgICAvL2V2ZW4gaWYgcmVmIGhhc24ndCBjaGFuZ2VkLCB2YWx1ZSBzdGlsbCBtaWdodCd2ZSwgYW5kIHdlJ3JlIG5vdCBjdXJyZW50bHkgcmVmbGVjdGluZyB0aGF0LlxyXG4gICAgICAgIGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgaW1hZ2UuY29sb3IuY29weShjb2xvcik7XHJcbiAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUuY29weShSR0J0b0hTVihjb2xvcikpO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAubGlzdGVuID0gKCkgPT4ge1xyXG4gICAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1IgPSAweDJGQTFENjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9DT0xPUiA9IDB4NDNiNWVhO1xyXG5leHBvcnQgY29uc3QgSU5URVJBQ1RJT05fQ09MT1IgPSAweDA3QUJGNztcclxuZXhwb3J0IGNvbnN0IEVNSVNTSVZFX0NPTE9SID0gMHgyMjIyMjI7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfRU1JU1NJVkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IE9VVExJTkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDSyA9IDB4MDYwNjA2O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT0xERVJfQkFDSyA9IDB4MTAxMDEwO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0JBQ0sgPSAweDMxMzEzMTtcclxuZXhwb3J0IGNvbnN0IElOQUNUSVZFX0NPTE9SID0gMHgxNjE4Mjk7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1NMSURFUiA9IDB4MmZhMWQ2O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9DSEVDS0JPWCA9IDB4ODA2Nzg3O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9CVVRUT04gPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfVEVYVCA9IDB4MWVkMzZmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9EUk9QRE9XTiA9IDB4ZmZmMDAwO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0ZHX0NPTE9SID0gMHgwMDAwMDA7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0NPTE9SID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fSElHSExJR0hUX0NPTE9SID0gMHhmYTMxNzM7XHJcbmV4cG9ydCBjb25zdCBTTElERVJfQkcgPSAweDQ0NDQ0NDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfQkcgPSAweEYwRjBGMDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfSElHSExJR0hUX0JHID0gMHhGRkZGRkY7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sb3JpemVHZW9tZXRyeSggZ2VvbWV0cnksIGNvbG9yICl7XHJcbiAgY29uc3QgY29sID0gbmV3IFRIUkVFLkNvbG9yKGNvbG9yKTsgXHJcbiAgbGV0IGMgPSBnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ2NvbG9yJyk7XHJcbiAgbGV0IGE7XHJcbiAgaWYgKCFjKSB7XHJcbiAgICBhID0gbmV3IEZsb2F0MzJBcnJheShnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXkubGVuZ3RoKS5maWxsKDAuNSk7XHJcbiAgICBjID0gZ2VvbWV0cnkuc2V0QXR0cmlidXRlKCdjb2xvcicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoYSwgMykpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBhID0gYy5hcnJheTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSs9Mykge1xyXG4gICAgYVtpXSA9IGNvbC5yO1xyXG4gICAgYVtpKzFdID0gY29sLmc7XHJcbiAgICBhW2krMl0gPSBjb2wuYjtcclxuICB9XHJcbiAgYy5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIC8vIGdlb21ldHJ5LmZhY2VzLmZvckVhY2goIGZ1bmN0aW9uKGZhY2Upe1xyXG4gIC8vICAgZmFjZS5jb2xvci5zZXRIZXgoY29sb3IpO1xyXG4gIC8vIH0pO1xyXG4gIC8vIGdlb21ldHJ5LmNvbG9yc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIHJldHVybiBnZW9tZXRyeTtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsLCB7Y3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gXCIuL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVEcm9wZG93bigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICBvcHRpb25zID0gW10sXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgb3BlbjogZmFsc2UsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgRFJPUERPV05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9ERVBUSCA9IGRlcHRoO1xyXG4gIGNvbnN0IERST1BET1dOX09QVElPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOICogMS4yO1xyXG4gIGNvbnN0IERST1BET1dOX01BUkdJTiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAtMC40O1xyXG4gIGNvbnN0IE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZHJvcGRvd25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIC8vYWxsb3cgZm9yIHByb2dyYW1tYXRpYyBzZXQuIEFQSSBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgc3RhYmxlLlxyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZU9iamVjdCA9IG9iamVjdDtcclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VQcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7XHJcbiAgZ3JvdXAudXNlckRhdGEuc2V0VmFsdWUgPSB2ID0+IHtcclxuICAgIGlmIChvcHRpb25zLmluZGV4T2YodikgPT09IC0xKSB7XHJcbiAgICAgIC8vSSBjb3VsZCBjb25zaWRlciBhbm5vdGF0aW5nIEdVSSBpdHNlbGYgd2l0aCBlcnJvciBsYWJlbHMuLi5cclxuICAgICAgY29uc29sZS53YXJuKGBkYXQuR1VJVlI6IFVua25vd24gb3B0aW9uIFwiJHt2fVwiIGZvciBkcm9wZG93biBcIiR7cHJvcGVydHlOYW1lfVwiLlxcblZhbGlkIG9wdGlvbnM6IFske29wdGlvbnMuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gdjtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Iob2JqZWN0W3Byb3BlcnR5TmFtZV0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICBncm91cC5oaXRzY2FuID0gWyBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBtb2RhbERyb3Bkb3duID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgbW9kYWxEcm9wZG93bi52aXNpYmxlID0gZmFsc2U7XHJcbiAgbW9kYWxEcm9wZG93bi5oaXRzY2FuID0gW107XHJcbiAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbnMgPSBbXTtcclxuICBjb25zdCBvcHRpb25MYWJlbHMgPSBbXTtcclxuXHJcbiAgLy8gIGZpbmQgYWN0dWFsbHkgd2hpY2ggbGFiZWwgaXMgc2VsZWN0ZWRcclxuICBjb25zdCBpbml0aWFsTGFiZWwgPSBmaW5kTGFiZWxGcm9tUHJvcCgpO1xyXG5cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGZpbmRMYWJlbEZyb21Qcm9wKCl7XHJcbiAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgIHJldHVybiBvcHRpb25zLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbk5hbWUgPT09IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMob3B0aW9ucykuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb2JqZWN0W3Byb3BlcnR5TmFtZV0gPT09IG9wdGlvbnNbIG9wdGlvbk5hbWUgXTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVPcHRpb24oIGxhYmVsVGV4dCwgaXNPcHRpb24gKXtcclxuICAgIC8vVE9ETzogdHJ1bmNhdGUgbG9uZyBsYWJlbFRleHQsIG1heWJlIHNob3cgZnVsbCB2ZXJzaW9uIHdoZW4gaG92ZXJpbmcuXHJcbiAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZVRleHRMYWJlbChcclxuICAgICAgdGV4dENyZWF0b3IsIGxhYmVsVGV4dCxcclxuICAgICAgLy9jaGVjayB3aWR0aCB2YWx1ZS4uLlxyXG4gICAgICBEUk9QRE9XTl9XSURUSCwgZGVwdGgsXHJcbiAgICAgIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SLFxyXG4gICAgICAwLjg2NlxyXG4gICAgKTtcclxuICAgIGxhYmVsLmJhY2suZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbC5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuXHJcbiAgICBpZiAoaXNPcHRpb24pIG1vZGFsRHJvcGRvd24uaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBlbHNlIGdyb3VwLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBsYWJlbC5iYWNrICk7XHJcbiAgICBsYWJlbEludGVyYWN0aW9uLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMucHVzaCggbGFiZWxJbnRlcmFjdGlvbiApO1xyXG4gICAgb3B0aW9uTGFiZWxzLnB1c2goIGxhYmVsICk7XHJcblxyXG5cclxuICAgIGlmKCBpc09wdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggbGFiZWxUZXh0ICk7XHJcblxyXG4gICAgICAgIGxldCBwcm9wZXJ0eUNoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBvbkNoYW5nZWRDQiAmJiBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgIG9uQ2hhbmdlZENCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggb25DaG9vc2VDQiApe1xyXG4gICAgICAgICAgb25DaG9vc2VDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIGlmKCBzdGF0ZS5vcGVuID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgb3Blbk9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGxhYmVsLmlzT3B0aW9uID0gaXNPcHRpb247XHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjb2xsYXBzZU9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5jbGVhck1vZGFsRWRpdG9yKCk7IC8vc2hvdWxkIHdlIGNoZWNrIGlmIGl0IHdhc24ndCBzZXQgdG8gc29tZXRoaW5nIGVsc2U/P1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3Blbk9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSB0cnVlO1xyXG4gICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKG1vZGFsRHJvcGRvd24pO1xyXG4gICAgLy9yZXR1cm47XHJcbiAgICAvL2xhYmVsLmlzT3B0aW9uIHNlZW1zIG1vc3RseSByZWR1bmRhbnQuXHJcbiAgICAvL2xhYmVscyAmIGJhY2tzIHNob3VsZCBiZSBhZGRlZCB0byBhIGdyb3VwIHRvIGJlIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIFxyXG4gICAgLy9tYWtpbmcgZXZlcnl0aGluZyB2aXNpYmxlIC8gaW52aXNpYmxlIHdpdGggb25lIHByb3BlcnR5XHJcbiAgICAvLyhuYiwgZXZlbiB0aG91Z2ggdGhleSBhcmUgbm93IGluIGEgZ3JvdXAgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgd2Ugc3RpbGwgbmVlZCB0byBzZXQgdmlzaWJsZS4uLlxyXG4gICAgLy9zZWUgY29tbWVudCBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSlcclxuICAgIG9wdGlvbkxhYmVscy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWwgKXtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgbGFiZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgbGFiZWwuYmFjay52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAgYmFzZSBvcHRpb25cclxuICBjb25zdCBzZWxlY3RlZExhYmVsID0gY3JlYXRlT3B0aW9uKCBpbml0aWFsTGFiZWwgfHwgJyAnLCBmYWxzZSApO1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICBjb25zdCBkb3duQXJyb3cgPSBHcmFwaGljLmRvd25BcnJvdygpO1xyXG4gIC8vIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIERST1BET1dOX1dJRFRIIC0gMC4wNCwgMCwgZGVwdGggKiAxLjAxICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gY29uZmlndXJlTGFiZWxQb3NpdGlvbiggbGFiZWwsIGluZGV4ICl7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi55ID0gLURST1BET1dOX01BUkdJTiAtIChpbmRleCVNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTisxKSAqICggRFJPUERPV05fT1BUSU9OX0hFSUdIVCApO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueCArPSBEUk9QRE9XTl9XSURUSCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTik7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcHRpb25Ub0xhYmVsKCBvcHRpb25OYW1lLCBpbmRleCApe1xyXG4gICAgY29uc3Qgb3B0aW9uTGFiZWwgPSBjcmVhdGVPcHRpb24oIG9wdGlvbk5hbWUsIHRydWUgKTtcclxuICAgIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIG9wdGlvbkxhYmVsLCBpbmRleCApO1xyXG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQobW9kYWxEcm9wZG93bik7XHJcbiAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoLi4ub3B0aW9ucy5tYXAob3B0aW9uVG9MYWJlbCkpO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoIC4uLk9iamVjdC5rZXlzKG9wdGlvbnMpLm1hcCggb3B0aW9uVG9MYWJlbCApICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29sbGFwc2VPcHRpb25zKCk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0RST1BET1dOICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcblxyXG4gIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggRFJPUERPV05fV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgRFJPUERPV05fSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUsIERST1BET1dOX0RFUFRILCB0cnVlICk7XHJcbiAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBjb250cm9sbGVySUQsIHNlbGVjdGVkTGFiZWwsIGJvcmRlckJveCApO1xyXG5cclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGludGVyYWN0aW9uLCBpbmRleCApe1xyXG4gICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbkxhYmVsc1sgaW5kZXggXTtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlOyAvL2FzIG9mIHRoaXMgd3JpdGluZywgdGhpcyBpcyBiZWxpZXZlZCB0byBiZSByZWxpYWJsZSwgYnV0IGJld2FyZSBkcmFnb25zLCBmdXR1cmUgcmVhZGVyLlxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLnRpcE9iaikge1xyXG4gICAgICAvLyBpZiAobGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSkge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGdyb3VwLnVzZXJEYXRhLnRpcCk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgc2V0VmlzaWJpbGl0eShwYW5lbCwgZ3JvdXAudXNlckRhdGEudGlwT2JqLCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKTtcclxuICAgIH1cclxuICAgIGlmKCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpIHx8IHN0YXRlLm9wZW4gKXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuICBsZXQgb25DaG9vc2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5vbkNob29zZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaG9vc2VDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGZpbmRMYWJlbEZyb21Qcm9wKCkgKTtcclxuICAgIH1cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbEludGVyYWN0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICBjb25zdCBvYmogPSBncm91cDtcclxuICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgIC8vbmIsIG9iai5zcGFjaW5nIG1heSBiZSB1bmRlZmluZWQsIGJ1dCBzaG91bGQgbm93IGhhdmUgc2Vuc2libGUgZGVmYXVsdC5cclxuICAgIG9iai51c2VyRGF0YS50aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgIC8vLy8tLS0gc2VlIGxhYmVsSW50ZXJhY3Rpb25zWzBdIGFib3ZlIGZvciBoYW5kbGluZyB1cGRhdGUuLi5cclxuICB9XHJcbiAgZ3JvdXAuZ2V0VG9vbFRpcCA9ICgpID0+IGdyb3VwLnVzZXJEYXRhLnRpcDtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlVG9vbFRpcCB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciwgc2V0Qm94RnJvbU9iamVjdCwgc2V0VmlzaWJpbGl0eSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBGT0xERVJfV0lEVEggfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG4vL0lmIHlvdSdyZSBsb29raW5nIGZvciBtYWluIGNyZWF0ZUZvbGRlciBmdW5jdGlvbiwgaXQncyBmdXJ0aGVyIGJlbG93Li4uXHJcblxyXG4vKipcclxuICogTm90IGVudGlyZWx5IHN1cmUgYWJvdXQgc3RhcnRpbmcgdG8gYWRkIHRoaXMga2luZCBvZiBnbG9iYWwgc3RhdGUgbWFuYWFnZW1lbnQgaGVyZS4uLlxyXG4gKiBUaGlzIGlzIGZvciB6LW9yZGVyIGluIDJkIG9ydGhvZ3JhcGhpYyBtb2RlLCBhbmQgbWF5YmUgc29tZSBvdGhlciB0aGluZ3Mgb25lIGRheS5cclxuICovXHJcbmNvbnN0IHRvcEZvbGRlclN0YWNrID0gW107XHJcblxyXG5jb25zdCBzY3JhdGNoRm9sZGVyQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaENhbUJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hTaXplID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpIHtcclxuICBjb25zdCBjYW0gPSB0b3BGb2xkZXJTdGFja1swXS51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICBpZiAoIWNhbSB8fCB0b3BGb2xkZXJTdGFjay5sZW5ndGggPD0gMSkgcmV0dXJuO1xyXG4gIC8vY2FtQm94U2V0dXAoY2FtKTtcclxuICBjb25zdCB0ZnMgPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoeCA9PiB4LnZpc2libGUpO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRmcy5sZW5ndGg7XHJcbiAgY29uc3QgenMgPSB0ZnMubWFwKGYgPT4gZi5wb3NpdGlvbi56KS5zb3J0KChhLGIpPT5hLWIpO1xyXG4gIHpzWy0xXSA9IC05OTk5OyAvLyBJIHN1cHBvc2UgdGhpcyBpcyB0byBkZWFsIHdpdGggYWNjZXNzaW5nIHpzW2ktMV0gYmVsb3cgwq9cXF8o44OEKV8vwq9cclxuICB6cy5mb3JFYWNoKCAoeixpKSA9PiB6c1tpXSA9IE1hdGgubWF4KHpzW2ldLCB6c1tpLTFdICsgMTAqTGF5b3V0LlBBTkVMX0RFUFRIKSk7IC8vIGluIGNhc2Ugb2YgZXF1YWxzXHJcbiAgXHJcbiAgdGZzLmZvckVhY2goKGYsIGkpID0+IHtcclxuICAgIC8vbGV0IHogPSAtMC45KmZhciArIGkqMTAqTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG4gICAgY29uc3QgeiA9IHpzW2ldO1xyXG4gICAgaWYgKHogIT09IGYucG9zaXRpb24ueikge1xyXG4gICAgICBmLnBvc2l0aW9uLnogPSB6O1xyXG4gICAgICBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICBmLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKHRmc1tuLTFdLnBvc2l0aW9uLnogPj0gbmVhciAtIExheW91dC5QQU5FTF9ERVBUSCkge1xyXG4gICAgY29uc29sZS5sb2coXCJHVUlWUiBXYXJuaW5nOiBsaWtlbHkgcHJvYmxlbSB3aXRoIHotb3JkZXIgaW4gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0XCIpO1xyXG4gIH1cclxuICAvL2NvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lICsgJ1xcdDogJyArIGYucG9zaXRpb24ueikuam9pbignXFxuJyl9XWApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYW1Cb3hTZXR1cChjYW0pIHtcclxuICBpZiAoIWNhbS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkgcmV0dXJuO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRvcEZvbGRlclN0YWNrLmxlbmd0aDtcclxuICBjb25zdCBsID0gY2FtLmxlZnQsIHIgPSBjYW0ucmlnaHQsIHQgPSBjYW0udG9wLCBiID0gY2FtLmJvdHRvbTtcclxuICBjb25zdCB6ID0gY2FtLnBvc2l0aW9uLno7IC8vbm90IHN0cmljdGx5IHJpZ2h0Li4uXHJcbiAgc2NyYXRjaENhbUJveC5taW4uc2V0KGwsIGIsIC1mYXIgKyB6KTtcclxuICBzY3JhdGNoQ2FtQm94Lm1heC5zZXQociwgdCwgLW5lYXIgKyB6KTtcclxuICByZXR1cm4gc2NyYXRjaENhbUJveDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRm9sZGVyKHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBuYW1lLFxyXG4gIGd1aUFkZCxcclxuICBndWlSZW1vdmUsXHJcbiAgYWRkQ29udHJvbGxlckZ1bmNzLFxyXG4gIGdsb2JhbENvbnRyb2xsZXJzXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCB3aWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgY29uc3QgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEg7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgY29sbGFwc2VkOiBmYWxzZSxcclxuICAgIHByZXZpb3VzUGFyZW50OiB1bmRlZmluZWRcclxuICB9O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImZvbGRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke25hbWV9XWA7XHJcblxyXG4gIGNvbnN0IGNvbGxhcHNlR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5hZGQoIGNvbGxhcHNlR3JvdXAgKTtcclxuXHJcbiAgdmFyIGlzQWNjb3JkaW9uID0gZmFsc2U7XHJcbiAgLyoqIFdoZW4gdHJ1ZSwgd2lsbCBrZWVwIG9ubHkgb25lIGNoaWxkIGZvbGRlciBvZiB0aGlzIGZvbGRlciBvcGVuIGF0IGEgdGltZS5cclxuICAgKiBTaWJsaW5ncyBhdXRvbWF0aWNhbGx5IGNsb3NlLlxyXG4gICAqL1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdhY2NvcmRpb24nLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzQWNjb3JkaW9uO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKCBuZXdWYWx1ZSAmJiAhaXNBY2NvcmRpb24gKSBncm91cC5ndWlDaGlsZHJlbi5maWx0ZXIoIGM9PmMuaXNGb2xkZXIgKS5tYXAoIGM9PmMuY2xvc2UoKSApO1xyXG4gICAgICBpc0FjY29yZGlvbiA9IG5ld1ZhbHVlO1xyXG4gICAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIC8vZmxhZyB0aGUgbmVlZCBmb3IgcGVyZm9ybWluZyBsYXlvdXQgb2YgdGhlIGZvbGRlciBoaWVyYXJjaHkgaW4gd2hpY2ggdGhpcyBpcyBjb250YWluZWQuXHJcbiAgZ3JvdXAucmVxdWVzdExheW91dCA9ICgpID0+IHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICh0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcykge1xyXG4gICAgICBjb25zb2xlLmxvZyhgcmVxdWVzdGVkIGxheW91dCBvZiBmb2xkZXIgJHtncm91cC5mb2xkZXJOYW1lfSB3aGlsZSBsYXlvdXQgYWxyZWFkeSBpbiBwcm9ncmVzcy4uLmApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vdG9wRm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL3Nob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIGluZGV4LmpzIHVwZGF0ZSg/KSBmb3IgZWFjaCB0b3BGb2xkZXIsIHRoZW4gZnJvbSB3aXRoaW4gcGVyZm9ybUxheW91dCgpIGZvciBlYWNoIGNoaWxkIGZvbGRlclxyXG4gIGdyb3VwLnBlcmZvcm1MYXlvdXQgPSBwZXJmb3JtTGF5b3V0O1xyXG5cclxuICBjb25zdCBzdHJhaWdodFJvdGF0aW9uID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcclxuICAvL3Byb3ZpZGUgYXJndW1lbnRzIGZvciBob3cgY29uc3RyYWluZWQgdG8gYmUsIGFuZCByZS11c2Ugc2FtZSBmdW5jdGlvbiBib3RoIG9uIGRldGFjaCBhbmQgZWxzZXdoZXJlP1xyXG4gIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uID0gZnVuY3Rpb24odGhyZXNoPTAuMDEpIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzO1xyXG4gICAgaWYgKCFmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSByZXR1cm47XHJcbiAgICAvL2Fsd2F5cyBmb3JjZSByb3RhdGlvbiBzdHJhaWdodCBmb3J3YXJkLi4uXHJcbiAgICBmLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oc3RyYWlnaHRSb3RhdGlvbik7XHJcblxyXG4gICAgLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbiAgICAvL21heWJlIEkgY291bGQgdXNlIGEgQm94MiBhbnl3YXkgc2luY2UgM2QgbWlnaHQganVzdCBjb25mdXNlIHRoaW5ncy5cclxuICAgIGNvbnN0IGJveCA9IHNldEJveEZyb21PYmplY3Qoc2NyYXRjaEZvbGRlckJveCwgZik7XHJcbiAgICBjb25zdCBib3hXID0gYm94Lm1heC54IC0gYm94Lm1pbi54LCBib3hIID0gYm94Lm1heC55LWJveC5tYXgueTtcclxuICAgIFxyXG4gICAgY29uc3QgY2FtID0gZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICAgIGNvbnN0IGNhbUJveCA9IGNhbUJveFNldHVwKGNhbSk7IC8vYml0IHdhc3RlZnVsIHRvIGNhbGwgdGhpcyBoZXJlLCBidXQgaW5zaWduaWZpY2FudC5cclxuICAgIC8vcmVhbGx5LCBJIHdhbnQgdG8ga25vdyBpZiBpdCdzICdtb3N0bHknIGludmlzaWJsZS5cclxuICAgIC8vVXNpbmcgdHdvIGJveGVzLCByYXRoZXIgdGhhbiBmcnVzdHVtLnNldEZyb21NYXRyaXgoIG1hdC5tdWx0aXBseU1hdHJpY2VzKCBjYW0ucHJvamVjdGlvbk1hdHJpeCwgY2FtLm1hdHJpeFdvcmxkSW52ZXJzZSApICk7XHJcbiAgICAvLyhmcnVzdHVtIGlzIHVubmVjZXNzYXJ5ICpjb3VnaCppZiB3ZSBhc3N1bWUgb3J0aG9ncmFwaGljIHBlcnNwZWN0aXZlLCBubyBjYW1lcmEgdHJhbnNmb3JtICYgYXJlIGdlbmVyYWxseSBsYXggYWJvdXQgeiopXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSBib3guaW50ZXJzZWN0KGNhbUJveCk7IC8vY2FyZWZ1bCBvZiBvcmRlcjsgaW50ZXJzZWN0KCkgbXV0YXRlc1xyXG4gICAgLy8oWFhYOiBzdHJpY3RseSBzcGVha2luZywgaWRlYWxseSBJIHdvdWxkIHRha2UgY2FtZXJhIG1hdHJpeFdvcmxkIGludG8gYWNjb3VudCBpZiBJIHdhbnQgdG8gYmUgcHJvcGVyKVxyXG4gICAgLy8obWlnaHQganVzdCBtYWtlIGxvZyBhIHdhcm5pbmcgaWYgaXQncyBzZXQgaG93IEkgZG9uJ3QgZXhwZWN0IGl0LCBidXQgcHJlZmVyIG5vdCB0byBsZWF2ZSB0cmFwcy4pXHJcbiAgICBcclxuICAgIC8vbG9vayBhdCBkaW1lbnNpb25zIG9mIGludGVyc2VjdGlvbiBhbmQgZm9yY2UgaW53YXJkcyBpZiBuZWNlc3NhcnkuLi5cclxuICAgIGNvbnN0IGludGVyc2VjdGlvblNpemUgPSBpbnRlcnNlY3Rpb24uZ2V0U2l6ZShzY3JhdGNoU2l6ZSk7XHJcbiAgICBjb25zdCBzY3JlZW5XID0gY2FtLnJpZ2h0IC0gY2FtLmxlZnQsIHNjcmVlbkggPSBjYW0udG9wIC0gY2FtLmJvdHRvbTtcclxuICAgIC8vd29yayBpbiB1bml0cyBhcyBmcmFjdGlvbiBvZiBib3ggd2lkdGggKGFsdGhvdWdoIHRoYXQncyBub3QgYSBncmVhdCBpZGVhIHdpdGggbXVsdGktY29sdW1uIGZvbGRlcnMpXHJcbiAgICBpbnRlcnNlY3Rpb25TaXplLnggLz0gYm94VzsgaW50ZXJzZWN0aW9uU2l6ZS55IC89IGJveFc7XHJcbiAgICBsZXQgbmVlZHNVcGRhdGUgPSBmYWxzZTtcclxuICAgIC8vY29uc29sZS5sb2coYCR7Zi5mb2xkZXJOYW1lfTogJHtKU09OLnN0cmluZ2lmeShpbnRlcnNlY3Rpb25TaXplKX0sIHRocmVzaDogJHt0aHJlc2h9YCk7XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS54IDwgdGhyZXNoKSB7IC8vVE9ETzogcGFyYW1hdGVyaXNlIC8gbm9uLW1hZ2ljLW51bWJlclxyXG4gICAgICAvL1RPRE8gd29yayBvdXQgd2hpY2ggc2lkZSB3ZSdyZSBvbiwgbW92ZSBieSBvYmplY3Qgd2lkdGguLi5cclxuICAgICAgZi5wb3NpdGlvbi54ID0gY2FtLmxlZnQgKyBzY3JlZW5XLzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnkgPCB0aHJlc2gpIHtcclxuICAgICAgZi5wb3NpdGlvbi55ID0gY2FtLmJvdHRvbSArIHNjcmVlbkgvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKG5lZWRzVXBkYXRlKSBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaXNDb2xsYXBzZWQgPSAoKSA9PiB7IHJldHVybiBzdGF0ZS5jb2xsYXBzZWQgfVxyXG4gIFxyXG4gIC8vdXNlZnVsIHRvIGhhdmUgYWNjZXNzIHRvIHRoaXMgYXMgd2VsbC4gVXNpbmcgaW4gcmVtb3ZlIGltcGxlbWVudGF0aW9uXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnZ3VpQ2hpbGRyZW4nLCB7XHJcbiAgICAvL3BlcmhhcHMgbW9kYWxFZGl0b3Igc2hvdWxkIGFsc28gY291bnQgYXMgYSBtZW1iZXIgb2YgdGhpcy4uLlxyXG4gICAgLy9jdXJyZW50bHkgY2FuJ3Qgc2VlIGFueXRoaW5nIGluIGltcGxlbWVudGF0aW9uIHRoYXQgd291bGQgcmVxdWlyZSB0aGF0XHJcbiAgICAvLy0tIGFkZGluZyBoZWFkZXJJdGVtcyB0aG91Z2gsIHNvIHRoZXknbGwgZ2V0IHBpY2tlZCB1cCBieSByZW1vdmUoKVxyXG4gICAgLy8gLSBtYXliZSBzYW1lIHNob3VsZCBhcHBseSB0byBtb2RhbEVkaXRvclxyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBbIC4uLmNvbGxhcHNlR3JvdXAuY2hpbGRyZW4sIC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIF0gfVxyXG4gIH0pO1xyXG4gIC8vIHJldHVybnMgdHJ1ZSBpZiBhbGwgb2YgdGhlIHN1cHBsaWVkIGFyZ3MgYXJlIG1lbWJlcnMgb2YgdGhpcyBmb2xkZXJcclxuICBncm91cC5oYXNDaGlsZCA9IGZ1bmN0aW9uICggLi4uYXJncyApe1xyXG4gICAgcmV0dXJuICFhcmdzLmluY2x1ZGVzKChvYmopID0+IHsgcmV0dXJuIGdyb3VwLmd1aUNoaWxkcmVuLmluZGV4T2Yob2JqKSA9PT0gLTF9KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmZvbGRlck5hbWUgPSBuYW1lOyAvL2ZvciBkZWJ1Z2dpbmdcclxuICBcclxuICAvLyAgWWVhaC4gR3Jvc3MuXHJcbiAgY29uc3QgYWRkT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkO1xyXG4gIC8vYXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyB0aGlzIHRvIGJlaGF2ZSBsaWtlIGEgcmVndWxhciBUSFJFRS5Hcm91cCwgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBvZiByZW1vdmUgc2hvdWxkbid0IGh1cnRcclxuICBjb25zdCByZW1vdmVPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmU7IFxyXG5cclxuICBmdW5jdGlvbiBhZGRJbXBsKCBvICl7XHJcbiAgICAvLyBJIGNvdWxkIGNoYW5nZSB0aGlzIGZ1bmN0aW9uIGFzIHBhcnQgb2YgYSByZWZhY3RvciB0byBwbGFjZSBldmVyeXRoaW5nIGF0IHRvcEZvbGRlciBsZXZlbC4uLlxyXG4gICAgLy8gaXMgdGhhdCBhIGdvb2QgaWRlYSwgb3IgYSBiYWQgaWRlYT9cclxuICAgIGFkZE9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHJlbW92ZUltcGwoIG8gKXtcclxuICAgIHJlbW92ZU9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG5cclxuICAvL2FkZEltcGwoIGNvbGxhcHNlR3JvdXAgKTsgLy9yZWR1bmRhbnQuXHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgYWRkSW1wbCggcGFuZWwgKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBuYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAxLjU7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsICk7XHJcblxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IExheW91dC5jcmVhdGVEb3duQXJyb3coKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCAweGZmZmZmZiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIDAuMDUsIDAsIGRlcHRoICAqIDEuMDEgKTtcclxuICBwYW5lbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuICBjb25zdCBncmFiYmVyID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9HUkFCX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBncmFiYmVyLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODY7IC8vWFhYOiBtYWdpYyBudW1iZXJcclxuICBncmFiYmVyLm5hbWUgPSAnZ3JhYmJlcic7XHJcbiAgYWRkSW1wbCggZ3JhYmJlciApO1xyXG5cclxuICBjb25zdCBncmFiQmFyID0gR3JhcGhpYy5ncmFiQmFyKCk7XHJcbiAgZ3JhYkJhci5wb3NpdGlvbi5zZXQoIHdpZHRoICogMC41LCAwLCBkZXB0aCAqIDEuMDAxICk7XHJcbiAgZ3JhYmJlci5hZGQoIGdyYWJCYXIgKTtcclxuICBncm91cC5pc0ZvbGRlciA9IHRydWU7XHJcbiAgZ3JvdXAuaGlkZUdyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gZmFsc2UgfTtcclxuICBncm91cC5zaG93R3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSB0cnVlIH07XHJcbiAgZ3JvdXAuaGlkZUhlYWRlciA9IGZ1bmN0aW9uKCkgeyBcclxuICAgIGdyb3VwLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAvL2Rlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgfTtcclxuICBncm91cC5zaG93SGVhZGVyID0gKCkgPT4ge1xyXG4gICAgLy9ncmFiYmVyLnZpc2libGUgPSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL1RPRE86IGludGVyZmFjZSBmb3IgYWRkaW5nIHRoaW5ncyB0byB0aGlzLi4uIE5PVCAnc2hvd0luRm9sZGVySGVhZGVyJyBtZXRob2QgLyBwcm9wZXJ0eSBvbiBsaW5lYXIgaXRlbXMuLi5cclxuICBjb25zdCBoZWFkZXJJdGVtcyA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHBhbmVsLmFkZChoZWFkZXJJdGVtcyk7XHJcbiAgLy90aGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byBtYWtlIG9iaiBiZWhhdmUgYXMgY29udHJvbGxlciBsYXllZCBvdXQgaW4gaGVhZGVySXRlbXMsXHJcbiAgLy9iYXNlZCBvbiBzb21lIGFzc3VtcHRpb25zIGFib3V0IG9iaiB0aGF0IG1heSBiZSB0cnVlIGF0IHRpbWUgb2Ygd3JpdGluZy4uLlxyXG4gIC8vYnV0IGFyZSBwZW5kaW5nIG1vcmUgcmlnb3JvdXMgc3BlY2lmaWNhdGlvbiAvIHJlZmFjdG9yaW5nIGV0Yy5cclxuICBncm91cC5hZGRIZWFkZXJJdGVtID0gZnVuY3Rpb24ob2JqKXtcclxuICAgIGhlYWRlckl0ZW1zLmFkZChvYmopO1xyXG4gICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgb2JqLmlzSGVhZGVyT2JqZWN0ID0gdHJ1ZTtcclxuXHJcbiAgICAvL2Fsc28gbmVlZCB0byBhZGQgdG8gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3QgZXRjLiBOQjo6IG1ha2Ugc3VyZSB0aGF0IHRoZXkgd2lsbCBnZXQgcmVtb3ZlZCBhcyB3ZWxsXHJcbiAgICAvLy0tLSB0aGlzIGdlbmVyaWMgaW50ZXJhY3Rpb24udXBkYXRlIGRvZXNuJ3QgbWFrZSBsaXN0ZW4oKSB3b3JrIHByb3Blcmx5LlxyXG4gICAgaWYgKCFvYmoudXBkYXRlQ29udHJvbCkgb2JqLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4gb2JqLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgb2JqLmhpdHNjYW4gPSBbIG9iaiBdOyAvL2hhY2t5IGhhY2t5XHJcbiAgICBnbG9iYWxDb250cm9sbGVycy5wdXNoKG9iaik7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogMHg4ODg4ODgsIHRyYW5zcGFyZW50OiB0cnVlfSk7XHJcbiAgY29uc3QgaCA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44O1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvblJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIGgsIGgsIExheW91dC5CVVRUT05fREVQVEgqMiApO1xyXG4gIC8vc29tZXdoYXQgYmFja3dhcmRzIHdheSBvZiBnZXR0aW5nIHRleHR1cmVzLi4uIFRPRE8gbWF5YmUgY2hhbmdlIChhbG9uZyB3aXRoIG90aGVyIHN0eWxlIGNvbnNpc3RlbmN5IHR5cGUgc3R1ZmYpXHJcbiAgY29uc3QgZG9ja1RleHR1cmUgPSBHcmFwaGljLmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgY29uc3QgdW5kb2NrVGV4dHVyZSA9IEdyYXBoaWMudW5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uID0gbmV3IFRIUkVFLk1lc2goICBkZXRhY2hCdXR0b25SZWN0LCBkZXRhY2hCdXR0b25NYXRlcmlhbCApO1xyXG4gIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gZmFsc2U7XHJcbiAgZGV0YWNoQnV0dG9uLnBvc2l0aW9uLnggPSBMYXlvdXQuRk9MREVSX1dJRFRIIC0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihkZXRhY2hCdXR0b24pO1xyXG4gIGRldGFjaEJ1dHRvbi5pbnRlcmFjdGlvbiA9IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uO1xyXG4gIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHtcclxuICAgICAgZ3JvdXAucmVhdHRhY2goKTtcclxuICAgIH0gZWxzZSBncm91cC5kZXRhY2goKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuICAvL2hlYWRlckl0ZW1zLmFkZChkZXRhY2hCdXR0b24pO1xyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0oZGV0YWNoQnV0dG9uKTtcclxuXHJcbiAgbGV0IGlzRGV0YWNoYWJsZSA9IGZhbHNlO1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdkZXRhY2hhYmxlJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0RldGFjaGFibGU7XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAobmV3VmFsdWUgPT09IGlzRGV0YWNoYWJsZSkgcmV0dXJuO1xyXG4gICAgICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgICBpc0RldGFjaGFibGUgPSBuZXdWYWx1ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGdyb3VwLmFkZCA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBjb25zdCBuZXdDb250cm9sbGVyID0gZ3VpQWRkKCAuLi5hcmdzICk7XHJcblxyXG4gICAgaWYoIG5ld0NvbnRyb2xsZXIgKXtcclxuICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggbmV3Q29udHJvbGxlciApO1xyXG4gICAgICByZXR1cm4gbmV3Q29udHJvbGxlcjtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgU29tZSBjb250cm9sbGVycyBtYXkgYnJpbmcgdXAgc3ViLUdVSXMgd2hpY2ggaGF2ZSB0aGUgcG90ZW50aWFsXHJcbiAgICB0byBvdmVybGFwIC8gY2xhc2guICBUaGlzIGVuc3VyZXMgb25seSBvbmUgaXMgcHJlc2VudCBhdCBhIHRpbWUuXHJcbiAgKi9cclxuICBncm91cC5zZXRNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKGUpe1xyXG4gICAgLy9UaGlzIGNvdWxkIGdvIHdyb25nIGlmIGZvbGRlciBoaWVyYXJjaHkgY2hhbmdlcyBzaWduaWZpY2FudGx5LlxyXG4gICAgLy9TaG91bGQgYmUgZ29vZCBlbm91Z2ggZm9yIHJvY2snbidyb2xsIChmYW1vdXMgbGFzdCB3b3JkcykuXHJcbiAgICAvL0kgY291bGQgbWFrZSBpdCBzbyB0aGF0IG9ubHkgb25lIG9mIHRoZXNlIHRoaW5ncyB3YXMgZXZlciB2aXNpYmxlXHJcbiAgICAvL2Fjcm9zcyB0aGUgZW50aXJlIHN5c3RlbS4gIFRoYXQgc2hvdWxkIGJlIGVhc2llciB0byBtYWtlIHJvYnVzdCwgYW55d2F5Li4uXHJcbiAgICAvL2FuZCBzYXZlcyBoZWFkYWNoZXMgZG93biB0aGUgbGluZS5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBlO1xyXG4gICAgaWYgKCFlKSByZXR1cm47XHJcbiAgICBlLnZpc2libGUgPSB0cnVlO1xyXG4gICAgaWYgKGUucGVyZm9ybUxheW91dCkgZS5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICBmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IHRydWU7XHJcbiAgICAvL2FkZCBhIGZsYWcgdG8gYWxsIGNoaWxkcmVuIHJlY3Vyc2l2ZWx5IHNvIHRoYXQgaW50ZXJhY3Rpb24gc3lzdGVtIGNhbiBpZGVudGlmeSB0aGVtIGFzIGJlbG9uZ2luZyB0byBhIG1vZGFsIGVkaXRvclxyXG4gICAgLy9UT0RPOiBza2lwIGlmIGFscmVhZHkgZG9uZS4uLlxyXG4gICAgZnVuY3Rpb24gZGVjb3JhdGVDaGlsZHJlbihwYXJlbnQpIHtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgYy51c2VyRGF0YS5wYXJ0T2ZNb2RhbCA9IGU7XHJcbiAgICAgICAgZGVjb3JhdGVDaGlsZHJlbihjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkZWNvcmF0ZUNoaWxkcmVuKGUpO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIGN1cnJlbnQgbW9kYWwgZWRpdG9yIGZyb20gdGhpcyBmb2xkZXJcclxuICAgKiAqKmJ1dCBub3QgaWYgaXQgd2FzIGFkZGVkIGR1cmluZyB0aGUgY3VycmVudCBjb250cm9sbGVyIHVwZGF0ZSxcclxuICAgKiBhcyBpbmRpY2F0ZWQgYnkgYSBmbGFnIHNldCBpbiBzZXRNb2RhbENvbnRyb2xsZXIgYW5kIHJlc2V0IGluIGluZGV4LmpzIHVwZGF0ZSoqXHJcbiAgICovXHJcbiAgZ3JvdXAuY2xlYXJNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKCFmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAvL2ZvbGRlci5zZXRNb2RhbEVkaXRvcihudWxsKTtcclxuICAgICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikge1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG5cclxuICAvKiBcclxuICBSZW1vdmVzIHRoZSBnaXZlbiBjb250cm9sbGVycyBmcm9tIHRoZSBHVUkuICA+Pj5PbmNlIHJlbW92ZWQsIHRoZSBjb250cm9sbGVycyB3aWxsIGVmZmVjdGl2ZWx5IGJlIGludmFsaWQgZm9yIHVzZTw8PFxyXG4gID4+PiBzbyBkaXNwb3NlIG9mIHRoZW0gYXMgd2VsbD8gTmVlZCB0byBiZSBjYXJlZnVsIGFib3V0IHRleHR1cmVzIC8gYW55dGhpbmcgc2hhcmVkLi4uIDw8PFxyXG4gIGFzIHRoZXkgd2lsbCBhbHNvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGRhdC5HVUlWUiBjb250cm9sbGVycy4gIFVzZSAnZGV0YWNoJyBpbnN0ZWFkIGlmIGl0IGlzXHJcbiAgZGVzaXJlZCB0byByZXVzZSBHVUkgZWxlbWVudHMgZWxzZXdoZXJlLlxyXG5cclxuICBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbnZhbGlkLCBpdCB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoaXMgYmVmb3JlIG1ha2luZyBhbnkgY2hhbmdlcywgXHJcbiAgYWJvcnRpbmcgdGhlIHByb2Nlc3MgYW5kIHJldHVybmluZyBmYWxzZSBmcm9tIHRoaXMgbWV0aG9kLlxyXG5cclxuICBOb3RlOiBhcyB3aXRoIGFkZCwgdGhpcyBvdmVyd3JpdGVzIGFuIGV4aXN0aW5nIHByb3BlcnR5IG9mIFRIUkVFLkdyb3VwLlxyXG4gIEFzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgZm9sZGVycyB0byBiZWhhdmUgbGlrZSByZWd1bGFyIFRIUkVFLkdyb3VwcywgdGhhdCBzaG91bGRuJ3QgbWF0dGVyLlxyXG4gICovXHJcbiAgZ3JvdXAucmVtb3ZlID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIC8vZ3VpUmVtb3ZlIGlzIHBhc3NlZCBpbiBmcm9tIGluZGV4LmpzIGFuZCBpcyByZXNwb25zaWJsZSBmb3Igc2FuaXR5IGNoZWNraW5nICYgcmVtb3ZpbmcgZnJvbSBnbG9iYWwgY29udHJvbGxlcnMgbGlzdFxyXG4gICAgY29uc3Qgb2sgPSBndWlSZW1vdmUoIC4uLmFyZ3MgKTsgLy8gYW55IGludmFsaWQgYXJndW1lbnRzIHNob3VsZCBjYXVzZSB0aGlzIHRvIHJldHVybiBmYWxzZSB3aXRoIG5vIHNpZGUtZWZmZWN0c1xyXG4gICAgaWYgKCFvaykgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGNvbnNvbGUuYXNzZXJ0KGdyb3VwLmhhc0NoaWxkKG9iaiksIFwiaW50ZXJuYWwgcHJvYmxlbSB3aXRoIGhvdXNla2VlcGluZyBsb2dpYyBvZiBkYXQuR1VJVlIgZm9sZGVyIG5vdCBjYXVnaHQgYnkgc2FuaXR5IGNoZWNrXCIpO1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgb2JqLnJlbW92ZSggLi4ub2JqLmd1aUNoaWxkcmVuICk7XHJcbiAgICAgIH1cclxuICAgICAgY29sbGFwc2VHcm91cC5yZW1vdmUob2JqKTtcclxuICAgIH0pO1xyXG4gICAgLy9UT0RPOiBkZWZlciBhY3R1YWwgbGF5b3V0IHBlcmZvcm1hbmNlOyBzZXQgYSBmbGFnIGFuZCBtYWtlIHN1cmUgaXQgZ2V0cyBkb25lIGJlZm9yZSBhbnkgcmVuZGVyaW5nIG9yIGhpdC10ZXN0aW5nIGhhcHBlbnMuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL3JhdGhlciB0aGFuIG1ldGhvZCwgZGV0YWNoZWRQYXJlbnQgYmUgYSBwcm9wZXJ0eSB0aGF0IGRvZXMgdGhpcyBzdHVmZiBpbiBzZXR0ZXIuLi5cclxuICAvL2FueXdheSwgYm90aCBhcmUgcmVhbGx5IG1lYW50IGZvciBpbnRlcm5hbCB1c2UsIGFzIGhpbnRlZCBieSBfIGluIG5hbWUuXHJcbiAgZ3JvdXAuX3NldERldGFjaGVkRnJvbSA9IChwYXJlbnQpID0+IHtcclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50ID0gcGFyZW50O1xyXG4gICAgaWYgKHBhcmVudCA9PT0gbnVsbCkge1xyXG4gICAgICBkZXRhY2hCdXR0b24ubWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IGRvY2tUZXh0dXJlO1xyXG4gICAgICBncm91cC5zaG93SGVhZGVyKCk7XHJcbiAgICAgIGdyb3VwLnNob3dHcmFiYmVyKCk7XHJcbiAgICAgIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBEZXRhY2ggYSBjaGlsZCBmb2xkZXIgZnJvbSB0aGlzIGZvbGRlciBoaWVyYXJjaHksIHN1Y2ggdGhhdCBpdCBjYW4gYmUgdXNlZCBlbHNld2hlcmUgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqIFxyXG4gICAqICh3aWxsIG5vdCBiZSB2aXNpYmxlIHVudGlsIGV4cGxpY2l0bHkgYWRkZWQgZWxzZXdoZXJlOyBcclxuICAgKiBjYWxsaW5nIGRldGFjaCgpIGluc3RlYWQgd2lsbCBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGFuZCBpcyBtb3JlIGludGVuZGVkIGZvciB1c2UgaW4gYXBwbGljYXRpb24gY29kZVxyXG4gICAqIHdoaWxlIHRoaXMgbWV0aG9kIGlzIG1vcmUgb2YgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLilcclxuICAgKi9cclxuICBncm91cC5kZXRhY2hDaGlsZCA9IChjaGlsZCkgPT4ge1xyXG4gICAgaWYgKCFjaGlsZC5pc0ZvbGRlciB8fCBjaGlsZC5mb2xkZXIgIT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjaGlsZC5fc2V0RGV0YWNoZWRGcm9tKGdyb3VwKTtcclxuICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKGNoaWxkKTtcclxuICAgIC8vVEhSRUUuT2JqZWN0M0QucHJvdG90eXBlLnJlbW92ZS5jYWxsKGdyb3VwLCBjaGlsZCk7XHJcbiAgICByZW1vdmVJbXBsKGNoaWxkKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDsgLy9vciBjaGlsZD9cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgRGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gaXRzIHBhcmVudCwgYW5kIHJlYXR0YWNoIHRvIHNjZW5lZ3JhcGggYXMgYSBzaWJsaW5nIG9mIHRoZSAndG9wIGxldmVsJyBmb2xkZXIgaW5cclxuICAgIHRoZSBoaWVyYXJjaHkgdGhpcyBwcmV2aW91c2x5IHdhcyBhIG1lbWJlciBvZi5cclxuICAqL1xyXG4gIGdyb3VwLmRldGFjaCA9ICgpID0+IHtcclxuICAgIGlmIChncm91cC5mb2xkZXIgPT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL2F1dG9tYXRpY2FsbHkgYWRkIHRvIFRIUkVFIHBhcmVudCBvZiB0b3AgbGV2ZWwgZm9sZGVyIGFuZCB0cnkgdG8gc2V0IGFwcHJvcHJpYXRlIHNjYWxlIC8gdHJhbnNmb3JtLi4uXHJcbiAgICAvL2lmIHRoYXQgZm9sZGVyIGJlaW5nTW92ZWQgYXQgdGhlIHByZXNlbnQgdGltZSwgdGhlbiBpdCB3aWxsIGhhdmUgYW4gb2xkUGFyZW50IHRvIHdoaWNoIHdlIHNob3VsZCBhdHRhY2ggaW5zdGVhZC5cclxuICAgIC8vLi4uYWx0aG91Z2ggaXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0aGUgZGV0YWNoZWQgZm9sZGVyIHRvIG1vdmUgd2l0aCB0aGUgY29udHJvbGxlciB1bnRpbCBidXR0b24gaXMgcmVsZWFzZWQuLi5cclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGdyb3VwLmZvbGRlci5kZXRhY2hDaGlsZChncm91cCk7XHJcbiAgICBcclxuICAgIC8vYWRkaW5nIHRvIHRvcEZvbGRlci5wYXJlbnQgSUYgQVZBSUxBQkxFLCBub3Qgb2xkUGFyZW50LCBwZW5kaW5nIHdvcmtpbmcgb3V0IHRyYW5zZm9ybSBsYXRlciBpZiBiZWluZ01vdmVkLi4uXHJcbiAgICBjb25zdCBwYXIgPSB0b3BGb2xkZXIucGFyZW50IHx8IGdyb3VwLnBhcmVudDsgXHJcbiAgICBpZiAoIXBhcikgcmV0dXJuOyAvL1NKUFQgY2hhbmdlIGZyb20gQ1N5bnRoLCBub3QgY2FyZWZ1bGx5IHJldmlld2VkIGJ1dCBwcm9iYWJseSByaWdodC5cclxuICAgIHBhci5hZGQoZ3JvdXApO1xyXG4gICAgY29uc3QgbSA9IHRvcEZvbGRlci5tYXRyaXguY2xvbmUoKTtcclxuXHJcbiAgICBncm91cC5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBtLnNldFBvc2l0aW9uKG5ldyBUSFJFRS5WZWN0b3IzKCkpO1xyXG4gICAgY29uc3QgdCA9IG5ldyBUSFJFRS5WZWN0b3IzKExheW91dC5GT0xERVJfV0lEVEgsIDAsIDApLmFwcGx5TWF0cml4NChtKTtcclxuICAgIGdyb3VwLnBvc2l0aW9uLmFkZCh0KTtcclxuICAgIFxyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vZGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gdG9wRm9sZGVyLnBhcmVudCB0aGVuIGF0dGFjaCB0byB0b3BGb2xkZXIub2xkUGFyZW50IHdoaWxlIG1haW50YWluaW5nIG1hdHJpeFdvcmxkXHJcbiAgICAgIC8vLi4uYWN0dWFsbHksIChtYXliZSkgd2Ugd2FudCB0byBkbyB0aGlzIHNjZW5lU2hpZnQgYnVzaW5lc3Mgd2hlbiBiZWluZ01vdmVkIGZpbmlzaGVzLi4uXHJcbiAgICAgIC8vIHB1dCB0aGluZ3MgaW50byBzZW1pRGV0YWNoZWQsIHNvIHRoYXQgd2hlbiBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgdGhleSBjYW4gYmUgc2hpZnRlZC5cclxuICAgICAgLy9vciBtYXliZSB3aGF0IHdlIHJlYWxseSB3YW50IGlzIHRvIGhhdmUgYW4gb3B0aW9uIHRvICdwaW4nIHBhbmVscyB0b2dldGhlciBhbmQgdW5waW4gdGhlbSwgcmF0aGVyIHRoYW4gYXNzdW1lXHJcbiAgICAgIC8vYXR0YWNobWVudCBjaGFuZ2VzIHdoZW4gYnV0dG9uIHJlbGVhc2VkLiAgRm9yIG5vdywgdGhpcyBpcyBub3QgcXVpdGUgd29ya2luZyByaWdodCwgc28uLi5cclxuICAgICAgY29uc3QgZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vd2UgY291bGQganVzdCBkZXRhY2gsIGxlYXZpbmcgdGhlIG9iamVjdCBhcyBkaXJlY3QgZGVzY2VuZGVudCBvZiBzY2VuZSwgYnV0IHRoZXJlIG1heSBiZSByZWFsIHJlYXNvbnMgdG8gc2l0dWF0ZVxyXG4gICAgICAvL3RoZSBHVUkgd2l0aGluIGhpZXJhcmNoeSBzb21laG93IChsaWtlIGFzIGNoaWxkcmVuIG9mIGEgY29udHJvbGxlcilcclxuICAgICAgXHJcbiAgICAgIGlmIChkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZykge1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLm9sZFBhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7Ly9YWFg6IGhhY2sgYmVjYXVzZSB0b3BGb2xkZXIub2xkUGFyZW50IHdhcyBiZWluZyB1bmRlZmluZWQgYmVmb3JlIGJlaW5nTW92ZWQgPSBmYWxzZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkID0gZ3JvdXA7XHJcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gdG9wRm9sZGVyLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgXHJcbiAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBcclxuICAgIGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gdG9wRm9sZGVyLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljOyAvL1RPRE86IHJldmlzZSBob3cgdG8gcGFzcyB0aGlzIGluZm9cclxuICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKDAuNSk7XHJcbiAgICBncm91cC5vcGVuKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgLy9hbGEgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNleGFtcGxlcy91dGlscy9TY2VuZVV0aWxzXHJcbiAgZnVuY3Rpb24gc2NlbmVEZXRhY2goY2hpbGQsIHBhcmVudCwgc2NlbmUpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KHBhcmVudC5tYXRyaXhXb3JsZCk7XHJcbiAgICBwYXJlbnQucmVtb3ZlKGNoaWxkKTtcclxuICAgIHNjZW5lLmFkZChjaGlsZClcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBwYXJlbnQpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLmdldEludmVyc2UocGFyZW50Lm1hdHJpeFdvcmxkKSApO1xyXG5cdFx0c2NlbmUucmVtb3ZlKGNoaWxkKTtcclxuXHRcdHBhcmVudC5hZGQoY2hpbGQpOyAgIFxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCkge1xyXG4gICAgbGV0IG5vZGUgPSBvbGRQYXJlbnQ7XHJcbiAgICB3aGlsZSAobm9kZS5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIGNvbnN0IHNjZW5lID0gbm9kZTtcclxuICAgIFxyXG4gICAgc2NlbmVEZXRhY2goY2hpbGQsIG9sZFBhcmVudCwgc2NlbmUpO1xyXG4gICAgc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBuZXdQYXJlbnQpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZGV0YWNoRnJvbVBhcmVudCA9IGdyb3VwLmRldGFjaDtcclxuICBcclxuICBncm91cC5yZWF0dGFjaCA9ICgpID0+IHtcclxuICAgIGlmICghZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0IHdpdGggdmFyaW91cyBjb21iaW5hdGlvbnMgb2Ygd3JhcHBpbmcgZXRjLlxyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQuYWRkRm9sZGVyKGdyb3VwKTsgLy8gdGhpcyB3aWxsIGFsc28gZGVhbCB3aXRoIGNvc21ldGljcyAoaGlkZUdyYWJiZXIgZXRjKVxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpO1xyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vbWF5YmUgd2UgY291bGQgZG8gdGhpcyBraW5kIG9mIHN0dWZmIGluIF9zZXREZXRhY2hlZEZyb21cclxuICAgICAgLy9pbiBhbnkgY2FzZSwgaXQncyBpcnJlbGV2YW50IGlmIFxyXG4gICAgICBsZXQgc2VtaXMgPSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHNlbWlzLmluZGV4T2YoZ3JvdXApO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgLy9ncm91cC5kZXRhY2hlZFBhcmVudCA9IG51bGw7XHJcbiAgICBncm91cC5fc2V0RGV0YWNoZWRGcm9tKG51bGwpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBncm91cC5hZGRDb250cm9sbGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgZ3JvdXAuYWRkRm9sZGVyKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgfVxyXG4gICAgICAvL1hYWDogaGFja2luZyBpbiBzb21lIHVuaXZlcnNhbCB0b29sdGlwIHN1cHBvcnRcclxuICAgICAgaWYgKG9iai5zZXRUb29sVGlwKSByZXR1cm47IC8vYnV0IG5vdCBpZiBhIG1vcmUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gYWxyZWFkeSBleGlzdHMgKHNlZSBkcm9wZG93bi4uLilcclxuICAgICAgb2JqLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAgICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAgICAgY29uc3QgdGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IHRpcE9iajtcclxuICAgICAgICAvL2Fzc29jaWF0ZSBldmVudCB3aXRoIGhvdmVyIG9uIGFwcHJvcHJpYXRlIGhpdHNjYW4uLi5cclxuXHJcbiAgICAgICAgaWYgKG9iai5pbnRlcmFjdGlvbikge1xyXG4gICAgICAgICAgLy9UT0RPOiBldmVudHMub2ZmKCkgaWYgcmVwbGFjaW5nIG9sZCB0b29sdGlwIChvciBub3QgcmVwZWF0aW5nIG9uKCkpLlxyXG4gICAgICAgICAgb2JqLmludGVyYWN0aW9uLmV2ZW50cy5vbigndGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgLy9kb24ndCBqdXN0IHNldCB2aXNpYmlsaXR5OyBhZGQvcmVtb3ZlIGFzIHRoZXNlIGFyZSBraWxsaW5nIGZyYW1lcmF0ZSBpbiBsYXJnZSBWUiBndWlzLlxyXG4gICAgICAgICAgICAvL1JFVklFVy4uLiBjb25zaWRlcmluZyBtYWtpbmcgdG9vbHRpcHMgd29yayB3aGVuIGhvdmVyaW5nIG9uIGxhYmVsIGFzIHdlbGwsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBvZiBjb3Vyc2UgdGhpcyB3b3VsZCBtZWFuIGNoYW5naW5nIG1vcmUgYWJvdXQgdGhlIGludGVyYWN0aW9uIHNldHVwLFxyXG4gICAgICAgICAgICAvLyBhbmQgaGF2aW5nIG1vcmUgb2JqZWN0cyB0byB0ZXN0IGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgICAgICAgICAgLy8gTGVhdmluZyBmb3Igbm93LCBpZiB3b3JraW5nIG1vcmUgb24gdGhlIGxpYnJhcnksIGhvcGVmdWxseSBmaXggaG92ZXIgZXZlbnQgZXRjLlxyXG4gICAgICAgICAgICBpZiAob2JqLnZpc2libGUpIHNldFZpc2liaWxpdHkob2JqLCB0aXBPYmosIG9iai5pbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBjYW4ndCBjcmVhdGUgdG9vbHRpcCBmb3IgJHtvYmouZ3VpVHlwZX0gYmVjYXVzZSB0aGVyZSdzIG5vIG9iai5pbnRlcmFjdGlvbiBwcm9wZXJ0eS4uLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgb2JqLmdldFRvb2xUaXAgPSAoKSA9PiBvYmoudXNlckRhdGEudGlwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmFkZEZvbGRlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uIChvYmopIHtcclxuICAgICAgLy9UT0RPIGlmIG9iaiBpcyBzdHJpbmcsIG1ha2UgYSBuZXcgZ3VpIGFuZCBhZGQgLyByZXR1cm4gaXQuLi4gYnV0IHdoYXQgYWJvdXQgdmFyYXJncz9cclxuICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIG9iai5tYXRyaXguaWRlbnRpdHkoKTtcclxuICAgICAgb2JqLnNjYWxlLnNldCgxLDEsMSk7XHJcbiAgICAgIG9iai5wb3NpdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBvYmoucm90YXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgXHJcbiAgICAgIG9iai5oaWRlR3JhYmJlcigpO1xyXG4gICAgICBvYmouY2xvc2UoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5wcm9tb3RlWk9yZGVyID0gKCkgPT4ge1xyXG4gICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXAgfHwgIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkbid0IGJlIGEgJ3B1YmxpYyBtZXRob2QnIChidXQgbWF5YmUgdGhlcmUgc2hvdWxkIGJlIGEgd2VsbC1kZWZpbmVkIHB1YmxpYyBpbnRlcmZhY2UpLlxyXG4gICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiBpbmNvbnNpc3RlbmN5IGluIGZvbGRlciBob3VzZWtlZXBpbmdgKTtcclxuICAgIH1cclxuICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBwcm9tb3RpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgLy90aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBvYmplY3QgeiBiZWluZyBkaWZmZXJlbnQgZnJvbSB3aGVuIG1vdXNlSW50ZXJzZWN0aW9uIGhpdCBpdCBlYXJsaWVyIGluIHVwZGF0ZS5cclxuICAgIC8vbW91c2VJbnRlcnNlY3Rpb24gd2lsbCB0aGVuIGxhdGVyIGJlIHVzZWQgaW4gaGFuZGxlVGljayBvZiBncmFiIGludGVyYWN0aW9uLCB0byBmdXJ0aGVyIG11dGF0ZSBwb3NpdGlvblxyXG4gICAgLy9zZWVtcyBvayB0aG91Z2ggKGFzIG9mIDA0LzEyLzE4KVxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICAvL2dyb3VwLnVzZXJEYXRhLm9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCA9ICBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQ7XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1MYXlvdXQoKXtcclxuICAgIHBlcmZvcm1IZWFkZXJMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgY29uc3Qgd3JhcE5lc3RlZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICAvL3N0YXJ0aW5nIHdob2xlIG5ldyBsYXlvdXQgb2YgdG9wRm9sZGVyP1xyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgaWYgKHRvcEZvbGRlci5tb2RhbEVkaXRvciAmJiB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCkgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgXHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gLXRvcEZvbGRlci5wb3NpdGlvbi55O1xyXG4gICAgICAvL0kgY291bGQgdW5kZWZpbmUgdGhlc2UgYXQgdGhlIGVuZCwgYnV0IHRoZXJlJ3Mgbm8gcG9pbnQuXHJcblxyXG4gICAgICBpZiAoIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYGFkZGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2tlZXAgY291bnRpbmcgY29sdW1uSGVpZ2h0IChjdXJyZW50IHkpICYgaW5kZXggZnJvbSBwYXJlbnQgZm9sZGVyLlxyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9UT0RPOiBtYWtlIHN1cmUgdG8gdGVzdCB3aXRoIGRlZXAgbmVzdGluZy5cclxuICAgICAgXHJcbiAgICAgIGlmICh0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHJlbW92aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBjb25zdCBzcGFjaW5nUGVyQ29udHJvbGxlciA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIGNvbnN0IGVtcHR5Rm9sZGVyU3BhY2UgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgdmFyIHRvdGFsU3BhY2luZyA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYykgPT4geyBjLnZpc2libGUgPSAhc3RhdGUuY29sbGFwc2VkIH0gKTtcclxuICAgIC8vY2hpbGRyZW4gc2hvdWxkIGJlIG9yZGVyZWQgYnkgZ3VpSW5kZXguXHJcbiAgICAvL2lmIHRoZXkgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSwgaXQgY2FuIGJlIGFkZGVkIGhlcmU6XHJcbiAgICAvL3RoaXMgc2hvdWxkIGJlIHRoZSBvbmx5IHBsYWNlIHRoYXQgd2UgbmVlZCB0byBjb25zaWRlciB0aGF0IHByb3BlcnR5XHJcbiAgICAvL2l0IGFsbG93cyBmb3IgZGV0YWNoaW5nIGVsZW1lbnRzIGFuZCByZWF0dGFjaGluZyBpbiBzaW1pbGFyIHBsYWNlLCBldmVuIGlmIHNvbWUgc2libGluZ3MgYXJlIGFsc28gZGV0YWNoZWQuXHJcbiAgICBsZXQgbGFzdEd1aUluZGV4ID0gMDtcclxuICAgIC8vdHJ5IHRvIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgdGhhdCBjbGllbnQgcHJvZ3JhbSBtYXkgYXR0ZW1wdCB0byByZXN0b3JlIGl0ZW1zIFxyXG4gICAgLy9yZW1lbWJlcmluZyBkZXRhY2hlZFBhcmVudCBidXQgbm90IGd1aUluZGV4PyBOb2lzZS4uLlxyXG4gICAgLy9jb25zdCBkZXRhY2hlZENoaWxkcmVuID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKGYgPT4gZi5kZXRhY2hlZFBhcmVudCA9PT0gdGhpcyk7XHJcbiAgICAvL2NvbGxhcHNlR3JvdXAuY2hpbGRyZW4uY29uY2F0KGRldGFjaGVkQ2hpbGRyZW4pLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKGMuZ3VpSW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGMuZ3VpSW5kZXggPSBsYXN0R3VpSW5kZXgrPTE7XHJcbiAgICAgIH0gZWxzZSBsYXN0R3VpSW5kZXggPSBjLmd1aUluZGV4O1xyXG4gICAgfSk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLnNvcnQoKGEsIGIpID0+IHsgcmV0dXJuIGEuZ3VpSW5kZXggLSBiLmd1aUluZGV4IH0pO1xyXG5cclxuICAgIGlmICggc3RhdGUuY29sbGFwc2VkICkge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IE1hdGguUEkgKiAwLjU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IDA7XHJcblxyXG4gICAgICB2YXIgeSA9IDAsIGxhc3RIZWlnaHQgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCBmdW5jdGlvbiggY2hpbGQsIGluZGV4ICl7XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICBjaGlsZC51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZiAtIHk7IC8vZXhjZXB0ICd5JyB3aWxsIGJlIHdyb25nLi4uXHJcbiAgICAgICAgICBjaGlsZC5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggIXdyYXBOZXN0ZWQgKSB7XHJcbiAgICAgICAgICAvL09yaWdpbmFsIGxheW91dCBhbGdvcml0aG1cclxuICAgICAgICAgIHZhciBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIC8vIGhvdyBmYXIgdG8gZ2V0IGZyb20gdGhlIG1pZGRsZSBvZiBwcmV2aW91cyB0byBtaWRkbGUgb2YgdGhpcyBjaGlsZD9cclxuICAgICAgICAgIC8vIGhhbGYgb2YgdGhlIGhlaWdodCBvZiBwcmV2aW91cyBwbHVzIGhhbGYgaGVpZ2h0IG9mIHRoaXMuXHJcbiAgICAgICAgICAvLyBpZiB3ZSd2ZSB3cmFwcGVkIHRvIGEgbmV3IGNvbHVtbiByZWNlbnRseSwgaG93IGlzIHRoaXMgYWZmZWN0ZWQ/XHJcbiAgICAgICAgICAvLyBzcGFjaW5nIHByb3BlcnR5IHNob3VsZCB0aGVuIGJlIHNwYWNpbmcgKndpdGhpbiBjdXJyZW50IGNvbHVtbiosIHNvIHRoZSB3YXkgd2UgdHJhY2sgdG90YWxTcGFjaW5nIHNob3VsZCByZWZsZWN0IHRoYXQuXHJcbiAgICAgICAgICB2YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgaWYgKGluZGV4IDwgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pXHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gIFxyXG4gICAgICAgICAgaWYgKChpbmRleCsxKSAlIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID09PSAwKSB5ID0gMDtcclxuICBcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vbmV3IGxheW91dCBhbGdvcml0aG0gV0lQLCBzaG91bGQgYWxsb3cgZm9yIG5lc3RlZCBmb2xkZXJzIHRvIHdyYXAgdG8gdGhlIHRvcCBvZiBhIG5ldyBjb2x1bW4sIHdpdGggYWxsIGZvbGRlcnNcclxuICAgICAgICAgIC8vaW4gaGllcmFyY2h5IHVzaW5nIHNhbWUgY29sdW1uIGxheW91dFxyXG4gICAgICAgICAgY29uc3QgbWF4Q29sSGVpZ2h0ID0gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gKiBzcGFjaW5nUGVyQ29udHJvbGxlcjsgLy9NQVhfRk9MREVSX0lURU1TIGlzIHNsaWdodCBtaXNub21lclxyXG4gICAgICAgICAgY29uc3QgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBjb25zdCBjaGlsZERpZFdyYXAgPSBjaGlsZC5pc0ZvbGRlciAmJiBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL21vdmUgdG8gYSBuZXcgY29sdW1uP1xyXG4gICAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA+IG1heENvbEhlaWdodCkge1xyXG4gICAgICAgICAgICAvL1RPRE86IG1heWJlIGFkZCBhbiBleHRyYSBoZWFkZXIgdGhpbmcgdG8gYWxsb3cgZm9sZGluZyBuZXN0ZWQgZm9sZGVyP1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCsrOyBcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gaDtcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nID0gMDsgLy9oIHdpbGwgYmUgYWRkZWQgbGF0ZXJcclxuICAgICAgICAgICAgbGFzdEhlaWdodCA9IDA7IC8vPz8/PyB3aGF0IHNob3VsZCB0aGlzIGJlPyAgT3JpZ2luYWwgYWxnb3JpdGhtIGl0J3MgJ2VtcHR5Rm9sZGVyU3BhY2UnXHJcbiAgICAgICAgICAgIC8vY2hlY2sgbG9naWMgb2YgdGhpcyBXUlQgZGVlcGVyIG5lc3RpbmcgKHNob3VsZCBiZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0b3BGb2xkZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlIHBhcmVudClcclxuICAgICAgICAgICAgLy93aGF0IEkgc2hvdWxkIGRvIGlzIHVzZSBhY2N1bW11bGF0aW9uIG9mIGFsbCBmb2xkZXIgbGV2ZWxzICsgb25lIHBhcmVudCBhYm92ZS5cclxuICAgICAgICAgICAgLy95ID0gLWdyb3VwLnBvc2l0aW9uLnk7XHJcbiAgICAgICAgICAgIHkgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ICs9IGg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy92YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgICAgICAgICBsZXQgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcblxyXG5cclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC4uLi5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgLy9YWFg6IHRoaXMgbG9naWMgZG9lc24ndCB3b3JrIGZvciBjb2x1bW4gd3JhcHBpbmcsIChiZWNhdXNlIG9mIGhvdyBzcGFjaW5nIGlzIGNvbXB1dGVkIGFib3ZlPylcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG5cclxuICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL25iIGZvciBuZXN0ZWQsIGNvbnNpZGVyIGRpZmZlcmVuY2UgYmV0d2VlbiBncm91cCAmIHBhcmVudFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy9pZiAoY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCkgbGFzdEhlaWdodCA9IDA7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2hpbGQudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gdG90YWxTcGFjaW5nO1xyXG4gICAgXHJcbiAgICAvLyBpZiB3ZSdyZSBhIHN1YmZvbGRlciwgdXNlIGEgc21hbGxlciBwYW5lbFxyXG4gICAgbGV0IHBhbmVsV2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXApIHtcclxuICAgICAgcGFuZWxXaWR0aCA9IExheW91dC5TVUJGT0xERVJfV0lEVEg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIExheW91dC5yZXNpemVQYW5lbChwYW5lbCwgcGFuZWxXaWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoKTtcclxuXHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtSGVhZGVyTGF5b3V0KCkge1xyXG4gICAgbGV0IGR4ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICBsZXQgeCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBoZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGlmICghYy52aXNpYmxlKSByZXR1cm47XHJcbiAgICAgIHggLT0gZHggKiAwLjg7XHJcbiAgICAgIGMucG9zaXRpb24ueCA9IHg7XHJcbiAgICAgIHggLT0gZHggKiAwLjM7IC8vVE9ETzogZGVoYWNraWZ5XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZ3JhYkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9UT0RPOiBtb3JlIGNvbnNpc3RlbnQgaG92ZXIgc3R5bGluZ1xyXG4gICAgaWYgKCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ob3ZlcmluZygpICkge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4ODg4ODg4ICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSBncm91cC5vcGVuKCk7XHJcbiAgICBlbHNlIGdyb3VwLmNsb3NlKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcblxyXG4gIGdyb3VwLm9wZW4gPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICghc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCAmJiBncm91cC5mb2xkZXIuYWNjb3JkaW9uKSB7XHJcbiAgICAgIGdyb3VwLmZvbGRlci5ndWlDaGlsZHJlbi5maWx0ZXIoYz0+Yy5pc0ZvbGRlciAmJiBjICE9PSBncm91cCkuZm9yRWFjaChjPT5jLmNsb3NlKCkpO1xyXG4gICAgfVxyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICBhZGRJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmNsb3NlID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSB0cnVlO1xyXG4gICAgcmVtb3ZlSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsOiBncmFiYmVyIH0gKTtcclxuICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAvL25iOiBpZiB0aGUgY29udHJvbCBpcyBub3QgdmlzaWJsZSAvIGFjdGl2ZSwgdGhlbiBpdCB3b24ndCBpbnRlcmZlcmUuLi4gICAgXHJcbiAgICAvL2J1dCBcImlmICghaXNEZXRhY2hhYmxlKVwiIGhlcmUgY2F1c2VzIHByb2JsZW1zLlxyXG4gICAgXHJcbiAgICAvL2hlYWRlckl0ZW1zIHNob3VsZCBub3cgaGF2ZSB0aGVpciBvd24gdXBkYXRlQ29udHJvbCBhbmQgYmUgaW4gZ2xvYmFsQ29udHJvbGxlcnMgbGlzdFxyXG4gICAgLy9oZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKG8gPT4gby5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKSk7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgLy8nZ3JhYlJlbGVhc2VkJyBpcyBlbWl0dGVkIG9uIGlucHV0LmV2ZW50cy4uLiB1c2VkIGZvciBvcnRobyBtb3VzZSBmaXhGb2xkZXJQb3NpdGlvblxyXG4gIFxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBfYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG4gIC8vZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwsIGdyYWJiZXIsIGRldGFjaEJ1dHRvbiBdO1xyXG4gIFxyXG4gIC8vLy8vRVhQRVJJTUVOVEFMIEZFQVRVUkUsIENVUlJFTlRMWSBIQVJEQ09ERUQgTk9UIFRPIEhBUFBFTlxyXG4gIC8vc3ViLWZvbGRlcnMgdGhhdCBhcmUgZGV0YWNoZWQgd2hpbGUgbW92aW5nIHJlbWFpbiBhdHRhY2hlZCB0byBwYXJlbnQgb2JqZWN0ICh0aGUgY29udHJvbGxlciB0aGF0J3MgbW92aW5nIHRoZW0pXHJcbiAgLy8mIGtlcHQgaW4gc2VtaURldGFjaGVkIHVudGlsIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCBhdCB3aGljaCBwb2ludCB0aGV5IHNoaWZ0IGF0dGFjaG1lbnQgdG8gb2xkUGFyZW50XHJcbiAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGdyb3VwLCB7XHJcbiAgICBoaXRzY2FuOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIC8vZG9uJ3QgbmVlZCB0byBmaWx0ZXIgdmlzaWJsZSBoZXJlLCB0aGlzJ2xsIGJlIGRvbmUgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKClcclxuICAgICAgICAvLyhpbXBsZW1lbnRhdGlvbiBub3RlIDMxLzcvMTk7IC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIGhlcmUgYmVpbmcgcmVtb3ZlZCBhcyBlYWNoIGhlYWRlckl0ZW1cclxuICAgICAgICAvL3Nob3VsZCBub3cgYmUgY2xvc2VyIHRvICdmdWxseSBmbGVkZ2VkJyBjb250cm9sbGVyKVxyXG4gICAgICAgIGxldCBoaXRzID0gWyBwYW5lbCwgZ3JhYmJlciBdO1xyXG4gICAgICAgIGlmIChncm91cC5tb2RhbEVkaXRvcikgaGl0cyA9IGhpdHMuY29uY2F0KC4uLmdyb3VwLm1vZGFsRWRpdG9yLmhpdHNjYW4pO1xyXG4gICAgICAgIHJldHVybiBoaXRzO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYmVpbmdNb3ZlZDoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gX2JlaW5nTW92ZWQ7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldDogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgX2JlaW5nTW92ZWQgPSB2YWx1ZTtcclxuICAgICAgICBpZiAoIV9iZWluZ01vdmVkKSB7XHJcbiAgICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSBncm91cC5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBncm91cC51c2VyRGF0YS5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICAgICAgICAgIC8vYXNzZXJ0aW9uLi4uIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAoYW5kIGRvZXNuJ3QgQUZBSUNUKS5cclxuICAgICAgICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSG91c2VrZWVwaW5nIHByb2JsZW0gaW4gZGF0LkdVSVZSLi4uXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQuZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIC8vYXMgd2VsbCBhcyB0aGlzIGN1cnJlbnRseSBlbmRpbmcgdXAgd2l0aCB3cm9uZyB0cmFuc2Zvcm0sIEkgYWxzbyBoYXZlIHdyb25nIHRyYW5zZm9ybSBpZiBJIGRyYWcgZm9sZGVyIHdoaWxlIHNlbWlEZWF0Y2hlZC4uLlxyXG4gICAgICAgICAgICAvLyoqYWx0aG91Z2ggaW4gdGhhdCBjYXNlLCBpdCBzaGlmdHMgYmFjayB0byB3aGVyZSBpdCBzaG91bGQgYmUgd2hlbiBidXR0b24gaXMgcmVsZWFzZWQqKlxyXG4gICAgICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZm9yIChsZXQgayBpbiBhZGRDb250cm9sbGVyRnVuY3MpIHtcclxuICAgIGdyb3VwW2tdID0gKC4uLmFyZ3MpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbGxlciA9IGFkZENvbnRyb2xsZXJGdW5jc1trXSguLi5hcmdzKTtcclxuICAgICAgaWYgKCBjb250cm9sbGVyICl7XHJcbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggY29udHJvbGxlciApO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sbGVyO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2UoKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBRUFDQU1BQUFEeVRqNVZBQUFBalZCTVZFVkhjRXovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8rdW1BYzdBQUFBTDNSU1RsTUFXbkpmYm5xRFdHUjRhMlpjWW5CUmFsUkxnSDZFVG5SOFVHaDJSb1pEWGxhSFNZbzhRSFUyTHlZY0ZBd0ZtbVVSMU9JQUFKRmhTVVJCVkhoZXRMMkpXbXU3ampVS0lRa2tRTHFadmdNQ1pPMnpULzMzL1IvdlNrTkRrajJUck9hclZkNVY2eERQM3BKbFdkS1E3cWFQYjYrdnJ3OHZqK1BaL3Z2cnh6Ly8vUGo2M3MvRzcvY1AybjAvWFo2T3A2WDhmSkhmYUcvM2o5cTVYL0xLdC90M3YvUWZ1ZlFrL1hvdWJvbHovRHE1TEg3eTFuTFZsOXhlSDRiMjhqaWRuY1p5L1pNMFArV2ZmLzd6bi8vOCsrOS8vc0c1VXp0YXYzSDFpbkpJWGtsZThRdm4zK09ST1Ayb2o1T1BtejdldittNVBEREZ5WGFuL1V3ZXdCZDgxMjRaRG4ybzNlVEJCbUNLQXpaUWZqWTc1V1gvL1krL0tqNkxuNzcvL3VGM3IyNHZIeWZQNWFlOWNSUnNhSDVJLzQ4dmVRcVA1S2g5WDl6ODZ3dm4rd2poWmZtWWpUem15QmZsU09CejVWMWxYTzhlSDU0bXc4bnpLOGRUSHNuUGVwYnVwd2Z0MVZ1K1BzbHZhWlB0czczRmFXeFhicC9pVWp4L0k5U1VjM0hMcVoyRGhudFZQMEVSZk43OXE5MTgrL1QydUZsTzhldzhCVytxdzRSejVSWmJPVHA1ZnNKaitkVHFGWi9sbFRBcXVMYytFbThqQS80ZEEvUzg5Yzk1a2hFaDhaVFltOGUzcCswUVY5eFA1ZjVmUWpVOFZMdWVKM2l0ZTlDVDlMZXpuNUlEK0twOHRCM0VtT2ZkZWZzbDU4MFBZMVdNRGthQk5GWHFINVZqZVNTRzVIalJkVHpxK2VBTWpQK0VMOHZIeUNTekZ6VzZMRTk2UHJqdjd1VnBNdXAwdWx1TXA3SXB1V1hiN1hRNnd5Y1p0dGtVYjkzdG9JMjY5ckhMS2E4Y2JwMFVuTTJ2VHhNOXQvdjg4SWh6ZU4zazZTVi80dGJ5WnNlOWZkNFFmZDJKdk83bThlRzVXNTd5RFJiQXJNSzV1RHZlR0NUOVFiN0lWK3phR003Mnh4UHVQY0xwU3M4ajU5bnpwQnVmTTN4MjRuSGF2dG9EaG5JUDZTWFY4TjY0YURRa1BUbFJ0bmIyczk5RTM5UmZkUmlmcnJ3a25idzdiby9KaFhsTHdlbFBtY2lUeDdQVC9sdjdUN1BaNWhIamxrUHl0WmZSajV1RFJyT1RuQTltdlg5NHhrQjBoM3l2eDgxSkJ3SXZxdjE0VXpuLytLMHZleWVqZmU0TlZ1Q0FEY1htT3o1cjE5dDE5Zkt4dnBuOEhQUzA3VllqKzlqSE43bFNmbmZpMGgrY3pjUE9lZEFiZElTYTcyOVBjZzdhdWZ2MGxqL3Qxc3Y5YWJaVTNwekl3NlN0OVB2R01rYWRRWndpQTNIa1BQbmU0OXlSbmp0WWthUkNOdkJRdnVKZ3h6RThZY0J4NzRFTkhjWVpwNjc0T1lOemh4d2Q0dUZwdU5Lbmo3WVBrQXpIazc0UkhyclM5OXAxSnZaZ09RRDZyN1FUQk1XOHhTSjZQUEZWNDlPWHhnQzh1MXlnaEpOUnMxVnd0akg2NzNENlJLZlVjcmJYL3ZGMEtoK3g3ZTZLVVpPNzZ5eXhtMk1jcGxPY2I4dzZ4RUNjT3p0N1dRNkVkT3NuRDhEWk9CL3k1MDVIdTVselBGMXN2c29jSE16N0lPSVlYSHNlekp2K1l0SHZONzBkYmlFVGRUdmFOZjI4VkhuSDJIN1hhL3FnNXJzd3lXNitrRGFYZDMvTG40MTl5bkk4ZlgvWHp6djMrb3VtWUFENWlWUHdwaWVUbERJWHgvaHVPZGh2UUZJYjFwTk5rWE52M3RkWGxLK1JNUVM5T2VEOXhaeERSL29MelpxK2ZjNTZjRmFPQnZIMkpoNkdxL1dpUHhodGpTOU9Td3dlYnJLVEo5aGJ6bkEySnNxZ1dmVFh1MUdzV0pqUUdFUjhWditTQWVRQ0VnN2ZCcjY3Ri9wekdEQWI3NFVGMEM5TlBucWxkMXJqSzlDUGdWajNGeGlIQnoxSit2ZkhtVEhyV2orczE1T1hCUVZQZXpKQW80UlFtZkh5OG1pYUd4aWcxeHprUHJqMzdPaEVITXpsTGVYbTkzaVd2dlNIak5maThJR1BsWGRYQnRBN05zSUJ5aENuYnhWQWVQNjhmK2l2a3dIa3NvK0NBVDRPL2I1UlYrZmIyeHVlMW56b21PaDl5UUFmT09WTlZVNTVVeFd0eWwrUURzS0U4eURwdDhwRDhKQy80b2VPSWI3bXRNU0FydzhmZk41c3pIbldnUGlOOHJSek5JYkpoSjFjSWN6Zm5VRFNnV2VFQVJhZi9ZRzg1Z0VmUnJINmdJbXlhR1NrTWE3djFBMHdvZjJ6ZHZVU0FESi9jTUNubTVuekhRNDBpL2xCQnhTYVZTak5JSWNNcWJ4bzlHdW5UcWE1eWhKcFVLQ1Y0OEdzQjNDM1BHVUVDZUN5cWlmdm8yT0Q4NDFkN3g0dy9RNXp6cWdUbHBlSjNydHYwczRHdlRrY2xLZGs1SEVMK1NMd3hXQzlPQWhQZ2MyTzhpVXE1RmY2ZlhxdE1NK0wvaFJXckJoZ0Fja2xuNjlEKy9UOGpLZlpRSWxPV3pLQU5LanB5NzFKU2g2Yjc0UUpuQUZNN09IakZvM2NlZDBzRGcxRlBzZWo2YS94UENvdU94MmdlVzhnVGM5MmpsN2lSaEFQd2dEeWlyWk9ZM2xSV3NwanordSt5aW5UckhCejBMK0gxNWNuWUJwQU54Qk5UR2RDeWdhc3JuZ0NYc0FJOTNDdmVnRDFhZjBFb1VNRERvQWFFNXFlVEhhUWVqaXMrbTNjenQxUW9JUGpHL2t3NWUyenZSUVZhMmM5UFo4cTFBOVZBbkg3TldUU2VBYStoaXhhNzZEdlFIamd3bFZIbHM2NVVwd0szclpyUEk3Um5tRUZlbEFTSDVSSFZLNVM1N2xnQUNwR0dHOXBjb0lPbFB5bHN5Z1pRSnJxOUZEb3ZyK1NBWVRPL1pBQUx2Ym1oOE1jcnlpdnRGQ0N2K21NaDJ3WURIYkdFUDV0TWtBNzFlbEduYk5LT2dvTW41K05TSkhEb2xsam5aNUNxSzFXSzJHWGppeXVnL09xZ3lmN1lEY3l6THQ1STVOdGEycWRiNkw0V1IwWmEyZ1R3cXBVVmpzcW85ZXJMamRmTXlySHUwYnVJbHpRekhkVWlGMzUwenRwWjZmVnIrdTBQRGo2Wi9aT3ZmWDZEQjNuUERKTkl4VHJYZHhJcUEydXZGTWlLQmtiSXlNbUNUcTR1a3lOQVNERWg1TXVTQU1GQ1YvWlBhOFBDd2hGYkRiR1dCZjZJaXpCM2xPVnVOdkpKUVBZb0lCdzU5MXVwK082VzhrZnE2N2NPQmdBUGE0VXE0NEpYVlpYbUw1T1JGdFp2NmtSVTZ4aUlpMzhGWFhwZzBacFFzdk81QndiZFlTcW5hN09JcmtRSXVDZGt1VFExNVdrVHpIRklSV2VHc3JGOGdkSXZlSFNzS1BtT2RBSkJMWHV0REVsK2t5dFdiOEFPZ1kxa0ZCV3p4MjdaQm5Lc1k3QWVSY0tjZlRyQUEwNnE4dCtaY3RkOUUrNXhLMTJ2ZlY4UG9jUWc3U2lZcjN1c2ExN1NtMm9zbmNRNWFrbmJjQXNaeE1KV0FPVEFXVEtUR1RaZDJZZm04SzhPRGdEeEF6bGtqdGRZbnQrbFFHRXFHUXRlZFBkU05wQS9vRE80dmNZNkNGUjk2blF3ZnhoT3E2UWd3b0RWbEM3N2VHZ1F1eEpDZDQvVUgrZFVYejE3ZkdtUTY0eDVYR1h0WkJIRDRNLzlQQVdONUtuNmxwbmZFRTk4cUMvWktBZ0FKVUJxRTY0NXJrZWRFeXRvMG9pckdKYTgxelhOdWdZcDF1WHVITGMweEh1ZGtVSHRVbFY5TXNBRFcvMGo5aFBEbGNaTmhmK3BSQlRRVHgyeFRwYk1vQytyczk0MThGRy9HbkxxRjM4MlY4UGREN3FqTFdWaGFPYkRMQnZNWUJxME95NVpBQmpMVDJHTlVUSlJKM0Y3OUgwRC9vUkxwK1B0c3VsQ0pCZURHcXNPNzRVNmQ1RUtGc3hnT3VnSmc4YVdkeTZLb1VYaDRWc1lrUUVjRkhEdTVyOEdoVnJtL2J5bDdMSFltMnlSL3VoVGh4TTg1eFRqdzdka0ZyendkWEE1YzFMaW5GNWZ0Sk55TUhHdEpTWTIrMnYrNmRjNGhwNWFOUGdDVHVvZG1PblliUmtnTk00MW0zY2cvTFV4K1Iwc25tQnp4R2hvanpRdFRsWk1RQ3NhWnRweFFDUUNiY1pZT1l6VG9VTnA3QmU1aSs3MEkvNENJVnUvNVhTL2hQVDhEVVlZS3NzYTNzZUZSRXJhWHFuTmdOQXhLc0E2SXgwQWpYelJ2K1crMUZienJlWGFSU2p5dkhSUnhvalFMMGRVM0xLSUVQejFPTTJaVEFJT21DaE5aT0hiMTVTanN2TDAxVkNQejM4dXAvRVV4MElLdTVhbnJTR3VJb3Y2M21UQ1VJRzJGTnZjTjFPQmdrclFJL1Rla2EyYlQ1VXFLanlmT2FXdDJDQUx0VDNwVnFCLzRBQnNQWnh4UjdsakNNRHlFZklXZ21GanZvMWFJMzE2ZU9UNTlhS2h5MGd6ME5xdWNtamZMeVJVbjlnelJ2c2VtUUE0NTFrZ0JFa1VwK2ptaXFHWE1ZVkFOWVJHMnVaRTUyemJyRDRvazVtVVE2aE5jZGFjdk9TV3d6d3AvMVREby91NlVZamxUVTVwdnl5RGh1bGxUREFjUlpIOFdVY0pKY1JNTDdoZS9xUXliclY0cTRwR0FEcW9jb0FIZnp1N3pQQXJKQ3VIUGlTRFBvUjUxNXVaby9IdUtCWkpGc2tBMEExVVNiVVJ2MjZaZ0NzYmlMRFJRQ29aSUhCcHlQWHVzV0RyNk9LbStsZGJwa2lmNnE0b3ZhSllVbk5NMTcwUGs4L1EydkduOUF4Ymw3eXR4Z2d4MU8wNlMxMlJyWWZlaTlrR3h0Y0FudlpCbklBNVRMTW9NZjhnVkczU1ljN3lYd1VtZm1CMjdzT1FGS2RZUTE4MTZteTJxMXA5L3NsQThUcUl5Unh0Yk95QTJ6NU9UUytnaG1IbUlVWU91dXRKY0FqbkVYNHdQc0xDVUJWQ095bVQ0UEJSMlpLd3pmQzY2ak1YZzhHSzUxRFhibkx1RkNMT1REMFdQRFY1U1NvRnB3MDFEdE5pWHA5bG9lNGNMMTF5ZDlqQVBuaDI3UlhYUnRpTHVhWUp2MGhBSVFCVW9taURpNmppZkhkNmdRcjJVTU42TEp5K1pRTTdVQk1SUGdPMDdHVk9KVFB2MkFBcmo0NEdrcGNaUW5NMDRQVXBxN28vL01aeVFCNGYyeVIzUXZTWWdEOUFYbHZpb0RlU3EwTnpnQmNRcW51RE1UcEFSOWlzYzFNM1FnUGRZM2doWlFOS2dUUk1VVjhORzllOHRjWWdJL0dUSEtORm8rdWxvQjBFcWtwV0RRcjQwd3lRSzNHVlF3Z0ZpbXNYRzVobGpVY0F5YTZSaktBTWtpUFJxWGp6eG5nV0t3QnpyZVA0NXNNUUJ0bGl4S24xaTRBYXJCN1FhNHh3TUpFZVgrZ0RLQlBHUTJDQWVnRVVVTlFPRDJXWm4zQUFLMFhsT2JMM0RIb1N6c1Z6T1AxbkJxa1hKbnF5YzFML2hJRHNKOWNWYW5HdFJLWVRpSmhnQy9zbzI4eHdCN0RpNmV0ZFFNd3pCUEhWTW5VcnRva0Eram1kMDRkODFjTWNFcnBHaXZBOGlZRHFCMDFaREczcmVDTFVyUStnS05jcTd2TkFCOG0rL1dBRUlXYXZXelRuK0VHbFMyOE9UM0F4MnA5c00xNVBuVmNLVTR2K1pTYW1oQlpUb1ZibC94bEJtQi9MZGZyYmFCVDhQaExDYkJQODc1S3hkMHFGK1V4QmdHLzFRTkxYVVpXQ1NNRlBDTy9ZSUEwNHMzbmxJelROZ09rUGtxVGI2Mk5tVW1XbTRtQlNMYXRXeFIrTGdIMERKa2dLa2ZrZkpBVjBRdXdySFRPTUFUNUtwUEtUc3FkMnVMQnAxeCtaRTJGK3BLL3p3Qy9ldlRuZ3EzTkFPMVRCMjd1M2NDUmlHMXRYNldpOE1DNkhsMGo3Z2hlQTFqQXV1ajVyVjJBcVBXaE11T01iV3RvSjhPUzM1YUZqb05iY29MR1FxS0dkN0h3Y3M5K1RRY0FIV01KT0dNaEdZVWhDQUpHYmF2aUpGZ05hSmNRaFQ5MWp3V05KY3VhQVc1UDU1c004SDh2QWVDdXY3VUVEQW9HT0czOFZQVEdrbzhGK1ZTNCtMRXl3bis2cWtZWDR3VExQM3dndjc4TlBPYkdYaG9OYkx5Q3pxZmRXaWMyWHFYY00zVElHQ1NHM2FRUDdWM21iajhPdFJrQXpDM1hxenlmaTVFQjZpZFlRb2Z2M1pZd0hZZEpOMTk2R1Z2aHoxZ0I4SmFwM2hWNjMxdDdJVTc5OU5vbGY1c0JicXNmVkFKWCtLL1REU1dRTkFyRnYrSlplSmdSc1FjSFE5T0hDV1lITS95bEpWQzlvSzkveEFCcDJqUC9VVEcwbitLeE0yTVdYYm1GeHFodG5hYUFjR0IvTE13Q3FxOUk0VkF4QUZmaytRN21HRmtLeFJ3OG4vZTUyRThMWlhJeUxCamdGT1p5MEl1Ym8zSjhPZkMzVlhIdzhNMUwvaFlEM042QUpGMkdhRzRHa0cwZzNkb2h0NTJCZlpkbC9oZTBzL0pBTEkyenRpOUFsb3R4VzRQNCtUWVFFVnF2VysxTHBUN3Mxb2MrRGVhbUcxQVpDVTNtRU5OeHBpSkFoSlJHQW54QWYyZDB4bWxUTXdCbUNIYUE2dlBWOCtCWVhGUGRUNXV2T2s3blBqMlhjaGZ1Mm5Mdm1Wc1ArZmlIVjVlMlA5Mk0zN2drQ2FvSFhwKzZKT2lmOTk4MlFSUjBlVUpqQUlrd3dNbDFYR3B1Ym12aDlPSUNnU0E1YzUvNzFtVzVzVSs5N1EwY3o0UUNOeG5nWFE5ckxMYzluZHVyd3FFMGQyOE43b1U1Qi9vczJEQ1N1Q1lpRWRleW5LL1hZYXlHYmJwZ2dQUnppQjhWL3RnZC9vY2huVTQ2OVhuSVFoTG1ac1RaaG9jTSsxdmJPcDBaRHZPOHhZckJvemZOY1Rjdk1mTTdOSmNKcnZpd0JlUlArNmVYUmtpT2F5RUIyTGFNNHJwRHpNUW9sZTEwRHByQmwyYVdoUXF1TFp6dEhFMGhIbWhYTWNCanJpWnFhc0xZWFdjQU9NTGxZVS9QcGw5eE5oZE1SSDh0WGFZa1R5b3k4bURYRzhVaVlWYm9IY0pnM0FIUDFTc1lnUDVlNWZWZEo2SjhPeVBHZnRIcklhdk9BUUttejFDbk1lSnNsVjZ4Nk1UYVJidXhPQTlUOHpSQjRnYjVjeHJrYjE2U24zYVc5NUlyUGttTVArMkhNcFJ1aUxXN0lhNzVBaGphZWpkK3RMdTVmODNmM3dRVmZtL0pWU1BSanMraHVHQjBzVm93R0tGMnpDSG15TWJ1Q2dOMGgwcFZJUWlITmxhQWtnSGcxUnRwMElSSklzNGZmZ1IxSzdBZTBRaGQ0Um5lU3AyVFhMM2MwYVVHZkpyNjFFbXZOOThOTks2QWNlRWVVYXVxenVjaVZnWVZkSWo3S0ZhQUwxb2w1WDFjODhSWTQyakxKYWZ1TEJ2YW01ZEVTSk13dDRSdDZLVXdpdjF4dnp5NmRFVDJQYWdsdllGci9nZWFnUUUwV3BBRWgyQmZwcHdjSVR5WkF5OFhEeVFVQU80NXhnU3ExQTB4QmdaWXVsSS90NG5Mc2J0Z0FBa0Mwb2Y1MEpMZGFEbW94ZFVrM0RycGx0ZldEZEVxM0NFY0FPNFhpalpPN0ZPc1htNlltQzdEVlM4c3NKWTJiL0R5aGd4aFREMk1BQi96WEJuc3JlY2lYSHpqcVpnQU1GTnFub2REMkQvSDk5ZWQ4c3VibDFoUTR3QkJyZFI3d0h0LzJyKzhGWXJnZXRVaW1rdnRyenVoUHdPQ1J0U283c2tSK25aUUNzRFFJaEtiK1p3TytnbGRaN3QwYVk1UGlNL2x5WDBMTXVYWXpWc01JRDBoK2xZNjRZUm9aS0tLQVJDOUN1aFpGZmVGS0ZncVY0eEgzVlA0ekJ0d2N1VWtXQnpvbkVESUhJTjFGdEFsWU1QVU93ajlpYW9ScVNZMFF2eVRPWlRJQU9vSDVUQ2ZORDZ4clhuT1piaE04MnlGNWZROUxHZDI4eEtMSVJMVGd4THRZS0ZDZVBZZjlzK3VCaU5sUkZEUmtnR01aUTROZVV2WDB3eWNnK1N5OE4rNStvTHgydEpOcWNLUWVNcmhiNDRLZUxQeWNrZ3JHVUJhVXpEQUFVUEx4YldsU0w2ODNDTjAyczJWSHFubUQyOVpGSFlOSkhmdEp1ejNiYVpsZURRbXVjeCtqVGlUSTR6WkpaenZTWi9UekpYOUFLd2pBelROMmhBUTBKMHJESXp3ODFvUE1uaHhaa2dhQnVaSkhCVUQ4MDQzTHdHd0FUYm8zbHFhQndzdS83aS9IWTY0QXYxVjhtRzJscTNqUzRDTzVEeUJDc0FXS0JFQkZqQzFrQTlUZ2RuTWlTS2EwaXd6NzVHL2lmUER5U3RSeDR2OVRTTU5ESkEvQ3dhUXdWZ251TVFaSUlURWVLUGdDVEtBdnptMUhXbHBVV0NYakFheFcrUUo2UG5jRmpKZ2Q2aklJRFJ4YjNnNHZ3TTBiVm1DMUg0MHFySG5EQXlVUVRxSmdveGJpVElHWWdhOFJFWmgxR0ZVcTlBZkVNMmJseEJqS0FkVTdjRVZXUGYrdFA4WUFja2pVL1M2REVqZVFQUlVEV3VQTTBEaUdpVEVLa1JZdy9tRmgra1cwSWFNT0VJZmwwNFhLeVVqOSszTjlBdlBxcFg0MkhGQWk1OHI1UWVMdVBaN0FzWnE0UWt5ZmFnbUNGY0xLb1NMUzc0NUE2TWp1aGtub010MStqMkJaRjNpR2NHakhyS3ZNZkxkaURvSDkwcVROZXhrUWxRYWdUdEhteEI2dXFJSURVMkJ0ZzhjTEc4RW5LNE1vRU5WL1FBbGlTQVlibDVpaEhzeXdDcXVBSjMvdUQrL1Q0NEF1SXNIRUg5YnRXZENLKzh3ajN1SmJJS0NhekFscXBiMnNHTElRaXZiNm04aXFJNFZzTGpiQlhmam5CSCt3NEMyZmhxa1QxcGdmYWxkb1JNYkJRQUNBaFlhaUliNjE0bXJqNHdJNEw1R09ldkNkejliWExiMENXZ0g2T0NuWjdRbjRrNzJjbXl2RGNCSUhJUk1SUS9XQldtQmcvN211YndWYndUWVBHOGlaQkRzamgzUkp3ajlyMThDK2hPUXJ3ZTA0WjBVTUNMdFd2L1B6dmZ2UTNzQWxKK2lCMzNaSG9qb3ZjT2tYSEhucktQOUhRZ3B6TUhISlY3aUxZY01jQmFPbFA0MlNVbDRNamdBZUIvY2tLUEpBYTEvSW4wQUJvTWNyR1Q0eGhJYUpNREFIYjlLUUR5b29GSTJmK25UOSt3eWlzNEFseVZVbm4wbmE3T2w1Z2Q0ZVh1UVpzaXpwZlF0Wi9LUHRCaytWZzVCOTBRSExJSGE4MktaRUw2UGZ1cVN0NUptdWdyNmwvcnZSZy9neUwxY2hlNk5QdVRVdW1RRDlLdE8zZVgwWFE1b3d6dkptWnZOV0k3WC9XTzk0TXI1ZUU4NXVwbmhDWExrWHRyN1ZIN0xVQWpqYVYvWnlFby83ckFva2Y2bkk0aklSV3pvY3hCY2xVTm1nTFlqUndvb1JtbjZXcmlZK1JjdzVrdU9wZzlvK1ZNSnQrUmczSXMwc0xFVHdMaDM2aFhvU3dEbGkvd0hLaEEyaVYveTJlRHlwWDJqcWcxamc4dHEyZ2p0c2hGYXlwazhKUCs4VzV0dTlNQlVPOUVsNTIybVBJSWU5TE1CVVl1eHh4SDlkOHBiUVZmQjBEL3kzdjRRL2ZmUm43YWN5ZFYrd1BxSTZ6MGFaMnJEQU0vNFl6cldmbXZ2NkFCYWx1ZjdBWDEvSEFXakN5dE1kWHdlMzIwc3h0Ykh3WkNSbHhib1lDeEtYSXd3QmI4aTMwTE9RZHd5aDh5ZzZ4d3BQY0J2TXc3UWNTaEhJSzZiK1NYeDVTY09ocExFUDA2ZUhrUEhDM1hZZzVpUWFnNmNMbm80Z3ZqOTZMMmdPcVlOMkNNUFlVWnVsbVFTblVka09wSFdNOHhXdVVCN3JOKzRYREgxa0w3V3AvK3FlRGR4Y0RwUlVyem9WTkVEMm8vRlFINmkwMFFJTVBIeVVPM0JpZThnNlJITE45cTlyYnY0R3hKdU5yTWJvVU5mMGRZaDdSK0hISGpoUEpPanVCcExBT2NFK3lnMHdTVjc1Z2ZZVFBVN01DUXhrWmx4NVkxaWNFTzVoZ2FSUlVwTEh5N25kTVgrQ0MrR2swUFVQVTU1SFM3aHdOb3plU3I2OU9OQVNuYkNVVURSc1U5eGJyeXF0eHBIRCtEOXVkSTlJSW1NS2RnaTg3bVVZb0hJVyt5dGdkZGY5WHdzYUEvMzVjcXZQVmlPNERxeDJZR0JSQjh2NERwMVdtSXU4UXBxSFhFeTlBRkdZcG9tZ010VFI3QTE5WGtyRGZOT2xHbjhNQ1F5YjRRT1puMzVhbXNDT1A4SnFxdmNTcFVmaGRhK01VOU01Z2paRWxIRERDRTJYNmNiemswaTFpbm0xTVU3elFtOE54bkJkRFJ5VmlwSWVHblRCRTFINGxMT29kRDFIVnR0NE9NNEdsQy8vVngwY1NIU1RteVpjdFJPQmpPVXRyWDdBWUpuS3A3Q0VLV0h1cTZuY3RsUzhUOUt3LzRmbHo4am9Rc1BmWnUrdzNHWlFORTNteWFzZ3FiTDZncUpRY09vTTlrSyt2d0M2RTdtTng5cUYzWVJlQVpPdHA4VFUydlRjTDExcmRwSUNqZm9jM2VFV0dUcXkvcjMxbTBhdUpIMHhCTy9uYjI0RjVqWVVYbXNHZk4wRzRpaE1JTlc1QWdocHU2TE9ZSk1vNWx4dXIzb3ErRG0xajF6d2ZOR0JVaW96NHd0cGl6RUZva21FdWtGVFMxcEE3NXdRcjhUR0dNV21yOXZ3TzA3MEplcWlNNG5qcWNCS0RPNUNvRjJEc0d6cEMxdjhDUDZibmZZamR3cCtseW1jckJVTVR4RXFCRVI0YnFkSGlsT3RVT0ROUDBJWjkzOFk2OUxJS0xaS2JiV0p6dllzNGZYQm01UkR1Z205bXpQd01uNGlidkRndWFmWnZ2cWM0ZE1STFE1MFFnSWM1Ty9hZFdrZlVXd0NtRjI0Ymc5aHpWZ0pFZUpjdlZicVlsZzFMRXJJa2ZJcWt0enB0TC8zenVRcFpodTVBQ2J4cGc1ejYwWi9vOXlEbFAyOEtOOTA1NnNZK1NCd2NPc3RYc3VEY2ljY2lZU0dBS1J0b016VGlVSFdJWU5qaWRleWxNTkFKYWl3VDYwZTJ1UDNvblllTXVMc2hxZzk5VmgrWGJ1RG1ZaU9XUVJKdGhPRXhHdWJrYzFTVEdTREhFS0NqS2NpMTFSVUtzWU5Nd0FHaVNrYjdBNjkrUXcvY05IangxdTVucEYwNE9YQWlmYnovTzZZYXlzZlJvdGEzTjVjT0dOWHEzN1ZXb045MnRzM0J5cnR3L2ZLKzJCQTdoTkJ5dUdOZ1ZvQWJIdDhoeTdnc0VDN3RDd2RFYi8vdmRPUlRrdFZKUm9SbWpZT3RJczRobGtzRzZRL3A0SFp5N04wZnFod2hsQVNvN3duV1pVRHBFNXhmckJHTHBuTnV0aFk0RWNXT0pOdEhSMFBBZG1TVFZuZXI5UFdNcFVGd0RFS3ZibmhEQXMvWlQxdWJRUzYyZVFEbW9VSHF3WEhxN0NMU3ZTbjZpRHNHRW9qYm14WHdsY1pWUUZWcUk2RUNDeElET1RXSGtGRE5sQzFjeFFBdCs4SXpqaGRCUlhnVFRZMG1HN25GNEorbkVHb09HOVAyODhRR3F2WDVVZUFYRXZ5VmZRZ2MyekVSc2poKzBLRDI1UGwrWVBMQUZHU0o5dUdPd3c2K0JyTVkwcHZXUUs0Q29rN1FON0JBek9vRURmdVltenZDWUx1SGxlZFBES2hEQk1OT01JY3REL3NFQzAyWk11UTVEbVNJQUJYeHJNeGpacTdyV3d0REQ0ellRTjRiWFJCQ0tmQ1lDV2QvSjQ4ajY4WitSV0xGTWVqaURPdVFYeVdrQUZNenRUeFFBME9Ya1FmWnNCb0FIQWhZSXI5QmtUdnJYOXhCRU1mZmhzNlYzcjB4TjJtd0VZZlZlblJqbUYzK1dqYi9rTTNGdTFNUVpZeTczbEdRdlBwV0Y1VkFwUUhVVEFIUlAxY2JwUkhDSGIxWThJR0c3MHdNUnpnVEVWSWpOU1JYb2ZrMHVwKzAwaXJ3a1ZPV3AvS2pLc0g0aFM2SDlkT0ovY0EybUR3VHdheGdIdWZ0Wkx3VHFJb2tGMm8vQWpNRHhjQk1sS0JFTTRxYi9pTXhaejlkRHBFZUplcVduQkZONHpQNUtwWUxRN0YwdkFpa2JuRzBzQXZjUFN0UmI4eEU0ZFBhczBmdU9uSHNISkhyV2hlUHVkUmoxU3FQME9Bd3g2d1FDZXlZTlJBWE5FVDlwUTZDUGdFV29XbnpJNXFkbTRRejFHaGd4d1BMV21HMkdqS1FHVWVmM2VleklBTXZZbzJETFMrMkJ2a1liY0xoRzRIVnRBaW9Rd1o4dVFRelVRNTQrUWFRZi93TGZ3R05KY0phVWx4L0pGZ1FzZGw3bW01eG51VEpVY25RZHNPcWpZSGpvRGFGYUp5REFIb3JtbUJiVkJWQ2hjNjlIY09KVktZT0YyZ29iTnZrRW9nZjZJc3AwSlNGYStrSi9DUkJEMVZSQTc4aFNRSkQ5akFManpkSHlhUHZFemlaUkcrTFJHdXB1cm5JbGl0b2prbHNDNUJVTmVaMVVlQU9qZjJBYjZDZ2xDNm1ESENtRkNuc21sbERJVUhFemJtWDQ3NWtGeXJEWjFQK2dHZ3c1MFhYQzRKNFJCLzg3VlFId0dodE9TclZBVFp4S1VIWTZBQVpoNHpiSHRqNGtCZ3grQk82NlZ6QVdOOTZTWEVvR1BQajBsR2x3bmM2ZGJTM05relJucUhvb3FHQmtBZWdTMmdTcDNuQUc0RFJ5Wnk5dTNnUzVrRHRrWWg1cHhVeDNMSjBvOEpLZ2w4akFEM0c4ekFOUWtLSUZOcy9ZUExtTVBrWG1zYjZFNnhpK21VQjRhQ0JnTFkxaTJVajlBbW9NQnl1bldKeGlDaVQ4eHE1aEd6T0Zrc1Fjd1hoWnllcGF0WXpBRkJocXF3MWtHM2RRMEpvVEoxa3NjUXRIdy9YVHQ2WUdCSjhqa0dCUFhWUDFRRDJrRVNlam9VN2V5M1RzWDZLR0c0U0x5emZVNWp2SW5aSENrMnFqeEhFK3ZiVENMQjlGOUFwcGlTck16Z0R6WFcwWk81ZzJZWURPaW1SNHdpUjJCY3BNQnFPNmZCNUE2Wk9DTWtCa0JRTE1RclNMd01GaWNlem9Ob0szQXFaY29ITVpaNzVNQmNycGxYc3NmcWdSRVlyMzFPc0VrLzBBRkNMQjI2cFhmc1N6SUJFRFdMd3VPVzVkZ3FHajlaSUIrOWpMRUZGcVlIRkNFQ2cwM05ZSXBmM0F6UVlYa2NOQm9yNllQTlpPN2R4anBpRC9JbDAwR3NOaThZdmpMbTdmUlRBRlFPZVNIbC9DcUFSdTM4SnRXWGh5ZXlHdEJSQ2ZjVFFZZ2I4dFhxV3pqRWxhQUFMQVFOd0VDR0h0dTE1NjJpRzZlVmVtZnpEWURCcGlWMHkwejIxb09XNC9GYXlyVlFRNGxXUHR6RVRMRkZjTmUzMmFWTDFLUTZtU0FKbG95Z0p3KzkyWU1vSzY5U1B0ZzZhbC95Z0FlM0x6UURIQ3JNM1VyR2ljc05nU1NQSlhnZ2dFK3NYLzZQUWJZWjVhS2pCSStsdmk2RVpvYjhaWXRNTVNtaG13UnZmRnpCZ2gxZjZGck9wWFlBb0hVaFFrZ01DZHUzSmdqRlZWR1JKYllPajBOdEtRUytJUUVXR0JMVERmTGU4MjhYSEdJcWdNWUlNSGEvUVRxYWk4SmdUVURBb0REbEJnTk5vc1ppZXdPMFV0clNSeGcwdDc5VHhrZ1AwN0lEdDBxbzhZcm9qSGV2VndDRm1UWDMySUFINUVLSzF3eHdHVExCdDIwelFEanEyaXhaSURGNHBJQk1sWG4ya0tBNjd3eXVpbVJ6aHdONW5ZOUlEUzA3d0ltTVk0cHVZUUJWSmJEN0tWem1mcUJIZUkwcnc4bGF5UllPeUtLVDk5dVEyVk9VZ29BTERuSkFCWVRRaU54MHJuTE5pUU9KQTZRaWo5bEFCeU1YSEdpZVhPTVFiU0FPQi9teGRjbkF6QkErL2NZZ0NQQ0xCV0VzNVF2bDhnTE5aejhJUVAwcEYweUFIaGJkN3lyY3dqNnZLK09zb2pUQlBRRnd5QVhsVWRnd2gvRVlVaGEzbUV1T3lURzlBTjNGZHc4QkJVd3dkcjl6Tm5GVEc1T2VHcXBlRnFKMG1JVFdWTk9kTytGd0c4endQZlBHU0FrSzhoTHZRdERXYWNXS2I2K29BMzBsTkh2TU1DK2tLT1pNYW9TVDJ4MEgxeGRBZ1kzQU1NMHExOWxBTjFZZG14RVd3elE2Y0UrbUF3QVRpSzhOamxHMXNuYUZHRFFzSzhDb3F2L2w2NkNIN2NQUVd6RXBxSkpiWWplc2lFcGI0S1lEb3BrZ0NFYWRsRGpTZ0trNytoUEdZQ1lKSzZDTHdUTXVTc2xOV1orZllzMlBkTVlmb01CVG5YR29JQ201TXZWeUl0TEJ2QVQ4ZHZmSzVlQXBybGNBcUFEcmxhbTFOVU1vQys4bTZ1OUpjVktzYytZRE1zeGpKZFBrZjBsT2tCaUxoSjBqN1RuTnc5UkJTU0s5SnhBWFFibmhZV0NBL3RVcCt4YldUUHJjcVVEaE8vb2p4bmdFcTZkZUtDU2FHVm1pYVFObE1kQjU5Y01VQUZVeWcvM2x6dTBrUmR0QnVCYXhUMDdZSmw4MGR2YndQYzNBdlNSNjVORGtyc0FTM1dhWDE5dVlxc3hMR2R0NUFyMjdSeDZ3MVdBT09uYmh5RHBYWnJ3eVc1NHhWTTRScllKbmRRSnU5WnM5bGJ0WFFESDZZOFo0SGI2amFXdFZwR096dmZGQlFOd3Mvb2JERkNNQ0liY1Zjb0xPOEJOQm9ENWtSRFJKL2pTZkswaUExeVZBSVpaeE4wNUpDblY0QVFLMUdiRkFJUnF1aDVWQVVFSkREbVdxVUtUcGVGR3ZYVUlndjR0OUlueWhoUUI5QkdwVUtJNXhobmc4OERXcnhqZ2cyM3hmOEFBbVlpbVNraTVMR2hqRU03ZllJQVVmQ3FUODE3NWN0NDYxNWNBNUp2eGZmSVFPemlxVjdjWklGREw1UklRbHNBNU5vYWR6R0w3bm9zTUxnd2wwRGQxcGNpKzIrdmlURDdodjV6TFh6Y1BjWGZnaWVGZDJub3BIVStXYWdaUm9tbENBdlM5MVJLZ1lmdGZNVUNkZmlNTXFabnFVRnArZlVFYnl5c3orQ1VEK0loOE1rdEZmSGkrWElXOHVHUUFLcVEwV01pNjN1aDcvZHdaWkRMREVvenV5QUFKMnV3cmJsY1R3YnN2SUhRQTBiYm91YWF2RmxTb1BVTElEeENwQkVoUmh1cmNQbFNxVlRLbVpBNW95UlFjbVZKbGFJQ1RYQUlHYkx0YUIyQ2plKzF2S29IVG1DdG93Y2tGYmJyWXVLNS96UUFjRVlkWmZzUzk4cElDZWJFNXRSbUFma1BicGNtTW5zdi9jcEJ1NmdDWnM2UGJ6VjNBMkhHWUFnV0dOekJRbXRPdzBPNlkxaTlCelJjZUljOFBnTk9VYUdrK09kNCtWSUMxclgza0hvRWlBSXNiNWhvbVFqQUE1REFhWXJZS09zTTZZT21tTnFlL3VBMTB5MDBzTTUvOCtwSTJ5REhVWERMQXNQWUZjRVJ5cWY5d2xiTFV2TmdRWU5wbUFJZmVLWVQzc0ZDVTZCd1l3WjlMQUU3RGxTS3BDM3ZmRmpRZ1JqaFFtaHg5N2FIaEtFSE5GeDZodTJJdWF5djRaWC96VUtxQTJlSXBySXlTWDQzSXZKSUJ1bHRyK3RFbG5iVTlJMFR5SnhMZ3p3MUJFUXJUc0lYY0xtaGpTOWJjR1NBMWRRRlpGV2xnMjFrcVVxVXNlTWFiQVhiYkRLQkdTNXIyeVVKelloZC9wUU1zMU1teFdIQ3o1dzZmaFVjRUJVclR6UEhrTUxtcUFqVkhGaEdLN0x1WXl4eWR6TTU5dW4wb1djTmJ2VWU0K0dvOCtSZUdJS1crUlRZTHk5eGtnRDgzQlNjYnMvVTlJMVh4bHFhMUh1aUxncVpPVjdzdnIzaE83aWM3YURrck1nR1FOK1A5aTZHSVdENnI2cUpwc0JwemVQOXFGM0Q0QUJpY2tnMGpoM0luamhGVytyY3FWdlNKSFkrSVhTZHFLRnQzRjNNNWRqYXoyNGRLdFFxdE1nWDhrZ0hZV3FaZ2ExMDZVZjZRQWJEVnUrb01DamJtZ3lPcDZGdVZwaDI1WXo0L3lRQlVsUllJdHNsVVpXV1dpb20wOE92bTNtc2REVVM5WklERVQ0NUdxT0tqZFFQd2tiK3lBOHdialhOWXU3OE1BNlNCSm80Ujl2S2xwMlVCRWsvcytEZERQTUxnQ0ZMZWVRN3pPVnV4czdsOWlBTUU1WUJWbjFLdi9DVURvTG5OcDFBQ2QvS2ZOSHZFSHpMQWFYUExIWnhFUTNBYU42aFlzTXEzdEJCR1o0Q3N2R0hMSzhQU01DSjBwNkdjR3o4ODMrZmo0SzI1d1FCZkFlRlZuTUp3Skk5aHlvV2JVY0VJaHBJZ2RPaklaL3JMOEk1SyttNWdoSW5TUFFhSHNUU3FsNGlqZDRlUi9LWnMzWG5Wamw3TTVVaUlmZnNRZDVNSHJ1ZlFpekxTNkJjTUVBMEhxMjFnWmhMNFV3YllMMjhGaEtSbGZEVFJpc3BGREU2WkVzOU1GNTV2alFoNUxxOWVlNGVDajFFenpGSlJocWcxL1d3MUF4UkZXbGhYOEFYMXExR21ib0FZajl1NEFNdTFCVmpJeUdnSFpaKzFNYWgwRWdGcmNKZmtNRUNKdkM2MDJmQ0pBTEFheUhlTWJ1a1BMdWJ5OVBZaHFsWFFnQjhlVXNSaURmZ0ZBM2pqUVFhRVpLc1o0T09DQVJZbEEyVFcyK3NoWWJIWGF4cVgxUHlWbVRYWFNIWnY2NncwTUVDRVZPVHl5cjBlZzlJb0pqSkV6ZlBNWnJQWXZRZzhEQUZKL0tSaEZSODA5WUlsd3ZvSk1nZzEwQWtWQzlwdEZCWUVERnlCS2RhMmR4QThrZEhBTFNQTkFxSzhpQUVpdjl3VjFKTkd1dEtnZFBNUXJDNGVKR0lSVWxGTXJHQ0FwcmxnZ0NyNEt4aGdYalptWitRQmovb3Zrb1NreUMyeTNtWnVDcXdqa2JnaTF6d1FyZjcxNGdXR3RsbHNDT3RHSnZuZzhncThCSk5RZU1FVmlBbitpa3pUMlZoWmlhUWthb3RlTmtYVkxjY0tpUVVlRUVMNko5aEFCYW9RVngxd3k1bmlOMGw1YlVEQWJnd0p1MDhPVTc3QTRTWHdQc1EybzBrWE1vU01CcFRmYittYlFMam16dzV0UjFFK0RFc0ZmNEZVbDVyR2tlNWpkR1Z6UXE3cVh1Z0FHeit3cWxQejVZRHpCdytuYm9YUmpzUVZSb0NRbTVudWd5S2ROZGhmSHZOdkt6cGJwdUFnQnBSSktMemdpb2lKL0tVL1FMRnNWaXN1U2ZsNnowQUw0aWRQUU1YY094NzROam9ZVU5rcDRkOEVvMCt6YllEaTA1dlpLYUFzT095ZGdHaEhDSDk5RWR0TUlMUXlBR000TFdNbGRMc0k0cng5eUNPOHdlUVpDWjdKb25MVW4wQWUyMzg4U2V4dC9tY0hBWHFMUnRLb2R5VU9iTzJ1bVNTRUF4NC9jTmgxSzBwS0Z0K2xTa3o4S2dUQ2ZmN0MyaW9OQUlYNEd3RXhUUEpScE9EWUtMMlloRUk2eUNRUC9ncy82dllTK1g4OFF3SnhGV0FCVEVhZG5KNFJBSEliVGVkcjVnY0FrYVhIRWtBczBhYkVoQ01YQnJLUEhJRnp6dWNlNC9XNEVrU2FJZzRIUzZaTDdlQ2NaK05xMWozZVBqUjlKQ1lZVVM5Zy92amxFTnBTMDlEbVFPSnNXMDh4WG5jemJhTWZnSGdNeEhZTWYvVkR4NVc2bGExdlRGd2gvVXhrNGNCWHJvRDhwUU5KS1ZvT3Fnenp5Y2lSS1RnNC9DbFhnWFY3ajErUXVYV2JjaWJ5QU9MYUNLMnplRXU5SEUydVJ3b2haQmJ4SHNzUWttL0ZCZDZSMThHc0t0bVp0dzdNYjdCb0FyZFZQaGxpR3ZMSGRPVmh6ck1qYWdmN1BLdG4zZnZ0UTg1c1dJekFlbS84WlN0TmpycXRWbWlYYzRRcHhpbVMyQ2liOW5GQUtPbEpDcVl4WUxLQWVvNlFxU0hXTWpjRlp4SEdIMnlSdVRpVWF2NExkUzN0aDBNWHBUbnRwQU1UbE11cno4ZWxaNXc0RmN1c1pRZkNDdnp1OUhySFdxeFRUajQ3U0FnQllCTEFscXlTaDVuaHdIdVExOEJKalZrQmREWUNOWVUwdVZ5cGR1ZTVsZHpFdmlSd1c5ZklZUllKSXFRMlY5cjlYU2Jrc1lVbmY0MXZIeUpYazhuamw2ZnpLRWRkcG80blVibVlJOUJNWmpqT2x0ckpOdzZRT3Bta2dBcU5qL3c3dFJ0RXNERTNSVGxwd0FGQkEwRGNBVjdtb3BtNUtwQzVJMW4weFRwT015eXZQRUFwam93VEptSTliUkdUdlNGRkNQMEFMMkJNUnFRSENVLzJwa1RrSW1ORHJtS0dpZVo4eFJzVXBIWmY2NWNqMUVOaFJlSUtUNVRvVHJZTjg5NE9rQkk3aWdRUlVwdTY5djZPV0U0bVFhbG1YWEZvVmszSUltR0k3aTZnY1BCa2JqbS9jNXpIZGFLUUhQUXA4aDNsbVhXZUVCNjRURklnTFpaaUxuZUdXYVp1ZFRGcGtnWVlWYVF2NEtLWjJTM2c0a3BGN2drZDMwYzdlZVlIbmd3OWZ6eCtNeW5WTTlPeFBiZ1NwM29qdTBCQ1lsSklRazk2SmpkMmcyM3FzYUEvTXh5d0VIV1MydjB6OG16ZlVQbVcxVkxYMEhZZWJuWm12b1l0T0NwajRwbm05L0xNQTNlUmtJZFplbnpXYmV4M0pPa3BaNm9tSDRwOElaRld5bk9walBHVkhPYVVIRWFQbVNjSThRa2haL3FwMHpwUGlCK1lWVWtLNUVBcTQ4eDJZZ3VyYWRjWGsrYVlOTmg2RldwdGU4dmNXdWlaeTlqSzZmano3VXk1NUlGQXozL2hhdTRDbVhCQzFTdTVYK1J1QkFtSlNnTUpMYkhGa2RPRCtRMXlKN3QzVEx6MmRBRTVJcWtkYU1oTU82MUtIVnphU3N0WitvUVhpZzJBRmN3emdjUHpEVWlseFFOa2xwNndEa1NDSDgrTlJrazZZOW9lNXZpeUZVa0huUUFpRGlVNVFJZVo1cG5jaFRFalIrb2dPaCswOFI1MW5oQnQ1UzBZVzVMYmNUa1ZoS0pxcldrdExpWk5RUU5HQTMvVElBSUR4amwzbW9ZaU4xQVBwNnV2MVU5YkhBajBQUGxzcEprb21IQ0NNM3JYcTdMY0oyaVVpUzJFVnN5aFFKVDRZazRHaUZUQ2hxbkZrNXpVRU5pdXlGUU00Q1JxTXdETHg0anZvSWtxUDB3Wk96OFF6cTFpNTA2a0VWWDBUT2h6NG9SbWRrUlN3NlJXeXN5WjVRdkpLYklDM3BNeTRJZTBiemZRQnQ3RGZEYm4wRUdZY2VpSDM2UE1Fd0pDRWJ5T1cvZzFZWkREWnhXYmE2Z0FyVW1qMzBJYVlLQ1pBSVd2SnYxcGExcTZwWmM0ZTZZWDJkREUyUFFUUGMvb2QxUlNZc0lKem1oWWo3UE94VEpLNnhrTm9QZlk5R0orQTU0cGlnNVlBbEk3VU5wVnhaTklyVlV3UUpMb2dnR2VrUGxFSEdOZ1VaaTNITG1KUEF5QUxYeHBocERTUXpBeEhHa21NUnB1U1kzeUxPSnI2Vi93S2RLYkcyNk5lUVRzQ0JKQ0JPS0w3KzQ2eU1hU0FEb01GVUJrNUFuaDJ4VzNTQy9CL2hxaHNQNmZWT0Y4ckNiTkVrbXBBTnhGZUFCRk9CZUFMZ05uS0FGMDBKRFZndFBWa3o4eGdVV0Juajl0M01sOGNLdC81bjJBazUvUjhOQzZScEhZd2tRczFXdm1OK2gwc1IvR0N0SUZISDdkWjE2Tjk1SUJNclZXTW9DVFNEcmJTd0FFMUdwWGVRUU51VWt6dFZIMVRtYU93N3djclRWR01vWlJ4NEJha01obXpBdjducEk1MGtqSXdKRjJ3SVB4RUtpNkxPVWNnaVFybGxhVlEwVWk1bVBrQ2FGOGl1Z2lqR0RlWXVsQlZkckZ5dnpJUUFZdFhwZW9LaUowaXFXYXNCbGJ4SmNucFQ5dmN1aXZtU2M1U2MzcGFtbDV5UlpDS3FEblRaQTU2UGR3MEVCTnlCb1AwWU1IbVFXakFROS9nbHhIWWd2YnBNY0dHM2tzVmx3ZXNVRlhvTFFXTW9NUlhRYXlISzVNclpVTWNBYUowTm1XQUpDbmcza1ZFMkFTd0ZrV2ErZmRmd3FZVjlNUVcwYi9zOXJyZXo3R1NndENGNHlaSHhNaXdIRnJHcVZTSUFST1NKS2xBdEM2MjZVOFlZNnhQUit6SUZtZUVLK2p3Q3pLbEtIa0xVL0hBcG80b2FBeXlxeGtSdHVDQVF6ZExQRUI2cXJ2TVFXT3Bkdkd3Z0N2SVZrY1ZqTGpaTmFSUUlMQ1NFV3hjMSt0NVhseVF6bVZ3UEE2bndISFlZZzJaV2JISENNVXNaRkRRZWVpdTNmQloyWUw1LzhvQStWd0ZhbTFnZ0Y2U2d6eFZXRmdhZ2F3WkFvQWxCNGlLcWlPblRac1lBbnpZa25JYVVTZ2ZIeGdQb1k2elV3U0VGQmNCR0QzOVFJRElEWHpDSmd0MG85UUJwVU1VQmxzR2VUTVBDSHVRNkpta05VTDlKa3FjamhWKzZyZDRoWk0xTWljMXNrQXRodnFlWWtHMWdmRGJaV0N1aFoxcU51ZjZIVWQwZDhuaWs3RVJXbVg3cWNaN1czcDF4bUUybUhWekVUZVRqcDh0WVI3UWJ5NmlPVktqT2hJL1NQRDBNeEpQc1NMdFFMY1I3dElyUlVNMEtoekZjTWx2Rkl4UU5TdFVVQXBWaVRZREs0eUFLZDJGa1hpTDdsNDNoRGJXU0RqSVRZeFJ6bnpZcS9TVzVWNUJDempzRUp1b1JwZ25hc1lBQjZ5cldYTUp3TmdtQWVSajRVN1FOeGNJeWROZnJ0YVBsb2hRVWpYVVpqWTdZMmdMV1pwS3k3MFZxUWw0aU16S0V2YWlybzlkMkdtMkljYW4wVWVzSmhhcjJuVHdONTdtcnBwZ1VZQ3c2QTc0VjZRK0UzVExpSU1Rcllqa1lXUWx3aUhjOCtEWEVJQzlCZU5Cam5UUTFjeFFGYXVFajBnY2poY1k0QUM1clhnV1I3dk5SK2dFTENqM0VLbkg3Q1dSSlRhUWU5cUJ6UFVpbHNvYnVzNHlqdGRmaDhxaEtCMW16WjZJbTkxTEV1TVpXUlNJRjRWMjBSQ1piMk05UnFNQVdHRXRZSUwxN3hYRlF0RkFTZDVXbzZEbDdVb2s4bU1hVHVEWXQ4UE5kNzNadWhGWkVpS1VoU1hndVdsanVtVlJjZnpWMmJ2OWZyTXY4MEFaMFd3OHZHT3NVR2FxWjdId3RjTTRBc1NDbjVIdE1ZMUJraVlGem1wS0kzZlhWVmxBWkZPY2lLZGlLSGc5dURFWmRZRE1jNU1HTFdrR3BLai9GVHVhM3B6ZERPOW1GY2EwWHRrNGZaV2RDTnZVVmJNRVpwNHJSTnE0WDJUOWM0QW1aQUhnYUxNbFJBWkZ5UjJLTkswUmRXNEJRc3hvVGVVZS9SU2hKQUJGc0FIWERLQTJaM0FybitOQVpUK3ZnMU42MENueTFqNE5nUGtnclFOZE5EMktnTVVNQzhDUDhBQWhpaXJHTURUeVdGck1SajQ5bURKWmRhR2M0RmRYQlEyT3JOYmRlMDZTMEFmM1EyMXVIR1JCQ01LdDA5OXlXRXZDUlg2SXNyN0hiZ0NNbURYRmk3TndkZ3E1QXRwMnpTdGpBdno5VHlpUnlQanpScXh1aXcrcFdNRDVSNjluNFVvSGNRU0VBeGdoWlExdnREQnIzK0xBUXI2bDNhQUx1NTZnd0VvQmw4bjdMN0JBQW56WXJ4WE1JQXMwNWxPWW1hWVA2SlVyU0lWakVtYldHYWJOU3JMc3JiMGU2Z2hIT1V5VDhnbjZyWTFoOGdlNFdnWjZjM2l6NFNZTFpBYVEzc1J5NHRlVkYxVVFJekhxSVFXRHJIWWtBRXdxb1F1YnNNQUZldjFZS2NJOXFwb0xxcEtpckFJNjV1dmptZkRqMlhRYUNpQktaYUpvWmJSSlBqMXJ6R0FEZzBOa1pVbDhEY1lnTjAzR2FDdEFtNEtCcUQwTEhNaG9wRDh3bXJTUWZZU2Vxc3F3L2s4RUlJd2Rwd1FPT2tXOVhmdDRMRll2bm95OXN3ZmsrRm4wRmx5eFlvZ1hIaTBHTXZMdVlZYmpyak9PYlJTUGhsaThSeVdoaHhWWGJ4WXF3Ym5Jcnk2MDhueDhGeFpQWjIrMGtzRzhOQXo5TG84bklwdTZoUExmTzFGMXJiUlNDN1hxT0MveUFBS3FXUFc1Tk1mTW9BODdHY01rRWtnUE9ZN0dZREJ2c1NKZU9GVlJhbXU1d3RLemdLbTdOQzFsSktRa2RxOWkxUkY4V1pDQ3g5bWl6R3pTNlVOM0htUk9EYnR6YlV1OGJtcnFIT2R3aDZqZXAwQnRKbDVaUUluQUZSN0h3OTZHQmdJR2d5QTBMTVZlNTBCMUl4UTVyQjZYL29vb3VoNXIyRlJ5Ny9FQUo4ZkI1a3FGTG0veVFDT2xaMzhRZ2VJSkJBQjdrb0dzRnN3TVdGVUdkZkp1eHBFL2puSHUrc0hNK3NkS1AyU0czNWRJaWhTUzlhOHdwazl0RXlnUXJaQTQycWtIeG9RaktSSktld0xCbmk3dWdURWhzSEMvbW5NRDkxU3l6RzZFaEVadDdTVHlLRUwyTUxVd1ZJNkxGWVZsSGJMdjhRQWg4WVcwZTN2TGdFWjBObnR3bzdLMGI5a2dFZ0NFZkRPTmdORW5iak1iRERzaHV4dG95dDZGL2t1UkNtNkR0MHYwNldSdDlqWTYwS0VyUW9ranp3REh4ZmpWekFBVlRoa1M2bVZRR0t0RnRKU0FpRGhvaUUvL1FaUWtBRVJRZTkxQmhqRE9KRUZOc01aOUpjWVFLaGdTWmZNK2ZVYkRCRHlTTlVjR2NQYmRvQUVETlBnYzZxWGdNV2NIQUFaNTVqYkJGUzgxQXlRUTE5dWk2NHpRSUhzY05YUVd6bFEyVnN4UUQvYXp4Z2cxcWVWNm5EY0Jyb1dZUVdFaS9MK3hPMkxFQThkZ09pWXd4eTlOeG5BdlJrcVZ3NG9Bb0NZZ3BzTXdIVk83Q1M5U3hFbWZIZ3hYTkI2YWREOU5RT1FtN25SU1F2WUZRWWd6Q3Z4d3FkS0NkUnJtWSs3V2srSnYvOWZNY0EyR2NCN2U5NEc1VXlKM21BQXdGdWpkVzR1QWU5Wlp4dlZ0SnRhWDlCMFJZTmtBTDZRQWtLVEFaeFk2TDNOQU83UGxFbGpDY21GL2c1TXRYenpvNXBVOWlRUkdUbU9oQnJxSnVSaXVMQ2hvdC9xTnhoZ1hKZzYwZ1orbFFHWThpQVNRWllNTUFKMFVUNituWHFtaERGQ3lwclNZMkxIRlB2U05Eck1CRGFYT2dDdDQxeHZWdndQVCtRV2xyMHNGQnFrWG8ya2RYWXJRR2xLWVYvNEF0eVZCenNPbDlIOEVxaXR5UUFjUUd3am5BRml5RWF3Sk4xa0FPSVN0Rnk1ZUhOeEZqTmpVUUpCRWp1cDBwTTRYeENQNk5zWXN1cFZVekRWZ0o4eGdLZmVjUXg2QlpQS3NyekpBRXg1a05qT1pBQjRvQUJleGJFYkVxRFlCUXdkU2srQUxidkIvSmU3Z0NGeGxnbEN3UWNxVFdnS0RKaStiaGxRKzRUYk5XNFpPMHIvZVE4ZzA0U0htN0FuL2RKcStDbmFHU3ZrdnZPK2NrUFZackc5TFBDOXV6UWs1SnNobVRuczdsZWhpOFFsc0lTOXM4bHBIS1pvVUpVTTROdmJneW9Wb1ZmZ1ZMTHE0bEpnam5aUUE5SkhpTFdQdU1OZ0FMYy9iR3AzQjB0TjFXVjVqUUU0Y0ludXJoaEFvWXNrYWJIOWd2U20xRTgvcUFyVXpIN3ZDVFZsOWFuY0VXa0hnUGpEYzhNT0lPUkRGZ3lZQW8zVVdLdUorSjVIWG4wT3FsREtmWWRLNlJUMllRbmN2Tk52Z0R6T1ZrMTdiT29zTTJnc0RwUkNDS0xTWHBnU29ScW1WMFgwQmUwOWVFTHVTd2I0K2k1TDJJT2trVlhRVENjTG42dTBuWnA3d1FnWjl1azVPdGZ1c3llcDVhbFc4eVpOK2p1c2ZZWTdoSXRJcnc4TDVMTEdTVEVTcGwyV1YzTUYxMzZnNWI1a0FJMHBoM2pIRU9jdVFDVm55RFBEU0RLSlZacjgxTFZDSGNJY2ttdU1wMHVBaFJvVDRHc015RjVpdXhIcDRkWTlHMzFRaXF6bEQxejRoaXNUWm5BR3lkUktrQ25TKzFQaUsvME4zVTRMODBKT0pZUFh6Z1FONGtwMmsrOWliOE1KbGdJM0dZQ2RKbWt3d3ZSUTBKbmgza0R6bnREQkdIaGdFOW83ZEhyVVRwQmFqYjZkQVhzUlpVQVlLWEdIc0VVV1BvZ2xDeUk5RTVYR2dwSjFXVjRraTZiZ2ljeUJKUU9vWTI2VklGOE1HNmE2Q0paNVp1RHdvQ2NZQ0t0TU5XSkRzMjRpN0ZOL2tjdGxraDA4MnFEVVdSQy9nTExGNkxYUjExN1RSUUQ0RGg5L1J0K0ZzT2UwSWdOZ0ppU1FHQ1dwZUYrUVpkNExER3ZwVG93WXdyRUZuMWh2U3RoTklYQlpnTWREOCtHNFpLa0Ntcy9wenN5UXF5S2ltSVNrajlvTHZ6dTRORWk5QmFuWnE3R1poSkU2R09oK0NyUXdvOTgzQUpVZ3pGNmJZU1FRTVpsbGVXZFdMOERtYWVZT0xSbGczc3doVHZ1RGNxcHpQa0tqOWtyZUdEaTZDS1EzNG45SDdJNEVObzRSWG5QMEdXKzByQnkwYXdiL1JLQXRISTNxK2QxU0FiTUpOSi83aG92NUxISUdaY2s5MENDQnhGWk5QYjNNdTFWZ1dNdUFnb3dpTm84MGUwUENMbXVCZTJKZVRTOWh6MXFXckt6b3FSb3k2Rkk1d0RBRkV4SVNyT3A0MU1temcwdEJhdndBZEppOUc2L0JmTys0UTdVUEVTMk1LQ3VyT3owbW9oVDFmazhPZElwS3YyQ0E5QVBacWxBd2dCWWVvM011NE5BbzNFVzMzNW5nOVVoZzBldVp2cEVJZ0VrM1hQd21tUUlqek5GbjJmcFRyYk00TUdMam93L2hSNHZVeWVQOEFGVmNqV3pEZFpvVk02akkxMzlzb1lxQmtMUTRFNXpiVFF3cnZkMW9pU1BnV2hxZGpCNXBDVnpHd05ZbDdLM21kYVJxUVBPdzY2enhyaTJ3TjZ5SkhzaTVJUFVMb01QczFldlJwbzdKQWpxY0ZCNFRKanoxSTRpOWhVQ1E5bmhmNGRUdW9HUmt5WWRnZ0tacHNIUng5c1pVei9sNHRraU1DS1V5cUx4bnFtR1IyTzBRM2E2R0VDTXNqWk9DRWVBdGJEZWhVYTNlNGZNVEFWT2NRQ0NLM0JpOSszSUdaYjcrWXd0VkhMVks5UTVLbGdJcXU4a3krWlNsRHZqeDNwU3dJWEF6Q0xwVndoNkkxV05CNjZTZjlBYTBNZXFGSDRsSDFSYkl1WnJVN0JWc0dvdkY0ellKWUxWeXI0SHhpREw0ZXpDOXdkWlFhaGdsT0V3SFlEMVJWd0Y5SlVNQTRqbG5MejMvaUJibWZQVFFjbkQ1bTBvcWpLZVZjajU2RFhJTzg3UGhrd3M0MW9Sblc3WGdXbWRoVmhQdGZRL0U5elBSVmc3aUkrRG8xYXZhWHBsQlk0aTBOcEFZTzdhQWRyOEZXUmhXak44dVN4V1p0cm5vVmNoZ0NseURRUUE2a3lYc3ZmWWlrWk1WVlExTnQzSDQvcU5mRUhoVW5xK0Mya205U2R5cFFtcVJYWURqUUFnN0lLcUI4Y0F3Nmo4UXBaQ0RKcks4ZWpKTHdPa1NrSWxOZFhDSWtFTGo3T1hwSitJRllqNHE4YUsyL3h2SDg1NDRFdWtHMUxEc2R0UzZ0TEo3aGhZNkMzbzNLSnB1ZUduMnZpaG9GNTA2VGc0NTFEc1l1UHAwTVlQUUQ3SVVRR0xna0lJc0xPMnZnaE5WOW9uWHo5VlNENHpMWHZ6R0lmN0VQVm5RSHc4bVdvdGlvVVFSZzlBNFBTVEQyNXVMREZUWFBXVnlGMExjbGRRRjdqUTQzcGNYVDJMQnVVVEVtOHBSenpHRHVDMHFMYnFEQTJxS1JZUHVpRkFsMGtOYjR2MkZqWHoyWXBvU01SVHpNVW10WUdEbjJySEtxS09Oc25aclB6bGZtWVdqaEc0UW1vamZRbWVKWWNlQjZHVWZ6dzVNNDRaSVV1a0pZcHA4UENuOTg5WGtlZ0RzajBvdW9MbTE4U2lQQjZaMTR4eUdmdllhOCtrUkhMTEpxSitWcUlUazFTVUhZWlByUGFicDVtUjRFd0ljbjU0VXcwOGtqRlp4cHM2QTZ1L2tpOFNkZ2xTRURsUEJMTExFNmRuTXpxSWJSdjBYMjZsd1Z1cldSdkZDMktaYXhSREhxQU9RanBaNC8zcFMrMVIvcWI4UjJNQWxocEdOcDhlU2hpTmdabU1BL2hiU2pqR2NlWkZtd1FnbzkzdmthNUJlRUxSTzJSQW83NzJ1SUlGbWZJQlFzSDVmRng3NEdlT2x5TklacGlCbW00c3VOSmVoaW5yTmhkOFpuWWhpZVgxVkZGckxEK2ljaVp4eWRudzdSU2RLdkZ3SnZ3bVMxTkJScmU5TkpBeXJPR1BYSUowV002MmtMbkduSXdTc28vNkhiVEVaSE91eG1MUTlOVDNkUUNNYzNGUGpuNnNpdHBheDZnNUx5LzI5Zmtqa1B1QWtmZWZNSWFsRWZtTzJjZ0pUeWpIVkJZYng2YldBeStlU2JBTmNKQzZKazhCc1hMWWhaVW9vOTh0clp0emxnbGNuYllFK2NLUllnZjdtY01ZM1I3UlNNNlIyOHBJS2w2NERvYnkwaVBQdGlmWU1MT2RMM2JmU0dhOWZ3T2FJaEFUbFlubk05YkdnS0ZkVDRvc3RaU3VBKzZKV094Sm1uMEhvRExzRVRkRkwzR251ZXhuRnZHN1UxRUxqVTlhbFV5OTVHT3VpTm9KYU1nZjBxNU1CTnE1eEtHRXozNG0wV0xteWw3UFZwMlk1eUJ4R2JZVExveGVpYk9zMWxJemdXSFFJQWFhRzdtcEpDZVhHYWN5NGUrUU15N1JOMEFoRDJVaXlrQzQyQWQxRjE4WGd5ekwzWnNobXk1dWIyNWR5b3dMb2IyNytJVnVKUHlTRVdReUxQRFFhWW1QSzR1RlFrRk5EUm5COFVsUmJZQkJPTTdxa1pZb0NkZFF4MDNFR29VdWJPNllUVzZjTDNHa1p4ZHhuTEtiYUdNSzJHeENuVEtXTHdzcFd5UDZWRE1DY0pESnA3alAvRVJWaVR1b0g5dVpzTFJNVEVoczY1REFTTHUrR0daaEZ1bEZEaVdBQm5JUTVFa2h2TXgrVlVHNGFXckFEcFNTZFpPSzJJUmRJbTVZa3l4a1dCdERsZ1FJbXJFT0NxbEttSW5Pb2RoQUdqQlp4aUhUb3dOSkU0QUdleEVxcWdDVFFDRVdZTE9qc1cyU2d0ZkI5bTFrSkt5Z1RPaStMd3ZMOVR5OHdROHN4MHp4N3pQUW1UT0lMSnBmT1FGcEVNU000bGhHVEhFTFVRd2FlaWNEWGdHa0RvV1FzQkNWUUJaUzJwNGN5QTlvcDgxOWs5dnZZVHpQL2dnMHlzYUVkbXVEOG1mNUVIVm1GOEpoZHprdlI5aHdDSEpHWVJHZ21sRnNCVnBGeEY1S1V4R0xxUmtjRWZTT3poSk9sYVl3dUlXRG9ZVkdraDBZTHFscHNFenFqbk9Wb0VvZlZwRERqRURJRUttQzBQT2pqakxrb2gzQlBTQ2lhU0hBRmcrTnQ4aEpOeDJrYUZ2SGxkUW13TFB3cTZmeGd1V0hVRzFmY0tSMW9HZFdRd2JGcFBnVmJBM21EeDdsSm1veUw2V1pLb1BZYmpLWE1nYmpFbUxwWmpkdEVuNjIxMnFuQXdpdHVMREtpREM3Z2Z2VE5FVWZlQkFUWUdLQnZFRVNhbXdubFZtOXlaTnpsRE12a3JaaVltZG5GSzJXQ2xvRk84UUlaNGdrMmZIWkhtZDlyUFlabDg1REVnY3JNaUdicGFvaU5lMDFzSEFQRUdrRE5ES0QrWHFUb2I5YkNoUkV4NjZHaVZ1NGxmV0xqVWdjWTlPUjlvUU9NR1J4cnZsSlB2MXVVQUZIY3FZZXdaZlhrNGFRc2FVQzJMdXZNSXBVZkJCRVlGLzRhR2pEdlZMZ1l1R0diZVUrWkt0VmdjcWdvWEpYMGh0NUpLVWVSdzFnNitUKytYaFJyMWI0Rm83OERXaFlRWURwMjVDb01aUmwxVXNhdWVJWDdQdkFFSW1kNWZXUjJRV3BuakxMd3dRRVRrTG5OTE5wbGg2QkhXVExubEVYN1UwQkpjTms4RVpTempHZ0dOczZCRVZYSi9nRmlmK2xFUS9Ka3p0R3pHSzZqV0ZZRWl5dWhFZHJPSVBiVURVclVXeEZFTVl4eVl1V2dESXNpVUVYOTlKSUJuSzJ0V0FDSGxSSGRmV1hwMEJjUUVYSm5JRGZlVy9tSmQzbkZtTnA4cWpKWUwvcktSNGVBQUkzRFk3NHVRMW5vVVpCT1VDMldMVUlMNTFqZ0VITm52a1NPL2cwR0FKUGgyUU9NY0s4SjBUenphYW54QVdnOWFFQkZTUWdkUi95NzZtVjVkRWhuZWplRE9Qak1Bc0JZUm9IdHE1TDlvdXVmUGRneWt5ZXZOVVZ0SFJ3ZkZKME1pd3BobDVCRGVsc2lyRFkvL3dZRGhFRFd3dmU1QkJSc0xjZ2JobTdqUGJpSVdBZ01uWml5Qkd3OTZYMFVJOC9xc3loVWRtZ1dWZlNmem5QcE5UWnlTQTZtU3huTTV2N1NnUW1ZVGtFUFZVWGhhOERsWEQzSmVtMEd5SWh0Z1BsRCtnem1Ya1RacCtWaXJ2ZUVLemNQOHBYQkFCWlpPZWRWM0M5amxobHhNaGw2d1FCeUFrbUdQRXdaYkQxNVpsRWNIUFJLWUFyZWVjYnl3UU5aeTBvTzROc3pIVGwxQTY0K3J0ZXRHSGNXcEs0eFMrY285MExQRXpKK0NQc3ZXZ2dwVlFLVEVTT3dSRENTVlJ5THVZUEJFbEhKUHUvQzhKclBpZ0ZNN1NTc2l6QWJCbmtOazJZMFBWNnBlYi96QmdrQVZieHI4UzAzSlFBVlhxVS9kcjJOL3VGQlRDUmtNeGowTGNKam5nZERBb3p3N3hwKzd6TDJsWFVFa1BvL3FtK25KSmFsbEpBbU1Tek0yRzg5V2hkTDdwY1JzQTdFZVMxS0FKZXpvOXZOTk5XY3B3bEV4T3RXQ05OMmlHOHFnY1J3UWsrbkFPOGZYTDNNV015T2NNdTZaRVRnc2JYSkxaSUJzcHhDVVZJdjBWZnR1RlhLT2Fvb2tkbmVXS2VNLzc5YTh4NmRYU1lCcDVsNkdaa1Jiak9BblVJcjFueXVTcUxNQkdOQVRrdnBHZlFYdlo3SmZ6OVk2d0RDRjRTZExrOVphQTRuTWlMWTlTaUdsODJkTnJibm5aYmwvcm5aNm5tY09jY0FWdHh1RkEvTzlYRWdkZ09tUzZ2bmFWR1M1am9EVUFEMitpcVBzeElHck5YNEJ1dzdDQjJQR2dob2dkSkFZTWxLTjdhTnRKSUJvdmpMMmVIRVdBR3krdXpWQVBDSmk0dW50N0xxUWsyenk1cjNTQ0VjWlFDWWREUnBmcHNCU09OVlQya0pZc3E5SyttRzBvYnlFaXY4eTRQMzFTNkFLd1A4bFV6QkYwOTRhOWNaUXpxOXhRSVJUcDZSY0ZyV0k0UnhqblNHbmRXR2FUS3FDZ2R5TDJReGNEMmtTVkIxcnhhYjhlUWJET0RCVG9hL25qdENDQ1ljYkpZQnFMWFEvNnFDYWVKYkVyV2lyVndDT05ubFBDK0ZHelhRR0dSL2pRRXE4QTE3YXdhNFd2TitvOTdkL0RMNGZIL0ZBTHdaYUN5TUppdzZrczJQdm00VmZ5NmZyNlRmV1ZyTTNad2pXdG9CTFBCcGlFVHlwYVlIR0hjWjU4dzlwNkRCRDQwU3phZHowQWNpV0kzRlpBMk9nVjdlUFZlbFE4ZjNqRDVid0c3Z3RnWnlEQ0tsSWFQNExkY1o0SjNoam90R1NlMzJJVXNyQ3cvQmVSZmxBYk9HTVZzTmlPODNJbXNyQ1ZBSW94RHFUaE9BaFpJQjJxVG0yQkVYMEZ0VkRIQzE1djI0WFF0cXR2OHRCdUFrMzVrK2g1eU5DdFhOOVZlWlFSbEF4QnRTckVrSGFlbEdLbWdOS0Z6TkdPbVNBWExreVRVT2cvN1EzZWJPQmYyMFBpc3owaFlNRUhWajdDU0l2QzRzTUgyTmdhU2cvaFdhcG1ZQW9wT0F2eGEySlA0YXJnQnR3Z1NqODBYSncyamtMSUlPTG5TQTJLK3ZmUVZnZGtPZWRvc0I2cXJuTENWUjlGNnRlVC8rZzJwd3d3czQwZHdZZ0g3dVRvc0JWaU1xZ1VxellJRDBCZXlnSi9iV2JnZXJHYUNTQUJtTWpCM2Z3RlU5cHcva1pKbVJsaE9hREFDOFlkd0tIZ3BZNXRhUnBlaVBHSURTdE1aZkV5RkZFMDZCeVhTalVaYXZnNG1WRWdkZ21wb0Jzckl5TkViNkU1SW12MTRDN2d0NCtDcG9WdFc4LzJNR0FFRHEvQWNTUUFmV2xjQm1vT1RqN3AyT3FpNU1BQnBKdkdDbWtTczZ3TUV1aXJRRVBWaDBFaWRZNlFCVlJsb1NUbDhPWHh4RHh0eHZxR1ZZb0RSTHhha3NkVitrR1FITkU5VE5sK0JsaVpGY3FKaWVZQlVoN2pHRDk1SHdiR1ZLQ2k3a3NHTDRKeXdmbjdYVjUwYndWTXh0aDNTVkFiYkVnSEY1SVlwVUVUVUgxOXZxbXZkL3lBQXkrTmp4L0VRSDJNMjVicm9TT0RJbDBIUUExeEJuY0ZVREJpQ2tiRVFsd1M0aENoOHhGVUVBWHhObUNDWkUwcEplR2pMQitFYVdseklqN1lzZkdFRXFjOGlxM0cvYkNkTWtVTnZMc212ZEdqZEZVc2NmSmFxL3RQbjV1RUZMQVZ0VUpROWhrNFQ3cjhLZGlReHNIS0VFQmdqejFnS1BBMVdXUkY4eEM5RUZBNGducGxOWnFqRmhrTFBzNEF4UTE3ei9Zd2I0NkJNZzVma2pidXdDS0xCeEVBelE2ZW0vc1VlYzdTTkZlcitudkhHV29XcUJ2blJGd0toZExFTXdoaTBpVFU2WWlMR1hNS2xmNkZpWTNxamlSd1pJWG9MbFNOK0MvVC9McW9IUndiaVQ4Zkx1cTJML3phM0hJcjJCZzhvU2FCcWpFNGxLb0ExclBHNG1EQkFaWWo3VnFtV1FzVElYaEE3M1I4VUFtSjM1UkF4TDVKVnNuR1pWemZzLzF3RWF4WmpNM2JORUhyMXVCd2dqUVRJQWZtWmlFL05WckhlOWhVeDNJVTdjbEM0V05ldGxQY25TOGdyWG5KdTh2SklpUERwRHF5bk1hUmR3VDVpQ3E1MXo0aGhIblRRZE9tb1p0ZFNaYklQZll0MFk5eXB2SDVPUHVKOGhraE5IUE1ENU1uai8wS2ZCM25kRFdBTG5rZkYwTHd3dzgrTEtyS2hMbTZkOGFlRGthZ1pRWjF5VFQ5d1VtV1huNjFoVXE1cjNmODRBOFByQ3QveExTNkFkYk1UVTBqUXdad25yOStzNjExWmpWNFIwczBzR0NDNVhpUVpyT25mQlNVM1RIVC9sREZneU53bFd0RU5od01uNnpnTUVVN3Z0ck1BeERteld1UE1BZDBJS0xXVGpaQTF5M2dmZG9UR08wY3Y1SzUvUGt4M2ZSUCtvWTJ6Q3lVMWNzQVVtTUM3Q1Fvb2lESHdHSGVBOTY0QVNITUFVKzRHVGF5MEJ1cUZCYVU1SDlXakZOZWFXRGdhb2E5Ny9PUU9zcEVWMHlVOTlBV01YOFd0a25qenZrTk4zWjNIT0pzME0rNlFMaU9xSFpJQnc0ZEsxQi9kN1JscWtsMUJrSHIycWtLVHUrS3BLOXVNRmpYTDBCMU0wNkx1Ri8xZ3ZOUGRoSnRHVGxpQWIzZ2ZkaDc3WC9YWkRFRWpOUUtIRVRSVXhnUmZCK3g0WkVhZ1pCQldPaWpEd08xUXVnajlnUVJNekFVMkprN3ZRQVhyck1xb2dvc1dscFZwOXRlYjlIMjBEaDhPSUwwdHY0UHpTRzdpTVBQc3l6VERQbFA2c1czOGtBelR3N1BVVnB0M25STThxNnlBTzhpQ1FtcTYvbU5OTGhDNWgyVnhPS0hZUFdiSWY1U05rdkFodVRGOHB3R0lJVmNCY0NwRE54aW9zREJEQ3d1QUdsQ3l3ODlIZDI3SHVkNGJjWUFMTHlRaGJZSW1TT2p5akhielAyQ2dMMEdOWXNVZjRMSFViYUpXTFpDWms0QU5DVmlIVmQyaFVNSk1CcklCeGx4aXdZOWFYcUswRDdacjNmMWdVL09rcGdrZG5QNHNIeVB5RlFwVkd0eDNoWHAxWndSaXJ6enRFTW40OVROSEJwT05HSElUM0VHWElyL2N3cmw3anNHeS9CRjVjQWlFaE5DMGthSFIyMzRkRlN4anFWUW5OR0RMcHRnc1lHeGVZUTRKc29oRE5HZDFlOTN0R2lMTlIybUthbUVuNUVoZEFjclRLSjhySkVWTHJrWCtBaDk2cGpLcWNqQlpLYVhwZGIzZm01clZPQitXVkpCd0R4SmpzTXYvSTFacjNmMVlWL2lWTHN2MHNJc2psRlVkZmptVXAvZStNdis1dUtkTFduT2dNL2F3RC9DemUrakZpQlFHUXprckFXWmdkaHdJSWlYY0E1VXp5Y2tMYSttaXlWeGZJcVBITzZGaGlEalB5MlBGMDdHWmxGZys3SGFKTlBLcFJ1aStRUWRJcWhBS3dKU2d1T1l0cWFsbjVVT3NGSU5XN2hnNWtob0JqZU1yNnRwV2dxN213QTFTMVpMNElpcW1xRVR4ZXJYbS85RGlSQ3daZ21vdktOVGlXQnBUSjhXY3hnY2RUakg3VXg1aUFMbGJkeVVaNjh1elFYMXhLMFFFWm1paFRZZzl4dnd6bFRsaDJwRjNvOEpBRElma09jalBHaFdmRUpBT1dDV1I4TGk0QVdPL1pzUWMxbmc1TmlCcW90L2NNaWJlNDVxT0JqdDZyNHBZQXhDaWNMSVAzdmJ3c3dHaUUxV2dqUEJnTUlPdC94a1BKamJFTGlQUy80V291TFlGdlVVM3FCMkZ4clhvazEydmV6MXJWN2NBQUxOV0V2VTJhenNBZjBnRGp1SXdLbmtSVThGZU8vb2dWOHpITWpsckJTS3ZNMCt1bDZlR2NXQURjdElQOGdTWjhkcnhBd3JLSkdLSFlWYWdCeVJrRTlaT2RwQWFFU1NSSm9FejBnRS9VRExFbjh1VGxqZDFLT0paOERsQU1rUTFhZmV4NHJiZ2xTbUxPck5Kc0FCZ0pLUTZzRFdBelFBY3pWSVR1Wk5iNVhUS0ZSWlZpYUZ5VkJIZjRtOXlFNWJxZ09EQ3p3YTJhOTZlcXZpVVZUdS9SNTRmeEhJZFJvUStJak51NEFEbk0wU2VpcWtLdGZSR2RxVEtQME44RW1RbzVBYm1yWUQ3YUNFS3g5a1poU3JIclNLL0VUTEV0Q1c1TWtxYnNmU1NXTEJGTkozbEtZQTZCR0dUWlN3VzRFZU5tM1VRWWd0VHZEaHFXRytzaHZZYkZMYk5HTVhnUzROR0VNQXYzNnVxU1dCdWhzOUpmR01DaVFnY1JFeTJ6aHRqK1ZrV0Zka253MCttb0wvZVBOSlVDdGd6bVpMbGE4MzdmcW5CNy9NNXlqVkU2S1lvanpUQW50QW5HNmlveTZDaUh5OUUzWkRBbkZGQ2dPa0FFMkdMQ09jaVV1RExJMEVTWnNrVHRpWUJPWUtiS1NzQ0I5WlFqTDRTM1RjZUduREowWXBSL0R0bkxPUXFLQnA0ZkwyLzNjcUllSWFQeE5zcHNpbUpEWFU2dE4rOFlZNityT2RZcEQxVGl0NVY5TzJhVmNodG9PVUROeWN1akJ3YUhXQnZRLzk4N3F3L1ZBZEtDdFUwTnVwb3JHaUV6clpMZytuUnR4Z0VVeEc4NVdhN1Z2RC9WTmE0eFFkaEQxaFdDRUpOSnVDd3BwY0swWGM3NWhDRWtVSDVXb0xBcG5EaHZ4c1R3NnZWVEcveEVsdUk2LzlzaGNUaWJRRlRYbURZT2hBT3kyNTlWNHlGTEljdS9nTGdLS1F6VVpSWmVQRldEZ2F1QmVzZGtjYjdJTEFQSy9UYTk4RllzMUl6RzRtWWdWd3J5U0dNQ0t3YnNIcXZFMmlnRC9QdXZ4Z01BRUlJUythQnFwaldJclFRT3RVdUNvK0Y4b2IvRGMzT3lIRSt0bXZmc2pTcjNuQ0NjYmV6SnlZS3plUXdaVFZ3TUpzQVBoL09STE95c09HKzgxN0VFclJKcmoxYlAraGw1ckYwc0U2V2JzejQ4ZENhUmRWSGp1VzV2VlBtOXFqZi9rdjZpUkgzZ3JxSGVVM1h4RWFYSW5BeXhYSUl6b3Z5eFRVaGRITEhBNHEyOEhMMDJGRGRqeHJCVTVTS1JVVVQxcjJCZ1paSkFaWUQvM3NtM1JGS0xEVmNXNUM5b3B4ZzYxU1hCVHpFMUFiVWxRRHd5SnNUbU1KdHZTS21ZNEZqVzNaYkhKZVlRTnpadHpBYUNpSGhjSEhrdktpRURKZGhFc1pIZklhTkdLVndCN1F0dzdjdDFuenBHRnNzazV1bTV0SnFvc0dQTlNmUm53NHBXQWgzanI1ZVV3akRmUncxVVdtMURwa0pwVXJzT0ZHYWxOemZhV0NhcEFlOVV4UVptQzJJWkVodExCUDBVZllhMmN3ZnNlVzVCYy85Uk04QXBrMXFNSVNveHM3aGppTG1LQTJWSmNJTHhNYWhGaW9nczBmeHRPZ0VicDRYdnZUSlZDYmEvSkd3TGMvajluVlBFOHJCZ29UTXhpQTRxNjlxZzk4bUhVR3BTL1UvUUtxNXd1TzZGNXE5ZlRIUXZ1NGw1cXRObm1NTHJtTEpzYnJFT0lTdVRrSC9KbFE1MlpNQWViRHlaN293bDR1Q3pmNElGdDRjdHM5QTdjazBSUzN3RzlrM0loNmVQdUpTREFkS2xsK1ljbHdvOXV1MFl1aDdiL1M5akFKbTc0eHJHeitVYlRiaUNmOWFsMThzYTRLZGo0cXl6UkxQaHFOREJCc3VZSVFtaHgwKzhiMGF1b0lJZmU3aTlJZUNaMTlDTDFtd3o3MFZ1TkZTRGdXQ003RHlFREJLMFNxdzlFTTczMWQ3ZkNsTGp6cTFpbVZOemlwYWVFeXgyWGc2ekY2MzBXVUhJaWszZC90SXJEZXhZcERtV05oaWw1MVorK3NFdURDY3d2TXZmYXMrQ2Q5WWRHZzFUMitQcHUxekt2N0xvdzZlNzlPU0FPY0xDMld3ZUgwZCt6STVrQU52WlloVnpHUCtzVEtyamlHRGFwTkRhTmNBTG5IV1VhQ1pQcnJJRjdHcHJTVXBHNklOd3BhdkNqZHEwNGhHa1NUQ3JaV1lpaGdBZE5oRmhha0E1TnhYTHoyV2hXMEpHdFFWS0VqeFZXUC9BU25YTnNUV2hoWXdDVHQrcE1zQTNoaFV1OTZJcFdkcWw0eGptd2JCazJGS1pmNDF1M25lRzRsUnA4QThMNWhZWGVsdmx1YzNKUzNZNjhBNityNVRrRUVvZTFoTmhYVnc1bmtQc3Y5S1ZEVjVGZXBqL0tBT1liUXVybU1QNE4yVmFMZjdKSERMZmFPMGE0SW16enJxQk5QQ3NvM0VVMzVtcVpLZEVJRkp5T1MzcndKMGR1c28xek9Ic1NDYUhja0Y5ZEdDODVTTExXU1lYQ1FWWnlVckZ4ekpLUFFEZnh2S2F0UE92dy81djFnL2pWZ1kxaENlbkRnSmxMamg4UEh5OG41bkluZ3dRMFhHQ3ROUXpHTm9UY1VlMGc3dWNwdFQrTEJoQTJBOFNBRVcrV2RVNkdHRGRhN3pJZ0R2RGxkZUx5bytIZVlUMno0N3NEaWpMOE1vSzhGL3hCbDdDK012RWVnNUFZeUpSRzROV0RmREVXU1BUUHhtQVFGODJIOFdJUWRXNk9qdzVRTnpBSExxYk9mT1dlMFlUUERlVDFETDJSVk11dzNNdXI2QStHTUM0S0JSWjZrR3g5Z05NdXJGNytyS1NKTjZBOTBJQVJJQW5MeGtBWTAwMzhxSk1aRzhMYndZWlRURGFrTWZwYW5jR1lPakZDNmRuR2VLbGxRb3N1anhRVExMZk1VeVNoQVNEQWZCMGVyUTJLTjZhUlI5Njg5S21EOEhnd1ZzT2hDTWxqUUgrNTQ2K1pqZzlITTlVcHRZa0lwZ2tZRkh3dWdZNDEwVGlyTWtBbUw0SVFHVmptSGFad0lRT29Nd1VYSWEyYkJ5OWxTbHRzc0JzVkVyVUg2d21NMUZoWVVIUVVFRUNtWUNRSkpDZ1Jsa05zZ3hja1FZWDJONEdmSEhKQU5RQUxYd0k2WlNaeWQ2b0VmbTBRVUVyZkRGa2o1NUFobVpGb1FjR2ZySVFodGxJTzhZQUhVY3htYkdSK3dWakFDRUltQU8rQWlwTEpIUXo2QzA4R0lvbG1aUHVpTnlNbExCQ2Z6QUFJdm9HRFp6cERLVWxrV3d5RTVlWURQQVBHU0REZ2kxY2d6aHI3RU9ydWhObFdZY3BvZndxMVRVVHJjV3JlT0JVNDhGdHZBWEw5cTROeitYMVJTUHZSY1JGNzliS0FCYjQ2d3d3UyttM1lpQnNwOER3QUNXNW16UEV1MFRVbFNGNmJRWUlEUkI1enVIVFRBMjNxcW9EWXZYaFloMUZkWjFnQUlKd1NSdU9ybVcvTkFid09lNlpGRzA3UkFaUTVnQ2thR0tWc00xMHo3cE04ckJNKzFxdEFmeGZIdU1LOFAvdTRQYVJTUVpKeWpDVzBpZWJEcUMyQk1paURFVTFxUTR0VVltOVE0bGt6NGlNdFlNYklkTzRLMHo0cWlnT1JqMXlvcXBocFFRaTUzSTRIRHRhL3czZzhoRld6WTR0QWZicEpJYktaWXFtS3Q0NVB5SEN0Q2twb2IxZE1rQ2hBWDQwZEdxalZaV1IrMFlsK1hTbDF5aFZnSmdUckd4aTYwVmtZOWRkS3huQVFwak00WWpkaTFxQ3lBQmtEbTA2MUpSMld4WWt3VHJBMkU2b2dUd2lmZWRZaW5JRitIOTM5T0ZxZ0pOSHpGOW5nTnNTSUpiMVhTY1R1akxMQXVhQXRLRmxSQzdXamkxSzl4V1ZDT1pLUFZESFZ4SFRJejNOY3lKNkd4MVBZcU5BSVlCQll0V2tUeitwRjRrVVhoOExkN1BQK1dTQXk0cEROUU53YThHeUdCYm9oa2IvRjVWVVFLbzB4R3FOcGNreEd3L0pBT3doSG9NTWdPQTJNb0RPY2FacDVhMlh3UUJnampPK3FOUVJ5V2R5MU5PNEk5MVZ4dnNWNEYrekFoa0Q0SHNTeGovVXFmYUhFaURXSDIwZVZwRzF6YmkxQmllWEZ3NVgvdW5wQTU1a0lURllTbk10U2dZZ3REUWtnQ3dSalhBQVYwMG1PZHJBQmtEcURlSHR3TGNWN21ZQWdDbnpnZ0VTOVpZNGpXQ0ExQUIxUUhlc1c1VGhJaWFoaXBtSU9EdGlBT1VPR1ExanNEc1RPc0VBczJBQW9KaVE1R1hPV04rQ0FRYVc2cUpoMFdJdWxheVhNNnJJL0VYMUVjOHNWNEJqckFCMzlPRWovTVVEbHY2VUFiZ0RXVGRsVmhwdWloZTlJdXB0ZXAwQjBnZXMrbzNyQUpCNnczSk5xQ0lLVXdkWW5mVXhMaGd6aDFxM1kyZ2RFSDh5d1lxWmp4TFZOMGNreTA2aTRsQy8vTEprZ05BQW9Ud1dHRnd2d3JRRXFBaVVzQm1oc3pGaDUvbjZjNFQ4Rzk3cmdnSDZhL3QvMVo4amp6c1pvR2tRRzZ2YWJVUlZGZlllQ3pMUHZYN3VEeFk5Y0VnYUFiZ0NNRVhNdk9jRnVuK2hBOEQ5WGpNQXNWa0xvcGNqdEpMeTA3Zlc2TDNCQVBReUlVNDJUQlhNdkxYMmhDYVhESUFmR25HdFk0SlZjK0JKam96OWVvcmo0aTd0RlM2dGNEYy9VOW5MMEhMYVREdXE0VjFuQUdxQXFKT0xtbm9mQjJ0a2dBUlV6SGVReElpMEhBUkw1K3NibTF2bXpvSUJIcG14U1pVWmtTRDZZWDRNbVI3VmZObFRRU2ZjbnRWS1dQa3hLdWxSamFZcGdBY1ZGL1ZSR3dGMEQwQUdrR0xlckF5QThmZ0pBOUFRZUFtc1JPU1FDdU5EUGFrTVd2REIyakEzR0FBK1lPUWFheUlObmxWZjJHWFI2UEh5a2dFc0RWVmZ3M1liZ0VjanlSRzU4dU16N1RRYUNEUERvK1JaQ082VlM3SzhDZVAzc1JHcEdNQ3pSSm5MbFVtQ09sQ3QxbXhrQU5OOFFYSE0wN054NW1XaG9RR1dDWkNrR04yTitSaWd6S2lpb3N0OU1BQ2VqWjFMTXppcmlBQUQwS2VFb1k1V0xQWEhGQStzYlAxYXFZQmtBQzNtM1V1d3oyMEdPQzNSS2dZSVN2ZDJ4S216N2pvTTNRWXVDdERGZFFaUXQyM1VENmVkMThMOWU1NFJBNDZKbWdHWXpROUxwUXc0eHVWelVUSUFRcmREUkd0OGhYcUlhUTFHdERldGprVWRJdXlIRGhVRDhDVlRBMXlzSVdzSlgwZ1hlNkVFSU1vYTFiaTRwNmhxelptcUJwSVVvd3VIQkUwQXFxakl4NlVOQkJaYk13RWdJeFlZQUN0MkxQUGt4bFQyUzFPQUlOeWlPQ3pOd01rQUtPYWRxTFBiRE9BSnVkc000Qm15OUVtbHllVzhFN3NBeXZCUmp0OWdBQjg1Z0toU2gwQ1dEcXhMVDRpeXF4bUFHWFJScUFRbUFCa1hwNWI3Y1d3Sm9DYTFuRmtNZTlJZmVSNVZ4ODQ2UkJxODd5U3JHU0Ewd00reWxpMmE1eGhkUnZsQzhCQktNbU95dDBLaWJhdUFmV2ZKQUhnTG1nQmt0bU01cCtYdVpFWnNDRHJwbncrVUFieGMxck5qTU5ESzdYNWhEdTVidm9mS0NKQkx3STRXcTU4emdQaU5HSzc0NnhRaDhQcXBxMjRTRlNJbnJ6Y1pZUHlZOE1xdCtub2piNEcrV3RUN3FJUEtIUmpSTWNPNWduLzdCUGpTa3d2RUxyMjFGZ205bkZLMVFJbEJmUmI4aDR6ck45d1I3RXF4WUhsTnFiUUJIdGlJNzA4bjluNldObm5sSVZobmFabXBVVEZnRWhDcXRRUjRCU2RBZ2JBeGg0ekNDRzJOT1lUWUZGUzR6dGpTekwzU1NFZk9kVFVIOC9qbnBSRWdHWUFFK1JVRGlCUmlBTXZsRXJDZ2FhTkE5SG9PblNMdS95WURKQVFhSllBTXNVaVpsQlYvYWdid3dpOW1BdERCd1pvSkNhS3hIRzZVVVUrWHgvWElmS0ZxQVdpSnh5blFud2wvWkJqVG9zQVJmcVFHdUdiRDYwK3NXU0JrS0FGbW5GYkZzaDhxUU1rQWVETm81VG02YnJtSGd3SUpsaXlGWVZHREVpYUExWnJ5aHd4UU9ueWtxVWt3VjN0NDdzeFR6RmlSTUFMOE9RTkVVT0NrbmRiQzY4ZVh5QkQ2MGkzWnhlOHhRTk9RU1d1T3lKcGZOUU13cUplcnBnNk9Nb0NsbnlNRExNQUFtZStZdGN4WWhyV0lVNEJIRXFXTVRPeGtRZm5kemp6WmhRYTRRa1BHalE0YStCeExtZnM2c09SaFY4LzE1TDNTWVFFTjFqRzVaSUM1MTJBOU5PbG5vcEZKSEc3SUxTdE54UlJFZWl5ZXlGMm14c1NxSWdEV0FMRE9wUkhnVHhrQU94RXJmbmV0UXJjdUk2dk1haERscUNiaEVQVmVTL1RTV2dLSyt2N1VwM21aV3RNWDF3b2themhoWUgvbHE0Ry9iREpEU1llcE10ZzhNcEpsZUhjWnB4RGlkNmNCT2ExeWx2UEdUS3Z2b1FHQ2M4eksxR1B6QkxSTE9ocys1U3lXeDNhSDA2eGtBQmdUMUR4WE1nRERIVlF5SVpONGVwcGhaQUw4U1JVdDVxRG9tN3JzK2JYdEtmR0xETUJvTVdBeGFpUEE3MGdBNUVISVYzUmJCTzJvemdCbHpydEJKTHRBTHdSdHB4TU1tbFdpTGRWQk1BQTl3Z1BpWWQwVjNJQlF1K0NmRmdQUUltR2FNVktSeUtnbE50R3lLbnBMLzQ1MnQrSVVaaXo3T2dkS2xBVWN1TGlSbzhscUxtcEJvcjQzK2tWRDVUS3FVL1FPTGcyWkhER29DYVVTaUxDa0VSTHpOTmJJQURCQ0FrcUdPajZJTnhxTUZNdm9HZmFaaXJINmhZalN3R0owSjI0Ry9wMGxBTGtNUkhyU0ZsZjJhN0sxYnJyU3VJVUNadG9IS0ZJa3NuQzdwN2ZreXE0b1hWRzVQLzNUZmJlS1pIZjArMFNlYmFEVDlGRzNHRURvdG1Qa2o2WUp5dFJWZlhsQzBHaGRaT0w3UEVTck1XdUlFdW14SXA2cjlCRytvVnhHZndObVFEWm5BSXB4eWx2UHo1cStyQzJ6Wk9waVF1ZUgvQzYzZWsrcVQxd21WQ1UyQ29DeFYwWWNodEV6dzA1aEZKakVMeFRHU0N3RzlCUWdnc3dPOVA5dU1BQzltaXlhbjRrc0k5OEZjcitCZzl0NWJ3OWVEYlpNa1dpNCtGRlpmZFNzTjdFRXVHa3BTTXVwWk1rUm8vTHN0UFFGTUZXOFllUTdwaWhDQ1V4UDdxSnNCUVAwaTFZeGdKVWJXTkVGRjRXV3NNMEh6ZWxVZXVFdU14dmQwQkJsSVcvZHpzNWpYR1pBVTVIbS9GLzNpUUo0WmpIYWI2ajd4ZjlzVjh4dzVqZUZGTnlyd2hxYno2eXlZMjdEOHRjK3dYR0J4VGdwdm9HTHdBMEdpRVJEVFUrVENzWDhtMGIraW5WcDgzT2JMWE9MZTZZS2dxL1JHOGd6TUl1ZktvU29HVUNoMnlZQmFIYnZWT2kweC9RR0VscktHRk1aSmdTa2RubzJtenc4cjI2WnNxTnF0a0NucDlueDE4c290WmJhQTUyd3ZzZFo1WCtNUktybExiRnl1Snd1YXRPaXQwRGR4UDhTOE84UVFDRXg3ZFdKSWRnYmxBeXdsVEh3QjFuRE1xRW5qSy8zWDRZclN5ekdWQnJCSmx3RWJqQUFCZ1BSVkdXZGk2bm5ySVY2a3NXY3E5ejNuRDRKdmtadkFMYkJMSDdxd0RKRVV3bWtaNGVLQ3F0ejFPaTBvRkk0T3dpY0ZsK3pOS2pzWjFmWkp6V0ZxS2dyVzQ2OFpaekNLYXNsRW4vTkdzT1FwOXcvR0VBYlRpWHdYZGtZaTFqTDI4REtLYUdFZ25oWm8rbEQ5YjlXWUFoRVJvVzBkOEs3SFVXMExOb01DQ1NIWUtBNURLMUMyR3dBWlNJRDhJS3lhdXpQR0lBbEdBS016L2xIODd6MFY5VW9yR0lTcGtkV2cwM3dOWm9EdGkxK2xLZHFNOHdvNGFoUTFkUDFubVZqV1cwcnFVUjE1anVnSW1JcXhqSE9KcEtyYWtvU1pOWFlWczBDdzdOYUl2SFhKTmhEUUIyODNCa0NzZlRsNmdhWklhMlV0NG1WQXdsUmhwYkF0MGYrTHlGS0xKcUhzM0NUOTF0Tlp6QW9XamVoZDRteEErck9RU1BFUnljOEkwMEJZQUFHOTJXQXhwUVIxUUhHSnpyVThsZFltZWhlZVA1UjdjNHgwMWtOTmhKWVZNSCt4SG9VQlg2eHdMR09vcDZJVzdJWUdiU2VSS2VWVkNKMmxQQXZTRGZreGVCc1NuSmwwM21ObTdZYVp4aVJVTUNMYlpab21Ea09kdktDaDNwNFBBYThqUDg1VUJSdEUvSjJuTUExYjRLV2E1RTJRWW8wc3dOMEQzZzMvZ05lcld3dnhCaGVma1NKc29YNEovMDU1TFdvQ24vd2c5V1NnaG4zN09xSWxlR3F3UGlzL1BzWWRkYXltSE5kSGRQTFRINERmTTFlQWpha3RRdG5LOEtOM1c4RkRBK2szZFRGWk11YWxnYnpBVGgwQ1NBdHNYMCtRa3VRNjZWRm83R0JoTFBWNUhGbzZEaXBOQ1cwRklXTW81YXBseUpscTVDaXdLaVJFU3BrSEJuSlA2SEFrUlBkWGVEdUNJcVdJU1JYczVHL1NlcVdHS1AyRWZEUUg4U3gwTWpaS2MwZXVRYThSSUIvcVk0RXFrcWJBMGN6R3hCc241NVE0UWc2QklMSXkwenFlSTNyM2luK1EyY0NyNmNiSWpyWk94Mmo1cXRkbm1WajdhUW96NXVpME1nRTRSS0VlM1R5c1JYMDBWcjY5c1R4SllIQU96SHBFdEVQSkR5cUUwc2pCNU5YWjdOQWlwS3BDUzBOREZ3MkRGZ0NSTXZrSUxiZ0Zlb0FFaU5RcGN4R0FtRWx2RkJreWt3Ym5PU0UrcHVHVnBvOTlzRUFJVGZ2QzNWRUNkb0M0MjlPUG45OVZoT3lDUUMrWWZCakxxQytCdWpNaVFLaVowdW1rSXZpaXJ4QW1JMlhVN0xtU1FyaWZDbEZJZjltOGUyaWREcElzVUVCeTVKQW9ISmtUNmdiWkdjMTZaaDdCeUR0cis4b3JWd2sycXFSb3B3WGREQmVhQ0hjTkhkemp6YzBMQlBkL2FIQ0FPQ01VdjZRME40Z29wUFUyVEpUZkQvVHdKb0F5SlJYaGRrakdTQnFKSE1zWFFLMXdmZ3pGdkNkZVQxbzY4WGNwNVNrR0tmQWozRlhsWVEvMm1vVEQvQUsvb25sdmtKbWx5Y0ZYbFNKVmZ5TjZBZXdPM3J3RHhRWFUrV2pTU2NBalVRRDFtMUNBMFpPdXNpK0JZVWFrR01jVDhqb3BrYUtSbVkyN2lHckZsbFBuWnlaVGFvd3M3OUcrWEVheE9kRksweXkvV3hscHZpS0FZNnpTSHIzcWUyU0FkcHlNNnRldXpLaktwSFNscklZWWpnQm85WGZxc2k1YTh5aDFVQzRrZ2lYaUdvYzRCVitBZWhXSXJQeE4wL1NDZ3lSY3VZeC9zNGdXRzRGb2h1RVNQb1k1RlpuN2hVQzBkaVVrMjYxeWtSUVFHRjY2bUUzTFdjY0Y1dm5aaHliU1hCZHRnTE93amFQR3FPRm1mMDFTbk9IUnlSYVphdi9PSGk3eVFBWkR2RDUvMG03d2dDNWJVbWRCR1hYMGU4SzV1YWRHeHFmenI2a1ZYOUhJVE1rTWFBN1dGV1NkeExoRWxHdEIraE04d3V3NWF5UTJmRTMwVG93bm1rc2x6eXZTRUIxUEZtQXZQWWdIMWdCK2duNkRGZ3ZZaG5aRTdLWlpidWNkT3ZlZ0tuZ2lNS00xTU5oUWlTTnZEV29XaWxjeS81RHR0S2ZSWG9tRHJHZ1hwWWZUNWRZdEhVd1FPblF1TVVBTWlVWUx3YjZYMk1BRjVxcGsyQUpwa0VqRkV6Tkk2SXRwak9YdE1mOFc4NkMvWWpXSExHalk5d1JvNTVFcUJIVlBBQm5HaUJxSHI5ZkliT3pQaE96VlNwcDFGOER1eTVUMEVFMFpRakhJQXEwb1N2cDR4bE9hZnhQK2tUbTc1eDBDQS9pK1pDTEhqcmtsZFNTQVFnVVBVVGVWL1puKyt4WEhtMHdHSkJ3TFRET1NKcXJCdWtVajlaT3FKdTYvU1VEUkphUTV1TW1BMUJvVWlYcHVzWlAvVE1VVEVYL2F2UHFudUZmemI4ZGRXR09rQ2Y0empSYUw3M0FWYVBYTnYwbGlOTjFyM1dGek9iZm9FK21MRmU2bE1BTmJMc0lveDZZVnlBWllFRUNmUndjL1VJR3lQWVpESkNUamw2TU5EdE43K25NYURNQWdhSmFISWlWZ0prMWp3MmU4Y3FmcGRRY1JNYU9vSjdoRExpT0pBTUVpWlFiazlTbElmSXFBL0F6UWYrckRFQkhmT29rUSt6NUdkbmdDaVlzK0w3RHdPTG1FNTJUay9ERzlKZy9lL3o4S3VoTUVwQVV5UUQwSzV2cmgvYmxDcFZsZjFjQmFFb3Q0YktTQVV5cmg3eHJkbkpUeXpZYWtlZ042V092eEZVM0NjUVFzYUxXbzlJSGZrekhaaHdMWUZCenVHQUF4QjBJSGlCSUNrOEEyODVSdSsvcDBJemN5anBGcW1wZkxELys4bGd3UU1yb2FyMG8wcS84bEFGdVNnQjdSS0dUZEhLSkJLUU9lR0lEVC9jYjNOczh0NHlwUmhidlJlTVJRMTVhRlVWT3dkNGpPRktjVHl4TUU2M0ZBSWpUWkp6V3kvU1hETUFjN2dVRFVLdFhTRHBxaW1tMXptMUdvb05BcTZpYlNtMmY5TEc2djVaQ29KeDBrUkwreWIwNUZoVFFMK1JPbnE5UFgwWHNBckxtV1ZNcHg2RW80MW9SUUVVSGFLWFhRVFZvdlV5eGsxd21xYS8zcGc3QUhBcy9XUUlxUGZPUWVaWXhRYUk2YnM1c3ZDdG50LzdVdit6QXE0MnBuNGdEWHJzNG5XZWdkZ2V0eGdtQS9sNVVmUHdyQnZnd0xpc1p3TFg2UWQ5aWJUVklObm5NeHJDYjJRWEdvZVJzaCtUVlRudlN5UkhQODJIT2ZuNzZZWDZWQVo2ZkhJWUZEbk5Qd0t1RDBEQVVsUVJZcFFSSXZRN3A1aWt2NHVheGs2eWdXOWQ3eVFDV3pvQVJnYjlnQUNvbFRWYTRqMHJaNEZ3UGhtTjEwb3lOd1FnZDVuWUFlMThudkRNQzVFazR6MGh0WDdhU0FRZ0IyYkVrZWNrQUR3K1hETEN3RjV0VURFQ3R2dCtIdDlyM1hYd0VDTFF0c0llK3pkR1BzWS9ETUpZRVZheEtsQmJVWlpIZ2hYNHZHYUNXMGlVRG1KTUMxK0E0YTIybkRvQWFTd1JNbERUZERTNGlxS3FkWkpENmVpOFpRRzJKMkFaNlBwT2ZNUUJmYU9BVjdpTnRCMFVBYnVIVkVSSWZJU1JBV28xSTNlK2xVQ0NFQWJ5d3pEenVQSXNGSDh0V1dieHY1eEFRR3NhU0FiYlNMaG5Bd3pxVEFVS3JOem1xS255dlpnRFFKMGNJaG81N3NtemZkUGVhb0o3LzNBbkt1aFV5UkZjWlFGb0JnZGdnOFN1RW44d1cxenpHOVM1QWl3RzI0SGd1cDRBb0ozVnlKMW1TK2lONnJ6R0F0RDJoNC9EdHd4TDBjWU1CS0pJNlJhR2FrcGdqRndCUWg2RUt1NHFIZVc3TWpiaTFCODhWUUl6UU13N000RDhwNFNTVzZqSVpRQmNTQnNIVGprcmFqdEF1R2NCZXFNMEFqVFFvOEpvQ3Bta3hnSHhnQVQ3Vi9JVE95NzRBaVBaYk1VQUFPZlNDUXI1bFVhQkNZcUFsdUZGVGFkcUhKQzQzMFVFZmFKOVIvNk9nWGltbm5EcHNOYWtYVjN2NXkreTJTSFlJM3o0UVZCK1hFc0NTRWpEWGdSSGNaQklIQjJTR1BJL0MyL2dxWHdROGh2YU5RVytpK1haUmlSMnhkUEQzYzZ4YnRUcVJmVFc2ZW8zUjM2SUc5c2tBQTdZTEJxQUVTZ2FnalJVNm9NeFFSYXZEcmhvTUFMVSt3YWVubzM4SWVZa0FqSm9Ca2hiVWNMQ2ErMU5mQzUwQlU3cnBNeDJSQnpVa2N0c0dMeVFBdDVrT215Mm85MnlKSXdiSkFJVGVoNk1uVG03M0pnTkU0bkNXcGtCa3p2cUtMMEFYWnpMQVVDdGhwUVNEeENNV0hpVDFlWTdQY3JVd2Rub0tublFraGI2L3ZvbGI0elFUNDZrRktkWGd0T3dTZVNheWtBaXJZekpBUDFxYkFTaUJrZ0hvcVJZZGNHMDZJRDByemdCb0ttZWNQdktVaXdWZzMyYUFIRkl2UDFld0hkNlhrL1REMnFGUHdCblRkRkV0SmxPVTJBQzBLM2pNa0ZNc0drcVNzR0dxNWNuWGVtRk56c1RoeThpWHVMckdBRkNkd1FDd2hYZFM0dEdQWktIVkRPdjFGSlRUUUc1aUdtSmxpQ0J0U0dCWm54cHA4YndMVVBseVgzVHBDc1Vic1FnSU5mOEM4dHBpQU5zMXBqRG1yazZHeStEem1peWhLQkhyQk9vNytIUjJuQVVmODlIS2xEZVhnSHVPaGo3VDJJNWh1YlcxZHQ0VCtqT25YZ29BR29GcWhMdTB6RWNVMUt2bFZMNU1tWXVtSVBXdDN1ejJHaFNUNFZVR01JOEZvYVhuYnBtaEk5RFFoL2tjOHR6bXlMZTd4RHBxWXVZQ29HUUxlbXI3TUZoRDVsZTZaSURzK2hTNXFmTVo1dDMzYWdtSWRtZ3pBQ25uSCtWMkhiRUF3ZTdXbzJUa0kweEVZeTNXaHhEdHo1V01Dd0I4bW0wbE1IZnFwaEpSOWNhcjFaUFUyc3BUcEhpdXdpQnlwcjZMOUVMNGxNcVE3M0tLSXVPWGhxRFhUTFNldlpXNE9LbTJDd1RWTFFiUUtNOVAyc0lyTlpKWkhhVkhxUU02SXo5MVlSSzFlZnRLTEhvYWZKeDJMQlYwL0FVREhFeVpDS1d4VUFMWkxoa0FqODhOV1ZoMnNXd0FQa25KblRvQVlDdXMwQWJxME5TQjV6SmtwMklBS24zRmp1eVRRZ21PZ3BvQndvRWNsVWMyWVRmdzVJMi9ZZ0J0S0RUUE5CdXRtNmNYTkFubGkvMnlwUmxrWkFndzhTOC9ZNEMrSVo1YkRLQXlrdWdNS3h2RS9HSmxycVFQVndIR250UFlDdGFGL3RiNURRYUFLRmRWUEZTeGNodUlkb1VCaHRCUG1wb0JFSzdNZjlvTVFMdUxjZkt5dlFDZ3ZiYXNyelFFcFpldzd3M3FTWXNCSW9RRTlLOEV3R3BvWU4xZkxnSHplVkhCYXRwMkJ0SHpXVEVBMWYzOXNyMDNDRHFxYi84bUE4QmowYU5Tc21KU08xNllPZ3lFcEMxczlJblJGa1NxSWU3WjZla0RwTzNYU3dDN1dLYVgxcmpxZmFWZFpRQ2pYc2tBTytDTjFKWUdRTktneFFDeHEvVUVCSk5JRTFHWVZNdEpSMU53N2R4SkJuZkprRHJEQTBwZGdQNldVZGVOZllUcnQ1VEFLMGs1ZG1VRnE5eGllTHZpK01XR1A2cHZIYUtsU1ZCNThUTHZjV1FKbzkwQjBkZUo1SmNMS1FKWU1oOXBnVzBCS0l4RU1BTlFneTRaNE9QakR4bUF3cGhxd0cxVGNESUFBV25jMjFyT01OTUJzUlVrb3J4Z2dHZTNCTk1teXh2MFZ0RXFndEl5NXZhdjBybERFd1UweDVJQkVLeUltRWI3WUtvTk5BSkpxdVdMYmFEN21wS21aUjc3aTRDUU12UWpLU3dtUDJlQUtnQWxHSUI1TXd1UkhBd2dscHUwQXpCekZwTlVJeXFrbGh6QW1xVkpWSVo1dlVoRDRDeURMd0k1KytzbGdGMllqYUVHL0E0RDJBVDJNQ2RtRFlRWEVPNEE1cFFvR1FCR2VlNW5JeTFRZThTS1NkY1VxSmhsNGR5SkJJUzZYbFVNZ0xoK0ZPU3EwM1RhQmpxOWN4L2hmTkg0aHpveFYxU3lTTlI4dG1TQWtzS28yVVNVYURZamk5RU1RSzNFd1NRRFlCeWNBY29sYjRsVjdHTHBpS2dvbUU5NmhSdmxuVmlxTEtBZmdYTy9aZ0M2ZzIxQitRMTM4Q0pkVk00QTc2cVh3Z3RvWW1Cb1dXWDRDRi9UWGVkTHBhNHRNMjk0eDJaUkVnbjY5SUs2bXkvVER1TkdQSzhRQkJUQnUvWmRoSnl5ak11Y0xaT2psd1VUdlpiTlBsSHoyUnluMkNrcC9JTUM1L2t5Q0hXSkdIc0F0UmpmWXlzNThhR2xLWGdVM2s4Uyt5b0RjQUdnRXpEZGdtVUFwbCtTMVZaK2d3R2VTelhndHhpQXRnaWNGS21hNVRRaEQrMW8wMGhZQ1FLWldYNVIybGlxbGd3UXUzcjZ4N0Z0Wkl5Nnd3N1RGOERRSjZadlJ5azFTZ0JBM2dlUm52UGJBYUpzV1V1MHlHREovV2dSNHpncS9zUDBBS21Ud21oVzlDUmJGbTlCdkxRallxQ2lKajYwWUFCcGRmekRWUWJRbDRKbVNDY2c2Mjh6Yk1yaWQzT0daSTNhb0haQ3FWdGRSczRGOHowVDNac013T3ZLNG9XbXhZVzFpWk5vdmRLWnhFb0V0RDg2Z2Z6UDJOY1B2T1crcVpwMGlZbzVIczI1d3h5VWtSUms0MUl2cG8xOExDQjVSU0V2SDlBdkFrU2pPV1pxVmhkTVJPRWpPYnNWc09laHppUTFLWHhDMng4ZEpab055OGd4SXJjZjBXcDhhREpBSTgwTFlwTmZyekdBdTVkODdmZU5sSUU4RVNSY3poQ3F4TWtBZzRSU3Q3dUFPL1RENVUzd2R4N0k0b1U2OUM0V1l4S2RPOXJYc1djUVFPNEV5ai9mR0xGVE4vWm5qRnlpWXF3SW9UVENEb2sxeEk2b0tIOGp5SUZ2S0dYZlpTay9NNkZySTBDVUxXcUpubG9GRTQvQVJyR3dYRGFDSFVocVFvMElSSnJ0czRoYWtCdjNUc1pvNDBPVEFiamlSUXdrOVAxckRCRDIzajZjdDB4ZHg4aEdGS2l0WjRqWHFQMHFTRUVvZGJ0TDUyY2NMbStDdi9OQUZpLzB2ekhEWWhJTjhZOVpMUnhBVGdLOUZBQmZLblZzYVR1dEoxMFdlMlVWMHoxaGg4UWFuaEpCQ3JzckczZ2xpM2tDMkNoTm9Tc0FpSHJ6SW1sMXdjUVpvSFVuaHlkbW84MEhwQ2FCODQ5bFdibXhlUEltbDRaTGZPamQrR1lVTkVxSVpoMmtJWW1XcXI0c0FEbHQzZW16YjgrUS9kRjBvaUJGUXFsYlhib2hpY1BsVGZDM0h5aUxGK0p2RjRzeGlaNkl2RmE1amZ3WWdlcXRBTDRjTGJiMG5zU2tpMTE5d0xLdGppOWhoNG8xM0l5Sld3cWtrL1VvNFlpQzR6dzBLVHoyeW9oMWU1VC94c3ZzVmdWd24yaFJsQmNGWnRFNUlER3VML25IdEt6ZCtwYXlKNVhESy9qUXUvRnRITVFQMzhxV21FSTZPRHh4RzlMcmxkcCtlNFpZYmN0dktDSWtSVUtwOTFXWHZINGVMbTh5TGErTDRvWGwzMENZemppSnJFNHZjR3RmZU95N0UyaVpmd3FsS0MvcjZXVXRmbGRsUmpFekFaQWtOQ3IveUl2WWd3Y0JpYWhjRWUrUVJVU1hJUXNDN2Jvc3l5UVdhRkYwNXY4eTViSFh0STQvd2xTaFJDeTBqMnA3Mk1hSDNpMHZrVkQzUmVIbHNoWWlZZHVKdFpKWkJ1UnBBdVd3Y2lXT2VxeUNSTG9pODBHU1lvbDFhN2tzdXhKSnFpZm5UUXBndGdGRzBZaFQ0NVJoY2VVQ2NiMjBRdUNiQVAxdWVCS3hpbzV2eXhhMTJERmxTNFE0Y2FKWUN4SUFkMy8vRm53WjBCbERpTXFQeEU4V3JNOXlvbUJZYWdNSitpM0xKSTRMdENnNjhiOHU3bkpYcjJHNS9DT05sUmFVN2ZrM0tnTlJHeDk2Tjd1QmhXVFo1cUlhYWhSckQ2Q2ZiYk01R280VVI3SG1CRlZqRG1JY2M3SVloaDQvT08wZUhWWnRoNHVUSFdpTUtlYXpLcWVYM0RxclFIUHFzL1FvYmVBczBVNndGVjRQNjIwVW1rYjVXc29QcnBVc0tPcEttSTBQNlpZQU9ORVBuaExqNXRBWlBTU2JiWjVpanFGYzZTaUNkVjhSKzRGQVpXZVpSQml3QWkzcXVPM0V3WVZkVDhOeU8xR3hnRHRiRFhuU1NKWittZm4zSWkwV0dXQi9EUTJOclNNelZtUTk1S1hWT0E5c0lEVDhsSWVvaDUyMHR6SzBtSU02M2NnMGIxQnh2S1MvMDBaL2dJUFF5R0hXaFp2c0FVdjJXZlhtMUh2am5HUUNKWmxlcVZlYkdxWHprdXdkRmYzMzlJOTdxWG1qOVd5Y2dIZzN4TnBzbHpOWlpqVG9ObUVCQ3RUZERvemJFRE1SUFYwbVVlalNwQis2cm9waWd0UENJaEJwb3FveWlRVmFkTkxKLzVXalJhNHJodVV5RXhsMnNBd3NuSVFKc29hU0NrS21aZ0F2ejR4bWNoS0pGMEJtNkpaUlJCWTB6dUxQS3NMeHkvSGcrKzlhK2dOVEh6V1pXWndRSm1NaXJKK2ROa29OekJXaHo5SFhHSFNaMUFFbDVRNUVucEo2a1l6RTY4RU9ZMmVkM1ZxUWxEc0ZaSDdhZTBWUlVvclBQWGxDRzJCRXJhRG94c09wc3N5b0VBbm1CcGFnc1J5bUVia0I2UXYxZUdWcFZBWURjK3FsTFVMMTZTcmpsUnIvYU5hNGp6S0o2ZkhERWZIRzVQK0NmRkRFYWRZK3c4V0piUytZeHVMUCtMOWdpd1NUSTl5NGNnZmN5YTROZW9mUWlETXFxSzlkU0N5RzlZMDJwQ3JsMkQ1ME5meHE2My9JOHhKenNPdVRSYmpFRU5aRHA0MU9EOGFDZkJkYXBxYzhkMHJLWXFlOVhia01od0dmc3RDT29oNXNwOVU5V3BWRmEyWlJVUlNVT2pNOEJDbXBtQlFuQzRwQ1FWTEVJbDIwbUxrRkRGOEkyTUs0cmRlb3ZORmpJaVc2OWQzZXRkYXNTNHRXenJ1bThjcUJ6SzFwVTVRNStaaHoycUFXeEJjNUNNTGliZ2ROWUZya09SN0dyT1VNZUc2a2s2akMzMDlrQUdZZmZBS1JNS05ZQ0R3VDdpd0pEY1ZjQ1RnRjVqSjNheXpNMjlvQk1rK1F6OEhPZ0pQRkZyK3pKaFlsYlVZcm5TczZ1cnBUOW4wbUpnSmtQUE9RclZoSGFjUWM4WnFiemFQUm94NnNFTFhkblVWclFHb2o2dHhycEhRVFJNN2FsUWdiMHkvd2tHcVdHVVdxdXpJYXd3aVlEQ0RUeTZLaCtzZ1J2SWdBVVI1dEZpcUUyMWt2RitKM1NnWm9XTWNvOG82akF0bW5QaVpqUmNjWnJEWFFmeGpTckVLRlhKSlFoTWdkUk4rbjhRcXJoLzk3cDJNRXdlbWF5TmowcGllaEpIc3dqc0pDa0dZQnFOSW5ScklFTTJBdUsvTU43VnRSazNrMzUwckZ0TEROWExGM2xwcHgwRUF3NFI2c1JrQU5CanFKbHladE1LczR2VElsb1J6MmVyRHdyOVhkY3k5YVExUURLNG9pWmlSQ1JDTXRwZHczQzRwNnpZSXNNN3A5L1JrREtNVUJTcEVhdnZnRHRCYlo3QURWQm5rWEdaaE9CcEJYb0E0UVpSSTdoYmV5c1Fwa0h5UXFRU29iNXVFODlDdGNCc3VGeTFQdFgzaWhJYlRCM3d6aFIvU0dXd0l4c3FKWklDczI2TVkwUUxKR25pMWZCWFNUM2NDa21ZZmVPU21STEFGY2hSMUJZY0NOeENjK0IwRlNRODZ6OEU1anRPblA5UWZ1YUJueXNrNkRiWkM1NVBXRnZBdDEyalVIKzRNME5iKzdVbzhlOXV6dW9CdVlKMDVHUnp5QlZKNERzNnhkT1Voc2hQWWllWGhSWnZUK3B3elFETTRvVThsc3FrUVY1ZEd5TW1KVTF1eVVxWDg2eUZQQjJtMll6U2dUbzdIT3EzVmtIaThLbUI3S2dJeXM0SlkxWkUrTThFZUF0OGRjcVFBQUEyQ01HcEVoUWlRRDRETzhlaVVTMVpBVkpsY005TTIzWmpRVTNkV09EWVVpaHJla3E5eG03b0J6OEVEVW1lakU1c25YTkxLV252bmdWSnRhamt4bkFDYUVBMk1MdFZqWWhuOWtySTRlQnRreTBGckp4KzZtRjlHQVNXcFFhTmZXbEZHdE1XRS9XUVd1cS96M1N3WkF6dnhobHlWYXBhTjlWS1lZYjRobnh2V1ovR3RyTnBlaTdOcGFvK1htUURzb1VRbFVUWjg4aUlwSlhkWVFockJnc1JFVkZ5WCtqVHQ5TEFIS0FCaTZ6SXI5WXFrQVZXRXBYNVNKbmZtalpBQS9CRHRVRlN3VGM1QTFtWTFWd1JiV0xWTUxBTG5QUHVXMkozMHhCdkNVa0pHOUdvVnRFRUV1MUp0VHlBRng3VVZyVkN4Uzdocmpnclc2aWZCQ3I4RmNob0hhdmcvVkhvVzVGaVVENlAwRzhqeUxNZnNwQStBNnZlVFhSMnNHTUVFSGxkcTlDcGpOWG9FTVJhRUhPclZaQ0tLSXlrb0I0QUU4UmFXaU42YXhLaFFBdXo5REFzZ0Fjdk1NWGtlNWFNMWRvV1FwaWpUM3J6SkFsbk8vaHlDT2NEbHVRR0lPcmhjaFdUMVVDaFFUbGpIRko3SVI3N1NoRktBbmhhV2pWd1NOZ2NTc1FHQXJYbGQ3V1Ewd2daVlJ2TGpFMmpqNFFRV0VaOVpYdGtjdXRiazBad0RweGYxRVRWUGVzSDNKL3drRG1KVUt4bUY2NjVqbTMyb0xOUWgwNy9VZHRYWHlxQ3lVbmNpdzNGd0RsR0ZNV0lCVlFnRUlxNjV2QTlWMEFMMGpzbUpqM2RQa0tMRldRV2VERjcxZHNrRVBVVDBnSGFxQTJVZUhWcDJSQ3Q3VmtyS2lzUUEyQXlUOWlpUE1sTDlZNEg5d0g0K1c4SUJqWmhpNHJFTHhET3JXM1ExYm91MmNkZWptY0NDK0RJUXBKUkZrcEwxUUxoR3AzY3Rkd045bkFGUTBNOGNpelJ0TExsYWk4cUFvdEtMdGZGbVBGVUQzSGNVYUVGbjIrNDFYQ0NJODBWU1pqclhTRVBTbUFuK2xJOHVzMkl5NFdQZENXWWthQkpjWiszWDNETzlEaHROZUM1a2ZhQVc5ZVlRYlltSkJSZ2tSNEUrTVI0RUJqQWpBOHRoOVdPTmVnUE1HRWd1ckZoK1RZVVhsMnpub2hPMlNBY0xOOFJLeUNwalN4aVdBYlhKVUdjSlRyWXI1L3hFRDdHRmpWN09qNVptYkdlRlVuRnZDZzBNelozNTJtTklDMURZdnRNQ01RMXl3UU1QU2cwVXRSOHE2dDg3WUpUQUFuRDFNMHdQN0YrcEFxb1VrcUFKTzlCREVpN0pOTUJGRVFQM0FRVFAxMUZRQjBJdkx5bExObHZTUWRicklBSE5weXJEYVhBS2dpQktCM3g4TGJ6OW5BSFpIYXpNQTdiTlJpaDZGTEFBdVNzQ3htV09aTEFiejcvK0tBUmdzQkhNWnpDaGpGK2NMRktPT1daMlpDa0Q3WHJFUHpCcGhVVG1PREtDYUUxdFRNWUNxMERsOFFrYnU1UXVJQ0JlRmExVjdZT2lESDkxdEtTVnNMaWtqQWdCRmRHc0dHREFmV0t0U3diblVBVnpzV0czS09WRlowWGFYUzBCN1pXaUsyaHRiczVlN0RqQU1lMVBvQzZKbFpMWFkrMGlsM2RFcGFMMEpUNFZ1K2RjWTRMVEp0UmJCdnI0UkJHMDZBelV0Y1ZiUE1peDNFTHM3VFBlb0VSWXJnRE5BUDFyTkFLMHFvT093MDdjWjRPTWFBNWlOd1p4cXpJMWFBR2Z6MW9PR05rdGNWdDBRU21jd3dPVXVnSXNMeTFzNlNLekRobFU1OWJyaEpGTjZSRGZ1SStxcDVlK0xyZDFLT21Odmw0dVZna0djQWJKWEM3b0dBenh4SHlsc09qLzhQUVpnOFhsZjZHZStFZnlrT2RpVWNxOHc2YWhtcW5jVURiNEdxTGdqQnRxZEY5bk9KUU5jeE9yU1UvZDdESkFaeW4wOUdCYlErUVRacUFESXFmbE9tbHYxSFptUnZEdmp0R283UUlYV0dtR2JDWnJxam5PSEREU1ExTnhVd003Q2ljSUpwRHYranBvUmJlMEw2OEJnVjlnQjdsbWxjRzBKdzVneFR2M3JBeTRNUFFkeFpkMFV6ZkR4RnhtQW54bnVPcXIwdHZTQXNiMktOZ1BPcFltd0VPSnlxYVFwb0N5Y01TTzhhMVNuNktRU2VKVUJ6TUgzOEhzTU1LME13NmdUVkNiUGVIUm9uQXFBYzgvbFVwcTVsY1R5dXA2MmcweVVER0NSWDFsQzdueFdxNEZRUkttMzYxVVdIMVN0S3NCV1U5YXpzd3BWYytjK0cxVkZoS0VhVlZFdis3eW1MYkh2TXNTeG5ZZktRR3pKZDJsZzdoOStud0VXUEZyYVYwSWlFd1JnRnJjc002Y0tPVXNRTmcwM2daem05QTFQRU1Qc2xWYVlFU1RMMEJ3WndKQ05QdG5qRFFhQVQvL3hOeGtnTXBUajhlMFEwaXovS21PSEZjQ21abUFtWVFlZzdZYm1Xd1pKbUMvQTR6M056dzFEdTZiVlVUdnVYUDF1dFBqWUhtN04wcytIaGlxUkxaUkt2NFYxbjhNVDRkV29EaDRFemExU0gxNGZVYnVUV2VRT1RlMGlndFpFODdZcXZVbGlRUGNDNEdITzNuWVZUVWpqdEQ1NkxJZk92TWV3dVp1eHB3QUx5RFFwcWlyT2lvekpyMFp1VmxvQnZZdkNHZUtUanhDbWJQQ0xvNEwwRlFaQVVOZnZNZ0QxQy82cUdlQXhDMENyYVZJTitIT2Jta0dDL2hweVdNc3hyKzNqQWphaEkwTXdMTXNqNjlRL29FcjlvQUgxbEZTd0JKSWtJRlJVZlZQQVBDdmNBQ3dlM2R4VDF0V28zTjIwaHQ5WFRZSmtjSE1IcjBzbnNieGtPcG05ZExqeUlOTVdEd253a0tkNGZIclcwYVUwVnE1b2xmUGJ6OUxyaHZnNmRMRElGTW1NZDQyNks1N20vNmtzTGJXdkMyZXd5a09kckw4TUM3OWtnSy92UDJXQWoyc004UG9XSmVDQkZNMHFVN295Z1A3YU5ZZVBISnZzTURQTXM0VkJCa3NkYWFiVWd5KzN4eWxSMWtUSXNsVlI0YVluTGJxeGhmSnFWRHNQZ2piWDhRaTEzRks3WklVVWkrUHBkQmttZ3RGbktFT1VEZ2VyMUpVM0dQREZTc1owayt1VlJDMjJ5dmtKb2RMdkRteEFBUlo0ZWZONFFFeHpyNXFRYWY2enRKUUhSNWFsTkxMMkFndHZHUDJ2TThDUFAyS0E3WFVHSU1LRm1TUDdOZ2NoMjdpa3c1UEptZHkzRENScFoycUJZYU9HRWRBN25SR3BKN1lLVG9tcUtvcFhmZHZ2ZzM3YXV0NDlLNnRSMGZGeVFzaEp4QlE1ZEdBRzZjbHlPN3AwSWxCTUhoZUJaaXd6OFk1SFZaVTNCT0ZINHNGUkg0RXlHVUpaeDlZdzdpVWlieFJaVU95eWhjd2UvdXdCVzZ3d3hEK001SStJaGtYaGpBanh3ZnZ5b2NRUjdWazg4dmNZNFBFbUF3akJ3L1JhNlFCbjIzTjdnZ2t6M2JMSzFNWnQwK3VkeStFQmFuOUdKdDBtRzdVSmorS1NKdlFCOWZBbjZ5T1ZkWkdpNnR1M1Y3alplaldybDZxYWxVMCtCa0V6Zk5Cb0dOQUJDMFgwZ2xzeS9GTWxUQmxxeW5ESlRWbThKQXFEMlIrSThVYkFNU1loaFRFbVk1U1hZcGtjaHg5T28wSUhxVXRNQU1EblJBQkZwTHJoL3BUYUNPdnl3a1RPaGd3Mm5wallBZjk4SzM2UjVXTi9pd0h5UjgwQTFKSTk5bXdKR0FtMksydXp1bm1oeHg1RnFDWFBNWXZYU3VaeVZBWHNESmdpcks2bkVWbkdHTWZKT21OT3ZXZlNOS04zdGJIcW16U2pGQlVnR0t1OG1sVVVibnJoZXNnQVlxT2hVeFVORWJEV0k5Tk43Z25LUkxDNU5pZFJYYTlJeitIZlh1d0lIRUNFU0M3TEdWTnJPekErSzg2SFlDOGsvU3gvUUhSQXBDVWlobkZidVJXUUh4YTl5aHd2aWw1MSt2OHZHU0NEVnNxTnF5aHJaZkpLMUcrQVVHV3NyYjZ3UnJOTEoyZXlpR2xHWExLaVR2NEhHVTgvbVlQam9wYVkxV2NTZ1lkSTlLeHdzd0dOTmxxTWF4TWpyVFRhTUZvOFFYU3NrSUxxaWs1TE5CQ1VMYWZiSHZGeUlEM29JajhUMFZVVUJBT2hMTG9sWEwwcGhtY1V5bXpzWmtVMVNodElIaDdZVStramVYVjZ4L3llR2J3SzFKNUE1M0IvNjVraFBoWk8wK3RoRTJNR0lKQWZCY1QvQWdQTUdXYUdlRXNZbmVhZVZ4eDJBbXBFVDE1bFNtZWdvU2FmWWs3ckQ0MjVoaDN5RWd5THZXbWlXd1BTTTdXcDVjMytFc3J6T0VqR0V6aWZnQmRoYkRzbUc0R1NXQzdjRlR2VEJySGFCbVZhTVMzK3BEb1FzallMZ3BGUWlHNWhUSXR2eHEzVUhvUnkyWjR0TWhVblVkOG9JcU5ubU1TKzJ3dUZrMXJ0K041TlA2TXFwcnpYTUFFK0MybDdZVzZBQXBFY1FPai8rd3h3S09NQjZPMWp2WHNtMlR2dEdYQzVZNUxPSEpLbkI0eStJVVhCQVpnYUxvZnhRK21QT1hBNTdrSXcxbmdMNll6VVNJbDh6YlY0eGdVNmlYVEtBb2Jzd2lLZ1hkRGdHRW9CQkNWL0c0ajNraE5aVHMvZFg3UGNrT3NJdklmNHNvclBUalVhR3FJeUtrS2NJSlNqbWVFQ2dydkRIY2Z6TUE1c29FeUh2UWZUR3orUW40M3hqR0xuT1BjWVcwbjYwYUJwbWxtVTNJWUI0TC8vQmYyREFlYnpGZ09FT1NPaFJja0E3dTJMZXZkRVJtTUNtNFlHN2d5aHFBQS8zWDJ3L3Q0c3dBaEU1RG1rZVV3MGJBMkc5V1VPalZvM0liaEV2bWEvbHpaTUlyblNWeUIxMENNblFUT3lPdlFzdTg3ZjlMZTNFek9Bb2JmNFBwVzBWSHU1N2FjNXNhajV6bU5wYWxRUUxWa0RrSUpvQTVvNzFLem4wQUVWMnp6QUdHQzMrRHJGR0VSak0xd054WU9tVERySHJSV2g5ZzAyMmlZQldEeGU2WDhIQy9Rb3JVeGdnRHBmUlNZa29UZTg0N1hyTWJKYm1CYXRwQXJWYm1ub213RjJRbUZzdVhOMC9wdDJwTlRtV2wzV0lWdWloVVptNmxFVTRjdXE2WVk2SXZJMSs3MjRLUXZ2RUpqRklzYmN5aThCM0VmZzR5b0NMUENSK1J0QzlFSWJUUWxuaE1ScE9WT284cTRiTSs4eXVvVnBKckVmWGcrS3FJcHNkSVVpT3FkUmF4YWkyM3ArSUZFQTlISmxlalBkMmtZQ2paMTZrbUNHTHd2Zm14VkZOOUI2eEp4QXN2NEwrY0VBbThLRWNjKzBBSFcrQ2d5eVIwN3dCMGViME1BMzFxVzNsWlJ5blNBVHQwNGsvY2RwcWZKcWxJazJSRTIvWXFkdGUrOG93bWMwUW1waXl1MW4wQzBzY203OGdjVUFKalU1eWN1WU85M1FBNWdCOHlGNVR0ZTFwL1BoSXRqZWo0YU93NFN6bXlzMmtrVnZmU2dZb0lxTjBmUTB4WmxzaktsMEw1UDVIUVlyY2FIUi9jZTByQ3hmOU80eGxZanhkaVZQcUMwQms0d3A1d2V1QUxZd3NleUpTb29FWVdoQzdEUmhDRVdRektQT1Z4RUpTZlFINjIyeWRqMnNqTnpiakZWV2g1WnNHRU5BVEttSGpRRXROS1JzUGc5a2ZJeDYwdExwdGpaeUlJUzJCNXYwaEVhdzNyOUJ0alB5WC92Y0pqK05BdWZObkZtYkVkWnVRSkE1NW93RnZTZ29nWVdvY3YvaVlSUmtnTFpGeWd0R2lFYUZFOGRYR0tCL2xRR3N1dUM2bjVwVUxBRnpBb01pb25lZ2RTU2FBa0RBaWoxckp1L0FKR1RlOGk0amFVRnQwQnhrcHVuUkJONlVQbHVuOEQ4bEEzeWZZbGVKeVllOEFOQzVjbmZqaXBiK3dCSDhlTWRHS3lzRVE4N0hQbmtEYUxCaGczRUp5dEV4YWVrMjdOcExrdEh3SkZheUNwYUxzTXRDNzRYMW1NR1J1cFpaYXY4TmpQMllLTnFkYXkxd09aN0NrdDdpaFpBTjJYQWpJRUhPY05WM2FaSGxWbEVLeW90Ukkxc1pDdEQwS0p3anUxdWJBZVlGQTFnWW5PVlJkNkZ1U1ExWCtNOVRYbkVGMGVKR1o2d0RrWURQM3dWK0MwRFJNY0VIcnJqSlQ4eWY3ZFpObUNodnorMWt3dm1LMURESkFMWUJmbWNiNHdURGRFYW5Kam1Zb20xbXRGWFJsQUhUQ09hcjdWamZ3UUo3RnF0QVZnamxubnU4ak14dFl4LzRlK0EyZ1U1dU9ac0JxblRYRE1ZSG5obXVtUjRDdDVpeitNYlcrSVNKcGRhRGh2Q29kRFN1cVFPNTlGVnpKQ09EUGU1eDNuY0dnSXRYS2VGWmZWMExxbEswOGpveGRPby91ZFppcGdJemxBeVEybmM2aE5WYlJSRURrcUYxYXdZQVVSVzVCb2loaVhpK0N3WW5BRmZtYWdJWHVpWU1pNlhKVUorbjBLQmNFeU41UXdDZ2ljREhxcHhGMlhVUlVGRzlyQXpLMGtTTjh5dzA5NnIva2Fkc0JnT1VxektDZFkrL3Y0TDhxaFpTYWRoQS9PTTdrUVNXVmlzQThOUmZRQ3E2eC8xdzhLelpvRFhtdXNucFlUaDJsZllENVlyTUM2b3NBZmR6azlZS1ZBMWQwMENGZ0JyNTdRd1E4WmNKcDBGUDJib1JIYWxwYUp0Rkw3VHRnT0dTQWVReGE0am1Dd2JBc3FTL3N1STRjNTV4Q1NCUlhXVlpXUVVsMThpOG5BSk5hYW00YmN5R29SWkxTdHJFNlovMlJvaU5XY0crUWdBa0ErU2VGMHNyeWlUcjdDME15bkJPSE9tR2hMdUtwcHdIT24xTmZNTU1hOG9BbmpwMjhuYzdwcUxacHd4SHFPckFlcU1HYVVXbWRJZDBNR0Nra1ZuTW5xSmVFK1FBZFNPdWhPdUZCOFlhQXlnN1lHbE9hNFU1RU1rQWpIc01Ca2hBVForMHRKN2VPdjRyQVpzYVhsQW9jM01vQkhJMEdJQVpjbTBYZ0VkNFVqcTZsREV4dEpVNXozSnRmTEpOeTRnNFo5ZklNTGxodDI0cFVpZFNPMm4rZlZRZlFXamVSMGhscEdzUytwc0FZSXZNbjI2eHNGU0hrUjZHM1pycDJyWHU3a2crd295NWVFRWJLL2ptMUZCdkxFRHlQeWcyZUtUaVBFSnNPcnNWY3JsMk90aFkrcVR0OTNRYlc4aE82VGw3VHhZa1EyTDVmZzJnWHZjOUtuSnpqUUVZQXJSSUJyQzR4MUV3QU5Sc1BBdDI3YXpoczRpR0p6TEVSRDFZbWVGWFZHOGlycm03bDhtYnNXTXVwZ0diaXEycGs2ektlWlpFOWZ3VmhHdERub2VXOXNXdFZIVEJQUWhxaytaZTYxN25MUEpXNms5cDZRTXFHRUN1alQwdmErbW90VWE3ZFZoZ1VBYlR5bzBkcGF1YktYUG5nQU80WTFyRFV6dXh4R29iN3UwQU1sV2xQREE4TW1OVStDNDBXUUtvRmpubXBUY1hUeFhhdTFYUGU2eTZDMzVqemljRDZPTGVSTmtLUitKWERFRHgzb3NsWUt6dnRrMEdlR2Rkang3K2dScllEcVhsTnREVkZZTE5MWkI3eFdsTis1N0VGYU1qN0xkYkJqc1d4aWtsbWJSbG1mTnNHVVQxRERaRThZVkdoc2t0QktVeEpidEliZnhyMDF4T1FwTS9wU2tQL01EZmJmb2pRd2dwYUN1bVplVkJ0dzV3cjJGOHFYVFQ3clhXVGJEU24wcEs1S21mSzNhZjVZZTV0d1BJVkNPdFltT0VKRFlTQkNLOUZPK1dYV1hYcUlwa3oySzVjR0RHckNkcnRsb1YzcEVEVnFBVWVsZVVpdGFRM1o0aDZUSWdUeEdpWkFBWjY1SUJ3SmZnSW5RUi9sR0gwdUkxSUJRcG5XSGhaL0ZzWFJNM2J1R255VitabG50cHdONUxId0lTU1Vxanc1OEtlaEtWZVZlNGw2WkdocnhIY09RckIxUmRwSGJRSEVSSEE4bi84dzliK29DaVlRdFh4UFhBR2pjN2JiTGI1aUN5dnZpY1V3N0lWQWFzR1Eyc3Iwd043dVdZWEdVQThzdVIzQmlKSkpZbS83RFRKc3BPNkkrQ1M5aW5LKzlvSFY2aWNjeVVic1J1SE9OTTdIR0RWY0d4RVE0N2JPWjZNY0x0bURhajMzaEJUaEZuTlFORWtHcm00R2lGMG5KT2s2MURPaU5mWDZSc1ZTS25keSs5Z1JoUnV2b3h2MGd5bThpNS8wcWlNaGhnRXpQK3VOZDJoQkFYY3NyVng2S0wxUDRuU0s1TnpzTmZRbkw3aWI5Si8yem1md3dHd01lWTdZY3FxcW00NkZZeU1LUHpRTFV2Q0Y3c2pvbWZRcm4xd1RtRDVBWTk2MXdQTXNzMTBrSWNQcVZ6YmZHUUJJTWdiTkJZZ3FYdWxNTjJsdHJGdDRGcmVTRmluTEVONU9adzBNU21ueUFpQkE4eUU3dnRLUmJTc1REbFBSaWdId3hBbUdnbmttTFdvYlNjMDF6WVFqcnZxWUFyaWF2Z08yNi9wdHhHeTBFUWRiUHhXU3cwS3lleWRpZFJxYlJSYlJPNjV1dzJtcmE3U0czOEMxY2ZpQjRrMTUvUzhhODArb0N5TWRFdEdXQVltam03VnpBb2U5WVhzeXFEQTFqamg4QksxZk9GMmhBRHpicmMrRUlzV1BDVys4YzZTak9ac21mTExFSTRtTm8rNTF3cHVERThLS3JZa2xTd1lMVkJwYytXMTRjUjBPanFOY1JHNk1zd3EwL2JxaUJmNGptK1p4c3FiQ3dZSGpEUmJpUlNqRkRhbk5PeHBYWUtNN1JneW1tTmpHalcwSkdTR3o3UTBNUVJqdWNUZVcrdEZ1UmNJYjVyZVk2L2JVYXpoMTFWK3hkUy9sOXYvMFg3Ri8rWkM1RDBaL09zbjJBQWwzV1BHRE5yVVh4Z1FybU9LTThGSzMzREpQZit3cTJlaW9GRksyWEdXbkhWb1JqY3YzSXBieXg2MjMwWm1qRmNiSjlaTVpjYnd5ai95YjA4TVB5c0xrZm5ZMmZIZmx6S2tFL3NwMGVsWFZFL0pITjhVMkhqejh5R21Va3hsOWRpZG5ScXBuVG1Ca3Y5SEpqV1h6NXhaeVEwSmJlYVJGTVI1eXlPaVp6ZFNWUW83aDY1azJzNC9maVU2VlZYMlpUT1JuZVMvSC8rNTMvUTh6OUIvbXdjV0t2MHF2dmR0RlZ6QjR6R21XTWVTd1hVZkpEK2pJTUEvYmtNRkF3Z3Z5Z0FNS3FBaW5BcDczdVFlQ0ExRkxmWWd3NUEyeDBhcmF4a1ZLVlpKRGt4UDhZdys1bUM3TlV5K3lFaEl6MExwR3prcjRxUURJVGtSamJNdDB5S3FTYnNxbUdTZjVYUytmOG43MnhiNGdpQ0lCd1NBU0VTQ0w3bElCd1lEd0luOS8vL1hxYjdxYnFhMmZzVVJCQ3RqWHR1YVFDczdkbCttOTRTcUIzd1BXWk44TFh2cnlKS1JOUkYwOFVUUHk2R0RJMmsrU2JydVNHVGhna1ZSSFBoTkNRL0RmUjN5TDhnZjJydEhrMVdFbnFKZzhsQjF2UC9tVGU5MWwrNGE2UjVBdHhOZy9NRzFTNUFoUWUxMm51bVRMK0xWQTRaQ2IzYSszM3JGK2xpN3dLM1NhdUtoRFR5OXFxS3R1RlQ2L2RvejlRV0JTYll6WjJ5REtudCtnWWZLbVFPUzg0UnhRL0w2dXgxZTQ2MkRnaTlxTHUxNGdLR0hENnF5b2REMzZ6bmVvYTNlUy9VQ25RK2JRWFA5eGMzUU9QNXZzNUwzMCtRaVFuZTAvSGtPNEJ3c1kzL0NYY3ZvelA3RmlBOGNJS3RudEIzL2RwSDdZSmxSQjk3Z3ZINGR0ajdJMGM2RHdZODlwdWFCYW5Kb3NMVDdlTktGaFZJQkM2RmJ6VEJPQTRiNVF3WE8vcE04TVZ6MkhBcnJWWm5WRzM5K0pZTGZMczZEVVRjYUZvZmtUR0dERzBVTDdjdDYvbFJ4bzA1WDFEQmwvOUMyV2tlQVJpYyszNEN1Y2FVMy9IL2ZBYzRFWFJmcjgxVlBwQ2FwWk9BZC9VejdZRFR5SVhIVWU4WXAxYmJRem9MdUpwNkJ3TmdFMFZhUm02eXNZVTdZUEEzNGUyWE1VNjZyZzg0WjBqckNjWndyT3hNUnUzV1VqNUlwc21jYzFoeFpNYVVIVzRsMnRLQmdodDFpeHVRWmlXaSthYUJQcHM1VHM5d1lPTmVxVmVnRk4wNGdVN1pQaTVJNnFYMTEvdmUwNENXSk1DMXhtZTdERkR0LzU1S0lIL2hhZ3p6MGFCUHQyeVJFS1BQRzhLZ1l6WUQ5MXZYdHNab0M0L2hUdkYwdTE4NFo2MnNKaGlMSzloYjIvTktDRDRUcU9YSUtvM0M4Y2ZXYU11SEVISHI1OGhyR2JGanMraXBjMkdjbzNnaFVpL1U2MUR4M29EQ1FQZWh1dStIak94WFhHUFgwWHNTWDNtQ3kxdFBrd2FrMTE0OStkZEVpTDkwQTZqQi8vdklNWGd3NmRTbjM3c292SW9IUDVNNzVmU2JvaFpoMUliSEwzTm9oWkRPakRjZzRleXRKUUJMTXMxSyt4UjNHL1BHWkdGaXZzS2dXYmxSdDNWRlVqUzFpQllkcVNlMDJhUHYyMElaSHllQ2NJdmM5OU55Vno1TnJqR3Z3YnF0bVc0ZEMxQ0NZWXR3Q2dHOFdXSHZWb0F1YlkydFF2UmU2ZFVvWTlTK1J4TWZXTFNkRUV0MGJUamREUkR0L0FEV2s5cDgvTElJV1V3b1lpdHhmN2VKMHpuYzF1R1RaY2JXYmJPcjUvMGlsZnM2MmlKdUhQR2dXTDZnQTY3ZkhyVnhZazRGRS9EU1R6Q25ndHMxVnBhbDlPODJOQWI4YWtoQVNvR2QrRWd6VU5jRXJqekdpTUtHMmtMeDVWaTBrOXFHT0VQKzk0V0JPb3phOG12ZXBCQ0I2NEQwbzl5WGpTVzRCaTg1b1NxV2JadkZoakZycm15N0lsQTNxcjQzRER2ZGJQTGVQYWlmUUsxbzJsMVFham5MVWtYQWJxTHRFZDhhRXpJMUF4QUV1d0djblhnYUI2LzBHSHF6U1ZHNTdxemFUVXp3U3U1RENuVVlOZFB3Yzk0a1VUVGExa2U0WEY3bTBvNDJaWi9xd0lJbHNWVzl0R3ErM2oxU0RuYmxTNitNN1dhdWVvYVR1YS9aT3BTRDFZbENKUDZOZ1diWjVacDJJRXlSa0ZtM1FDLzRYUVpEYkFTWHM3VWt4RXhzRFQ2SGRIVStKTHkwaFFYOEdrdzRRbXVrdHZzV3hOcXhaWjBXUS80NE9Cd3lST1pIZGN3K3VQNmsvVWphNDdFYnhxdE9GUHlCdVFybS9rQ3QxcGdvTXFvenFGL2FreklZS2JMTE5kdi9kYlgzWkVsaW9ZbWtReWRQWnRpQVE5US9jYkJjcmtCOTJ6S25qd3FVcHZKVmhzM3UwWEt0dENQUmV6d3dXcHlEOGdkY0JTTXhUc2NaWHZpOEVyTzgvOG1DWDF4QWJXUEpoeVc2WGcwYjhlYkhNV0ZVYVBQYkpBbHhGVEFKVnpTV3ZnTDVQd2U2ZDB5VkwvYktseEhqaE0zdHhPT2FCemZWTDR3ZVlQMVorOUhMdXM3VmJNcGdRWDQxY0R3ZEF2VUZiRm9LbFhCYlBuN1pTNUtpaTdSTkp0RGlFamgvK29td3ZwQkxRZGM1REVzVHcyNE95M1JyQkxRVFcvNnN4TG9Gc3VCajNvR1VUY29rQkladGJyVlNhWVNPSzI4Vy9HdnZERlliaUdFZ2FnaHRvYWVrbDNhaHAxd0tZZnYvdjFka1dYNmFRQytGd0pycU9SZjdhbHZ4V3FOeEM2SnZEZWorVzB4OHBGeENFSVNqRUpmcEkxWGlCMy9BZDJ6TXFZZllDQU1TOEFOaU5qY21rZGpRZitXNWwrT1hZZlF2VTFuWW9VN2FLUVJCM3ZjVWkxbVA1WmRuL2RNZnpsUWQzc2hZc0FSU3dHZXlwMENCQ3pIdVRJVEhSZVhDYThoZzNnU2Y4ME96cG9aOVpZQ1h5Qnl0TzQ1SXpCSUlTRjB5dGI5Y2lMSFpIenIzaGV0djFhb0FRWkFSTXQyY0ZWTFJ0RGdQM1BhOUJTTnZLUUdmeSs0amJPeWlLL0EvYUtQZ2hlSlY1RDBwTDZ4bEUzZldFM3VEYjFKZXh1RStyNHF1M0FNcGREZkVDZGRnQVR4Tk1KL3hDQUI4Z3lGSU94cTFBSjRoTDRCT0Z2Z1psTDBoMlhsM1cwMnNKNEIvZUtNZGpzSWY2UVFyVTN6QndrWmZ4aldpNXA1VFlkaHFmbUk5c1FZRnNuQXdrVmMyc1VMZ04raXVHMGp4c05YRWUyUUZDZ3BEQk52TTJOako2L2lPbGJxNWpuWTJ5d1A2L0srMkFBcXZkTkxOdkczWnlESUVmcWZBOHJySUxKTm9oeVBBQ2hRVWg0SnZabkdZRDRIZjVMSzVSQTg4RDdoV0FDaFFCQWxkMDVGSFhlRDNGaU9iRjBYZGllYXhudGpiU2hTMmxhVmRoN25YTmZwRDRHY2pXaFNWK1VyV0V3dFIvQUJ0d3pZbStJeFNsd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcbiAgcmV0dXJuIGltYWdlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm50KCl7XHJcbiAgcmV0dXJuIGBpbmZvIGZhY2U9XCJSb2JvdG9cIiBzaXplPTE5MiBib2xkPTAgaXRhbGljPTAgY2hhcnNldD1cIlwiIHVuaWNvZGU9MSBzdHJldGNoSD0xMDAgc21vb3RoPTEgYWE9MSBwYWRkaW5nPTI0LDI0LDI0LDI0IHNwYWNpbmc9MTIsMTIgb3V0bGluZT0wXHJcbmNvbW1vbiBsaW5lSGVpZ2h0PTE5MiBiYXNlPTE1MiBzY2FsZVc9MzA3MiBzY2FsZUg9MTUzNiBwYWdlcz0xIHBhY2tlZD0wIGFscGhhQ2hubD0wIHJlZENobmw9NCBncmVlbkNobmw9NCBibHVlQ2hubD00XHJcbnBhZ2UgaWQ9MCBmaWxlPVwicm9ib3RvXzAucG5nXCJcclxuY2hhcnMgY291bnQ9MTk0XHJcbmNoYXIgaWQ9MCAgICB4PTYzNiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yICAgIHg9NTc2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEzICAgeD00NTAgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzIgICB4PTI5ODcgIHk9MTI0MiAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMyAgIHg9MTcxNCAgeT03NjkgICB3aWR0aD02NiAgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM0ICAgeD0xOTk5ICB5PTEyNjMgIHdpZHRoPTgxICAgIGhlaWdodD04NyAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzUgICB4PTEyMTQgIHk9OTUxICAgd2lkdGg9MTM2ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNiAgIHg9MTYxMCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS00ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM3ICAgeD0xMzQxICB5PTU5NSAgIHdpZHRoPTE1MiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzggICB4PTE2NTggIHk9NTkyICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOSAgIHg9MjA5MiAgeT0xMjYzICB3aWR0aD02MiAgICBoZWlnaHQ9ODUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTI4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQwICAgeD0xMDMgICB5PTAgICAgIHdpZHRoPTkwICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDEgICB4PTAgICAgIHk9MCAgICAgd2lkdGg9OTEgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MiAgIHg9NjY0ICAgeT0xMjk0ICB3aWR0aD0xMTQgICBoZWlnaHQ9MTE0ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQzICAgeD0wICAgICB5PTEzMTcgIHdpZHRoPTEyOCAgIGhlaWdodD0xMjkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDQgICB4PTE5MTYgIHk9MTI2NCAgd2lkdGg9NzEgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xMTEgICB4YWR2YW5jZT0zMSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NSAgIHg9MjMzICAgeT0xNDU3ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ2ICAgeD0yODI4ICB5PTEyNDUgIHdpZHRoPTY4ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEyICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDcgICB4PTAgICAgIHk9NDI5ICAgd2lkdGg9MTA5ICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OCAgIHg9MjM5MiAgeT01ODMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ5ICAgeD0xMTIgICB5PTExNDMgIHdpZHRoPTkzICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTAgICB4PTE0NDMgIHk9NzcyICAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MSAgIHg9MjY2MCAgeT01NzUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUyICAgeD0xNzk0ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTMgICB4PTUzOSAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NCAgIHg9NDA2ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU1ICAgeD0yMDgyICB5PTk0MSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTYgICB4PTI1MjYgIHk9NTgxICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NyAgIHg9MTU4MSAgeT03NzEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU4ICAgeD0yMzgzICB5PTExMTMgIHdpZHRoPTY3ICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTkgICB4PTM3MiAgIHk9MTE0MCAgd2lkdGg9NzMgICAgaGVpZ2h0PTE1NiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zNCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MCAgIHg9NTM5ICAgeT0xMzA3ICB3aWR0aD0xMTMgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYxICAgeD0xNjg4ICB5PTEyNjkgIHdpZHRoPTExNSAgIGhlaWdodD05MyAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjIgICB4PTQxMSAgIHk9MTMwOCAgd2lkdGg9MTE2ICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MyAgIHg9ODAwICAgeT03NzkgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY0ICAgeD0xNDIxICB5PTAgICAgIHdpZHRoPTE3NyAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTYgICAgeGFkdmFuY2U9MTQ0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjUgICB4PTI3MDggIHk9NzUyICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NiAgIHg9MjIyMSAgeT05MzkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY3ICAgeD0xODExICB5PTU5MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjggICB4PTE2NTAgIHk9OTQ2ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OSAgIHg9MjQ5NiAgeT05MzQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcwICAgeD0yNjMwICB5PTkzMiAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzEgICB4PTE5NjAgIHk9NTkwICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MiAgIHg9OTE2ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTczICAgeD0yOTYgICB5PTExNDIgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzQgICB4PTI3MiAgIHk9NzkwICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NSAgIHg9NzY3ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc2ICAgeD0yNzYyICB5PTkyNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzcgICB4PTIxOTcgIHk9NzY1ICAgd2lkdGg9MTYzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OCAgIHg9MTA2NSAgeT05NTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc5ICAgeD0xNTA1ICB5PTU5NCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODAgICB4PTE5MzggIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDEgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MSAgIHg9MjIyMiAgeT0yMDcgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgyICAgeD0xMzYyICB5PTk0OSAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODMgICB4PTIxMDkgIHk9NTg4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NCAgIHg9NjE3ICAgeT05NTUgICB3aWR0aD0xMzggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg1ICAgeD0xMjggICB5PTc5MiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODYgICB4PTI4NzAgIHk9NzQ5ICAgd2lkdGg9MTQ3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NyAgIHg9MjAwMiAgeT03NjcgICB3aWR0aD0xODMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg4ICAgeD0zMTIgICB5PTk2NiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODkgICB4PTE1NyAgIHk9OTY4ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MCAgIHg9MTUwNiAgeT05NDcgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkxICAgeD02NTggICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTIgICB4PTI5NDUgIHk9MjA0ICAgd2lkdGg9MTExICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MyAgIHg9NTY3ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk0ICAgeD0xNTcwICB5PTEyNzEgIHdpZHRoPTEwNiAgIGhlaWdodD0xMDUgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTUgICB4PTAgICAgIHk9MTQ1OCAgd2lkdGg9MTIxICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT03MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NiAgIHg9MjYyMiAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTQ5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk3ICAgeD0xNTg1ICB5PTExMjEgIHdpZHRoPTExOSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTggICB4PTY3NyAgIHk9NDE4ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OSAgIHg9MTQ1MyAgeT0xMTIzICB3aWR0aD0xMjAgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMCAgeD0xMjA5ICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAxICB4PTEzMjAgIHk9MTEyNSAgd2lkdGg9MTIxICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDIgIHg9MTg2NiAgeT00MDggICB3aWR0aD0xMDEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTYgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMyAgeD0xMzQgICB5PTYxMiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA0ICB4PTI2MjcgIHk9Mzk1ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDUgIHg9MTA1MCAgeT03NzYgICB3aWR0aD02NyAgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNiAgeD0xMzI3ICB5PTAgICAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA3ICB4PTI0OTUgIHk9NDAxICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDggIHg9Mjc1NSAgeT0zOTIgICB3aWR0aD02NCAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOSAgeD0xOTczICB5PTExMTcgIHdpZHRoPTE2OCAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEwICB4PTIxNTMgIHk9MTExNSAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTEgIHg9MTE4MSAgeT0xMTI2ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMiAgeD0yNjcgICB5PTYxMSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEzICB4PTQwMCAgIHk9NjAwICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTQgIHg9MjI4MSAgeT0xMTEzICB3aWR0aD05MCAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNSAgeD0xNzE2ICB5PTExMjAgIHdpZHRoPTExNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE2ICB4PTQ1NyAgIHk9MTE0MCAgd2lkdGg9OTUgICAgaGVpZ2h0PTE1NSAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0yMyAgICB4YWR2YW5jZT01MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTcgIHg9MTg0NSAgeT0xMTE3ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOCAgeD0yNzcyICB5PTExMDAgIHdpZHRoPTEyMiAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE5ICB4PTI0NjIgIHk9MTExMyAgd2lkdGg9MTYzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0xMjAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjAgIHg9MjYzNyAgeT0xMTA2ICB3aWR0aD0xMjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMSAgeD0wICAgICB5PTYxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIyICB4PTI5MDYgIHk9MTA5NyAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjMgIHg9NDU4ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNCAgeD0yNDUxICB5PTIwNiAgIHdpZHRoPTYxICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI1ICB4PTM0OSAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjYgIHg9MjM3OCAgeT0xMjU5ICB3aWR0aD0xMzggICBoZWlnaHQ9NzkgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MCAgeD01MTMgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYxICB4PTIxNyAgIHk9MTE0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjIgIHg9MTM0MSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTI1ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MyAgeD0xMzAwICB5PTc3NCAgIHdpZHRoPTEzMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY0ICB4PTcwMiAgIHk9MTEyOSAgd2lkdGg9MTQ5ICAgaGVpZ2h0PTE0OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zMCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjUgIHg9NDY1ICAgeT05NTUgICB3aWR0aD0xNDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NiAgeD0yMzc1ICB5PTIwNiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY3ICB4PTIwNSAgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjggIHg9MjcxNiAgeT0xMjUxICB3aWR0aD0xMDAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OSAgeD05OTUgICB5PTU5OSAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcwICB4PTEzNjggIHk9MTI3MyAgd2lkdGg9OTkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzEgIHg9MTEzMSAgeT0xMjc3ICB3aWR0aD0xMTAgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MiAgeD0yMjUxICB5PTEyNjEgIHdpZHRoPTExNSAgIGhlaWdodD04MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9ODkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTczICB4PTEzMyAgIHk9MTQ1OCAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzQgIHg9MTE2OCAgeT01OTcgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NSAgeD0zMzMgICB5PTE0NDggIHdpZHRoPTEwNSAgIGhlaWdodD01OSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc2ICB4PTE4MTUgIHk9MTI2OCAgd2lkdGg9ODkgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT02MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzcgIHg9ODYzICAgeT0xMTI5ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTQ3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTI5ICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OCAgeD04OTkgICB5PTEyODggIHdpZHRoPTk3ICAgIGhlaWdodD0xMTEgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc5ICB4PTc5MCAgIHk9MTI5MCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODAgIHg9MjUyOCAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MSAgeD04NjYgICB5PTU5OSAgIHdpZHRoPTExNyAgIGhlaWdodD0xNjYgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgyICB4PTI4OTMgIHk9OTIzICAgd2lkdGg9MTEwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODMgIHg9MjkwOCAgeT0xMjQyICB3aWR0aD02NyAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTYyICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NCAgeD0yMTY2ICB5PTEyNjEgIHdpZHRoPTczICAgIGhlaWdodD04MiAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg1ICB4PTE0NzkgIHk9MTI3MSAgd2lkdGg9NzkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODYgIHg9MTI1MyAgeT0xMjc0ICB3aWR0aD0xMDMgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NyAgeD0xMDA4ICB5PTEyNzcgIHdpZHRoPTExMSAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg4ICB4PTI1NDIgIHk9NzU4ICAgd2lkdGg9MTU0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODkgIHg9MjM3MiAgeT03NjAgICB3aWR0aD0xNTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MCAgeD0xMTI5ICB5PTc3NiAgIHdpZHRoPTE1OSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkxICB4PTkyNSAgIHk9Nzc3ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTIgIHg9MTYyICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MyAgeD0zMjQgICB5PTIxNCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk0ICB4PTAgICAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTUgIHg9MTM1OSAgeT0yMTAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NiAgeD0xODE0ICB5PTIwOCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk3ICB4PTEwMTYgIHk9MCAgICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5OSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMjMgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTggIHg9MTc5MiAgeT03NjkgICB3aWR0aD0xOTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjYgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE1MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OSAgeD0xMTc4ICB5PTAgICAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAwICB4PTI5MjIgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDEgIHg9NjQxICAgeT0yMTQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMiAgeD03NzUgICB5PTIxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAzICB4PTE5NzYgIHk9MjA3ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDQgIHg9MTAxOCAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNSAgeD0xMTEyICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA2ICB4PTkwOSAgIHk9MjEzICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDcgIHg9MjExMCAgeT0yMDcgICB3aWR0aD0xMDAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjggICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOCAgeD0wICAgICB5PTk2OSAgIHdpZHRoPTE0NSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA5ICB4PTE1MjEgIHk9MjA4ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTAgIHg9MjE4NCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMSAgeD0yMDMxICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEyICB4PTE4NzggIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTMgIHg9Mjc2OSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNSAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNCAgeD0xMjA2ICB5PTIxMCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTEgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTEzICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE1ICB4PTI3OSAgIHk9MTMxNiAgd2lkdGg9MTIwICAgaGVpZ2h0PTEyMCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MCAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTYgIHg9MjY1NSAgeT0yMDYgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTc0ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEwICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNyAgeD0yNjI1ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE4ICB4PTI0ODEgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTkgIHg9MjMzNyAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMCAgeD0xNjcwICB5PTIwOCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIxICB4PTQ4NiAgIHk9MjE0ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjIgIHg9MjM2MCAgeT05MzkgICB3aWR0aD0xMjQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMyAgeD0xMjEgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzEgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NyAgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI0ICB4PTE2MDQgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjUgIHg9MTQ3MyAgeT00MTIgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNiAgeD0xNzM1ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI3ICB4PTUzMiAgIHk9NjAwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjggIHg9MjkyNiAgeT01NjkgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOSAgeD0yNTI0ICB5PTIwNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MSAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMwICB4PTk5NiAgIHk9MTEyOSAgd2lkdGg9MTczICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xMzUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzEgIHg9MTk3OSAgeT00MDcgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMiAgeD0xMDc2ICB5PTQxNSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMzICB4PTk0MyAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzQgIHg9ODEwICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNSAgeD0yNzkzICB5PTU3MiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM2ICB4PTc3MiAgIHk9NjAwICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzcgIHg9Mjk3MCAgeT0zODggICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOCAgeD02NjMgICB5PTYwMCAgIHdpZHRoPTk3ICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM5ICB4PTAgICAgIHk9MTE0MyAgd2lkdGg9MTAwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDAgIHg9MjgxMCAgeT0yMDUgICB3aWR0aD0xMjMgICBoZWlnaHQ9MTczICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTUgICAgIHhhZHZhbmNlPTk0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MSAgeD0wICAgICB5PTc5MiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQyICB4PTI2MCAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDMgIHg9NTM4ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NCAgeD0zOTkgICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ1ICB4PTI4MzEgIHk9MzkwICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDYgIHg9MjI1MyAgeT01ODMgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NyAgeD0xNDAgICB5PTEzMTcgIHdpZHRoPTEyNyAgIGhlaWdodD0xMjggICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ4ICB4PTU2NCAgIHk9MTEyOSAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE1MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDkgIHg9MjExMSAgeT00MDcgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MCAgeD0yMjM5ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUxICB4PTIzNjcgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTIgIHg9NjcyICAgeT03NzkgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MyAgeD03NDkgICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU0ICB4PTg4MyAgIHk9MCAgICAgd2lkdGg9MTIxICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTUgIHg9MTc0NCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5rZXJuaW5ncyBjb3VudD0xNjg2XHJcbmtlcm5pbmcgZmlyc3Q9MzIgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NiAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODkgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD0yMjEgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTMgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTYgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg2ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTc0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTc0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTg1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjU1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTMgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTcxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTgxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zOSAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODcgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NiAgYW1vdW50PS0xNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODkgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD02NSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTQgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTcgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDQgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD03NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIxIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjU1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTExIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0OSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NiAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAwIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIwIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDUgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE3MyBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDEgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05NyAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjggYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03NCAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTExIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQyIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xNzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTY1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5OSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5gO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IHtnZXRUb3BMZXZlbEZvbGRlcn0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3RpY2snLCBoYW5kbGVUaWNrICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICBjb25zdCB0ZW1wTWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlVGljayggeyBpbnB1dCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCAgfHwgZm9sZGVyLmdyYWJEaXNhYmxlZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5wcmVzc2VkICYmIGlucHV0LnNlbGVjdGVkICYmIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgaWYoIGlucHV0LmludGVyYWN0aW9uLnByZXNzID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICAgICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24uc3ViKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7ICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LndvcmxkVG9Mb2NhbChpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vTk9URTo6IGluIG9ydGhvZ3JhcGhpYyBtb2RlLCB3ZSd2ZSBhbHJlYWR5IG11dGF0ZWQgdGhlIHBvc2l0aW9uIG9mIGZvbGRlcnMsXHJcbiAgICAgICAgICAvL21lYW5pbmcgdGhlcmUgY291bGQgYmUgc29tZSBpbmNvbnNpc3RlbmN5IHdpdGggdGhlIG1vdXNlSW50ZXJzZWN0aW9uIHBvaW50IG5vIGxvbmdlciBiZWluZyByaWdodC4uLlxyXG4gICAgICAgICAgLy9JIHRob3VnaHQgdGhpcyB3YXMgcGxheWluZyBhIHJvbGUgaW4gYSBidWcgd2l0aCBvcnRob2dyYXBoaWMgZm9sZGVyIGxheW91dCwgYXBwZWFycyBvayBmb3Igbm93LlxyXG4gICAgICAgICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG5cclxuICAgICAgICAgIGZvbGRlci51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICBpZiggaGl0T2JqZWN0ID09PSBwYW5lbCApe1xyXG4gICAgICAgICAgaGl0T2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBoaXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZVBsYW5lLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KCBpbnB1dC5tb3VzZUNhbWVyYS5nZXRXb3JsZERpcmVjdGlvbiggaW5wdXQubW91c2VQbGFuZS5ub3JtYWwgKSwgdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VQbGFuZSApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBpZiggaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgICBpZiggaGl0T2JqZWN0ICE9PSBwYW5lbCApe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQgPSBmb2xkZXI7XHJcblxyXG4gICAgICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuc2VsZWN0ZWQubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZU9mZnNldC5jb3B5KCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApLnN1YiggdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgXHJcbiAgICAgIHRlbXBNYXRyaXguZ2V0SW52ZXJzZSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIHRlbXBNYXRyaXggKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG5cclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcbiAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgaW5wdXRPYmplY3QuYWRkKCBmb2xkZXIgKTsgXHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJiZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlucHV0LnNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuXHJcbiAgICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiUmVsZWFzZWQnLCBmb2xkZXIgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsImV4cG9ydCBjb25zdCBncmFiQmFyID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFnQ0FZQUFBQ2luWDZFQUFBQUNYQklXWE1BQUM0akFBQXVJd0Y0cFQ5MkFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQURza2FWUllkRmhOVERwamIyMHVZV1J2WW1VdWVHMXdBQUFBQUFBOFAzaHdZV05yWlhRZ1ltVm5hVzQ5SXUrN3Z5SWdhV1E5SWxjMVRUQk5jRU5sYUdsSWVuSmxVM3BPVkdONmEyTTVaQ0kvUGdvOGVEcDRiWEJ0WlhSaElIaHRiRzV6T25nOUltRmtiMkpsT201ek9tMWxkR0V2SWlCNE9uaHRjSFJyUFNKQlpHOWlaU0JZVFZBZ1EyOXlaU0ExTGpZdFl6RXpNaUEzT1M0eE5Ua3lPRFFzSURJd01UWXZNRFF2TVRrdE1UTTZNVE02TkRBZ0lDQWdJQ0FnSUNJK0NpQWdJRHh5WkdZNlVrUkdJSGh0Ykc1ek9uSmtaajBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOHdNaTh5TWkxeVpHWXRjM2x1ZEdGNExXNXpJeUkrQ2lBZ0lDQWdJRHh5WkdZNlJHVnpZM0pwY0hScGIyNGdjbVJtT21GaWIzVjBQU0lpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB6ZEVWMmREMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFJYWmxiblFqSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwMGFXWm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNScFptWXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpYaHBaajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5bGVHbG1MekV1TUM4aVBnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBiM0pVYjI5c1BrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPakkxT2pNeUxUQTNPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRZdE1Ea3RNamhVTVRZNk16YzZNak10TURjNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pNM09qSXpMVEEzT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThaR002Wm05eWJXRjBQbWx0WVdkbEwzQnVaend2WkdNNlptOXliV0YwUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNHpQQzl3YUc5MGIzTm9iM0E2UTI5c2IzSk5iMlJsUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rbERRMUJ5YjJacGJHVStjMUpIUWlCSlJVTTJNVGsyTmkweUxqRThMM0JvYjNSdmMyaHZjRHBKUTBOUWNtOW1hV3hsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmVHMXdUVTA2U1c1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSdlkzVnRaVzUwU1VRK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPamRsTnpkbVltWmpMVGcxWkRRdE1URmxOaTFoWXpobUxXRmpOelUwWldRMU9ETTNaand2ZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pazl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDU0YlhBdVpHbGtPbU0xWm1NMFpHWXlMVGt4WTJNdFpUSTBNUzA0WTJWakxUTXpPREl5WTJRMVpXRmxPVHd2ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG1OeVpXRjBaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEcGpOV1pqTkdSbU1pMDVNV05qTFdVeU5ERXRPR05sWXkwek16Z3lNbU5rTldWaFpUazhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UWXRNRGt0TWpoVU1UWTZNalU2TXpJdE1EYzZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTI5dWRtVnlkR1ZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHdZWEpoYldWMFpYSnpQbVp5YjIwZ1lYQndiR2xqWVhScGIyNHZkbTVrTG1Ga2IySmxMbkJvYjNSdmMyaHZjQ0IwYnlCcGJXRm5aUzl3Ym1jOEwzTjBSWFowT25CaGNtRnRaWFJsY25NK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBJSEprWmpwd1lYSnpaVlI1Y0dVOUlsSmxjMjkxY21ObElqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tRmpkR2x2Ymo1ellYWmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHdPUzB5T0ZReE5qb3pOem95TXkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNHhQQzlsZUdsbU9rTnZiRzl5VTNCaFkyVStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0Mk5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNand2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgrT2hGN1J3QUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUFsRWxFUVZSNDJ1elpzUTNBSUF4RVVUdVRaSlJza3Q1TFJGbUNkVExhcFVLQ0Jpam8vRjBobjJTa0p4SUtYSkpscnNPU0Z3QUFBQUJBNnZLSTZPN0JVb3JYZFp1MS9WRVdFWmVaZmJONW0vWmFtamZLK0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNCZnVhU25hN2kvZGQxbWJYK1VTVHJON0o3TjI3VFgwcnhSeGduZ1pZaWZJQUFBQUpDNGZnQUFBUC8vQXdBdU1WUHcyMGh4Q3dBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQxJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAvLyB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjU7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwLCBpbWFnZS5oZWlnaHQgLyAxMDAwLCAxLCAxICk7XHJcblxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcbn0oKSk7XHJcblxyXG5leHBvcnQgY29uc3QgZG93bkFycm93ID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPakU0T2pJMUxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3hPRG95TlMwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNRFF5WWpJMFpTMWlNemMyTFdJME5HSXRPR0k0WXkxbFpURmpZMkl6WVdVMU1EVThMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qTXdOREppTWpSbExXSXpOell0WWpRMFlpMDRZamhqTFdWbE1XTmpZak5oWlRVd05Ud3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejVVaWx6MEFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBSmRTVVJCVkhqYTdOM0xjY0pBRUlUaFJ1VzduY1VlVFFoa1FBaUlETWdJaFVJSWNGUVdKZ0o4OEZLbG92d0FyTjJkNlo0NWNaR0EvVDl2aVlmdHhlVnlRWXp1ZExFRUFTQW1BTVFFZ0JqSmVXbDF4eW1sTndBSEFNZHhISHZGeFU4cERRQ1dBRmJqT0g3STdBQ1QrTzhBTm5raEZPTnY4aG9jOHByd0E3aUpmeDBwQkpQNDEybUdvRE1RWHdyQk4vR2JJdWlNeEpkQThFdjhaZ2c2US9HcEVkd1J2d21DemxoOFNnUVB4SytPb01ZT01Ed1lud3JCRS9HbkNBYlhBUEtUWC8vakZKdVVVdTg0ZnY5ay9PdXNTLzhRZEFibDM4N2VJNEw4bVBjem5Lcm9UbGh5QjFqT2VDNVhDR2FNWDJJdHF3RllBVGlwSVNnUS81VFgwaGVBL042MkZJSlM4VXQrVGxEMElsQUpnY2Y0VlY0R0tpRHdHci9XK3dEVUNEekhyd2FBRllIMytGVUJzQ0ZnaUY4ZEFBc0NsdmhOQUhoSHdCUy9HUUN2Q05qaU53WGdEUUZqL09ZQXZDQmdqVzhDZ0hVRXpQSE5BTENLZ0QyK0tRRFdFQ2pFTndmQUNnS1YrQ1lCVEJEMEFNNjFFUlNJZndiUVc0eHZGa0JHY013N1FUVUVoZUt2OG5OQkFEQ01RREcrZVFDMUVLakdCNENGbDc4UmxGSmE0dXNYVEY3bmpKUnZ6MzVlRC9GZEFTaUlBS3J4M1FFb2hBQ3E4VjFjQTFTNkpwQ003eEtBUVFSdTQ3c0ZZQWlCNi9pdUFSaEE0RDYrZXdBTkVWREVwd0RRQUFGTmZCb0FGUkZReGFjQ1VBRUJYWHc2QUFVUlVNYW5CRkFBQVcxOFdnQXpJcUNPVHcxZ0JnVDA4ZWtCVEJEc25qaDB4eDVmQWtCR01BRFlQbkRJTmgrREFLQ0hRQ2ErRklBN0VVakZsd1B3QndLNStKSUFma0FnR1I5dytKV3dPZWY2eldEVitQSUFZdUxmeGdXQVdJSUFFQk1BWWdKQWpPUjhEZ0QrNk96Z3Y0dXk5Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgaCA9IDAuMztcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggLTAuMDA1LCAtMC4wMDQsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgY2hlY2ttYXJrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPak16T2pVekxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3pNem8xTXkwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzJPRGN4WVRrNVl5MHpOakU1TFRsa05HRXRPRGRrTmkwd1lXRTVZVFJpTldVNE1qYzhMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qWTROekZoT1RsakxUTTJNVGt0T1dRMFlTMDROMlEyTFRCaFlUbGhOR0kxWlRneU56d3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejV6OVJUM0FBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBVHRTVVJCVkhqYTdKemJiNVJGR01aLzJ4YkN2VmhBU0V4VWlJMTQ0dzBoUXRIRUdySGdJU3FnTjZLZ3ROWVdBYjB3MFdvMVhxcmJQYlNsb2tZU3hmTWhlbVgvQWE3d0dBVnE4WFRwMzBEWGk1bUptMGEydTl2My9iNloyWGx1ZHJPSGR3L1BNelBQKzc0elg2RldxeUdGZ1lFQkVscEdEL0FlY0N0d0IvRGJjbStZbTVzVCsvQ3U5UC9uaW02Z0NEd0NYQXQ4RFZ5WDVSZElBc2dQQmFBRWpOUTlkaVB3RmJBNUNTQitUQUZQL2Mvalc0SFBnTDRrZ0hneEN3dzFlUDVtNEdON213UVFFYm9zK1U4MDhkcXR3RWYyTmdrZ0VyYy8weVQ1RG4xMk9kaVNCQkErK2FVV3lYZllBbndEWEo4RUVHNnFOd2tNcnlER1pwc2kzcEFFRUI2cVYzRDdyYUlQK05LbWlra0FnZUF0NEloZ3ZKdnNUSkFFNERrS3dDbmdzRUxzczBrQS9xLzVzOEFoaGRqVHdFRnBkNW9nUzM1VmFlVFBBazhEaTBrQS9wSmZFbDd6SFU3U3VIS1lsZ0FQMXZ5eWtOdGZpaGt0OHBNQVpFa2FWb2hiVllxYkJDQ0lVOENUQ25GTHdKajJsMDhDV05tYS83YVMyNjhDeDZRTlh4S0FySG1lQmg1WFdrN0dzaUEvVHdHTVlmYS9oVXArbWZZYU84MjQvZUdzeU05TEFDOWdtaVB2QXpzREk3L0xyczFEU2lOL0tJOGZsQ1hHZ1ZmdC9WN2dETEFySUFGTWgrcjJmUkRBUzhERWtzYzJBaDhDL1IzczlzdkFhSjVUV2xia3YzeUY1OVpqZHIxczkzamExM0w3RmV2MmF6RUxZTHdCK1E1ck1iM3ViUjRhdnBOS2JuOGFlQWE0bkxlNnRRM2ZSSk92N1FXKzhHZ202TEVqVktPeE00TTVEM0E1N3grcEtZQVg2d3hmczlnQWZBTHM4SUI4cmNhT0t4dlhmRkM1bGdER2dWZmFmSzh6aHJ0eS9FKzBYSGtsTDdlZnBRQW1XcGoybHhQQmJUbjhKN1BvMWZaSDhRelNBbmpOam40SnJNZWNqc21xV0ZRQTNsVnkreVhyOW9sZEFIY0t4N3NhK0R3RFk5aGo4L3lEaXFuZVlpY0k0RkhnUitHWWE1V3pBODNHemhSdzFGZnlOUVR3QzNDUHZaWEVPdUJUekVVVUpMRXFnMVRQVy9LMVRPQ2Z3Q0J3VVRqdU5jaVdqYnN4WlZpTlZDKzMycjR2YWVBZndGM0FnbkRjVFZZRXR3dU5VQTN5eTVqZHUzU3lBQUIrQjNZckxBY2JCT29FN3loTis1TjJ6U2NKd0dBZWVBRDRUamh1TDZhQjFLb242TGJrUDZZMDhvL2pTWVhQRndFQW5BY2VWaERCVlMxbUI2NnhvMEgrRktheHMwaGd5S29kZkFGNEVQaEpxVTZ3M0V5d3locXpRMHJrajRSSWZwWUNBTGdFN0xFemdpUmN4YkMvd2Npdm9GUGVkZVFIaTZ5M2hQMWxqZUc4VW9xNE5Ec29ZSW84V2p0NWdpWS9Ed0hVcDRpL0ttUUhaK3BFVU1EczVORncrMFV5T0xRUnF3RGNjbkF2OEwxdzNIWEFhWnNpdnE1aytJckFDU0pCbnFlRDU0RUR3QWZBTFlKeE53SGZLcG15c2lWL01SWUI1SDB5NkFLd0gvaEJPTzVxWUkyQzRUc2FFL2srQ0FETTFiSDNJbDh4bEVUVkdyNGFrY0dYczRGL0EzZmJHY0UzVkFpb3RoK3FBTUIwRVhkN0pvSkpQTnpHRmFzQXdEU1FCcEhmVk5LdTJ6OUc1UER4ZVBnQzhCQndMdWVSZnlMR05UOEVBWURaVEhJQStRWlNzMnYrOGRqY2ZtZ0NjSFdDKzVGdklDM245a2M3aFh6ZkJlQ000UjdreThZZDUvWkRGUUQ4MTBDNnFQZ1owYnY5a0FWUW55SnFGSXZleEd6bUlBbkFiMXdDN2hNMmhrWGdXVG9Zb1YwbHpEV1FKRkxFNkJvN25TQUFseUx1WTJVTnBBb1pYb290Q1VBZUM1Z0cwczl0a2o5S1F0QUNBTk5BR3FTMVBZYWxSSDQ4QW5BcFlyUGJ5NG9FZG1nakNhRDVGSEV2amJlWHZZRXA3eVpFS0FEbkNmWmJFZndEUEk4NUwrRElmNDRPYU95MGczOEhBTS9lN2d1SVJ4OTRBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRUVTVVJCVkdpQjdkaEJEb013REVSUjdqVGlKQ1B1ZjVXdW1waFZ4WHlrVkpHeklwSjVjZ3NrZG80TGpxT0JyUUE5SEEwMDBNRCt3UFZqdkFXY0ZCanpFQmdKcE1DY1o4Qk1JQVRLUEFKS0FobFE1d253VGNBcE1DNURZQ1NRQXZlcjU4Qk1JQVRLRFJGUUVzaUFHazhBVTBBUU1BVUVBVk5BRURBRkJBRlRRQkF3QlFRQlUwQVFNQVVFQVZOQUVEQUZCQUZUUUJEd2NnRC9CUDRuNHNmSVh5VDhLdk9QQ1gvT2ZFSEJTeHBmVlBHeXpqY1d2TFh4elJWdjc3ekF3Q1VPTDdKd21jY0xUVnpxOG1JN0wvZlBra0lFNEphSE4xMjQ3ZU9OSjI1OWVmTjlpMWx6QUZHREZoM0NsS2hWQjFFemJObGgzSWo3d3hQTkJocG9ZRFdRamdhMkFENVMvQ3lJdmJtcTdnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NCdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHVuZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFUFNVUkJWR2lCN2RneENzUXdEQVRBL0Vub0pVTC8vOHBWc1dXbE9Md0xVVEJ5RmZiRXNOYzRkaTRuMTlYQVVZQnNyZ1lhYU9COHdQOHNHakFXY0Jvd0ZuQWFNQlp3R2pBV2NCalFVQUVDSkF4alFLaUFBZko4MmdSbUJSQ1lGVkJnVkVDQngrL2JnS1pzRzhnRCswQ3FzQStrQ1FCWUt3REFPb0lBU3dVRVdHWWdJRmFBZ0RpRUFhRUNCb1FwRUpnVlFHQ09vY0NvZ0FMd2p2U29BQVAzSUE0b0N3Z05LQXNJRFdnNXdQNEZaUUVuQVdVQkp3RmxnVHNyMjFCR1ZyV3B6cXpveFJLeW1wZHJ6RW9PR0V0V2NjaGFzNEtEWnNyZVAyem43UFVMeDNnRWdWR2c2dG8zQ3hSZGZVT0JvdXQvS0ZENkNjUllRRWpBV0VCSXdGZ2d6MzN3aTJZRERUUlFEYUNyZ1NPQUg4SDhLcWdnWXBBVUFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ1J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcbiIsIi8qKiBcclxuICogQmlnIGJ1dHRvbiB3aXRoIGFuIGltYWdlIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogQWxzbyB1c2FibGUgYXMgYW4gJ3h5IGNvbnRyb2xsZXInIHZpYSBhZGRYWUNvbnRyb2xsZXIgbWV0aG9kLlxyXG4gKiBcclxuICogQVBJIHN1YmplY3QgdG8gY2hhbmdlLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7aXNDb250cm9sbGVyVmlzaWJsZX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBmdW5jID0gdW5kZWZpbmVkLFxyXG4gIHByZXNzaW5nID0gdW5kZWZpbmVkLFxyXG4gIGltYWdlID0gXCJ0ZXh0dXJlcy9zcG90bGlnaHQuanBnXCIsIC8vVE9ETyBiZXR0ZXIgZGVmYXVsdFxyXG4gIHdpZGUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY2hhbmdlQ29sb3JPbkhvdmVyID0gdHJ1ZSwgLy9xdWljayBoYWNrOiBjb2xvciBwaWNrZXIgd2FudHMgdGhpcyB0byBiZSBmYWxzZVxyXG4gIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAgLy9YWFggbWFnaWMgbnVtYmVycy4uLlxyXG4gIGlmICghaGVpZ2h0KSBoZWlnaHQgPSBMYXlvdXQuUEFORUxfV0lEVEggICogKHdpZGUgPyAwLjk0IDogMC4yNSk7XHJcbiAgXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAod2lkZSA/IDAuOTQgOiAwLjI1KSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gYnV0dG9uRGVwdGg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgMSwgMSApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICAvL21vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gIGlmICghd2lkZSkgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgZWxzZSB7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAwLjc1O1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi55ID0gMC4wMTsgLy9YWFggbWFnaWMgbnVtYmVyXHJcbiAgfVxyXG5cclxuICB2YXIgbWF0ZXJpYWw7XHJcbiAgaWYgKGltYWdlLmlzTWF0ZXJpYWwpIHtcclxuICAgIG1hdGVyaWFsID0gaW1hZ2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgbWF0ZXJpYWwpO1xyXG4gIH1cclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgLy9idXR0b24gbGFiZWwgcmVtb3ZlZDsgbWlnaHQgd2FudCBvcHRpb25zIGxpa2UgYSBob3ZlciBsYWJlbCBpbiBmdXR1cmUuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGlmICh3aWRlKSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIC8vVE9ETzogZHJhZyBhbmQgaG92ZXJcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdob3ZlcmluZycsIGhhbmRsZUhvdmVyICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlUHJlc3NpbmcgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgbGV0IGhvdmVyRnVuYyA9IHVuZGVmaW5lZDtcclxuICAvLyBJIG1pZ2h0IHlldCBkZWNpZGUgdG8gY2hhbmdlIHRoaXMgaW50ZXJmYWNlLlxyXG4gIC8vIG1pZ2h0IHVzZSBhIGRpZmZlcmVudCBuYW1lLCBtaWdodCB3YW50IHRvIGFkZCBsaXN0ZW5lcnMgdG8gZXZlbnRcclxuICAvLyByYXRoZXIgdGhhbiBqdXN0IHNldCBjYWxsYmFjayBmdW5jdGlvbi5cclxuICBncm91cC5vbkhvdmVyID0gZiA9PiB7XHJcbiAgICBob3ZlckZ1bmMgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBncm91cC5vblByZXNzaW5nID0gZiA9PiB7XHJcbiAgICBwcmVzc2luZyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhvdmVyKCBwICl7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChob3ZlckZ1bmMpIGhvdmVyRnVuYyhwKTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy9pdCBzaG91bGQgYmUgdGhhdCB0aGUgY2hlY2tzIGluIGluZGV4LmpzIG1lYW4gdGhhdCBtZXRob2RzIGRvbid0IGdldCBjYWxsZWQgb24gaW52aXNpYmxlXHJcbiAgICAvL29iamVjdHMsIHJlbmRlcmluZyB0aGVzZSB0ZXN0cyByZWR1bmRhbnQuLi4gaG93ZXZlciwgdGhhdCBkb2Vzbid0IGFwcGVhciB0byBiZSB0aGUgY2FzZS5cclxuICAgIC8vZXhwZXJpZW5jZWQgc29tZSBidWdzIHBhcnRpY3VsYXJseSB3aXRoICdtb2RhbCBlZGl0b3InIHR5cGUgcGFuZWxzLlxyXG4gICAgLy9UT0RPOiBlaXRoZXIgbWFrZSBzdXJlIGludmlzaWJsZSBvYmplY3RzIGFyZW4ndCBjYWxsZWQgaW4gdGhlIGZpcnN0IHBsYWNlLFxyXG4gICAgLy9vciBtYWtlIHN1cmUgYWxsIHR5cGVzIG9mIG9iamVjdCBkbyB0aGlzIG1vcmUgdGhvcm91Z2ggdmlzaWJpbGl0eSBjaGVjay4uLlxyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAob2JqZWN0KSBvYmplY3RbIHByb3BlcnR5TmFtZSBdKHApO1xyXG4gICAgaWYgKGZ1bmMpIGZ1bmMocCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vY29tcHV0ZSB4ICYgeSBhcyBub3JtYWxpc2VkIGNvb3JkaW5hdGVzIGZyb20gcC5wb2ludFxyXG4gIC8vY291bGQgY29uc2lkZXIgbW92aW5nIHRoaXMgY29tcHV0YXRpb24gaW50byBpbnRlcmFjdGlvbi5qcyBwZXJmb3JtU3RhdGVFdmVudHMoKVxyXG4gIGZ1bmN0aW9uIGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHBvaW50KSB7XHJcbiAgICBjb25zdCBwID0gaGl0c2NhblZvbHVtZS53b3JsZFRvTG9jYWwocG9pbnQpO1xyXG4gICAgcC54IC89IEJVVFRPTl9XSURUSDtcclxuICAgIHAueSAvPSBCVVRUT05fSEVJR0hUO1xyXG4gICAgcC55ICs9IDAuNTtcclxuICAgIHAueCA9IE1hdGgubWF4KE1hdGgubWluKHAueCwgMSksIDApO1xyXG4gICAgcC55ID0gTWF0aC5tYXgoTWF0aC5taW4ocC55LCAxKSwgMCk7XHJcbiAgICByZXR1cm4gcDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZVByZXNzaW5nKCBwICkge1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgcHJlc3NpbmcgYXQgKCR7cG9pbnQueH0sICR7cG9pbnQueX0pYCk7IC8vZmlyc3QgaW5zdGFuY2Ugb2YgJ3ByZXNzaW5nJyBpcyBhbHdheXMgYXQgKDEsIDEpXHJcbiAgICAvL25iLCBsaWtlbHkgdG8gbmVlZCBhIGRpZmZlcmVudCBzdHJhdGVneSBmb3IgZHVhbCB3aWVsZGluZ1xyXG4gICAgaWYgKHByZXNzaW5nKSBwcmVzc2luZyhwKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYgKCFtYXRlcmlhbC5jb2xvcikgcmV0dXJuO1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweENDQ0NDQyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqIFxyXG4gKiBHcmlkIG9mIGJ1dHRvbnMgd2l0aCBpbWFnZXMgb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBpbWFnZWJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtjcmVhdGVUZXh0TGFiZWwsIGNyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3RzLCAvLyBhcnJheSBvZiB7ZnVuYywgaW1hZ2UgfCB0ZXh0LCB0aXAob3B0aW9uYWwpLCByZWxlYXNlKG9wdGlvbmFsKX1cclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICByb3dIZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY29sdW1ucyA9IDRcclxufSA9IHt9ICl7XHJcbiAgXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdCBtYXJnaW4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMztcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSAod2lkdGggLSBtYXJnaW4pICogKDEvY29sdW1ucyk7XHJcbiAgLy9UT0RPOiBhZGQgc2V0Um93SGVpZ2h0IG1ldGhvZFxyXG4gIGxldCBCVVRUT05fSEVJR0hUID0gcm93SGVpZ2h0ID4gMCA/IHJvd0hlaWdodCA6IEJVVFRPTl9XSURUSDtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uZ3JpZFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke29iamVjdHN9XWA7XHJcbiAgXHJcbiAgY29uc3Qgcm93cyA9IE1hdGguY2VpbChvYmplY3RzLmxlbmd0aCAvIGNvbHVtbnMpO1xyXG4gIGxldCBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgZ3JvdXAuc2V0Um93SGVpZ2h0ID0gaCA9PiB7XHJcbiAgICByb3dIZWlnaHQgPSBCVVRUT05fSEVJR0hUID0gaDtcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcbiAgICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGhpZ2hsaWdodExhc3RQcmVzc2VkID0gZmFsc2U7XHJcbiAgbGV0IGxhc3RQcmVzc2VkID0gbnVsbDtcclxuICBsZXQgbGFzdFByZXNzZWRDb2w7XHJcbiAgZ3JvdXAuaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSAoY29sID0gMHgzMzU1RUUpID0+IHtcclxuICAgICAgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBjb2wgIT09IGZhbHNlO1xyXG4gICAgICBsYXN0UHJlc3NlZENvbCA9IGNvbDtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBcclxuICBsZXQgcGFuZWwsIGdyYWJJbnRlcmFjdGlvbiwgYnV0dG9ucyA9IFtdO1xyXG5cclxuICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaW5pdFBhbmVsKCkge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgcGFuZWwuYWRkKGNvbnRyb2xsZXJJRCk7XHJcbiAgICBcclxuICAgIGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5ncm91cC5yZW1vdmUoYikpO1xyXG4gICAgYnV0dG9ucyA9IFtdO1xyXG4gICAgZ3JvdXAuZ3VpQ2hpbGRyZW4gPSBidXR0b25zO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBsYXlvdXRCdXR0b25zKCkge1xyXG4gICAgaW5pdFBhbmVsKCk7XHJcbiAgICAvL1RPRE86IHBhZGRpbmdcclxuICAgIGNvbnN0IGJ1dHRvbldQYWRkZWQgPSBCVVRUT05fV0lEVEggKiAwLjk5LCBidXR0b25IUGFkZGVkID0gQlVUVE9OX0hFSUdIVCAqIDAuOTk7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGJ1dHRvbldQYWRkZWQsIGJ1dHRvbkhQYWRkZWQsIDEsIDEgKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBidXR0b25XUGFkZGVkIC8gMiwgLWJ1dHRvbkhQYWRkZWQgLyAyLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgICB2YXIgaSA9IDA7XHJcbiAgICBcclxuICAgIC8vVE9ETzogdG9nZ2xlcyByYXRoZXIgdGhhbiB0cmlnZ2Vycy4uLlxyXG4gICAgb2JqZWN0cy5mb3JFYWNoKChvYmosIGkpID0+IHtcclxuICAgICAgICBpZiAoIW9iai5pbWFnZSAmJiAhb2JqLnRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc3ViZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9ub3RlOiByZWR1Y2luZyBuZXN0aW5nIGNvdWxkIGltcHJvdmUgcGVyZm9ybWFuY2UuXHJcbiAgICAgICAgc3ViZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VCdXR0b25HcmlkRWxlbWVudFwiO1xyXG4gICAgICAgIGdyb3VwLmFkZChzdWJncm91cCk7XHJcbiAgICAgICAgYnV0dG9ucy5wdXNoKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sID0gaSAlIGNvbHVtbnM7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gTWF0aC5mbG9vcihpIC8gY29sdW1ucyk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnggPSAoMipMYXlvdXQuUEFORUxfTUFSR0lOKSArIEJVVFRPTl9XSURUSCAqIGNvbDtcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi55ID0gKGhlaWdodC8yKSAtQlVUVE9OX0hFSUdIVCAqIHJvdztcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG5cclxuICAgICAgICAvLyAgaGl0c2NhbiB2b2x1bWUuXHJcbiAgICAgICAgLy8gVGhpcyBtYXRlcmlhbCBjb3VsZCBwcm9iYWJseSBiZSByZXVzZWQuXHJcbiAgICAgICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG5cclxuICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgICAgICBpZiAob2JqLmltYWdlKSBhcHBseUltYWdlVG9NYXRlcmlhbChvYmouaW1hZ2UsIG1hdGVyaWFsKTtcclxuICAgICAgICBpZiAob2JqLnRleHQpIHtcclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZShvYmoudGV4dCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpbiA9IDIqTGF5b3V0LkdSSURfQlVUVE9OX01BUkdJTjtcclxuICAgICAgICAgICAgbGV0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICBpZiAodyA+IEJVVFRPTl9XSURUSCAtIG1hcmdpbikge1xyXG4gICAgICAgICAgICAgICAgdGV4dC5jb25zdHJhaW5Cb3VuZHMoQlVUVE9OX1dJRFRIIC0gbWFyZ2luLCBCVVRUT05fSEVJR0hUIC0gbWFyZ2luKTsgLy88LS1cclxuICAgICAgICAgICAgICAgIGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLmFkZCh0ZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGV4dCA9IHRleHQ7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueCA9IG9iai50ZXh0WCB8fCAwLjUgKiAoQlVUVE9OX1dJRFRIIC0gdyk7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueSA9IG9iai50ZXh0WSB8fCAtMC41ICogQlVUVE9OX0hFSUdIVCAtIGg7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgICAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgICAgIC8vYnV0dG9uIGxhYmVsICYgZGVzY3JpcHRvciBsYWJlbCByZW1vdmVkLlxyXG4gICAgICAgIC8vVG9vbHRpcCB0ZXh0IG9wdGlvbiBhZGRlZC4gIE1pZ2h0IHdhbnQgdG8gYmUgYWJsZSB0byBwYXNzIGluIHJpY2hlciB0aGluZ3MuLi5cclxuICAgICAgICAvL21heWJlIGFuIGFyYml0cmFyeSBUSFJFRSBvYmplY3Qgd291bGQgd29yayB3ZWxsLi4uXHJcbiAgICAgICAgaWYgKG9iai50aXApIHtcclxuICAgICAgICAgICAgY29uc3QgdGlwVGV4dCA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIG9iai50aXAsIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vc3ViZ3JvdXAuYWRkKHRpcFRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50aXBUZXh0ID0gdGlwVGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy9wYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcbiAgICAgICAgc3ViZ3JvdXAuYWRkKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgcGFuZWwuYWRkKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAgICAgICAgIGlmKCBzdWJncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vVE9ETzogc3RhbmRhcmRpc2UgaGFuZGxpbmcgb2YgZXhjZXB0aW9ucyBpbiBjYWxsYmFja3NcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIG9iai5mdW5jKCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIG9iai5lcnJvciA9IGUgfHwgJ3VuZGVmaW5lZCBleGNlcHRpb24nO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxhc3RQcmVzc2VkID0gb2JqO1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC40O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgICAgICAgICAgIGlmIChvYmoucmVsZWFzZSkgb2JqLnJlbGVhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9xdWljayBjb2xvciBoYWNrLi4uXHJcbiAgICAgICAgY29uc3QgaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgY29uc3Qgbm9Ib3ZlckNvbCA9IG9iai50ZXh0ID8gMHgxMTEgOiAweENDQ0NDQztcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3ID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaGlnaGxpZ2h0TGFzdFByZXNzZWQgJiYgbGFzdFByZXNzZWQgPT09IG9iaikge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBsYXN0UHJlc3NlZENvbCApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpID8gaG92ZXJDb2wgOiBub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygpICk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwwKSApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlOyAvL3NvbWV0aW1lcyB3ZSBjYXJlIGFib3V0IHRoZSBtb3VzZSBiZWluZyBwcmVzc2VkLCBldmVuIG9uIGJhY2tncm91bmRcclxuICAgICAgIC8vd2lsbCBiZSBzZXQgZmFsc2UgYXQgZW5kIG9mIGZpcnN0IHVwZGF0ZS4gU2hvdWxkbid0IGJlIG5lY2Vzc2FyeSB0byBhZGQgYSBuZXcgcHJvcGVydHkuLi4gXHJcbiAgICAgICAvL29uUHJlc3NlZCBzaG91bGQgYmUgYWRlcXVhdGUuXHJcbiAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgfSwgdHJ1ZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2V1cCcsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBmdW5jdGlvbiB1c2VycyBydW4gdG8gZ2l2ZSBEQVQgR1VJIGFuIGlucHV0IGRldmljZS5cclxuICAgIEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBmb3IgVml2ZUNvbnRyb2xsZXIgYW5kIGJpbmRzIGJ1dHRvbnMgKyBoYXB0aWMgZmVlZGJhY2suXHJcblxyXG4gICAgUmV0dXJucyBhIGxhc2VyIHBvaW50ZXIgc28gaXQgY2FuIGJlIGRpcmVjdGx5IGFkZGVkIHRvIHNjZW5lLlxyXG5cclxuICAgIFRoZSBsYXNlciB3aWxsIHRoZW4gaGF2ZSB0d28gbWV0aG9kczpcclxuICAgIGxhc2VyLnByZXNzZWQoKSwgbGFzZXIuZ3JpcHBlZCgpXHJcblxyXG4gICAgVGhlc2UgY2FuIHRoZW4gYmUgYm91bmQgdG8gYW55IGJ1dHRvbiB0aGUgdXNlciB3YW50cy4gVXNlZnVsIGZvciBiaW5kaW5nIHRvXHJcbiAgICBjYXJkYm9hcmQgb3IgYWx0ZXJuYXRlIGlucHV0IGRldmljZXMuXHJcblxyXG4gICAgRm9yIGV4YW1wbGUuLi5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCl7IGxhc2VyLnByZXNzZWQoIHRydWUgKTsgfSApO1xyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW5wdXRPYmplY3QoIG9iamVjdCApe1xyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCggb2JqZWN0ICk7XHJcblxyXG4gICAgaW5wdXQubGFzZXIucHJlc3NlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGNvbnN0IGhpdHMgPSBpbnB1dC5pbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvLyBvbmx5IHBheSBhdHRlbnRpb24gdG8gcHJlc3NlcyBvdmVyIHRoZSBHVUlcclxuICAgICAgaWYgKGZsYWcgJiYgaGl0cyAmJiAoaGl0cy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5ncmlwcGVkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgaW5wdXQuZ3JpcHBlZCA9IGZsYWc7XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmN1cnNvciA9IGlucHV0LmN1cnNvcjtcclxuXHJcbiAgICBpZiggVEhSRUUuVml2ZUNvbnRyb2xsZXIgJiYgb2JqZWN0IGluc3RhbmNlb2YgVEhSRUUuVml2ZUNvbnRyb2xsZXIgKXtcclxuICAgICAgYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgb2JqZWN0LCBpbnB1dC5sYXNlci5wcmVzc2VkLCBpbnB1dC5sYXNlci5ncmlwcGVkICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLnB1c2goIGlucHV0ICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0Lmxhc2VyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEhlcmUgYXJlIHRoZSBtYWluIGRhdCBndWkgY29udHJvbGxlciB0eXBlcy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBtaW4gPSAwLjAsIG1heCA9IDEwMC4wICl7XHJcbiAgICBjb25zdCBzbGlkZXIgPSBjcmVhdGVTbGlkZXIoIHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBtaW4sIG1heCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBzbGlkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gc2xpZGVyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBjaGVja2JveCA9IGNyZWF0ZUNoZWNrYm94KHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGNoZWNrYm94ICk7XHJcblxyXG4gICAgcmV0dXJuIGNoZWNrYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmMgdG8gY2FsbCBiYWNrIHdoZW4gYnV0dG9uIHByZXNzZWRcclxuICAgKiBAcGFyYW0geyp9IGltYWdlIGNhbiBiZSBmaWxlbmFtZSwgV2ViR0xSZW5kZXJUYXJnZXQgb3IgTWF0ZXJpYWxcclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHdpZGUgd2hldGhlciB0byBtYWtlIGJ1dHRvbiBmaWxsIGVudGlyZSB3aWR0aCBvZiBwYW5lbCAoYXBpIHN1YmplY3QgdG8gY2hhbmdlKVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uKGZ1bmMsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IG9iamVjdCA9IHsgZjogZnVuYyB9O1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJ2YnO1xyXG5cclxuXHJcbiAgICAvL3NlZSBhbHNvIGZvbGRlci5qcyB3aGVyZSB0aGlzIGlzIGFkZGVkIHRvIGdyb3VwIG9iamVjdC4uLlxyXG4gICAgLy9hcyBzdWNoIHRoaXMgZnVuY3Rpb24gYWxzbyBuZWVkcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gY3JlYXRlRm9sZGVyLlxyXG4gICAgLy9wZXJoYXBzIGFsbCBvZiB0aGVzZSAnYWRkWCcgZnVuY3Rpb25zIGNvdWxkIGJlIGluaXRpYWxseSBwdXQgb250byBhbiBvYmplY3Qgc28gdGhhdFxyXG4gICAgLy9uZXcgYWRkaXRpb25zIGNvdWxkIGJlIGFkZGVkIHNsaWdodGx5IG1vcmUgZWFzaWx5LlxyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkWFlDb250cm9sbGVyKHByZXNzaW5nLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnJztcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByZXNzaW5nLCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChidXR0b24pO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVGhpcyBpbnRlcmZhY2UgbWF5IGJlIHN1YmplY3QgdG8gY2hhbmdlLiAgQXJndW1lbnRzIGFyZSBvYmplY3RzIGRlc2NyaWJpbmcgYnV0dG9uc1xyXG4gIEZpcnN0IG9iamVjdCBtYXkgYmUgYW4gaW50ZWdlciBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uUGFuZWwoY29scywgLi4uYXJncykge1xyXG4gICAgbGV0IGNvbHVtbnMgPSBOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpID8gY29scyA6IDQ7XHJcbiAgICBjb25zdCBvYmplY3RzID0gYXJncztcclxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihjb2xzKSkgb2JqZWN0cy51bnNoaWZ0KGNvbHMpXHJcbiAgICBjb25zdCBncmlkID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogY29sdW1uc30pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChncmlkKTtcclxuICAgIHJldHVybiBncmlkO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkS2V5Ym9hcmQoIGtleUxpc3RlbmVyICkge1xyXG4gICAgaWYgKCFrZXlMaXN0ZW5lcikga2V5TGlzdGVuZXIgPSAoaykgPT4gY29uc29sZS5sb2coYGtleURvd24gJHtrfWApO1xyXG4gICAgY29uc3Qga2IgPSBjcmVhdGVLZXlib2FyZCh7a2V5TGlzdGVuZXIsIHRleHRDcmVhdG9yfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGtiKTtcclxuICAgIHJldHVybiBrYjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlVGV4dGJveCh7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVDb2xvclBpY2tlcih7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvcHRpb25zICl7XHJcbiAgICBjb25zdCBkcm9wZG93biA9IGNyZWF0ZURyb3Bkb3duKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBvcHRpb25zXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBkcm9wZG93biApO1xyXG4gICAgcmV0dXJuIGRyb3Bkb3duO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBbiBpbXBsaWNpdCBBZGQgZnVuY3Rpb24gd2hpY2ggZGV0ZWN0cyBmb3IgcHJvcGVydHkgdHlwZVxyXG4gICAgYW5kIGdpdmVzIHlvdSB0aGUgY29ycmVjdCBjb250cm9sbGVyLlxyXG5cclxuICAgIERyb3Bkb3duOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvYmplY3RUeXBlIClcclxuXHJcbiAgICBTbGlkZXI6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mTnVtYmVyVHlwZSwgbWluLCBtYXggKVxyXG5cclxuICAgIENoZWNrYm94OlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkJvb2xlYW5UeXBlIClcclxuXHJcbiAgICBCdXR0b246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mRnVuY3Rpb25UeXBlIClcclxuXHJcbiAgICBOb3QgdXNlZCBkaXJlY3RseS4gVXNlZCBieSBmb2xkZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKXtcclxuXHJcbiAgICBpZiggb2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2VcclxuXHJcbiAgICBpZiAob2JqZWN0LmlzRm9sZGVyKSByZXR1cm4gb2JqZWN0O1xyXG5cclxuICAgIGlmKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgY29uc29sZS53YXJuKCAnbm8gcHJvcGVydHkgbmFtZWQnLCBwcm9wZXJ0eU5hbWUsICdvbiBvYmplY3QnLCBvYmplY3QgKTtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc09iamVjdCggYXJnMyApIHx8IGlzQXJyYXkoIGFyZzMgKSApe1xyXG4gICAgICByZXR1cm4gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzTnVtYmVyKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Jvb2xlYW4oIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNGdW5jdGlvbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc1N0cmluZyggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNDb2xvciggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYWRkIGNvdWxkbid0IGZpZ3VyZSBpdCBvdXQsIHBhc3MgaXQgYmFjayB0byBmb2xkZXJcclxuICAgIHJldHVybiB1bmRlZmluZWRcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVTbGlkZXIoIG1pbiA9IDAsIG1heCA9IDEgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBudW1iZXI6IG1pblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkU2xpZGVyKCBwcm94eSwgJ251bWJlcicsIG1pbiwgbWF4ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVEcm9wZG93biggb3B0aW9ucyA9IFtdICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgb3B0aW9uOiAnJ1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiggb3B0aW9ucyAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHByb3h5Lm9wdGlvbiA9IGlzQXJyYXkoIG9wdGlvbnMgKSA/IG9wdGlvbnNbIDAgXSA6IG9wdGlvbnNbIE9iamVjdC5rZXlzKG9wdGlvbnMpWzBdIF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFkZERyb3Bkb3duKCBwcm94eSwgJ29wdGlvbicsIG9wdGlvbnMgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUNoZWNrYm94KCBkZWZhdWx0T3B0aW9uID0gZmFsc2UgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBjaGVja2VkOiBkZWZhdWx0T3B0aW9uXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRDaGVja2JveCggcHJveHksICdjaGVja2VkJyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQnV0dG9uKCBmbiApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGJ1dHRvbjogKGZuIT09dW5kZWZpbmVkKSA/IGZuIDogZnVuY3Rpb24oKXt9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRCdXR0b24oIHByb3h5LCAnYnV0dG9uJyApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBOb3QgdXNlZCBkaXJlY3RseTsgdXNlZCBieSBmb2xkZXJzLlxyXG4gIFJlbW92ZSBjb250cm9sbGVycyBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgY29udHJvbGxlcnMga25vd24gdG8gZGF0LkdVSVZSLlxyXG4gIENhbGxzIHJlbW92ZVRlc3QgZmlyc3QgdG8gY2hlY2sgaW5wdXQgYXJndW1lbnRzLiAgcmV0dXJucyBmYWxzZSBpZiB0aGlzIHRlc3QgZmFpbHMuXHJcbiAgcmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuXHJcblxyXG4gIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlY3Vyc2l2ZWx5IHJlbW92ZSBlbGVtZW50cyBmcm9tIGZvbGRlcnM7IHRoYXQgaXMgZGVhbHQgd2l0aCBpbiB0aGUgZm9sZGVyIGNvZGUgd2hpY2ggY2FsbHMgdGhpcy5cclxuICBcclxuICAgKi9cclxuICBmdW5jdGlvbiByZW1vdmUoIC4uLmFyZ3MgKXtcclxuICAgIGxldCBhcmdTZXQgPSBbIC4uLm5ldyBTZXQoYXJncykgXTsgLy9qdXN0IGluIGNhc2UgdGhlcmUgd2VyZSByZXBlYXRlZCBlbGVtZW50cyBpbiBhcmdzLCB0dXJuIGludG8gU2V0IHRoZW4gYmFjayB0byBhcnJheS5cclxuICAgIGlmICggIXJlbW92ZVRlc3QoLi4uYXJnU2V0KSApIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ1NldC5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIHZhciBpID0gY29udHJvbGxlcnMuaW5kZXhPZiggb2JqICk7XHJcbiAgICAgIGlmICggaSA+IC0xKSBjb250cm9sbGVycy5zcGxpY2UoIGksIDEgKTtcclxuICAgICAgZWxzZSB7IC8vIEkgY2FuJ3Qgc2VlIGhvdyB0aGlzJ2QgaGFwcGVuIG5vdyB3ZSBndWFyZCBhZ2FpbnN0IHJlcGVhdGVkIGVsZW1lbnRzLlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW50ZXJuYWwgZXJyb3IgaW4gcmVtb3ZlLCBub3QgYW50aWNpcGF0ZWQgYnkgcmVtb3ZlVGVzdC4gSW50ZXJuYWwgZGF0LkdVSVZSIHN0YXRlIG1heSBiZSBpbmNvbnNpc3RlbnQuXCIpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVmVyaWZ5IHRoYXQgYWxsIG9mIHRoZSBpdGVtcyBpbiBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGV4aXN0aW5nIGNvbnRyb2xsZXJzIHRoYXQgc2hvdWxkIGJlIG9rIHRvIHJlbW92ZS5cclxuXHJcbiAgUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBhcmUgYW55IG1pc21hdGNoZXMsIHRydWUgaWYgYmVsaWV2ZWQgb2sgdG8gY29udGludWUgd2l0aCBhY3R1YWwgcmVtb3ZlKClcclxuXHJcbiAgSWYgYW55IG9mIHRoZSBwcm92aWRlZCBhcmdzIGFyZSBmb2xkZXJzIChoYXZlIGlzRm9sZGVyIHByb3BlcnR5KSB0aGlzIGlzIGNhbGxlZCByZWN1cnNpdmVseS5cclxuICBUaGlzIHdpbGwgcmVzdWx0IGluIHJlZHVuZGFudCB3b3JrIGFzIGVhY2ggZm9sZGVyIHdpbGwgYWxzbyBjYWxsIGl0IGFnYWluIGFzIGl0J3MgcmVtb3ZlZCwgYnV0IHRoaXMgaXMgY2hlYXBcclxuICBhbmQgaXQgbWVhbnMgdGhhdCBhbnkgZXJyb3Igc2hvdWxkIGJlIGNhdWdodCBhcyBlYXJseSBhcyBwb3NzaWJsZSBhbmQgdGhlIHdob2xlIHByb2Nlc3MgYWJvcnRlZC5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZVRlc3QoIC4uLmFyZ3MgKSB7XHJcbiAgICBmb3IgKHZhciBpPTA7IGk8YXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgb2JqID0gYXJnc1tpXTtcclxuICAgICAgaWYgKGNvbnRyb2xsZXJzLmluZGV4T2Yob2JqKSA9PT0gLTEgfHwgIW9iai5mb2xkZXIuaGFzQ2hpbGQob2JqKSkge1xyXG4gICAgICAgIC8vVE9ETzogdG9TdHJpbmcgaW1wbGVtZW50YXRpb25zIGZvciBjb250cm9sbGVyc1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2FuJ3QgcmVtb3ZlIGNvbnRyb2xsZXIgXCIgKyBvYmopOyAvL25vdCBzdXJlIHRoZSBwcmVmZXJyZWQgd2F5IG9mIHJlcG9ydGluZyBwcm9ibGVtIHRvIHVzZXIuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBpZiAoIXJlbW92ZVRlc3QoIC4uLm9iai5ndWlDaGlsZHJlbiApKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGxldGVseSByZW1vdmUgYWxsIEdVSSBlbGVtZW50cyBmcm9tIHRoZSBzeXN0ZW0gZ2xvYmFsbHksIFxyXG4gICAqIGluY2x1ZGluZyByZW1vdmluZyBhbnkgb2JqZWN0cyBmcm9tIHRoZSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY2xlYXJBbGwoKSB7XHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBjLnZpc2libGUgPSBmYWxzZTsgaWYgKGMucGFyZW50ICYmICFjLnBhcmVudC5ndWlDaGlsZHJlbikgYy5wYXJlbnQucmVtb3ZlKGMpO1xyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5zcGxpY2UoMCwgY29udHJvbGxlcnMubGVuZ3RoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGZvbGRlciB3aXRoIHRoZSBuYW1lLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIFRIUkVFLkdyb3VwIHR5cGUgb2JqZWN0cyBhbmQgY2FuIGRvIGdyb3VwLmFkZCgpIGZvciBzaWJsaW5ncy5cclxuICAgIEZvbGRlcnMgd2lsbCBhdXRvbWF0aWNhbGx5IGF0dGVtcHQgdG8gbGF5IGl0cyBjaGlsZHJlbiBvdXQgaW4gc2VxdWVuY2UuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgZ2l2ZW4gdGhlIGFkZCgpIGZ1bmN0aW9uYWxpdHkgc28gdGhhdCB0aGV5IGNhbiBkb1xyXG4gICAgZm9sZGVyLmFkZCggLi4uICkgdG8gY3JlYXRlIGNvbnRyb2xsZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggbmFtZSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gY3JlYXRlRm9sZGVyKHtcclxuICAgICAgdGV4dENyZWF0b3IsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGd1aUFkZDogYWRkLFxyXG4gICAgICBndWlSZW1vdmU6IHJlbW92ZSxcclxuICAgICAgYWRkQ29udHJvbGxlckZ1bmNzOiB7XHJcbiAgICAgICAgYWRkU2xpZGVyOiBhZGRTaW1wbGVTbGlkZXIsXHJcbiAgICAgICAgYWRkRHJvcGRvd246IGFkZFNpbXBsZURyb3Bkb3duLFxyXG4gICAgICAgIGFkZENoZWNrYm94OiBhZGRTaW1wbGVDaGVja2JveCxcclxuICAgICAgICBhZGRCdXR0b246IGFkZFNpbXBsZUJ1dHRvbixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvbjogYWRkSW1hZ2VCdXR0b24sXHJcbiAgICAgICAgYWRkWFlDb250cm9sbGVyOiBhZGRYWUNvbnRyb2xsZXIsXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b25QYW5lbDogYWRkSW1hZ2VCdXR0b25QYW5lbCxcclxuICAgICAgICBhZGRLZXlib2FyZDogYWRkS2V5Ym9hcmQsXHJcbiAgICAgICAgYWRkVGV4dGJveDogYWRkVGV4dGJveFxyXG4gICAgICB9LFxyXG4gICAgICBnbG9iYWxDb250cm9sbGVyczogY29udHJvbGxlcnMsXHJcbiAgICAgIC8vPz8/XHJcbiAgICAgIGFkZEhlYWRlckZ1bmNzOiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGZvbGRlciApO1xyXG5cclxuICAgIHJldHVybiBmb2xkZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFBlcmZvcm0gdGhlIG5lY2Vzc2FyeSB1cGRhdGVzLCByYXljYXN0cyBvbiBpdHMgb3duIFJBRi5cclxuICAqL1xyXG5cclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IHREaXJlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMyggMCwgMCwgLTEgKTtcclxuICBjb25zdCB0TWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCkge1xyXG4gICAgY29uc3QgaXNPcnRob2dyYXBoaWMgPSBtb3VzZUVuYWJsZWQgJiYgbW91c2VJbnB1dC5tb3VzZUNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYTtcclxuICAgIGlmIChhdXRvVXBkYXRlKSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoIHVwZGF0ZSApO1xyXG4gICAgXHJcbiAgICB2YXIgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCk7XHJcbiAgICBjb25zdCBmb2xkZXJzID0gY29udHJvbGxlcnMuZmlsdGVyKGMgPT4gYy5mb2xkZXIgPT09IGMpOyAvL2FsbCB0b3AtbGV2ZWwgZm9sZGVyc1xyXG4gICAgZm9sZGVycy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gaXNPcnRob2dyYXBoaWMgPyBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhIDogZmFsc2U7XHJcbiAgICAgIGlmIChmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgICBmLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgICBmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSBmYWxzZTsgLy8gcHJvdGVjdCBhbnkgbmV3bHktZGlzcGxheWVkIG1vZGFsRWRpdG9yIGZyb20gYmVpbmcgY2xlYXJlZFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChmLnVzZXJEYXRhLmxheW91dFBlbmRpbmcpIGYucGVyZm9ybUxheW91dCgpO1xyXG4gICAgfSk7IFxyXG5cclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgLy9UT0RPOiBsb2NrIG1vdXNlIG9uIGhvdmVyPz9cclxuICAgICAgbW91c2VJbnB1dC5pbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixpbnRlcmFjdGlvbn0gPSB7fSwgaW5kZXggKXtcclxuICAgICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgICBvYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgXHJcbiAgICAgIHRQb3NpdGlvbi5zZXQoMCwwLDApLnNldEZyb21NYXRyaXhQb3NpdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIHRNYXRyaXguaWRlbnRpdHkoKS5leHRyYWN0Um90YXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBcclxuICAgICAgdERpcmVjdGlvbi5zZXQoMCwwLC0xKTtcclxuICAgICAgLy9hbHRlcmluZyBkaXJlY3Rpb24gZS5nLiB0byBwb2ludCBpbiBkaXJlY3Rpb24gb2YgZXh0ZW5kZWQgdHJpZ2dlciBmaW5nZXIsIHJhdGhlciB0aGFuICdtYWluIGF4aXMnIG9mIFZpdmUgY29udHJvbGxlci4uLlxyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkIGJlIGluIHVzZXJEYXRhLlxyXG4gICAgICBpZiAob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpIHREaXJlY3Rpb24uYXBwbHlRdWF0ZXJuaW9uKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKTtcclxuICAgICAgdERpcmVjdGlvbi5hcHBseU1hdHJpeDQoIHRNYXRyaXggKS5ub3JtYWxpemUoKTtcclxuICAgICAgXHJcbiAgICAgIHJheWNhc3Quc2V0KCB0UG9zaXRpb24sIHREaXJlY3Rpb24gKTtcclxuICAgICAgXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMCBdLmNvcHkoIHRQb3NpdGlvbiApO1xyXG4gICAgICBjb25zdCBhID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgICBhWzBdID0gdFBvc2l0aW9uLng7IGFbMV0gPSB0UG9zaXRpb24ueTsgYVsyXSA9IHRQb3NpdGlvbi56O1xyXG4gICAgICBcclxuICAgICAgLy8gIGRlYnVnLi4uXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHRQb3NpdGlvbiApLmFkZCggdERpcmVjdGlvbi5tdWx0aXBseVNjYWxhciggMSApICk7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIFxyXG4gICAgICBpbnB1dE9iamVjdHNbIGluZGV4IF0uaW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vd2FudCB0byBhZGQgaW5mbyAoaGl0IGRpc2N0YW5jZSkgdG8gb2JqZWN0IGZvciB1c2Ugb3V0c2lkZS4uLiBqdXN0IGFkZGluZyBlbnRpcmV0eSBvZiBpbnRlcnNlY3Rpb25zIGluIGNhc2UgdXNlZnVsXHJcbiAgICAgIGlmIChvYmplY3QudXNlckRhdGEpIG9iamVjdC51c2VyRGF0YS5ndWlJbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICBjb25zdCBpbnB1dHMgPSBpbnB1dE9iamVjdHMuc2xpY2UoKTtcclxuICAgIFxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICBpbnB1dHMucHVzaCggbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKCBjID0+IGMudXBkYXRlQ29udHJvbCggaW5wdXRzICkpO1xyXG4gICAgLy9ub3cgY2hlY2sgaWYgYW55IHByZXNzIG9uIGFueSBpbnB1dCBoaXQgYW55IG5vbidtb2RhbCBlZGl0b3InLi4uIGlmIHNvLCB3ZSdsbCByZW1vdmUgbW9kYWxzIGZyb20gYWxsIGZvbGRlcnNcclxuICAgIC8vKHRoaXMgaXNuJ3QgcGVyZmVjdDsgaWYgeW91IGFyZSBhY3RpdmVseSBpbnRlcmFjdGluZyB3aXRoIHNvbWV0aGluZyBhbmQgcHJlc3Mgb3RoZXIgYnV0dG9uIHNvbWV3aGVyZSBlbHNlLCBpdCdsbCByZW1vdmUgeW91ciBvYmplY3QpXHJcbiAgICBsZXQgaGl0Tm9uTW9kYWxzID0gaW5wdXRzLmZpbHRlcihpbnB1dCA9PiBpbnB1dC5oaXROb25Nb2RhbCk7XHJcbiAgICBpZiAoaGl0Tm9uTW9kYWxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGhpdE5vbk1vZGFscy5mb3JFYWNoKGggPT4gaC5oaXROb25Nb2RhbCA9IGZhbHNlKTsgLy9yZW1vdmUgZmxhZ3Mgc28gdGhleSBkb24ndCBwZXJzaXN0IHRvIHN1YnNlcXVlbnQgdXBkYXRlc1xyXG4gICAgICBmb2xkZXJzLmZvckVhY2goZiA9PiBmLmNsZWFyTW9kYWxFZGl0b3IoKSk7IC8vdGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBub3QgaGlkZSBpdGVtcyBuZXdseSBkaXNwbGF5ZWQgaW4gdGhpcyBmcmFtZVxyXG4gICAgfVxyXG4gICAgbW91c2VJbnB1dC5jbGlja2VkID0gZmFsc2U7XHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaChvPT5vLmNsaWNrZWQgPSBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZhcnlpbmcgZmxvYXQgdlNjYWxlO1xyXG4vLyBUaGlzIGlzIGRlZmluZWQgaW4gbGF5b3V0LmpzIChhbmQgd2FzIG9ic2VydmVkIGxvb2tpbmcgYXQgdGhyZWUgaGVpcmFjaHkgbWF0cmljZXMpXHJcbiNkZWZpbmUgVEVYVF9TQ0FMRSAwLjAwMDI0O1xyXG52b2lkIG1haW4oKSB7XHJcbiAgXHJcbiAgdlNjYWxlID0gcG93KGFicyhkZXRlcm1pbmFudChtYXQzKG1vZGVsVmlld01hdHJpeCkpKSwgLTAuMzMzMzMpICogVEVYVF9TQ0FMRTtcclxuICAvLyB2U2NhbGUgPSAxMC47XHJcbiAgdlV2ID0gdXY7XHJcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cclxufVxyXG5gO1xyXG5cclxuY29uc3QgbWVzaGJhc2ljX2ZyYWcgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG51bmlmb3JtIHZlYzMgY29sb3I7XHJcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcclxudmFyeWluZyBmbG9hdCB2U2NhbGU7XHJcblxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XHJcblxyXG4vLy8vL1xyXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcclxuICAgICNpZmRlZiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXNcclxuICAgICAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgI2Vsc2VcclxuICAgICAgICBmbG9hdCBhZndpZHRoID0gKDEuMCAvIDMyLjApICogKDEuNDE0MjEzNTYyMzczMDk1MSAvICgyLjAgKiBnbF9GcmFnQ29vcmQudykpO1xyXG4gICAgI2VuZGlmXHJcbiAgICBhZndpZHRoICo9IHZTY2FsZTtcclxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcclxufVxyXG4vLy8vXHJcblxyXG52b2lkIG1haW4oKSB7XHJcblxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XHJcblxyXG4gICAgLy8vXHJcbiAgICB2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICk7XHJcbiAgICBcclxuICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQobWFwLCB2VXYpO1xyXG4gICAgZmxvYXQgYWxwaGEgPSBhYXN0ZXAodGV4Q29sb3IuYSk7XHJcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xyXG4gICAgaWYgKGdsX0ZyYWdDb2xvci5hIDwgMC4wMDAxKSBkaXNjYXJkO1xyXG4gICAgLy8vXHJcblxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cclxuICAgIC8vWFhYOiBiaWcgY2h1bmsgcmVtb3ZlZCBmcm9tIG9yaWdpbmFsIG1lc2hiYXNpY19mcmFnIGhlcmUuXHJcbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxyXG59XHJcbmA7XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVTREZTaGFkZXIgKG9wdCkge1xyXG4gIG9wdCA9IG9wdCB8fCB7fTtcclxuICB2YXIgb3BhY2l0eSA9IHR5cGVvZiBvcHQub3BhY2l0eSA9PT0gJ251bWJlcicgPyBvcHQub3BhY2l0eSA6IDE7XHJcbiAgLy8vLS0gaGFyZGNvZGVkIGluIHNoYWRlciBjb2RlLCBndWl2ciBuZXZlciBwYXNzZWQgdGhlc2UgaW4gb3B0IC0tXHJcbiAgLy92YXIgYWxwaGFUZXN0ID0gdHlwZW9mIG9wdC5hbHBoYVRlc3QgPT09ICdudW1iZXInID8gb3B0LmFscGhhVGVzdCA6IDAuMDAwMVxyXG4gIC8vdmFyIHByZWNpc2lvbiA9IG9wdC5wcmVjaXNpb24gfHwgJ2hpZ2hwJ1xyXG4gIHZhciBjb2xvciA9IG9wdC5jb2xvcjtcclxuICB2YXIgbWFwID0gb3B0Lm1hcDtcclxuICBcclxuICBvcHQuZXh0ZW5zaW9ucyA9IG9wdC5leHRlbnNpb25zIHx8IHt9O1xyXG4gIG9wdC5leHRlbnNpb25zLmRlcml2YXRpdmVzID0gdHJ1ZTsgLy9uYiwgZmFsc2UgZGVmYXVsdHMgZm9yIGZyYWdEZXB0aCwgZHJhd0J1ZmZlcnMsIHNoYWRlclRleHR1cmVMT0Qgd2lsbCBubyBsb25nZXIgYmUgdGhlcmUuXHJcbiAgb3B0Lm5hbWUgPSBcIlNERiB0ZXh0IG1hdGVyaWFsXCI7XHJcblxyXG4gIC8vIHJlbW92ZSB0byBzYXRpc2Z5IHI3M1xyXG4gIGRlbGV0ZSBvcHQubWFwO1xyXG4gIGRlbGV0ZSBvcHQuY29sb3I7XHJcbiAgZGVsZXRlIG9wdC5wcmVjaXNpb247XHJcbiAgZGVsZXRlIG9wdC5vcGFjaXR5O1xyXG5cclxuICByZXR1cm4gYXNzaWduKHtcclxuICAgIHVuaWZvcm1zOiB7XHJcbiAgICAgIG9wYWNpdHk6IHsgdHlwZTogJ2YnLCB2YWx1ZTogb3BhY2l0eSB9LFxyXG4gICAgICBtYXA6IHsgdHlwZTogJ3QnLCB2YWx1ZTogbWFwIHx8IG5ldyBUSFJFRS5UZXh0dXJlKCkgfSxcclxuICAgICAgY29sb3I6IHsgdHlwZTogJ2MnLCB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGNvbG9yKSB9XHJcbiAgICB9LFxyXG4gICAgdmVydGV4U2hhZGVyOiBtZXNoYmFzaWNfdmVydCxcclxuICAgIGZyYWdtZW50U2hhZGVyOiBtZXNoYmFzaWNfZnJhZ1xyXG4gIH0sIG9wdCk7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBTREZTaGFkZXIgZnJvbSAnLi9zZGZzaGFkZXJfbG9nZGVwdGgnO1xyXG5pbXBvcnQgY3JlYXRlR2VvbWV0cnkgZnJvbSAndGhyZWUtYm1mb250LXRleHQnO1xyXG5pbXBvcnQgcGFyc2VBU0NJSSBmcm9tICdwYXJzZS1ibWZvbnQtYXNjaWknO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuaW1wb3J0ICogYXMgRm9udCBmcm9tICcuL2ZvbnQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApe1xyXG5cclxuICBjb25zdCBpbWFnZSA9IEZvbnQuaW1hZ2UoKTtcclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoaW1hZ2UpOyB0ZXh0dXJlLm5hbWUgPSAnc2RmRm9udFRleHR1cmUnXHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgLy9OQjo6OiBzb21ld2hhdCBleHBlcmltZW50YWwgcmVwbGFjZW1lbnQgb2YgUmF3U2hhZGVyIGNvZGUgZnJvbSBibWZvbnQgd2l0aCB2YXJpYXRpb24gb2YgTWVzaEJhc2ljIHNoYWRlclxyXG4gIC8vdGhpcyBzaG91bGQgYWxsb3cgZm9yIGxvZ2RlcHRoLCBmb2cgaXMgYWxzbyBhbnRpY2lwYXRlZCB0byB3b3JrIHJlYXNvbmFibHkgd2VsbC4uLiBcclxuICAvL3RvbmVtYXBwaW5nIGV0YyBtYXkgY29uY2VpdmFibHkgYmUgaW1wcm92ZWQuLi4gWU1NVi5cclxuICBsZXQgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoU0RGU2hhZGVyKHtcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIGNvbG9yOiBjb2xvcixcclxuICAgIG1hcDogdGV4dHVyZSxcclxuICAgIHR5cGU6ICdTREYgVGV4dCdcclxuICB9KSk7XHJcbiAgcmV0dXJuIG1hdGVyaWFsO1xyXG59XHJcblxyXG5jb25zdCB0ZXh0U2NhbGUgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdG9yKCl7XHJcblxyXG4gIGNvbnN0IGZvbnQgPSBwYXJzZUFTQ0lJKCBGb250LmZudCgpICk7XHJcblxyXG4gIGNvbnN0IGNvbG9yTWF0ZXJpYWxzID0ge307XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IgPSAweGZmZmZmZiwgc2NhbGUgPSAxLjAsIHdpZHRoLCBoZWlnaHQgKXtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IGNyZWF0ZUdlb21ldHJ5KHtcclxuICAgICAgdGV4dDogc3RyLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICBmbGlwWTogdHJ1ZSxcclxuICAgICAgZm9udFxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IGxheW91dCA9IGdlb21ldHJ5LmxheW91dDtcclxuXHJcbiAgICBsZXQgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXTtcclxuICAgIGlmKCBtYXRlcmlhbCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF0gPSBjcmVhdGVNYXRlcmlhbCggY29sb3IgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5KCBuZXcgVEhSRUUuVmVjdG9yMygxLC0xLDEpICk7XHJcblxyXG4gICAgY29uc3QgZmluYWxTY2FsZSA9IHNjYWxlICogdGV4dFNjYWxlO1xyXG5cclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHlTY2FsYXIoIGZpbmFsU2NhbGUgKTtcclxuXHJcbiAgICBtZXNoLnBvc2l0aW9uLnkgPSBsYXlvdXQuaGVpZ2h0ICogMC41ICogZmluYWxTY2FsZTtcclxuXHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIHN0ciwgeyBjb2xvcj0weGZmZmZmZiwgc2NhbGU9MS4wIH0gPSB7fSApe1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgICBsZXQgbWVzaCA9IGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IsIHNjYWxlICk7XHJcbiAgICBncm91cC5hZGQoIG1lc2ggKTtcclxuICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgZ3JvdXAuY29tcHV0ZVdpZHRoID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LndpZHRoICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuICAgIGdyb3VwLmNvbXB1dGVIZWlnaHQgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQuaGVpZ2h0ICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5jb25zdHJhaW5Cb3VuZHMgPSAodywgaCkgPT4ge1xyXG4gICAgICBncm91cC5yZW1vdmUobWVzaCk7XHJcbiAgICAgIGNvbnN0IHMgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgY29uc3QgaEZhY3RvciA9IG1lc2guZ2VvbWV0cnkubGF5b3V0LmhlaWdodCpzL2g7XHJcbiAgICAgIGlmIChoRmFjdG9yID4gMSkge1xyXG4gICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgMC45NSogc3RyLmxlbmd0aC9oRmFjdG9yKSArICcuLi4nO1xyXG4gICAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIH1cclxuICAgICAgZ3JvdXAuYWRkKG1lc2gpO1xyXG4gICAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC51cGRhdGVMYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgZ2V0TWF0ZXJpYWw6ICgpPT4gbWF0ZXJpYWwgLy9YWFg6IHRoaXMgZGF0ZXMgYmFjayBxdWl0ZSBhIGxvbmcgd2F5LCBub3Qgc3VyZSBpdCB3YXMgZXZlciByaWdodC5cclxuICB9XHJcblxyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4ZmZmZmZmLCB2ZXJ0ZXhDb2xvcnM6IFRIUkVFLlZlcnRleENvbG9ycyB9ICk7XHJcbmV4cG9ydCBjb25zdCBMT0NBVE9SID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVIgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MDAwMDAwIH0gKTtcclxuZXhwb3J0IGNvbnN0IFRPT0xUSVAgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MjA1MDgwLCB0cmFuc3BhcmVudDogZmFsc2UsIG9wYWNpdHk6IDAuOCB9ICk7XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNsaWRlcigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSAwLjAsXHJcbiAgbWluID0gMC4wLCBtYXggPSAxLjAsXHJcbiAgc3RlcCA9IDAuMSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBpbml0aWFsSGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgYWxwaGE6IDEuMCxcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBzdGVwOiBzdGVwLFxyXG4gICAgdXNlU3RlcDogdHJ1ZSxcclxuICAgIHByZWNpc2lvbjogMSxcclxuICAgIGxpc3RlbjogZmFsc2UsXHJcbiAgICBtaW46IG1pbixcclxuICAgIG1heDogbWF4LFxyXG4gICAgb25DaGFuZ2VkQ0I6IHVuZGVmaW5lZCxcclxuICAgIG9uRmluaXNoZWRDaGFuZ2U6IHVuZGVmaW5lZCxcclxuICAgIHByZXNzaW5nOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgc3RhdGUuc3RlcCA9IGdldEltcGxpZWRTdGVwKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApO1xyXG4gIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwic2xpZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gaGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0IFNMSURFUl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0RFUFRIID0gZGVwdGg7XHJcblxyXG4gICAgLy8gIGZpbGxlZCB2b2x1bWVcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIFNMSURFUl9XSURUSCwgU0xJREVSX0hFSUdIVCwgU0xJREVSX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShTTElERVJfV0lEVEgqMC41LDAsMCk7XHJcbiAgICAvLyBMYXlvdXQuYWxpZ25MZWZ0KCByZWN0ICk7XHJcblxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLm5hbWUgPSAnaGl0c2NhblZvbHVtZSc7XHJcblxyXG4gICAgLy8gIHNsaWRlckJHIHZvbHVtZVxyXG4gICAgY29uc3Qgc2xpZGVyQkcgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBzbGlkZXJCRy5nZW9tZXRyeSwgQ29sb3JzLlNMSURFUl9CRyApO1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSCArIExheW91dC5QQU5FTF9NQVJHSU47XHJcblxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkRFRkFVTFRfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgZmlsbGVkVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICBjb25zdCBlbmRMb2NhdG9yID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggMC4wNSwgMC4wNSwgMC4wNSwgMSwgMSwgMSApLCBTaGFyZWRNYXRlcmlhbHMuTE9DQVRPUiApO1xyXG4gICAgZW5kTG9jYXRvci5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGVuZExvY2F0b3IgKTtcclxuICAgIGVuZExvY2F0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9WQUxVRV9URVhUX01BUkdJTiArIHdpZHRoICogMC41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGgqMi41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDMyNTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX1NMSURFUiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIHBhbmVsLm5hbWUgPSAncGFuZWwnO1xyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIHNsaWRlckJHLCB2YWx1ZUxhYmVsLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgICBncm91cC5hZGQoIHBhbmVsIClcclxuXHJcbiAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgdXBkYXRlU2xpZGVyKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsdWVMYWJlbCggdmFsdWUgKXtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCByb3VuZFRvRGVjaW1hbCggc3RhdGUudmFsdWUsIHN0YXRlLnByZWNpc2lvbiApLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgICAgaWYoIHN0YXRlLnByZXNzaW5nICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSU5URVJBQ1RJT05fQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTbGlkZXIoKXtcclxuICAgICAgZmlsbGVkVm9sdW1lLnNjYWxlLnggPVxyXG4gICAgICAgIE1hdGgubWluKFxyXG4gICAgICAgICAgTWF0aC5tYXgoIGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKSAqIHdpZHRoLCAwLjAwMDAwMSApLFxyXG4gICAgICAgICAgd2lkdGhcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9iamVjdCggdmFsdWUgKXtcclxuICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBhbHBoYSApe1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggYWxwaGEgKTtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBnZXRTdGVwcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5zdGVwICk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRDbGFtcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpe1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbU9iamVjdCgpO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tT2JqZWN0KCl7XHJcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgICAgc3RhdGUub25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5zdGVwID0gZnVuY3Rpb24oIHN0ZXAgKXtcclxuICAgICAgc3RhdGUuc3RlcCA9IHN0ZXA7XHJcbiAgICAgIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwIClcclxuICAgICAgc3RhdGUudXNlU3RlcCA9IHRydWU7XHJcblxyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVQcmVzcyApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVIb2xkICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlUmVsZWFzZSApO1xyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVByZXNzKCBwICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVIb2xkKCB7IHBvaW50IH0gPSB7fSApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGZpbGxlZFZvbHVtZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBlbmRMb2NhdG9yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcblxyXG4gICAgICBjb25zdCBhID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGZpbGxlZFZvbHVtZS5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBjb25zdCBiID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGVuZExvY2F0b3IubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBnZXRQb2ludEFscGhhKCBwb2ludCwge2EsYn0gKSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHVwZGF0ZU9iamVjdCggc3RhdGUudmFsdWUgKTtcclxuXHJcbiAgICAgIGlmKCBwcmV2aW91c1ZhbHVlICE9PSBzdGF0ZS52YWx1ZSAmJiBzdGF0ZS5vbkNoYW5nZWRDQiApe1xyXG4gICAgICAgIHN0YXRlLm9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUmVsZWFzZSgpe1xyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICAgIHVwZGF0ZVNsaWRlcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5taW4gPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5taW4gPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5tYXggPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5tYXggPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9IC8vIC9zZXRIZWlnaHRcclxuICBncm91cC5zZXRIZWlnaHQoIGluaXRpYWxIZWlnaHQgKTtcclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IHRhID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0VG9BID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgYVRvQiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb2ludEFscGhhKCBwb2ludCwgc2VnbWVudCApe1xyXG4gIHRhLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICk7XHJcbiAgdGIuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBjb25zdCBwcm9qZWN0ZWQgPSB0Yi5wcm9qZWN0T25WZWN0b3IoIHRhICk7XHJcblxyXG4gIHRUb0EuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBhVG9CLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICkubm9ybWFsaXplKCk7XHJcblxyXG4gIGNvbnN0IHNpZGUgPSB0VG9BLm5vcm1hbGl6ZSgpLmRvdCggYVRvQiApID49IDAgPyAxIDogLTE7XHJcblxyXG4gIGNvbnN0IGxlbmd0aCA9IHNlZ21lbnQuYS5kaXN0YW5jZVRvKCBzZWdtZW50LmIgKSAqIHNpZGU7XHJcblxyXG4gIGxldCBhbHBoYSA9IHByb2plY3RlZC5sZW5ndGgoKSAvIGxlbmd0aDtcclxuICBpZiggYWxwaGEgPiAxLjAgKXtcclxuICAgIGFscGhhID0gMS4wO1xyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwLjAgKXtcclxuICAgIGFscGhhID0gMC4wO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxlcnAobWluLCBtYXgsIHZhbHVlKSB7XHJcbiAgcmV0dXJuICgxLXZhbHVlKSptaW4gKyB2YWx1ZSptYXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcF9yYW5nZSh2YWx1ZSwgbG93MSwgaGlnaDEsIGxvdzIsIGhpZ2gyKSB7XHJcbiAgICByZXR1cm4gbG93MiArIChoaWdoMiAtIGxvdzIpICogKHZhbHVlIC0gbG93MSkgLyAoaGlnaDEgLSBsb3cxKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApe1xyXG4gIGlmKCBhbHBoYSA+IDEgKXtcclxuICAgIHJldHVybiAxXHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAgKXtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRWYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgaWYoIHZhbHVlIDwgbWluICl7XHJcbiAgICByZXR1cm4gbWluO1xyXG4gIH1cclxuICBpZiggdmFsdWUgPiBtYXggKXtcclxuICAgIHJldHVybiBtYXg7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0SW1wbGllZFN0ZXAoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIC8vUEpUOiB3aGF0IHdvdWxkIHdlIGxpa2Ugc3RlcCB0byBsb29rIGxpa2U/XHJcbiAgLy9Tb21ldGhpbmcgdGhhdCBoYXMgYWJvdXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSwgYW5kIGxvb2tzIG5pY2UgaW4gYmFzZSAxMD9cclxuICBjb25zdCByID0gbWF4LW1pbjtcclxuICBsZXQgc3RlcCA9IHIvMTAwOyAvL3doYXQgaXMgdGhlIHJhdGlvIG9mIG51bWJlciBvZiBkZWNpbWFscyB0byBvcmRlciBvZiBtYWduaXR1ZGU/XHJcbiAgXHJcbiAgcmV0dXJuIHN0ZXA7XHJcblxyXG4gIC8vIGlmKCB2YWx1ZSA9PT0gMCApe1xyXG4gIC8vICAgcmV0dXJuIDE7IC8vIFdoYXQgYXJlIHdlLCBwc3ljaGljcz8gLy88PDw8LS0tIG5vLCBzbyB3ZSBzaG91bGQgYmFzZSBpbXBsaWVkU3RlcCBvbiBtaW4vbWF4LCBub3QgdmFsdWVcclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgLy8gSGV5IERvdWcsIGNoZWNrIHRoaXMgb3V0LlxyXG4gIC8vICAgcmV0dXJuIE1hdGgucG93KDEwLCBNYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKHZhbHVlKSkvTWF0aC5MTjEwKSkvMTA7XHJcbiAgLy8gfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRWYWx1ZUZyb21BbHBoYSggYWxwaGEsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggYWxwaGEsIDAuMCwgMS4wLCBtaW4sIG1heCApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFscGhhRnJvbVZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCB2YWx1ZSwgbWluLCBtYXgsIDAuMCwgMS4wICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFN0ZXBwZWRWYWx1ZSggdmFsdWUsIHN0ZXAgKXtcclxuICBpZiggdmFsdWUgJSBzdGVwICE9IDApIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKCB2YWx1ZSAvIHN0ZXAgKSAqIHN0ZXA7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gbnVtRGVjaW1hbHMoeCkge1xyXG4gIHggPSB4LnRvU3RyaW5nKCk7XHJcbiAgaWYgKHguaW5kZXhPZignLicpID4gLTEpIHtcclxuICAgIHJldHVybiB4Lmxlbmd0aCAtIHguaW5kZXhPZignLicpIC0gMTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByb3VuZFRvRGVjaW1hbCh2YWx1ZSwgZGVjaW1hbHMpIHtcclxuICBpZiAoTWF0aC5hYnModmFsdWUpIDwgMC4wMSAmJiB2YWx1ZSAhPT0gMCkgcmV0dXJuIHZhbHVlLnRvRXhwb25lbnRpYWwoMyk7XHJcbiAgY29uc3QgdGVuVG8gPSBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xyXG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogdGVuVG8pIC8gdGVuVG87XHJcbn0iLCIvKipcclxuICogV2hlbiB0aGUgdGV4dGJveCBpcyBmb2N1c3NlZCwgIGEga2V5Ym9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuLi5cclxuICogVGhlcmUgc2hvdWxkIGFsc28gYmUgYSB3YXkgb2YgZGlzbWlzc2luZyBpdCBsYXRlci4gIEl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdG9cclxuICogcHJldmVudCBtdWx0aXBsZSBrZXlib2FyZHMgYmVpbmcgbWFkZSBzaW11bHRhbmVvdXNseT9cclxuICogXHJcbiAqIEluIG9yZGVyIHRvIG1ha2UgaXQgYXBwZWFyLCBpdCBjYW4gYmUgYWRkZWQgYXMgYSBjaGlsZCBvZiB0aGUgdGV4Ym94IG5vZGUgaXRzZWxmLi4uXHJcbiAqIFRoaXMnbGwgbWVhbiB0aGF0IGl0IGdldHMgZHJhZ2dlZCBhcm91bmQgYnkgdGhlIHBhcmVudCBHVUkgYXMgaXQgbW92ZXMuLi4uXHJcbiAqIE1ha2VzIGZvciByZWxhdGl2ZWx5IGNsZWFuLCBzaW1wbGUgaW1wbGVtZW50YXRpb24gYXQgbGVhc3QuXHJcbiAqIEF0IHRoZSBtb21lbnQsIGtleWJvYXJkIHBvc2l0aW9uaW5nIGlzIG1lc3NlZCB1cCBieSB0aGlzIGFycmFuZ2VtZW50LlxyXG4gKiBSZW1vdmluZyBncmFiYmVyIG1ha2VzIGl0IGxlc3MgbGlrZWx5IGEgdXNlciB3aWxsIGRvIHRoaXMsIGJ1dCBtaWdodCBiZSB3b3J0aCBmaXhpbmcgdGhlIGJhc2ljIGJ1Zy5cclxuICogXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgR1VJIGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dEJveCh7XHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9KSB7XHJcbiAgLy8gYmlnIG9sZCBjb3B5IC8gcGFzdGUgZnJvbSBidXR0b24uanMuIE1pZ2h0IHRyeSB0byBmYWN0b3Igb3V0IHNvbWUgb2YgdGhpcyBjb21tb24gY29kZS5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0Ym94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogMHhGRkZGRkYgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICAvL2hvdyBjYW4gSSBjaGFuZ2UgY29sb3Igb2YgdGV4dD9cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggb2JqZWN0W3Byb3BlcnR5TmFtZV0sIHsgY29sb3I6IDB4MDAwMDAwMCwgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIC8vYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSAwLjAxNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVTdHJpbmcoc3RyKSB7XHJcbiAgICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RyO1xyXG4gICAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbChzdHIpO1xyXG4gIH1cclxuICB2YXIga2V5Ym9hcmQ7XHJcbiAgZnVuY3Rpb24gdG9nZ2xlS2V5Ym9hcmQoKSB7XHJcbiAgICBpZiAoa2V5Ym9hcmQpIHtcclxuICAgICAgICBrZXlib2FyZC52aXNpYmxlID0gIWtleWJvYXJkLnZpc2libGU7XHJcbiAgICAgICAgaWYgKGtleWJvYXJkLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBrZXlib2FyZCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJrZXlib2FyZFwiKTtcclxuICAgICAgICBncm91cC5hZGQoa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLmZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnggPSB3aWR0aDtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICAgICAga2V5Ym9hcmQuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgIGtleWJvYXJkLmFkZEtleWJvYXJkKCAoaykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgc3RyID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAoaykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxuJzpcclxuICAgICAgICAgICAgICAgICAgICAvL3NldHRpbmcgXCJrZXlib2FyZC52aXNpYmxlID0gZmFsc2VcIiBpbiB0aGUgbWlkZGxlIG9mIGV2ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyIHNlZW1zIHRvIGtpbGwgYWxsIGV2ZW50IHByb2Nlc3NpbmcgZnJvbSB0aGVuIG9uLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0VGltZW91dCBpcyBhbiBhZGVxdWF0ZSB3b3JrYXJvdW5kIGZvciBub3cuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0b2dnbGVLZXlib2FyZCwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcYic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gaztcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy90aGlzIHRlc3Qgc2hvdWxkIGJlIHJlZHVuZGFudCBub3dcclxuICAgIC8vIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy9vYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgLy9oaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgLy8gY3JlYXRlIGEga2V5Ym9hcmQgYW5kIGF0dGFjaCBpdCBhcyBjaGlsZCBvZiBncm91cC4uLiBcclxuICAgIC8vIG9yIGp1c3QgbWFrZSBzdXJlIGV4aXN0aW5nIGtleWJvYXJkIGlzIHZpc2libGUuXHJcbiAgICB0b2dnbGVLZXlib2FyZCgpO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0hJR0hMSUdIVF9CRyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9CRyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0TGFiZWwoIHRleHRDcmVhdG9yLCBzdHIsIHdpZHRoID0gMC40LCBkZXB0aCA9IDAuMDI5LCBmZ0NvbG9yID0gMHhmZmZmZmYsIGJnQ29sb3IgPSBDb2xvcnMuREVGQVVMVF9CQUNLLCBzY2FsZSA9IDEuMCApe1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRsYWJlbFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3N0cn1dYDtcclxuXHJcbiAgY29uc3QgaW50ZXJuYWxQb3NpdGlvbmluZyA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL3JhdGhlciB1bm5lY2Vzc2FyeS5cclxuICBncm91cC5hZGQoIGludGVybmFsUG9zaXRpb25pbmcgKTtcclxuXHJcbiAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RyLnRvU3RyaW5nKCksIHsgY29sb3I6IGZnQ29sb3IsIHNjYWxlIH0gKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggdGV4dCApO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnRleHQgPSB0ZXh0O1xyXG5cclxuICBncm91cC5zZXRTdHJpbmcgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHN0ciA9IFwiW3VuZGVmaW5lZF1cIjtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b1N0cmluZygpICk7XHJcbiAgICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldE51bWJlciA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b0ZpeGVkKDIpICk7XHJcbiAgfTtcclxuXHJcbiAgdGV4dC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIGNvbnN0IGJhY2tCb3VuZHMgPSAwLjAxO1xyXG4gIGNvbnN0IG1hcmdpbiA9IDAuMDE7XHJcbiAgY29uc3QgdG90YWxXaWR0aCA9IHdpZHRoO1xyXG4gIGNvbnN0IHRvdGFsSGVpZ2h0ID0gMC4wNCArIG1hcmdpbiAqIDI7XHJcblxyXG4gIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja0dlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB0b3RhbFdpZHRoLCB0b3RhbEhlaWdodCwgZGVwdGgsIDEsIDEsIDEgKTtcclxuICBsYWJlbEJhY2tHZW9tZXRyeS5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVRyYW5zbGF0aW9uKCB0b3RhbFdpZHRoICogMC41IC0gbWFyZ2luLCAwLCAwICkgKTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrTWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBsYWJlbEJhY2tHZW9tZXRyeSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsQmFja01lc2guZ2VvbWV0cnksIGJnQ29sb3IgKTtcclxuXHJcbiAgbGFiZWxCYWNrTWVzaC5wb3NpdGlvbi55ID0gMC4wMztcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggbGFiZWxCYWNrTWVzaCApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcucG9zaXRpb24ueSA9IC10b3RhbEhlaWdodCAqIDAuNTtcclxuXHJcbiAgZ3JvdXAuYmFjayA9IGxhYmVsQmFja01lc2g7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgZGVmYXVsdFBhcmVudEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2xUaXAoIHRleHRDcmVhdG9yLCB0aXAsIHBhcmVudFdpZHRoLCBwYXJlbnRIZWlnaHQgPSBkZWZhdWx0UGFyZW50SGVpZ2h0LCBwYXJlbnREZXB0aCApIHtcclxuICBjb25zdCB0aXBUZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKHRpcCk7XHJcbiAgXHJcbiAgY29uc3QgdGlwR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgY29uc3QgdyA9IHRpcFRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgY29uc3QgaCA9IExheW91dC5URVhUX1NDQUxFICogdGlwVGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG5cclxuICB0aXBHcm91cC5wb3NpdGlvbi54ICA9IDAuNSAqIHBhcmVudFdpZHRoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnkgPSAtMS4wNSAqIHBhcmVudEhlaWdodCAtIGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueiA9IHBhcmVudERlcHRoICogMztcclxuICB0aXBHcm91cC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4vLyAgc3ViZ3JvdXAuYWRkKHRpcEdyb3VwKTtcclxuICB0aXBHcm91cC5hZGQodGlwVGV4dCk7XHJcbi8vICBzdWJncm91cC50aXBUZXh0ID0gdGlwR3JvdXA7XHJcblxyXG4gIGNvbnN0IHBhZGRlZFcgPSB3ICsgMC4wMywgcGFkZGVkSCA9IGggKyAwLjAzO1xyXG4gIGNvbnN0IHRpcFJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeShwYWRkZWRXLCBwYWRkZWRILCAxLCAxKTtcclxuICBjb25zdCB0aXBCYWNrZ3JvdW5kID0gbmV3IFRIUkVFLk1lc2godGlwUmVjdCwgU2hhcmVkTWF0ZXJpYWxzLlRPT0xUSVApO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueCA9IDA7IC8vcGFkZGVkVyAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi55ID0gaCAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi56ID0gLXBhcmVudERlcHRoICogMC41O1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBCYWNrZ3JvdW5kKTtcclxuXHJcbiAgdGlwVGV4dC5wb3NpdGlvbi54ID0gLTAuNSAqIHc7XHJcbiAgdGlwVGV4dC5wb3NpdGlvbi55ID0gLTAuNSAqIGggKyAwLjAwMTU7XHJcblxyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLncgPSB3O1xyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLmggPSBoO1xyXG5cclxuICByZXR1cm4gdGlwR3JvdXA7XHJcbn1cclxuIiwiLyoqIGJhc2ljIHV0aWxpdHkgZnVuY3Rpb25zICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sbGVyVmlzaWJsZShjb250cm9sKSB7XHJcbiAgdmFyIGZvbGRlciA9IGNvbnRyb2wuZm9sZGVyO1xyXG4gIC8vbm90ZTogdGhlIGJhc2lzIG9uIHdoaWNoIGEgY29udHJvbGxlciBpcyBjb25zaWRlcmVkIHZpc2libGUgcmV2aXNlZCBmb3IgJ2hlYWRlcicgb2JqZWN0cy5cclxuICAvL2ZvciBub3csIHRoaXMgc2hvdWxkIGFsbG93IGhlYWRlciBjb250cm9sbGVycyB0byB1cGRhdGUgd2hpbGUgZm9sZGVyIGlzIGNvbGxhcHNlZC5cclxuICAvL29ubHkgYXBwbGllcyB0byBjaGVja2JveCwgcGVuZGluZyBkZXNpZ24gcmV2aXNpb24gJiBmdWxsZXIgaW1wbGVtZW50YXRpb24uLi5cclxuICBcclxuICAvLy0tLS0gaXNTaG93bkluRm9sZGVySGVhZGVyIG5vIGxvbmdlciByZWxldmFudCwgYnV0IGVuZGluZyB1cCB3aXRoIHNvbWV0aGluZyB0aGF0IGxvb2tzIHNpbWlsYXIuLi4uXHJcbiAgLy9pc0hlYWRlck9iamVjdCB3aWxsIGFwcGx5IHRvIHRoZSBhY3R1YWwgY29udHJvbCBhcHBlYXJpbmcgaW4gdGhlIGZvbGRlciBoZWFkZXIsIHdoZXJlYXNcclxuICAvL2lzU2hvd25JbkZvbGRlckhlYWRlciB3YXMgd2hlbiBzdWNoIG9iamVjdHMgd2VyZW4ndCBzbyBmdWxseS1mbGVkZ2VkXHJcbiAgLy9pZiAoY29udHJvbC5pc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7IC8vPDw8PDwgc3RpbGwgaGl0dGluZyBmb2xkZWQgYnV0dG9uPz8/IChhbHNvLCB0cnkgbnBtIGF1ZGl0KVxyXG4gIGlmIChjb250cm9sLmlzSGVhZGVyT2JqZWN0KSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpO1xyXG5cclxuICAvL1hYWCBoYXZpbmcgc29tZSBkZWZpbml0ZSBidWdzIGUuZy4gbWlzc2luZyBldmVudHMgb3ZlciAncGljdHVyZXMgLyBtYXRlcmlhbHMnIGZvbGRlciBoZWFkZXIgaW4gZGVtby5cclxuICBcclxuICBpZiAoIWNvbnRyb2wudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gIFxyXG4gIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpe1xyXG4gICAgaWYgKGZvbGRlci5pc0NvbGxhcHNlZCgpIHx8ICFmb2xkZXIudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICB9XHJcbiAgaWYgKCFmb2xkZXIucGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIGZvbGRlci52aXNpYmxlO1xyXG59XHJcblxyXG4vKiogXHJcbiAqIEludmlzaWJsZSBUSFJFRSBvYmplY3RzIGluY3VyIHNpZ25pZmljYW50IENQVSBjb3N0LlxyXG4gKiBUaGlzIGF2b2lkcyB0aGF0IGJ5IHJlbW92aW5nIHRoZW0gZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqIFxyXG4gKiBJZiB2aXNpYmxlIGlzIHRydWUsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPXRydWUgYW5kIGlzIGEgY2hpbGQgb2YgcGFyZW50LlxyXG4gKiBJZiB2aXNpYmxlIGlzIGZhbHNlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT1mYWxzZSBhbmQgaXMgcmVtb3ZlZCBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRWaXNpYmlsaXR5KHBhcmVudCwgY2hpbGQsIHZpc2libGUpIHtcclxuICAgIGNvbnN0IGlzQ2hpbGQgPSBwYXJlbnQuY2hpbGRyZW4uaW5jbHVkZXMoY2hpbGQpO1xyXG4gICAgY2hpbGQudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAvL21ha2Ugc3VyZSB3ZSB1c2Ugb3JpZ2luYWwgVEhSRUUgbWV0aG9kcyB0aGF0IHRoaXMgbGlicmFyeSBvdmVycmlkZXMgKFRPRE86IHJlZmFjdG9yLi4uKVxyXG4gICAgaWYgKHZpc2libGUgJiYgIWlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghdmlzaWJsZSAmJiBpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXBhcmVudC52aXNpYmxlKSBjb25zb2xlLndhcm4oYHNldFZpc2liaWxpdHkgY2FsbGVkIG9uIGNoaWxkICR7Y2hpbGR9IG9mIGludmlzaWJsZSBwYXJlbnQgJHtwYXJlbnR9YCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBoaWdoZXN0IGxldmVsIG9mIHBhcmVudCBmb2xkZXIgaW4gdGhlIGd1aSBoaWVhcmNoeSBjb250YWluaW5nIGEgZ2l2ZW4gb2JqZWN0LlxyXG4gKiBuYi4gb2xkZXIgdmVyc2lvbnMgb2YgdGhpcyBmdW5jdGlvbiB3b3VsZCByZXR1cm4gdGhlIGlucHV0IG9iamVjdCBpZiBpdCBkaWRuJ3QgaGF2ZSBhICdmb2xkZXInIHByb3BlcnR5LlxyXG4gKiBOb3csIGl0IGlzIGludGVuZGVkIHRoYXQgaXQgc2hvdWxkIGVpdGhlciByZXR1cm4gYSBmb2xkZXIgaWYgYXBwcm9wcmlhdGUsIG9yIG5vdGhpbmcuXHJcbiAqIEBwYXJhbSB7Kn0gZ3JvdXAgZWl0aGVyIGEgZm9sZGVyLCBvciBhbiBvYmplY3Qgd2hvc2UgcGFyZW50IGhhcyBhIGZvbGRlci4uLiBhcG9sb2dpZXMsIHRoaXMgaXMgbm90IHRoZSBjbGVhcmVzdCBzcGVjLlxyXG4gKiAuLi4gaW50ZW50aW9uIGlzIHRoYXQgaXQgc2hvdWxkIHdvcmsgd2l0aCBhbnkgZ3VpIGVsZW1lbnQsIGluIHBhcnRpY3VsYXIgYW55IGhpdE9iamVjdCBpbiBpbnRlcmFjdGlvbi5qcy4uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSB7XHJcbiAgICB2YXIgZm9sZGVyID0gZ2V0Rm9sZGVyKGdyb3VwKTtcclxuICAgIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9sZGVyKGdyb3VwKSB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSByZXR1cm4gZ3JvdXAuZm9sZGVyO1xyXG4gICAgbGV0IG5vZGUgPSBncm91cC5wYXJlbnQ7XHJcbiAgICB3aGlsZSAoIW5vZGUuZm9sZGVyICYmIGdyb3VwLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgcmV0dXJuIG5vZGUuZm9sZGVyO1xyXG59XHJcblxyXG4vL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Qm94RnJvbU9iamVjdChib3gsIG9iaikge1xyXG4gIGNvbnN0IHdvbmt5R2VvbSA9IFtdO1xyXG4gIG9iai50cmF2ZXJzZShvID0+IHtcclxuICAgIGlmIChvLmdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemUgIT09IDMpIHtcclxuICAgICAgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ID0gZmFsc2U7XHJcbiAgICAgIHdvbmt5R2VvbS5wdXNoKG8uZ2VvbWV0cnkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGJveC5zZXRGcm9tT2JqZWN0KG9iaik7XHJcbiAgd29ua3lHZW9tLmZvckVhY2goZyA9PiBnLmlzQnVmZmVyR2VvbWV0cnkgPSB0cnVlKTtcclxuICByZXR1cm4gYm94O1xyXG59XHJcbiIsIi8qXHJcbiAqXHRAYXV0aG9yIHp6ODUgLyBodHRwOi8vdHdpdHRlci5jb20vYmx1cnNwbGluZSAvIGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2dcclxuICpcdEBhdXRob3IgY2VudGVyaW9ud2FyZSAvIGh0dHA6Ly93d3cuY2VudGVyaW9ud2FyZS5jb21cclxuICpcclxuICpcdFN1YmRpdmlzaW9uIEdlb21ldHJ5IE1vZGlmaWVyXHJcbiAqXHRcdHVzaW5nIExvb3AgU3ViZGl2aXNpb24gU2NoZW1lXHJcbiAqXHJcbiAqXHRSZWZlcmVuY2VzOlxyXG4gKlx0XHRodHRwOi8vZ3JhcGhpY3Muc3RhbmZvcmQuZWR1L35tZGZpc2hlci9zdWJkaXZpc2lvbi5odG1sXHJcbiAqXHRcdGh0dHA6Ly93d3cuaG9sbWVzM2QubmV0L2dyYXBoaWNzL3N1YmRpdmlzaW9uL1xyXG4gKlx0XHRodHRwOi8vd3d3LmNzLnJ1dGdlcnMuZWR1L35kZWNhcmxvL3JlYWRpbmdzL3N1YmRpdi1zZzAwYy5wZGZcclxuICpcclxuICpcdEtub3duIElzc3VlczpcclxuICpcdFx0LSBjdXJyZW50bHkgZG9lc24ndCBoYW5kbGUgXCJTaGFycCBFZGdlc1wiXHJcbiAqL1xyXG5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciA9IGZ1bmN0aW9uICggc3ViZGl2aXNpb25zICkge1xyXG5cclxuXHR0aGlzLnN1YmRpdmlzaW9ucyA9ICggc3ViZGl2aXNpb25zID09PSB1bmRlZmluZWQgKSA/IDEgOiBzdWJkaXZpc2lvbnM7XHJcblxyXG59O1xyXG5cclxuLy8gQXBwbGllcyB0aGUgXCJtb2RpZnlcIiBwYXR0ZXJuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLm1vZGlmeSA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7XHJcblxyXG5cdHZhciByZXBlYXRzID0gdGhpcy5zdWJkaXZpc2lvbnM7XHJcblxyXG5cdHdoaWxlICggcmVwZWF0cyAtLSA+IDAgKSB7XHJcblxyXG5cdFx0dGhpcy5zbW9vdGgoIGdlb21ldHJ5ICk7XHJcblxyXG5cdH1cclxuXHJcblx0Z2VvbWV0cnkuY29tcHV0ZUZhY2VOb3JtYWxzKCk7XHJcblx0Z2VvbWV0cnkuY29tcHV0ZVZlcnRleE5vcm1hbHMoKTtcclxuXHJcbn07XHJcblxyXG4oIGZ1bmN0aW9uKCkge1xyXG5cclxuXHQvLyBTb21lIGNvbnN0YW50c1xyXG5cdHZhciBXQVJOSU5HUyA9ICEgdHJ1ZTsgLy8gU2V0IHRvIHRydWUgZm9yIGRldmVsb3BtZW50XHJcblx0dmFyIEFCQyA9IFsgJ2EnLCAnYicsICdjJyBdO1xyXG5cclxuXHJcblx0ZnVuY3Rpb24gZ2V0RWRnZSggYSwgYiwgbWFwICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHJldHVybiBtYXBbIGtleSBdO1xyXG5cclxuXHR9XHJcblxyXG5cclxuXHRmdW5jdGlvbiBwcm9jZXNzRWRnZSggYSwgYiwgdmVydGljZXMsIG1hcCwgZmFjZSwgbWV0YVZlcnRpY2VzICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHZhciBlZGdlO1xyXG5cclxuXHRcdGlmICgga2V5IGluIG1hcCApIHtcclxuXHJcblx0XHRcdGVkZ2UgPSBtYXBbIGtleSBdO1xyXG5cclxuXHRcdH0gZWxzZSB7XHJcblxyXG5cdFx0XHR2YXIgdmVydGV4QSA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEEgXTtcclxuXHRcdFx0dmFyIHZlcnRleEIgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhCIF07XHJcblxyXG5cdFx0XHRlZGdlID0ge1xyXG5cclxuXHRcdFx0XHRhOiB2ZXJ0ZXhBLCAvLyBwb2ludGVyIHJlZmVyZW5jZVxyXG5cdFx0XHRcdGI6IHZlcnRleEIsXHJcblx0XHRcdFx0bmV3RWRnZTogbnVsbCxcclxuXHRcdFx0XHQvLyBhSW5kZXg6IGEsIC8vIG51bWJlcmVkIHJlZmVyZW5jZVxyXG5cdFx0XHRcdC8vIGJJbmRleDogYixcclxuXHRcdFx0XHRmYWNlczogW10gLy8gcG9pbnRlcnMgdG8gZmFjZVxyXG5cclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdG1hcFsga2V5IF0gPSBlZGdlO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRlZGdlLmZhY2VzLnB1c2goIGZhY2UgKTtcclxuXHJcblx0XHRtZXRhVmVydGljZXNbIGEgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblx0XHRtZXRhVmVydGljZXNbIGIgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGdlbmVyYXRlTG9va3VwcyggdmVydGljZXMsIGZhY2VzLCBtZXRhVmVydGljZXMsIGVkZ2VzICkge1xyXG5cclxuXHRcdHZhciBpLCBpbCwgZmFjZSwgZWRnZTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSB2ZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG1ldGFWZXJ0aWNlc1sgaSBdID0geyBlZGdlczogW10gfTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gZmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gZmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmEsIGZhY2UuYiwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYiwgZmFjZS5jLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5jLCBmYWNlLmEsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld0ZhY2UoIG5ld0ZhY2VzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld0ZhY2VzLnB1c2goIG5ldyBUSFJFRS5GYWNlMyggYSwgYiwgYyApICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbWlkcG9pbnQoIGEsIGIgKSB7XHJcblxyXG5cdFx0cmV0dXJuICggTWF0aC5hYnMoIGIgLSBhICkgLyAyICkgKyBNYXRoLm1pbiggYSwgYiApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld1V2KCBuZXdVdnMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3VXZzLnB1c2goIFsgYS5jbG9uZSgpLCBiLmNsb25lKCksIGMuY2xvbmUoKSBdICk7XHJcblxyXG5cdH1cclxuXHJcblx0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblx0Ly8gUGVyZm9ybXMgb25lIGl0ZXJhdGlvbiBvZiBTdWJkaXZpc2lvblxyXG5cdFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLnNtb290aCA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7IHJldHVybjsgLy8gc2pwdCBURU1QIFRPRE9cclxuXHJcblx0XHR2YXIgdG1wID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHR2YXIgb2xkVmVydGljZXMsIG9sZEZhY2VzLCBvbGRVdnM7XHJcblx0XHR2YXIgbmV3VmVydGljZXMsIG5ld0ZhY2VzLCBuZXdVVnMgPSBbXTtcclxuXHJcblx0XHR2YXIgbiwgbCwgaSwgaWwsIGosIGs7XHJcblx0XHR2YXIgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcztcclxuXHJcblx0XHQvLyBuZXcgc3R1ZmYuXHJcblx0XHR2YXIgc291cmNlRWRnZXMsIG5ld0VkZ2VWZXJ0aWNlcywgbmV3U291cmNlVmVydGljZXM7XHJcblxyXG5cdFx0b2xkVmVydGljZXMgPSBnZW9tZXRyeS52ZXJ0aWNlczsgLy8geyB4LCB5LCB6fVxyXG5cdFx0b2xkRmFjZXMgPSBnZW9tZXRyeS5mYWNlczsgLy8geyBhOiBvbGRWZXJ0ZXgxLCBiOiBvbGRWZXJ0ZXgyLCBjOiBvbGRWZXJ0ZXgzIH1cclxuXHRcdG9sZFV2cyA9IGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXTtcclxuXHJcblx0XHR2YXIgaGFzVXZzID0gb2xkVXZzICE9PSB1bmRlZmluZWQgJiYgb2xkVXZzLmxlbmd0aCA+IDA7XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqIFN0ZXAgMDogUHJlcHJvY2VzcyBHZW9tZXRyeSB0byBHZW5lcmF0ZSBlZGdlcyBMb29rdXBcclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRtZXRhVmVydGljZXMgPSBuZXcgQXJyYXkoIG9sZFZlcnRpY2VzLmxlbmd0aCApO1xyXG5cdFx0c291cmNlRWRnZXMgPSB7fTsgLy8gRWRnZSA9PiB7IG9sZFZlcnRleDEsIG9sZFZlcnRleDIsIGZhY2VzW10gIH1cclxuXHJcblx0XHRnZW5lcmF0ZUxvb2t1cHMoIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcyApO1xyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMS5cclxuXHRcdCAqXHRGb3IgZWFjaCBlZGdlLCBjcmVhdGUgYSBuZXcgRWRnZSBWZXJ0ZXgsXHJcblx0XHQgKlx0dGhlbiBwb3NpdGlvbiBpdC5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdFZGdlVmVydGljZXMgPSBbXTtcclxuXHRcdHZhciBvdGhlciwgY3VycmVudEVkZ2UsIG5ld0VkZ2UsIGZhY2U7XHJcblx0XHR2YXIgZWRnZVZlcnRleFdlaWdodCwgYWRqYWNlbnRWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RlZEZhY2VzO1xyXG5cclxuXHRcdGZvciAoIGkgaW4gc291cmNlRWRnZXMgKSB7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZSA9IHNvdXJjZUVkZ2VzWyBpIF07XHJcblx0XHRcdG5ld0VkZ2UgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDMgLyA4O1xyXG5cdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0Y29ubmVjdGVkRmFjZXMgPSBjdXJyZW50RWRnZS5mYWNlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHQvLyBjaGVjayBob3cgbWFueSBsaW5rZWQgZmFjZXMuIDIgc2hvdWxkIGJlIGNvcnJlY3QuXHJcblx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gaWYgbGVuZ3RoIGlzIG5vdCAyLCBoYW5kbGUgY29uZGl0aW9uXHJcblx0XHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDAuNTtcclxuXHRcdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnU3ViZGl2aXNpb24gTW9kaWZpZXI6IE51bWJlciBvZiBjb25uZWN0ZWQgZmFjZXMgIT0gMiwgaXM6ICcsIGNvbm5lY3RlZEZhY2VzLCBjdXJyZW50RWRnZSApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdFZGdlLmFkZFZlY3RvcnMoIGN1cnJlbnRFZGdlLmEsIGN1cnJlbnRFZGdlLmIgKS5tdWx0aXBseVNjYWxhciggZWRnZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBjb25uZWN0ZWRGYWNlczsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0ZmFjZSA9IGN1cnJlbnRFZGdlLmZhY2VzWyBqIF07XHJcblxyXG5cdFx0XHRcdGZvciAoIGsgPSAwOyBrIDwgMzsgayArKyApIHtcclxuXHJcblx0XHRcdFx0XHRvdGhlciA9IG9sZFZlcnRpY2VzWyBmYWNlWyBBQkNbIGsgXSBdIF07XHJcblx0XHRcdFx0XHRpZiAoIG90aGVyICE9PSBjdXJyZW50RWRnZS5hICYmIG90aGVyICE9PSBjdXJyZW50RWRnZS5iICkgYnJlYWs7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggYWRqYWNlbnRWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3RWRnZS5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UubmV3RWRnZSA9IG5ld0VkZ2VWZXJ0aWNlcy5sZW5ndGg7XHJcblx0XHRcdG5ld0VkZ2VWZXJ0aWNlcy5wdXNoKCBuZXdFZGdlICk7XHJcblxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhjdXJyZW50RWRnZSwgbmV3RWRnZSk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAyLlxyXG5cdFx0ICpcdFJlcG9zaXRpb24gZWFjaCBzb3VyY2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0dmFyIGJldGEsIHNvdXJjZVZlcnRleFdlaWdodCwgY29ubmVjdGluZ1ZlcnRleFdlaWdodDtcclxuXHRcdHZhciBjb25uZWN0aW5nRWRnZSwgY29ubmVjdGluZ0VkZ2VzLCBvbGRWZXJ0ZXgsIG5ld1NvdXJjZVZlcnRleDtcclxuXHRcdG5ld1NvdXJjZVZlcnRpY2VzID0gW107XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkVmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRvbGRWZXJ0ZXggPSBvbGRWZXJ0aWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCBhbGwgY29ubmVjdGluZyBlZGdlcyAodXNpbmcgbG9va3VwVGFibGUpXHJcblx0XHRcdGNvbm5lY3RpbmdFZGdlcyA9IG1ldGFWZXJ0aWNlc1sgaSBdLmVkZ2VzO1xyXG5cdFx0XHRuID0gY29ubmVjdGluZ0VkZ2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdGlmICggbiA9PSAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvIDE2O1xyXG5cclxuXHRcdFx0fSBlbHNlIGlmICggbiA+IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gKCA4ICogbiApOyAvLyBXYXJyZW4ncyBtb2RpZmllZCBmb3JtdWxhXHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBMb29wJ3Mgb3JpZ2luYWwgYmV0YSBmb3JtdWxhXHJcblx0XHRcdC8vIGJldGEgPSAxIC8gbiAqICggNS84IC0gTWF0aC5wb3coIDMvOCArIDEvNCAqIE1hdGguY29zKCAyICogTWF0aC4gUEkgLyBuICksIDIpICk7XHJcblxyXG5cdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxIC0gbiAqIGJldGE7XHJcblx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSBiZXRhO1xyXG5cclxuXHRcdFx0aWYgKCBuIDw9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGNyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXNcclxuXHRcdFx0XHQvLyBjb25zb2xlLndhcm4oJ2NyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXMnKTtcclxuXHJcblx0XHRcdFx0aWYgKCBuID09IDIgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzIgY29ubmVjdGluZyBlZGdlcycsIGNvbm5lY3RpbmdFZGdlcyApO1xyXG5cdFx0XHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMyAvIDQ7XHJcblx0XHRcdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRcdFx0Ly8gc291cmNlVmVydGV4V2VpZ2h0ID0gMTtcclxuXHRcdFx0XHRcdC8vIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ29ubHkgMSBjb25uZWN0aW5nIGVkZ2UnICk7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMCApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMCBjb25uZWN0aW5nIGVkZ2VzJyApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXggPSBvbGRWZXJ0ZXguY2xvbmUoKS5tdWx0aXBseVNjYWxhciggc291cmNlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IG47IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGNvbm5lY3RpbmdFZGdlID0gY29ubmVjdGluZ0VkZ2VzWyBqIF07XHJcblx0XHRcdFx0b3RoZXIgPSBjb25uZWN0aW5nRWRnZS5hICE9PSBvbGRWZXJ0ZXggPyBjb25uZWN0aW5nRWRnZS5hIDogY29ubmVjdGluZ0VkZ2UuYjtcclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleC5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGljZXMucHVzaCggbmV3U291cmNlVmVydGV4ICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMy5cclxuXHRcdCAqXHRHZW5lcmF0ZSBGYWNlcyBiZXR3ZWVuIHNvdXJjZSB2ZXJ0aWNlc1xyXG5cdFx0ICpcdGFuZCBlZGdlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld1ZlcnRpY2VzID0gbmV3U291cmNlVmVydGljZXMuY29uY2F0KCBuZXdFZGdlVmVydGljZXMgKTtcclxuXHRcdHZhciBzbCA9IG5ld1NvdXJjZVZlcnRpY2VzLmxlbmd0aCwgZWRnZTEsIGVkZ2UyLCBlZGdlMztcclxuXHRcdG5ld0ZhY2VzID0gW107XHJcblxyXG5cdFx0dmFyIHV2LCB4MCwgeDEsIHgyO1xyXG5cdFx0dmFyIHgzID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NCA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDUgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZEZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IG9sZEZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIHRoZSAzIG5ldyBlZGdlcyB2ZXJ0ZXggb2YgZWFjaCBvbGQgZmFjZVxyXG5cclxuXHRcdFx0ZWRnZTEgPSBnZXRFZGdlKCBmYWNlLmEsIGZhY2UuYiwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UyID0gZ2V0RWRnZSggZmFjZS5iLCBmYWNlLmMsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMyA9IGdldEVkZ2UoIGZhY2UuYywgZmFjZS5hLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IGZhY2VzLlxyXG5cclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGVkZ2UxLCBlZGdlMiwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYSwgZWRnZTEsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmIsIGVkZ2UyLCBlZGdlMSApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5jLCBlZGdlMywgZWRnZTIgKTtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IG5ldyB1didzXHJcblxyXG5cdFx0XHRpZiAoIGhhc1V2cyApIHtcclxuXHJcblx0XHRcdFx0dXYgPSBvbGRVdnNbIGkgXTtcclxuXHJcblx0XHRcdFx0eDAgPSB1dlsgMCBdO1xyXG5cdFx0XHRcdHgxID0gdXZbIDEgXTtcclxuXHRcdFx0XHR4MiA9IHV2WyAyIF07XHJcblxyXG5cdFx0XHRcdHgzLnNldCggbWlkcG9pbnQoIHgwLngsIHgxLnggKSwgbWlkcG9pbnQoIHgwLnksIHgxLnkgKSApO1xyXG5cdFx0XHRcdHg0LnNldCggbWlkcG9pbnQoIHgxLngsIHgyLnggKSwgbWlkcG9pbnQoIHgxLnksIHgyLnkgKSApO1xyXG5cdFx0XHRcdHg1LnNldCggbWlkcG9pbnQoIHgwLngsIHgyLnggKSwgbWlkcG9pbnQoIHgwLnksIHgyLnkgKSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MywgeDQsIHg1ICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDAsIHgzLCB4NSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MSwgeDQsIHgzICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDIsIHg1LCB4NCApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvLyBPdmVyd3JpdGUgb2xkIGFycmF5c1xyXG5cdFx0Z2VvbWV0cnkudmVydGljZXMgPSBuZXdWZXJ0aWNlcztcclxuXHRcdGdlb21ldHJ5LmZhY2VzID0gbmV3RmFjZXM7XHJcblx0XHRpZiAoIGhhc1V2cyApIGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXSA9IG5ld1VWcztcclxuXHJcblx0XHQvLyBjb25zb2xlLmxvZygnZG9uZScpO1xyXG5cclxuXHR9O1xyXG5cclxufSApKCk7XHJcbiIsInZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXG5cbm1vZHVsZS5leHBvcnRzID0gYW5BcnJheVxuXG5mdW5jdGlvbiBhbkFycmF5KGFycikge1xuICByZXR1cm4gKFxuICAgICAgIGFyci5CWVRFU19QRVJfRUxFTUVOVFxuICAgICYmIHN0ci5jYWxsKGFyci5idWZmZXIpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nXG4gICAgfHwgQXJyYXkuaXNBcnJheShhcnIpXG4gIClcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbnVtdHlwZShudW0sIGRlZikge1xuXHRyZXR1cm4gdHlwZW9mIG51bSA9PT0gJ251bWJlcidcblx0XHQ/IG51bSBcblx0XHQ6ICh0eXBlb2YgZGVmID09PSAnbnVtYmVyJyA/IGRlZiA6IDApXG59IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihkdHlwZSkge1xuICBzd2l0Y2ggKGR0eXBlKSB7XG4gICAgY2FzZSAnaW50OCc6XG4gICAgICByZXR1cm4gSW50OEFycmF5XG4gICAgY2FzZSAnaW50MTYnOlxuICAgICAgcmV0dXJuIEludDE2QXJyYXlcbiAgICBjYXNlICdpbnQzMic6XG4gICAgICByZXR1cm4gSW50MzJBcnJheVxuICAgIGNhc2UgJ3VpbnQ4JzpcbiAgICAgIHJldHVybiBVaW50OEFycmF5XG4gICAgY2FzZSAndWludDE2JzpcbiAgICAgIHJldHVybiBVaW50MTZBcnJheVxuICAgIGNhc2UgJ3VpbnQzMic6XG4gICAgICByZXR1cm4gVWludDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDMyJzpcbiAgICAgIHJldHVybiBGbG9hdDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDY0JzpcbiAgICAgIHJldHVybiBGbG9hdDY0QXJyYXlcbiAgICBjYXNlICdhcnJheSc6XG4gICAgICByZXR1cm4gQXJyYXlcbiAgICBjYXNlICd1aW50OF9jbGFtcGVkJzpcbiAgICAgIHJldHVybiBVaW50OENsYW1wZWRBcnJheVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUiA9IHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyA/IFJlZmxlY3QgOiBudWxsXG52YXIgUmVmbGVjdEFwcGx5ID0gUiAmJiB0eXBlb2YgUi5hcHBseSA9PT0gJ2Z1bmN0aW9uJ1xuICA/IFIuYXBwbHlcbiAgOiBmdW5jdGlvbiBSZWZsZWN0QXBwbHkodGFyZ2V0LCByZWNlaXZlciwgYXJncykge1xuICAgIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbCh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKTtcbiAgfVxuXG52YXIgUmVmbGVjdE93bktleXNcbmlmIChSICYmIHR5cGVvZiBSLm93bktleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgUmVmbGVjdE93bktleXMgPSBSLm93bktleXNcbn0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpXG4gICAgICAuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSk7XG4gIH07XG59IGVsc2Uge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBQcm9jZXNzRW1pdFdhcm5pbmcod2FybmluZykge1xuICBpZiAoY29uc29sZSAmJiBjb25zb2xlLndhcm4pIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbn1cblxudmFyIE51bWJlcklzTmFOID0gTnVtYmVyLmlzTmFOIHx8IGZ1bmN0aW9uIE51bWJlcklzTmFOKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIEV2ZW50RW1pdHRlcigpIHtcbiAgRXZlbnRFbWl0dGVyLmluaXQuY2FsbCh0aGlzKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xubW9kdWxlLmV4cG9ydHMub25jZSA9IG9uY2U7XG5cbi8vIEJhY2t3YXJkcy1jb21wYXQgd2l0aCBub2RlIDAuMTAueFxuRXZlbnRFbWl0dGVyLkV2ZW50RW1pdHRlciA9IEV2ZW50RW1pdHRlcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzID0gdW5kZWZpbmVkO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzQ291bnQgPSAwO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzID0gdW5kZWZpbmVkO1xuXG4vLyBCeSBkZWZhdWx0IEV2ZW50RW1pdHRlcnMgd2lsbCBwcmludCBhIHdhcm5pbmcgaWYgbW9yZSB0aGFuIDEwIGxpc3RlbmVycyBhcmVcbi8vIGFkZGVkIHRvIGl0LiBUaGlzIGlzIGEgdXNlZnVsIGRlZmF1bHQgd2hpY2ggaGVscHMgZmluZGluZyBtZW1vcnkgbGVha3MuXG52YXIgZGVmYXVsdE1heExpc3RlbmVycyA9IDEwO1xuXG5mdW5jdGlvbiBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKSB7XG4gIGlmICh0eXBlb2YgbGlzdGVuZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJsaXN0ZW5lclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGxpc3RlbmVyKTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRFbWl0dGVyLCAnZGVmYXVsdE1heExpc3RlbmVycycsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZGVmYXVsdE1heExpc3RlbmVycztcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbihhcmcpIHtcbiAgICBpZiAodHlwZW9mIGFyZyAhPT0gJ251bWJlcicgfHwgYXJnIDwgMCB8fCBOdW1iZXJJc05hTihhcmcpKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiZGVmYXVsdE1heExpc3RlbmVyc1wiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBhcmcgKyAnLicpO1xuICAgIH1cbiAgICBkZWZhdWx0TWF4TGlzdGVuZXJzID0gYXJnO1xuICB9XG59KTtcblxuRXZlbnRFbWl0dGVyLmluaXQgPSBmdW5jdGlvbigpIHtcblxuICBpZiAodGhpcy5fZXZlbnRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuX2V2ZW50cyA9PT0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHMpIHtcbiAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgfVxuXG4gIHRoaXMuX21heExpc3RlbmVycyA9IHRoaXMuX21heExpc3RlbmVycyB8fCB1bmRlZmluZWQ7XG59O1xuXG4vLyBPYnZpb3VzbHkgbm90IGFsbCBFbWl0dGVycyBzaG91bGQgYmUgbGltaXRlZCB0byAxMC4gVGhpcyBmdW5jdGlvbiBhbGxvd3Ncbi8vIHRoYXQgdG8gYmUgaW5jcmVhc2VkLiBTZXQgdG8gemVybyBmb3IgdW5saW1pdGVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBzZXRNYXhMaXN0ZW5lcnMobikge1xuICBpZiAodHlwZW9mIG4gIT09ICdudW1iZXInIHx8IG4gPCAwIHx8IE51bWJlcklzTmFOKG4pKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcIm5cIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgbiArICcuJyk7XG4gIH1cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5mdW5jdGlvbiBfZ2V0TWF4TGlzdGVuZXJzKHRoYXQpIHtcbiAgaWYgKHRoYXQuX21heExpc3RlbmVycyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgcmV0dXJuIHRoYXQuX21heExpc3RlbmVycztcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBnZXRNYXhMaXN0ZW5lcnMoKSB7XG4gIHJldHVybiBfZ2V0TWF4TGlzdGVuZXJzKHRoaXMpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24gZW1pdCh0eXBlKSB7XG4gIHZhciBhcmdzID0gW107XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgdmFyIGRvRXJyb3IgPSAodHlwZSA9PT0gJ2Vycm9yJyk7XG5cbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKVxuICAgIGRvRXJyb3IgPSAoZG9FcnJvciAmJiBldmVudHMuZXJyb3IgPT09IHVuZGVmaW5lZCk7XG4gIGVsc2UgaWYgKCFkb0Vycm9yKVxuICAgIHJldHVybiBmYWxzZTtcblxuICAvLyBJZiB0aGVyZSBpcyBubyAnZXJyb3InIGV2ZW50IGxpc3RlbmVyIHRoZW4gdGhyb3cuXG4gIGlmIChkb0Vycm9yKSB7XG4gICAgdmFyIGVyO1xuICAgIGlmIChhcmdzLmxlbmd0aCA+IDApXG4gICAgICBlciA9IGFyZ3NbMF07XG4gICAgaWYgKGVyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIE5vdGU6IFRoZSBjb21tZW50cyBvbiB0aGUgYHRocm93YCBsaW5lcyBhcmUgaW50ZW50aW9uYWwsIHRoZXkgc2hvd1xuICAgICAgLy8gdXAgaW4gTm9kZSdzIG91dHB1dCBpZiB0aGlzIHJlc3VsdHMgaW4gYW4gdW5oYW5kbGVkIGV4Y2VwdGlvbi5cbiAgICAgIHRocm93IGVyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICAgIH1cbiAgICAvLyBBdCBsZWFzdCBnaXZlIHNvbWUga2luZCBvZiBjb250ZXh0IHRvIHRoZSB1c2VyXG4gICAgdmFyIGVyciA9IG5ldyBFcnJvcignVW5oYW5kbGVkIGVycm9yLicgKyAoZXIgPyAnICgnICsgZXIubWVzc2FnZSArICcpJyA6ICcnKSk7XG4gICAgZXJyLmNvbnRleHQgPSBlcjtcbiAgICB0aHJvdyBlcnI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gIH1cblxuICB2YXIgaGFuZGxlciA9IGV2ZW50c1t0eXBlXTtcblxuICBpZiAoaGFuZGxlciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBmYWxzZTtcblxuICBpZiAodHlwZW9mIGhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBSZWZsZWN0QXBwbHkoaGFuZGxlciwgdGhpcywgYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGxlbiA9IGhhbmRsZXIubGVuZ3RoO1xuICAgIHZhciBsaXN0ZW5lcnMgPSBhcnJheUNsb25lKGhhbmRsZXIsIGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSlcbiAgICAgIFJlZmxlY3RBcHBseShsaXN0ZW5lcnNbaV0sIHRoaXMsIGFyZ3MpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5mdW5jdGlvbiBfYWRkTGlzdGVuZXIodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lciwgcHJlcGVuZCkge1xuICB2YXIgbTtcbiAgdmFyIGV2ZW50cztcbiAgdmFyIGV4aXN0aW5nO1xuXG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGFyZ2V0Ll9ldmVudHNDb3VudCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgLy8gVG8gYXZvaWQgcmVjdXJzaW9uIGluIHRoZSBjYXNlIHRoYXQgdHlwZSA9PT0gXCJuZXdMaXN0ZW5lclwiISBCZWZvcmVcbiAgICAvLyBhZGRpbmcgaXQgdG8gdGhlIGxpc3RlbmVycywgZmlyc3QgZW1pdCBcIm5ld0xpc3RlbmVyXCIuXG4gICAgaWYgKGV2ZW50cy5uZXdMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YXJnZXQuZW1pdCgnbmV3TGlzdGVuZXInLCB0eXBlLFxuICAgICAgICAgICAgICAgICAgbGlzdGVuZXIubGlzdGVuZXIgPyBsaXN0ZW5lci5saXN0ZW5lciA6IGxpc3RlbmVyKTtcblxuICAgICAgLy8gUmUtYXNzaWduIGBldmVudHNgIGJlY2F1c2UgYSBuZXdMaXN0ZW5lciBoYW5kbGVyIGNvdWxkIGhhdmUgY2F1c2VkIHRoZVxuICAgICAgLy8gdGhpcy5fZXZlbnRzIHRvIGJlIGFzc2lnbmVkIHRvIGEgbmV3IG9iamVjdFxuICAgICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gICAgfVxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdO1xuICB9XG5cbiAgaWYgKGV4aXN0aW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBPcHRpbWl6ZSB0aGUgY2FzZSBvZiBvbmUgbGlzdGVuZXIuIERvbid0IG5lZWQgdGhlIGV4dHJhIGFycmF5IG9iamVjdC5cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9IGxpc3RlbmVyO1xuICAgICsrdGFyZ2V0Ll9ldmVudHNDb3VudDtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGV4aXN0aW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBuZWVkIHRvIGNoYW5nZSB0byBhcnJheS5cbiAgICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID1cbiAgICAgICAgcHJlcGVuZCA/IFtsaXN0ZW5lciwgZXhpc3RpbmddIDogW2V4aXN0aW5nLCBsaXN0ZW5lcl07XG4gICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGdvdCBhbiBhcnJheSwganVzdCBhcHBlbmQuXG4gICAgfSBlbHNlIGlmIChwcmVwZW5kKSB7XG4gICAgICBleGlzdGluZy51bnNoaWZ0KGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RpbmcucHVzaChsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIGxpc3RlbmVyIGxlYWtcbiAgICBtID0gX2dldE1heExpc3RlbmVycyh0YXJnZXQpO1xuICAgIGlmIChtID4gMCAmJiBleGlzdGluZy5sZW5ndGggPiBtICYmICFleGlzdGluZy53YXJuZWQpIHtcbiAgICAgIGV4aXN0aW5nLndhcm5lZCA9IHRydWU7XG4gICAgICAvLyBObyBlcnJvciBjb2RlIGZvciB0aGlzIHNpbmNlIGl0IGlzIGEgV2FybmluZ1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICB2YXIgdyA9IG5ldyBFcnJvcignUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcubGVuZ3RoICsgJyAnICsgU3RyaW5nKHR5cGUpICsgJyBsaXN0ZW5lcnMgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRlZC4gVXNlIGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdpbmNyZWFzZSBsaW1pdCcpO1xuICAgICAgdy5uYW1lID0gJ01heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyc7XG4gICAgICB3LmVtaXR0ZXIgPSB0YXJnZXQ7XG4gICAgICB3LnR5cGUgPSB0eXBlO1xuICAgICAgdy5jb3VudCA9IGV4aXN0aW5nLmxlbmd0aDtcbiAgICAgIFByb2Nlc3NFbWl0V2FybmluZyh3KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyID0gZnVuY3Rpb24gYWRkTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIHRydWUpO1xuICAgIH07XG5cbmZ1bmN0aW9uIG9uY2VXcmFwcGVyKCkge1xuICBpZiAoIXRoaXMuZmlyZWQpIHtcbiAgICB0aGlzLnRhcmdldC5yZW1vdmVMaXN0ZW5lcih0aGlzLnR5cGUsIHRoaXMud3JhcEZuKTtcbiAgICB0aGlzLmZpcmVkID0gdHJ1ZTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQpO1xuICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmFwcGx5KHRoaXMudGFyZ2V0LCBhcmd1bWVudHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9vbmNlV3JhcCh0YXJnZXQsIHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBzdGF0ZSA9IHsgZmlyZWQ6IGZhbHNlLCB3cmFwRm46IHVuZGVmaW5lZCwgdGFyZ2V0OiB0YXJnZXQsIHR5cGU6IHR5cGUsIGxpc3RlbmVyOiBsaXN0ZW5lciB9O1xuICB2YXIgd3JhcHBlZCA9IG9uY2VXcmFwcGVyLmJpbmQoc3RhdGUpO1xuICB3cmFwcGVkLmxpc3RlbmVyID0gbGlzdGVuZXI7XG4gIHN0YXRlLndyYXBGbiA9IHdyYXBwZWQ7XG4gIHJldHVybiB3cmFwcGVkO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbiBvbmNlKHR5cGUsIGxpc3RlbmVyKSB7XG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICB0aGlzLm9uKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZE9uY2VMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZE9uY2VMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gICAgICB0aGlzLnByZXBlbmRMaXN0ZW5lcih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbi8vIEVtaXRzIGEgJ3JlbW92ZUxpc3RlbmVyJyBldmVudCBpZiBhbmQgb25seSBpZiB0aGUgbGlzdGVuZXIgd2FzIHJlbW92ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgdmFyIGxpc3QsIGV2ZW50cywgcG9zaXRpb24sIGksIG9yaWdpbmFsTGlzdGVuZXI7XG5cbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBsaXN0ID0gZXZlbnRzW3R5cGVdO1xuICAgICAgaWYgKGxpc3QgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGlmIChsaXN0ID09PSBsaXN0ZW5lciB8fCBsaXN0Lmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIpXG4gICAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgbGlzdC5saXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGxpc3QgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcG9zaXRpb24gPSAtMTtcblxuICAgICAgICBmb3IgKGkgPSBsaXN0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgaWYgKGxpc3RbaV0gPT09IGxpc3RlbmVyIHx8IGxpc3RbaV0ubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgICAgICBvcmlnaW5hbExpc3RlbmVyID0gbGlzdFtpXS5saXN0ZW5lcjtcbiAgICAgICAgICAgIHBvc2l0aW9uID0gaTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwb3NpdGlvbiA8IDApXG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSAwKVxuICAgICAgICAgIGxpc3Quc2hpZnQoKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgc3BsaWNlT25lKGxpc3QsIHBvc2l0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSlcbiAgICAgICAgICBldmVudHNbdHlwZV0gPSBsaXN0WzBdO1xuXG4gICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgb3JpZ2luYWxMaXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub2ZmID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyh0eXBlKSB7XG4gICAgICB2YXIgbGlzdGVuZXJzLCBldmVudHMsIGk7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIC8vIG5vdCBsaXN0ZW5pbmcgZm9yIHJlbW92ZUxpc3RlbmVyLCBubyBuZWVkIHRvIGVtaXRcbiAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50c1t0eXBlXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIC8vIGVtaXQgcmVtb3ZlTGlzdGVuZXIgZm9yIGFsbCBsaXN0ZW5lcnMgb24gYWxsIGV2ZW50c1xuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhldmVudHMpO1xuICAgICAgICB2YXIga2V5O1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICAgICAgaWYgKGtleSA9PT0gJ3JlbW92ZUxpc3RlbmVyJykgY29udGludWU7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygncmVtb3ZlTGlzdGVuZXInKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgbGlzdGVuZXJzID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgICBpZiAodHlwZW9mIGxpc3RlbmVycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVycyk7XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbmVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIExJRk8gb3JkZXJcbiAgICAgICAgZm9yIChpID0gbGlzdGVuZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbmZ1bmN0aW9uIF9saXN0ZW5lcnModGFyZ2V0LCB0eXBlLCB1bndyYXApIHtcbiAgdmFyIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG4gIGlmIChldmxpc3RlbmVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJylcbiAgICByZXR1cm4gdW53cmFwID8gW2V2bGlzdGVuZXIubGlzdGVuZXIgfHwgZXZsaXN0ZW5lcl0gOiBbZXZsaXN0ZW5lcl07XG5cbiAgcmV0dXJuIHVud3JhcCA/XG4gICAgdW53cmFwTGlzdGVuZXJzKGV2bGlzdGVuZXIpIDogYXJyYXlDbG9uZShldmxpc3RlbmVyLCBldmxpc3RlbmVyLmxlbmd0aCk7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24gbGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgdHJ1ZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJhd0xpc3RlbmVycyA9IGZ1bmN0aW9uIHJhd0xpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24oZW1pdHRlciwgdHlwZSkge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIubGlzdGVuZXJDb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBlbWl0dGVyLmxpc3RlbmVyQ291bnQodHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGxpc3RlbmVyQ291bnQuY2FsbChlbWl0dGVyLCB0eXBlKTtcbiAgfVxufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50ID0gbGlzdGVuZXJDb3VudDtcbmZ1bmN0aW9uIGxpc3RlbmVyQ291bnQodHlwZSkge1xuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKGV2bGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGV2bGlzdGVuZXIubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmV2ZW50TmFtZXMgPSBmdW5jdGlvbiBldmVudE5hbWVzKCkge1xuICByZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQgPiAwID8gUmVmbGVjdE93bktleXModGhpcy5fZXZlbnRzKSA6IFtdO1xufTtcblxuZnVuY3Rpb24gYXJyYXlDbG9uZShhcnIsIG4pIHtcbiAgdmFyIGNvcHkgPSBuZXcgQXJyYXkobik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKVxuICAgIGNvcHlbaV0gPSBhcnJbaV07XG4gIHJldHVybiBjb3B5O1xufVxuXG5mdW5jdGlvbiBzcGxpY2VPbmUobGlzdCwgaW5kZXgpIHtcbiAgZm9yICg7IGluZGV4ICsgMSA8IGxpc3QubGVuZ3RoOyBpbmRleCsrKVxuICAgIGxpc3RbaW5kZXhdID0gbGlzdFtpbmRleCArIDFdO1xuICBsaXN0LnBvcCgpO1xufVxuXG5mdW5jdGlvbiB1bndyYXBMaXN0ZW5lcnMoYXJyKSB7XG4gIHZhciByZXQgPSBuZXcgQXJyYXkoYXJyLmxlbmd0aCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcmV0Lmxlbmd0aDsgKytpKSB7XG4gICAgcmV0W2ldID0gYXJyW2ldLmxpc3RlbmVyIHx8IGFycltpXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvbmNlKGVtaXR0ZXIsIG5hbWUpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBmdW5jdGlvbiBlcnJvckxpc3RlbmVyKGVycikge1xuICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcihuYW1lLCByZXNvbHZlcik7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlcigpIHtcbiAgICAgIGlmICh0eXBlb2YgZW1pdHRlci5yZW1vdmVMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIGVycm9yTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShbXS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO1xuICAgIH07XG5cbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgcmVzb2x2ZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICBpZiAobmFtZSAhPT0gJ2Vycm9yJykge1xuICAgICAgYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgZXJyb3JMaXN0ZW5lciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGhhbmRsZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCAnZXJyb3InLCBoYW5kbGVyLCBmbGFncyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIGxpc3RlbmVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgZW1pdHRlci5vbmNlKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW1pdHRlci5vbihuYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBFdmVudFRhcmdldCBkb2VzIG5vdCBoYXZlIGBlcnJvcmAgZXZlbnQgc2VtYW50aWNzIGxpa2UgTm9kZVxuICAgIC8vIEV2ZW50RW1pdHRlcnMsIHdlIGRvIG5vdCBsaXN0ZW4gZm9yIGBlcnJvcmAgZXZlbnRzIGhlcmUuXG4gICAgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmN0aW9uIHdyYXBMaXN0ZW5lcihhcmcpIHtcbiAgICAgIC8vIElFIGRvZXMgbm90IGhhdmUgYnVpbHRpbiBgeyBvbmNlOiB0cnVlIH1gIHN1cHBvcnQgc28gd2VcbiAgICAgIC8vIGhhdmUgdG8gZG8gaXQgbWFudWFsbHkuXG4gICAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgd3JhcExpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIGxpc3RlbmVyKGFyZyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwiZW1pdHRlclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBlbWl0dGVyKTtcbiAgfVxufVxuIiwiaWYgKHR5cGVvZiBPYmplY3QuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gIC8vIGltcGxlbWVudGF0aW9uIGZyb20gc3RhbmRhcmQgbm9kZS5qcyAndXRpbCcgbW9kdWxlXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICAgICAgdmFsdWU6IGN0b3IsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9O1xufSBlbHNlIHtcbiAgLy8gb2xkIHNjaG9vbCBzaGltIGZvciBvbGQgYnJvd3NlcnNcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgdmFyIFRlbXBDdG9yID0gZnVuY3Rpb24gKCkge31cbiAgICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGVcbiAgICAgIGN0b3IucHJvdG90eXBlID0gbmV3IFRlbXBDdG9yKClcbiAgICAgIGN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY3RvclxuICAgIH1cbiAgfVxufVxuIiwiLyohXG4gKiBEZXRlcm1pbmUgaWYgYW4gb2JqZWN0IGlzIGEgQnVmZmVyXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG4vLyBUaGUgX2lzQnVmZmVyIGNoZWNrIGlzIGZvciBTYWZhcmkgNS03IHN1cHBvcnQsIGJlY2F1c2UgaXQncyBtaXNzaW5nXG4vLyBPYmplY3QucHJvdG90eXBlLmNvbnN0cnVjdG9yLiBSZW1vdmUgdGhpcyBldmVudHVhbGx5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIChpc0J1ZmZlcihvYmopIHx8IGlzU2xvd0J1ZmZlcihvYmopIHx8ICEhb2JqLl9pc0J1ZmZlcilcbn1cblxuZnVuY3Rpb24gaXNCdWZmZXIgKG9iaikge1xuICByZXR1cm4gISFvYmouY29uc3RydWN0b3IgJiYgdHlwZW9mIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIob2JqKVxufVxuXG4vLyBGb3IgTm9kZSB2MC4xMCBzdXBwb3J0LiBSZW1vdmUgdGhpcyBldmVudHVhbGx5LlxuZnVuY3Rpb24gaXNTbG93QnVmZmVyIChvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmoucmVhZEZsb2F0TEUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5zbGljZSA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0J1ZmZlcihvYmouc2xpY2UoMCwgMCkpXG59XG4iLCJ2YXIgd29yZFdyYXAgPSByZXF1aXJlKCd3b3JkLXdyYXBwZXInKVxudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKVxudmFyIG51bWJlciA9IHJlcXVpcmUoJ2FzLW51bWJlcicpXG5cbnZhciBYX0hFSUdIVFMgPSBbJ3gnLCAnZScsICdhJywgJ28nLCAnbicsICdzJywgJ3InLCAnYycsICd1JywgJ20nLCAndicsICd3JywgJ3onXVxudmFyIE1fV0lEVEhTID0gWydtJywgJ3cnXVxudmFyIENBUF9IRUlHSFRTID0gWydIJywgJ0knLCAnTicsICdFJywgJ0YnLCAnSycsICdMJywgJ1QnLCAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onXVxuXG5cbnZhciBUQUJfSUQgPSAnXFx0Jy5jaGFyQ29kZUF0KDApXG52YXIgU1BBQ0VfSUQgPSAnICcuY2hhckNvZGVBdCgwKVxudmFyIEFMSUdOX0xFRlQgPSAwLCBcbiAgICBBTElHTl9DRU5URVIgPSAxLCBcbiAgICBBTElHTl9SSUdIVCA9IDJcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVMYXlvdXQob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dExheW91dChvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRMYXlvdXQob3B0KSB7XG4gIHRoaXMuZ2x5cGhzID0gW11cbiAgdGhpcy5fbWVhc3VyZSA9IHRoaXMuY29tcHV0ZU1ldHJpY3MuYmluZCh0aGlzKVxuICB0aGlzLnVwZGF0ZShvcHQpXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKG9wdCkge1xuICBvcHQgPSB4dGVuZCh7XG4gICAgbWVhc3VyZTogdGhpcy5fbWVhc3VyZVxuICB9LCBvcHQpXG4gIHRoaXMuX29wdCA9IG9wdFxuICB0aGlzLl9vcHQudGFiU2l6ZSA9IG51bWJlcih0aGlzLl9vcHQudGFiU2l6ZSwgNClcblxuICBpZiAoIW9wdC5mb250KVxuICAgIHRocm93IG5ldyBFcnJvcignbXVzdCBwcm92aWRlIGEgdmFsaWQgYml0bWFwIGZvbnQnKVxuXG4gIHZhciBnbHlwaHMgPSB0aGlzLmdseXBoc1xuICB2YXIgdGV4dCA9IG9wdC50ZXh0fHwnJyBcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuICB0aGlzLl9zZXR1cFNwYWNlR2x5cGhzKGZvbnQpXG4gIFxuICB2YXIgbGluZXMgPSB3b3JkV3JhcC5saW5lcyh0ZXh0LCBvcHQpXG4gIHZhciBtaW5XaWR0aCA9IG9wdC53aWR0aCB8fCAwXG5cbiAgLy9jbGVhciBnbHlwaHNcbiAgZ2x5cGhzLmxlbmd0aCA9IDBcblxuICAvL2dldCBtYXggbGluZSB3aWR0aFxuICB2YXIgbWF4TGluZVdpZHRoID0gbGluZXMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGxpbmUpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgocHJldiwgbGluZS53aWR0aCwgbWluV2lkdGgpXG4gIH0sIDApXG5cbiAgLy90aGUgcGVuIHBvc2l0aW9uXG4gIHZhciB4ID0gMFxuICB2YXIgeSA9IDBcbiAgdmFyIGxpbmVIZWlnaHQgPSBudW1iZXIob3B0LmxpbmVIZWlnaHQsIGZvbnQuY29tbW9uLmxpbmVIZWlnaHQpXG4gIHZhciBiYXNlbGluZSA9IGZvbnQuY29tbW9uLmJhc2VcbiAgdmFyIGRlc2NlbmRlciA9IGxpbmVIZWlnaHQtYmFzZWxpbmVcbiAgdmFyIGxldHRlclNwYWNpbmcgPSBvcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBoZWlnaHQgPSBsaW5lSGVpZ2h0ICogbGluZXMubGVuZ3RoIC0gZGVzY2VuZGVyXG4gIHZhciBhbGlnbiA9IGdldEFsaWduVHlwZSh0aGlzLl9vcHQuYWxpZ24pXG5cbiAgLy9kcmF3IHRleHQgYWxvbmcgYmFzZWxpbmVcbiAgeSAtPSBoZWlnaHRcbiAgXG4gIC8vdGhlIG1ldHJpY3MgZm9yIHRoaXMgdGV4dCBsYXlvdXRcbiAgdGhpcy5fd2lkdGggPSBtYXhMaW5lV2lkdGhcbiAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0XG4gIHRoaXMuX2Rlc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBiYXNlbGluZVxuICB0aGlzLl9iYXNlbGluZSA9IGJhc2VsaW5lXG4gIHRoaXMuX3hIZWlnaHQgPSBnZXRYSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2NhcEhlaWdodCA9IGdldENhcEhlaWdodChmb250KVxuICB0aGlzLl9saW5lSGVpZ2h0ID0gbGluZUhlaWdodFxuICB0aGlzLl9hc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBkZXNjZW5kZXIgLSB0aGlzLl94SGVpZ2h0XG4gICAgXG4gIC8vbGF5b3V0IGVhY2ggZ2x5cGhcbiAgdmFyIHNlbGYgPSB0aGlzXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSwgbGluZUluZGV4KSB7XG4gICAgdmFyIHN0YXJ0ID0gbGluZS5zdGFydFxuICAgIHZhciBlbmQgPSBsaW5lLmVuZFxuICAgIHZhciBsaW5lV2lkdGggPSBsaW5lLndpZHRoXG4gICAgdmFyIGxhc3RHbHlwaFxuICAgIFxuICAgIC8vZm9yIGVhY2ggZ2x5cGggaW4gdGhhdCBsaW5lLi4uXG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQ7IGkrKykge1xuICAgICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgICB2YXIgZ2x5cGggPSBzZWxmLmdldEdseXBoKGZvbnQsIGlkKVxuICAgICAgaWYgKGdseXBoKSB7XG4gICAgICAgIGlmIChsYXN0R2x5cGgpIFxuICAgICAgICAgIHggKz0gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKVxuXG4gICAgICAgIHZhciB0eCA9IHhcbiAgICAgICAgaWYgKGFsaWduID09PSBBTElHTl9DRU5URVIpIFxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKS8yXG4gICAgICAgIGVsc2UgaWYgKGFsaWduID09PSBBTElHTl9SSUdIVClcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aClcblxuICAgICAgICBnbHlwaHMucHVzaCh7XG4gICAgICAgICAgcG9zaXRpb246IFt0eCwgeV0sXG4gICAgICAgICAgZGF0YTogZ2x5cGgsXG4gICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgbGluZTogbGluZUluZGV4XG4gICAgICAgIH0pICBcblxuICAgICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgICAgeCArPSBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL25leHQgbGluZSBkb3duXG4gICAgeSArPSBsaW5lSGVpZ2h0XG4gICAgeCA9IDBcbiAgfSlcbiAgdGhpcy5fbGluZXNUb3RhbCA9IGxpbmVzLmxlbmd0aDtcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuX3NldHVwU3BhY2VHbHlwaHMgPSBmdW5jdGlvbihmb250KSB7XG4gIC8vVGhlc2UgYXJlIGZhbGxiYWNrcywgd2hlbiB0aGUgZm9udCBkb2Vzbid0IGluY2x1ZGVcbiAgLy8nICcgb3IgJ1xcdCcgZ2x5cGhzXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IG51bGxcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IG51bGxcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuXG5cbiAgLy90cnkgdG8gZ2V0IHNwYWNlIGdseXBoXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlICdtJyBvciAndycgZ2x5cGhzXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlIGZpcnN0IGdseXBoIGF2YWlsYWJsZVxuICB2YXIgc3BhY2UgPSBnZXRHbHlwaEJ5SWQoZm9udCwgU1BBQ0VfSUQpIFxuICAgICAgICAgIHx8IGdldE1HbHlwaChmb250KSBcbiAgICAgICAgICB8fCBmb250LmNoYXJzWzBdXG5cbiAgLy9hbmQgY3JlYXRlIGEgZmFsbGJhY2sgZm9yIHRhYlxuICB2YXIgdGFiV2lkdGggPSB0aGlzLl9vcHQudGFiU2l6ZSAqIHNwYWNlLnhhZHZhbmNlXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IHNwYWNlXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSB4dGVuZChzcGFjZSwge1xuICAgIHg6IDAsIHk6IDAsIHhhZHZhbmNlOiB0YWJXaWR0aCwgaWQ6IFRBQl9JRCwgXG4gICAgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDAsIGhlaWdodDogMFxuICB9KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5nZXRHbHlwaCA9IGZ1bmN0aW9uKGZvbnQsIGlkKSB7XG4gIHZhciBnbHlwaCA9IGdldEdseXBoQnlJZChmb250LCBpZClcbiAgaWYgKGdseXBoKVxuICAgIHJldHVybiBnbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gVEFCX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tUYWJHbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gU1BBQ0VfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGhcbiAgcmV0dXJuIG51bGxcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuY29tcHV0ZU1ldHJpY3MgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICB2YXIgbGV0dGVyU3BhY2luZyA9IHRoaXMuX29wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGZvbnQgPSB0aGlzLl9vcHQuZm9udFxuICB2YXIgY3VyUGVuID0gMFxuICB2YXIgY3VyV2lkdGggPSAwXG4gIHZhciBjb3VudCA9IDBcbiAgdmFyIGdseXBoXG4gIHZhciBsYXN0R2x5cGhcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgZW5kOiBzdGFydCxcbiAgICAgIHdpZHRoOiAwXG4gICAgfVxuICB9XG5cbiAgZW5kID0gTWF0aC5taW4odGV4dC5sZW5ndGgsIGVuZClcbiAgZm9yICh2YXIgaT1zdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgdmFyIGdseXBoID0gdGhpcy5nZXRHbHlwaChmb250LCBpZClcblxuICAgIGlmIChnbHlwaCkge1xuICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICB2YXIgeG9mZiA9IGdseXBoLnhvZmZzZXRcbiAgICAgIHZhciBrZXJuID0gbGFzdEdseXBoID8gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKSA6IDBcbiAgICAgIGN1clBlbiArPSBrZXJuXG5cbiAgICAgIHZhciBuZXh0UGVuID0gY3VyUGVuICsgZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICB2YXIgbmV4dFdpZHRoID0gY3VyUGVuICsgZ2x5cGgud2lkdGhcblxuICAgICAgLy93ZSd2ZSBoaXQgb3VyIGxpbWl0OyB3ZSBjYW4ndCBtb3ZlIG9udG8gdGhlIG5leHQgZ2x5cGhcbiAgICAgIGlmIChuZXh0V2lkdGggPj0gd2lkdGggfHwgbmV4dFBlbiA+PSB3aWR0aClcbiAgICAgICAgYnJlYWtcblxuICAgICAgLy9vdGhlcndpc2UgY29udGludWUgYWxvbmcgb3VyIGxpbmVcbiAgICAgIGN1clBlbiA9IG5leHRQZW5cbiAgICAgIGN1cldpZHRoID0gbmV4dFdpZHRoXG4gICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgIH1cbiAgICBjb3VudCsrXG4gIH1cbiAgXG4gIC8vbWFrZSBzdXJlIHJpZ2h0bW9zdCBlZGdlIGxpbmVzIHVwIHdpdGggcmVuZGVyZWQgZ2x5cGhzXG4gIGlmIChsYXN0R2x5cGgpXG4gICAgY3VyV2lkdGggKz0gbGFzdEdseXBoLnhvZmZzZXRcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbmQ6IHN0YXJ0ICsgY291bnQsXG4gICAgd2lkdGg6IGN1cldpZHRoXG4gIH1cbn1cblxuLy9nZXR0ZXJzIGZvciB0aGUgcHJpdmF0ZSB2YXJzXG47Wyd3aWR0aCcsICdoZWlnaHQnLCBcbiAgJ2Rlc2NlbmRlcicsICdhc2NlbmRlcicsXG4gICd4SGVpZ2h0JywgJ2Jhc2VsaW5lJyxcbiAgJ2NhcEhlaWdodCcsXG4gICdsaW5lSGVpZ2h0JyBdLmZvckVhY2goYWRkR2V0dGVyKVxuXG5mdW5jdGlvbiBhZGRHZXR0ZXIobmFtZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVGV4dExheW91dC5wcm90b3R5cGUsIG5hbWUsIHtcbiAgICBnZXQ6IHdyYXBwZXIobmFtZSksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pXG59XG5cbi8vY3JlYXRlIGxvb2t1cHMgZm9yIHByaXZhdGUgdmFyc1xuZnVuY3Rpb24gd3JhcHBlcihuYW1lKSB7XG4gIHJldHVybiAobmV3IEZ1bmN0aW9uKFtcbiAgICAncmV0dXJuIGZ1bmN0aW9uICcrbmFtZSsnKCkgeycsXG4gICAgJyAgcmV0dXJuIHRoaXMuXycrbmFtZSxcbiAgICAnfSdcbiAgXS5qb2luKCdcXG4nKSkpKClcbn1cblxuZnVuY3Rpb24gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKSB7XG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBnbHlwaElkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICBpZiAoZ2x5cGhJZHggPj0gMClcbiAgICByZXR1cm4gZm9udC5jaGFyc1tnbHlwaElkeF1cbiAgcmV0dXJuIG51bGxcbn1cblxuZnVuY3Rpb24gZ2V0WEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxYX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBYX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRNR2x5cGgoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8TV9XSURUSFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBNX1dJRFRIU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0Q2FwSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPENBUF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gQ0FQX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRLZXJuaW5nKGZvbnQsIGxlZnQsIHJpZ2h0KSB7XG4gIGlmICghZm9udC5rZXJuaW5ncyB8fCBmb250Lmtlcm5pbmdzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gMFxuXG4gIHZhciB0YWJsZSA9IGZvbnQua2VybmluZ3NcbiAgZm9yICh2YXIgaT0wOyBpPHRhYmxlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtlcm4gPSB0YWJsZVtpXVxuICAgIGlmIChrZXJuLmZpcnN0ID09PSBsZWZ0ICYmIGtlcm4uc2Vjb25kID09PSByaWdodClcbiAgICAgIHJldHVybiBrZXJuLmFtb3VudFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEFsaWduVHlwZShhbGlnbikge1xuICBpZiAoYWxpZ24gPT09ICdjZW50ZXInKVxuICAgIHJldHVybiBBTElHTl9DRU5URVJcbiAgZWxzZSBpZiAoYWxpZ24gPT09ICdyaWdodCcpXG4gICAgcmV0dXJuIEFMSUdOX1JJR0hUXG4gIHJldHVybiBBTElHTl9MRUZUXG59XG5cbmZ1bmN0aW9uIGZpbmRDaGFyIChhcnJheSwgdmFsdWUsIHN0YXJ0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMFxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnJheVtpXS5pZCA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG4gIHJldHVybiAtMVxufSIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlQk1Gb250QXNjaWkoZGF0YSkge1xuICBpZiAoIWRhdGEpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIHByb3ZpZGVkJylcbiAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKS50cmltKClcblxuICB2YXIgb3V0cHV0ID0ge1xuICAgIHBhZ2VzOiBbXSxcbiAgICBjaGFyczogW10sXG4gICAga2VybmluZ3M6IFtdXG4gIH1cblxuICB2YXIgbGluZXMgPSBkYXRhLnNwbGl0KC9cXHJcXG4/fFxcbi9nKVxuXG4gIGlmIChsaW5lcy5sZW5ndGggPT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIGluIEJNRm9udCBmaWxlJylcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxpbmVEYXRhID0gc3BsaXRMaW5lKGxpbmVzW2ldLCBpKVxuICAgIGlmICghbGluZURhdGEpIC8vc2tpcCBlbXB0eSBsaW5lc1xuICAgICAgY29udGludWVcblxuICAgIGlmIChsaW5lRGF0YS5rZXkgPT09ICdwYWdlJykge1xuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmlkICE9PSAnbnVtYmVyJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGlkPU4nKVxuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmZpbGUgIT09ICdzdHJpbmcnKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgZmlsZT1cInBhdGhcIicpXG4gICAgICBvdXRwdXQucGFnZXNbbGluZURhdGEuZGF0YS5pZF0gPSBsaW5lRGF0YS5kYXRhLmZpbGVcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXJzJyB8fCBsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5ncycpIHtcbiAgICAgIC8vLi4uIGRvIG5vdGhpbmcgZm9yIHRoZXNlIHR3byAuLi5cbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXInKSB7XG4gICAgICBvdXRwdXQuY2hhcnMucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAna2VybmluZycpIHtcbiAgICAgIG91dHB1dC5rZXJuaW5ncy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dFtsaW5lRGF0YS5rZXldID0gbGluZURhdGEuZGF0YVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXRcbn1cblxuZnVuY3Rpb24gc3BsaXRMaW5lKGxpbmUsIGlkeCkge1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9cXHQrL2csICcgJykudHJpbSgpXG4gIGlmICghbGluZSlcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBzcGFjZSA9IGxpbmUuaW5kZXhPZignICcpXG4gIGlmIChzcGFjZSA9PT0gLTEpIFxuICAgIHRocm93IG5ldyBFcnJvcihcIm5vIG5hbWVkIHJvdyBhdCBsaW5lIFwiICsgaWR4KVxuXG4gIHZhciBrZXkgPSBsaW5lLnN1YnN0cmluZygwLCBzcGFjZSlcblxuICBsaW5lID0gbGluZS5zdWJzdHJpbmcoc3BhY2UgKyAxKVxuICAvL2NsZWFyIFwibGV0dGVyXCIgZmllbGQgYXMgaXQgaXMgbm9uLXN0YW5kYXJkIGFuZFxuICAvL3JlcXVpcmVzIGFkZGl0aW9uYWwgY29tcGxleGl0eSB0byBwYXJzZSBcIiAvID0gc3ltYm9sc1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9sZXR0ZXI9W1xcJ1xcXCJdXFxTK1tcXCdcXFwiXS9naSwgJycpICBcbiAgbGluZSA9IGxpbmUuc3BsaXQoXCI9XCIpXG4gIGxpbmUgPSBsaW5lLm1hcChmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gc3RyLnRyaW0oKS5tYXRjaCgoLyhcIi4qP1wifFteXCJcXHNdKykrKD89XFxzKnxcXHMqJCkvZykpXG4gIH0pXG5cbiAgdmFyIGRhdGEgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZHQgPSBsaW5lW2ldXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMF0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChpID09PSBsaW5lLmxlbmd0aCAtIDEpIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMV0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgdmFyIG91dCA9IHtcbiAgICBrZXk6IGtleSxcbiAgICBkYXRhOiB7fVxuICB9XG5cbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICBvdXQuZGF0YVt2LmtleV0gPSB2LmRhdGE7XG4gIH0pXG5cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiBwYXJzZURhdGEoZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFwiXCJcblxuICBpZiAoZGF0YS5pbmRleE9mKCdcIicpID09PSAwIHx8IGRhdGEuaW5kZXhPZihcIidcIikgPT09IDApXG4gICAgcmV0dXJuIGRhdGEuc3Vic3RyaW5nKDEsIGRhdGEubGVuZ3RoIC0gMSlcbiAgaWYgKGRhdGEuaW5kZXhPZignLCcpICE9PSAtMSlcbiAgICByZXR1cm4gcGFyc2VJbnRMaXN0KGRhdGEpXG4gIHJldHVybiBwYXJzZUludChkYXRhLCAxMClcbn1cblxuZnVuY3Rpb24gcGFyc2VJbnRMaXN0KGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24odmFsKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbCwgMTApXG4gIH0pXG59IiwidmFyIGR0eXBlID0gcmVxdWlyZSgnZHR5cGUnKVxudmFyIGFuQXJyYXkgPSByZXF1aXJlKCdhbi1hcnJheScpXG52YXIgaXNCdWZmZXIgPSByZXF1aXJlKCdpcy1idWZmZXInKVxuXG52YXIgQ1cgPSBbMCwgMiwgM11cbnZhciBDQ1cgPSBbMiwgMSwgM11cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVRdWFkRWxlbWVudHMoYXJyYXksIG9wdCkge1xuICAgIC8vaWYgdXNlciBkaWRuJ3Qgc3BlY2lmeSBhbiBvdXRwdXQgYXJyYXlcbiAgICBpZiAoIWFycmF5IHx8ICEoYW5BcnJheShhcnJheSkgfHwgaXNCdWZmZXIoYXJyYXkpKSkge1xuICAgICAgICBvcHQgPSBhcnJheSB8fCB7fVxuICAgICAgICBhcnJheSA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdCA9PT0gJ251bWJlcicpIC8vYmFja3dhcmRzLWNvbXBhdGlibGVcbiAgICAgICAgb3B0ID0geyBjb3VudDogb3B0IH1cbiAgICBlbHNlXG4gICAgICAgIG9wdCA9IG9wdCB8fCB7fVxuXG4gICAgdmFyIHR5cGUgPSB0eXBlb2Ygb3B0LnR5cGUgPT09ICdzdHJpbmcnID8gb3B0LnR5cGUgOiAndWludDE2J1xuICAgIHZhciBjb3VudCA9IHR5cGVvZiBvcHQuY291bnQgPT09ICdudW1iZXInID8gb3B0LmNvdW50IDogMVxuICAgIHZhciBzdGFydCA9IChvcHQuc3RhcnQgfHwgMCkgXG5cbiAgICB2YXIgZGlyID0gb3B0LmNsb2Nrd2lzZSAhPT0gZmFsc2UgPyBDVyA6IENDVyxcbiAgICAgICAgYSA9IGRpclswXSwgXG4gICAgICAgIGIgPSBkaXJbMV0sXG4gICAgICAgIGMgPSBkaXJbMl1cblxuICAgIHZhciBudW1JbmRpY2VzID0gY291bnQgKiA2XG5cbiAgICB2YXIgaW5kaWNlcyA9IGFycmF5IHx8IG5ldyAoZHR5cGUodHlwZSkpKG51bUluZGljZXMpXG4gICAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgbnVtSW5kaWNlczsgaSArPSA2LCBqICs9IDQpIHtcbiAgICAgICAgdmFyIHggPSBpICsgc3RhcnRcbiAgICAgICAgaW5kaWNlc1t4ICsgMF0gPSBqICsgMFxuICAgICAgICBpbmRpY2VzW3ggKyAxXSA9IGogKyAxXG4gICAgICAgIGluZGljZXNbeCArIDJdID0gaiArIDJcbiAgICAgICAgaW5kaWNlc1t4ICsgM10gPSBqICsgYVxuICAgICAgICBpbmRpY2VzW3ggKyA0XSA9IGogKyBiXG4gICAgICAgIGluZGljZXNbeCArIDVdID0gaiArIGNcbiAgICB9XG4gICAgcmV0dXJuIGluZGljZXNcbn0iLCJ2YXIgY3JlYXRlTGF5b3V0ID0gcmVxdWlyZSgnbGF5b3V0LWJtZm9udC10ZXh0JylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBjcmVhdGVJbmRpY2VzID0gcmVxdWlyZSgncXVhZC1pbmRpY2VzJylcblxudmFyIHZlcnRpY2VzID0gcmVxdWlyZSgnLi9saWIvdmVydGljZXMnKVxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi9saWIvdXRpbHMnKVxuXG52YXIgQmFzZSA9IFRIUkVFLkJ1ZmZlckdlb21ldHJ5XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0R2VvbWV0cnkob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0R2VvbWV0cnkgKG9wdCkge1xuICBCYXNlLmNhbGwodGhpcylcblxuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgdGhlc2UgYXMgZGVmYXVsdCB2YWx1ZXMgZm9yIGFueSBzdWJzZXF1ZW50XG4gIC8vIGNhbGxzIHRvIHVwZGF0ZSgpXG4gIHRoaXMuX29wdCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdClcblxuICAvLyBhbHNvIGRvIGFuIGluaXRpYWwgc2V0dXAuLi5cbiAgaWYgKG9wdCkgdGhpcy51cGRhdGUob3B0KVxufVxuXG5pbmhlcml0cyhUZXh0R2VvbWV0cnksIEJhc2UpXG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKG9wdCkge1xuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgY29uc3RydWN0b3IgZGVmYXVsdHNcbiAgb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3B0LCBvcHQpXG5cbiAgaWYgKCFvcHQuZm9udCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3BlY2lmeSBhIHsgZm9udCB9IGluIG9wdGlvbnMnKVxuICB9XG5cbiAgdGhpcy5sYXlvdXQgPSBjcmVhdGVMYXlvdXQob3B0KVxuXG4gIC8vIGdldCB2ZWMyIHRleGNvb3Jkc1xuICB2YXIgZmxpcFkgPSBvcHQuZmxpcFkgIT09IGZhbHNlXG5cbiAgLy8gdGhlIGRlc2lyZWQgQk1Gb250IGRhdGFcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuXG4gIC8vIGRldGVybWluZSB0ZXh0dXJlIHNpemUgZnJvbSBmb250IGZpbGVcbiAgdmFyIHRleFdpZHRoID0gZm9udC5jb21tb24uc2NhbGVXXG4gIHZhciB0ZXhIZWlnaHQgPSBmb250LmNvbW1vbi5zY2FsZUhcblxuICAvLyBnZXQgdmlzaWJsZSBnbHlwaHNcbiAgdmFyIGdseXBocyA9IHRoaXMubGF5b3V0LmdseXBocy5maWx0ZXIoZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICByZXR1cm4gYml0bWFwLndpZHRoICogYml0bWFwLmhlaWdodCA+IDBcbiAgfSlcblxuICAvLyBwcm92aWRlIHZpc2libGUgZ2x5cGhzIGZvciBjb252ZW5pZW5jZVxuICB0aGlzLnZpc2libGVHbHlwaHMgPSBnbHlwaHNcblxuICAvLyBnZXQgY29tbW9uIHZlcnRleCBkYXRhXG4gIHZhciBwb3NpdGlvbnMgPSB2ZXJ0aWNlcy5wb3NpdGlvbnMoZ2x5cGhzKVxuICB2YXIgdXZzID0gdmVydGljZXMudXZzKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpXG4gIHZhciBpbmRpY2VzID0gY3JlYXRlSW5kaWNlcyhbXSwge1xuICAgIGNsb2Nrd2lzZTogdHJ1ZSxcbiAgICB0eXBlOiAndWludDE2JyxcbiAgICBjb3VudDogZ2x5cGhzLmxlbmd0aFxuICB9KVxuXG4gIC8vIHVwZGF0ZSB2ZXJ0ZXggZGF0YVxuICB0aGlzLnNldEluZGV4KGluZGljZXMpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocG9zaXRpb25zLCAyKSlcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSh1dnMsIDIpKVxuXG4gIC8vIHVwZGF0ZSBtdWx0aXBhZ2UgZGF0YVxuICBpZiAoIW9wdC5tdWx0aXBhZ2UgJiYgJ3BhZ2UnIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgIC8vIGRpc2FibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwYWdlJylcbiAgfSBlbHNlIGlmIChvcHQubXVsdGlwYWdlKSB7XG4gICAgLy8gZW5hYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB2YXIgcGFnZXMgPSB2ZXJ0aWNlcy5wYWdlcyhnbHlwaHMpXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BhZ2UnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBhZ2VzLCAxKSlcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdTcGhlcmUgPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlID0gbmV3IFRIUkVFLlNwaGVyZSgpXG4gIH1cblxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cyA9IDBcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlci5zZXQoMCwgMCwgMClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlU3BoZXJlKHBvc2l0aW9ucywgdGhpcy5ib3VuZGluZ1NwaGVyZSlcbiAgaWYgKGlzTmFOKHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiAnICtcbiAgICAgICdDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgJyArXG4gICAgICAnXCJwb3NpdGlvblwiIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdCb3ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nQm94ID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ0JveCA9IG5ldyBUSFJFRS5Cb3gzKClcbiAgfVxuXG4gIHZhciBiYm94ID0gdGhpcy5ib3VuZGluZ0JveFxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICBiYm94Lm1ha2VFbXB0eSgpXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZUJveChwb3NpdGlvbnMsIGJib3gpXG59XG4iLCJ2YXIgaXRlbVNpemUgPSAyXG52YXIgYm94ID0geyBtaW46IFswLCAwXSwgbWF4OiBbMCwgMF0gfVxuXG5mdW5jdGlvbiBib3VuZHMgKHBvc2l0aW9ucykge1xuICB2YXIgY291bnQgPSBwb3NpdGlvbnMubGVuZ3RoIC8gaXRlbVNpemVcbiAgYm94Lm1pblswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWluWzFdID0gcG9zaXRpb25zWzFdXG4gIGJveC5tYXhbMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1heFsxXSA9IHBvc2l0aW9uc1sxXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIHZhciB4ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDBdXG4gICAgdmFyIHkgPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMV1cbiAgICBib3gubWluWzBdID0gTWF0aC5taW4oeCwgYm94Lm1pblswXSlcbiAgICBib3gubWluWzFdID0gTWF0aC5taW4oeSwgYm94Lm1pblsxXSlcbiAgICBib3gubWF4WzBdID0gTWF0aC5tYXgoeCwgYm94Lm1heFswXSlcbiAgICBib3gubWF4WzFdID0gTWF0aC5tYXgoeSwgYm94Lm1heFsxXSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlQm94ID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIG91dHB1dC5taW4uc2V0KGJveC5taW5bMF0sIGJveC5taW5bMV0sIDApXG4gIG91dHB1dC5tYXguc2V0KGJveC5tYXhbMF0sIGJveC5tYXhbMV0sIDApXG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVTcGhlcmUgPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgdmFyIG1pblggPSBib3gubWluWzBdXG4gIHZhciBtaW5ZID0gYm94Lm1pblsxXVxuICB2YXIgbWF4WCA9IGJveC5tYXhbMF1cbiAgdmFyIG1heFkgPSBib3gubWF4WzFdXG4gIHZhciB3aWR0aCA9IG1heFggLSBtaW5YXG4gIHZhciBoZWlnaHQgPSBtYXhZIC0gbWluWVxuICB2YXIgbGVuZ3RoID0gTWF0aC5zcXJ0KHdpZHRoICogd2lkdGggKyBoZWlnaHQgKiBoZWlnaHQpXG4gIG91dHB1dC5jZW50ZXIuc2V0KG1pblggKyB3aWR0aCAvIDIsIG1pblkgKyBoZWlnaHQgLyAyLCAwKVxuICBvdXRwdXQucmFkaXVzID0gbGVuZ3RoIC8gMlxufVxuIiwibW9kdWxlLmV4cG9ydHMucGFnZXMgPSBmdW5jdGlvbiBwYWdlcyAoZ2x5cGhzKSB7XG4gIHZhciBwYWdlcyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAxKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGlkID0gZ2x5cGguZGF0YS5wYWdlIHx8IDBcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgfSlcbiAgcmV0dXJuIHBhZ2VzXG59XG5cbm1vZHVsZS5leHBvcnRzLnV2cyA9IGZ1bmN0aW9uIHV2cyAoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSkge1xuICB2YXIgdXZzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHZhciBidyA9IChiaXRtYXAueCArIGJpdG1hcC53aWR0aClcbiAgICB2YXIgYmggPSAoYml0bWFwLnkgKyBiaXRtYXAuaGVpZ2h0KVxuXG4gICAgLy8gdG9wIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgdTAgPSBiaXRtYXAueCAvIHRleFdpZHRoXG4gICAgdmFyIHYxID0gYml0bWFwLnkgLyB0ZXhIZWlnaHRcbiAgICB2YXIgdTEgPSBidyAvIHRleFdpZHRoXG4gICAgdmFyIHYwID0gYmggLyB0ZXhIZWlnaHRcblxuICAgIGlmIChmbGlwWSkge1xuICAgICAgdjEgPSAodGV4SGVpZ2h0IC0gYml0bWFwLnkpIC8gdGV4SGVpZ2h0XG4gICAgICB2MCA9ICh0ZXhIZWlnaHQgLSBiaCkgLyB0ZXhIZWlnaHRcbiAgICB9XG5cbiAgICAvLyBCTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYxXG4gICAgLy8gVExcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIFRSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBCUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYxXG4gIH0pXG4gIHJldHVybiB1dnNcbn1cblxubW9kdWxlLmV4cG9ydHMucG9zaXRpb25zID0gZnVuY3Rpb24gcG9zaXRpb25zIChnbHlwaHMpIHtcbiAgdmFyIHBvc2l0aW9ucyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcblxuICAgIC8vIGJvdHRvbSBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHggPSBnbHlwaC5wb3NpdGlvblswXSArIGJpdG1hcC54b2Zmc2V0XG4gICAgdmFyIHkgPSBnbHlwaC5wb3NpdGlvblsxXSArIGJpdG1hcC55b2Zmc2V0XG5cbiAgICAvLyBxdWFkIHNpemVcbiAgICB2YXIgdyA9IGJpdG1hcC53aWR0aFxuICAgIHZhciBoID0gYml0bWFwLmhlaWdodFxuXG4gICAgLy8gQkxcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgICAvLyBUTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBUUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gQlJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gIH0pXG4gIHJldHVybiBwb3NpdGlvbnNcbn1cbiIsInZhciBuZXdsaW5lID0gL1xcbi9cbnZhciBuZXdsaW5lQ2hhciA9ICdcXG4nXG52YXIgd2hpdGVzcGFjZSA9IC9cXHMvXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odGV4dCwgb3B0KSB7XG4gICAgdmFyIGxpbmVzID0gbW9kdWxlLmV4cG9ydHMubGluZXModGV4dCwgb3B0KVxuICAgIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcobGluZS5zdGFydCwgbGluZS5lbmQpXG4gICAgfSkuam9pbignXFxuJylcbn1cblxubW9kdWxlLmV4cG9ydHMubGluZXMgPSBmdW5jdGlvbiB3b3Jkd3JhcCh0ZXh0LCBvcHQpIHtcbiAgICBvcHQgPSBvcHR8fHt9XG5cbiAgICAvL3plcm8gd2lkdGggcmVzdWx0cyBpbiBub3RoaW5nIHZpc2libGVcbiAgICBpZiAob3B0LndpZHRoID09PSAwICYmIG9wdC5tb2RlICE9PSAnbm93cmFwJykgXG4gICAgICAgIHJldHVybiBbXVxuXG4gICAgdGV4dCA9IHRleHR8fCcnXG4gICAgdmFyIHdpZHRoID0gdHlwZW9mIG9wdC53aWR0aCA9PT0gJ251bWJlcicgPyBvcHQud2lkdGggOiBOdW1iZXIuTUFYX1ZBTFVFXG4gICAgdmFyIHN0YXJ0ID0gTWF0aC5tYXgoMCwgb3B0LnN0YXJ0fHwwKVxuICAgIHZhciBlbmQgPSB0eXBlb2Ygb3B0LmVuZCA9PT0gJ251bWJlcicgPyBvcHQuZW5kIDogdGV4dC5sZW5ndGhcbiAgICB2YXIgbW9kZSA9IG9wdC5tb2RlXG5cbiAgICB2YXIgbWVhc3VyZSA9IG9wdC5tZWFzdXJlIHx8IG1vbm9zcGFjZVxuICAgIGlmIChtb2RlID09PSAncHJlJylcbiAgICAgICAgcmV0dXJuIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aClcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpXG59XG5cbmZ1bmN0aW9uIGlkeE9mKHRleHQsIGNociwgc3RhcnQsIGVuZCkge1xuICAgIHZhciBpZHggPSB0ZXh0LmluZGV4T2YoY2hyLCBzdGFydClcbiAgICBpZiAoaWR4ID09PSAtMSB8fCBpZHggPiBlbmQpXG4gICAgICAgIHJldHVybiBlbmRcbiAgICByZXR1cm4gaWR4XG59XG5cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjaHIpIHtcbiAgICByZXR1cm4gd2hpdGVzcGFjZS50ZXN0KGNocilcbn1cblxuZnVuY3Rpb24gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGxpbmVzID0gW11cbiAgICB2YXIgbGluZVN0YXJ0ID0gc3RhcnRcbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZCAmJiBpPHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNociA9IHRleHQuY2hhckF0KGkpXG4gICAgICAgIHZhciBpc05ld2xpbmUgPSBuZXdsaW5lLnRlc3QoY2hyKVxuXG4gICAgICAgIC8vSWYgd2UndmUgcmVhY2hlZCBhIG5ld2xpbmUsIHRoZW4gc3RlcCBkb3duIGEgbGluZVxuICAgICAgICAvL09yIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIEVPRlxuICAgICAgICBpZiAoaXNOZXdsaW5lIHx8IGk9PT1lbmQtMSkge1xuICAgICAgICAgICAgdmFyIGxpbmVFbmQgPSBpc05ld2xpbmUgPyBpIDogaSsxXG4gICAgICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIGxpbmVTdGFydCwgbGluZUVuZCwgd2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKG1lYXN1cmVkKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBsaW5lU3RhcnQgPSBpKzFcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKSB7XG4gICAgLy9BIGdyZWVkeSB3b3JkIHdyYXBwZXIgYmFzZWQgb24gTGliR0RYIGFsZ29yaXRobVxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL2xpYmdkeC9saWJnZHgvYmxvYi9tYXN0ZXIvZ2R4L3NyYy9jb20vYmFkbG9naWMvZ2R4L2dyYXBoaWNzL2cyZC9CaXRtYXBGb250Q2FjaGUuamF2YVxuICAgIHZhciBsaW5lcyA9IFtdXG5cbiAgICB2YXIgdGVzdFdpZHRoID0gd2lkdGhcbiAgICAvL2lmICdub3dyYXAnIGlzIHNwZWNpZmllZCwgd2Ugb25seSB3cmFwIG9uIG5ld2xpbmUgY2hhcnNcbiAgICBpZiAobW9kZSA9PT0gJ25vd3JhcCcpXG4gICAgICAgIHRlc3RXaWR0aCA9IE51bWJlci5NQVhfVkFMVUVcblxuICAgIHdoaWxlIChzdGFydCA8IGVuZCAmJiBzdGFydCA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgIC8vZ2V0IG5leHQgbmV3bGluZSBwb3NpdGlvblxuICAgICAgICB2YXIgbmV3TGluZSA9IGlkeE9mKHRleHQsIG5ld2xpbmVDaGFyLCBzdGFydCwgZW5kKVxuXG4gICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgc3RhcnQgb2YgbGluZVxuICAgICAgICB3aGlsZSAoc3RhcnQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSggdGV4dC5jaGFyQXQoc3RhcnQpICkpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIHN0YXJ0KytcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZGV0ZXJtaW5lIHZpc2libGUgIyBvZiBnbHlwaHMgZm9yIHRoZSBhdmFpbGFibGUgd2lkdGhcbiAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbmV3TGluZSwgdGVzdFdpZHRoKVxuXG4gICAgICAgIHZhciBsaW5lRW5kID0gc3RhcnQgKyAobWVhc3VyZWQuZW5kLW1lYXN1cmVkLnN0YXJ0KVxuICAgICAgICB2YXIgbmV4dFN0YXJ0ID0gbGluZUVuZCArIG5ld2xpbmVDaGFyLmxlbmd0aFxuXG4gICAgICAgIC8vaWYgd2UgaGFkIHRvIGN1dCB0aGUgbGluZSBiZWZvcmUgdGhlIG5leHQgbmV3bGluZS4uLlxuICAgICAgICBpZiAobGluZUVuZCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIC8vZmluZCBjaGFyIHRvIGJyZWFrIG9uXG4gICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kKSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluZUVuZCA9PT0gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXJ0ID4gc3RhcnQgKyBuZXdsaW5lQ2hhci5sZW5ndGgpIG5leHRTdGFydC0tXG4gICAgICAgICAgICAgICAgbGluZUVuZCA9IG5leHRTdGFydCAvLyBJZiBubyBjaGFyYWN0ZXJzIHRvIGJyZWFrLCBzaG93IGFsbC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gbGluZUVuZFxuICAgICAgICAgICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgZW5kIG9mIGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQgLSBuZXdsaW5lQ2hhci5sZW5ndGgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGluZUVuZCA+PSBzdGFydCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIGxpbmVFbmQsIHRlc3RXaWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KVxuICAgICAgICB9XG4gICAgICAgIHN0YXJ0ID0gbmV4dFN0YXJ0XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG4vL2RldGVybWluZXMgdGhlIHZpc2libGUgbnVtYmVyIG9mIGdseXBocyB3aXRoaW4gYSBnaXZlbiB3aWR0aFxuZnVuY3Rpb24gbW9ub3NwYWNlKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGdseXBocyA9IE1hdGgubWluKHdpZHRoLCBlbmQtc3RhcnQpXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBlbmQ6IHN0YXJ0K2dseXBoc1xuICAgIH1cbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGV4dGVuZFxuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBleHRlbmQoKSB7XG4gICAgdmFyIHRhcmdldCA9IHt9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldXG5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldFxufVxuIl19 diff --git a/build/datguivr.map b/build/datguivr.map index b9003bc..d8a56eb 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index e92c61f..bf993b6 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -5,6 +5,6 @@ return'info face="Roboto" size=192 bold=0 italic=0 charset="" unicode=1 stretchH }Object.defineProperty(c,"__esModule",{value:!0}),c.image=d,c.fnt=e},{}],8:[function(a,b,c){"use strict";function d(){function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i);var J=b.text?2184:16777215,K=b.text?273:13421772;j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?J:K),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8, -"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n\nvoid main() {\n vScale = pow(abs(determinant(mat3(modelViewMatrix))), 0.33333);\n // vScale = 10.;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f -;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n// This is defined in layout.js (and was observed looking at three heirachy matrices)\n#define TEXT_SCALE 0.00024;\nvoid main() {\n \n vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n // vScale = 10.;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g} +Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b varying float vScale; - +// This is defined in layout.js (and was observed looking at three heirachy matrices) +#define TEXT_SCALE 0.00024; void main() { - vScale = pow(abs(determinant(mat3(modelViewMatrix))), 0.33333); + + vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE; // vScale = 10.; vUv = uv; #include From 40f952f2202e0858a6835094ef2fff3506509ad6 Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Wed, 26 Jan 2022 19:26:43 +0000 Subject: [PATCH 09/24] Use Layout.TEXT_SCALE in shader --- build/datguivr.js | 22 ++++++++++++++-------- build/datguivr.map | 2 +- build/datguivr.min.js | 4 ++-- modules/datguivr/sdfshader_logdepth.js | 4 ++-- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index c0dc277..ca22384 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -4584,6 +4584,17 @@ function create() { },{"./interaction":13}],17:[function(require,module,exports){ 'use strict'; +var _layout = require('./layout'); + +var Layout = _interopRequireWildcard(_layout); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +var assign = require('object-assign'); + +/** + * starting from THREE meshbasic shaders, pruning / modifying... + */ /** * PJT: This is a variation on sdfshader from bmfont, which should Just Work with logarithmic depth buffers. * It should also allow some other aspects of THREE rendering to be incorporated, like fog, clipping planes... @@ -4591,12 +4602,7 @@ function create() { * At time of writing, this is work in progress, and somewhat more bloated than it needs to be. * The shader code is designed to be used with ShaderMaterial rather than RawShaderMaterial. */ -var assign = require('object-assign'); - -/** - * starting from THREE meshbasic shaders, pruning / modifying... - */ -var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n// This is defined in layout.js (and was observed looking at three heirachy matrices)\n#define TEXT_SCALE 0.00024;\nvoid main() {\n \n vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n // vScale = 10.;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; +var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n// This is defined in layout.js (and was observed looking at three heirachy matrices)\n#define TEXT_SCALE ' + Layout.TEXT_SCALE + '\nvoid main() {\n \n vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; var meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; @@ -4630,7 +4636,7 @@ module.exports = function createSDFShader(opt) { }, opt); }; -},{"object-assign":32}],18:[function(require,module,exports){ +},{"./layout":15,"object-assign":32}],18:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -7584,4 +7590,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQlVUVE9OX0NPTE9SIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSwgeyBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0NPTE9SICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAuYnV0dG9uTGFiZWwgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgeyBDSEVDS0JPWF9TSVpFIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ2hlY2tib3goIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgY29uc3QgQ0hFQ0tCT1hfUEFEID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAtIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiY2hlY2tib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGNoZWNrbWFyaywgYm9yZGVyQm94LCBpbnRlcmFjdGlvbjtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBpZiggb25DaGFuZ2VkQ0IgKXtcclxuICAgICAgb25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGJvcmRlckJveC52aXNpYmxlID0gaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIGlmIChfaGVhZGVyKSB7XHJcbiAgICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgICAgX2hlYWRlci5ib3JkZXJCb3gudmlzaWJsZSA9IF9oZWFkZXIuaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG4gIGxldCBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSBmYWxzZTtcclxuICBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXIgPSAodmFsdWU9dHJ1ZSkgPT4ge1xyXG4gICAgaWYgKHZhbHVlICE9PSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHtcclxuICAgICAgaXNTaG93bkluRm9sZGVySGVhZGVyID0gdmFsdWU7XHJcbiAgICAgIC8vZ3JvdXAuZm9sZGVySGVhZGVyT2JqZWN0ID0gdmFsdWUgPyBnZXRGb2xkZXJIZWFkZXJPYmplY3QgOiBudWxsO1xyXG4gICAgICAvL3h4eDogY2FuJ3QgdXNlIG9yZGluYXJ5IGFkZC4uLlxyXG4gICAgICBfaGVhZGVyID0gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCk7XHJcbiAgICAgIGlmICh2YWx1ZSkgZ3JvdXAuZm9sZGVyLmFkZEhlYWRlckl0ZW0oX2hlYWRlcik7XHJcbiAgICAgIGVsc2UgX2hlYWRlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2lzU2hvd25JbkZvbGRlckhlYWRlcicsIHtcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gaXNTaG93bkluRm9sZGVySGVhZGVyIH0sXHJcbiAgICBzZXQ6IGdyb3VwLnNob3dJbkZvbGRlckhlYWRlclxyXG4gIH0pO1xyXG4gIGxldCBfaGVhZGVyO1xyXG4gIGZ1bmN0aW9uIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHtcclxuICAgIGlmIChfaGVhZGVyKSByZXR1cm4gX2hlYWRlcjtcclxuICAgIGxldCBzaXplID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAqIDAuNjtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoc2l6ZSwgc2l6ZSwgZGVwdGgpO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoc2l6ZSowLjUsIDAsIDApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2gocmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwpO1xyXG4gICAgX2hlYWRlciA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBzaWRlLWVmZmVjdC4uLlxyXG4gICAgLy8geCBwb3NpdGlvbiBpcyBzZXQgaW4gZm9sZGVyIHBlcmZvcm1IZWFkZXJMYXlvdXQoKVxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBcclxuICAgIC8vVE9ETzogZ2V0IHRoaXMgdG8gd29yay4uLiBhZGQgdG9vbHRpcFxyXG4gICAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBkZXB0aCwgdHJ1ZSApO1xyXG4gICAgX2hlYWRlci5ib3JkZXJCb3ggPSBib3JkZXJCb3g7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjb25zdCBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyaygwLjQgKiBzaXplIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkUpO1xyXG4gICAgX2hlYWRlci5jaGVja21hcmsgPSBjaGVja21hcms7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZChjaGVja21hcmspO1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oaGl0c2NhblZvbHVtZSk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oJ29uUHJlc3NlZCcsIGhhbmRsZUhlYWRlclByZXNzKTtcclxuICAgIF9oZWFkZXIuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuXHJcbiAgICAvL2FkZCB1cGRhdGVDb250cm9sIG1ldGhvZCBoZXJlIC0gYXR0ZW1wdCB0byBtYWtlIGdlbmVyaWMgdmVyc2lvbiBpbiBmb2xkZXIgd2FzIGluYWRlcXVhdGVcclxuICAgIF9oZWFkZXIudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiB7XHJcbiAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIHtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vbmI6IGludGVyYWN0aW9uIHdpbGwgYmUgZnJvbSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSBzY29wZSwgXHJcbiAgICAgIC8vbm90IHRoZSBtYWluIG9uZSB0aGF0IGFwcGxpZXMgdGhhdCBhcHBsaWVzIHRvIHRoZSBvcmRpbmFyeSBjb250cm9sLlxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBfaGVhZGVyO1xyXG4gIH1cclxuXHJcbiAgLy9UT0RPIHJldmlldyBuZWVkIGZvciBzZXBhcmF0ZSBoZWFkZXIgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uXHJcbiAgZnVuY3Rpb24gaGFuZGxlSGVhZGVyUHJlc3MocCl7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyLnZpc2libGUgPT09IGZhbHNlIHx8IF9oZWFkZXIudmlzaWJsZSA9PT0gZmFsc2UpIHJldHVybjtcclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdGF0ZS52YWx1ZTtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Ioc3RhdGUudmFsdWUpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIC8vbWFrZSBzdXJlIHZpZXcgaXMgYWxzbyB1cCB0byBkYXRlOyB1cGRhdGVWaWV3KCkgd29uJ3QgaGFwcGVuIHdoZW4gcGFyZW50IGZvbGRlciBpcyBjb2xsYXBzZWRcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICAvL2FsbCBsYXlvdXQgZXRjIGlzIGRvbmUgaW5zaWRlIHNldEhlaWdodCwgd2hpY2ggaXMgY2FsbGVkIG9uY2UgYXQgc3RhcnQuXHJcbiAgLy9hbnkgY2FsbGJhY2tzIGV0YyByZW1haW4gYXNzb2NpYXRlZCB3aXRoICdncm91cCcuXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gbmV3SGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IG5ld0hlaWdodDtcclxuICAgIFxyXG4gICAgY29uc3QgQ0hFQ0tCT1hfV0lEVEggPSBuZXdIZWlnaHQgLSBDSEVDS0JPWF9QQUQ7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9IRUlHSFQgPSBDSEVDS0JPWF9XSURUSDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0RFUFRIID0gZGVwdGg7XHJcbiAgICBjb25zdCBDSEVDS01BUktfU0laRSA9IDAuNCAqIENIRUNLQk9YX1dJRFRIIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIG5ld0hlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICBcclxuICAgIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDSEVDS0JPWF9XSURUSCwgQ0hFQ0tCT1hfSEVJR0hULCBDSEVDS0JPWF9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIENIRUNLQk9YX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgXHJcbiAgXHJcbiAgICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuICBcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgXHJcbiAgICAvLyAgb3V0bGluZSB2b2x1bWVcclxuICAgIC8vIGNvbnN0IG91dGxpbmUgPSBuZXcgVEhSRUUuQm94SGVscGVyKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAvLyBvdXRsaW5lLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLk9VVExJTkVfQ09MT1IgKTtcclxuICBcclxuICAgIC8vICBjaGVja2JveCB2b2x1bWVcclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5DSEVDS0JPWF9CR19DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcbiAgXHJcbiAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBuZXdIZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0NIRUNLQk9YICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gICAgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBDSEVDS0JPWF9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfREVQVEgsIHRydWUgKTtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKCBDSEVDS01BUktfU0laRSApO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggY2hlY2ttYXJrICk7XHJcbiAgXHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklELCBib3JkZXJCb3ggKTtcclxuICBcclxuICAgIC8vIGdyb3VwLmFkZCggZmlsbGVkVm9sdW1lLCBvdXRsaW5lLCBoaXRzY2FuVm9sdW1lLCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuICBcclxuICAgIGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICBcclxuICBcclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG4gICAgXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdO1xyXG4gICAgICB9XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KGhlaWdodCk7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4gKiBUaGlzIHNob3VsZCBsb29rIGxpa2UgYW4gaW1hZ2VidXR0b24gd2l0aCBhIHNvbGlkIGNvbG9yIE1lc2hCYXNpY01hdGVyaWFsXHJcbiAqIFdoZW4gcHJlc3NlZCBpdCBjb3VsZCBicmluZyB1cCBzb21lIGtpbmQgb2YgcGlja2VyIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uLlxyXG4gKiBcclxuICogRm9yIG5vdywganVzdCBnb2luZyB3aXRoIFJHQiBzbGlkZXJzIGFzIEkgc2hvdWxkbid0IHNwZW5kIHRvbyBsb25nIG9uIHRoaXMgQVRNLFxyXG4gKiBidXQgdmVyeSB0ZW1wdGVkIGJ5IHByb3NwZWN0IG9mIGFuIEhTIHNxdWFyZSB3aXRoIFYgc2xpZGVyLi4uIFxyXG4gKiBvciBIIHNsaWRlciBhbmQgU1Ygc3F1YXJlIHdoaWNoIHNlZW1zIHRvIGJlIHdoYXQgZGF0Lmd1aSB1c2VzLlxyXG4gKiBPciBzb21ldGhpbmcgZmFuY2llciBsaWtlIGEgaHVlIGNpcmNsZSBhcm91bmQgYW4gU1YgdHJpYW5nbGUgZXRjIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbi8vc25pcHBldCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9odWdoc2svZ2xzbC1oc3YycmdiL2Jsb2IvbWFzdGVyL2luZGV4Lmdsc2xcclxuLy8obm90IGdvaW5nIHRvIHRoZSBsZW5ndGhzIG9mIGdsc2xpZnksIGp1c3QgY29weWluZyB0aGUgZnVuY3Rpb24pXHJcbmNvbnN0IGhzdjJyZ2IgPSBgXHJcbnZlYzMgaHN2MnJnYih2ZWMzIGMpIHtcclxuICAgIHZlYzQgSyA9IHZlYzQoMS4wLCAyLjAgLyAzLjAsIDEuMCAvIDMuMCwgMy4wKTtcclxuICAgIHZlYzMgcCA9IGFicyhmcmFjdChjLnh4eCArIEsueHl6KSAqIDYuMCAtIEsud3d3KTtcclxuICAgIHJldHVybiBjLnogKiBtaXgoSy54eHgsIGNsYW1wKHAgLSBLLnh4eCwgMC4wLCAxLjApLCBjLnkpO1xyXG59YDtcclxuXHJcbmNvbnN0IFZlcnRTaGFkZXIgPSBgXHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2VXYgPSB1djtcclxuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuKTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgU1ZGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZlYzMgaHN2ID0gdmVjMyhzZWxlY3RlZEhTVi54LCB2VXYpO1xyXG5cclxuICAgIC8vIGRyYXcgYSBibGFjayBjaXJjbGUgYXJvdW5kIHNlbGVjdGVkIFNWLlxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBsZXNzIGhvdXNla2VlcGluZ1xyXG4gICAgLy8gbmVlZCB0byBrbm93IGFzcGVjdCByYXRpbyBpZiBJIHdhbnQgaXQgdG8gYmUgYSBwcm9wZXIgY2lyY2xlLCB0aG91Z2guXHJcbiAgICBmbG9hdCBkID0gbGVuZ3RoKHNlbGVjdGVkSFNWLnl6IC0gdlV2KTtcclxuICAgIGlmIChkIDwgMC4wMTUgJiYgZCA+IDAuMDEpIGhzdi56ID0gMC47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYihoc3YpO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBIU2xpZGVyRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICAvLyBkcmF3IGEgcmVjdGFuZ3VsYXIgaW5kaWNhdG9yIGFyb3VuZCBzZWxlY3RlZCBIXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIHNpbXBsZXJcclxuICAgIGZsb2F0IGRpc3QgPSBhYnMoc2VsZWN0ZWRIU1YueCAtIHZVdi54KTtcclxuICAgIGJvb2wgaW5kaWNhdG9yID0gZGlzdCA8IDAuMDEgJiYgZGlzdCA+IDAuMDA1O1xyXG4gICAgZmxvYXQgdiA9IGluZGljYXRvciA/IDAuIDogMS47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYih2ZWMzKHZVdi54LCAxLiwgdikpO1xyXG4gICAgXHJcbn1cclxuYDtcclxuXHJcbi8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTcyNDIxNDQvamF2YXNjcmlwdC1jb252ZXJ0LWhzYi1oc3YtY29sb3ItdG8tcmdiLWFjY3VyYXRlbHlcclxuLy93aHkgbm90IHVzZSBUSFJFRS5Db2xvciBtZXRob2RzP1xyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogaCAgT2JqZWN0ID0ge2g6eCwgczp5LCB2Onp9XHJcbiAqIE9SIFxyXG4gKiBoLCBzLCB2XHJcbiovXHJcbmZ1bmN0aW9uIEhTVnRvUkdCKGgsIHMsIHYpIHtcclxuICAgIHZhciByLCBnLCBiLCBpLCBmLCBwLCBxLCB0O1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAvL2hhY2sgdG8gdGFrZSBUSFJFRS5WZWN0b3IzLi4uXHJcbiAgICAgICAgaWYgKGgueCAhPT0gdW5kZWZpbmVkKSBzID0gaC55LCB2ID0gaC56LCBoID0gaC54O1xyXG4gICAgICAgIGVsc2UgcyA9IGgucywgdiA9IGgudiwgaCA9IGguaDtcclxuICAgIH1cclxuICAgIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIGYgPSBoICogNiAtIGk7XHJcbiAgICBwID0gdiAqICgxIC0gcyk7XHJcbiAgICBxID0gdiAqICgxIC0gZiAqIHMpO1xyXG4gICAgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcclxuICAgIHN3aXRjaCAoaSAlIDYpIHtcclxuICAgICAgICBjYXNlIDA6IHIgPSB2LCBnID0gdCwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTogciA9IHEsIGcgPSB2LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyOiByID0gcCwgZyA9IHYsIGIgPSB0OyBicmVhaztcclxuICAgICAgICBjYXNlIDM6IHIgPSBwLCBnID0gcSwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDogciA9IHQsIGcgPSBwLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA1OiByID0gdiwgZyA9IHAsIGIgPSBxOyBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcjogcixcclxuICAgICAgICBnOiBnLFxyXG4gICAgICAgIGI6IGJcclxuICAgIH07XHJcbn1cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIHIgIE9iamVjdCA9IHtyLCBnLCBifVxyXG4gKiBPUiBcclxuICogciwgZywgYlxyXG4qL1xyXG5mdW5jdGlvbiBSR0J0b0hTVihyLCBnLCBiKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGcgPSByLmcsIGIgPSByLmIsIHIgPSByLnI7XHJcbiAgICB9XHJcbiAgICB2YXIgbWF4ID0gTWF0aC5tYXgociwgZywgYiksIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpLFxyXG4gICAgICAgIGQgPSBtYXggLSBtaW4sXHJcbiAgICAgICAgaCxcclxuICAgICAgICBzID0gKG1heCA9PT0gMCA/IDAgOiBkIC8gbWF4KSxcclxuICAgICAgICB2ID0gbWF4O1xyXG5cclxuICAgIHN3aXRjaCAobWF4KSB7XHJcbiAgICAgICAgY2FzZSBtaW46IGggPSAwOyBicmVhaztcclxuICAgICAgICBjYXNlIHI6IGggPSAoZyAtIGIpICsgZCAqIChnIDwgYiA/IDY6IDApOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGc6IGggPSAoYiAtIHIpICsgZCAqIDI7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgYjogaCA9IChyIC0gZykgKyBkICogNDsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBoOiBoLFxyXG4gICAgICAgIHM6IHMsXHJcbiAgICAgICAgdjogdiwgXHJcbiAgICAgICAgeDogaCwgeTogcywgejogdiAvL3NvIHRoYXQgd2UgY2FuIGRvIFZlY3RvcjMuY29weSh0aGlzKVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ29sb3JQaWNrZXIoIHtcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSwgLy9tdXN0IGJlIGEgVEhSRUUuQ29sb3IgZm9yIG5vdy4uLiBzaG91bGQgcmVmZXIgdG8gb3JpZ2luYWwgZGF0Lmd1aSB0byBzZWUgd2hhdCBpdCB0YWtlc1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCAvIDMuXHJcbn0gPSB7fSkge1xyXG4gICAgLy8gbWFrZSB0aGUgbWFpbiBncm91cCBiZSAqZGlyZWN0bHkqIHRoZSBvbmUgcmV0dXJuZWQgYnkgY3JlYXRlSW1hZ2VCdXR0b247XHJcbiAgICAvLyB3ZSdsbCB0YWtlIGNhcmUgb2YgZHluYW1pY2FsbHkgYWRkaW5nIGFuZCByZW1vdmluZyBjaGlsZHJlbiBiYXNlZCBvbiBhdHRhY2hlZC4uLlxyXG4gICAgLy8gd2lsbCB3YW50IHRvIHRoaW5rIGFib3V0IGxpc3RlbmVyIGZ1bmN0aW9ucyBldGMuXHJcbiAgICBsZXQgZnVuYyA9IHRvZ2dsZURldGFpbFBhbmVsO1xyXG4gICAgbGV0IGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07IC8vZm9yIG5vdywgdGhpcydkIGJldHRlciBiZSBhIFRIUkVFLkNvbG9yIG9yIHdlJ2xsIGZyZWFrIG91dC5cclxuICAgIGNvbnN0IGMgPSBSR0J0b0hTVihjb2xvcik7XHJcbiAgICBjb25zdCB1bmlmb3JtcyA9IHtzZWxlY3RlZEhTVjoge3ZhbHVlOiBuZXcgVEhSRUUuVmVjdG9yMyhjLmgsIGMucywgYy52KX19O1xyXG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiBjb2xvcn0pO1xyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGNvbnN0IGNoYW5nZUNvbG9yT25Ib3ZlciA9IGZhbHNlO1xyXG4gICAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICAgICAgbGlzdGVuOiBmYWxzZVxyXG4gICAgfTtcclxuICAgIC8vVE9ETyBtYWtlIHN1cmUgY29sb3IgcGF0Y2ggb2NjdXBpZXMgZnVsbCB3aWR0aC4gIEFkZCB0ZXh0IGxhYmVsIHdpdGggaGV4IHZhbHVlP1xyXG4gICAgY29uc3QgZ3JvdXAgPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgICAgdGV4dENyZWF0b3IsIGZ1bmMsIGltYWdlLCBwcm9wZXJ0eU5hbWUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBjaGFuZ2VDb2xvck9uSG92ZXJcclxuICAgIH0pO1xyXG4gICAgZ3JvdXAuZ3VpVHlwZSA9IFwiQ29sb3JQaWNrZXJcIjtcclxuICAgIFxyXG4gICAgdmFyIHBhbmVsO1xyXG5cclxuICAgIGZ1bmN0aW9uIGNoYW5nZUZuKCkge1xyXG4gICAgICAgIGltYWdlLmNvbG9yLnNldChjb2xvcik7XHJcbiAgICAgICAgZXZlbnRzLmVtaXQoJ29uQ2hhbmdlJywgY29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhbmN5UGFuZWwgPSB0cnVlO1xyXG5cclxuICAgIGZ1bmN0aW9uIHNldFBhbmVsUG9zaXRpb24oKSB7XHJcbiAgICAgICAgaWYgKCFwYW5lbCkgcmV0dXJuO1xyXG4gICAgICAgIHBhbmVsLnBvc2l0aW9uLnNldCgwLCAwLCA1KmRlcHRoKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB0b2dnbGVEZXRhaWxQYW5lbCgpIHtcclxuICAgICAgICBpZiAocGFuZWwpIHtcclxuICAgICAgICAgICAgcGFuZWwudmlzaWJsZSA9ICFwYW5lbC52aXNpYmxlO1xyXG4gICAgICAgICAgICBpZiAocGFuZWwudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gd291bGQgYmUgaGFuZHkgdG8gaGF2ZSBhIHdheSB0byBtYWtlIG5hcnJvd2VyIHBhbmVsXHJcbiAgICAgICAgICAgIHBhbmVsID0gZGF0LkdVSVZSLmNyZWF0ZShcIkNvbG9yIENob29zZXJcIik7IFxyXG4gICAgICAgICAgICBwYW5lbC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAoZmFuY3lQYW5lbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgU1ZNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogU1ZGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNldFNWID0gKHApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS55ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueiA9IHAubG9jYWxQb2ludC55O1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBsZXQgd2lkZSA9IHRydWUsIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSC8xMDtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRTViwgU1ZNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX1dJRFRIIC8gMiwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IEhNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogSFNsaWRlckZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0SChwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueCA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAvL1RPRE86IGNoZWNrIGxheW91dFxyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldEgsIEhNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX0hFSUdIVCwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ3InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdnJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnYicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncm91cC5hZGQocGFuZWwpO1xyXG4gICAgICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHBhbmVsLmZvbGRlciA9IGdyb3VwLmZvbGRlcjsgLy9taWdodCBzdGlsbCB3YW50IHRvIGRvdWJsZSBjaGVjayBmb2xkZXIgaGllcmFyY2h5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgZXZlbnRzLm9uKCdvbkNoYW5nZScsIGNhbGxiYWNrKTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3JpZ2luYWxVcGRhdGVDb250cm9sID0gZ3JvdXAudXBkYXRlQ29udHJvbDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICkge1xyXG4gICAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIG9yaWdpbmFsVXBkYXRlQ29udHJvbChpbnB1dE9iamVjdHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKSB7XHJcbiAgICAgICAgLy9vYmplY3QgcmVmIG1pZ2h0IGhhdmUgY2hhbmdlZCwgYXMgd2VsbCBhcyB2YWx1ZS5cclxuICAgICAgICAvL2V2ZW4gaWYgcmVmIGhhc24ndCBjaGFuZ2VkLCB2YWx1ZSBzdGlsbCBtaWdodCd2ZSwgYW5kIHdlJ3JlIG5vdCBjdXJyZW50bHkgcmVmbGVjdGluZyB0aGF0LlxyXG4gICAgICAgIGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgaW1hZ2UuY29sb3IuY29weShjb2xvcik7XHJcbiAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUuY29weShSR0J0b0hTVihjb2xvcikpO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAubGlzdGVuID0gKCkgPT4ge1xyXG4gICAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1IgPSAweDJGQTFENjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9DT0xPUiA9IDB4NDNiNWVhO1xyXG5leHBvcnQgY29uc3QgSU5URVJBQ1RJT05fQ09MT1IgPSAweDA3QUJGNztcclxuZXhwb3J0IGNvbnN0IEVNSVNTSVZFX0NPTE9SID0gMHgyMjIyMjI7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfRU1JU1NJVkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IE9VVExJTkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDSyA9IDB4MDYwNjA2O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT0xERVJfQkFDSyA9IDB4MTAxMDEwO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0JBQ0sgPSAweDMxMzEzMTtcclxuZXhwb3J0IGNvbnN0IElOQUNUSVZFX0NPTE9SID0gMHgxNjE4Mjk7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1NMSURFUiA9IDB4MmZhMWQ2O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9DSEVDS0JPWCA9IDB4ODA2Nzg3O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9CVVRUT04gPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfVEVYVCA9IDB4MWVkMzZmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9EUk9QRE9XTiA9IDB4ZmZmMDAwO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0ZHX0NPTE9SID0gMHgwMDAwMDA7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0NPTE9SID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fSElHSExJR0hUX0NPTE9SID0gMHhmYTMxNzM7XHJcbmV4cG9ydCBjb25zdCBTTElERVJfQkcgPSAweDQ0NDQ0NDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfQkcgPSAweEYwRjBGMDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfSElHSExJR0hUX0JHID0gMHhGRkZGRkY7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sb3JpemVHZW9tZXRyeSggZ2VvbWV0cnksIGNvbG9yICl7XHJcbiAgY29uc3QgY29sID0gbmV3IFRIUkVFLkNvbG9yKGNvbG9yKTsgXHJcbiAgbGV0IGMgPSBnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ2NvbG9yJyk7XHJcbiAgbGV0IGE7XHJcbiAgaWYgKCFjKSB7XHJcbiAgICBhID0gbmV3IEZsb2F0MzJBcnJheShnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXkubGVuZ3RoKS5maWxsKDAuNSk7XHJcbiAgICBjID0gZ2VvbWV0cnkuc2V0QXR0cmlidXRlKCdjb2xvcicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoYSwgMykpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBhID0gYy5hcnJheTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSs9Mykge1xyXG4gICAgYVtpXSA9IGNvbC5yO1xyXG4gICAgYVtpKzFdID0gY29sLmc7XHJcbiAgICBhW2krMl0gPSBjb2wuYjtcclxuICB9XHJcbiAgYy5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIC8vIGdlb21ldHJ5LmZhY2VzLmZvckVhY2goIGZ1bmN0aW9uKGZhY2Upe1xyXG4gIC8vICAgZmFjZS5jb2xvci5zZXRIZXgoY29sb3IpO1xyXG4gIC8vIH0pO1xyXG4gIC8vIGdlb21ldHJ5LmNvbG9yc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIHJldHVybiBnZW9tZXRyeTtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsLCB7Y3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gXCIuL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVEcm9wZG93bigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICBvcHRpb25zID0gW10sXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgb3BlbjogZmFsc2UsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgRFJPUERPV05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9ERVBUSCA9IGRlcHRoO1xyXG4gIGNvbnN0IERST1BET1dOX09QVElPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOICogMS4yO1xyXG4gIGNvbnN0IERST1BET1dOX01BUkdJTiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAtMC40O1xyXG4gIGNvbnN0IE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZHJvcGRvd25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIC8vYWxsb3cgZm9yIHByb2dyYW1tYXRpYyBzZXQuIEFQSSBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgc3RhYmxlLlxyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZU9iamVjdCA9IG9iamVjdDtcclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VQcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7XHJcbiAgZ3JvdXAudXNlckRhdGEuc2V0VmFsdWUgPSB2ID0+IHtcclxuICAgIGlmIChvcHRpb25zLmluZGV4T2YodikgPT09IC0xKSB7XHJcbiAgICAgIC8vSSBjb3VsZCBjb25zaWRlciBhbm5vdGF0aW5nIEdVSSBpdHNlbGYgd2l0aCBlcnJvciBsYWJlbHMuLi5cclxuICAgICAgY29uc29sZS53YXJuKGBkYXQuR1VJVlI6IFVua25vd24gb3B0aW9uIFwiJHt2fVwiIGZvciBkcm9wZG93biBcIiR7cHJvcGVydHlOYW1lfVwiLlxcblZhbGlkIG9wdGlvbnM6IFske29wdGlvbnMuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gdjtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Iob2JqZWN0W3Byb3BlcnR5TmFtZV0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICBncm91cC5oaXRzY2FuID0gWyBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBtb2RhbERyb3Bkb3duID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgbW9kYWxEcm9wZG93bi52aXNpYmxlID0gZmFsc2U7XHJcbiAgbW9kYWxEcm9wZG93bi5oaXRzY2FuID0gW107XHJcbiAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbnMgPSBbXTtcclxuICBjb25zdCBvcHRpb25MYWJlbHMgPSBbXTtcclxuXHJcbiAgLy8gIGZpbmQgYWN0dWFsbHkgd2hpY2ggbGFiZWwgaXMgc2VsZWN0ZWRcclxuICBjb25zdCBpbml0aWFsTGFiZWwgPSBmaW5kTGFiZWxGcm9tUHJvcCgpO1xyXG5cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGZpbmRMYWJlbEZyb21Qcm9wKCl7XHJcbiAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgIHJldHVybiBvcHRpb25zLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbk5hbWUgPT09IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMob3B0aW9ucykuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb2JqZWN0W3Byb3BlcnR5TmFtZV0gPT09IG9wdGlvbnNbIG9wdGlvbk5hbWUgXTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVPcHRpb24oIGxhYmVsVGV4dCwgaXNPcHRpb24gKXtcclxuICAgIC8vVE9ETzogdHJ1bmNhdGUgbG9uZyBsYWJlbFRleHQsIG1heWJlIHNob3cgZnVsbCB2ZXJzaW9uIHdoZW4gaG92ZXJpbmcuXHJcbiAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZVRleHRMYWJlbChcclxuICAgICAgdGV4dENyZWF0b3IsIGxhYmVsVGV4dCxcclxuICAgICAgLy9jaGVjayB3aWR0aCB2YWx1ZS4uLlxyXG4gICAgICBEUk9QRE9XTl9XSURUSCwgZGVwdGgsXHJcbiAgICAgIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SLFxyXG4gICAgICAwLjg2NlxyXG4gICAgKTtcclxuICAgIGxhYmVsLmJhY2suZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbC5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuXHJcbiAgICBpZiAoaXNPcHRpb24pIG1vZGFsRHJvcGRvd24uaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBlbHNlIGdyb3VwLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBsYWJlbC5iYWNrICk7XHJcbiAgICBsYWJlbEludGVyYWN0aW9uLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMucHVzaCggbGFiZWxJbnRlcmFjdGlvbiApO1xyXG4gICAgb3B0aW9uTGFiZWxzLnB1c2goIGxhYmVsICk7XHJcblxyXG5cclxuICAgIGlmKCBpc09wdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggbGFiZWxUZXh0ICk7XHJcblxyXG4gICAgICAgIGxldCBwcm9wZXJ0eUNoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBvbkNoYW5nZWRDQiAmJiBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgIG9uQ2hhbmdlZENCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggb25DaG9vc2VDQiApe1xyXG4gICAgICAgICAgb25DaG9vc2VDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIGlmKCBzdGF0ZS5vcGVuID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgb3Blbk9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGxhYmVsLmlzT3B0aW9uID0gaXNPcHRpb247XHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjb2xsYXBzZU9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5jbGVhck1vZGFsRWRpdG9yKCk7IC8vc2hvdWxkIHdlIGNoZWNrIGlmIGl0IHdhc24ndCBzZXQgdG8gc29tZXRoaW5nIGVsc2U/P1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3Blbk9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSB0cnVlO1xyXG4gICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKG1vZGFsRHJvcGRvd24pO1xyXG4gICAgLy9yZXR1cm47XHJcbiAgICAvL2xhYmVsLmlzT3B0aW9uIHNlZW1zIG1vc3RseSByZWR1bmRhbnQuXHJcbiAgICAvL2xhYmVscyAmIGJhY2tzIHNob3VsZCBiZSBhZGRlZCB0byBhIGdyb3VwIHRvIGJlIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIFxyXG4gICAgLy9tYWtpbmcgZXZlcnl0aGluZyB2aXNpYmxlIC8gaW52aXNpYmxlIHdpdGggb25lIHByb3BlcnR5XHJcbiAgICAvLyhuYiwgZXZlbiB0aG91Z2ggdGhleSBhcmUgbm93IGluIGEgZ3JvdXAgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgd2Ugc3RpbGwgbmVlZCB0byBzZXQgdmlzaWJsZS4uLlxyXG4gICAgLy9zZWUgY29tbWVudCBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSlcclxuICAgIG9wdGlvbkxhYmVscy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWwgKXtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgbGFiZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgbGFiZWwuYmFjay52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAgYmFzZSBvcHRpb25cclxuICBjb25zdCBzZWxlY3RlZExhYmVsID0gY3JlYXRlT3B0aW9uKCBpbml0aWFsTGFiZWwgfHwgJyAnLCBmYWxzZSApO1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICBjb25zdCBkb3duQXJyb3cgPSBHcmFwaGljLmRvd25BcnJvdygpO1xyXG4gIC8vIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIERST1BET1dOX1dJRFRIIC0gMC4wNCwgMCwgZGVwdGggKiAxLjAxICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gY29uZmlndXJlTGFiZWxQb3NpdGlvbiggbGFiZWwsIGluZGV4ICl7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi55ID0gLURST1BET1dOX01BUkdJTiAtIChpbmRleCVNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTisxKSAqICggRFJPUERPV05fT1BUSU9OX0hFSUdIVCApO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueCArPSBEUk9QRE9XTl9XSURUSCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTik7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcHRpb25Ub0xhYmVsKCBvcHRpb25OYW1lLCBpbmRleCApe1xyXG4gICAgY29uc3Qgb3B0aW9uTGFiZWwgPSBjcmVhdGVPcHRpb24oIG9wdGlvbk5hbWUsIHRydWUgKTtcclxuICAgIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIG9wdGlvbkxhYmVsLCBpbmRleCApO1xyXG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQobW9kYWxEcm9wZG93bik7XHJcbiAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoLi4ub3B0aW9ucy5tYXAob3B0aW9uVG9MYWJlbCkpO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoIC4uLk9iamVjdC5rZXlzKG9wdGlvbnMpLm1hcCggb3B0aW9uVG9MYWJlbCApICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29sbGFwc2VPcHRpb25zKCk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0RST1BET1dOICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcblxyXG4gIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggRFJPUERPV05fV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgRFJPUERPV05fSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUsIERST1BET1dOX0RFUFRILCB0cnVlICk7XHJcbiAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBjb250cm9sbGVySUQsIHNlbGVjdGVkTGFiZWwsIGJvcmRlckJveCApO1xyXG5cclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGludGVyYWN0aW9uLCBpbmRleCApe1xyXG4gICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbkxhYmVsc1sgaW5kZXggXTtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlOyAvL2FzIG9mIHRoaXMgd3JpdGluZywgdGhpcyBpcyBiZWxpZXZlZCB0byBiZSByZWxpYWJsZSwgYnV0IGJld2FyZSBkcmFnb25zLCBmdXR1cmUgcmVhZGVyLlxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLnRpcE9iaikge1xyXG4gICAgICAvLyBpZiAobGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSkge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGdyb3VwLnVzZXJEYXRhLnRpcCk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgc2V0VmlzaWJpbGl0eShwYW5lbCwgZ3JvdXAudXNlckRhdGEudGlwT2JqLCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKTtcclxuICAgIH1cclxuICAgIGlmKCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpIHx8IHN0YXRlLm9wZW4gKXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuICBsZXQgb25DaG9vc2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5vbkNob29zZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaG9vc2VDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGZpbmRMYWJlbEZyb21Qcm9wKCkgKTtcclxuICAgIH1cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbEludGVyYWN0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICBjb25zdCBvYmogPSBncm91cDtcclxuICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgIC8vbmIsIG9iai5zcGFjaW5nIG1heSBiZSB1bmRlZmluZWQsIGJ1dCBzaG91bGQgbm93IGhhdmUgc2Vuc2libGUgZGVmYXVsdC5cclxuICAgIG9iai51c2VyRGF0YS50aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgIC8vLy8tLS0gc2VlIGxhYmVsSW50ZXJhY3Rpb25zWzBdIGFib3ZlIGZvciBoYW5kbGluZyB1cGRhdGUuLi5cclxuICB9XHJcbiAgZ3JvdXAuZ2V0VG9vbFRpcCA9ICgpID0+IGdyb3VwLnVzZXJEYXRhLnRpcDtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlVG9vbFRpcCB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciwgc2V0Qm94RnJvbU9iamVjdCwgc2V0VmlzaWJpbGl0eSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBGT0xERVJfV0lEVEggfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG4vL0lmIHlvdSdyZSBsb29raW5nIGZvciBtYWluIGNyZWF0ZUZvbGRlciBmdW5jdGlvbiwgaXQncyBmdXJ0aGVyIGJlbG93Li4uXHJcblxyXG4vKipcclxuICogTm90IGVudGlyZWx5IHN1cmUgYWJvdXQgc3RhcnRpbmcgdG8gYWRkIHRoaXMga2luZCBvZiBnbG9iYWwgc3RhdGUgbWFuYWFnZW1lbnQgaGVyZS4uLlxyXG4gKiBUaGlzIGlzIGZvciB6LW9yZGVyIGluIDJkIG9ydGhvZ3JhcGhpYyBtb2RlLCBhbmQgbWF5YmUgc29tZSBvdGhlciB0aGluZ3Mgb25lIGRheS5cclxuICovXHJcbmNvbnN0IHRvcEZvbGRlclN0YWNrID0gW107XHJcblxyXG5jb25zdCBzY3JhdGNoRm9sZGVyQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaENhbUJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hTaXplID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpIHtcclxuICBjb25zdCBjYW0gPSB0b3BGb2xkZXJTdGFja1swXS51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICBpZiAoIWNhbSB8fCB0b3BGb2xkZXJTdGFjay5sZW5ndGggPD0gMSkgcmV0dXJuO1xyXG4gIC8vY2FtQm94U2V0dXAoY2FtKTtcclxuICBjb25zdCB0ZnMgPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoeCA9PiB4LnZpc2libGUpO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRmcy5sZW5ndGg7XHJcbiAgY29uc3QgenMgPSB0ZnMubWFwKGYgPT4gZi5wb3NpdGlvbi56KS5zb3J0KChhLGIpPT5hLWIpO1xyXG4gIHpzWy0xXSA9IC05OTk5OyAvLyBJIHN1cHBvc2UgdGhpcyBpcyB0byBkZWFsIHdpdGggYWNjZXNzaW5nIHpzW2ktMV0gYmVsb3cgwq9cXF8o44OEKV8vwq9cclxuICB6cy5mb3JFYWNoKCAoeixpKSA9PiB6c1tpXSA9IE1hdGgubWF4KHpzW2ldLCB6c1tpLTFdICsgMTAqTGF5b3V0LlBBTkVMX0RFUFRIKSk7IC8vIGluIGNhc2Ugb2YgZXF1YWxzXHJcbiAgXHJcbiAgdGZzLmZvckVhY2goKGYsIGkpID0+IHtcclxuICAgIC8vbGV0IHogPSAtMC45KmZhciArIGkqMTAqTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG4gICAgY29uc3QgeiA9IHpzW2ldO1xyXG4gICAgaWYgKHogIT09IGYucG9zaXRpb24ueikge1xyXG4gICAgICBmLnBvc2l0aW9uLnogPSB6O1xyXG4gICAgICBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICBmLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKHRmc1tuLTFdLnBvc2l0aW9uLnogPj0gbmVhciAtIExheW91dC5QQU5FTF9ERVBUSCkge1xyXG4gICAgY29uc29sZS5sb2coXCJHVUlWUiBXYXJuaW5nOiBsaWtlbHkgcHJvYmxlbSB3aXRoIHotb3JkZXIgaW4gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0XCIpO1xyXG4gIH1cclxuICAvL2NvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lICsgJ1xcdDogJyArIGYucG9zaXRpb24ueikuam9pbignXFxuJyl9XWApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYW1Cb3hTZXR1cChjYW0pIHtcclxuICBpZiAoIWNhbS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkgcmV0dXJuO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRvcEZvbGRlclN0YWNrLmxlbmd0aDtcclxuICBjb25zdCBsID0gY2FtLmxlZnQsIHIgPSBjYW0ucmlnaHQsIHQgPSBjYW0udG9wLCBiID0gY2FtLmJvdHRvbTtcclxuICBjb25zdCB6ID0gY2FtLnBvc2l0aW9uLno7IC8vbm90IHN0cmljdGx5IHJpZ2h0Li4uXHJcbiAgc2NyYXRjaENhbUJveC5taW4uc2V0KGwsIGIsIC1mYXIgKyB6KTtcclxuICBzY3JhdGNoQ2FtQm94Lm1heC5zZXQociwgdCwgLW5lYXIgKyB6KTtcclxuICByZXR1cm4gc2NyYXRjaENhbUJveDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRm9sZGVyKHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBuYW1lLFxyXG4gIGd1aUFkZCxcclxuICBndWlSZW1vdmUsXHJcbiAgYWRkQ29udHJvbGxlckZ1bmNzLFxyXG4gIGdsb2JhbENvbnRyb2xsZXJzXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCB3aWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgY29uc3QgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEg7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgY29sbGFwc2VkOiBmYWxzZSxcclxuICAgIHByZXZpb3VzUGFyZW50OiB1bmRlZmluZWRcclxuICB9O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImZvbGRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke25hbWV9XWA7XHJcblxyXG4gIGNvbnN0IGNvbGxhcHNlR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5hZGQoIGNvbGxhcHNlR3JvdXAgKTtcclxuXHJcbiAgdmFyIGlzQWNjb3JkaW9uID0gZmFsc2U7XHJcbiAgLyoqIFdoZW4gdHJ1ZSwgd2lsbCBrZWVwIG9ubHkgb25lIGNoaWxkIGZvbGRlciBvZiB0aGlzIGZvbGRlciBvcGVuIGF0IGEgdGltZS5cclxuICAgKiBTaWJsaW5ncyBhdXRvbWF0aWNhbGx5IGNsb3NlLlxyXG4gICAqL1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdhY2NvcmRpb24nLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzQWNjb3JkaW9uO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKCBuZXdWYWx1ZSAmJiAhaXNBY2NvcmRpb24gKSBncm91cC5ndWlDaGlsZHJlbi5maWx0ZXIoIGM9PmMuaXNGb2xkZXIgKS5tYXAoIGM9PmMuY2xvc2UoKSApO1xyXG4gICAgICBpc0FjY29yZGlvbiA9IG5ld1ZhbHVlO1xyXG4gICAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIC8vZmxhZyB0aGUgbmVlZCBmb3IgcGVyZm9ybWluZyBsYXlvdXQgb2YgdGhlIGZvbGRlciBoaWVyYXJjaHkgaW4gd2hpY2ggdGhpcyBpcyBjb250YWluZWQuXHJcbiAgZ3JvdXAucmVxdWVzdExheW91dCA9ICgpID0+IHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICh0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcykge1xyXG4gICAgICBjb25zb2xlLmxvZyhgcmVxdWVzdGVkIGxheW91dCBvZiBmb2xkZXIgJHtncm91cC5mb2xkZXJOYW1lfSB3aGlsZSBsYXlvdXQgYWxyZWFkeSBpbiBwcm9ncmVzcy4uLmApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vdG9wRm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL3Nob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIGluZGV4LmpzIHVwZGF0ZSg/KSBmb3IgZWFjaCB0b3BGb2xkZXIsIHRoZW4gZnJvbSB3aXRoaW4gcGVyZm9ybUxheW91dCgpIGZvciBlYWNoIGNoaWxkIGZvbGRlclxyXG4gIGdyb3VwLnBlcmZvcm1MYXlvdXQgPSBwZXJmb3JtTGF5b3V0O1xyXG5cclxuICBjb25zdCBzdHJhaWdodFJvdGF0aW9uID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcclxuICAvL3Byb3ZpZGUgYXJndW1lbnRzIGZvciBob3cgY29uc3RyYWluZWQgdG8gYmUsIGFuZCByZS11c2Ugc2FtZSBmdW5jdGlvbiBib3RoIG9uIGRldGFjaCBhbmQgZWxzZXdoZXJlP1xyXG4gIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uID0gZnVuY3Rpb24odGhyZXNoPTAuMDEpIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzO1xyXG4gICAgaWYgKCFmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSByZXR1cm47XHJcbiAgICAvL2Fsd2F5cyBmb3JjZSByb3RhdGlvbiBzdHJhaWdodCBmb3J3YXJkLi4uXHJcbiAgICBmLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oc3RyYWlnaHRSb3RhdGlvbik7XHJcblxyXG4gICAgLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbiAgICAvL21heWJlIEkgY291bGQgdXNlIGEgQm94MiBhbnl3YXkgc2luY2UgM2QgbWlnaHQganVzdCBjb25mdXNlIHRoaW5ncy5cclxuICAgIGNvbnN0IGJveCA9IHNldEJveEZyb21PYmplY3Qoc2NyYXRjaEZvbGRlckJveCwgZik7XHJcbiAgICBjb25zdCBib3hXID0gYm94Lm1heC54IC0gYm94Lm1pbi54LCBib3hIID0gYm94Lm1heC55LWJveC5tYXgueTtcclxuICAgIFxyXG4gICAgY29uc3QgY2FtID0gZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICAgIGNvbnN0IGNhbUJveCA9IGNhbUJveFNldHVwKGNhbSk7IC8vYml0IHdhc3RlZnVsIHRvIGNhbGwgdGhpcyBoZXJlLCBidXQgaW5zaWduaWZpY2FudC5cclxuICAgIC8vcmVhbGx5LCBJIHdhbnQgdG8ga25vdyBpZiBpdCdzICdtb3N0bHknIGludmlzaWJsZS5cclxuICAgIC8vVXNpbmcgdHdvIGJveGVzLCByYXRoZXIgdGhhbiBmcnVzdHVtLnNldEZyb21NYXRyaXgoIG1hdC5tdWx0aXBseU1hdHJpY2VzKCBjYW0ucHJvamVjdGlvbk1hdHJpeCwgY2FtLm1hdHJpeFdvcmxkSW52ZXJzZSApICk7XHJcbiAgICAvLyhmcnVzdHVtIGlzIHVubmVjZXNzYXJ5ICpjb3VnaCppZiB3ZSBhc3N1bWUgb3J0aG9ncmFwaGljIHBlcnNwZWN0aXZlLCBubyBjYW1lcmEgdHJhbnNmb3JtICYgYXJlIGdlbmVyYWxseSBsYXggYWJvdXQgeiopXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSBib3guaW50ZXJzZWN0KGNhbUJveCk7IC8vY2FyZWZ1bCBvZiBvcmRlcjsgaW50ZXJzZWN0KCkgbXV0YXRlc1xyXG4gICAgLy8oWFhYOiBzdHJpY3RseSBzcGVha2luZywgaWRlYWxseSBJIHdvdWxkIHRha2UgY2FtZXJhIG1hdHJpeFdvcmxkIGludG8gYWNjb3VudCBpZiBJIHdhbnQgdG8gYmUgcHJvcGVyKVxyXG4gICAgLy8obWlnaHQganVzdCBtYWtlIGxvZyBhIHdhcm5pbmcgaWYgaXQncyBzZXQgaG93IEkgZG9uJ3QgZXhwZWN0IGl0LCBidXQgcHJlZmVyIG5vdCB0byBsZWF2ZSB0cmFwcy4pXHJcbiAgICBcclxuICAgIC8vbG9vayBhdCBkaW1lbnNpb25zIG9mIGludGVyc2VjdGlvbiBhbmQgZm9yY2UgaW53YXJkcyBpZiBuZWNlc3NhcnkuLi5cclxuICAgIGNvbnN0IGludGVyc2VjdGlvblNpemUgPSBpbnRlcnNlY3Rpb24uZ2V0U2l6ZShzY3JhdGNoU2l6ZSk7XHJcbiAgICBjb25zdCBzY3JlZW5XID0gY2FtLnJpZ2h0IC0gY2FtLmxlZnQsIHNjcmVlbkggPSBjYW0udG9wIC0gY2FtLmJvdHRvbTtcclxuICAgIC8vd29yayBpbiB1bml0cyBhcyBmcmFjdGlvbiBvZiBib3ggd2lkdGggKGFsdGhvdWdoIHRoYXQncyBub3QgYSBncmVhdCBpZGVhIHdpdGggbXVsdGktY29sdW1uIGZvbGRlcnMpXHJcbiAgICBpbnRlcnNlY3Rpb25TaXplLnggLz0gYm94VzsgaW50ZXJzZWN0aW9uU2l6ZS55IC89IGJveFc7XHJcbiAgICBsZXQgbmVlZHNVcGRhdGUgPSBmYWxzZTtcclxuICAgIC8vY29uc29sZS5sb2coYCR7Zi5mb2xkZXJOYW1lfTogJHtKU09OLnN0cmluZ2lmeShpbnRlcnNlY3Rpb25TaXplKX0sIHRocmVzaDogJHt0aHJlc2h9YCk7XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS54IDwgdGhyZXNoKSB7IC8vVE9ETzogcGFyYW1hdGVyaXNlIC8gbm9uLW1hZ2ljLW51bWJlclxyXG4gICAgICAvL1RPRE8gd29yayBvdXQgd2hpY2ggc2lkZSB3ZSdyZSBvbiwgbW92ZSBieSBvYmplY3Qgd2lkdGguLi5cclxuICAgICAgZi5wb3NpdGlvbi54ID0gY2FtLmxlZnQgKyBzY3JlZW5XLzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnkgPCB0aHJlc2gpIHtcclxuICAgICAgZi5wb3NpdGlvbi55ID0gY2FtLmJvdHRvbSArIHNjcmVlbkgvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKG5lZWRzVXBkYXRlKSBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaXNDb2xsYXBzZWQgPSAoKSA9PiB7IHJldHVybiBzdGF0ZS5jb2xsYXBzZWQgfVxyXG4gIFxyXG4gIC8vdXNlZnVsIHRvIGhhdmUgYWNjZXNzIHRvIHRoaXMgYXMgd2VsbC4gVXNpbmcgaW4gcmVtb3ZlIGltcGxlbWVudGF0aW9uXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnZ3VpQ2hpbGRyZW4nLCB7XHJcbiAgICAvL3BlcmhhcHMgbW9kYWxFZGl0b3Igc2hvdWxkIGFsc28gY291bnQgYXMgYSBtZW1iZXIgb2YgdGhpcy4uLlxyXG4gICAgLy9jdXJyZW50bHkgY2FuJ3Qgc2VlIGFueXRoaW5nIGluIGltcGxlbWVudGF0aW9uIHRoYXQgd291bGQgcmVxdWlyZSB0aGF0XHJcbiAgICAvLy0tIGFkZGluZyBoZWFkZXJJdGVtcyB0aG91Z2gsIHNvIHRoZXknbGwgZ2V0IHBpY2tlZCB1cCBieSByZW1vdmUoKVxyXG4gICAgLy8gLSBtYXliZSBzYW1lIHNob3VsZCBhcHBseSB0byBtb2RhbEVkaXRvclxyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBbIC4uLmNvbGxhcHNlR3JvdXAuY2hpbGRyZW4sIC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIF0gfVxyXG4gIH0pO1xyXG4gIC8vIHJldHVybnMgdHJ1ZSBpZiBhbGwgb2YgdGhlIHN1cHBsaWVkIGFyZ3MgYXJlIG1lbWJlcnMgb2YgdGhpcyBmb2xkZXJcclxuICBncm91cC5oYXNDaGlsZCA9IGZ1bmN0aW9uICggLi4uYXJncyApe1xyXG4gICAgcmV0dXJuICFhcmdzLmluY2x1ZGVzKChvYmopID0+IHsgcmV0dXJuIGdyb3VwLmd1aUNoaWxkcmVuLmluZGV4T2Yob2JqKSA9PT0gLTF9KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmZvbGRlck5hbWUgPSBuYW1lOyAvL2ZvciBkZWJ1Z2dpbmdcclxuICBcclxuICAvLyAgWWVhaC4gR3Jvc3MuXHJcbiAgY29uc3QgYWRkT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkO1xyXG4gIC8vYXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyB0aGlzIHRvIGJlaGF2ZSBsaWtlIGEgcmVndWxhciBUSFJFRS5Hcm91cCwgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBvZiByZW1vdmUgc2hvdWxkbid0IGh1cnRcclxuICBjb25zdCByZW1vdmVPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmU7IFxyXG5cclxuICBmdW5jdGlvbiBhZGRJbXBsKCBvICl7XHJcbiAgICAvLyBJIGNvdWxkIGNoYW5nZSB0aGlzIGZ1bmN0aW9uIGFzIHBhcnQgb2YgYSByZWZhY3RvciB0byBwbGFjZSBldmVyeXRoaW5nIGF0IHRvcEZvbGRlciBsZXZlbC4uLlxyXG4gICAgLy8gaXMgdGhhdCBhIGdvb2QgaWRlYSwgb3IgYSBiYWQgaWRlYT9cclxuICAgIGFkZE9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHJlbW92ZUltcGwoIG8gKXtcclxuICAgIHJlbW92ZU9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG5cclxuICAvL2FkZEltcGwoIGNvbGxhcHNlR3JvdXAgKTsgLy9yZWR1bmRhbnQuXHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgYWRkSW1wbCggcGFuZWwgKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBuYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAxLjU7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsICk7XHJcblxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IExheW91dC5jcmVhdGVEb3duQXJyb3coKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCAweGZmZmZmZiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIDAuMDUsIDAsIGRlcHRoICAqIDEuMDEgKTtcclxuICBwYW5lbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuICBjb25zdCBncmFiYmVyID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9HUkFCX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBncmFiYmVyLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODY7IC8vWFhYOiBtYWdpYyBudW1iZXJcclxuICBncmFiYmVyLm5hbWUgPSAnZ3JhYmJlcic7XHJcbiAgYWRkSW1wbCggZ3JhYmJlciApO1xyXG5cclxuICBjb25zdCBncmFiQmFyID0gR3JhcGhpYy5ncmFiQmFyKCk7XHJcbiAgZ3JhYkJhci5wb3NpdGlvbi5zZXQoIHdpZHRoICogMC41LCAwLCBkZXB0aCAqIDEuMDAxICk7XHJcbiAgZ3JhYmJlci5hZGQoIGdyYWJCYXIgKTtcclxuICBncm91cC5pc0ZvbGRlciA9IHRydWU7XHJcbiAgZ3JvdXAuaGlkZUdyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gZmFsc2UgfTtcclxuICBncm91cC5zaG93R3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSB0cnVlIH07XHJcbiAgZ3JvdXAuaGlkZUhlYWRlciA9IGZ1bmN0aW9uKCkgeyBcclxuICAgIGdyb3VwLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAvL2Rlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgfTtcclxuICBncm91cC5zaG93SGVhZGVyID0gKCkgPT4ge1xyXG4gICAgLy9ncmFiYmVyLnZpc2libGUgPSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL1RPRE86IGludGVyZmFjZSBmb3IgYWRkaW5nIHRoaW5ncyB0byB0aGlzLi4uIE5PVCAnc2hvd0luRm9sZGVySGVhZGVyJyBtZXRob2QgLyBwcm9wZXJ0eSBvbiBsaW5lYXIgaXRlbXMuLi5cclxuICBjb25zdCBoZWFkZXJJdGVtcyA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHBhbmVsLmFkZChoZWFkZXJJdGVtcyk7XHJcbiAgLy90aGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byBtYWtlIG9iaiBiZWhhdmUgYXMgY29udHJvbGxlciBsYXllZCBvdXQgaW4gaGVhZGVySXRlbXMsXHJcbiAgLy9iYXNlZCBvbiBzb21lIGFzc3VtcHRpb25zIGFib3V0IG9iaiB0aGF0IG1heSBiZSB0cnVlIGF0IHRpbWUgb2Ygd3JpdGluZy4uLlxyXG4gIC8vYnV0IGFyZSBwZW5kaW5nIG1vcmUgcmlnb3JvdXMgc3BlY2lmaWNhdGlvbiAvIHJlZmFjdG9yaW5nIGV0Yy5cclxuICBncm91cC5hZGRIZWFkZXJJdGVtID0gZnVuY3Rpb24ob2JqKXtcclxuICAgIGhlYWRlckl0ZW1zLmFkZChvYmopO1xyXG4gICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgb2JqLmlzSGVhZGVyT2JqZWN0ID0gdHJ1ZTtcclxuXHJcbiAgICAvL2Fsc28gbmVlZCB0byBhZGQgdG8gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3QgZXRjLiBOQjo6IG1ha2Ugc3VyZSB0aGF0IHRoZXkgd2lsbCBnZXQgcmVtb3ZlZCBhcyB3ZWxsXHJcbiAgICAvLy0tLSB0aGlzIGdlbmVyaWMgaW50ZXJhY3Rpb24udXBkYXRlIGRvZXNuJ3QgbWFrZSBsaXN0ZW4oKSB3b3JrIHByb3Blcmx5LlxyXG4gICAgaWYgKCFvYmoudXBkYXRlQ29udHJvbCkgb2JqLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4gb2JqLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgb2JqLmhpdHNjYW4gPSBbIG9iaiBdOyAvL2hhY2t5IGhhY2t5XHJcbiAgICBnbG9iYWxDb250cm9sbGVycy5wdXNoKG9iaik7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogMHg4ODg4ODgsIHRyYW5zcGFyZW50OiB0cnVlfSk7XHJcbiAgY29uc3QgaCA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44O1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvblJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIGgsIGgsIExheW91dC5CVVRUT05fREVQVEgqMiApO1xyXG4gIC8vc29tZXdoYXQgYmFja3dhcmRzIHdheSBvZiBnZXR0aW5nIHRleHR1cmVzLi4uIFRPRE8gbWF5YmUgY2hhbmdlIChhbG9uZyB3aXRoIG90aGVyIHN0eWxlIGNvbnNpc3RlbmN5IHR5cGUgc3R1ZmYpXHJcbiAgY29uc3QgZG9ja1RleHR1cmUgPSBHcmFwaGljLmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgY29uc3QgdW5kb2NrVGV4dHVyZSA9IEdyYXBoaWMudW5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uID0gbmV3IFRIUkVFLk1lc2goICBkZXRhY2hCdXR0b25SZWN0LCBkZXRhY2hCdXR0b25NYXRlcmlhbCApO1xyXG4gIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gZmFsc2U7XHJcbiAgZGV0YWNoQnV0dG9uLnBvc2l0aW9uLnggPSBMYXlvdXQuRk9MREVSX1dJRFRIIC0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihkZXRhY2hCdXR0b24pO1xyXG4gIGRldGFjaEJ1dHRvbi5pbnRlcmFjdGlvbiA9IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uO1xyXG4gIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHtcclxuICAgICAgZ3JvdXAucmVhdHRhY2goKTtcclxuICAgIH0gZWxzZSBncm91cC5kZXRhY2goKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuICAvL2hlYWRlckl0ZW1zLmFkZChkZXRhY2hCdXR0b24pO1xyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0oZGV0YWNoQnV0dG9uKTtcclxuXHJcbiAgbGV0IGlzRGV0YWNoYWJsZSA9IGZhbHNlO1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdkZXRhY2hhYmxlJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0RldGFjaGFibGU7XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAobmV3VmFsdWUgPT09IGlzRGV0YWNoYWJsZSkgcmV0dXJuO1xyXG4gICAgICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgICBpc0RldGFjaGFibGUgPSBuZXdWYWx1ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGdyb3VwLmFkZCA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBjb25zdCBuZXdDb250cm9sbGVyID0gZ3VpQWRkKCAuLi5hcmdzICk7XHJcblxyXG4gICAgaWYoIG5ld0NvbnRyb2xsZXIgKXtcclxuICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggbmV3Q29udHJvbGxlciApO1xyXG4gICAgICByZXR1cm4gbmV3Q29udHJvbGxlcjtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgU29tZSBjb250cm9sbGVycyBtYXkgYnJpbmcgdXAgc3ViLUdVSXMgd2hpY2ggaGF2ZSB0aGUgcG90ZW50aWFsXHJcbiAgICB0byBvdmVybGFwIC8gY2xhc2guICBUaGlzIGVuc3VyZXMgb25seSBvbmUgaXMgcHJlc2VudCBhdCBhIHRpbWUuXHJcbiAgKi9cclxuICBncm91cC5zZXRNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKGUpe1xyXG4gICAgLy9UaGlzIGNvdWxkIGdvIHdyb25nIGlmIGZvbGRlciBoaWVyYXJjaHkgY2hhbmdlcyBzaWduaWZpY2FudGx5LlxyXG4gICAgLy9TaG91bGQgYmUgZ29vZCBlbm91Z2ggZm9yIHJvY2snbidyb2xsIChmYW1vdXMgbGFzdCB3b3JkcykuXHJcbiAgICAvL0kgY291bGQgbWFrZSBpdCBzbyB0aGF0IG9ubHkgb25lIG9mIHRoZXNlIHRoaW5ncyB3YXMgZXZlciB2aXNpYmxlXHJcbiAgICAvL2Fjcm9zcyB0aGUgZW50aXJlIHN5c3RlbS4gIFRoYXQgc2hvdWxkIGJlIGVhc2llciB0byBtYWtlIHJvYnVzdCwgYW55d2F5Li4uXHJcbiAgICAvL2FuZCBzYXZlcyBoZWFkYWNoZXMgZG93biB0aGUgbGluZS5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBlO1xyXG4gICAgaWYgKCFlKSByZXR1cm47XHJcbiAgICBlLnZpc2libGUgPSB0cnVlO1xyXG4gICAgaWYgKGUucGVyZm9ybUxheW91dCkgZS5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICBmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IHRydWU7XHJcbiAgICAvL2FkZCBhIGZsYWcgdG8gYWxsIGNoaWxkcmVuIHJlY3Vyc2l2ZWx5IHNvIHRoYXQgaW50ZXJhY3Rpb24gc3lzdGVtIGNhbiBpZGVudGlmeSB0aGVtIGFzIGJlbG9uZ2luZyB0byBhIG1vZGFsIGVkaXRvclxyXG4gICAgLy9UT0RPOiBza2lwIGlmIGFscmVhZHkgZG9uZS4uLlxyXG4gICAgZnVuY3Rpb24gZGVjb3JhdGVDaGlsZHJlbihwYXJlbnQpIHtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgYy51c2VyRGF0YS5wYXJ0T2ZNb2RhbCA9IGU7XHJcbiAgICAgICAgZGVjb3JhdGVDaGlsZHJlbihjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkZWNvcmF0ZUNoaWxkcmVuKGUpO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIGN1cnJlbnQgbW9kYWwgZWRpdG9yIGZyb20gdGhpcyBmb2xkZXJcclxuICAgKiAqKmJ1dCBub3QgaWYgaXQgd2FzIGFkZGVkIGR1cmluZyB0aGUgY3VycmVudCBjb250cm9sbGVyIHVwZGF0ZSxcclxuICAgKiBhcyBpbmRpY2F0ZWQgYnkgYSBmbGFnIHNldCBpbiBzZXRNb2RhbENvbnRyb2xsZXIgYW5kIHJlc2V0IGluIGluZGV4LmpzIHVwZGF0ZSoqXHJcbiAgICovXHJcbiAgZ3JvdXAuY2xlYXJNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKCFmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAvL2ZvbGRlci5zZXRNb2RhbEVkaXRvcihudWxsKTtcclxuICAgICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikge1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG5cclxuICAvKiBcclxuICBSZW1vdmVzIHRoZSBnaXZlbiBjb250cm9sbGVycyBmcm9tIHRoZSBHVUkuICA+Pj5PbmNlIHJlbW92ZWQsIHRoZSBjb250cm9sbGVycyB3aWxsIGVmZmVjdGl2ZWx5IGJlIGludmFsaWQgZm9yIHVzZTw8PFxyXG4gID4+PiBzbyBkaXNwb3NlIG9mIHRoZW0gYXMgd2VsbD8gTmVlZCB0byBiZSBjYXJlZnVsIGFib3V0IHRleHR1cmVzIC8gYW55dGhpbmcgc2hhcmVkLi4uIDw8PFxyXG4gIGFzIHRoZXkgd2lsbCBhbHNvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGRhdC5HVUlWUiBjb250cm9sbGVycy4gIFVzZSAnZGV0YWNoJyBpbnN0ZWFkIGlmIGl0IGlzXHJcbiAgZGVzaXJlZCB0byByZXVzZSBHVUkgZWxlbWVudHMgZWxzZXdoZXJlLlxyXG5cclxuICBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbnZhbGlkLCBpdCB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoaXMgYmVmb3JlIG1ha2luZyBhbnkgY2hhbmdlcywgXHJcbiAgYWJvcnRpbmcgdGhlIHByb2Nlc3MgYW5kIHJldHVybmluZyBmYWxzZSBmcm9tIHRoaXMgbWV0aG9kLlxyXG5cclxuICBOb3RlOiBhcyB3aXRoIGFkZCwgdGhpcyBvdmVyd3JpdGVzIGFuIGV4aXN0aW5nIHByb3BlcnR5IG9mIFRIUkVFLkdyb3VwLlxyXG4gIEFzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgZm9sZGVycyB0byBiZWhhdmUgbGlrZSByZWd1bGFyIFRIUkVFLkdyb3VwcywgdGhhdCBzaG91bGRuJ3QgbWF0dGVyLlxyXG4gICovXHJcbiAgZ3JvdXAucmVtb3ZlID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIC8vZ3VpUmVtb3ZlIGlzIHBhc3NlZCBpbiBmcm9tIGluZGV4LmpzIGFuZCBpcyByZXNwb25zaWJsZSBmb3Igc2FuaXR5IGNoZWNraW5nICYgcmVtb3ZpbmcgZnJvbSBnbG9iYWwgY29udHJvbGxlcnMgbGlzdFxyXG4gICAgY29uc3Qgb2sgPSBndWlSZW1vdmUoIC4uLmFyZ3MgKTsgLy8gYW55IGludmFsaWQgYXJndW1lbnRzIHNob3VsZCBjYXVzZSB0aGlzIHRvIHJldHVybiBmYWxzZSB3aXRoIG5vIHNpZGUtZWZmZWN0c1xyXG4gICAgaWYgKCFvaykgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGNvbnNvbGUuYXNzZXJ0KGdyb3VwLmhhc0NoaWxkKG9iaiksIFwiaW50ZXJuYWwgcHJvYmxlbSB3aXRoIGhvdXNla2VlcGluZyBsb2dpYyBvZiBkYXQuR1VJVlIgZm9sZGVyIG5vdCBjYXVnaHQgYnkgc2FuaXR5IGNoZWNrXCIpO1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgb2JqLnJlbW92ZSggLi4ub2JqLmd1aUNoaWxkcmVuICk7XHJcbiAgICAgIH1cclxuICAgICAgY29sbGFwc2VHcm91cC5yZW1vdmUob2JqKTtcclxuICAgIH0pO1xyXG4gICAgLy9UT0RPOiBkZWZlciBhY3R1YWwgbGF5b3V0IHBlcmZvcm1hbmNlOyBzZXQgYSBmbGFnIGFuZCBtYWtlIHN1cmUgaXQgZ2V0cyBkb25lIGJlZm9yZSBhbnkgcmVuZGVyaW5nIG9yIGhpdC10ZXN0aW5nIGhhcHBlbnMuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL3JhdGhlciB0aGFuIG1ldGhvZCwgZGV0YWNoZWRQYXJlbnQgYmUgYSBwcm9wZXJ0eSB0aGF0IGRvZXMgdGhpcyBzdHVmZiBpbiBzZXR0ZXIuLi5cclxuICAvL2FueXdheSwgYm90aCBhcmUgcmVhbGx5IG1lYW50IGZvciBpbnRlcm5hbCB1c2UsIGFzIGhpbnRlZCBieSBfIGluIG5hbWUuXHJcbiAgZ3JvdXAuX3NldERldGFjaGVkRnJvbSA9IChwYXJlbnQpID0+IHtcclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50ID0gcGFyZW50O1xyXG4gICAgaWYgKHBhcmVudCA9PT0gbnVsbCkge1xyXG4gICAgICBkZXRhY2hCdXR0b24ubWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IGRvY2tUZXh0dXJlO1xyXG4gICAgICBncm91cC5zaG93SGVhZGVyKCk7XHJcbiAgICAgIGdyb3VwLnNob3dHcmFiYmVyKCk7XHJcbiAgICAgIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBEZXRhY2ggYSBjaGlsZCBmb2xkZXIgZnJvbSB0aGlzIGZvbGRlciBoaWVyYXJjaHksIHN1Y2ggdGhhdCBpdCBjYW4gYmUgdXNlZCBlbHNld2hlcmUgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqIFxyXG4gICAqICh3aWxsIG5vdCBiZSB2aXNpYmxlIHVudGlsIGV4cGxpY2l0bHkgYWRkZWQgZWxzZXdoZXJlOyBcclxuICAgKiBjYWxsaW5nIGRldGFjaCgpIGluc3RlYWQgd2lsbCBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGFuZCBpcyBtb3JlIGludGVuZGVkIGZvciB1c2UgaW4gYXBwbGljYXRpb24gY29kZVxyXG4gICAqIHdoaWxlIHRoaXMgbWV0aG9kIGlzIG1vcmUgb2YgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLilcclxuICAgKi9cclxuICBncm91cC5kZXRhY2hDaGlsZCA9IChjaGlsZCkgPT4ge1xyXG4gICAgaWYgKCFjaGlsZC5pc0ZvbGRlciB8fCBjaGlsZC5mb2xkZXIgIT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjaGlsZC5fc2V0RGV0YWNoZWRGcm9tKGdyb3VwKTtcclxuICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKGNoaWxkKTtcclxuICAgIC8vVEhSRUUuT2JqZWN0M0QucHJvdG90eXBlLnJlbW92ZS5jYWxsKGdyb3VwLCBjaGlsZCk7XHJcbiAgICByZW1vdmVJbXBsKGNoaWxkKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDsgLy9vciBjaGlsZD9cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgRGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gaXRzIHBhcmVudCwgYW5kIHJlYXR0YWNoIHRvIHNjZW5lZ3JhcGggYXMgYSBzaWJsaW5nIG9mIHRoZSAndG9wIGxldmVsJyBmb2xkZXIgaW5cclxuICAgIHRoZSBoaWVyYXJjaHkgdGhpcyBwcmV2aW91c2x5IHdhcyBhIG1lbWJlciBvZi5cclxuICAqL1xyXG4gIGdyb3VwLmRldGFjaCA9ICgpID0+IHtcclxuICAgIGlmIChncm91cC5mb2xkZXIgPT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL2F1dG9tYXRpY2FsbHkgYWRkIHRvIFRIUkVFIHBhcmVudCBvZiB0b3AgbGV2ZWwgZm9sZGVyIGFuZCB0cnkgdG8gc2V0IGFwcHJvcHJpYXRlIHNjYWxlIC8gdHJhbnNmb3JtLi4uXHJcbiAgICAvL2lmIHRoYXQgZm9sZGVyIGJlaW5nTW92ZWQgYXQgdGhlIHByZXNlbnQgdGltZSwgdGhlbiBpdCB3aWxsIGhhdmUgYW4gb2xkUGFyZW50IHRvIHdoaWNoIHdlIHNob3VsZCBhdHRhY2ggaW5zdGVhZC5cclxuICAgIC8vLi4uYWx0aG91Z2ggaXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0aGUgZGV0YWNoZWQgZm9sZGVyIHRvIG1vdmUgd2l0aCB0aGUgY29udHJvbGxlciB1bnRpbCBidXR0b24gaXMgcmVsZWFzZWQuLi5cclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGdyb3VwLmZvbGRlci5kZXRhY2hDaGlsZChncm91cCk7XHJcbiAgICBcclxuICAgIC8vYWRkaW5nIHRvIHRvcEZvbGRlci5wYXJlbnQgSUYgQVZBSUxBQkxFLCBub3Qgb2xkUGFyZW50LCBwZW5kaW5nIHdvcmtpbmcgb3V0IHRyYW5zZm9ybSBsYXRlciBpZiBiZWluZ01vdmVkLi4uXHJcbiAgICBjb25zdCBwYXIgPSB0b3BGb2xkZXIucGFyZW50IHx8IGdyb3VwLnBhcmVudDsgXHJcbiAgICBpZiAoIXBhcikgcmV0dXJuOyAvL1NKUFQgY2hhbmdlIGZyb20gQ1N5bnRoLCBub3QgY2FyZWZ1bGx5IHJldmlld2VkIGJ1dCBwcm9iYWJseSByaWdodC5cclxuICAgIHBhci5hZGQoZ3JvdXApO1xyXG4gICAgY29uc3QgbSA9IHRvcEZvbGRlci5tYXRyaXguY2xvbmUoKTtcclxuXHJcbiAgICBncm91cC5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBtLnNldFBvc2l0aW9uKG5ldyBUSFJFRS5WZWN0b3IzKCkpO1xyXG4gICAgY29uc3QgdCA9IG5ldyBUSFJFRS5WZWN0b3IzKExheW91dC5GT0xERVJfV0lEVEgsIDAsIDApLmFwcGx5TWF0cml4NChtKTtcclxuICAgIGdyb3VwLnBvc2l0aW9uLmFkZCh0KTtcclxuICAgIFxyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vZGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gdG9wRm9sZGVyLnBhcmVudCB0aGVuIGF0dGFjaCB0byB0b3BGb2xkZXIub2xkUGFyZW50IHdoaWxlIG1haW50YWluaW5nIG1hdHJpeFdvcmxkXHJcbiAgICAgIC8vLi4uYWN0dWFsbHksIChtYXliZSkgd2Ugd2FudCB0byBkbyB0aGlzIHNjZW5lU2hpZnQgYnVzaW5lc3Mgd2hlbiBiZWluZ01vdmVkIGZpbmlzaGVzLi4uXHJcbiAgICAgIC8vIHB1dCB0aGluZ3MgaW50byBzZW1pRGV0YWNoZWQsIHNvIHRoYXQgd2hlbiBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgdGhleSBjYW4gYmUgc2hpZnRlZC5cclxuICAgICAgLy9vciBtYXliZSB3aGF0IHdlIHJlYWxseSB3YW50IGlzIHRvIGhhdmUgYW4gb3B0aW9uIHRvICdwaW4nIHBhbmVscyB0b2dldGhlciBhbmQgdW5waW4gdGhlbSwgcmF0aGVyIHRoYW4gYXNzdW1lXHJcbiAgICAgIC8vYXR0YWNobWVudCBjaGFuZ2VzIHdoZW4gYnV0dG9uIHJlbGVhc2VkLiAgRm9yIG5vdywgdGhpcyBpcyBub3QgcXVpdGUgd29ya2luZyByaWdodCwgc28uLi5cclxuICAgICAgY29uc3QgZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vd2UgY291bGQganVzdCBkZXRhY2gsIGxlYXZpbmcgdGhlIG9iamVjdCBhcyBkaXJlY3QgZGVzY2VuZGVudCBvZiBzY2VuZSwgYnV0IHRoZXJlIG1heSBiZSByZWFsIHJlYXNvbnMgdG8gc2l0dWF0ZVxyXG4gICAgICAvL3RoZSBHVUkgd2l0aGluIGhpZXJhcmNoeSBzb21laG93IChsaWtlIGFzIGNoaWxkcmVuIG9mIGEgY29udHJvbGxlcilcclxuICAgICAgXHJcbiAgICAgIGlmIChkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZykge1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLm9sZFBhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7Ly9YWFg6IGhhY2sgYmVjYXVzZSB0b3BGb2xkZXIub2xkUGFyZW50IHdhcyBiZWluZyB1bmRlZmluZWQgYmVmb3JlIGJlaW5nTW92ZWQgPSBmYWxzZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkID0gZ3JvdXA7XHJcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gdG9wRm9sZGVyLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgXHJcbiAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBcclxuICAgIGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gdG9wRm9sZGVyLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljOyAvL1RPRE86IHJldmlzZSBob3cgdG8gcGFzcyB0aGlzIGluZm9cclxuICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKDAuNSk7XHJcbiAgICBncm91cC5vcGVuKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgLy9hbGEgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNleGFtcGxlcy91dGlscy9TY2VuZVV0aWxzXHJcbiAgZnVuY3Rpb24gc2NlbmVEZXRhY2goY2hpbGQsIHBhcmVudCwgc2NlbmUpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KHBhcmVudC5tYXRyaXhXb3JsZCk7XHJcbiAgICBwYXJlbnQucmVtb3ZlKGNoaWxkKTtcclxuICAgIHNjZW5lLmFkZChjaGlsZClcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBwYXJlbnQpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLmdldEludmVyc2UocGFyZW50Lm1hdHJpeFdvcmxkKSApO1xyXG5cdFx0c2NlbmUucmVtb3ZlKGNoaWxkKTtcclxuXHRcdHBhcmVudC5hZGQoY2hpbGQpOyAgIFxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCkge1xyXG4gICAgbGV0IG5vZGUgPSBvbGRQYXJlbnQ7XHJcbiAgICB3aGlsZSAobm9kZS5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIGNvbnN0IHNjZW5lID0gbm9kZTtcclxuICAgIFxyXG4gICAgc2NlbmVEZXRhY2goY2hpbGQsIG9sZFBhcmVudCwgc2NlbmUpO1xyXG4gICAgc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBuZXdQYXJlbnQpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZGV0YWNoRnJvbVBhcmVudCA9IGdyb3VwLmRldGFjaDtcclxuICBcclxuICBncm91cC5yZWF0dGFjaCA9ICgpID0+IHtcclxuICAgIGlmICghZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0IHdpdGggdmFyaW91cyBjb21iaW5hdGlvbnMgb2Ygd3JhcHBpbmcgZXRjLlxyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQuYWRkRm9sZGVyKGdyb3VwKTsgLy8gdGhpcyB3aWxsIGFsc28gZGVhbCB3aXRoIGNvc21ldGljcyAoaGlkZUdyYWJiZXIgZXRjKVxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpO1xyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vbWF5YmUgd2UgY291bGQgZG8gdGhpcyBraW5kIG9mIHN0dWZmIGluIF9zZXREZXRhY2hlZEZyb21cclxuICAgICAgLy9pbiBhbnkgY2FzZSwgaXQncyBpcnJlbGV2YW50IGlmIFxyXG4gICAgICBsZXQgc2VtaXMgPSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHNlbWlzLmluZGV4T2YoZ3JvdXApO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgLy9ncm91cC5kZXRhY2hlZFBhcmVudCA9IG51bGw7XHJcbiAgICBncm91cC5fc2V0RGV0YWNoZWRGcm9tKG51bGwpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBncm91cC5hZGRDb250cm9sbGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgZ3JvdXAuYWRkRm9sZGVyKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgfVxyXG4gICAgICAvL1hYWDogaGFja2luZyBpbiBzb21lIHVuaXZlcnNhbCB0b29sdGlwIHN1cHBvcnRcclxuICAgICAgaWYgKG9iai5zZXRUb29sVGlwKSByZXR1cm47IC8vYnV0IG5vdCBpZiBhIG1vcmUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gYWxyZWFkeSBleGlzdHMgKHNlZSBkcm9wZG93bi4uLilcclxuICAgICAgb2JqLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAgICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAgICAgY29uc3QgdGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IHRpcE9iajtcclxuICAgICAgICAvL2Fzc29jaWF0ZSBldmVudCB3aXRoIGhvdmVyIG9uIGFwcHJvcHJpYXRlIGhpdHNjYW4uLi5cclxuXHJcbiAgICAgICAgaWYgKG9iai5pbnRlcmFjdGlvbikge1xyXG4gICAgICAgICAgLy9UT0RPOiBldmVudHMub2ZmKCkgaWYgcmVwbGFjaW5nIG9sZCB0b29sdGlwIChvciBub3QgcmVwZWF0aW5nIG9uKCkpLlxyXG4gICAgICAgICAgb2JqLmludGVyYWN0aW9uLmV2ZW50cy5vbigndGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgLy9kb24ndCBqdXN0IHNldCB2aXNpYmlsaXR5OyBhZGQvcmVtb3ZlIGFzIHRoZXNlIGFyZSBraWxsaW5nIGZyYW1lcmF0ZSBpbiBsYXJnZSBWUiBndWlzLlxyXG4gICAgICAgICAgICAvL1JFVklFVy4uLiBjb25zaWRlcmluZyBtYWtpbmcgdG9vbHRpcHMgd29yayB3aGVuIGhvdmVyaW5nIG9uIGxhYmVsIGFzIHdlbGwsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBvZiBjb3Vyc2UgdGhpcyB3b3VsZCBtZWFuIGNoYW5naW5nIG1vcmUgYWJvdXQgdGhlIGludGVyYWN0aW9uIHNldHVwLFxyXG4gICAgICAgICAgICAvLyBhbmQgaGF2aW5nIG1vcmUgb2JqZWN0cyB0byB0ZXN0IGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgICAgICAgICAgLy8gTGVhdmluZyBmb3Igbm93LCBpZiB3b3JraW5nIG1vcmUgb24gdGhlIGxpYnJhcnksIGhvcGVmdWxseSBmaXggaG92ZXIgZXZlbnQgZXRjLlxyXG4gICAgICAgICAgICBpZiAob2JqLnZpc2libGUpIHNldFZpc2liaWxpdHkob2JqLCB0aXBPYmosIG9iai5pbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBjYW4ndCBjcmVhdGUgdG9vbHRpcCBmb3IgJHtvYmouZ3VpVHlwZX0gYmVjYXVzZSB0aGVyZSdzIG5vIG9iai5pbnRlcmFjdGlvbiBwcm9wZXJ0eS4uLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgb2JqLmdldFRvb2xUaXAgPSAoKSA9PiBvYmoudXNlckRhdGEudGlwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmFkZEZvbGRlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uIChvYmopIHtcclxuICAgICAgLy9UT0RPIGlmIG9iaiBpcyBzdHJpbmcsIG1ha2UgYSBuZXcgZ3VpIGFuZCBhZGQgLyByZXR1cm4gaXQuLi4gYnV0IHdoYXQgYWJvdXQgdmFyYXJncz9cclxuICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIG9iai5tYXRyaXguaWRlbnRpdHkoKTtcclxuICAgICAgb2JqLnNjYWxlLnNldCgxLDEsMSk7XHJcbiAgICAgIG9iai5wb3NpdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBvYmoucm90YXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgXHJcbiAgICAgIG9iai5oaWRlR3JhYmJlcigpO1xyXG4gICAgICBvYmouY2xvc2UoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5wcm9tb3RlWk9yZGVyID0gKCkgPT4ge1xyXG4gICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXAgfHwgIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkbid0IGJlIGEgJ3B1YmxpYyBtZXRob2QnIChidXQgbWF5YmUgdGhlcmUgc2hvdWxkIGJlIGEgd2VsbC1kZWZpbmVkIHB1YmxpYyBpbnRlcmZhY2UpLlxyXG4gICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiBpbmNvbnNpc3RlbmN5IGluIGZvbGRlciBob3VzZWtlZXBpbmdgKTtcclxuICAgIH1cclxuICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBwcm9tb3RpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgLy90aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBvYmplY3QgeiBiZWluZyBkaWZmZXJlbnQgZnJvbSB3aGVuIG1vdXNlSW50ZXJzZWN0aW9uIGhpdCBpdCBlYXJsaWVyIGluIHVwZGF0ZS5cclxuICAgIC8vbW91c2VJbnRlcnNlY3Rpb24gd2lsbCB0aGVuIGxhdGVyIGJlIHVzZWQgaW4gaGFuZGxlVGljayBvZiBncmFiIGludGVyYWN0aW9uLCB0byBmdXJ0aGVyIG11dGF0ZSBwb3NpdGlvblxyXG4gICAgLy9zZWVtcyBvayB0aG91Z2ggKGFzIG9mIDA0LzEyLzE4KVxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICAvL2dyb3VwLnVzZXJEYXRhLm9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCA9ICBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQ7XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1MYXlvdXQoKXtcclxuICAgIHBlcmZvcm1IZWFkZXJMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgY29uc3Qgd3JhcE5lc3RlZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICAvL3N0YXJ0aW5nIHdob2xlIG5ldyBsYXlvdXQgb2YgdG9wRm9sZGVyP1xyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgaWYgKHRvcEZvbGRlci5tb2RhbEVkaXRvciAmJiB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCkgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgXHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gLXRvcEZvbGRlci5wb3NpdGlvbi55O1xyXG4gICAgICAvL0kgY291bGQgdW5kZWZpbmUgdGhlc2UgYXQgdGhlIGVuZCwgYnV0IHRoZXJlJ3Mgbm8gcG9pbnQuXHJcblxyXG4gICAgICBpZiAoIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYGFkZGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2tlZXAgY291bnRpbmcgY29sdW1uSGVpZ2h0IChjdXJyZW50IHkpICYgaW5kZXggZnJvbSBwYXJlbnQgZm9sZGVyLlxyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9UT0RPOiBtYWtlIHN1cmUgdG8gdGVzdCB3aXRoIGRlZXAgbmVzdGluZy5cclxuICAgICAgXHJcbiAgICAgIGlmICh0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHJlbW92aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBjb25zdCBzcGFjaW5nUGVyQ29udHJvbGxlciA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIGNvbnN0IGVtcHR5Rm9sZGVyU3BhY2UgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgdmFyIHRvdGFsU3BhY2luZyA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYykgPT4geyBjLnZpc2libGUgPSAhc3RhdGUuY29sbGFwc2VkIH0gKTtcclxuICAgIC8vY2hpbGRyZW4gc2hvdWxkIGJlIG9yZGVyZWQgYnkgZ3VpSW5kZXguXHJcbiAgICAvL2lmIHRoZXkgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSwgaXQgY2FuIGJlIGFkZGVkIGhlcmU6XHJcbiAgICAvL3RoaXMgc2hvdWxkIGJlIHRoZSBvbmx5IHBsYWNlIHRoYXQgd2UgbmVlZCB0byBjb25zaWRlciB0aGF0IHByb3BlcnR5XHJcbiAgICAvL2l0IGFsbG93cyBmb3IgZGV0YWNoaW5nIGVsZW1lbnRzIGFuZCByZWF0dGFjaGluZyBpbiBzaW1pbGFyIHBsYWNlLCBldmVuIGlmIHNvbWUgc2libGluZ3MgYXJlIGFsc28gZGV0YWNoZWQuXHJcbiAgICBsZXQgbGFzdEd1aUluZGV4ID0gMDtcclxuICAgIC8vdHJ5IHRvIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgdGhhdCBjbGllbnQgcHJvZ3JhbSBtYXkgYXR0ZW1wdCB0byByZXN0b3JlIGl0ZW1zIFxyXG4gICAgLy9yZW1lbWJlcmluZyBkZXRhY2hlZFBhcmVudCBidXQgbm90IGd1aUluZGV4PyBOb2lzZS4uLlxyXG4gICAgLy9jb25zdCBkZXRhY2hlZENoaWxkcmVuID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKGYgPT4gZi5kZXRhY2hlZFBhcmVudCA9PT0gdGhpcyk7XHJcbiAgICAvL2NvbGxhcHNlR3JvdXAuY2hpbGRyZW4uY29uY2F0KGRldGFjaGVkQ2hpbGRyZW4pLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKGMuZ3VpSW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGMuZ3VpSW5kZXggPSBsYXN0R3VpSW5kZXgrPTE7XHJcbiAgICAgIH0gZWxzZSBsYXN0R3VpSW5kZXggPSBjLmd1aUluZGV4O1xyXG4gICAgfSk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLnNvcnQoKGEsIGIpID0+IHsgcmV0dXJuIGEuZ3VpSW5kZXggLSBiLmd1aUluZGV4IH0pO1xyXG5cclxuICAgIGlmICggc3RhdGUuY29sbGFwc2VkICkge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IE1hdGguUEkgKiAwLjU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IDA7XHJcblxyXG4gICAgICB2YXIgeSA9IDAsIGxhc3RIZWlnaHQgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCBmdW5jdGlvbiggY2hpbGQsIGluZGV4ICl7XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICBjaGlsZC51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZiAtIHk7IC8vZXhjZXB0ICd5JyB3aWxsIGJlIHdyb25nLi4uXHJcbiAgICAgICAgICBjaGlsZC5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggIXdyYXBOZXN0ZWQgKSB7XHJcbiAgICAgICAgICAvL09yaWdpbmFsIGxheW91dCBhbGdvcml0aG1cclxuICAgICAgICAgIHZhciBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIC8vIGhvdyBmYXIgdG8gZ2V0IGZyb20gdGhlIG1pZGRsZSBvZiBwcmV2aW91cyB0byBtaWRkbGUgb2YgdGhpcyBjaGlsZD9cclxuICAgICAgICAgIC8vIGhhbGYgb2YgdGhlIGhlaWdodCBvZiBwcmV2aW91cyBwbHVzIGhhbGYgaGVpZ2h0IG9mIHRoaXMuXHJcbiAgICAgICAgICAvLyBpZiB3ZSd2ZSB3cmFwcGVkIHRvIGEgbmV3IGNvbHVtbiByZWNlbnRseSwgaG93IGlzIHRoaXMgYWZmZWN0ZWQ/XHJcbiAgICAgICAgICAvLyBzcGFjaW5nIHByb3BlcnR5IHNob3VsZCB0aGVuIGJlIHNwYWNpbmcgKndpdGhpbiBjdXJyZW50IGNvbHVtbiosIHNvIHRoZSB3YXkgd2UgdHJhY2sgdG90YWxTcGFjaW5nIHNob3VsZCByZWZsZWN0IHRoYXQuXHJcbiAgICAgICAgICB2YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgaWYgKGluZGV4IDwgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pXHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gIFxyXG4gICAgICAgICAgaWYgKChpbmRleCsxKSAlIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID09PSAwKSB5ID0gMDtcclxuICBcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vbmV3IGxheW91dCBhbGdvcml0aG0gV0lQLCBzaG91bGQgYWxsb3cgZm9yIG5lc3RlZCBmb2xkZXJzIHRvIHdyYXAgdG8gdGhlIHRvcCBvZiBhIG5ldyBjb2x1bW4sIHdpdGggYWxsIGZvbGRlcnNcclxuICAgICAgICAgIC8vaW4gaGllcmFyY2h5IHVzaW5nIHNhbWUgY29sdW1uIGxheW91dFxyXG4gICAgICAgICAgY29uc3QgbWF4Q29sSGVpZ2h0ID0gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gKiBzcGFjaW5nUGVyQ29udHJvbGxlcjsgLy9NQVhfRk9MREVSX0lURU1TIGlzIHNsaWdodCBtaXNub21lclxyXG4gICAgICAgICAgY29uc3QgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBjb25zdCBjaGlsZERpZFdyYXAgPSBjaGlsZC5pc0ZvbGRlciAmJiBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL21vdmUgdG8gYSBuZXcgY29sdW1uP1xyXG4gICAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA+IG1heENvbEhlaWdodCkge1xyXG4gICAgICAgICAgICAvL1RPRE86IG1heWJlIGFkZCBhbiBleHRyYSBoZWFkZXIgdGhpbmcgdG8gYWxsb3cgZm9sZGluZyBuZXN0ZWQgZm9sZGVyP1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCsrOyBcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gaDtcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nID0gMDsgLy9oIHdpbGwgYmUgYWRkZWQgbGF0ZXJcclxuICAgICAgICAgICAgbGFzdEhlaWdodCA9IDA7IC8vPz8/PyB3aGF0IHNob3VsZCB0aGlzIGJlPyAgT3JpZ2luYWwgYWxnb3JpdGhtIGl0J3MgJ2VtcHR5Rm9sZGVyU3BhY2UnXHJcbiAgICAgICAgICAgIC8vY2hlY2sgbG9naWMgb2YgdGhpcyBXUlQgZGVlcGVyIG5lc3RpbmcgKHNob3VsZCBiZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0b3BGb2xkZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlIHBhcmVudClcclxuICAgICAgICAgICAgLy93aGF0IEkgc2hvdWxkIGRvIGlzIHVzZSBhY2N1bW11bGF0aW9uIG9mIGFsbCBmb2xkZXIgbGV2ZWxzICsgb25lIHBhcmVudCBhYm92ZS5cclxuICAgICAgICAgICAgLy95ID0gLWdyb3VwLnBvc2l0aW9uLnk7XHJcbiAgICAgICAgICAgIHkgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ICs9IGg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy92YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgICAgICAgICBsZXQgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcblxyXG5cclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC4uLi5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgLy9YWFg6IHRoaXMgbG9naWMgZG9lc24ndCB3b3JrIGZvciBjb2x1bW4gd3JhcHBpbmcsIChiZWNhdXNlIG9mIGhvdyBzcGFjaW5nIGlzIGNvbXB1dGVkIGFib3ZlPylcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG5cclxuICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL25iIGZvciBuZXN0ZWQsIGNvbnNpZGVyIGRpZmZlcmVuY2UgYmV0d2VlbiBncm91cCAmIHBhcmVudFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy9pZiAoY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCkgbGFzdEhlaWdodCA9IDA7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2hpbGQudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gdG90YWxTcGFjaW5nO1xyXG4gICAgXHJcbiAgICAvLyBpZiB3ZSdyZSBhIHN1YmZvbGRlciwgdXNlIGEgc21hbGxlciBwYW5lbFxyXG4gICAgbGV0IHBhbmVsV2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXApIHtcclxuICAgICAgcGFuZWxXaWR0aCA9IExheW91dC5TVUJGT0xERVJfV0lEVEg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIExheW91dC5yZXNpemVQYW5lbChwYW5lbCwgcGFuZWxXaWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoKTtcclxuXHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtSGVhZGVyTGF5b3V0KCkge1xyXG4gICAgbGV0IGR4ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICBsZXQgeCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBoZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGlmICghYy52aXNpYmxlKSByZXR1cm47XHJcbiAgICAgIHggLT0gZHggKiAwLjg7XHJcbiAgICAgIGMucG9zaXRpb24ueCA9IHg7XHJcbiAgICAgIHggLT0gZHggKiAwLjM7IC8vVE9ETzogZGVoYWNraWZ5XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZ3JhYkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9UT0RPOiBtb3JlIGNvbnNpc3RlbnQgaG92ZXIgc3R5bGluZ1xyXG4gICAgaWYgKCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ob3ZlcmluZygpICkge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4ODg4ODg4ICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSBncm91cC5vcGVuKCk7XHJcbiAgICBlbHNlIGdyb3VwLmNsb3NlKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcblxyXG4gIGdyb3VwLm9wZW4gPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICghc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCAmJiBncm91cC5mb2xkZXIuYWNjb3JkaW9uKSB7XHJcbiAgICAgIGdyb3VwLmZvbGRlci5ndWlDaGlsZHJlbi5maWx0ZXIoYz0+Yy5pc0ZvbGRlciAmJiBjICE9PSBncm91cCkuZm9yRWFjaChjPT5jLmNsb3NlKCkpO1xyXG4gICAgfVxyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICBhZGRJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmNsb3NlID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSB0cnVlO1xyXG4gICAgcmVtb3ZlSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsOiBncmFiYmVyIH0gKTtcclxuICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAvL25iOiBpZiB0aGUgY29udHJvbCBpcyBub3QgdmlzaWJsZSAvIGFjdGl2ZSwgdGhlbiBpdCB3b24ndCBpbnRlcmZlcmUuLi4gICAgXHJcbiAgICAvL2J1dCBcImlmICghaXNEZXRhY2hhYmxlKVwiIGhlcmUgY2F1c2VzIHByb2JsZW1zLlxyXG4gICAgXHJcbiAgICAvL2hlYWRlckl0ZW1zIHNob3VsZCBub3cgaGF2ZSB0aGVpciBvd24gdXBkYXRlQ29udHJvbCBhbmQgYmUgaW4gZ2xvYmFsQ29udHJvbGxlcnMgbGlzdFxyXG4gICAgLy9oZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKG8gPT4gby5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKSk7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgLy8nZ3JhYlJlbGVhc2VkJyBpcyBlbWl0dGVkIG9uIGlucHV0LmV2ZW50cy4uLiB1c2VkIGZvciBvcnRobyBtb3VzZSBmaXhGb2xkZXJQb3NpdGlvblxyXG4gIFxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBfYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG4gIC8vZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwsIGdyYWJiZXIsIGRldGFjaEJ1dHRvbiBdO1xyXG4gIFxyXG4gIC8vLy8vRVhQRVJJTUVOVEFMIEZFQVRVUkUsIENVUlJFTlRMWSBIQVJEQ09ERUQgTk9UIFRPIEhBUFBFTlxyXG4gIC8vc3ViLWZvbGRlcnMgdGhhdCBhcmUgZGV0YWNoZWQgd2hpbGUgbW92aW5nIHJlbWFpbiBhdHRhY2hlZCB0byBwYXJlbnQgb2JqZWN0ICh0aGUgY29udHJvbGxlciB0aGF0J3MgbW92aW5nIHRoZW0pXHJcbiAgLy8mIGtlcHQgaW4gc2VtaURldGFjaGVkIHVudGlsIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCBhdCB3aGljaCBwb2ludCB0aGV5IHNoaWZ0IGF0dGFjaG1lbnQgdG8gb2xkUGFyZW50XHJcbiAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGdyb3VwLCB7XHJcbiAgICBoaXRzY2FuOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIC8vZG9uJ3QgbmVlZCB0byBmaWx0ZXIgdmlzaWJsZSBoZXJlLCB0aGlzJ2xsIGJlIGRvbmUgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKClcclxuICAgICAgICAvLyhpbXBsZW1lbnRhdGlvbiBub3RlIDMxLzcvMTk7IC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIGhlcmUgYmVpbmcgcmVtb3ZlZCBhcyBlYWNoIGhlYWRlckl0ZW1cclxuICAgICAgICAvL3Nob3VsZCBub3cgYmUgY2xvc2VyIHRvICdmdWxseSBmbGVkZ2VkJyBjb250cm9sbGVyKVxyXG4gICAgICAgIGxldCBoaXRzID0gWyBwYW5lbCwgZ3JhYmJlciBdO1xyXG4gICAgICAgIGlmIChncm91cC5tb2RhbEVkaXRvcikgaGl0cyA9IGhpdHMuY29uY2F0KC4uLmdyb3VwLm1vZGFsRWRpdG9yLmhpdHNjYW4pO1xyXG4gICAgICAgIHJldHVybiBoaXRzO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYmVpbmdNb3ZlZDoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gX2JlaW5nTW92ZWQ7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldDogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgX2JlaW5nTW92ZWQgPSB2YWx1ZTtcclxuICAgICAgICBpZiAoIV9iZWluZ01vdmVkKSB7XHJcbiAgICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSBncm91cC5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBncm91cC51c2VyRGF0YS5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICAgICAgICAgIC8vYXNzZXJ0aW9uLi4uIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAoYW5kIGRvZXNuJ3QgQUZBSUNUKS5cclxuICAgICAgICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSG91c2VrZWVwaW5nIHByb2JsZW0gaW4gZGF0LkdVSVZSLi4uXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQuZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIC8vYXMgd2VsbCBhcyB0aGlzIGN1cnJlbnRseSBlbmRpbmcgdXAgd2l0aCB3cm9uZyB0cmFuc2Zvcm0sIEkgYWxzbyBoYXZlIHdyb25nIHRyYW5zZm9ybSBpZiBJIGRyYWcgZm9sZGVyIHdoaWxlIHNlbWlEZWF0Y2hlZC4uLlxyXG4gICAgICAgICAgICAvLyoqYWx0aG91Z2ggaW4gdGhhdCBjYXNlLCBpdCBzaGlmdHMgYmFjayB0byB3aGVyZSBpdCBzaG91bGQgYmUgd2hlbiBidXR0b24gaXMgcmVsZWFzZWQqKlxyXG4gICAgICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZm9yIChsZXQgayBpbiBhZGRDb250cm9sbGVyRnVuY3MpIHtcclxuICAgIGdyb3VwW2tdID0gKC4uLmFyZ3MpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbGxlciA9IGFkZENvbnRyb2xsZXJGdW5jc1trXSguLi5hcmdzKTtcclxuICAgICAgaWYgKCBjb250cm9sbGVyICl7XHJcbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggY29udHJvbGxlciApO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sbGVyO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2UoKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBRUFDQU1BQUFEeVRqNVZBQUFBalZCTVZFVkhjRXovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8rdW1BYzdBQUFBTDNSU1RsTUFXbkpmYm5xRFdHUjRhMlpjWW5CUmFsUkxnSDZFVG5SOFVHaDJSb1pEWGxhSFNZbzhRSFUyTHlZY0ZBd0ZtbVVSMU9JQUFKRmhTVVJCVkhoZXRMMkpXbXU3ampVS0lRa2tRTHFadmdNQ1pPMnpULzMzL1IvdlNrTkRrajJUck9hclZkNVY2eERQM3BKbFdkS1E3cWFQYjYrdnJ3OHZqK1BaL3Z2cnh6Ly8vUGo2M3MvRzcvY1AybjAvWFo2T3A2WDhmSkhmYUcvM2o5cTVYL0xLdC90M3YvUWZ1ZlFrL1hvdWJvbHovRHE1TEg3eTFuTFZsOXhlSDRiMjhqaWRuY1p5L1pNMFArV2ZmLzd6bi8vOCsrOS8vc0c1VXp0YXYzSDFpbkpJWGtsZThRdm4zK09ST1Ayb2o1T1BtejdldittNVBEREZ5WGFuL1V3ZXdCZDgxMjRaRG4ybzNlVEJCbUNLQXpaUWZqWTc1V1gvL1krL0tqNkxuNzcvL3VGM3IyNHZIeWZQNWFlOWNSUnNhSDVJLzQ4dmVRcVA1S2g5WDl6ODZ3dm4rd2poWmZtWWpUem15QmZsU09CejVWMWxYTzhlSDU0bXc4bnpLOGRUSHNuUGVwYnVwd2Z0MVZ1K1BzbHZhWlB0czczRmFXeFhicC9pVWp4L0k5U1VjM0hMcVoyRGhudFZQMEVSZk43OXE5MTgrL1QydUZsTzhldzhCVytxdzRSejVSWmJPVHA1ZnNKaitkVHFGWi9sbFRBcXVMYytFbThqQS80ZEEvUzg5Yzk1a2hFaDhaVFltOGUzcCswUVY5eFA1ZjVmUWpVOFZMdWVKM2l0ZTlDVDlMZXpuNUlEK0twOHRCM0VtT2ZkZWZzbDU4MFBZMVdNRGthQk5GWHFINVZqZVNTRzVIalJkVHpxK2VBTWpQK0VMOHZIeUNTekZ6VzZMRTk2UHJqdjd1VnBNdXAwdWx1TXA3SXB1V1hiN1hRNnd5Y1p0dGtVYjkzdG9JMjY5ckhMS2E4Y2JwMFVuTTJ2VHhNOXQvdjg4SWh6ZU4zazZTVi80dGJ5WnNlOWZkNFFmZDJKdk83bThlRzVXNTd5RFJiQXJNSzV1RHZlR0NUOVFiN0lWK3phR003Mnh4UHVQY0xwU3M4ajU5bnpwQnVmTTN4MjRuSGF2dG9EaG5JUDZTWFY4TjY0YURRa1BUbFJ0bmIyczk5RTM5UmZkUmlmcnJ3a25idzdiby9KaFhsTHdlbFBtY2lUeDdQVC9sdjdUN1BaNWhIamxrUHl0WmZSajV1RFJyT1RuQTltdlg5NHhrQjBoM3l2eDgxSkJ3SXZxdjE0VXpuLytLMHZleWVqZmU0TlZ1Q0FEY1htT3o1cjE5dDE5Zkt4dnBuOEhQUzA3VllqKzlqSE43bFNmbmZpMGgrY3pjUE9lZEFiZElTYTcyOVBjZzdhdWZ2MGxqL3Qxc3Y5YWJaVTNwekl3NlN0OVB2R01rYWRRWndpQTNIa1BQbmU0OXlSbmp0WWthUkNOdkJRdnVKZ3h6RThZY0J4NzRFTkhjWVpwNjc0T1lOemh4d2Q0dUZwdU5Lbmo3WVBrQXpIazc0UkhyclM5OXAxSnZaZ09RRDZyN1FUQk1XOHhTSjZQUEZWNDlPWHhnQzh1MXlnaEpOUnMxVnd0akg2NzNENlJLZlVjcmJYL3ZGMEtoK3g3ZTZLVVpPNzZ5eXhtMk1jcGxPY2I4dzZ4RUNjT3p0N1dRNkVkT3NuRDhEWk9CL3k1MDVIdTVselBGMXN2c29jSE16N0lPSVlYSHNlekp2K1l0SHZONzBkYmlFVGRUdmFOZjI4VkhuSDJIN1hhL3FnNXJzd3lXNitrRGFYZDMvTG40MTl5bkk4ZlgvWHp6djMrb3VtWUFENWlWUHdwaWVUbERJWHgvaHVPZGh2UUZJYjFwTk5rWE52M3RkWGxLK1JNUVM5T2VEOXhaeERSL29MelpxK2ZjNTZjRmFPQnZIMkpoNkdxL1dpUHhodGpTOU9Td3dlYnJLVEo5aGJ6bkEySnNxZ1dmVFh1MUdzV0pqUUdFUjhWditTQWVRQ0VnN2ZCcjY3Ri9wekdEQWI3NFVGMEM5TlBucWxkMXJqSzlDUGdWajNGeGlIQnoxSit2ZkhtVEhyV2orczE1T1hCUVZQZXpKQW80UlFtZkh5OG1pYUd4aWcxeHprUHJqMzdPaEVITXpsTGVYbTkzaVd2dlNIak5maThJR1BsWGRYQnRBN05zSUJ5aENuYnhWQWVQNjhmK2l2a3dIa3NvK0NBVDRPL2I1UlYrZmIyeHVlMW56b21PaDl5UUFmT09WTlZVNTVVeFd0eWwrUURzS0U4eURwdDhwRDhKQy80b2VPSWI3bXRNU0FydzhmZk41c3pIbldnUGlOOHJSek5JYkpoSjFjSWN6Zm5VRFNnV2VFQVJhZi9ZRzg1Z0VmUnJINmdJbXlhR1NrTWE3djFBMHdvZjJ6ZHZVU0FESi9jTUNubTVuekhRNDBpL2xCQnhTYVZTak5JSWNNcWJ4bzlHdW5UcWE1eWhKcFVLQ1Y0OEdzQjNDM1BHVUVDZUN5cWlmdm8yT0Q4NDFkN3g0dy9RNXp6cWdUbHBlSjNydHYwczRHdlRrY2xLZGs1SEVMK1NMd3hXQzlPQWhQZ2MyTzhpVXE1RmY2ZlhxdE1NK0wvaFJXckJoZ0Fja2xuNjlEKy9UOGpLZlpRSWxPV3pLQU5LanB5NzFKU2g2Yjc0UUpuQUZNN09IakZvM2NlZDBzRGcxRlBzZWo2YS94UENvdU94MmdlVzhnVGM5MmpsN2lSaEFQd2dEeWlyWk9ZM2xSV3NwanordSt5aW5UckhCejBMK0gxNWNuWUJwQU54Qk5UR2RDeWdhc3JuZ0NYc0FJOTNDdmVnRDFhZjBFb1VNRERvQWFFNXFlVEhhUWVqaXMrbTNjenQxUW9JUGpHL2t3NWUyenZSUVZhMmM5UFo4cTFBOVZBbkg3TldUU2VBYStoaXhhNzZEdlFIamd3bFZIbHM2NVVwd0szclpyUEk3Um5tRUZlbEFTSDVSSFZLNVM1N2xnQUNwR0dHOXBjb0lPbFB5bHN5Z1pRSnJxOUZEb3ZyK1NBWVRPL1pBQUx2Ym1oOE1jcnlpdnRGQ0N2K21NaDJ3WURIYkdFUDV0TWtBNzFlbEduYk5LT2dvTW41K05TSkhEb2xsam5aNUNxSzFXSzJHWGppeXVnL09xZ3lmN1lEY3l6THQ1STVOdGEycWRiNkw0V1IwWmEyZ1R3cXBVVmpzcW85ZXJMamRmTXlySHUwYnVJbHpRekhkVWlGMzUwenRwWjZmVnIrdTBQRGo2Wi9aT3ZmWDZEQjNuUERKTkl4VHJYZHhJcUEydXZGTWlLQmtiSXlNbUNUcTR1a3lOQVNERWg1TXVTQU1GQ1YvWlBhOFBDd2hGYkRiR1dCZjZJaXpCM2xPVnVOdkpKUVBZb0lCdzU5MXVwK082VzhrZnE2N2NPQmdBUGE0VXE0NEpYVlpYbUw1T1JGdFp2NmtSVTZ4aUlpMzhGWFhwZzBacFFzdk81QndiZFlTcW5hN09JcmtRSXVDZGt1VFExNVdrVHpIRklSV2VHc3JGOGdkSXZlSFNzS1BtT2RBSkJMWHV0REVsK2t5dFdiOEFPZ1kxa0ZCV3p4MjdaQm5Lc1k3QWVSY0tjZlRyQUEwNnE4dCtaY3RkOUUrNXhLMTJ2ZlY4UG9jUWc3U2lZcjN1c2ExN1NtMm9zbmNRNWFrbmJjQXNaeE1KV0FPVEFXVEtUR1RaZDJZZm04SzhPRGdEeEF6bGtqdGRZbnQrbFFHRXFHUXRlZFBkU05wQS9vRE80dmNZNkNGUjk2blF3ZnhoT3E2UWd3b0RWbEM3N2VHZ1F1eEpDZDQvVUgrZFVYejE3ZkdtUTY0eDVYR1h0WkJIRDRNLzlQQVdONUtuNmxwbmZFRTk4cUMvWktBZ0FKVUJxRTY0NXJrZWRFeXRvMG9pckdKYTgxelhOdWdZcDF1WHVITGMweEh1ZGtVSHRVbFY5TXNBRFcvMGo5aFBEbGNaTmhmK3BSQlRRVHgyeFRwYk1vQytyczk0MThGRy9HbkxxRjM4MlY4UGREN3FqTFdWaGFPYkRMQnZNWUJxME95NVpBQmpMVDJHTlVUSlJKM0Y3OUgwRC9vUkxwK1B0c3VsQ0pCZURHcXNPNzRVNmQ1RUtGc3hnT3VnSmc4YVdkeTZLb1VYaDRWc1lrUUVjRkhEdTVyOEdoVnJtL2J5bDdMSFltMnlSL3VoVGh4TTg1eFRqdzdka0ZyendkWEE1YzFMaW5GNWZ0Sk55TUhHdEpTWTIrMnYrNmRjNGhwNWFOUGdDVHVvZG1PblliUmtnTk00MW0zY2cvTFV4K1Iwc25tQnp4R2hvanpRdFRsWk1RQ3NhWnRweFFDUUNiY1pZT1l6VG9VTnA3QmU1aSs3MEkvNENJVnUvNVhTL2hQVDhEVVlZS3NzYTNzZUZSRXJhWHFuTmdOQXhLc0E2SXgwQWpYelJ2K1crMUZienJlWGFSU2p5dkhSUnhvalFMMGRVM0xLSUVQejFPTTJaVEFJT21DaE5aT0hiMTVTanN2TDAxVkNQejM4dXAvRVV4MElLdTVhbnJTR3VJb3Y2M21UQ1VJRzJGTnZjTjFPQmdrclFJL1Rla2EyYlQ1VXFLanlmT2FXdDJDQUx0VDNwVnFCLzRBQnNQWnh4UjdsakNNRHlFZklXZ21GanZvMWFJMzE2ZU9UNTlhS2h5MGd6ME5xdWNtamZMeVJVbjlnelJ2c2VtUUE0NTFrZ0JFa1VwK2ptaXFHWE1ZVkFOWVJHMnVaRTUyemJyRDRvazVtVVE2aE5jZGFjdk9TV3d6d3AvMVREby91NlVZamxUVTVwdnl5RGh1bGxUREFjUlpIOFdVY0pKY1JNTDdoZS9xUXliclY0cTRwR0FEcW9jb0FIZnp1N3pQQXJKQ3VIUGlTRFBvUjUxNXVaby9IdUtCWkpGc2tBMEExVVNiVVJ2MjZaZ0NzYmlMRFJRQ29aSUhCcHlQWHVzV0RyNk9LbStsZGJwa2lmNnE0b3ZhSllVbk5NMTcwUGs4L1EydkduOUF4Ymw3eXR4Z2d4MU8wNlMxMlJyWWZlaTlrR3h0Y0FudlpCbklBNVRMTW9NZjhnVkczU1ljN3lYd1VtZm1CMjdzT1FGS2RZUTE4MTZteTJxMXA5L3NsQThUcUl5Unh0Yk95QTJ6NU9UUytnaG1IbUlVWU91dXRKY0FqbkVYNHdQc0xDVUJWQ095bVQ0UEJSMlpLd3pmQzY2ak1YZzhHSzUxRFhibkx1RkNMT1REMFdQRFY1U1NvRnB3MDFEdE5pWHA5bG9lNGNMMTF5ZDlqQVBuaDI3UlhYUnRpTHVhWUp2MGhBSVFCVW9taURpNmppZkhkNmdRcjJVTU42TEp5K1pRTTdVQk1SUGdPMDdHVk9KVFB2MkFBcmo0NEdrcGNaUW5NMDRQVXBxN28vL01aeVFCNGYyeVIzUXZTWWdEOUFYbHZpb0RlU3EwTnpnQmNRcW51RE1UcEFSOWlzYzFNM1FnUGRZM2doWlFOS2dUUk1VVjhORzllOHRjWWdJL0dUSEtORm8rdWxvQjBFcWtwV0RRcjQwd3lRSzNHVlF3Z0ZpbXNYRzVobGpVY0F5YTZSaktBTWtpUFJxWGp6eG5nV0t3QnpyZVA0NXNNUUJ0bGl4S24xaTRBYXJCN1FhNHh3TUpFZVgrZ0RLQlBHUTJDQWVnRVVVTlFPRDJXWm4zQUFLMFhsT2JMM0RIb1N6c1Z6T1AxbkJxa1hKbnF5YzFML2hJRHNKOWNWYW5HdFJLWVRpSmhnQy9zbzI4eHdCN0RpNmV0ZFFNd3pCUEhWTW5VcnRva0Eram1kMDRkODFjTWNFcnBHaXZBOGlZRHFCMDFaREczcmVDTFVyUStnS05jcTd2TkFCOG0rL1dBRUlXYXZXelRuK0VHbFMyOE9UM0F4MnA5c00xNVBuVmNLVTR2K1pTYW1oQlpUb1ZibC94bEJtQi9MZGZyYmFCVDhQaExDYkJQODc1S3hkMHFGK1V4QmdHLzFRTkxYVVpXQ1NNRlBDTy9ZSUEwNHMzbmxJelROZ09rUGtxVGI2Mk5tVW1XbTRtQlNMYXRXeFIrTGdIMERKa2dLa2ZrZkpBVjBRdXdySFRPTUFUNUtwUEtUc3FkMnVMQnAxeCtaRTJGK3BLL3p3Qy9ldlRuZ3EzTkFPMVRCMjd1M2NDUmlHMXRYNldpOE1DNkhsMGo3Z2hlQTFqQXV1ajVyVjJBcVBXaE11T01iV3RvSjhPUzM1YUZqb05iY29MR1FxS0dkN0h3Y3M5K1RRY0FIV01KT0dNaEdZVWhDQUpHYmF2aUpGZ05hSmNRaFQ5MWp3V05KY3VhQVc1UDU1c004SDh2QWVDdXY3VUVEQW9HT0czOFZQVEdrbzhGK1ZTNCtMRXl3bis2cWtZWDR3VExQM3dndjc4TlBPYkdYaG9OYkx5Q3pxZmRXaWMyWHFYY00zVElHQ1NHM2FRUDdWM21iajhPdFJrQXpDM1hxenlmaTVFQjZpZFlRb2Z2M1pZd0hZZEpOMTk2R1Z2aHoxZ0I4SmFwM2hWNjMxdDdJVTc5OU5vbGY1c0JicXNmVkFKWCtLL1REU1dRTkFyRnYrSlplSmdSc1FjSFE5T0hDV1lITS95bEpWQzlvSzkveEFCcDJqUC9VVEcwbitLeE0yTVdYYm1GeHFodG5hYUFjR0IvTE13Q3FxOUk0VkF4QUZmaytRN21HRmtLeFJ3OG4vZTUyRThMWlhJeUxCamdGT1p5MEl1Ym8zSjhPZkMzVlhIdzhNMUwvaFlEM042QUpGMkdhRzRHa0cwZzNkb2h0NTJCZlpkbC9oZTBzL0pBTEkyenRpOUFsb3R4VzRQNCtUWVFFVnF2VysxTHBUN3Mxb2MrRGVhbUcxQVpDVTNtRU5OeHBpSkFoSlJHQW54QWYyZDB4bWxUTXdCbUNIYUE2dlBWOCtCWVhGUGRUNXV2T2s3blBqMlhjaGZ1Mm5Mdm1Wc1ArZmlIVjVlMlA5Mk0zN2drQ2FvSFhwKzZKT2lmOTk4MlFSUjBlVUpqQUlrd3dNbDFYR3B1Ym12aDlPSUNnU0E1YzUvNzFtVzVzVSs5N1EwY3o0UUNOeG5nWFE5ckxMYzluZHVyd3FFMGQyOE43b1U1Qi9vczJEQ1N1Q1lpRWRleW5LL1hZYXlHYmJwZ2dQUnppQjhWL3RnZC9vY2huVTQ2OVhuSVFoTG1ac1RaaG9jTSsxdmJPcDBaRHZPOHhZckJvemZOY1Rjdk1mTTdOSmNKcnZpd0JlUlArNmVYUmtpT2F5RUIyTGFNNHJwRHpNUW9sZTEwRHByQmwyYVdoUXF1TFp6dEhFMGhIbWhYTWNCanJpWnFhc0xZWFdjQU9NTGxZVS9QcGw5eE5oZE1SSDh0WGFZa1R5b3k4bURYRzhVaVlWYm9IY0pnM0FIUDFTc1lnUDVlNWZWZEo2SjhPeVBHZnRIcklhdk9BUUttejFDbk1lSnNsVjZ4Nk1UYVJidXhPQTlUOHpSQjRnYjVjeHJrYjE2U24zYVc5NUlyUGttTVArMkhNcFJ1aUxXN0lhNzVBaGphZWpkK3RMdTVmODNmM3dRVmZtL0pWU1BSanMraHVHQjBzVm93R0tGMnpDSG15TWJ1Q2dOMGgwcFZJUWlITmxhQWtnSGcxUnRwMElSSklzNGZmZ1IxSzdBZTBRaGQ0Um5lU3AyVFhMM2MwYVVHZkpyNjFFbXZOOThOTks2QWNlRWVVYXVxenVjaVZnWVZkSWo3S0ZhQUwxb2w1WDFjODhSWTQyakxKYWZ1TEJ2YW01ZEVTSk13dDRSdDZLVXdpdjF4dnp5NmRFVDJQYWdsdllGci9nZWFnUUUwV3BBRWgyQmZwcHdjSVR5WkF5OFhEeVFVQU80NXhnU3ExQTB4QmdaWXVsSS90NG5Mc2J0Z0FBa0Mwb2Y1MEpMZGFEbW94ZFVrM0RycGx0ZldEZEVxM0NFY0FPNFhpalpPN0ZPc1htNlltQzdEVlM4c3NKWTJiL0R5aGd4aFREMk1BQi96WEJuc3JlY2lYSHpqcVpnQU1GTnFub2REMkQvSDk5ZWQ4c3VibDFoUTR3QkJyZFI3d0h0LzJyKzhGWXJnZXRVaW1rdnRyenVoUHdPQ1J0U283c2tSK25aUUNzRFFJaEtiK1p3TytnbGRaN3QwYVk1UGlNL2x5WDBMTXVYWXpWc01JRDBoK2xZNjRZUm9aS0tLQVJDOUN1aFpGZmVGS0ZncVY0eEgzVlA0ekJ0d2N1VWtXQnpvbkVESUhJTjFGdEFsWU1QVU93ajlpYW9ScVNZMFF2eVRPWlRJQU9vSDVUQ2ZORDZ4clhuT1piaE04MnlGNWZROUxHZDI4eEtMSVJMVGd4THRZS0ZDZVBZZjlzK3VCaU5sUkZEUmtnR01aUTROZVV2WDB3eWNnK1N5OE4rNStvTHgydEpOcWNLUWVNcmhiNDRLZUxQeWNrZ3JHVUJhVXpEQUFVUEx4YldsU0w2ODNDTjAyczJWSHFubUQyOVpGSFlOSkhmdEp1ejNiYVpsZURRbXVjeCtqVGlUSTR6WkpaenZTWi9UekpYOUFLd2pBelROMmhBUTBKMHJESXp3ODFvUE1uaHhaa2dhQnVaSkhCVUQ4MDQzTHdHd0FUYm8zbHFhQndzdS83aS9IWTY0QXYxVjhtRzJscTNqUzRDTzVEeUJDc0FXS0JFQkZqQzFrQTlUZ2RuTWlTS2EwaXd6NzVHL2lmUER5U3RSeDR2OVRTTU5ESkEvQ3dhUXdWZ251TVFaSUlURWVLUGdDVEtBdnptMUhXbHBVV0NYakFheFcrUUo2UG5jRmpKZ2Q2aklJRFJ4YjNnNHZ3TTBiVm1DMUg0MHFySG5EQXlVUVRxSmdveGJpVElHWWdhOFJFWmgxR0ZVcTlBZkVNMmJseEJqS0FkVTdjRVZXUGYrdFA4WUFja2pVL1M2REVqZVFQUlVEV3VQTTBEaUdpVEVLa1JZdy9tRmgra1cwSWFNT0VJZmwwNFhLeVVqOSszTjlBdlBxcFg0MkhGQWk1OHI1UWVMdVBaN0FzWnE0UWt5ZmFnbUNGY0xLb1NMUzc0NUE2TWp1aGtub010MStqMkJaRjNpR2NHakhyS3ZNZkxkaURvSDkwcVROZXhrUWxRYWdUdEhteEI2dXFJSURVMkJ0ZzhjTEc4RW5LNE1vRU5WL1FBbGlTQVlibDVpaEhzeXdDcXVBSjMvdUQrL1Q0NEF1SXNIRUg5YnRXZENLKzh3ajN1SmJJS0NhekFscXBiMnNHTElRaXZiNm04aXFJNFZzTGpiQlhmam5CSCt3NEMyZmhxa1QxcGdmYWxkb1JNYkJRQUNBaFlhaUliNjE0bXJqNHdJNEw1R09ldkNkejliWExiMENXZ0g2T0NuWjdRbjRrNzJjbXl2RGNCSUhJUk1SUS9XQldtQmcvN211YndWYndUWVBHOGlaQkRzamgzUkp3ajlyMThDK2hPUXJ3ZTA0WjBVTUNMdFd2L1B6dmZ2UTNzQWxKK2lCMzNaSG9qb3ZjT2tYSEhucktQOUhRZ3B6TUhISlY3aUxZY01jQmFPbFA0MlNVbDRNamdBZUIvY2tLUEpBYTEvSW4wQUJvTWNyR1Q0eGhJYUpNREFIYjlLUUR5b29GSTJmK25UOSt3eWlzNEFseVZVbm4wbmE3T2w1Z2Q0ZVh1UVpzaXpwZlF0Wi9LUHRCaytWZzVCOTBRSExJSGE4MktaRUw2UGZ1cVN0NUptdWdyNmwvcnZSZy9neUwxY2hlNk5QdVRVdW1RRDlLdE8zZVgwWFE1b3d6dkptWnZOV0k3WC9XTzk0TXI1ZUU4NXVwbmhDWExrWHRyN1ZIN0xVQWpqYVYvWnlFby83ckFva2Y2bkk0aklSV3pvY3hCY2xVTm1nTFlqUndvb1JtbjZXcmlZK1JjdzVrdU9wZzlvK1ZNSnQrUmczSXMwc0xFVHdMaDM2aFhvU3dEbGkvd0hLaEEyaVYveTJlRHlwWDJqcWcxamc4dHEyZ2p0c2hGYXlwazhKUCs4VzV0dTlNQlVPOUVsNTIybVBJSWU5TE1CVVl1eHh4SDlkOHBiUVZmQjBEL3kzdjRRL2ZmUm43YWN5ZFYrd1BxSTZ6MGFaMnJEQU0vNFl6cldmbXZ2NkFCYWx1ZjdBWDEvSEFXakN5dE1kWHdlMzIwc3h0Ykh3WkNSbHhib1lDeEtYSXd3QmI4aTMwTE9RZHd5aDh5ZzZ4d3BQY0J2TXc3UWNTaEhJSzZiK1NYeDVTY09ocExFUDA2ZUhrUEhDM1hZZzVpUWFnNmNMbm80Z3ZqOTZMMmdPcVlOMkNNUFlVWnVsbVFTblVka09wSFdNOHhXdVVCN3JOKzRYREgxa0w3V3AvK3FlRGR4Y0RwUlVyem9WTkVEMm8vRlFINmkwMFFJTVBIeVVPM0JpZThnNlJITE45cTlyYnY0R3hKdU5yTWJvVU5mMGRZaDdSK0hISGpoUEpPanVCcExBT2NFK3lnMHdTVjc1Z2ZZVFBVN01DUXhrWmx4NVkxaWNFTzVoZ2FSUlVwTEh5N25kTVgrQ0MrR2swUFVQVTU1SFM3aHdOb3plU3I2OU9OQVNuYkNVVURSc1U5eGJyeXF0eHBIRCtEOXVkSTlJSW1NS2RnaTg3bVVZb0hJVyt5dGdkZGY5WHdzYUEvMzVjcXZQVmlPNERxeDJZR0JSQjh2NERwMVdtSXU4UXBxSFhFeTlBRkdZcG9tZ010VFI3QTE5WGtyRGZOT2xHbjhNQ1F5YjRRT1puMzVhbXNDT1A4SnFxdmNTcFVmaGRhK01VOU01Z2paRWxIRERDRTJYNmNiemswaTFpbm0xTVU3elFtOE54bkJkRFJ5VmlwSWVHblRCRTFINGxMT29kRDFIVnR0NE9NNEdsQy8vVngwY1NIU1RteVpjdFJPQmpPVXRyWDdBWUpuS3A3Q0VLV0h1cTZuY3RsUzhUOUt3LzRmbHo4am9Rc1BmWnUrdzNHWlFORTNteWFzZ3FiTDZncUpRY09vTTlrSyt2d0M2RTdtTng5cUYzWVJlQVpPdHA4VFUydlRjTDExcmRwSUNqZm9jM2VFV0dUcXkvcjMxbTBhdUpIMHhCTy9uYjI0RjVqWVVYbXNHZk4wRzRpaE1JTlc1QWdocHU2TE9ZSk1vNWx4dXIzb3ErRG0xajF6d2ZOR0JVaW96NHd0cGl6RUZva21FdWtGVFMxcEE3NXdRcjhUR0dNV21yOXZ3TzA3MEplcWlNNG5qcWNCS0RPNUNvRjJEc0d6cEMxdjhDUDZibmZZamR3cCtseW1jckJVTVR4RXFCRVI0YnFkSGlsT3RVT0ROUDBJWjkzOFk2OUxJS0xaS2JiV0p6dllzNGZYQm01UkR1Z205bXpQd01uNGlidkRndWFmWnZ2cWM0ZE1STFE1MFFnSWM1Ty9hZFdrZlVXd0NtRjI0Ymc5aHpWZ0pFZUpjdlZicVlsZzFMRXJJa2ZJcWt0enB0TC8zenVRcFpodTVBQ2J4cGc1ejYwWi9vOXlEbFAyOEtOOTA1NnNZK1NCd2NPc3RYc3VEY2ljY2lZU0dBS1J0b016VGlVSFdJWU5qaWRleWxNTkFKYWl3VDYwZTJ1UDNvblllTXVMc2hxZzk5VmgrWGJ1RG1ZaU9XUVJKdGhPRXhHdWJrYzFTVEdTREhFS0NqS2NpMTFSVUtzWU5Nd0FHaVNrYjdBNjkrUXcvY05IangxdTVucEYwNE9YQWlmYnovTzZZYXlzZlJvdGEzTjVjT0dOWHEzN1ZXb045MnRzM0J5cnR3L2ZLKzJCQTdoTkJ5dUdOZ1ZvQWJIdDhoeTdnc0VDN3RDd2RFYi8vdmRPUlRrdFZKUm9SbWpZT3RJczRobGtzRzZRL3A0SFp5N04wZnFod2hsQVNvN3duV1pVRHBFNXhmckJHTHBuTnV0aFk0RWNXT0pOdEhSMFBBZG1TVFZuZXI5UFdNcFVGd0RFS3ZibmhEQXMvWlQxdWJRUzYyZVFEbW9VSHF3WEhxN0NMU3ZTbjZpRHNHRW9qYm14WHdsY1pWUUZWcUk2RUNDeElET1RXSGtGRE5sQzFjeFFBdCs4SXpqaGRCUlhnVFRZMG1HN25GNEorbkVHb09HOVAyODhRR3F2WDVVZUFYRXZ5VmZRZ2MyekVSc2poKzBLRDI1UGwrWVBMQUZHU0o5dUdPd3c2K0JyTVkwcHZXUUs0Q29rN1FON0JBek9vRURmdVltenZDWUx1SGxlZFBES2hEQk1OT01JY3REL3NFQzAyWk11UTVEbVNJQUJYeHJNeGpacTdyV3d0REQ0ellRTjRiWFJCQ0tmQ1lDV2QvSjQ4ajY4WitSV0xGTWVqaURPdVFYeVdrQUZNenRUeFFBME9Ya1FmWnNCb0FIQWhZSXI5QmtUdnJYOXhCRU1mZmhzNlYzcjB4TjJtd0VZZlZlblJqbUYzK1dqYi9rTTNGdTFNUVpZeTczbEdRdlBwV0Y1VkFwUUhVVEFIUlAxY2JwUkhDSGIxWThJR0c3MHdNUnpnVEVWSWpOU1JYb2ZrMHVwKzAwaXJ3a1ZPV3AvS2pLc0g0aFM2SDlkT0ovY0EybUR3VHdheGdIdWZ0Wkx3VHFJb2tGMm8vQWpNRHhjQk1sS0JFTTRxYi9pTXhaejlkRHBFZUplcVduQkZONHpQNUtwWUxRN0YwdkFpa2JuRzBzQXZjUFN0UmI4eEU0ZFBhczBmdU9uSHNISkhyV2hlUHVkUmoxU3FQME9Bd3g2d1FDZXlZTlJBWE5FVDlwUTZDUGdFV29XbnpJNXFkbTRRejFHaGd4d1BMV21HMkdqS1FHVWVmM2VleklBTXZZbzJETFMrMkJ2a1liY0xoRzRIVnRBaW9Rd1o4dVFRelVRNTQrUWFRZi93TGZ3R05KY0phVWx4L0pGZ1FzZGw3bW01eG51VEpVY25RZHNPcWpZSGpvRGFGYUp5REFIb3JtbUJiVkJWQ2hjNjlIY09KVktZT0YyZ29iTnZrRW9nZjZJc3AwSlNGYStrSi9DUkJEMVZSQTc4aFNRSkQ5akFManpkSHlhUHZFemlaUkcrTFJHdXB1cm5JbGl0b2prbHNDNUJVTmVaMVVlQU9qZjJBYjZDZ2xDNm1ESENtRkNuc21sbERJVUhFemJtWDQ3NWtGeXJEWjFQK2dHZ3c1MFhYQzRKNFJCLzg3VlFId0dodE9TclZBVFp4S1VIWTZBQVpoNHpiSHRqNGtCZ3grQk82NlZ6QVdOOTZTWEVvR1BQajBsR2x3bmM2ZGJTM05relJucUhvb3FHQmtBZWdTMmdTcDNuQUc0RFJ5Wnk5dTNnUzVrRHRrWWg1cHhVeDNMSjBvOEpLZ2w4akFEM0c4ekFOUWtLSUZOcy9ZUExtTVBrWG1zYjZFNnhpK21VQjRhQ0JnTFkxaTJVajlBbW9NQnl1bldKeGlDaVQ4eHE1aEd6T0Zrc1Fjd1hoWnllcGF0WXpBRkJocXF3MWtHM2RRMEpvVEoxa3NjUXRIdy9YVHQ2WUdCSjhqa0dCUFhWUDFRRDJrRVNlam9VN2V5M1RzWDZLR0c0U0x5emZVNWp2SW5aSENrMnFqeEhFK3ZiVENMQjlGOUFwcGlTck16Z0R6WFcwWk81ZzJZWURPaW1SNHdpUjJCY3BNQnFPNmZCNUE2Wk9DTWtCa0JRTE1RclNMd01GaWNlem9Ob0szQXFaY29ITVpaNzVNQmNycGxYc3NmcWdSRVlyMzFPc0VrLzBBRkNMQjI2cFhmc1N6SUJFRFdMd3VPVzVkZ3FHajlaSUIrOWpMRUZGcVlIRkNFQ2cwM05ZSXBmM0F6UVlYa2NOQm9yNllQTlpPN2R4anBpRC9JbDAwR3NOaThZdmpMbTdmUlRBRlFPZVNIbC9DcUFSdTM4SnRXWGh5ZXlHdEJSQ2ZjVFFZZ2I4dFhxV3pqRWxhQUFMQVFOd0VDR0h0dTE1NjJpRzZlVmVtZnpEWURCcGlWMHkwejIxb09XNC9GYXlyVlFRNGxXUHR6RVRMRkZjTmUzMmFWTDFLUTZtU0FKbG95Z0p3KzkyWU1vSzY5U1B0ZzZhbC95Z0FlM0x6UURIQ3JNM1VyR2ljc05nU1NQSlhnZ2dFK3NYLzZQUWJZWjVhS2pCSStsdmk2RVpvYjhaWXRNTVNtaG13UnZmRnpCZ2gxZjZGck9wWFlBb0hVaFFrZ01DZHUzSmdqRlZWR1JKYllPajBOdEtRUytJUUVXR0JMVERmTGU4MjhYSEdJcWdNWUlNSGEvUVRxYWk4SmdUVURBb0REbEJnTk5vc1ppZXdPMFV0clNSeGcwdDc5VHhrZ1AwN0lEdDBxbzhZcm9qSGV2VndDRm1UWDMySUFINUVLSzF3eHdHVExCdDIwelFEanEyaXhaSURGNHBJQk1sWG4ya0tBNjd3eXVpbVJ6aHdONW5ZOUlEUzA3d0ltTVk0cHVZUUJWSmJEN0tWem1mcUJIZUkwcnc4bGF5UllPeUtLVDk5dVEyVk9VZ29BTERuSkFCWVRRaU54MHJuTE5pUU9KQTZRaWo5bEFCeU1YSEdpZVhPTVFiU0FPQi9teGRjbkF6QkErL2NZZ0NQQ0xCV0VzNVF2bDhnTE5aejhJUVAwcEYweUFIaGJkN3lyY3dqNnZLK09zb2pUQlBRRnd5QVhsVWRnd2gvRVlVaGEzbUV1T3lURzlBTjNGZHc4QkJVd3dkcjl6Tm5GVEc1T2VHcXBlRnFKMG1JVFdWTk9kTytGd0c4endQZlBHU0FrSzhoTHZRdERXYWNXS2I2K29BMzBsTkh2TU1DK2tLT1pNYW9TVDJ4MEgxeGRBZ1kzQU1NMHExOWxBTjFZZG14RVd3elE2Y0UrbUF3QVRpSzhOamxHMXNuYUZHRFFzSzhDb3F2L2w2NkNIN2NQUVd6RXBxSkpiWWplc2lFcGI0S1lEb3BrZ0NFYWRsRGpTZ0trNytoUEdZQ1lKSzZDTHdUTXVTc2xOV1orZllzMlBkTVlmb01CVG5YR29JQ201TXZWeUl0TEJ2QVQ4ZHZmSzVlQXBybGNBcUFEcmxhbTFOVU1vQys4bTZ1OUpjVktzYytZRE1zeGpKZFBrZjBsT2tCaUxoSjBqN1RuTnc5UkJTU0s5SnhBWFFibmhZV0NBL3RVcCt4YldUUHJjcVVEaE8vb2p4bmdFcTZkZUtDU2FHVm1pYVFObE1kQjU5Y01VQUZVeWcvM2x6dTBrUmR0QnVCYXhUMDdZSmw4MGR2YndQYzNBdlNSNjVORGtyc0FTM1dhWDE5dVlxc3hMR2R0NUFyMjdSeDZ3MVdBT09uYmh5RHBYWnJ3eVc1NHhWTTRScllKbmRRSnU5WnM5bGJ0WFFESDZZOFo0SGI2amFXdFZwR096dmZGQlFOd3Mvb2JERkNNQ0liY1Zjb0xPOEJOQm9ENWtSRFJKL2pTZkswaUExeVZBSVpaeE4wNUpDblY0QVFLMUdiRkFJUnF1aDVWQVVFSkREbVdxVUtUcGVGR3ZYVUlndjR0OUlueWhoUUI5QkdwVUtJNXhobmc4OERXcnhqZ2cyM3hmOEFBbVlpbVNraTVMR2hqRU03ZllJQVVmQ3FUODE3NWN0NDYxNWNBNUp2eGZmSVFPemlxVjdjWklGREw1UklRbHNBNU5vYWR6R0w3bm9zTUxnd2wwRGQxcGNpKzIrdmlURDdodjV6TFh6Y1BjWGZnaWVGZDJub3BIVStXYWdaUm9tbENBdlM5MVJLZ1lmdGZNVUNkZmlNTXFabnFVRnArZlVFYnl5c3orQ1VEK0loOE1rdEZmSGkrWElXOHVHUUFLcVEwV01pNjN1aDcvZHdaWkRMREVvenV5QUFKMnV3cmJsY1R3YnN2SUhRQTBiYm91YWF2RmxTb1BVTElEeENwQkVoUmh1cmNQbFNxVlRLbVpBNW95UlFjbVZKbGFJQ1RYQUlHYkx0YUIyQ2plKzF2S29IVG1DdG93Y2tGYmJyWXVLNS96UUFjRVlkWmZzUzk4cElDZWJFNXRSbUFma1BicGNtTW5zdi9jcEJ1NmdDWnM2UGJ6VjNBMkhHWUFnV0dOekJRbXRPdzBPNlkxaTlCelJjZUljOFBnTk9VYUdrK09kNCtWSUMxclgza0hvRWlBSXNiNWhvbVFqQUE1REFhWXJZS09zTTZZT21tTnFlL3VBMTB5MDBzTTUvOCtwSTJ5REhVWERMQXNQWUZjRVJ5cWY5d2xiTFV2TmdRWU5wbUFJZmVLWVQzc0ZDVTZCd1l3WjlMQUU3RGxTS3BDM3ZmRmpRZ1JqaFFtaHg5N2FIaEtFSE5GeDZodTJJdWF5djRaWC96VUtxQTJlSXBySXlTWDQzSXZKSUJ1bHRyK3RFbG5iVTlJMFR5SnhMZ3p3MUJFUXJUc0lYY0xtaGpTOWJjR1NBMWRRRlpGV2xnMjFrcVVxVXNlTWFiQVhiYkRLQkdTNXIyeVVKelloZC9wUU1zMU1teFdIQ3o1dzZmaFVjRUJVclR6UEhrTUxtcUFqVkhGaEdLN0x1WXl4eWR6TTU5dW4wb1djTmJ2VWU0K0dvOCtSZUdJS1crUlRZTHk5eGtnRDgzQlNjYnMvVTlJMVh4bHFhMUh1aUxncVpPVjdzdnIzaE83aWM3YURrck1nR1FOK1A5aTZHSVdENnI2cUpwc0JwemVQOXFGM0Q0QUJpY2tnMGpoM0luamhGVytyY3FWdlNKSFkrSVhTZHFLRnQzRjNNNWRqYXoyNGRLdFFxdE1nWDhrZ0hZV3FaZ2ExMDZVZjZRQWJEVnUrb01DamJtZ3lPcDZGdVZwaDI1WXo0L3lRQlVsUllJdHNsVVpXV1dpb20wOE92bTNtc2REVVM5WklERVQ0NUdxT0tqZFFQd2tiK3lBOHdialhOWXU3OE1BNlNCSm80Ujl2S2xwMlVCRWsvcytEZERQTUxnQ0ZMZWVRN3pPVnV4czdsOWlBTUU1WUJWbjFLdi9DVURvTG5OcDFBQ2QvS2ZOSHZFSHpMQWFYUExIWnhFUTNBYU42aFlzTXEzdEJCR1o0Q3N2R0hMSzhQU01DSjBwNkdjR3o4ODMrZmo0SzI1d1FCZkFlRlZuTUp3Skk5aHlvV2JVY0VJaHBJZ2RPaklaL3JMOEk1SyttNWdoSW5TUFFhSHNUU3FsNGlqZDRlUi9LWnMzWG5Wamw3TTVVaUlmZnNRZDVNSHJ1ZlFpekxTNkJjTUVBMEhxMjFnWmhMNFV3YllMMjhGaEtSbGZEVFJpc3BGREU2WkVzOU1GNTV2alFoNUxxOWVlNGVDajFFenpGSlJocWcxL1d3MUF4UkZXbGhYOEFYMXExR21ib0FZajl1NEFNdTFCVmpJeUdnSFpaKzFNYWgwRWdGcmNKZmtNRUNKdkM2MDJmQ0pBTEFheUhlTWJ1a1BMdWJ5OVBZaHFsWFFnQjhlVXNSaURmZ0ZBM2pqUVFhRVpLc1o0T09DQVJZbEEyVFcyK3NoWWJIWGF4cVgxUHlWbVRYWFNIWnY2NncwTUVDRVZPVHl5cjBlZzlJb0pqSkV6ZlBNWnJQWXZRZzhEQUZKL0tSaEZSODA5WUlsd3ZvSk1nZzEwQWtWQzlwdEZCWUVERnlCS2RhMmR4QThrZEhBTFNQTkFxSzhpQUVpdjl3VjFKTkd1dEtnZFBNUXJDNGVKR0lSVWxGTXJHQ0FwcmxnZ0NyNEt4aGdYalptWitRQmovb3Zrb1NreUMyeTNtWnVDcXdqa2JnaTF6d1FyZjcxNGdXR3RsbHNDT3RHSnZuZzhncThCSk5RZU1FVmlBbitpa3pUMlZoWmlhUWthb3RlTmtYVkxjY0tpUVVlRUVMNko5aEFCYW9RVngxd3k1bmlOMGw1YlVEQWJnd0p1MDhPVTc3QTRTWHdQc1EybzBrWE1vU01CcFRmYittYlFMam16dzV0UjFFK0RFc0ZmNEZVbDVyR2tlNWpkR1Z6UXE3cVh1Z0FHeit3cWxQejVZRHpCdytuYm9YUmpzUVZSb0NRbTVudWd5S2ROZGhmSHZOdkt6cGJwdUFnQnBSSktMemdpb2lKL0tVL1FMRnNWaXN1U2ZsNnowQUw0aWRQUU1YY094NzROam9ZVU5rcDRkOEVvMCt6YllEaTA1dlpLYUFzT095ZGdHaEhDSDk5RWR0TUlMUXlBR000TFdNbGRMc0k0cng5eUNPOHdlUVpDWjdKb25MVW4wQWUyMzg4U2V4dC9tY0hBWHFMUnRLb2R5VU9iTzJ1bVNTRUF4NC9jTmgxSzBwS0Z0K2xTa3o4S2dUQ2ZmN0MyaW9OQUlYNEd3RXhUUEpScE9EWUtMMlloRUk2eUNRUC9ncy82dllTK1g4OFF3SnhGV0FCVEVhZG5KNFJBSEliVGVkcjVnY0FrYVhIRWtBczBhYkVoQ01YQnJLUEhJRnp6dWNlNC9XNEVrU2FJZzRIUzZaTDdlQ2NaK05xMWozZVBqUjlKQ1lZVVM5Zy92amxFTnBTMDlEbVFPSnNXMDh4WG5jemJhTWZnSGdNeEhZTWYvVkR4NVc2bGExdlRGd2gvVXhrNGNCWHJvRDhwUU5KS1ZvT3Fnenp5Y2lSS1RnNC9DbFhnWFY3ajErUXVYV2JjaWJ5QU9MYUNLMnplRXU5SEUydVJ3b2haQmJ4SHNzUWttL0ZCZDZSMThHc0t0bVp0dzdNYjdCb0FyZFZQaGxpR3ZMSGRPVmh6ck1qYWdmN1BLdG4zZnZ0UTg1c1dJekFlbS84WlN0TmpycXRWbWlYYzRRcHhpbVMyQ2liOW5GQUtPbEpDcVl4WUxLQWVvNlFxU0hXTWpjRlp4SEdIMnlSdVRpVWF2NExkUzN0aDBNWHBUbnRwQU1UbE11cno4ZWxaNXc0RmN1c1pRZkNDdnp1OUhySFdxeFRUajQ3U0FnQllCTEFscXlTaDVuaHdIdVExOEJKalZrQmREWUNOWVUwdVZ5cGR1ZTVsZHpFdmlSd1c5ZklZUllKSXFRMlY5cjlYU2Jrc1lVbmY0MXZIeUpYazhuamw2ZnpLRWRkcG80blVibVlJOUJNWmpqT2x0ckpOdzZRT3Bta2dBcU5qL3c3dFJ0RXNERTNSVGxwd0FGQkEwRGNBVjdtb3BtNUtwQzVJMW4weFRwT015eXZQRUFwam93VEptSTliUkdUdlNGRkNQMEFMMkJNUnFRSENVLzJwa1RrSW1ORHJtS0dpZVo4eFJzVXBIWmY2NWNqMUVOaFJlSUtUNVRvVHJZTjg5NE9rQkk3aWdRUlVwdTY5djZPV0U0bVFhbG1YWEZvVmszSUltR0k3aTZnY1BCa2JqbS9jNXpIZGFLUUhQUXA4aDNsbVhXZUVCNjRURklnTFpaaUxuZUdXYVp1ZFRGcGtnWVlWYVF2NEtLWjJTM2c0a3BGN2drZDMwYzdlZVlIbmd3OWZ6eCtNeW5WTTlPeFBiZ1NwM29qdTBCQ1lsSklRazk2SmpkMmcyM3FzYUEvTXh5d0VIV1MydjB6OG16ZlVQbVcxVkxYMEhZZWJuWm12b1l0T0NwajRwbm05L0xNQTNlUmtJZFplbnpXYmV4M0pPa3BaNm9tSDRwOElaRld5bk9walBHVkhPYVVIRWFQbVNjSThRa2haL3FwMHpwUGlCK1lWVWtLNUVBcTQ4eDJZZ3VyYWRjWGsrYVlOTmg2RldwdGU4dmNXdWlaeTlqSzZmano3VXk1NUlGQXozL2hhdTRDbVhCQzFTdTVYK1J1QkFtSlNnTUpMYkhGa2RPRCtRMXlKN3QzVEx6MmRBRTVJcWtkYU1oTU82MUtIVnphU3N0WitvUVhpZzJBRmN3emdjUHpEVWlseFFOa2xwNndEa1NDSDgrTlJrazZZOW9lNXZpeUZVa0huUUFpRGlVNVFJZVo1cG5jaFRFalIrb2dPaCswOFI1MW5oQnQ1UzBZVzVMYmNUa1ZoS0pxcldrdExpWk5RUU5HQTMvVElBSUR4amwzbW9ZaU4xQVBwNnV2MVU5YkhBajBQUGxzcEprb21IQ0NNM3JYcTdMY0oyaVVpUzJFVnN5aFFKVDRZazRHaUZUQ2hxbkZrNXpVRU5pdXlGUU00Q1JxTXdETHg0anZvSWtxUDB3Wk96OFF6cTFpNTA2a0VWWDBUT2h6NG9SbWRrUlN3NlJXeXN5WjVRdkpLYklDM3BNeTRJZTBiemZRQnQ3RGZEYm4wRUdZY2VpSDM2UE1Fd0pDRWJ5T1cvZzFZWkREWnhXYmE2Z0FyVW1qMzBJYVlLQ1pBSVd2SnYxcGExcTZwWmM0ZTZZWDJkREUyUFFUUGMvb2QxUlNZc0lKem1oWWo3UE94VEpLNnhrTm9QZlk5R0orQTU0cGlnNVlBbEk3VU5wVnhaTklyVlV3UUpMb2dnR2VrUGxFSEdOZ1VaaTNITG1KUEF5QUxYeHBocERTUXpBeEhHa21NUnB1U1kzeUxPSnI2Vi93S2RLYkcyNk5lUVRzQ0JKQ0JPS0w3KzQ2eU1hU0FEb01GVUJrNUFuaDJ4VzNTQy9CL2hxaHNQNmZWT0Y4ckNiTkVrbXBBTnhGZUFCRk9CZUFMZ05uS0FGMDBKRFZndFBWa3o4eGdVV0Juajl0M01sOGNLdC81bjJBazUvUjhOQzZScEhZd2tRczFXdm1OK2gwc1IvR0N0SUZISDdkWjE2Tjk1SUJNclZXTW9DVFNEcmJTd0FFMUdwWGVRUU51VWt6dFZIMVRtYU93N3djclRWR01vWlJ4NEJha01obXpBdjducEk1MGtqSXdKRjJ3SVB4RUtpNkxPVWNnaVFybGxhVlEwVWk1bVBrQ2FGOGl1Z2lqR0RlWXVsQlZkckZ5dnpJUUFZdFhwZW9LaUowaXFXYXNCbGJ4SmNucFQ5dmN1aXZtU2M1U2MzcGFtbDV5UlpDS3FEblRaQTU2UGR3MEVCTnlCb1AwWU1IbVFXakFROS9nbHhIWWd2YnBNY0dHM2tzVmx3ZXNVRlhvTFFXTW9NUlhRYXlISzVNclpVTWNBYUowTm1XQUpDbmcza1ZFMkFTd0ZrV2ErZmRmd3FZVjlNUVcwYi9zOXJyZXo3R1NndENGNHlaSHhNaXdIRnJHcVZTSUFST1NKS2xBdEM2MjZVOFlZNnhQUit6SUZtZUVLK2p3Q3pLbEtIa0xVL0hBcG80b2FBeXlxeGtSdHVDQVF6ZExQRUI2cXJ2TVFXT3Bkdkd3Z0N2SVZrY1ZqTGpaTmFSUUlMQ1NFV3hjMSt0NVhseVF6bVZ3UEE2bndISFlZZzJaV2JISENNVXNaRkRRZWVpdTNmQloyWUw1LzhvQStWd0ZhbTFnZ0Y2U2d6eFZXRmdhZ2F3WkFvQWxCNGlLcWlPblRac1lBbnpZa25JYVVTZ2ZIeGdQb1k2elV3U0VGQmNCR0QzOVFJRElEWHpDSmd0MG85UUJwVU1VQmxzR2VUTVBDSHVRNkpta05VTDlKa3FjamhWKzZyZDRoWk0xTWljMXNrQXRodnFlWWtHMWdmRGJaV0N1aFoxcU51ZjZIVWQwZDhuaWs3RVJXbVg3cWNaN1czcDF4bUUybUhWekVUZVRqcDh0WVI3UWJ5NmlPVktqT2hJL1NQRDBNeEpQc1NMdFFMY1I3dElyUlVNMEtoekZjTWx2Rkl4UU5TdFVVQXBWaVRZREs0eUFLZDJGa1hpTDdsNDNoRGJXU0RqSVRZeFJ6bnpZcS9TVzVWNUJDempzRUp1b1JwZ25hc1lBQjZ5cldYTUp3TmdtQWVSajRVN1FOeGNJeWROZnJ0YVBsb2hRVWpYVVpqWTdZMmdMV1pwS3k3MFZxUWw0aU16S0V2YWlybzlkMkdtMkljYW4wVWVzSmhhcjJuVHdONTdtcnBwZ1VZQ3c2QTc0VjZRK0UzVExpSU1Rcllqa1lXUWx3aUhjOCtEWEVJQzlCZU5Cam5UUTFjeFFGYXVFajBnY2poY1k0QUM1clhnV1I3dk5SK2dFTENqM0VLbkg3Q1dSSlRhUWU5cUJ6UFVpbHNvYnVzNHlqdGRmaDhxaEtCMW16WjZJbTkxTEV1TVpXUlNJRjRWMjBSQ1piMk05UnFNQVdHRXRZSUwxN3hYRlF0RkFTZDVXbzZEbDdVb2s4bU1hVHVEWXQ4UE5kNzNadWhGWkVpS1VoU1hndVdsanVtVlJjZnpWMmJ2OWZyTXY4MEFaMFd3OHZHT3NVR2FxWjdId3RjTTRBc1NDbjVIdE1ZMUJraVlGem1wS0kzZlhWVmxBWkZPY2lLZGlLSGc5dURFWmRZRE1jNU1HTFdrR3BLai9GVHVhM3B6ZERPOW1GY2EwWHRrNGZaV2RDTnZVVmJNRVpwNHJSTnE0WDJUOWM0QW1aQUhnYUxNbFJBWkZ5UjJLTkswUmRXNEJRc3hvVGVVZS9SU2hKQUJGc0FIWERLQTJaM0FybitOQVpUK3ZnMU42MENueTFqNE5nUGtnclFOZE5EMktnTVVNQzhDUDhBQWhpaXJHTURUeVdGck1SajQ5bURKWmRhR2M0RmRYQlEyT3JOYmRlMDZTMEFmM1EyMXVIR1JCQ01LdDA5OXlXRXZDUlg2SXNyN0hiZ0NNbURYRmk3TndkZ3E1QXRwMnpTdGpBdno5VHlpUnlQanpScXh1aXcrcFdNRDVSNjluNFVvSGNRU0VBeGdoWlExdnREQnIzK0xBUXI2bDNhQUx1NTZnd0VvQmw4bjdMN0JBQW56WXJ4WE1JQXMwNWxPWW1hWVA2SlVyU0lWakVtYldHYWJOU3JMc3JiMGU2Z2hIT1V5VDhnbjZyWTFoOGdlNFdnWjZjM2l6NFNZTFpBYVEzc1J5NHRlVkYxVVFJekhxSVFXRHJIWWtBRXdxb1F1YnNNQUZldjFZS2NJOXFwb0xxcEtpckFJNjV1dmptZkRqMlhRYUNpQktaYUpvWmJSSlBqMXJ6R0FEZzBOa1pVbDhEY1lnTjAzR2FDdEFtNEtCcUQwTEhNaG9wRDh3bXJTUWZZU2Vxc3F3L2s4RUlJd2Rwd1FPT2tXOVhmdDRMRll2bm95OXN3ZmsrRm4wRmx5eFlvZ1hIaTBHTXZMdVlZYmpyak9PYlJTUGhsaThSeVdoaHhWWGJ4WXF3Ym5Jcnk2MDhueDhGeFpQWjIrMGtzRzhOQXo5TG84bklwdTZoUExmTzFGMXJiUlNDN1hxT0MveUFBS3FXUFc1Tk1mTW9BODdHY01rRWtnUE9ZN0dZREJ2c1NKZU9GVlJhbXU1d3RLemdLbTdOQzFsSktRa2RxOWkxUkY4V1pDQ3g5bWl6R3pTNlVOM0htUk9EYnR6YlV1OGJtcnFIT2R3aDZqZXAwQnRKbDVaUUluQUZSN0h3OTZHQmdJR2d5QTBMTVZlNTBCMUl4UTVyQjZYL29vb3VoNXIyRlJ5Ny9FQUo4ZkI1a3FGTG0veVFDT2xaMzhRZ2VJSkJBQjdrb0dzRnN3TVdGVUdkZkp1eHBFL2puSHUrc0hNK3NkS1AyU0czNWRJaWhTUzlhOHdwazl0RXlnUXJaQTQycWtIeG9RaktSSktld0xCbmk3dWdURWhzSEMvbW5NRDkxU3l6RzZFaEVadDdTVHlLRUwyTUxVd1ZJNkxGWVZsSGJMdjhRQWg4WVcwZTN2TGdFWjBObnR3bzdLMGI5a2dFZ0NFZkRPTmdORW5iak1iRERzaHV4dG95dDZGL2t1UkNtNkR0MHYwNldSdDlqWTYwS0VyUW9ranp3REh4ZmpWekFBVlRoa1M2bVZRR0t0RnRKU0FpRGhvaUUvL1FaUWtBRVJRZTkxQmhqRE9KRUZOc01aOUpjWVFLaGdTWmZNK2ZVYkRCRHlTTlVjR2NQYmRvQUVETlBnYzZxWGdNV2NIQUFaNTVqYkJGUzgxQXlRUTE5dWk2NHpRSUhzY05YUVd6bFEyVnN4UUQvYXp4Z2cxcWVWNm5EY0Jyb1dZUVdFaS9MK3hPMkxFQThkZ09pWXd4eTlOeG5BdlJrcVZ3NG9Bb0NZZ3BzTXdIVk83Q1M5U3hFbWZIZ3hYTkI2YWREOU5RT1FtN25SU1F2WUZRWWd6Q3Z4d3FkS0NkUnJtWSs3V2srSnYvOWZNY0EyR2NCN2U5NEc1VXlKM21BQXdGdWpkVzR1QWU5Wlp4dlZ0SnRhWDlCMFJZTmtBTDZRQWtLVEFaeFk2TDNOQU83UGxFbGpDY21GL2c1TXRYenpvNXBVOWlRUkdUbU9oQnJxSnVSaXVMQ2hvdC9xTnhoZ1hKZzYwZ1orbFFHWThpQVNRWllNTUFKMFVUNituWHFtaERGQ3lwclNZMkxIRlB2U05Eck1CRGFYT2dDdDQxeHZWdndQVCtRV2xyMHNGQnFrWG8ya2RYWXJRR2xLWVYvNEF0eVZCenNPbDlIOEVxaXR5UUFjUUd3am5BRml5RWF3Sk4xa0FPSVN0Rnk1ZUhOeEZqTmpVUUpCRWp1cDBwTTRYeENQNk5zWXN1cFZVekRWZ0o4eGdLZmVjUXg2QlpQS3NyekpBRXg1a05qT1pBQjRvQUJleGJFYkVxRFlCUXdkU2srQUxidkIvSmU3Z0NGeGxnbEN3UWNxVFdnS0RKaStiaGxRKzRUYk5XNFpPMHIvZVE4ZzA0U0htN0FuL2RKcStDbmFHU3ZrdnZPK2NrUFZackc5TFBDOXV6UWs1SnNobVRuczdsZWhpOFFsc0lTOXM4bHBIS1pvVUpVTTROdmJneW9Wb1ZmZ1ZMTHE0bEpnam5aUUE5SkhpTFdQdU1OZ0FMYy9iR3AzQjB0TjFXVjVqUUU0Y0ludXJoaEFvWXNrYWJIOWd2U20xRTgvcUFyVXpIN3ZDVFZsOWFuY0VXa0hnUGpEYzhNT0lPUkRGZ3lZQW8zVVdLdUorSjVIWG4wT3FsREtmWWRLNlJUMllRbmN2Tk52Z0R6T1ZrMTdiT29zTTJnc0RwUkNDS0xTWHBnU29ScW1WMFgwQmUwOWVFTHVTd2I0K2k1TDJJT2trVlhRVENjTG42dTBuWnA3d1FnWjl1azVPdGZ1c3llcDVhbFc4eVpOK2p1c2ZZWTdoSXRJcnc4TDVMTEdTVEVTcGwyV1YzTUYxMzZnNWI1a0FJMHBoM2pIRU9jdVFDVm55RFBEU0RLSlZacjgxTFZDSGNJY2ttdU1wMHVBaFJvVDRHc015RjVpdXhIcDRkWTlHMzFRaXF6bEQxejRoaXNUWm5BR3lkUktrQ25TKzFQaUsvME4zVTRMODBKT0pZUFh6Z1FONGtwMmsrOWliOE1KbGdJM0dZQ2RKbWt3d3ZSUTBKbmgza0R6bnREQkdIaGdFOW83ZEhyVVRwQmFqYjZkQVhzUlpVQVlLWEdIc0VVV1BvZ2xDeUk5RTVYR2dwSjFXVjRraTZiZ2ljeUJKUU9vWTI2VklGOE1HNmE2Q0paNVp1RHdvQ2NZQ0t0TU5XSkRzMjRpN0ZOL2tjdGxraDA4MnFEVVdSQy9nTExGNkxYUjExN1RSUUQ0RGg5L1J0K0ZzT2UwSWdOZ0ppU1FHQ1dwZUYrUVpkNExER3ZwVG93WXdyRUZuMWh2U3RoTklYQlpnTWREOCtHNFpLa0Ntcy9wenN5UXF5S2ltSVNrajlvTHZ6dTRORWk5QmFuWnE3R1poSkU2R09oK0NyUXdvOTgzQUpVZ3pGNmJZU1FRTVpsbGVXZFdMOERtYWVZT0xSbGczc3doVHZ1RGNxcHpQa0tqOWtyZUdEaTZDS1EzNG45SDdJNEVObzRSWG5QMEdXKzByQnkwYXdiL1JLQXRISTNxK2QxU0FiTUpOSi83aG92NUxISUdaY2s5MENDQnhGWk5QYjNNdTFWZ1dNdUFnb3dpTm84MGUwUENMbXVCZTJKZVRTOWh6MXFXckt6b3FSb3k2Rkk1d0RBRkV4SVNyT3A0MU1temcwdEJhdndBZEppOUc2L0JmTys0UTdVUEVTMk1LQ3VyT3owbW9oVDFmazhPZElwS3YyQ0E5QVBacWxBd2dCWWVvM011NE5BbzNFVzMzNW5nOVVoZzBldVp2cEVJZ0VrM1hQd21tUUlqek5GbjJmcFRyYk00TUdMam93L2hSNHZVeWVQOEFGVmNqV3pEZFpvVk02akkxMzlzb1lxQmtMUTRFNXpiVFF3cnZkMW9pU1BnV2hxZGpCNXBDVnpHd05ZbDdLM21kYVJxUVBPdzY2enhyaTJ3TjZ5SkhzaTVJUFVMb01QczFldlJwbzdKQWpxY0ZCNFRKanoxSTRpOWhVQ1E5bmhmNGRUdW9HUmt5WWRnZ0tacHNIUng5c1pVei9sNHRraU1DS1V5cUx4bnFtR1IyTzBRM2E2R0VDTXNqWk9DRWVBdGJEZWhVYTNlNGZNVEFWT2NRQ0NLM0JpOSszSUdaYjcrWXd0VkhMVks5UTVLbGdJcXU4a3krWlNsRHZqeDNwU3dJWEF6Q0xwVndoNkkxV05CNjZTZjlBYTBNZXFGSDRsSDFSYkl1WnJVN0JWc0dvdkY0ellKWUxWeXI0SHhpREw0ZXpDOXdkWlFhaGdsT0V3SFlEMVJWd0Y5SlVNQTRqbG5MejMvaUJibWZQVFFjbkQ1bTBvcWpLZVZjajU2RFhJTzg3UGhrd3M0MW9Sblc3WGdXbWRoVmhQdGZRL0U5elBSVmc3aUkrRG8xYXZhWHBsQlk0aTBOcEFZTzdhQWRyOEZXUmhXak44dVN4V1p0cm5vVmNoZ0NseURRUUE2a3lYc3ZmWWlrWk1WVlExTnQzSDQvcU5mRUhoVW5xK0Mya205U2R5cFFtcVJYWURqUUFnN0lLcUI4Y0F3Nmo4UXBaQ0RKcks4ZWpKTHdPa1NrSWxOZFhDSWtFTGo3T1hwSitJRllqNHE4YUsyL3h2SDg1NDRFdWtHMUxEc2R0UzZ0TEo3aGhZNkMzbzNLSnB1ZUduMnZpaG9GNTA2VGc0NTFEc1l1UHAwTVlQUUQ3SVVRR0xna0lJc0xPMnZnaE5WOW9uWHo5VlNENHpMWHZ6R0lmN0VQVm5RSHc4bVdvdGlvVVFSZzlBNFBTVEQyNXVMREZUWFBXVnlGMExjbGRRRjdqUTQzcGNYVDJMQnVVVEVtOHBSenpHRHVDMHFMYnFEQTJxS1JZUHVpRkFsMGtOYjR2MkZqWHoyWXBvU01SVHpNVW10WUdEbjJySEtxS09Oc25aclB6bGZtWVdqaEc0UW1vamZRbWVKWWNlQjZHVWZ6dzVNNDRaSVV1a0pZcHA4UENuOTg5WGtlZ0RzajBvdW9MbTE4U2lQQjZaMTR4eUdmdllhOCtrUkhMTEpxSitWcUlUazFTVUhZWlByUGFicDVtUjRFd0ljbjU0VXcwOGtqRlp4cHM2QTZ1L2tpOFNkZ2xTRURsUEJMTExFNmRuTXpxSWJSdjBYMjZsd1Z1cldSdkZDMktaYXhSREhxQU9RanBaNC8zcFMrMVIvcWI4UjJNQWxocEdOcDhlU2hpTmdabU1BL2hiU2pqR2NlWkZtd1FnbzkzdmthNUJlRUxSTzJSQW83NzJ1SUlGbWZJQlFzSDVmRng3NEdlT2x5TklacGlCbW00c3VOSmVoaW5yTmhkOFpuWWhpZVgxVkZGckxEK2ljaVp4eWRudzdSU2RLdkZ3SnZ3bVMxTkJScmU5TkpBeXJPR1BYSUowV002MmtMbkduSXdTc28vNkhiVEVaSE91eG1MUTlOVDNkUUNNYzNGUGpuNnNpdHBheDZnNUx5LzI5Zmtqa1B1QWtmZWZNSWFsRWZtTzJjZ0pUeWpIVkJZYng2YldBeStlU2JBTmNKQzZKazhCc1hMWWhaVW9vOTh0clp0emxnbGNuYllFK2NLUllnZjdtY01ZM1I3UlNNNlIyOHBJS2w2NERvYnkwaVBQdGlmWU1MT2RMM2JmU0dhOWZ3T2FJaEFUbFlubk05YkdnS0ZkVDRvc3RaU3VBKzZKV094Sm1uMEhvRExzRVRkRkwzR251ZXhuRnZHN1UxRUxqVTlhbFV5OTVHT3VpTm9KYU1nZjBxNU1CTnE1eEtHRXozNG0wV0xteWw3UFZwMlk1eUJ4R2JZVExveGVpYk9zMWxJemdXSFFJQWFhRzdtcEpDZVhHYWN5NGUrUU15N1JOMEFoRDJVaXlrQzQyQWQxRjE4WGd5ekwzWnNobXk1dWIyNWR5b3dMb2IyNytJVnVKUHlTRVdReUxQRFFhWW1QSzR1RlFrRk5EUm5COFVsUmJZQkJPTTdxa1pZb0NkZFF4MDNFR29VdWJPNllUVzZjTDNHa1p4ZHhuTEtiYUdNSzJHeENuVEtXTHdzcFd5UDZWRE1DY0pESnA3alAvRVJWaVR1b0g5dVpzTFJNVEVoczY1REFTTHUrR0daaEZ1bEZEaVdBQm5JUTVFa2h2TXgrVlVHNGFXckFEcFNTZFpPSzJJUmRJbTVZa3l4a1dCdERsZ1FJbXJFT0NxbEttSW5Pb2RoQUdqQlp4aUhUb3dOSkU0QUdleEVxcWdDVFFDRVdZTE9qc1cyU2d0ZkI5bTFrSkt5Z1RPaStMd3ZMOVR5OHdROHN4MHp4N3pQUW1UT0lMSnBmT1FGcEVNU000bGhHVEhFTFVRd2FlaWNEWGdHa0RvV1FzQkNWUUJaUzJwNGN5QTlvcDgxOWs5dnZZVHpQL2dnMHlzYUVkbXVEOG1mNUVIVm1GOEpoZHprdlI5aHdDSEpHWVJHZ21sRnNCVnBGeEY1S1V4R0xxUmtjRWZTT3poSk9sYVl3dUlXRG9ZVkdraDBZTHFscHNFenFqbk9Wb0VvZlZwRERqRURJRUttQzBQT2pqakxrb2gzQlBTQ2lhU0hBRmcrTnQ4aEpOeDJrYUZ2SGxkUW13TFB3cTZmeGd1V0hVRzFmY0tSMW9HZFdRd2JGcFBnVmJBM21EeDdsSm1veUw2V1pLb1BZYmpLWE1nYmpFbUxwWmpkdEVuNjIxMnFuQXdpdHVMREtpREM3Z2Z2VE5FVWZlQkFUWUdLQnZFRVNhbXdubFZtOXlaTnpsRE12a3JaaVltZG5GSzJXQ2xvRk84UUlaNGdrMmZIWkhtZDlyUFlabDg1REVnY3JNaUdicGFvaU5lMDFzSEFQRUdrRE5ES0QrWHFUb2I5YkNoUkV4NjZHaVZ1NGxmV0xqVWdjWTlPUjlvUU9NR1J4cnZsSlB2MXVVQUZIY3FZZXdaZlhrNGFRc2FVQzJMdXZNSXBVZkJCRVlGLzRhR2pEdlZMZ1l1R0diZVUrWkt0VmdjcWdvWEpYMGh0NUpLVWVSdzFnNitUKytYaFJyMWI0Rm83OERXaFlRWURwMjVDb01aUmwxVXNhdWVJWDdQdkFFSW1kNWZXUjJRV3BuakxMd3dRRVRrTG5OTE5wbGg2QkhXVExubEVYN1UwQkpjTms4RVpTempHZ0dOczZCRVZYSi9nRmlmK2xFUS9Ka3p0R3pHSzZqV0ZZRWl5dWhFZHJPSVBiVURVclVXeEZFTVl4eVl1V2dESXNpVUVYOTlKSUJuSzJ0V0FDSGxSSGRmV1hwMEJjUUVYSm5JRGZlVy9tSmQzbkZtTnA4cWpKWUwvcktSNGVBQUkzRFk3NHVRMW5vVVpCT1VDMldMVUlMNTFqZ0VITm52a1NPL2cwR0FKUGgyUU9NY0s4SjBUenphYW54QVdnOWFFQkZTUWdkUi95NzZtVjVkRWhuZWplRE9Qak1Bc0JZUm9IdHE1TDlvdXVmUGRneWt5ZXZOVVZ0SFJ3ZkZKME1pd3BobDVCRGVsc2lyRFkvL3dZRGhFRFd3dmU1QkJSc0xjZ2JobTdqUGJpSVdBZ01uWml5Qkd3OTZYMFVJOC9xc3loVWRtZ1dWZlNmem5QcE5UWnlTQTZtU3huTTV2N1NnUW1ZVGtFUFZVWGhhOERsWEQzSmVtMEd5SWh0Z1BsRCtnem1Ya1RacCtWaXJ2ZUVLemNQOHBYQkFCWlpPZWRWM0M5amxobHhNaGw2d1FCeUFrbUdQRXdaYkQxNVpsRWNIUFJLWUFyZWVjYnl3UU5aeTBvTzROc3pIVGwxQTY0K3J0ZXRHSGNXcEs0eFMrY285MExQRXpKK0NQc3ZXZ2dwVlFLVEVTT3dSRENTVlJ5THVZUEJFbEhKUHUvQzhKclBpZ0ZNN1NTc2l6QWJCbmtOazJZMFBWNnBlYi96QmdrQVZieHI4UzAzSlFBVlhxVS9kcjJOL3VGQlRDUmtNeGowTGNKam5nZERBb3p3N3hwKzd6TDJsWFVFa1BvL3FtK25KSmFsbEpBbU1Tek0yRzg5V2hkTDdwY1JzQTdFZVMxS0FKZXpvOXZOTk5XY3B3bEV4T3RXQ05OMmlHOHFnY1J3UWsrbkFPOGZYTDNNV015T2NNdTZaRVRnc2JYSkxaSUJzcHhDVVZJdjBWZnR1RlhLT2Fvb2tkbmVXS2VNLzc5YTh4NmRYU1lCcDVsNkdaa1Jiak9BblVJcjFueXVTcUxNQkdOQVRrdnBHZlFYdlo3SmZ6OVk2d0RDRjRTZExrOVphQTRuTWlMWTlTaUdsODJkTnJibm5aYmwvcm5aNm5tY09jY0FWdHh1RkEvTzlYRWdkZ09tUzZ2bmFWR1M1am9EVUFEMitpcVBzeElHck5YNEJ1dzdDQjJQR2dob2dkSkFZTWxLTjdhTnRKSUJvdmpMMmVIRVdBR3krdXpWQVBDSmk0dW50N0xxUWsyenk1cjNTQ0VjWlFDWWREUnBmcHNCU09OVlQya0pZc3E5SyttRzBvYnlFaXY4eTRQMzFTNkFLd1A4bFV6QkYwOTRhOWNaUXpxOXhRSVJUcDZSY0ZyV0k0UnhqblNHbmRXR2FUS3FDZ2R5TDJReGNEMmtTVkIxcnhhYjhlUWJET0RCVG9hL25qdENDQ1ljYkpZQnFMWFEvNnFDYWVKYkVyV2lyVndDT05ubFBDK0ZHelhRR0dSL2pRRXE4QTE3YXdhNFd2TitvOTdkL0RMNGZIL0ZBTHdaYUN5TUppdzZrczJQdm00VmZ5NmZyNlRmV1ZyTTNad2pXdG9CTFBCcGlFVHlwYVlIR0hjWjU4dzlwNkRCRDQwU3phZHowQWNpV0kzRlpBMk9nVjdlUFZlbFE4ZjNqRDVid0c3Z3RnWnlEQ0tsSWFQNExkY1o0SjNoam90R1NlMzJJVXNyQ3cvQmVSZmxBYk9HTVZzTmlPODNJbXNyQ1ZBSW94RHFUaE9BaFpJQjJxVG0yQkVYMEZ0VkRIQzE1djI0WFF0cXR2OHRCdUFrMzVrK2g1eU5DdFhOOVZlWlFSbEF4QnRTckVrSGFlbEdLbWdOS0Z6TkdPbVNBWExreVRVT2cvN1EzZWJPQmYyMFBpc3owaFlNRUhWajdDU0l2QzRzTUgyTmdhU2cvaFdhcG1ZQW9wT0F2eGEySlA0YXJnQnR3Z1NqODBYSncyamtMSUlPTG5TQTJLK3ZmUVZnZGtPZWRvc0I2cXJuTENWUjlGNnRlVC8rZzJwd3d3czQwZHdZZ0g3dVRvc0JWaU1xZ1VxellJRDBCZXlnSi9iV2JnZXJHYUNTQUJtTWpCM2Z3RlU5cHcva1pKbVJsaE9hREFDOFlkd0tIZ3BZNXRhUnBlaVBHSURTdE1aZkV5RkZFMDZCeVhTalVaYXZnNG1WRWdkZ21wb0Jzckl5TkViNkU1SW12MTRDN2d0NCtDcG9WdFc4LzJNR0FFRHEvQWNTUUFmV2xjQm1vT1RqN3AyT3FpNU1BQnBKdkdDbWtTczZ3TUV1aXJRRVBWaDBFaWRZNlFCVlJsb1NUbDhPWHh4RHh0eHZxR1ZZb0RSTHhha3NkVitrR1FITkU5VE5sK0JsaVpGY3FKaWVZQlVoN2pHRDk1SHdiR1ZLQ2k3a3NHTDRKeXdmbjdYVjUwYndWTXh0aDNTVkFiYkVnSEY1SVlwVUVUVUgxOXZxbXZkL3lBQXkrTmp4L0VRSDJNMjVicm9TT0RJbDBIUUExeEJuY0ZVREJpQ2tiRVFsd1M0aENoOHhGVUVBWHhObUNDWkUwcEplR2pMQitFYVdseklqN1lzZkdFRXFjOGlxM0cvYkNkTWtVTnZMc212ZEdqZEZVc2NmSmFxL3RQbjV1RUZMQVZ0VUpROWhrNFQ3cjhLZGlReHNIS0VFQmdqejFnS1BBMVdXUkY4eEM5RUZBNGducGxOWnFqRmhrTFBzNEF4UTE3ei9Zd2I0NkJNZzVma2pidXdDS0xCeEVBelE2ZW0vc1VlYzdTTkZlcitudkhHV29XcUJ2blJGd0toZExFTXdoaTBpVFU2WWlMR1hNS2xmNkZpWTNxamlSd1pJWG9MbFNOK0MvVC9McW9IUndiaVQ4Zkx1cTJML3phM0hJcjJCZzhvU2FCcWpFNGxLb0ExclBHNG1EQkFaWWo3VnFtV1FzVElYaEE3M1I4VUFtSjM1UkF4TDVKVnNuR1pWemZzLzF3RWF4WmpNM2JORUhyMXVCd2dqUVRJQWZtWmlFL05WckhlOWhVeDNJVTdjbEM0V05ldGxQY25TOGdyWG5KdTh2SklpUERwRHF5bk1hUmR3VDVpQ3E1MXo0aGhIblRRZE9tb1p0ZFNaYklQZll0MFk5eXB2SDVPUHVKOGhraE5IUE1ENU1uai8wS2ZCM25kRFdBTG5rZkYwTHd3dzgrTEtyS2hMbTZkOGFlRGthZ1pRWjF5VFQ5d1VtV1huNjFoVXE1cjNmODRBOFByQ3QveExTNkFkYk1UVTBqUXdad25yOStzNjExWmpWNFIwczBzR0NDNVhpUVpyT25mQlNVM1RIVC9sREZneU53bFd0RU5od01uNnpnTUVVN3Z0ck1BeERteld1UE1BZDBJS0xXVGpaQTF5M2dmZG9UR08wY3Y1SzUvUGt4M2ZSUCtvWTJ6Q3lVMWNzQVVtTUM3Q1Fvb2lESHdHSGVBOTY0QVNITUFVKzRHVGF5MEJ1cUZCYVU1SDlXakZOZWFXRGdhb2E5Ny9PUU9zcEVWMHlVOTlBV01YOFd0a25qenZrTk4zWjNIT0pzME0rNlFMaU9xSFpJQnc0ZEsxQi9kN1JscWtsMUJrSHIycWtLVHUrS3BLOXVNRmpYTDBCMU0wNkx1Ri8xZ3ZOUGRoSnRHVGxpQWIzZ2ZkaDc3WC9YWkRFRWpOUUtIRVRSVXhnUmZCK3g0WkVhZ1pCQldPaWpEd08xUXVnajlnUVJNekFVMkprN3ZRQVhyck1xb2dvc1dscFZwOXRlYjlIMjBEaDhPSUwwdHY0UHpTRzdpTVBQc3l6VERQbFA2c1czOGtBelR3N1BVVnB0M25STThxNnlBTzhpQ1FtcTYvbU5OTGhDNWgyVnhPS0hZUFdiSWY1U05rdkFodVRGOHB3R0lJVmNCY0NwRE54aW9zREJEQ3d1QUdsQ3l3ODlIZDI3SHVkNGJjWUFMTHlRaGJZSW1TT2p5akhielAyQ2dMMEdOWXNVZjRMSFViYUpXTFpDWms0QU5DVmlIVmQyaFVNSk1CcklCeGx4aXdZOWFYcUswRDdacjNmMWdVL09rcGdrZG5QNHNIeVB5RlFwVkd0eDNoWHAxWndSaXJ6enRFTW40OVROSEJwT05HSElUM0VHWElyL2N3cmw3anNHeS9CRjVjQWlFaE5DMGthSFIyMzRkRlN4anFWUW5OR0RMcHRnc1lHeGVZUTRKc29oRE5HZDFlOTN0R2lMTlIybUthbUVuNUVoZEFjclRLSjhySkVWTHJrWCtBaDk2cGpLcWNqQlpLYVhwZGIzZm01clZPQitXVkpCd0R4SmpzTXYvSTFacjNmMVlWL2lWTHN2MHNJc2psRlVkZmptVXAvZStNdis1dUtkTFduT2dNL2F3RC9DemUrakZpQlFHUXprckFXWmdkaHdJSWlYY0E1VXp5Y2tMYSttaXlWeGZJcVBITzZGaGlEalB5MlBGMDdHWmxGZys3SGFKTlBLcFJ1aStRUWRJcWhBS3dKU2d1T1l0cWFsbjVVT3NGSU5XN2hnNWtob0JqZU1yNnRwV2dxN213QTFTMVpMNElpcW1xRVR4ZXJYbS85RGlSQ3daZ21vdktOVGlXQnBUSjhXY3hnY2RUakg3VXg1aUFMbGJkeVVaNjh1elFYMXhLMFFFWm1paFRZZzl4dnd6bFRsaDJwRjNvOEpBRElma09jalBHaFdmRUpBT1dDV1I4TGk0QVdPL1pzUWMxbmc1TmlCcW90L2NNaWJlNDVxT0JqdDZyNHBZQXhDaWNMSVAzdmJ3c3dHaUUxV2dqUEJnTUlPdC94a1BKamJFTGlQUy80V291TFlGdlVVM3FCMkZ4clhvazEydmV6MXJWN2NBQUxOV0V2VTJhenNBZjBnRGp1SXdLbmtSVThGZU8vb2dWOHpITWpsckJTS3ZNMCt1bDZlR2NXQURjdElQOGdTWjhkcnhBd3JLSkdLSFlWYWdCeVJrRTlaT2RwQWFFU1NSSm9FejBnRS9VRExFbjh1VGxqZDFLT0paOERsQU1rUTFhZmV4NHJiZ2xTbUxPck5Kc0FCZ0pLUTZzRFdBelFBY3pWSVR1Wk5iNVhUS0ZSWlZpYUZ5VkJIZjRtOXlFNWJxZ09EQ3p3YTJhOTZlcXZpVVZUdS9SNTRmeEhJZFJvUStJak51NEFEbk0wU2VpcWtLdGZSR2RxVEtQME44RW1RbzVBYm1yWUQ3YUNFS3g5a1poU3JIclNLL0VUTEV0Q1c1TWtxYnNmU1NXTEJGTkozbEtZQTZCR0dUWlN3VzRFZU5tM1VRWWd0VHZEaHFXRytzaHZZYkZMYk5HTVhnUzROR0VNQXYzNnVxU1dCdWhzOUpmR01DaVFnY1JFeTJ6aHRqK1ZrV0Zka253MCttb0wvZVBOSlVDdGd6bVpMbGE4MzdmcW5CNy9NNXlqVkU2S1lvanpUQW50QW5HNmlveTZDaUh5OUUzWkRBbkZGQ2dPa0FFMkdMQ09jaVV1RExJMEVTWnNrVHRpWUJPWUtiS1NzQ0I5WlFqTDRTM1RjZUduREowWXBSL0R0bkxPUXFLQnA0ZkwyLzNjcUllSWFQeE5zcHNpbUpEWFU2dE4rOFlZNityT2RZcEQxVGl0NVY5TzJhVmNodG9PVUROeWN1akJ3YUhXQnZRLzk4N3F3L1ZBZEtDdFUwTnVwb3JHaUV6clpMZytuUnR4Z0VVeEc4NVdhN1Z2RC9WTmE0eFFkaEQxaFdDRUpOSnVDd3BwY0swWGM3NWhDRWtVSDVXb0xBcG5EaHZ4c1R3NnZWVEcveEVsdUk2LzlzaGNUaWJRRlRYbURZT2hBT3kyNTlWNHlGTEljdS9nTGdLS1F6VVpSWmVQRldEZ2F1QmVzZGtjYjdJTEFQSy9UYTk4RllzMUl6RzRtWWdWd3J5U0dNQ0t3YnNIcXZFMmlnRC9QdXZ4Z01BRUlJUythQnFwaldJclFRT3RVdUNvK0Y4b2IvRGMzT3lIRSt0bXZmc2pTcjNuQ0NjYmV6SnlZS3plUXdaVFZ3TUpzQVBoL09STE95c09HKzgxN0VFclJKcmoxYlAraGw1ckYwc0U2V2JzejQ4ZENhUmRWSGp1VzV2VlBtOXFqZi9rdjZpUkgzZ3JxSGVVM1h4RWFYSW5BeXhYSUl6b3Z5eFRVaGRITEhBNHEyOEhMMDJGRGRqeHJCVTVTS1JVVVQxcjJCZ1paSkFaWUQvM3NtM1JGS0xEVmNXNUM5b3B4ZzYxU1hCVHpFMUFiVWxRRHd5SnNUbU1KdHZTS21ZNEZqVzNaYkhKZVlRTnpadHpBYUNpSGhjSEhrdktpRURKZGhFc1pIZklhTkdLVndCN1F0dzdjdDFuenBHRnNzazV1bTV0SnFvc0dQTlNmUm53NHBXQWgzanI1ZVV3akRmUncxVVdtMURwa0pwVXJzT0ZHYWxOemZhV0NhcEFlOVV4UVptQzJJWkVodExCUDBVZllhMmN3ZnNlVzVCYy85Uk04QXBrMXFNSVNveHM3aGppTG1LQTJWSmNJTHhNYWhGaW9nczBmeHRPZ0VicDRYdnZUSlZDYmEvSkd3TGMvajluVlBFOHJCZ29UTXhpQTRxNjlxZzk4bUhVR3BTL1UvUUtxNXd1TzZGNXE5ZlRIUXZ1NGw1cXRObm1NTHJtTEpzYnJFT0lTdVRrSC9KbFE1MlpNQWViRHlaN293bDR1Q3pmNElGdDRjdHM5QTdjazBSUzN3RzlrM0loNmVQdUpTREFkS2xsK1ljbHdvOXV1MFl1aDdiL1M5akFKbTc0eHJHeitVYlRiaUNmOWFsMThzYTRLZGo0cXl6UkxQaHFOREJCc3VZSVFtaHgwKzhiMGF1b0lJZmU3aTlJZUNaMTlDTDFtd3o3MFZ1TkZTRGdXQ003RHlFREJLMFNxdzlFTTczMWQ3ZkNsTGp6cTFpbVZOemlwYWVFeXgyWGc2ekY2MzBXVUhJaWszZC90SXJEZXhZcERtV05oaWw1MVorK3NFdURDY3d2TXZmYXMrQ2Q5WWRHZzFUMitQcHUxekt2N0xvdzZlNzlPU0FPY0xDMld3ZUgwZCt6STVrQU52WlloVnpHUCtzVEtyamlHRGFwTkRhTmNBTG5IV1VhQ1pQcnJJRjdHcHJTVXBHNklOd3BhdkNqZHEwNGhHa1NUQ3JaV1lpaGdBZE5oRmhha0E1TnhYTHoyV2hXMEpHdFFWS0VqeFZXUC9BU25YTnNUV2hoWXdDVHQrcE1zQTNoaFV1OTZJcFdkcWw0eGptd2JCazJGS1pmNDF1M25lRzRsUnA4QThMNWhZWGVsdmx1YzNKUzNZNjhBNityNVRrRUVvZTFoTmhYVnc1bmtQc3Y5S1ZEVjVGZXBqL0tBT1liUXVybU1QNE4yVmFMZjdKSERMZmFPMGE0SW16enJxQk5QQ3NvM0VVMzVtcVpLZEVJRkp5T1MzcndKMGR1c28xek9Ic1NDYUhja0Y5ZEdDODVTTExXU1lYQ1FWWnlVckZ4ekpLUFFEZnh2S2F0UE92dy81djFnL2pWZ1kxaENlbkRnSmxMamg4UEh5OG41bkluZ3dRMFhHQ3ROUXpHTm9UY1VlMGc3dWNwdFQrTEJoQTJBOFNBRVcrV2RVNkdHRGRhN3pJZ0R2RGxkZUx5bytIZVlUMno0N3NEaWpMOE1vSzhGL3hCbDdDK012RWVnNUFZeUpSRzROV0RmREVXU1BUUHhtQVFGODJIOFdJUWRXNk9qdzVRTnpBSExxYk9mT1dlMFlUUERlVDFETDJSVk11dzNNdXI2QStHTUM0S0JSWjZrR3g5Z05NdXJGNytyS1NKTjZBOTBJQVJJQW5MeGtBWTAwMzhxSk1aRzhMYndZWlRURGFrTWZwYW5jR1lPakZDNmRuR2VLbGxRb3N1anhRVExMZk1VeVNoQVNEQWZCMGVyUTJLTjZhUlI5Njg5S21EOEhnd1ZzT2hDTWxqUUgrNTQ2K1pqZzlITTlVcHRZa0lwZ2tZRkh3dWdZNDEwVGlyTWtBbUw0SVFHVmptSGFad0lRT29Nd1VYSWEyYkJ5OWxTbHRzc0JzVkVyVUg2d21NMUZoWVVIUVVFRUNtWUNRSkpDZ1Jsa05zZ3hja1FZWDJONEdmSEhKQU5RQUxYd0k2WlNaeWQ2b0VmbTBRVUVyZkRGa2o1NUFobVpGb1FjR2ZySVFodGxJTzhZQUhVY3htYkdSK3dWakFDRUltQU8rQWlwTEpIUXo2QzA4R0lvbG1aUHVpTnlNbExCQ2Z6QUFJdm9HRFp6cERLVWxrV3d5RTVlWURQQVBHU0REZ2kxY2d6aHI3RU9ydWhObFdZY3BvZndxMVRVVHJjV3JlT0JVNDhGdHZBWEw5cTROeitYMVJTUHZSY1JGNzliS0FCYjQ2d3d3UyttM1lpQnNwOER3QUNXNW16UEV1MFRVbFNGNmJRWUlEUkI1enVIVFRBMjNxcW9EWXZYaFloMUZkWjFnQUlKd1NSdU9ybVcvTkFid09lNlpGRzA3UkFaUTVnQ2thR0tWc00xMHo3cE04ckJNKzFxdEFmeGZIdU1LOFAvdTRQYVJTUVpKeWpDVzBpZWJEcUMyQk1paURFVTFxUTR0VVltOVE0bGt6NGlNdFlNYklkTzRLMHo0cWlnT1JqMXlvcXBocFFRaTUzSTRIRHRhL3czZzhoRld6WTR0QWZicEpJYktaWXFtS3Q0NVB5SEN0Q2twb2IxZE1rQ2hBWDQwZEdxalZaV1IrMFlsK1hTbDF5aFZnSmdUckd4aTYwVmtZOWRkS3huQVFwak00WWpkaTFxQ3lBQmtEbTA2MUpSMld4WWt3VHJBMkU2b2dUd2lmZWRZaW5JRitIOTM5T0ZxZ0pOSHpGOW5nTnNTSUpiMVhTY1R1akxMQXVhQXRLRmxSQzdXamkxSzl4V1ZDT1pLUFZESFZ4SFRJejNOY3lKNkd4MVBZcU5BSVlCQll0V2tUeitwRjRrVVhoOExkN1BQK1dTQXk0cEROUU53YThHeUdCYm9oa2IvRjVWVVFLbzB4R3FOcGNreEd3L0pBT3doSG9NTWdPQTJNb0RPY2FacDVhMlh3UUJnampPK3FOUVJ5V2R5MU5PNEk5MVZ4dnNWNEYrekFoa0Q0SHNTeGovVXFmYUhFaURXSDIwZVZwRzF6YmkxQmllWEZ3NVgvdW5wQTU1a0lURllTbk10U2dZZ3REUWtnQ3dSalhBQVYwMG1PZHJBQmtEcURlSHR3TGNWN21ZQWdDbnpnZ0VTOVpZNGpXQ0ExQUIxUUhlc1c1VGhJaWFoaXBtSU9EdGlBT1VPR1ExanNEc1RPc0VBczJBQW9KaVE1R1hPV04rQ0FRYVc2cUpoMFdJdWxheVhNNnJJL0VYMUVjOHNWNEJqckFCMzlPRWovTVVEbHY2VUFiZ0RXVGRsVmhwdWloZTlJdXB0ZXAwQjBnZXMrbzNyQUpCNnczSk5xQ0lLVXdkWW5mVXhMaGd6aDFxM1kyZ2RFSDh5d1lxWmp4TFZOMGNreTA2aTRsQy8vTEprZ05BQW9Ud1dHRnd2d3JRRXFBaVVzQm1oc3pGaDUvbjZjNFQ4Rzk3cmdnSDZhL3QvMVo4amp6c1pvR2tRRzZ2YWJVUlZGZlllQ3pMUHZYN3VEeFk5Y0VnYUFiZ0NNRVhNdk9jRnVuK2hBOEQ5WGpNQXNWa0xvcGNqdEpMeTA3Zlc2TDNCQVBReUlVNDJUQlhNdkxYMmhDYVhESUFmR25HdFk0SlZjK0JKam96OWVvcmo0aTd0RlM2dGNEYy9VOW5MMEhMYVREdXE0VjFuQUdxQXFKT0xtbm9mQjJ0a2dBUlV6SGVReElpMEhBUkw1K3NibTF2bXpvSUJIcG14U1pVWmtTRDZZWDRNbVI3VmZObFRRU2ZjbnRWS1dQa3hLdWxSamFZcGdBY1ZGL1ZSR3dGMEQwQUdrR0xlckF5QThmZ0pBOUFRZUFtc1JPU1FDdU5EUGFrTVd2REIyakEzR0FBK1lPUWFheUlObmxWZjJHWFI2UEh5a2dFc0RWVmZ3M1liZ0VjanlSRzU4dU16N1RRYUNEUERvK1JaQ082VlM3SzhDZVAzc1JHcEdNQ3pSSm5MbFVtQ09sQ3QxbXhrQU5OOFFYSE0wN054NW1XaG9RR1dDWkNrR04yTitSaWd6S2lpb3N0OU1BQ2VqWjFMTXppcmlBQUQwS2VFb1k1V0xQWEhGQStzYlAxYXFZQmtBQzNtM1V1d3oyMEdPQzNSS2dZSVN2ZDJ4S216N2pvTTNRWXVDdERGZFFaUXQyM1VENmVkMThMOWU1NFJBNDZKbWdHWXpROUxwUXc0eHVWelVUSUFRcmREUkd0OGhYcUlhUTFHdERldGprVWRJdXlIRGhVRDhDVlRBMXlzSVdzSlgwZ1hlNkVFSU1vYTFiaTRwNmhxelptcUJwSVVvd3VIQkUwQXFxakl4NlVOQkJaYk13RWdJeFlZQUN0MkxQUGt4bFQyUzFPQUlOeWlPQ3pOd01rQUtPYWRxTFBiRE9BSnVkc000Qm15OUVtbHllVzhFN3NBeXZCUmp0OWdBQjg1Z0toU2gwQ1dEcXhMVDRpeXF4bUFHWFJScUFRbUFCa1hwNWI3Y1d3Sm9DYTFuRmtNZTlJZmVSNVZ4ODQ2UkJxODd5U3JHU0Ewd00reWxpMmE1eGhkUnZsQzhCQktNbU95dDBLaWJhdUFmV2ZKQUhnTG1nQmt0bU01cCtYdVpFWnNDRHJwbncrVUFieGMxck5qTU5ESzdYNWhEdTVidm9mS0NKQkx3STRXcTU4emdQaU5HSzc0NnhRaDhQcXBxMjRTRlNJbnJ6Y1pZUHlZOE1xdCtub2piNEcrV3RUN3FJUEtIUmpSTWNPNWduLzdCUGpTa3d2RUxyMjFGZ205bkZLMVFJbEJmUmI4aDR6ck45d1I3RXF4WUhsTnFiUUJIdGlJNzA4bjluNldObm5sSVZobmFabXBVVEZnRWhDcXRRUjRCU2RBZ2JBeGg0ekNDRzJOT1lUWUZGUzR6dGpTekwzU1NFZk9kVFVIOC9qbnBSRWdHWUFFK1JVRGlCUmlBTXZsRXJDZ2FhTkE5SG9PblNMdS95WURKQVFhSllBTXNVaVpsQlYvYWdid3dpOW1BdERCd1pvSkNhS3hIRzZVVVUrWHgvWElmS0ZxQVdpSnh5blFud2wvWkJqVG9zQVJmcVFHdUdiRDYwK3NXU0JrS0FGbW5GYkZzaDhxUU1rQWVETm81VG02YnJtSGd3SUpsaXlGWVZHREVpYUExWnJ5aHd4UU9ueWtxVWt3VjN0NDdzeFR6RmlSTUFMOE9RTkVVT0NrbmRiQzY4ZVh5QkQ2MGkzWnhlOHhRTk9RU1d1T3lKcGZOUU13cUplcnBnNk9Nb0NsbnlNRExNQUFtZStZdGN4WWhyV0lVNEJIRXFXTVRPeGtRZm5kemp6WmhRYTRRa1BHalE0YStCeExtZnM2c09SaFY4LzE1TDNTWVFFTjFqRzVaSUM1MTJBOU5PbG5vcEZKSEc3SUxTdE54UlJFZWl5ZXlGMm14c1NxSWdEV0FMRE9wUkhnVHhrQU94RXJmbmV0UXJjdUk2dk1haERscUNiaEVQVmVTL1RTV2dLSyt2N1VwM21aV3RNWDF3b2themhoWUgvbHE0Ry9iREpEU1llcE10ZzhNcEpsZUhjWnB4RGlkNmNCT2ExeWx2UEdUS3Z2b1FHQ2M4eksxR1B6QkxSTE9ocys1U3lXeDNhSDA2eGtBQmdUMUR4WE1nRERIVlF5SVpONGVwcGhaQUw4U1JVdDVxRG9tN3JzK2JYdEtmR0xETUJvTVdBeGFpUEE3MGdBNUVISVYzUmJCTzJvemdCbHpydEJKTHRBTHdSdHB4TU1tbFdpTGRWQk1BQTl3Z1BpWWQwVjNJQlF1K0NmRmdQUUltR2FNVktSeUtnbE50R3lLbnBMLzQ1MnQrSVVaaXo3T2dkS2xBVWN1TGlSbzhscUxtcEJvcjQzK2tWRDVUS3FVL1FPTGcyWkhER29DYVVTaUxDa0VSTHpOTmJJQURCQ0FrcUdPajZJTnhxTUZNdm9HZmFaaXJINmhZalN3R0owSjI0Ry9wMGxBTGtNUkhyU0ZsZjJhN0sxYnJyU3VJVUNadG9IS0ZJa3NuQzdwN2ZreXE0b1hWRzVQLzNUZmJlS1pIZjArMFNlYmFEVDlGRzNHRURvdG1Qa2o2WUp5dFJWZlhsQzBHaGRaT0w3UEVTck1XdUlFdW14SXA2cjlCRytvVnhHZndObVFEWm5BSXB4eWx2UHo1cStyQzJ6Wk9waVF1ZUgvQzYzZWsrcVQxd21WQ1UyQ29DeFYwWWNodEV6dzA1aEZKakVMeFRHU0N3RzlCUWdnc3dPOVA5dU1BQzltaXlhbjRrc0k5OEZjcitCZzl0NWJ3OWVEYlpNa1dpNCtGRlpmZFNzTjdFRXVHa3BTTXVwWk1rUm8vTHN0UFFGTUZXOFllUTdwaWhDQ1V4UDdxSnNCUVAwaTFZeGdKVWJXTkVGRjRXV3NNMEh6ZWxVZXVFdU14dmQwQkJsSVcvZHpzNWpYR1pBVTVIbS9GLzNpUUo0WmpIYWI2ajd4ZjlzVjh4dzVqZUZGTnlyd2hxYno2eXlZMjdEOHRjK3dYR0J4VGdwdm9HTHdBMEdpRVJEVFUrVENzWDhtMGIraW5WcDgzT2JMWE9MZTZZS2dxL1JHOGd6TUl1ZktvU29HVUNoMnlZQmFIYnZWT2kweC9RR0VscktHRk1aSmdTa2RubzJtenc4cjI2WnNxTnF0a0NucDlueDE4c290WmJhQTUyd3ZzZFo1WCtNUktybExiRnl1Snd1YXRPaXQwRGR4UDhTOE84UVFDRXg3ZFdKSWRnYmxBeXdsVEh3QjFuRE1xRW5qSy8zWDRZclN5ekdWQnJCSmx3RWJqQUFCZ1BSVkdXZGk2bm5ySVY2a3NXY3E5ejNuRDRKdmtadkFMYkJMSDdxd0RKRVV3bWtaNGVLQ3F0ejFPaTBvRkk0T3dpY0ZsK3pOS2pzWjFmWkp6V0ZxS2dyVzQ2OFpaekNLYXNsRW4vTkdzT1FwOXcvR0VBYlRpWHdYZGtZaTFqTDI4REtLYUdFZ25oWm8rbEQ5YjlXWUFoRVJvVzBkOEs3SFVXMExOb01DQ1NIWUtBNURLMUMyR3dBWlNJRDhJS3lhdXpQR0lBbEdBS016L2xIODd6MFY5VW9yR0lTcGtkV2cwM3dOWm9EdGkxK2xLZHFNOHdvNGFoUTFkUDFubVZqV1cwcnFVUjE1anVnSW1JcXhqSE9KcEtyYWtvU1pOWFlWczBDdzdOYUl2SFhKTmhEUUIyODNCa0NzZlRsNmdhWklhMlV0NG1WQXdsUmhwYkF0MGYrTHlGS0xKcUhzM0NUOTF0Tlp6QW9XamVoZDRteEErck9RU1BFUnljOEkwMEJZQUFHOTJXQXhwUVIxUUhHSnpyVThsZFltZWhlZVA1UjdjNHgwMWtOTmhKWVZNSCt4SG9VQlg2eHdMR09vcDZJVzdJWUdiU2VSS2VWVkNKMmxQQXZTRGZreGVCc1NuSmwwM21ObTdZYVp4aVJVTUNMYlpab21Ea09kdktDaDNwNFBBYThqUDg1VUJSdEUvSjJuTUExYjRLV2E1RTJRWW8wc3dOMEQzZzMvZ05lcld3dnhCaGVma1NKc29YNEovMDU1TFdvQ24vd2c5V1NnaG4zN09xSWxlR3F3UGlzL1BzWWRkYXltSE5kSGRQTFRINERmTTFlQWpha3RRdG5LOEtOM1c4RkRBK2szZFRGWk11YWxnYnpBVGgwQ1NBdHNYMCtRa3VRNjZWRm83R0JoTFBWNUhGbzZEaXBOQ1cwRklXTW81YXBseUpscTVDaXdLaVJFU3BrSEJuSlA2SEFrUlBkWGVEdUNJcVdJU1JYczVHL1NlcVdHS1AyRWZEUUg4U3gwTWpaS2MwZXVRYThSSUIvcVk0RXFrcWJBMGN6R3hCc241NVE0UWc2QklMSXkwenFlSTNyM2luK1EyY0NyNmNiSWpyWk94Mmo1cXRkbm1WajdhUW96NXVpME1nRTRSS0VlM1R5c1JYMDBWcjY5c1R4SllIQU96SHBFdEVQSkR5cUUwc2pCNU5YWjdOQWlwS3BDUzBOREZ3MkRGZ0NSTXZrSUxiZ0Zlb0FFaU5RcGN4R0FtRWx2RkJreWt3Ym5PU0UrcHVHVnBvOTlzRUFJVGZ2QzNWRUNkb0M0MjlPUG45OVZoT3lDUUMrWWZCakxxQytCdWpNaVFLaVowdW1rSXZpaXJ4QW1JMlhVN0xtU1FyaWZDbEZJZjltOGUyaWREcElzVUVCeTVKQW9ISmtUNmdiWkdjMTZaaDdCeUR0cis4b3JWd2sycXFSb3B3WGREQmVhQ0hjTkhkemp6YzBMQlBkL2FIQ0FPQ01VdjZRME40Z29wUFUyVEpUZkQvVHdKb0F5SlJYaGRrakdTQnFKSE1zWFFLMXdmZ3pGdkNkZVQxbzY4WGNwNVNrR0tmQWozRlhsWVEvMm1vVEQvQUsvb25sdmtKbWx5Y0ZYbFNKVmZ5TjZBZXdPM3J3RHhRWFUrV2pTU2NBalVRRDFtMUNBMFpPdXNpK0JZVWFrR01jVDhqb3BrYUtSbVkyN2lHckZsbFBuWnlaVGFvd3M3OUcrWEVheE9kRksweXkvV3hscHZpS0FZNnpTSHIzcWUyU0FkcHlNNnRldXpLaktwSFNscklZWWpnQm85WGZxc2k1YTh5aDFVQzRrZ2lYaUdvYzRCVitBZWhXSXJQeE4wL1NDZ3lSY3VZeC9zNGdXRzRGb2h1RVNQb1k1RlpuN2hVQzBkaVVrMjYxeWtSUVFHRjY2bUUzTFdjY0Y1dm5aaHliU1hCZHRnTE93amFQR3FPRm1mMDFTbk9IUnlSYVphdi9PSGk3eVFBWkR2RDUvMG03d2dDNWJVbWRCR1hYMGU4SzV1YWRHeHFmenI2a1ZYOUhJVE1rTWFBN1dGV1NkeExoRWxHdEIraE04d3V3NWF5UTJmRTMwVG93bm1rc2x6eXZTRUIxUEZtQXZQWWdIMWdCK2duNkRGZ3ZZaG5aRTdLWlpidWNkT3ZlZ0tuZ2lNS00xTU5oUWlTTnZEV29XaWxjeS81RHR0S2ZSWG9tRHJHZ1hwWWZUNWRZdEhVd1FPblF1TVVBTWlVWUx3YjZYMk1BRjVxcGsyQUpwa0VqRkV6Tkk2SXRwak9YdE1mOFc4NkMvWWpXSExHalk5d1JvNTVFcUJIVlBBQm5HaUJxSHI5ZkliT3pQaE96VlNwcDFGOER1eTVUMEVFMFpRakhJQXEwb1N2cDR4bE9hZnhQK2tUbTc1eDBDQS9pK1pDTEhqcmtsZFNTQVFnVVBVVGVWL1puKyt4WEhtMHdHSkJ3TFRET1NKcXJCdWtVajlaT3FKdTYvU1VEUkphUTV1TW1BMUJvVWlYcHVzWlAvVE1VVEVYL2F2UHFudUZmemI4ZGRXR09rQ2Y0empSYUw3M0FWYVBYTnYwbGlOTjFyM1dGek9iZm9FK21MRmU2bE1BTmJMc0lveDZZVnlBWllFRUNmUndjL1VJR3lQWVpESkNUamw2TU5EdE43K25NYURNQWdhSmFISWlWZ0prMWp3MmU4Y3FmcGRRY1JNYU9vSjdoRExpT0pBTUVpWlFiazlTbElmSXFBL0F6UWYrckRFQkhmT29rUSt6NUdkbmdDaVlzK0w3RHdPTG1FNTJUay9ERzlKZy9lL3o4S3VoTUVwQVV5UUQwSzV2cmgvYmxDcFZsZjFjQmFFb3Q0YktTQVV5cmg3eHJkbkpUeXpZYWtlZ042V092eEZVM0NjUVFzYUxXbzlJSGZrekhaaHdMWUZCenVHQUF4QjBJSGlCSUNrOEEyODVSdSsvcDBJemN5anBGcW1wZkxELys4bGd3UU1yb2FyMG8wcS84bEFGdVNnQjdSS0dUZEhLSkJLUU9lR0lEVC9jYjNOczh0NHlwUmhidlJlTVJRMTVhRlVWT3dkNGpPRktjVHl4TUU2M0ZBSWpUWkp6V3kvU1hETUFjN2dVRFVLdFhTRHBxaW1tMXptMUdvb05BcTZpYlNtMmY5TEc2djVaQ29KeDBrUkwreWIwNUZoVFFMK1JPbnE5UFgwWHNBckxtV1ZNcHg2RW80MW9SUUVVSGFLWFhRVFZvdlV5eGsxd21xYS8zcGc3QUhBcy9XUUlxUGZPUWVaWXhRYUk2YnM1c3ZDdG50LzdVdit6QXE0MnBuNGdEWHJzNG5XZWdkZ2V0eGdtQS9sNVVmUHdyQnZnd0xpc1p3TFg2UWQ5aWJUVklObm5NeHJDYjJRWEdvZVJzaCtUVlRudlN5UkhQODJIT2ZuNzZZWDZWQVo2ZkhJWUZEbk5Qd0t1RDBEQVVsUVJZcFFSSXZRN3A1aWt2NHVheGs2eWdXOWQ3eVFDV3pvQVJnYjlnQUNvbFRWYTRqMHJaNEZ3UGhtTjEwb3lOd1FnZDVuWUFlMThudkRNQzVFazR6MGh0WDdhU0FRZ0IyYkVrZWNrQUR3K1hETEN3RjV0VURFQ3R2dCtIdDlyM1hYd0VDTFF0c0llK3pkR1BzWS9ETUpZRVZheEtsQmJVWlpIZ2hYNHZHYUNXMGlVRG1KTUMxK0E0YTIybkRvQWFTd1JNbERUZERTNGlxS3FkWkpENmVpOFpRRzJKMkFaNlBwT2ZNUUJmYU9BVjdpTnRCMFVBYnVIVkVSSWZJU1JBV28xSTNlK2xVQ0NFQWJ5d3pEenVQSXNGSDh0V1dieHY1eEFRR3NhU0FiYlNMaG5Bd3pxVEFVS3JOem1xS255dlpnRFFKMGNJaG81N3NtemZkUGVhb0o3LzNBbkt1aFV5UkZjWlFGb0JnZGdnOFN1RW44d1cxenpHOVM1QWl3RzI0SGd1cDRBb0ozVnlKMW1TK2lONnJ6R0F0RDJoNC9EdHd4TDBjWU1CS0pJNlJhR2FrcGdqRndCUWg2RUt1NHFIZVc3TWpiaTFCODhWUUl6UU13N000RDhwNFNTVzZqSVpRQmNTQnNIVGprcmFqdEF1R2NCZXFNMEFqVFFvOEpvQ3Bta3hnSHhnQVQ3Vi9JVE95NzRBaVBaYk1VQUFPZlNDUXI1bFVhQkNZcUFsdUZGVGFkcUhKQzQzMFVFZmFKOVIvNk9nWGltbm5EcHNOYWtYVjN2NXkreTJTSFlJM3o0UVZCK1hFc0NTRWpEWGdSSGNaQklIQjJTR1BJL0MyL2dxWHdROGh2YU5RVytpK1haUmlSMnhkUEQzYzZ4YnRUcVJmVFc2ZW8zUjM2SUc5c2tBQTdZTEJxQUVTZ2FnalJVNm9NeFFSYXZEcmhvTUFMVSt3YWVubzM4SWVZa0FqSm9Ca2hiVWNMQ2ErMU5mQzUwQlU3cnBNeDJSQnpVa2N0c0dMeVFBdDVrT215Mm85MnlKSXdiSkFJVGVoNk1uVG03M0pnTkU0bkNXcGtCa3p2cUtMMEFYWnpMQVVDdGhwUVNEeENNV0hpVDFlWTdQY3JVd2Rub0tublFraGI2L3ZvbGI0elFUNDZrRktkWGd0T3dTZVNheWtBaXJZekpBUDFxYkFTaUJrZ0hvcVJZZGNHMDZJRDByemdCb0ttZWNQdktVaXdWZzMyYUFIRkl2UDFld0hkNlhrL1REMnFGUHdCblRkRkV0SmxPVTJBQzBLM2pNa0ZNc0drcVNzR0dxNWNuWGVtRk56c1RoeThpWHVMckdBRkNkd1FDd2hYZFM0dEdQWktIVkRPdjFGSlRUUUc1aUdtSmxpQ0J0U0dCWm54cHA4YndMVVBseVgzVHBDc1Vic1FnSU5mOEM4dHBpQU5zMXBqRG1yazZHeStEem1peWhLQkhyQk9vNytIUjJuQVVmODlIS2xEZVhnSHVPaGo3VDJJNWh1YlcxZHQ0VCtqT25YZ29BR29GcWhMdTB6RWNVMUt2bFZMNU1tWXVtSVBXdDN1ejJHaFNUNFZVR01JOEZvYVhuYnBtaEk5RFFoL2tjOHR6bXlMZTd4RHBxWXVZQ29HUUxlbXI3TUZoRDVsZTZaSURzK2hTNXFmTVo1dDMzYWdtSWRtZ3pBQ25uSCtWMkhiRUF3ZTdXbzJUa0kweEVZeTNXaHhEdHo1V01Dd0I4bW0wbE1IZnFwaEpSOWNhcjFaUFUyc3BUcEhpdXdpQnlwcjZMOUVMNGxNcVE3M0tLSXVPWGhxRFhUTFNldlpXNE9LbTJDd1RWTFFiUUtNOVAyc0lyTlpKWkhhVkhxUU02SXo5MVlSSzFlZnRLTEhvYWZKeDJMQlYwL0FVREhFeVpDS1d4VUFMWkxoa0FqODhOV1ZoMnNXd0FQa25KblRvQVlDdXMwQWJxME5TQjV6SmtwMklBS24zRmp1eVRRZ21PZ3BvQndvRWNsVWMyWVRmdzVJMi9ZZ0J0S0RUUE5CdXRtNmNYTkFubGkvMnlwUmxrWkFndzhTOC9ZNEMrSVo1YkRLQXlrdWdNS3h2RS9HSmxycVFQVndIR250UFlDdGFGL3RiNURRYUFLRmRWUEZTeGNodUlkb1VCaHRCUG1wb0JFSzdNZjlvTVFMdUxjZkt5dlFDZ3ZiYXNyelFFcFpldzd3M3FTWXNCSW9RRTlLOEV3R3BvWU4xZkxnSHplVkhCYXRwMkJ0SHpXVEVBMWYzOXNyMDNDRHFxYi84bUE4QmowYU5Tc21KU08xNllPZ3lFcEMxczlJblJGa1NxSWU3WjZla0RwTzNYU3dDN1dLYVgxcmpxZmFWZFpRQ2pYc2tBTytDTjFKWUdRTktneFFDeHEvVUVCSk5JRTFHWVZNdEpSMU53N2R4SkJuZkprRHJEQTBwZGdQNldVZGVOZllUcnQ1VEFLMGs1ZG1VRnE5eGllTHZpK01XR1A2cHZIYUtsU1ZCNThUTHZjV1FKbzkwQjBkZUo1SmNMS1FKWU1oOXBnVzBCS0l4RU1BTlFneTRaNE9QakR4bUF3cGhxd0cxVGNESUFBV25jMjFyT01OTUJzUlVrb3J4Z2dHZTNCTk1teXh2MFZ0RXFndEl5NXZhdjBybERFd1UweDVJQkVLeUltRWI3WUtvTk5BSkpxdVdMYmFEN21wS21aUjc3aTRDUU12UWpLU3dtUDJlQUtnQWxHSUI1TXd1UkhBd2dscHUwQXpCekZwTlVJeXFrbGh6QW1xVkpWSVo1dlVoRDRDeURMd0k1KytzbGdGMllqYUVHL0E0RDJBVDJNQ2RtRFlRWEVPNEE1cFFvR1FCR2VlNW5JeTFRZThTS1NkY1VxSmhsNGR5SkJJUzZYbFVNZ0xoK0ZPU3EwM1RhQmpxOWN4L2hmTkg0aHpveFYxU3lTTlI4dG1TQWtzS28yVVNVYURZamk5RU1RSzNFd1NRRFlCeWNBY29sYjRsVjdHTHBpS2dvbUU5NmhSdmxuVmlxTEtBZmdYTy9aZ0M2ZzIxQitRMTM4Q0pkVk00QTc2cVh3Z3RvWW1Cb1dXWDRDRi9UWGVkTHBhNHRNMjk0eDJaUkVnbjY5SUs2bXkvVER1TkdQSzhRQkJUQnUvWmRoSnl5ak11Y0xaT2psd1VUdlpiTlBsSHoyUnluMkNrcC9JTUM1L2t5Q0hXSkdIc0F0UmpmWXlzNThhR2xLWGdVM2s4Uyt5b0RjQUdnRXpEZGdtVUFwbCtTMVZaK2d3R2VTelhndHhpQXRnaWNGS21hNVRRaEQrMW8wMGhZQ1FLWldYNVIybGlxbGd3UXUzcjZ4N0Z0Wkl5Nnd3N1RGOERRSjZadlJ5azFTZ0JBM2dlUm52UGJBYUpzV1V1MHlHREovV2dSNHpncS9zUDBBS21Ud21oVzlDUmJGbTlCdkxRallxQ2lKajYwWUFCcGRmekRWUWJRbDRKbVNDY2c2Mjh6Yk1yaWQzT0daSTNhb0haQ3FWdGRSczRGOHowVDNac013T3ZLNG9XbXhZVzFpWk5vdmRLWnhFb0V0RDg2Z2Z6UDJOY1B2T1crcVpwMGlZbzVIczI1d3h5VWtSUms0MUl2cG8xOExDQjVSU0V2SDlBdkFrU2pPV1pxVmhkTVJPRWpPYnNWc09laHppUTFLWHhDMng4ZEpab055OGd4SXJjZjBXcDhhREpBSTgwTFlwTmZyekdBdTVkODdmZU5sSUU4RVNSY3poQ3F4TWtBZzRSU3Q3dUFPL1RENVUzd2R4N0k0b1U2OUM0V1l4S2RPOXJYc1djUVFPNEV5ai9mR0xGVE4vWm5qRnlpWXF3SW9UVENEb2sxeEk2b0tIOGp5SUZ2S0dYZlpTay9NNkZySTBDVUxXcUpubG9GRTQvQVJyR3dYRGFDSFVocVFvMElSSnJ0czRoYWtCdjNUc1pvNDBPVEFiamlSUXdrOVAxckRCRDIzajZjdDB4ZHg4aEdGS2l0WjRqWHFQMHFTRUVvZGJ0TDUyY2NMbStDdi9OQUZpLzB2ekhEWWhJTjhZOVpMUnhBVGdLOUZBQmZLblZzYVR1dEoxMFdlMlVWMHoxaGg4UWFuaEpCQ3JzckczZ2xpM2tDMkNoTm9Tc0FpSHJ6SW1sMXdjUVpvSFVuaHlkbW84MEhwQ2FCODQ5bFdibXhlUEltbDRaTGZPamQrR1lVTkVxSVpoMmtJWW1XcXI0c0FEbHQzZW16YjgrUS9kRjBvaUJGUXFsYlhib2hpY1BsVGZDM0h5aUxGK0p2RjRzeGlaNkl2RmE1amZ3WWdlcXRBTDRjTGJiMG5zU2tpMTE5d0xLdGppOWhoNG8xM0l5Sld3cWtrL1VvNFlpQzR6dzBLVHoyeW9oMWU1VC94c3ZzVmdWd24yaFJsQmNGWnRFNUlER3VML25IdEt6ZCtwYXlKNVhESy9qUXUvRnRITVFQMzhxV21FSTZPRHh4RzlMcmxkcCtlNFpZYmN0dktDSWtSVUtwOTFXWHZINGVMbTh5TGErTDRvWGwzMENZemppSnJFNHZjR3RmZU95N0UyaVpmd3FsS0MvcjZXVXRmbGRsUmpFekFaQWtOQ3IveUl2WWd3Y0JpYWhjRWUrUVJVU1hJUXNDN2Jvc3l5UVdhRkYwNXY4eTViSFh0STQvd2xTaFJDeTBqMnA3Mk1hSDNpMHZrVkQzUmVIbHNoWWlZZHVKdFpKWkJ1UnBBdVd3Y2lXT2VxeUNSTG9pODBHU1lvbDFhN2tzdXhKSnFpZm5UUXBndGdGRzBZaFQ0NVJoY2VVQ2NiMjBRdUNiQVAxdWVCS3hpbzV2eXhhMTJERmxTNFE0Y2FKWUN4SUFkMy8vRm53WjBCbERpTXFQeEU4V3JNOXlvbUJZYWdNSitpM0xKSTRMdENnNjhiOHU3bkpYcjJHNS9DT05sUmFVN2ZrM0tnTlJHeDk2Tjd1QmhXVFo1cUlhYWhSckQ2Q2ZiYk01R280VVI3SG1CRlZqRG1JY2M3SVloaDQvT08wZUhWWnRoNHVUSFdpTUtlYXpLcWVYM0RxclFIUHFzL1FvYmVBczBVNndGVjRQNjIwVW1rYjVXc29QcnBVc0tPcEttSTBQNlpZQU9ORVBuaExqNXRBWlBTU2JiWjVpanFGYzZTaUNkVjhSKzRGQVpXZVpSQml3QWkzcXVPM0V3WVZkVDhOeU8xR3hnRHRiRFhuU1NKWittZm4zSWkwV0dXQi9EUTJOclNNelZtUTk1S1hWT0E5c0lEVDhsSWVvaDUyMHR6SzBtSU02M2NnMGIxQnh2S1MvMDBaL2dJUFF5R0hXaFp2c0FVdjJXZlhtMUh2am5HUUNKWmxlcVZlYkdxWHprdXdkRmYzMzlJOTdxWG1qOVd5Y2dIZzN4TnBzbHpOWlpqVG9ObUVCQ3RUZERvemJFRE1SUFYwbVVlalNwQis2cm9waWd0UENJaEJwb3FveWlRVmFkTkxKLzVXalJhNHJodVV5RXhsMnNBd3NuSVFKc29hU0NrS21aZ0F2ejR4bWNoS0pGMEJtNkpaUlJCWTB6dUxQS3NMeHkvSGcrKzlhK2dOVEh6V1pXWndRSm1NaXJKK2ROa29OekJXaHo5SFhHSFNaMUFFbDVRNUVucEo2a1l6RTY4RU9ZMmVkM1ZxUWxEc0ZaSDdhZTBWUlVvclBQWGxDRzJCRXJhRG94c09wc3N5b0VBbm1CcGFnc1J5bUVia0I2UXYxZUdWcFZBWURjK3FsTFVMMTZTcmpsUnIvYU5hNGp6S0o2ZkhERWZIRzVQK0NmRkRFYWRZK3c4V0piUytZeHVMUCtMOWdpd1NUSTl5NGNnZmN5YTROZW9mUWlETXFxSzlkU0N5RzlZMDJwQ3JsMkQ1ME5meHE2My9JOHhKenNPdVRSYmpFRU5aRHA0MU9EOGFDZkJkYXBxYzhkMHJLWXFlOVhia01od0dmc3RDT29oNXNwOVU5V3BWRmEyWlJVUlNVT2pNOEJDbXBtQlFuQzRwQ1FWTEVJbDIwbUxrRkRGOEkyTUs0cmRlb3ZORmpJaVc2OWQzZXRkYXNTNHRXenJ1bThjcUJ6SzFwVTVRNStaaHoycUFXeEJjNUNNTGliZ2ROWUZya09SN0dyT1VNZUc2a2s2akMzMDlrQUdZZmZBS1JNS05ZQ0R3VDdpd0pEY1ZjQ1RnRjVqSjNheXpNMjlvQk1rK1F6OEhPZ0pQRkZyK3pKaFlsYlVZcm5TczZ1cnBUOW4wbUpnSmtQUE9RclZoSGFjUWM4WnFiemFQUm94NnNFTFhkblVWclFHb2o2dHhycEhRVFJNN2FsUWdiMHkvd2tHcVdHVVdxdXpJYXd3aVlEQ0RUeTZLaCtzZ1J2SWdBVVI1dEZpcUUyMWt2RitKM1NnWm9XTWNvOG82akF0bW5QaVpqUmNjWnJEWFFmeGpTckVLRlhKSlFoTWdkUk4rbjhRcXJoLzk3cDJNRXdlbWF5TmowcGllaEpIc3dqc0pDa0dZQnFOSW5ScklFTTJBdUsvTU43VnRSazNrMzUwckZ0TEROWExGM2xwcHgwRUF3NFI2c1JrQU5CanFKbHladE1LczR2VElsb1J6MmVyRHdyOVhkY3k5YVExUURLNG9pWmlSQ1JDTXRwZHczQzRwNnpZSXNNN3A5L1JrREtNVUJTcEVhdnZnRHRCYlo3QURWQm5rWEdaaE9CcEJYb0E0UVpSSTdoYmV5c1Fwa0h5UXFRU29iNXVFODlDdGNCc3VGeTFQdFgzaWhJYlRCM3d6aFIvU0dXd0l4c3FKWklDczI2TVkwUUxKR25pMWZCWFNUM2NDa21ZZmVPU21STEFGY2hSMUJZY0NOeENjK0IwRlNRODZ6OEU1anRPblA5UWZ1YUJueXNrNkRiWkM1NVBXRnZBdDEyalVIKzRNME5iKzdVbzhlOXV6dW9CdVlKMDVHUnp5QlZKNERzNnhkT1Voc2hQWWllWGhSWnZUK3B3elFETTRvVThsc3FrUVY1ZEd5TW1KVTF1eVVxWDg2eUZQQjJtMll6U2dUbzdIT3EzVmtIaThLbUI3S2dJeXM0SlkxWkUrTThFZUF0OGRjcVFBQUEyQ01HcEVoUWlRRDRETzhlaVVTMVpBVkpsY005TTIzWmpRVTNkV09EWVVpaHJla3E5eG03b0J6OEVEVW1lakU1c25YTkxLV252bmdWSnRhamt4bkFDYUVBMk1MdFZqWWhuOWtySTRlQnRreTBGckp4KzZtRjlHQVNXcFFhTmZXbEZHdE1XRS9XUVd1cS96M1N3WkF6dnhobHlWYXBhTjlWS1lZYjRobnh2V1ovR3RyTnBlaTdOcGFvK1htUURzb1VRbFVUWjg4aUlwSlhkWVFockJnc1JFVkZ5WCtqVHQ5TEFIS0FCaTZ6SXI5WXFrQVZXRXBYNVNKbmZtalpBQS9CRHRVRlN3VGM1QTFtWTFWd1JiV0xWTUxBTG5QUHVXMkozMHhCdkNVa0pHOUdvVnRFRUV1MUp0VHlBRng3VVZyVkN4Uzdocmpnclc2aWZCQ3I4RmNob0hhdmcvVkhvVzVGaVVENlAwRzhqeUxNZnNwQStBNnZlVFhSMnNHTUVFSGxkcTlDcGpOWG9FTVJhRUhPclZaQ0tLSXlrb0I0QUU4UmFXaU42YXhLaFFBdXo5REFzZ0Fjdk1NWGtlNWFNMWRvV1FwaWpUM3J6SkFsbk8vaHlDT2NEbHVRR0lPcmhjaFdUMVVDaFFUbGpIRko3SVI3N1NoRktBbmhhV2pWd1NOZ2NTc1FHQXJYbGQ3V1Ewd2daVlJ2TGpFMmpqNFFRV0VaOVpYdGtjdXRiazBad0RweGYxRVRWUGVzSDNKL3drRG1KVUt4bUY2NjVqbTMyb0xOUWgwNy9VZHRYWHlxQ3lVbmNpdzNGd0RsR0ZNV0lCVlFnRUlxNjV2QTlWMEFMMGpzbUpqM2RQa0tMRldRV2VERjcxZHNrRVBVVDBnSGFxQTJVZUhWcDJSQ3Q3VmtyS2lzUUEyQXlUOWlpUE1sTDlZNEg5d0g0K1c4SUJqWmhpNHJFTHhET3JXM1ExYm91MmNkZWptY0NDK0RJUXBKUkZrcEwxUUxoR3AzY3Rkd045bkFGUTBNOGNpelJ0TExsYWk4cUFvdEtMdGZGbVBGVUQzSGNVYUVGbjIrNDFYQ0NJODBWU1pqclhTRVBTbUFuK2xJOHVzMkl5NFdQZENXWWthQkpjWiszWDNETzlEaHROZUM1a2ZhQVc5ZVlRYlltSkJSZ2tSNEUrTVI0RUJqQWpBOHRoOVdPTmVnUE1HRWd1ckZoK1RZVVhsMnpub2hPMlNBY0xOOFJLeUNwalN4aVdBYlhKVUdjSlRyWXI1L3hFRDdHRmpWN09qNVptYkdlRlVuRnZDZzBNelozNTJtTklDMURZdnRNQ01RMXl3UU1QU2cwVXRSOHE2dDg3WUpUQUFuRDFNMHdQN0YrcEFxb1VrcUFKTzlCREVpN0pOTUJGRVFQM0FRVFAxMUZRQjBJdkx5bExObHZTUWRicklBSE5weXJEYVhBS2dpQktCM3g4TGJ6OW5BSFpIYXpNQTdiTlJpaDZGTEFBdVNzQ3htV09aTEFiejcvK0tBUmdzQkhNWnpDaGpGK2NMRktPT1daMlpDa0Q3WHJFUHpCcGhVVG1PREtDYUUxdFRNWUNxMERsOFFrYnU1UXVJQ0JlRmExVjdZT2lESDkxdEtTVnNMaWtqQWdCRmRHc0dHREFmV0t0U3diblVBVnpzV0czS09WRlowWGFYUzBCN1pXaUsyaHRiczVlN0RqQU1lMVBvQzZKbFpMWFkrMGlsM2RFcGFMMEpUNFZ1K2RjWTRMVEp0UmJCdnI0UkJHMDZBelV0Y1ZiUE1peDNFTHM3VFBlb0VSWXJnRE5BUDFyTkFLMHFvT093MDdjWjRPTWFBNWlOd1p4cXpJMWFBR2Z6MW9PR05rdGNWdDBRU21jd3dPVXVnSXNMeTFzNlNLekRobFU1OWJyaEpGTjZSRGZ1SStxcDVlK0xyZDFLT21Odmw0dVZna0djQWJKWEM3b0dBenh4SHlsc09qLzhQUVpnOFhsZjZHZStFZnlrT2RpVWNxOHc2YWhtcW5jVURiNEdxTGdqQnRxZEY5bk9KUU5jeE9yU1UvZDdESkFaeW4wOUdCYlErUVRacUFESXFmbE9tbHYxSFptUnZEdmp0R283UUlYV0dtR2JDWnJxam5PSEREU1ExTnhVd003Q2ljSUpwRHYranBvUmJlMEw2OEJnVjlnQjdsbWxjRzBKdzVneFR2M3JBeTRNUFFkeFpkMFV6ZkR4RnhtQW54bnVPcXIwdHZTQXNiMktOZ1BPcFltd0VPSnlxYVFwb0N5Y01TTzhhMVNuNktRU2VKVUJ6TUgzOEhzTU1LME13NmdUVkNiUGVIUm9uQXFBYzgvbFVwcTVsY1R5dXA2MmcweVVER0NSWDFsQzdueFdxNEZRUkttMzYxVVdIMVN0S3NCV1U5YXpzd3BWYytjK0cxVkZoS0VhVlZFdis3eW1MYkh2TXNTeG5ZZktRR3pKZDJsZzdoOStud0VXUEZyYVYwSWlFd1JnRnJjc002Y0tPVXNRTmcwM2daem05QTFQRU1Qc2xWYVlFU1RMMEJ3WndKQ05QdG5qRFFhQVQvL3hOeGtnTXBUajhlMFEwaXovS21PSEZjQ21abUFtWVFlZzdZYm1Xd1pKbUMvQTR6M056dzFEdTZiVlVUdnVYUDF1dFBqWUhtN04wcytIaGlxUkxaUkt2NFYxbjhNVDRkV29EaDRFemExU0gxNGZVYnVUV2VRT1RlMGlndFpFODdZcXZVbGlRUGNDNEdITzNuWVZUVWpqdEQ1NkxJZk92TWV3dVp1eHB3QUx5RFFwcWlyT2lvekpyMFp1VmxvQnZZdkNHZUtUanhDbWJQQ0xvNEwwRlFaQVVOZnZNZ0QxQy82cUdlQXhDMENyYVZJTitIT2Jta0dDL2hweVdNc3hyKzNqQWphaEkwTXdMTXNqNjlRL29FcjlvQUgxbEZTd0JKSWtJRlJVZlZQQVBDdmNBQ3dlM2R4VDF0V28zTjIwaHQ5WFRZSmtjSE1IcjBzbnNieGtPcG05ZExqeUlOTVdEd253a0tkNGZIclcwYVUwVnE1b2xmUGJ6OUxyaHZnNmRMRElGTW1NZDQyNks1N20vNmtzTGJXdkMyZXd5a09kckw4TUM3OWtnSy92UDJXQWoyc004UG9XSmVDQkZNMHFVN295Z1A3YU5ZZVBISnZzTURQTXM0VkJCa3NkYWFiVWd5KzN4eWxSMWtUSXNsVlI0YVluTGJxeGhmSnFWRHNQZ2piWDhRaTEzRks3WklVVWkrUHBkQmttZ3RGbktFT1VEZ2VyMUpVM0dQREZTc1owayt1VlJDMjJ5dmtKb2RMdkRteEFBUlo0ZWZONFFFeHpyNXFRYWY2enRKUUhSNWFsTkxMMkFndHZHUDJ2TThDUFAyS0E3WFVHSU1LRm1TUDdOZ2NoMjdpa3c1UEptZHkzRENScFoycUJZYU9HRWRBN25SR3BKN1lLVG9tcUtvcFhmZHZ2ZzM3YXV0NDlLNnRSMGZGeVFzaEp4QlE1ZEdBRzZjbHlPN3AwSWxCTUhoZUJaaXd6OFk1SFZaVTNCT0ZINHNGUkg0RXlHVUpaeDlZdzdpVWlieFJaVU95eWhjd2UvdXdCVzZ3d3hEK001SStJaGtYaGpBanh3ZnZ5b2NRUjdWazg4dmNZNFBFbUF3akJ3L1JhNlFCbjIzTjdnZ2t6M2JMSzFNWnQwK3VkeStFQmFuOUdKdDBtRzdVSmorS1NKdlFCOWZBbjZ5T1ZkWkdpNnR1M1Y3alplaldybDZxYWxVMCtCa0V6Zk5Cb0dOQUJDMFgwZ2xzeS9GTWxUQmxxeW5ESlRWbThKQXFEMlIrSThVYkFNU1loaFRFbVk1U1hZcGtjaHg5T28wSUhxVXRNQU1EblJBQkZwTHJoL3BUYUNPdnl3a1RPaGd3Mm5wallBZjk4SzM2UjVXTi9pd0h5UjgwQTFKSTk5bXdKR0FtMksydXp1bm1oeHg1RnFDWFBNWXZYU3VaeVZBWHNESmdpcks2bkVWbkdHTWZKT21OT3ZXZlNOS04zdGJIcW16U2pGQlVnR0t1OG1sVVVibnJoZXNnQVlxT2hVeFVORWJEV0k5Tk43Z25LUkxDNU5pZFJYYTlJeitIZlh1d0lIRUNFU0M3TEdWTnJPekErSzg2SFlDOGsvU3gvUUhSQXBDVWlobkZidVJXUUh4YTl5aHd2aWw1MSt2OHZHU0NEVnNxTnF5aHJaZkpLMUcrQVVHV3NyYjZ3UnJOTEoyZXlpR2xHWExLaVR2NEhHVTgvbVlQam9wYVkxV2NTZ1lkSTlLeHdzd0dOTmxxTWF4TWpyVFRhTUZvOFFYU3NrSUxxaWs1TE5CQ1VMYWZiSHZGeUlEM29JajhUMFZVVUJBT2hMTG9sWEwwcGhtY1V5bXpzWmtVMVNodElIaDdZVStramVYVjZ4L3llR2J3SzFKNUE1M0IvNjVraFBoWk8wK3RoRTJNR0lKQWZCY1QvQWdQTUdXYUdlRXNZbmVhZVZ4eDJBbXBFVDE1bFNtZWdvU2FmWWs3ckQ0MjVoaDN5RWd5THZXbWlXd1BTTTdXcDVjMytFc3J6T0VqR0V6aWZnQmRoYkRzbUc0R1NXQzdjRlR2VEJySGFCbVZhTVMzK3BEb1FzallMZ3BGUWlHNWhUSXR2eHEzVUhvUnkyWjR0TWhVblVkOG9JcU5ubU1TKzJ3dUZrMXJ0K041TlA2TXFwcnpYTUFFK0MybDdZVzZBQXBFY1FPai8rd3h3S09NQjZPMWp2WHNtMlR2dEdYQzVZNUxPSEpLbkI0eStJVVhCQVpnYUxvZnhRK21QT1hBNTdrSXcxbmdMNll6VVNJbDh6YlY0eGdVNmlYVEtBb2Jzd2lLZ1hkRGdHRW9CQkNWL0c0ajNraE5aVHMvZFg3UGNrT3NJdklmNHNvclBUalVhR3FJeUtrS2NJSlNqbWVFQ2dydkRIY2Z6TUE1c29FeUh2UWZUR3orUW40M3hqR0xuT1BjWVcwbjYwYUJwbWxtVTNJWUI0TC8vQmYyREFlYnpGZ09FT1NPaFJja0E3dTJMZXZkRVJtTUNtNFlHN2d5aHFBQS8zWDJ3L3Q0c3dBaEU1RG1rZVV3MGJBMkc5V1VPalZvM0liaEV2bWEvbHpaTUlyblNWeUIxMENNblFUT3lPdlFzdTg3ZjlMZTNFek9Bb2JmNFBwVzBWSHU1N2FjNXNhajV6bU5wYWxRUUxWa0RrSUpvQTVvNzFLem4wQUVWMnp6QUdHQzMrRHJGR0VSak0xd054WU9tVERySHJSV2g5ZzAyMmlZQldEeGU2WDhIQy9Rb3JVeGdnRHBmUlNZa29UZTg0N1hyTWJKYm1CYXRwQXJWYm1ub213RjJRbUZzdVhOMC9wdDJwTlRtV2wzV0lWdWloVVptNmxFVTRjdXE2WVk2SXZJMSs3MjRLUXZ2RUpqRklzYmN5aThCM0VmZzR5b0NMUENSK1J0QzlFSWJUUWxuaE1ScE9WT284cTRiTSs4eXVvVnBKckVmWGcrS3FJcHNkSVVpT3FkUmF4YWkyM3ArSUZFQTlISmxlalBkMmtZQ2paMTZrbUNHTHd2Zm14VkZOOUI2eEp4QXN2NEwrY0VBbThLRWNjKzBBSFcrQ2d5eVIwN3dCMGViME1BMzFxVzNsWlJ5blNBVHQwNGsvY2RwcWZKcWxJazJSRTIvWXFkdGUrOG93bWMwUW1waXl1MW4wQzBzY203OGdjVUFKalU1eWN1WU85M1FBNWdCOHlGNVR0ZTFwL1BoSXRqZWo0YU93NFN6bXlzMmtrVnZmU2dZb0lxTjBmUTB4WmxzaktsMEw1UDVIUVlyY2FIUi9jZTByQ3hmOU80eGxZanhkaVZQcUMwQms0d3A1d2V1QUxZd3NleUpTb29FWVdoQzdEUmhDRVdRektQT1Z4RUpTZlFINjIyeWRqMnNqTnpiakZWV2g1WnNHRU5BVEttSGpRRXROS1JzUGc5a2ZJeDYwdExwdGpaeUlJUzJCNXYwaEVhdzNyOUJ0alB5WC92Y0pqK05BdWZObkZtYkVkWnVRSkE1NW93RnZTZ29nWVdvY3YvaVlSUmtnTFpGeWd0R2lFYUZFOGRYR0tCL2xRR3N1dUM2bjVwVUxBRnpBb01pb25lZ2RTU2FBa0RBaWoxckp1L0FKR1RlOGk0amFVRnQwQnhrcHVuUkJONlVQbHVuOEQ4bEEzeWZZbGVKeVllOEFOQzVjbmZqaXBiK3dCSDhlTWRHS3lzRVE4N0hQbmtEYUxCaGczRUp5dEV4YWVrMjdOcExrdEh3SkZheUNwYUxzTXRDNzRYMW1NR1J1cFpaYXY4TmpQMllLTnFkYXkxd09aN0NrdDdpaFpBTjJYQWpJRUhPY05WM2FaSGxWbEVLeW90Ukkxc1pDdEQwS0p3anUxdWJBZVlGQTFnWW5PVlJkNkZ1U1ExWCtNOVRYbkVGMGVKR1o2d0RrWURQM3dWK0MwRFJNY0VIcnJqSlQ4eWY3ZFpObUNodnorMWt3dm1LMURESkFMWUJmbWNiNHdURGRFYW5Kam1Zb20xbXRGWFJsQUhUQ09hcjdWamZ3UUo3RnF0QVZnamxubnU4ak14dFl4LzRlK0EyZ1U1dU9ac0JxblRYRE1ZSG5obXVtUjRDdDVpeitNYlcrSVNKcGRhRGh2Q29kRFN1cVFPNTlGVnpKQ09EUGU1eDNuY0dnSXRYS2VGWmZWMExxbEswOGpveGRPby91ZFppcGdJemxBeVEybmM2aE5WYlJSRURrcUYxYXdZQVVSVzVCb2loaVhpK0N3WW5BRmZtYWdJWHVpWU1pNlhKVUorbjBLQmNFeU41UXdDZ2ljREhxcHhGMlhVUlVGRzlyQXpLMGtTTjh5dzA5NnIva2Fkc0JnT1VxektDZFkrL3Y0TDhxaFpTYWRoQS9PTTdrUVNXVmlzQThOUmZRQ3E2eC8xdzhLelpvRFhtdXNucFlUaDJsZllENVlyTUM2b3NBZmR6azlZS1ZBMWQwMENGZ0JyNTdRd1E4WmNKcDBGUDJib1JIYWxwYUp0Rkw3VHRnT0dTQWVReGE0am1Dd2JBc3FTL3N1STRjNTV4Q1NCUlhXVlpXUVVsMThpOG5BSk5hYW00YmN5R29SWkxTdHJFNlovMlJvaU5XY0crUWdBa0ErU2VGMHNyeWlUcjdDME15bkJPSE9tR2hMdUtwcHdIT24xTmZNTU1hOG9BbmpwMjhuYzdwcUxacHd4SHFPckFlcU1HYVVXbWRJZDBNR0Nra1ZuTW5xSmVFK1FBZFNPdWhPdUZCOFlhQXlnN1lHbE9hNFU1RU1rQWpIc01Ca2hBVForMHRKN2VPdjRyQVpzYVhsQW9jM01vQkhJMEdJQVpjbTBYZ0VkNFVqcTZsREV4dEpVNXozSnRmTEpOeTRnNFo5ZklNTGxodDI0cFVpZFNPMm4rZlZRZlFXamVSMGhscEdzUytwc0FZSXZNbjI2eHNGU0hrUjZHM1pycDJyWHU3a2crd295NWVFRWJLL2ptMUZCdkxFRHlQeWcyZUtUaVBFSnNPcnNWY3JsMk90aFkrcVR0OTNRYlc4aE82VGw3VHhZa1EyTDVmZzJnWHZjOUtuSnpqUUVZQXJSSUJyQzR4MUV3QU5Sc1BBdDI3YXpoczRpR0p6TEVSRDFZbWVGWFZHOGlycm03bDhtYnNXTXVwZ0diaXEycGs2ektlWlpFOWZ3VmhHdERub2VXOXNXdFZIVEJQUWhxaytaZTYxN25MUEpXNms5cDZRTXFHRUN1alQwdmErbW90VWE3ZFZoZ1VBYlR5bzBkcGF1YktYUG5nQU80WTFyRFV6dXh4R29iN3UwQU1sV2xQREE4TW1OVStDNDBXUUtvRmpubXBUY1hUeFhhdTFYUGU2eTZDMzVqemljRDZPTGVSTmtLUitKWERFRHgzb3NsWUt6dnRrMEdlR2Rkang3K2dScllEcVhsTnREVkZZTE5MWkI3eFdsTis1N0VGYU1qN0xkYkJqc1d4aWtsbWJSbG1mTnNHVVQxRERaRThZVkdoc2t0QktVeEpidEliZnhyMDF4T1FwTS9wU2tQL01EZmJmb2pRd2dwYUN1bVplVkJ0dzV3cjJGOHFYVFQ3clhXVGJEU24wcEs1S21mSzNhZjVZZTV0d1BJVkNPdFltT0VKRFlTQkNLOUZPK1dYV1hYcUlwa3oySzVjR0RHckNkcnRsb1YzcEVEVnFBVWVsZVVpdGFRM1o0aDZUSWdUeEdpWkFBWjY1SUJ3SmZnSW5RUi9sR0gwdUkxSUJRcG5XSGhaL0ZzWFJNM2J1R255VitabG50cHdONUxId0lTU1Vxanc1OEtlaEtWZVZlNGw2WkdocnhIY09RckIxUmRwSGJRSEVSSEE4bi84dzliK29DaVlRdFh4UFhBR2pjN2JiTGI1aUN5dnZpY1V3N0lWQWFzR1Eyc3Iwd043dVdZWEdVQThzdVIzQmlKSkpZbS83RFRKc3BPNkkrQ1M5aW5LKzlvSFY2aWNjeVVic1J1SE9OTTdIR0RWY0d4RVE0N2JPWjZNY0x0bURhajMzaEJUaEZuTlFORWtHcm00R2lGMG5KT2s2MURPaU5mWDZSc1ZTS25keSs5Z1JoUnV2b3h2MGd5bThpNS8wcWlNaGhnRXpQK3VOZDJoQkFYY3NyVng2S0wxUDRuU0s1TnpzTmZRbkw3aWI5Si8yem1md3dHd01lWTdZY3FxcW00NkZZeU1LUHpRTFV2Q0Y3c2pvbWZRcm4xd1RtRDVBWTk2MXdQTXNzMTBrSWNQcVZ6YmZHUUJJTWdiTkJZZ3FYdWxNTjJsdHJGdDRGcmVTRmluTEVONU9adzBNU21ueUFpQkE4eUU3dnRLUmJTc1REbFBSaWdId3hBbUdnbmttTFdvYlNjMDF6WVFqcnZxWUFyaWF2Z08yNi9wdHhHeTBFUWRiUHhXU3cwS3lleWRpZFJxYlJSYlJPNjV1dzJtcmE3U0czOEMxY2ZpQjRrMTUvUzhhODArb0N5TWRFdEdXQVltam03VnpBb2U5WVhzeXFEQTFqamg4QksxZk9GMmhBRHpicmMrRUlzV1BDVys4YzZTak9ac21mTExFSTRtTm8rNTF3cHVERThLS3JZa2xTd1lMVkJwYytXMTRjUjBPanFOY1JHNk1zd3EwL2JxaUJmNGptK1p4c3FiQ3dZSGpEUmJpUlNqRkRhbk5PeHBYWUtNN1JneW1tTmpHalcwSkdTR3o3UTBNUVJqdWNUZVcrdEZ1UmNJYjVyZVk2L2JVYXpoMTFWK3hkUy9sOXYvMFg3Ri8rWkM1RDBaL09zbjJBQWwzV1BHRE5yVVh4Z1FybU9LTThGSzMzREpQZit3cTJlaW9GRksyWEdXbkhWb1JqY3YzSXBieXg2MjMwWm1qRmNiSjlaTVpjYnd5ai95YjA4TVB5c0xrZm5ZMmZIZmx6S2tFL3NwMGVsWFZFL0pITjhVMkhqejh5R21Va3hsOWRpZG5ScXBuVG1Ca3Y5SEpqV1h6NXhaeVEwSmJlYVJGTVI1eXlPaVp6ZFNWUW83aDY1azJzNC9maVU2VlZYMlpUT1JuZVMvSC8rNTMvUTh6OUIvbXdjV0t2MHF2dmR0RlZ6QjR6R21XTWVTd1hVZkpEK2pJTUEvYmtNRkF3Z3Z5Z0FNS3FBaW5BcDczdVFlQ0ExRkxmWWd3NUEyeDBhcmF4a1ZLVlpKRGt4UDhZdys1bUM3TlV5K3lFaEl6MExwR3prcjRxUURJVGtSamJNdDB5S3FTYnNxbUdTZjVYUytmOG43MnhiNGdpQ0lCd1NBU0VTQ0w3bElCd1lEd0luOS8vL1hxYjdxYnFhMmZzVVJCQ3RqWHR1YVFDczdkbCttOTRTcUIzd1BXWk44TFh2cnlKS1JOUkYwOFVUUHk2R0RJMmsrU2JydVNHVGhna1ZSSFBoTkNRL0RmUjN5TDhnZjJydEhrMVdFbnFKZzhsQjF2UC9tVGU5MWwrNGE2UjVBdHhOZy9NRzFTNUFoUWUxMm51bVRMK0xWQTRaQ2IzYSszM3JGK2xpN3dLM1NhdUtoRFR5OXFxS3R1RlQ2L2RvejlRV0JTYll6WjJ5REtudCtnWWZLbVFPUzg0UnhRL0w2dXgxZTQ2MkRnaTlxTHUxNGdLR0hENnF5b2REMzZ6bmVvYTNlUy9VQ25RK2JRWFA5eGMzUU9QNXZzNUwzMCtRaVFuZTAvSGtPNEJ3c1kzL0NYY3ZvelA3RmlBOGNJS3RudEIzL2RwSDdZSmxSQjk3Z3ZINGR0ajdJMGM2RHdZODlwdWFCYW5Kb3NMVDdlTktGaFZJQkM2RmJ6VEJPQTRiNVF3WE8vcE04TVZ6MkhBcnJWWm5WRzM5K0pZTGZMczZEVVRjYUZvZmtUR0dERzBVTDdjdDYvbFJ4bzA1WDFEQmwvOUMyV2tlQVJpYyszNEN1Y2FVMy9IL2ZBYzRFWFJmcjgxVlBwQ2FwWk9BZC9VejdZRFR5SVhIVWU4WXAxYmJRem9MdUpwNkJ3TmdFMFZhUm02eXNZVTdZUEEzNGUyWE1VNjZyZzg0WjBqckNjWndyT3hNUnUzV1VqNUlwc21jYzFoeFpNYVVIVzRsMnRLQmdodDFpeHVRWmlXaSthYUJQcHM1VHM5d1lPTmVxVmVnRk4wNGdVN1pQaTVJNnFYMTEvdmUwNENXSk1DMXhtZTdERkR0LzU1S0lIL2hhZ3p6MGFCUHQyeVJFS1BQRzhLZ1l6WUQ5MXZYdHNab0M0L2hUdkYwdTE4NFo2MnNKaGlMSzloYjIvTktDRDRUcU9YSUtvM0M4Y2ZXYU11SEVISHI1OGhyR2JGanMraXBjMkdjbzNnaFVpL1U2MUR4M29EQ1FQZWh1dStIak94WFhHUFgwWHNTWDNtQ3kxdFBrd2FrMTE0OStkZEVpTDkwQTZqQi8vdklNWGd3NmRTbjM3c292SW9IUDVNNzVmU2JvaFpoMUliSEwzTm9oWkRPakRjZzRleXRKUUJMTXMxSyt4UjNHL1BHWkdGaXZzS2dXYmxSdDNWRlVqUzFpQllkcVNlMDJhUHYyMElaSHllQ2NJdmM5OU55Vno1TnJqR3Z3YnF0bVc0ZEMxQ0NZWXR3Q2dHOFdXSHZWb0F1YlkydFF2UmU2ZFVvWTlTK1J4TWZXTFNkRUV0MGJUamREUkR0L0FEV2s5cDgvTElJV1V3b1lpdHhmN2VKMHpuYzF1R1RaY2JXYmJPcjUvMGlsZnM2MmlKdUhQR2dXTDZnQTY3ZkhyVnhZazRGRS9EU1R6Q25ndHMxVnBhbDlPODJOQWI4YWtoQVNvR2QrRWd6VU5jRXJqekdpTUtHMmtMeDVWaTBrOXFHT0VQKzk0V0JPb3phOG12ZXBCQ0I2NEQwbzl5WGpTVzRCaTg1b1NxV2JadkZoakZycm15N0lsQTNxcjQzRER2ZGJQTGVQYWlmUUsxbzJsMVFham5MVWtYQWJxTHRFZDhhRXpJMUF4QUV1d0djblhnYUI2LzBHSHF6U1ZHNTdxemFUVXp3U3U1RENuVVlOZFB3Yzk0a1VUVGExa2U0WEY3bTBvNDJaWi9xd0lJbHNWVzl0R3ErM2oxU0RuYmxTNitNN1dhdWVvYVR1YS9aT3BTRDFZbENKUDZOZ1diWjVacDJJRXlSa0ZtM1FDLzRYUVpEYkFTWHM3VWt4RXhzRFQ2SGRIVStKTHkwaFFYOEdrdzRRbXVrdHZzV3hOcXhaWjBXUS80NE9Cd3lST1pIZGN3K3VQNmsvVWphNDdFYnhxdE9GUHlCdVFybS9rQ3QxcGdvTXFvenFGL2FreklZS2JMTE5kdi9kYlgzWkVsaW9ZbWtReWRQWnRpQVE5US9jYkJjcmtCOTJ6S25qd3FVcHZKVmhzM3UwWEt0dENQUmV6d3dXcHlEOGdkY0JTTXhUc2NaWHZpOEVyTzgvOG1DWDF4QWJXUEpoeVc2WGcwYjhlYkhNV0ZVYVBQYkpBbHhGVEFKVnpTV3ZnTDVQd2U2ZDB5VkwvYktseEhqaE0zdHhPT2FCemZWTDR3ZVlQMVorOUhMdXM3VmJNcGdRWDQxY0R3ZEF2VUZiRm9LbFhCYlBuN1pTNUtpaTdSTkp0RGlFamgvK29td3ZwQkxRZGM1REVzVHcyNE95M1JyQkxRVFcvNnN4TG9Gc3VCajNvR1VUY29rQkladGJyVlNhWVNPSzI4Vy9HdnZERlliaUdFZ2FnaHRvYWVrbDNhaHAxd0tZZnYvdjFka1dYNmFRQytGd0pycU9SZjdhbHZ4V3FOeEM2SnZEZWorVzB4OHBGeENFSVNqRUpmcEkxWGlCMy9BZDJ6TXFZZllDQU1TOEFOaU5qY21rZGpRZitXNWwrT1hZZlF2VTFuWW9VN2FLUVJCM3ZjVWkxbVA1WmRuL2RNZnpsUWQzc2hZc0FSU3dHZXlwMENCQ3pIdVRJVEhSZVhDYThoZzNnU2Y4ME96cG9aOVpZQ1h5Qnl0TzQ1SXpCSUlTRjB5dGI5Y2lMSFpIenIzaGV0djFhb0FRWkFSTXQyY0ZWTFJ0RGdQM1BhOUJTTnZLUUdmeSs0amJPeWlLL0EvYUtQZ2hlSlY1RDBwTDZ4bEUzZldFM3VEYjFKZXh1RStyNHF1M0FNcGREZkVDZGRnQVR4Tk1KL3hDQUI4Z3lGSU94cTFBSjRoTDRCT0Z2Z1psTDBoMlhsM1cwMnNKNEIvZUtNZGpzSWY2UVFyVTN6QndrWmZ4aldpNXA1VFlkaHFmbUk5c1FZRnNuQXdrVmMyc1VMZ04raXVHMGp4c05YRWUyUUZDZ3BEQk52TTJOako2L2lPbGJxNWpuWTJ5d1A2L0srMkFBcXZkTkxOdkczWnlESUVmcWZBOHJySUxKTm9oeVBBQ2hRVWg0SnZabkdZRDRIZjVMSzVSQTg4RDdoV0FDaFFCQWxkMDVGSFhlRDNGaU9iRjBYZGllYXhudGpiU2hTMmxhVmRoN25YTmZwRDRHY2pXaFNWK1VyV0V3dFIvQUJ0d3pZbStJeFNsd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcbiAgcmV0dXJuIGltYWdlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm50KCl7XHJcbiAgcmV0dXJuIGBpbmZvIGZhY2U9XCJSb2JvdG9cIiBzaXplPTE5MiBib2xkPTAgaXRhbGljPTAgY2hhcnNldD1cIlwiIHVuaWNvZGU9MSBzdHJldGNoSD0xMDAgc21vb3RoPTEgYWE9MSBwYWRkaW5nPTI0LDI0LDI0LDI0IHNwYWNpbmc9MTIsMTIgb3V0bGluZT0wXHJcbmNvbW1vbiBsaW5lSGVpZ2h0PTE5MiBiYXNlPTE1MiBzY2FsZVc9MzA3MiBzY2FsZUg9MTUzNiBwYWdlcz0xIHBhY2tlZD0wIGFscGhhQ2hubD0wIHJlZENobmw9NCBncmVlbkNobmw9NCBibHVlQ2hubD00XHJcbnBhZ2UgaWQ9MCBmaWxlPVwicm9ib3RvXzAucG5nXCJcclxuY2hhcnMgY291bnQ9MTk0XHJcbmNoYXIgaWQ9MCAgICB4PTYzNiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yICAgIHg9NTc2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEzICAgeD00NTAgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzIgICB4PTI5ODcgIHk9MTI0MiAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMyAgIHg9MTcxNCAgeT03NjkgICB3aWR0aD02NiAgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM0ICAgeD0xOTk5ICB5PTEyNjMgIHdpZHRoPTgxICAgIGhlaWdodD04NyAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzUgICB4PTEyMTQgIHk9OTUxICAgd2lkdGg9MTM2ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNiAgIHg9MTYxMCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS00ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM3ICAgeD0xMzQxICB5PTU5NSAgIHdpZHRoPTE1MiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzggICB4PTE2NTggIHk9NTkyICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOSAgIHg9MjA5MiAgeT0xMjYzICB3aWR0aD02MiAgICBoZWlnaHQ9ODUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTI4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQwICAgeD0xMDMgICB5PTAgICAgIHdpZHRoPTkwICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDEgICB4PTAgICAgIHk9MCAgICAgd2lkdGg9OTEgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MiAgIHg9NjY0ICAgeT0xMjk0ICB3aWR0aD0xMTQgICBoZWlnaHQ9MTE0ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQzICAgeD0wICAgICB5PTEzMTcgIHdpZHRoPTEyOCAgIGhlaWdodD0xMjkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDQgICB4PTE5MTYgIHk9MTI2NCAgd2lkdGg9NzEgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xMTEgICB4YWR2YW5jZT0zMSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NSAgIHg9MjMzICAgeT0xNDU3ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ2ICAgeD0yODI4ICB5PTEyNDUgIHdpZHRoPTY4ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEyICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDcgICB4PTAgICAgIHk9NDI5ICAgd2lkdGg9MTA5ICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OCAgIHg9MjM5MiAgeT01ODMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ5ICAgeD0xMTIgICB5PTExNDMgIHdpZHRoPTkzICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTAgICB4PTE0NDMgIHk9NzcyICAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MSAgIHg9MjY2MCAgeT01NzUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUyICAgeD0xNzk0ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTMgICB4PTUzOSAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NCAgIHg9NDA2ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU1ICAgeD0yMDgyICB5PTk0MSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTYgICB4PTI1MjYgIHk9NTgxICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NyAgIHg9MTU4MSAgeT03NzEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU4ICAgeD0yMzgzICB5PTExMTMgIHdpZHRoPTY3ICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTkgICB4PTM3MiAgIHk9MTE0MCAgd2lkdGg9NzMgICAgaGVpZ2h0PTE1NiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zNCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MCAgIHg9NTM5ICAgeT0xMzA3ICB3aWR0aD0xMTMgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYxICAgeD0xNjg4ICB5PTEyNjkgIHdpZHRoPTExNSAgIGhlaWdodD05MyAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjIgICB4PTQxMSAgIHk9MTMwOCAgd2lkdGg9MTE2ICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MyAgIHg9ODAwICAgeT03NzkgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY0ICAgeD0xNDIxICB5PTAgICAgIHdpZHRoPTE3NyAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTYgICAgeGFkdmFuY2U9MTQ0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjUgICB4PTI3MDggIHk9NzUyICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NiAgIHg9MjIyMSAgeT05MzkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY3ICAgeD0xODExICB5PTU5MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjggICB4PTE2NTAgIHk9OTQ2ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OSAgIHg9MjQ5NiAgeT05MzQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcwICAgeD0yNjMwICB5PTkzMiAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzEgICB4PTE5NjAgIHk9NTkwICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MiAgIHg9OTE2ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTczICAgeD0yOTYgICB5PTExNDIgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzQgICB4PTI3MiAgIHk9NzkwICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NSAgIHg9NzY3ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc2ICAgeD0yNzYyICB5PTkyNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzcgICB4PTIxOTcgIHk9NzY1ICAgd2lkdGg9MTYzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OCAgIHg9MTA2NSAgeT05NTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc5ICAgeD0xNTA1ICB5PTU5NCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODAgICB4PTE5MzggIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDEgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MSAgIHg9MjIyMiAgeT0yMDcgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgyICAgeD0xMzYyICB5PTk0OSAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODMgICB4PTIxMDkgIHk9NTg4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NCAgIHg9NjE3ICAgeT05NTUgICB3aWR0aD0xMzggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg1ICAgeD0xMjggICB5PTc5MiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODYgICB4PTI4NzAgIHk9NzQ5ICAgd2lkdGg9MTQ3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NyAgIHg9MjAwMiAgeT03NjcgICB3aWR0aD0xODMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg4ICAgeD0zMTIgICB5PTk2NiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODkgICB4PTE1NyAgIHk9OTY4ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MCAgIHg9MTUwNiAgeT05NDcgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkxICAgeD02NTggICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTIgICB4PTI5NDUgIHk9MjA0ICAgd2lkdGg9MTExICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MyAgIHg9NTY3ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk0ICAgeD0xNTcwICB5PTEyNzEgIHdpZHRoPTEwNiAgIGhlaWdodD0xMDUgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTUgICB4PTAgICAgIHk9MTQ1OCAgd2lkdGg9MTIxICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT03MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NiAgIHg9MjYyMiAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTQ5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk3ICAgeD0xNTg1ICB5PTExMjEgIHdpZHRoPTExOSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTggICB4PTY3NyAgIHk9NDE4ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OSAgIHg9MTQ1MyAgeT0xMTIzICB3aWR0aD0xMjAgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMCAgeD0xMjA5ICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAxICB4PTEzMjAgIHk9MTEyNSAgd2lkdGg9MTIxICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDIgIHg9MTg2NiAgeT00MDggICB3aWR0aD0xMDEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTYgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMyAgeD0xMzQgICB5PTYxMiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA0ICB4PTI2MjcgIHk9Mzk1ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDUgIHg9MTA1MCAgeT03NzYgICB3aWR0aD02NyAgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNiAgeD0xMzI3ICB5PTAgICAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA3ICB4PTI0OTUgIHk9NDAxICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDggIHg9Mjc1NSAgeT0zOTIgICB3aWR0aD02NCAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOSAgeD0xOTczICB5PTExMTcgIHdpZHRoPTE2OCAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEwICB4PTIxNTMgIHk9MTExNSAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTEgIHg9MTE4MSAgeT0xMTI2ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMiAgeD0yNjcgICB5PTYxMSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEzICB4PTQwMCAgIHk9NjAwICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTQgIHg9MjI4MSAgeT0xMTEzICB3aWR0aD05MCAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNSAgeD0xNzE2ICB5PTExMjAgIHdpZHRoPTExNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE2ICB4PTQ1NyAgIHk9MTE0MCAgd2lkdGg9OTUgICAgaGVpZ2h0PTE1NSAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0yMyAgICB4YWR2YW5jZT01MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTcgIHg9MTg0NSAgeT0xMTE3ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOCAgeD0yNzcyICB5PTExMDAgIHdpZHRoPTEyMiAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE5ICB4PTI0NjIgIHk9MTExMyAgd2lkdGg9MTYzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0xMjAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjAgIHg9MjYzNyAgeT0xMTA2ICB3aWR0aD0xMjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMSAgeD0wICAgICB5PTYxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIyICB4PTI5MDYgIHk9MTA5NyAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjMgIHg9NDU4ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNCAgeD0yNDUxICB5PTIwNiAgIHdpZHRoPTYxICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI1ICB4PTM0OSAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjYgIHg9MjM3OCAgeT0xMjU5ICB3aWR0aD0xMzggICBoZWlnaHQ9NzkgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MCAgeD01MTMgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYxICB4PTIxNyAgIHk9MTE0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjIgIHg9MTM0MSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTI1ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MyAgeD0xMzAwICB5PTc3NCAgIHdpZHRoPTEzMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY0ICB4PTcwMiAgIHk9MTEyOSAgd2lkdGg9MTQ5ICAgaGVpZ2h0PTE0OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zMCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjUgIHg9NDY1ICAgeT05NTUgICB3aWR0aD0xNDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NiAgeD0yMzc1ICB5PTIwNiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY3ICB4PTIwNSAgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjggIHg9MjcxNiAgeT0xMjUxICB3aWR0aD0xMDAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OSAgeD05OTUgICB5PTU5OSAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcwICB4PTEzNjggIHk9MTI3MyAgd2lkdGg9OTkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzEgIHg9MTEzMSAgeT0xMjc3ICB3aWR0aD0xMTAgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MiAgeD0yMjUxICB5PTEyNjEgIHdpZHRoPTExNSAgIGhlaWdodD04MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9ODkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTczICB4PTEzMyAgIHk9MTQ1OCAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzQgIHg9MTE2OCAgeT01OTcgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NSAgeD0zMzMgICB5PTE0NDggIHdpZHRoPTEwNSAgIGhlaWdodD01OSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc2ICB4PTE4MTUgIHk9MTI2OCAgd2lkdGg9ODkgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT02MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzcgIHg9ODYzICAgeT0xMTI5ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTQ3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTI5ICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OCAgeD04OTkgICB5PTEyODggIHdpZHRoPTk3ICAgIGhlaWdodD0xMTEgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc5ICB4PTc5MCAgIHk9MTI5MCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODAgIHg9MjUyOCAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MSAgeD04NjYgICB5PTU5OSAgIHdpZHRoPTExNyAgIGhlaWdodD0xNjYgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgyICB4PTI4OTMgIHk9OTIzICAgd2lkdGg9MTEwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODMgIHg9MjkwOCAgeT0xMjQyICB3aWR0aD02NyAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTYyICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NCAgeD0yMTY2ICB5PTEyNjEgIHdpZHRoPTczICAgIGhlaWdodD04MiAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg1ICB4PTE0NzkgIHk9MTI3MSAgd2lkdGg9NzkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODYgIHg9MTI1MyAgeT0xMjc0ICB3aWR0aD0xMDMgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NyAgeD0xMDA4ICB5PTEyNzcgIHdpZHRoPTExMSAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg4ICB4PTI1NDIgIHk9NzU4ICAgd2lkdGg9MTU0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODkgIHg9MjM3MiAgeT03NjAgICB3aWR0aD0xNTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MCAgeD0xMTI5ICB5PTc3NiAgIHdpZHRoPTE1OSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkxICB4PTkyNSAgIHk9Nzc3ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTIgIHg9MTYyICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MyAgeD0zMjQgICB5PTIxNCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk0ICB4PTAgICAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTUgIHg9MTM1OSAgeT0yMTAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NiAgeD0xODE0ICB5PTIwOCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk3ICB4PTEwMTYgIHk9MCAgICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5OSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMjMgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTggIHg9MTc5MiAgeT03NjkgICB3aWR0aD0xOTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjYgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE1MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OSAgeD0xMTc4ICB5PTAgICAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAwICB4PTI5MjIgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDEgIHg9NjQxICAgeT0yMTQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMiAgeD03NzUgICB5PTIxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAzICB4PTE5NzYgIHk9MjA3ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDQgIHg9MTAxOCAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNSAgeD0xMTEyICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA2ICB4PTkwOSAgIHk9MjEzICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDcgIHg9MjExMCAgeT0yMDcgICB3aWR0aD0xMDAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjggICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOCAgeD0wICAgICB5PTk2OSAgIHdpZHRoPTE0NSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA5ICB4PTE1MjEgIHk9MjA4ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTAgIHg9MjE4NCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMSAgeD0yMDMxICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEyICB4PTE4NzggIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTMgIHg9Mjc2OSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNSAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNCAgeD0xMjA2ICB5PTIxMCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTEgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTEzICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE1ICB4PTI3OSAgIHk9MTMxNiAgd2lkdGg9MTIwICAgaGVpZ2h0PTEyMCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MCAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTYgIHg9MjY1NSAgeT0yMDYgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTc0ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEwICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNyAgeD0yNjI1ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE4ICB4PTI0ODEgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTkgIHg9MjMzNyAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMCAgeD0xNjcwICB5PTIwOCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIxICB4PTQ4NiAgIHk9MjE0ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjIgIHg9MjM2MCAgeT05MzkgICB3aWR0aD0xMjQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMyAgeD0xMjEgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzEgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NyAgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI0ICB4PTE2MDQgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjUgIHg9MTQ3MyAgeT00MTIgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNiAgeD0xNzM1ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI3ICB4PTUzMiAgIHk9NjAwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjggIHg9MjkyNiAgeT01NjkgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOSAgeD0yNTI0ICB5PTIwNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MSAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMwICB4PTk5NiAgIHk9MTEyOSAgd2lkdGg9MTczICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xMzUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzEgIHg9MTk3OSAgeT00MDcgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMiAgeD0xMDc2ICB5PTQxNSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMzICB4PTk0MyAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzQgIHg9ODEwICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNSAgeD0yNzkzICB5PTU3MiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM2ICB4PTc3MiAgIHk9NjAwICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzcgIHg9Mjk3MCAgeT0zODggICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOCAgeD02NjMgICB5PTYwMCAgIHdpZHRoPTk3ICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM5ICB4PTAgICAgIHk9MTE0MyAgd2lkdGg9MTAwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDAgIHg9MjgxMCAgeT0yMDUgICB3aWR0aD0xMjMgICBoZWlnaHQ9MTczICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTUgICAgIHhhZHZhbmNlPTk0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MSAgeD0wICAgICB5PTc5MiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQyICB4PTI2MCAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDMgIHg9NTM4ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NCAgeD0zOTkgICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ1ICB4PTI4MzEgIHk9MzkwICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDYgIHg9MjI1MyAgeT01ODMgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NyAgeD0xNDAgICB5PTEzMTcgIHdpZHRoPTEyNyAgIGhlaWdodD0xMjggICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ4ICB4PTU2NCAgIHk9MTEyOSAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE1MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDkgIHg9MjExMSAgeT00MDcgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MCAgeD0yMjM5ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUxICB4PTIzNjcgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTIgIHg9NjcyICAgeT03NzkgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MyAgeD03NDkgICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU0ICB4PTg4MyAgIHk9MCAgICAgd2lkdGg9MTIxICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTUgIHg9MTc0NCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5rZXJuaW5ncyBjb3VudD0xNjg2XHJcbmtlcm5pbmcgZmlyc3Q9MzIgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NiAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODkgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD0yMjEgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTMgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTYgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg2ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTc0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTc0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTg1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjU1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTMgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTcxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTgxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zOSAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODcgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NiAgYW1vdW50PS0xNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODkgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD02NSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTQgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTcgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDQgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD03NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIxIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjU1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTExIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0OSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NiAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAwIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIwIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDUgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE3MyBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDEgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05NyAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjggYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03NCAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTExIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQyIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xNzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTY1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5OSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5gO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IHtnZXRUb3BMZXZlbEZvbGRlcn0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3RpY2snLCBoYW5kbGVUaWNrICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICBjb25zdCB0ZW1wTWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlVGljayggeyBpbnB1dCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCAgfHwgZm9sZGVyLmdyYWJEaXNhYmxlZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5wcmVzc2VkICYmIGlucHV0LnNlbGVjdGVkICYmIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgaWYoIGlucHV0LmludGVyYWN0aW9uLnByZXNzID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICAgICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24uc3ViKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7ICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LndvcmxkVG9Mb2NhbChpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vTk9URTo6IGluIG9ydGhvZ3JhcGhpYyBtb2RlLCB3ZSd2ZSBhbHJlYWR5IG11dGF0ZWQgdGhlIHBvc2l0aW9uIG9mIGZvbGRlcnMsXHJcbiAgICAgICAgICAvL21lYW5pbmcgdGhlcmUgY291bGQgYmUgc29tZSBpbmNvbnNpc3RlbmN5IHdpdGggdGhlIG1vdXNlSW50ZXJzZWN0aW9uIHBvaW50IG5vIGxvbmdlciBiZWluZyByaWdodC4uLlxyXG4gICAgICAgICAgLy9JIHRob3VnaHQgdGhpcyB3YXMgcGxheWluZyBhIHJvbGUgaW4gYSBidWcgd2l0aCBvcnRob2dyYXBoaWMgZm9sZGVyIGxheW91dCwgYXBwZWFycyBvayBmb3Igbm93LlxyXG4gICAgICAgICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG5cclxuICAgICAgICAgIGZvbGRlci51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICBpZiggaGl0T2JqZWN0ID09PSBwYW5lbCApe1xyXG4gICAgICAgICAgaGl0T2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBoaXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZVBsYW5lLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KCBpbnB1dC5tb3VzZUNhbWVyYS5nZXRXb3JsZERpcmVjdGlvbiggaW5wdXQubW91c2VQbGFuZS5ub3JtYWwgKSwgdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VQbGFuZSApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBpZiggaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgICBpZiggaGl0T2JqZWN0ICE9PSBwYW5lbCApe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQgPSBmb2xkZXI7XHJcblxyXG4gICAgICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuc2VsZWN0ZWQubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZU9mZnNldC5jb3B5KCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApLnN1YiggdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgXHJcbiAgICAgIHRlbXBNYXRyaXguZ2V0SW52ZXJzZSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIHRlbXBNYXRyaXggKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG5cclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcbiAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgaW5wdXRPYmplY3QuYWRkKCBmb2xkZXIgKTsgXHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJiZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlucHV0LnNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuXHJcbiAgICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiUmVsZWFzZWQnLCBmb2xkZXIgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsImV4cG9ydCBjb25zdCBncmFiQmFyID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFnQ0FZQUFBQ2luWDZFQUFBQUNYQklXWE1BQUM0akFBQXVJd0Y0cFQ5MkFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQURza2FWUllkRmhOVERwamIyMHVZV1J2WW1VdWVHMXdBQUFBQUFBOFAzaHdZV05yWlhRZ1ltVm5hVzQ5SXUrN3Z5SWdhV1E5SWxjMVRUQk5jRU5sYUdsSWVuSmxVM3BPVkdONmEyTTVaQ0kvUGdvOGVEcDRiWEJ0WlhSaElIaHRiRzV6T25nOUltRmtiMkpsT201ek9tMWxkR0V2SWlCNE9uaHRjSFJyUFNKQlpHOWlaU0JZVFZBZ1EyOXlaU0ExTGpZdFl6RXpNaUEzT1M0eE5Ua3lPRFFzSURJd01UWXZNRFF2TVRrdE1UTTZNVE02TkRBZ0lDQWdJQ0FnSUNJK0NpQWdJRHh5WkdZNlVrUkdJSGh0Ykc1ek9uSmtaajBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOHdNaTh5TWkxeVpHWXRjM2x1ZEdGNExXNXpJeUkrQ2lBZ0lDQWdJRHh5WkdZNlJHVnpZM0pwY0hScGIyNGdjbVJtT21GaWIzVjBQU0lpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB6ZEVWMmREMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFJYWmxiblFqSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwMGFXWm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNScFptWXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpYaHBaajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5bGVHbG1MekV1TUM4aVBnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBiM0pVYjI5c1BrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPakkxT2pNeUxUQTNPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRZdE1Ea3RNamhVTVRZNk16YzZNak10TURjNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pNM09qSXpMVEEzT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThaR002Wm05eWJXRjBQbWx0WVdkbEwzQnVaend2WkdNNlptOXliV0YwUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNHpQQzl3YUc5MGIzTm9iM0E2UTI5c2IzSk5iMlJsUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rbERRMUJ5YjJacGJHVStjMUpIUWlCSlJVTTJNVGsyTmkweUxqRThMM0JvYjNSdmMyaHZjRHBKUTBOUWNtOW1hV3hsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmVHMXdUVTA2U1c1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSdlkzVnRaVzUwU1VRK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPamRsTnpkbVltWmpMVGcxWkRRdE1URmxOaTFoWXpobUxXRmpOelUwWldRMU9ETTNaand2ZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pazl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDU0YlhBdVpHbGtPbU0xWm1NMFpHWXlMVGt4WTJNdFpUSTBNUzA0WTJWakxUTXpPREl5WTJRMVpXRmxPVHd2ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG1OeVpXRjBaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEcGpOV1pqTkdSbU1pMDVNV05qTFdVeU5ERXRPR05sWXkwek16Z3lNbU5rTldWaFpUazhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UWXRNRGt0TWpoVU1UWTZNalU2TXpJdE1EYzZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTI5dWRtVnlkR1ZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHdZWEpoYldWMFpYSnpQbVp5YjIwZ1lYQndiR2xqWVhScGIyNHZkbTVrTG1Ga2IySmxMbkJvYjNSdmMyaHZjQ0IwYnlCcGJXRm5aUzl3Ym1jOEwzTjBSWFowT25CaGNtRnRaWFJsY25NK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBJSEprWmpwd1lYSnpaVlI1Y0dVOUlsSmxjMjkxY21ObElqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tRmpkR2x2Ymo1ellYWmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHdPUzB5T0ZReE5qb3pOem95TXkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNHhQQzlsZUdsbU9rTnZiRzl5VTNCaFkyVStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0Mk5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNand2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgrT2hGN1J3QUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUFsRWxFUVZSNDJ1elpzUTNBSUF4RVVUdVRaSlJza3Q1TFJGbUNkVExhcFVLQ0Jpam8vRjBobjJTa0p4SUtYSkpscnNPU0Z3QUFBQUJBNnZLSTZPN0JVb3JYZFp1MS9WRVdFWmVaZmJONW0vWmFtamZLK0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNCZnVhU25hN2kvZGQxbWJYK1VTVHJON0o3TjI3VFgwcnhSeGduZ1pZaWZJQUFBQUpDNGZnQUFBUC8vQXdBdU1WUHcyMGh4Q3dBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQxJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAvLyB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjU7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwLCBpbWFnZS5oZWlnaHQgLyAxMDAwLCAxLCAxICk7XHJcblxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcbn0oKSk7XHJcblxyXG5leHBvcnQgY29uc3QgZG93bkFycm93ID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPakU0T2pJMUxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3hPRG95TlMwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNRFF5WWpJMFpTMWlNemMyTFdJME5HSXRPR0k0WXkxbFpURmpZMkl6WVdVMU1EVThMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qTXdOREppTWpSbExXSXpOell0WWpRMFlpMDRZamhqTFdWbE1XTmpZak5oWlRVd05Ud3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejVVaWx6MEFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBSmRTVVJCVkhqYTdOM0xjY0pBRUlUaFJ1VzduY1VlVFFoa1FBaUlETWdJaFVJSWNGUVdKZ0o4OEZLbG92d0FyTjJkNlo0NWNaR0EvVDl2aVlmdHhlVnlRWXp1ZExFRUFTQW1BTVFFZ0JqSmVXbDF4eW1sTndBSEFNZHhISHZGeFU4cERRQ1dBRmJqT0g3STdBQ1QrTzhBTm5raEZPTnY4aG9jOHByd0E3aUpmeDBwQkpQNDEybUdvRE1RWHdyQk4vR2JJdWlNeEpkQThFdjhaZ2c2US9HcEVkd1J2d21DemxoOFNnUVB4SytPb01ZT01Ed1lud3JCRS9HbkNBYlhBUEtUWC8vakZKdVVVdTg0ZnY5ay9PdXNTLzhRZEFibDM4N2VJNEw4bVBjem5Lcm9UbGh5QjFqT2VDNVhDR2FNWDJJdHF3RllBVGlwSVNnUS81VFgwaGVBL042MkZJSlM4VXQrVGxEMElsQUpnY2Y0VlY0R0tpRHdHci9XK3dEVUNEekhyd2FBRllIMytGVUJzQ0ZnaUY4ZEFBc0NsdmhOQUhoSHdCUy9HUUN2Q05qaU53WGdEUUZqL09ZQXZDQmdqVzhDZ0hVRXpQSE5BTENLZ0QyK0tRRFdFQ2pFTndmQUNnS1YrQ1lCVEJEMEFNNjFFUlNJZndiUVc0eHZGa0JHY013N1FUVUVoZUt2OG5OQkFEQ01RREcrZVFDMUVLakdCNENGbDc4UmxGSmE0dXNYVEY3bmpKUnZ6MzVlRC9GZEFTaUlBS3J4M1FFb2hBQ3E4VjFjQTFTNkpwQ003eEtBUVFSdTQ3c0ZZQWlCNi9pdUFSaEE0RDYrZXdBTkVWREVwd0RRQUFGTmZCb0FGUkZReGFjQ1VBRUJYWHc2QUFVUlVNYW5CRkFBQVcxOFdnQXpJcUNPVHcxZ0JnVDA4ZWtCVEJEc25qaDB4eDVmQWtCR01BRFlQbkRJTmgrREFLQ0hRQ2ErRklBN0VVakZsd1B3QndLNStKSUFma0FnR1I5dytKV3dPZWY2eldEVitQSUFZdUxmeGdXQVdJSUFFQk1BWWdKQWpPUjhEZ0QrNk96Z3Y0dXk5Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgaCA9IDAuMztcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggLTAuMDA1LCAtMC4wMDQsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgY2hlY2ttYXJrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPak16T2pVekxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3pNem8xTXkwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzJPRGN4WVRrNVl5MHpOakU1TFRsa05HRXRPRGRrTmkwd1lXRTVZVFJpTldVNE1qYzhMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qWTROekZoT1RsakxUTTJNVGt0T1dRMFlTMDROMlEyTFRCaFlUbGhOR0kxWlRneU56d3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejV6OVJUM0FBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBVHRTVVJCVkhqYTdKemJiNVJGR01aLzJ4YkN2VmhBU0V4VWlJMTQ0dzBoUXRIRUdySGdJU3FnTjZLZ3ROWVdBYjB3MFdvMVhxcmJQYlNsb2tZU3hmTWhlbVgvQWE3d0dBVnE4WFRwMzBEWGk1bUptMGEydTl2My9iNloyWGx1ZHJPSGR3L1BNelBQKzc0elg2RldxeUdGZ1lFQkVscEdEL0FlY0N0d0IvRGJjbStZbTVzVCsvQ3U5UC9uaW02Z0NEd0NYQXQ4RFZ5WDVSZElBc2dQQmFBRWpOUTlkaVB3RmJBNUNTQitUQUZQL2Mvalc0SFBnTDRrZ0hneEN3dzFlUDVtNEdON213UVFFYm9zK1U4MDhkcXR3RWYyTmdrZ0VyYy8weVQ1RG4xMk9kaVNCQkErK2FVV3lYZllBbndEWEo4RUVHNnFOd2tNcnlER1pwc2kzcEFFRUI2cVYzRDdyYUlQK05LbWlra0FnZUF0NEloZ3ZKdnNUSkFFNERrS3dDbmdzRUxzczBrQS9xLzVzOEFoaGRqVHdFRnBkNW9nUzM1VmFlVFBBazhEaTBrQS9wSmZFbDd6SFU3U3VIS1lsZ0FQMXZ5eWtOdGZpaGt0OHBNQVpFa2FWb2hiVllxYkJDQ0lVOENUQ25GTHdKajJsMDhDV05tYS83YVMyNjhDeDZRTlh4S0FySG1lQmg1WFdrN0dzaUEvVHdHTVlmYS9oVXArbWZZYU84MjQvZUdzeU05TEFDOWdtaVB2QXpzREk3L0xyczFEU2lOL0tJOGZsQ1hHZ1ZmdC9WN2dETEFySUFGTWgrcjJmUkRBUzhERWtzYzJBaDhDL1IzczlzdkFhSjVUV2xia3YzeUY1OVpqZHIxczkzamExM0w3RmV2MmF6RUxZTHdCK1E1ck1iM3ViUjRhdnBOS2JuOGFlQWE0bkxlNnRRM2ZSSk92N1FXKzhHZ202TEVqVktPeE00TTVEM0E1N3grcEtZQVg2d3hmczlnQWZBTHM4SUI4cmNhT0t4dlhmRkM1bGdER2dWZmFmSzh6aHJ0eS9FKzBYSGtsTDdlZnBRQW1XcGoybHhQQmJUbjhKN1BvMWZaSDhRelNBbmpOam40SnJNZWNqc21xV0ZRQTNsVnkreVhyOW9sZEFIY0t4N3NhK0R3RFk5aGo4L3lEaXFuZVlpY0k0RkhnUitHWWE1V3pBODNHemhSdzFGZnlOUVR3QzNDUHZaWEVPdUJUekVVVUpMRXFnMVRQVy9LMVRPQ2Z3Q0J3VVRqdU5jaVdqYnN4WlZpTlZDKzMycjR2YWVBZndGM0FnbkRjVFZZRXR3dU5VQTN5eTVqZHUzU3lBQUIrQjNZckxBY2JCT29FN3loTis1TjJ6U2NKd0dBZWVBRDRUamh1TDZhQjFLb242TGJrUDZZMDhvL2pTWVhQRndFQW5BY2VWaERCVlMxbUI2NnhvMEgrRktheHMwaGd5S29kZkFGNEVQaEpxVTZ3M0V5d3locXpRMHJrajRSSWZwWUNBTGdFN0xFemdpUmN4YkMvd2Npdm9GUGVkZVFIaTZ5M2hQMWxqZUc4VW9xNE5Ec29ZSW84V2p0NWdpWS9Ed0hVcDRpL0ttUUhaK3BFVU1EczVORncrMFV5T0xRUnF3RGNjbkF2OEwxdzNIWEFhWnNpdnE1aytJckFDU0pCbnFlRDU0RUR3QWZBTFlKeE53SGZLcG15c2lWL01SWUI1SDB5NkFLd0gvaEJPTzVxWUkyQzRUc2FFL2srQ0FETTFiSDNJbDh4bEVUVkdyNGFrY0dYczRGL0EzZmJHY0UzVkFpb3RoK3FBTUIwRVhkN0pvSkpQTnpHRmFzQXdEU1FCcEhmVk5LdTJ6OUc1UER4ZVBnQzhCQndMdWVSZnlMR05UOEVBWURaVEhJQStRWlNzMnYrOGRqY2ZtZ0NjSFdDKzVGdklDM245a2M3aFh6ZkJlQ000UjdreThZZDUvWkRGUUQ4MTBDNnFQZ1owYnY5a0FWUW55SnFGSXZleEd6bUlBbkFiMXdDN2hNMmhrWGdXVG9Zb1YwbHpEV1FKRkxFNkJvN25TQUFseUx1WTJVTnBBb1pYb290Q1VBZUM1Z0cwczl0a2o5S1F0QUNBTk5BR3FTMVBZYWxSSDQ4QW5BcFlyUGJ5NG9FZG1nakNhRDVGSEV2amJlWHZZRXA3eVpFS0FEbkNmWmJFZndEUEk4NUwrRElmNDRPYU95MGczOEhBTS9lN2d1SVJ4OTRBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRUVTVVJCVkdpQjdkaEJEb013REVSUjdqVGlKQ1B1ZjVXdW1waFZ4WHlrVkpHeklwSjVjZ3NrZG80TGpxT0JyUUE5SEEwMDBNRCt3UFZqdkFXY0ZCanpFQmdKcE1DY1o4Qk1JQVRLUEFKS0FobFE1d253VGNBcE1DNURZQ1NRQXZlcjU4Qk1JQVRLRFJGUUVzaUFHazhBVTBBUU1BVUVBVk5BRURBRkJBRlRRQkF3QlFRQlUwQVFNQVVFQVZOQUVEQUZCQUZUUUJEd2NnRC9CUDRuNHNmSVh5VDhLdk9QQ1gvT2ZFSEJTeHBmVlBHeXpqY1d2TFh4elJWdjc3ekF3Q1VPTDdKd21jY0xUVnpxOG1JN0wvZlBra0lFNEphSE4xMjQ3ZU9OSjI1OWVmTjlpMWx6QUZHREZoM0NsS2hWQjFFemJObGgzSWo3d3hQTkJocG9ZRFdRamdhMkFENVMvQ3lJdmJtcTdnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NCdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHVuZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFUFNVUkJWR2lCN2RneENzUXdEQVRBL0Vub0pVTC8vOHBWc1dXbE9Md0xVVEJ5RmZiRXNOYzRkaTRuMTlYQVVZQnNyZ1lhYU9COHdQOHNHakFXY0Jvd0ZuQWFNQlp3R2pBV2NCalFVQUVDSkF4alFLaUFBZko4MmdSbUJSQ1lGVkJnVkVDQngrL2JnS1pzRzhnRCswQ3FzQStrQ1FCWUt3REFPb0lBU3dVRVdHWWdJRmFBZ0RpRUFhRUNCb1FwRUpnVlFHQ09vY0NvZ0FMd2p2U29BQVAzSUE0b0N3Z05LQXNJRFdnNXdQNEZaUUVuQVdVQkp3RmxnVHNyMjFCR1ZyV3B6cXpveFJLeW1wZHJ6RW9PR0V0V2NjaGFzNEtEWnNyZVAyem43UFVMeDNnRWdWR2c2dG8zQ3hSZGZVT0JvdXQvS0ZENkNjUllRRWpBV0VCSXdGZ2d6MzN3aTJZRERUUlFEYUNyZ1NPQUg4SDhLcWdnWXBBVUFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ1J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcbiIsIi8qKiBcclxuICogQmlnIGJ1dHRvbiB3aXRoIGFuIGltYWdlIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogQWxzbyB1c2FibGUgYXMgYW4gJ3h5IGNvbnRyb2xsZXInIHZpYSBhZGRYWUNvbnRyb2xsZXIgbWV0aG9kLlxyXG4gKiBcclxuICogQVBJIHN1YmplY3QgdG8gY2hhbmdlLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7aXNDb250cm9sbGVyVmlzaWJsZX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBmdW5jID0gdW5kZWZpbmVkLFxyXG4gIHByZXNzaW5nID0gdW5kZWZpbmVkLFxyXG4gIGltYWdlID0gXCJ0ZXh0dXJlcy9zcG90bGlnaHQuanBnXCIsIC8vVE9ETyBiZXR0ZXIgZGVmYXVsdFxyXG4gIHdpZGUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY2hhbmdlQ29sb3JPbkhvdmVyID0gdHJ1ZSwgLy9xdWljayBoYWNrOiBjb2xvciBwaWNrZXIgd2FudHMgdGhpcyB0byBiZSBmYWxzZVxyXG4gIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAgLy9YWFggbWFnaWMgbnVtYmVycy4uLlxyXG4gIGlmICghaGVpZ2h0KSBoZWlnaHQgPSBMYXlvdXQuUEFORUxfV0lEVEggICogKHdpZGUgPyAwLjk0IDogMC4yNSk7XHJcbiAgXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAod2lkZSA/IDAuOTQgOiAwLjI1KSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gYnV0dG9uRGVwdGg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgMSwgMSApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICAvL21vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gIGlmICghd2lkZSkgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgZWxzZSB7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAwLjc1O1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi55ID0gMC4wMTsgLy9YWFggbWFnaWMgbnVtYmVyXHJcbiAgfVxyXG5cclxuICB2YXIgbWF0ZXJpYWw7XHJcbiAgaWYgKGltYWdlLmlzTWF0ZXJpYWwpIHtcclxuICAgIG1hdGVyaWFsID0gaW1hZ2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgbWF0ZXJpYWwpO1xyXG4gIH1cclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgLy9idXR0b24gbGFiZWwgcmVtb3ZlZDsgbWlnaHQgd2FudCBvcHRpb25zIGxpa2UgYSBob3ZlciBsYWJlbCBpbiBmdXR1cmUuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGlmICh3aWRlKSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIC8vVE9ETzogZHJhZyBhbmQgaG92ZXJcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdob3ZlcmluZycsIGhhbmRsZUhvdmVyICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlUHJlc3NpbmcgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgbGV0IGhvdmVyRnVuYyA9IHVuZGVmaW5lZDtcclxuICAvLyBJIG1pZ2h0IHlldCBkZWNpZGUgdG8gY2hhbmdlIHRoaXMgaW50ZXJmYWNlLlxyXG4gIC8vIG1pZ2h0IHVzZSBhIGRpZmZlcmVudCBuYW1lLCBtaWdodCB3YW50IHRvIGFkZCBsaXN0ZW5lcnMgdG8gZXZlbnRcclxuICAvLyByYXRoZXIgdGhhbiBqdXN0IHNldCBjYWxsYmFjayBmdW5jdGlvbi5cclxuICBncm91cC5vbkhvdmVyID0gZiA9PiB7XHJcbiAgICBob3ZlckZ1bmMgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBncm91cC5vblByZXNzaW5nID0gZiA9PiB7XHJcbiAgICBwcmVzc2luZyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhvdmVyKCBwICl7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChob3ZlckZ1bmMpIGhvdmVyRnVuYyhwKTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy9pdCBzaG91bGQgYmUgdGhhdCB0aGUgY2hlY2tzIGluIGluZGV4LmpzIG1lYW4gdGhhdCBtZXRob2RzIGRvbid0IGdldCBjYWxsZWQgb24gaW52aXNpYmxlXHJcbiAgICAvL29iamVjdHMsIHJlbmRlcmluZyB0aGVzZSB0ZXN0cyByZWR1bmRhbnQuLi4gaG93ZXZlciwgdGhhdCBkb2Vzbid0IGFwcGVhciB0byBiZSB0aGUgY2FzZS5cclxuICAgIC8vZXhwZXJpZW5jZWQgc29tZSBidWdzIHBhcnRpY3VsYXJseSB3aXRoICdtb2RhbCBlZGl0b3InIHR5cGUgcGFuZWxzLlxyXG4gICAgLy9UT0RPOiBlaXRoZXIgbWFrZSBzdXJlIGludmlzaWJsZSBvYmplY3RzIGFyZW4ndCBjYWxsZWQgaW4gdGhlIGZpcnN0IHBsYWNlLFxyXG4gICAgLy9vciBtYWtlIHN1cmUgYWxsIHR5cGVzIG9mIG9iamVjdCBkbyB0aGlzIG1vcmUgdGhvcm91Z2ggdmlzaWJpbGl0eSBjaGVjay4uLlxyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAob2JqZWN0KSBvYmplY3RbIHByb3BlcnR5TmFtZSBdKHApO1xyXG4gICAgaWYgKGZ1bmMpIGZ1bmMocCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vY29tcHV0ZSB4ICYgeSBhcyBub3JtYWxpc2VkIGNvb3JkaW5hdGVzIGZyb20gcC5wb2ludFxyXG4gIC8vY291bGQgY29uc2lkZXIgbW92aW5nIHRoaXMgY29tcHV0YXRpb24gaW50byBpbnRlcmFjdGlvbi5qcyBwZXJmb3JtU3RhdGVFdmVudHMoKVxyXG4gIGZ1bmN0aW9uIGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHBvaW50KSB7XHJcbiAgICBjb25zdCBwID0gaGl0c2NhblZvbHVtZS53b3JsZFRvTG9jYWwocG9pbnQpO1xyXG4gICAgcC54IC89IEJVVFRPTl9XSURUSDtcclxuICAgIHAueSAvPSBCVVRUT05fSEVJR0hUO1xyXG4gICAgcC55ICs9IDAuNTtcclxuICAgIHAueCA9IE1hdGgubWF4KE1hdGgubWluKHAueCwgMSksIDApO1xyXG4gICAgcC55ID0gTWF0aC5tYXgoTWF0aC5taW4ocC55LCAxKSwgMCk7XHJcbiAgICByZXR1cm4gcDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZVByZXNzaW5nKCBwICkge1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgcHJlc3NpbmcgYXQgKCR7cG9pbnQueH0sICR7cG9pbnQueX0pYCk7IC8vZmlyc3QgaW5zdGFuY2Ugb2YgJ3ByZXNzaW5nJyBpcyBhbHdheXMgYXQgKDEsIDEpXHJcbiAgICAvL25iLCBsaWtlbHkgdG8gbmVlZCBhIGRpZmZlcmVudCBzdHJhdGVneSBmb3IgZHVhbCB3aWVsZGluZ1xyXG4gICAgaWYgKHByZXNzaW5nKSBwcmVzc2luZyhwKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYgKCFtYXRlcmlhbC5jb2xvcikgcmV0dXJuO1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweENDQ0NDQyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqIFxyXG4gKiBHcmlkIG9mIGJ1dHRvbnMgd2l0aCBpbWFnZXMgb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBpbWFnZWJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtjcmVhdGVUZXh0TGFiZWwsIGNyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3RzLCAvLyBhcnJheSBvZiB7ZnVuYywgaW1hZ2UgfCB0ZXh0LCB0aXAob3B0aW9uYWwpLCByZWxlYXNlKG9wdGlvbmFsKX1cclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICByb3dIZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY29sdW1ucyA9IDRcclxufSA9IHt9ICl7XHJcbiAgXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdCBtYXJnaW4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMztcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSAod2lkdGggLSBtYXJnaW4pICogKDEvY29sdW1ucyk7XHJcbiAgLy9UT0RPOiBhZGQgc2V0Um93SGVpZ2h0IG1ldGhvZFxyXG4gIGxldCBCVVRUT05fSEVJR0hUID0gcm93SGVpZ2h0ID4gMCA/IHJvd0hlaWdodCA6IEJVVFRPTl9XSURUSDtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uZ3JpZFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke29iamVjdHN9XWA7XHJcbiAgXHJcbiAgY29uc3Qgcm93cyA9IE1hdGguY2VpbChvYmplY3RzLmxlbmd0aCAvIGNvbHVtbnMpO1xyXG4gIGxldCBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgZ3JvdXAuc2V0Um93SGVpZ2h0ID0gaCA9PiB7XHJcbiAgICByb3dIZWlnaHQgPSBCVVRUT05fSEVJR0hUID0gaDtcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcbiAgICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGhpZ2hsaWdodExhc3RQcmVzc2VkID0gZmFsc2U7XHJcbiAgbGV0IGxhc3RQcmVzc2VkID0gbnVsbDtcclxuICBsZXQgbGFzdFByZXNzZWRDb2w7XHJcbiAgZ3JvdXAuaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSAoY29sID0gMHgzMzU1RUUpID0+IHtcclxuICAgICAgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBjb2wgIT09IGZhbHNlO1xyXG4gICAgICBsYXN0UHJlc3NlZENvbCA9IGNvbDtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBcclxuICBsZXQgcGFuZWwsIGdyYWJJbnRlcmFjdGlvbiwgYnV0dG9ucyA9IFtdO1xyXG5cclxuICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaW5pdFBhbmVsKCkge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgcGFuZWwuYWRkKGNvbnRyb2xsZXJJRCk7XHJcbiAgICBcclxuICAgIGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5ncm91cC5yZW1vdmUoYikpO1xyXG4gICAgYnV0dG9ucyA9IFtdO1xyXG4gICAgZ3JvdXAuZ3VpQ2hpbGRyZW4gPSBidXR0b25zO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBsYXlvdXRCdXR0b25zKCkge1xyXG4gICAgaW5pdFBhbmVsKCk7XHJcbiAgICAvL1RPRE86IHBhZGRpbmdcclxuICAgIGNvbnN0IGJ1dHRvbldQYWRkZWQgPSBCVVRUT05fV0lEVEggKiAwLjk5LCBidXR0b25IUGFkZGVkID0gQlVUVE9OX0hFSUdIVCAqIDAuOTk7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGJ1dHRvbldQYWRkZWQsIGJ1dHRvbkhQYWRkZWQsIDEsIDEgKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBidXR0b25XUGFkZGVkIC8gMiwgLWJ1dHRvbkhQYWRkZWQgLyAyLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgICB2YXIgaSA9IDA7XHJcbiAgICBcclxuICAgIC8vVE9ETzogdG9nZ2xlcyByYXRoZXIgdGhhbiB0cmlnZ2Vycy4uLlxyXG4gICAgb2JqZWN0cy5mb3JFYWNoKChvYmosIGkpID0+IHtcclxuICAgICAgICBpZiAoIW9iai5pbWFnZSAmJiAhb2JqLnRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc3ViZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9ub3RlOiByZWR1Y2luZyBuZXN0aW5nIGNvdWxkIGltcHJvdmUgcGVyZm9ybWFuY2UuXHJcbiAgICAgICAgc3ViZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VCdXR0b25HcmlkRWxlbWVudFwiO1xyXG4gICAgICAgIGdyb3VwLmFkZChzdWJncm91cCk7XHJcbiAgICAgICAgYnV0dG9ucy5wdXNoKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sID0gaSAlIGNvbHVtbnM7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gTWF0aC5mbG9vcihpIC8gY29sdW1ucyk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnggPSAoMipMYXlvdXQuUEFORUxfTUFSR0lOKSArIEJVVFRPTl9XSURUSCAqIGNvbDtcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi55ID0gKGhlaWdodC8yKSAtQlVUVE9OX0hFSUdIVCAqIHJvdztcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG5cclxuICAgICAgICAvLyAgaGl0c2NhbiB2b2x1bWUuXHJcbiAgICAgICAgLy8gVGhpcyBtYXRlcmlhbCBjb3VsZCBwcm9iYWJseSBiZSByZXVzZWQuXHJcbiAgICAgICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG5cclxuICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgICAgICBpZiAob2JqLmltYWdlKSBhcHBseUltYWdlVG9NYXRlcmlhbChvYmouaW1hZ2UsIG1hdGVyaWFsKTtcclxuICAgICAgICBpZiAob2JqLnRleHQpIHtcclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZShvYmoudGV4dCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpbiA9IDIqTGF5b3V0LkdSSURfQlVUVE9OX01BUkdJTjtcclxuICAgICAgICAgICAgbGV0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICBpZiAodyA+IEJVVFRPTl9XSURUSCAtIG1hcmdpbikge1xyXG4gICAgICAgICAgICAgICAgdGV4dC5jb25zdHJhaW5Cb3VuZHMoQlVUVE9OX1dJRFRIIC0gbWFyZ2luLCBCVVRUT05fSEVJR0hUIC0gbWFyZ2luKTsgLy88LS1cclxuICAgICAgICAgICAgICAgIGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLmFkZCh0ZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGV4dCA9IHRleHQ7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueCA9IG9iai50ZXh0WCB8fCAwLjUgKiAoQlVUVE9OX1dJRFRIIC0gdyk7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueSA9IG9iai50ZXh0WSB8fCAtMC41ICogQlVUVE9OX0hFSUdIVCAtIGg7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgICAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgICAgIC8vYnV0dG9uIGxhYmVsICYgZGVzY3JpcHRvciBsYWJlbCByZW1vdmVkLlxyXG4gICAgICAgIC8vVG9vbHRpcCB0ZXh0IG9wdGlvbiBhZGRlZC4gIE1pZ2h0IHdhbnQgdG8gYmUgYWJsZSB0byBwYXNzIGluIHJpY2hlciB0aGluZ3MuLi5cclxuICAgICAgICAvL21heWJlIGFuIGFyYml0cmFyeSBUSFJFRSBvYmplY3Qgd291bGQgd29yayB3ZWxsLi4uXHJcbiAgICAgICAgaWYgKG9iai50aXApIHtcclxuICAgICAgICAgICAgY29uc3QgdGlwVGV4dCA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIG9iai50aXAsIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vc3ViZ3JvdXAuYWRkKHRpcFRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50aXBUZXh0ID0gdGlwVGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy9wYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcbiAgICAgICAgc3ViZ3JvdXAuYWRkKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgcGFuZWwuYWRkKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAgICAgICAgIGlmKCBzdWJncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vVE9ETzogc3RhbmRhcmRpc2UgaGFuZGxpbmcgb2YgZXhjZXB0aW9ucyBpbiBjYWxsYmFja3NcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIG9iai5mdW5jKCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIG9iai5lcnJvciA9IGUgfHwgJ3VuZGVmaW5lZCBleGNlcHRpb24nO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxhc3RQcmVzc2VkID0gb2JqO1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC40O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgICAgICAgICAgIGlmIChvYmoucmVsZWFzZSkgb2JqLnJlbGVhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9xdWljayBjb2xvciBoYWNrLi4uXHJcbiAgICAgICAgY29uc3QgaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgY29uc3Qgbm9Ib3ZlckNvbCA9IG9iai50ZXh0ID8gMHgxMTEgOiAweENDQ0NDQztcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3ID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaGlnaGxpZ2h0TGFzdFByZXNzZWQgJiYgbGFzdFByZXNzZWQgPT09IG9iaikge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBsYXN0UHJlc3NlZENvbCApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpID8gaG92ZXJDb2wgOiBub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygpICk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwwKSApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlOyAvL3NvbWV0aW1lcyB3ZSBjYXJlIGFib3V0IHRoZSBtb3VzZSBiZWluZyBwcmVzc2VkLCBldmVuIG9uIGJhY2tncm91bmRcclxuICAgICAgIC8vd2lsbCBiZSBzZXQgZmFsc2UgYXQgZW5kIG9mIGZpcnN0IHVwZGF0ZS4gU2hvdWxkbid0IGJlIG5lY2Vzc2FyeSB0byBhZGQgYSBuZXcgcHJvcGVydHkuLi4gXHJcbiAgICAgICAvL29uUHJlc3NlZCBzaG91bGQgYmUgYWRlcXVhdGUuXHJcbiAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgfSwgdHJ1ZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2V1cCcsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBmdW5jdGlvbiB1c2VycyBydW4gdG8gZ2l2ZSBEQVQgR1VJIGFuIGlucHV0IGRldmljZS5cclxuICAgIEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBmb3IgVml2ZUNvbnRyb2xsZXIgYW5kIGJpbmRzIGJ1dHRvbnMgKyBoYXB0aWMgZmVlZGJhY2suXHJcblxyXG4gICAgUmV0dXJucyBhIGxhc2VyIHBvaW50ZXIgc28gaXQgY2FuIGJlIGRpcmVjdGx5IGFkZGVkIHRvIHNjZW5lLlxyXG5cclxuICAgIFRoZSBsYXNlciB3aWxsIHRoZW4gaGF2ZSB0d28gbWV0aG9kczpcclxuICAgIGxhc2VyLnByZXNzZWQoKSwgbGFzZXIuZ3JpcHBlZCgpXHJcblxyXG4gICAgVGhlc2UgY2FuIHRoZW4gYmUgYm91bmQgdG8gYW55IGJ1dHRvbiB0aGUgdXNlciB3YW50cy4gVXNlZnVsIGZvciBiaW5kaW5nIHRvXHJcbiAgICBjYXJkYm9hcmQgb3IgYWx0ZXJuYXRlIGlucHV0IGRldmljZXMuXHJcblxyXG4gICAgRm9yIGV4YW1wbGUuLi5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCl7IGxhc2VyLnByZXNzZWQoIHRydWUgKTsgfSApO1xyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW5wdXRPYmplY3QoIG9iamVjdCApe1xyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCggb2JqZWN0ICk7XHJcblxyXG4gICAgaW5wdXQubGFzZXIucHJlc3NlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGNvbnN0IGhpdHMgPSBpbnB1dC5pbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvLyBvbmx5IHBheSBhdHRlbnRpb24gdG8gcHJlc3NlcyBvdmVyIHRoZSBHVUlcclxuICAgICAgaWYgKGZsYWcgJiYgaGl0cyAmJiAoaGl0cy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5ncmlwcGVkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgaW5wdXQuZ3JpcHBlZCA9IGZsYWc7XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmN1cnNvciA9IGlucHV0LmN1cnNvcjtcclxuXHJcbiAgICBpZiggVEhSRUUuVml2ZUNvbnRyb2xsZXIgJiYgb2JqZWN0IGluc3RhbmNlb2YgVEhSRUUuVml2ZUNvbnRyb2xsZXIgKXtcclxuICAgICAgYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgb2JqZWN0LCBpbnB1dC5sYXNlci5wcmVzc2VkLCBpbnB1dC5sYXNlci5ncmlwcGVkICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLnB1c2goIGlucHV0ICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0Lmxhc2VyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEhlcmUgYXJlIHRoZSBtYWluIGRhdCBndWkgY29udHJvbGxlciB0eXBlcy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBtaW4gPSAwLjAsIG1heCA9IDEwMC4wICl7XHJcbiAgICBjb25zdCBzbGlkZXIgPSBjcmVhdGVTbGlkZXIoIHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBtaW4sIG1heCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBzbGlkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gc2xpZGVyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBjaGVja2JveCA9IGNyZWF0ZUNoZWNrYm94KHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGNoZWNrYm94ICk7XHJcblxyXG4gICAgcmV0dXJuIGNoZWNrYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmMgdG8gY2FsbCBiYWNrIHdoZW4gYnV0dG9uIHByZXNzZWRcclxuICAgKiBAcGFyYW0geyp9IGltYWdlIGNhbiBiZSBmaWxlbmFtZSwgV2ViR0xSZW5kZXJUYXJnZXQgb3IgTWF0ZXJpYWxcclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHdpZGUgd2hldGhlciB0byBtYWtlIGJ1dHRvbiBmaWxsIGVudGlyZSB3aWR0aCBvZiBwYW5lbCAoYXBpIHN1YmplY3QgdG8gY2hhbmdlKVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uKGZ1bmMsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IG9iamVjdCA9IHsgZjogZnVuYyB9O1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJ2YnO1xyXG5cclxuXHJcbiAgICAvL3NlZSBhbHNvIGZvbGRlci5qcyB3aGVyZSB0aGlzIGlzIGFkZGVkIHRvIGdyb3VwIG9iamVjdC4uLlxyXG4gICAgLy9hcyBzdWNoIHRoaXMgZnVuY3Rpb24gYWxzbyBuZWVkcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gY3JlYXRlRm9sZGVyLlxyXG4gICAgLy9wZXJoYXBzIGFsbCBvZiB0aGVzZSAnYWRkWCcgZnVuY3Rpb25zIGNvdWxkIGJlIGluaXRpYWxseSBwdXQgb250byBhbiBvYmplY3Qgc28gdGhhdFxyXG4gICAgLy9uZXcgYWRkaXRpb25zIGNvdWxkIGJlIGFkZGVkIHNsaWdodGx5IG1vcmUgZWFzaWx5LlxyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkWFlDb250cm9sbGVyKHByZXNzaW5nLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnJztcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByZXNzaW5nLCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChidXR0b24pO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVGhpcyBpbnRlcmZhY2UgbWF5IGJlIHN1YmplY3QgdG8gY2hhbmdlLiAgQXJndW1lbnRzIGFyZSBvYmplY3RzIGRlc2NyaWJpbmcgYnV0dG9uc1xyXG4gIEZpcnN0IG9iamVjdCBtYXkgYmUgYW4gaW50ZWdlciBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uUGFuZWwoY29scywgLi4uYXJncykge1xyXG4gICAgbGV0IGNvbHVtbnMgPSBOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpID8gY29scyA6IDQ7XHJcbiAgICBjb25zdCBvYmplY3RzID0gYXJncztcclxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihjb2xzKSkgb2JqZWN0cy51bnNoaWZ0KGNvbHMpXHJcbiAgICBjb25zdCBncmlkID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogY29sdW1uc30pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChncmlkKTtcclxuICAgIHJldHVybiBncmlkO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkS2V5Ym9hcmQoIGtleUxpc3RlbmVyICkge1xyXG4gICAgaWYgKCFrZXlMaXN0ZW5lcikga2V5TGlzdGVuZXIgPSAoaykgPT4gY29uc29sZS5sb2coYGtleURvd24gJHtrfWApO1xyXG4gICAgY29uc3Qga2IgPSBjcmVhdGVLZXlib2FyZCh7a2V5TGlzdGVuZXIsIHRleHRDcmVhdG9yfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGtiKTtcclxuICAgIHJldHVybiBrYjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlVGV4dGJveCh7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVDb2xvclBpY2tlcih7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvcHRpb25zICl7XHJcbiAgICBjb25zdCBkcm9wZG93biA9IGNyZWF0ZURyb3Bkb3duKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBvcHRpb25zXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBkcm9wZG93biApO1xyXG4gICAgcmV0dXJuIGRyb3Bkb3duO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBbiBpbXBsaWNpdCBBZGQgZnVuY3Rpb24gd2hpY2ggZGV0ZWN0cyBmb3IgcHJvcGVydHkgdHlwZVxyXG4gICAgYW5kIGdpdmVzIHlvdSB0aGUgY29ycmVjdCBjb250cm9sbGVyLlxyXG5cclxuICAgIERyb3Bkb3duOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvYmplY3RUeXBlIClcclxuXHJcbiAgICBTbGlkZXI6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mTnVtYmVyVHlwZSwgbWluLCBtYXggKVxyXG5cclxuICAgIENoZWNrYm94OlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkJvb2xlYW5UeXBlIClcclxuXHJcbiAgICBCdXR0b246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mRnVuY3Rpb25UeXBlIClcclxuXHJcbiAgICBOb3QgdXNlZCBkaXJlY3RseS4gVXNlZCBieSBmb2xkZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKXtcclxuXHJcbiAgICBpZiggb2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2VcclxuXHJcbiAgICBpZiAob2JqZWN0LmlzRm9sZGVyKSByZXR1cm4gb2JqZWN0O1xyXG5cclxuICAgIGlmKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgY29uc29sZS53YXJuKCAnbm8gcHJvcGVydHkgbmFtZWQnLCBwcm9wZXJ0eU5hbWUsICdvbiBvYmplY3QnLCBvYmplY3QgKTtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc09iamVjdCggYXJnMyApIHx8IGlzQXJyYXkoIGFyZzMgKSApe1xyXG4gICAgICByZXR1cm4gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzTnVtYmVyKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Jvb2xlYW4oIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNGdW5jdGlvbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc1N0cmluZyggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNDb2xvciggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYWRkIGNvdWxkbid0IGZpZ3VyZSBpdCBvdXQsIHBhc3MgaXQgYmFjayB0byBmb2xkZXJcclxuICAgIHJldHVybiB1bmRlZmluZWRcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVTbGlkZXIoIG1pbiA9IDAsIG1heCA9IDEgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBudW1iZXI6IG1pblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkU2xpZGVyKCBwcm94eSwgJ251bWJlcicsIG1pbiwgbWF4ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVEcm9wZG93biggb3B0aW9ucyA9IFtdICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgb3B0aW9uOiAnJ1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiggb3B0aW9ucyAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHByb3h5Lm9wdGlvbiA9IGlzQXJyYXkoIG9wdGlvbnMgKSA/IG9wdGlvbnNbIDAgXSA6IG9wdGlvbnNbIE9iamVjdC5rZXlzKG9wdGlvbnMpWzBdIF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFkZERyb3Bkb3duKCBwcm94eSwgJ29wdGlvbicsIG9wdGlvbnMgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUNoZWNrYm94KCBkZWZhdWx0T3B0aW9uID0gZmFsc2UgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBjaGVja2VkOiBkZWZhdWx0T3B0aW9uXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRDaGVja2JveCggcHJveHksICdjaGVja2VkJyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQnV0dG9uKCBmbiApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGJ1dHRvbjogKGZuIT09dW5kZWZpbmVkKSA/IGZuIDogZnVuY3Rpb24oKXt9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRCdXR0b24oIHByb3h5LCAnYnV0dG9uJyApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBOb3QgdXNlZCBkaXJlY3RseTsgdXNlZCBieSBmb2xkZXJzLlxyXG4gIFJlbW92ZSBjb250cm9sbGVycyBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgY29udHJvbGxlcnMga25vd24gdG8gZGF0LkdVSVZSLlxyXG4gIENhbGxzIHJlbW92ZVRlc3QgZmlyc3QgdG8gY2hlY2sgaW5wdXQgYXJndW1lbnRzLiAgcmV0dXJucyBmYWxzZSBpZiB0aGlzIHRlc3QgZmFpbHMuXHJcbiAgcmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuXHJcblxyXG4gIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlY3Vyc2l2ZWx5IHJlbW92ZSBlbGVtZW50cyBmcm9tIGZvbGRlcnM7IHRoYXQgaXMgZGVhbHQgd2l0aCBpbiB0aGUgZm9sZGVyIGNvZGUgd2hpY2ggY2FsbHMgdGhpcy5cclxuICBcclxuICAgKi9cclxuICBmdW5jdGlvbiByZW1vdmUoIC4uLmFyZ3MgKXtcclxuICAgIGxldCBhcmdTZXQgPSBbIC4uLm5ldyBTZXQoYXJncykgXTsgLy9qdXN0IGluIGNhc2UgdGhlcmUgd2VyZSByZXBlYXRlZCBlbGVtZW50cyBpbiBhcmdzLCB0dXJuIGludG8gU2V0IHRoZW4gYmFjayB0byBhcnJheS5cclxuICAgIGlmICggIXJlbW92ZVRlc3QoLi4uYXJnU2V0KSApIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ1NldC5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIHZhciBpID0gY29udHJvbGxlcnMuaW5kZXhPZiggb2JqICk7XHJcbiAgICAgIGlmICggaSA+IC0xKSBjb250cm9sbGVycy5zcGxpY2UoIGksIDEgKTtcclxuICAgICAgZWxzZSB7IC8vIEkgY2FuJ3Qgc2VlIGhvdyB0aGlzJ2QgaGFwcGVuIG5vdyB3ZSBndWFyZCBhZ2FpbnN0IHJlcGVhdGVkIGVsZW1lbnRzLlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW50ZXJuYWwgZXJyb3IgaW4gcmVtb3ZlLCBub3QgYW50aWNpcGF0ZWQgYnkgcmVtb3ZlVGVzdC4gSW50ZXJuYWwgZGF0LkdVSVZSIHN0YXRlIG1heSBiZSBpbmNvbnNpc3RlbnQuXCIpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVmVyaWZ5IHRoYXQgYWxsIG9mIHRoZSBpdGVtcyBpbiBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGV4aXN0aW5nIGNvbnRyb2xsZXJzIHRoYXQgc2hvdWxkIGJlIG9rIHRvIHJlbW92ZS5cclxuXHJcbiAgUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBhcmUgYW55IG1pc21hdGNoZXMsIHRydWUgaWYgYmVsaWV2ZWQgb2sgdG8gY29udGludWUgd2l0aCBhY3R1YWwgcmVtb3ZlKClcclxuXHJcbiAgSWYgYW55IG9mIHRoZSBwcm92aWRlZCBhcmdzIGFyZSBmb2xkZXJzIChoYXZlIGlzRm9sZGVyIHByb3BlcnR5KSB0aGlzIGlzIGNhbGxlZCByZWN1cnNpdmVseS5cclxuICBUaGlzIHdpbGwgcmVzdWx0IGluIHJlZHVuZGFudCB3b3JrIGFzIGVhY2ggZm9sZGVyIHdpbGwgYWxzbyBjYWxsIGl0IGFnYWluIGFzIGl0J3MgcmVtb3ZlZCwgYnV0IHRoaXMgaXMgY2hlYXBcclxuICBhbmQgaXQgbWVhbnMgdGhhdCBhbnkgZXJyb3Igc2hvdWxkIGJlIGNhdWdodCBhcyBlYXJseSBhcyBwb3NzaWJsZSBhbmQgdGhlIHdob2xlIHByb2Nlc3MgYWJvcnRlZC5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZVRlc3QoIC4uLmFyZ3MgKSB7XHJcbiAgICBmb3IgKHZhciBpPTA7IGk8YXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgb2JqID0gYXJnc1tpXTtcclxuICAgICAgaWYgKGNvbnRyb2xsZXJzLmluZGV4T2Yob2JqKSA9PT0gLTEgfHwgIW9iai5mb2xkZXIuaGFzQ2hpbGQob2JqKSkge1xyXG4gICAgICAgIC8vVE9ETzogdG9TdHJpbmcgaW1wbGVtZW50YXRpb25zIGZvciBjb250cm9sbGVyc1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2FuJ3QgcmVtb3ZlIGNvbnRyb2xsZXIgXCIgKyBvYmopOyAvL25vdCBzdXJlIHRoZSBwcmVmZXJyZWQgd2F5IG9mIHJlcG9ydGluZyBwcm9ibGVtIHRvIHVzZXIuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBpZiAoIXJlbW92ZVRlc3QoIC4uLm9iai5ndWlDaGlsZHJlbiApKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGxldGVseSByZW1vdmUgYWxsIEdVSSBlbGVtZW50cyBmcm9tIHRoZSBzeXN0ZW0gZ2xvYmFsbHksIFxyXG4gICAqIGluY2x1ZGluZyByZW1vdmluZyBhbnkgb2JqZWN0cyBmcm9tIHRoZSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY2xlYXJBbGwoKSB7XHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBjLnZpc2libGUgPSBmYWxzZTsgaWYgKGMucGFyZW50ICYmICFjLnBhcmVudC5ndWlDaGlsZHJlbikgYy5wYXJlbnQucmVtb3ZlKGMpO1xyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5zcGxpY2UoMCwgY29udHJvbGxlcnMubGVuZ3RoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGZvbGRlciB3aXRoIHRoZSBuYW1lLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIFRIUkVFLkdyb3VwIHR5cGUgb2JqZWN0cyBhbmQgY2FuIGRvIGdyb3VwLmFkZCgpIGZvciBzaWJsaW5ncy5cclxuICAgIEZvbGRlcnMgd2lsbCBhdXRvbWF0aWNhbGx5IGF0dGVtcHQgdG8gbGF5IGl0cyBjaGlsZHJlbiBvdXQgaW4gc2VxdWVuY2UuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgZ2l2ZW4gdGhlIGFkZCgpIGZ1bmN0aW9uYWxpdHkgc28gdGhhdCB0aGV5IGNhbiBkb1xyXG4gICAgZm9sZGVyLmFkZCggLi4uICkgdG8gY3JlYXRlIGNvbnRyb2xsZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggbmFtZSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gY3JlYXRlRm9sZGVyKHtcclxuICAgICAgdGV4dENyZWF0b3IsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGd1aUFkZDogYWRkLFxyXG4gICAgICBndWlSZW1vdmU6IHJlbW92ZSxcclxuICAgICAgYWRkQ29udHJvbGxlckZ1bmNzOiB7XHJcbiAgICAgICAgYWRkU2xpZGVyOiBhZGRTaW1wbGVTbGlkZXIsXHJcbiAgICAgICAgYWRkRHJvcGRvd246IGFkZFNpbXBsZURyb3Bkb3duLFxyXG4gICAgICAgIGFkZENoZWNrYm94OiBhZGRTaW1wbGVDaGVja2JveCxcclxuICAgICAgICBhZGRCdXR0b246IGFkZFNpbXBsZUJ1dHRvbixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvbjogYWRkSW1hZ2VCdXR0b24sXHJcbiAgICAgICAgYWRkWFlDb250cm9sbGVyOiBhZGRYWUNvbnRyb2xsZXIsXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b25QYW5lbDogYWRkSW1hZ2VCdXR0b25QYW5lbCxcclxuICAgICAgICBhZGRLZXlib2FyZDogYWRkS2V5Ym9hcmQsXHJcbiAgICAgICAgYWRkVGV4dGJveDogYWRkVGV4dGJveFxyXG4gICAgICB9LFxyXG4gICAgICBnbG9iYWxDb250cm9sbGVyczogY29udHJvbGxlcnMsXHJcbiAgICAgIC8vPz8/XHJcbiAgICAgIGFkZEhlYWRlckZ1bmNzOiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGZvbGRlciApO1xyXG5cclxuICAgIHJldHVybiBmb2xkZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFBlcmZvcm0gdGhlIG5lY2Vzc2FyeSB1cGRhdGVzLCByYXljYXN0cyBvbiBpdHMgb3duIFJBRi5cclxuICAqL1xyXG5cclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IHREaXJlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMyggMCwgMCwgLTEgKTtcclxuICBjb25zdCB0TWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCkge1xyXG4gICAgY29uc3QgaXNPcnRob2dyYXBoaWMgPSBtb3VzZUVuYWJsZWQgJiYgbW91c2VJbnB1dC5tb3VzZUNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYTtcclxuICAgIGlmIChhdXRvVXBkYXRlKSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoIHVwZGF0ZSApO1xyXG4gICAgXHJcbiAgICB2YXIgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCk7XHJcbiAgICBjb25zdCBmb2xkZXJzID0gY29udHJvbGxlcnMuZmlsdGVyKGMgPT4gYy5mb2xkZXIgPT09IGMpOyAvL2FsbCB0b3AtbGV2ZWwgZm9sZGVyc1xyXG4gICAgZm9sZGVycy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gaXNPcnRob2dyYXBoaWMgPyBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhIDogZmFsc2U7XHJcbiAgICAgIGlmIChmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgICBmLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgICBmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSBmYWxzZTsgLy8gcHJvdGVjdCBhbnkgbmV3bHktZGlzcGxheWVkIG1vZGFsRWRpdG9yIGZyb20gYmVpbmcgY2xlYXJlZFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChmLnVzZXJEYXRhLmxheW91dFBlbmRpbmcpIGYucGVyZm9ybUxheW91dCgpO1xyXG4gICAgfSk7IFxyXG5cclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgLy9UT0RPOiBsb2NrIG1vdXNlIG9uIGhvdmVyPz9cclxuICAgICAgbW91c2VJbnB1dC5pbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixpbnRlcmFjdGlvbn0gPSB7fSwgaW5kZXggKXtcclxuICAgICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgICBvYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgXHJcbiAgICAgIHRQb3NpdGlvbi5zZXQoMCwwLDApLnNldEZyb21NYXRyaXhQb3NpdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIHRNYXRyaXguaWRlbnRpdHkoKS5leHRyYWN0Um90YXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBcclxuICAgICAgdERpcmVjdGlvbi5zZXQoMCwwLC0xKTtcclxuICAgICAgLy9hbHRlcmluZyBkaXJlY3Rpb24gZS5nLiB0byBwb2ludCBpbiBkaXJlY3Rpb24gb2YgZXh0ZW5kZWQgdHJpZ2dlciBmaW5nZXIsIHJhdGhlciB0aGFuICdtYWluIGF4aXMnIG9mIFZpdmUgY29udHJvbGxlci4uLlxyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkIGJlIGluIHVzZXJEYXRhLlxyXG4gICAgICBpZiAob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpIHREaXJlY3Rpb24uYXBwbHlRdWF0ZXJuaW9uKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKTtcclxuICAgICAgdERpcmVjdGlvbi5hcHBseU1hdHJpeDQoIHRNYXRyaXggKS5ub3JtYWxpemUoKTtcclxuICAgICAgXHJcbiAgICAgIHJheWNhc3Quc2V0KCB0UG9zaXRpb24sIHREaXJlY3Rpb24gKTtcclxuICAgICAgXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMCBdLmNvcHkoIHRQb3NpdGlvbiApO1xyXG4gICAgICBjb25zdCBhID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgICBhWzBdID0gdFBvc2l0aW9uLng7IGFbMV0gPSB0UG9zaXRpb24ueTsgYVsyXSA9IHRQb3NpdGlvbi56O1xyXG4gICAgICBcclxuICAgICAgLy8gIGRlYnVnLi4uXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHRQb3NpdGlvbiApLmFkZCggdERpcmVjdGlvbi5tdWx0aXBseVNjYWxhciggMSApICk7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIFxyXG4gICAgICBpbnB1dE9iamVjdHNbIGluZGV4IF0uaW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vd2FudCB0byBhZGQgaW5mbyAoaGl0IGRpc2N0YW5jZSkgdG8gb2JqZWN0IGZvciB1c2Ugb3V0c2lkZS4uLiBqdXN0IGFkZGluZyBlbnRpcmV0eSBvZiBpbnRlcnNlY3Rpb25zIGluIGNhc2UgdXNlZnVsXHJcbiAgICAgIGlmIChvYmplY3QudXNlckRhdGEpIG9iamVjdC51c2VyRGF0YS5ndWlJbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICBjb25zdCBpbnB1dHMgPSBpbnB1dE9iamVjdHMuc2xpY2UoKTtcclxuICAgIFxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICBpbnB1dHMucHVzaCggbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKCBjID0+IGMudXBkYXRlQ29udHJvbCggaW5wdXRzICkpO1xyXG4gICAgLy9ub3cgY2hlY2sgaWYgYW55IHByZXNzIG9uIGFueSBpbnB1dCBoaXQgYW55IG5vbidtb2RhbCBlZGl0b3InLi4uIGlmIHNvLCB3ZSdsbCByZW1vdmUgbW9kYWxzIGZyb20gYWxsIGZvbGRlcnNcclxuICAgIC8vKHRoaXMgaXNuJ3QgcGVyZmVjdDsgaWYgeW91IGFyZSBhY3RpdmVseSBpbnRlcmFjdGluZyB3aXRoIHNvbWV0aGluZyBhbmQgcHJlc3Mgb3RoZXIgYnV0dG9uIHNvbWV3aGVyZSBlbHNlLCBpdCdsbCByZW1vdmUgeW91ciBvYmplY3QpXHJcbiAgICBsZXQgaGl0Tm9uTW9kYWxzID0gaW5wdXRzLmZpbHRlcihpbnB1dCA9PiBpbnB1dC5oaXROb25Nb2RhbCk7XHJcbiAgICBpZiAoaGl0Tm9uTW9kYWxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGhpdE5vbk1vZGFscy5mb3JFYWNoKGggPT4gaC5oaXROb25Nb2RhbCA9IGZhbHNlKTsgLy9yZW1vdmUgZmxhZ3Mgc28gdGhleSBkb24ndCBwZXJzaXN0IHRvIHN1YnNlcXVlbnQgdXBkYXRlc1xyXG4gICAgICBmb2xkZXJzLmZvckVhY2goZiA9PiBmLmNsZWFyTW9kYWxFZGl0b3IoKSk7IC8vdGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBub3QgaGlkZSBpdGVtcyBuZXdseSBkaXNwbGF5ZWQgaW4gdGhpcyBmcmFtZVxyXG4gICAgfVxyXG4gICAgbW91c2VJbnB1dC5jbGlja2VkID0gZmFsc2U7XHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaChvPT5vLmNsaWNrZWQgPSBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZhcnlpbmcgZmxvYXQgdlNjYWxlO1xyXG4vLyBUaGlzIGlzIGRlZmluZWQgaW4gbGF5b3V0LmpzIChhbmQgd2FzIG9ic2VydmVkIGxvb2tpbmcgYXQgdGhyZWUgaGVpcmFjaHkgbWF0cmljZXMpXHJcbiNkZWZpbmUgVEVYVF9TQ0FMRSAwLjAwMDI0O1xyXG52b2lkIG1haW4oKSB7XHJcbiAgXHJcbiAgdlNjYWxlID0gcG93KGFicyhkZXRlcm1pbmFudChtYXQzKG1vZGVsVmlld01hdHJpeCkpKSwgLTAuMzMzMzMpICogVEVYVF9TQ0FMRTtcclxuICAvLyB2U2NhbGUgPSAxMC47XHJcbiAgdlV2ID0gdXY7XHJcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cclxufVxyXG5gO1xyXG5cclxuY29uc3QgbWVzaGJhc2ljX2ZyYWcgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG51bmlmb3JtIHZlYzMgY29sb3I7XHJcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcclxudmFyeWluZyBmbG9hdCB2U2NhbGU7XHJcblxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XHJcblxyXG4vLy8vL1xyXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcclxuICAgICNpZmRlZiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXNcclxuICAgICAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgI2Vsc2VcclxuICAgICAgICBmbG9hdCBhZndpZHRoID0gKDEuMCAvIDMyLjApICogKDEuNDE0MjEzNTYyMzczMDk1MSAvICgyLjAgKiBnbF9GcmFnQ29vcmQudykpO1xyXG4gICAgI2VuZGlmXHJcbiAgICBhZndpZHRoICo9IHZTY2FsZTtcclxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcclxufVxyXG4vLy8vXHJcblxyXG52b2lkIG1haW4oKSB7XHJcblxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XHJcblxyXG4gICAgLy8vXHJcbiAgICB2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICk7XHJcbiAgICBcclxuICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQobWFwLCB2VXYpO1xyXG4gICAgZmxvYXQgYWxwaGEgPSBhYXN0ZXAodGV4Q29sb3IuYSk7XHJcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xyXG4gICAgaWYgKGdsX0ZyYWdDb2xvci5hIDwgMC4wMDAxKSBkaXNjYXJkO1xyXG4gICAgLy8vXHJcblxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cclxuICAgIC8vWFhYOiBiaWcgY2h1bmsgcmVtb3ZlZCBmcm9tIG9yaWdpbmFsIG1lc2hiYXNpY19mcmFnIGhlcmUuXHJcbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxyXG59XHJcbmA7XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVTREZTaGFkZXIgKG9wdCkge1xyXG4gIG9wdCA9IG9wdCB8fCB7fTtcclxuICB2YXIgb3BhY2l0eSA9IHR5cGVvZiBvcHQub3BhY2l0eSA9PT0gJ251bWJlcicgPyBvcHQub3BhY2l0eSA6IDE7XHJcbiAgLy8vLS0gaGFyZGNvZGVkIGluIHNoYWRlciBjb2RlLCBndWl2ciBuZXZlciBwYXNzZWQgdGhlc2UgaW4gb3B0IC0tXHJcbiAgLy92YXIgYWxwaGFUZXN0ID0gdHlwZW9mIG9wdC5hbHBoYVRlc3QgPT09ICdudW1iZXInID8gb3B0LmFscGhhVGVzdCA6IDAuMDAwMVxyXG4gIC8vdmFyIHByZWNpc2lvbiA9IG9wdC5wcmVjaXNpb24gfHwgJ2hpZ2hwJ1xyXG4gIHZhciBjb2xvciA9IG9wdC5jb2xvcjtcclxuICB2YXIgbWFwID0gb3B0Lm1hcDtcclxuICBcclxuICBvcHQuZXh0ZW5zaW9ucyA9IG9wdC5leHRlbnNpb25zIHx8IHt9O1xyXG4gIG9wdC5leHRlbnNpb25zLmRlcml2YXRpdmVzID0gdHJ1ZTsgLy9uYiwgZmFsc2UgZGVmYXVsdHMgZm9yIGZyYWdEZXB0aCwgZHJhd0J1ZmZlcnMsIHNoYWRlclRleHR1cmVMT0Qgd2lsbCBubyBsb25nZXIgYmUgdGhlcmUuXHJcbiAgb3B0Lm5hbWUgPSBcIlNERiB0ZXh0IG1hdGVyaWFsXCI7XHJcblxyXG4gIC8vIHJlbW92ZSB0byBzYXRpc2Z5IHI3M1xyXG4gIGRlbGV0ZSBvcHQubWFwO1xyXG4gIGRlbGV0ZSBvcHQuY29sb3I7XHJcbiAgZGVsZXRlIG9wdC5wcmVjaXNpb247XHJcbiAgZGVsZXRlIG9wdC5vcGFjaXR5O1xyXG5cclxuICByZXR1cm4gYXNzaWduKHtcclxuICAgIHVuaWZvcm1zOiB7XHJcbiAgICAgIG9wYWNpdHk6IHsgdHlwZTogJ2YnLCB2YWx1ZTogb3BhY2l0eSB9LFxyXG4gICAgICBtYXA6IHsgdHlwZTogJ3QnLCB2YWx1ZTogbWFwIHx8IG5ldyBUSFJFRS5UZXh0dXJlKCkgfSxcclxuICAgICAgY29sb3I6IHsgdHlwZTogJ2MnLCB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGNvbG9yKSB9XHJcbiAgICB9LFxyXG4gICAgdmVydGV4U2hhZGVyOiBtZXNoYmFzaWNfdmVydCxcclxuICAgIGZyYWdtZW50U2hhZGVyOiBtZXNoYmFzaWNfZnJhZ1xyXG4gIH0sIG9wdCk7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBTREZTaGFkZXIgZnJvbSAnLi9zZGZzaGFkZXJfbG9nZGVwdGgnO1xyXG5pbXBvcnQgY3JlYXRlR2VvbWV0cnkgZnJvbSAndGhyZWUtYm1mb250LXRleHQnO1xyXG5pbXBvcnQgcGFyc2VBU0NJSSBmcm9tICdwYXJzZS1ibWZvbnQtYXNjaWknO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuaW1wb3J0ICogYXMgRm9udCBmcm9tICcuL2ZvbnQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApe1xyXG5cclxuICBjb25zdCBpbWFnZSA9IEZvbnQuaW1hZ2UoKTtcclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoaW1hZ2UpOyB0ZXh0dXJlLm5hbWUgPSAnc2RmRm9udFRleHR1cmUnXHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgLy9OQjo6OiBzb21ld2hhdCBleHBlcmltZW50YWwgcmVwbGFjZW1lbnQgb2YgUmF3U2hhZGVyIGNvZGUgZnJvbSBibWZvbnQgd2l0aCB2YXJpYXRpb24gb2YgTWVzaEJhc2ljIHNoYWRlclxyXG4gIC8vdGhpcyBzaG91bGQgYWxsb3cgZm9yIGxvZ2RlcHRoLCBmb2cgaXMgYWxzbyBhbnRpY2lwYXRlZCB0byB3b3JrIHJlYXNvbmFibHkgd2VsbC4uLiBcclxuICAvL3RvbmVtYXBwaW5nIGV0YyBtYXkgY29uY2VpdmFibHkgYmUgaW1wcm92ZWQuLi4gWU1NVi5cclxuICBsZXQgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoU0RGU2hhZGVyKHtcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIGNvbG9yOiBjb2xvcixcclxuICAgIG1hcDogdGV4dHVyZSxcclxuICAgIHR5cGU6ICdTREYgVGV4dCdcclxuICB9KSk7XHJcbiAgcmV0dXJuIG1hdGVyaWFsO1xyXG59XHJcblxyXG5jb25zdCB0ZXh0U2NhbGUgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdG9yKCl7XHJcblxyXG4gIGNvbnN0IGZvbnQgPSBwYXJzZUFTQ0lJKCBGb250LmZudCgpICk7XHJcblxyXG4gIGNvbnN0IGNvbG9yTWF0ZXJpYWxzID0ge307XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IgPSAweGZmZmZmZiwgc2NhbGUgPSAxLjAsIHdpZHRoLCBoZWlnaHQgKXtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IGNyZWF0ZUdlb21ldHJ5KHtcclxuICAgICAgdGV4dDogc3RyLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICBmbGlwWTogdHJ1ZSxcclxuICAgICAgZm9udFxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IGxheW91dCA9IGdlb21ldHJ5LmxheW91dDtcclxuXHJcbiAgICBsZXQgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXTtcclxuICAgIGlmKCBtYXRlcmlhbCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF0gPSBjcmVhdGVNYXRlcmlhbCggY29sb3IgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5KCBuZXcgVEhSRUUuVmVjdG9yMygxLC0xLDEpICk7XHJcblxyXG4gICAgY29uc3QgZmluYWxTY2FsZSA9IHNjYWxlICogdGV4dFNjYWxlO1xyXG5cclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHlTY2FsYXIoIGZpbmFsU2NhbGUgKTtcclxuXHJcbiAgICBtZXNoLnBvc2l0aW9uLnkgPSBsYXlvdXQuaGVpZ2h0ICogMC41ICogZmluYWxTY2FsZTtcclxuXHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIHN0ciwgeyBjb2xvcj0weGZmZmZmZiwgc2NhbGU9MS4wIH0gPSB7fSApe1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgICBsZXQgbWVzaCA9IGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IsIHNjYWxlICk7XHJcbiAgICBncm91cC5hZGQoIG1lc2ggKTtcclxuICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgZ3JvdXAuY29tcHV0ZVdpZHRoID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LndpZHRoICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuICAgIGdyb3VwLmNvbXB1dGVIZWlnaHQgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQuaGVpZ2h0ICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5jb25zdHJhaW5Cb3VuZHMgPSAodywgaCkgPT4ge1xyXG4gICAgICBncm91cC5yZW1vdmUobWVzaCk7XHJcbiAgICAgIGNvbnN0IHMgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgY29uc3QgaEZhY3RvciA9IG1lc2guZ2VvbWV0cnkubGF5b3V0LmhlaWdodCpzL2g7XHJcbiAgICAgIGlmIChoRmFjdG9yID4gMSkge1xyXG4gICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgMC45NSogc3RyLmxlbmd0aC9oRmFjdG9yKSArICcuLi4nO1xyXG4gICAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIH1cclxuICAgICAgZ3JvdXAuYWRkKG1lc2gpO1xyXG4gICAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC51cGRhdGVMYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgZ2V0TWF0ZXJpYWw6ICgpPT4gbWF0ZXJpYWwgLy9YWFg6IHRoaXMgZGF0ZXMgYmFjayBxdWl0ZSBhIGxvbmcgd2F5LCBub3Qgc3VyZSBpdCB3YXMgZXZlciByaWdodC5cclxuICB9XHJcblxyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4ZmZmZmZmLCB2ZXJ0ZXhDb2xvcnM6IFRIUkVFLlZlcnRleENvbG9ycyB9ICk7XHJcbmV4cG9ydCBjb25zdCBMT0NBVE9SID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVIgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MDAwMDAwIH0gKTtcclxuZXhwb3J0IGNvbnN0IFRPT0xUSVAgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MjA1MDgwLCB0cmFuc3BhcmVudDogZmFsc2UsIG9wYWNpdHk6IDAuOCB9ICk7XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNsaWRlcigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSAwLjAsXHJcbiAgbWluID0gMC4wLCBtYXggPSAxLjAsXHJcbiAgc3RlcCA9IDAuMSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBpbml0aWFsSGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgYWxwaGE6IDEuMCxcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBzdGVwOiBzdGVwLFxyXG4gICAgdXNlU3RlcDogdHJ1ZSxcclxuICAgIHByZWNpc2lvbjogMSxcclxuICAgIGxpc3RlbjogZmFsc2UsXHJcbiAgICBtaW46IG1pbixcclxuICAgIG1heDogbWF4LFxyXG4gICAgb25DaGFuZ2VkQ0I6IHVuZGVmaW5lZCxcclxuICAgIG9uRmluaXNoZWRDaGFuZ2U6IHVuZGVmaW5lZCxcclxuICAgIHByZXNzaW5nOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgc3RhdGUuc3RlcCA9IGdldEltcGxpZWRTdGVwKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApO1xyXG4gIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwic2xpZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gaGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0IFNMSURFUl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0RFUFRIID0gZGVwdGg7XHJcblxyXG4gICAgLy8gIGZpbGxlZCB2b2x1bWVcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIFNMSURFUl9XSURUSCwgU0xJREVSX0hFSUdIVCwgU0xJREVSX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShTTElERVJfV0lEVEgqMC41LDAsMCk7XHJcbiAgICAvLyBMYXlvdXQuYWxpZ25MZWZ0KCByZWN0ICk7XHJcblxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLm5hbWUgPSAnaGl0c2NhblZvbHVtZSc7XHJcblxyXG4gICAgLy8gIHNsaWRlckJHIHZvbHVtZVxyXG4gICAgY29uc3Qgc2xpZGVyQkcgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBzbGlkZXJCRy5nZW9tZXRyeSwgQ29sb3JzLlNMSURFUl9CRyApO1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSCArIExheW91dC5QQU5FTF9NQVJHSU47XHJcblxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkRFRkFVTFRfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgZmlsbGVkVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICBjb25zdCBlbmRMb2NhdG9yID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggMC4wNSwgMC4wNSwgMC4wNSwgMSwgMSwgMSApLCBTaGFyZWRNYXRlcmlhbHMuTE9DQVRPUiApO1xyXG4gICAgZW5kTG9jYXRvci5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGVuZExvY2F0b3IgKTtcclxuICAgIGVuZExvY2F0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9WQUxVRV9URVhUX01BUkdJTiArIHdpZHRoICogMC41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGgqMi41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDMyNTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX1NMSURFUiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIHBhbmVsLm5hbWUgPSAncGFuZWwnO1xyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIHNsaWRlckJHLCB2YWx1ZUxhYmVsLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgICBncm91cC5hZGQoIHBhbmVsIClcclxuXHJcbiAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgdXBkYXRlU2xpZGVyKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsdWVMYWJlbCggdmFsdWUgKXtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCByb3VuZFRvRGVjaW1hbCggc3RhdGUudmFsdWUsIHN0YXRlLnByZWNpc2lvbiApLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgICAgaWYoIHN0YXRlLnByZXNzaW5nICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSU5URVJBQ1RJT05fQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTbGlkZXIoKXtcclxuICAgICAgZmlsbGVkVm9sdW1lLnNjYWxlLnggPVxyXG4gICAgICAgIE1hdGgubWluKFxyXG4gICAgICAgICAgTWF0aC5tYXgoIGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKSAqIHdpZHRoLCAwLjAwMDAwMSApLFxyXG4gICAgICAgICAgd2lkdGhcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9iamVjdCggdmFsdWUgKXtcclxuICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBhbHBoYSApe1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggYWxwaGEgKTtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBnZXRTdGVwcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5zdGVwICk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRDbGFtcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpe1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbU9iamVjdCgpO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tT2JqZWN0KCl7XHJcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgICAgc3RhdGUub25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5zdGVwID0gZnVuY3Rpb24oIHN0ZXAgKXtcclxuICAgICAgc3RhdGUuc3RlcCA9IHN0ZXA7XHJcbiAgICAgIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwIClcclxuICAgICAgc3RhdGUudXNlU3RlcCA9IHRydWU7XHJcblxyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVQcmVzcyApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVIb2xkICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlUmVsZWFzZSApO1xyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVByZXNzKCBwICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVIb2xkKCB7IHBvaW50IH0gPSB7fSApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGZpbGxlZFZvbHVtZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBlbmRMb2NhdG9yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcblxyXG4gICAgICBjb25zdCBhID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGZpbGxlZFZvbHVtZS5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBjb25zdCBiID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGVuZExvY2F0b3IubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBnZXRQb2ludEFscGhhKCBwb2ludCwge2EsYn0gKSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHVwZGF0ZU9iamVjdCggc3RhdGUudmFsdWUgKTtcclxuXHJcbiAgICAgIGlmKCBwcmV2aW91c1ZhbHVlICE9PSBzdGF0ZS52YWx1ZSAmJiBzdGF0ZS5vbkNoYW5nZWRDQiApe1xyXG4gICAgICAgIHN0YXRlLm9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUmVsZWFzZSgpe1xyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICAgIHVwZGF0ZVNsaWRlcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5taW4gPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5taW4gPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5tYXggPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5tYXggPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9IC8vIC9zZXRIZWlnaHRcclxuICBncm91cC5zZXRIZWlnaHQoIGluaXRpYWxIZWlnaHQgKTtcclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IHRhID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0VG9BID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgYVRvQiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb2ludEFscGhhKCBwb2ludCwgc2VnbWVudCApe1xyXG4gIHRhLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICk7XHJcbiAgdGIuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBjb25zdCBwcm9qZWN0ZWQgPSB0Yi5wcm9qZWN0T25WZWN0b3IoIHRhICk7XHJcblxyXG4gIHRUb0EuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBhVG9CLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICkubm9ybWFsaXplKCk7XHJcblxyXG4gIGNvbnN0IHNpZGUgPSB0VG9BLm5vcm1hbGl6ZSgpLmRvdCggYVRvQiApID49IDAgPyAxIDogLTE7XHJcblxyXG4gIGNvbnN0IGxlbmd0aCA9IHNlZ21lbnQuYS5kaXN0YW5jZVRvKCBzZWdtZW50LmIgKSAqIHNpZGU7XHJcblxyXG4gIGxldCBhbHBoYSA9IHByb2plY3RlZC5sZW5ndGgoKSAvIGxlbmd0aDtcclxuICBpZiggYWxwaGEgPiAxLjAgKXtcclxuICAgIGFscGhhID0gMS4wO1xyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwLjAgKXtcclxuICAgIGFscGhhID0gMC4wO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxlcnAobWluLCBtYXgsIHZhbHVlKSB7XHJcbiAgcmV0dXJuICgxLXZhbHVlKSptaW4gKyB2YWx1ZSptYXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcF9yYW5nZSh2YWx1ZSwgbG93MSwgaGlnaDEsIGxvdzIsIGhpZ2gyKSB7XHJcbiAgICByZXR1cm4gbG93MiArIChoaWdoMiAtIGxvdzIpICogKHZhbHVlIC0gbG93MSkgLyAoaGlnaDEgLSBsb3cxKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApe1xyXG4gIGlmKCBhbHBoYSA+IDEgKXtcclxuICAgIHJldHVybiAxXHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAgKXtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRWYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgaWYoIHZhbHVlIDwgbWluICl7XHJcbiAgICByZXR1cm4gbWluO1xyXG4gIH1cclxuICBpZiggdmFsdWUgPiBtYXggKXtcclxuICAgIHJldHVybiBtYXg7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0SW1wbGllZFN0ZXAoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIC8vUEpUOiB3aGF0IHdvdWxkIHdlIGxpa2Ugc3RlcCB0byBsb29rIGxpa2U/XHJcbiAgLy9Tb21ldGhpbmcgdGhhdCBoYXMgYWJvdXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSwgYW5kIGxvb2tzIG5pY2UgaW4gYmFzZSAxMD9cclxuICBjb25zdCByID0gbWF4LW1pbjtcclxuICBsZXQgc3RlcCA9IHIvMTAwOyAvL3doYXQgaXMgdGhlIHJhdGlvIG9mIG51bWJlciBvZiBkZWNpbWFscyB0byBvcmRlciBvZiBtYWduaXR1ZGU/XHJcbiAgXHJcbiAgcmV0dXJuIHN0ZXA7XHJcblxyXG4gIC8vIGlmKCB2YWx1ZSA9PT0gMCApe1xyXG4gIC8vICAgcmV0dXJuIDE7IC8vIFdoYXQgYXJlIHdlLCBwc3ljaGljcz8gLy88PDw8LS0tIG5vLCBzbyB3ZSBzaG91bGQgYmFzZSBpbXBsaWVkU3RlcCBvbiBtaW4vbWF4LCBub3QgdmFsdWVcclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgLy8gSGV5IERvdWcsIGNoZWNrIHRoaXMgb3V0LlxyXG4gIC8vICAgcmV0dXJuIE1hdGgucG93KDEwLCBNYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKHZhbHVlKSkvTWF0aC5MTjEwKSkvMTA7XHJcbiAgLy8gfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRWYWx1ZUZyb21BbHBoYSggYWxwaGEsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggYWxwaGEsIDAuMCwgMS4wLCBtaW4sIG1heCApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFscGhhRnJvbVZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCB2YWx1ZSwgbWluLCBtYXgsIDAuMCwgMS4wICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFN0ZXBwZWRWYWx1ZSggdmFsdWUsIHN0ZXAgKXtcclxuICBpZiggdmFsdWUgJSBzdGVwICE9IDApIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKCB2YWx1ZSAvIHN0ZXAgKSAqIHN0ZXA7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gbnVtRGVjaW1hbHMoeCkge1xyXG4gIHggPSB4LnRvU3RyaW5nKCk7XHJcbiAgaWYgKHguaW5kZXhPZignLicpID4gLTEpIHtcclxuICAgIHJldHVybiB4Lmxlbmd0aCAtIHguaW5kZXhPZignLicpIC0gMTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByb3VuZFRvRGVjaW1hbCh2YWx1ZSwgZGVjaW1hbHMpIHtcclxuICBpZiAoTWF0aC5hYnModmFsdWUpIDwgMC4wMSAmJiB2YWx1ZSAhPT0gMCkgcmV0dXJuIHZhbHVlLnRvRXhwb25lbnRpYWwoMyk7XHJcbiAgY29uc3QgdGVuVG8gPSBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xyXG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogdGVuVG8pIC8gdGVuVG87XHJcbn0iLCIvKipcclxuICogV2hlbiB0aGUgdGV4dGJveCBpcyBmb2N1c3NlZCwgIGEga2V5Ym9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuLi5cclxuICogVGhlcmUgc2hvdWxkIGFsc28gYmUgYSB3YXkgb2YgZGlzbWlzc2luZyBpdCBsYXRlci4gIEl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdG9cclxuICogcHJldmVudCBtdWx0aXBsZSBrZXlib2FyZHMgYmVpbmcgbWFkZSBzaW11bHRhbmVvdXNseT9cclxuICogXHJcbiAqIEluIG9yZGVyIHRvIG1ha2UgaXQgYXBwZWFyLCBpdCBjYW4gYmUgYWRkZWQgYXMgYSBjaGlsZCBvZiB0aGUgdGV4Ym94IG5vZGUgaXRzZWxmLi4uXHJcbiAqIFRoaXMnbGwgbWVhbiB0aGF0IGl0IGdldHMgZHJhZ2dlZCBhcm91bmQgYnkgdGhlIHBhcmVudCBHVUkgYXMgaXQgbW92ZXMuLi4uXHJcbiAqIE1ha2VzIGZvciByZWxhdGl2ZWx5IGNsZWFuLCBzaW1wbGUgaW1wbGVtZW50YXRpb24gYXQgbGVhc3QuXHJcbiAqIEF0IHRoZSBtb21lbnQsIGtleWJvYXJkIHBvc2l0aW9uaW5nIGlzIG1lc3NlZCB1cCBieSB0aGlzIGFycmFuZ2VtZW50LlxyXG4gKiBSZW1vdmluZyBncmFiYmVyIG1ha2VzIGl0IGxlc3MgbGlrZWx5IGEgdXNlciB3aWxsIGRvIHRoaXMsIGJ1dCBtaWdodCBiZSB3b3J0aCBmaXhpbmcgdGhlIGJhc2ljIGJ1Zy5cclxuICogXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgR1VJIGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dEJveCh7XHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9KSB7XHJcbiAgLy8gYmlnIG9sZCBjb3B5IC8gcGFzdGUgZnJvbSBidXR0b24uanMuIE1pZ2h0IHRyeSB0byBmYWN0b3Igb3V0IHNvbWUgb2YgdGhpcyBjb21tb24gY29kZS5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0Ym94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogMHhGRkZGRkYgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICAvL2hvdyBjYW4gSSBjaGFuZ2UgY29sb3Igb2YgdGV4dD9cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggb2JqZWN0W3Byb3BlcnR5TmFtZV0sIHsgY29sb3I6IDB4MDAwMDAwMCwgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIC8vYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSAwLjAxNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVTdHJpbmcoc3RyKSB7XHJcbiAgICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RyO1xyXG4gICAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbChzdHIpO1xyXG4gIH1cclxuICB2YXIga2V5Ym9hcmQ7XHJcbiAgZnVuY3Rpb24gdG9nZ2xlS2V5Ym9hcmQoKSB7XHJcbiAgICBpZiAoa2V5Ym9hcmQpIHtcclxuICAgICAgICBrZXlib2FyZC52aXNpYmxlID0gIWtleWJvYXJkLnZpc2libGU7XHJcbiAgICAgICAgaWYgKGtleWJvYXJkLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBrZXlib2FyZCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJrZXlib2FyZFwiKTtcclxuICAgICAgICBncm91cC5hZGQoa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLmZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnggPSB3aWR0aDtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICAgICAga2V5Ym9hcmQuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgIGtleWJvYXJkLmFkZEtleWJvYXJkKCAoaykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgc3RyID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAoaykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxuJzpcclxuICAgICAgICAgICAgICAgICAgICAvL3NldHRpbmcgXCJrZXlib2FyZC52aXNpYmxlID0gZmFsc2VcIiBpbiB0aGUgbWlkZGxlIG9mIGV2ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyIHNlZW1zIHRvIGtpbGwgYWxsIGV2ZW50IHByb2Nlc3NpbmcgZnJvbSB0aGVuIG9uLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0VGltZW91dCBpcyBhbiBhZGVxdWF0ZSB3b3JrYXJvdW5kIGZvciBub3cuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0b2dnbGVLZXlib2FyZCwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcYic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gaztcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy90aGlzIHRlc3Qgc2hvdWxkIGJlIHJlZHVuZGFudCBub3dcclxuICAgIC8vIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy9vYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgLy9oaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgLy8gY3JlYXRlIGEga2V5Ym9hcmQgYW5kIGF0dGFjaCBpdCBhcyBjaGlsZCBvZiBncm91cC4uLiBcclxuICAgIC8vIG9yIGp1c3QgbWFrZSBzdXJlIGV4aXN0aW5nIGtleWJvYXJkIGlzIHZpc2libGUuXHJcbiAgICB0b2dnbGVLZXlib2FyZCgpO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0hJR0hMSUdIVF9CRyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9CRyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0TGFiZWwoIHRleHRDcmVhdG9yLCBzdHIsIHdpZHRoID0gMC40LCBkZXB0aCA9IDAuMDI5LCBmZ0NvbG9yID0gMHhmZmZmZmYsIGJnQ29sb3IgPSBDb2xvcnMuREVGQVVMVF9CQUNLLCBzY2FsZSA9IDEuMCApe1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRsYWJlbFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3N0cn1dYDtcclxuXHJcbiAgY29uc3QgaW50ZXJuYWxQb3NpdGlvbmluZyA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL3JhdGhlciB1bm5lY2Vzc2FyeS5cclxuICBncm91cC5hZGQoIGludGVybmFsUG9zaXRpb25pbmcgKTtcclxuXHJcbiAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RyLnRvU3RyaW5nKCksIHsgY29sb3I6IGZnQ29sb3IsIHNjYWxlIH0gKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggdGV4dCApO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnRleHQgPSB0ZXh0O1xyXG5cclxuICBncm91cC5zZXRTdHJpbmcgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHN0ciA9IFwiW3VuZGVmaW5lZF1cIjtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b1N0cmluZygpICk7XHJcbiAgICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldE51bWJlciA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b0ZpeGVkKDIpICk7XHJcbiAgfTtcclxuXHJcbiAgdGV4dC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIGNvbnN0IGJhY2tCb3VuZHMgPSAwLjAxO1xyXG4gIGNvbnN0IG1hcmdpbiA9IDAuMDE7XHJcbiAgY29uc3QgdG90YWxXaWR0aCA9IHdpZHRoO1xyXG4gIGNvbnN0IHRvdGFsSGVpZ2h0ID0gMC4wNCArIG1hcmdpbiAqIDI7XHJcblxyXG4gIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja0dlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB0b3RhbFdpZHRoLCB0b3RhbEhlaWdodCwgZGVwdGgsIDEsIDEsIDEgKTtcclxuICBsYWJlbEJhY2tHZW9tZXRyeS5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVRyYW5zbGF0aW9uKCB0b3RhbFdpZHRoICogMC41IC0gbWFyZ2luLCAwLCAwICkgKTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrTWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBsYWJlbEJhY2tHZW9tZXRyeSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsQmFja01lc2guZ2VvbWV0cnksIGJnQ29sb3IgKTtcclxuXHJcbiAgbGFiZWxCYWNrTWVzaC5wb3NpdGlvbi55ID0gMC4wMztcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggbGFiZWxCYWNrTWVzaCApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcucG9zaXRpb24ueSA9IC10b3RhbEhlaWdodCAqIDAuNTtcclxuXHJcbiAgZ3JvdXAuYmFjayA9IGxhYmVsQmFja01lc2g7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgZGVmYXVsdFBhcmVudEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2xUaXAoIHRleHRDcmVhdG9yLCB0aXAsIHBhcmVudFdpZHRoLCBwYXJlbnRIZWlnaHQgPSBkZWZhdWx0UGFyZW50SGVpZ2h0LCBwYXJlbnREZXB0aCApIHtcclxuICBjb25zdCB0aXBUZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKHRpcCk7XHJcbiAgXHJcbiAgY29uc3QgdGlwR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgY29uc3QgdyA9IHRpcFRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgY29uc3QgaCA9IExheW91dC5URVhUX1NDQUxFICogdGlwVGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG5cclxuICB0aXBHcm91cC5wb3NpdGlvbi54ICA9IDAuNSAqIHBhcmVudFdpZHRoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnkgPSAtMS4wNSAqIHBhcmVudEhlaWdodCAtIGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueiA9IHBhcmVudERlcHRoICogMztcclxuICB0aXBHcm91cC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4vLyAgc3ViZ3JvdXAuYWRkKHRpcEdyb3VwKTtcclxuICB0aXBHcm91cC5hZGQodGlwVGV4dCk7XHJcbi8vICBzdWJncm91cC50aXBUZXh0ID0gdGlwR3JvdXA7XHJcblxyXG4gIGNvbnN0IHBhZGRlZFcgPSB3ICsgMC4wMywgcGFkZGVkSCA9IGggKyAwLjAzO1xyXG4gIGNvbnN0IHRpcFJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeShwYWRkZWRXLCBwYWRkZWRILCAxLCAxKTtcclxuICBjb25zdCB0aXBCYWNrZ3JvdW5kID0gbmV3IFRIUkVFLk1lc2godGlwUmVjdCwgU2hhcmVkTWF0ZXJpYWxzLlRPT0xUSVApO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueCA9IDA7IC8vcGFkZGVkVyAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi55ID0gaCAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi56ID0gLXBhcmVudERlcHRoICogMC41O1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBCYWNrZ3JvdW5kKTtcclxuXHJcbiAgdGlwVGV4dC5wb3NpdGlvbi54ID0gLTAuNSAqIHc7XHJcbiAgdGlwVGV4dC5wb3NpdGlvbi55ID0gLTAuNSAqIGggKyAwLjAwMTU7XHJcblxyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLncgPSB3O1xyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLmggPSBoO1xyXG5cclxuICByZXR1cm4gdGlwR3JvdXA7XHJcbn1cclxuIiwiLyoqIGJhc2ljIHV0aWxpdHkgZnVuY3Rpb25zICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sbGVyVmlzaWJsZShjb250cm9sKSB7XHJcbiAgdmFyIGZvbGRlciA9IGNvbnRyb2wuZm9sZGVyO1xyXG4gIC8vbm90ZTogdGhlIGJhc2lzIG9uIHdoaWNoIGEgY29udHJvbGxlciBpcyBjb25zaWRlcmVkIHZpc2libGUgcmV2aXNlZCBmb3IgJ2hlYWRlcicgb2JqZWN0cy5cclxuICAvL2ZvciBub3csIHRoaXMgc2hvdWxkIGFsbG93IGhlYWRlciBjb250cm9sbGVycyB0byB1cGRhdGUgd2hpbGUgZm9sZGVyIGlzIGNvbGxhcHNlZC5cclxuICAvL29ubHkgYXBwbGllcyB0byBjaGVja2JveCwgcGVuZGluZyBkZXNpZ24gcmV2aXNpb24gJiBmdWxsZXIgaW1wbGVtZW50YXRpb24uLi5cclxuICBcclxuICAvLy0tLS0gaXNTaG93bkluRm9sZGVySGVhZGVyIG5vIGxvbmdlciByZWxldmFudCwgYnV0IGVuZGluZyB1cCB3aXRoIHNvbWV0aGluZyB0aGF0IGxvb2tzIHNpbWlsYXIuLi4uXHJcbiAgLy9pc0hlYWRlck9iamVjdCB3aWxsIGFwcGx5IHRvIHRoZSBhY3R1YWwgY29udHJvbCBhcHBlYXJpbmcgaW4gdGhlIGZvbGRlciBoZWFkZXIsIHdoZXJlYXNcclxuICAvL2lzU2hvd25JbkZvbGRlckhlYWRlciB3YXMgd2hlbiBzdWNoIG9iamVjdHMgd2VyZW4ndCBzbyBmdWxseS1mbGVkZ2VkXHJcbiAgLy9pZiAoY29udHJvbC5pc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7IC8vPDw8PDwgc3RpbGwgaGl0dGluZyBmb2xkZWQgYnV0dG9uPz8/IChhbHNvLCB0cnkgbnBtIGF1ZGl0KVxyXG4gIGlmIChjb250cm9sLmlzSGVhZGVyT2JqZWN0KSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpO1xyXG5cclxuICAvL1hYWCBoYXZpbmcgc29tZSBkZWZpbml0ZSBidWdzIGUuZy4gbWlzc2luZyBldmVudHMgb3ZlciAncGljdHVyZXMgLyBtYXRlcmlhbHMnIGZvbGRlciBoZWFkZXIgaW4gZGVtby5cclxuICBcclxuICBpZiAoIWNvbnRyb2wudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gIFxyXG4gIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpe1xyXG4gICAgaWYgKGZvbGRlci5pc0NvbGxhcHNlZCgpIHx8ICFmb2xkZXIudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICB9XHJcbiAgaWYgKCFmb2xkZXIucGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIGZvbGRlci52aXNpYmxlO1xyXG59XHJcblxyXG4vKiogXHJcbiAqIEludmlzaWJsZSBUSFJFRSBvYmplY3RzIGluY3VyIHNpZ25pZmljYW50IENQVSBjb3N0LlxyXG4gKiBUaGlzIGF2b2lkcyB0aGF0IGJ5IHJlbW92aW5nIHRoZW0gZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqIFxyXG4gKiBJZiB2aXNpYmxlIGlzIHRydWUsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPXRydWUgYW5kIGlzIGEgY2hpbGQgb2YgcGFyZW50LlxyXG4gKiBJZiB2aXNpYmxlIGlzIGZhbHNlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT1mYWxzZSBhbmQgaXMgcmVtb3ZlZCBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRWaXNpYmlsaXR5KHBhcmVudCwgY2hpbGQsIHZpc2libGUpIHtcclxuICAgIGNvbnN0IGlzQ2hpbGQgPSBwYXJlbnQuY2hpbGRyZW4uaW5jbHVkZXMoY2hpbGQpO1xyXG4gICAgY2hpbGQudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAvL21ha2Ugc3VyZSB3ZSB1c2Ugb3JpZ2luYWwgVEhSRUUgbWV0aG9kcyB0aGF0IHRoaXMgbGlicmFyeSBvdmVycmlkZXMgKFRPRE86IHJlZmFjdG9yLi4uKVxyXG4gICAgaWYgKHZpc2libGUgJiYgIWlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghdmlzaWJsZSAmJiBpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXBhcmVudC52aXNpYmxlKSBjb25zb2xlLndhcm4oYHNldFZpc2liaWxpdHkgY2FsbGVkIG9uIGNoaWxkICR7Y2hpbGR9IG9mIGludmlzaWJsZSBwYXJlbnQgJHtwYXJlbnR9YCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBoaWdoZXN0IGxldmVsIG9mIHBhcmVudCBmb2xkZXIgaW4gdGhlIGd1aSBoaWVhcmNoeSBjb250YWluaW5nIGEgZ2l2ZW4gb2JqZWN0LlxyXG4gKiBuYi4gb2xkZXIgdmVyc2lvbnMgb2YgdGhpcyBmdW5jdGlvbiB3b3VsZCByZXR1cm4gdGhlIGlucHV0IG9iamVjdCBpZiBpdCBkaWRuJ3QgaGF2ZSBhICdmb2xkZXInIHByb3BlcnR5LlxyXG4gKiBOb3csIGl0IGlzIGludGVuZGVkIHRoYXQgaXQgc2hvdWxkIGVpdGhlciByZXR1cm4gYSBmb2xkZXIgaWYgYXBwcm9wcmlhdGUsIG9yIG5vdGhpbmcuXHJcbiAqIEBwYXJhbSB7Kn0gZ3JvdXAgZWl0aGVyIGEgZm9sZGVyLCBvciBhbiBvYmplY3Qgd2hvc2UgcGFyZW50IGhhcyBhIGZvbGRlci4uLiBhcG9sb2dpZXMsIHRoaXMgaXMgbm90IHRoZSBjbGVhcmVzdCBzcGVjLlxyXG4gKiAuLi4gaW50ZW50aW9uIGlzIHRoYXQgaXQgc2hvdWxkIHdvcmsgd2l0aCBhbnkgZ3VpIGVsZW1lbnQsIGluIHBhcnRpY3VsYXIgYW55IGhpdE9iamVjdCBpbiBpbnRlcmFjdGlvbi5qcy4uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSB7XHJcbiAgICB2YXIgZm9sZGVyID0gZ2V0Rm9sZGVyKGdyb3VwKTtcclxuICAgIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9sZGVyKGdyb3VwKSB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSByZXR1cm4gZ3JvdXAuZm9sZGVyO1xyXG4gICAgbGV0IG5vZGUgPSBncm91cC5wYXJlbnQ7XHJcbiAgICB3aGlsZSAoIW5vZGUuZm9sZGVyICYmIGdyb3VwLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgcmV0dXJuIG5vZGUuZm9sZGVyO1xyXG59XHJcblxyXG4vL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Qm94RnJvbU9iamVjdChib3gsIG9iaikge1xyXG4gIGNvbnN0IHdvbmt5R2VvbSA9IFtdO1xyXG4gIG9iai50cmF2ZXJzZShvID0+IHtcclxuICAgIGlmIChvLmdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemUgIT09IDMpIHtcclxuICAgICAgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ID0gZmFsc2U7XHJcbiAgICAgIHdvbmt5R2VvbS5wdXNoKG8uZ2VvbWV0cnkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGJveC5zZXRGcm9tT2JqZWN0KG9iaik7XHJcbiAgd29ua3lHZW9tLmZvckVhY2goZyA9PiBnLmlzQnVmZmVyR2VvbWV0cnkgPSB0cnVlKTtcclxuICByZXR1cm4gYm94O1xyXG59XHJcbiIsIi8qXHJcbiAqXHRAYXV0aG9yIHp6ODUgLyBodHRwOi8vdHdpdHRlci5jb20vYmx1cnNwbGluZSAvIGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2dcclxuICpcdEBhdXRob3IgY2VudGVyaW9ud2FyZSAvIGh0dHA6Ly93d3cuY2VudGVyaW9ud2FyZS5jb21cclxuICpcclxuICpcdFN1YmRpdmlzaW9uIEdlb21ldHJ5IE1vZGlmaWVyXHJcbiAqXHRcdHVzaW5nIExvb3AgU3ViZGl2aXNpb24gU2NoZW1lXHJcbiAqXHJcbiAqXHRSZWZlcmVuY2VzOlxyXG4gKlx0XHRodHRwOi8vZ3JhcGhpY3Muc3RhbmZvcmQuZWR1L35tZGZpc2hlci9zdWJkaXZpc2lvbi5odG1sXHJcbiAqXHRcdGh0dHA6Ly93d3cuaG9sbWVzM2QubmV0L2dyYXBoaWNzL3N1YmRpdmlzaW9uL1xyXG4gKlx0XHRodHRwOi8vd3d3LmNzLnJ1dGdlcnMuZWR1L35kZWNhcmxvL3JlYWRpbmdzL3N1YmRpdi1zZzAwYy5wZGZcclxuICpcclxuICpcdEtub3duIElzc3VlczpcclxuICpcdFx0LSBjdXJyZW50bHkgZG9lc24ndCBoYW5kbGUgXCJTaGFycCBFZGdlc1wiXHJcbiAqL1xyXG5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciA9IGZ1bmN0aW9uICggc3ViZGl2aXNpb25zICkge1xyXG5cclxuXHR0aGlzLnN1YmRpdmlzaW9ucyA9ICggc3ViZGl2aXNpb25zID09PSB1bmRlZmluZWQgKSA/IDEgOiBzdWJkaXZpc2lvbnM7XHJcblxyXG59O1xyXG5cclxuLy8gQXBwbGllcyB0aGUgXCJtb2RpZnlcIiBwYXR0ZXJuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLm1vZGlmeSA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7XHJcblxyXG5cdHZhciByZXBlYXRzID0gdGhpcy5zdWJkaXZpc2lvbnM7XHJcblxyXG5cdHdoaWxlICggcmVwZWF0cyAtLSA+IDAgKSB7XHJcblxyXG5cdFx0dGhpcy5zbW9vdGgoIGdlb21ldHJ5ICk7XHJcblxyXG5cdH1cclxuXHJcblx0Z2VvbWV0cnkuY29tcHV0ZUZhY2VOb3JtYWxzKCk7XHJcblx0Z2VvbWV0cnkuY29tcHV0ZVZlcnRleE5vcm1hbHMoKTtcclxuXHJcbn07XHJcblxyXG4oIGZ1bmN0aW9uKCkge1xyXG5cclxuXHQvLyBTb21lIGNvbnN0YW50c1xyXG5cdHZhciBXQVJOSU5HUyA9ICEgdHJ1ZTsgLy8gU2V0IHRvIHRydWUgZm9yIGRldmVsb3BtZW50XHJcblx0dmFyIEFCQyA9IFsgJ2EnLCAnYicsICdjJyBdO1xyXG5cclxuXHJcblx0ZnVuY3Rpb24gZ2V0RWRnZSggYSwgYiwgbWFwICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHJldHVybiBtYXBbIGtleSBdO1xyXG5cclxuXHR9XHJcblxyXG5cclxuXHRmdW5jdGlvbiBwcm9jZXNzRWRnZSggYSwgYiwgdmVydGljZXMsIG1hcCwgZmFjZSwgbWV0YVZlcnRpY2VzICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHZhciBlZGdlO1xyXG5cclxuXHRcdGlmICgga2V5IGluIG1hcCApIHtcclxuXHJcblx0XHRcdGVkZ2UgPSBtYXBbIGtleSBdO1xyXG5cclxuXHRcdH0gZWxzZSB7XHJcblxyXG5cdFx0XHR2YXIgdmVydGV4QSA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEEgXTtcclxuXHRcdFx0dmFyIHZlcnRleEIgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhCIF07XHJcblxyXG5cdFx0XHRlZGdlID0ge1xyXG5cclxuXHRcdFx0XHRhOiB2ZXJ0ZXhBLCAvLyBwb2ludGVyIHJlZmVyZW5jZVxyXG5cdFx0XHRcdGI6IHZlcnRleEIsXHJcblx0XHRcdFx0bmV3RWRnZTogbnVsbCxcclxuXHRcdFx0XHQvLyBhSW5kZXg6IGEsIC8vIG51bWJlcmVkIHJlZmVyZW5jZVxyXG5cdFx0XHRcdC8vIGJJbmRleDogYixcclxuXHRcdFx0XHRmYWNlczogW10gLy8gcG9pbnRlcnMgdG8gZmFjZVxyXG5cclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdG1hcFsga2V5IF0gPSBlZGdlO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRlZGdlLmZhY2VzLnB1c2goIGZhY2UgKTtcclxuXHJcblx0XHRtZXRhVmVydGljZXNbIGEgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblx0XHRtZXRhVmVydGljZXNbIGIgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGdlbmVyYXRlTG9va3VwcyggdmVydGljZXMsIGZhY2VzLCBtZXRhVmVydGljZXMsIGVkZ2VzICkge1xyXG5cclxuXHRcdHZhciBpLCBpbCwgZmFjZSwgZWRnZTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSB2ZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG1ldGFWZXJ0aWNlc1sgaSBdID0geyBlZGdlczogW10gfTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gZmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gZmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmEsIGZhY2UuYiwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYiwgZmFjZS5jLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5jLCBmYWNlLmEsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld0ZhY2UoIG5ld0ZhY2VzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld0ZhY2VzLnB1c2goIG5ldyBUSFJFRS5GYWNlMyggYSwgYiwgYyApICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbWlkcG9pbnQoIGEsIGIgKSB7XHJcblxyXG5cdFx0cmV0dXJuICggTWF0aC5hYnMoIGIgLSBhICkgLyAyICkgKyBNYXRoLm1pbiggYSwgYiApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld1V2KCBuZXdVdnMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3VXZzLnB1c2goIFsgYS5jbG9uZSgpLCBiLmNsb25lKCksIGMuY2xvbmUoKSBdICk7XHJcblxyXG5cdH1cclxuXHJcblx0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblx0Ly8gUGVyZm9ybXMgb25lIGl0ZXJhdGlvbiBvZiBTdWJkaXZpc2lvblxyXG5cdFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLnNtb290aCA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7IHJldHVybjsgLy8gc2pwdCBURU1QIFRPRE9cclxuXHJcblx0XHR2YXIgdG1wID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHR2YXIgb2xkVmVydGljZXMsIG9sZEZhY2VzLCBvbGRVdnM7XHJcblx0XHR2YXIgbmV3VmVydGljZXMsIG5ld0ZhY2VzLCBuZXdVVnMgPSBbXTtcclxuXHJcblx0XHR2YXIgbiwgbCwgaSwgaWwsIGosIGs7XHJcblx0XHR2YXIgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcztcclxuXHJcblx0XHQvLyBuZXcgc3R1ZmYuXHJcblx0XHR2YXIgc291cmNlRWRnZXMsIG5ld0VkZ2VWZXJ0aWNlcywgbmV3U291cmNlVmVydGljZXM7XHJcblxyXG5cdFx0b2xkVmVydGljZXMgPSBnZW9tZXRyeS52ZXJ0aWNlczsgLy8geyB4LCB5LCB6fVxyXG5cdFx0b2xkRmFjZXMgPSBnZW9tZXRyeS5mYWNlczsgLy8geyBhOiBvbGRWZXJ0ZXgxLCBiOiBvbGRWZXJ0ZXgyLCBjOiBvbGRWZXJ0ZXgzIH1cclxuXHRcdG9sZFV2cyA9IGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXTtcclxuXHJcblx0XHR2YXIgaGFzVXZzID0gb2xkVXZzICE9PSB1bmRlZmluZWQgJiYgb2xkVXZzLmxlbmd0aCA+IDA7XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqIFN0ZXAgMDogUHJlcHJvY2VzcyBHZW9tZXRyeSB0byBHZW5lcmF0ZSBlZGdlcyBMb29rdXBcclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRtZXRhVmVydGljZXMgPSBuZXcgQXJyYXkoIG9sZFZlcnRpY2VzLmxlbmd0aCApO1xyXG5cdFx0c291cmNlRWRnZXMgPSB7fTsgLy8gRWRnZSA9PiB7IG9sZFZlcnRleDEsIG9sZFZlcnRleDIsIGZhY2VzW10gIH1cclxuXHJcblx0XHRnZW5lcmF0ZUxvb2t1cHMoIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcyApO1xyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMS5cclxuXHRcdCAqXHRGb3IgZWFjaCBlZGdlLCBjcmVhdGUgYSBuZXcgRWRnZSBWZXJ0ZXgsXHJcblx0XHQgKlx0dGhlbiBwb3NpdGlvbiBpdC5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdFZGdlVmVydGljZXMgPSBbXTtcclxuXHRcdHZhciBvdGhlciwgY3VycmVudEVkZ2UsIG5ld0VkZ2UsIGZhY2U7XHJcblx0XHR2YXIgZWRnZVZlcnRleFdlaWdodCwgYWRqYWNlbnRWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RlZEZhY2VzO1xyXG5cclxuXHRcdGZvciAoIGkgaW4gc291cmNlRWRnZXMgKSB7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZSA9IHNvdXJjZUVkZ2VzWyBpIF07XHJcblx0XHRcdG5ld0VkZ2UgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDMgLyA4O1xyXG5cdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0Y29ubmVjdGVkRmFjZXMgPSBjdXJyZW50RWRnZS5mYWNlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHQvLyBjaGVjayBob3cgbWFueSBsaW5rZWQgZmFjZXMuIDIgc2hvdWxkIGJlIGNvcnJlY3QuXHJcblx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gaWYgbGVuZ3RoIGlzIG5vdCAyLCBoYW5kbGUgY29uZGl0aW9uXHJcblx0XHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDAuNTtcclxuXHRcdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnU3ViZGl2aXNpb24gTW9kaWZpZXI6IE51bWJlciBvZiBjb25uZWN0ZWQgZmFjZXMgIT0gMiwgaXM6ICcsIGNvbm5lY3RlZEZhY2VzLCBjdXJyZW50RWRnZSApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdFZGdlLmFkZFZlY3RvcnMoIGN1cnJlbnRFZGdlLmEsIGN1cnJlbnRFZGdlLmIgKS5tdWx0aXBseVNjYWxhciggZWRnZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBjb25uZWN0ZWRGYWNlczsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0ZmFjZSA9IGN1cnJlbnRFZGdlLmZhY2VzWyBqIF07XHJcblxyXG5cdFx0XHRcdGZvciAoIGsgPSAwOyBrIDwgMzsgayArKyApIHtcclxuXHJcblx0XHRcdFx0XHRvdGhlciA9IG9sZFZlcnRpY2VzWyBmYWNlWyBBQkNbIGsgXSBdIF07XHJcblx0XHRcdFx0XHRpZiAoIG90aGVyICE9PSBjdXJyZW50RWRnZS5hICYmIG90aGVyICE9PSBjdXJyZW50RWRnZS5iICkgYnJlYWs7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggYWRqYWNlbnRWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3RWRnZS5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UubmV3RWRnZSA9IG5ld0VkZ2VWZXJ0aWNlcy5sZW5ndGg7XHJcblx0XHRcdG5ld0VkZ2VWZXJ0aWNlcy5wdXNoKCBuZXdFZGdlICk7XHJcblxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhjdXJyZW50RWRnZSwgbmV3RWRnZSk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAyLlxyXG5cdFx0ICpcdFJlcG9zaXRpb24gZWFjaCBzb3VyY2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0dmFyIGJldGEsIHNvdXJjZVZlcnRleFdlaWdodCwgY29ubmVjdGluZ1ZlcnRleFdlaWdodDtcclxuXHRcdHZhciBjb25uZWN0aW5nRWRnZSwgY29ubmVjdGluZ0VkZ2VzLCBvbGRWZXJ0ZXgsIG5ld1NvdXJjZVZlcnRleDtcclxuXHRcdG5ld1NvdXJjZVZlcnRpY2VzID0gW107XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkVmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRvbGRWZXJ0ZXggPSBvbGRWZXJ0aWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCBhbGwgY29ubmVjdGluZyBlZGdlcyAodXNpbmcgbG9va3VwVGFibGUpXHJcblx0XHRcdGNvbm5lY3RpbmdFZGdlcyA9IG1ldGFWZXJ0aWNlc1sgaSBdLmVkZ2VzO1xyXG5cdFx0XHRuID0gY29ubmVjdGluZ0VkZ2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdGlmICggbiA9PSAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvIDE2O1xyXG5cclxuXHRcdFx0fSBlbHNlIGlmICggbiA+IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gKCA4ICogbiApOyAvLyBXYXJyZW4ncyBtb2RpZmllZCBmb3JtdWxhXHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBMb29wJ3Mgb3JpZ2luYWwgYmV0YSBmb3JtdWxhXHJcblx0XHRcdC8vIGJldGEgPSAxIC8gbiAqICggNS84IC0gTWF0aC5wb3coIDMvOCArIDEvNCAqIE1hdGguY29zKCAyICogTWF0aC4gUEkgLyBuICksIDIpICk7XHJcblxyXG5cdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxIC0gbiAqIGJldGE7XHJcblx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSBiZXRhO1xyXG5cclxuXHRcdFx0aWYgKCBuIDw9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGNyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXNcclxuXHRcdFx0XHQvLyBjb25zb2xlLndhcm4oJ2NyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXMnKTtcclxuXHJcblx0XHRcdFx0aWYgKCBuID09IDIgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzIgY29ubmVjdGluZyBlZGdlcycsIGNvbm5lY3RpbmdFZGdlcyApO1xyXG5cdFx0XHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMyAvIDQ7XHJcblx0XHRcdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRcdFx0Ly8gc291cmNlVmVydGV4V2VpZ2h0ID0gMTtcclxuXHRcdFx0XHRcdC8vIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ29ubHkgMSBjb25uZWN0aW5nIGVkZ2UnICk7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMCApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMCBjb25uZWN0aW5nIGVkZ2VzJyApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXggPSBvbGRWZXJ0ZXguY2xvbmUoKS5tdWx0aXBseVNjYWxhciggc291cmNlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IG47IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGNvbm5lY3RpbmdFZGdlID0gY29ubmVjdGluZ0VkZ2VzWyBqIF07XHJcblx0XHRcdFx0b3RoZXIgPSBjb25uZWN0aW5nRWRnZS5hICE9PSBvbGRWZXJ0ZXggPyBjb25uZWN0aW5nRWRnZS5hIDogY29ubmVjdGluZ0VkZ2UuYjtcclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleC5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGljZXMucHVzaCggbmV3U291cmNlVmVydGV4ICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMy5cclxuXHRcdCAqXHRHZW5lcmF0ZSBGYWNlcyBiZXR3ZWVuIHNvdXJjZSB2ZXJ0aWNlc1xyXG5cdFx0ICpcdGFuZCBlZGdlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld1ZlcnRpY2VzID0gbmV3U291cmNlVmVydGljZXMuY29uY2F0KCBuZXdFZGdlVmVydGljZXMgKTtcclxuXHRcdHZhciBzbCA9IG5ld1NvdXJjZVZlcnRpY2VzLmxlbmd0aCwgZWRnZTEsIGVkZ2UyLCBlZGdlMztcclxuXHRcdG5ld0ZhY2VzID0gW107XHJcblxyXG5cdFx0dmFyIHV2LCB4MCwgeDEsIHgyO1xyXG5cdFx0dmFyIHgzID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NCA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDUgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZEZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IG9sZEZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIHRoZSAzIG5ldyBlZGdlcyB2ZXJ0ZXggb2YgZWFjaCBvbGQgZmFjZVxyXG5cclxuXHRcdFx0ZWRnZTEgPSBnZXRFZGdlKCBmYWNlLmEsIGZhY2UuYiwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UyID0gZ2V0RWRnZSggZmFjZS5iLCBmYWNlLmMsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMyA9IGdldEVkZ2UoIGZhY2UuYywgZmFjZS5hLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IGZhY2VzLlxyXG5cclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGVkZ2UxLCBlZGdlMiwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYSwgZWRnZTEsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmIsIGVkZ2UyLCBlZGdlMSApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5jLCBlZGdlMywgZWRnZTIgKTtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IG5ldyB1didzXHJcblxyXG5cdFx0XHRpZiAoIGhhc1V2cyApIHtcclxuXHJcblx0XHRcdFx0dXYgPSBvbGRVdnNbIGkgXTtcclxuXHJcblx0XHRcdFx0eDAgPSB1dlsgMCBdO1xyXG5cdFx0XHRcdHgxID0gdXZbIDEgXTtcclxuXHRcdFx0XHR4MiA9IHV2WyAyIF07XHJcblxyXG5cdFx0XHRcdHgzLnNldCggbWlkcG9pbnQoIHgwLngsIHgxLnggKSwgbWlkcG9pbnQoIHgwLnksIHgxLnkgKSApO1xyXG5cdFx0XHRcdHg0LnNldCggbWlkcG9pbnQoIHgxLngsIHgyLnggKSwgbWlkcG9pbnQoIHgxLnksIHgyLnkgKSApO1xyXG5cdFx0XHRcdHg1LnNldCggbWlkcG9pbnQoIHgwLngsIHgyLnggKSwgbWlkcG9pbnQoIHgwLnksIHgyLnkgKSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MywgeDQsIHg1ICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDAsIHgzLCB4NSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MSwgeDQsIHgzICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDIsIHg1LCB4NCApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvLyBPdmVyd3JpdGUgb2xkIGFycmF5c1xyXG5cdFx0Z2VvbWV0cnkudmVydGljZXMgPSBuZXdWZXJ0aWNlcztcclxuXHRcdGdlb21ldHJ5LmZhY2VzID0gbmV3RmFjZXM7XHJcblx0XHRpZiAoIGhhc1V2cyApIGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXSA9IG5ld1VWcztcclxuXHJcblx0XHQvLyBjb25zb2xlLmxvZygnZG9uZScpO1xyXG5cclxuXHR9O1xyXG5cclxufSApKCk7XHJcbiIsInZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXG5cbm1vZHVsZS5leHBvcnRzID0gYW5BcnJheVxuXG5mdW5jdGlvbiBhbkFycmF5KGFycikge1xuICByZXR1cm4gKFxuICAgICAgIGFyci5CWVRFU19QRVJfRUxFTUVOVFxuICAgICYmIHN0ci5jYWxsKGFyci5idWZmZXIpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nXG4gICAgfHwgQXJyYXkuaXNBcnJheShhcnIpXG4gIClcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbnVtdHlwZShudW0sIGRlZikge1xuXHRyZXR1cm4gdHlwZW9mIG51bSA9PT0gJ251bWJlcidcblx0XHQ/IG51bSBcblx0XHQ6ICh0eXBlb2YgZGVmID09PSAnbnVtYmVyJyA/IGRlZiA6IDApXG59IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihkdHlwZSkge1xuICBzd2l0Y2ggKGR0eXBlKSB7XG4gICAgY2FzZSAnaW50OCc6XG4gICAgICByZXR1cm4gSW50OEFycmF5XG4gICAgY2FzZSAnaW50MTYnOlxuICAgICAgcmV0dXJuIEludDE2QXJyYXlcbiAgICBjYXNlICdpbnQzMic6XG4gICAgICByZXR1cm4gSW50MzJBcnJheVxuICAgIGNhc2UgJ3VpbnQ4JzpcbiAgICAgIHJldHVybiBVaW50OEFycmF5XG4gICAgY2FzZSAndWludDE2JzpcbiAgICAgIHJldHVybiBVaW50MTZBcnJheVxuICAgIGNhc2UgJ3VpbnQzMic6XG4gICAgICByZXR1cm4gVWludDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDMyJzpcbiAgICAgIHJldHVybiBGbG9hdDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDY0JzpcbiAgICAgIHJldHVybiBGbG9hdDY0QXJyYXlcbiAgICBjYXNlICdhcnJheSc6XG4gICAgICByZXR1cm4gQXJyYXlcbiAgICBjYXNlICd1aW50OF9jbGFtcGVkJzpcbiAgICAgIHJldHVybiBVaW50OENsYW1wZWRBcnJheVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUiA9IHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyA/IFJlZmxlY3QgOiBudWxsXG52YXIgUmVmbGVjdEFwcGx5ID0gUiAmJiB0eXBlb2YgUi5hcHBseSA9PT0gJ2Z1bmN0aW9uJ1xuICA/IFIuYXBwbHlcbiAgOiBmdW5jdGlvbiBSZWZsZWN0QXBwbHkodGFyZ2V0LCByZWNlaXZlciwgYXJncykge1xuICAgIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbCh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKTtcbiAgfVxuXG52YXIgUmVmbGVjdE93bktleXNcbmlmIChSICYmIHR5cGVvZiBSLm93bktleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgUmVmbGVjdE93bktleXMgPSBSLm93bktleXNcbn0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpXG4gICAgICAuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSk7XG4gIH07XG59IGVsc2Uge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBQcm9jZXNzRW1pdFdhcm5pbmcod2FybmluZykge1xuICBpZiAoY29uc29sZSAmJiBjb25zb2xlLndhcm4pIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbn1cblxudmFyIE51bWJlcklzTmFOID0gTnVtYmVyLmlzTmFOIHx8IGZ1bmN0aW9uIE51bWJlcklzTmFOKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIEV2ZW50RW1pdHRlcigpIHtcbiAgRXZlbnRFbWl0dGVyLmluaXQuY2FsbCh0aGlzKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xubW9kdWxlLmV4cG9ydHMub25jZSA9IG9uY2U7XG5cbi8vIEJhY2t3YXJkcy1jb21wYXQgd2l0aCBub2RlIDAuMTAueFxuRXZlbnRFbWl0dGVyLkV2ZW50RW1pdHRlciA9IEV2ZW50RW1pdHRlcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzID0gdW5kZWZpbmVkO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzQ291bnQgPSAwO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzID0gdW5kZWZpbmVkO1xuXG4vLyBCeSBkZWZhdWx0IEV2ZW50RW1pdHRlcnMgd2lsbCBwcmludCBhIHdhcm5pbmcgaWYgbW9yZSB0aGFuIDEwIGxpc3RlbmVycyBhcmVcbi8vIGFkZGVkIHRvIGl0LiBUaGlzIGlzIGEgdXNlZnVsIGRlZmF1bHQgd2hpY2ggaGVscHMgZmluZGluZyBtZW1vcnkgbGVha3MuXG52YXIgZGVmYXVsdE1heExpc3RlbmVycyA9IDEwO1xuXG5mdW5jdGlvbiBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKSB7XG4gIGlmICh0eXBlb2YgbGlzdGVuZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJsaXN0ZW5lclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGxpc3RlbmVyKTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRFbWl0dGVyLCAnZGVmYXVsdE1heExpc3RlbmVycycsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZGVmYXVsdE1heExpc3RlbmVycztcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbihhcmcpIHtcbiAgICBpZiAodHlwZW9mIGFyZyAhPT0gJ251bWJlcicgfHwgYXJnIDwgMCB8fCBOdW1iZXJJc05hTihhcmcpKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiZGVmYXVsdE1heExpc3RlbmVyc1wiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBhcmcgKyAnLicpO1xuICAgIH1cbiAgICBkZWZhdWx0TWF4TGlzdGVuZXJzID0gYXJnO1xuICB9XG59KTtcblxuRXZlbnRFbWl0dGVyLmluaXQgPSBmdW5jdGlvbigpIHtcblxuICBpZiAodGhpcy5fZXZlbnRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuX2V2ZW50cyA9PT0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHMpIHtcbiAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgfVxuXG4gIHRoaXMuX21heExpc3RlbmVycyA9IHRoaXMuX21heExpc3RlbmVycyB8fCB1bmRlZmluZWQ7XG59O1xuXG4vLyBPYnZpb3VzbHkgbm90IGFsbCBFbWl0dGVycyBzaG91bGQgYmUgbGltaXRlZCB0byAxMC4gVGhpcyBmdW5jdGlvbiBhbGxvd3Ncbi8vIHRoYXQgdG8gYmUgaW5jcmVhc2VkLiBTZXQgdG8gemVybyBmb3IgdW5saW1pdGVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBzZXRNYXhMaXN0ZW5lcnMobikge1xuICBpZiAodHlwZW9mIG4gIT09ICdudW1iZXInIHx8IG4gPCAwIHx8IE51bWJlcklzTmFOKG4pKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcIm5cIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgbiArICcuJyk7XG4gIH1cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5mdW5jdGlvbiBfZ2V0TWF4TGlzdGVuZXJzKHRoYXQpIHtcbiAgaWYgKHRoYXQuX21heExpc3RlbmVycyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgcmV0dXJuIHRoYXQuX21heExpc3RlbmVycztcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBnZXRNYXhMaXN0ZW5lcnMoKSB7XG4gIHJldHVybiBfZ2V0TWF4TGlzdGVuZXJzKHRoaXMpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24gZW1pdCh0eXBlKSB7XG4gIHZhciBhcmdzID0gW107XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgdmFyIGRvRXJyb3IgPSAodHlwZSA9PT0gJ2Vycm9yJyk7XG5cbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKVxuICAgIGRvRXJyb3IgPSAoZG9FcnJvciAmJiBldmVudHMuZXJyb3IgPT09IHVuZGVmaW5lZCk7XG4gIGVsc2UgaWYgKCFkb0Vycm9yKVxuICAgIHJldHVybiBmYWxzZTtcblxuICAvLyBJZiB0aGVyZSBpcyBubyAnZXJyb3InIGV2ZW50IGxpc3RlbmVyIHRoZW4gdGhyb3cuXG4gIGlmIChkb0Vycm9yKSB7XG4gICAgdmFyIGVyO1xuICAgIGlmIChhcmdzLmxlbmd0aCA+IDApXG4gICAgICBlciA9IGFyZ3NbMF07XG4gICAgaWYgKGVyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIE5vdGU6IFRoZSBjb21tZW50cyBvbiB0aGUgYHRocm93YCBsaW5lcyBhcmUgaW50ZW50aW9uYWwsIHRoZXkgc2hvd1xuICAgICAgLy8gdXAgaW4gTm9kZSdzIG91dHB1dCBpZiB0aGlzIHJlc3VsdHMgaW4gYW4gdW5oYW5kbGVkIGV4Y2VwdGlvbi5cbiAgICAgIHRocm93IGVyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICAgIH1cbiAgICAvLyBBdCBsZWFzdCBnaXZlIHNvbWUga2luZCBvZiBjb250ZXh0IHRvIHRoZSB1c2VyXG4gICAgdmFyIGVyciA9IG5ldyBFcnJvcignVW5oYW5kbGVkIGVycm9yLicgKyAoZXIgPyAnICgnICsgZXIubWVzc2FnZSArICcpJyA6ICcnKSk7XG4gICAgZXJyLmNvbnRleHQgPSBlcjtcbiAgICB0aHJvdyBlcnI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gIH1cblxuICB2YXIgaGFuZGxlciA9IGV2ZW50c1t0eXBlXTtcblxuICBpZiAoaGFuZGxlciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBmYWxzZTtcblxuICBpZiAodHlwZW9mIGhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBSZWZsZWN0QXBwbHkoaGFuZGxlciwgdGhpcywgYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGxlbiA9IGhhbmRsZXIubGVuZ3RoO1xuICAgIHZhciBsaXN0ZW5lcnMgPSBhcnJheUNsb25lKGhhbmRsZXIsIGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSlcbiAgICAgIFJlZmxlY3RBcHBseShsaXN0ZW5lcnNbaV0sIHRoaXMsIGFyZ3MpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5mdW5jdGlvbiBfYWRkTGlzdGVuZXIodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lciwgcHJlcGVuZCkge1xuICB2YXIgbTtcbiAgdmFyIGV2ZW50cztcbiAgdmFyIGV4aXN0aW5nO1xuXG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGFyZ2V0Ll9ldmVudHNDb3VudCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgLy8gVG8gYXZvaWQgcmVjdXJzaW9uIGluIHRoZSBjYXNlIHRoYXQgdHlwZSA9PT0gXCJuZXdMaXN0ZW5lclwiISBCZWZvcmVcbiAgICAvLyBhZGRpbmcgaXQgdG8gdGhlIGxpc3RlbmVycywgZmlyc3QgZW1pdCBcIm5ld0xpc3RlbmVyXCIuXG4gICAgaWYgKGV2ZW50cy5uZXdMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YXJnZXQuZW1pdCgnbmV3TGlzdGVuZXInLCB0eXBlLFxuICAgICAgICAgICAgICAgICAgbGlzdGVuZXIubGlzdGVuZXIgPyBsaXN0ZW5lci5saXN0ZW5lciA6IGxpc3RlbmVyKTtcblxuICAgICAgLy8gUmUtYXNzaWduIGBldmVudHNgIGJlY2F1c2UgYSBuZXdMaXN0ZW5lciBoYW5kbGVyIGNvdWxkIGhhdmUgY2F1c2VkIHRoZVxuICAgICAgLy8gdGhpcy5fZXZlbnRzIHRvIGJlIGFzc2lnbmVkIHRvIGEgbmV3IG9iamVjdFxuICAgICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gICAgfVxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdO1xuICB9XG5cbiAgaWYgKGV4aXN0aW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBPcHRpbWl6ZSB0aGUgY2FzZSBvZiBvbmUgbGlzdGVuZXIuIERvbid0IG5lZWQgdGhlIGV4dHJhIGFycmF5IG9iamVjdC5cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9IGxpc3RlbmVyO1xuICAgICsrdGFyZ2V0Ll9ldmVudHNDb3VudDtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGV4aXN0aW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBuZWVkIHRvIGNoYW5nZSB0byBhcnJheS5cbiAgICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID1cbiAgICAgICAgcHJlcGVuZCA/IFtsaXN0ZW5lciwgZXhpc3RpbmddIDogW2V4aXN0aW5nLCBsaXN0ZW5lcl07XG4gICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGdvdCBhbiBhcnJheSwganVzdCBhcHBlbmQuXG4gICAgfSBlbHNlIGlmIChwcmVwZW5kKSB7XG4gICAgICBleGlzdGluZy51bnNoaWZ0KGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RpbmcucHVzaChsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIGxpc3RlbmVyIGxlYWtcbiAgICBtID0gX2dldE1heExpc3RlbmVycyh0YXJnZXQpO1xuICAgIGlmIChtID4gMCAmJiBleGlzdGluZy5sZW5ndGggPiBtICYmICFleGlzdGluZy53YXJuZWQpIHtcbiAgICAgIGV4aXN0aW5nLndhcm5lZCA9IHRydWU7XG4gICAgICAvLyBObyBlcnJvciBjb2RlIGZvciB0aGlzIHNpbmNlIGl0IGlzIGEgV2FybmluZ1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICB2YXIgdyA9IG5ldyBFcnJvcignUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcubGVuZ3RoICsgJyAnICsgU3RyaW5nKHR5cGUpICsgJyBsaXN0ZW5lcnMgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRlZC4gVXNlIGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdpbmNyZWFzZSBsaW1pdCcpO1xuICAgICAgdy5uYW1lID0gJ01heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyc7XG4gICAgICB3LmVtaXR0ZXIgPSB0YXJnZXQ7XG4gICAgICB3LnR5cGUgPSB0eXBlO1xuICAgICAgdy5jb3VudCA9IGV4aXN0aW5nLmxlbmd0aDtcbiAgICAgIFByb2Nlc3NFbWl0V2FybmluZyh3KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyID0gZnVuY3Rpb24gYWRkTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIHRydWUpO1xuICAgIH07XG5cbmZ1bmN0aW9uIG9uY2VXcmFwcGVyKCkge1xuICBpZiAoIXRoaXMuZmlyZWQpIHtcbiAgICB0aGlzLnRhcmdldC5yZW1vdmVMaXN0ZW5lcih0aGlzLnR5cGUsIHRoaXMud3JhcEZuKTtcbiAgICB0aGlzLmZpcmVkID0gdHJ1ZTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQpO1xuICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmFwcGx5KHRoaXMudGFyZ2V0LCBhcmd1bWVudHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9vbmNlV3JhcCh0YXJnZXQsIHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBzdGF0ZSA9IHsgZmlyZWQ6IGZhbHNlLCB3cmFwRm46IHVuZGVmaW5lZCwgdGFyZ2V0OiB0YXJnZXQsIHR5cGU6IHR5cGUsIGxpc3RlbmVyOiBsaXN0ZW5lciB9O1xuICB2YXIgd3JhcHBlZCA9IG9uY2VXcmFwcGVyLmJpbmQoc3RhdGUpO1xuICB3cmFwcGVkLmxpc3RlbmVyID0gbGlzdGVuZXI7XG4gIHN0YXRlLndyYXBGbiA9IHdyYXBwZWQ7XG4gIHJldHVybiB3cmFwcGVkO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbiBvbmNlKHR5cGUsIGxpc3RlbmVyKSB7XG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICB0aGlzLm9uKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZE9uY2VMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZE9uY2VMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gICAgICB0aGlzLnByZXBlbmRMaXN0ZW5lcih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbi8vIEVtaXRzIGEgJ3JlbW92ZUxpc3RlbmVyJyBldmVudCBpZiBhbmQgb25seSBpZiB0aGUgbGlzdGVuZXIgd2FzIHJlbW92ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgdmFyIGxpc3QsIGV2ZW50cywgcG9zaXRpb24sIGksIG9yaWdpbmFsTGlzdGVuZXI7XG5cbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBsaXN0ID0gZXZlbnRzW3R5cGVdO1xuICAgICAgaWYgKGxpc3QgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGlmIChsaXN0ID09PSBsaXN0ZW5lciB8fCBsaXN0Lmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIpXG4gICAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgbGlzdC5saXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGxpc3QgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcG9zaXRpb24gPSAtMTtcblxuICAgICAgICBmb3IgKGkgPSBsaXN0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgaWYgKGxpc3RbaV0gPT09IGxpc3RlbmVyIHx8IGxpc3RbaV0ubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgICAgICBvcmlnaW5hbExpc3RlbmVyID0gbGlzdFtpXS5saXN0ZW5lcjtcbiAgICAgICAgICAgIHBvc2l0aW9uID0gaTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwb3NpdGlvbiA8IDApXG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSAwKVxuICAgICAgICAgIGxpc3Quc2hpZnQoKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgc3BsaWNlT25lKGxpc3QsIHBvc2l0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSlcbiAgICAgICAgICBldmVudHNbdHlwZV0gPSBsaXN0WzBdO1xuXG4gICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgb3JpZ2luYWxMaXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub2ZmID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyh0eXBlKSB7XG4gICAgICB2YXIgbGlzdGVuZXJzLCBldmVudHMsIGk7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIC8vIG5vdCBsaXN0ZW5pbmcgZm9yIHJlbW92ZUxpc3RlbmVyLCBubyBuZWVkIHRvIGVtaXRcbiAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50c1t0eXBlXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIC8vIGVtaXQgcmVtb3ZlTGlzdGVuZXIgZm9yIGFsbCBsaXN0ZW5lcnMgb24gYWxsIGV2ZW50c1xuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhldmVudHMpO1xuICAgICAgICB2YXIga2V5O1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICAgICAgaWYgKGtleSA9PT0gJ3JlbW92ZUxpc3RlbmVyJykgY29udGludWU7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygncmVtb3ZlTGlzdGVuZXInKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgbGlzdGVuZXJzID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgICBpZiAodHlwZW9mIGxpc3RlbmVycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVycyk7XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbmVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIExJRk8gb3JkZXJcbiAgICAgICAgZm9yIChpID0gbGlzdGVuZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbmZ1bmN0aW9uIF9saXN0ZW5lcnModGFyZ2V0LCB0eXBlLCB1bndyYXApIHtcbiAgdmFyIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG4gIGlmIChldmxpc3RlbmVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJylcbiAgICByZXR1cm4gdW53cmFwID8gW2V2bGlzdGVuZXIubGlzdGVuZXIgfHwgZXZsaXN0ZW5lcl0gOiBbZXZsaXN0ZW5lcl07XG5cbiAgcmV0dXJuIHVud3JhcCA/XG4gICAgdW53cmFwTGlzdGVuZXJzKGV2bGlzdGVuZXIpIDogYXJyYXlDbG9uZShldmxpc3RlbmVyLCBldmxpc3RlbmVyLmxlbmd0aCk7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24gbGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgdHJ1ZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJhd0xpc3RlbmVycyA9IGZ1bmN0aW9uIHJhd0xpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24oZW1pdHRlciwgdHlwZSkge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIubGlzdGVuZXJDb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBlbWl0dGVyLmxpc3RlbmVyQ291bnQodHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGxpc3RlbmVyQ291bnQuY2FsbChlbWl0dGVyLCB0eXBlKTtcbiAgfVxufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50ID0gbGlzdGVuZXJDb3VudDtcbmZ1bmN0aW9uIGxpc3RlbmVyQ291bnQodHlwZSkge1xuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKGV2bGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGV2bGlzdGVuZXIubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmV2ZW50TmFtZXMgPSBmdW5jdGlvbiBldmVudE5hbWVzKCkge1xuICByZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQgPiAwID8gUmVmbGVjdE93bktleXModGhpcy5fZXZlbnRzKSA6IFtdO1xufTtcblxuZnVuY3Rpb24gYXJyYXlDbG9uZShhcnIsIG4pIHtcbiAgdmFyIGNvcHkgPSBuZXcgQXJyYXkobik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKVxuICAgIGNvcHlbaV0gPSBhcnJbaV07XG4gIHJldHVybiBjb3B5O1xufVxuXG5mdW5jdGlvbiBzcGxpY2VPbmUobGlzdCwgaW5kZXgpIHtcbiAgZm9yICg7IGluZGV4ICsgMSA8IGxpc3QubGVuZ3RoOyBpbmRleCsrKVxuICAgIGxpc3RbaW5kZXhdID0gbGlzdFtpbmRleCArIDFdO1xuICBsaXN0LnBvcCgpO1xufVxuXG5mdW5jdGlvbiB1bndyYXBMaXN0ZW5lcnMoYXJyKSB7XG4gIHZhciByZXQgPSBuZXcgQXJyYXkoYXJyLmxlbmd0aCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcmV0Lmxlbmd0aDsgKytpKSB7XG4gICAgcmV0W2ldID0gYXJyW2ldLmxpc3RlbmVyIHx8IGFycltpXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvbmNlKGVtaXR0ZXIsIG5hbWUpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBmdW5jdGlvbiBlcnJvckxpc3RlbmVyKGVycikge1xuICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcihuYW1lLCByZXNvbHZlcik7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlcigpIHtcbiAgICAgIGlmICh0eXBlb2YgZW1pdHRlci5yZW1vdmVMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIGVycm9yTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShbXS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO1xuICAgIH07XG5cbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgcmVzb2x2ZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICBpZiAobmFtZSAhPT0gJ2Vycm9yJykge1xuICAgICAgYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgZXJyb3JMaXN0ZW5lciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGhhbmRsZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCAnZXJyb3InLCBoYW5kbGVyLCBmbGFncyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIGxpc3RlbmVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgZW1pdHRlci5vbmNlKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW1pdHRlci5vbihuYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBFdmVudFRhcmdldCBkb2VzIG5vdCBoYXZlIGBlcnJvcmAgZXZlbnQgc2VtYW50aWNzIGxpa2UgTm9kZVxuICAgIC8vIEV2ZW50RW1pdHRlcnMsIHdlIGRvIG5vdCBsaXN0ZW4gZm9yIGBlcnJvcmAgZXZlbnRzIGhlcmUuXG4gICAgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmN0aW9uIHdyYXBMaXN0ZW5lcihhcmcpIHtcbiAgICAgIC8vIElFIGRvZXMgbm90IGhhdmUgYnVpbHRpbiBgeyBvbmNlOiB0cnVlIH1gIHN1cHBvcnQgc28gd2VcbiAgICAgIC8vIGhhdmUgdG8gZG8gaXQgbWFudWFsbHkuXG4gICAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgd3JhcExpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIGxpc3RlbmVyKGFyZyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwiZW1pdHRlclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBlbWl0dGVyKTtcbiAgfVxufVxuIiwiaWYgKHR5cGVvZiBPYmplY3QuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gIC8vIGltcGxlbWVudGF0aW9uIGZyb20gc3RhbmRhcmQgbm9kZS5qcyAndXRpbCcgbW9kdWxlXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICAgICAgdmFsdWU6IGN0b3IsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9O1xufSBlbHNlIHtcbiAgLy8gb2xkIHNjaG9vbCBzaGltIGZvciBvbGQgYnJvd3NlcnNcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgdmFyIFRlbXBDdG9yID0gZnVuY3Rpb24gKCkge31cbiAgICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGVcbiAgICAgIGN0b3IucHJvdG90eXBlID0gbmV3IFRlbXBDdG9yKClcbiAgICAgIGN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY3RvclxuICAgIH1cbiAgfVxufVxuIiwiLyohXG4gKiBEZXRlcm1pbmUgaWYgYW4gb2JqZWN0IGlzIGEgQnVmZmVyXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG4vLyBUaGUgX2lzQnVmZmVyIGNoZWNrIGlzIGZvciBTYWZhcmkgNS03IHN1cHBvcnQsIGJlY2F1c2UgaXQncyBtaXNzaW5nXG4vLyBPYmplY3QucHJvdG90eXBlLmNvbnN0cnVjdG9yLiBSZW1vdmUgdGhpcyBldmVudHVhbGx5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIChpc0J1ZmZlcihvYmopIHx8IGlzU2xvd0J1ZmZlcihvYmopIHx8ICEhb2JqLl9pc0J1ZmZlcilcbn1cblxuZnVuY3Rpb24gaXNCdWZmZXIgKG9iaikge1xuICByZXR1cm4gISFvYmouY29uc3RydWN0b3IgJiYgdHlwZW9mIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIob2JqKVxufVxuXG4vLyBGb3IgTm9kZSB2MC4xMCBzdXBwb3J0LiBSZW1vdmUgdGhpcyBldmVudHVhbGx5LlxuZnVuY3Rpb24gaXNTbG93QnVmZmVyIChvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmoucmVhZEZsb2F0TEUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5zbGljZSA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0J1ZmZlcihvYmouc2xpY2UoMCwgMCkpXG59XG4iLCJ2YXIgd29yZFdyYXAgPSByZXF1aXJlKCd3b3JkLXdyYXBwZXInKVxudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKVxudmFyIG51bWJlciA9IHJlcXVpcmUoJ2FzLW51bWJlcicpXG5cbnZhciBYX0hFSUdIVFMgPSBbJ3gnLCAnZScsICdhJywgJ28nLCAnbicsICdzJywgJ3InLCAnYycsICd1JywgJ20nLCAndicsICd3JywgJ3onXVxudmFyIE1fV0lEVEhTID0gWydtJywgJ3cnXVxudmFyIENBUF9IRUlHSFRTID0gWydIJywgJ0knLCAnTicsICdFJywgJ0YnLCAnSycsICdMJywgJ1QnLCAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onXVxuXG5cbnZhciBUQUJfSUQgPSAnXFx0Jy5jaGFyQ29kZUF0KDApXG52YXIgU1BBQ0VfSUQgPSAnICcuY2hhckNvZGVBdCgwKVxudmFyIEFMSUdOX0xFRlQgPSAwLCBcbiAgICBBTElHTl9DRU5URVIgPSAxLCBcbiAgICBBTElHTl9SSUdIVCA9IDJcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVMYXlvdXQob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dExheW91dChvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRMYXlvdXQob3B0KSB7XG4gIHRoaXMuZ2x5cGhzID0gW11cbiAgdGhpcy5fbWVhc3VyZSA9IHRoaXMuY29tcHV0ZU1ldHJpY3MuYmluZCh0aGlzKVxuICB0aGlzLnVwZGF0ZShvcHQpXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKG9wdCkge1xuICBvcHQgPSB4dGVuZCh7XG4gICAgbWVhc3VyZTogdGhpcy5fbWVhc3VyZVxuICB9LCBvcHQpXG4gIHRoaXMuX29wdCA9IG9wdFxuICB0aGlzLl9vcHQudGFiU2l6ZSA9IG51bWJlcih0aGlzLl9vcHQudGFiU2l6ZSwgNClcblxuICBpZiAoIW9wdC5mb250KVxuICAgIHRocm93IG5ldyBFcnJvcignbXVzdCBwcm92aWRlIGEgdmFsaWQgYml0bWFwIGZvbnQnKVxuXG4gIHZhciBnbHlwaHMgPSB0aGlzLmdseXBoc1xuICB2YXIgdGV4dCA9IG9wdC50ZXh0fHwnJyBcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuICB0aGlzLl9zZXR1cFNwYWNlR2x5cGhzKGZvbnQpXG4gIFxuICB2YXIgbGluZXMgPSB3b3JkV3JhcC5saW5lcyh0ZXh0LCBvcHQpXG4gIHZhciBtaW5XaWR0aCA9IG9wdC53aWR0aCB8fCAwXG5cbiAgLy9jbGVhciBnbHlwaHNcbiAgZ2x5cGhzLmxlbmd0aCA9IDBcblxuICAvL2dldCBtYXggbGluZSB3aWR0aFxuICB2YXIgbWF4TGluZVdpZHRoID0gbGluZXMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGxpbmUpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgocHJldiwgbGluZS53aWR0aCwgbWluV2lkdGgpXG4gIH0sIDApXG5cbiAgLy90aGUgcGVuIHBvc2l0aW9uXG4gIHZhciB4ID0gMFxuICB2YXIgeSA9IDBcbiAgdmFyIGxpbmVIZWlnaHQgPSBudW1iZXIob3B0LmxpbmVIZWlnaHQsIGZvbnQuY29tbW9uLmxpbmVIZWlnaHQpXG4gIHZhciBiYXNlbGluZSA9IGZvbnQuY29tbW9uLmJhc2VcbiAgdmFyIGRlc2NlbmRlciA9IGxpbmVIZWlnaHQtYmFzZWxpbmVcbiAgdmFyIGxldHRlclNwYWNpbmcgPSBvcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBoZWlnaHQgPSBsaW5lSGVpZ2h0ICogbGluZXMubGVuZ3RoIC0gZGVzY2VuZGVyXG4gIHZhciBhbGlnbiA9IGdldEFsaWduVHlwZSh0aGlzLl9vcHQuYWxpZ24pXG5cbiAgLy9kcmF3IHRleHQgYWxvbmcgYmFzZWxpbmVcbiAgeSAtPSBoZWlnaHRcbiAgXG4gIC8vdGhlIG1ldHJpY3MgZm9yIHRoaXMgdGV4dCBsYXlvdXRcbiAgdGhpcy5fd2lkdGggPSBtYXhMaW5lV2lkdGhcbiAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0XG4gIHRoaXMuX2Rlc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBiYXNlbGluZVxuICB0aGlzLl9iYXNlbGluZSA9IGJhc2VsaW5lXG4gIHRoaXMuX3hIZWlnaHQgPSBnZXRYSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2NhcEhlaWdodCA9IGdldENhcEhlaWdodChmb250KVxuICB0aGlzLl9saW5lSGVpZ2h0ID0gbGluZUhlaWdodFxuICB0aGlzLl9hc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBkZXNjZW5kZXIgLSB0aGlzLl94SGVpZ2h0XG4gICAgXG4gIC8vbGF5b3V0IGVhY2ggZ2x5cGhcbiAgdmFyIHNlbGYgPSB0aGlzXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSwgbGluZUluZGV4KSB7XG4gICAgdmFyIHN0YXJ0ID0gbGluZS5zdGFydFxuICAgIHZhciBlbmQgPSBsaW5lLmVuZFxuICAgIHZhciBsaW5lV2lkdGggPSBsaW5lLndpZHRoXG4gICAgdmFyIGxhc3RHbHlwaFxuICAgIFxuICAgIC8vZm9yIGVhY2ggZ2x5cGggaW4gdGhhdCBsaW5lLi4uXG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQ7IGkrKykge1xuICAgICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgICB2YXIgZ2x5cGggPSBzZWxmLmdldEdseXBoKGZvbnQsIGlkKVxuICAgICAgaWYgKGdseXBoKSB7XG4gICAgICAgIGlmIChsYXN0R2x5cGgpIFxuICAgICAgICAgIHggKz0gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKVxuXG4gICAgICAgIHZhciB0eCA9IHhcbiAgICAgICAgaWYgKGFsaWduID09PSBBTElHTl9DRU5URVIpIFxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKS8yXG4gICAgICAgIGVsc2UgaWYgKGFsaWduID09PSBBTElHTl9SSUdIVClcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aClcblxuICAgICAgICBnbHlwaHMucHVzaCh7XG4gICAgICAgICAgcG9zaXRpb246IFt0eCwgeV0sXG4gICAgICAgICAgZGF0YTogZ2x5cGgsXG4gICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgbGluZTogbGluZUluZGV4XG4gICAgICAgIH0pICBcblxuICAgICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgICAgeCArPSBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL25leHQgbGluZSBkb3duXG4gICAgeSArPSBsaW5lSGVpZ2h0XG4gICAgeCA9IDBcbiAgfSlcbiAgdGhpcy5fbGluZXNUb3RhbCA9IGxpbmVzLmxlbmd0aDtcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuX3NldHVwU3BhY2VHbHlwaHMgPSBmdW5jdGlvbihmb250KSB7XG4gIC8vVGhlc2UgYXJlIGZhbGxiYWNrcywgd2hlbiB0aGUgZm9udCBkb2Vzbid0IGluY2x1ZGVcbiAgLy8nICcgb3IgJ1xcdCcgZ2x5cGhzXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IG51bGxcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IG51bGxcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuXG5cbiAgLy90cnkgdG8gZ2V0IHNwYWNlIGdseXBoXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlICdtJyBvciAndycgZ2x5cGhzXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlIGZpcnN0IGdseXBoIGF2YWlsYWJsZVxuICB2YXIgc3BhY2UgPSBnZXRHbHlwaEJ5SWQoZm9udCwgU1BBQ0VfSUQpIFxuICAgICAgICAgIHx8IGdldE1HbHlwaChmb250KSBcbiAgICAgICAgICB8fCBmb250LmNoYXJzWzBdXG5cbiAgLy9hbmQgY3JlYXRlIGEgZmFsbGJhY2sgZm9yIHRhYlxuICB2YXIgdGFiV2lkdGggPSB0aGlzLl9vcHQudGFiU2l6ZSAqIHNwYWNlLnhhZHZhbmNlXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IHNwYWNlXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSB4dGVuZChzcGFjZSwge1xuICAgIHg6IDAsIHk6IDAsIHhhZHZhbmNlOiB0YWJXaWR0aCwgaWQ6IFRBQl9JRCwgXG4gICAgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDAsIGhlaWdodDogMFxuICB9KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5nZXRHbHlwaCA9IGZ1bmN0aW9uKGZvbnQsIGlkKSB7XG4gIHZhciBnbHlwaCA9IGdldEdseXBoQnlJZChmb250LCBpZClcbiAgaWYgKGdseXBoKVxuICAgIHJldHVybiBnbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gVEFCX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tUYWJHbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gU1BBQ0VfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGhcbiAgcmV0dXJuIG51bGxcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuY29tcHV0ZU1ldHJpY3MgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICB2YXIgbGV0dGVyU3BhY2luZyA9IHRoaXMuX29wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGZvbnQgPSB0aGlzLl9vcHQuZm9udFxuICB2YXIgY3VyUGVuID0gMFxuICB2YXIgY3VyV2lkdGggPSAwXG4gIHZhciBjb3VudCA9IDBcbiAgdmFyIGdseXBoXG4gIHZhciBsYXN0R2x5cGhcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgZW5kOiBzdGFydCxcbiAgICAgIHdpZHRoOiAwXG4gICAgfVxuICB9XG5cbiAgZW5kID0gTWF0aC5taW4odGV4dC5sZW5ndGgsIGVuZClcbiAgZm9yICh2YXIgaT1zdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgdmFyIGdseXBoID0gdGhpcy5nZXRHbHlwaChmb250LCBpZClcblxuICAgIGlmIChnbHlwaCkge1xuICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICB2YXIgeG9mZiA9IGdseXBoLnhvZmZzZXRcbiAgICAgIHZhciBrZXJuID0gbGFzdEdseXBoID8gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKSA6IDBcbiAgICAgIGN1clBlbiArPSBrZXJuXG5cbiAgICAgIHZhciBuZXh0UGVuID0gY3VyUGVuICsgZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICB2YXIgbmV4dFdpZHRoID0gY3VyUGVuICsgZ2x5cGgud2lkdGhcblxuICAgICAgLy93ZSd2ZSBoaXQgb3VyIGxpbWl0OyB3ZSBjYW4ndCBtb3ZlIG9udG8gdGhlIG5leHQgZ2x5cGhcbiAgICAgIGlmIChuZXh0V2lkdGggPj0gd2lkdGggfHwgbmV4dFBlbiA+PSB3aWR0aClcbiAgICAgICAgYnJlYWtcblxuICAgICAgLy9vdGhlcndpc2UgY29udGludWUgYWxvbmcgb3VyIGxpbmVcbiAgICAgIGN1clBlbiA9IG5leHRQZW5cbiAgICAgIGN1cldpZHRoID0gbmV4dFdpZHRoXG4gICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgIH1cbiAgICBjb3VudCsrXG4gIH1cbiAgXG4gIC8vbWFrZSBzdXJlIHJpZ2h0bW9zdCBlZGdlIGxpbmVzIHVwIHdpdGggcmVuZGVyZWQgZ2x5cGhzXG4gIGlmIChsYXN0R2x5cGgpXG4gICAgY3VyV2lkdGggKz0gbGFzdEdseXBoLnhvZmZzZXRcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbmQ6IHN0YXJ0ICsgY291bnQsXG4gICAgd2lkdGg6IGN1cldpZHRoXG4gIH1cbn1cblxuLy9nZXR0ZXJzIGZvciB0aGUgcHJpdmF0ZSB2YXJzXG47Wyd3aWR0aCcsICdoZWlnaHQnLCBcbiAgJ2Rlc2NlbmRlcicsICdhc2NlbmRlcicsXG4gICd4SGVpZ2h0JywgJ2Jhc2VsaW5lJyxcbiAgJ2NhcEhlaWdodCcsXG4gICdsaW5lSGVpZ2h0JyBdLmZvckVhY2goYWRkR2V0dGVyKVxuXG5mdW5jdGlvbiBhZGRHZXR0ZXIobmFtZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVGV4dExheW91dC5wcm90b3R5cGUsIG5hbWUsIHtcbiAgICBnZXQ6IHdyYXBwZXIobmFtZSksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pXG59XG5cbi8vY3JlYXRlIGxvb2t1cHMgZm9yIHByaXZhdGUgdmFyc1xuZnVuY3Rpb24gd3JhcHBlcihuYW1lKSB7XG4gIHJldHVybiAobmV3IEZ1bmN0aW9uKFtcbiAgICAncmV0dXJuIGZ1bmN0aW9uICcrbmFtZSsnKCkgeycsXG4gICAgJyAgcmV0dXJuIHRoaXMuXycrbmFtZSxcbiAgICAnfSdcbiAgXS5qb2luKCdcXG4nKSkpKClcbn1cblxuZnVuY3Rpb24gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKSB7XG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBnbHlwaElkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICBpZiAoZ2x5cGhJZHggPj0gMClcbiAgICByZXR1cm4gZm9udC5jaGFyc1tnbHlwaElkeF1cbiAgcmV0dXJuIG51bGxcbn1cblxuZnVuY3Rpb24gZ2V0WEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxYX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBYX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRNR2x5cGgoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8TV9XSURUSFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBNX1dJRFRIU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0Q2FwSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPENBUF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gQ0FQX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRLZXJuaW5nKGZvbnQsIGxlZnQsIHJpZ2h0KSB7XG4gIGlmICghZm9udC5rZXJuaW5ncyB8fCBmb250Lmtlcm5pbmdzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gMFxuXG4gIHZhciB0YWJsZSA9IGZvbnQua2VybmluZ3NcbiAgZm9yICh2YXIgaT0wOyBpPHRhYmxlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtlcm4gPSB0YWJsZVtpXVxuICAgIGlmIChrZXJuLmZpcnN0ID09PSBsZWZ0ICYmIGtlcm4uc2Vjb25kID09PSByaWdodClcbiAgICAgIHJldHVybiBrZXJuLmFtb3VudFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEFsaWduVHlwZShhbGlnbikge1xuICBpZiAoYWxpZ24gPT09ICdjZW50ZXInKVxuICAgIHJldHVybiBBTElHTl9DRU5URVJcbiAgZWxzZSBpZiAoYWxpZ24gPT09ICdyaWdodCcpXG4gICAgcmV0dXJuIEFMSUdOX1JJR0hUXG4gIHJldHVybiBBTElHTl9MRUZUXG59XG5cbmZ1bmN0aW9uIGZpbmRDaGFyIChhcnJheSwgdmFsdWUsIHN0YXJ0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMFxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnJheVtpXS5pZCA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG4gIHJldHVybiAtMVxufSIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlQk1Gb250QXNjaWkoZGF0YSkge1xuICBpZiAoIWRhdGEpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIHByb3ZpZGVkJylcbiAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKS50cmltKClcblxuICB2YXIgb3V0cHV0ID0ge1xuICAgIHBhZ2VzOiBbXSxcbiAgICBjaGFyczogW10sXG4gICAga2VybmluZ3M6IFtdXG4gIH1cblxuICB2YXIgbGluZXMgPSBkYXRhLnNwbGl0KC9cXHJcXG4/fFxcbi9nKVxuXG4gIGlmIChsaW5lcy5sZW5ndGggPT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIGluIEJNRm9udCBmaWxlJylcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxpbmVEYXRhID0gc3BsaXRMaW5lKGxpbmVzW2ldLCBpKVxuICAgIGlmICghbGluZURhdGEpIC8vc2tpcCBlbXB0eSBsaW5lc1xuICAgICAgY29udGludWVcblxuICAgIGlmIChsaW5lRGF0YS5rZXkgPT09ICdwYWdlJykge1xuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmlkICE9PSAnbnVtYmVyJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGlkPU4nKVxuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmZpbGUgIT09ICdzdHJpbmcnKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgZmlsZT1cInBhdGhcIicpXG4gICAgICBvdXRwdXQucGFnZXNbbGluZURhdGEuZGF0YS5pZF0gPSBsaW5lRGF0YS5kYXRhLmZpbGVcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXJzJyB8fCBsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5ncycpIHtcbiAgICAgIC8vLi4uIGRvIG5vdGhpbmcgZm9yIHRoZXNlIHR3byAuLi5cbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXInKSB7XG4gICAgICBvdXRwdXQuY2hhcnMucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAna2VybmluZycpIHtcbiAgICAgIG91dHB1dC5rZXJuaW5ncy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dFtsaW5lRGF0YS5rZXldID0gbGluZURhdGEuZGF0YVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXRcbn1cblxuZnVuY3Rpb24gc3BsaXRMaW5lKGxpbmUsIGlkeCkge1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9cXHQrL2csICcgJykudHJpbSgpXG4gIGlmICghbGluZSlcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBzcGFjZSA9IGxpbmUuaW5kZXhPZignICcpXG4gIGlmIChzcGFjZSA9PT0gLTEpIFxuICAgIHRocm93IG5ldyBFcnJvcihcIm5vIG5hbWVkIHJvdyBhdCBsaW5lIFwiICsgaWR4KVxuXG4gIHZhciBrZXkgPSBsaW5lLnN1YnN0cmluZygwLCBzcGFjZSlcblxuICBsaW5lID0gbGluZS5zdWJzdHJpbmcoc3BhY2UgKyAxKVxuICAvL2NsZWFyIFwibGV0dGVyXCIgZmllbGQgYXMgaXQgaXMgbm9uLXN0YW5kYXJkIGFuZFxuICAvL3JlcXVpcmVzIGFkZGl0aW9uYWwgY29tcGxleGl0eSB0byBwYXJzZSBcIiAvID0gc3ltYm9sc1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9sZXR0ZXI9W1xcJ1xcXCJdXFxTK1tcXCdcXFwiXS9naSwgJycpICBcbiAgbGluZSA9IGxpbmUuc3BsaXQoXCI9XCIpXG4gIGxpbmUgPSBsaW5lLm1hcChmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gc3RyLnRyaW0oKS5tYXRjaCgoLyhcIi4qP1wifFteXCJcXHNdKykrKD89XFxzKnxcXHMqJCkvZykpXG4gIH0pXG5cbiAgdmFyIGRhdGEgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZHQgPSBsaW5lW2ldXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMF0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChpID09PSBsaW5lLmxlbmd0aCAtIDEpIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMV0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgdmFyIG91dCA9IHtcbiAgICBrZXk6IGtleSxcbiAgICBkYXRhOiB7fVxuICB9XG5cbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICBvdXQuZGF0YVt2LmtleV0gPSB2LmRhdGE7XG4gIH0pXG5cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiBwYXJzZURhdGEoZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFwiXCJcblxuICBpZiAoZGF0YS5pbmRleE9mKCdcIicpID09PSAwIHx8IGRhdGEuaW5kZXhPZihcIidcIikgPT09IDApXG4gICAgcmV0dXJuIGRhdGEuc3Vic3RyaW5nKDEsIGRhdGEubGVuZ3RoIC0gMSlcbiAgaWYgKGRhdGEuaW5kZXhPZignLCcpICE9PSAtMSlcbiAgICByZXR1cm4gcGFyc2VJbnRMaXN0KGRhdGEpXG4gIHJldHVybiBwYXJzZUludChkYXRhLCAxMClcbn1cblxuZnVuY3Rpb24gcGFyc2VJbnRMaXN0KGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24odmFsKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbCwgMTApXG4gIH0pXG59IiwidmFyIGR0eXBlID0gcmVxdWlyZSgnZHR5cGUnKVxudmFyIGFuQXJyYXkgPSByZXF1aXJlKCdhbi1hcnJheScpXG52YXIgaXNCdWZmZXIgPSByZXF1aXJlKCdpcy1idWZmZXInKVxuXG52YXIgQ1cgPSBbMCwgMiwgM11cbnZhciBDQ1cgPSBbMiwgMSwgM11cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVRdWFkRWxlbWVudHMoYXJyYXksIG9wdCkge1xuICAgIC8vaWYgdXNlciBkaWRuJ3Qgc3BlY2lmeSBhbiBvdXRwdXQgYXJyYXlcbiAgICBpZiAoIWFycmF5IHx8ICEoYW5BcnJheShhcnJheSkgfHwgaXNCdWZmZXIoYXJyYXkpKSkge1xuICAgICAgICBvcHQgPSBhcnJheSB8fCB7fVxuICAgICAgICBhcnJheSA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdCA9PT0gJ251bWJlcicpIC8vYmFja3dhcmRzLWNvbXBhdGlibGVcbiAgICAgICAgb3B0ID0geyBjb3VudDogb3B0IH1cbiAgICBlbHNlXG4gICAgICAgIG9wdCA9IG9wdCB8fCB7fVxuXG4gICAgdmFyIHR5cGUgPSB0eXBlb2Ygb3B0LnR5cGUgPT09ICdzdHJpbmcnID8gb3B0LnR5cGUgOiAndWludDE2J1xuICAgIHZhciBjb3VudCA9IHR5cGVvZiBvcHQuY291bnQgPT09ICdudW1iZXInID8gb3B0LmNvdW50IDogMVxuICAgIHZhciBzdGFydCA9IChvcHQuc3RhcnQgfHwgMCkgXG5cbiAgICB2YXIgZGlyID0gb3B0LmNsb2Nrd2lzZSAhPT0gZmFsc2UgPyBDVyA6IENDVyxcbiAgICAgICAgYSA9IGRpclswXSwgXG4gICAgICAgIGIgPSBkaXJbMV0sXG4gICAgICAgIGMgPSBkaXJbMl1cblxuICAgIHZhciBudW1JbmRpY2VzID0gY291bnQgKiA2XG5cbiAgICB2YXIgaW5kaWNlcyA9IGFycmF5IHx8IG5ldyAoZHR5cGUodHlwZSkpKG51bUluZGljZXMpXG4gICAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgbnVtSW5kaWNlczsgaSArPSA2LCBqICs9IDQpIHtcbiAgICAgICAgdmFyIHggPSBpICsgc3RhcnRcbiAgICAgICAgaW5kaWNlc1t4ICsgMF0gPSBqICsgMFxuICAgICAgICBpbmRpY2VzW3ggKyAxXSA9IGogKyAxXG4gICAgICAgIGluZGljZXNbeCArIDJdID0gaiArIDJcbiAgICAgICAgaW5kaWNlc1t4ICsgM10gPSBqICsgYVxuICAgICAgICBpbmRpY2VzW3ggKyA0XSA9IGogKyBiXG4gICAgICAgIGluZGljZXNbeCArIDVdID0gaiArIGNcbiAgICB9XG4gICAgcmV0dXJuIGluZGljZXNcbn0iLCJ2YXIgY3JlYXRlTGF5b3V0ID0gcmVxdWlyZSgnbGF5b3V0LWJtZm9udC10ZXh0JylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBjcmVhdGVJbmRpY2VzID0gcmVxdWlyZSgncXVhZC1pbmRpY2VzJylcblxudmFyIHZlcnRpY2VzID0gcmVxdWlyZSgnLi9saWIvdmVydGljZXMnKVxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi9saWIvdXRpbHMnKVxuXG52YXIgQmFzZSA9IFRIUkVFLkJ1ZmZlckdlb21ldHJ5XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0R2VvbWV0cnkob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0R2VvbWV0cnkgKG9wdCkge1xuICBCYXNlLmNhbGwodGhpcylcblxuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgdGhlc2UgYXMgZGVmYXVsdCB2YWx1ZXMgZm9yIGFueSBzdWJzZXF1ZW50XG4gIC8vIGNhbGxzIHRvIHVwZGF0ZSgpXG4gIHRoaXMuX29wdCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdClcblxuICAvLyBhbHNvIGRvIGFuIGluaXRpYWwgc2V0dXAuLi5cbiAgaWYgKG9wdCkgdGhpcy51cGRhdGUob3B0KVxufVxuXG5pbmhlcml0cyhUZXh0R2VvbWV0cnksIEJhc2UpXG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKG9wdCkge1xuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgY29uc3RydWN0b3IgZGVmYXVsdHNcbiAgb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3B0LCBvcHQpXG5cbiAgaWYgKCFvcHQuZm9udCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3BlY2lmeSBhIHsgZm9udCB9IGluIG9wdGlvbnMnKVxuICB9XG5cbiAgdGhpcy5sYXlvdXQgPSBjcmVhdGVMYXlvdXQob3B0KVxuXG4gIC8vIGdldCB2ZWMyIHRleGNvb3Jkc1xuICB2YXIgZmxpcFkgPSBvcHQuZmxpcFkgIT09IGZhbHNlXG5cbiAgLy8gdGhlIGRlc2lyZWQgQk1Gb250IGRhdGFcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuXG4gIC8vIGRldGVybWluZSB0ZXh0dXJlIHNpemUgZnJvbSBmb250IGZpbGVcbiAgdmFyIHRleFdpZHRoID0gZm9udC5jb21tb24uc2NhbGVXXG4gIHZhciB0ZXhIZWlnaHQgPSBmb250LmNvbW1vbi5zY2FsZUhcblxuICAvLyBnZXQgdmlzaWJsZSBnbHlwaHNcbiAgdmFyIGdseXBocyA9IHRoaXMubGF5b3V0LmdseXBocy5maWx0ZXIoZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICByZXR1cm4gYml0bWFwLndpZHRoICogYml0bWFwLmhlaWdodCA+IDBcbiAgfSlcblxuICAvLyBwcm92aWRlIHZpc2libGUgZ2x5cGhzIGZvciBjb252ZW5pZW5jZVxuICB0aGlzLnZpc2libGVHbHlwaHMgPSBnbHlwaHNcblxuICAvLyBnZXQgY29tbW9uIHZlcnRleCBkYXRhXG4gIHZhciBwb3NpdGlvbnMgPSB2ZXJ0aWNlcy5wb3NpdGlvbnMoZ2x5cGhzKVxuICB2YXIgdXZzID0gdmVydGljZXMudXZzKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpXG4gIHZhciBpbmRpY2VzID0gY3JlYXRlSW5kaWNlcyhbXSwge1xuICAgIGNsb2Nrd2lzZTogdHJ1ZSxcbiAgICB0eXBlOiAndWludDE2JyxcbiAgICBjb3VudDogZ2x5cGhzLmxlbmd0aFxuICB9KVxuXG4gIC8vIHVwZGF0ZSB2ZXJ0ZXggZGF0YVxuICB0aGlzLnNldEluZGV4KGluZGljZXMpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocG9zaXRpb25zLCAyKSlcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSh1dnMsIDIpKVxuXG4gIC8vIHVwZGF0ZSBtdWx0aXBhZ2UgZGF0YVxuICBpZiAoIW9wdC5tdWx0aXBhZ2UgJiYgJ3BhZ2UnIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgIC8vIGRpc2FibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwYWdlJylcbiAgfSBlbHNlIGlmIChvcHQubXVsdGlwYWdlKSB7XG4gICAgLy8gZW5hYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB2YXIgcGFnZXMgPSB2ZXJ0aWNlcy5wYWdlcyhnbHlwaHMpXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BhZ2UnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBhZ2VzLCAxKSlcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdTcGhlcmUgPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlID0gbmV3IFRIUkVFLlNwaGVyZSgpXG4gIH1cblxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cyA9IDBcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlci5zZXQoMCwgMCwgMClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlU3BoZXJlKHBvc2l0aW9ucywgdGhpcy5ib3VuZGluZ1NwaGVyZSlcbiAgaWYgKGlzTmFOKHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiAnICtcbiAgICAgICdDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgJyArXG4gICAgICAnXCJwb3NpdGlvblwiIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdCb3ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nQm94ID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ0JveCA9IG5ldyBUSFJFRS5Cb3gzKClcbiAgfVxuXG4gIHZhciBiYm94ID0gdGhpcy5ib3VuZGluZ0JveFxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICBiYm94Lm1ha2VFbXB0eSgpXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZUJveChwb3NpdGlvbnMsIGJib3gpXG59XG4iLCJ2YXIgaXRlbVNpemUgPSAyXG52YXIgYm94ID0geyBtaW46IFswLCAwXSwgbWF4OiBbMCwgMF0gfVxuXG5mdW5jdGlvbiBib3VuZHMgKHBvc2l0aW9ucykge1xuICB2YXIgY291bnQgPSBwb3NpdGlvbnMubGVuZ3RoIC8gaXRlbVNpemVcbiAgYm94Lm1pblswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWluWzFdID0gcG9zaXRpb25zWzFdXG4gIGJveC5tYXhbMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1heFsxXSA9IHBvc2l0aW9uc1sxXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIHZhciB4ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDBdXG4gICAgdmFyIHkgPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMV1cbiAgICBib3gubWluWzBdID0gTWF0aC5taW4oeCwgYm94Lm1pblswXSlcbiAgICBib3gubWluWzFdID0gTWF0aC5taW4oeSwgYm94Lm1pblsxXSlcbiAgICBib3gubWF4WzBdID0gTWF0aC5tYXgoeCwgYm94Lm1heFswXSlcbiAgICBib3gubWF4WzFdID0gTWF0aC5tYXgoeSwgYm94Lm1heFsxXSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlQm94ID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIG91dHB1dC5taW4uc2V0KGJveC5taW5bMF0sIGJveC5taW5bMV0sIDApXG4gIG91dHB1dC5tYXguc2V0KGJveC5tYXhbMF0sIGJveC5tYXhbMV0sIDApXG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVTcGhlcmUgPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgdmFyIG1pblggPSBib3gubWluWzBdXG4gIHZhciBtaW5ZID0gYm94Lm1pblsxXVxuICB2YXIgbWF4WCA9IGJveC5tYXhbMF1cbiAgdmFyIG1heFkgPSBib3gubWF4WzFdXG4gIHZhciB3aWR0aCA9IG1heFggLSBtaW5YXG4gIHZhciBoZWlnaHQgPSBtYXhZIC0gbWluWVxuICB2YXIgbGVuZ3RoID0gTWF0aC5zcXJ0KHdpZHRoICogd2lkdGggKyBoZWlnaHQgKiBoZWlnaHQpXG4gIG91dHB1dC5jZW50ZXIuc2V0KG1pblggKyB3aWR0aCAvIDIsIG1pblkgKyBoZWlnaHQgLyAyLCAwKVxuICBvdXRwdXQucmFkaXVzID0gbGVuZ3RoIC8gMlxufVxuIiwibW9kdWxlLmV4cG9ydHMucGFnZXMgPSBmdW5jdGlvbiBwYWdlcyAoZ2x5cGhzKSB7XG4gIHZhciBwYWdlcyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAxKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGlkID0gZ2x5cGguZGF0YS5wYWdlIHx8IDBcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgfSlcbiAgcmV0dXJuIHBhZ2VzXG59XG5cbm1vZHVsZS5leHBvcnRzLnV2cyA9IGZ1bmN0aW9uIHV2cyAoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSkge1xuICB2YXIgdXZzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHZhciBidyA9IChiaXRtYXAueCArIGJpdG1hcC53aWR0aClcbiAgICB2YXIgYmggPSAoYml0bWFwLnkgKyBiaXRtYXAuaGVpZ2h0KVxuXG4gICAgLy8gdG9wIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgdTAgPSBiaXRtYXAueCAvIHRleFdpZHRoXG4gICAgdmFyIHYxID0gYml0bWFwLnkgLyB0ZXhIZWlnaHRcbiAgICB2YXIgdTEgPSBidyAvIHRleFdpZHRoXG4gICAgdmFyIHYwID0gYmggLyB0ZXhIZWlnaHRcblxuICAgIGlmIChmbGlwWSkge1xuICAgICAgdjEgPSAodGV4SGVpZ2h0IC0gYml0bWFwLnkpIC8gdGV4SGVpZ2h0XG4gICAgICB2MCA9ICh0ZXhIZWlnaHQgLSBiaCkgLyB0ZXhIZWlnaHRcbiAgICB9XG5cbiAgICAvLyBCTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYxXG4gICAgLy8gVExcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIFRSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBCUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYxXG4gIH0pXG4gIHJldHVybiB1dnNcbn1cblxubW9kdWxlLmV4cG9ydHMucG9zaXRpb25zID0gZnVuY3Rpb24gcG9zaXRpb25zIChnbHlwaHMpIHtcbiAgdmFyIHBvc2l0aW9ucyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcblxuICAgIC8vIGJvdHRvbSBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHggPSBnbHlwaC5wb3NpdGlvblswXSArIGJpdG1hcC54b2Zmc2V0XG4gICAgdmFyIHkgPSBnbHlwaC5wb3NpdGlvblsxXSArIGJpdG1hcC55b2Zmc2V0XG5cbiAgICAvLyBxdWFkIHNpemVcbiAgICB2YXIgdyA9IGJpdG1hcC53aWR0aFxuICAgIHZhciBoID0gYml0bWFwLmhlaWdodFxuXG4gICAgLy8gQkxcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgICAvLyBUTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBUUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gQlJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gIH0pXG4gIHJldHVybiBwb3NpdGlvbnNcbn1cbiIsInZhciBuZXdsaW5lID0gL1xcbi9cbnZhciBuZXdsaW5lQ2hhciA9ICdcXG4nXG52YXIgd2hpdGVzcGFjZSA9IC9cXHMvXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odGV4dCwgb3B0KSB7XG4gICAgdmFyIGxpbmVzID0gbW9kdWxlLmV4cG9ydHMubGluZXModGV4dCwgb3B0KVxuICAgIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcobGluZS5zdGFydCwgbGluZS5lbmQpXG4gICAgfSkuam9pbignXFxuJylcbn1cblxubW9kdWxlLmV4cG9ydHMubGluZXMgPSBmdW5jdGlvbiB3b3Jkd3JhcCh0ZXh0LCBvcHQpIHtcbiAgICBvcHQgPSBvcHR8fHt9XG5cbiAgICAvL3plcm8gd2lkdGggcmVzdWx0cyBpbiBub3RoaW5nIHZpc2libGVcbiAgICBpZiAob3B0LndpZHRoID09PSAwICYmIG9wdC5tb2RlICE9PSAnbm93cmFwJykgXG4gICAgICAgIHJldHVybiBbXVxuXG4gICAgdGV4dCA9IHRleHR8fCcnXG4gICAgdmFyIHdpZHRoID0gdHlwZW9mIG9wdC53aWR0aCA9PT0gJ251bWJlcicgPyBvcHQud2lkdGggOiBOdW1iZXIuTUFYX1ZBTFVFXG4gICAgdmFyIHN0YXJ0ID0gTWF0aC5tYXgoMCwgb3B0LnN0YXJ0fHwwKVxuICAgIHZhciBlbmQgPSB0eXBlb2Ygb3B0LmVuZCA9PT0gJ251bWJlcicgPyBvcHQuZW5kIDogdGV4dC5sZW5ndGhcbiAgICB2YXIgbW9kZSA9IG9wdC5tb2RlXG5cbiAgICB2YXIgbWVhc3VyZSA9IG9wdC5tZWFzdXJlIHx8IG1vbm9zcGFjZVxuICAgIGlmIChtb2RlID09PSAncHJlJylcbiAgICAgICAgcmV0dXJuIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aClcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpXG59XG5cbmZ1bmN0aW9uIGlkeE9mKHRleHQsIGNociwgc3RhcnQsIGVuZCkge1xuICAgIHZhciBpZHggPSB0ZXh0LmluZGV4T2YoY2hyLCBzdGFydClcbiAgICBpZiAoaWR4ID09PSAtMSB8fCBpZHggPiBlbmQpXG4gICAgICAgIHJldHVybiBlbmRcbiAgICByZXR1cm4gaWR4XG59XG5cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjaHIpIHtcbiAgICByZXR1cm4gd2hpdGVzcGFjZS50ZXN0KGNocilcbn1cblxuZnVuY3Rpb24gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGxpbmVzID0gW11cbiAgICB2YXIgbGluZVN0YXJ0ID0gc3RhcnRcbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZCAmJiBpPHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNociA9IHRleHQuY2hhckF0KGkpXG4gICAgICAgIHZhciBpc05ld2xpbmUgPSBuZXdsaW5lLnRlc3QoY2hyKVxuXG4gICAgICAgIC8vSWYgd2UndmUgcmVhY2hlZCBhIG5ld2xpbmUsIHRoZW4gc3RlcCBkb3duIGEgbGluZVxuICAgICAgICAvL09yIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIEVPRlxuICAgICAgICBpZiAoaXNOZXdsaW5lIHx8IGk9PT1lbmQtMSkge1xuICAgICAgICAgICAgdmFyIGxpbmVFbmQgPSBpc05ld2xpbmUgPyBpIDogaSsxXG4gICAgICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIGxpbmVTdGFydCwgbGluZUVuZCwgd2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKG1lYXN1cmVkKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBsaW5lU3RhcnQgPSBpKzFcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKSB7XG4gICAgLy9BIGdyZWVkeSB3b3JkIHdyYXBwZXIgYmFzZWQgb24gTGliR0RYIGFsZ29yaXRobVxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL2xpYmdkeC9saWJnZHgvYmxvYi9tYXN0ZXIvZ2R4L3NyYy9jb20vYmFkbG9naWMvZ2R4L2dyYXBoaWNzL2cyZC9CaXRtYXBGb250Q2FjaGUuamF2YVxuICAgIHZhciBsaW5lcyA9IFtdXG5cbiAgICB2YXIgdGVzdFdpZHRoID0gd2lkdGhcbiAgICAvL2lmICdub3dyYXAnIGlzIHNwZWNpZmllZCwgd2Ugb25seSB3cmFwIG9uIG5ld2xpbmUgY2hhcnNcbiAgICBpZiAobW9kZSA9PT0gJ25vd3JhcCcpXG4gICAgICAgIHRlc3RXaWR0aCA9IE51bWJlci5NQVhfVkFMVUVcblxuICAgIHdoaWxlIChzdGFydCA8IGVuZCAmJiBzdGFydCA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgIC8vZ2V0IG5leHQgbmV3bGluZSBwb3NpdGlvblxuICAgICAgICB2YXIgbmV3TGluZSA9IGlkeE9mKHRleHQsIG5ld2xpbmVDaGFyLCBzdGFydCwgZW5kKVxuXG4gICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgc3RhcnQgb2YgbGluZVxuICAgICAgICB3aGlsZSAoc3RhcnQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSggdGV4dC5jaGFyQXQoc3RhcnQpICkpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIHN0YXJ0KytcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZGV0ZXJtaW5lIHZpc2libGUgIyBvZiBnbHlwaHMgZm9yIHRoZSBhdmFpbGFibGUgd2lkdGhcbiAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbmV3TGluZSwgdGVzdFdpZHRoKVxuXG4gICAgICAgIHZhciBsaW5lRW5kID0gc3RhcnQgKyAobWVhc3VyZWQuZW5kLW1lYXN1cmVkLnN0YXJ0KVxuICAgICAgICB2YXIgbmV4dFN0YXJ0ID0gbGluZUVuZCArIG5ld2xpbmVDaGFyLmxlbmd0aFxuXG4gICAgICAgIC8vaWYgd2UgaGFkIHRvIGN1dCB0aGUgbGluZSBiZWZvcmUgdGhlIG5leHQgbmV3bGluZS4uLlxuICAgICAgICBpZiAobGluZUVuZCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIC8vZmluZCBjaGFyIHRvIGJyZWFrIG9uXG4gICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kKSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluZUVuZCA9PT0gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXJ0ID4gc3RhcnQgKyBuZXdsaW5lQ2hhci5sZW5ndGgpIG5leHRTdGFydC0tXG4gICAgICAgICAgICAgICAgbGluZUVuZCA9IG5leHRTdGFydCAvLyBJZiBubyBjaGFyYWN0ZXJzIHRvIGJyZWFrLCBzaG93IGFsbC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gbGluZUVuZFxuICAgICAgICAgICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgZW5kIG9mIGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQgLSBuZXdsaW5lQ2hhci5sZW5ndGgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGluZUVuZCA+PSBzdGFydCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIGxpbmVFbmQsIHRlc3RXaWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KVxuICAgICAgICB9XG4gICAgICAgIHN0YXJ0ID0gbmV4dFN0YXJ0XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG4vL2RldGVybWluZXMgdGhlIHZpc2libGUgbnVtYmVyIG9mIGdseXBocyB3aXRoaW4gYSBnaXZlbiB3aWR0aFxuZnVuY3Rpb24gbW9ub3NwYWNlKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGdseXBocyA9IE1hdGgubWluKHdpZHRoLCBlbmQtc3RhcnQpXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBlbmQ6IHN0YXJ0K2dseXBoc1xuICAgIH1cbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGV4dGVuZFxuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBleHRlbmQoKSB7XG4gICAgdmFyIHRhcmdldCA9IHt9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldXG5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldFxufVxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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OztBQUVEO0FBQ0EsYUFBUyxRQUFULEdBQW9CLFdBQXBCO0FBQ0EsYUFBUyxLQUFULEdBQWlCLFFBQWpCO0FBQ0EsUUFBSyxNQUFMLEVBQWMsU0FBUyxhQUFULENBQXdCLENBQXhCLElBQThCLE1BQTlCOztBQUVkO0FBRUEsR0FuUEQ7QUFxUEEsQ0E1VkQ7OztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqIFxyXG4gKiBGb3Igbm93LCBqdXN0IGdvaW5nIHdpdGggUkdCIHNsaWRlcnMgYXMgSSBzaG91bGRuJ3Qgc3BlbmQgdG9vIGxvbmcgb24gdGhpcyBBVE0sXHJcbiAqIGJ1dCB2ZXJ5IHRlbXB0ZWQgYnkgcHJvc3BlY3Qgb2YgYW4gSFMgc3F1YXJlIHdpdGggViBzbGlkZXIuLi4gXHJcbiAqIG9yIEggc2xpZGVyIGFuZCBTViBzcXVhcmUgd2hpY2ggc2VlbXMgdG8gYmUgd2hhdCBkYXQuZ3VpIHVzZXMuXHJcbiAqIE9yIHNvbWV0aGluZyBmYW5jaWVyIGxpa2UgYSBodWUgY2lyY2xlIGFyb3VuZCBhbiBTViB0cmlhbmdsZSBldGMgZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuLy9zbmlwcGV0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2h1Z2hzay9nbHNsLWhzdjJyZ2IvYmxvYi9tYXN0ZXIvaW5kZXguZ2xzbFxyXG4vLyhub3QgZ29pbmcgdG8gdGhlIGxlbmd0aHMgb2YgZ2xzbGlmeSwganVzdCBjb3B5aW5nIHRoZSBmdW5jdGlvbilcclxuY29uc3QgaHN2MnJnYiA9IGBcclxudmVjMyBoc3YycmdiKHZlYzMgYykge1xyXG4gICAgdmVjNCBLID0gdmVjNCgxLjAsIDIuMCAvIDMuMCwgMS4wIC8gMy4wLCAzLjApO1xyXG4gICAgdmVjMyBwID0gYWJzKGZyYWN0KGMueHh4ICsgSy54eXopICogNi4wIC0gSy53d3cpO1xyXG4gICAgcmV0dXJuIGMueiAqIG1peChLLnh4eCwgY2xhbXAocCAtIEsueHh4LCAwLjAsIDEuMCksIGMueSk7XHJcbn1gO1xyXG5cclxuY29uc3QgVmVydFNoYWRlciA9IGBcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZVdiA9IHV2O1xyXG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4pO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBTVkZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdmVjMyBoc3YgPSB2ZWMzKHNlbGVjdGVkSFNWLngsIHZVdik7XHJcblxyXG4gICAgLy8gZHJhdyBhIGJsYWNrIGNpcmNsZSBhcm91bmQgc2VsZWN0ZWQgU1YuXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIGxlc3MgaG91c2VrZWVwaW5nXHJcbiAgICAvLyBuZWVkIHRvIGtub3cgYXNwZWN0IHJhdGlvIGlmIEkgd2FudCBpdCB0byBiZSBhIHByb3BlciBjaXJjbGUsIHRob3VnaC5cclxuICAgIGZsb2F0IGQgPSBsZW5ndGgoc2VsZWN0ZWRIU1YueXogLSB2VXYpO1xyXG4gICAgaWYgKGQgPCAwLjAxNSAmJiBkID4gMC4wMSkgaHN2LnogPSAwLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKGhzdik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBcclxufVxyXG5gO1xyXG5cclxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNzI0MjE0NC9qYXZhc2NyaXB0LWNvbnZlcnQtaHNiLWhzdi1jb2xvci10by1yZ2ItYWNjdXJhdGVseVxyXG4vL3doeSBub3QgdXNlIFRIUkVFLkNvbG9yIG1ldGhvZHM/XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiBoICBPYmplY3QgPSB7aDp4LCBzOnksIHY6en1cclxuICogT1IgXHJcbiAqIGgsIHMsIHZcclxuKi9cclxuZnVuY3Rpb24gSFNWdG9SR0IoaCwgcywgdikge1xyXG4gICAgdmFyIHIsIGcsIGIsIGksIGYsIHAsIHEsIHQ7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIC8vaGFjayB0byB0YWtlIFRIUkVFLlZlY3RvcjMuLi5cclxuICAgICAgICBpZiAoaC54ICE9PSB1bmRlZmluZWQpIHMgPSBoLnksIHYgPSBoLnosIGggPSBoLng7XHJcbiAgICAgICAgZWxzZSBzID0gaC5zLCB2ID0gaC52LCBoID0gaC5oO1xyXG4gICAgfVxyXG4gICAgaSA9IE1hdGguZmxvb3IoaCAqIDYpO1xyXG4gICAgZiA9IGggKiA2IC0gaTtcclxuICAgIHAgPSB2ICogKDEgLSBzKTtcclxuICAgIHEgPSB2ICogKDEgLSBmICogcyk7XHJcbiAgICB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpO1xyXG4gICAgc3dpdGNoIChpICUgNikge1xyXG4gICAgICAgIGNhc2UgMDogciA9IHYsIGcgPSB0LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxOiByID0gcSwgZyA9IHYsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDI6IHIgPSBwLCBnID0gdiwgYiA9IHQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMzogciA9IHAsIGcgPSBxLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0OiByID0gdCwgZyA9IHAsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDU6IHIgPSB2LCBnID0gcCwgYiA9IHE7IGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByOiByLFxyXG4gICAgICAgIGc6IGcsXHJcbiAgICAgICAgYjogYlxyXG4gICAgfTtcclxufVxyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogciAgT2JqZWN0ID0ge3IsIGcsIGJ9XHJcbiAqIE9SIFxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LCBcclxuICAgICAgICB4OiBoLCB5OiBzLCB6OiB2IC8vc28gdGhhdCB3ZSBjYW4gZG8gVmVjdG9yMy5jb3B5KHRoaXMpXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDb2xvclBpY2tlcigge1xyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lLCAvL211c3QgYmUgYSBUSFJFRS5Db2xvciBmb3Igbm93Li4uIHNob3VsZCByZWZlciB0byBvcmlnaW5hbCBkYXQuZ3VpIHRvIHNlZSB3aGF0IGl0IHRha2VzXHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIIC8gMy5cclxufSA9IHt9KSB7XHJcbiAgICAvLyBtYWtlIHRoZSBtYWluIGdyb3VwIGJlICpkaXJlY3RseSogdGhlIG9uZSByZXR1cm5lZCBieSBjcmVhdGVJbWFnZUJ1dHRvbjtcclxuICAgIC8vIHdlJ2xsIHRha2UgY2FyZSBvZiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIGNoaWxkcmVuIGJhc2VkIG9uIGF0dGFjaGVkLi4uXHJcbiAgICAvLyB3aWxsIHdhbnQgdG8gdGhpbmsgYWJvdXQgbGlzdGVuZXIgZnVuY3Rpb25zIGV0Yy5cclxuICAgIGxldCBmdW5jID0gdG9nZ2xlRGV0YWlsUGFuZWw7XHJcbiAgICBsZXQgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTsgLy9mb3Igbm93LCB0aGlzJ2QgYmV0dGVyIGJlIGEgVEhSRUUuQ29sb3Igb3Igd2UnbGwgZnJlYWsgb3V0LlxyXG4gICAgY29uc3QgYyA9IFJHQnRvSFNWKGNvbG9yKTtcclxuICAgIGNvbnN0IHVuaWZvcm1zID0ge3NlbGVjdGVkSFNWOiB7dmFsdWU6IG5ldyBUSFJFRS5WZWN0b3IzKGMuaCwgYy5zLCBjLnYpfX07XHJcbiAgICBjb25zdCBpbWFnZSA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IGNvbG9yfSk7XHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgY29uc3QgY2hhbmdlQ29sb3JPbkhvdmVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICBsaXN0ZW46IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgLy9UT0RPIG1ha2Ugc3VyZSBjb2xvciBwYXRjaCBvY2N1cGllcyBmdWxsIHdpZHRoLiAgQWRkIHRleHQgbGFiZWwgd2l0aCBoZXggdmFsdWU/XHJcbiAgICBjb25zdCBncm91cCA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgICB0ZXh0Q3JlYXRvciwgZnVuYywgaW1hZ2UsIHByb3BlcnR5TmFtZSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGNoYW5nZUNvbG9yT25Ib3ZlclxyXG4gICAgfSk7XHJcbiAgICBncm91cC5ndWlUeXBlID0gXCJDb2xvclBpY2tlclwiO1xyXG4gICAgXHJcbiAgICB2YXIgcGFuZWw7XHJcblxyXG4gICAgZnVuY3Rpb24gY2hhbmdlRm4oKSB7XHJcbiAgICAgICAgaW1hZ2UuY29sb3Iuc2V0KGNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTsgXHJcbiAgICAgICAgICAgIHBhbmVsLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmIChmYW5jeVBhbmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBTVk1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBTVkZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0U1YgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnkgPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS56ID0gcC5sb2NhbFBvaW50Lnk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS5jb3B5KFJHQnRvSFNWKGNvbG9yKSk7XHJcbiAgICB9XHJcbiAgICBncm91cC5saXN0ZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xPUiA9IDB4MkZBMUQ2O1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0NPTE9SID0gMHg0M2I1ZWE7XHJcbmV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9DT0xPUiA9IDB4MDdBQkY3O1xyXG5leHBvcnQgY29uc3QgRU1JU1NJVkVfQ09MT1IgPSAweDIyMjIyMjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9FTUlTU0lWRV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgT1VUTElORV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQUNLID0gMHgwNjA2MDY7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPTERFUl9CQUNLID0gMHgxMDEwMTA7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQkFDSyA9IDB4MzEzMTMxO1xyXG5leHBvcnQgY29uc3QgSU5BQ1RJVkVfQ09MT1IgPSAweDE2MTgyOTtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfU0xJREVSID0gMHgyZmExZDY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0NIRUNLQk9YID0gMHg4MDY3ODc7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0JVVFRPTiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9URVhUID0gMHgxZWQzNmY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RST1BET1dOID0gMHhmZmYwMDA7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fRkdfQ09MT1IgPSAweDAwMDAwMDtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fQ09MT1IgPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ISUdITElHSFRfQ09MT1IgPSAweGZhMzE3MztcclxuZXhwb3J0IGNvbnN0IFNMSURFUl9CRyA9IDB4NDQ0NDQ0O1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9CRyA9IDB4RjBGMEYwO1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9ISUdITElHSFRfQkcgPSAweEZGRkZGRjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xvcml6ZUdlb21ldHJ5KCBnZW9tZXRyeSwgY29sb3IgKXtcclxuICBjb25zdCBjb2wgPSBuZXcgVEhSRUUuQ29sb3IoY29sb3IpOyBcclxuICBsZXQgYyA9IGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgnY29sb3InKTtcclxuICBsZXQgYTtcclxuICBpZiAoIWMpIHtcclxuICAgIGEgPSBuZXcgRmxvYXQzMkFycmF5KGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheS5sZW5ndGgpLmZpbGwoMC41KTtcclxuICAgIGMgPSBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoJ2NvbG9yJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShhLCAzKSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGEgPSBjLmFycmF5O1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKz0zKSB7XHJcbiAgICBhW2ldID0gY29sLnI7XHJcbiAgICBhW2krMV0gPSBjb2wuZztcclxuICAgIGFbaSsyXSA9IGNvbC5iO1xyXG4gIH1cclxuICBjLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgLy8gZ2VvbWV0cnkuZmFjZXMuZm9yRWFjaCggZnVuY3Rpb24oZmFjZSl7XHJcbiAgLy8gICBmYWNlLmNvbG9yLnNldEhleChjb2xvcik7XHJcbiAgLy8gfSk7XHJcbiAgLy8gZ2VvbWV0cnkuY29sb3JzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgcmV0dXJuIGdlb21ldHJ5O1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwsIHtjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZURyb3Bkb3duKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIG9wdGlvbnMgPSBbXSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBvcGVuOiBmYWxzZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG5cclxuICBjb25zdCBEUk9QRE9XTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0RFUFRIID0gZGVwdGg7XHJcbiAgY29uc3QgRFJPUERPV05fT1BUSU9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU4gKiAxLjI7XHJcbiAgY29uc3QgRFJPUERPV05fTUFSR0lOID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIC0wLjQ7XHJcbiAgY29uc3QgTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJkcm9wZG93blwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgLy9hbGxvdyBmb3IgcHJvZ3JhbW1hdGljIHNldC4gQVBJIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBzdGFibGUuXHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlT2JqZWN0ID0gb2JqZWN0O1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZVByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTtcclxuICBncm91cC51c2VyRGF0YS5zZXRWYWx1ZSA9IHYgPT4ge1xyXG4gICAgaWYgKG9wdGlvbnMuaW5kZXhPZih2KSA9PT0gLTEpIHtcclxuICAgICAgLy9JIGNvdWxkIGNvbnNpZGVyIGFubm90YXRpbmcgR1VJIGl0c2VsZiB3aXRoIGVycm9yIGxhYmVscy4uLlxyXG4gICAgICBjb25zb2xlLndhcm4oYGRhdC5HVUlWUjogVW5rbm93biBvcHRpb24gXCIke3Z9XCIgZm9yIGRyb3Bkb3duIFwiJHtwcm9wZXJ0eU5hbWV9XCIuXFxuVmFsaWQgb3B0aW9uczogWyR7b3B0aW9ucy5qb2luKCcsICcpfV1gKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSB2O1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihvYmplY3RbcHJvcGVydHlOYW1lXSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IG1vZGFsRHJvcGRvd24gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBtb2RhbERyb3Bkb3duLnZpc2libGUgPSBmYWxzZTtcclxuICBtb2RhbERyb3Bkb3duLmhpdHNjYW4gPSBbXTtcclxuICBjb25zdCBsYWJlbEludGVyYWN0aW9ucyA9IFtdO1xyXG4gIGNvbnN0IG9wdGlvbkxhYmVscyA9IFtdO1xyXG5cclxuICAvLyAgZmluZCBhY3R1YWxseSB3aGljaCBsYWJlbCBpcyBzZWxlY3RlZFxyXG4gIGNvbnN0IGluaXRpYWxMYWJlbCA9IGZpbmRMYWJlbEZyb21Qcm9wKCk7XHJcblxyXG5cclxuXHJcbiAgZnVuY3Rpb24gZmluZExhYmVsRnJvbVByb3AoKXtcclxuICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgcmV0dXJuIG9wdGlvbnMuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb3B0aW9uTmFtZSA9PT0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvYmplY3RbcHJvcGVydHlOYW1lXSA9PT0gb3B0aW9uc1sgb3B0aW9uTmFtZSBdO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9wdGlvbiggbGFiZWxUZXh0LCBpc09wdGlvbiApe1xyXG4gICAgLy9UT0RPOiB0cnVuY2F0ZSBsb25nIGxhYmVsVGV4dCwgbWF5YmUgc2hvdyBmdWxsIHZlcnNpb24gd2hlbiBob3ZlcmluZy5cclxuICAgIGNvbnN0IGxhYmVsID0gY3JlYXRlVGV4dExhYmVsKFxyXG4gICAgICB0ZXh0Q3JlYXRvciwgbGFiZWxUZXh0LFxyXG4gICAgICAvL2NoZWNrIHdpZHRoIHZhbHVlLi4uXHJcbiAgICAgIERST1BET1dOX1dJRFRILCBkZXB0aCxcclxuICAgICAgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SLCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IsXHJcbiAgICAgIDAuODY2XHJcbiAgICApO1xyXG4gICAgbGFiZWwuYmFjay5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG5cclxuICAgIGlmIChpc09wdGlvbikgbW9kYWxEcm9wZG93bi5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGVsc2UgZ3JvdXAuaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBjb25zdCBsYWJlbEludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGxhYmVsLmJhY2sgKTtcclxuICAgIGxhYmVsSW50ZXJhY3Rpb24uZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5wdXNoKCBsYWJlbEludGVyYWN0aW9uICk7XHJcbiAgICBvcHRpb25MYWJlbHMucHVzaCggbGFiZWwgKTtcclxuXHJcblxyXG4gICAgaWYoIGlzT3B0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBsYWJlbFRleHQgKTtcclxuXHJcbiAgICAgICAgbGV0IHByb3BlcnR5Q2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIG9uQ2hhbmdlZENCICYmIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgb25DaGFuZ2VkQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCBvbkNob29zZUNCICl7XHJcbiAgICAgICAgICBvbkNob29zZUNCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgaWYoIHN0YXRlLm9wZW4gPT09IGZhbHNlICl7XHJcbiAgICAgICAgICBvcGVuT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbGFiZWwuaXNPcHRpb24gPSBpc09wdGlvbjtcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNvbGxhcHNlT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLmNsZWFyTW9kYWxFZGl0b3IoKTsgLy9zaG91bGQgd2UgY2hlY2sgaWYgaXQgd2Fzbid0IHNldCB0byBzb21ldGhpbmcgZWxzZT8/XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcGVuT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IHRydWU7XHJcbiAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IobW9kYWxEcm9wZG93bik7XHJcbiAgICAvL3JldHVybjtcclxuICAgIC8vbGFiZWwuaXNPcHRpb24gc2VlbXMgbW9zdGx5IHJlZHVuZGFudC5cclxuICAgIC8vbGFiZWxzICYgYmFja3Mgc2hvdWxkIGJlIGFkZGVkIHRvIGEgZ3JvdXAgdG8gYmUgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgXHJcbiAgICAvL21ha2luZyBldmVyeXRoaW5nIHZpc2libGUgLyBpbnZpc2libGUgd2l0aCBvbmUgcHJvcGVydHlcclxuICAgIC8vKG5iLCBldmVuIHRob3VnaCB0aGV5IGFyZSBub3cgaW4gYSBncm91cCB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCB3ZSBzdGlsbCBuZWVkIHRvIHNldCB2aXNpYmxlLi4uXHJcbiAgICAvL3NlZSBjb21tZW50IGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpKVxyXG4gICAgb3B0aW9uTGFiZWxzLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbCApe1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBsYWJlbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBsYWJlbC5iYWNrLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICBiYXNlIG9wdGlvblxyXG4gIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSBjcmVhdGVPcHRpb24oIGluaXRpYWxMYWJlbCB8fCAnICcsIGZhbHNlICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IEdyYXBoaWMuZG93bkFycm93KCk7XHJcbiAgLy8gQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggRFJPUERPV05fV0lEVEggLSAwLjA0LCAwLCBkZXB0aCAqIDEuMDEgKTtcclxuICBzZWxlY3RlZExhYmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBsYWJlbCwgaW5kZXggKXtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnkgPSAtRFJPUERPV05fTUFSR0lOIC0gKGluZGV4JU1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKzEpICogKCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUICk7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi54ICs9IERST1BET1dOX1dJRFRIICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wdGlvblRvTGFiZWwoIG9wdGlvbk5hbWUsIGluZGV4ICl7XHJcbiAgICBjb25zdCBvcHRpb25MYWJlbCA9IGNyZWF0ZU9wdGlvbiggb3B0aW9uTmFtZSwgdHJ1ZSApO1xyXG4gICAgY29uZmlndXJlTGFiZWxQb3NpdGlvbiggb3B0aW9uTGFiZWwsIGluZGV4ICk7XHJcbiAgICByZXR1cm4gb3B0aW9uTGFiZWw7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZExhYmVsLmFkZChtb2RhbERyb3Bkb3duKTtcclxuICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCguLi5vcHRpb25zLm1hcChvcHRpb25Ub0xhYmVsKSk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCggLi4uT2JqZWN0LmtleXMob3B0aW9ucykubWFwKCBvcHRpb25Ub0xhYmVsICkgKTtcclxuICB9XHJcblxyXG5cclxuICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfRFJPUERPV04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuXHJcbiAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBEUk9QRE9XTl9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBEUk9QRE9XTl9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSwgRFJPUERPV05fREVQVEgsIHRydWUgKTtcclxuICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGNvbnRyb2xsZXJJRCwgc2VsZWN0ZWRMYWJlbCwgYm9yZGVyQm94ICk7XHJcblxyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggaW50ZXJhY3Rpb24sIGluZGV4ICl7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uTGFiZWxzWyBpbmRleCBdO1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7IC8vYXMgb2YgdGhpcyB3cml0aW5nLCB0aGlzIGlzIGJlbGlldmVkIHRvIGJlIHJlbGlhYmxlLCBidXQgYmV3YXJlIGRyYWdvbnMsIGZ1dHVyZSByZWFkZXIuXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEudGlwT2JqKSB7XHJcbiAgICAgIC8vIGlmIChsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKSB7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coZ3JvdXAudXNlckRhdGEudGlwKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBzZXRWaXNpYmlsaXR5KHBhbmVsLCBncm91cC51c2VyRGF0YS50aXBPYmosIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYoIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkgfHwgc3RhdGUub3BlbiApe1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG4gIGxldCBvbkNob29zZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLm9uQ2hvb3NlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNob29zZUNCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggZmluZExhYmVsRnJvbVByb3AoKSApO1xyXG4gICAgfVxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsSW50ZXJhY3Rpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgIGNvbnN0IG9iaiA9IGdyb3VwO1xyXG4gICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgLy9uYiwgb2JqLnNwYWNpbmcgbWF5IGJlIHVuZGVmaW5lZCwgYnV0IHNob3VsZCBub3cgaGF2ZSBzZW5zaWJsZSBkZWZhdWx0LlxyXG4gICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgLy8vLy0tLSBzZWUgbGFiZWxJbnRlcmFjdGlvbnNbMF0gYWJvdmUgZm9yIGhhbmRsaW5nIHVwZGF0ZS4uLlxyXG4gIH1cclxuICBncm91cC5nZXRUb29sVGlwID0gKCkgPT4gZ3JvdXAudXNlckRhdGEudGlwO1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgeyBjcmVhdGVUb29sVGlwIH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyLCBzZXRCb3hGcm9tT2JqZWN0LCBzZXRWaXNpYmlsaXR5IH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IEZPTERFUl9XSURUSCB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbi8vSWYgeW91J3JlIGxvb2tpbmcgZm9yIG1haW4gY3JlYXRlRm9sZGVyIGZ1bmN0aW9uLCBpdCdzIGZ1cnRoZXIgYmVsb3cuLi5cclxuXHJcbi8qKlxyXG4gKiBOb3QgZW50aXJlbHkgc3VyZSBhYm91dCBzdGFydGluZyB0byBhZGQgdGhpcyBraW5kIG9mIGdsb2JhbCBzdGF0ZSBtYW5hYWdlbWVudCBoZXJlLi4uXHJcbiAqIFRoaXMgaXMgZm9yIHotb3JkZXIgaW4gMmQgb3J0aG9ncmFwaGljIG1vZGUsIGFuZCBtYXliZSBzb21lIG90aGVyIHRoaW5ncyBvbmUgZGF5LlxyXG4gKi9cclxuY29uc3QgdG9wRm9sZGVyU3RhY2sgPSBbXTtcclxuXHJcbmNvbnN0IHNjcmF0Y2hGb2xkZXJCb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoQ2FtQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaFNpemUgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCkge1xyXG4gIGNvbnN0IGNhbSA9IHRvcEZvbGRlclN0YWNrWzBdLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gIGlmICghY2FtIHx8IHRvcEZvbGRlclN0YWNrLmxlbmd0aCA8PSAxKSByZXR1cm47XHJcbiAgLy9jYW1Cb3hTZXR1cChjYW0pO1xyXG4gIGNvbnN0IHRmcyA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcih4ID0+IHgudmlzaWJsZSk7XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdGZzLmxlbmd0aDtcclxuICBjb25zdCB6cyA9IHRmcy5tYXAoZiA9PiBmLnBvc2l0aW9uLnopLnNvcnQoKGEsYik9PmEtYik7XHJcbiAgenNbLTFdID0gLTk5OTk7IC8vIEkgc3VwcG9zZSB0aGlzIGlzIHRvIGRlYWwgd2l0aCBhY2Nlc3NpbmcgenNbaS0xXSBiZWxvdyDCr1xcXyjjg4QpXy/Cr1xyXG4gIHpzLmZvckVhY2goICh6LGkpID0+IHpzW2ldID0gTWF0aC5tYXgoenNbaV0sIHpzW2ktMV0gKyAxMCpMYXlvdXQuUEFORUxfREVQVEgpKTsgLy8gaW4gY2FzZSBvZiBlcXVhbHNcclxuICBcclxuICB0ZnMuZm9yRWFjaCgoZiwgaSkgPT4ge1xyXG4gICAgLy9sZXQgeiA9IC0wLjkqZmFyICsgaSoxMCpMYXlvdXQuUEFORUxfREVQVEg7XHJcbiAgICBjb25zdCB6ID0genNbaV07XHJcbiAgICBpZiAoeiAhPT0gZi5wb3NpdGlvbi56KSB7XHJcbiAgICAgIGYucG9zaXRpb24ueiA9IHo7XHJcbiAgICAgIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIGYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9KTtcclxuICBpZiAodGZzW24tMV0ucG9zaXRpb24ueiA+PSBuZWFyIC0gTGF5b3V0LlBBTkVMX0RFUFRIKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkdVSVZSIFdhcm5pbmc6IGxpa2VseSBwcm9ibGVtIHdpdGggei1vcmRlciBpbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXRcIik7XHJcbiAgfVxyXG4gIC8vY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUgKyAnXFx0OiAnICsgZi5wb3NpdGlvbi56KS5qb2luKCdcXG4nKX1dYCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbUJveFNldHVwKGNhbSkge1xyXG4gIGlmICghY2FtLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSByZXR1cm47XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdG9wRm9sZGVyU3RhY2subGVuZ3RoO1xyXG4gIGNvbnN0IGwgPSBjYW0ubGVmdCwgciA9IGNhbS5yaWdodCwgdCA9IGNhbS50b3AsIGIgPSBjYW0uYm90dG9tO1xyXG4gIGNvbnN0IHogPSBjYW0ucG9zaXRpb24uejsgLy9ub3Qgc3RyaWN0bHkgcmlnaHQuLi5cclxuICBzY3JhdGNoQ2FtQm94Lm1pbi5zZXQobCwgYiwgLWZhciArIHopO1xyXG4gIHNjcmF0Y2hDYW1Cb3gubWF4LnNldChyLCB0LCAtbmVhciArIHopO1xyXG4gIHJldHVybiBzY3JhdGNoQ2FtQm94O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVGb2xkZXIoe1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG5hbWUsXHJcbiAgZ3VpQWRkLFxyXG4gIGd1aVJlbW92ZSxcclxuICBhZGRDb250cm9sbGVyRnVuY3MsXHJcbiAgZ2xvYmFsQ29udHJvbGxlcnNcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IHdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICBjb25zdCBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSDtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBjb2xsYXBzZWQ6IGZhbHNlLFxyXG4gICAgcHJldmlvdXNQYXJlbnQ6IHVuZGVmaW5lZFxyXG4gIH07XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZm9sZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7bmFtZX1dYDtcclxuXHJcbiAgY29uc3QgY29sbGFwc2VHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmFkZCggY29sbGFwc2VHcm91cCApO1xyXG5cclxuICB2YXIgaXNBY2NvcmRpb24gPSBmYWxzZTtcclxuICAvKiogV2hlbiB0cnVlLCB3aWxsIGtlZXAgb25seSBvbmUgY2hpbGQgZm9sZGVyIG9mIHRoaXMgZm9sZGVyIG9wZW4gYXQgYSB0aW1lLlxyXG4gICAqIFNpYmxpbmdzIGF1dG9tYXRpY2FsbHkgY2xvc2UuXHJcbiAgICovXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2FjY29yZGlvbicsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNBY2NvcmRpb247XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAoIG5ld1ZhbHVlICYmICFpc0FjY29yZGlvbiApIGdyb3VwLmd1aUNoaWxkcmVuLmZpbHRlciggYz0+Yy5pc0ZvbGRlciApLm1hcCggYz0+Yy5jbG9zZSgpICk7XHJcbiAgICAgIGlzQWNjb3JkaW9uID0gbmV3VmFsdWU7XHJcbiAgICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy9mbGFnIHRoZSBuZWVkIGZvciBwZXJmb3JtaW5nIGxheW91dCBvZiB0aGUgZm9sZGVyIGhpZXJhcmNoeSBpbiB3aGljaCB0aGlzIGlzIGNvbnRhaW5lZC5cclxuICBncm91cC5yZXF1ZXN0TGF5b3V0ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGByZXF1ZXN0ZWQgbGF5b3V0IG9mIGZvbGRlciAke2dyb3VwLmZvbGRlck5hbWV9IHdoaWxlIGxheW91dCBhbHJlYWR5IGluIHByb2dyZXNzLi4uYCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90b3BGb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20gaW5kZXguanMgdXBkYXRlKD8pIGZvciBlYWNoIHRvcEZvbGRlciwgdGhlbiBmcm9tIHdpdGhpbiBwZXJmb3JtTGF5b3V0KCkgZm9yIGVhY2ggY2hpbGQgZm9sZGVyXHJcbiAgZ3JvdXAucGVyZm9ybUxheW91dCA9IHBlcmZvcm1MYXlvdXQ7XHJcblxyXG4gIGNvbnN0IHN0cmFpZ2h0Um90YXRpb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xyXG4gIC8vcHJvdmlkZSBhcmd1bWVudHMgZm9yIGhvdyBjb25zdHJhaW5lZCB0byBiZSwgYW5kIHJlLXVzZSBzYW1lIGZ1bmN0aW9uIGJvdGggb24gZGV0YWNoIGFuZCBlbHNld2hlcmU/XHJcbiAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24gPSBmdW5jdGlvbih0aHJlc2g9MC4wMSkge1xyXG4gICAgY29uc3QgZiA9IHRoaXM7XHJcbiAgICBpZiAoIWYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIHJldHVybjtcclxuICAgIC8vYWx3YXlzIGZvcmNlIHJvdGF0aW9uIHN0cmFpZ2h0IGZvcndhcmQuLi5cclxuICAgIGYuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbihzdHJhaWdodFJvdGF0aW9uKTtcclxuXHJcbiAgICAvL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuICAgIC8vbWF5YmUgSSBjb3VsZCB1c2UgYSBCb3gyIGFueXdheSBzaW5jZSAzZCBtaWdodCBqdXN0IGNvbmZ1c2UgdGhpbmdzLlxyXG4gICAgY29uc3QgYm94ID0gc2V0Qm94RnJvbU9iamVjdChzY3JhdGNoRm9sZGVyQm94LCBmKTtcclxuICAgIGNvbnN0IGJveFcgPSBib3gubWF4LnggLSBib3gubWluLngsIGJveEggPSBib3gubWF4LnktYm94Lm1heC55O1xyXG4gICAgXHJcbiAgICBjb25zdCBjYW0gPSBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gICAgY29uc3QgY2FtQm94ID0gY2FtQm94U2V0dXAoY2FtKTsgLy9iaXQgd2FzdGVmdWwgdG8gY2FsbCB0aGlzIGhlcmUsIGJ1dCBpbnNpZ25pZmljYW50LlxyXG4gICAgLy9yZWFsbHksIEkgd2FudCB0byBrbm93IGlmIGl0J3MgJ21vc3RseScgaW52aXNpYmxlLlxyXG4gICAgLy9Vc2luZyB0d28gYm94ZXMsIHJhdGhlciB0aGFuIGZydXN0dW0uc2V0RnJvbU1hdHJpeCggbWF0Lm11bHRpcGx5TWF0cmljZXMoIGNhbS5wcm9qZWN0aW9uTWF0cml4LCBjYW0ubWF0cml4V29ybGRJbnZlcnNlICkgKTtcclxuICAgIC8vKGZydXN0dW0gaXMgdW5uZWNlc3NhcnkgKmNvdWdoKmlmIHdlIGFzc3VtZSBvcnRob2dyYXBoaWMgcGVyc3BlY3RpdmUsIG5vIGNhbWVyYSB0cmFuc2Zvcm0gJiBhcmUgZ2VuZXJhbGx5IGxheCBhYm91dCB6KilcclxuICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IGJveC5pbnRlcnNlY3QoY2FtQm94KTsgLy9jYXJlZnVsIG9mIG9yZGVyOyBpbnRlcnNlY3QoKSBtdXRhdGVzXHJcbiAgICAvLyhYWFg6IHN0cmljdGx5IHNwZWFraW5nLCBpZGVhbGx5IEkgd291bGQgdGFrZSBjYW1lcmEgbWF0cml4V29ybGQgaW50byBhY2NvdW50IGlmIEkgd2FudCB0byBiZSBwcm9wZXIpXHJcbiAgICAvLyhtaWdodCBqdXN0IG1ha2UgbG9nIGEgd2FybmluZyBpZiBpdCdzIHNldCBob3cgSSBkb24ndCBleHBlY3QgaXQsIGJ1dCBwcmVmZXIgbm90IHRvIGxlYXZlIHRyYXBzLilcclxuICAgIFxyXG4gICAgLy9sb29rIGF0IGRpbWVuc2lvbnMgb2YgaW50ZXJzZWN0aW9uIGFuZCBmb3JjZSBpbndhcmRzIGlmIG5lY2Vzc2FyeS4uLlxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uU2l6ZSA9IGludGVyc2VjdGlvbi5nZXRTaXplKHNjcmF0Y2hTaXplKTtcclxuICAgIGNvbnN0IHNjcmVlblcgPSBjYW0ucmlnaHQgLSBjYW0ubGVmdCwgc2NyZWVuSCA9IGNhbS50b3AgLSBjYW0uYm90dG9tO1xyXG4gICAgLy93b3JrIGluIHVuaXRzIGFzIGZyYWN0aW9uIG9mIGJveCB3aWR0aCAoYWx0aG91Z2ggdGhhdCdzIG5vdCBhIGdyZWF0IGlkZWEgd2l0aCBtdWx0aS1jb2x1bW4gZm9sZGVycylcclxuICAgIGludGVyc2VjdGlvblNpemUueCAvPSBib3hXOyBpbnRlcnNlY3Rpb25TaXplLnkgLz0gYm94VztcclxuICAgIGxldCBuZWVkc1VwZGF0ZSA9IGZhbHNlO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgJHtmLmZvbGRlck5hbWV9OiAke0pTT04uc3RyaW5naWZ5KGludGVyc2VjdGlvblNpemUpfSwgdGhyZXNoOiAke3RocmVzaH1gKTtcclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnggPCB0aHJlc2gpIHsgLy9UT0RPOiBwYXJhbWF0ZXJpc2UgLyBub24tbWFnaWMtbnVtYmVyXHJcbiAgICAgIC8vVE9ETyB3b3JrIG91dCB3aGljaCBzaWRlIHdlJ3JlIG9uLCBtb3ZlIGJ5IG9iamVjdCB3aWR0aC4uLlxyXG4gICAgICBmLnBvc2l0aW9uLnggPSBjYW0ubGVmdCArIHNjcmVlblcvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueSA8IHRocmVzaCkge1xyXG4gICAgICBmLnBvc2l0aW9uLnkgPSBjYW0uYm90dG9tICsgc2NyZWVuSC8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmVlZHNVcGRhdGUpIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5pc0NvbGxhcHNlZCA9ICgpID0+IHsgcmV0dXJuIHN0YXRlLmNvbGxhcHNlZCB9XHJcbiAgXHJcbiAgLy91c2VmdWwgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhpcyBhcyB3ZWxsLiBVc2luZyBpbiByZW1vdmUgaW1wbGVtZW50YXRpb25cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdndWlDaGlsZHJlbicsIHtcclxuICAgIC8vcGVyaGFwcyBtb2RhbEVkaXRvciBzaG91bGQgYWxzbyBjb3VudCBhcyBhIG1lbWJlciBvZiB0aGlzLi4uXHJcbiAgICAvL2N1cnJlbnRseSBjYW4ndCBzZWUgYW55dGhpbmcgaW4gaW1wbGVtZW50YXRpb24gdGhhdCB3b3VsZCByZXF1aXJlIHRoYXRcclxuICAgIC8vLS0gYWRkaW5nIGhlYWRlckl0ZW1zIHRob3VnaCwgc28gdGhleSdsbCBnZXQgcGlja2VkIHVwIGJ5IHJlbW92ZSgpXHJcbiAgICAvLyAtIG1heWJlIHNhbWUgc2hvdWxkIGFwcGx5IHRvIG1vZGFsRWRpdG9yXHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIFsgLi4uY29sbGFwc2VHcm91cC5jaGlsZHJlbiwgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gXSB9XHJcbiAgfSk7XHJcbiAgLy8gcmV0dXJucyB0cnVlIGlmIGFsbCBvZiB0aGUgc3VwcGxpZWQgYXJncyBhcmUgbWVtYmVycyBvZiB0aGlzIGZvbGRlclxyXG4gIGdyb3VwLmhhc0NoaWxkID0gZnVuY3Rpb24gKCAuLi5hcmdzICl7XHJcbiAgICByZXR1cm4gIWFyZ3MuaW5jbHVkZXMoKG9iaikgPT4geyByZXR1cm4gZ3JvdXAuZ3VpQ2hpbGRyZW4uaW5kZXhPZihvYmopID09PSAtMX0pO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZm9sZGVyTmFtZSA9IG5hbWU7IC8vZm9yIGRlYnVnZ2luZ1xyXG4gIFxyXG4gIC8vICBZZWFoLiBHcm9zcy5cclxuICBjb25zdCBhZGRPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQ7XHJcbiAgLy9hcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIHRoaXMgdG8gYmVoYXZlIGxpa2UgYSByZWd1bGFyIFRIUkVFLkdyb3VwLCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIG9mIHJlbW92ZSBzaG91bGRuJ3QgaHVydFxyXG4gIGNvbnN0IHJlbW92ZU9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZTsgXHJcblxyXG4gIGZ1bmN0aW9uIGFkZEltcGwoIG8gKXtcclxuICAgIC8vIEkgY291bGQgY2hhbmdlIHRoaXMgZnVuY3Rpb24gYXMgcGFydCBvZiBhIHJlZmFjdG9yIHRvIHBsYWNlIGV2ZXJ5dGhpbmcgYXQgdG9wRm9sZGVyIGxldmVsLi4uXHJcbiAgICAvLyBpcyB0aGF0IGEgZ29vZCBpZGVhLCBvciBhIGJhZCBpZGVhP1xyXG4gICAgYWRkT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gcmVtb3ZlSW1wbCggbyApe1xyXG4gICAgcmVtb3ZlT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcblxyXG4gIC8vYWRkSW1wbCggY29sbGFwc2VHcm91cCApOyAvL3JlZHVuZGFudC5cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBhZGRJbXBsKCBwYW5lbCApO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDEuNTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuXHJcbiAgY29uc3QgZG93bkFycm93ID0gTGF5b3V0LmNyZWF0ZURvd25BcnJvdygpO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIDB4ZmZmZmZmICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggMC4wNSwgMCwgZGVwdGggICogMS4wMSApO1xyXG4gIHBhbmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG4gIGNvbnN0IGdyYWJiZXIgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0dSQUJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGdyYWJiZXIucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44NjsgLy9YWFg6IG1hZ2ljIG51bWJlclxyXG4gIGdyYWJiZXIubmFtZSA9ICdncmFiYmVyJztcclxuICBhZGRJbXBsKCBncmFiYmVyICk7XHJcblxyXG4gIGNvbnN0IGdyYWJCYXIgPSBHcmFwaGljLmdyYWJCYXIoKTtcclxuICBncmFiQmFyLnBvc2l0aW9uLnNldCggd2lkdGggKiAwLjUsIDAsIGRlcHRoICogMS4wMDEgKTtcclxuICBncmFiYmVyLmFkZCggZ3JhYkJhciApO1xyXG4gIGdyb3VwLmlzRm9sZGVyID0gdHJ1ZTtcclxuICBncm91cC5oaWRlR3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSBmYWxzZSB9O1xyXG4gIGdyb3VwLnNob3dHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IHRydWUgfTtcclxuICBncm91cC5oaWRlSGVhZGVyID0gZnVuY3Rpb24oKSB7IFxyXG4gICAgZ3JvdXAuaGlkZUdyYWJiZXIoKTtcclxuICAgIC8vZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICB9O1xyXG4gIGdyb3VwLnNob3dIZWFkZXIgPSAoKSA9PiB7XHJcbiAgICAvL2dyYWJiZXIudmlzaWJsZSA9IGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vVE9ETzogaW50ZXJmYWNlIGZvciBhZGRpbmcgdGhpbmdzIHRvIHRoaXMuLi4gTk9UICdzaG93SW5Gb2xkZXJIZWFkZXInIG1ldGhvZCAvIHByb3BlcnR5IG9uIGxpbmVhciBpdGVtcy4uLlxyXG4gIGNvbnN0IGhlYWRlckl0ZW1zID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcGFuZWwuYWRkKGhlYWRlckl0ZW1zKTtcclxuICAvL3RoaXMgZnVuY3Rpb24gd2lsbCBhdHRlbXB0IHRvIG1ha2Ugb2JqIGJlaGF2ZSBhcyBjb250cm9sbGVyIGxheWVkIG91dCBpbiBoZWFkZXJJdGVtcyxcclxuICAvL2Jhc2VkIG9uIHNvbWUgYXNzdW1wdGlvbnMgYWJvdXQgb2JqIHRoYXQgbWF5IGJlIHRydWUgYXQgdGltZSBvZiB3cml0aW5nLi4uXHJcbiAgLy9idXQgYXJlIHBlbmRpbmcgbW9yZSByaWdvcm91cyBzcGVjaWZpY2F0aW9uIC8gcmVmYWN0b3JpbmcgZXRjLlxyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0gPSBmdW5jdGlvbihvYmope1xyXG4gICAgaGVhZGVySXRlbXMuYWRkKG9iaik7XHJcbiAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBvYmouaXNIZWFkZXJPYmplY3QgPSB0cnVlO1xyXG5cclxuICAgIC8vYWxzbyBuZWVkIHRvIGFkZCB0byBnbG9iYWwgY29udHJvbGxlcnMgbGlzdCBldGMuIE5COjogbWFrZSBzdXJlIHRoYXQgdGhleSB3aWxsIGdldCByZW1vdmVkIGFzIHdlbGxcclxuICAgIC8vLS0tIHRoaXMgZ2VuZXJpYyBpbnRlcmFjdGlvbi51cGRhdGUgZG9lc24ndCBtYWtlIGxpc3RlbigpIHdvcmsgcHJvcGVybHkuXHJcbiAgICBpZiAoIW9iai51cGRhdGVDb250cm9sKSBvYmoudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiBvYmouaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICBvYmouaGl0c2NhbiA9IFsgb2JqIF07IC8vaGFja3kgaGFja3lcclxuICAgIGdsb2JhbENvbnRyb2xsZXJzLnB1c2gob2JqKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiAweDg4ODg4OCwgdHJhbnNwYXJlbnQ6IHRydWV9KTtcclxuICBjb25zdCBoID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uUmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggaCwgaCwgTGF5b3V0LkJVVFRPTl9ERVBUSCoyICk7XHJcbiAgLy9zb21ld2hhdCBiYWNrd2FyZHMgd2F5IG9mIGdldHRpbmcgdGV4dHVyZXMuLi4gVE9ETyBtYXliZSBjaGFuZ2UgKGFsb25nIHdpdGggb3RoZXIgc3R5bGUgY29uc2lzdGVuY3kgdHlwZSBzdHVmZilcclxuICBjb25zdCBkb2NrVGV4dHVyZSA9IEdyYXBoaWMuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBjb25zdCB1bmRvY2tUZXh0dXJlID0gR3JhcGhpYy51bmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICBjb25zdCBkZXRhY2hCdXR0b24gPSBuZXcgVEhSRUUuTWVzaCggIGRldGFjaEJ1dHRvblJlY3QsIGRldGFjaEJ1dHRvbk1hdGVyaWFsICk7XHJcbiAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBmYWxzZTtcclxuICBkZXRhY2hCdXR0b24ucG9zaXRpb24ueCA9IExheW91dC5GT0xERVJfV0lEVEggLSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICBjb25zdCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGRldGFjaEJ1dHRvbik7XHJcbiAgZGV0YWNoQnV0dG9uLmludGVyYWN0aW9uID0gZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb247XHJcbiAgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChncm91cC5kZXRhY2hlZFBhcmVudCkge1xyXG4gICAgICBncm91cC5yZWF0dGFjaCgpO1xyXG4gICAgfSBlbHNlIGdyb3VwLmRldGFjaCgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG4gIC8vaGVhZGVySXRlbXMuYWRkKGRldGFjaEJ1dHRvbik7XHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbShkZXRhY2hCdXR0b24pO1xyXG5cclxuICBsZXQgaXNEZXRhY2hhYmxlID0gZmFsc2U7XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2RldGFjaGFibGUnLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzRGV0YWNoYWJsZTtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gaXNEZXRhY2hhYmxlKSByZXR1cm47XHJcbiAgICAgIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gbmV3VmFsdWU7XHJcbiAgICAgIGlzRGV0YWNoYWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZ3JvdXAuYWRkID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGNvbnN0IG5ld0NvbnRyb2xsZXIgPSBndWlBZGQoIC4uLmFyZ3MgKTtcclxuXHJcbiAgICBpZiggbmV3Q29udHJvbGxlciApe1xyXG4gICAgICBncm91cC5hZGRDb250cm9sbGVyKCBuZXdDb250cm9sbGVyICk7XHJcbiAgICAgIHJldHVybiBuZXdDb250cm9sbGVyO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBTb21lIGNvbnRyb2xsZXJzIG1heSBicmluZyB1cCBzdWItR1VJcyB3aGljaCBoYXZlIHRoZSBwb3RlbnRpYWxcclxuICAgIHRvIG92ZXJsYXAgLyBjbGFzaC4gIFRoaXMgZW5zdXJlcyBvbmx5IG9uZSBpcyBwcmVzZW50IGF0IGEgdGltZS5cclxuICAqL1xyXG4gIGdyb3VwLnNldE1vZGFsRWRpdG9yID0gZnVuY3Rpb24oZSl7XHJcbiAgICAvL1RoaXMgY291bGQgZ28gd3JvbmcgaWYgZm9sZGVyIGhpZXJhcmNoeSBjaGFuZ2VzIHNpZ25pZmljYW50bHkuXHJcbiAgICAvL1Nob3VsZCBiZSBnb29kIGVub3VnaCBmb3Igcm9jayduJ3JvbGwgKGZhbW91cyBsYXN0IHdvcmRzKS5cclxuICAgIC8vSSBjb3VsZCBtYWtlIGl0IHNvIHRoYXQgb25seSBvbmUgb2YgdGhlc2UgdGhpbmdzIHdhcyBldmVyIHZpc2libGVcclxuICAgIC8vYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtLiAgVGhhdCBzaG91bGQgYmUgZWFzaWVyIHRvIG1ha2Ugcm9idXN0LCBhbnl3YXkuLi5cclxuICAgIC8vYW5kIHNhdmVzIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLlxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IGU7XHJcbiAgICBpZiAoIWUpIHJldHVybjtcclxuICAgIGUudmlzaWJsZSA9IHRydWU7XHJcbiAgICBpZiAoZS5wZXJmb3JtTGF5b3V0KSBlLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIGZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gdHJ1ZTtcclxuICAgIC8vYWRkIGEgZmxhZyB0byBhbGwgY2hpbGRyZW4gcmVjdXJzaXZlbHkgc28gdGhhdCBpbnRlcmFjdGlvbiBzeXN0ZW0gY2FuIGlkZW50aWZ5IHRoZW0gYXMgYmVsb25naW5nIHRvIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAvL1RPRE86IHNraXAgaWYgYWxyZWFkeSBkb25lLi4uXHJcbiAgICBmdW5jdGlvbiBkZWNvcmF0ZUNoaWxkcmVuKHBhcmVudCkge1xyXG4gICAgICBwYXJlbnQuY2hpbGRyZW4uZm9yRWFjaChjID0+IHtcclxuICAgICAgICBjLnVzZXJEYXRhLnBhcnRPZk1vZGFsID0gZTtcclxuICAgICAgICBkZWNvcmF0ZUNoaWxkcmVuKGMpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGRlY29yYXRlQ2hpbGRyZW4oZSk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgY3VycmVudCBtb2RhbCBlZGl0b3IgZnJvbSB0aGlzIGZvbGRlclxyXG4gICAqICoqYnV0IG5vdCBpZiBpdCB3YXMgYWRkZWQgZHVyaW5nIHRoZSBjdXJyZW50IGNvbnRyb2xsZXIgdXBkYXRlLFxyXG4gICAqIGFzIGluZGljYXRlZCBieSBhIGZsYWcgc2V0IGluIHNldE1vZGFsQ29udHJvbGxlciBhbmQgcmVzZXQgaW4gaW5kZXguanMgdXBkYXRlKipcclxuICAgKi9cclxuICBncm91cC5jbGVhck1vZGFsRWRpdG9yID0gZnVuY3Rpb24oKSB7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoIWZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgIC8vZm9sZGVyLnNldE1vZGFsRWRpdG9yKG51bGwpO1xyXG4gICAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSB7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qIFxyXG4gIFJlbW92ZXMgdGhlIGdpdmVuIGNvbnRyb2xsZXJzIGZyb20gdGhlIEdVSS4gID4+Pk9uY2UgcmVtb3ZlZCwgdGhlIGNvbnRyb2xsZXJzIHdpbGwgZWZmZWN0aXZlbHkgYmUgaW52YWxpZCBmb3IgdXNlPDw8XHJcbiAgPj4+IHNvIGRpc3Bvc2Ugb2YgdGhlbSBhcyB3ZWxsPyBOZWVkIHRvIGJlIGNhcmVmdWwgYWJvdXQgdGV4dHVyZXMgLyBhbnl0aGluZyBzaGFyZWQuLi4gPDw8XHJcbiAgYXMgdGhleSB3aWxsIGFsc28gYmUgcmVtb3ZlZCBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzLiAgVXNlICdkZXRhY2gnIGluc3RlYWQgaWYgaXQgaXNcclxuICBkZXNpcmVkIHRvIHJldXNlIEdVSSBlbGVtZW50cyBlbHNld2hlcmUuXHJcblxyXG4gIElmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQsIGl0IHdpbGwgYXR0ZW1wdCB0byBkZXRlY3QgdGhpcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLCBcclxuICBhYm9ydGluZyB0aGUgcHJvY2VzcyBhbmQgcmV0dXJuaW5nIGZhbHNlIGZyb20gdGhpcyBtZXRob2QuXHJcblxyXG4gIE5vdGU6IGFzIHdpdGggYWRkLCB0aGlzIG92ZXJ3cml0ZXMgYW4gZXhpc3RpbmcgcHJvcGVydHkgb2YgVEhSRUUuR3JvdXAuXHJcbiAgQXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyBmb2xkZXJzIHRvIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgVEhSRUUuR3JvdXBzLCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIuXHJcbiAgKi9cclxuICBncm91cC5yZW1vdmUgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgLy9ndWlSZW1vdmUgaXMgcGFzc2VkIGluIGZyb20gaW5kZXguanMgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBzYW5pdHkgY2hlY2tpbmcgJiByZW1vdmluZyBmcm9tIGdsb2JhbCBjb250cm9sbGVycyBsaXN0XHJcbiAgICBjb25zdCBvayA9IGd1aVJlbW92ZSggLi4uYXJncyApOyAvLyBhbnkgaW52YWxpZCBhcmd1bWVudHMgc2hvdWxkIGNhdXNlIHRoaXMgdG8gcmV0dXJuIGZhbHNlIHdpdGggbm8gc2lkZS1lZmZlY3RzXHJcbiAgICBpZiAoIW9rKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgY29uc29sZS5hc3NlcnQoZ3JvdXAuaGFzQ2hpbGQob2JqKSwgXCJpbnRlcm5hbCBwcm9ibGVtIHdpdGggaG91c2VrZWVwaW5nIGxvZ2ljIG9mIGRhdC5HVUlWUiBmb2xkZXIgbm90IGNhdWdodCBieSBzYW5pdHkgY2hlY2tcIik7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBvYmoucmVtb3ZlKCAuLi5vYmouZ3VpQ2hpbGRyZW4gKTtcclxuICAgICAgfVxyXG4gICAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShvYmopO1xyXG4gICAgfSk7XHJcbiAgICAvL1RPRE86IGRlZmVyIGFjdHVhbCBsYXlvdXQgcGVyZm9ybWFuY2U7IHNldCBhIGZsYWcgYW5kIG1ha2Ugc3VyZSBpdCBnZXRzIGRvbmUgYmVmb3JlIGFueSByZW5kZXJpbmcgb3IgaGl0LXRlc3RpbmcgaGFwcGVucy5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vcmF0aGVyIHRoYW4gbWV0aG9kLCBkZXRhY2hlZFBhcmVudCBiZSBhIHByb3BlcnR5IHRoYXQgZG9lcyB0aGlzIHN0dWZmIGluIHNldHRlci4uLlxyXG4gIC8vYW55d2F5LCBib3RoIGFyZSByZWFsbHkgbWVhbnQgZm9yIGludGVybmFsIHVzZSwgYXMgaGludGVkIGJ5IF8gaW4gbmFtZS5cclxuICBncm91cC5fc2V0RGV0YWNoZWRGcm9tID0gKHBhcmVudCkgPT4ge1xyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICBpZiAocGFyZW50ID09PSBudWxsKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbi5tYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gZG9ja1RleHR1cmU7XHJcbiAgICAgIGdyb3VwLnNob3dIZWFkZXIoKTtcclxuICAgICAgZ3JvdXAuc2hvd0dyYWJiZXIoKTtcclxuICAgICAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIERldGFjaCBhIGNoaWxkIGZvbGRlciBmcm9tIHRoaXMgZm9sZGVyIGhpZXJhcmNoeSwgc3VjaCB0aGF0IGl0IGNhbiBiZSB1c2VkIGVsc2V3aGVyZSBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICogXHJcbiAgICogKHdpbGwgbm90IGJlIHZpc2libGUgdW50aWwgZXhwbGljaXRseSBhZGRlZCBlbHNld2hlcmU7IFxyXG4gICAqIGNhbGxpbmcgZGV0YWNoKCkgaW5zdGVhZCB3aWxsIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYW5kIGlzIG1vcmUgaW50ZW5kZWQgZm9yIHVzZSBpbiBhcHBsaWNhdGlvbiBjb2RlXHJcbiAgICogd2hpbGUgdGhpcyBtZXRob2QgaXMgbW9yZSBvZiBhbiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuKVxyXG4gICAqL1xyXG4gIGdyb3VwLmRldGFjaENoaWxkID0gKGNoaWxkKSA9PiB7XHJcbiAgICBpZiAoIWNoaWxkLmlzRm9sZGVyIHx8IGNoaWxkLmZvbGRlciAhPT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIGNoaWxkLl9zZXREZXRhY2hlZEZyb20oZ3JvdXApO1xyXG4gICAgY29sbGFwc2VHcm91cC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgLy9USFJFRS5PYmplY3QzRC5wcm90b3R5cGUucmVtb3ZlLmNhbGwoZ3JvdXAsIGNoaWxkKTtcclxuICAgIHJlbW92ZUltcGwoY2hpbGQpO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwOyAvL29yIGNoaWxkP1xyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBEZXRhY2ggdGhpcyBvYmplY3QgZnJvbSBpdHMgcGFyZW50LCBhbmQgcmVhdHRhY2ggdG8gc2NlbmVncmFwaCBhcyBhIHNpYmxpbmcgb2YgdGhlICd0b3AgbGV2ZWwnIGZvbGRlciBpblxyXG4gICAgdGhlIGhpZXJhcmNoeSB0aGlzIHByZXZpb3VzbHkgd2FzIGEgbWVtYmVyIG9mLlxyXG4gICovXHJcbiAgZ3JvdXAuZGV0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciA9PT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIC8vYXV0b21hdGljYWxseSBhZGQgdG8gVEhSRUUgcGFyZW50IG9mIHRvcCBsZXZlbCBmb2xkZXIgYW5kIHRyeSB0byBzZXQgYXBwcm9wcmlhdGUgc2NhbGUgLyB0cmFuc2Zvcm0uLi5cclxuICAgIC8vaWYgdGhhdCBmb2xkZXIgYmVpbmdNb3ZlZCBhdCB0aGUgcHJlc2VudCB0aW1lLCB0aGVuIGl0IHdpbGwgaGF2ZSBhbiBvbGRQYXJlbnQgdG8gd2hpY2ggd2Ugc2hvdWxkIGF0dGFjaCBpbnN0ZWFkLlxyXG4gICAgLy8uLi5hbHRob3VnaCBpdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRoZSBkZXRhY2hlZCBmb2xkZXIgdG8gbW92ZSB3aXRoIHRoZSBjb250cm9sbGVyIHVudGlsIGJ1dHRvbiBpcyByZWxlYXNlZC4uLlxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgZ3JvdXAuZm9sZGVyLmRldGFjaENoaWxkKGdyb3VwKTtcclxuICAgIFxyXG4gICAgLy9hZGRpbmcgdG8gdG9wRm9sZGVyLnBhcmVudCBJRiBBVkFJTEFCTEUsIG5vdCBvbGRQYXJlbnQsIHBlbmRpbmcgd29ya2luZyBvdXQgdHJhbnNmb3JtIGxhdGVyIGlmIGJlaW5nTW92ZWQuLi5cclxuICAgIGNvbnN0IHBhciA9IHRvcEZvbGRlci5wYXJlbnQgfHwgZ3JvdXAucGFyZW50OyBcclxuICAgIGlmICghcGFyKSByZXR1cm47IC8vU0pQVCBjaGFuZ2UgZnJvbSBDU3ludGgsIG5vdCBjYXJlZnVsbHkgcmV2aWV3ZWQgYnV0IHByb2JhYmx5IHJpZ2h0LlxyXG4gICAgcGFyLmFkZChncm91cCk7XHJcbiAgICBjb25zdCBtID0gdG9wRm9sZGVyLm1hdHJpeC5jbG9uZSgpO1xyXG5cclxuICAgIGdyb3VwLmFwcGx5TWF0cml4NChtKTtcclxuICAgIG0uc2V0UG9zaXRpb24obmV3IFRIUkVFLlZlY3RvcjMoKSk7XHJcbiAgICBjb25zdCB0ID0gbmV3IFRIUkVFLlZlY3RvcjMoTGF5b3V0LkZPTERFUl9XSURUSCwgMCwgMCkuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgZ3JvdXAucG9zaXRpb24uYWRkKHQpO1xyXG4gICAgXHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9kZXRhY2ggdGhpcyBvYmplY3QgZnJvbSB0b3BGb2xkZXIucGFyZW50IHRoZW4gYXR0YWNoIHRvIHRvcEZvbGRlci5vbGRQYXJlbnQgd2hpbGUgbWFpbnRhaW5pbmcgbWF0cml4V29ybGRcclxuICAgICAgLy8uLi5hY3R1YWxseSwgKG1heWJlKSB3ZSB3YW50IHRvIGRvIHRoaXMgc2NlbmVTaGlmdCBidXNpbmVzcyB3aGVuIGJlaW5nTW92ZWQgZmluaXNoZXMuLi5cclxuICAgICAgLy8gcHV0IHRoaW5ncyBpbnRvIHNlbWlEZXRhY2hlZCwgc28gdGhhdCB3aGVuIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCB0aGV5IGNhbiBiZSBzaGlmdGVkLlxyXG4gICAgICAvL29yIG1heWJlIHdoYXQgd2UgcmVhbGx5IHdhbnQgaXMgdG8gaGF2ZSBhbiBvcHRpb24gdG8gJ3BpbicgcGFuZWxzIHRvZ2V0aGVyIGFuZCB1bnBpbiB0aGVtLCByYXRoZXIgdGhhbiBhc3N1bWVcclxuICAgICAgLy9hdHRhY2htZW50IGNoYW5nZXMgd2hlbiBidXR0b24gcmVsZWFzZWQuICBGb3Igbm93LCB0aGlzIGlzIG5vdCBxdWl0ZSB3b3JraW5nIHJpZ2h0LCBzby4uLlxyXG4gICAgICBjb25zdCBkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgLy93ZSBjb3VsZCBqdXN0IGRldGFjaCwgbGVhdmluZyB0aGUgb2JqZWN0IGFzIGRpcmVjdCBkZXNjZW5kZW50IG9mIHNjZW5lLCBidXQgdGhlcmUgbWF5IGJlIHJlYWwgcmVhc29ucyB0byBzaXR1YXRlXHJcbiAgICAgIC8vdGhlIEdVSSB3aXRoaW4gaGllcmFyY2h5IHNvbWVob3cgKGxpa2UgYXMgY2hpbGRyZW4gb2YgYSBjb250cm9sbGVyKVxyXG4gICAgICBcclxuICAgICAgaWYgKGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5wdXNoKGdyb3VwKTtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEub2xkUGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsvL1hYWDogaGFjayBiZWNhdXNlIHRvcEZvbGRlci5vbGRQYXJlbnQgd2FzIGJlaW5nIHVuZGVmaW5lZCBiZWZvcmUgYmVpbmdNb3ZlZCA9IGZhbHNlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGQgPSBncm91cDtcclxuICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSB0b3BGb2xkZXIucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICBcclxuICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IFxyXG4gICAgZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSB0b3BGb2xkZXIudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7IC8vVE9ETzogcmV2aXNlIGhvdyB0byBwYXNzIHRoaXMgaW5mb1xyXG4gICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oMC41KTtcclxuICAgIGdyb3VwLm9wZW4oKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICAvL2FsYSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2V4YW1wbGVzL3V0aWxzL1NjZW5lVXRpbHNcclxuICBmdW5jdGlvbiBzY2VuZURldGFjaChjaGlsZCwgcGFyZW50LCBzY2VuZSkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQocGFyZW50Lm1hdHJpeFdvcmxkKTtcclxuICAgIHBhcmVudC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgc2NlbmUuYWRkKGNoaWxkKVxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIHBhcmVudCkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkuZ2V0SW52ZXJzZShwYXJlbnQubWF0cml4V29ybGQpICk7XHJcblx0XHRzY2VuZS5yZW1vdmUoY2hpbGQpO1xyXG5cdFx0cGFyZW50LmFkZChjaGlsZCk7ICAgXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KSB7XHJcbiAgICBsZXQgbm9kZSA9IG9sZFBhcmVudDtcclxuICAgIHdoaWxlIChub2RlLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgY29uc3Qgc2NlbmUgPSBub2RlO1xyXG4gICAgXHJcbiAgICBzY2VuZURldGFjaChjaGlsZCwgb2xkUGFyZW50LCBzY2VuZSk7XHJcbiAgICBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIG5ld1BhcmVudCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5kZXRhY2hGcm9tUGFyZW50ID0gZ3JvdXAuZGV0YWNoO1xyXG4gIFxyXG4gIGdyb3VwLnJlYXR0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKCFncm91cC5kZXRhY2hlZFBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9UT0RPOiBjaGVjayBsYXlvdXQgd2l0aCB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiB3cmFwcGluZyBldGMuXHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudC5hZGRGb2xkZXIoZ3JvdXApOyAvLyB0aGlzIHdpbGwgYWxzbyBkZWFsIHdpdGggY29zbWV0aWNzIChoaWRlR3JhYmJlciBldGMpXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cC5kZXRhY2hlZFBhcmVudCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9tYXliZSB3ZSBjb3VsZCBkbyB0aGlzIGtpbmQgb2Ygc3R1ZmYgaW4gX3NldERldGFjaGVkRnJvbVxyXG4gICAgICAvL2luIGFueSBjYXNlLCBpdCdzIGlycmVsZXZhbnQgaWYgXHJcbiAgICAgIGxldCBzZW1pcyA9IHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQ7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VtaXMuaW5kZXhPZihncm91cCk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICAvL2dyb3VwLmRldGFjaGVkUGFyZW50ID0gbnVsbDtcclxuICAgIGdyb3VwLl9zZXREZXRhY2hlZEZyb20obnVsbCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmFkZENvbnRyb2xsZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBncm91cC5hZGRGb2xkZXIob2JqKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICB9XHJcbiAgICAgIC8vWFhYOiBoYWNraW5nIGluIHNvbWUgdW5pdmVyc2FsIHRvb2x0aXAgc3VwcG9ydFxyXG4gICAgICBpZiAob2JqLnNldFRvb2xUaXApIHJldHVybjsgLy9idXQgbm90IGlmIGEgbW9yZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBhbHJlYWR5IGV4aXN0cyAoc2VlIGRyb3Bkb3duLi4uKVxyXG4gICAgICBvYmouc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgICAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgICAgICBjb25zdCB0aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwT2JqID0gdGlwT2JqO1xyXG4gICAgICAgIC8vYXNzb2NpYXRlIGV2ZW50IHdpdGggaG92ZXIgb24gYXBwcm9wcmlhdGUgaGl0c2Nhbi4uLlxyXG5cclxuICAgICAgICBpZiAob2JqLmludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgICAvL1RPRE86IGV2ZW50cy5vZmYoKSBpZiByZXBsYWNpbmcgb2xkIHRvb2x0aXAgKG9yIG5vdCByZXBlYXRpbmcgb24oKSkuXHJcbiAgICAgICAgICBvYmouaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCd0aWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAvL2Rvbid0IGp1c3Qgc2V0IHZpc2liaWxpdHk7IGFkZC9yZW1vdmUgYXMgdGhlc2UgYXJlIGtpbGxpbmcgZnJhbWVyYXRlIGluIGxhcmdlIFZSIGd1aXMuXHJcbiAgICAgICAgICAgIC8vUkVWSUVXLi4uIGNvbnNpZGVyaW5nIG1ha2luZyB0b29sdGlwcyB3b3JrIHdoZW4gaG92ZXJpbmcgb24gbGFiZWwgYXMgd2VsbCxcclxuICAgICAgICAgICAgLy8gYnV0IG9mIGNvdXJzZSB0aGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgbW9yZSBhYm91dCB0aGUgaW50ZXJhY3Rpb24gc2V0dXAsXHJcbiAgICAgICAgICAgIC8vIGFuZCBoYXZpbmcgbW9yZSBvYmplY3RzIHRvIHRlc3QgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAgICAgICAgICAvLyBMZWF2aW5nIGZvciBub3csIGlmIHdvcmtpbmcgbW9yZSBvbiB0aGUgbGlicmFyeSwgaG9wZWZ1bGx5IGZpeCBob3ZlciBldmVudCBldGMuXHJcbiAgICAgICAgICAgIGlmIChvYmoudmlzaWJsZSkgc2V0VmlzaWJpbGl0eShvYmosIHRpcE9iaiwgb2JqLmludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYGNhbid0IGNyZWF0ZSB0b29sdGlwIGZvciAke29iai5ndWlUeXBlfSBiZWNhdXNlIHRoZXJlJ3Mgbm8gb2JqLmludGVyYWN0aW9uIHByb3BlcnR5Li4uYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBvYmouZ2V0VG9vbFRpcCA9ICgpID0+IG9iai51c2VyRGF0YS50aXA7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuYWRkRm9sZGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24gKG9iaikge1xyXG4gICAgICAvL1RPRE8gaWYgb2JqIGlzIHN0cmluZywgbWFrZSBhIG5ldyBndWkgYW5kIGFkZCAvIHJldHVybiBpdC4uLiBidXQgd2hhdCBhYm91dCB2YXJhcmdzP1xyXG4gICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgb2JqLm1hdHJpeC5pZGVudGl0eSgpO1xyXG4gICAgICBvYmouc2NhbGUuc2V0KDEsMSwxKTtcclxuICAgICAgb2JqLnBvc2l0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIG9iai5yb3RhdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBcclxuICAgICAgb2JqLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAgIG9iai5jbG9zZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnByb21vdGVaT3JkZXIgPSAoKSA9PiB7XHJcbiAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCB8fCAhdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGRuJ3QgYmUgYSAncHVibGljIG1ldGhvZCcgKGJ1dCBtYXliZSB0aGVyZSBzaG91bGQgYmUgYSB3ZWxsLWRlZmluZWQgcHVibGljIGludGVyZmFjZSkuXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IGluY29uc2lzdGVuY3kgaW4gZm9sZGVyIGhvdXNla2VlcGluZ2ApO1xyXG4gICAgfVxyXG4gICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYHByb21vdGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAvL3RoaXMgd2lsbCByZXN1bHQgaW4gdGhlIG9iamVjdCB6IGJlaW5nIGRpZmZlcmVudCBmcm9tIHdoZW4gbW91c2VJbnRlcnNlY3Rpb24gaGl0IGl0IGVhcmxpZXIgaW4gdXBkYXRlLlxyXG4gICAgLy9tb3VzZUludGVyc2VjdGlvbiB3aWxsIHRoZW4gbGF0ZXIgYmUgdXNlZCBpbiBoYW5kbGVUaWNrIG9mIGdyYWIgaW50ZXJhY3Rpb24sIHRvIGZ1cnRoZXIgbXV0YXRlIHBvc2l0aW9uXHJcbiAgICAvL3NlZW1zIG9rIHRob3VnaCAoYXMgb2YgMDQvMTIvMTgpXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIC8vZ3JvdXAudXNlckRhdGEub3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0ID0gIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dDtcclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUxheW91dCgpe1xyXG4gICAgcGVyZm9ybUhlYWRlckxheW91dCgpO1xyXG4gICAgXHJcbiAgICBjb25zdCB3cmFwTmVzdGVkID0gZmFsc2U7XHJcbiAgICBcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIC8vc3RhcnRpbmcgd2hvbGUgbmV3IGxheW91dCBvZiB0b3BGb2xkZXI/XHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBpZiAodG9wRm9sZGVyLm1vZGFsRWRpdG9yICYmIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KSB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICBcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbllPZmYgPSAtdG9wRm9sZGVyLnBvc2l0aW9uLnk7XHJcbiAgICAgIC8vSSBjb3VsZCB1bmRlZmluZSB0aGVzZSBhdCB0aGUgZW5kLCBidXQgdGhlcmUncyBubyBwb2ludC5cclxuXHJcbiAgICAgIGlmICghdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgYWRkaW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8va2VlcCBjb3VudGluZyBjb2x1bW5IZWlnaHQgKGN1cnJlbnQgeSkgJiBpbmRleCBmcm9tIHBhcmVudCBmb2xkZXIuXHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL1RPRE86IG1ha2Ugc3VyZSB0byB0ZXN0IHdpdGggZGVlcCBuZXN0aW5nLlxyXG4gICAgICBcclxuICAgICAgaWYgKHRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgcmVtb3ZpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIGNvbnN0IHNwYWNpbmdQZXJDb250cm9sbGVyID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgY29uc3QgZW1wdHlGb2xkZXJTcGFjZSA9IExheW91dC5GT0xERVJfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICB2YXIgdG90YWxTcGFjaW5nID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjKSA9PiB7IGMudmlzaWJsZSA9ICFzdGF0ZS5jb2xsYXBzZWQgfSApO1xyXG4gICAgLy9jaGlsZHJlbiBzaG91bGQgYmUgb3JkZXJlZCBieSBndWlJbmRleC5cclxuICAgIC8vaWYgdGhleSBkb24ndCBhbHJlYWR5IGhhdmUgb25lLCBpdCBjYW4gYmUgYWRkZWQgaGVyZTpcclxuICAgIC8vdGhpcyBzaG91bGQgYmUgdGhlIG9ubHkgcGxhY2UgdGhhdCB3ZSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgcHJvcGVydHlcclxuICAgIC8vaXQgYWxsb3dzIGZvciBkZXRhY2hpbmcgZWxlbWVudHMgYW5kIHJlYXR0YWNoaW5nIGluIHNpbWlsYXIgcGxhY2UsIGV2ZW4gaWYgc29tZSBzaWJsaW5ncyBhcmUgYWxzbyBkZXRhY2hlZC5cclxuICAgIGxldCBsYXN0R3VpSW5kZXggPSAwO1xyXG4gICAgLy90cnkgdG8gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGNsaWVudCBwcm9ncmFtIG1heSBhdHRlbXB0IHRvIHJlc3RvcmUgaXRlbXMgXHJcbiAgICAvL3JlbWVtYmVyaW5nIGRldGFjaGVkUGFyZW50IGJ1dCBub3QgZ3VpSW5kZXg/IE5vaXNlLi4uXHJcbiAgICAvL2NvbnN0IGRldGFjaGVkQ2hpbGRyZW4gPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoZiA9PiBmLmRldGFjaGVkUGFyZW50ID09PSB0aGlzKTtcclxuICAgIC8vY29sbGFwc2VHcm91cC5jaGlsZHJlbi5jb25jYXQoZGV0YWNoZWRDaGlsZHJlbikuZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgICAgICBpZiAoYy5ndWlJbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgYy5ndWlJbmRleCA9IGxhc3RHdWlJbmRleCs9MTtcclxuICAgICAgfSBlbHNlIGxhc3RHdWlJbmRleCA9IGMuZ3VpSW5kZXg7XHJcbiAgICB9KTtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4geyByZXR1cm4gYS5ndWlJbmRleCAtIGIuZ3VpSW5kZXggfSk7XHJcblxyXG4gICAgaWYgKCBzdGF0ZS5jb2xsYXBzZWQgKSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gTWF0aC5QSSAqIDAuNTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gMDtcclxuXHJcbiAgICAgIHZhciB5ID0gMCwgbGFzdEhlaWdodCA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIGZ1bmN0aW9uKCBjaGlsZCwgaW5kZXggKXtcclxuICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgIGNoaWxkLnVzZXJEYXRhLmNvbHVtbllPZmYgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmIC0geTsgLy9leGNlcHQgJ3knIHdpbGwgYmUgd3JvbmcuLi5cclxuICAgICAgICAgIGNoaWxkLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCAhd3JhcE5lc3RlZCApIHtcclxuICAgICAgICAgIC8vT3JpZ2luYWwgbGF5b3V0IGFsZ29yaXRobVxyXG4gICAgICAgICAgdmFyIGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgLy8gaG93IGZhciB0byBnZXQgZnJvbSB0aGUgbWlkZGxlIG9mIHByZXZpb3VzIHRvIG1pZGRsZSBvZiB0aGlzIGNoaWxkP1xyXG4gICAgICAgICAgLy8gaGFsZiBvZiB0aGUgaGVpZ2h0IG9mIHByZXZpb3VzIHBsdXMgaGFsZiBoZWlnaHQgb2YgdGhpcy5cclxuICAgICAgICAgIC8vIGlmIHdlJ3ZlIHdyYXBwZWQgdG8gYSBuZXcgY29sdW1uIHJlY2VudGx5LCBob3cgaXMgdGhpcyBhZmZlY3RlZD9cclxuICAgICAgICAgIC8vIHNwYWNpbmcgcHJvcGVydHkgc2hvdWxkIHRoZW4gYmUgc3BhY2luZyAqd2l0aGluIGN1cnJlbnQgY29sdW1uKiwgc28gdGhlIHdheSB3ZSB0cmFjayB0b3RhbFNwYWNpbmcgc2hvdWxkIHJlZmxlY3QgdGhhdC5cclxuICAgICAgICAgIHZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICBpZiAoaW5kZXggPCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTilcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoKGluZGV4KzEpICUgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPT09IDApIHkgPSAwO1xyXG4gIFxyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTik7XHJcblxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy9uZXcgbGF5b3V0IGFsZ29yaXRobSBXSVAsIHNob3VsZCBhbGxvdyBmb3IgbmVzdGVkIGZvbGRlcnMgdG8gd3JhcCB0byB0aGUgdG9wIG9mIGEgbmV3IGNvbHVtbiwgd2l0aCBhbGwgZm9sZGVyc1xyXG4gICAgICAgICAgLy9pbiBoaWVyYXJjaHkgdXNpbmcgc2FtZSBjb2x1bW4gbGF5b3V0XHJcbiAgICAgICAgICBjb25zdCBtYXhDb2xIZWlnaHQgPSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiAqIHNwYWNpbmdQZXJDb250cm9sbGVyOyAvL01BWF9GT0xERVJfSVRFTVMgaXMgc2xpZ2h0IG1pc25vbWVyXHJcbiAgICAgICAgICBjb25zdCBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIGNvbnN0IGNoaWxkRGlkV3JhcCA9IGNoaWxkLmlzRm9sZGVyICYmIGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vbW92ZSB0byBhIG5ldyBjb2x1bW4/XHJcbiAgICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID4gbWF4Q29sSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIC8vVE9ETzogbWF5YmUgYWRkIGFuIGV4dHJhIGhlYWRlciB0aGluZyB0byBhbGxvdyBmb2xkaW5nIG5lc3RlZCBmb2xkZXI/XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4Kys7IFxyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBoO1xyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgPSAwOyAvL2ggd2lsbCBiZSBhZGRlZCBsYXRlclxyXG4gICAgICAgICAgICBsYXN0SGVpZ2h0ID0gMDsgLy8/Pz8/IHdoYXQgc2hvdWxkIHRoaXMgYmU/ICBPcmlnaW5hbCBhbGdvcml0aG0gaXQncyAnZW1wdHlGb2xkZXJTcGFjZSdcclxuICAgICAgICAgICAgLy9jaGVjayBsb2dpYyBvZiB0aGlzIFdSVCBkZWVwZXIgbmVzdGluZyAoc2hvdWxkIGJlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRvcEZvbGRlciByYXRoZXIgdGhhbiBpbW1lZGlhdGUgcGFyZW50KVxyXG4gICAgICAgICAgICAvL3doYXQgSSBzaG91bGQgZG8gaXMgdXNlIGFjY3VtbXVsYXRpb24gb2YgYWxsIGZvbGRlciBsZXZlbHMgKyBvbmUgcGFyZW50IGFib3ZlLlxyXG4gICAgICAgICAgICAvL3kgPSAtZ3JvdXAucG9zaXRpb24ueTtcclxuICAgICAgICAgICAgeSA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmY7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgKz0gaDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvL3ZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICAgICAgICAgIGxldCBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuXHJcblxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLi4uLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICAvL1hYWDogdGhpcyBsb2dpYyBkb2Vzbid0IHdvcmsgZm9yIGNvbHVtbiB3cmFwcGluZywgKGJlY2F1c2Ugb2YgaG93IHNwYWNpbmcgaXMgY29tcHV0ZWQgYWJvdmU/KVxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcblxyXG4gICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vbmIgZm9yIG5lc3RlZCwgY29uc2lkZXIgZGlmZmVyZW5jZSBiZXR3ZWVuIGdyb3VwICYgcGFyZW50XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvL2lmIChjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4KSBsYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjaGlsZC51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSB0b3RhbFNwYWNpbmc7XHJcbiAgICBcclxuICAgIC8vIGlmIHdlJ3JlIGEgc3ViZm9sZGVyLCB1c2UgYSBzbWFsbGVyIHBhbmVsXHJcbiAgICBsZXQgcGFuZWxXaWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCkge1xyXG4gICAgICBwYW5lbFdpZHRoID0gTGF5b3V0LlNVQkZPTERFUl9XSURUSDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgTGF5b3V0LnJlc2l6ZVBhbmVsKHBhbmVsLCBwYW5lbFdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgpO1xyXG5cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1IZWFkZXJMYXlvdXQoKSB7XHJcbiAgICBsZXQgZHggPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgIGxldCB4ID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGhlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgaWYgKCFjLnZpc2libGUpIHJldHVybjtcclxuICAgICAgeCAtPSBkeCAqIDAuODtcclxuICAgICAgYy5wb3NpdGlvbi54ID0geDtcclxuICAgICAgeCAtPSBkeCAqIDAuMzsgLy9UT0RPOiBkZWhhY2tpZnlcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBncmFiSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE86IG1vcmUgY29uc2lzdGVudCBob3ZlciBzdHlsaW5nXHJcbiAgICBpZiAoIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHg4ODg4ODggKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIGdyb3VwLm9wZW4oKTtcclxuICAgIGVsc2UgZ3JvdXAuY2xvc2UoKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuXHJcbiAgZ3JvdXAub3BlbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKCFzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwICYmIGdyb3VwLmZvbGRlci5hY2NvcmRpb24pIHtcclxuICAgICAgZ3JvdXAuZm9sZGVyLmd1aUNoaWxkcmVuLmZpbHRlcihjPT5jLmlzRm9sZGVyICYmIGMgIT09IGdyb3VwKS5mb3JFYWNoKGM9PmMuY2xvc2UoKSk7XHJcbiAgICB9XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSBmYWxzZTtcclxuICAgIGFkZEltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuY2xvc2UgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IHRydWU7XHJcbiAgICByZW1vdmVJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWw6IGdyYWJiZXIgfSApO1xyXG4gIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIC8vbmI6IGlmIHRoZSBjb250cm9sIGlzIG5vdCB2aXNpYmxlIC8gYWN0aXZlLCB0aGVuIGl0IHdvbid0IGludGVyZmVyZS4uLiAgICBcclxuICAgIC8vYnV0IFwiaWYgKCFpc0RldGFjaGFibGUpXCIgaGVyZSBjYXVzZXMgcHJvYmxlbXMuXHJcbiAgICBcclxuICAgIC8vaGVhZGVySXRlbXMgc2hvdWxkIG5vdyBoYXZlIHRoZWlyIG93biB1cGRhdGVDb250cm9sIGFuZCBiZSBpbiBnbG9iYWxDb250cm9sbGVycyBsaXN0XHJcbiAgICAvL2hlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2gobyA9PiBvLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpKTtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICAvLydncmFiUmVsZWFzZWQnIGlzIGVtaXR0ZWQgb24gaW5wdXQuZXZlbnRzLi4uIHVzZWQgZm9yIG9ydGhvIG1vdXNlIGZpeEZvbGRlclBvc2l0aW9uXHJcbiAgXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IF9iZWluZ01vdmVkID0gZmFsc2U7XHJcbiAgLy9ncm91cC5oaXRzY2FuID0gWyBwYW5lbCwgZ3JhYmJlciwgZGV0YWNoQnV0dG9uIF07XHJcbiAgXHJcbiAgLy8vLy9FWFBFUklNRU5UQUwgRkVBVFVSRSwgQ1VSUkVOVExZIEhBUkRDT0RFRCBOT1QgVE8gSEFQUEVOXHJcbiAgLy9zdWItZm9sZGVycyB0aGF0IGFyZSBkZXRhY2hlZCB3aGlsZSBtb3ZpbmcgcmVtYWluIGF0dGFjaGVkIHRvIHBhcmVudCBvYmplY3QgKHRoZSBjb250cm9sbGVyIHRoYXQncyBtb3ZpbmcgdGhlbSlcclxuICAvLyYga2VwdCBpbiBzZW1pRGV0YWNoZWQgdW50aWwgYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIGF0IHdoaWNoIHBvaW50IHRoZXkgc2hpZnQgYXR0YWNobWVudCB0byBvbGRQYXJlbnRcclxuICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZ3JvdXAsIHtcclxuICAgIGhpdHNjYW46IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgLy9kb24ndCBuZWVkIHRvIGZpbHRlciB2aXNpYmxlIGhlcmUsIHRoaXMnbGwgYmUgZG9uZSBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKVxyXG4gICAgICAgIC8vKGltcGxlbWVudGF0aW9uIG5vdGUgMzEvNy8xOTsgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gaGVyZSBiZWluZyByZW1vdmVkIGFzIGVhY2ggaGVhZGVySXRlbVxyXG4gICAgICAgIC8vc2hvdWxkIG5vdyBiZSBjbG9zZXIgdG8gJ2Z1bGx5IGZsZWRnZWQnIGNvbnRyb2xsZXIpXHJcbiAgICAgICAgbGV0IGhpdHMgPSBbIHBhbmVsLCBncmFiYmVyIF07XHJcbiAgICAgICAgaWYgKGdyb3VwLm1vZGFsRWRpdG9yKSBoaXRzID0gaGl0cy5jb25jYXQoLi4uZ3JvdXAubW9kYWxFZGl0b3IuaGl0c2Nhbik7XHJcbiAgICAgICAgcmV0dXJuIGhpdHM7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBiZWluZ01vdmVkOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBfYmVpbmdNb3ZlZDtcclxuICAgICAgfSxcclxuICAgICAgc2V0OiAodmFsdWUpID0+IHtcclxuICAgICAgICBfYmVpbmdNb3ZlZCA9IHZhbHVlO1xyXG4gICAgICAgIGlmICghX2JlaW5nTW92ZWQpIHtcclxuICAgICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IGdyb3VwLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IGdyb3VwLnVzZXJEYXRhLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgLy9hc3NlcnRpb24uLi4gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIChhbmQgZG9lc24ndCBBRkFJQ1QpLlxyXG4gICAgICAgICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJIb3VzZWtlZXBpbmcgcHJvYmxlbSBpbiBkYXQuR1VJVlIuLi5cIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgLy9hcyB3ZWxsIGFzIHRoaXMgY3VycmVudGx5IGVuZGluZyB1cCB3aXRoIHdyb25nIHRyYW5zZm9ybSwgSSBhbHNvIGhhdmUgd3JvbmcgdHJhbnNmb3JtIGlmIEkgZHJhZyBmb2xkZXIgd2hpbGUgc2VtaURlYXRjaGVkLi4uXHJcbiAgICAgICAgICAgIC8vKiphbHRob3VnaCBpbiB0aGF0IGNhc2UsIGl0IHNoaWZ0cyBiYWNrIHRvIHdoZXJlIGl0IHNob3VsZCBiZSB3aGVuIGJ1dHRvbiBpcyByZWxlYXNlZCoqXHJcbiAgICAgICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBmb3IgKGxldCBrIGluIGFkZENvbnRyb2xsZXJGdW5jcykge1xyXG4gICAgZ3JvdXBba10gPSAoLi4uYXJncykgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sbGVyID0gYWRkQ29udHJvbGxlckZ1bmNzW2tdKC4uLmFyZ3MpO1xyXG4gICAgICBpZiAoIGNvbnRyb2xsZXIgKXtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sbGVyKCBjb250cm9sbGVyICk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXI7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbWFnZSgpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBZ0FBQUFFQUNBTUFBQUR5VGo1VkFBQUFqVkJNVkVWSGNFei8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyt1bUFjN0FBQUFMM1JTVGxNQVduSmZibnFEV0dSNGEyWmNZbkJSYWxSTGdINkVUblI4VUdoMlJvWkRYbGFIU1lvOFFIVTJMeVljRkF3Rm1tVVIxT0lBQUpGaFNVUkJWSGhldEwySldtdTdqalVLSVFra1FMcVp2Z01DWk8yelQvMzMvUi92U2tORGtqMlRyT2FyVmQ1VjZ4RFAzcEpsV2RLUTdxYVBiNit2cnc4dmorUFovdnZyeHovLy9QajYzcy9HNy9jUDJuMC9YWjZPcDZYOGZKSGZhRy8zajlxNVgvTEt0L3Qzdi9RZnVmUWsvWG91Ym9sei9EcTVMSDd5MW5MVmw5eGVINGIyOGppZG5jWnkvWk0wUCtXZmYvN3puLy84Kys5Ly9zRzVVenRhdjNIMWluSklYa2xlOFF2bjMrT1JPUDJvajVPUG16N2V2K201UERERnlYYW4vVXdld0JkODEyNFpEbjJvM2VUQkJtQ0tBelpRZmpZNzVXWC8vWSsvS2o2TG43Ny8vdUYzcjI0dkh5ZlA1YWU5Y1JSc2FINUkvNDh2ZVFxUDVLaDlYOXo4Nnd2bit3amhaZm1ZalR6bXlCZmxTT0J6NVYxbFhPOGVINTRtdzhueks4ZFRIc25QZXBidXB3ZnQxVnUrUHNsdmFaUHRzNzNGYVd4WGJwL2lVangvSTlTVWMzSExxWjJEaG50VlAwRVJmTjc5cTkxOCsvVDJ1RmxPOGV3OEJXK3F3NFJ6NVJaYk9UcDVmc0pqK2RUcUZaL2xsVEFxdUxjK0VtOGpBLzRkQS9TODljOTVraEVoOFpUWW04ZTNwKzBRVjl4UDVmNWZRalU4Vkx1ZUozaXRlOUNUOUxlem41SUQrS3A4dEIzRW1PZmRlZnNsNTgwUFkxV01Ea2FCTkZYcUg1VmplU1NHNUhqUmRUenErZUFNalArRUw4dkh5Q1N6RnpXNkxFOTZQcmp2N3VWcE11cDB1bHVNcDdJcHVXWGI3WFE2d3ljWnR0a1ViOTN0b0kyNjlySExLYThjYnAwVW5NMnZUeE05dC92ODhJaHplTjNrNlNWLzR0Ynlac2U5ZmQ0UWZkMkp2TzdtOGVHNVc1N3lEUmJBck1LNXVEdmVHQ1Q5UWI3SVYremFHTTcyeHhQdVBjTHBTczhqNTluenBCdWZNM3gyNG5IYXZ0b0RobklQNlNYVjhONjRhRFFrUFRsUnRuYjJzOTlFMzlSZmRSaWZycndrbmJ3N2JvL0poWGxMd2VsUG1jaVR4N1BUL2x2N1Q3UFo1aEhqbGtQeXRaZlJqNXVEUnJPVG5BOW12WDk0eGtCMGgzeXZ4ODFKQndJdnF2MTRVem4vK0swdmV5ZWpmZTROVnVDQURjWG1PejVyMTl0MTlmS3h2cG44SFBTMDdWWWorOWpITjdsU2ZuZmkwaCtjemNQT2VkQWJkSVNhNzI5UGNnN2F1ZnYwbGovdDFzdjlhYlpVM3B6SXc2U3Q5UHZHTWthZFFad2lBM0hrUFBuZTQ5eVJuanRZa2FSQ052QlF2dUpneHpFOFljQng3NEVOSGNZWnA2NzRPWU56aHh3ZDR1RnB1TktuajdZUGtBekhrNzRSSHJyUzk5cDFKdlpnT1FENnI3UVRCTVc4eFNKNlBQRlY0OU9YeGdDOHUxeWdoSk5SczFWd3RqSDY3M0Q2UktmVWNyYlgvdkYwS2greDdlNktVWk83Nnl5eG0yTWNwbE9jYjh3NnhFQ2NPenQ3V1E2RWRPc25EOERaT0IveTUwNUh1NWx6UEYxc3Zzb2NITXo3SU9JWVhIc2V6SnYrWXRIdk43MGRiaUVUZFR2YU5mMjhWSG5IMkg3WGEvcWc1cnN3eVc2K2tEYVhkMy9MbjQxOXluSThmWC9Yenp2MytvdW1ZQUQ1aVZQd3BpZVRsRElYeC9odU9kaHZRRkliMXBOTmtYTnYzdGRYbEsrUk1RUzlPZUQ5eFp4RFIvb0x6WnErZmM1NmNGYU9CdkgySmg2R3EvV2lQeGh0alM5T1N3d2VicktUSjloYnpuQTJKc3FnV2ZUWHUxR3NXSmpRR0VSOFZ2K1NBZVFDRWc3ZkJyNjdGL3B6R0RBYjc0VUYwQzlOUG5xbGQxcmpLOUNQZ1ZqM0Z4aUhCejFKK3ZmSG1USHJXaitzMTVPWEJRVlBlekpBbzRSUW1mSHk4bWlhR3hpZzF4emtQcmozN09oRUhNemxMZVhtOTNpV3Z2U0hqTmZpOElHUGxYZFhCdEE3TnNJQnloQ25ieFZBZVA2OGYraXZrd0hrc28rQ0FUNE8vYjVSVitmYjJ4dWUxbnpvbU9oOXlRQWZPT1ZOVlU1NVV4V3R5bCtRRHNLRTh5RHB0OHBEOEpDLzRvZU9JYjdtdE1TQXJ3OGZmTjVzekhuV2dQaU44clJ6TkliSmhKMWNJY3pmblVEU2dXZUVBUmFmL1lHODVnRWZSckg2Z0lteWFHU2tNYTd2MUEwd29mMnpkdlVTQURKL2NNQ25tNW56SFE0MGkvbEJCeFNhVlNqTklJY01xYnhvOUd1blRxYTV5aEpwVUtDVjQ4R3NCM0MzUEdVRUNlQ3lxaWZ2bzJPRDg0MWQ3eDR3L1E1enpxZ1RscGVKM3J0djBzNEd2VGtjbEtkazVIRUwrU0x3eFdDOU9BaFBnYzJPOGlVcTVGZjZmWHF0TU0rTC9oUldyQmhnQWNrbG42OUQrL1Q4aktmWlFJbE9XektBTktqcHk3MUpTaDZiNzRRSm5BRk03T0hqRm8zY2VkMHNEZzFGUHNlajZhL3hQQ291T3gyZ2VXOGdUYzkyamw3aVJoQVB3Z0R5aXJaT1kzbFJXc3Bqeit1K3lpblRySEJ6MEwrSDE1Y25ZQnBBTnhCTlRHZEN5Z2Fzcm5nQ1hzQUk5M0N2ZWdEMWFmMEVvVU1ERG9BYUU1cWVUSGFRZWppcyttM2N6dDFRb0lQakcva3c1ZTJ6dlJRVmEyYzlQWjhxMUE5VkFuSDdOV1RTZUFhK2hpeGE3NkR2UUhqZ3dsVkhsczY1VXB3SzNyWnJQSTdSbm1FRmVsQVNINVJIVks1UzU3bGdBQ3BHR0c5cGNvSU9sUHlsc3lnWlFKcnE5RkRvdnIrU0FZVE8vWkFBTHZibWg4TWNyeWl2dEZDQ3YrbU1oMndZREhiR0VQNXRNa0E3MWVsR25iTktPZ29NbjUrTlNKSERvbGxqblo1Q3FLMVdLMkdYaml5dWcvT3FneWY3WURjeXpMdDVJNU50YTJxZGI2TDRXUjBaYTJnVHdxcFVWanNxbzllckxqZGZNeXJIdTBidUlselF6SGRVaUYzNTB6dHBaNmZWcit1MFBEajZaL1pPdmZYNkRCM25QREpOSXhUclhkeElxQTJ1dkZNaUtCa2JJeU1tQ1RxNHVreU5BU0RFaDVNdVNBTUZDVi9aUGE4UEN3aEZiRGJHV0JmNklpekIzbE9WdU52SkpRUFlvSUJ3NTkxdXArTzZXOGtmcTY3Y09CZ0FQYTRVcTQ0SlhWWlhtTDVPUkZ0WnY2a1JVNnhpSWkzOEZYWHBnMFpwUXN2TzVCd2JkWVNxbmE3T0lya1FJdUNka3VUUTE1V2tUekhGSVJXZUdzckY4Z2RJdmVIU3NLUG1PZEFKQkxYdXRERWwra3l0V2I4QU9nWTFrRkJXengyN1pCbktzWTdBZVJjS2NmVHJBQTA2cTh0K1pjdGQ5RSs1eEsxMnZmVjhQb2NRZzdTaVlyM3VzYTE3U20yb3NuY1E1YWtuYmNBc1p4TUpXQU9UQVdUS1RHVFpkMllmbThLOE9EZ0R4QXpsa2p0ZFludCtsUUdFcUdRdGVkUGRTTnBBL29ETzR2Y1k2Q0ZSOTZuUXdmeGhPcTZRZ3dvRFZsQzc3ZUdnUXV4SkNkNC9VSCtkVVh6MTdmR21RNjR4NVhHWHRaQkhENE0vOVBBV041S242bHBuZkVFOThxQy9aS0FnQUpVQnFFNjQ1cmtlZEV5dG8wb2lyR0phODF6WE51Z1lwMXVYdUhMYzB4SHVka1VIdFVsVjlNc0FEVy8wajloUERsY1pOaGYrcFJCVFFUeDJ4VHBiTW9DK3JzOTQxOEZHL0duTHFGMzgyVjhQZEQ3cWpMV1ZoYU9iRExCdk1ZQnEwT3k1WkFCakxUMkdOVVRKUkozRjc5SDBEL29STHArUHRzdWxDSkJlREdxc083NFU2ZDVFS0ZzeGdPdWdKZzhhV2R5NktvVVhoNFZzWWtRRWNGSER1NXI4R2hWcm0vYnlsN0xIWW0yeVIvdWhUaHhNODV4VGp3N2RrRnJ6d2RYQTVjMUxpbkY1ZnRKTnlNSEd0SlNZMisydis2ZGM0aHA1YU5QZ0NUdW9kbU9uWWJSa2dOTTQxbTNjZy9MVXgrUjBzbm1CenhHaG9qelF0VGxaTVFDc2FadHB4UUNRQ2JjWllPWXpUb1VOcDdCZTVpKzcwSS80Q0lWdS81WFMvaFBUOERVWVlLc3NhM3NlRlJFcmFYcW5OZ05BeEtzQTZJeDBBalh6UnYrVysxRmJ6cmVYYVJTanl2SFJSeG9qUUwwZFUzTEtJRVB6MU9NMlpUQUlPbUNoTlpPSGIxNVNqc3ZMMDFWQ1B6Mzh1cC9FVXgwSUt1NWFuclNHdUlvdjYzbVRDVUlHMkZOdmNOMU9CZ2tyUUkvVGVrYTJiVDVVcUtqeWZPYVd0MkNBTHRUM3BWcUIvNEFCc1BaeHhSN2xqQ01EeUVmSVdnbUZqdm8xYUkzMTZlT1Q1OWFLaHkwZ3owTnF1Y21qZkx5UlVuOWd6UnZzZW1RQTQ1MWtnQkVrVXAram1pcUdYTVlWQU5ZUkcydVpFNTJ6YnJENG9rNW1VUTZoTmNkYWN2T1NXd3p3cC8xVERvL3U2VVlqbFRVNXB2eXlEaHVsbFREQWNSWkg4V1VjSkpjUk1MN2hlL3FReWJyVjRxNHBHQURxb2NvQUhmenU3elBBckpDdUhQaVNEUG9SNTE1dVpvL0h1S0JaSkZza0EwQTFVU2JVUnYyNlpnQ3NiaUxEUlFDb1pJSEJweVBYdXNXRHI2T0ttK2xkYnBraWY2cTRvdmFKWVVuTk0xNzBQazgvUTJ2R245QXhibDd5dHhnZ3gxTzA2UzEyUnJZZmVpOWtHeHRjQW52WkJuSUE1VExNb01mOGdWRzNTWWM3eVh3VW1mbUIyN3NPUUZLZFlRMTgxNm15MnExcDkvc2xBOFRxSXlSeHRiT3lBMno1T1RTK2dobUhtSVVZT3V1dEpjQWpuRVg0d1BzTENVQlZDT3ltVDRQQlIyWkt3emZDNjZqTVhnOEdLNTFEWGJuTHVGQ0xPVEQwV1BEVjVTU29GcHcwMUR0TmlYcDlsb2U0Y0wxMXlkOWpBUG5oMjdSWFhSdGlMdWFZSnYwaEFJUUJVb21pRGk2amlmSGQ2Z1FyMlVNTjZMSnkrWlFNN1VCTVJQZ08wN0dWT0pUUHYyQUFyajQ0R2twY1pRbk0wNFBVcHE3by8vTVp5UUI0ZjJ5UjNRdlNZZ0Q5QVhsdmlvRGVTcTBOemdCY1FxbnVETVRwQVI5aXNjMU0zUWdQZFkzZ2haUU5LZ1RSTVVWOE5HOWU4dGNZZ0kvR1RIS05Gbyt1bG9CMEVxa3BXRFFyNDB3eVFLM0dWUXdnRmltc1hHNWhsalVjQXlhNlJqS0FNa2lQUnFYanp4bmdXS3dCenJlUDQ1c01RQnRsaXhLbjFpNEFhckI3UWE0eHdNSkVlWCtnREtCUEdRMkNBZWdFVVVOUU9EMldabjNBQUswWGxPYkwzREhvU3pzVnpPUDFuQnFrWEpucXljMUwvaElEc0o5Y1Zhbkd0UktZVGlKaGdDL3NvMjh4d0I3RGk2ZXRkUU13ekJQSFZNblVydG9rQStqbWQwNGQ4MWNNY0VycEdpdkE4aVlEcUIwMVpERzNyZUNMVXJRK2dLTmNxN3ZOQUI4bSsvV0FFSVdhdld6VG4rRUdsUzI4T1QzQXgycDlzTTE1UG5WY0tVNHYrWlNhbWhCWlRvVmJsL3hsQm1CL0xkZnJiYUJUOFBoTENiQlA4NzVLeGQwcUYrVXhCZ0cvMVFOTFhVWldDU01GUENPL1lJQTA0czNubEl6VE5nT2tQa3FUYjYyTm1VbVdtNG1CU0xhdFd4UitMZ0gwREprZ0trZmtmSkFWMFF1d3JIVE9NQVQ1S3BQS1RzcWQydUxCcDF4K1pFMkYrcEsvendDL2V2VG5ncTNOQU8xVEIyN3UzY0NSaUcxdFg2V2k4TUM2SGwwajdnaGVBMWpBdXVqNXJWMkFxUFdoTXVPTWJXdG9KOE9TMzVhRmpvTmJjb0xHUXFLR2Q3SHdjczkrVFFjQUhXTUpPR01oR1lVaENBSkdiYXZpSkZnTmFKY1FoVDkxandXTkpjdWFBVzVQNTVzTThIOHZBZUN1djdVRURBb0dPRzM4VlBUR2tvOEYrVlM0K0xFeXduKzZxa1lYNHdUTFAzd2d2NzhOUE9iR1hob05iTHlDenFmZFdpYzJYcVhjTTNUSUdDU0czYVFQN1YzbWJqOE90UmtBekMzWHF6eWZpNUVCNmlkWVFvZnYzWll3SFlkSk4xOTZHVnZoejFnQjhKYXAzaFY2MzF0N0lVNzk5Tm9sZjVzQmJxc2ZWQUpYK0svVERTV1FOQXJGditKWmVKZ1JzUWNIUTlPSENXWUhNL3lsSlZDOW9LOS94QUJwMmpQL1VURzBuK0t4TTJNV1hibUZ4cWh0bmFhQWNHQi9MTXdDcXE5STRWQXhBRmZrK1E3bUdGa0t4Unc4bi9lNTJFOExaWEl5TEJqZ0ZPWnkwSXVibzNKOE9mQzNWWEh3OE0xTC9oWUQzTjZBSkYyR2FHNEdrRzBnM2RvaHQ1MkJmWmRsL2hlMHMvSkFMSTJ6dGk5QWxvdHhXNFA0K1RZUUVWcXZXKzFMcFQ3czFvYytEZWFtRzFBWkNVM21FTk54cGlKQWhKUkdBbnhBZjJkMHhtbFRNd0JtQ0hhQTZ2UFY4K0JZWEZQZFQ1dXZPazduUGoyWGNoZnUybkx2bVZzUCtmaUhWNWUyUDkyTTM3Z2tDYW9IWHArNkpPaWY5OTgyUVJSMGVVSmpBSWt3d01sMVhHcHVibXZoOU9JQ2dTQTVjNS83MW1XNXNVKzk3UTBjejRRQ054bmdYUTlyTExjOW5kdXJ3cUUwZDI4TjdvVTVCL29zMkRDU3VDWWlFZGV5bksvWFlheUdiYnBnZ1BSemlCOFYvdGdkL29jaG5VNDY5WG5JUWhMbVpzVFpob2NNKzF2Yk9wMFpEdk84eFlyQm96Zk5jVGN2TWZNN05KY0pydml3QmVSUCs2ZVhSa2lPYXlFQjJMYU00cnBEek1Rb2xlMTBEcHJCbDJhV2hRcXVMWnp0SEUwaEhtaFhNY0JqcmlacWFzTFlYV2NBT01MbFlVL1BwbDl4TmhkTVJIOHRYYVlrVHlveThtRFhHOFVpWVZib0hjSmczQUhQMVNzWWdQNWU1ZlZkSjZKOE95UEdmdEhySWF2T0FRS216MUNuTWVKc2xWNng2TVRhUmJ1eE9BOVQ4elJCNGdiNWN4cmtiMTZTbjNhVzk1SXJQa21NUCsySE1wUnVpTFc3SWE3NUFoamFlamQrdEx1NWY4M2Yzd1FWZm0vSlZTUFJqcytodUdCMHNWb3dHS0YyekNIbXlNYnVDZ04waDBwVklRaUhObGFBa2dIZzFSdHAwSVJKSXM0ZmZnUjFLN0FlMFFoZDRSbmVTcDJUWEwzYzBhVUdmSnI2MUVtdk45OE5OSzZBY2VFZVVhdXF6dWNpVmdZVmRJajdLRmFBTDFvbDVYMWM4OFJZNDJqTEphZnVMQnZhbTVkRVNKTXd0NFJ0NktVd2l2MXh2enk2ZEVUMlBhZ2x2WUZyL2dlYWdRRTBXcEFFaDJCZnBwd2NJVHlaQXk4WER5UVVBTzQ1eGdTcTFBMHhCZ1pZdWxJL3Q0bkxzYnRnQUFrQzBvZjUwSkxkYURtb3hkVWszRHJwbHRmV0RkRXEzQ0VjQU80WGlqWk83Rk9zWG02WW1DN0RWUzhzc0pZMmIvRHloZ3hoVEQyTUFCL3pYQm5zcmVjaVhIempxWmdBTUZOcW5vZEQyRC9IOTllZDhzdWJsMWhRNHdCQnJkUjd3SHQvMnIrOEZZcmdldFVpbWt2dHJ6dWhQd09DUnRTbzdza1IrblpRQ3NEUUloS2IrWndPK2dsZFo3dDBhWTVQaU0vbHlYMExNdVhZelZzTUlEMGgrbFk2NFlSb1pLS0tBUkM5Q3VoWkZmZUZLRmdxVjR4SDNWUDR6QnR3Y3VVa1dCem9uRURJSElOMUZ0QWxZTVBVT3dqOWlhb1JxU1kwUXZ5VE9aVElBT29INVRDZk5ENnhyWG5PWmJoTTgyeUY1ZlE5TEdkMjh4S0xJUkxUZ3hMdFlLRkNlUFlmOXMrdUJpTmxSRkRSa2dHTVpRNE5lVXZYMHd5Y2crU3k4Tis1K29MeDJ0Sk5xY0tRZU1yaGI0NEtlTFB5Y2tnckdVQmFVekRBQVVQTHhiV2xTTDY4M0NOMDJzMlZIcW5tRDI5WkZIWU5KSGZ0SnV6M2JhWmxlRFFtdWN4K2pUaVRJNHpaSlp6dlNaL1R6Slg5QUt3akF6VE4yaEFRMEowckRJenc4MW9QTW5oeFprZ2FCdVpKSEJVRDgwNDNMd0d3QVRibzNscWFCd3N1LzdpL0hZNjRBdjFWOG1HMmxxM2pTNENPNUR5QkNzQVdLQkVCRmpDMWtBOVRnZG5NaVNLYTBpd3o3NUcvaWZQRHlTdFJ4NHY5VFNNTkRKQS9Dd2FRd1ZnbnVNUVpJSVRFZUtQZ0NUS0F2em0xSFdscFVXQ1hqQWF4VytRSjZQbmNGakpnZDZqSUlEUnhiM2c0dndNMGJWbUMxSDQwcXJIbkRBeVVRVHFKZ294YmlUSUdZZ2E4UkVaaDFHRlVxOUFmRU0yYmx4QmpLQWRVN2NFVldQZit0UDhZQWNralUvUzZERWplUVBSVURXdVBNMERpR2lURUtrUll3L21GaCtrVzBJYU1PRUlmbDA0WEt5VWo5KzNOOUF2UHFwWDQySEZBaTU4cjVRZUx1UFo3QXNacTRRa3lmYWdtQ0ZjTEtvU0xTNzQ1QTZNanVoa25vTXQxK2oyQlpGM2lHY0dqSHJLdk1mTGRpRG9IOTBxVE5leGtRbFFhZ1R0SG14QjZ1cUlJRFUyQnRnOGNMRzhFbks0TW9FTlYvUUFsaVNBWWJsNWloSHN5d0NxdUFKMy91RCsvVDQ0QXVJc0hFSDlidFdkQ0srOHdqM3VKYklLQ2F6QWxxcGIyc0dMSVFpdmI2bThpcUk0VnNMamJCWGZqbkJIK3c0QzJmaHFrVDFwZ2ZhbGRvUk1iQlFBQ0FoWWFpSWI2MTRtcmo0d0k0TDVHT2V2Q2R6OWJYTGIwQ1dnSDZPQ25aN1FuNGs3MmNteXZEY0JJSElSTVJRL1dCV21CZy83bXVid1Zid1RZUEc4aVpCRHNqaDNSSndqOXIxOEMraE9RcndlMDRaMFVNQ0x0V3YvUHp2ZnZRM3NBbEoraUIzM1pIb2pvdmNPa1hISG5yS1A5SFFncHpNSEhKVjdpTFljTWNCYU9sUDQyU1VsNE1qZ0FlQi9ja0tQSkFhMS9JbjBBQm9NY3JHVDR4aElhSk1EQUhiOUtRRHlvb0ZJMmYrblQ5K3d5aXM0QWx5VlVubjBuYTdPbDVnZDRlWHVRWnNpenBmUXRaL0tQdEJrK1ZnNUI5MFFITElIYTgyS1pFTDZQZnVxU3Q1Sm11Z3I2bC9ydlJnL2d5TDFjaGU2TlB1VFV1bVFEOUt0TzNlWDBYUTVvd3p2Sm1adk5XSTdYL1dPOTRNcjVlRTg1dXBuaENYTGtYdHI3Vkg3TFVBamphVi9aeUVvLzdyQW9rZjZuSTRqSVJXem9jeEJjbFVObWdMWWpSd29vUm1uNldyaVkrUmN3NWt1T3BnOW8rVk1KdCtSZzNJczBzTEVUd0xoMzZoWG9Td0RsaS93SEtoQTJpVi95MmVEeXBYMmpxZzFqZzh0cTJnanRzaEZheXBrOEpQKzhXNXR1OU1CVU85RWw1MjJtUElJZTlMTUJVWXV4eHhIOWQ4cGJRVmZCMEQveTN2NFEvZmZSbjdhY3lkVit3UHFJNnowYVoyckRBTS80WXpyV2ZtdnY2QUJhbHVmN0FYMS9IQVdqQ3l0TWRYd2UzMjBzeHRiSHdaQ1JseGJvWUN4S1hJd3dCYjhpMzBMT1Fkd3loOHlnNnh3cFBjQnZNdzdRY1NoSElLNmIrU1h4NVNjT2hwTEVQMDZlSGtQSEMzWFlnNWlRYWc2Y0xubzRndmo5NkwyZ09xWU4yQ01QWVVadWxtUVNuVWRrT3BIV004eFd1VUI3ck4rNFhESDFrTDdXcC8rcWVEZHhjRHBSVXJ6b1ZORUQyby9GUUg2aTAwUUlNUEh5VU8zQmllOGc2UkhMTjlxOXJidjRHeEp1TnJNYm9VTmYwZFloN1IrSEhIamhQSk9qdUJwTEFPY0UreWcwd1NWNzVnZllUUFU3TUNReGtabHg1WTFpY0VPNWhnYVJSVXBMSHk3bmRNWCtDQytHazBQVVBVNTVIUzdod05vemVTcjY5T05BU25iQ1VVRFJzVTl4YnJ5cXR4cEhEK0Q5dWRJOUlJbU1LZGdpODdtVVlvSElXK3l0Z2RkZjlYd3NhQS8zNWNxdlBWaU80RHF4MllHQlJCOHY0RHAxV21JdThRcHFIWEV5OUFGR1lwb21nTXRUUjdBMTlYa3JEZk5PbEduOE1DUXliNFFPWm4zNWFtc0NPUDhKcXF2Y1NwVWZoZGErTVU5TTVnalpFbEhERENFMlg2Y2J6azBpMWlubTFNVTd6UW04TnhuQmREUnlWaXBJZUduVEJFMUg0bExPb2REMUhWdHQ0T000R2xDLy9WeDBjU0hTVG15WmN0Uk9Cak9VdHJYN0FZSm5LcDdDRUtXSHVxNm5jdGxTOFQ5S3cvNGZsejhqb1FzUGZadSt3M0daUU5FM215YXNncWJMNmdxSlFjT29NOWtLK3Z3QzZFN21OeDlxRjNZUmVBWk90cDhUVTJ2VGNMMTFyZHBJQ2pmb2MzZUVXR1RxeS9yMzFtMGF1SkgweEJPL25iMjRGNWpZVVhtc0dmTjBHNGloTUlOVzVBZ2hwdTZMT1lKTW81bHh1cjNvcStEbTFqMXp3Zk5HQlVpb3o0d3RwaXpFRm9rbUV1a0ZUUzFwQTc1d1FyOFRHR01XbXI5dndPMDcwSmVxaU00bmpxY0JLRE81Q29GMkRzR3pwQzF2OENQNmJuZllqZHdwK2x5bWNyQlVNVHhFcUJFUjRicWRIaWxPdFVPRE5QMElaOTM4WTY5TElLTFpLYmJXSnp2WXM0ZlhCbTVSRHVnbTltelB3TW40aWJ2RGd1YWZadnZxYzRkTVJMUTUwUWdJYzVPL2FkV2tmVVd3Q21GMjRiZzloelZnSkVlSmN2VmJxWWxnMUxFcklrZklxa3R6cHRMLzN6dVFwWmh1NUFDYnhwZzV6NjBaL285eURsUDI4S045MDU2c1krU0J3Y09zdFhzdURjaWNjaVlTR0FLUnRvTXpUaVVIV0lZTmppZGV5bE1OQUphaXdUNjBlMnVQM29uWWVNdUxzaHFnOTlWaCtYYnVEbVlpT1dRUkp0aE9FeEd1YmtjMVNUR1NESEVLQ2pLY2kxMVJVS3NZTk13QUdpU2tiN0E2OStRdy9jTkhqeDF1NW5wRjA0T1hBaWZiei9PNllheXNmUm90YTNONWNPR05YcTM3VldvTjkydHMzQnlydHcvZksrMkJBN2hOQnl1R05nVm9BYkh0OGh5N2dzRUM3dEN3ZEViLy92ZE9SVGt0VkpSb1JtallPdElzNGhsa3NHNlEvcDRIWnk3TjBmcWh3aGxBU283d25XWlVEcEU1eGZyQkdMcG5OdXRoWTRFY1dPSk50SFIwUEFkbVNUVm5lcjlQV01wVUZ3REVLdmJuaERBcy9aVDF1YlFTNjJlUURtb1VIcXdYSHE3Q0xTdlNuNmlEc0dFb2pibXhYd2xjWlZRRlZxSTZFQ0N4SURPVFdIa0ZETmxDMWN4UUF0KzhJempoZEJSWGdUVFkwbUc3bkY0SituRUdvT0c5UDI4OFFHcXZYNVVlQVhFdnlWZlFnYzJ6RVJzamgrMEtEMjVQbCtZUExBRkdTSjl1R093dzYrQnJNWTBwdldRSzRDb2s3UU43QkF6T29FRGZ1WW16dkNZTHVIbGVkUERLaERCTU5PTUljdEQvc0VDMDJaTXVRNURtU0lBQlh4ck14alpxN3JXd3RERDR6WVFONGJYUkJDS2ZDWUNXZC9KNDhqNjhaK1JXTEZNZWppRE91UVh5V2tBRk16dFR4UUEwT1hrUWZac0JvQUhBaFlJcjlCa1R2clg5eEJFTWZmaHM2VjNyMHhOMm13RVlmVmVuUmptRjMrV2piL2tNM0Z1MU1RWll5NzNsR1F2UHBXRjVWQXBRSFVUQUhSUDFjYnBSSENIYjFZOElHRzcwd01SemdURVZJak5TUlhvZmswdXArMDBpcndrVk9XcC9LaktzSDRoUzZIOWRPSi9jQTJtRHdUd2F4Z0h1ZnRaTHdUcUlva0Yyby9Bak1EeGNCTWxLQkVNNHFiL2lNeFp6OWREcEVlSmVxV25CRk40elA1S3BZTFE3RjB2QWlrYm5HMHNBdmNQU3RSYjh4RTRkUGFzMGZ1T25Ic0hKSHJXaGVQdWRSajFTcVAwT0F3eDZ3UUNleVlOUkFYTkVUOXBRNkNQZ0VXb1duekk1cWRtNFF6MUdoZ3h3UExXbUcyR2pLUUdVZWYzZWV6SUFNdllvMkRMUysyQnZrWWJjTGhHNEhWdEFpb1F3Wjh1UVF6VVE1NCtRYVFmL3dMZndHTkpjSmFVbHgvSkZnUXNkbDdtbTV4bnVUSlVjblFkc09xallIam9EYUZhSnlEQUhvcm1tQmJWQlZDaGM2OUhjT0pWS1lPRjJnb2JOdmtFb2dmNklzcDBKU0ZhK2tKL0NSQkQxVlJBNzhoU1FKRDlqQUxqemRIeWFQdkV6aVpSRytMUkd1cHVybklsaXRvamtsc0M1QlVOZVoxVWVBT2pmMkFiNkNnbEM2bURIQ21GQ25zbWxsRElVSEV6Ym1YNDc1a0Z5ckRaMVArZ0dndzUwWFhDNEo0UkIvODdWUUh3R2h0T1NyVkFUWnhLVUhZNkFBWmg0emJIdGo0a0JneCtCTzY2VnpBV045NlNYRW9HUFBqMGxHbHduYzZkYlMzTmt6Um5xSG9vcUdCa0FlZ1MyZ1NwM25BRzREUnlaeTl1M2dTNWtEdGtZaDVweFV4M0xKMG84SktnbDhqQUQzRzh6QU5Ra0tJRk5zL1lQTG1NUGtYbXNiNkU2eGkrbVVCNGFDQmdMWTFpMlVqOUFtb01CeXVuV0p4aUNpVDh4cTVoR3pPRmtzUWN3WGhaeWVwYXRZekFGQmhxcXcxa0czZFEwSm9USjFrc2NRdEh3L1hUdDZZR0JKOGprR0JQWFZQMVFEMmtFU2Vqb1U3ZXkzVHNYNktHRzRTTHl6ZlU1anZJblpIQ2sycWp4SEUrdmJUQ0xCOUY5QXBwaVNyTXpnRHpYVzBaTzVnMllZRE9pbVI0d2lSMkJjcE1CcU82ZkI1QTZaT0NNa0JrQlFMTVFyU0x3TUZpY2V6b05vSzNBcVpjb0hNWlo3NU1CY3JwbFhzc2ZxZ1JFWXIzMU9zRWsvMEFGQ0xCMjZwWGZzU3pJQkVEV0x3dU9XNWRncUdqOVpJQis5akxFRkZxWUhGQ0VDZzAzTllJcGYzQXpRWVhrY05Cb3I2WVBOWk83ZHhqcGlEL0lsMDBHc05pOFl2akxtN2ZSVEFGUU9lU0hsL0NxQVJ1MzhKdFdYaHlleUd0QlJDZmNUUVlnYjh0WHFXempFbGFBQUxBUU53RUNHSHR1MTU2MmlHNmVWZW1mekRZREJwaVYweTB6MjFvT1c0L0ZheXJWUVE0bFdQdHpFVExGRmNOZTMyYVZMMUtRNm1TQUpsb3lnSncrOTJZTW9LNjlTUHRnNmFsL3lnQWUzTHpRREhDck0zVXJHaWNzTmdTU1BKWGdnZ0Urc1gvNlBRYllaNWFLakJJK2x2aTZFWm9iOFpZdE1NU21obXdSdmZGekJnaDFmNkZyT3BYWUFvSFVoUWtnTUNkdTNKZ2pGVlZHUkpiWU9qME50S1FTK0lRRVdHQkxURGZMZTgyOFhIR0lxZ01ZSU1IYS9RVHFhaThKZ1RVREFvRERsQmdOTm9zWmlld08wVXRyU1J4ZzB0NzlUeGtnUDA3SUR0MHFvOFlyb2pIZXZWd0NGbVRYMzJJQUg1RUtLMXd4d0dUTEJ0MjB6UURqcTJpeFpJREY0cElCTWxYbjJrS0E2N3d5dWltUnpod041blk5SURTMDd3SW1NWTRwdVlRQlZKYkQ3S1Z6bWZxQkhlSTBydzhsYXlSWU95S0tUOTl1UTJWT1Vnb0FMRG5KQUJZVFFpTngwcm5MTmlRT0pBNlFpajlsQUJ5TVhIR2llWE9NUWJTQU9CL214ZGNuQXpCQSsvY1lnQ1BDTEJXRXM1UXZsOGdMTlp6OElRUDBwRjB5QUhoYmQ3eXJjd2o2dksrT3NvalRCUFFGd3lBWGxVZGd3aC9FWVVoYTNtRXVPeVRHOUFOM0ZkdzhCQlV3d2RyOXpObkZURzVPZUdxcGVGcUowbUlUV1ZOT2RPK0Z3Rzh6d1BmUEdTQWtLOGhMdlF0RFdhY1dLYjYrb0EzMGxOSHZNTUMra0tPWk1hb1NUMngwSDF4ZEFnWTNBTU0wcTE5bEFOMVlkbXhFV3d6UTZjRSttQXdBVGlLOE5qbEcxc25hRkdEUXNLOENvcXYvbDY2Q0g3Y1BRV3pFcHFKSmJZamVzaUVwYjRLWURvcGtnQ0VhZGxEalNnS2s3K2hQR1lDWUpLNkNMd1RNdVNzbE5XWitmWXMyUGRNWWZvTUJUblhHb0lDbTVNdlZ5SXRMQnZBVDhkdmZLNWVBcHJsY0FxQURybGFtMU5VTW9DKzhtNnU5SmNWS3NjK1lETXN4akpkUGtmMGxPa0JpTGhKMGo3VG5OdzlSQlNTSzlKeEFYUWJuaFlXQ0EvdFVwK3hiV1RQcmNxVURoTy9vanhuZ0VxNmRlS0NTYUdWbWlhUU5sTWRCNTljTVVBRlV5Zy8zbHp1MGtSZHRCdUJheFQwN1lKbDgwZHZid1BjM0F2U1I2NU5Ea3JzQVMzV2FYMTl1WXFzeExHZHQ1QXIyN1J4NncxV0FPT25iaHlEcFhacnd5VzU0eFZNNFJyWUpuZFFKdTlaczlsYnRYUURINlk4WjRIYjZqYVd0VnBHT3p2ZkZCUU53cy9vYkRGQ01DSWJjVmNvTE84Qk5Cb0Q1a1JEUkovalNmSzBpQTF5VkFJWlp4TjA1SkNuVjRBUUsxR2JGQUlScXVoNVZBVUVKRERtV3FVS1RwZUZHdlhVSWd2NHQ5SW55aGhRQjlCR3BVS0k1eGhuZzg4RFdyeGpnZzIzeGY4QUFtWWltU2tpNUxHaGpFTTdmWUlBVWZDcVQ4MTc1Y3Q0NjE1Y0E1SnZ4ZmZJUU96aXFWN2NaSUZETDVSSVFsc0E1Tm9hZHpHTDdub3NNTGd3bDBEZDFwY2krMit2aVREN2h2NXpMWHpjUGNYZmdpZUZkMm5vcEhVK1dhZ1pSb21sQ0F2UzkxUktnWWZ0Zk1VQ2RmaU1NcVpucVVGcCtmVUVieXlzeitDVUQrSWg4TWt0RmZIaStYSVc4dUdRQUtxUTBXTWk2M3VoNy9kd1paRExERW96dXlBQUoydXdyYmxjVHdic3ZJSFFBMGJib3VhYXZGbFNvUFVMSUR4Q3BCRWhSaHVyY1BsU3FWVEttWkE1b3lSUWNtVkpsYUlDVFhBSUdiTHRhQjJDamUrMXZLb0hUbUN0b3dja0ZiYnJZdUs1L3pRQWNFWWRaZnNTOThwSUNlYkU1dFJtQWZrUGJwY21NbnN2L2NwQnU2Z0NaczZQYnpWM0EySEdZQWdXR056QlFtdE93ME82WTFpOUJ6UmNlSWM4UGdOT1VhR2srT2Q0K1ZJQzFyWDNrSG9FaUFJc2I1aG9tUWpBQTVEQWFZcllLT3NNNllPbW1OcWUvdUExMHkwMHNNNS84K3BJMnlESFVYRExBc1BZRmNFUnlxZjl3bGJMVXZOZ1FZTnBtQUlmZUtZVDNzRkNVNkJ3WXdaOUxBRTdEbFNLcEMzdmZGalFnUmpoUW1oeDk3YUhoS0VITkZ4Nmh1Mkl1YXl2NFpYL3pVS3FBMmVJcHJJeVNYNDNJdkpJQnVsdHIrdEVsbmJVOUkwVHlKeExnencxQkVRclRzSVhjTG1oalM5YmNHU0ExZFFGWkZXbGcyMWtxVXFVc2VNYWJBWGJiREtCR1M1cjJ5VUp6WWhkL3BRTXMxTW14V0hDejV3NmZoVWNFQlVyVHpQSGtNTG1xQWpWSEZoR0s3THVZeXh5ZHpNNTl1bjBvV2NOYnZVZTQrR284K1JlR0lLVytSVFlMeTl4a2dEODNCU2Nicy9VOUkxWHhscWExSHVpTGdxWk9WN3N2cjNoTzdpYzdhRGtyTWdHUU4rUDlpNkdJV0Q2cjZxSnBzQnB6ZVA5cUYzRDRBQmlja2cwamgzSW5qaEZXK3JjcVZ2U0pIWStJWFNkcUtGdDNGM001ZGphejI0ZEt0UXF0TWdYOGtnSFlXcVpnYTEwNlVmNlFBYkRWdStvTUNqYm1neU9wNkZ1VnBoMjVZejQveVFCVWxSWUl0c2xVWldXV2lvbTA4T3ZtM21zZERVUzlaSURFVDQ1R3FPS2pkUVB3a2IreUE4d2JqWE5ZdTc4TUE2U0JKbzRSOXZLbHAyVUJFay9zK0RkRFBNTGdDRkxlZVE3ek9WdXhzN2w5aUFNRTVZQlZuMUt2L0NVRG9Mbk5wMUFDZC9LZk5IdkVIekxBYVhQTEhaeEVRM0FhTjZoWXNNcTN0QkJHWjRDc3ZHSExLOFBTTUNKMHA2R2NHejg4MytmajRLMjV3UUJmQWVGVm5NSndKSTloeW9XYlVjRUlocElnZE9qSVovckw4STVLK201Z2hJblNQUWFIc1RTcWw0aWpkNGVSL0taczNYblZqbDdNNVVpSWZmc1FkNU1IcnVmUWl6TFM2QmNNRUEwSHEyMWdaaEw0VXdiWUwyOEZoS1JsZkRUUmlzcEZERTZaRXM5TUY1NXZqUWg1THE5ZWU0ZUNqMUV6ekZKUmhxZzEvV3cxQXhSRldsaFg4QVgxcTFHbWJvQVlqOXU0QU11MUJWakl5R2dIWlorMU1haDBFZ0ZyY0pma01FQ0p2QzYwMmZDSkFMQWF5SGVNYnVrUEx1Ynk5UFlocWxYUWdCOGVVc1JpRGZnRkEzampRUWFFWktzWjRPT0NBUllsQTJUVzIrc2hZYkhYYXhxWDFQeVZtVFhYU0hadjY2dzBNRUNFVk9UeXlyMGVnOUlvSmpKRXpmUE1aclBZdlFnOERBRkovS1JoRlI4MDlZSWx3dm9KTWdnMTBBa1ZDOXB0RkJZRURGeUJLZGEyZHhBOGtkSEFMU1BOQXFLOGlBRWl2OXdWMUpOR3V0S2dkUE1RckM0ZUpHSVJVbEZNckdDQXBybGdnQ3I0S3hoZ1hqWm1aK1FCai9vdmtvU2t5QzJ5M21adUNxd2prYmdpMXp3UXJmNzE0Z1dHdGxsc0NPdEdKdm5nOGdxOEJKTlFlTUVWaUFuK2lrelQyVmhaaWFRa2FvdGVOa1hWTGNjS2lRVWVFRUw2SjloQUJhb1FWeDF3eTVuaU4wbDViVURBYmd3SnUwOE9VNzdBNFNYd1BzUTJvMGtYTW9TTUJwVGZiK21iUUxqbXp3NXRSMUUrREVzRmY0RlVsNXJHa2U1amRHVnpRcTdxWHVnQUd6K3dxbFB6NVlEekJ3K25ib1hSanNRVlJvQ1FtNW51Z3lLZE5kaGZIdk52S3pwYnB1QWdCcFJKS0x6Z2lvaUovS1UvUUxGc1Zpc3VTZmw2ejBBTDRpZFBRTVhjT3g3NE5qb1lVTmtwNGQ4RW8wK3piWURpMDV2WkthQXNPT3lkZ0doSENIOTlFZHRNSUxReUFHTTRMV01sZExzSTRyeDl5Q084d2VRWkNaN0pvbkxVbjBBZTIzODhTZXh0L21jSEFYcUxSdEtvZHlVT2JPMnVtU1NFQXg0L2NOaDFLMHBLRnQrbFNrejhLZ1RDZmY3QzJpb05BSVg0R3dFeFRQSlJwT0RZS0wyWWhFSTZ5Q1FQL2dzLzZ2WVMrWDg4UXdKeEZXQUJURWFkbko0UkFISWJUZWRyNWdjQWthWEhFa0FzMGFiRWhDTVhCcktQSElGenp1Y2U0L1c0RWtTYUlnNEhTNlpMN2VDY1orTnExajNlUGpSOUpDWVlVUzlnL3ZqbEVOcFMwOURtUU9Kc1cwOHhYbmN6YmFNZmdIZ014SFlNZi9WRHg1VzZsYTF2VEZ3aC9VeGs0Y0JYcm9EOHBRTkpLVm9PcWd6enljaVJLVGc0L0NsWGdYVjdqMStRdVhXYmNpYnlBT0xhQ0syemVFdTlIRTJ1UndvaFpCYnhIc3NRa20vRkJkNlIxOEdzS3RtWnR3N01iN0JvQXJkVlBobGlHdkxIZE9WaHpyTWphZ2Y3UEt0bjNmdnRRODVzV0l6QWVtLzhaU3ROanJxdFZtaVhjNFFweGltUzJDaWI5bkZBS09sSkNxWXhZTEtBZW82UXFTSFdNamNGWnhIR0gyeVJ1VGlVYXY0TGRTM3RoME1YcFRudHBBTVRsTXVyejhlbFo1dzRGY3VzWlFmQ0N2enU5SHJIV3F4VFRqNDdTQWdCWUJMQWxxeVNoNW5od0h1UTE4QkpqVmtCZERZQ05ZVTB1VnlwZHVlNWxkekV2aVJ3VzlmSVlSWUpJcVEyVjlyOVhTYmtzWVVuZjQxdkh5SlhrOG5qbDZmektFZGRwbzRuVWJtWUk5Qk1aampPbHRySk53NlFPcG1rZ0FxTmovdzd0UnRFc0RFM1JUbHB3QUZCQTBEY0FWN21vcG01S3BDNUkxbjB4VHBPTXl5dlBFQXBqb3dUSm1JOWJSR1R2U0ZGQ1AwQUwyQk1ScVFIQ1UvMnBrVGtJbU5Ecm1LR2llWjh4UnNVcEhaZjY1Y2oxRU5oUmVJS1Q1VG9UcllOODk0T2tCSTdpZ1FSVXB1Njl2Nk9XRTRtUWFsbVhYRm9WazNJSW1HSTdpNmdjUEJrYmptL2M1ekhkYUtRSFBRcDhoM2xtWFdlRUI2NFRGSWdMWlppTG5lR1dhWnVkVEZwa2dZWVZhUXY0S0taMlMzZzRrcEY3Z2tkMzBjN2VlWUhuZ3c5Znp4K015blZNOU94UGJnU3Azb2p1MEJDWWxKSVFrOTZKamQyZzIzcXNhQS9NeHl3RUhXUzJ2MHo4bXpmVVBtVzFWTFgwSFllYm5abXZvWXRPQ3BqNHBubTkvTE1BM2VSa0lkWmVueldiZXgzSk9rcFo2b21INHA4SVpGV3luT3BqUEdWSE9hVUhFYVBtU2NJOFFraFovcXAwenBQaUIrWVZVa0s1RUFxNDh4MllndXJhZGNYaythWU5OaDZGV3B0ZTh2Y1d1aVp5OWpLNmZqejdVeTU1SUZBejMvaGF1NENtWEJDMVN1NVgrUnVCQW1KU2dNSkxiSEZrZE9EK1ExeUo3dDNUTHoyZEFFNUlxa2RhTWhNTzYxS0hWemFTc3RaK29RWGlnMkFGY3d6Z2NQekRVaWx4UU5rbHA2d0RrU0NIOCtOUmtrNlk5b2U1dml5RlVrSG5RQWlEaVU1UUllWjVwbmNoVEVqUitvZ09oKzA4UjUxbmhCdDVTMFlXNUxiY1RrVmhLSnFyV2t0TGlaTlFRTkdBMy9USUFJRHhqbDNtb1lpTjFBUHA2dXYxVTliSEFqMFBQbHNwSmtvbUhDQ00zclhxN0xjSjJpVWlTMkVWc3loUUpUNFlrNEdpRlRDaHFuRms1elVFTml1eUZRTTRDUnFNd0RMeDRqdm9Ja3FQMHdaT3o4UXpxMWk1MDZrRVZYMFRPaHo0b1JtZGtSU3c2Uld5c3laNVF2SktiSUMzcE15NEllMGJ6ZlFCdDdEZkRibjBFR1ljZWlIMzZQTUV3SkNFYnlPVy9nMVlaRERaeFdiYTZnQXJVbWozMElhWUtDWkFJV3ZKdjFwYTFxNnBaYzRlNllYMmRERTJQUVRQYy9vZDFSU1lzSUp6bWhZajdQT3hUSks2eGtOb1BmWTlHSitBNTRwaWc1WUFsSTdVTnBWeFpOSXJWVXdRSkxvZ2dHZWtQbEVIR05nVVppM0hMbUpQQXlBTFh4cGhwRFNRekF4SEdrbU1ScHVTWTN5TE9KcjZWL3dLZEtiRzI2TmVRVHNDQkpDQk9LTDcrNDZ5TWFTQURvTUZVQms1QW5oMnhXM1NDL0IvaHFoc1A2ZlZPRjhyQ2JORWttcEFOeEZlQUJGT0JlQUxnTm5LQUYwMEpEVmd0UFZrejh4Z1VXQm5qOXQzTWw4Y0t0LzVuMkFrNS9SOE5DNlJwSFl3a1FzMVd2bU4raDBzUi9HQ3RJRkhIN2RaMTZOOTVJQk1yVldNb0NUU0RyYlN3QUUxR3BYZVFRTnVVa3p0VkgxVG1hT3c3d2NyVFZHTW9aUng0QmFrTWhtekF2N25wSTUwa2pJd0pGMndJUHhFS2k2TE9VY2dpUXJsbGFWUTBVaTVtUGtDYUY4aXVnaWpHRGVZdWxCVmRyRnl2eklRQVl0WHBlb0tpSjBpcVdhc0JsYnhKY25wVDl2Y3Vpdm1TYzVTYzNwYW1sNXlSWkNLcURuVFpBNTZQZHcwRUJOeUJvUDBZTUhtUVdqQVE5L2dseEhZZ3ZicE1jR0cza3NWbHdlc1VGWG9MUVdNb01SWFFheUhLNU1yWlVNY0FhSjBObVdBSkNuZzNrVkUyQVN3RmtXYStmZGZ3cVlWOU1RVzBiL3M5cnJlejdHU2d0Q0Y0eVpIeE1pd0hGckdxVlNJQVJPU0pLbEF0QzYyNlU4WVk2eFBSK3pJRm1lRUsrandDektsS0hrTFUvSEFwbzRvYUF5eXF4a1J0dUNBUXpkTFBFQjZxcnZNUVdPcGR2R3dnQ3ZJVmtjVmpMalpOYVJRSUxDU0VXeGMxK3Q1WGx5UXptVndQQTZud0hIWVlnMlpXYkhIQ01Vc1pGRFFlZWl1M2ZCWjJZTDUvOG9BK1Z3RmFtMWdnRjZTZ3p4VldGZ2FnYXdaQW9BbEI0aUtxaU9uVFpzWUFuellrbklhVVNnZkh4Z1BvWTZ6VXdTRUZCY0JHRDM5UUlESURYekNKZ3QwbzlRQnBVTVVCbHNHZVRNUENIdVE2Sm1rTlVMOUprcWNqaFYrNnJkNGhaTTFNaWMxc2tBdGh2cWVZa0cxZ2ZEYlpXQ3VoWjFxTnVmNkhVZDBkOG5pazdFUldtWDdxY1o3VzNwMXhtRTJtSFZ6RVRlVGpwOHRZUjdRYnk2aU9WS2pPaEkvU1BEME14SlBzU0x0UUxjUjd0SXJSVU0wS2h6RmNNbHZGSXhRTlN0VVVBcFZpVFlESzR5QUtkMkZrWGlMN2w0M2hEYldTRGpJVFl4UnpuellxL1NXNVY1QkN6anNFSnVvUnBnbmFzWUFCNnlyV1hNSndOZ21BZVJqNFU3UU54Y0l5ZE5mcnRhUGxvaFFValhVWmpZN1kyZ0xXWnBLeTcwVnFRbDRpTXpLRXZhaXJvOWQyR20ySWNhbjBVZXNKaGFyMm5Ud041N21ycHBnVVlDdzZBNzRWNlErRTNUTGlJTVFyWWprWVdRbHdpSGM4K0RYRUlDOUJlTkJqblRRMWN4UUZhdUVqMGdjamhjWTRBQzVyWGdXUjd2TlIrZ0VMQ2ozRUtuSDdDV1JKVGFRZTlxQnpQVWlsc29idXM0eWp0ZGZoOHFoS0IxbXpaNkltOTFMRXVNWldSU0lGNFYyMFJDWmIyTTlScU1BV0dFdFlJTDE3eFhGUXRGQVNkNVdvNkRsN1VvazhtTWFUdURZdDhQTmQ3M1p1aEZaRWlLVWhTWGd1V2xqdW1WUmNmelYyYnY5ZnJNdjgwQVowV3c4dkdPc1VHYXFaN0h3dGNNNEFzU0NuNUh0TVkxQmtpWUZ6bXBLSTNmWFZWbEFaRk9jaUtkaUtIZzl1REVaZFlETWM1TUdMV2tHcEtqL0ZUdWEzcHpkRE85bUZjYTBYdGs0ZlpXZENOdlVWYk1FWnA0clJOcTRYMlQ5YzRBbVpBSGdhTE1sUkFaRnlSMktOSzBSZFc0QlFzeG9UZVVlL1JTaEpBQkZzQUhYREtBMlozQXJuK05BWlQrdmcxTjYwQ255MWo0TmdQa2dyUU5kTkQyS2dNVU1DOENQOEFBaGlpckdNRFR5V0ZyTVJqNDltREpaZGFHYzRGZFhCUTJPck5iZGUwNlMwQWYzUTIxdUhHUkJDTUt0MDk5eVdFdkNSWDZJc3I3SGJnQ01tRFhGaTdOd2RncTVBdHAyelN0akF2ejlUeWlSeVBqelJxeHVpdytwV01ENVI2OW40VW9IY1FTRUF4Z2haUTF2dERCcjMrTEFRcjZsM2FBTHU1Nmd3RW9CbDhuN0w3QkFBbnpZcnhYTUlBczA1bE9ZbWFZUDZKVXJTSVZqRW1iV0dhYk5TckxzcmIwZTZnaEhPVXlUOGduNnJZMWg4Z2U0V2daNmMzaXo0U1lMWkFhUTNzUnk0dGVWRjFVUUl6SHFJUVdEckhZa0FFd3FvUXVic01BRmV2MVlLY0k5cXBvTHFwS2lyQUk2NXV2am1mRGoyWFFhQ2lCS1phSm9aYlJKUGoxcnpHQURnME5rWlVsOERjWWdOMDNHYUN0QW00S0JxRDBMSE1ob3BEOHdtclNRZllTZXFzcXcvazhFSUl3ZHB3UU9Pa1c5WGZ0NExGWXZub3k5c3dmaytGbjBGbHl4WW9nWEhpMEdNdkx1WVlianJqT09iUlNQaGxpOFJ5V2hoeFZYYnhZcXdibklyeTYwOG54OEZ4WlBaMiswa3NHOE5BejlMbzhuSXB1NmhQTGZPMUYxcmJSU0M3WHFPQy95QUFLcVdQVzVOTWZNb0E4N0djTWtFa2dQT1k3R1lEQnZzU0plT0ZWUmFtdTV3dEt6Z0ttN05DMWxKS1FrZHE5aTFSRjhXWkNDeDltaXpHelM2VU4zSG1ST0RidHpiVXU4Ym1ycUhPZHdoNmplcDBCdEpsNVpRSW5BRlI3SHc5NkdCZ0lHZ3lBMExNVmU1MEIxSXhRNXJCNlgvb29vdWg1cjJGUnk3L0VBSjhmQjVrcUZMbS95UUNPbFozOFFnZUlKQkFCN2tvR3NGc3dNV0ZVR2RmSnV4cEUvam5IdStzSE0rc2RLUDJTRzM1ZElpaFNTOWE4d3BrOXRFeWdRclpBNDJxa0h4b1FqS1JKS2V3TEJuaTd1Z1RFaHNIQy9tbk1EOTFTeXpHNkVoRVp0N1NUeUtFTDJNTFV3Vkk2TEZZVmxIYkx2OFFBaDhZVzBlM3ZMZ0VaME5udHdvN0swYjlrZ0VnQ0VmRE9OZ05FbmJqTWJERHNodXh0b3l0NkYva3VSQ202RHQwdjA2V1J0OWpZNjBLRXJRb2tqendESHhmalZ6QUFWVGhrUzZtVlFHS3RGdEpTQWlEaG9pRS8vUVpRa0FFUlFlOTFCaGpET0pFRk5zTVo5SmNZUUtoZ1NaZk0rZlViREJEeVNOVWNHY1BiZG9BRUROUGdjNnFYZ01XY0hBQVo1NWpiQkZTODFBeVFRMTl1aTY0elFJSHNjTlhRV3psUTJWc3hRRC9henhnZzFxZVY2bkRjQnJvV1lRV0VpL0wreE8yTEVBOGRnT2lZd3h5OU54bkF2UmtxVnc0b0FvQ1lncHNNd0hWTzdDUzlTeEVtZkhneFhOQjZhZEQ5TlFPUW03blJTUXZZRlFZZ3pDdnh3cWRLQ2RScm1ZKzdXaytKdi85Zk1jQTJHY0I3ZTk0RzVVeUozbUFBd0Z1amRXNHVBZTlaWnh2VnRKdGFYOUIwUllOa0FMNlFBa0tUQVp4WTZMM05BTzdQbEVsakNjbUYvZzVNdFh6em81cFU5aVFSR1RtT2hCcnFKdVJpdUxDaG90L3FOeGhnWEpnNjBnWitsUUdZOGlBU1FaWU1NQUowVVQ2K25YcW1oREZDeXByU1kyTEhGUHZTTkRyTUJEYVhPZ0N0NDF4dlZ2d1BUK1FXbHIwc0ZCcWtYbzJrZFhZclFHbEtZVi80QXR5VkJ6c09sOUg4RXFpdHlRQWNRR3dqbkFGaXlFYXdKTjFrQU9JU3RGeTVlSE54RmpOalVRSkJFanVwMHBNNFh4Q1A2TnNZc3VwVlV6RFZnSjh4Z0tmZWNReDZCWlBLc3J6SkFFeDVrTmpPWkFCNG9BQmV4YkViRXFEWUJRd2RTaytBTGJ2Qi9KZTdnQ0Z4bGdsQ3dRY3FUV2dLREppK2JobFErNFRiTlc0Wk8wci9lUThnMDRTSG03QW4vZEpxK0NuYUdTdmt2dk8rY2tQVlpyRzlMUEM5dXpRazVKc2htVG5zN2xlaGk4UWxzSVM5czhscEhLWm9VSlVNNE52Ymd5b1ZvVmZnVkxMcTRsSmdqblpRQTlKSGlMV1B1TU5nQUxjL2JHcDNCMHROMVdWNWpRRTRjSW51cmhoQW9Zc2thYkg5Z3ZTbTFFOC9xQXJVekg3dkNUVmw5YW5jRVdrSGdQakRjOE1PSU9SREZneVlBbzNVV0t1SitKNUhYbjBPcWxES2ZZZEs2UlQyWVFuY3ZOTnZnRHpPVmsxN2JPb3NNMmdzRHBSQ0NLTFNYcGdTb1JxbVYwWDBCZTA5ZUVMdVN3YjQraTVMMklPa2tWWFFUQ2NMbjZ1MG5acDd3UWdaOXVrNU90ZnVzeWVwNWFsVzh5Wk4ranVzZllZN2hJdElydzhMNUxMR1NURVNwbDJXVjNNRjEzNmc1YjVrQUkwcGgzakhFT2N1UUNWbnlEUERTREtKVlpyODFMVkNIY0lja211TXAwdUFoUm9UNEdzTXlGNWl1eEhwNGRZOUczMVFpcXpsRDF6NGhpc1RabkFHeWRSS2tDblMrMVBpSy8wTjNVNEw4MEpPSllQWHpnUU40a3Ayays5aWI4TUpsZ0kzR1lDZEpta3d3dlJRMEpuaDNrRHpudERCR0hoZ0U5bzdkSHJVVHBCYWpiNmRBWHNSWlVBWUtYR0hzRVVXUG9nbEN5STlFNVhHZ3BKMVdWNGtpNmJnaWN5QkpRT29ZMjZWSUY4TUc2YTZDSlo1WnVEd29DY1lDS3RNTldKRHMyNGk3Rk4va2N0bGtoMDgycURVV1JDL2dMTEY2TFhSMTE3VFJRRDREaDkvUnQrRnNPZTBJZ05nSmlTUUdDV3BlRitRWmQ0TERHdnBUb3dZd3JFRm4xaHZTdGhOSVhCWmdNZEQ4K0c0WktrQ21zL3B6c3lRcXlLaW1JU2tqOW9Mdnp1NE5FaTlCYW5acTdHWmhKRTZHT2grQ3JRd285ODNBSlVnekY2YllTUVFNWmxsZVdkV0w4RG1hZVlPTFJsZzNzd2hUdnVEY3FwelBrS2o5a3JlR0RpNkNLUTM0bjlIN0k0RU5vNFJYblAwR1crMHJCeTBhd2IvUktBdEhJM3ErZDFTQWJNSk5KLzdob3Y1TEhJR1pjazkwQ0NCeEZaTlBiM011MVZnV011QWdvd2lObzgwZTBQQ0xtdUJlMkplVFM5aHoxcVdyS3pvcVJveTZGSTV3REFGRXhJU3JPcDQxTW16ZzB0QmF2d0FkSmk5RzYvQmZPKzRRN1VQRVMyTUtDdXJPejBtb2hUMWZrOE9kSXBLdjJDQTlBUFpxbEF3Z0JZZW8zTXU0TkFvM0VXMzM1bmc5VWhnMGV1WnZwRUlnRWszWFB3bW1RSWp6TkZuMmZwVHJiTTRNR0xqb3cvaFI0dlV5ZVA4QUZWY2pXekRkWm9WTTZqSTEzOXNvWXFCa0xRNEU1emJUUXdydmQxb2lTUGdXaHFkakI1cENWekd3TllsN0szbWRhUnFRUE93NjZ6eHJpMndONnlKSHNpNUlQVUxvTVBzMWV2UnBvN0pBanFjRkI0VEpqejFJNGk5aFVDUTluaGY0ZFR1b0dSa3lZZGdnS1pwc0hSeDlzWlV6L2w0dGtpTUNLVXlxTHhucW1HUjJPMFEzYTZHRUNNc2paT0NFZUF0YkRlaFVhM2U0Zk1UQVZPY1FDQ0szQmk5KzNJR1piNytZd3RWSExWSzlRNUtsZ0lxdThreStaU2xEdmp4M3BTd0lYQXpDTHBWd2g2STFXTkI2NlNmOUFhME1lcUZINGxIMVJiSXVaclU3QlZzR292RjR6WUpZTFZ5cjRIeGlETDRlekM5d2RaUWFoZ2xPRXdIWUQxUlZ3RjlKVU1BNGpsbkx6My9pQmJtZlBUUWNuRDVtMG9xaktlVmNqNTZEWElPODdQaGt3czQxb1JuVzdYZ1dtZGhWaFB0ZlEvRTl6UFJWZzdpSStEbzFhdmFYcGxCWTRpME5wQVlPN2FBZHI4RldSaFdqTjh1U3hXWnRybm9WY2hnQ2x5RFFRQTZreVhzdmZZaWtaTVZWUTFOdDNINC9xTmZFSGhVbnErQzJrbTlTZHlwUW1xUlhZRGpRQWc3SUtxQjhjQXc2ajhRcFpDREpySzhlakpMd09rU2tJbE5kWENJa0VMajdPWHBKK0lGWWo0cThhSzIveHZIODU0NEV1a0cxTERzZHRTNnRMSjdoaFk2QzNvM0tKcHVlR24ydmlob0Y1MDZUZzQ1MURzWXVQcDBNWVBRRDdJVVFHTGdrSUlzTE8ydmdoTlY5b25YejlWU0Q0ekxYdnpHSWY3RVBWblFIdzhtV290aW9VUVJnOUE0UFNURDI1dUxERlRYUFdWeUYwTGNsZFFGN2pRNDNwY1hUMkxCdVVURW04cFJ6ekdEdUMwcUxicURBMnFLUllQdWlGQWwwa05iNHYyRmpYejJZcG9TTVJUek1VbXRZR0RuMnJIS3FLT05zblpyUHpsZm1ZV2poRzRRbW9qZlFtZUpZY2VCNkdVZnp3NU00NFpJVXVrSllwcDhQQ245ODlYa2VnRHNqMG91b0xtMThTaVBCNloxNHh5R2Z2WWE4K2tSSExMSnFKK1ZxSVRrMVNVSFlaUHJQYWJwNW1SNEV3SWNuNTRVdzA4a2pGWnhwczZBNnUva2k4U2RnbFNFRGxQQkxMTEU2ZG5NenFJYlJ2MFgyNmx3VnVyV1J2RkMyS1pheFJESHFBT1FqcFo0LzNwUysxUi9xYjhSMk1BbGhwR05wOGVTaGlOZ1ptTUEvaGJTampHY2VaRm13UWdvOTN2a2E1QmVFTFJPMlJBbzc3MnVJSUZtZklCUXNINWZGeDc0R2VPbHlOSVpwaUJtbTRzdU5KZWhpbnJOaGQ4Wm5ZaGllWDFWRkZyTEQraWNpWnh5ZG53N1JTZEt2RndKdndtUzFOQlJyZTlOSkF5ck9HUFhJSjBXTTYya0xuR25Jd1Nzby82SGJURVpIT3V4bUxROU5UM2RRQ01jM0ZQam42c2l0cGF4Nmc1THkvMjlma2prUHVBa2ZlZk1JYWxFZm1PMmNnSlR5akhWQllieDZiV0F5K2VTYkFOY0pDNkprOEJzWExZaFpVb285OHRyWnR6bGdsY25iWUUrY0tSWWdmN21jTVkzUjdSU002UjI4cElLbDY0RG9ieTBpUFB0aWZZTUxPZEwzYmZTR2E5ZndPYUloQVRsWW5uTTliR2dLRmRUNG9zdFpTdUErNkpXT3hKbW4wSG9ETHNFVGRGTDNHbnVleG5Gdkc3VTFFTGpVOWFsVXk5NUdPdWlOb0phTWdmMHE1TUJOcTV4S0dFejM0bTBXTG15bDdQVnAyWTV5QnhHYllUTG94ZWliT3MxbEl6Z1dIUUlBYWFHN21wSkNlWEdhY3k0ZStRTXk3Uk4wQWhEMlVpeWtDNDJBZDFGMThYZ3l6TDNac2hteTV1YjI1ZHlvd0xvYjI3K0lWdUpQeVNFV1F5TFBEUWFZbVBLNHVGUWtGTkRSbkI4VWxSYllCQk9NN3FrWllvQ2RkUXgwM0VHb1V1Yk82WVRXNmNMM0drWnhkeG5MS2JhR01LMkd4Q25US1dMd3NwV3lQNlZETUNjSkRKcDdqUC9FUlZpVHVvSDl1WnNMUk1URWhzNjVEQVNMdStHR1poRnVsRkRpV0FCbklRNUVraHZNeCtWVUc0YVdyQURwU1NkWk9LMklSZEltNVlreXhrV0J0RGxnUUltckVPQ3FsS21Jbk9vZGhBR2pCWnhpSFRvd05KRTRBR2V4RXFxZ0NUUUNFV1lMT2pzVzJTZ3RmQjltMWtKS3lnVE9pK0x3dkw5VHk4d1E4c3gweng3elBRbVRPSUxKcGZPUUZwRU1TTTRsaEdUSEVMVVF3YWVpY0RYZ0drRG9XUXNCQ1ZRQlpTMnA0Y3lBOW9wODE5azl2dllUelAvZ2cweXNhRWRtdUQ4bWY1RUhWbUY4Smhkemt2Ujlod0NISkdZUkdnbWxGc0JWcEZ4RjVLVXhHTHFSa2NFZlNPemhKT2xhWXd1SVdEb1lWR2toMFlMcWxwc0V6cWpuT1ZvRW9mVnBERGpFRElFS21DMFBPampqTGtvaDNCUFNDaWFTSEFGZytOdDhoSk54MmthRnZIbGRRbXdMUHdxNmZ4Z3VXSFVHMWZjS1Ixb0dkV1F3YkZwUGdWYkEzbUR4N2xKbW95TDZXWktvUFliaktYTWdiakVtTHBaamR0RW42MjEycW5Bd2l0dUxES2lEQzdnZnZUTkVVZmVCQVRZR0tCdkVFU2Ftd25sVm05eVpOemxETXZrclppWW1kbkZLMldDbG9GTzhRSVo0Z2syZkhaSG1kOXJQWVpsODVERWdjck1pR2JwYW9pTmUwMXNIQVBFR2tETkRLRCtYcVRvYjliQ2hSRXg2NkdpVnU0bGZXTGpVZ2NZOU9SOW9RT01HUnhydmxKUHYxdVVBRkhjcVlld1pmWGs0YVFzYVVDMkx1dk1JcFVmQkJFWUYvNGFHakR2VkxnWXVHR2JlVStaS3RWZ2NxZ29YSlgwaHQ1SktVZVJ3MWc2K1QrK1hoUnIxYjRGbzc4RFdoWVFZRHAyNUNvTVpSbDFVc2F1ZUlYN1B2QUVJbWQ1ZldSMlFXcG5qTEx3d1FFVGtMbk5MTnBsaDZCSFdUTG5sRVg3VTBCSmNOazhFWlN6akdnR05zNkJFVlhKL2dGaWYrbEVRL0prenRHekdLNmpXRllFaXl1aEVkck9JUGJVRFVyVVd4RkVNWXh5WXVXZ0RJc2lVRVg5OUpJQm5LMnRXQUNIbFJIZGZXWHAwQmNRRVhKbklEZmVXL21KZDNuRm1OcDhxakpZTC9yS1I0ZUFBSTNEWTc0dVExbm9VWkJPVUMyV0xVSUw1MWpnRUhObnZrU08vZzBHQUpQaDJRT01jSzhKMFR6emFhbnhBV2c5YUVCRlNRZ2RSL3k3Nm1WNWRFaG5lamVET1BqTUFzQllSb0h0cTVMOW91dWZQZGd5a3lldk5VVnRIUndmRkowTWl3cGhsNUJEZWxzaXJEWS8vd1lEaEVEV3d2ZTVCQlJzTGNnYmhtN2pQYmlJV0FnTW5aaXlCR3c5NlgwVUk4L3FzeWhVZG1nV1ZmU2Z6blBwTlRaeVNBNm1TeG5NNXY3U2dRbVlUa0VQVlVYaGE4RGxYRDNKZW0wR3lJaHRnUGxEK2d6bVhrVFpwK1ZpcnZlRUt6Y1A4cFhCQUJaWk9lZFYzQzlqbGhseE1obDZ3UUJ5QWttR1BFd1piRDE1WmxFY0hQUktZQXJlZWNieXdRTlp5MG9PNE5zekhUbDFBNjQrcnRldEdIY1dwSzR4UytjbzkwTFBFekorQ1BzdldnZ3BWUUtURVNPd1JEQ1NWUnlMdVlQQkVsSEpQdS9DOEpyUGlnRk03U1NzaXpBYkJua05rMlkwUFY2cGViL3pCZ2tBVmJ4cjhTMDNKUUFWWHFVL2RyMk4vdUZCVENSa014ajBMY0pqbmdkREFvenc3eHArN3pMMmxYVUVrUG8vcW0rbkpKYWxsSkFtTVN6TTJHODlXaGRMN3BjUnNBN0VlUzFLQUplem85dk5OTldjcHdsRXhPdFdDTk4yaUc4cWdjUndRaytuQU84ZlhMM01XTXlPY011NlpFVGdzYlhKTFpJQnNweENVVkl2MFZmdHVGWEtPYW9va2RuZVdLZU0vNzlhOHg2ZFhTWUJwNWw2R1prUmJqT0FuVUlyMW55dVNxTE1CR05BVGt2cEdmUVh2WjdKZno5WTZ3RENGNFNkTGs5WmFBNG5NaUxZOVNpR2w4MmROcmJublpibC9yblo2bm1jT2NjQVZ0eHVGQS9POVhFZ2RnT21TNnZuYVZHUzVqb0RVQUQyK2lxUHN4SUdyTlg0QnV3N0NCMlBHZ2hvZ2RKQVlNbEtON2FOdEpJQm92akwyZUhFV0FHeSt1elZBUENKaTR1bnQ3THFRazJ6eTVyM1NDRWNaUUNZZERScGZwc0JTT05WVDJrSllzcTlLK21HMG9ieUVpdjh5NFAzMVM2QUt3UDhsVXpCRjA5NGE5Y1pRenE5eFFJUlRwNlJjRnJXSTRSeGpuU0duZFdHYVRLcUNnZHlMMlF4Y0Qya1NWQjFyeGFiOGVRYkRPREJUb2Evbmp0Q0NDWWNiSllCcUxYUS82cUNhZUpiRXJXaXJWd0NPTm5sUEMrRkd6WFFHR1IvalFFcThBMTdhd2E0V3ZOK285N2QvREw0ZkgvRkFMd1phQ3lNSml3NmtzMlB2bTRWZnk2ZnI2VGZXVnJNM1p3ald0b0JMUEJwaUVUeXBhWUhHSGNaNTh3OXA2REJENDBTemFkejBBY2lXSTNGWkEyT2dWN2VQVmVsUThmM2pENWJ3RzdndGdaeURDS2xJYVA0TGRjWjRKM2hqb3RHU2UzMklVc3JDdy9CZVJmbEFiT0dNVnNOaU84M0ltc3JDVkFJb3hEcVRoT0FoWklCMnFUbTJCRVgwRnRWREhDMTV2MjRYUXRxdHY4dEJ1QWszNWsraDV5TkN0WE45VmVaUVJsQXhCdFNyRWtIYWVsR0ttZ05LRnpOR09tU0FYTGt5VFVPZy83UTNlYk9CZjIwUGlzejBoWU1FSFZqN0NTSXZDNHNNSDJOZ2FTZy9oV2FwbVlBb3BPQXZ4YTJKUDRhcmdCdHdnU2o4MFhKdzJqa0xJSU9MblNBMksrdmZRVmdka09lZG9zQjZxcm5MQ1ZSOUY2dGVULytnMnB3d3dzNDBkd1lnSDd1VG9zQlZpTXFnVXF6WUlEMEJleWdKL2JXYmdlckdhQ1NBQm1NakIzZndGVTlwdy9rWkptUmxoT2FEQUM4WWR3S0hncFk1dGFScGVpUEdJRFN0TVpmRXlGRkUwNkJ5WFNqVVphdmc0bVZFZ2RnbXBvQnNySXlORWI2RTVJbXYxNEM3Z3Q0K0Nwb1Z0VzgvMk1HQUVEcS9BY1NRQWZXbGNCbW9PVGo3cDJPcWk1TUFCcEp2R0Nta1NzNndNRXVpclFFUFZoMEVpZFk2UUJWUmxvU1RsOE9YeHhEeHR4dnFHVllvRFJMeGFrc2RWK2tHUUhORTlUTmwrQmxpWkZjcUppZVlCVWg3akdEOTVId2JHVktDaTdrc0dMNEp5d2ZuN1hWNTBid1ZNeHRoM1NWQWJiRWdIRjVJWXBVRVRVSDE5dnFtdmQveUFBeStOangvRVFIMk0yNWJyb1NPRElsMEhRQTF4Qm5jRlVEQmlDa2JFUWx3UzRoQ2g4eEZVRUFYeE5tQ0NaRTBwSmVHakxCK0VhV2x6SWo3WXNmR0VFcWM4aXEzRy9iQ2RNa1VOdkxzbXZkR2pkRlVzY2ZKYXEvdFBuNXVFRkxBVnRVSlE5aGs0VDdyOEtkaVF4c0hLRUVCZ2p6MWdLUEExV1dSRjh4QzlFRkE0Z25wbE5acWpGaGtMUHM0QXhRMTd6L1l3YjQ2Qk1nNWZramJ1d0NLTEJ4RUF6UTZlbS9zVWVjN1NORmVyK252SEdXb1dxQnZuUkZ3S2hkTEVNd2hpMGlUVTZZaUxHWE1LbGY2RmlZM3FqaVJ3WklYb0xsU04rQy9UL0xxb0hSd2JpVDhmTHVxMkwvemEzSElyMkJnOG9TYUJxakU0bEtvQTFyUEc0bURCQVpZajdWcW1XUXNUSVhoQTczUjhVQW1KMzVSQXhMNUpWc25HWlZ6ZnMvMXdFYXhaak0zYk5FSHIxdUJ3Z2pRVElBZm1aaUUvTlZySGU5aFV4M0lVN2NsQzRXTmV0bFBjblM4Z3JYbkp1OHZKSWlQRHBEcXluTWFSZHdUNWlDcTUxejRoaEhuVFFkT21vWnRkU1piSVBmWXQwWTl5cHZINU9QdUo4aGtoTkhQTUQ1TW5qLzBLZkIzbmREV0FMbmtmRjBMd3d3OCtMS3JLaExtNmQ4YWVEa2FnWlFaMXlUVDl3VW1XWG42MWhVcTVyM2Y4NEE4UHJDdC94TFM2QWRiTVRVMGpRd1p3bnI5K3M2MTFaalY0UjBzMHNHQ0M1WGlRWnJPbmZCU1UzVEhUL2xERmd5TndsV3RFTmh3TW42emdNRVU3dnRyTUF4RG16V3VQTUFkMElLTFdUalpBMXkzZ2Zkb1RHTzBjdjVLNS9Qa3gzZlJQK29ZMnpDeVUxY3NBVW1NQzdDUW9vaURId0dIZUE5NjRBU0hNQVUrNEdUYXkwQnVxRkJhVTVIOVdqRk5lYVdEZ2FvYTk3L09RT3NwRVYweVU5OUFXTVg4V3Rrbmp6dmtOTjNaM0hPSnMwTSs2UUxpT3FIWklCdzRkSzFCL2Q3Umxxa2wxQmtIcjJxa0tUdStLcEs5dU1GalhMMEIxTTA2THVGLzFndk5QZGhKdEdUbGlBYjNnZmRoNzdYL1haREVFak5RS0hFVFJVeGdSZkIreDRaRWFnWkJCV09pakR3TzFRdWdqOWdRUk16QVUySms3dlFBWHJyTXFvZ29zV2xwVnA5dGViOUgyMERoOE9JTDB0djRQelNHN2lNUFBzeXpURFBsUDZzVzM4a0F6VHc3UFVWcHQzblJNOHE2eUFPOGlDUW1xNi9tTk5MaEM1aDJWeE9LSFlQV2JJZjVTTmt2QWh1VEY4cHdHSUlWY0JjQ3BETnhpb3NEQkRDd3VBR2xDeXc4OUhkMjdIdWQ0YmNZQUxMeVFoYllJbVNPanlqSGJ6UDJDZ0wwR05Zc1VmNExIVWJhSldMWkNaazRBTkNWaUhWZDJoVU1KTUJySUJ4bHhpd1k5YVhxSzBEN1pyM2YxZ1UvT2twZ2tkblA0c0h5UHlGUXBWR3R4M2hYcDFad1Jpcnp6dEVNbjQ5VE5IQnBPTkdISVQzRUdYSXIvY3dybDdqc0d5L0JGNWNBaUVoTkMwa2FIUjIzNGRGU3hqcVZRbk5HRExwdGdzWUd4ZVlRNEpzb2hETkdkMWU5M3RHaUxOUjJtS2FtRW41RWhkQWNyVEtKOHJKRVZMcmtYK0FoOTZwaktxY2pCWkthWHBkYjNmbTVyVk9CK1dWSkJ3RHhKanNNdi9JMVpyM2YxWVYvaVZMc3Ywc0lzamxGVWRmam1VcC9lK012KzV1S2RMV25PZ00vYXdEL0N6ZStqRmlCUUdRemtyQVdaZ2Rod0lJaVhjQTVVenlja0xhK21peVZ4ZklxUEhPNkZoaURqUHkyUEYwN0dabEZnKzdIYUpOUEtwUnVpK1FRZElxaEFLd0pTZ3VPWXRxYWxuNVVPc0ZJTlc3aGc1a2hvQmplTXI2dHBXZ3E3bXdBMVMxWkw0SWlxbXFFVHhlclhtLzlEaVJDd1pnbW92S05UaVdCcFRKOFdjeGdjZFRqSDdVeDVpQUxsYmR5VVo2OHV6UVgxeEswUUVabWloVFlnOXh2d3psVGxoMnBGM284SkFESWZrT2NqUEdoV2ZFSkFPV0NXUjhMaTRBV08vWnNRYzFuZzVOaUJxb3QvY01pYmU0NXFPQmp0NnI0cFlBeENpY0xJUDN2Yndzd0dpRTFXZ2pQQmdNSU90L3hrUEpqYkVMaVBTLzRXb3VMWUZ2VVUzcUIyRnhyWG9rMTJ2ZXoxclY3Y0FBTE5XRXZVMmF6c0FmMGdEanVJd0tua1JVOEZlTy9vZ1Y4ekhNamxyQlNLdk0wK3VsNmVHY1dBRGN0SVA4Z1NaOGRyeEF3cktKR0tIWVZhZ0J5UmtFOVpPZHBBYUVTU1JKb0V6MGdFL1VETEVuOHVUbGpkMUtPSlo4RGxBTWtRMWFmZXg0cmJnbFNtTE9yTkpzQUJnSktRNnNEV0F6UUFjelZJVHVaTmI1WFRLRlJaVmlhRnlWQkhmNG05eUU1YnFnT0RDendhMmE5NmVxdmlVVlR1L1I1NGZ4SElkUm9RK0lqTnU0QURuTTBTZWlxa0t0ZlJHZHFUS1AwTjhFbVFvNUFibXJZRDdhQ0VLeDlrWmhTckhyU0svRVRMRXRDVzVNa3Fic2ZTU1dMQkZOSjNsS1lBNkJHR1RaU3dXNEVlTm0zVVFZZ3RUdkRocVdHK3NodlliRkxiTkdNWGdTNE5HRU1BdjM2dXFTV0J1aHM5SmZHTUNpUWdjUkV5MnpodGorVmtXRmRrbncwK21vTC9lUE5KVUN0Z3ptWkxsYTgzN2ZxbkI3L001eWpWRTZLWW9qelRBbnRBbkc2aW95NkNpSHk5RTNaREFuRkZDZ09rQUUyR0xDT2NpVXVETEkwRVNac2tUdGlZQk9ZS2JLU3NDQjlaUWpMNFMzVGNlR25ESjBZcFIvRHRuTE9RcUtCcDRmTDIvM2NxSWVJYVB4TnNwc2ltSkRYVTZ0Tis4WVk2K3JPZFlwRDFUaXQ1VjlPMmFWY2h0b09VRE55Y3VqQndhSFdCdlEvOTg3cXcvVkFkS0N0VTBOdXBvckdpRXpyWkxnK25SdHhnRVV4Rzg1V2E3VnZEL1ZOYTR4UWRoRDFoV0NFSk5KdUN3cHBjSzBYYzc1aENFa1VINVdvTEFwbkRodnhzVHc2dlZURy94RWx1STYvOXNoY1RpYlFGVFhtRFlPaEFPeTI1OVY0eUZMSWN1L2dMZ0tLUXpVWlJaZVBGV0RnYXVCZXNka2NiN0lMQVBLL1RhOThGWXMxSXpHNG1ZZ1Z3cnlTR01DS3dic0hxdkUyaWdEL1B1dnhnTUFFSUlTK2FCcXBqV0lyUVFPdFV1Q28rRjhvYi9EYzNPeUhFK3RtdmZzalNyM25DQ2NiZXpKeVlLemVRd1pUVndNSnNBUGgvT1JMT3lzT0crODE3RUVyUkpyajFiUCtobDVyRjBzRTZXYnN6NDhkQ2FSZFZIanVXNXZWUG05cWpmL2t2NmlSSDNncnFIZVUzWHhFYVhJbkF5eFhJSXpvdnl4VFVoZEhMSEE0cTI4SEwwMkZEZGp4ckJVNVNLUlVVVDFyMkJnWlpKQVpZRC8zc20zUkZLTERWY1c1QzlvcHhnNjFTWEJUekUxQWJVbFFEd3lKc1RtTUp0dlNLbVk0RmpXM1piSEplWVFOelp0ekFhQ2lIaGNISGt2S2lFREpkaEVzWkhmSWFOR0tWd0I3UXR3N2N0MW56cEdGc3NrNXVtNXRKcW9zR1BOU2ZSbnc0cFdBaDNqcjVlVXdqRGZSdzFVV20xRHBrSnBVcnNPRkdhbE56ZmFXQ2FwQWU5VXhRWm1DMklaRWh0TEJQMFVmWWEyY3dmc2VXNUJjLzlSTThBcGsxcU1JU294czdoamlMbUtBMlZKY0lMeE1haEZpb2dzMGZ4dE9nRWJwNFh2dlRKVkNiYS9KR3dMYy9qOW5WUEU4ckJnb1RNeGlBNHE2OXFnOThtSFVHcFMvVS9RS3E1d3VPNkY1cTlmVEhRdnU0bDVxdE5ubU1Mcm1MSnNickVPSVN1VGtIL0psUTUyWk1BZWJEeVo3b3dsNHVDemY0SUZ0NGN0czlBN2NrMFJTM3dHOWszSWg2ZVB1SlNEQWRLbGwrWWNsd285dXUwWXVoN2IvUzlqQUptNzR4ckd6K1ViVGJpQ2Y5YWwxOHNhNEtkajRxeXpSTFBocU5EQkJzdVlJUW1oeDArOGIwYXVvSUlmZTdpOUllQ1oxOUNMMW13ejcwVnVORlNEZ1dDTTdEeUVEQkswU3F3OUVNNzMxZDdmQ2xManpxMWltVk56aXBhZUV5eDJYZzZ6RjYzMFdVSElpazNkL3RJckRleFlwRG1XTmhpbDUxWisrc0V1RENjd3ZNdmZhcytDZDlZZEdnMVQyK1BwdTF6S3Y3TG93NmU3OU9TQU9jTEMyV3dlSDBkK3pJNWtBTnZaWWhWekdQK3NUS3JqaUdEYXBORGFOY0FMbkhXVWFDWlBycklGN0dwclNVcEc2SU53cGF2Q2pkcTA0aEdrU1RDclpXWWloZ0FkTmhGaGFrQTVOeFhMejJXaFcwSkd0UVZLRWp4VldQL0FTblhOc1RXaGhZd0NUdCtwTXNBM2hoVXU5NklwV2RxbDR4am13YkJrMkZLWmY0MXUzbmVHNGxScDhBOEw1aFlYZWx2bHVjM0pTM1k2OEE2K3I1VGtFRW9lMWhOaFhWdzVua1BzdjlLVkRWNUZlcGovS0FPWWJRdXJtTVA0TjJWYUxmN0pIRExmYU8wYTRJbXp6cnFCTlBDc28zRVUzNW1xWktkRUlGSnlPUzNyd0owZHVzbzF6T0hzU0NhSGNrRjlkR0M4NVNMTFdTWVhDUVZaeVVyRnh6SktQUURmeHZLYXRQT3Z3LzV2MWcvalZnWTFoQ2VuRGdKbExqaDhQSHk4bjVuSW5nd1EwWEdDdE5RekdOb1RjVWUwZzd1Y3B0VCtMQmhBMkE4U0FFVytXZFU2R0dEZGE3eklnRHZEbGRlTHlvK0hlWVQyejQ3c0Rpakw4TW9LOEYveEJsN0MrTXZFZWc1QVl5SlJHNE5XRGZERVdTUFRQeG1BUUY4Mkg4V0lRZFc2T2p3NVFOekFITHFiT2ZPV2UwWVRQRGVUMURMMlJWTXV3M011cjZBK0dNQzRLQlJaNmtHeDlnTk11ckY3K3JLU0pONkE5MElBUklBbkx4a0FZMDAzOHFKTVpHOExid1laVFREYWtNZnBhbmNHWU9qRkM2ZG5HZUtsbFFvc3VqeFFUTExmTVV5U2hBU0RBZkIwZXJRMktONmFSUjk2ODlLbUQ4SGd3VnNPaENNbGpRSCs1NDYrWmpnOUhNOVVwdFlrSXBna1lGSHd1Z1k0MTBUaXJNa0FtTDRJUUdWam1IYVp3SVFPb013VVhJYTJiQnk5bFNsdHNzQnNWRXJVSDZ3bU0xRmhZVUhRVUVFQ21ZQ1FKSkNnUmxrTnNneGNrUVlYMk40R2ZISEpBTlFBTFh3STZaU1p5ZDZvRWZtMFFVRXJmREZrajU1QWhtWkZvUWNHZnJJUWh0bElPOFlBSFVjeG1iR1Ird1ZqQUNFSW1BTytBaXBMSkhRejZDMDhHSW9sbVpQdWlOeU1sTEJDZnpBQUl2b0dEWnpwREtVbGtXd3lFNWVZRFBBUEdTRERnaTFjZ3pocjdFT3J1aE5sV1ljcG9md3ExVFVUcmNXcmVPQlU0OEZ0dkFYTDlxNE56K1gxUlNQdlJjUkY3OWJLQUJiNDZ3d3dTK20zWWlCc3A4RHdBQ1c1bXpQRXUwVFVsU0Y2YlFZSURSQjV6dUhUVEEyM3Fxb0RZdlhoWWgxRmRaMWdBSUp3U1J1T3JtVy9OQWJ3T2U2WkZHMDdSQVpRNWdDa2FHS1ZzTTEwejdwTThyQk0rMXF0QWZ4Zkh1TUs4UC91NFBhUlNRWkp5akNXMGllYkRxQzJCTWlpREVVMXFRNHRVWW05UTRsa3o0aU10WU1iSWRPNEswejRxaWdPUmoxeW9xcGhwUVFpNTNJNEhEdGEvdzNnOGhGV3pZNHRBZmJwSkliS1pZcW1LdDQ1UHlIQ3RDa3BvYjFkTWtDaEFYNDBkR3FqVlpXUiswWWwrWFNsMXloVmdKZ1RyR3hpNjBWa1k5ZGRLeG5BUXBqTTRZamRpMXFDeUFCa0RtMDYxSlIyV3hZa3dUckEyRTZvZ1R3aWZlZFlpbklGK0g5MzlPRnFnSk5IekY5bmdOc1NJSmIxWFNjVHVqTExBdWFBdEtGbFJDN1dqaTFLOXhXVkNPWktQVkRIVnhIVEl6M05jeUo2R3gxUFlxTkFJWUJCWXRXa1R6K3BGNGtVWGg4TGQ3UFArV1NBeTRwRE5RTndhOEd5R0Jib2hrYi9GNVZVUUtvMHhHcU5wY2t4R3cvSkFPd2hIb01NZ09BMk1vRE9jYVpwNWEyWHdRQmdqak8rcU5RUnlXZHkxTk80STkxVnh2c1Y0Rit6QWhrRDRIc1N4ai9VcWZhSEVpRFdIMjBlVnBHMXpiaTFCaWVYRnc1WC91bnBBNTVrSVRGWVNuTXRTZ1lndERRa2dDd1JqWEFBVjAwbU9kckFCa0RxRGVIdHdMY1Y3bVlBZ0NuemdnRVM5Wlk0aldDQTFBQjFRSGVzVzVUaElpYWhpcG1JT0R0aUFPVU9HUTFqc0RzVE9zRUFzMkFBb0ppUTVHWE9XTitDQVFhVzZxSmgwV0l1bGF5WE02ckkvRVgxRWM4c1Y0QmpyQUIzOU9Fai9NVURsdjZVQWJnRFdUZGxWaHB1aWhlOUl1cHRlcDBCMGdlcytvM3JBSkI2dzNKTnFDSUtVd2RZbmZVeExoZ3poMXEzWTJnZEVIOHl3WXFaanhMVk4wY2t5MDZpNGxDLy9MSmtnTkFBb1R3V0dGd3Z3clFFcUFpVXNCbWhzekZoNS9uNmM0VDhHOTdyZ2dINmEvdC8xWjhqanpzWm9Ha1FHNnZhYlVSVkZmWWVDekxQdlg3dUR4WTljRWdhQWJnQ01FWE12T2NGdW4raEE4RDlYak1Bc1ZrTG9wY2p0Skx5MDdmVzZMM0JBUFF5SVU0MlRCWE12TFgyaENhWERJQWZHbkd0WTRKVmMrQkpqb3o5ZW9yajRpN3RGUzZ0Y0RjL1U5bkwwSExhVER1cTRWMW5BR3FBcUpPTG1ub2ZCMnRrZ0FSVXpIZVF4SWkwSEFSTDUrc2JtMXZtem9JQkhwbXhTWlVaa1NENllYNE1tUjdWZk5sVFFTZmNudFZLV1BreEt1bFJqYVlwZ0FjVkYvVlJHd0YwRDBBR2tHTGVyQXlBOGZnSkE5QVFlQW1zUk9TUUN1TkRQYWtNV3ZEQjJqQTNHQUErWU9RYWF5SU5ubFZmMkdYUjZQSHlrZ0VzRFZWZnczWWJnRWNqeVJHNTh1TXo3VFFhQ0RQRG8rUlpDTzZWUzdLOENlUDNzUkdwR01DelJKbkxsVW1DT2xDdDFteGtBTk44UVhITTA3Tng1bVdob1FHV0NaQ2tHTjJOK1JpZ3pLaWlvc3Q5TUFDZWpaMUxNemlyaUFBRDBLZUVvWTVXTFBYSEZBK3NiUDFhcVlCa0FDM20zVXV3ejIwR09DM1JLZ1lJU3ZkMnhLbXo3am9NM1FZdUN0REZkUVpRdDIzVUQ2ZWQxOEw5ZTU0UkE0NkptZ0dZelE5THBRdzR4dVZ6VVRJQVFyZERSR3Q4aFhxSWFRMUd0RGV0amtVZEl1eUhEaFVEOENWVEExeXNJV3NKWDBnWGU2RUVJTW9hMWJpNHA2aHF6Wm1xQnBJVW93dUhCRTBBcXFqSXg2VU5CQlpiTXdFZ0l4WVlBQ3QyTFBQa3hsVDJTMU9BSU55aU9Dek53TWtBS09hZHFMUGJET0FKdWRzTTRCbXk5RW1seWVXOEU3c0F5dkJSanQ5Z0FCODVnS2hTaDBDV0RxeExUNGl5cXhtQUdYUlJxQVFtQUJrWHA1YjdjV3dKb0NhMW5Ga01lOUlmZVI1Vng4NDZSQnE4N3lTckdTQTB3TSt5bGkyYTV4aGRSdmxDOEJCS01tT3l0MEtpYmF1QWZXZkpBSGdMbWdCa3RtTTVwK1h1WkVac0NEcnBudytVQWJ4YzFyTmpNTkRLN1g1aER1NWJ2b2ZLQ0pCTHdJNFdxNTh6Z1BpTkdLNzQ2eFFoOFBxcHEyNFNGU0lucnpjWllQeVk4TXF0K25vamI0RytXdFQ3cUlQS0hSalJNY081Z24vN0JQalNrd3ZFTHIyMUZnbTluRksxUUlsQmZSYjhoNHpyTjl3UjdFcXhZSGxOcWJRQkh0aUk3MDhuOW42V05ubmxJVmhuYVptcFVURmdFaENxdFFSNEJTZEFnYkF4aDR6Q0NHMk5PWVRZRkZTNHp0alN6TDNTU0VmT2RUVUg4L2pucFJFZ0dZQUUrUlVEaUJSaUFNdmxFckNnYWFOQTlIb09uU0x1L3lZREpBUWFKWUFNc1VpWmxCVi9hZ2J3d2k5bUF0REJ3Wm9KQ2FLeEhHNlVVVStYeC9YSWZLRnFBV2lKeHluUW53bC9aQmpUb3NBUmZxUUd1R2JENjArc1dTQmtLQUZtbkZiRnNoOHFRTWtBZURObzVUbTZicm1IZ3dJSmxpeUZZVkdERWlhQTFacnlod3hRT255a3FVa3dWM3Q0N3N4VHpGaVJNQUw4T1FORVVPQ2tuZGJDNjhlWHlCRDYwaTNaeGU4eFFOT1FTV3VPeUpwZk5RTXdxSmVycGc2T01vQ2xueU1ETE1BQW1lK1l0Y3hZaHJXSVU0QkhFcVdNVE94a1FmbmR6anpaaFFhNFFrUEdqUTRhK0J4TG1mczZzT1JoVjgvMTVMM1NZUUVOMWpHNVpJQzUxMkE5Tk9sbm9wRkpIRzdJTFN0TnhSUkVlaXlleUYybXhzU3FJZ0RXQUxET3BSSGdUeGtBT3hFcmZuZXRRcmN1STZ2TWFoRGxxQ2JoRVBWZVMvVFNXZ0tLK3Y3VXAzbVpXdE1YMXdva2F6aGhZSC9scTRHL2JESkRTWWVwTXRnOE1wSmxlSGNacHhEaWQ2Y0JPYTF5bHZQR1RLdnZvUUdDYzh6SzFHUHpCTFJMT2hzKzVTeVd4M2FIMDZ4a0FCZ1QxRHhYTWdEREhWUXlJWk40ZXBwaFpBTDhTUlV0NXFEb203cnMrYlh0S2ZHTERNQm9NV0F4YWlQQTcwZ0E1RUhJVjNSYkJPMm96Z0JsenJ0QkpMdEFMd1J0cHhNTW1sV2lMZFZCTUFBOXdnUGlZZDBWM0lCUXUrQ2ZGZ1BRSW1HYU1WS1J5S2dsTnRHeUtucEwvNDUydCtJVVppejdPZ2RLbEFVY3VMaVJvOGxxTG1wQm9yNDMra1ZENVRLcVUvUU9MZzJaSERHb0NhVVNpTENrRVJMek5OYklBREJDQWtxR09qNklOeHFNRk12b0dmYVppckg2aFlqU3dHSjBKMjRHL3AwbEFMa01SSHJTRmxmMmE3SzFicnJTdUlVQ1p0b0hLRklrc25DN3A3Zmt5cTRvWFZHNVAvM1RmYmVLWkhmMCswU2ViYURUOUZHM0dFRG90bVBrajZZSnl0UlZmWGxDMEdoZFpPTDdQRVNyTVd1SUV1bXhJcDZyOUJHK29WeEdmd05tUURabkFJcHh5bHZQejVxK3JDMnpaT3BpUXVlSC9DNjNlaytxVDF3bVZDVTJDb0N4VjBZY2h0RXp3MDVoRkpqRUx4VEdTQ3dHOUJRZ2dzd085UDl1TUFDOW1peWFuNGtzSTk4RmNyK0JnOXQ1Ync5ZURiWk1rV2k0K0ZGWmZkU3NON0VFdUdrcFNNdXBaTWtSby9Mc3RQUUZNRlc4WWVRN3BpaENDVXhQN3FKc0JRUDBpMVl4Z0pVYldORUZGNFdXc00wSHplbFVldUV1TXh2ZDBCQmxJVy9kenM1alhHWkFVNUhtL0YvM2lRSjRaakhhYjZqN3hmOXNWOHh3NWplRkZOeXJ3aHFiejZ5eVkyN0Q4dGMrd1hHQnhUZ3B2b0dMd0EwR2lFUkRUVStUQ3NYOG0wYitpblZwODNPYkxYT0xlNllLZ3EvUkc4Z3pNSXVmS29Tb0dVQ2gyeVlCYUhidlZPaTB4L1FHRWxyS0dGTVpKZ1NrZG5vMm16dzhyMjZac3FOcXRrQ25wOW54MThzb3RaYmFBNTJ3dnNkWjVYK01SS3JsTGJGeXVKd3VhdE9pdDBEZHhQOFM4TzhRUUNFeDdkV0pJZGdibEF5d2xUSHdCMW5ETXFFbmpLLzNYNFlyU3l6R1ZCckJKbHdFYmpBQUJnUFJWR1dkaTZubnJJVjZrc1djcTl6M25ENEp2a1p2QUxiQkxIN3F3REpFVXdta1o0ZUtDcXR6MU9pMG9GSTRPd2ljRmwrek5LanNaMWZaSnpXRnFLZ3JXNDY4Wlp6Q0thc2xFbi9OR3NPUXA5dy9HRUFiVGlYd1hka1lpMWpMMjhES0thR0VnbmhabytsRDliOVdZQWhFUm9XMGQ4SzdIVVcwTE5vTUNDU0hZS0E1REsxQzJHd0FaU0lEOElLeWF1elBHSUFsR0FLTXovbEg4N3owVjlVb3JHSVNwa2RXZzAzd05ab0R0aTErbEtkcU04d280YWhRMWRQMW5tVmpXVzBycVVSMTVqdWdJbUlxeGpIT0pwS3Jha29TWk5YWVZzMEN3N05hSXZIWEpOaERRQjI4M0JrQ3NmVGw2Z2FaSWEyVXQ0bVZBd2xSaHBiQXQwZitMeUZLTEpxSHMzQ1Q5MXROWnpBb1dqZWhkNG14QStyT1FTUEVSeWM4STAwQllBQUc5MldBeHBRUjFRSEdKenJVOGxkWW1laGVlUDVSN2M0eDAxa05OaEpZVk1IK3hIb1VCWDZ4d0xHT29wNklXN0lZR2JTZVJLZVZWQ0oybFBBdlNEZmt4ZUJzU25KbDAzbU5tN1lhWnhpUlVNQ0xiWlpvbURrT2R2S0NoM3A0UEFhOGpQODVVQlJ0RS9KMm5NQTFiNEtXYTVFMlFZbzBzd04wRDNnMy9nTmVyV3d2eEJoZWZrU0pzb1g0Si8wNTVMV29Dbi93ZzlXU2dobjM3T3FJbGVHcXdQaXMvUHNZZGRheW1ITmRIZFBMVEg0RGZNMWVBamFrdFF0bks4S04zVzhGREErazNkVEZaTXVhbGdiekFUaDBDU0F0c1gwK1FrdVE2NlZGbzdHQmhMUFY1SEZvNkRpcE5DVzBGSVdNbzVhcGx5SmxxNUNpd0tpUkVTcGtIQm5KUDZIQWtSUGRYZUR1Q0lxV0lTUlhzNUcvU2VxV0dLUDJFZkRRSDhTeDBNalpLYzBldVFhOFJJQi9xWTRFcWtxYkEwY3pHeEJzbjU1UTRRZzZCSUxJeTB6cWVJM3IzaW4rUTJjQ3I2Y2JJanJaT3gyajVxdGRubVZqN2FRb3o1dWkwTWdFNFJLRWUzVHlzUlgwMFZyNjlzVHhKWUhBT3pIcEV0RVBKRHlxRTBzakI1TlhaN05BaXBLcENTME5ERncyREZnQ1JNdmtJTGJnRmVvQUVpTlFwY3hHQW1FbHZGQmt5a3dibk9TRStwdUdWcG85OXNFQUlUZnZDM1ZFQ2RvQzQyOU9Qbjk5VmhPeUNRQytZZkJqTHFDK0J1ak1pUUtpWjB1bWtJdmlpcnhBbUkyWFU3TG1TUXJpZkNsRklmOW04ZTJpZERwSXNVRUJ5NUpBb0hKa1Q2Z2JaR2MxNlpoN0J5RHRyKzhvclZ3azJxcVJvcHdYZERCZWFDSGNOSGR6anpjMExCUGQvYUhDQU9DTVV2NlEwTjRnb3BQVTJUSlRmRC9Ud0pvQXlKUlhoZGtqR1NCcUpITXNYUUsxd2ZnekZ2Q2RlVDFvNjhYY3A1U2tHS2ZBajNGWGxZUS8ybW9URC9BSy9vbmx2a0ptbHljRlhsU0pWZnlONkFld08zcndEeFFYVStXalNTY0FqVVFEMW0xQ0EwWk91c2krQllVYWtHTWNUOGpvcGthS1JtWTI3aUdyRmxsUG5aeVpUYW93czc5RytYRWF4T2RGSzB5eS9XeGxwdmlLQVk2elNIcjNxZTJTQWRweU02dGV1ektqS3BIU2xySVlZamdCbzlYZnFzaTVhOHloMVVDNGtnaVhpR29jNEJWK0FlaFdJclB4TjAvU0NneVJjdVl4L3M0Z1dHNEZvaHVFU1BvWTVGWm43aFVDMGRpVWsyNjF5a1JRUUdGNjZtRTNMV2NjRjV2blpoeWJTWEJkdGdMT3dqYVBHcU9GbWYwMVNuT0hSeVJhWmF2L09IaTd5UUFaRHZENS8wbTd3Z0M1YlVtZEJHWFgwZThLNXVhZEd4cWZ6cjZrVlg5SElUTWtNYUE3V0ZXU2R4TGhFbEd0QitoTTh3dXc1YXlRMmZFMzBUb3dubWtzbHp5dlNFQjFQRm1BdlBZZ0gxZ0IrZ242REZndlloblpFN0taWmJ1Y2RPdmVnS25naU1LTTFNTmhRaVNOdkRXb1dpbGN5LzVEdHRLZlJYb21EckdnWHBZZlQ1ZFl0SFV3UU9uUXVNVUFNaVVZTHdiNlgyTUFGNXFwazJBSnBrRWpGRXpOSTZJdHBqT1h0TWY4Vzg2Qy9ZaldITEdqWTl3Um81NUVxQkhWUEFCbkdpQnFIcjlmSWJPelBoT3pWU3BwMUY4RHV5NVQwRUUwWlFqSElBcTBvU3ZwNHhsT2FmeFAra1RtNzV4MENBL2krWkNMSGpya2xkU1NBUWdVUFVUZVYvWm4rK3hYSG0wd0dKQndMVERPU0pxckJ1a1VqOVpPcUp1Ni9TVURSSmFRNXVNbUExQm9VaVhwdXNaUC9UTVVURVgvYXZQcW51RmZ6YjhkZFdHT2tDZjR6alJhTDczQVZhUFhOdjBsaU5OMXIzV0Z6T2Jmb0UrbUxGZTZsTUFOYkxzSW94NllWeUFaWUVFQ2ZSd2MvVUlHeVBZWkRKQ1RqbDZNTkR0Tjcrbk1hRE1BZ2FKYUhJaVZnSmsxancyZThjcWZwZFFjUk1hT29KN2hETGlPSkFNRWlaUWJrOVNsSWZJcUEvQXpRZityREVCSGZPb2tRK3o1R2RuZ0NpWXMrTDdEd09MbUU1MlRrL0RHOUpnL2UvejhLdWhNRXBBVXlRRDBLNXZyaC9ibENwVmxmMWNCYUVvdDRiS1NBVXlyaDd4cmRuSlR5ellha2VnTjZXT3Z4RlUzQ2NRUXNhTFdvOUlIZmt6SFpod0xZRkJ6dUdBQXhCMElIaUJJQ2s4QTI4NVJ1Ky9wMEl6Y3lqcEZxbXBmTEQvKzhsZ3dRTXJvYXIwbzBxLzhsQUZ1U2dCN1JLR1RkSEtKQktRT2VHSURUL2NiM05zOHQ0eXBSaGJ2UmVNUlExNWFGVVZPd2Q0ak9GS2NUeXhNRTYzRkFJalRaSnpXeS9TWERNQWM3Z1VEVUt0WFNEcHFpbW0xem0xR29vTkFxNmliU20yZjlMRzZ2NVpDb0p4MGtSTCt5YjA1RmhUUUwrUk9ucTlQWDBYc0FyTG1XVk1weDZFbzQxb1JRRVVIYUtYWFFUVm92VXl4azF3bXFhLzNwZzdBSEFzL1dRSXFQZk9RZVpZeFFhSTZiczVzdkN0bnQvN1V2K3pBcTQycG40Z0RYcnM0bldlZ2RnZXR4Z21BL2w1VWZQd3JCdmd3TGlzWndMWDZRZDlpYlRWSU5ubk14ckNiMlFYR29lUnNoK1RWVG52U3lSSFA4MkhPZm43NllYNlZBWjZmSElZRkRuTlB3S3VEMERBVWxRUllwUVJJdlE3cDVpa3Y0dWF4azZ5Z1c5ZDd5UUNXem9BUmdiOWdBQ29sVFZhNGowclo0RndQaG1OMTBveU53UWdkNW5ZQWUxOG52RE1DNUVrNHowaHRYN2FTQVFnQjJiRWtlY2tBRHcrWERMQ3dGNXRVREVDdHZ0K0h0OXIzWFh3RUNMUXRzSWUremRHUHNZL0RNSllFVmF4S2xCYlVaWkhnaFg0dkdhQ1cwaVVEbUpNQzErQTRhMjJuRG9BYVN3Uk1sRFRkRFM0aXFLcWRaSkQ2ZWk4WlFHMkoyQVo2UHBPZk1RQmZhT0FWN2lOdEIwVUFidUhWRVJJZklTUkFXbzFJM2UrbFVDQ0VBYnl3ekR6dVBJc0ZIOHRXV2J4djV4QVFHc2FTQWJiU0xobkF3enFUQVVLck56bXFLbnl2WmdEUUowY0lobzU3c216ZmRQZWFvSjcvM0FuS3VoVXlSRmNaUUZvQmdkZ2c4U3VFbjh3VzF6ekc5UzVBaXdHMjRIZ3VwNEFvSjNWeUoxbVMraU42cnpHQXREMmg0L0R0d3hMMGNZTUJLSkk2UmFHYWtwZ2pGd0JRaDZFS3U0cUhlVzdNamJpMUI4OFZRSXpRTXc3TTREOHA0U1NXNmpJWlFCY1NCc0hUamtyYWp0QXVHY0JlcU0wQWpUUW84Sm9DcG1reGdIeGdBVDdWL0lUT3k3NEFpUFpiTVVBQU9mU0NRcjVsVWFCQ1lxQWx1RkZUYWRxSEpDNDMwVUVmYUo5Ui82T2dYaW1ubkRwc05ha1hWM3Y1eSt5MlNIWUkzejRRVkIrWEVzQ1NFakRYZ1JIY1pCSUhCMlNHUEkvQzIvZ3FYd1E4aHZhTlFXK2krWFpSaVIyeGRQRDNjNnhidFRxUmZUVzZlbzNSMzZJRzlza0FBN1lMQnFBRVNnYWdqUlU2b014UVJhdkRyaG9NQUxVK3dhZW5vMzhJZVlrQWpKb0JraGJVY0xDYSsxTmZDNTBCVTdycE14MlJCelVrY3RzR0x5UUF0NWtPbXkybzkyeUpJd2JKQUlUZWg2TW5UbTczSmdORTRuQ1dwa0JrenZxS0wwQVhaekxBVUN0aHBRU0R4Q01XSGlUMWVZN1BjclV3ZG5vS25uUWtoYjYvdm9sYjR6UVQ0NmtGS2RYZ3RPd1NlU2F5a0Fpcll6SkFQMXFiQVNpQmtnSG9xUllkY0cwNklEMHJ6Z0JvS21lY1B2S1Vpd1ZnMzJhQUhGSXZQMWV3SGQ2WGsvVEQycUZQd0JuVGRGRXRKbE9VMkFDMEszak1rRk1zR2txU3NHR3E1Y25YZW1GTnpzVGh5OGlYdUxyR0FGQ2R3UUN3aFhkUzR0R1BaS0hWRE92MUZKVFRRRzVpR21KbGlDQnRTR0JabnhwcDhid0xVUGx5WDNUcENzVWJzUWdJTmY4Qzh0cGlBTnMxcGpEbXJrNkd5K0R6bWl5aEtCSHJCT283K0hSMm5BVWY4OUhLbERlWGdIdU9oajdUMkk1aHViVzFkdDRUK2pPblhnb0FHb0ZxaEx1MHpFY1UxS3ZsVkw1TW1ZdW1JUFd0M3V6MkdoU1Q0VlVHTUk4Rm9hWG5icG1oSTlEUWgva2M4dHpteUxlN3hEcHFZdVlDb0dRTGVtcjdNRmhENWxlNlpJRHMraFM1cWZNWjV0MzNhZ21JZG1nekFDbm5IK1YySGJFQXdlN1dvMlRrSTB4RVl5M1doeER0ejVXTUN3QjhtbTBsTUhmcXBoSlI5Y2FyMVpQVTJzcFRwSGl1d2lCeXByNkw5RUw0bE1xUTczS0tJdU9YaHFEWFRMU2V2Wlc0T0ttMkN3VFZMUWJRS005UDJzSXJOWkpaSGFWSHFRTTZJejkxWVJLMWVmdEtMSG9hZkp4MkxCVjAvQVVESEV5WkNLV3hVQUxaTGhrQWo4OE5XVmgyc1d3QVBrbkpuVG9BWUN1czBBYnEwTlNCNXpKa3AySUFLbjNGanV5VFFnbU9ncG9Cd29FY2xVYzJZVGZ3NUkyL1lnQnRLRFRQTkJ1dG02Y1hOQW5saS8yeXBSbGtaQWd3OFM4L1k0QytJWjViREtBeWt1Z01LeHZFL0dKbHJxUVBWd0hHbnRQWUN0YUYvdGI1RFFhQUtGZFZQRlN4Y2h1SWRvVUJodEJQbXBvQkVLN01mOW9NUUx1TGNmS3l2UUNndmJhc3J6UUVwWmV3N3czcVNZc0JJb1FFOUs4RXdHcG9ZTjFmTGdIemVWSEJhdHAyQnRIeldURUExZjM5c3IwM0NEcXFiLzhtQThCajBhTlNzbUpTTzE2WU9neUVwQzFzOUluUkZrU3FJZTdaNmVrRHBPM1hTd0M3V0thWDFyanFmYVZkWlFDalhza0FPK0NOMUpZR1FOS2d4UUN4cS9VRUJKTklFMUdZVk10SlIxTnc3ZHhKQm5mSmtEckRBMHBkZ1A2V1VkZU5mWVRydDVUQUswazVkbVVGcTl4aWVMdmkrTVdHUDZwdkhhS2xTVkI1OFRMdmNXUUpvOTBCMGRlSjVKY0xLUUpZTWg5cGdXMEJLSXhFTUFOUWd5NFo0T1BqRHhtQXdwaHF3RzFUY0RJQUFXbmMyMXJPTU5NQnNSVWtvcnhnZ0dlM0JOTW15eHYwVnRFcWd0SXk1dmF2MHJsREV3VTB4NUlCRUt5SW1FYjdZS29OTkFKSnF1V0xiYUQ3bXBLbVpSNzdpNENRTXZRaktTd21QMmVBS2dBbEdJQjVNd3VSSEF3Z2xwdTBBekJ6RnBOVUl5cWtsaHpBbXFWSlZJWjV2VWhENEN5REx3STUrK3NsZ0YyWWphRUcvQTREMkFUMk1DZG1EWVFYRU80QTVwUW9HUUJHZWU1bkl5MVFlOFNLU2RjVXFKaGw0ZHlKQklTNlhsVU1nTGgrRk9TcTAzVGFCanE5Y3gvaGZOSDRoem94VjFTeVNOUjh0bVNBa3NLbzJVU1VhRFlqaTlFTVFLM0V3U1FEWUJ5Y0Fjb2xiNGxWN0dMcGlLZ29tRTk2aFJ2bG5WaXFMS0FmZ1hPL1pnQzZnMjFCK1ExMzhDSmRWTTRBNzZxWHdndG9ZbUJvV1dYNENGL1RYZWRMcGE0dE0yOTR4MlpSRWduNjlJSzZteS9URHVOR1BLOFFCQlRCdS9aZGhKeXlqTXVjTFpPamx3VVR2WmJOUGxIejJSeW4yQ2twL0lNQzUva3lDSFdKR0hzQXRSamZZeXM1OGFHbEtYZ1UzazhTK3lvRGNBR2dFekRkZ21VQXBsK1MxVlorZ3dHZVN6WGd0eGlBdGdpY0ZLbWE1VFFoRCsxbzAwaFlDUUtaV1g1UjJsaXFsZ3dRdTNyNng3RnRaSXk2d3c3VEY4RFFKNlp2UnlrMVNnQkEzZ2VSbnZQYkFhSnNXVXUweUdESi9XZ1I0emdxL3NQMEFLbVR3bWhXOUNSYkZtOUJ2TFFqWXFDaUpqNjBZQUJwZGZ6RFZRYlFsNEptU0NjZzYyOHpiTXJpZDNPR1pJM2FvSFpDcVZ0ZFJzNEY4ejBUM1pzTXdPdks0b1dteFlXMWlaTm92ZEtaeEVvRXREODZnZnpQMk5jUHZPVytxWnAwaVlvNUhzMjV3eHlVa1JSazQxSXZwbzE4TENCNVJTRXZIOUF2QWtTak9XWnFWaGRNUk9Fak9ic1ZzT2VoemlRMUtYeEMyeDhkSlpvTnk4Z3hJcmNmMFdwOGFESkFJODBMWXBOZnJ6R0F1NWQ4N2ZlTmxJRThFU1JjemhDcXhNa0FnNFJTdDd1QU8vVEQ1VTN3ZHg3STRvVTY5QzRXWXhLZE85clhzV2NRUU80RXlqL2ZHTEZUTi9abmpGeWlZcXdJb1RUQ0RvazF4STZvS0g4anlJRnZLR1hmWlNrL002RnJJMENVTFdxSm5sb0ZFNC9BUnJHd1hEYUNIVWhxUW8wSVJKcnRzNGhha0J2M1RzWm80ME9UQWJqaVJRd2s5UDFyREJEMjNqNmN0MHhkeDhoR0ZLaXRaNGpYcVAwcVNFRW9kYnRMNTJjY0xtK0N2L05BRmkvMHZ6SERZaElOOFk5WkxSeEFUZ0s5RkFCZktuVnNhVHV0SjEwV2UyVVYwejFoaDhRYW5oSkJDcnNyRzNnbGkza0MyQ2hOb1NzQWlIcnpJbWwxd2NRWm9IVW5oeWRtbzgwSHBDYUI4NDlsV2JteGVQSW1sNFpMZk9qZCtHWVVORXFJWmgya0lZbVdxcjRzQURsdDNlbXpiOCtRL2RGMG9pQkZRcWxiWGJvaGljUGxUZkMzSHlpTEYrSnZGNHN4aVo2SXZGYTVqZndZZ2VxdEFMNGNMYmIwbnNTa2kxMTl3TEt0amk5aGg0bzEzSXlKV3dxa2svVW80WWlDNHp3MEtUejJ5b2gxZTVUL3hzdnNWZ1Z3bjJoUmxCY0ZadEU1SURHdUwvbkh0S3pkK3BheUo1WERLL2pRdS9GdEhNUVAzOHFXbUVJNk9EeHhHOUxybGRwK2U0WlliY3R2S0NJa1JVS3A5MVdYdkg0ZUxtOHlMYStMNG9YbDMwQ1l6amlKckU0dmNHdGZlT3k3RTJpWmZ3cWxLQy9yNldVdGZsZGxSakV6QVpBa05Dci95SXZZZ3djQmlhaGNFZStRUlVTWElRc0M3Ym9zeXlRV2FGRjA1djh5NWJIWHRJNC93bFNoUkN5MGoycDcyTWFIM2kwdmtWRDNSZUhsc2hZaVlkdUp0WkpaQnVScEF1V3djaVdPZXF5Q1JMb2k4MEdTWW9sMWE3a3N1eEpKcWlmblRRcGd0Z0ZHMFloVDQ1UmhjZVVDY2IyMFF1Q2JBUDF1ZUJLeGlvNXZ5eGExMkRGbFM0UTRjYUpZQ3hJQWQzLy9GbndaMEJsRGlNcVB4RThXck05eW9tQllhZ01KK2kzTEpJNEx0Q2c2OGI4dTduSlhyMkc1L0NPTmxSYVU3ZmszS2dOUkd4OTZON3VCaFdUWjVxSWFhaFJyRDZDZmJiTTVHbzRVUjdIbUJGVmpEbUljYzdJWWhoNC9PTzBlSFZadGg0dVRIV2lNS2VhektxZVgzRHFyUUhQcXMvUW9iZUFzMFU2d0ZWNFA2MjBVbWtiNVdzb1BycFVzS09wS21JMFA2WllBT05FUG5oTGo1dEFaUFNTYmJaNWlqcUZjNlNpQ2RWOFIrNEZBWldlWlJCaXdBaTNxdU8zRXdZVmRUOE55TzFHeGdEdGJEWG5TU0paK21mbjNJaTBXR1dCL0RRMk5yU016Vm1ROTVLWFZPQTlzSURUOGxJZW9oNTIwdHpLMG1JTTYzY2cwYjFCeHZLUy8wMFovZ0lQUXlHSFdoWnZzQVV2MldmWG0xSHZqbkdRQ0pabGVxVmViR3FYemt1d2RGZjMzOUk5N3FYbWo5V3ljZ0hnM3hOcHNsek5aWmpUb05tRUJDdFRkRG96YkVETVJQVjBtVWVqU3BCKzZyb3BpZ3RQQ0loQnBvcW95aVFWYWROTEovNVdqUmE0cmh1VXlFeGwyc0F3c25JUUpzb2FTQ2tLbVpnQXZ6NHhtY2hLSkYwQm02SlpSUkJZMHp1TFBLc0x4eS9IZysrOWErZ05USHpXWldad1FKbU1pckorZE5rb056QldoejlIWEdIU1oxQUVsNVE1RW5wSjZrWXpFNjhFT1kyZWQzVnFRbERzRlpIN2FlMFZSVW9yUFBYbENHMkJFcmFEb3hzT3Bzc3lvRUFubUJwYWdzUnltRWJrQjZRdjFlR1ZwVkFZRGMrcWxMVUwxNlNyamxSci9hTmE0anpLSjZmSERFZkhHNVArQ2ZGREVhZFkrdzhXSmJTK1l4dUxQK0w5Z2l3U1RJOXk0Y2dmY3lhNE5lb2ZRaURNcXFLOWRTQ3lHOVkwMnBDcmwyRDUwTmZ4cTYzL0k4eEp6c091VFJiakVFTlpEcDQxT0Q4YUNmQmRhcHFjOGQwcktZcWU5WGJrTWh3R2ZzdENPb2g1c3A5VTlXcFZGYTJaUlVSU1VPak04QkNtcG1CUW5DNHBDUVZMRUlsMjBtTGtGREY4STJNSzRyZGVvdk5GaklpVzY5ZDNldGRhc1M0dFd6cnVtOGNxQnpLMXBVNVE1K1poejJxQVd4QmM1Q01MaWJnZE5ZRnJrT1I3R3JPVU1lRzZrazZqQzMwOWtBR1lmZkFLUk1LTllDRHdUN2l3SkRjVmNDVGdGNWpKM2F5ek0yOW9CTWsrUXo4SE9nSlBGRnIrekpoWWxiVVlyblNzNnVycFQ5bjBtSmdKa1BQT1FyVmhIYWNRYzhacWJ6YVBSb3g2c0VMWGRuVVZyUUdvajZ0eHJwSFFUUk03YWxRZ2IweS93a0dxV0dVV3F1eklhd3dpWURDRFR5NktoK3NnUnZJZ0FVUjV0RmlxRTIxa3ZGK0ozU2dab1dNY284bzZqQXRtblBpWmpSY2NackRYUWZ4alNyRUtGWEpKUWhNZ2RSTituOFFxcmgvOTdwMk1Fd2VtYXlOajBwaWVoSkhzd2pzSkNrR1lCcU5JblJySUVNMkF1Sy9NTjdWdFJrM2szNTByRnRMRE5YTEYzbHBweDBFQXc0UjZzUmtBTkJqcUpseVp0TUtzNHZUSWxvUnoyZXJEd3I5WGRjeTlhUTFRREs0b2laaVJDUkNNdHBkdzNDNHA2ellJc003cDkvUmtES01VQlNwRWF2dmdEdEJiWjdBRFZCbmtYR1poT0JwQlhvQTRRWlJJN2hiZXlzUXBrSHlRcVFTb2I1dUU4OUN0Y0JzdUZ5MVB0WDNpaEliVEIzd3poUi9TR1d3SXhzcUpaSUNzMjZNWTBRTEpHbmkxZkJYU1QzY0NrbVlmZU9TbVJMQUZjaFIxQlljQ054Q2MrQjBGU1E4Nno4RTVqdE9uUDlRZnVhQm55c2s2RGJaQzU1UFdGdkF0MTJqVUgrNE0wTmIrN1VvOGU5dXp1b0J1WUowNUdSenlCVko0RHM2eGRPVWhzaFBZaWVYaFJadlQrcHd6UURNNG9VOGxzcWtRVjVkR3lNbUpVMXV5VXFYODZ5RlBCMm0yWXpTZ1RvN0hPcTNWa0hpOEttQjdLZ0l5czRKWTFaRStNOEVlQXQ4ZGNxUUFBQTJDTUdwRWhRaVFENERPOGVpVVMxWkFWSmxjTTlNMjNaalFVM2RXT0RZVWlocmVrcTl4bTdvQno4RURVbWVqRTVzblhOTEtXbnZuZ1ZKdGFqa3huQUNhRUEyTUx0VmpZaG45a3JJNGVCdGt5MEZySngrNm1GOUdBU1dwUWFOZldsRkd0TVdFL1dRV3VxL3ozU3daQXp2eGhseVZhcGFOOVZLWVliNGhueHZXWi9HdHJOcGVpN05wYW8rWG1RRHNvVVFsVVRaODhpSXBKWGRZUWhyQmdzUkVWRnlYK2pUdDlMQUhLQUJpNnpJcjlZcWtBVldFcFg1U0puZm1qWkFBL0JEdFVGU3dUYzVBMW1ZMVZ3UmJXTFZNTEFMblBQdVcySjMweEJ2Q1VrSkc5R29WdEVFRXUxSnRUeUFGeDdVVnJWQ3hTN2hyamdyVzZpZkJDcjhGY2hvSGF2Zy9WSG9XNUZpVUQ2UDBHOGp5TE1mc3BBK0E2dmVUWFIyc0dNRUVIbGRxOUNwak5Yb0VNUmFFSE9yVlpDS0tJeWtvQjRBRThSYVdpTjZheEtoUUF1ejlEQXNnQWN2TU1Ya2U1YU0xZG9XUXBpalQzcnpKQWxuTy9oeUNPY0RsdVFHSU9yaGNoV1QxVUNoUVRsakhGSjdJUjc3U2hGS0FuaGFXalZ3U05nY1NzUUdBclhsZDdXUTB3Z1pWUnZMakUyamo0UVFXRVo5Wlh0a2N1dGJrMFp3RHB4ZjFFVFZQZXNIM0ovd2tEbUpVS3htRjY2NWptMzJvTE5RaDA3L1VkdFhYeXFDeVVuY2l3M0Z3RGxHRk1XSUJWUWdFSXE2NXZBOVYwQUwwanNtSmozZFBrS0xGV1FXZURGNzFkc2tFUFVUMGdIYXFBMlVlSFZwMlJDdDdWa3JLaXNRQTJBeVQ5aWlQTWxMOVk0SDl3SDQrVzhJQmpaaGk0ckVMeERPclczUTFib3UyY2Rlam1jQ0MrRElRcEpSRmtwTDFRTGhHcDNjdGR3TjluQUZRME04Y2l6UnRMTGxhaThxQW90S0x0ZkZtUEZVRDNIY1VhRUZuMis0MVhDQ0k4MFZTWmpyWFNFUFNtQW4rbEk4dXMySXk0V1BkQ1dZa2FCSmNaKzNYM0RPOURodE5lQzVrZmFBVzllWVFiWW1KQlJna1I0RStNUjRFQmpBakE4dGg5V09OZWdQTUdFZ3VyRmgrVFlVWGwyem5vaE8yU0FjTE44Ukt5Q3BqU3hpV0FiWEpVR2NKVHJZcjUveEVEN0dGalY3T2o1Wm1iR2VGVW5GdkNnME16WjM1Mm1OSUMxRFl2dE1DTVExeXdRTVBTZzBVdFI4cTZ0ODdZSlRBQW5EMU0wd1A3RitwQXFvVWtxQUpPOUJERWk3Sk5NQkZFUVAzQVFUUDExRlFCMEl2THlsTE5sdlNRZGJySUFITnB5ckRhWEFLZ2lCS0IzeDhMYno5bkFIWkhhek1BN2JOUmloNkZMQUF1U3NDeG1XT1pMQWJ6Ny8rS0FSZ3NCSE1aekNoakYrY0xGS09PV1oyWkNrRDdYckVQekJwaFVUbU9ES0NhRTF0VE1ZQ3EwRGw4UWtidTVRdUlDQmVGYTFWN1lPaURIOTF0S1NWc0xpa2pBZ0JGZEdzR0dEQWZXS3RTd2JuVUFWenNXRzNLT1ZGWjBYYVhTMEI3WldpSzJodGJzNWU3RGpBTWUxUG9DNkpsWkxYWSswaWwzZEVwYUwwSlQ0VnUrZGNZNExUSnRSYkJ2cjRSQkcwNkF6VXRjVmJQTWl4M0VMczdUUGVvRVJZcmdETkFQMXJOQUswcW9PT3cwN2NaNE9NYUE1aU53WnhxekkxYUFHZnoxb09HTmt0Y1Z0MFFTbWN3d09VdWdJc0x5MXM2U0t6RGhsVTU5YnJoSkZONlJEZnVJK3FwNWUrTHJkMUtPbU52bDR1VmdrR2NBYkpYQzdvR0F6eHhIeWxzT2ovOFBRWmc4WGxmNkdlK0VmeWtPZGlVY3E4dzZhaG1xbmNVRGI0R3FMZ2pCdHFkRjluT0pRTmN4T3JTVS9kN0RKQVp5bjA5R0JiUStRVFpxQURJcWZsT21sdjFIWm1SdkR2anRHbzdRSVhXR21HYkNacnFqbk9IRERTUTFOeFV3TTdDaWNJSnBEditqcG9SYmUwTDY4QmdWOWdCN2xtbGNHMEp3NWd4VHYzckF5NE1QUWR4WmQwVXpmRHhGeG1BbnhudU9xcjB0dlNBc2IyS05nUE9wWW13RU9KeXFhUXBvQ3ljTVNPOGExU242S1FTZUpVQnpNSDM4SHNNTUswTXc2Z1RWQ2JQZUhSb25BcUFjOC9sVXBxNWxjVHl1cDYyZzB5VURHQ1JYMWxDN254V3E0RlFSS20zNjFVV0gxU3RLc0JXVTlhenN3cFZjK2MrRzFWRmhLRWFWVkV2Kzd5bUxiSHZNc1N4bllmS1FHekpkMmxnN2g5K253RVdQRnJhVjBJaUV3UmdGcmNzTTZjS09Vc1FOZzAzZ1p6bTlBMVBFTVBzbFZhWUVTVEwwQndad0pDTlB0bmpEUWFBVC8veE54a2dNcFRqOGUwUTBpei9LbU9IRmNDbVptQW1ZUWVnN1libVd3WkptQy9BNHozTnp3MUR1NmJWVVR2dVhQMXV0UGpZSG03TjBzK0hoaXFSTFpSS3Y0VjFuOE1UNGRXb0RoNEV6YTFTSDE0ZlVidVRXZVFPVGUwaWd0WkU4N1lxdlVsaVFQY0M0R0hPM25ZVlRVamp0RDU2TElmT3ZNZXd1WnV4cHdBTHlEUXBxaXJPaW96SnIwWnVWbG9Cdll2Q0dlS1RqeENtYlBDTG80TDBGUVpBVU5mdk1nRDFDLzZxR2VBeEMwQ3JhVklOK0hPYm1rR0MvaHB5V01zeHIrM2pBamFoSTBNd0xNc2o2OVEvb0VyOW9BSDFsRlN3QkpJa0lGUlVmVlBBUEN2Y0FDd2UzZHhUMXRXbzNOMjBodDlYVFlKa2NITUhyMHNuc2J4a09wbTlkTGp5SU5NV0R3bndrS2Q0ZkhyVzBhVTBWcTVvbGZQYno5THJodmc2ZExESUZNbU1kNDI2SzU3bS82a3NMYld2QzJld3lrT2RyTDhNQzc5a2dLL3ZQMldBajJzTThQb1dKZUNCRk0wcVU3b3lnUDdhTlllUEhKdnNNRFBNczRWQkJrc2RhYWJVZ3krM3h5bFIxa1RJc2xWUjRhWW5MYnF4aGZKcVZEc1BnamJYOFFpMTNGSzdaSVVVaStQcGRCa21ndEZuS0VPVURnZXIxSlUzR1BERlNzWjBrK3VWUkMyMnl2a0pvZEx2RG14QUFSWjRlZk40UUV4enI1cVFhZjZ6dEpRSFI1YWxOTEwyQWd0dkdQMnZNOENQUDJLQTdYVUdJTUtGbVNQN05nY2gyN2lrdzVQSm1keTNEQ1JwWjJxQllhT0dFZEE3blJHcEo3WUtUb21xS29wWGZkdnZnMzdhdXQ0OUs2dFIwZkZ5UXNoSnhCUTVkR0FHNmNseU83cDBJbEJNSGhlQlppd3o4WTVIVlpVM0JPRkg0c0ZSSDRFeUdVSlp4OVl3N2lVaWJ4UlpVT3l5aGN3ZS91d0JXNnd3eEQrTTVJK0loa1hoakFqeHdmdnlvY1FSN1ZrODh2Y1k0UEVtQXdqQncvUmE2UUJuMjNON2dna3ozYkxLMU1adDArdWR5K0VCYW45R0p0MG1HN1VKaitLU0p2UUI5ZkFuNnlPVmRaR2k2dHUzVjdqWmVqV3JsNnFhbFUwK0JrRXpmTkJvR05BQkMwWDBnbHN5L0ZNbFRCbHF5bkRKVFZtOEpBcUQyUitJOFViQU1TWWhoVEVtWTVTWFlwa2NoeDlPbzBJSHFVdE1BTURuUkFCRnBMcmgvcFRhQ092eXdrVE9oZ3cybnBqWUFmOThLMzZSNVdOL2l3SHlSODBBMUpJOTltd0pHQW0ySzJ1enVubWh4eDVGcUNYUE1ZdlhTdVp5VkFYc0RKZ2lySzZuRVZuR0dNZkpPbU5PdldmU05LTjN0YkhxbXpTakZCVWdHS3U4bWxVVWJucmhlc2dBWXFPaFV4VU5FYkRXSTlOTjdnbktSTEM1TmlkUlhhOUl6K0hmWHV3SUhFQ0VTQzdMR1ZOck96QStLODZIWUM4ay9TeC9RSFJBcENVaWhuRmJ1UldRSHhhOXlod3ZpbDUxK3Y4dkdTQ0RWc3FOcXloclpmSksxRytBVUdXc3JiNndSck5MSjJleWlHbEdYTEtpVHY0SEdVOC9tWVBqb3BhWTFXY1NnWWRJOUt4d3N3R05ObHFNYXhNanJUVGFNRm84UVhTc2tJTHFpazVMTkJDVUxhZmJIdkZ5SUQzb0lqOFQwVlVVQkFPaExMb2xYTDBwaG1jVXltenNaa1UxU2h0SUhoN1lVK2tqZVhWNngveWVHYndLMUo1QTUzQi82NWtoUGhaTzArdGhFMk1HSUpBZkJjVC9BZ1BNR1dhR2VFc1luZWFlVnh4MkFtcEVUMTVsU21lZ29TYWZZazdyRDQyNWhoM3lFZ3lMdldtaVd3UFNNN1dwNWMzK0VzcnpPRWpHRXppZmdCZGhiRHNtRzRHU1dDN2NGVHZUQnJIYUJtVmFNUzMrcERvUXNqWUxncEZRaUc1aFRJdHZ4cTNVSG9SeTJaNHRNaFVuVWQ4b0lxTm5tTVMrMnd1RmsxcnQrTjVOUDZNcXByelhNQUUrQzJsN1lXNkFBcEVjUU9qLyt3eHdLT01CNk8xanZYc20yVHZ0R1hDNVk1TE9ISktuQjR5K0lVWEJBWmdhTG9meFErbVBPWEE1N2tJdzFuZ0w2WXpVU0lsOHpiVjR4Z1U2aVhUS0FvYnN3aUtnWGREZ0dFb0JCQ1YvRzRqM2toTlpUcy9kWDdQY2tPc0l2SWY0c29yUFRqVWFHcUl5S2tLY0lKU2ptZUVDZ3J2REhjZnpNQTVzb0V5SHZRZlRHeitRbjQzeGpHTG5PUGNZVzBuNjBhQnBtbG1VM0lZQjRMLy9CZjJEQWViekZnT0VPU09oUmNrQTd1MkxldmRFUm1NQ200WUc3Z3locUFBLzNYMncvdDRzd0FoRTVEbWtlVXcwYkEyRzlXVU9qVm8zSWJoRXZtYS9selpNSXJuU1Z5QjEwQ01uUVRPeU92UXN1ODdmOUxlM0V6T0FvYmY0UHBXMFZIdTU3YWM1c2FqNXptTnBhbFFRTFZrRGtJSm9BNW83MUt6bjBBRVYyenpBR0dDMytEckZHRVJqTTF3TnhZT21URHJIclJXaDlnMDIyaVlCV0R4ZTZYOEhDL1FvclV4Z2dEcGZSU1lrb1RlODQ3WHJNYkpibUJhdHBBclZibW5vbXdGMlFtRnN1WE4wL3B0MnBOVG1XbDNXSVZ1aWhVWm02bEVVNGN1cTZZWTZJdkkxKzcyNEtRdnZFSmpGSXNiY3lpOEIzRWZnNHlvQ0xQQ1IrUnRDOUVJYlRRbG5oTVJwT1ZPbzhxNGJNKzh5dW9WcEpyRWZYZytLcUlwc2RJVWlPcWRSYXhhaTIzcCtJRkVBOUhKbGVqUGQya1lDaloxNmttQ0dMd3ZmbXhWRk45QjZ4SnhBc3Y0TCtjRUFtOEtFY2MrMEFIVytDZ3l5UjA3d0IwZWIwTUEzMXFXM2xaUnluU0FUdDA0ay9jZHBxZkpxbElrMlJFMi9ZcWR0ZSs4b3dtYzBRbXBpeXUxbjBDMHNjbTc4Z2NVQUpqVTV5Y3VZTzkzUUE1Z0I4eUY1VHRlMXAvUGhJdGplajRhT3c0U3pteXMya2tWdmZTZ1lvSXFOMGZRMHhabHNqS2wwTDVQNUhRWXJjYUhSL2NlMHJDeGY5TzR4bFlqeGRpVlBxQzBCazR3cDV3ZXVBTFl3c2V5SlNvb0VZV2hDN0RSaENFV1F6S1BPVnhFSlNmUUg2MjJ5ZGoyc2pOemJqRlZXaDVac0dFTkFUS21IalFFdE5LUnNQZzlrZkl4NjB0THB0alp5SUlTMkI1djBoRWF3M3I5QnRqUHlYL3ZjSmorTkF1Zk5uRm1iRWRadVFKQTU1b3dGdlNnb2dZV29jdi9pWVJSa2dMWkZ5Z3RHaUVhRkU4ZFhHS0IvbFFHc3V1QzZuNXBVTEFGekFvTWlvbmVnZFNTYUFrREFpajFySnUvQUpHVGU4aTRqYVVGdDBCeGtwdW5SQk42VVBsdW44RDhsQTN5ZllsZUp5WWU4QU5DNWNuZmppcGIrd0JIOGVNZEdLeXNFUTg3SFBua0RhTEJoZzNFSnl0RXhhZWsyN05wTGt0SHdKRmF5Q3BhTHNNdEM3NFgxbU1HUnVwWlphdjhOalAyWUtOcWRheTF3T1o3Q2t0N2loWkFOMlhBaklFSE9jTlYzYVpIbFZsRUt5b3RSSTFzWkN0RDBLSndqdTF1YkFlWUZBMWdZbk9WUmQ2RnVTUTFYK005VFhuRUYwZUpHWjZ3RGtZRFAzd1YrQzBEUk1jRUhycmpKVDh5ZjdkWk5tQ2h2eisxa3d2bUsxRERKQUxZQmZtY2I0d1REZEVhbkpqbVlvbTFtdEZYUmxBSFRDT2FyN1ZqZndRSjdGcXRBVmdqbG5udThqTXh0WXgvNGUrQTJnVTV1T1pzQnFuVFhETVlIbmhtdW1SNEN0NWl6K01iVytJU0pwZGFEaHZDb2REU3VxUU81OUZWekpDT0RQZTV4M25jR2dJdFhLZUZaZlYwTHFsSzA4am94ZE9vL3VkWmlwZ0l6bEF5UTJuYzZoTlZiUlJFRGtxRjFhd1lBVVJXNUJvaWhpWGkrQ3dZbkFGZm1hZ0lYdWlZTWk2WEpVSituMEtCY0V5TjVRd0NnaWNESHFweEYyWFVSVUZHOXJBekswa1NOOHl3MDk2ci9rYWRzQmdPVXF6S0NkWSsvdjRMOHFoWlNhZGhBL09NN2tRU1dWaXNBOE5SZlFDcTZ4LzF3OEt6Wm9EWG11c25wWVRoMmxmWUQ1WXJNQzZvc0FmZHprOVlLVkExZDAwQ0ZnQnI1N1F3UThaY0pwMEZQMmJvUkhhbHBhSnRGTDdUdGdPR1NBZVF4YTRqbUN3YkFzcVMvc3VJNGM1NXhDU0JSWFdWWldRVWwxOGk4bkFKTmFhbTRiY3lHb1JaTFN0ckU2Wi8yUm9pTldjRytRZ0FrQStTZUYwc3J5aVRyN0MwTXluQk9IT21HaEx1S3Bwd0hPbjFOZk1NTWE4b0FuanAyOG5jN3BxTFpwd3hIcU9yQWVxTUdhVVdtZElkME1HQ2trVm5NbnFKZUUrUUFkU091aE91RkI4WWFBeWc3WUdsT2E0VTVFTWtBakhzTUJraEFUWiswdEo3ZU92NHJBWnNhWGxBb2MzTW9CSEkwR0lBWmNtMFhnRWQ0VWpxNmxERXh0SlU1ejNKdGZMSk55NGc0WjlmSU1MbGh0MjRwVWlkU08ybitmVlFmUVdqZVIwaGxwR3NTK3BzQVlJdk1uMjZ4c0ZTSGtSNkczWnJwMnJYdTdrZyt3b3k1ZUVFYksvam0xRkJ2TEVEeVB5ZzJlS1RpUEVKc09yc1ZjcmwyT3RoWStxVHQ5M1FiVzhoTzZUbDdUeFlrUTJMNWZnMmdYdmM5S25KempRRVlBclJJQnJDNHgxRXdBTlJzUEF0MjdhemhzNGlHSnpMRVJEMVltZUZYVkc4aXJybTdsOG1ic1dNdXBnR2JpcTJwazZ6S2VaWkU5ZndWaEd0RG5vZVc5c1d0VkhUQlBRaHFrK1plNjE3bkxQSlc2azlwNlFNcUdFQ3VqVDB2YSttb3RVYTdkVmhnVUFiVHlvMGRwYXViS1hQbmdBTzRZMXJEVXp1eHhHb2I3dTBBTWxXbFBEQThNbU5VK0M0MFdRS29Gam5tcFRjWFR4WGF1MVhQZTZ5NkMzNWp6aWNENk9MZVJOa0tSK0pYREVEeDNvc2xZS3p2dGswR2VHZGRqeDcrZ1JyWURxWGxOdERWRllMTkxaQjd4V2xOKzU3RUZhTWo3TGRiQmpzV3hpa2xtYlJsbWZOc0dVVDFERFpFOFlWR2hza3RCS1V4SmJ0SWJmeHIwMXhPUXBNL3BTa1AvTURmYmZvalF3Z3BhQ3VtWmVWQnR3NXdyMkY4cVhUVDdyWFdUYkRTbjBwSzVLbWZLM2FmNVllNXR3UElWQ090WW1PRUpEWVNCQ0s5Rk8rV1hXWFhxSXBrejJLNWNHREdyQ2RydGxvVjNwRURWcUFVZWxlVWl0YVEzWjRoNlRJZ1R4R2laQUFaNjVJQndKZmdJblFSL2xHSDB1STFJQlFwbldIaFovRnNYUk0zYnVHbnlWK1psbnRwd041TEh3SVNTVXFqdzU4S2VoS1ZlVmU0bDZaR2hyeEhjT1FyQjFSZHBIYlFIRVJIQThuLzh3OWIrb0NpWVF0WHhQWEFHamM3YmJMYjVpQ3l2dmljVXc3SVZBYXNHUTJzcjB3Tjd1V1lYR1VBOHN1UjNCaUpKSlltLzdEVEpzcE82SStDUzlpbksrOW9IVjZpY2N5VWJzUnVIT05NN0hHRFZjR3hFUTQ3Yk9aNk1jTHRtRGFqMzNoQlRoRm5OUU5Fa0dybTRHaUYwbkpPazYxRE9pTmZYNlJzVlNLbmR5KzlnUmhSdXZveHYwZ3ltOGk1LzBxaU1oaGdFelArdU5kMmhCQVhjc3JWeDZLTDFQNG5TSzVOenNOZlFuTDdpYjlKLzJ6bWZ3d0d3TWVZN1ljcXFxbTQ2Rll5TUtQelFMVXZDRjdzam9tZlFybjF3VG1ENUFZOTYxd1BNc3MxMGtJY1BxVnpiZkdRQklNZ2JOQllncVh1bE1OMmx0ckZ0NEZyZVNGaW5MRU41T1p3ME1TbW55QWlCQTh5RTd2dEtSYlNzVERsUFJpZ0h3eEFtR2dua21MV29iU2MwMXpZUWpydnFZQXJpYXZnTzI2L3B0eEd5MEVRZGJQeFdTdzBLeWV5ZGlkUnFiUlJiUk82NXV3Mm1yYTdTRzM4QzFjZmlCNGsxNS9TOGE4MCtvQ3lNZEV0R1dBWW1qbTdWekFvZTlZWHN5cURBMWpqaDhCSzFmT0YyaEFEemJyYytFSXNXUENXKzhjNlNqT1pzbWZMTEVJNG1Obys1MXdwdURFOEtLcllrbFN3WUxWQnBjK1cxNGNSME9qcU5jUkc2TXN3cTAvYnFpQmY0am0rWnhzcWJDd1lIakRSYmlSU2pGRGFuTk94cFhZS003Umd5bW1OakdqVzBKR1NHejdRME1RUmp1Y1RlVyt0RnVSY0liNXJlWTYvYlVhemgxMVYreGRTL2w5di8wWDdGLytaQzVEMFovT3NuMkFBbDNXUEdETnJVWHhnUXJtT0tNOEZLMzNESlBmK3dxMmVpb0ZGSzJYR1duSFZvUmpjdjNJcGJ5eDYyMzBabWpGY2JKOVpNWmNid3lqL3liMDhNUHlzTGtmblkyZkhmbHpLa0Uvc3AwZWxYVkUvSkhOOFUySGp6OHlHbVVreGw5ZGlkblJxcG5UbUJrdjlISmpXWHo1eFp5UTBKYmVhUkZNUjV5eU9pWnpkU1ZRbzdoNjVrMnM0L2ZpVTZWVlgyWlRPUm5lUy9ILys1My9ROHo5Qi9td2NXS3YwcXZ2ZHRGVnpCNHpHbVdNZVN3WFVmSkQraklNQS9ia01GQXdndnlnQU1LcUFpbkFwNzN1UWVDQTFGTGZZZ3c1QTJ4MGFyYXhrVktWWkpEa3hQOFl3KzVtQzdOVXkreUVoSXowTHBHemtyNHFRRElUa1JqYk10MHlLcVNic3FtR1NmNVhTK2Y4bjcyeGI0Z2lDSUJ3U0FTRVNDTDdsSUJ3WUR3SW45Ly8vWHFiN3FicWEyZnNVUkJDdGpYdHVhUUNzN2RsK205NFNxQjN3UFdaTjhMWHZyeUpLUk5SRjA4VVRQeTZHREkyaytTYnJ1U0dUaGdrVlJIUGhOQ1EvRGZSM3lMOGdmMnJ0SGsxV0VucUpnOGxCMXZQL21UZTkxbCs0YTZSNUF0eE5nL01HMVM1QWhRZTEybnVtVEwrTFZBNFpDYjNhKzMzckYrbGk3d0szU2F1S2hEVHk5cXFLdHVGVDYvZG96OVFXQlNiWXpaMnlES250K2dZZkttUU9TODRSeFEvTDZ1eDFlNDYyRGdpOXFMdTE0Z0tHSEQ2cXlvZEQzNnpuZW9hM2VTL1VDblErYlFYUDl4YzNRT1A1dnM1TDMwK1FpUW5lMC9Ia080QndzWTMvQ1hjdm96UDdGaUE4Y0lLdG50QjMvZHBIN1lKbFJCOTdndkg0ZHRqN0kwYzZEd1k4OXB1YUJhbkpvc0xUN2VOS0ZoVklCQzZGYnpUQk9BNGI1UXdYTy9wTThNVnoySEFyclZablZHMzkrSllMZkxzNkRVVGNhRm9ma1RHR0RHMFVMN2N0Ni9sUnhvMDVYMURCbC85QzJXa2VBUmljKzM0Q3VjYVUzL0gvZkFjNEVYUmZyODFWUHBDYXBaT0FkL1V6N1lEVHlJWEhVZThZcDFiYlF6b0x1SnA2QndOZ0UwVmFSbTZ5c1lVN1lQQTM0ZTJYTVU2NnJnODRaMGpyQ2Nad3JPeE1SdTNXVWo1SXBzbWNjMWh4Wk1hVUhXNGwydEtCZ2h0MWl4dVFaaVdpK2FhQlBwczVUczl3WU9OZXFWZWdGTjA0Z1U3WlBpNUk2cVgxMS92ZTA0Q1dKTUMxeG1lN0RGRHQvNTVLSUgvaGFnenowYUJQdDJ5UkVLUFBHOEtnWXpZRDkxdlh0c1pvQzQvaFR2RjB1MTg0WjYyc0poaUxLOWhiMi9OS0NENFRxT1hJS28zQzhjZldhTXVIRUhIcjU4aHJHYkZqcytpcGMyR2NvM2doVWkvVTYxRHgzb0RDUVBlaHV1K0hqT3hYWEdQWDBYc1NYM21DeTF0UGt3YWsxMTQ5K2RkRWlMOTBBNmpCLy92SU1YZ3c2ZFNuMzdzb3ZJb0hQNU03NWZTYm9oWmgxSWJITDNOb2haRE9qRGNnNGV5dEpRQkxNczFLK3hSM0cvUEdaR0ZpdnNLZ1dibFJ0M1ZGVWpTMWlCWWRxU2UwMmFQdjIwSVpIeWVDY0l2Yzk5TnlWejVOcmpHdndicXRtVzRkQzFDQ1lZdHdDZ0c4V1dIdlZvQXViWTJ0UXZSZTZkVW9ZOVMrUnhNZldMU2RFRXQwYlRqZERSRHQvQURXazlwOC9MSUlXVXdvWWl0eGY3ZUowem5jMXVHVFpjYldiYk9yNS8waWxmczYyaUp1SFBHZ1dMNmdBNjdmSHJWeFlrNEZFL0RTVHpDbmd0czFWcGFsOU84Mk5BYjhha2hBU29HZCtFZ3pVTmNFcmp6R2lNS0cya0x4NVZpMGs5cUdPRVArOTRXQk9vemE4bXZlcEJDQjY0RDBvOXlYalNXNEJpODVvU3FXYlp2RmhqRnJybXk3SWxBM3FyNDNERHZkYlBMZVBhaWZRSzFvMmwxUWFqbkxVa1hBYnFMdEVkOGFFekkxQXhBRXV3R2NuWGdhQjYvMEdIcXpTVkc1N3F6YVRVendTdTVEQ25VWU5kUHdjOTRrVVRUYTFrZTRYRjdtMG80MlpaL3F3SUlsc1ZXOXRHcSszajFTRG5ibFM2K003V2F1ZW9hVHVhL1pPcFNEMVlsQ0pQNk5nV2JaNVpwMklFeVJrRm0zUUMvNFhRWkRiQVNYczdVa3hFeHNEVDZIZEhVK0pMeTBoUVg4R2t3NFFtdWt0dnNXeE5xeFpaMFdRLzQ0T0J3eVJPWkhkY3crdVA2ay9VamE0N0VieHF0T0ZQeUJ1UXJtL2tDdDFwZ29NcW96cUYvYWt6SVlLYkxMTmR2L2RiWDNaRWxpb1lta1F5ZFBadGlBUTlRL2NiQmNya0I5MnpLbmp3cVVwdkpWaHMzdTBYS3R0Q1BSZXp3d1dweUQ4Z2RjQlNNeFRzY1pYdmk4RXJPOC84bUNYMXhBYldQSmh5VzZYZzBiOGViSE1XRlVhUFBiSkFseEZUQUpWelNXdmdMNVB3ZTZkMHlWTC9iS2x4SGpoTTN0eE9PYUJ6ZlZMNHdlWVAxWis5SEx1czdWYk1wZ1FYNDFjRHdkQXZVRmJGb0tsWEJiUG43WlM1S2lpN1JOSnREaUVqaC8rb213dnBCTFFkYzVERXNUdzI0T3kzUnJCTFFUVy82c3hMb0ZzdUJqM29HVVRjb2tCSVp0YnJWU2FZU09LMjhXL0d2dkRGWWJpR0VnYWdodG9hZWtsM2FocDF3S1lmdi92MWRrV1g2YVFDK0Z3SnJxT1JmN2FsdnhXcU54QzZKdkRlaitXMHg4cEZ4Q0VJU2pFSmZwSTFYaUIzL0FkMnpNcVlmWUNBTVM4QU5pTmpjbWtkalFmK1c1bCtPWFlmUXZVMW5Zb1U3YUtRUkIzdmNVaTFtUDVaZG4vZE1memxRZDNzaFlzQVJTd0dleXAwQ0JDekh1VElUSFJlWENhOGhnM2dTZjgwT3pwb1o5WllDWHlCeXRPNDVJekJJSVNGMHl0YjljaUxIWkh6cjNoZXR2MWFvQVFaQVJNdDJjRlZMUnREZ1AzUGE5QlNOdktRR2Z5KzRqYk95aUsvQS9hS1BnaGVKVjVEMHBMNnhsRTNmV0UzdURiMUpleHVFK3I0cXUzQU1wZERmRUNkZGdBVHhOTUoveENBQjhneUZJT3hxMUFKNGhMNEJPRnZnWmxMMGgyWGwzVzAyc0o0Qi9lS01kanNJZjZRUXJVM3pCd2taZnhqV2k1cDVUWWRocWZtSTlzUVlGc25Bd2tWYzJzVUxnTitpdUcwanhzTlhFZTJRRkNncERCTnZNMk5qSjYvaU9sYnE1am5ZMnl3UDYvSysyQUFxdmROTE52RzNaeURJRWZxZkE4cnJJTEpOb2h5UEFDaFFVaDRKdlpuR1lENEhmNUxLNVJBODhEN2hXQUNoUUJBbGQwNUZIWGVEM0ZpT2JGMFhkaWVheG50amJTaFMybGFWZGg3blhOZnBENEdjaldoU1YrVXJXRXd0Ui9BQnR3elltK0l4U2x3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuICByZXR1cm4gaW1hZ2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmbnQoKXtcclxuICByZXR1cm4gYGluZm8gZmFjZT1cIlJvYm90b1wiIHNpemU9MTkyIGJvbGQ9MCBpdGFsaWM9MCBjaGFyc2V0PVwiXCIgdW5pY29kZT0xIHN0cmV0Y2hIPTEwMCBzbW9vdGg9MSBhYT0xIHBhZGRpbmc9MjQsMjQsMjQsMjQgc3BhY2luZz0xMiwxMiBvdXRsaW5lPTBcclxuY29tbW9uIGxpbmVIZWlnaHQ9MTkyIGJhc2U9MTUyIHNjYWxlVz0zMDcyIHNjYWxlSD0xNTM2IHBhZ2VzPTEgcGFja2VkPTAgYWxwaGFDaG5sPTAgcmVkQ2hubD00IGdyZWVuQ2hubD00IGJsdWVDaG5sPTRcclxucGFnZSBpZD0wIGZpbGU9XCJyb2JvdG9fMC5wbmdcIlxyXG5jaGFycyBjb3VudD0xOTRcclxuY2hhciBpZD0wICAgIHg9NjM2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIgICAgeD01NzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTMgICB4PTQ1MCAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMiAgIHg9Mjk4NyAgeT0xMjQyICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMzICAgeD0xNzE0ICB5PTc2OSAgIHdpZHRoPTY2ICAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzQgICB4PTE5OTkgIHk9MTI2MyAgd2lkdGg9ODEgICAgaGVpZ2h0PTg3ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNSAgIHg9MTIxNCAgeT05NTEgICB3aWR0aD0xMzYgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM2ICAgeD0xNjEwICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzcgICB4PTEzNDEgIHk9NTk1ICAgd2lkdGg9MTUyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOCAgIHg9MTY1OCAgeT01OTIgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM5ICAgeD0yMDkyICB5PTEyNjMgIHdpZHRoPTYyICAgIGhlaWdodD04NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MjggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDAgICB4PTEwMyAgIHk9MCAgICAgd2lkdGg9OTAgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MSAgIHg9MCAgICAgeT0wICAgICB3aWR0aD05MSAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQyICAgeD02NjQgICB5PTEyOTQgIHdpZHRoPTExNCAgIGhlaWdodD0xMTQgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDMgICB4PTAgICAgIHk9MTMxNyAgd2lkdGg9MTI4ICAgaGVpZ2h0PTEyOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NCAgIHg9MTkxNiAgeT0xMjY0ICB3aWR0aD03MSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTExMSAgIHhhZHZhbmNlPTMxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ1ICAgeD0yMzMgICB5PTE0NTcgIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDYgICB4PTI4MjggIHk9MTI0NSAgd2lkdGg9NjggICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMTIgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NyAgIHg9MCAgICAgeT00MjkgICB3aWR0aD0xMDkgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ4ICAgeD0yMzkyICB5PTU4MyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDkgICB4PTExMiAgIHk9MTE0MyAgd2lkdGg9OTMgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MCAgIHg9MTQ0MyAgeT03NzIgICB3aWR0aD0xMjYgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUxICAgeD0yNjYwICB5PTU3NSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTIgICB4PTE3OTQgIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MyAgIHg9NTM5ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU0ICAgeD00MDYgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTUgICB4PTIwODIgIHk9OTQxICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NiAgIHg9MjUyNiAgeT01ODEgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU3ICAgeD0xNTgxICB5PTc3MSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTggICB4PTIzODMgIHk9MTExMyAgd2lkdGg9NjcgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OSAgIHg9MzcyICAgeT0xMTQwICB3aWR0aD03MyAgICBoZWlnaHQ9MTU2ICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYwICAgeD01MzkgICB5PTEzMDcgIHdpZHRoPTExMyAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjEgICB4PTE2ODggIHk9MTI2OSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTkzICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD01MSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MiAgIHg9NDExICAgeT0xMzA4ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYzICAgeD04MDAgICB5PTc3OSAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjQgICB4PTE0MjEgIHk9MCAgICAgd2lkdGg9MTc3ICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xNiAgICB4YWR2YW5jZT0xNDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NSAgIHg9MjcwOCAgeT03NTIgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY2ICAgeD0yMjIxICB5PTkzOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjcgICB4PTE4MTEgIHk9NTkyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OCAgIHg9MTY1MCAgeT05NDYgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY5ICAgeD0yNDk2ICB5PTkzNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzAgICB4PTI2MzAgIHk9OTMyICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MSAgIHg9MTk2MCAgeT01OTAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcyICAgeD05MTYgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzMgICB4PTI5NiAgIHk9MTE0MiAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NCAgIHg9MjcyICAgeT03OTAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc1ICAgeD03NjcgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzYgICB4PTI3NjIgIHk9OTI2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NyAgIHg9MjE5NyAgeT03NjUgICB3aWR0aD0xNjMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc4ICAgeD0xMDY1ICB5PTk1MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzkgICB4PTE1MDUgIHk9NTk0ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MCAgIHg9MTkzOCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgxICAgeD0yMjIyICB5PTIwNyAgIHdpZHRoPTE0MSAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODIgICB4PTEzNjIgIHk9OTQ5ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MyAgIHg9MjEwOSAgeT01ODggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg0ICAgeD02MTcgICB5PTk1NSAgIHdpZHRoPTEzOCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODUgICB4PTEyOCAgIHk9NzkyICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NiAgIHg9Mjg3MCAgeT03NDkgICB3aWR0aD0xNDcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg3ICAgeD0yMDAyICB5PTc2NyAgIHdpZHRoPTE4MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODggICB4PTMxMiAgIHk9OTY2ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OSAgIHg9MTU3ICAgeT05NjggICB3aWR0aD0xNDMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkwICAgeD0xNTA2ICB5PTk0NyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTEgICB4PTY1OCAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MiAgIHg9Mjk0NSAgeT0yMDQgICB3aWR0aD0xMTEgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkzICAgeD01NjcgICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTQgICB4PTE1NzAgIHk9MTI3MSAgd2lkdGg9MTA2ICAgaGVpZ2h0PTEwNSAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NSAgIHg9MCAgICAgeT0xNDU4ICB3aWR0aD0xMjEgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTcyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk2ICAgeD0yNjIyICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NDkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTcgICB4PTE1ODUgIHk9MTEyMSAgd2lkdGg9MTE5ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OCAgIHg9Njc3ICAgeT00MTggICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk5ICAgeD0xNDUzICB5PTExMjMgIHdpZHRoPTEyMCAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAwICB4PTEyMDkgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDEgIHg9MTMyMCAgeT0xMTI1ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMiAgeD0xODY2ICB5PTQwOCAgIHdpZHRoPTEwMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9NiAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAzICB4PTEzNCAgIHk9NjEyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDQgIHg9MjYyNyAgeT0zOTUgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNSAgeD0xMDUwICB5PTc3NiAgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA2ICB4PTEzMjcgIHk9MCAgICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDcgIHg9MjQ5NSAgeT00MDEgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOCAgeD0yNzU1ICB5PTM5MiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA5ICB4PTE5NzMgIHk9MTExNyAgd2lkdGg9MTY4ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTAgIHg9MjE1MyAgeT0xMTE1ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMSAgeD0xMTgxICB5PTExMjYgIHdpZHRoPTEyNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEyICB4PTI2NyAgIHk9NjExICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTMgIHg9NDAwICAgeT02MDAgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNCAgeD0yMjgxICB5PTExMTMgIHdpZHRoPTkwICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE1ICB4PTE3MTYgIHk9MTEyMCAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTYgIHg9NDU3ICAgeT0xMTQwICB3aWR0aD05NSAgICBoZWlnaHQ9MTU1ICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTIzICAgIHhhZHZhbmNlPTUyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNyAgeD0xODQ1ICB5PTExMTcgIHdpZHRoPTExNiAgIGhlaWdodD0xMzUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE4ICB4PTI3NzIgIHk9MTEwMCAgd2lkdGg9MTIyICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTkgIHg9MjQ2MiAgeT0xMTEzICB3aWR0aD0xNjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTEyMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMCAgeD0yNjM3ICB5PTExMDYgIHdpZHRoPTEyMyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIxICB4PTAgICAgIHk9NjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjIgIHg9MjkwNiAgeT0xMDk3ICB3aWR0aD0xMTcgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMyAgeD00NTggICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI0ICB4PTI0NTEgIHk9MjA2ICAgd2lkdGg9NjEgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjUgIHg9MzQ5ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNiAgeD0yMzc4ICB5PTEyNTkgIHdpZHRoPTEzOCAgIGhlaWdodD03OSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYwICB4PTUxMyAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjEgIHg9MjE3ICAgeT0xMTQyICB3aWR0aD02NyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MiAgeD0xMzQxICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MjUgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYzICB4PTEzMDAgIHk9Nzc0ICAgd2lkdGg9MTMxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjQgIHg9NzAyICAgeT0xMTI5ICB3aWR0aD0xNDkgICBoZWlnaHQ9MTQ5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTMwICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NSAgeD00NjUgICB5PTk1NSAgIHdpZHRoPTE0MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY2ICB4PTIzNzUgIHk9MjA2ICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjcgIHg9MjA1ICAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OCAgeD0yNzE2ICB5PTEyNTEgIHdpZHRoPTEwMCAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY5ICB4PTk5NSAgIHk9NTk5ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzAgIHg9MTM2OCAgeT0xMjczICB3aWR0aD05OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTcxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MSAgeD0xMTMxICB5PTEyNzcgIHdpZHRoPTExMCAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcyICB4PTIyNTEgIHk9MTI2MSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTgxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT04OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzMgIHg9MTMzICAgeT0xNDU4ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NCAgeD0xMTY4ICB5PTU5NyAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc1ICB4PTMzMyAgIHk9MTQ0OCAgd2lkdGg9MTA1ICAgaGVpZ2h0PTU5ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzYgIHg9MTgxNSAgeT0xMjY4ICB3aWR0aD04OSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTYwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NyAgeD04NjMgICB5PTExMjkgIHdpZHRoPTEyMSAgIGhlaWdodD0xNDcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MjkgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc4ICB4PTg5OSAgIHk9MTI4OCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzkgIHg9NzkwICAgeT0xMjkwICB3aWR0aD05NyAgICBoZWlnaHQ9MTEyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MCAgeD0yNTI4ICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgxICB4PTg2NiAgIHk9NTk5ICAgd2lkdGg9MTE3ICAgaGVpZ2h0PTE2NiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODIgIHg9Mjg5MyAgeT05MjMgICB3aWR0aD0xMTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MyAgeD0yOTA4ICB5PTEyNDIgIHdpZHRoPTY3ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NjIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg0ICB4PTIxNjYgIHk9MTI2MSAgd2lkdGg9NzMgICAgaGVpZ2h0PTgyICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODUgIHg9MTQ3OSAgeT0xMjcxICB3aWR0aD03OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NiAgeD0xMjUzICB5PTEyNzQgIHdpZHRoPTEwMyAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg3ICB4PTEwMDggIHk9MTI3NyAgd2lkdGg9MTExICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODggIHg9MjU0MiAgeT03NTggICB3aWR0aD0xNTQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OSAgeD0yMzcyICB5PTc2MCAgIHdpZHRoPTE1OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkwICB4PTExMjkgIHk9Nzc2ICAgd2lkdGg9MTU5ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTEgIHg9OTI1ICAgeT03NzcgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MiAgeD0xNjIgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkzICB4PTMyNCAgIHk9MjE0ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTQgIHg9MCAgICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NSAgeD0xMzU5ICB5PTIxMCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk2ICB4PTE4MTQgIHk9MjA4ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTcgIHg9MTAxNiAgeT0wICAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTk5ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0yMyAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OCAgeD0xNzkyICB5PTc2OSAgIHdpZHRoPTE5OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTUwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk5ICB4PTExNzggIHk9MCAgICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDAgIHg9MjkyMiAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMSAgeD02NDEgICB5PTIxNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAyICB4PTc3NSAgIHk9MjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDMgIHg9MTk3NiAgeT0yMDcgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNCAgeD0xMDE4ICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA1ICB4PTExMTIgIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDYgIHg9OTA5ICAgeT0yMTMgICB3aWR0aD05NyAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNyAgeD0yMTEwICB5PTIwNyAgIHdpZHRoPTEwMCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yOCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA4ICB4PTAgICAgIHk9OTY5ICAgd2lkdGg9MTQ1ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDkgIHg9MTUyMSAgeT0yMDggICB3aWR0aD0xMzcgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMCAgeD0yMTg0ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjExICB4PTIwMzEgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTIgIHg9MTg3OCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMyAgeD0yNzY5ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE1ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE0ICB4PTEyMDYgIHk9MjEwICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTMgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTUgIHg9Mjc5ICAgeT0xMzE2ICB3aWR0aD0xMjAgICBoZWlnaHQ9MTIwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQwICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNiAgeD0yNjU1ICB5PTIwNiAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNzQgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTAgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE3ICB4PTI2MjUgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTggIHg9MjQ4MSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOSAgeD0yMzM3ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIwICB4PTE2NzAgIHk9MjA4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjEgIHg9NDg2ICAgeT0yMTQgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMiAgeD0yMzYwICB5PTkzOSAgIHdpZHRoPTEyNCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIzICB4PTEyMSAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD03ICAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjQgIHg9MTYwNCAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNSAgeD0xNDczICB5PTQxMiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI2ICB4PTE3MzUgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjcgIHg9NTMyICAgeT02MDAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOCAgeD0yOTI2ICB5PTU2OSAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI5ICB4PTI1MjQgIHk9MjA2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzAgIHg9OTk2ICAgeT0xMTI5ICB3aWR0aD0xNzMgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTEzNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMSAgeD0xOTc5ICB5PTQwNyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMyICB4PTEwNzYgIHk9NDE1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzMgIHg9OTQzICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNCAgeD04MTAgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM1ICB4PTI3OTMgIHk9NTcyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzYgIHg9NzcyICAgeT02MDAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNyAgeD0yOTcwICB5PTM4OCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM4ICB4PTY2MyAgIHk9NjAwICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzkgIHg9MCAgICAgeT0xMTQzICB3aWR0aD0xMDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MCAgeD0yODEwICB5PTIwNSAgIHdpZHRoPTEyMyAgIGhlaWdodD0xNzMgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NSAgICAgeGFkdmFuY2U9OTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQxICB4PTAgICAgIHk9NzkyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDIgIHg9MjYwICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MyAgeD01MzggICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ0ICB4PTM5OSAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDUgIHg9MjgzMSAgeT0zOTAgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NiAgeD0yMjUzICB5PTU4MyAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ3ICB4PTE0MCAgIHk9MTMxNyAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEyOCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDggIHg9NTY0ICAgeT0xMTI5ICB3aWR0aD0xMjYgICBoZWlnaHQ9MTUzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OSAgeD0yMTExICB5PTQwNyAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUwICB4PTIyMzkgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTEgIHg9MjM2NyAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MiAgeD02NzIgICB5PTc3OSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUzICB4PTc0OSAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTQgIHg9ODgzICAgeT0wICAgICB3aWR0aD0xMjEgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NSAgeD0xNzQ0ICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmtlcm5pbmdzIGNvdW50PTE2ODZcclxua2VybmluZyBmaXJzdD0zMiAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg2ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04OSAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTIyMSBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD02NSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NzQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTQgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTcgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODQgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODYgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9NzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9NzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9ODUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTggYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTUgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk5IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIwIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NyAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTE0XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04OSAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIxIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTIgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTUgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NCAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDYgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjEgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDYgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05OSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NSAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTczIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk3ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDIgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE3MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NjUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQge2dldFRvcExldmVsRm9sZGVyfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAndGljaycsIGhhbmRsZVRpY2sgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIGNvbnN0IHRlbXBNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVUaWNrKCB7IGlucHV0IH0gPSB7fSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICB8fCBmb2xkZXIuZ3JhYkRpc2FibGVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LnByZXNzZWQgJiYgaW5wdXQuc2VsZWN0ZWQgJiYgaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICBpZiggaW5wdXQuaW50ZXJhY3Rpb24ucHJlc3MgPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgICAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbi5zdWIoIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTsgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQud29ybGRUb0xvY2FsKGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9OT1RFOjogaW4gb3J0aG9ncmFwaGljIG1vZGUsIHdlJ3ZlIGFscmVhZHkgbXV0YXRlZCB0aGUgcG9zaXRpb24gb2YgZm9sZGVycyxcclxuICAgICAgICAgIC8vbWVhbmluZyB0aGVyZSBjb3VsZCBiZSBzb21lIGluY29uc2lzdGVuY3kgd2l0aCB0aGUgbW91c2VJbnRlcnNlY3Rpb24gcG9pbnQgbm8gbG9uZ2VyIGJlaW5nIHJpZ2h0Li4uXHJcbiAgICAgICAgICAvL0kgdGhvdWdodCB0aGlzIHdhcyBwbGF5aW5nIGEgcm9sZSBpbiBhIGJ1ZyB3aXRoIG9ydGhvZ3JhcGhpYyBmb2xkZXIgbGF5b3V0LCBhcHBlYXJzIG9rIGZvciBub3cuXHJcbiAgICAgICAgICBmb2xkZXIucG9zaXRpb24uY29weShpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcblxyXG4gICAgICAgICAgZm9sZGVyLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgIGlmKCBoaXRPYmplY3QgPT09IHBhbmVsICl7XHJcbiAgICAgICAgICBoaXRPYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGhpdE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlUGxhbmUuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoIGlucHV0Lm1vdXNlQ2FtZXJhLmdldFdvcmxkRGlyZWN0aW9uKCBpbnB1dC5tb3VzZVBsYW5lLm5vcm1hbCApLCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZVBsYW5lICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICAgIGlmKCBoaXRPYmplY3QgIT09IHBhbmVsICl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZCA9IGZvbGRlcjtcclxuXHJcbiAgICAgICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5zZWxlY3RlZC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlT2Zmc2V0LmNvcHkoIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkuc3ViKCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgICBcclxuICAgICAgdGVtcE1hdHJpeC5nZXRJbnZlcnNlKCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggdGVtcE1hdHJpeCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcblxyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICBpbnB1dE9iamVjdC5hZGQoIGZvbGRlciApOyBcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYmJlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaW5wdXQuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG5cclxuICAgICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJSZWxlYXNlZCcsIGZvbGRlciApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiZXhwb3J0IGNvbnN0IGdyYWJCYXIgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQWdDQVlBQUFDaW5YNkVBQUFBQ1hCSVdYTUFBQzRqQUFBdUl3RjRwVDkyQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBRHNrYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QZ284ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMall0WXpFek1pQTNPUzR4TlRreU9EUXNJREl3TVRZdk1EUXZNVGt0TVRNNk1UTTZOREFnSUNBZ0lDQWdJQ0krQ2lBZ0lEeHlaR1k2VWtSR0lIaHRiRzV6T25Ka1pqMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M4d01pOHlNaTF5WkdZdGMzbHVkR0Y0TFc1ekl5SStDaUFnSUNBZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB3YUc5MGIzTm9iM0E5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmNHaHZkRzl6YUc5d0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRVYyZEQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sUlhabGJuUWpJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenAwYVdabVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM1JwWm1Zdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WlhocFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzlsZUdsbUx6RXVNQzhpUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMGIzSlViMjlzUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5NGJYQTZRM0psWVhSdmNsUnZiMncrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZRM0psWVhSbFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qSTFPak15TFRBM09qQXdQQzk0YlhBNlEzSmxZWFJsUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTmIyUnBabmxFWVhSbFBqSXdNVFl0TURrdE1qaFVNVFk2TXpjNk1qTXRNRGM2TURBOEwzaHRjRHBOYjJScFpubEVZWFJsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPak0zT2pJekxUQTNPakF3UEM5NGJYQTZUV1YwWVdSaGRHRkVZWFJsUGdvZ0lDQWdJQ0FnSUNBOFpHTTZabTl5YldGMFBtbHRZV2RsTDNCdVp6d3ZaR002Wm05eWJXRjBQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0elBDOXdhRzkwYjNOb2IzQTZRMjlzYjNKTmIyUmxQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tsRFExQnliMlpwYkdVK2MxSkhRaUJKUlVNMk1UazJOaTB5TGpFOEwzQm9iM1J2YzJodmNEcEpRME5RY205bWFXeGxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa1J2WTNWdFpXNTBTVVErWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qZGxOemRtWW1aakxUZzFaRFF0TVRGbE5pMWhZemhtTFdGak56VTBaV1ExT0RNM1pqd3ZlRzF3VFUwNlJHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09tTTFabU0wWkdZeUxUa3hZMk10WlRJME1TMDRZMlZqTFRNek9ESXlZMlExWldGbE9Ud3ZlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwVFpYRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrZ2NtUm1PbkJoY25ObFZIbHdaVDBpVW1WemIzVnlZMlVpUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WVdOMGFXOXVQbU55WldGMFpXUThMM04wUlhaME9tRmpkR2x2Ymo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21sdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRwak5XWmpOR1JtTWkwNU1XTmpMV1V5TkRFdE9HTmxZeTB6TXpneU1tTmtOV1ZoWlRrOEwzTjBSWFowT21sdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwM2FHVnVQakl3TVRZdE1Ea3RNamhVTVRZNk1qVTZNekl0TURjNk1EQThMM04wUlhaME9uZG9aVzQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOXpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZMjl1ZG1WeWRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwd1lYSmhiV1YwWlhKelBtWnliMjBnWVhCd2JHbGpZWFJwYjI0dmRtNWtMbUZrYjJKbExuQm9iM1J2YzJodmNDQjBieUJwYldGblpTOXdibWM4TDNOMFJYWjBPbkJoY21GdFpYUmxjbk0rQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajV6WVhabFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4Tmkwd09TMHlPRlF4Tmpvek56b3lNeTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGphR0Z1WjJWa1BpODhMM04wUlhaME9tTm9ZVzVuWldRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0eFBDOWxlR2xtT2tOdmJHOXlVM0JoWTJVK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajQyTkR3dlpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0ek1qd3ZaWGhwWmpwUWFYaGxiRmxFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQZ29nSUNBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBbzhQM2h3WVdOclpYUWdaVzVrUFNKM0lqOCtPaEY3UndBQUFDQmpTRkpOQUFCNkpRQUFnSU1BQVBuL0FBQ0E2UUFBZFRBQUFPcGdBQUE2bUFBQUYyK1NYOFZHQUFBQWxFbEVRVlI0MnV6WnNRM0FJQXhFVVR1VFpKUnNrdDVMUkZtQ2RUTGFwVUtDQmlqby9GMGhuMlNrSnhJS1hKSmxyc09TRndBQUFBQkE2dktJNk83QlVvclhkWnUxL1ZFV0VaZVpmYk41bS9aYW1qZksrQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0JmdWFTbmE3aS9kZDFtYlgrVVNUck43SjdOMjdUWDByeFJ4Z25nWllpZklBQUFBSkM0ZmdBQUFQLy9Bd0F1TVZQdzIwaHhDd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDEnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIC8vIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuNTtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAsIGltYWdlLmhlaWdodCAvIDEwMDAsIDEsIDEgKTtcclxuXHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxufSgpKTtcclxuXHJcbmV4cG9ydCBjb25zdCBkb3duQXJyb3cgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qRTRPakkxTFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRveE9Eb3lOUzB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvek1EUXlZakkwWlMxaU16YzJMV0kwTkdJdE9HSTRZeTFsWlRGalkySXpZV1UxTURVOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pNd05ESmlNalJsTFdJek56WXRZalEwWWkwNFlqaGpMV1ZsTVdOallqTmhaVFV3TlR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NVVpbHowQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFKZFNVUkJWSGphN04zTGNjSkFFSVRoUnVXN25jVWVUUWhrUUFpSURNZ0loVUlJY0ZRV0pnSjg4Rktsb3Z3QXJOMmQ2WjQ1Y1pHQS9UOXZpWWZ0eGVWeVFZenVkTEVFQVNBbUFNUUVnQmpKZVdsMXh5bWxOd0FIQU1keEhIdkZ4VThwRFFDV0FGYmpPSDdJN0FDVCtPOEFObmtoRk9Odjhob2M4cHJ3QTdpSmZ4MHBCSlA0MTJtR29ETVFYd3JCTi9HYkl1aU14SmRBOEV2OFpnZzZRL0dwRWR3UnZ3bUN6bGg4U2dRUHhLK09vTVlPTUR3WW53ckJFL0duQ0FiWEFQS1RYLy9qRkp1VVV1ODRmdjlrL091c1MvOFFkQWJsMzg3ZUk0TDhtUGN6bktyb1RsaHlCMWpPZUM1WENHYU1YMkl0cXdGWUFUaXBJU2dRLzVUWDBoZUEvTjYyRklKUzhVdCtUbEQwSWxBSmdjZjRWVjRHS2lEd0dyL1crd0RVQ0R6SHJ3YUFGWUgzK0ZVQnNDRmdpRjhkQUFzQ2x2aE5BSGhId0JTL0dRQ3ZDTmppTndYZ0RRRmovT1lBdkNCZ2pXOENnSFVFelBITkFMQ0tnRDIrS1FEV0VDakVOd2ZBQ2dLVitDWUJUQkQwQU02MUVSU0lmd2JRVzR4dkZrQkdjTXc3UVRVRWhlS3Y4bk5CQURDTVFERytlUUMxRUtqR0I0Q0ZsNzhSbEZKYTR1c1hURjduakpSdnozNWVEL0ZkQVNpSUFLcngzUUVvaEFDcThWMWNBMVM2SnBDTTd4S0FRUVJ1NDdzRllBaUI2L2l1QVJoQTRENitld0FORVZERXB3RFFBQUZOZkJvQUZSRlF4YWNDVUFFQlhYdzZBQVVSVU1hbkJGQUFBVzE4V2dBeklxQ09UdzFnQmdUMDhla0JUQkRzbmpoMHh4NWZBa0JHTUFEWVBuRElOaCtEQUtDSFFDYStGSUE3RVVqRmx3UHdCd0s1K0pJQWZrQWdHUjl3K0pXd09lZjZ6V0RWK1BJQVl1TGZ4Z1dBV0lJQUVCTUFZZ0pBak9SOERnRCs2T3pndjR1eTlnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBoID0gMC4zO1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAtMC4wMDUsIC0wLjAwNCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja21hcmsgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qTXpPalV6TFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRvek16bzFNeTB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvMk9EY3hZVGs1WXkwek5qRTVMVGxrTkdFdE9EZGtOaTB3WVdFNVlUUmlOV1U0TWpjOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pZNE56RmhPVGxqTFRNMk1Ua3RPV1EwWVMwNE4yUTJMVEJoWVRsaE5HSTFaVGd5Tnp3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NXo5UlQzQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFUdFNVUkJWSGphN0p6YmI1UkZHTVovMnhiQ3ZWaEFTRXhVaUkxNDR3MGhRdEhFR3JIZ0lTcWdONktndE5ZV0FiMHcwV28xWHFyYlBiU2xva1lTeGZNaGVtWC9BYTd3R0FWcThYVHAzMERYaTVtSm0wYTJ1OXYzL2I2WjJYbHVkck9IZHcvUE16UFArNzR6WDZGV3F5R0ZnWUVCRWxwR0QvQWVjQ3R3Qi9EYmNtK1ltNXNUKy9DdTlQL25pbTZnQ0R3Q1hBdDhEVnlYNVJkSUFzZ1BCYUFFak5ROWRpUHdGYkE1Q1NCK1RBRlAvYy9qVzRIUGdMNGtnSGd4Q3d3MWVQNW00R043bXdRUUVib3MrVTgwOGRxdHdFZjJOZ2tnRXJjLzB5VDVEbjEyT2RpU0JCQSsrYVVXeVhmWUFud0RYSjhFRUc2cU53a01yeURHWnBzaTNwQUVFQjZxVjNEN3JhSVArTkttaWtrQWdlQXQ0SWhndkp2c1RKQUU0RGtLd0NuZ3NFTHNzMGtBL3EvNXM4QWhoZGpUd0VGcGQ1b2dTMzVWYWVUUEFrOERpMGtBL3BKZkVsN3pIVTdTdUhLWWxnQVAxdnl5a050Zmloa3Q4cE1BWkVrYVZvaGJWWXFiQkNDSVU4Q1RDbkZMd0pqMmwwOENXTm1hLzdhUzI2OEN4NlFOWHhLQXJIbWVCaDVYV2s3R3NpQS9Ud0dNWWZhL2hVcCttZllhTzgyNC9lR3N5TTlMQUM5Z21pUHZBenNESTcvTHJzMURTaU4vS0k4ZmxDWEdnVmZ0L1Y3Z0RMQXJJQUZNaCtyMmZSREFTOERFa3NjMkFoOEMvUjNzOXN2QWFKNVRXbGJrdjN5RjU5WmpkcjFzOTNqYTEzTDdGZXYyYXpFTFlMd0IrUTVyTWIzdWJSNGF2cE5LYm44YWVBYTRuTGU2dFEzZlJKT3Y3UVcrOEdnbTZMRWpWS094TTRNNUQzQTU3eCtwS1lBWDZ3eGZzOWdBZkFMczhJQjhyY2FPS3h2WGZGQzVsZ0RHZ1ZmYWZLOHpocnR5L0UrMFhIa2xMN2VmcFFBbVdwajJseFBCYlRuOEo3UG8xZlpIOFF6U0Fuak5qbjRKck1lY2pzbXFXRlFBM2xWeSt5WHI5b2xkQUhjS3g3c2ErRHdEWTloajgveURpcW5lWWljSTRGSGdSK0dZYTVXekE4M0d6aFJ3MUZmeU5RVHdDM0NQdlpYRU91QlR6RVVVSkxFcWcxVFBXL0sxVE9DZndDQndVVGp1TmNpV2pic3haVmlOVkMrMzJyNHZhZUFmd0YzQWduRGNUVllFdHd1TlVBM3l5NWpkdTNTeUFBQitCM1lyTEFjYkJPb0U3eWhOKzVOMnpTY0p3R0FlZUFENFRqaHVMNmFCMUtvbjZMYmtQNlkwOG8valNZWFBGd0VBbkFjZVZoREJWUzFtQjY2eG8wSCtGS2F4czBoZ3lLb2RmQUY0RVBoSnFVNnczRXl3eWhxelEwcmtqNFJJZnBZQ0FMZ0U3TEV6Z2lSY3hiQy93Y2l2b0ZQZWRlUUhpNnkzaFAxbGplRzhVb3E0TkRzb1lJbzhXanQ1Z2lZL0R3SFVwNGkvS21RSForcEVVTURzNU5GdyswVXlPTFFScXdEY2NuQXY4TDF3M0hYQWFac2l2cTVrK0lyQUNTSkJucWVENTRFRHdBZkFMWUp4TndIZktwbXlzaVYvTVJZQjVIMHk2QUt3SC9oQk9PNXFZSTJDNFRzYUUvaytDQURNMWJIM0lsOHhsRVRWR3I0YWtjR1hzNEYvQTNmYkdjRTNWQWlvdGgrcUFNQjBFWGQ3Sm9KSlBOekdGYXNBd0RTUUJwSGZWTkt1Mno5RzVQRHhlUGdDOEJCd0x1ZVJmeUxHTlQ4RUFZRFpUSElBK1FaU3Mydis4ZGpjZm1nQ2NIV0MrNUZ2SUMzbjlrYzdoWHpmQmVDTTRSN2t5OFlkNS9aREZRRDgxMEM2cVBnWjBidjlrQVZRbnlKcUZJdmV4R3ptSUFuQWIxd0M3aE0yaGtYZ1dUb1lvVjBsekRXUUpGTEU2Qm83blNBQWx5THVZMlVOcEFvWlhvb3RDVUFlQzVnRzBzOXRrajlLUXRBQ0FOTkFHcVMxUFlhbFJINDhBbkFwWXJQYnk0b0VkbWdqQ2FENUZIRXZqYmVYdllFcDd5WkVLQURuQ2ZaYkVmd0RQSTg1TCtESWY0NE9hT3kwZzM4SEFNL2U3Z3VJUng5NEFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFRVNVUkJWR2lCN2RoQkRvTXdERVJSN2pUaUpDUHVmNVd1bXBoVnhYeWtWSkd6SXBKNWNnc2tkbzRManFPQnJRQTlIQTAwME1EK3dQVmp2QVdjRkJqekVCZ0pwTUNjWjhCTUlBVEtQQUpLQWhsUTV3bndUY0FwTUM1RFlDU1FBdmVyNThCTUlBVEtEUkZRRXNpQUdrOEFVMEFRTUFVRUFWTkFFREFGQkFGVFFCQXdCUVFCVTBBUU1BVUVBVk5BRURBRkJBRlRRQkR3Y2dEL0JQNG40c2ZJWHlUOEt2T1BDWC9PZkVIQlN4cGZWUEd5empjV3ZMWHh6UlZ2Nzd6QXdDVU9MN0p3bWNjTFRWenE4bUk3TC9mUGtrSUU0SmFITjEyNDdlT05KMjU5ZWZOOWkxbHpBRkdERmgzQ2xLaFZCMUV6Yk5saDNJajd3eFBOQmhwb1lEV1FqZ2EyQUQ1Uy9DeUl2Ym1xN2dBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ0J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgdW5kb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVQU1VSQlZHaUI3ZGd4Q3NRd0RBVEEvRW5vSlVMLy84cFZzV1dsT0x3TFVUQnlGZmJFc05jNGRpNG4xOVhBVVlCc3JnWWFhT0I4d1A4c0dqQVdjQm93Rm5BYU1CWndHakFXY0JqUVVBRUNKQXhqUUtpQUFmSjgyZ1JtQlJDWUZWQmdWRUNCeCsvYmdLWnNHOGdEKzBDcXNBK2tDUUJZS3dEQU9vSUFTd1VFV0dZZ0lGYUFnRGlFQWFFQ0JvUXBFSmdWUUdDT29jQ29nQUx3anZTb0FBUDNJQTRvQ3dnTktBc0lEV2c1d1A0RlpRRW5BV1VCSndGbGdUc3IyMUJHVnJXcHpxem94Ukt5bXBkcnpFb09HRXRXY2NoYXM0S0Rac3JlUDJ6bjdQVUx4M2dFZ1ZHZzZ0bzNDeFJkZlVPQm91dC9LRkQ2Q2NSWVFFakFXRUJJd0ZnZ3ozM3dpMllERFRSUURhQ3JnU09BSDhIOEtxZ2dZcEFVQUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDUnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuIiwiLyoqIFxyXG4gKiBCaWcgYnV0dG9uIHdpdGggYW4gaW1hZ2Ugb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBBbHNvIHVzYWJsZSBhcyBhbiAneHkgY29udHJvbGxlcicgdmlhIGFkZFhZQ29udHJvbGxlciBtZXRob2QuXHJcbiAqIFxyXG4gKiBBUEkgc3ViamVjdCB0byBjaGFuZ2UuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtpc0NvbnRyb2xsZXJWaXNpYmxlfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGZ1bmMgPSB1bmRlZmluZWQsXHJcbiAgcHJlc3NpbmcgPSB1bmRlZmluZWQsXHJcbiAgaW1hZ2UgPSBcInRleHR1cmVzL3Nwb3RsaWdodC5qcGdcIiwgLy9UT0RPIGJldHRlciBkZWZhdWx0XHJcbiAgd2lkZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjaGFuZ2VDb2xvck9uSG92ZXIgPSB0cnVlLCAvL3F1aWNrIGhhY2s6IGNvbG9yIHBpY2tlciB3YW50cyB0aGlzIHRvIGJlIGZhbHNlXHJcbiAgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gICAvL1hYWCBtYWdpYyBudW1iZXJzLi4uXHJcbiAgaWYgKCFoZWlnaHQpIGhlaWdodCA9IExheW91dC5QQU5FTF9XSURUSCAgKiAod2lkZSA/IDAuOTQgOiAwLjI1KTtcclxuICBcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqICh3aWRlID8gMC45NCA6IDAuMjUpIC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBidXR0b25EZXB0aDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCAxLCAxICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIC8vbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBjb25zdCBob3ZlckNvbCA9IG9iai50ZXh0ID8gMHg4ODggOiAweEZGRkZGRjtcclxuICAgICAgICBjb25zdCBub0hvdmVyQ29sID0gb2JqLnRleHQgPyAweDExMSA6IDB4Q0NDQ0NDO1xyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChoaWdobGlnaHRMYXN0UHJlc3NlZCAmJiBsYXN0UHJlc3NlZCA9PT0gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGxhc3RQcmVzc2VkQ29sICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgPyBob3ZlckNvbCA6IG5vSG92ZXJDb2wgKTtcclxuICAgICAgICAgICAgaWYgKHN1Ymdyb3VwLnRpcFRleHQpIHNldFZpc2liaWxpdHkoc3ViZ3JvdXAsIHN1Ymdyb3VwLnRpcFRleHQsIGludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgICBpZiAob2JqLmVycm9yKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4QUEzMzMzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldygpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIHN1Ymdyb3VwLmhpdHNjYW4gPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogbWFraW5nIHRoaXMgc2luZ2xlIGVsZW1lbnQgcmF0aGVyIHRoYW4gYXJyYXksXHJcbiAgICAgICAgLy90aGF0IG1lYW5zIHRoZXNlICdzdWJncm91cCcgYnV0dG9ucyBhcmVuJ3QgYWN0aW5nIGV4YWN0bHkgYXMgbm9ybWFsIGRhdC5HVUlWUiBjb250cm9sbGVyc1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IGJ1dHRvbnMubWFwKGI9PmIuaGl0c2Nhbik7Ly8ucHVzaChwYW5lbCk7XHJcbiAgICBncm91cC5oaXRzY2FuLnB1c2gocGFuZWwpO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKSB7XHJcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5iLnVwZGF0ZVZpZXcoKSk7XHJcbiAgfVxyXG4gIFxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+e1xyXG4gICAgICAgIGIuaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgLy9pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlU2xpZGVyIGZyb20gJy4vc2xpZGVyJztcclxuaW1wb3J0IGNyZWF0ZUNoZWNrYm94IGZyb20gJy4vY2hlY2tib3gnO1xyXG5pbXBvcnQgY3JlYXRlQnV0dG9uIGZyb20gJy4vYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUZvbGRlciBmcm9tICcuL2ZvbGRlcic7XHJcbmltcG9ydCBjcmVhdGVEcm9wZG93biBmcm9tICcuL2Ryb3Bkb3duJztcclxuLy9QSlQ6IEknZCByYXRoZXIgaW5qZWN0IGN1c3RvbSBleHRlbnNpb25zIGxpa2UgdGhpcywgYnV0IHdpbGwgd29yayB0aGF0IG91dCBsYXRlci5cclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUtleWJvYXJkIGZyb20gJy4va2V5Ym9hcmQnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dGJveCBmcm9tICcuL3RleHRib3gnO1xyXG5pbXBvcnQgY3JlYXRlQ29sb3JQaWNrZXIgZnJvbSAnLi9jb2xvcnBpY2tlcic7XHJcbmltcG9ydCAqIGFzIFNERlRleHQgZnJvbSAnLi9zZGZ0ZXh0JztcclxuaW1wb3J0IHsgaXNDb250cm9sbGVyVmlzaWJsZSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBnbG9iYWxFdmVudHMgfSBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmNvbnN0IEdVSVZSID0gKGZ1bmN0aW9uIERBVEdVSVZSKCl7XHJcblxyXG4gIC8qXHJcbiAgICBTREYgZm9udFxyXG4gICovXHJcbiAgY29uc3QgdGV4dENyZWF0b3IgPSBTREZUZXh0LmNyZWF0b3IoKTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICBMaXN0cy5cclxuICAgIElucHV0T2JqZWN0cyBhcmUgdGhpbmdzIGxpa2UgVklWRSBjb250cm9sbGVycywgY2FyZGJvYXJkIGhlYWRzZXRzLCBldGMuXHJcbiAgICBDb250cm9sbGVycyBhcmUgdGhlIERBVCBHVUkgc2xpZGVycywgY2hlY2tib3hlcywgZXRjLlxyXG4gICovXHJcbiAgY29uc3QgaW5wdXRPYmplY3RzID0gW107XHJcbiAgY29uc3QgY29udHJvbGxlcnMgPSBbXTtcclxuXHJcbiAgLypcclxuICAgIEZ1bmN0aW9ucyBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuIGNvbnRyb2xsZXIgaXMgdmlzaWJsZSAoYnkgd2hpY2ggd2VcclxuICAgIG1lYW4gbm90IGhpZGRlbiwgbm90ICd2aXNpYmxlJyBpbiB0ZXJtcyBvZiB0aGUgY2FtZXJhIG9yaWVudGF0aW9uIGV0YyksIGFuZFxyXG4gICAgZm9yIHJldHJpZXZpbmcgdGhlIGxpc3Qgb2YgdmlzaWJsZSBoaXRzY2FuT2JqZWN0cyBkeW5hbWljYWxseS5cclxuICAgIFRoaXMgbWlnaHQgYmVuZWZpdCBmcm9tIHNvbWUgY2FjaGluZyBlc3BlY2lhbGx5IGluIGNhc2VzIHdpdGggbGFyZ2UgY29tcGxleCBHVUlzLlxyXG4gICAgSSBoYXZlbid0IG1lYXN1cmVkIHRoZSBpbXBhY3Qgb2YgZ2FyYmFnZSBjb2xsZWN0aW9uIGV0Yy5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVDb250cm9sbGVycygpIHtcclxuICAgIC8vIG5vdCB0ZXJyaWJseSBlZmZpY2llbnRcclxuICAgIHJldHVybiBjb250cm9sbGVycy5maWx0ZXIoIGlzQ29udHJvbGxlclZpc2libGUgKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkge1xyXG4gICAgLy9YWFggV0FSTklORzo6OlxyXG4gICAgLy90aGVyZSBjb3VsZCBleGlzdCBzaXR1YXRpb25zIGluIHdoaWNoIG1lbWJlcnMgb2YgaGl0c2NhbiBmb3IgYSB2aXNpYmxlIGNvbnRyb2xsZXIgYXJlIG5vdCB0aGVtc2VsdmVzIHZpc2libGUuXHJcbiAgICAvL3RoaXMgY2FuIGhhcHBlbiBmb3IgZWcgaWYgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgcGFydGljdWxhciBoaXRzY2FuIGlzIGluIGFuIGludmlzaWJsZSBtb2RhbCBlZGl0b3IuXHJcbiAgICAvL3dlIGNvdWxkIGNoZWNrIHRoYXQsIGFkZGluZyBhIG1vcmUgcm9idXN0IGZpbHRlciB0byBlYWNoIGhpdHNjYW4gYXJyYXkuLi4gZm9yIG5vdywgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mXHJcbiAgICAvL2NvbnRyb2xsZXJzIHRvIGVpdGhlciBvbmx5IHJldHVybiBoaXRzY2FuIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSwgb3IgdG8gc2V0ICd2aXNpYmxlJyBleHBsaWNpdGx5LlxyXG4gICAgY29uc3QgdG1wID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkubWFwKCBvID0+IHsgcmV0dXJuIG8uaGl0c2Nhbi5maWx0ZXIoaCA9PiBoLnZpc2libGUpOyB9IClcclxuICAgIHJldHVybiB0bXAucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKTtcclxuICB9XHJcblxyXG4gIGxldCBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICBsZXQgbW91c2VSZW5kZXJlciA9IHVuZGVmaW5lZDtcclxuICBsZXQgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDsgLy9rZWVwIHRyYWNrIHNvIHRoYXQgd2UgZG9uJ3QgYXR0YWNoIG11bHRpcGxlIGV2ZW50cyAocGFydGljdWxhcmx5IHdoZW4gcmVzaXppbmcgd2luZG93KVxyXG4gIFxyXG4gIGxldCBhdXRvVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgZnVuY3Rpb24gZW5hYmxlTW91c2UoIGNhbWVyYSwgcmVuZGVyZXIgKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IHRydWU7XHJcbiAgICBtb3VzZVJlbmRlcmVyID0gcmVuZGVyZXI7XHJcbiAgICBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhID0gY2FtZXJhO1xyXG4gICAgaWYgKGNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkge1xyXG4gICAgICBpZiAoIW9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gZj0+Zi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLm9uKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQubGFzZXI7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGRpc2FibGVNb3VzZSgpe1xyXG4gICAgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIFRoZSBkZWZhdWx0IGxhc2VyIHBvaW50ZXIgY29taW5nIG91dCBvZiBlYWNoIElucHV0T2JqZWN0LlxyXG4gICovXHJcbiAgY29uc3QgbGFzZXJNYXRlcmlhbCA9IG5ldyBUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg1NWFhZmYsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9KTtcclxuICBmdW5jdGlvbiBjcmVhdGVMYXNlcigpe1xyXG4gICAgY29uc3QgZyA9IG5ldyBUSFJFRS5CdWZmZXJHZW9tZXRyeSgpO1xyXG4gICAgZy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KFswLDAsMCwwLDAsMF0pKSk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKCkgKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoMCwwLDApICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLkxpbmUoIGcsIGxhc2VyTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQSBcImN1cnNvclwiLCBlZyB0aGUgYmFsbCB0aGF0IGFwcGVhcnMgYXQgdGhlIGVuZCBvZiB5b3VyIGxhc2VyLlxyXG4gICovXHJcbiAgY29uc3QgY3Vyc29yTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NDQ0NDQ0LCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSApO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUN1cnNvcigpe1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuU3BoZXJlR2VvbWV0cnkoMC4wMDYsIDQsIDQgKSwgY3Vyc29yTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZ2VuZXJpYyBJbnB1dCB0eXBlLlxyXG4gICAgVGFrZXMgYW55IFRIUkVFLk9iamVjdDNEIHR5cGUgb2JqZWN0IGFuZCB1c2VzIGl0cyBwb3NpdGlvblxyXG4gICAgYW5kIG9yaWVudGF0aW9uIGFzIGFuIGlucHV0IGRldmljZS5cclxuXHJcbiAgICBBIGxhc2VyIHBvaW50ZXIgaXMgaW5jbHVkZWQgYW5kIHdpbGwgYmUgdXBkYXRlZC5cclxuICAgIENvbnRhaW5zIHN0YXRlIGFib3V0IHdoaWNoIEludGVyYWN0aW9uIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkIG9yIGhvdmVyLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gY3JlYXRlSW5wdXQoIGlucHV0T2JqZWN0ID0gbmV3IFRIUkVFLkdyb3VwKCkgKXtcclxuICAgIGNvbnN0IGlucHV0ID0ge1xyXG4gICAgICByYXljYXN0OiBuZXcgVEhSRUUuUmF5Y2FzdGVyKCBuZXcgVEhSRUUuVmVjdG9yMygpLCBuZXcgVEhSRUUuVmVjdG9yMygpICksXHJcbiAgICAgIGxhc2VyOiBjcmVhdGVMYXNlcigpLFxyXG4gICAgICBjdXJzb3I6IGNyZWF0ZUN1cnNvcigpLFxyXG4gICAgICBvYmplY3Q6IGlucHV0T2JqZWN0LFxyXG4gICAgICBwcmVzc2VkOiBmYWxzZSxcclxuICAgICAgZ3JpcHBlZDogZmFsc2UsXHJcbiAgICAgIGV2ZW50czogbmV3IEVtaXR0ZXIoKSxcclxuICAgICAgaW50ZXJhY3Rpb246IHtcclxuICAgICAgICBncmlwOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcHJlc3M6IHVuZGVmaW5lZCxcclxuICAgICAgICBob3ZlcjogdW5kZWZpbmVkXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuYWRkKCBpbnB1dC5jdXJzb3IgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIE1vdXNlSW5wdXQuXHJcbiAgICBBbGxvd3MgeW91IHRvIGNsaWNrIG9uIHRoZSBzY3JlZW4gd2hlbiBub3QgaW4gVlIgZm9yIGRlYnVnZ2luZy5cclxuICAqL1xyXG4gIGNvbnN0IG1vdXNlSW5wdXQgPSBjcmVhdGVNb3VzZUlucHV0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU1vdXNlSW5wdXQoKXtcclxuICAgIGNvbnN0IG1vdXNlID0gbmV3IFRIUkVFLlZlY3RvcjIoLTEsLTEpO1xyXG5cclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoKTtcclxuICAgIGlucHV0Lm1vdXNlID0gbW91c2U7XHJcbiAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZU9mZnNldCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZVBsYW5lID0gbmV3IFRIUkVFLlBsYW5lKCk7XHJcbiAgICBpbnB1dC5pbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgLy8gIHNldCBteSBlbmFibGVNb3VzZVxyXG4gICAgaW5wdXQubW91c2VDYW1lcmEgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZW1vdmUnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgLy8gaWYgYSBzcGVjaWZpYyByZW5kZXJlciBoYXMgYmVlbiBkZWZpbmVkXHJcbiAgICAgIGlmIChtb3VzZVJlbmRlcmVyKSB7XHJcbiAgICAgICAgY29uc3QgY2xpZW50UmVjdCA9IG1vdXNlUmVuZGVyZXIuZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBtb3VzZS54ID0gKCAoZXZlbnQuY2xpZW50WCAtIGNsaWVudFJlY3QubGVmdCkgLyBjbGllbnRSZWN0LndpZHRoKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggKGV2ZW50LmNsaWVudFkgLSBjbGllbnRSZWN0LnRvcCkgLyBjbGllbnRSZWN0LmhlaWdodCkgKiAyICsgMTtcclxuICAgICAgfVxyXG4gICAgICAvLyBkZWZhdWx0IHRvIGZ1bGxzY3JlZW5cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbW91c2UueCA9ICggZXZlbnQuY2xpZW50WCAvIHdpbmRvdy5pbm5lcldpZHRoICkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIGV2ZW50LmNsaWVudFkgLyB3aW5kb3cuaW5uZXJIZWlnaHQgKSAqIDIgKyAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpZiAoaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gcHJldmVudCBtb3VzZSBkb3duIGZyb20gdHJpZ2dlcmluZyBvdGhlciBsaXN0ZW5lcnMgKHBvbHlmaWxsLCBldGMpXHJcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7IC8vc29tZXRpbWVzIHdlIGNhcmUgYWJvdXQgdGhlIG1vdXNlIGJlaW5nIHByZXNzZWQsIGV2ZW4gb24gYmFja2dyb3VuZFxyXG4gICAgICAgLy93aWxsIGJlIHNldCBmYWxzZSBhdCBlbmQgb2YgZmlyc3QgdXBkYXRlLiBTaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHRvIGFkZCBhIG5ldyBwcm9wZXJ0eS4uLiBcclxuICAgICAgIC8vb25QcmVzc2VkIHNob3VsZCBiZSBhZGVxdWF0ZS5cclxuICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICB9LCB0cnVlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZXVwJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIGZ1bmN0aW9uIHVzZXJzIHJ1biB0byBnaXZlIERBVCBHVUkgYW4gaW5wdXQgZGV2aWNlLlxyXG4gICAgQXV0b21hdGljYWxseSBkZXRlY3RzIGZvciBWaXZlQ29udHJvbGxlciBhbmQgYmluZHMgYnV0dG9ucyArIGhhcHRpYyBmZWVkYmFjay5cclxuXHJcbiAgICBSZXR1cm5zIGEgbGFzZXIgcG9pbnRlciBzbyBpdCBjYW4gYmUgZGlyZWN0bHkgYWRkZWQgdG8gc2NlbmUuXHJcblxyXG4gICAgVGhlIGxhc2VyIHdpbGwgdGhlbiBoYXZlIHR3byBtZXRob2RzOlxyXG4gICAgbGFzZXIucHJlc3NlZCgpLCBsYXNlci5ncmlwcGVkKClcclxuXHJcbiAgICBUaGVzZSBjYW4gdGhlbiBiZSBib3VuZCB0byBhbnkgYnV0dG9uIHRoZSB1c2VyIHdhbnRzLiBVc2VmdWwgZm9yIGJpbmRpbmcgdG9cclxuICAgIGNhcmRib2FyZCBvciBhbHRlcm5hdGUgaW5wdXQgZGV2aWNlcy5cclxuXHJcbiAgICBGb3IgZXhhbXBsZS4uLlxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oKXsgbGFzZXIucHJlc3NlZCggdHJ1ZSApOyB9ICk7XHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbnB1dE9iamVjdCggb2JqZWN0ICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCBvYmplY3QgKTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5wcmVzc2VkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgY29uc3QgaGl0cyA9IGlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vIG9ubHkgcGF5IGF0dGVudGlvbiB0byBwcmVzc2VzIG92ZXIgdGhlIEdVSVxyXG4gICAgICBpZiAoZmxhZyAmJiBoaXRzICYmIChoaXRzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7XHJcbiAgICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmdyaXBwZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBpbnB1dC5ncmlwcGVkID0gZmxhZztcclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuY3Vyc29yID0gaW5wdXQuY3Vyc29yO1xyXG5cclxuICAgIGlmKCBUSFJFRS5WaXZlQ29udHJvbGxlciAmJiBvYmplY3QgaW5zdGFuY2VvZiBUSFJFRS5WaXZlQ29udHJvbGxlciApe1xyXG4gICAgICBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBvYmplY3QsIGlucHV0Lmxhc2VyLnByZXNzZWQsIGlucHV0Lmxhc2VyLmdyaXBwZWQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMucHVzaCggaW5wdXQgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQubGFzZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgSGVyZSBhcmUgdGhlIG1haW4gZGF0IGd1aSBjb250cm9sbGVyIHR5cGVzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG1pbiA9IDAuMCwgbWF4ID0gMTAwLjAgKXtcclxuICAgIGNvbnN0IHNsaWRlciA9IGNyZWF0ZVNsaWRlcigge1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG1pbiwgbWF4LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIHNsaWRlciApO1xyXG5cclxuICAgIHJldHVybiBzbGlkZXI7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGNoZWNrYm94ID0gY3JlYXRlQ2hlY2tib3goe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggY2hlY2tib3ggKTtcclxuXHJcbiAgICByZXR1cm4gY2hlY2tib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3RcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuYyB0byBjYWxsIGJhY2sgd2hlbiBidXR0b24gcHJlc3NlZFxyXG4gICAqIEBwYXJhbSB7Kn0gaW1hZ2UgY2FuIGJlIGZpbGVuYW1lLCBXZWJHTFJlbmRlclRhcmdldCBvciBNYXRlcmlhbFxyXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gd2lkZSB3aGV0aGVyIHRvIG1ha2UgYnV0dG9uIGZpbGwgZW50aXJlIHdpZHRoIG9mIHBhbmVsIChhcGkgc3ViamVjdCB0byBjaGFuZ2UpXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b24oZnVuYywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3Qgb2JqZWN0ID0geyBmOiBmdW5jIH07XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnZic7XHJcblxyXG5cclxuICAgIC8vc2VlIGFsc28gZm9sZGVyLmpzIHdoZXJlIHRoaXMgaXMgYWRkZWQgdG8gZ3JvdXAgb2JqZWN0Li4uXHJcbiAgICAvL2FzIHN1Y2ggdGhpcyBmdW5jdGlvbiBhbHNvIG5lZWRzIHRvIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBjcmVhdGVGb2xkZXIuXHJcbiAgICAvL3BlcmhhcHMgYWxsIG9mIHRoZXNlICdhZGRYJyBmdW5jdGlvbnMgY291bGQgYmUgaW5pdGlhbGx5IHB1dCBvbnRvIGFuIG9iamVjdCBzbyB0aGF0XHJcbiAgICAvL25ldyBhZGRpdGlvbnMgY291bGQgYmUgYWRkZWQgc2xpZ2h0bHkgbW9yZSBlYXNpbHkuXHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRYWUNvbnRyb2xsZXIocHJlc3NpbmcsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICcnO1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJlc3NpbmcsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJ1dHRvbik7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBUaGlzIGludGVyZmFjZSBtYXkgYmUgc3ViamVjdCB0byBjaGFuZ2UuICBBcmd1bWVudHMgYXJlIG9iamVjdHMgZGVzY3JpYmluZyBidXR0b25zXHJcbiAgRmlyc3Qgb2JqZWN0IG1heSBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b25QYW5lbChjb2xzLCAuLi5hcmdzKSB7XHJcbiAgICBsZXQgY29sdW1ucyA9IE51bWJlci5pc0ludGVnZXIoY29scykgPyBjb2xzIDogNDtcclxuICAgIGNvbnN0IG9iamVjdHMgPSBhcmdzO1xyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpKSBvYmplY3RzLnVuc2hpZnQoY29scylcclxuICAgIGNvbnN0IGdyaWQgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiBjb2x1bW5zfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGdyaWQpO1xyXG4gICAgcmV0dXJuIGdyaWQ7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRLZXlib2FyZCgga2V5TGlzdGVuZXIgKSB7XHJcbiAgICBpZiAoIWtleUxpc3RlbmVyKSBrZXlMaXN0ZW5lciA9IChrKSA9PiBjb25zb2xlLmxvZyhga2V5RG93biAke2t9YCk7XHJcbiAgICBjb25zdCBrYiA9IGNyZWF0ZUtleWJvYXJkKHtrZXlMaXN0ZW5lciwgdGV4dENyZWF0b3J9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goa2IpO1xyXG4gICAgcmV0dXJuIGtiO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVUZXh0Ym94KHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZUNvbG9yUGlja2VyKHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9wdGlvbnMgKXtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gY3JlYXRlRHJvcGRvd24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG9wdGlvbnNcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGRyb3Bkb3duICk7XHJcbiAgICByZXR1cm4gZHJvcGRvd247XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEFuIGltcGxpY2l0IEFkZCBmdW5jdGlvbiB3aGljaCBkZXRlY3RzIGZvciBwcm9wZXJ0eSB0eXBlXHJcbiAgICBhbmQgZ2l2ZXMgeW91IHRoZSBjb3JyZWN0IGNvbnRyb2xsZXIuXHJcblxyXG4gICAgRHJvcGRvd246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9iamVjdFR5cGUgKVxyXG5cclxuICAgIFNsaWRlcjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZOdW1iZXJUeXBlLCBtaW4sIG1heCApXHJcblxyXG4gICAgQ2hlY2tib3g6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mQm9vbGVhblR5cGUgKVxyXG5cclxuICAgIEJ1dHRvbjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZGdW5jdGlvblR5cGUgKVxyXG5cclxuICAgIE5vdCB1c2VkIGRpcmVjdGx5LiBVc2VkIGJ5IGZvbGRlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApe1xyXG5cclxuICAgIGlmKCBvYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG5cclxuICAgIGlmIChvYmplY3QuaXNGb2xkZXIpIHJldHVybiBvYmplY3Q7XHJcblxyXG4gICAgaWYoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBjb25zb2xlLndhcm4oICdubyBwcm9wZXJ0eSBuYW1lZCcsIHByb3BlcnR5TmFtZSwgJ29uIG9iamVjdCcsIG9iamVjdCApO1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzT2JqZWN0KCBhcmczICkgfHwgaXNBcnJheSggYXJnMyApICl7XHJcbiAgICAgIHJldHVybiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNOdW1iZXIoIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzQm9vbGVhbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Z1bmN0aW9uKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzU3RyaW5nKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc0NvbG9yKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBhZGQgY291bGRuJ3QgZmlndXJlIGl0IG91dCwgcGFzcyBpdCBiYWNrIHRvIGZvbGRlclxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZVNsaWRlciggbWluID0gMCwgbWF4ID0gMSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG51bWJlcjogbWluXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRTbGlkZXIoIHByb3h5LCAnbnVtYmVyJywgbWluLCBtYXggKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZURyb3Bkb3duKCBvcHRpb25zID0gW10gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBvcHRpb246ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGlmKCBvcHRpb25zICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgcHJveHkub3B0aW9uID0gaXNBcnJheSggb3B0aW9ucyApID8gb3B0aW9uc1sgMCBdIDogb3B0aW9uc1sgT2JqZWN0LmtleXMob3B0aW9ucylbMF0gXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWRkRHJvcGRvd24oIHByb3h5LCAnb3B0aW9uJywgb3B0aW9ucyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQ2hlY2tib3goIGRlZmF1bHRPcHRpb24gPSBmYWxzZSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGNoZWNrZWQ6IGRlZmF1bHRPcHRpb25cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZENoZWNrYm94KCBwcm94eSwgJ2NoZWNrZWQnICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVCdXR0b24oIGZuICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgYnV0dG9uOiAoZm4hPT11bmRlZmluZWQpID8gZm4gOiBmdW5jdGlvbigpe31cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZEJ1dHRvbiggcHJveHksICdidXR0b24nICk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIE5vdCB1c2VkIGRpcmVjdGx5OyB1c2VkIGJ5IGZvbGRlcnMuXHJcbiAgUmVtb3ZlIGNvbnRyb2xsZXJzIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBjb250cm9sbGVycyBrbm93biB0byBkYXQuR1VJVlIuXHJcbiAgQ2FsbHMgcmVtb3ZlVGVzdCBmaXJzdCB0byBjaGVjayBpbnB1dCBhcmd1bWVudHMuICByZXR1cm5zIGZhbHNlIGlmIHRoaXMgdGVzdCBmYWlscy5cclxuICByZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bC5cclxuXHJcbiAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVjdXJzaXZlbHkgcmVtb3ZlIGVsZW1lbnRzIGZyb20gZm9sZGVyczsgdGhhdCBpcyBkZWFsdCB3aXRoIGluIHRoZSBmb2xkZXIgY29kZSB3aGljaCBjYWxscyB0aGlzLlxyXG4gIFxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZSggLi4uYXJncyApe1xyXG4gICAgbGV0IGFyZ1NldCA9IFsgLi4ubmV3IFNldChhcmdzKSBdOyAvL2p1c3QgaW4gY2FzZSB0aGVyZSB3ZXJlIHJlcGVhdGVkIGVsZW1lbnRzIGluIGFyZ3MsIHR1cm4gaW50byBTZXQgdGhlbiBiYWNrIHRvIGFycmF5LlxyXG4gICAgaWYgKCAhcmVtb3ZlVGVzdCguLi5hcmdTZXQpICkgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJnU2V0LmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgdmFyIGkgPSBjb250cm9sbGVycy5pbmRleE9mKCBvYmogKTtcclxuICAgICAgaWYgKCBpID4gLTEpIGNvbnRyb2xsZXJzLnNwbGljZSggaSwgMSApO1xyXG4gICAgICBlbHNlIHsgLy8gSSBjYW4ndCBzZWUgaG93IHRoaXMnZCBoYXBwZW4gbm93IHdlIGd1YXJkIGFnYWluc3QgcmVwZWF0ZWQgZWxlbWVudHMuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJJbnRlcm5hbCBlcnJvciBpbiByZW1vdmUsIG5vdCBhbnRpY2lwYXRlZCBieSByZW1vdmVUZXN0LiBJbnRlcm5hbCBkYXQuR1VJVlIgc3RhdGUgbWF5IGJlIGluY29uc2lzdGVudC5cIik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBWZXJpZnkgdGhhdCBhbGwgb2YgdGhlIGl0ZW1zIGluIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZXhpc3RpbmcgY29udHJvbGxlcnMgdGhhdCBzaG91bGQgYmUgb2sgdG8gcmVtb3ZlLlxyXG5cclxuICBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGFyZSBhbnkgbWlzbWF0Y2hlcywgdHJ1ZSBpZiBiZWxpZXZlZCBvayB0byBjb250aW51ZSB3aXRoIGFjdHVhbCByZW1vdmUoKVxyXG5cclxuICBJZiBhbnkgb2YgdGhlIHByb3ZpZGVkIGFyZ3MgYXJlIGZvbGRlcnMgKGhhdmUgaXNGb2xkZXIgcHJvcGVydHkpIHRoaXMgaXMgY2FsbGVkIHJlY3Vyc2l2ZWx5LlxyXG4gIFRoaXMgd2lsbCByZXN1bHQgaW4gcmVkdW5kYW50IHdvcmsgYXMgZWFjaCBmb2xkZXIgd2lsbCBhbHNvIGNhbGwgaXQgYWdhaW4gYXMgaXQncyByZW1vdmVkLCBidXQgdGhpcyBpcyBjaGVhcFxyXG4gIGFuZCBpdCBtZWFucyB0aGF0IGFueSBlcnJvciBzaG91bGQgYmUgY2F1Z2h0IGFzIGVhcmx5IGFzIHBvc3NpYmxlIGFuZCB0aGUgd2hvbGUgcHJvY2VzcyBhYm9ydGVkLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlVGVzdCggLi4uYXJncyApIHtcclxuICAgIGZvciAodmFyIGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBvYmogPSBhcmdzW2ldO1xyXG4gICAgICBpZiAoY29udHJvbGxlcnMuaW5kZXhPZihvYmopID09PSAtMSB8fCAhb2JqLmZvbGRlci5oYXNDaGlsZChvYmopKSB7XHJcbiAgICAgICAgLy9UT0RPOiB0b1N0cmluZyBpbXBsZW1lbnRhdGlvbnMgZm9yIGNvbnRyb2xsZXJzXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJDYW4ndCByZW1vdmUgY29udHJvbGxlciBcIiArIG9iaik7IC8vbm90IHN1cmUgdGhlIHByZWZlcnJlZCB3YXkgb2YgcmVwb3J0aW5nIHByb2JsZW0gdG8gdXNlci5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGlmICghcmVtb3ZlVGVzdCggLi4ub2JqLmd1aUNoaWxkcmVuICkpIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wbGV0ZWx5IHJlbW92ZSBhbGwgR1VJIGVsZW1lbnRzIGZyb20gdGhlIHN5c3RlbSBnbG9iYWxseSwgXHJcbiAgICogaW5jbHVkaW5nIHJlbW92aW5nIGFueSBvYmplY3RzIGZyb20gdGhlIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKi9cclxuICBmdW5jdGlvbiBjbGVhckFsbCgpIHtcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMudmlzaWJsZSA9IGZhbHNlOyBpZiAoYy5wYXJlbnQgJiYgIWMucGFyZW50Lmd1aUNoaWxkcmVuKSBjLnBhcmVudC5yZW1vdmUoYyk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnNwbGljZSgwLCBjb250cm9sbGVycy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZm9sZGVyIHdpdGggdGhlIG5hbWUuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgVEhSRUUuR3JvdXAgdHlwZSBvYmplY3RzIGFuZCBjYW4gZG8gZ3JvdXAuYWRkKCkgZm9yIHNpYmxpbmdzLlxyXG4gICAgRm9sZGVycyB3aWxsIGF1dG9tYXRpY2FsbHkgYXR0ZW1wdCB0byBsYXkgaXRzIGNoaWxkcmVuIG91dCBpbiBzZXF1ZW5jZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBnaXZlbiB0aGUgYWRkKCkgZnVuY3Rpb25hbGl0eSBzbyB0aGF0IHRoZXkgY2FuIGRvXHJcbiAgICBmb2xkZXIuYWRkKCAuLi4gKSB0byBjcmVhdGUgY29udHJvbGxlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBuYW1lICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBjcmVhdGVGb2xkZXIoe1xyXG4gICAgICB0ZXh0Q3JlYXRvcixcclxuICAgICAgbmFtZSxcclxuICAgICAgZ3VpQWRkOiBhZGQsXHJcbiAgICAgIGd1aVJlbW92ZTogcmVtb3ZlLFxyXG4gICAgICBhZGRDb250cm9sbGVyRnVuY3M6IHtcclxuICAgICAgICBhZGRTbGlkZXI6IGFkZFNpbXBsZVNsaWRlcixcclxuICAgICAgICBhZGREcm9wZG93bjogYWRkU2ltcGxlRHJvcGRvd24sXHJcbiAgICAgICAgYWRkQ2hlY2tib3g6IGFkZFNpbXBsZUNoZWNrYm94LFxyXG4gICAgICAgIGFkZEJ1dHRvbjogYWRkU2ltcGxlQnV0dG9uLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uOiBhZGRJbWFnZUJ1dHRvbixcclxuICAgICAgICBhZGRYWUNvbnRyb2xsZXI6IGFkZFhZQ29udHJvbGxlcixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvblBhbmVsOiBhZGRJbWFnZUJ1dHRvblBhbmVsLFxyXG4gICAgICAgIGFkZEtleWJvYXJkOiBhZGRLZXlib2FyZCxcclxuICAgICAgICBhZGRUZXh0Ym94OiBhZGRUZXh0Ym94XHJcbiAgICAgIH0sXHJcbiAgICAgIGdsb2JhbENvbnRyb2xsZXJzOiBjb250cm9sbGVycyxcclxuICAgICAgLy8/Pz9cclxuICAgICAgYWRkSGVhZGVyRnVuY3M6IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZm9sZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUGVyZm9ybSB0aGUgbmVjZXNzYXJ5IHVwZGF0ZXMsIHJheWNhc3RzIG9uIGl0cyBvd24gUkFGLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgdERpcmVjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCAwLCAwLCAtMSApO1xyXG4gIGNvbnN0IHRNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoKSB7XHJcbiAgICBjb25zdCBpc09ydGhvZ3JhcGhpYyA9IG1vdXNlRW5hYmxlZCAmJiBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhO1xyXG4gICAgaWYgKGF1dG9VcGRhdGUpIHJlcXVlc3RBbmltYXRpb25GcmFtZSggdXBkYXRlICk7XHJcbiAgICBcclxuICAgIHZhciBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgY29uc3QgY29udHJvbGxlcnMgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKTtcclxuICAgIGNvbnN0IGZvbGRlcnMgPSBjb250cm9sbGVycy5maWx0ZXIoYyA9PiBjLmZvbGRlciA9PT0gYyk7IC8vYWxsIHRvcC1sZXZlbCBmb2xkZXJzXHJcbiAgICBmb2xkZXJzLmZvckVhY2goZiA9PiB7XHJcbiAgICAgIGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSBpc09ydGhvZ3JhcGhpYyA/IG1vdXNlSW5wdXQubW91c2VDYW1lcmEgOiBmYWxzZTtcclxuICAgICAgaWYgKGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAgIGYucmVxdWVzdExheW91dCgpO1xyXG4gICAgICAgIGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IGZhbHNlOyAvLyBwcm90ZWN0IGFueSBuZXdseS1kaXNwbGF5ZWQgbW9kYWxFZGl0b3IgZnJvbSBiZWluZyBjbGVhcmVkXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGYudXNlckRhdGEubGF5b3V0UGVuZGluZykgZi5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICB9KTsgXHJcblxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICAvL1RPRE86IGxvY2sgbW91c2Ugb24gaG92ZXI/P1xyXG4gICAgICBtb3VzZUlucHV0LmludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLGludGVyYWN0aW9ufSA9IHt9LCBpbmRleCApe1xyXG4gICAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICAgIG9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBcclxuICAgICAgdFBvc2l0aW9uLnNldCgwLDAsMCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgdE1hdHJpeC5pZGVudGl0eSgpLmV4dHJhY3RSb3RhdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIFxyXG4gICAgICB0RGlyZWN0aW9uLnNldCgwLDAsLTEpO1xyXG4gICAgICAvL2FsdGVyaW5nIGRpcmVjdGlvbiBlLmcuIHRvIHBvaW50IGluIGRpcmVjdGlvbiBvZiBleHRlbmRlZCB0cmlnZ2VyIGZpbmdlciwgcmF0aGVyIHRoYW4gJ21haW4gYXhpcycgb2YgVml2ZSBjb250cm9sbGVyLi4uXHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGQgYmUgaW4gdXNlckRhdGEuXHJcbiAgICAgIGlmIChvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcikgdERpcmVjdGlvbi5hcHBseVF1YXRlcm5pb24ob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpO1xyXG4gICAgICB0RGlyZWN0aW9uLmFwcGx5TWF0cml4NCggdE1hdHJpeCApLm5vcm1hbGl6ZSgpO1xyXG4gICAgICBcclxuICAgICAgcmF5Y2FzdC5zZXQoIHRQb3NpdGlvbiwgdERpcmVjdGlvbiApO1xyXG4gICAgICBcclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAwIF0uY29weSggdFBvc2l0aW9uICk7XHJcbiAgICAgIGNvbnN0IGEgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICAgIGFbMF0gPSB0UG9zaXRpb24ueDsgYVsxXSA9IHRQb3NpdGlvbi55OyBhWzJdID0gdFBvc2l0aW9uLno7XHJcbiAgICAgIFxyXG4gICAgICAvLyAgZGVidWcuLi5cclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggdFBvc2l0aW9uICkuYWRkKCB0RGlyZWN0aW9uLm11bHRpcGx5U2NhbGFyKCAxICkgKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbnMgPSByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgXHJcbiAgICAgIGlucHV0T2JqZWN0c1sgaW5kZXggXS5pbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy93YW50IHRvIGFkZCBpbmZvIChoaXQgZGlzY3RhbmNlKSB0byBvYmplY3QgZm9yIHVzZSBvdXRzaWRlLi4uIGp1c3QgYWRkaW5nIGVudGlyZXR5IG9mIGludGVyc2VjdGlvbnMgaW4gY2FzZSB1c2VmdWxcclxuICAgICAgaWYgKG9iamVjdC51c2VyRGF0YSkgb2JqZWN0LnVzZXJEYXRhLmd1aUludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0cyA9IGlucHV0T2JqZWN0cy5zbGljZSgpO1xyXG4gICAgXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIGlucHV0cy5wdXNoKCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goIGMgPT4gYy51cGRhdGVDb250cm9sKCBpbnB1dHMgKSk7XHJcbiAgICAvL25vdyBjaGVjayBpZiBhbnkgcHJlc3Mgb24gYW55IGlucHV0IGhpdCBhbnkgbm9uJ21vZGFsIGVkaXRvcicuLi4gaWYgc28sIHdlJ2xsIHJlbW92ZSBtb2RhbHMgZnJvbSBhbGwgZm9sZGVyc1xyXG4gICAgLy8odGhpcyBpc24ndCBwZXJmZWN0OyBpZiB5b3UgYXJlIGFjdGl2ZWx5IGludGVyYWN0aW5nIHdpdGggc29tZXRoaW5nIGFuZCBwcmVzcyBvdGhlciBidXR0b24gc29tZXdoZXJlIGVsc2UsIGl0J2xsIHJlbW92ZSB5b3VyIG9iamVjdClcclxuICAgIGxldCBoaXROb25Nb2RhbHMgPSBpbnB1dHMuZmlsdGVyKGlucHV0ID0+IGlucHV0LmhpdE5vbk1vZGFsKTtcclxuICAgIGlmIChoaXROb25Nb2RhbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgaGl0Tm9uTW9kYWxzLmZvckVhY2goaCA9PiBoLmhpdE5vbk1vZGFsID0gZmFsc2UpOyAvL3JlbW92ZSBmbGFncyBzbyB0aGV5IGRvbid0IHBlcnNpc3QgdG8gc3Vic2VxdWVudCB1cGRhdGVzXHJcbiAgICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IGYuY2xlYXJNb2RhbEVkaXRvcigpKTsgLy90aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIG5vdCBoaWRlIGl0ZW1zIG5ld2x5IGRpc3BsYXllZCBpbiB0aGlzIGZyYW1lXHJcbiAgICB9XHJcbiAgICBtb3VzZUlucHV0LmNsaWNrZWQgPSBmYWxzZTtcclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKG89Pm8uY2xpY2tlZCA9IGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8vaWYgYW55IGlucHV0LmludGVyYWN0aW9ucyBoYXZlIGhpdFZvbHVtZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHNvbWV0aGluZyBub3QgY3VycmVudGx5IGluIGhpdHNjYW5PYmplY3RzLFxyXG4gIC8vdGhhdCBpbnRlcmFjdGlvbiBzaG91bGQgYmUgY2FuY2VsbGVkLiBFc3BlY2lhbGx5IHByb2JsZW1hdGljIHdpdGggZS5nLiBwcmVzc2luZyAncmVhdHRhY2gnIHdoZW4gdGhlIHBhcmVudCBpcyBjbG9zZWQuXHJcbiAgZnVuY3Rpb24gY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9ucywgaGl0c2Nhbk9iamVjdHMgKSB7XHJcbiAgICBbJ3ByZXNzJywgJ2dyaXAnLCAnaG92ZXInXS5mb3JFYWNoKCBpbnRlcmFjdGlvbk5hbWUgPT4ge1xyXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdO1xyXG4gICAgICBpZiAoaW50ZXJhY3Rpb24gJiYgaGl0c2Nhbk9iamVjdHMuaW5kZXhPZihpbnRlcmFjdGlvbi5oaXRWb2x1bWUpIDwgMCkge1xyXG4gICAgICAgIGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdID0gdW5kZWZpbmVkOyBcclxuICAgICAgICAvL29ubHkgYmUgcG9saXRlIHRvIGluZm9ybSB0aGUgaW50ZXJhY3Rpb24gYXMgd2VsbDsgdXBkYXRlIHdpdGggZW1wdHkgaW5wdXRPYmplY3RzIGFyZyBzaG91bGQgZG8gdGhlIHRyaWNrLlxyXG4gICAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggW10gKTtcclxuICAgICAgfSBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlTGFzZXIoIGxhc2VyLCBwb2ludCApe1xyXG4gICAgY29uc3QgcHAgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICBwcFszXSA9IHBvaW50Lng7XHJcbiAgICBwcFs0XSA9IHBvaW50Lnk7XHJcbiAgICBwcFs1XSA9IHBvaW50Lno7XHJcbiAgICBwcC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHBvaW50ICk7XHJcbiAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnRpY2VzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGlmKCBpbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgY29uc3QgZmlyc3RIaXQgPSBpbnRlcnNlY3Rpb25zWyAwIF07XHJcbiAgICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgY3Vyc29yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZU1vdXNlSW50ZXJzZWN0aW9uKCBpbnRlcnNlY3Rpb24sIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBpbnRlcnNlY3Rpb24gKTtcclxuICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgY3Vyc29yLnBvc2l0aW9uICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBjYW1lcmEgKXtcclxuICAgIHJheWNhc3Quc2V0RnJvbUNhbWVyYSggbW91c2UsIGNhbWVyYSApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIHJldHVybiByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbW91c2VJbnRlcnNlY3RzUGxhbmUoIHJheWNhc3QsIHYsIHBsYW5lICl7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIHBsYW5lLCB2ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLG1vdXNlLG1vdXNlQ2FtZXJhLCBpbnRlcmFjdGlvbn0gPSB7fSApe1xyXG4gICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgbGV0IGludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICBpZiAobW91c2VDYW1lcmEpIHtcclxuICAgICAgaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIG1vdXNlQ2FtZXJhICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnRlcnNlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCk7XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgbWV0aG9kcy5cclxuICAqL1xyXG5cclxuICBjb25zdCBwdWJsaWNJbnRlcmZhY2UgPSB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBhZGRJbnB1dE9iamVjdCxcclxuICAgIGVuYWJsZU1vdXNlLFxyXG4gICAgZGlzYWJsZU1vdXNlLFxyXG4gICAgdGV4dENyZWF0b3IsIC8vY2hlYXAgd2F5IG9mIGV4cG9zaW5nIHRoaXMgc28gaXQgY2FuIGJlIHVzZWQgYnkgaG9zdCBhcHBsaWNhdGlvbi5cclxuICAgIGdsb2JhbEV2ZW50cyxcclxuICAgIGNsZWFyQWxsLFxyXG4gICAgdXBkYXRlXHJcbiAgfTtcclxuICAvLyBhbGxvdyB1c2VyIHRvIGNhbGwgXCJkYXQuR1VJVlIuYXV0b1VwZGF0ZSA9IGZhbHNlXCIgYW5kIHRoZW4gdXBkYXRlIG1hbnVhbGx5IHdpdGhcclxuICAvLyBcImRhdC5HVUlWUi51cGRhdGUoKVwiXHJcbiAgLy8gZXhwb3NlIGF1dG9VcGRhdGUgYXMgcHJvcGVydHkgc28gdGhhdCB0aGUgcmVmZXJlbmNlIHdpbGwgYmUgcHJvcGVybHkgZWZmZWN0ZWRcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIHB1YmxpY0ludGVyZmFjZSwgJ2F1dG9VcGRhdGUnLCB7IGdldDogKCk9PiBhdXRvVXBkYXRlLCBzZXQ6IHYgPT4gYXV0b1VwZGF0ZSA9IHYgfSApO1xyXG4gIHJldHVybiBwdWJsaWNJbnRlcmZhY2U7XHJcblxyXG59KCkpO1xyXG5cclxuaWYoIHdpbmRvdyApe1xyXG4gIGlmKCB3aW5kb3cuZGF0ID09PSB1bmRlZmluZWQgKXtcclxuICAgIHdpbmRvdy5kYXQgPSB7fTtcclxuICB9XHJcblxyXG4gIHdpbmRvdy5kYXQuR1VJVlIgPSBHVUlWUjtcclxufVxyXG5cclxuaWYoIG1vZHVsZSApe1xyXG4gIG1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgZGF0OiBHVUlWUlxyXG4gIH07XHJcbn1cclxuXHJcbmlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xyXG4gIGRlZmluZShbXSwgR1VJVlIpO1xyXG59XHJcblxyXG4vKlxyXG4gIEJ1bmNoIG9mIHN0YXRlLWxlc3MgdXRpbGl0eSBmdW5jdGlvbnMuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBpc051bWJlcihuKSB7XHJcbiAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG4pKSAmJiBpc0Zpbml0ZShuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNCb29sZWFuKG4pe1xyXG4gIHJldHVybiB0eXBlb2YgbiA9PT0gJ2Jvb2xlYW4nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjaykge1xyXG4gIGNvbnN0IGdldFR5cGUgPSB7fTtcclxuICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xyXG59XHJcblxyXG4vLyAgb25seSB7fSBvYmplY3RzIG5vdCBhcnJheXNcclxuLy8gICAgICAgICAgICAgICAgICAgIHdoaWNoIGFyZSB0ZWNobmljYWxseSBvYmplY3RzIGJ1dCB5b3UncmUganVzdCBiZWluZyBwZWRhbnRpY1xyXG5mdW5jdGlvbiBpc09iamVjdCAoaXRlbSkge1xyXG4gIHJldHVybiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pICYmIGl0ZW0gIT09IG51bGwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0FycmF5KCBvICl7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoIG8gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNTdHJpbmcoIG8gKXtcclxuICByZXR1cm4gdHlwZW9mIG8gPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0NvbG9yKCBvICl7XHJcbiAgaWYgKHR5cGVvZiBvICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBvLmlzQ29sb3IgPyB0cnVlIDogZmFsc2U7XHJcbn1cclxuXHJcblxyXG5cclxuLypcclxuICBDb250cm9sbGVyLXNwZWNpZmljIHN1cHBvcnQuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBjb250cm9sbGVyLCBwcmVzc2VkLCBncmlwcGVkICl7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcmRvd24nLCAoKT0+cHJlc3NlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcnVwJywgKCk9PnByZXNzZWQoIGZhbHNlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc2Rvd24nLCAoKT0+Z3JpcHBlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHN1cCcsICgpPT5ncmlwcGVkKCBmYWxzZSApICk7XHJcblxyXG4gIGNvbnN0IGdhbWVwYWQgPSBjb250cm9sbGVyLmdldEdhbWVwYWQoKTtcclxuICBmdW5jdGlvbiB2aWJyYXRlKCB0LCBhICl7XHJcbiAgICBpZiggZ2FtZXBhZCAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycyAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzWyAwIF0ucHVsc2UoIHQsIGEgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NUYXAoKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoMS1hLCAwLjUpLCAxMCwgMjAgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NFY2hvKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDQsIDEuMCAqICgxLWEpKSwgMTAwLCA0ICk7XHJcbiAgfVxyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdvbkNvbnRyb2xsZXJIZWxkJywgZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICB2aWJyYXRlKCAwLjMsIDAuMyApO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiYmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYlJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3Bpbm5lZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3BpblJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldEludGVydmFsVGltZXMoIGNiLCBkZWxheSwgdGltZXMgKXtcclxuICBsZXQgeCA9IDA7XHJcbiAgbGV0IGlkID0gc2V0SW50ZXJ2YWwoIGZ1bmN0aW9uKCl7XHJcbiAgICBjYiggeCwgdGltZXMsIHgvdGltZXMgKTtcclxuICAgIHgrKztcclxuICAgIGlmKCB4Pj10aW1lcyApe1xyXG4gICAgICBjbGVhckludGVydmFsKCBpZCApO1xyXG4gICAgfVxyXG4gIH0sIGRlbGF5ICk7XHJcbiAgcmV0dXJuIGlkO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBnbG9iYWxFdmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdFZvbHVtZSApe1xyXG4gIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG4gIGxldCBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gIGxldCBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gIGxldCBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgdFZlY3RvciA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgYXZhaWxhYmxlSW5wdXRzID0gW107XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSggaW5wdXRPYmplY3RzICl7XHJcblxyXG4gICAgYW55SG92ZXIgPSBmYWxzZTtcclxuICAgIGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgICBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIGlucHV0ICl7XHJcblxyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmluZGV4T2YoIGlucHV0ICkgPCAwICl7XHJcbiAgICAgICAgYXZhaWxhYmxlSW5wdXRzLnB1c2goIGlucHV0ICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHsgaGl0T2JqZWN0LCBoaXRQb2ludCB9ID0gZXh0cmFjdEhpdCggaW5wdXQgKTtcclxuXHJcbiAgICAgIHZhciBob3ZlciA9IGhpdFZvbHVtZSA9PT0gaGl0T2JqZWN0O1xyXG4gICAgICBhbnlIb3ZlciA9IGFueUhvdmVyIHx8IGhvdmVyO1xyXG5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ3ByZXNzZWQnLFxyXG4gICAgICAgIGJ1dHRvbkNsaWNrTmFtZTogJ2NsaWNrZWQnLCAvL21heWJlIG5vdCBzdGFibGUgcGFydCBvZiBBUEkuLi5cclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdwcmVzcycsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvblByZXNzZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAncHJlc3NpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZWQnLFxyXG4gICAgICAgICAvL2ludmVudGluZyBhICdob3ZlcmluZycgZXZlbnQgdGhhdCBvbmx5IGFwcGxpZXMgdG8gJ3ByZXNzZWQnIGJ1dHRvbi4uLlxyXG4gICAgICAgICAvL3RoaXMgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc3RhYmxlIGludGVyZmFjZSwgYnV0IEkgd2FudHMgaXQgbW9yZSB0aGFuIElcclxuICAgICAgICAgLy93YW50IHRvIG1ha2Ugc29tZXRoaW5nIHRvdGFsbHkgY29oZXJlbnQgYW5kIHJvYnVzdCBqdXN0IG5vdy5cclxuICAgICAgICBob3Zlck5hbWU6ICdob3ZlcmluZydcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ2dyaXBwZWQnLFxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ2dyaXAnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25HcmlwcGVkJyxcclxuICAgICAgICBob2xkTmFtZTogJ2dyaXBwaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VHcmlwJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCAndGljaycsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9ICk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZXh0cmFjdEhpdCggaW5wdXQgKXtcclxuICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA8PSAwICl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IHRWZWN0b3Iuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5jdXJzb3IubWF0cml4V29ybGQgKS5jbG9uZSgpLCAvL3h4eDogZ2FyYmFnZT9cclxuICAgICAgICBoaXRPYmplY3Q6IHVuZGVmaW5lZCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5wb2ludCxcclxuICAgICAgICBoaXRPYmplY3Q6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3RcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICBpbnB1dCwgaG92ZXIsXHJcbiAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgYnV0dG9uTmFtZSwgYnV0dG9uQ2xpY2tOYW1lLCBpbnRlcmFjdGlvbk5hbWUsIGRvd25OYW1lLCBob2xkTmFtZSwgdXBOYW1lLCBob3Zlck5hbWVcclxuICB9ID0ge30gKXtcclxuXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBoaXRPYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAvL2NsaWNrZWQgYW5kIGRpZG4ndCBoaXQgYW55IEdVSSBvYmplY3QuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaG92ZXJpbmcgYW5kIGJ1dHRvbiBOT1QgZG93blxyXG4gICAgaWYoIGhvdmVyTmFtZSAmJiBob3ZlciAmJiBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSApIHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBldmVudHMuZW1pdCggaG92ZXJOYW1lLCBwYXlsb2FkICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGhvdmVyaW5nIGFuZCBidXR0b24gZG93biBidXQgbm8gaW50ZXJhY3Rpb25zIGFjdGl2ZSB5ZXRcclxuICAgIC8vLS0tPiBzaG91bGQgYmUgXiBidXR0b24gJ2NsaWNrZWQnLi4uIGllIG9ubHkgaWYgaXQgY2FtZSBkb3duIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS5cclxuICAgIC8vc28sIHNob3VsZCB3ZSBwYXNzICdidXR0b25DbGlja05hbWUnIGFzIGFuIGFyZ3VtZW50IChhbmQgdXNlIGJ1dHRvbk5hbWUgaWYgbm90IHByb3ZpZGVkKT9cclxuICAgIC8vLS0tPj4+PiBYWFg6IGlzIHRoaXMgXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXC8vLy8vLy8vLy8vLyB3b3JraW5nIHdpdGggVml2ZSBjb250cm9sbGVycz8gXHJcbiAgICBpZiggaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbkNsaWNrTmFtZSB8fCBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuXHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaWYgKCFoaXRPYmplY3QudXNlckRhdGEucGFydE9mTW9kYWwpIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuXHJcbiAgICAgIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KTtcclxuICAgICAgXHJcbiAgICAgIC8vZW1pdCBnbG9iYWwgY2xpY2sgZXZlbnQgYXMgd2VsbC4uLlxyXG4gICAgICBnbG9iYWxFdmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBpZiggcGF5bG9hZC5sb2NrZWQgKXtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IGludGVyYWN0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIGFueUFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBzdGlsbCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoIGhvbGROYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBpbnB1dC5ldmVudHMuZW1pdCggJ29uQ29udHJvbGxlckhlbGQnICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBub3QgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSB1bmRlZmluZWQ7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICBldmVudHMuZW1pdCggdXBOYW1lLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KSB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihoaXRPYmplY3QpO1xyXG4gICAgdG9wRm9sZGVyLnByb21vdGVaT3JkZXIoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGlzTWFpbkhvdmVyKCl7XHJcblxyXG4gICAgbGV0IG5vTWFpbkhvdmVyID0gdHJ1ZTtcclxuICAgIGZvciggbGV0IGk9MDsgaTxhdmFpbGFibGVJbnB1dHMubGVuZ3RoOyBpKysgKXtcclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0c1sgaSBdLmludGVyYWN0aW9uLmhvdmVyICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgICBub01haW5Ib3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIG5vTWFpbkhvdmVyICl7XHJcbiAgICAgIHJldHVybiBhbnlIb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmZpbHRlciggZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICAgIHJldHVybiBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9PT0gaW50ZXJhY3Rpb247XHJcbiAgICB9KS5sZW5ndGggPiAwICl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IHtcclxuICAgIGhvdmVyaW5nOiBpc01haW5Ib3ZlcixcclxuICAgIHByZXNzaW5nOiAoKT0+YW55UHJlc3NpbmcsXHJcbiAgICB1cGRhdGUsXHJcbiAgICBldmVudHMsXHJcbiAgICBoaXRWb2x1bWVcclxuICB9O1xyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn1cclxuXHJcbiIsIi8qKlxyXG4gKiBcclxuICogVE9ETzogY3Vyc29ycy4uLlxyXG4gKiBNYXliZSBzb21ldGhpbmcgbGlrZSBtb2JpbGUgaW5wdXQgd2hlcmUgeW91IHN3aXRjaCBiZXR3ZWVuIGxldHRlcnMgJiBudW1iZXJzIC8gc3ltYm9sc1xyXG4gKiBcclxuICogU29tZXRoaW5nIGxpa2UgYSBzcGxpdCBrZXlib2FyZCBhbGEgaHR0cHM6Ly9tZWRpdW0uY29tL2Fhcm9ubi92ci10ZXh0LWlucHV0LXNwbGl0LWtleWJvYXJkLWU1YmYzZmQ4N2E0Y1xyXG4gKiBtaWdodCBiZSBiZXR0ZXIuXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlS2V5Ym9hcmQoIHsgXHJcbiAgICBrZXlMaXN0ZW5lcixcclxuICAgIHRleHRDcmVhdG9yXHJcbn0gPSB7fSkge1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGNvbnN0IG9mZnNldFRyYW5zZm9ybSA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgZ3JvdXAuYWRkKG9mZnNldFRyYW5zZm9ybSk7XHJcblxyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGV2ZW50cy5vbigna2V5RG93bicsIGtleUxpc3RlbmVyKTtcclxuICAgIFxyXG4gICAgY29uc3QgbG93ZXJDaGFycyA9IFwiMTIzNDU2Nzg5MC09cXdlcnR5dWlvcFtdYXNkZmdoamtsOycjXFxcXHp4Y3Zibm0sLi8gXCIuc3BsaXQoJycpO1xyXG4gICAgbGV0IG9iamVjdHMgPSBsb3dlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGxvd2VyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKGxvd2VyS2V5cyk7XHJcblxyXG4gICAgY29uc3QgdXBwZXJDaGFycyA9IFwiIVxcXCLCoyQlXiYqKClfK1FXRVJUWVVJT1B7fUFTREZHSEpLTDpAfnxaWENWQk5NPD4/IFwiLnNwbGl0KCcnKTtcclxuICAgIG9iamVjdHMgPSB1cHBlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHVwcGVyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICB1cHBlcktleXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZCh1cHBlcktleXMpO1xyXG5cclxuICAgIGxldCBzaGlmdCA9IGZhbHNlO1xyXG4gICAgZnVuY3Rpb24gc2hpZnRUb2dnbGUoKSB7XHJcbiAgICAgICAgc2hpZnQgPSAhc2hpZnQ7XHJcbiAgICAgICAgbG93ZXJLZXlzLnZpc2libGUgPSAhc2hpZnQ7XHJcbiAgICAgICAgdXBwZXJLZXlzLnZpc2libGUgPSBzaGlmdDtcclxuICAgfVxyXG5cclxuICAgY29uc3Qgc3BhY2VCYXIgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoeyB0ZXh0Q3JlYXRvciwgY29sdW1uczogMSwgcm93SGVpZ2h0OiAwLjEsIG9iamVjdHM6IFtcclxuICAgICAgIHtmdW5jOiAoKT0+ZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnICcpLCB0ZXh0OiAnc3BhY2UnfVxyXG4gICAgXX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGFjZUJhcik7XHJcbiAgICB2YXIgeSA9IHNwYWNlQmFyLnBvc2l0aW9uLnkgPSAtMC41ICogKGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyk7XHJcbiAgICBcclxuICAgIG9iamVjdHMgPSBbXHJcbiAgICAgICAgeyB0ZXh0OiBcInNoaWZ0XCIsIGZ1bmM6IHNoaWZ0VG9nZ2xlIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImJhY2tzcGFjZVwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXGInKSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJlbnRlclwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXG4nKSB9XHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc3BlY2lhbEtleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAzLCByb3dIZWlnaHQ6IDAuMX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGVjaWFsS2V5cyk7XHJcbiAgICBzcGVjaWFsS2V5cy5wb3NpdGlvbi55ID0geS0wLjUgKiAoc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmcpO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcbiAgICAvL3RoaXMgbG9va3MgcmlnaHQsIG11c3QgYWRtaXQgSSBoYXZlbid0IHRob3VnaHQgdGhyb3VnaCBleGFjdGx5IHdoeSBpdCBzaG91bGQgYmUuXHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0ucG9zaXRpb24ueSA9IHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaGl0c2NhbicsIHtcclxuICAgICAgICBnZXQ6ICgpID0+IFtcclxuICAgICAgICAgICAgc3BlY2lhbEtleXMuaGl0c2Nhbiwgc3BhY2VCYXIuaGl0c2Nhbiwgc2hpZnQgPyB1cHBlcktleXMuaGl0c2NhbiA6IGxvd2VyS2V5cy5oaXRzY2FuXHJcbiAgICAgICAgXS5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBzcGFjZUJhci5mb2xkZXIgPSB1cHBlcktleXMuZm9sZGVyID0gbG93ZXJLZXlzLmZvbGRlciA9IHNwZWNpYWxLZXlzLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IChpbnB1dHMpID0+IHtcclxuICAgICAgICBzcGVjaWFsS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgbG93ZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBzcGFjZUJhci51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgdXBwZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFsaWduTGVmdCggb2JqICl7XHJcbiAgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLk1lc2ggKXtcclxuICAgIG9iai5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIGVsc2UgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5ICl7XHJcbiAgICBvYmouY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgdW5pcXVlTWF0ZXJpYWwgKXtcclxuICBjb25zdCBtYXRlcmlhbCA9IHVuaXF1ZU1hdGVyaWFsID8gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweGZmZmZmZn0pIDogU2hhcmVkTWF0ZXJpYWxzLlBBTkVMO1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggd2lkdGgsIGhlaWdodCwgZGVwdGggKSwgbWF0ZXJpYWwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoICogMC41LCAwLCAwICk7XHJcblxyXG4gIGlmKCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcblxyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcblxyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplUGFuZWwocGFuZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKSB7XHJcbiAgcGFuZWwuZ2VvbWV0cnkuc2NhbGUod2lkdGgvcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoLCBoZWlnaHQvcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCwgZGVwdGgvcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoKTtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIGNvbG9yICl7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDT05UUk9MTEVSX0lEX1dJRFRILCBoZWlnaHQsIENPTlRST0xMRVJfSURfREVQVEggKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCBDT05UUk9MTEVSX0lEX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBjb2xvciApO1xyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURvd25BcnJvdygpe1xyXG4gIGNvbnN0IHcgPSAwLjAwOTY7XHJcbiAgY29uc3QgaCA9IDAuMDE2O1xyXG4gIGNvbnN0IHNoID0gbmV3IFRIUkVFLlNoYXBlKCk7XHJcbiAgc2gubW92ZVRvKDAsMCk7XHJcbiAgc2gubGluZVRvKC13LGgpO1xyXG4gIHNoLmxpbmVUbyh3LGgpO1xyXG4gIHNoLmxpbmVUbygwLDApO1xyXG5cclxuICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuU2hhcGVHZW9tZXRyeSggc2ggKTtcclxuICBnZW8udHJhbnNsYXRlKCAwLCAtaCAqIDAuNSwgMCApO1xyXG5cclxuICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTF9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0hFSUdIVCA9IDAuMDg7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9TUEFDSU5HID0gMDsvLy4wMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9NQVJHSU4gPSAwLjAxNTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOID0gMC4wNjtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfV0lEVEggPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9ERVBUSCA9IDAuMDAxO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9XSURUSCA9IDEuMDI2O1xyXG5leHBvcnQgY29uc3QgU1VCRk9MREVSX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0hFSUdIVCA9IDAuMDk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfR1JBQl9IRUlHSFQgPSAwLjA1MTI7XHJcbmV4cG9ydCBjb25zdCBCT1JERVJfVEhJQ0tORVNTID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX1NJWkUgPSAwLjA1O1xyXG5leHBvcnQgY29uc3QgVEVYVF9TQ0FMRSA9IDAuMDAwMjQ7XHJcbmV4cG9ydCBjb25zdCBHUklEX0JVVFRPTl9NQVJHSU4gPSAwLjAxOyIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25HcmlwcGVkJywgaGFuZGxlT25HcmlwICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlR3JpcCcsIGhhbmRsZU9uR3JpcFJlbGVhc2UgKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIGxldCBvbGRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgbGV0IG9sZFJvdGF0aW9uID0gbmV3IFRIUkVFLkV1bGVyKCk7XHJcblxyXG4gIGNvbnN0IHJvdGF0aW9uR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICByb3RhdGlvbkdyb3VwLnNjYWxlLnNldCggMC4zLCAwLjMsIDAuMyApO1xyXG4gIHJvdGF0aW9uR3JvdXAucG9zaXRpb24uc2V0KCAtMC4wMTUsIDAuMDE1LCAwLjAgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcCggcCApe1xyXG5cclxuICAgIGNvbnN0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvbGRQb3NpdGlvbi5jb3B5KCBmb2xkZXIucG9zaXRpb24gKTtcclxuICAgIG9sZFJvdGF0aW9uLmNvcHkoIGZvbGRlci5yb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnggPSAtTWF0aC5QSSAqIDAuNTtcclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuXHJcbiAgICByb3RhdGlvbkdyb3VwLmFkZCggZm9sZGVyICk7XHJcblxyXG4gICAgaW5wdXRPYmplY3QuYWRkKCByb3RhdGlvbkdyb3VwICk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3Bpbm5lZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXBSZWxlYXNlKCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9PXt9ICl7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KCBvbGRQb3NpdGlvbiApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLmNvcHkoIG9sZFJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3BpblJlbGVhc2VkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsIi8qKlxyXG4gKiBQSlQ6IFRoaXMgaXMgYSB2YXJpYXRpb24gb24gc2Rmc2hhZGVyIGZyb20gYm1mb250LCB3aGljaCBzaG91bGQgSnVzdCBXb3JrIHdpdGggbG9nYXJpdGhtaWMgZGVwdGggYnVmZmVycy5cclxuICogSXQgc2hvdWxkIGFsc28gYWxsb3cgc29tZSBvdGhlciBhc3BlY3RzIG9mIFRIUkVFIHJlbmRlcmluZyB0byBiZSBpbmNvcnBvcmF0ZWQsIGxpa2UgZm9nLCBjbGlwcGluZyBwbGFuZXMuLi5cclxuICogRW52aXJvbm1lbnQgbWFwcyBhbmQgdmFyaW91cyBvdGhlciBiaXRzIGZyb20gTWVzaEJhc2ljTWF0ZXJpYWwgYXJlIHJlbW92ZWQuXHJcbiAqIEF0IHRpbWUgb2Ygd3JpdGluZywgdGhpcyBpcyB3b3JrIGluIHByb2dyZXNzLCBhbmQgc29tZXdoYXQgbW9yZSBibG9hdGVkIHRoYW4gaXQgbmVlZHMgdG8gYmUuXHJcbiAqIFRoZSBzaGFkZXIgY29kZSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggU2hhZGVyTWF0ZXJpYWwgcmF0aGVyIHRoYW4gUmF3U2hhZGVyTWF0ZXJpYWwuXHJcbiAqL1xyXG4gaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZhcnlpbmcgZmxvYXQgdlNjYWxlO1xyXG4vLyBUaGlzIGlzIGRlZmluZWQgaW4gbGF5b3V0LmpzIChhbmQgd2FzIG9ic2VydmVkIGxvb2tpbmcgYXQgdGhyZWUgaGVpcmFjaHkgbWF0cmljZXMpXHJcbiNkZWZpbmUgVEVYVF9TQ0FMRSAke0xheW91dC5URVhUX1NDQUxFfVxyXG52b2lkIG1haW4oKSB7XHJcbiAgXHJcbiAgdlNjYWxlID0gcG93KGFicyhkZXRlcm1pbmFudChtYXQzKG1vZGVsVmlld01hdHJpeCkpKSwgLTAuMzMzMzMpICogVEVYVF9TQ0FMRTtcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG52YXJ5aW5nIGZsb2F0IHZTY2FsZTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgI2lmZGVmIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlc1xyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICAjZWxzZVxyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSAoMS4wIC8gMzIuMCkgKiAoMS40MTQyMTM1NjIzNzMwOTUxIC8gKDIuMCAqIGdsX0ZyYWdDb29yZC53KSk7XHJcbiAgICAjZW5kaWZcclxuICAgIGFmd2lkdGggKj0gdlNjYWxlO1xyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBtZXNoLmdlb21ldHJ5LnVwZGF0ZSggc3RyICk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogVEhSRUUuVmVydGV4Q29sb3JzIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiAweEZGRkZGRiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIC8vaG93IGNhbiBJIGNoYW5nZSBjb2xvciBvZiB0ZXh0P1xyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBvYmplY3RbcHJvcGVydHlOYW1lXSwgeyBjb2xvcjogMHgwMDAwMDAwLCBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgLy9idXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IDAuMDE1O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVN0cmluZyhzdHIpIHtcclxuICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdHI7XHJcbiAgICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKHN0cik7XHJcbiAgfVxyXG4gIHZhciBrZXlib2FyZDtcclxuICBmdW5jdGlvbiB0b2dnbGVLZXlib2FyZCgpIHtcclxuICAgIGlmIChrZXlib2FyZCkge1xyXG4gICAgICAgIGtleWJvYXJkLnZpc2libGUgPSAha2V5Ym9hcmQudmlzaWJsZTtcclxuICAgICAgICBpZiAoa2V5Ym9hcmQudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGtleWJvYXJkID0gZGF0LkdVSVZSLmNyZWF0ZShcImtleWJvYXJkXCIpO1xyXG4gICAgICAgIGdyb3VwLmFkZChrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQuZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueCA9IHdpZHRoO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgICAgICBrZXlib2FyZC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAga2V5Ym9hcmQuYWRkS2V5Ym9hcmQoIChrKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBzdHIgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgc3dpdGNoIChrKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXG4nOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0dGluZyBcImtleWJvYXJkLnZpc2libGUgPSBmYWxzZVwiIGluIHRoZSBtaWRkbGUgb2YgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIgc2VlbXMgdG8ga2lsbCBhbGwgZXZlbnQgcHJvY2Vzc2luZyBmcm9tIHRoZW4gb24uXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0IGlzIGFuIGFkZXF1YXRlIHdvcmthcm91bmQgZm9yIG5vdy5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRvZ2dsZUtleWJvYXJkLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxiJzpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSBrO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL3RoaXMgdGVzdCBzaG91bGQgYmUgcmVkdW5kYW50IG5vd1xyXG4gICAgLy8gaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvL29iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICAvL2hpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICAvLyBjcmVhdGUgYSBrZXlib2FyZCBhbmQgYXR0YWNoIGl0IGFzIGNoaWxkIG9mIGdyb3VwLi4uIFxyXG4gICAgLy8gb3IganVzdCBtYWtlIHN1cmUgZXhpc3Rpbmcga2V5Ym9hcmQgaXMgdmlzaWJsZS5cclxuICAgIHRvZ2dsZUtleWJvYXJkKCk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfSElHSExJR0hUX0JHICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0JHICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRMYWJlbCggdGV4dENyZWF0b3IsIHN0ciwgd2lkdGggPSAwLjQsIGRlcHRoID0gMC4wMjksIGZnQ29sb3IgPSAweGZmZmZmZiwgYmdDb2xvciA9IENvbG9ycy5ERUZBVUxUX0JBQ0ssIHNjYWxlID0gMS4wICl7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGxhYmVsXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7c3RyfV1gO1xyXG5cclxuICBjb25zdCBpbnRlcm5hbFBvc2l0aW9uaW5nID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vcmF0aGVyIHVubmVjZXNzYXJ5LlxyXG4gIGdyb3VwLmFkZCggaW50ZXJuYWxQb3NpdGlvbmluZyApO1xyXG5cclxuICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdHIudG9TdHJpbmcoKSwgeyBjb2xvcjogZmdDb2xvciwgc2NhbGUgfSApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCB0ZXh0ICk7XHJcbiAgZ3JvdXAudXNlckRhdGEudGV4dCA9IHRleHQ7XHJcblxyXG4gIGdyb3VwLnNldFN0cmluZyA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkgc3RyID0gXCJbdW5kZWZpbmVkXVwiO1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvU3RyaW5nKCkgKTtcclxuICAgIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0TnVtYmVyID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvRml4ZWQoMikgKTtcclxuICB9O1xyXG5cclxuICB0ZXh0LnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgY29uc3QgYmFja0JvdW5kcyA9IDAuMDE7XHJcbiAgY29uc3QgbWFyZ2luID0gMC4wMTtcclxuICBjb25zdCB0b3RhbFdpZHRoID0gd2lkdGg7XHJcbiAgY29uc3QgdG90YWxIZWlnaHQgPSAwLjA0ICsgbWFyZ2luICogMjtcclxuXHJcbiAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrR2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0LCBkZXB0aCwgMSwgMSwgMSApO1xyXG4gIGxhYmVsQmFja0dlb21ldHJ5LmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oIHRvdGFsV2lkdGggKiAwLjUgLSBtYXJnaW4sIDAsIDAgKSApO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tNZXNoID0gbmV3IFRIUkVFLk1lc2goIGxhYmVsQmFja0dlb21ldHJ5LCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWxCYWNrTWVzaC5nZW9tZXRyeSwgYmdDb2xvciApO1xyXG5cclxuICBsYWJlbEJhY2tNZXNoLnBvc2l0aW9uLnkgPSAwLjAzO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCBsYWJlbEJhY2tNZXNoICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5wb3NpdGlvbi55ID0gLXRvdGFsSGVpZ2h0ICogMC41O1xyXG5cclxuICBncm91cC5iYWNrID0gbGFiZWxCYWNrTWVzaDtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0UGFyZW50SGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbFRpcCggdGV4dENyZWF0b3IsIHRpcCwgcGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCA9IGRlZmF1bHRQYXJlbnRIZWlnaHQsIHBhcmVudERlcHRoICkge1xyXG4gIGNvbnN0IHRpcFRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUodGlwKTtcclxuICBcclxuICBjb25zdCB0aXBHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICBjb25zdCB3ID0gdGlwVGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICBjb25zdCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0aXBUZXh0LmxheW91dC5oZWlnaHQ7XHJcblxyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnggID0gMC41ICogcGFyZW50V2lkdGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueSA9IC0xLjA1ICogcGFyZW50SGVpZ2h0IC0gaDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi56ID0gcGFyZW50RGVwdGggKiAzO1xyXG4gIHRpcEdyb3VwLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbi8vICBzdWJncm91cC5hZGQodGlwR3JvdXApO1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBUZXh0KTtcclxuLy8gIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBHcm91cDtcclxuXHJcbiAgY29uc3QgcGFkZGVkVyA9IHcgKyAwLjAzLCBwYWRkZWRIID0gaCArIDAuMDM7XHJcbiAgY29uc3QgdGlwUmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KHBhZGRlZFcsIHBhZGRlZEgsIDEsIDEpO1xyXG4gIGNvbnN0IHRpcEJhY2tncm91bmQgPSBuZXcgVEhSRUUuTWVzaCh0aXBSZWN0LCBTaGFyZWRNYXRlcmlhbHMuVE9PTFRJUCk7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi54ID0gMDsgLy9wYWRkZWRXIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnkgPSBoIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnogPSAtcGFyZW50RGVwdGggKiAwLjU7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcEJhY2tncm91bmQpO1xyXG5cclxuICB0aXBUZXh0LnBvc2l0aW9uLnggPSAtMC41ICogdztcclxuICB0aXBUZXh0LnBvc2l0aW9uLnkgPSAtMC41ICogaCArIDAuMDAxNTtcclxuXHJcbiAgdGlwR3JvdXAudXNlckRhdGEudyA9IHc7XHJcbiAgdGlwR3JvdXAudXNlckRhdGEuaCA9IGg7XHJcblxyXG4gIHJldHVybiB0aXBHcm91cDtcclxufVxyXG4iLCIvKiogYmFzaWMgdXRpbGl0eSBmdW5jdGlvbnMgKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xsZXJWaXNpYmxlKGNvbnRyb2wpIHtcclxuICB2YXIgZm9sZGVyID0gY29udHJvbC5mb2xkZXI7XHJcbiAgLy9ub3RlOiB0aGUgYmFzaXMgb24gd2hpY2ggYSBjb250cm9sbGVyIGlzIGNvbnNpZGVyZWQgdmlzaWJsZSByZXZpc2VkIGZvciAnaGVhZGVyJyBvYmplY3RzLlxyXG4gIC8vZm9yIG5vdywgdGhpcyBzaG91bGQgYWxsb3cgaGVhZGVyIGNvbnRyb2xsZXJzIHRvIHVwZGF0ZSB3aGlsZSBmb2xkZXIgaXMgY29sbGFwc2VkLlxyXG4gIC8vb25seSBhcHBsaWVzIHRvIGNoZWNrYm94LCBwZW5kaW5nIGRlc2lnbiByZXZpc2lvbiAmIGZ1bGxlciBpbXBsZW1lbnRhdGlvbi4uLlxyXG4gIFxyXG4gIC8vLS0tLSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgbm8gbG9uZ2VyIHJlbGV2YW50LCBidXQgZW5kaW5nIHVwIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3Mgc2ltaWxhci4uLi5cclxuICAvL2lzSGVhZGVyT2JqZWN0IHdpbGwgYXBwbHkgdG8gdGhlIGFjdHVhbCBjb250cm9sIGFwcGVhcmluZyBpbiB0aGUgZm9sZGVyIGhlYWRlciwgd2hlcmVhc1xyXG4gIC8vaXNTaG93bkluRm9sZGVySGVhZGVyIHdhcyB3aGVuIHN1Y2ggb2JqZWN0cyB3ZXJlbid0IHNvIGZ1bGx5LWZsZWRnZWRcclxuICAvL2lmIChjb250cm9sLmlzU2hvd25JbkZvbGRlckhlYWRlcikgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTsgLy88PDw8PCBzdGlsbCBoaXR0aW5nIGZvbGRlZCBidXR0b24/Pz8gKGFsc28sIHRyeSBucG0gYXVkaXQpXHJcbiAgaWYgKGNvbnRyb2wuaXNIZWFkZXJPYmplY3QpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7XHJcblxyXG4gIC8vWFhYIGhhdmluZyBzb21lIGRlZmluaXRlIGJ1Z3MgZS5nLiBtaXNzaW5nIGV2ZW50cyBvdmVyICdwaWN0dXJlcyAvIG1hdGVyaWFscycgZm9sZGVyIGhlYWRlciBpbiBkZW1vLlxyXG4gIFxyXG4gIGlmICghY29udHJvbC52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcil7XHJcbiAgICBpZiAoZm9sZGVyLmlzQ29sbGFwc2VkKCkgfHwgIWZvbGRlci52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gIH1cclxuICBpZiAoIWZvbGRlci5wYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gZm9sZGVyLnZpc2libGU7XHJcbn1cclxuXHJcbi8qKiBcclxuICogSW52aXNpYmxlIFRIUkVFIG9iamVjdHMgaW5jdXIgc2lnbmlmaWNhbnQgQ1BVIGNvc3QuXHJcbiAqIFRoaXMgYXZvaWRzIHRoYXQgYnkgcmVtb3ZpbmcgdGhlbSBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICogXHJcbiAqIElmIHZpc2libGUgaXMgdHJ1ZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9dHJ1ZSBhbmQgaXMgYSBjaGlsZCBvZiBwYXJlbnQuXHJcbiAqIElmIHZpc2libGUgaXMgZmFsc2UsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPWZhbHNlIGFuZCBpcyByZW1vdmVkIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHkocGFyZW50LCBjaGlsZCwgdmlzaWJsZSkge1xyXG4gICAgY29uc3QgaXNDaGlsZCA9IHBhcmVudC5jaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCk7XHJcbiAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgIC8vbWFrZSBzdXJlIHdlIHVzZSBvcmlnaW5hbCBUSFJFRSBtZXRob2RzIHRoYXQgdGhpcyBsaWJyYXJ5IG92ZXJyaWRlcyAoVE9ETzogcmVmYWN0b3IuLi4pXHJcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZC5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCF2aXNpYmxlICYmIGlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmUuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghcGFyZW50LnZpc2libGUpIGNvbnNvbGUud2Fybihgc2V0VmlzaWJpbGl0eSBjYWxsZWQgb24gY2hpbGQgJHtjaGlsZH0gb2YgaW52aXNpYmxlIHBhcmVudCAke3BhcmVudH1gKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2YgcGFyZW50IGZvbGRlciBpbiB0aGUgZ3VpIGhpZWFyY2h5IGNvbnRhaW5pbmcgYSBnaXZlbiBvYmplY3QuXHJcbiAqIG5iLiBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0IGRpZG4ndCBoYXZlIGEgJ2ZvbGRlcicgcHJvcGVydHkuXHJcbiAqIE5vdywgaXQgaXMgaW50ZW5kZWQgdGhhdCBpdCBzaG91bGQgZWl0aGVyIHJldHVybiBhIGZvbGRlciBpZiBhcHByb3ByaWF0ZSwgb3Igbm90aGluZy5cclxuICogQHBhcmFtIHsqfSBncm91cCBlaXRoZXIgYSBmb2xkZXIsIG9yIGFuIG9iamVjdCB3aG9zZSBwYXJlbnQgaGFzIGEgZm9sZGVyLi4uIGFwb2xvZ2llcywgdGhpcyBpcyBub3QgdGhlIGNsZWFyZXN0IHNwZWMuXHJcbiAqIC4uLiBpbnRlbnRpb24gaXMgdGhhdCBpdCBzaG91bGQgd29yayB3aXRoIGFueSBndWkgZWxlbWVudCwgaW4gcGFydGljdWxhciBhbnkgaGl0T2JqZWN0IGluIGludGVyYWN0aW9uLmpzLi4uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApIHtcclxuICAgIHZhciBmb2xkZXIgPSBnZXRGb2xkZXIoZ3JvdXApO1xyXG4gICAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcikgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICAgIHJldHVybiBmb2xkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoZ3JvdXApIHtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIHJldHVybiBncm91cC5mb2xkZXI7XHJcbiAgICBsZXQgbm9kZSA9IGdyb3VwLnBhcmVudDtcclxuICAgIHdoaWxlICghbm9kZS5mb2xkZXIgJiYgZ3JvdXAucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICByZXR1cm4gbm9kZS5mb2xkZXI7XHJcbn1cclxuXHJcbi8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCb3hGcm9tT2JqZWN0KGJveCwgb2JqKSB7XHJcbiAgY29uc3Qgd29ua3lHZW9tID0gW107XHJcbiAgb2JqLnRyYXZlcnNlKG8gPT4ge1xyXG4gICAgaWYgKG8uZ2VvbWV0cnkgJiYgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZSAhPT0gMykge1xyXG4gICAgICBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgPSBmYWxzZTtcclxuICAgICAgd29ua3lHZW9tLnB1c2goby5nZW9tZXRyeSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgYm94LnNldEZyb21PYmplY3Qob2JqKTtcclxuICB3b25reUdlb20uZm9yRWFjaChnID0+IGcuaXNCdWZmZXJHZW9tZXRyeSA9IHRydWUpO1xyXG4gIHJldHVybiBib3g7XHJcbn1cclxuIiwiLypcclxuICpcdEBhdXRob3Igeno4NSAvIGh0dHA6Ly90d2l0dGVyLmNvbS9ibHVyc3BsaW5lIC8gaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZ1xyXG4gKlx0QGF1dGhvciBjZW50ZXJpb253YXJlIC8gaHR0cDovL3d3dy5jZW50ZXJpb253YXJlLmNvbVxyXG4gKlxyXG4gKlx0U3ViZGl2aXNpb24gR2VvbWV0cnkgTW9kaWZpZXJcclxuICpcdFx0dXNpbmcgTG9vcCBTdWJkaXZpc2lvbiBTY2hlbWVcclxuICpcclxuICpcdFJlZmVyZW5jZXM6XHJcbiAqXHRcdGh0dHA6Ly9ncmFwaGljcy5zdGFuZm9yZC5lZHUvfm1kZmlzaGVyL3N1YmRpdmlzaW9uLmh0bWxcclxuICpcdFx0aHR0cDovL3d3dy5ob2xtZXMzZC5uZXQvZ3JhcGhpY3Mvc3ViZGl2aXNpb24vXHJcbiAqXHRcdGh0dHA6Ly93d3cuY3MucnV0Z2Vycy5lZHUvfmRlY2FybG8vcmVhZGluZ3Mvc3ViZGl2LXNnMDBjLnBkZlxyXG4gKlxyXG4gKlx0S25vd24gSXNzdWVzOlxyXG4gKlx0XHQtIGN1cnJlbnRseSBkb2Vzbid0IGhhbmRsZSBcIlNoYXJwIEVkZ2VzXCJcclxuICovXHJcblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyID0gZnVuY3Rpb24gKCBzdWJkaXZpc2lvbnMgKSB7XHJcblxyXG5cdHRoaXMuc3ViZGl2aXNpb25zID0gKCBzdWJkaXZpc2lvbnMgPT09IHVuZGVmaW5lZCApID8gMSA6IHN1YmRpdmlzaW9ucztcclxuXHJcbn07XHJcblxyXG4vLyBBcHBsaWVzIHRoZSBcIm1vZGlmeVwiIHBhdHRlcm5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUubW9kaWZ5ID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHtcclxuXHJcblx0dmFyIHJlcGVhdHMgPSB0aGlzLnN1YmRpdmlzaW9ucztcclxuXHJcblx0d2hpbGUgKCByZXBlYXRzIC0tID4gMCApIHtcclxuXHJcblx0XHR0aGlzLnNtb290aCggZ2VvbWV0cnkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRnZW9tZXRyeS5jb21wdXRlRmFjZU5vcm1hbHMoKTtcclxuXHRnZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xyXG5cclxufTtcclxuXHJcbiggZnVuY3Rpb24oKSB7XHJcblxyXG5cdC8vIFNvbWUgY29uc3RhbnRzXHJcblx0dmFyIFdBUk5JTkdTID0gISB0cnVlOyAvLyBTZXQgdG8gdHJ1ZSBmb3IgZGV2ZWxvcG1lbnRcclxuXHR2YXIgQUJDID0gWyAnYScsICdiJywgJ2MnIF07XHJcblxyXG5cclxuXHRmdW5jdGlvbiBnZXRFZGdlKCBhLCBiLCBtYXAgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0cmV0dXJuIG1hcFsga2V5IF07XHJcblxyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHByb2Nlc3NFZGdlKCBhLCBiLCB2ZXJ0aWNlcywgbWFwLCBmYWNlLCBtZXRhVmVydGljZXMgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0dmFyIGVkZ2U7XHJcblxyXG5cdFx0aWYgKCBrZXkgaW4gbWFwICkge1xyXG5cclxuXHRcdFx0ZWRnZSA9IG1hcFsga2V5IF07XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHZhciB2ZXJ0ZXhBID0gdmVydGljZXNbIHZlcnRleEluZGV4QSBdO1xyXG5cdFx0XHR2YXIgdmVydGV4QiA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEIgXTtcclxuXHJcblx0XHRcdGVkZ2UgPSB7XHJcblxyXG5cdFx0XHRcdGE6IHZlcnRleEEsIC8vIHBvaW50ZXIgcmVmZXJlbmNlXHJcblx0XHRcdFx0YjogdmVydGV4QixcclxuXHRcdFx0XHRuZXdFZGdlOiBudWxsLFxyXG5cdFx0XHRcdC8vIGFJbmRleDogYSwgLy8gbnVtYmVyZWQgcmVmZXJlbmNlXHJcblx0XHRcdFx0Ly8gYkluZGV4OiBiLFxyXG5cdFx0XHRcdGZhY2VzOiBbXSAvLyBwb2ludGVycyB0byBmYWNlXHJcblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0bWFwWyBrZXkgXSA9IGVkZ2U7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGVkZ2UuZmFjZXMucHVzaCggZmFjZSApO1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlc1sgYSBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHRcdG1ldGFWZXJ0aWNlc1sgYiBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2VuZXJhdGVMb29rdXBzKCB2ZXJ0aWNlcywgZmFjZXMsIG1ldGFWZXJ0aWNlcywgZWRnZXMgKSB7XHJcblxyXG5cdFx0dmFyIGksIGlsLCBmYWNlLCBlZGdlO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IHZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0bWV0YVZlcnRpY2VzWyBpIF0gPSB7IGVkZ2VzOiBbXSB9O1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBmYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBmYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYSwgZmFjZS5iLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5iLCBmYWNlLmMsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmMsIGZhY2UuYSwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3RmFjZSggbmV3RmFjZXMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3RmFjZXMucHVzaCggbmV3IFRIUkVFLkZhY2UzKCBhLCBiLCBjICkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBtaWRwb2ludCggYSwgYiApIHtcclxuXHJcblx0XHRyZXR1cm4gKCBNYXRoLmFicyggYiAtIGEgKSAvIDIgKSArIE1hdGgubWluKCBhLCBiICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3VXYoIG5ld1V2cywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdVdnMucHVzaCggWyBhLmNsb25lKCksIGIuY2xvbmUoKSwgYy5jbG9uZSgpIF0gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHQvLyBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIFN1YmRpdmlzaW9uXHJcblx0VEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUuc21vb3RoID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHsgcmV0dXJuOyAvLyBzanB0IFRFTVAgVE9ET1xyXG5cclxuXHRcdHZhciB0bXAgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdHZhciBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG9sZFV2cztcclxuXHRcdHZhciBuZXdWZXJ0aWNlcywgbmV3RmFjZXMsIG5ld1VWcyA9IFtdO1xyXG5cclxuXHRcdHZhciBuLCBsLCBpLCBpbCwgaiwgaztcclxuXHRcdHZhciBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzO1xyXG5cclxuXHRcdC8vIG5ldyBzdHVmZi5cclxuXHRcdHZhciBzb3VyY2VFZGdlcywgbmV3RWRnZVZlcnRpY2VzLCBuZXdTb3VyY2VWZXJ0aWNlcztcclxuXHJcblx0XHRvbGRWZXJ0aWNlcyA9IGdlb21ldHJ5LnZlcnRpY2VzOyAvLyB7IHgsIHksIHp9XHJcblx0XHRvbGRGYWNlcyA9IGdlb21ldHJ5LmZhY2VzOyAvLyB7IGE6IG9sZFZlcnRleDEsIGI6IG9sZFZlcnRleDIsIGM6IG9sZFZlcnRleDMgfVxyXG5cdFx0b2xkVXZzID0gZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdO1xyXG5cclxuXHRcdHZhciBoYXNVdnMgPSBvbGRVdnMgIT09IHVuZGVmaW5lZCAmJiBvbGRVdnMubGVuZ3RoID4gMDtcclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICogU3RlcCAwOiBQcmVwcm9jZXNzIEdlb21ldHJ5IHRvIEdlbmVyYXRlIGVkZ2VzIExvb2t1cFxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlcyA9IG5ldyBBcnJheSggb2xkVmVydGljZXMubGVuZ3RoICk7XHJcblx0XHRzb3VyY2VFZGdlcyA9IHt9OyAvLyBFZGdlID0+IHsgb2xkVmVydGV4MSwgb2xkVmVydGV4MiwgZmFjZXNbXSAgfVxyXG5cclxuXHRcdGdlbmVyYXRlTG9va3Vwcyggb2xkVmVydGljZXMsIG9sZEZhY2VzLCBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzICk7XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAxLlxyXG5cdFx0ICpcdEZvciBlYWNoIGVkZ2UsIGNyZWF0ZSBhIG5ldyBFZGdlIFZlcnRleCxcclxuXHRcdCAqXHR0aGVuIHBvc2l0aW9uIGl0LlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld0VkZ2VWZXJ0aWNlcyA9IFtdO1xyXG5cdFx0dmFyIG90aGVyLCBjdXJyZW50RWRnZSwgbmV3RWRnZSwgZmFjZTtcclxuXHRcdHZhciBlZGdlVmVydGV4V2VpZ2h0LCBhZGphY2VudFZlcnRleFdlaWdodCwgY29ubmVjdGVkRmFjZXM7XHJcblxyXG5cdFx0Zm9yICggaSBpbiBzb3VyY2VFZGdlcyApIHtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlID0gc291cmNlRWRnZXNbIGkgXTtcclxuXHRcdFx0bmV3RWRnZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMyAvIDg7XHJcblx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRjb25uZWN0ZWRGYWNlcyA9IGN1cnJlbnRFZGdlLmZhY2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdC8vIGNoZWNrIGhvdyBtYW55IGxpbmtlZCBmYWNlcy4gMiBzaG91bGQgYmUgY29ycmVjdC5cclxuXHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiBsZW5ndGggaXMgbm90IDIsIGhhbmRsZSBjb25kaXRpb25cclxuXHRcdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMC41O1xyXG5cdFx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdTdWJkaXZpc2lvbiBNb2RpZmllcjogTnVtYmVyIG9mIGNvbm5lY3RlZCBmYWNlcyAhPSAyLCBpczogJywgY29ubmVjdGVkRmFjZXMsIGN1cnJlbnRFZGdlICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld0VkZ2UuYWRkVmVjdG9ycyggY3VycmVudEVkZ2UuYSwgY3VycmVudEVkZ2UuYiApLm11bHRpcGx5U2NhbGFyKCBlZGdlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IGNvbm5lY3RlZEZhY2VzOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRmYWNlID0gY3VycmVudEVkZ2UuZmFjZXNbIGogXTtcclxuXHJcblx0XHRcdFx0Zm9yICggayA9IDA7IGsgPCAzOyBrICsrICkge1xyXG5cclxuXHRcdFx0XHRcdG90aGVyID0gb2xkVmVydGljZXNbIGZhY2VbIEFCQ1sgayBdIF0gXTtcclxuXHRcdFx0XHRcdGlmICggb3RoZXIgIT09IGN1cnJlbnRFZGdlLmEgJiYgb3RoZXIgIT09IGN1cnJlbnRFZGdlLmIgKSBicmVhaztcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBhZGphY2VudFZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdFZGdlLmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZS5uZXdFZGdlID0gbmV3RWRnZVZlcnRpY2VzLmxlbmd0aDtcclxuXHRcdFx0bmV3RWRnZVZlcnRpY2VzLnB1c2goIG5ld0VkZ2UgKTtcclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGN1cnJlbnRFZGdlLCBuZXdFZGdlKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDIuXHJcblx0XHQgKlx0UmVwb3NpdGlvbiBlYWNoIHNvdXJjZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHR2YXIgYmV0YSwgc291cmNlVmVydGV4V2VpZ2h0LCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0O1xyXG5cdFx0dmFyIGNvbm5lY3RpbmdFZGdlLCBjb25uZWN0aW5nRWRnZXMsIG9sZFZlcnRleCwgbmV3U291cmNlVmVydGV4O1xyXG5cdFx0bmV3U291cmNlVmVydGljZXMgPSBbXTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRWZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG9sZFZlcnRleCA9IG9sZFZlcnRpY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIGFsbCBjb25uZWN0aW5nIGVkZ2VzICh1c2luZyBsb29rdXBUYWJsZSlcclxuXHRcdFx0Y29ubmVjdGluZ0VkZ2VzID0gbWV0YVZlcnRpY2VzWyBpIF0uZWRnZXM7XHJcblx0XHRcdG4gPSBjb25uZWN0aW5nRWRnZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0aWYgKCBuID09IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gMTY7XHJcblxyXG5cdFx0XHR9IGVsc2UgaWYgKCBuID4gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAoIDggKiBuICk7IC8vIFdhcnJlbidzIG1vZGlmaWVkIGZvcm11bGFcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIExvb3AncyBvcmlnaW5hbCBiZXRhIGZvcm11bGFcclxuXHRcdFx0Ly8gYmV0YSA9IDEgLyBuICogKCA1LzggLSBNYXRoLnBvdyggMy84ICsgMS80ICogTWF0aC5jb3MoIDIgKiBNYXRoLiBQSSAvIG4gKSwgMikgKTtcclxuXHJcblx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDEgLSBuICogYmV0YTtcclxuXHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IGJldGE7XHJcblxyXG5cdFx0XHRpZiAoIG4gPD0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlc1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUud2FybignY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlcycpO1xyXG5cclxuXHRcdFx0XHRpZiAoIG4gPT0gMiApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMiBjb25uZWN0aW5nIGVkZ2VzJywgY29ubmVjdGluZ0VkZ2VzICk7XHJcblx0XHRcdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAzIC8gNDtcclxuXHRcdFx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdFx0XHQvLyBzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxO1xyXG5cdFx0XHRcdFx0Ly8gY29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnb25seSAxIGNvbm5lY3RpbmcgZWRnZScgKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAwICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcwIGNvbm5lY3RpbmcgZWRnZXMnICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleCA9IG9sZFZlcnRleC5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKCBzb3VyY2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgbjsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0Y29ubmVjdGluZ0VkZ2UgPSBjb25uZWN0aW5nRWRnZXNbIGogXTtcclxuXHRcdFx0XHRvdGhlciA9IGNvbm5lY3RpbmdFZGdlLmEgIT09IG9sZFZlcnRleCA/IGNvbm5lY3RpbmdFZGdlLmEgOiBjb25uZWN0aW5nRWRnZS5iO1xyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3U291cmNlVmVydGV4LmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0aWNlcy5wdXNoKCBuZXdTb3VyY2VWZXJ0ZXggKTtcclxuXHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAzLlxyXG5cdFx0ICpcdEdlbmVyYXRlIEZhY2VzIGJldHdlZW4gc291cmNlIHZlcnRpY2VzXHJcblx0XHQgKlx0YW5kIGVkZ2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3VmVydGljZXMgPSBuZXdTb3VyY2VWZXJ0aWNlcy5jb25jYXQoIG5ld0VkZ2VWZXJ0aWNlcyApO1xyXG5cdFx0dmFyIHNsID0gbmV3U291cmNlVmVydGljZXMubGVuZ3RoLCBlZGdlMSwgZWRnZTIsIGVkZ2UzO1xyXG5cdFx0bmV3RmFjZXMgPSBbXTtcclxuXHJcblx0XHR2YXIgdXYsIHgwLCB4MSwgeDI7XHJcblx0XHR2YXIgeDMgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg0ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NSA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkRmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gb2xkRmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgdGhlIDMgbmV3IGVkZ2VzIHZlcnRleCBvZiBlYWNoIG9sZCBmYWNlXHJcblxyXG5cdFx0XHRlZGdlMSA9IGdldEVkZ2UoIGZhY2UuYSwgZmFjZS5iLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTIgPSBnZXRFZGdlKCBmYWNlLmIsIGZhY2UuYywgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UzID0gZ2V0RWRnZSggZmFjZS5jLCBmYWNlLmEsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgZmFjZXMuXHJcblxyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZWRnZTEsIGVkZ2UyLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5hLCBlZGdlMSwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYiwgZWRnZTIsIGVkZ2UxICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmMsIGVkZ2UzLCBlZGdlMiApO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgbmV3IHV2J3NcclxuXHJcblx0XHRcdGlmICggaGFzVXZzICkge1xyXG5cclxuXHRcdFx0XHR1diA9IG9sZFV2c1sgaSBdO1xyXG5cclxuXHRcdFx0XHR4MCA9IHV2WyAwIF07XHJcblx0XHRcdFx0eDEgPSB1dlsgMSBdO1xyXG5cdFx0XHRcdHgyID0gdXZbIDIgXTtcclxuXHJcblx0XHRcdFx0eDMuc2V0KCBtaWRwb2ludCggeDAueCwgeDEueCApLCBtaWRwb2ludCggeDAueSwgeDEueSApICk7XHJcblx0XHRcdFx0eDQuc2V0KCBtaWRwb2ludCggeDEueCwgeDIueCApLCBtaWRwb2ludCggeDEueSwgeDIueSApICk7XHJcblx0XHRcdFx0eDUuc2V0KCBtaWRwb2ludCggeDAueCwgeDIueCApLCBtaWRwb2ludCggeDAueSwgeDIueSApICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgzLCB4NCwgeDUgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MCwgeDMsIHg1ICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgxLCB4NCwgeDMgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MiwgeDUsIHg0ICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE92ZXJ3cml0ZSBvbGQgYXJyYXlzXHJcblx0XHRnZW9tZXRyeS52ZXJ0aWNlcyA9IG5ld1ZlcnRpY2VzO1xyXG5cdFx0Z2VvbWV0cnkuZmFjZXMgPSBuZXdGYWNlcztcclxuXHRcdGlmICggaGFzVXZzICkgZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdID0gbmV3VVZzO1xyXG5cclxuXHRcdC8vIGNvbnNvbGUubG9nKCdkb25lJyk7XHJcblxyXG5cdH07XHJcblxyXG59ICkoKTtcclxuIiwidmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBhbkFycmF5XG5cbmZ1bmN0aW9uIGFuQXJyYXkoYXJyKSB7XG4gIHJldHVybiAoXG4gICAgICAgYXJyLkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgJiYgc3RyLmNhbGwoYXJyLmJ1ZmZlcikgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSdcbiAgICB8fCBBcnJheS5pc0FycmF5KGFycilcbiAgKVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBudW10eXBlKG51bSwgZGVmKSB7XG5cdHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJ1xuXHRcdD8gbnVtIFxuXHRcdDogKHR5cGVvZiBkZWYgPT09ICdudW1iZXInID8gZGVmIDogMClcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGR0eXBlKSB7XG4gIHN3aXRjaCAoZHR5cGUpIHtcbiAgICBjYXNlICdpbnQ4JzpcbiAgICAgIHJldHVybiBJbnQ4QXJyYXlcbiAgICBjYXNlICdpbnQxNic6XG4gICAgICByZXR1cm4gSW50MTZBcnJheVxuICAgIGNhc2UgJ2ludDMyJzpcbiAgICAgIHJldHVybiBJbnQzMkFycmF5XG4gICAgY2FzZSAndWludDgnOlxuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlcbiAgICBjYXNlICd1aW50MTYnOlxuICAgICAgcmV0dXJuIFVpbnQxNkFycmF5XG4gICAgY2FzZSAndWludDMyJzpcbiAgICAgIHJldHVybiBVaW50MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0MzInOlxuICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0NjQnOlxuICAgICAgcmV0dXJuIEZsb2F0NjRBcnJheVxuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIHJldHVybiBBcnJheVxuICAgIGNhc2UgJ3VpbnQ4X2NsYW1wZWQnOlxuICAgICAgcmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSID0gdHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnID8gUmVmbGVjdCA6IG51bGxcbnZhciBSZWZsZWN0QXBwbHkgPSBSICYmIHR5cGVvZiBSLmFwcGx5ID09PSAnZnVuY3Rpb24nXG4gID8gUi5hcHBseVxuICA6IGZ1bmN0aW9uIFJlZmxlY3RBcHBseSh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpO1xuICB9XG5cbnZhciBSZWZsZWN0T3duS2V5c1xuaWYgKFIgJiYgdHlwZW9mIFIub3duS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICBSZWZsZWN0T3duS2V5cyA9IFIub3duS2V5c1xufSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldClcbiAgICAgIC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKTtcbiAgfTtcbn0gZWxzZSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyh3YXJuaW5nKSB7XG4gIGlmIChjb25zb2xlICYmIGNvbnNvbGUud2FybikgY29uc29sZS53YXJuKHdhcm5pbmcpO1xufVxuXG52YXIgTnVtYmVySXNOYU4gPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gTnVtYmVySXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5tb2R1bGUuZXhwb3J0cy5vbmNlID0gb25jZTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9uY2UoZW1pdHRlciwgbmFtZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZ1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXJyKSB7XG4gICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKG5hbWUsIHJlc29sdmVyKTtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKCkge1xuICAgICAgaWYgKHR5cGVvZiBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgfTtcblxuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCByZXNvbHZlciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIGlmIChuYW1lICE9PSAnZXJyb3InKSB7XG4gICAgICBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBlcnJvckxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgaGFuZGxlciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsICdlcnJvcicsIGhhbmRsZXIsIGZsYWdzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgbGlzdGVuZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICBlbWl0dGVyLm9uY2UobmFtZSwgbGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbWl0dGVyLm9uKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEV2ZW50VGFyZ2V0IGRvZXMgbm90IGhhdmUgYGVycm9yYCBldmVudCBzZW1hbnRpY3MgbGlrZSBOb2RlXG4gICAgLy8gRXZlbnRFbWl0dGVycywgd2UgZG8gbm90IGxpc3RlbiBmb3IgYGVycm9yYCBldmVudHMgaGVyZS5cbiAgICBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZnVuY3Rpb24gd3JhcExpc3RlbmVyKGFyZykge1xuICAgICAgLy8gSUUgZG9lcyBub3QgaGF2ZSBidWlsdGluIGB7IG9uY2U6IHRydWUgfWAgc3VwcG9ydCBzbyB3ZVxuICAgICAgLy8gaGF2ZSB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXIoYXJnKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJlbWl0dGVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGVtaXR0ZXIpO1xuICB9XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gICAgfVxuICB9XG59XG4iLCIvKiFcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXJcbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbi8vIFRoZSBfaXNCdWZmZXIgY2hlY2sgaXMgZm9yIFNhZmFyaSA1LTcgc3VwcG9ydCwgYmVjYXVzZSBpdCdzIG1pc3Npbmdcbi8vIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKGlzQnVmZmVyKG9iaikgfHwgaXNTbG93QnVmZmVyKG9iaikgfHwgISFvYmouX2lzQnVmZmVyKVxufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiAhIW9iai5jb25zdHJ1Y3RvciAmJiB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopXG59XG5cbi8vIEZvciBOb2RlIHYwLjEwIHN1cHBvcnQuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHkuXG5mdW5jdGlvbiBpc1Nsb3dCdWZmZXIgKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iai5yZWFkRmxvYXRMRSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnNsaWNlID09PSAnZnVuY3Rpb24nICYmIGlzQnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsInZhciB3b3JkV3JhcCA9IHJlcXVpcmUoJ3dvcmQtd3JhcHBlcicpXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpXG52YXIgbnVtYmVyID0gcmVxdWlyZSgnYXMtbnVtYmVyJylcblxudmFyIFhfSEVJR0hUUyA9IFsneCcsICdlJywgJ2EnLCAnbycsICduJywgJ3MnLCAncicsICdjJywgJ3UnLCAnbScsICd2JywgJ3cnLCAneiddXG52YXIgTV9XSURUSFMgPSBbJ20nLCAndyddXG52YXIgQ0FQX0hFSUdIVFMgPSBbJ0gnLCAnSScsICdOJywgJ0UnLCAnRicsICdLJywgJ0wnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWiddXG5cblxudmFyIFRBQl9JRCA9ICdcXHQnLmNoYXJDb2RlQXQoMClcbnZhciBTUEFDRV9JRCA9ICcgJy5jaGFyQ29kZUF0KDApXG52YXIgQUxJR05fTEVGVCA9IDAsIFxuICAgIEFMSUdOX0NFTlRFUiA9IDEsIFxuICAgIEFMSUdOX1JJR0hUID0gMlxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUxheW91dChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0TGF5b3V0KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dExheW91dChvcHQpIHtcbiAgdGhpcy5nbHlwaHMgPSBbXVxuICB0aGlzLl9tZWFzdXJlID0gdGhpcy5jb21wdXRlTWV0cmljcy5iaW5kKHRoaXMpXG4gIHRoaXMudXBkYXRlKG9wdClcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24ob3B0KSB7XG4gIG9wdCA9IHh0ZW5kKHtcbiAgICBtZWFzdXJlOiB0aGlzLl9tZWFzdXJlXG4gIH0sIG9wdClcbiAgdGhpcy5fb3B0ID0gb3B0XG4gIHRoaXMuX29wdC50YWJTaXplID0gbnVtYmVyKHRoaXMuX29wdC50YWJTaXplLCA0KVxuXG4gIGlmICghb3B0LmZvbnQpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHByb3ZpZGUgYSB2YWxpZCBiaXRtYXAgZm9udCcpXG5cbiAgdmFyIGdseXBocyA9IHRoaXMuZ2x5cGhzXG4gIHZhciB0ZXh0ID0gb3B0LnRleHR8fCcnIFxuICB2YXIgZm9udCA9IG9wdC5mb250XG4gIHRoaXMuX3NldHVwU3BhY2VHbHlwaHMoZm9udClcbiAgXG4gIHZhciBsaW5lcyA9IHdvcmRXcmFwLmxpbmVzKHRleHQsIG9wdClcbiAgdmFyIG1pbldpZHRoID0gb3B0LndpZHRoIHx8IDBcblxuICAvL2NsZWFyIGdseXBoc1xuICBnbHlwaHMubGVuZ3RoID0gMFxuXG4gIC8vZ2V0IG1heCBsaW5lIHdpZHRoXG4gIHZhciBtYXhMaW5lV2lkdGggPSBsaW5lcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbGluZSkge1xuICAgIHJldHVybiBNYXRoLm1heChwcmV2LCBsaW5lLndpZHRoLCBtaW5XaWR0aClcbiAgfSwgMClcblxuICAvL3RoZSBwZW4gcG9zaXRpb25cbiAgdmFyIHggPSAwXG4gIHZhciB5ID0gMFxuICB2YXIgbGluZUhlaWdodCA9IG51bWJlcihvcHQubGluZUhlaWdodCwgZm9udC5jb21tb24ubGluZUhlaWdodClcbiAgdmFyIGJhc2VsaW5lID0gZm9udC5jb21tb24uYmFzZVxuICB2YXIgZGVzY2VuZGVyID0gbGluZUhlaWdodC1iYXNlbGluZVxuICB2YXIgbGV0dGVyU3BhY2luZyA9IG9wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGhlaWdodCA9IGxpbmVIZWlnaHQgKiBsaW5lcy5sZW5ndGggLSBkZXNjZW5kZXJcbiAgdmFyIGFsaWduID0gZ2V0QWxpZ25UeXBlKHRoaXMuX29wdC5hbGlnbilcblxuICAvL2RyYXcgdGV4dCBhbG9uZyBiYXNlbGluZVxuICB5IC09IGhlaWdodFxuICBcbiAgLy90aGUgbWV0cmljcyBmb3IgdGhpcyB0ZXh0IGxheW91dFxuICB0aGlzLl93aWR0aCA9IG1heExpbmVXaWR0aFxuICB0aGlzLl9oZWlnaHQgPSBoZWlnaHRcbiAgdGhpcy5fZGVzY2VuZGVyID0gbGluZUhlaWdodCAtIGJhc2VsaW5lXG4gIHRoaXMuX2Jhc2VsaW5lID0gYmFzZWxpbmVcbiAgdGhpcy5feEhlaWdodCA9IGdldFhIZWlnaHQoZm9udClcbiAgdGhpcy5fY2FwSGVpZ2h0ID0gZ2V0Q2FwSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0XG4gIHRoaXMuX2FzY2VuZGVyID0gbGluZUhlaWdodCAtIGRlc2NlbmRlciAtIHRoaXMuX3hIZWlnaHRcbiAgICBcbiAgLy9sYXlvdXQgZWFjaCBnbHlwaFxuICB2YXIgc2VsZiA9IHRoaXNcbiAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLCBsaW5lSW5kZXgpIHtcbiAgICB2YXIgc3RhcnQgPSBsaW5lLnN0YXJ0XG4gICAgdmFyIGVuZCA9IGxpbmUuZW5kXG4gICAgdmFyIGxpbmVXaWR0aCA9IGxpbmUud2lkdGhcbiAgICB2YXIgbGFzdEdseXBoXG4gICAgXG4gICAgLy9mb3IgZWFjaCBnbHlwaCBpbiB0aGF0IGxpbmUuLi5cbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZDsgaSsrKSB7XG4gICAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICAgIHZhciBnbHlwaCA9IHNlbGYuZ2V0R2x5cGgoZm9udCwgaWQpXG4gICAgICBpZiAoZ2x5cGgpIHtcbiAgICAgICAgaWYgKGxhc3RHbHlwaCkgXG4gICAgICAgICAgeCArPSBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpXG5cbiAgICAgICAgdmFyIHR4ID0geFxuICAgICAgICBpZiAoYWxpZ24gPT09IEFMSUdOX0NFTlRFUikgXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpLzJcbiAgICAgICAgZWxzZSBpZiAoYWxpZ24gPT09IEFMSUdOX1JJR0hUKVxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKVxuXG4gICAgICAgIGdseXBocy5wdXNoKHtcbiAgICAgICAgICBwb3NpdGlvbjogW3R4LCB5XSxcbiAgICAgICAgICBkYXRhOiBnbHlwaCxcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBsaW5lOiBsaW5lSW5kZXhcbiAgICAgICAgfSkgIFxuXG4gICAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgICB4ICs9IGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vbmV4dCBsaW5lIGRvd25cbiAgICB5ICs9IGxpbmVIZWlnaHRcbiAgICB4ID0gMFxuICB9KVxuICB0aGlzLl9saW5lc1RvdGFsID0gbGluZXMubGVuZ3RoO1xufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5fc2V0dXBTcGFjZUdseXBocyA9IGZ1bmN0aW9uKGZvbnQpIHtcbiAgLy9UaGVzZSBhcmUgZmFsbGJhY2tzLCB3aGVuIHRoZSBmb250IGRvZXNuJ3QgaW5jbHVkZVxuICAvLycgJyBvciAnXFx0JyBnbHlwaHNcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gbnVsbFxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0gbnVsbFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm5cblxuICAvL3RyeSB0byBnZXQgc3BhY2UgZ2x5cGhcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgJ20nIG9yICd3JyBnbHlwaHNcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgZmlyc3QgZ2x5cGggYXZhaWxhYmxlXG4gIHZhciBzcGFjZSA9IGdldEdseXBoQnlJZChmb250LCBTUEFDRV9JRCkgXG4gICAgICAgICAgfHwgZ2V0TUdseXBoKGZvbnQpIFxuICAgICAgICAgIHx8IGZvbnQuY2hhcnNbMF1cblxuICAvL2FuZCBjcmVhdGUgYSBmYWxsYmFjayBmb3IgdGFiXG4gIHZhciB0YWJXaWR0aCA9IHRoaXMuX29wdC50YWJTaXplICogc3BhY2UueGFkdmFuY2VcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gc3BhY2VcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IHh0ZW5kKHNwYWNlLCB7XG4gICAgeDogMCwgeTogMCwgeGFkdmFuY2U6IHRhYldpZHRoLCBpZDogVEFCX0lELCBcbiAgICB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwXG4gIH0pXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmdldEdseXBoID0gZnVuY3Rpb24oZm9udCwgaWQpIHtcbiAgdmFyIGdseXBoID0gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKVxuICBpZiAoZ2x5cGgpXG4gICAgcmV0dXJuIGdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBUQUJfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1RhYkdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBTUEFDRV9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaFxuICByZXR1cm4gbnVsbFxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5jb21wdXRlTWV0cmljcyA9IGZ1bmN0aW9uKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gdGhpcy5fb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgZm9udCA9IHRoaXMuX29wdC5mb250XG4gIHZhciBjdXJQZW4gPSAwXG4gIHZhciBjdXJXaWR0aCA9IDBcbiAgdmFyIGNvdW50ID0gMFxuICB2YXIgZ2x5cGhcbiAgdmFyIGxhc3RHbHlwaFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogc3RhcnQsXG4gICAgICBlbmQ6IHN0YXJ0LFxuICAgICAgd2lkdGg6IDBcbiAgICB9XG4gIH1cblxuICBlbmQgPSBNYXRoLm1pbih0ZXh0Lmxlbmd0aCwgZW5kKVxuICBmb3IgKHZhciBpPXN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB2YXIgZ2x5cGggPSB0aGlzLmdldEdseXBoKGZvbnQsIGlkKVxuXG4gICAgaWYgKGdseXBoKSB7XG4gICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgIHZhciB4b2ZmID0gZ2x5cGgueG9mZnNldFxuICAgICAgdmFyIGtlcm4gPSBsYXN0R2x5cGggPyBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpIDogMFxuICAgICAgY3VyUGVuICs9IGtlcm5cblxuICAgICAgdmFyIG5leHRQZW4gPSBjdXJQZW4gKyBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgIHZhciBuZXh0V2lkdGggPSBjdXJQZW4gKyBnbHlwaC53aWR0aFxuXG4gICAgICAvL3dlJ3ZlIGhpdCBvdXIgbGltaXQ7IHdlIGNhbid0IG1vdmUgb250byB0aGUgbmV4dCBnbHlwaFxuICAgICAgaWYgKG5leHRXaWR0aCA+PSB3aWR0aCB8fCBuZXh0UGVuID49IHdpZHRoKVxuICAgICAgICBicmVha1xuXG4gICAgICAvL290aGVyd2lzZSBjb250aW51ZSBhbG9uZyBvdXIgbGluZVxuICAgICAgY3VyUGVuID0gbmV4dFBlblxuICAgICAgY3VyV2lkdGggPSBuZXh0V2lkdGhcbiAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgfVxuICAgIGNvdW50KytcbiAgfVxuICBcbiAgLy9tYWtlIHN1cmUgcmlnaHRtb3N0IGVkZ2UgbGluZXMgdXAgd2l0aCByZW5kZXJlZCBnbHlwaHNcbiAgaWYgKGxhc3RHbHlwaClcbiAgICBjdXJXaWR0aCArPSBsYXN0R2x5cGgueG9mZnNldFxuXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IHN0YXJ0LFxuICAgIGVuZDogc3RhcnQgKyBjb3VudCxcbiAgICB3aWR0aDogY3VyV2lkdGhcbiAgfVxufVxuXG4vL2dldHRlcnMgZm9yIHRoZSBwcml2YXRlIHZhcnNcbjtbJ3dpZHRoJywgJ2hlaWdodCcsIFxuICAnZGVzY2VuZGVyJywgJ2FzY2VuZGVyJyxcbiAgJ3hIZWlnaHQnLCAnYmFzZWxpbmUnLFxuICAnY2FwSGVpZ2h0JyxcbiAgJ2xpbmVIZWlnaHQnIF0uZm9yRWFjaChhZGRHZXR0ZXIpXG5cbmZ1bmN0aW9uIGFkZEdldHRlcihuYW1lKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZXh0TGF5b3V0LnByb3RvdHlwZSwgbmFtZSwge1xuICAgIGdldDogd3JhcHBlcihuYW1lKSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSlcbn1cblxuLy9jcmVhdGUgbG9va3VwcyBmb3IgcHJpdmF0ZSB2YXJzXG5mdW5jdGlvbiB3cmFwcGVyKG5hbWUpIHtcbiAgcmV0dXJuIChuZXcgRnVuY3Rpb24oW1xuICAgICdyZXR1cm4gZnVuY3Rpb24gJytuYW1lKycoKSB7JyxcbiAgICAnICByZXR1cm4gdGhpcy5fJytuYW1lLFxuICAgICd9J1xuICBdLmpvaW4oJ1xcbicpKSkoKVxufVxuXG5mdW5jdGlvbiBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpIHtcbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIGdseXBoSWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gIGlmIChnbHlwaElkeCA+PSAwKVxuICAgIHJldHVybiBmb250LmNoYXJzW2dseXBoSWR4XVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBnZXRYSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPFhfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IFhfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldE1HbHlwaChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxNX1dJRFRIUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IE1fV0lEVEhTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRDYXBIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8Q0FQX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBDQVBfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEtlcm5pbmcoZm9udCwgbGVmdCwgcmlnaHQpIHtcbiAgaWYgKCFmb250Lmtlcm5pbmdzIHx8IGZvbnQua2VybmluZ3MubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiAwXG5cbiAgdmFyIHRhYmxlID0gZm9udC5rZXJuaW5nc1xuICBmb3IgKHZhciBpPTA7IGk8dGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2VybiA9IHRhYmxlW2ldXG4gICAgaWYgKGtlcm4uZmlyc3QgPT09IGxlZnQgJiYga2Vybi5zZWNvbmQgPT09IHJpZ2h0KVxuICAgICAgcmV0dXJuIGtlcm4uYW1vdW50XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0QWxpZ25UeXBlKGFsaWduKSB7XG4gIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpXG4gICAgcmV0dXJuIEFMSUdOX0NFTlRFUlxuICBlbHNlIGlmIChhbGlnbiA9PT0gJ3JpZ2h0JylcbiAgICByZXR1cm4gQUxJR05fUklHSFRcbiAgcmV0dXJuIEFMSUdOX0xFRlRcbn1cblxuZnVuY3Rpb24gZmluZENoYXIgKGFycmF5LCB2YWx1ZSwgc3RhcnQpIHtcbiAgc3RhcnQgPSBzdGFydCB8fCAwXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldLmlkID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xXG59IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcGFyc2VCTUZvbnRBc2NpaShkYXRhKSB7XG4gIGlmICghZGF0YSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgcHJvdmlkZWQnKVxuICBkYXRhID0gZGF0YS50b1N0cmluZygpLnRyaW0oKVxuXG4gIHZhciBvdXRwdXQgPSB7XG4gICAgcGFnZXM6IFtdLFxuICAgIGNoYXJzOiBbXSxcbiAgICBrZXJuaW5nczogW11cbiAgfVxuXG4gIHZhciBsaW5lcyA9IGRhdGEuc3BsaXQoL1xcclxcbj98XFxuL2cpXG5cbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgaW4gQk1Gb250IGZpbGUnKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGluZURhdGEgPSBzcGxpdExpbmUobGluZXNbaV0sIGkpXG4gICAgaWYgKCFsaW5lRGF0YSkgLy9za2lwIGVtcHR5IGxpbmVzXG4gICAgICBjb250aW51ZVxuXG4gICAgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ3BhZ2UnKSB7XG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuaWQgIT09ICdudW1iZXInKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgaWQ9TicpXG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuZmlsZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBmaWxlPVwicGF0aFwiJylcbiAgICAgIG91dHB1dC5wYWdlc1tsaW5lRGF0YS5kYXRhLmlkXSA9IGxpbmVEYXRhLmRhdGEuZmlsZVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcnMnIHx8IGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmdzJykge1xuICAgICAgLy8uLi4gZG8gbm90aGluZyBmb3IgdGhlc2UgdHdvIC4uLlxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcicpIHtcbiAgICAgIG91dHB1dC5jaGFycy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5nJykge1xuICAgICAgb3V0cHV0Lmtlcm5pbmdzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0W2xpbmVEYXRhLmtleV0gPSBsaW5lRGF0YS5kYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBzcGxpdExpbmUobGluZSwgaWR4KSB7XG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL1xcdCsvZywgJyAnKS50cmltKClcbiAgaWYgKCFsaW5lKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIHNwYWNlID0gbGluZS5pbmRleE9mKCcgJylcbiAgaWYgKHNwYWNlID09PSAtMSkgXG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm8gbmFtZWQgcm93IGF0IGxpbmUgXCIgKyBpZHgpXG5cbiAgdmFyIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIHNwYWNlKVxuXG4gIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhzcGFjZSArIDEpXG4gIC8vY2xlYXIgXCJsZXR0ZXJcIiBmaWVsZCBhcyBpdCBpcyBub24tc3RhbmRhcmQgYW5kXG4gIC8vcmVxdWlyZXMgYWRkaXRpb25hbCBjb21wbGV4aXR5IHRvIHBhcnNlIFwiIC8gPSBzeW1ib2xzXG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL2xldHRlcj1bXFwnXFxcIl1cXFMrW1xcJ1xcXCJdL2dpLCAnJykgIFxuICBsaW5lID0gbGluZS5zcGxpdChcIj1cIilcbiAgbGluZSA9IGxpbmUubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBzdHIudHJpbSgpLm1hdGNoKCgvKFwiLio/XCJ8W15cIlxcc10rKSsoPz1cXHMqfFxccyokKS9nKSlcbiAgfSlcblxuICB2YXIgZGF0YSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkdCA9IGxpbmVbaV1cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFswXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFsxXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0ID0ge1xuICAgIGtleToga2V5LFxuICAgIGRhdGE6IHt9XG4gIH1cblxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIG91dC5kYXRhW3Yua2V5XSA9IHYuZGF0YTtcbiAgfSlcblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShkYXRhKSB7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gXCJcIlxuXG4gIGlmIChkYXRhLmluZGV4T2YoJ1wiJykgPT09IDAgfHwgZGF0YS5pbmRleE9mKFwiJ1wiKSA9PT0gMClcbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoMSwgZGF0YS5sZW5ndGggLSAxKVxuICBpZiAoZGF0YS5pbmRleE9mKCcsJykgIT09IC0xKVxuICAgIHJldHVybiBwYXJzZUludExpc3QoZGF0YSlcbiAgcmV0dXJuIHBhcnNlSW50KGRhdGEsIDEwKVxufVxuXG5mdW5jdGlvbiBwYXJzZUludExpc3QoZGF0YSkge1xuICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMClcbiAgfSlcbn0iLCJ2YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG52YXIgYW5BcnJheSA9IHJlcXVpcmUoJ2FuLWFycmF5JylcbnZhciBpc0J1ZmZlciA9IHJlcXVpcmUoJ2lzLWJ1ZmZlcicpXG5cbnZhciBDVyA9IFswLCAyLCAzXVxudmFyIENDVyA9IFsyLCAxLCAzXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVF1YWRFbGVtZW50cyhhcnJheSwgb3B0KSB7XG4gICAgLy9pZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IGFuIG91dHB1dCBhcnJheVxuICAgIGlmICghYXJyYXkgfHwgIShhbkFycmF5KGFycmF5KSB8fCBpc0J1ZmZlcihhcnJheSkpKSB7XG4gICAgICAgIG9wdCA9IGFycmF5IHx8IHt9XG4gICAgICAgIGFycmF5ID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnbnVtYmVyJykgLy9iYWNrd2FyZHMtY29tcGF0aWJsZVxuICAgICAgICBvcHQgPSB7IGNvdW50OiBvcHQgfVxuICAgIGVsc2VcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9XG5cbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvcHQudHlwZSA9PT0gJ3N0cmluZycgPyBvcHQudHlwZSA6ICd1aW50MTYnXG4gICAgdmFyIGNvdW50ID0gdHlwZW9mIG9wdC5jb3VudCA9PT0gJ251bWJlcicgPyBvcHQuY291bnQgOiAxXG4gICAgdmFyIHN0YXJ0ID0gKG9wdC5zdGFydCB8fCAwKSBcblxuICAgIHZhciBkaXIgPSBvcHQuY2xvY2t3aXNlICE9PSBmYWxzZSA/IENXIDogQ0NXLFxuICAgICAgICBhID0gZGlyWzBdLCBcbiAgICAgICAgYiA9IGRpclsxXSxcbiAgICAgICAgYyA9IGRpclsyXVxuXG4gICAgdmFyIG51bUluZGljZXMgPSBjb3VudCAqIDZcblxuICAgIHZhciBpbmRpY2VzID0gYXJyYXkgfHwgbmV3IChkdHlwZSh0eXBlKSkobnVtSW5kaWNlcylcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBudW1JbmRpY2VzOyBpICs9IDYsIGogKz0gNCkge1xuICAgICAgICB2YXIgeCA9IGkgKyBzdGFydFxuICAgICAgICBpbmRpY2VzW3ggKyAwXSA9IGogKyAwXG4gICAgICAgIGluZGljZXNbeCArIDFdID0gaiArIDFcbiAgICAgICAgaW5kaWNlc1t4ICsgMl0gPSBqICsgMlxuICAgICAgICBpbmRpY2VzW3ggKyAzXSA9IGogKyBhXG4gICAgICAgIGluZGljZXNbeCArIDRdID0gaiArIGJcbiAgICAgICAgaW5kaWNlc1t4ICsgNV0gPSBqICsgY1xuICAgIH1cbiAgICByZXR1cm4gaW5kaWNlc1xufSIsInZhciBjcmVhdGVMYXlvdXQgPSByZXF1aXJlKCdsYXlvdXQtYm1mb250LXRleHQnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIGNyZWF0ZUluZGljZXMgPSByZXF1aXJlKCdxdWFkLWluZGljZXMnKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIEJhc2UuY2FsbCh0aGlzKVxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0KVxuXG4gIC8vIGFsc28gZG8gYW4gaW5pdGlhbCBzZXR1cC4uLlxuICBpZiAob3B0KSB0aGlzLnVwZGF0ZShvcHQpXG59XG5cbmluaGVyaXRzKFRleHRHZW9tZXRyeSwgQmFzZSlcblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAob3B0KSB7XG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSBjb25zdHJ1Y3RvciBkZWZhdWx0c1xuICBvcHQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vcHQsIG9wdClcblxuICBpZiAoIW9wdC5mb250KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGEgeyBmb250IH0gaW4gb3B0aW9ucycpXG4gIH1cblxuICB0aGlzLmxheW91dCA9IGNyZWF0ZUxheW91dChvcHQpXG5cbiAgLy8gZ2V0IHZlYzIgdGV4Y29vcmRzXG4gIHZhciBmbGlwWSA9IG9wdC5mbGlwWSAhPT0gZmFsc2VcblxuICAvLyB0aGUgZGVzaXJlZCBCTUZvbnQgZGF0YVxuICB2YXIgZm9udCA9IG9wdC5mb250XG5cbiAgLy8gZGV0ZXJtaW5lIHRleHR1cmUgc2l6ZSBmcm9tIGZvbnQgZmlsZVxuICB2YXIgdGV4V2lkdGggPSBmb250LmNvbW1vbi5zY2FsZVdcbiAgdmFyIHRleEhlaWdodCA9IGZvbnQuY29tbW9uLnNjYWxlSFxuXG4gIC8vIGdldCB2aXNpYmxlIGdseXBoc1xuICB2YXIgZ2x5cGhzID0gdGhpcy5sYXlvdXQuZ2x5cGhzLmZpbHRlcihmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHJldHVybiBiaXRtYXAud2lkdGggKiBiaXRtYXAuaGVpZ2h0ID4gMFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdmlzaWJsZSBnbHlwaHMgZm9yIGNvbnZlbmllbmNlXG4gIHRoaXMudmlzaWJsZUdseXBocyA9IGdseXBoc1xuXG4gIC8vIGdldCBjb21tb24gdmVydGV4IGRhdGFcbiAgdmFyIHBvc2l0aW9ucyA9IHZlcnRpY2VzLnBvc2l0aW9ucyhnbHlwaHMpXG4gIHZhciB1dnMgPSB2ZXJ0aWNlcy51dnMoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSlcbiAgdmFyIGluZGljZXMgPSBjcmVhdGVJbmRpY2VzKFtdLCB7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIHRoaXMuc2V0SW5kZXgoaW5kaWNlcylcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwb3NpdGlvbnMsIDIpKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHV2cywgMikpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICAvLyBlbmFibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHZhciBwYWdlcyA9IHZlcnRpY2VzLnBhZ2VzKGdseXBocylcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGFnZScsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocGFnZXMsIDEpKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIG5ld2xpbmUgPSAvXFxuL1xudmFyIG5ld2xpbmVDaGFyID0gJ1xcbidcbnZhciB3aGl0ZXNwYWNlID0gL1xccy9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih0ZXh0LCBvcHQpIHtcbiAgICB2YXIgbGluZXMgPSBtb2R1bGUuZXhwb3J0cy5saW5lcyh0ZXh0LCBvcHQpXG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhsaW5lLnN0YXJ0LCBsaW5lLmVuZClcbiAgICB9KS5qb2luKCdcXG4nKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5saW5lcyA9IGZ1bmN0aW9uIHdvcmR3cmFwKHRleHQsIG9wdCkge1xuICAgIG9wdCA9IG9wdHx8e31cblxuICAgIC8vemVybyB3aWR0aCByZXN1bHRzIGluIG5vdGhpbmcgdmlzaWJsZVxuICAgIGlmIChvcHQud2lkdGggPT09IDAgJiYgb3B0Lm1vZGUgIT09ICdub3dyYXAnKSBcbiAgICAgICAgcmV0dXJuIFtdXG5cbiAgICB0ZXh0ID0gdGV4dHx8JydcbiAgICB2YXIgd2lkdGggPSB0eXBlb2Ygb3B0LndpZHRoID09PSAnbnVtYmVyJyA/IG9wdC53aWR0aCA6IE51bWJlci5NQVhfVkFMVUVcbiAgICB2YXIgc3RhcnQgPSBNYXRoLm1heCgwLCBvcHQuc3RhcnR8fDApXG4gICAgdmFyIGVuZCA9IHR5cGVvZiBvcHQuZW5kID09PSAnbnVtYmVyJyA/IG9wdC5lbmQgOiB0ZXh0Lmxlbmd0aFxuICAgIHZhciBtb2RlID0gb3B0Lm1vZGVcblxuICAgIHZhciBtZWFzdXJlID0gb3B0Lm1lYXN1cmUgfHwgbW9ub3NwYWNlXG4gICAgaWYgKG1vZGUgPT09ICdwcmUnKVxuICAgICAgICByZXR1cm4gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKVxuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSlcbn1cblxuZnVuY3Rpb24gaWR4T2YodGV4dCwgY2hyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIGlkeCA9IHRleHQuaW5kZXhPZihjaHIsIHN0YXJ0KVxuICAgIGlmIChpZHggPT09IC0xIHx8IGlkeCA+IGVuZClcbiAgICAgICAgcmV0dXJuIGVuZFxuICAgIHJldHVybiBpZHhcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNocikge1xuICAgIHJldHVybiB3aGl0ZXNwYWNlLnRlc3QoY2hyKVxufVxuXG5mdW5jdGlvbiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgbGluZXMgPSBbXVxuICAgIHZhciBsaW5lU3RhcnQgPSBzdGFydFxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kICYmIGk8dGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hyID0gdGV4dC5jaGFyQXQoaSlcbiAgICAgICAgdmFyIGlzTmV3bGluZSA9IG5ld2xpbmUudGVzdChjaHIpXG5cbiAgICAgICAgLy9JZiB3ZSd2ZSByZWFjaGVkIGEgbmV3bGluZSwgdGhlbiBzdGVwIGRvd24gYSBsaW5lXG4gICAgICAgIC8vT3IgaWYgd2UndmUgcmVhY2hlZCB0aGUgRU9GXG4gICAgICAgIGlmIChpc05ld2xpbmUgfHwgaT09PWVuZC0xKSB7XG4gICAgICAgICAgICB2YXIgbGluZUVuZCA9IGlzTmV3bGluZSA/IGkgOiBpKzFcbiAgICAgICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgbGluZVN0YXJ0LCBsaW5lRW5kLCB3aWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobWVhc3VyZWQpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmVTdGFydCA9IGkrMVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpIHtcbiAgICAvL0EgZ3JlZWR5IHdvcmQgd3JhcHBlciBiYXNlZCBvbiBMaWJHRFggYWxnb3JpdGhtXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbGliZ2R4L2xpYmdkeC9ibG9iL21hc3Rlci9nZHgvc3JjL2NvbS9iYWRsb2dpYy9nZHgvZ3JhcGhpY3MvZzJkL0JpdG1hcEZvbnRDYWNoZS5qYXZhXG4gICAgdmFyIGxpbmVzID0gW11cblxuICAgIHZhciB0ZXN0V2lkdGggPSB3aWR0aFxuICAgIC8vaWYgJ25vd3JhcCcgaXMgc3BlY2lmaWVkLCB3ZSBvbmx5IHdyYXAgb24gbmV3bGluZSBjaGFyc1xuICAgIGlmIChtb2RlID09PSAnbm93cmFwJylcbiAgICAgICAgdGVzdFdpZHRoID0gTnVtYmVyLk1BWF9WQUxVRVxuXG4gICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgLy9nZXQgbmV4dCBuZXdsaW5lIHBvc2l0aW9uXG4gICAgICAgIHZhciBuZXdMaW5lID0gaWR4T2YodGV4dCwgbmV3bGluZUNoYXIsIHN0YXJ0LCBlbmQpXG5cbiAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBzdGFydCBvZiBsaW5lXG4gICAgICAgIHdoaWxlIChzdGFydCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKCB0ZXh0LmNoYXJBdChzdGFydCkgKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgc3RhcnQrK1xuICAgICAgICB9XG5cbiAgICAgICAgLy9kZXRlcm1pbmUgdmlzaWJsZSAjIG9mIGdseXBocyBmb3IgdGhlIGF2YWlsYWJsZSB3aWR0aFxuICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBuZXdMaW5lLCB0ZXN0V2lkdGgpXG5cbiAgICAgICAgdmFyIGxpbmVFbmQgPSBzdGFydCArIChtZWFzdXJlZC5lbmQtbWVhc3VyZWQuc3RhcnQpXG4gICAgICAgIHZhciBuZXh0U3RhcnQgPSBsaW5lRW5kICsgbmV3bGluZUNoYXIubGVuZ3RoXG5cbiAgICAgICAgLy9pZiB3ZSBoYWQgdG8gY3V0IHRoZSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBuZXdsaW5lLi4uXG4gICAgICAgIGlmIChsaW5lRW5kIDwgbmV3TGluZSkge1xuICAgICAgICAgICAgLy9maW5kIGNoYXIgdG8gYnJlYWsgb25cbiAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQpKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5lRW5kID09PSBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPiBzdGFydCArIG5ld2xpbmVDaGFyLmxlbmd0aCkgbmV4dFN0YXJ0LS1cbiAgICAgICAgICAgICAgICBsaW5lRW5kID0gbmV4dFN0YXJ0IC8vIElmIG5vIGNoYXJhY3RlcnMgdG8gYnJlYWssIHNob3cgYWxsLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBsaW5lRW5kXG4gICAgICAgICAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCAtIG5ld2xpbmVDaGFyLmxlbmd0aCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5lRW5kID49IHN0YXJ0KSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbGluZUVuZCwgdGVzdFdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnRcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbi8vZGV0ZXJtaW5lcyB0aGUgdmlzaWJsZSBudW1iZXIgb2YgZ2x5cGhzIHdpdGhpbiBhIGdpdmVuIHdpZHRoXG5mdW5jdGlvbiBtb25vc3BhY2UodGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgZ2x5cGhzID0gTWF0aC5taW4od2lkdGgsIGVuZC1zdGFydClcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnQrZ2x5cGhzXG4gICAgfVxufSIsIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXX0= diff --git a/build/datguivr.map b/build/datguivr.map index d8a56eb..82acc1f 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_vert","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index bf993b6..729c52a 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -5,6 +5,6 @@ return'info face="Roboto" size=192 bold=0 italic=0 charset="" unicode=1 stretchH }Object.defineProperty(c,"__esModule",{value:!0}),c.image=d,c.fnt=e},{}],8:[function(a,b,c){"use strict";function d(){function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i);var J=b.text?2184:16777215,K=b.text?273:13421772;j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?J:K),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8, -"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n// This is defined in layout.js (and was observed looking at three heirachy matrices)\n#define TEXT_SCALE 0.00024;\nvoid main() {\n \n vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n // vScale = 10.;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g} -Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("./layout"),e=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(d),f=a("object-assign"),g="\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n// This is defined in layout.js (and was observed looking at three heirachy matrices)\n#define TEXT_SCALE "+e.TEXT_SCALE+"\nvoid main() {\n \n vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n";b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,d=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,f({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:d||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:g,fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"./layout":15,"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f) +;var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b From e40d150bb9bf8c18599bee43cb47abec3b73b5c7 Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Wed, 26 Jan 2022 19:55:47 +0000 Subject: [PATCH 10/24] remove support with no standard derivatives. For now just comment out dead (vScale etc) code, next revision remove it completely --- build/datguivr.js | 25 ++++++++++--------------- build/datguivr.map | 2 +- build/datguivr.min.js | 2 +- modules/datguivr/sdfshader_logdepth.js | 25 ++++++++++++++----------- 4 files changed, 26 insertions(+), 28 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index ca22384..47ab942 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -4584,17 +4584,6 @@ function create() { },{"./interaction":13}],17:[function(require,module,exports){ 'use strict'; -var _layout = require('./layout'); - -var Layout = _interopRequireWildcard(_layout); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } - -var assign = require('object-assign'); - -/** - * starting from THREE meshbasic shaders, pruning / modifying... - */ /** * PJT: This is a variation on sdfshader from bmfont, which should Just Work with logarithmic depth buffers. * It should also allow some other aspects of THREE rendering to be incorporated, like fog, clipping planes... @@ -4602,9 +4591,15 @@ var assign = require('object-assign'); * At time of writing, this is work in progress, and somewhat more bloated than it needs to be. * The shader code is designed to be used with ShaderMaterial rather than RawShaderMaterial. */ -var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n// This is defined in layout.js (and was observed looking at three heirachy matrices)\n#define TEXT_SCALE ' + Layout.TEXT_SCALE + '\nvoid main() {\n \n vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; +// import * as Layout from './layout'; +var assign = require('object-assign'); + +/** + * starting from THREE meshbasic shaders, pruning / modifying... + */ +var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\n// vScale not needed if we assume standard derivates available, as they are in Webgl2 \n// varying float vScale;\n // This is defined in layout.js (and was observed looking at three heirachy matrices)\n // #define TEXT_SCALE ' + Layout.TEXT_SCALE + '\nvoid main() {\n \n // vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; -var meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; +var meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n// varying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available.\n // \n //#ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n // #else\n // float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n // afwidth *= vScale;\n // #endif\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; module.exports = function createSDFShader(opt) { opt = opt || {}; @@ -4636,7 +4631,7 @@ module.exports = function createSDFShader(opt) { }, opt); }; -},{"./layout":15,"object-assign":32}],18:[function(require,module,exports){ +},{"object-assign":32}],18:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -7590,4 +7585,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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OztBQUVEO0FBQ0EsYUFBUyxRQUFULEdBQW9CLFdBQXBCO0FBQ0EsYUFBUyxLQUFULEdBQWlCLFFBQWpCO0FBQ0EsUUFBSyxNQUFMLEVBQWMsU0FBUyxhQUFULENBQXdCLENBQXhCLElBQThCLE1BQTlCOztBQUVkO0FBRUEsR0FuUEQ7QUFxUEEsQ0E1VkQ7OztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqIFxyXG4gKiBGb3Igbm93LCBqdXN0IGdvaW5nIHdpdGggUkdCIHNsaWRlcnMgYXMgSSBzaG91bGRuJ3Qgc3BlbmQgdG9vIGxvbmcgb24gdGhpcyBBVE0sXHJcbiAqIGJ1dCB2ZXJ5IHRlbXB0ZWQgYnkgcHJvc3BlY3Qgb2YgYW4gSFMgc3F1YXJlIHdpdGggViBzbGlkZXIuLi4gXHJcbiAqIG9yIEggc2xpZGVyIGFuZCBTViBzcXVhcmUgd2hpY2ggc2VlbXMgdG8gYmUgd2hhdCBkYXQuZ3VpIHVzZXMuXHJcbiAqIE9yIHNvbWV0aGluZyBmYW5jaWVyIGxpa2UgYSBodWUgY2lyY2xlIGFyb3VuZCBhbiBTViB0cmlhbmdsZSBldGMgZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuLy9zbmlwcGV0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2h1Z2hzay9nbHNsLWhzdjJyZ2IvYmxvYi9tYXN0ZXIvaW5kZXguZ2xzbFxyXG4vLyhub3QgZ29pbmcgdG8gdGhlIGxlbmd0aHMgb2YgZ2xzbGlmeSwganVzdCBjb3B5aW5nIHRoZSBmdW5jdGlvbilcclxuY29uc3QgaHN2MnJnYiA9IGBcclxudmVjMyBoc3YycmdiKHZlYzMgYykge1xyXG4gICAgdmVjNCBLID0gdmVjNCgxLjAsIDIuMCAvIDMuMCwgMS4wIC8gMy4wLCAzLjApO1xyXG4gICAgdmVjMyBwID0gYWJzKGZyYWN0KGMueHh4ICsgSy54eXopICogNi4wIC0gSy53d3cpO1xyXG4gICAgcmV0dXJuIGMueiAqIG1peChLLnh4eCwgY2xhbXAocCAtIEsueHh4LCAwLjAsIDEuMCksIGMueSk7XHJcbn1gO1xyXG5cclxuY29uc3QgVmVydFNoYWRlciA9IGBcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZVdiA9IHV2O1xyXG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4pO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBTVkZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdmVjMyBoc3YgPSB2ZWMzKHNlbGVjdGVkSFNWLngsIHZVdik7XHJcblxyXG4gICAgLy8gZHJhdyBhIGJsYWNrIGNpcmNsZSBhcm91bmQgc2VsZWN0ZWQgU1YuXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIGxlc3MgaG91c2VrZWVwaW5nXHJcbiAgICAvLyBuZWVkIHRvIGtub3cgYXNwZWN0IHJhdGlvIGlmIEkgd2FudCBpdCB0byBiZSBhIHByb3BlciBjaXJjbGUsIHRob3VnaC5cclxuICAgIGZsb2F0IGQgPSBsZW5ndGgoc2VsZWN0ZWRIU1YueXogLSB2VXYpO1xyXG4gICAgaWYgKGQgPCAwLjAxNSAmJiBkID4gMC4wMSkgaHN2LnogPSAwLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKGhzdik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBcclxufVxyXG5gO1xyXG5cclxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNzI0MjE0NC9qYXZhc2NyaXB0LWNvbnZlcnQtaHNiLWhzdi1jb2xvci10by1yZ2ItYWNjdXJhdGVseVxyXG4vL3doeSBub3QgdXNlIFRIUkVFLkNvbG9yIG1ldGhvZHM/XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiBoICBPYmplY3QgPSB7aDp4LCBzOnksIHY6en1cclxuICogT1IgXHJcbiAqIGgsIHMsIHZcclxuKi9cclxuZnVuY3Rpb24gSFNWdG9SR0IoaCwgcywgdikge1xyXG4gICAgdmFyIHIsIGcsIGIsIGksIGYsIHAsIHEsIHQ7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIC8vaGFjayB0byB0YWtlIFRIUkVFLlZlY3RvcjMuLi5cclxuICAgICAgICBpZiAoaC54ICE9PSB1bmRlZmluZWQpIHMgPSBoLnksIHYgPSBoLnosIGggPSBoLng7XHJcbiAgICAgICAgZWxzZSBzID0gaC5zLCB2ID0gaC52LCBoID0gaC5oO1xyXG4gICAgfVxyXG4gICAgaSA9IE1hdGguZmxvb3IoaCAqIDYpO1xyXG4gICAgZiA9IGggKiA2IC0gaTtcclxuICAgIHAgPSB2ICogKDEgLSBzKTtcclxuICAgIHEgPSB2ICogKDEgLSBmICogcyk7XHJcbiAgICB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpO1xyXG4gICAgc3dpdGNoIChpICUgNikge1xyXG4gICAgICAgIGNhc2UgMDogciA9IHYsIGcgPSB0LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxOiByID0gcSwgZyA9IHYsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDI6IHIgPSBwLCBnID0gdiwgYiA9IHQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMzogciA9IHAsIGcgPSBxLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0OiByID0gdCwgZyA9IHAsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDU6IHIgPSB2LCBnID0gcCwgYiA9IHE7IGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByOiByLFxyXG4gICAgICAgIGc6IGcsXHJcbiAgICAgICAgYjogYlxyXG4gICAgfTtcclxufVxyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogciAgT2JqZWN0ID0ge3IsIGcsIGJ9XHJcbiAqIE9SIFxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LCBcclxuICAgICAgICB4OiBoLCB5OiBzLCB6OiB2IC8vc28gdGhhdCB3ZSBjYW4gZG8gVmVjdG9yMy5jb3B5KHRoaXMpXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDb2xvclBpY2tlcigge1xyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lLCAvL211c3QgYmUgYSBUSFJFRS5Db2xvciBmb3Igbm93Li4uIHNob3VsZCByZWZlciB0byBvcmlnaW5hbCBkYXQuZ3VpIHRvIHNlZSB3aGF0IGl0IHRha2VzXHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIIC8gMy5cclxufSA9IHt9KSB7XHJcbiAgICAvLyBtYWtlIHRoZSBtYWluIGdyb3VwIGJlICpkaXJlY3RseSogdGhlIG9uZSByZXR1cm5lZCBieSBjcmVhdGVJbWFnZUJ1dHRvbjtcclxuICAgIC8vIHdlJ2xsIHRha2UgY2FyZSBvZiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIGNoaWxkcmVuIGJhc2VkIG9uIGF0dGFjaGVkLi4uXHJcbiAgICAvLyB3aWxsIHdhbnQgdG8gdGhpbmsgYWJvdXQgbGlzdGVuZXIgZnVuY3Rpb25zIGV0Yy5cclxuICAgIGxldCBmdW5jID0gdG9nZ2xlRGV0YWlsUGFuZWw7XHJcbiAgICBsZXQgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTsgLy9mb3Igbm93LCB0aGlzJ2QgYmV0dGVyIGJlIGEgVEhSRUUuQ29sb3Igb3Igd2UnbGwgZnJlYWsgb3V0LlxyXG4gICAgY29uc3QgYyA9IFJHQnRvSFNWKGNvbG9yKTtcclxuICAgIGNvbnN0IHVuaWZvcm1zID0ge3NlbGVjdGVkSFNWOiB7dmFsdWU6IG5ldyBUSFJFRS5WZWN0b3IzKGMuaCwgYy5zLCBjLnYpfX07XHJcbiAgICBjb25zdCBpbWFnZSA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IGNvbG9yfSk7XHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgY29uc3QgY2hhbmdlQ29sb3JPbkhvdmVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICBsaXN0ZW46IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgLy9UT0RPIG1ha2Ugc3VyZSBjb2xvciBwYXRjaCBvY2N1cGllcyBmdWxsIHdpZHRoLiAgQWRkIHRleHQgbGFiZWwgd2l0aCBoZXggdmFsdWU/XHJcbiAgICBjb25zdCBncm91cCA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgICB0ZXh0Q3JlYXRvciwgZnVuYywgaW1hZ2UsIHByb3BlcnR5TmFtZSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGNoYW5nZUNvbG9yT25Ib3ZlclxyXG4gICAgfSk7XHJcbiAgICBncm91cC5ndWlUeXBlID0gXCJDb2xvclBpY2tlclwiO1xyXG4gICAgXHJcbiAgICB2YXIgcGFuZWw7XHJcblxyXG4gICAgZnVuY3Rpb24gY2hhbmdlRm4oKSB7XHJcbiAgICAgICAgaW1hZ2UuY29sb3Iuc2V0KGNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTsgXHJcbiAgICAgICAgICAgIHBhbmVsLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmIChmYW5jeVBhbmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBTVk1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBTVkZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0U1YgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnkgPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS56ID0gcC5sb2NhbFBvaW50Lnk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS5jb3B5KFJHQnRvSFNWKGNvbG9yKSk7XHJcbiAgICB9XHJcbiAgICBncm91cC5saXN0ZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xPUiA9IDB4MkZBMUQ2O1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0NPTE9SID0gMHg0M2I1ZWE7XHJcbmV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9DT0xPUiA9IDB4MDdBQkY3O1xyXG5leHBvcnQgY29uc3QgRU1JU1NJVkVfQ09MT1IgPSAweDIyMjIyMjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9FTUlTU0lWRV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgT1VUTElORV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQUNLID0gMHgwNjA2MDY7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPTERFUl9CQUNLID0gMHgxMDEwMTA7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQkFDSyA9IDB4MzEzMTMxO1xyXG5leHBvcnQgY29uc3QgSU5BQ1RJVkVfQ09MT1IgPSAweDE2MTgyOTtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfU0xJREVSID0gMHgyZmExZDY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0NIRUNLQk9YID0gMHg4MDY3ODc7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0JVVFRPTiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9URVhUID0gMHgxZWQzNmY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RST1BET1dOID0gMHhmZmYwMDA7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fRkdfQ09MT1IgPSAweDAwMDAwMDtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fQ09MT1IgPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ISUdITElHSFRfQ09MT1IgPSAweGZhMzE3MztcclxuZXhwb3J0IGNvbnN0IFNMSURFUl9CRyA9IDB4NDQ0NDQ0O1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9CRyA9IDB4RjBGMEYwO1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9ISUdITElHSFRfQkcgPSAweEZGRkZGRjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xvcml6ZUdlb21ldHJ5KCBnZW9tZXRyeSwgY29sb3IgKXtcclxuICBjb25zdCBjb2wgPSBuZXcgVEhSRUUuQ29sb3IoY29sb3IpOyBcclxuICBsZXQgYyA9IGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgnY29sb3InKTtcclxuICBsZXQgYTtcclxuICBpZiAoIWMpIHtcclxuICAgIGEgPSBuZXcgRmxvYXQzMkFycmF5KGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheS5sZW5ndGgpLmZpbGwoMC41KTtcclxuICAgIGMgPSBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoJ2NvbG9yJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShhLCAzKSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGEgPSBjLmFycmF5O1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKz0zKSB7XHJcbiAgICBhW2ldID0gY29sLnI7XHJcbiAgICBhW2krMV0gPSBjb2wuZztcclxuICAgIGFbaSsyXSA9IGNvbC5iO1xyXG4gIH1cclxuICBjLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgLy8gZ2VvbWV0cnkuZmFjZXMuZm9yRWFjaCggZnVuY3Rpb24oZmFjZSl7XHJcbiAgLy8gICBmYWNlLmNvbG9yLnNldEhleChjb2xvcik7XHJcbiAgLy8gfSk7XHJcbiAgLy8gZ2VvbWV0cnkuY29sb3JzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgcmV0dXJuIGdlb21ldHJ5O1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwsIHtjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZURyb3Bkb3duKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIG9wdGlvbnMgPSBbXSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBvcGVuOiBmYWxzZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG5cclxuICBjb25zdCBEUk9QRE9XTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0RFUFRIID0gZGVwdGg7XHJcbiAgY29uc3QgRFJPUERPV05fT1BUSU9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU4gKiAxLjI7XHJcbiAgY29uc3QgRFJPUERPV05fTUFSR0lOID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIC0wLjQ7XHJcbiAgY29uc3QgTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJkcm9wZG93blwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgLy9hbGxvdyBmb3IgcHJvZ3JhbW1hdGljIHNldC4gQVBJIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBzdGFibGUuXHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlT2JqZWN0ID0gb2JqZWN0O1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZVByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTtcclxuICBncm91cC51c2VyRGF0YS5zZXRWYWx1ZSA9IHYgPT4ge1xyXG4gICAgaWYgKG9wdGlvbnMuaW5kZXhPZih2KSA9PT0gLTEpIHtcclxuICAgICAgLy9JIGNvdWxkIGNvbnNpZGVyIGFubm90YXRpbmcgR1VJIGl0c2VsZiB3aXRoIGVycm9yIGxhYmVscy4uLlxyXG4gICAgICBjb25zb2xlLndhcm4oYGRhdC5HVUlWUjogVW5rbm93biBvcHRpb24gXCIke3Z9XCIgZm9yIGRyb3Bkb3duIFwiJHtwcm9wZXJ0eU5hbWV9XCIuXFxuVmFsaWQgb3B0aW9uczogWyR7b3B0aW9ucy5qb2luKCcsICcpfV1gKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSB2O1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihvYmplY3RbcHJvcGVydHlOYW1lXSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IG1vZGFsRHJvcGRvd24gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBtb2RhbERyb3Bkb3duLnZpc2libGUgPSBmYWxzZTtcclxuICBtb2RhbERyb3Bkb3duLmhpdHNjYW4gPSBbXTtcclxuICBjb25zdCBsYWJlbEludGVyYWN0aW9ucyA9IFtdO1xyXG4gIGNvbnN0IG9wdGlvbkxhYmVscyA9IFtdO1xyXG5cclxuICAvLyAgZmluZCBhY3R1YWxseSB3aGljaCBsYWJlbCBpcyBzZWxlY3RlZFxyXG4gIGNvbnN0IGluaXRpYWxMYWJlbCA9IGZpbmRMYWJlbEZyb21Qcm9wKCk7XHJcblxyXG5cclxuXHJcbiAgZnVuY3Rpb24gZmluZExhYmVsRnJvbVByb3AoKXtcclxuICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgcmV0dXJuIG9wdGlvbnMuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb3B0aW9uTmFtZSA9PT0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvYmplY3RbcHJvcGVydHlOYW1lXSA9PT0gb3B0aW9uc1sgb3B0aW9uTmFtZSBdO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9wdGlvbiggbGFiZWxUZXh0LCBpc09wdGlvbiApe1xyXG4gICAgLy9UT0RPOiB0cnVuY2F0ZSBsb25nIGxhYmVsVGV4dCwgbWF5YmUgc2hvdyBmdWxsIHZlcnNpb24gd2hlbiBob3ZlcmluZy5cclxuICAgIGNvbnN0IGxhYmVsID0gY3JlYXRlVGV4dExhYmVsKFxyXG4gICAgICB0ZXh0Q3JlYXRvciwgbGFiZWxUZXh0LFxyXG4gICAgICAvL2NoZWNrIHdpZHRoIHZhbHVlLi4uXHJcbiAgICAgIERST1BET1dOX1dJRFRILCBkZXB0aCxcclxuICAgICAgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SLCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IsXHJcbiAgICAgIDAuODY2XHJcbiAgICApO1xyXG4gICAgbGFiZWwuYmFjay5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG5cclxuICAgIGlmIChpc09wdGlvbikgbW9kYWxEcm9wZG93bi5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGVsc2UgZ3JvdXAuaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBjb25zdCBsYWJlbEludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGxhYmVsLmJhY2sgKTtcclxuICAgIGxhYmVsSW50ZXJhY3Rpb24uZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5wdXNoKCBsYWJlbEludGVyYWN0aW9uICk7XHJcbiAgICBvcHRpb25MYWJlbHMucHVzaCggbGFiZWwgKTtcclxuXHJcblxyXG4gICAgaWYoIGlzT3B0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBsYWJlbFRleHQgKTtcclxuXHJcbiAgICAgICAgbGV0IHByb3BlcnR5Q2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIG9uQ2hhbmdlZENCICYmIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgb25DaGFuZ2VkQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCBvbkNob29zZUNCICl7XHJcbiAgICAgICAgICBvbkNob29zZUNCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgaWYoIHN0YXRlLm9wZW4gPT09IGZhbHNlICl7XHJcbiAgICAgICAgICBvcGVuT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbGFiZWwuaXNPcHRpb24gPSBpc09wdGlvbjtcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNvbGxhcHNlT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLmNsZWFyTW9kYWxFZGl0b3IoKTsgLy9zaG91bGQgd2UgY2hlY2sgaWYgaXQgd2Fzbid0IHNldCB0byBzb21ldGhpbmcgZWxzZT8/XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcGVuT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IHRydWU7XHJcbiAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IobW9kYWxEcm9wZG93bik7XHJcbiAgICAvL3JldHVybjtcclxuICAgIC8vbGFiZWwuaXNPcHRpb24gc2VlbXMgbW9zdGx5IHJlZHVuZGFudC5cclxuICAgIC8vbGFiZWxzICYgYmFja3Mgc2hvdWxkIGJlIGFkZGVkIHRvIGEgZ3JvdXAgdG8gYmUgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgXHJcbiAgICAvL21ha2luZyBldmVyeXRoaW5nIHZpc2libGUgLyBpbnZpc2libGUgd2l0aCBvbmUgcHJvcGVydHlcclxuICAgIC8vKG5iLCBldmVuIHRob3VnaCB0aGV5IGFyZSBub3cgaW4gYSBncm91cCB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCB3ZSBzdGlsbCBuZWVkIHRvIHNldCB2aXNpYmxlLi4uXHJcbiAgICAvL3NlZSBjb21tZW50IGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpKVxyXG4gICAgb3B0aW9uTGFiZWxzLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbCApe1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBsYWJlbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBsYWJlbC5iYWNrLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICBiYXNlIG9wdGlvblxyXG4gIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSBjcmVhdGVPcHRpb24oIGluaXRpYWxMYWJlbCB8fCAnICcsIGZhbHNlICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IEdyYXBoaWMuZG93bkFycm93KCk7XHJcbiAgLy8gQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggRFJPUERPV05fV0lEVEggLSAwLjA0LCAwLCBkZXB0aCAqIDEuMDEgKTtcclxuICBzZWxlY3RlZExhYmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBsYWJlbCwgaW5kZXggKXtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnkgPSAtRFJPUERPV05fTUFSR0lOIC0gKGluZGV4JU1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKzEpICogKCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUICk7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi54ICs9IERST1BET1dOX1dJRFRIICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wdGlvblRvTGFiZWwoIG9wdGlvbk5hbWUsIGluZGV4ICl7XHJcbiAgICBjb25zdCBvcHRpb25MYWJlbCA9IGNyZWF0ZU9wdGlvbiggb3B0aW9uTmFtZSwgdHJ1ZSApO1xyXG4gICAgY29uZmlndXJlTGFiZWxQb3NpdGlvbiggb3B0aW9uTGFiZWwsIGluZGV4ICk7XHJcbiAgICByZXR1cm4gb3B0aW9uTGFiZWw7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZExhYmVsLmFkZChtb2RhbERyb3Bkb3duKTtcclxuICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCguLi5vcHRpb25zLm1hcChvcHRpb25Ub0xhYmVsKSk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCggLi4uT2JqZWN0LmtleXMob3B0aW9ucykubWFwKCBvcHRpb25Ub0xhYmVsICkgKTtcclxuICB9XHJcblxyXG5cclxuICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfRFJPUERPV04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuXHJcbiAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBEUk9QRE9XTl9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBEUk9QRE9XTl9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSwgRFJPUERPV05fREVQVEgsIHRydWUgKTtcclxuICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGNvbnRyb2xsZXJJRCwgc2VsZWN0ZWRMYWJlbCwgYm9yZGVyQm94ICk7XHJcblxyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggaW50ZXJhY3Rpb24sIGluZGV4ICl7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uTGFiZWxzWyBpbmRleCBdO1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7IC8vYXMgb2YgdGhpcyB3cml0aW5nLCB0aGlzIGlzIGJlbGlldmVkIHRvIGJlIHJlbGlhYmxlLCBidXQgYmV3YXJlIGRyYWdvbnMsIGZ1dHVyZSByZWFkZXIuXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEudGlwT2JqKSB7XHJcbiAgICAgIC8vIGlmIChsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKSB7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coZ3JvdXAudXNlckRhdGEudGlwKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBzZXRWaXNpYmlsaXR5KHBhbmVsLCBncm91cC51c2VyRGF0YS50aXBPYmosIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYoIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkgfHwgc3RhdGUub3BlbiApe1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG4gIGxldCBvbkNob29zZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLm9uQ2hvb3NlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNob29zZUNCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggZmluZExhYmVsRnJvbVByb3AoKSApO1xyXG4gICAgfVxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsSW50ZXJhY3Rpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgIGNvbnN0IG9iaiA9IGdyb3VwO1xyXG4gICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgLy9uYiwgb2JqLnNwYWNpbmcgbWF5IGJlIHVuZGVmaW5lZCwgYnV0IHNob3VsZCBub3cgaGF2ZSBzZW5zaWJsZSBkZWZhdWx0LlxyXG4gICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgLy8vLy0tLSBzZWUgbGFiZWxJbnRlcmFjdGlvbnNbMF0gYWJvdmUgZm9yIGhhbmRsaW5nIHVwZGF0ZS4uLlxyXG4gIH1cclxuICBncm91cC5nZXRUb29sVGlwID0gKCkgPT4gZ3JvdXAudXNlckRhdGEudGlwO1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgeyBjcmVhdGVUb29sVGlwIH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyLCBzZXRCb3hGcm9tT2JqZWN0LCBzZXRWaXNpYmlsaXR5IH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IEZPTERFUl9XSURUSCB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbi8vSWYgeW91J3JlIGxvb2tpbmcgZm9yIG1haW4gY3JlYXRlRm9sZGVyIGZ1bmN0aW9uLCBpdCdzIGZ1cnRoZXIgYmVsb3cuLi5cclxuXHJcbi8qKlxyXG4gKiBOb3QgZW50aXJlbHkgc3VyZSBhYm91dCBzdGFydGluZyB0byBhZGQgdGhpcyBraW5kIG9mIGdsb2JhbCBzdGF0ZSBtYW5hYWdlbWVudCBoZXJlLi4uXHJcbiAqIFRoaXMgaXMgZm9yIHotb3JkZXIgaW4gMmQgb3J0aG9ncmFwaGljIG1vZGUsIGFuZCBtYXliZSBzb21lIG90aGVyIHRoaW5ncyBvbmUgZGF5LlxyXG4gKi9cclxuY29uc3QgdG9wRm9sZGVyU3RhY2sgPSBbXTtcclxuXHJcbmNvbnN0IHNjcmF0Y2hGb2xkZXJCb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoQ2FtQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaFNpemUgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCkge1xyXG4gIGNvbnN0IGNhbSA9IHRvcEZvbGRlclN0YWNrWzBdLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gIGlmICghY2FtIHx8IHRvcEZvbGRlclN0YWNrLmxlbmd0aCA8PSAxKSByZXR1cm47XHJcbiAgLy9jYW1Cb3hTZXR1cChjYW0pO1xyXG4gIGNvbnN0IHRmcyA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcih4ID0+IHgudmlzaWJsZSk7XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdGZzLmxlbmd0aDtcclxuICBjb25zdCB6cyA9IHRmcy5tYXAoZiA9PiBmLnBvc2l0aW9uLnopLnNvcnQoKGEsYik9PmEtYik7XHJcbiAgenNbLTFdID0gLTk5OTk7IC8vIEkgc3VwcG9zZSB0aGlzIGlzIHRvIGRlYWwgd2l0aCBhY2Nlc3NpbmcgenNbaS0xXSBiZWxvdyDCr1xcXyjjg4QpXy/Cr1xyXG4gIHpzLmZvckVhY2goICh6LGkpID0+IHpzW2ldID0gTWF0aC5tYXgoenNbaV0sIHpzW2ktMV0gKyAxMCpMYXlvdXQuUEFORUxfREVQVEgpKTsgLy8gaW4gY2FzZSBvZiBlcXVhbHNcclxuICBcclxuICB0ZnMuZm9yRWFjaCgoZiwgaSkgPT4ge1xyXG4gICAgLy9sZXQgeiA9IC0wLjkqZmFyICsgaSoxMCpMYXlvdXQuUEFORUxfREVQVEg7XHJcbiAgICBjb25zdCB6ID0genNbaV07XHJcbiAgICBpZiAoeiAhPT0gZi5wb3NpdGlvbi56KSB7XHJcbiAgICAgIGYucG9zaXRpb24ueiA9IHo7XHJcbiAgICAgIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIGYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9KTtcclxuICBpZiAodGZzW24tMV0ucG9zaXRpb24ueiA+PSBuZWFyIC0gTGF5b3V0LlBBTkVMX0RFUFRIKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkdVSVZSIFdhcm5pbmc6IGxpa2VseSBwcm9ibGVtIHdpdGggei1vcmRlciBpbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXRcIik7XHJcbiAgfVxyXG4gIC8vY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUgKyAnXFx0OiAnICsgZi5wb3NpdGlvbi56KS5qb2luKCdcXG4nKX1dYCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbUJveFNldHVwKGNhbSkge1xyXG4gIGlmICghY2FtLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSByZXR1cm47XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdG9wRm9sZGVyU3RhY2subGVuZ3RoO1xyXG4gIGNvbnN0IGwgPSBjYW0ubGVmdCwgciA9IGNhbS5yaWdodCwgdCA9IGNhbS50b3AsIGIgPSBjYW0uYm90dG9tO1xyXG4gIGNvbnN0IHogPSBjYW0ucG9zaXRpb24uejsgLy9ub3Qgc3RyaWN0bHkgcmlnaHQuLi5cclxuICBzY3JhdGNoQ2FtQm94Lm1pbi5zZXQobCwgYiwgLWZhciArIHopO1xyXG4gIHNjcmF0Y2hDYW1Cb3gubWF4LnNldChyLCB0LCAtbmVhciArIHopO1xyXG4gIHJldHVybiBzY3JhdGNoQ2FtQm94O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVGb2xkZXIoe1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG5hbWUsXHJcbiAgZ3VpQWRkLFxyXG4gIGd1aVJlbW92ZSxcclxuICBhZGRDb250cm9sbGVyRnVuY3MsXHJcbiAgZ2xvYmFsQ29udHJvbGxlcnNcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IHdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICBjb25zdCBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSDtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBjb2xsYXBzZWQ6IGZhbHNlLFxyXG4gICAgcHJldmlvdXNQYXJlbnQ6IHVuZGVmaW5lZFxyXG4gIH07XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZm9sZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7bmFtZX1dYDtcclxuXHJcbiAgY29uc3QgY29sbGFwc2VHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmFkZCggY29sbGFwc2VHcm91cCApO1xyXG5cclxuICB2YXIgaXNBY2NvcmRpb24gPSBmYWxzZTtcclxuICAvKiogV2hlbiB0cnVlLCB3aWxsIGtlZXAgb25seSBvbmUgY2hpbGQgZm9sZGVyIG9mIHRoaXMgZm9sZGVyIG9wZW4gYXQgYSB0aW1lLlxyXG4gICAqIFNpYmxpbmdzIGF1dG9tYXRpY2FsbHkgY2xvc2UuXHJcbiAgICovXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2FjY29yZGlvbicsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNBY2NvcmRpb247XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAoIG5ld1ZhbHVlICYmICFpc0FjY29yZGlvbiApIGdyb3VwLmd1aUNoaWxkcmVuLmZpbHRlciggYz0+Yy5pc0ZvbGRlciApLm1hcCggYz0+Yy5jbG9zZSgpICk7XHJcbiAgICAgIGlzQWNjb3JkaW9uID0gbmV3VmFsdWU7XHJcbiAgICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy9mbGFnIHRoZSBuZWVkIGZvciBwZXJmb3JtaW5nIGxheW91dCBvZiB0aGUgZm9sZGVyIGhpZXJhcmNoeSBpbiB3aGljaCB0aGlzIGlzIGNvbnRhaW5lZC5cclxuICBncm91cC5yZXF1ZXN0TGF5b3V0ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGByZXF1ZXN0ZWQgbGF5b3V0IG9mIGZvbGRlciAke2dyb3VwLmZvbGRlck5hbWV9IHdoaWxlIGxheW91dCBhbHJlYWR5IGluIHByb2dyZXNzLi4uYCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90b3BGb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20gaW5kZXguanMgdXBkYXRlKD8pIGZvciBlYWNoIHRvcEZvbGRlciwgdGhlbiBmcm9tIHdpdGhpbiBwZXJmb3JtTGF5b3V0KCkgZm9yIGVhY2ggY2hpbGQgZm9sZGVyXHJcbiAgZ3JvdXAucGVyZm9ybUxheW91dCA9IHBlcmZvcm1MYXlvdXQ7XHJcblxyXG4gIGNvbnN0IHN0cmFpZ2h0Um90YXRpb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xyXG4gIC8vcHJvdmlkZSBhcmd1bWVudHMgZm9yIGhvdyBjb25zdHJhaW5lZCB0byBiZSwgYW5kIHJlLXVzZSBzYW1lIGZ1bmN0aW9uIGJvdGggb24gZGV0YWNoIGFuZCBlbHNld2hlcmU/XHJcbiAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24gPSBmdW5jdGlvbih0aHJlc2g9MC4wMSkge1xyXG4gICAgY29uc3QgZiA9IHRoaXM7XHJcbiAgICBpZiAoIWYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIHJldHVybjtcclxuICAgIC8vYWx3YXlzIGZvcmNlIHJvdGF0aW9uIHN0cmFpZ2h0IGZvcndhcmQuLi5cclxuICAgIGYuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbihzdHJhaWdodFJvdGF0aW9uKTtcclxuXHJcbiAgICAvL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuICAgIC8vbWF5YmUgSSBjb3VsZCB1c2UgYSBCb3gyIGFueXdheSBzaW5jZSAzZCBtaWdodCBqdXN0IGNvbmZ1c2UgdGhpbmdzLlxyXG4gICAgY29uc3QgYm94ID0gc2V0Qm94RnJvbU9iamVjdChzY3JhdGNoRm9sZGVyQm94LCBmKTtcclxuICAgIGNvbnN0IGJveFcgPSBib3gubWF4LnggLSBib3gubWluLngsIGJveEggPSBib3gubWF4LnktYm94Lm1heC55O1xyXG4gICAgXHJcbiAgICBjb25zdCBjYW0gPSBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gICAgY29uc3QgY2FtQm94ID0gY2FtQm94U2V0dXAoY2FtKTsgLy9iaXQgd2FzdGVmdWwgdG8gY2FsbCB0aGlzIGhlcmUsIGJ1dCBpbnNpZ25pZmljYW50LlxyXG4gICAgLy9yZWFsbHksIEkgd2FudCB0byBrbm93IGlmIGl0J3MgJ21vc3RseScgaW52aXNpYmxlLlxyXG4gICAgLy9Vc2luZyB0d28gYm94ZXMsIHJhdGhlciB0aGFuIGZydXN0dW0uc2V0RnJvbU1hdHJpeCggbWF0Lm11bHRpcGx5TWF0cmljZXMoIGNhbS5wcm9qZWN0aW9uTWF0cml4LCBjYW0ubWF0cml4V29ybGRJbnZlcnNlICkgKTtcclxuICAgIC8vKGZydXN0dW0gaXMgdW5uZWNlc3NhcnkgKmNvdWdoKmlmIHdlIGFzc3VtZSBvcnRob2dyYXBoaWMgcGVyc3BlY3RpdmUsIG5vIGNhbWVyYSB0cmFuc2Zvcm0gJiBhcmUgZ2VuZXJhbGx5IGxheCBhYm91dCB6KilcclxuICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IGJveC5pbnRlcnNlY3QoY2FtQm94KTsgLy9jYXJlZnVsIG9mIG9yZGVyOyBpbnRlcnNlY3QoKSBtdXRhdGVzXHJcbiAgICAvLyhYWFg6IHN0cmljdGx5IHNwZWFraW5nLCBpZGVhbGx5IEkgd291bGQgdGFrZSBjYW1lcmEgbWF0cml4V29ybGQgaW50byBhY2NvdW50IGlmIEkgd2FudCB0byBiZSBwcm9wZXIpXHJcbiAgICAvLyhtaWdodCBqdXN0IG1ha2UgbG9nIGEgd2FybmluZyBpZiBpdCdzIHNldCBob3cgSSBkb24ndCBleHBlY3QgaXQsIGJ1dCBwcmVmZXIgbm90IHRvIGxlYXZlIHRyYXBzLilcclxuICAgIFxyXG4gICAgLy9sb29rIGF0IGRpbWVuc2lvbnMgb2YgaW50ZXJzZWN0aW9uIGFuZCBmb3JjZSBpbndhcmRzIGlmIG5lY2Vzc2FyeS4uLlxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uU2l6ZSA9IGludGVyc2VjdGlvbi5nZXRTaXplKHNjcmF0Y2hTaXplKTtcclxuICAgIGNvbnN0IHNjcmVlblcgPSBjYW0ucmlnaHQgLSBjYW0ubGVmdCwgc2NyZWVuSCA9IGNhbS50b3AgLSBjYW0uYm90dG9tO1xyXG4gICAgLy93b3JrIGluIHVuaXRzIGFzIGZyYWN0aW9uIG9mIGJveCB3aWR0aCAoYWx0aG91Z2ggdGhhdCdzIG5vdCBhIGdyZWF0IGlkZWEgd2l0aCBtdWx0aS1jb2x1bW4gZm9sZGVycylcclxuICAgIGludGVyc2VjdGlvblNpemUueCAvPSBib3hXOyBpbnRlcnNlY3Rpb25TaXplLnkgLz0gYm94VztcclxuICAgIGxldCBuZWVkc1VwZGF0ZSA9IGZhbHNlO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgJHtmLmZvbGRlck5hbWV9OiAke0pTT04uc3RyaW5naWZ5KGludGVyc2VjdGlvblNpemUpfSwgdGhyZXNoOiAke3RocmVzaH1gKTtcclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnggPCB0aHJlc2gpIHsgLy9UT0RPOiBwYXJhbWF0ZXJpc2UgLyBub24tbWFnaWMtbnVtYmVyXHJcbiAgICAgIC8vVE9ETyB3b3JrIG91dCB3aGljaCBzaWRlIHdlJ3JlIG9uLCBtb3ZlIGJ5IG9iamVjdCB3aWR0aC4uLlxyXG4gICAgICBmLnBvc2l0aW9uLnggPSBjYW0ubGVmdCArIHNjcmVlblcvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueSA8IHRocmVzaCkge1xyXG4gICAgICBmLnBvc2l0aW9uLnkgPSBjYW0uYm90dG9tICsgc2NyZWVuSC8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmVlZHNVcGRhdGUpIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5pc0NvbGxhcHNlZCA9ICgpID0+IHsgcmV0dXJuIHN0YXRlLmNvbGxhcHNlZCB9XHJcbiAgXHJcbiAgLy91c2VmdWwgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhpcyBhcyB3ZWxsLiBVc2luZyBpbiByZW1vdmUgaW1wbGVtZW50YXRpb25cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdndWlDaGlsZHJlbicsIHtcclxuICAgIC8vcGVyaGFwcyBtb2RhbEVkaXRvciBzaG91bGQgYWxzbyBjb3VudCBhcyBhIG1lbWJlciBvZiB0aGlzLi4uXHJcbiAgICAvL2N1cnJlbnRseSBjYW4ndCBzZWUgYW55dGhpbmcgaW4gaW1wbGVtZW50YXRpb24gdGhhdCB3b3VsZCByZXF1aXJlIHRoYXRcclxuICAgIC8vLS0gYWRkaW5nIGhlYWRlckl0ZW1zIHRob3VnaCwgc28gdGhleSdsbCBnZXQgcGlja2VkIHVwIGJ5IHJlbW92ZSgpXHJcbiAgICAvLyAtIG1heWJlIHNhbWUgc2hvdWxkIGFwcGx5IHRvIG1vZGFsRWRpdG9yXHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIFsgLi4uY29sbGFwc2VHcm91cC5jaGlsZHJlbiwgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gXSB9XHJcbiAgfSk7XHJcbiAgLy8gcmV0dXJucyB0cnVlIGlmIGFsbCBvZiB0aGUgc3VwcGxpZWQgYXJncyBhcmUgbWVtYmVycyBvZiB0aGlzIGZvbGRlclxyXG4gIGdyb3VwLmhhc0NoaWxkID0gZnVuY3Rpb24gKCAuLi5hcmdzICl7XHJcbiAgICByZXR1cm4gIWFyZ3MuaW5jbHVkZXMoKG9iaikgPT4geyByZXR1cm4gZ3JvdXAuZ3VpQ2hpbGRyZW4uaW5kZXhPZihvYmopID09PSAtMX0pO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZm9sZGVyTmFtZSA9IG5hbWU7IC8vZm9yIGRlYnVnZ2luZ1xyXG4gIFxyXG4gIC8vICBZZWFoLiBHcm9zcy5cclxuICBjb25zdCBhZGRPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQ7XHJcbiAgLy9hcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIHRoaXMgdG8gYmVoYXZlIGxpa2UgYSByZWd1bGFyIFRIUkVFLkdyb3VwLCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIG9mIHJlbW92ZSBzaG91bGRuJ3QgaHVydFxyXG4gIGNvbnN0IHJlbW92ZU9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZTsgXHJcblxyXG4gIGZ1bmN0aW9uIGFkZEltcGwoIG8gKXtcclxuICAgIC8vIEkgY291bGQgY2hhbmdlIHRoaXMgZnVuY3Rpb24gYXMgcGFydCBvZiBhIHJlZmFjdG9yIHRvIHBsYWNlIGV2ZXJ5dGhpbmcgYXQgdG9wRm9sZGVyIGxldmVsLi4uXHJcbiAgICAvLyBpcyB0aGF0IGEgZ29vZCBpZGVhLCBvciBhIGJhZCBpZGVhP1xyXG4gICAgYWRkT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gcmVtb3ZlSW1wbCggbyApe1xyXG4gICAgcmVtb3ZlT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcblxyXG4gIC8vYWRkSW1wbCggY29sbGFwc2VHcm91cCApOyAvL3JlZHVuZGFudC5cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBhZGRJbXBsKCBwYW5lbCApO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDEuNTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuXHJcbiAgY29uc3QgZG93bkFycm93ID0gTGF5b3V0LmNyZWF0ZURvd25BcnJvdygpO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIDB4ZmZmZmZmICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggMC4wNSwgMCwgZGVwdGggICogMS4wMSApO1xyXG4gIHBhbmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG4gIGNvbnN0IGdyYWJiZXIgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0dSQUJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGdyYWJiZXIucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44NjsgLy9YWFg6IG1hZ2ljIG51bWJlclxyXG4gIGdyYWJiZXIubmFtZSA9ICdncmFiYmVyJztcclxuICBhZGRJbXBsKCBncmFiYmVyICk7XHJcblxyXG4gIGNvbnN0IGdyYWJCYXIgPSBHcmFwaGljLmdyYWJCYXIoKTtcclxuICBncmFiQmFyLnBvc2l0aW9uLnNldCggd2lkdGggKiAwLjUsIDAsIGRlcHRoICogMS4wMDEgKTtcclxuICBncmFiYmVyLmFkZCggZ3JhYkJhciApO1xyXG4gIGdyb3VwLmlzRm9sZGVyID0gdHJ1ZTtcclxuICBncm91cC5oaWRlR3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSBmYWxzZSB9O1xyXG4gIGdyb3VwLnNob3dHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IHRydWUgfTtcclxuICBncm91cC5oaWRlSGVhZGVyID0gZnVuY3Rpb24oKSB7IFxyXG4gICAgZ3JvdXAuaGlkZUdyYWJiZXIoKTtcclxuICAgIC8vZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICB9O1xyXG4gIGdyb3VwLnNob3dIZWFkZXIgPSAoKSA9PiB7XHJcbiAgICAvL2dyYWJiZXIudmlzaWJsZSA9IGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vVE9ETzogaW50ZXJmYWNlIGZvciBhZGRpbmcgdGhpbmdzIHRvIHRoaXMuLi4gTk9UICdzaG93SW5Gb2xkZXJIZWFkZXInIG1ldGhvZCAvIHByb3BlcnR5IG9uIGxpbmVhciBpdGVtcy4uLlxyXG4gIGNvbnN0IGhlYWRlckl0ZW1zID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcGFuZWwuYWRkKGhlYWRlckl0ZW1zKTtcclxuICAvL3RoaXMgZnVuY3Rpb24gd2lsbCBhdHRlbXB0IHRvIG1ha2Ugb2JqIGJlaGF2ZSBhcyBjb250cm9sbGVyIGxheWVkIG91dCBpbiBoZWFkZXJJdGVtcyxcclxuICAvL2Jhc2VkIG9uIHNvbWUgYXNzdW1wdGlvbnMgYWJvdXQgb2JqIHRoYXQgbWF5IGJlIHRydWUgYXQgdGltZSBvZiB3cml0aW5nLi4uXHJcbiAgLy9idXQgYXJlIHBlbmRpbmcgbW9yZSByaWdvcm91cyBzcGVjaWZpY2F0aW9uIC8gcmVmYWN0b3JpbmcgZXRjLlxyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0gPSBmdW5jdGlvbihvYmope1xyXG4gICAgaGVhZGVySXRlbXMuYWRkKG9iaik7XHJcbiAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBvYmouaXNIZWFkZXJPYmplY3QgPSB0cnVlO1xyXG5cclxuICAgIC8vYWxzbyBuZWVkIHRvIGFkZCB0byBnbG9iYWwgY29udHJvbGxlcnMgbGlzdCBldGMuIE5COjogbWFrZSBzdXJlIHRoYXQgdGhleSB3aWxsIGdldCByZW1vdmVkIGFzIHdlbGxcclxuICAgIC8vLS0tIHRoaXMgZ2VuZXJpYyBpbnRlcmFjdGlvbi51cGRhdGUgZG9lc24ndCBtYWtlIGxpc3RlbigpIHdvcmsgcHJvcGVybHkuXHJcbiAgICBpZiAoIW9iai51cGRhdGVDb250cm9sKSBvYmoudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiBvYmouaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICBvYmouaGl0c2NhbiA9IFsgb2JqIF07IC8vaGFja3kgaGFja3lcclxuICAgIGdsb2JhbENvbnRyb2xsZXJzLnB1c2gob2JqKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiAweDg4ODg4OCwgdHJhbnNwYXJlbnQ6IHRydWV9KTtcclxuICBjb25zdCBoID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uUmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggaCwgaCwgTGF5b3V0LkJVVFRPTl9ERVBUSCoyICk7XHJcbiAgLy9zb21ld2hhdCBiYWNrd2FyZHMgd2F5IG9mIGdldHRpbmcgdGV4dHVyZXMuLi4gVE9ETyBtYXliZSBjaGFuZ2UgKGFsb25nIHdpdGggb3RoZXIgc3R5bGUgY29uc2lzdGVuY3kgdHlwZSBzdHVmZilcclxuICBjb25zdCBkb2NrVGV4dHVyZSA9IEdyYXBoaWMuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBjb25zdCB1bmRvY2tUZXh0dXJlID0gR3JhcGhpYy51bmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICBjb25zdCBkZXRhY2hCdXR0b24gPSBuZXcgVEhSRUUuTWVzaCggIGRldGFjaEJ1dHRvblJlY3QsIGRldGFjaEJ1dHRvbk1hdGVyaWFsICk7XHJcbiAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBmYWxzZTtcclxuICBkZXRhY2hCdXR0b24ucG9zaXRpb24ueCA9IExheW91dC5GT0xERVJfV0lEVEggLSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICBjb25zdCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGRldGFjaEJ1dHRvbik7XHJcbiAgZGV0YWNoQnV0dG9uLmludGVyYWN0aW9uID0gZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb247XHJcbiAgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChncm91cC5kZXRhY2hlZFBhcmVudCkge1xyXG4gICAgICBncm91cC5yZWF0dGFjaCgpO1xyXG4gICAgfSBlbHNlIGdyb3VwLmRldGFjaCgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG4gIC8vaGVhZGVySXRlbXMuYWRkKGRldGFjaEJ1dHRvbik7XHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbShkZXRhY2hCdXR0b24pO1xyXG5cclxuICBsZXQgaXNEZXRhY2hhYmxlID0gZmFsc2U7XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2RldGFjaGFibGUnLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzRGV0YWNoYWJsZTtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gaXNEZXRhY2hhYmxlKSByZXR1cm47XHJcbiAgICAgIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gbmV3VmFsdWU7XHJcbiAgICAgIGlzRGV0YWNoYWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZ3JvdXAuYWRkID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGNvbnN0IG5ld0NvbnRyb2xsZXIgPSBndWlBZGQoIC4uLmFyZ3MgKTtcclxuXHJcbiAgICBpZiggbmV3Q29udHJvbGxlciApe1xyXG4gICAgICBncm91cC5hZGRDb250cm9sbGVyKCBuZXdDb250cm9sbGVyICk7XHJcbiAgICAgIHJldHVybiBuZXdDb250cm9sbGVyO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBTb21lIGNvbnRyb2xsZXJzIG1heSBicmluZyB1cCBzdWItR1VJcyB3aGljaCBoYXZlIHRoZSBwb3RlbnRpYWxcclxuICAgIHRvIG92ZXJsYXAgLyBjbGFzaC4gIFRoaXMgZW5zdXJlcyBvbmx5IG9uZSBpcyBwcmVzZW50IGF0IGEgdGltZS5cclxuICAqL1xyXG4gIGdyb3VwLnNldE1vZGFsRWRpdG9yID0gZnVuY3Rpb24oZSl7XHJcbiAgICAvL1RoaXMgY291bGQgZ28gd3JvbmcgaWYgZm9sZGVyIGhpZXJhcmNoeSBjaGFuZ2VzIHNpZ25pZmljYW50bHkuXHJcbiAgICAvL1Nob3VsZCBiZSBnb29kIGVub3VnaCBmb3Igcm9jayduJ3JvbGwgKGZhbW91cyBsYXN0IHdvcmRzKS5cclxuICAgIC8vSSBjb3VsZCBtYWtlIGl0IHNvIHRoYXQgb25seSBvbmUgb2YgdGhlc2UgdGhpbmdzIHdhcyBldmVyIHZpc2libGVcclxuICAgIC8vYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtLiAgVGhhdCBzaG91bGQgYmUgZWFzaWVyIHRvIG1ha2Ugcm9idXN0LCBhbnl3YXkuLi5cclxuICAgIC8vYW5kIHNhdmVzIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLlxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IGU7XHJcbiAgICBpZiAoIWUpIHJldHVybjtcclxuICAgIGUudmlzaWJsZSA9IHRydWU7XHJcbiAgICBpZiAoZS5wZXJmb3JtTGF5b3V0KSBlLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIGZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gdHJ1ZTtcclxuICAgIC8vYWRkIGEgZmxhZyB0byBhbGwgY2hpbGRyZW4gcmVjdXJzaXZlbHkgc28gdGhhdCBpbnRlcmFjdGlvbiBzeXN0ZW0gY2FuIGlkZW50aWZ5IHRoZW0gYXMgYmVsb25naW5nIHRvIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAvL1RPRE86IHNraXAgaWYgYWxyZWFkeSBkb25lLi4uXHJcbiAgICBmdW5jdGlvbiBkZWNvcmF0ZUNoaWxkcmVuKHBhcmVudCkge1xyXG4gICAgICBwYXJlbnQuY2hpbGRyZW4uZm9yRWFjaChjID0+IHtcclxuICAgICAgICBjLnVzZXJEYXRhLnBhcnRPZk1vZGFsID0gZTtcclxuICAgICAgICBkZWNvcmF0ZUNoaWxkcmVuKGMpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGRlY29yYXRlQ2hpbGRyZW4oZSk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgY3VycmVudCBtb2RhbCBlZGl0b3IgZnJvbSB0aGlzIGZvbGRlclxyXG4gICAqICoqYnV0IG5vdCBpZiBpdCB3YXMgYWRkZWQgZHVyaW5nIHRoZSBjdXJyZW50IGNvbnRyb2xsZXIgdXBkYXRlLFxyXG4gICAqIGFzIGluZGljYXRlZCBieSBhIGZsYWcgc2V0IGluIHNldE1vZGFsQ29udHJvbGxlciBhbmQgcmVzZXQgaW4gaW5kZXguanMgdXBkYXRlKipcclxuICAgKi9cclxuICBncm91cC5jbGVhck1vZGFsRWRpdG9yID0gZnVuY3Rpb24oKSB7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoIWZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgIC8vZm9sZGVyLnNldE1vZGFsRWRpdG9yKG51bGwpO1xyXG4gICAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSB7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qIFxyXG4gIFJlbW92ZXMgdGhlIGdpdmVuIGNvbnRyb2xsZXJzIGZyb20gdGhlIEdVSS4gID4+Pk9uY2UgcmVtb3ZlZCwgdGhlIGNvbnRyb2xsZXJzIHdpbGwgZWZmZWN0aXZlbHkgYmUgaW52YWxpZCBmb3IgdXNlPDw8XHJcbiAgPj4+IHNvIGRpc3Bvc2Ugb2YgdGhlbSBhcyB3ZWxsPyBOZWVkIHRvIGJlIGNhcmVmdWwgYWJvdXQgdGV4dHVyZXMgLyBhbnl0aGluZyBzaGFyZWQuLi4gPDw8XHJcbiAgYXMgdGhleSB3aWxsIGFsc28gYmUgcmVtb3ZlZCBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzLiAgVXNlICdkZXRhY2gnIGluc3RlYWQgaWYgaXQgaXNcclxuICBkZXNpcmVkIHRvIHJldXNlIEdVSSBlbGVtZW50cyBlbHNld2hlcmUuXHJcblxyXG4gIElmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQsIGl0IHdpbGwgYXR0ZW1wdCB0byBkZXRlY3QgdGhpcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLCBcclxuICBhYm9ydGluZyB0aGUgcHJvY2VzcyBhbmQgcmV0dXJuaW5nIGZhbHNlIGZyb20gdGhpcyBtZXRob2QuXHJcblxyXG4gIE5vdGU6IGFzIHdpdGggYWRkLCB0aGlzIG92ZXJ3cml0ZXMgYW4gZXhpc3RpbmcgcHJvcGVydHkgb2YgVEhSRUUuR3JvdXAuXHJcbiAgQXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyBmb2xkZXJzIHRvIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgVEhSRUUuR3JvdXBzLCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIuXHJcbiAgKi9cclxuICBncm91cC5yZW1vdmUgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgLy9ndWlSZW1vdmUgaXMgcGFzc2VkIGluIGZyb20gaW5kZXguanMgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBzYW5pdHkgY2hlY2tpbmcgJiByZW1vdmluZyBmcm9tIGdsb2JhbCBjb250cm9sbGVycyBsaXN0XHJcbiAgICBjb25zdCBvayA9IGd1aVJlbW92ZSggLi4uYXJncyApOyAvLyBhbnkgaW52YWxpZCBhcmd1bWVudHMgc2hvdWxkIGNhdXNlIHRoaXMgdG8gcmV0dXJuIGZhbHNlIHdpdGggbm8gc2lkZS1lZmZlY3RzXHJcbiAgICBpZiAoIW9rKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgY29uc29sZS5hc3NlcnQoZ3JvdXAuaGFzQ2hpbGQob2JqKSwgXCJpbnRlcm5hbCBwcm9ibGVtIHdpdGggaG91c2VrZWVwaW5nIGxvZ2ljIG9mIGRhdC5HVUlWUiBmb2xkZXIgbm90IGNhdWdodCBieSBzYW5pdHkgY2hlY2tcIik7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBvYmoucmVtb3ZlKCAuLi5vYmouZ3VpQ2hpbGRyZW4gKTtcclxuICAgICAgfVxyXG4gICAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShvYmopO1xyXG4gICAgfSk7XHJcbiAgICAvL1RPRE86IGRlZmVyIGFjdHVhbCBsYXlvdXQgcGVyZm9ybWFuY2U7IHNldCBhIGZsYWcgYW5kIG1ha2Ugc3VyZSBpdCBnZXRzIGRvbmUgYmVmb3JlIGFueSByZW5kZXJpbmcgb3IgaGl0LXRlc3RpbmcgaGFwcGVucy5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vcmF0aGVyIHRoYW4gbWV0aG9kLCBkZXRhY2hlZFBhcmVudCBiZSBhIHByb3BlcnR5IHRoYXQgZG9lcyB0aGlzIHN0dWZmIGluIHNldHRlci4uLlxyXG4gIC8vYW55d2F5LCBib3RoIGFyZSByZWFsbHkgbWVhbnQgZm9yIGludGVybmFsIHVzZSwgYXMgaGludGVkIGJ5IF8gaW4gbmFtZS5cclxuICBncm91cC5fc2V0RGV0YWNoZWRGcm9tID0gKHBhcmVudCkgPT4ge1xyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICBpZiAocGFyZW50ID09PSBudWxsKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbi5tYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gZG9ja1RleHR1cmU7XHJcbiAgICAgIGdyb3VwLnNob3dIZWFkZXIoKTtcclxuICAgICAgZ3JvdXAuc2hvd0dyYWJiZXIoKTtcclxuICAgICAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIERldGFjaCBhIGNoaWxkIGZvbGRlciBmcm9tIHRoaXMgZm9sZGVyIGhpZXJhcmNoeSwgc3VjaCB0aGF0IGl0IGNhbiBiZSB1c2VkIGVsc2V3aGVyZSBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICogXHJcbiAgICogKHdpbGwgbm90IGJlIHZpc2libGUgdW50aWwgZXhwbGljaXRseSBhZGRlZCBlbHNld2hlcmU7IFxyXG4gICAqIGNhbGxpbmcgZGV0YWNoKCkgaW5zdGVhZCB3aWxsIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYW5kIGlzIG1vcmUgaW50ZW5kZWQgZm9yIHVzZSBpbiBhcHBsaWNhdGlvbiBjb2RlXHJcbiAgICogd2hpbGUgdGhpcyBtZXRob2QgaXMgbW9yZSBvZiBhbiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuKVxyXG4gICAqL1xyXG4gIGdyb3VwLmRldGFjaENoaWxkID0gKGNoaWxkKSA9PiB7XHJcbiAgICBpZiAoIWNoaWxkLmlzRm9sZGVyIHx8IGNoaWxkLmZvbGRlciAhPT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIGNoaWxkLl9zZXREZXRhY2hlZEZyb20oZ3JvdXApO1xyXG4gICAgY29sbGFwc2VHcm91cC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgLy9USFJFRS5PYmplY3QzRC5wcm90b3R5cGUucmVtb3ZlLmNhbGwoZ3JvdXAsIGNoaWxkKTtcclxuICAgIHJlbW92ZUltcGwoY2hpbGQpO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwOyAvL29yIGNoaWxkP1xyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBEZXRhY2ggdGhpcyBvYmplY3QgZnJvbSBpdHMgcGFyZW50LCBhbmQgcmVhdHRhY2ggdG8gc2NlbmVncmFwaCBhcyBhIHNpYmxpbmcgb2YgdGhlICd0b3AgbGV2ZWwnIGZvbGRlciBpblxyXG4gICAgdGhlIGhpZXJhcmNoeSB0aGlzIHByZXZpb3VzbHkgd2FzIGEgbWVtYmVyIG9mLlxyXG4gICovXHJcbiAgZ3JvdXAuZGV0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciA9PT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIC8vYXV0b21hdGljYWxseSBhZGQgdG8gVEhSRUUgcGFyZW50IG9mIHRvcCBsZXZlbCBmb2xkZXIgYW5kIHRyeSB0byBzZXQgYXBwcm9wcmlhdGUgc2NhbGUgLyB0cmFuc2Zvcm0uLi5cclxuICAgIC8vaWYgdGhhdCBmb2xkZXIgYmVpbmdNb3ZlZCBhdCB0aGUgcHJlc2VudCB0aW1lLCB0aGVuIGl0IHdpbGwgaGF2ZSBhbiBvbGRQYXJlbnQgdG8gd2hpY2ggd2Ugc2hvdWxkIGF0dGFjaCBpbnN0ZWFkLlxyXG4gICAgLy8uLi5hbHRob3VnaCBpdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRoZSBkZXRhY2hlZCBmb2xkZXIgdG8gbW92ZSB3aXRoIHRoZSBjb250cm9sbGVyIHVudGlsIGJ1dHRvbiBpcyByZWxlYXNlZC4uLlxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgZ3JvdXAuZm9sZGVyLmRldGFjaENoaWxkKGdyb3VwKTtcclxuICAgIFxyXG4gICAgLy9hZGRpbmcgdG8gdG9wRm9sZGVyLnBhcmVudCBJRiBBVkFJTEFCTEUsIG5vdCBvbGRQYXJlbnQsIHBlbmRpbmcgd29ya2luZyBvdXQgdHJhbnNmb3JtIGxhdGVyIGlmIGJlaW5nTW92ZWQuLi5cclxuICAgIGNvbnN0IHBhciA9IHRvcEZvbGRlci5wYXJlbnQgfHwgZ3JvdXAucGFyZW50OyBcclxuICAgIGlmICghcGFyKSByZXR1cm47IC8vU0pQVCBjaGFuZ2UgZnJvbSBDU3ludGgsIG5vdCBjYXJlZnVsbHkgcmV2aWV3ZWQgYnV0IHByb2JhYmx5IHJpZ2h0LlxyXG4gICAgcGFyLmFkZChncm91cCk7XHJcbiAgICBjb25zdCBtID0gdG9wRm9sZGVyLm1hdHJpeC5jbG9uZSgpO1xyXG5cclxuICAgIGdyb3VwLmFwcGx5TWF0cml4NChtKTtcclxuICAgIG0uc2V0UG9zaXRpb24obmV3IFRIUkVFLlZlY3RvcjMoKSk7XHJcbiAgICBjb25zdCB0ID0gbmV3IFRIUkVFLlZlY3RvcjMoTGF5b3V0LkZPTERFUl9XSURUSCwgMCwgMCkuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgZ3JvdXAucG9zaXRpb24uYWRkKHQpO1xyXG4gICAgXHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9kZXRhY2ggdGhpcyBvYmplY3QgZnJvbSB0b3BGb2xkZXIucGFyZW50IHRoZW4gYXR0YWNoIHRvIHRvcEZvbGRlci5vbGRQYXJlbnQgd2hpbGUgbWFpbnRhaW5pbmcgbWF0cml4V29ybGRcclxuICAgICAgLy8uLi5hY3R1YWxseSwgKG1heWJlKSB3ZSB3YW50IHRvIGRvIHRoaXMgc2NlbmVTaGlmdCBidXNpbmVzcyB3aGVuIGJlaW5nTW92ZWQgZmluaXNoZXMuLi5cclxuICAgICAgLy8gcHV0IHRoaW5ncyBpbnRvIHNlbWlEZXRhY2hlZCwgc28gdGhhdCB3aGVuIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCB0aGV5IGNhbiBiZSBzaGlmdGVkLlxyXG4gICAgICAvL29yIG1heWJlIHdoYXQgd2UgcmVhbGx5IHdhbnQgaXMgdG8gaGF2ZSBhbiBvcHRpb24gdG8gJ3BpbicgcGFuZWxzIHRvZ2V0aGVyIGFuZCB1bnBpbiB0aGVtLCByYXRoZXIgdGhhbiBhc3N1bWVcclxuICAgICAgLy9hdHRhY2htZW50IGNoYW5nZXMgd2hlbiBidXR0b24gcmVsZWFzZWQuICBGb3Igbm93LCB0aGlzIGlzIG5vdCBxdWl0ZSB3b3JraW5nIHJpZ2h0LCBzby4uLlxyXG4gICAgICBjb25zdCBkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgLy93ZSBjb3VsZCBqdXN0IGRldGFjaCwgbGVhdmluZyB0aGUgb2JqZWN0IGFzIGRpcmVjdCBkZXNjZW5kZW50IG9mIHNjZW5lLCBidXQgdGhlcmUgbWF5IGJlIHJlYWwgcmVhc29ucyB0byBzaXR1YXRlXHJcbiAgICAgIC8vdGhlIEdVSSB3aXRoaW4gaGllcmFyY2h5IHNvbWVob3cgKGxpa2UgYXMgY2hpbGRyZW4gb2YgYSBjb250cm9sbGVyKVxyXG4gICAgICBcclxuICAgICAgaWYgKGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5wdXNoKGdyb3VwKTtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEub2xkUGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsvL1hYWDogaGFjayBiZWNhdXNlIHRvcEZvbGRlci5vbGRQYXJlbnQgd2FzIGJlaW5nIHVuZGVmaW5lZCBiZWZvcmUgYmVpbmdNb3ZlZCA9IGZhbHNlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGQgPSBncm91cDtcclxuICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSB0b3BGb2xkZXIucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICBcclxuICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IFxyXG4gICAgZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSB0b3BGb2xkZXIudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7IC8vVE9ETzogcmV2aXNlIGhvdyB0byBwYXNzIHRoaXMgaW5mb1xyXG4gICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oMC41KTtcclxuICAgIGdyb3VwLm9wZW4oKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICAvL2FsYSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2V4YW1wbGVzL3V0aWxzL1NjZW5lVXRpbHNcclxuICBmdW5jdGlvbiBzY2VuZURldGFjaChjaGlsZCwgcGFyZW50LCBzY2VuZSkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQocGFyZW50Lm1hdHJpeFdvcmxkKTtcclxuICAgIHBhcmVudC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgc2NlbmUuYWRkKGNoaWxkKVxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIHBhcmVudCkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkuZ2V0SW52ZXJzZShwYXJlbnQubWF0cml4V29ybGQpICk7XHJcblx0XHRzY2VuZS5yZW1vdmUoY2hpbGQpO1xyXG5cdFx0cGFyZW50LmFkZChjaGlsZCk7ICAgXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KSB7XHJcbiAgICBsZXQgbm9kZSA9IG9sZFBhcmVudDtcclxuICAgIHdoaWxlIChub2RlLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgY29uc3Qgc2NlbmUgPSBub2RlO1xyXG4gICAgXHJcbiAgICBzY2VuZURldGFjaChjaGlsZCwgb2xkUGFyZW50LCBzY2VuZSk7XHJcbiAgICBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIG5ld1BhcmVudCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5kZXRhY2hGcm9tUGFyZW50ID0gZ3JvdXAuZGV0YWNoO1xyXG4gIFxyXG4gIGdyb3VwLnJlYXR0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKCFncm91cC5kZXRhY2hlZFBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9UT0RPOiBjaGVjayBsYXlvdXQgd2l0aCB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiB3cmFwcGluZyBldGMuXHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudC5hZGRGb2xkZXIoZ3JvdXApOyAvLyB0aGlzIHdpbGwgYWxzbyBkZWFsIHdpdGggY29zbWV0aWNzIChoaWRlR3JhYmJlciBldGMpXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cC5kZXRhY2hlZFBhcmVudCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9tYXliZSB3ZSBjb3VsZCBkbyB0aGlzIGtpbmQgb2Ygc3R1ZmYgaW4gX3NldERldGFjaGVkRnJvbVxyXG4gICAgICAvL2luIGFueSBjYXNlLCBpdCdzIGlycmVsZXZhbnQgaWYgXHJcbiAgICAgIGxldCBzZW1pcyA9IHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQ7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VtaXMuaW5kZXhPZihncm91cCk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICAvL2dyb3VwLmRldGFjaGVkUGFyZW50ID0gbnVsbDtcclxuICAgIGdyb3VwLl9zZXREZXRhY2hlZEZyb20obnVsbCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmFkZENvbnRyb2xsZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBncm91cC5hZGRGb2xkZXIob2JqKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICB9XHJcbiAgICAgIC8vWFhYOiBoYWNraW5nIGluIHNvbWUgdW5pdmVyc2FsIHRvb2x0aXAgc3VwcG9ydFxyXG4gICAgICBpZiAob2JqLnNldFRvb2xUaXApIHJldHVybjsgLy9idXQgbm90IGlmIGEgbW9yZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBhbHJlYWR5IGV4aXN0cyAoc2VlIGRyb3Bkb3duLi4uKVxyXG4gICAgICBvYmouc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgICAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgICAgICBjb25zdCB0aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwT2JqID0gdGlwT2JqO1xyXG4gICAgICAgIC8vYXNzb2NpYXRlIGV2ZW50IHdpdGggaG92ZXIgb24gYXBwcm9wcmlhdGUgaGl0c2Nhbi4uLlxyXG5cclxuICAgICAgICBpZiAob2JqLmludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgICAvL1RPRE86IGV2ZW50cy5vZmYoKSBpZiByZXBsYWNpbmcgb2xkIHRvb2x0aXAgKG9yIG5vdCByZXBlYXRpbmcgb24oKSkuXHJcbiAgICAgICAgICBvYmouaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCd0aWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAvL2Rvbid0IGp1c3Qgc2V0IHZpc2liaWxpdHk7IGFkZC9yZW1vdmUgYXMgdGhlc2UgYXJlIGtpbGxpbmcgZnJhbWVyYXRlIGluIGxhcmdlIFZSIGd1aXMuXHJcbiAgICAgICAgICAgIC8vUkVWSUVXLi4uIGNvbnNpZGVyaW5nIG1ha2luZyB0b29sdGlwcyB3b3JrIHdoZW4gaG92ZXJpbmcgb24gbGFiZWwgYXMgd2VsbCxcclxuICAgICAgICAgICAgLy8gYnV0IG9mIGNvdXJzZSB0aGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgbW9yZSBhYm91dCB0aGUgaW50ZXJhY3Rpb24gc2V0dXAsXHJcbiAgICAgICAgICAgIC8vIGFuZCBoYXZpbmcgbW9yZSBvYmplY3RzIHRvIHRlc3QgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAgICAgICAgICAvLyBMZWF2aW5nIGZvciBub3csIGlmIHdvcmtpbmcgbW9yZSBvbiB0aGUgbGlicmFyeSwgaG9wZWZ1bGx5IGZpeCBob3ZlciBldmVudCBldGMuXHJcbiAgICAgICAgICAgIGlmIChvYmoudmlzaWJsZSkgc2V0VmlzaWJpbGl0eShvYmosIHRpcE9iaiwgb2JqLmludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYGNhbid0IGNyZWF0ZSB0b29sdGlwIGZvciAke29iai5ndWlUeXBlfSBiZWNhdXNlIHRoZXJlJ3Mgbm8gb2JqLmludGVyYWN0aW9uIHByb3BlcnR5Li4uYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBvYmouZ2V0VG9vbFRpcCA9ICgpID0+IG9iai51c2VyRGF0YS50aXA7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuYWRkRm9sZGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24gKG9iaikge1xyXG4gICAgICAvL1RPRE8gaWYgb2JqIGlzIHN0cmluZywgbWFrZSBhIG5ldyBndWkgYW5kIGFkZCAvIHJldHVybiBpdC4uLiBidXQgd2hhdCBhYm91dCB2YXJhcmdzP1xyXG4gICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgb2JqLm1hdHJpeC5pZGVudGl0eSgpO1xyXG4gICAgICBvYmouc2NhbGUuc2V0KDEsMSwxKTtcclxuICAgICAgb2JqLnBvc2l0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIG9iai5yb3RhdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBcclxuICAgICAgb2JqLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAgIG9iai5jbG9zZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnByb21vdGVaT3JkZXIgPSAoKSA9PiB7XHJcbiAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCB8fCAhdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGRuJ3QgYmUgYSAncHVibGljIG1ldGhvZCcgKGJ1dCBtYXliZSB0aGVyZSBzaG91bGQgYmUgYSB3ZWxsLWRlZmluZWQgcHVibGljIGludGVyZmFjZSkuXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IGluY29uc2lzdGVuY3kgaW4gZm9sZGVyIGhvdXNla2VlcGluZ2ApO1xyXG4gICAgfVxyXG4gICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYHByb21vdGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAvL3RoaXMgd2lsbCByZXN1bHQgaW4gdGhlIG9iamVjdCB6IGJlaW5nIGRpZmZlcmVudCBmcm9tIHdoZW4gbW91c2VJbnRlcnNlY3Rpb24gaGl0IGl0IGVhcmxpZXIgaW4gdXBkYXRlLlxyXG4gICAgLy9tb3VzZUludGVyc2VjdGlvbiB3aWxsIHRoZW4gbGF0ZXIgYmUgdXNlZCBpbiBoYW5kbGVUaWNrIG9mIGdyYWIgaW50ZXJhY3Rpb24sIHRvIGZ1cnRoZXIgbXV0YXRlIHBvc2l0aW9uXHJcbiAgICAvL3NlZW1zIG9rIHRob3VnaCAoYXMgb2YgMDQvMTIvMTgpXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIC8vZ3JvdXAudXNlckRhdGEub3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0ID0gIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dDtcclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUxheW91dCgpe1xyXG4gICAgcGVyZm9ybUhlYWRlckxheW91dCgpO1xyXG4gICAgXHJcbiAgICBjb25zdCB3cmFwTmVzdGVkID0gZmFsc2U7XHJcbiAgICBcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIC8vc3RhcnRpbmcgd2hvbGUgbmV3IGxheW91dCBvZiB0b3BGb2xkZXI/XHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBpZiAodG9wRm9sZGVyLm1vZGFsRWRpdG9yICYmIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KSB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICBcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbllPZmYgPSAtdG9wRm9sZGVyLnBvc2l0aW9uLnk7XHJcbiAgICAgIC8vSSBjb3VsZCB1bmRlZmluZSB0aGVzZSBhdCB0aGUgZW5kLCBidXQgdGhlcmUncyBubyBwb2ludC5cclxuXHJcbiAgICAgIGlmICghdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgYWRkaW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8va2VlcCBjb3VudGluZyBjb2x1bW5IZWlnaHQgKGN1cnJlbnQgeSkgJiBpbmRleCBmcm9tIHBhcmVudCBmb2xkZXIuXHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL1RPRE86IG1ha2Ugc3VyZSB0byB0ZXN0IHdpdGggZGVlcCBuZXN0aW5nLlxyXG4gICAgICBcclxuICAgICAgaWYgKHRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgcmVtb3ZpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIGNvbnN0IHNwYWNpbmdQZXJDb250cm9sbGVyID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgY29uc3QgZW1wdHlGb2xkZXJTcGFjZSA9IExheW91dC5GT0xERVJfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICB2YXIgdG90YWxTcGFjaW5nID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjKSA9PiB7IGMudmlzaWJsZSA9ICFzdGF0ZS5jb2xsYXBzZWQgfSApO1xyXG4gICAgLy9jaGlsZHJlbiBzaG91bGQgYmUgb3JkZXJlZCBieSBndWlJbmRleC5cclxuICAgIC8vaWYgdGhleSBkb24ndCBhbHJlYWR5IGhhdmUgb25lLCBpdCBjYW4gYmUgYWRkZWQgaGVyZTpcclxuICAgIC8vdGhpcyBzaG91bGQgYmUgdGhlIG9ubHkgcGxhY2UgdGhhdCB3ZSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgcHJvcGVydHlcclxuICAgIC8vaXQgYWxsb3dzIGZvciBkZXRhY2hpbmcgZWxlbWVudHMgYW5kIHJlYXR0YWNoaW5nIGluIHNpbWlsYXIgcGxhY2UsIGV2ZW4gaWYgc29tZSBzaWJsaW5ncyBhcmUgYWxzbyBkZXRhY2hlZC5cclxuICAgIGxldCBsYXN0R3VpSW5kZXggPSAwO1xyXG4gICAgLy90cnkgdG8gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGNsaWVudCBwcm9ncmFtIG1heSBhdHRlbXB0IHRvIHJlc3RvcmUgaXRlbXMgXHJcbiAgICAvL3JlbWVtYmVyaW5nIGRldGFjaGVkUGFyZW50IGJ1dCBub3QgZ3VpSW5kZXg/IE5vaXNlLi4uXHJcbiAgICAvL2NvbnN0IGRldGFjaGVkQ2hpbGRyZW4gPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoZiA9PiBmLmRldGFjaGVkUGFyZW50ID09PSB0aGlzKTtcclxuICAgIC8vY29sbGFwc2VHcm91cC5jaGlsZHJlbi5jb25jYXQoZGV0YWNoZWRDaGlsZHJlbikuZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgICAgICBpZiAoYy5ndWlJbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgYy5ndWlJbmRleCA9IGxhc3RHdWlJbmRleCs9MTtcclxuICAgICAgfSBlbHNlIGxhc3RHdWlJbmRleCA9IGMuZ3VpSW5kZXg7XHJcbiAgICB9KTtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4geyByZXR1cm4gYS5ndWlJbmRleCAtIGIuZ3VpSW5kZXggfSk7XHJcblxyXG4gICAgaWYgKCBzdGF0ZS5jb2xsYXBzZWQgKSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gTWF0aC5QSSAqIDAuNTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gMDtcclxuXHJcbiAgICAgIHZhciB5ID0gMCwgbGFzdEhlaWdodCA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIGZ1bmN0aW9uKCBjaGlsZCwgaW5kZXggKXtcclxuICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgIGNoaWxkLnVzZXJEYXRhLmNvbHVtbllPZmYgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmIC0geTsgLy9leGNlcHQgJ3knIHdpbGwgYmUgd3JvbmcuLi5cclxuICAgICAgICAgIGNoaWxkLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCAhd3JhcE5lc3RlZCApIHtcclxuICAgICAgICAgIC8vT3JpZ2luYWwgbGF5b3V0IGFsZ29yaXRobVxyXG4gICAgICAgICAgdmFyIGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgLy8gaG93IGZhciB0byBnZXQgZnJvbSB0aGUgbWlkZGxlIG9mIHByZXZpb3VzIHRvIG1pZGRsZSBvZiB0aGlzIGNoaWxkP1xyXG4gICAgICAgICAgLy8gaGFsZiBvZiB0aGUgaGVpZ2h0IG9mIHByZXZpb3VzIHBsdXMgaGFsZiBoZWlnaHQgb2YgdGhpcy5cclxuICAgICAgICAgIC8vIGlmIHdlJ3ZlIHdyYXBwZWQgdG8gYSBuZXcgY29sdW1uIHJlY2VudGx5LCBob3cgaXMgdGhpcyBhZmZlY3RlZD9cclxuICAgICAgICAgIC8vIHNwYWNpbmcgcHJvcGVydHkgc2hvdWxkIHRoZW4gYmUgc3BhY2luZyAqd2l0aGluIGN1cnJlbnQgY29sdW1uKiwgc28gdGhlIHdheSB3ZSB0cmFjayB0b3RhbFNwYWNpbmcgc2hvdWxkIHJlZmxlY3QgdGhhdC5cclxuICAgICAgICAgIHZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICBpZiAoaW5kZXggPCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTilcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoKGluZGV4KzEpICUgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPT09IDApIHkgPSAwO1xyXG4gIFxyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTik7XHJcblxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy9uZXcgbGF5b3V0IGFsZ29yaXRobSBXSVAsIHNob3VsZCBhbGxvdyBmb3IgbmVzdGVkIGZvbGRlcnMgdG8gd3JhcCB0byB0aGUgdG9wIG9mIGEgbmV3IGNvbHVtbiwgd2l0aCBhbGwgZm9sZGVyc1xyXG4gICAgICAgICAgLy9pbiBoaWVyYXJjaHkgdXNpbmcgc2FtZSBjb2x1bW4gbGF5b3V0XHJcbiAgICAgICAgICBjb25zdCBtYXhDb2xIZWlnaHQgPSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiAqIHNwYWNpbmdQZXJDb250cm9sbGVyOyAvL01BWF9GT0xERVJfSVRFTVMgaXMgc2xpZ2h0IG1pc25vbWVyXHJcbiAgICAgICAgICBjb25zdCBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIGNvbnN0IGNoaWxkRGlkV3JhcCA9IGNoaWxkLmlzRm9sZGVyICYmIGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vbW92ZSB0byBhIG5ldyBjb2x1bW4/XHJcbiAgICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID4gbWF4Q29sSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIC8vVE9ETzogbWF5YmUgYWRkIGFuIGV4dHJhIGhlYWRlciB0aGluZyB0byBhbGxvdyBmb2xkaW5nIG5lc3RlZCBmb2xkZXI/XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4Kys7IFxyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBoO1xyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgPSAwOyAvL2ggd2lsbCBiZSBhZGRlZCBsYXRlclxyXG4gICAgICAgICAgICBsYXN0SGVpZ2h0ID0gMDsgLy8/Pz8/IHdoYXQgc2hvdWxkIHRoaXMgYmU/ICBPcmlnaW5hbCBhbGdvcml0aG0gaXQncyAnZW1wdHlGb2xkZXJTcGFjZSdcclxuICAgICAgICAgICAgLy9jaGVjayBsb2dpYyBvZiB0aGlzIFdSVCBkZWVwZXIgbmVzdGluZyAoc2hvdWxkIGJlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRvcEZvbGRlciByYXRoZXIgdGhhbiBpbW1lZGlhdGUgcGFyZW50KVxyXG4gICAgICAgICAgICAvL3doYXQgSSBzaG91bGQgZG8gaXMgdXNlIGFjY3VtbXVsYXRpb24gb2YgYWxsIGZvbGRlciBsZXZlbHMgKyBvbmUgcGFyZW50IGFib3ZlLlxyXG4gICAgICAgICAgICAvL3kgPSAtZ3JvdXAucG9zaXRpb24ueTtcclxuICAgICAgICAgICAgeSA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmY7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgKz0gaDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvL3ZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICAgICAgICAgIGxldCBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuXHJcblxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLi4uLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICAvL1hYWDogdGhpcyBsb2dpYyBkb2Vzbid0IHdvcmsgZm9yIGNvbHVtbiB3cmFwcGluZywgKGJlY2F1c2Ugb2YgaG93IHNwYWNpbmcgaXMgY29tcHV0ZWQgYWJvdmU/KVxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcblxyXG4gICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vbmIgZm9yIG5lc3RlZCwgY29uc2lkZXIgZGlmZmVyZW5jZSBiZXR3ZWVuIGdyb3VwICYgcGFyZW50XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvL2lmIChjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4KSBsYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjaGlsZC51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSB0b3RhbFNwYWNpbmc7XHJcbiAgICBcclxuICAgIC8vIGlmIHdlJ3JlIGEgc3ViZm9sZGVyLCB1c2UgYSBzbWFsbGVyIHBhbmVsXHJcbiAgICBsZXQgcGFuZWxXaWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCkge1xyXG4gICAgICBwYW5lbFdpZHRoID0gTGF5b3V0LlNVQkZPTERFUl9XSURUSDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgTGF5b3V0LnJlc2l6ZVBhbmVsKHBhbmVsLCBwYW5lbFdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgpO1xyXG5cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1IZWFkZXJMYXlvdXQoKSB7XHJcbiAgICBsZXQgZHggPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgIGxldCB4ID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGhlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgaWYgKCFjLnZpc2libGUpIHJldHVybjtcclxuICAgICAgeCAtPSBkeCAqIDAuODtcclxuICAgICAgYy5wb3NpdGlvbi54ID0geDtcclxuICAgICAgeCAtPSBkeCAqIDAuMzsgLy9UT0RPOiBkZWhhY2tpZnlcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBncmFiSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE86IG1vcmUgY29uc2lzdGVudCBob3ZlciBzdHlsaW5nXHJcbiAgICBpZiAoIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHg4ODg4ODggKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIGdyb3VwLm9wZW4oKTtcclxuICAgIGVsc2UgZ3JvdXAuY2xvc2UoKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuXHJcbiAgZ3JvdXAub3BlbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKCFzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwICYmIGdyb3VwLmZvbGRlci5hY2NvcmRpb24pIHtcclxuICAgICAgZ3JvdXAuZm9sZGVyLmd1aUNoaWxkcmVuLmZpbHRlcihjPT5jLmlzRm9sZGVyICYmIGMgIT09IGdyb3VwKS5mb3JFYWNoKGM9PmMuY2xvc2UoKSk7XHJcbiAgICB9XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSBmYWxzZTtcclxuICAgIGFkZEltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuY2xvc2UgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IHRydWU7XHJcbiAgICByZW1vdmVJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWw6IGdyYWJiZXIgfSApO1xyXG4gIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIC8vbmI6IGlmIHRoZSBjb250cm9sIGlzIG5vdCB2aXNpYmxlIC8gYWN0aXZlLCB0aGVuIGl0IHdvbid0IGludGVyZmVyZS4uLiAgICBcclxuICAgIC8vYnV0IFwiaWYgKCFpc0RldGFjaGFibGUpXCIgaGVyZSBjYXVzZXMgcHJvYmxlbXMuXHJcbiAgICBcclxuICAgIC8vaGVhZGVySXRlbXMgc2hvdWxkIG5vdyBoYXZlIHRoZWlyIG93biB1cGRhdGVDb250cm9sIGFuZCBiZSBpbiBnbG9iYWxDb250cm9sbGVycyBsaXN0XHJcbiAgICAvL2hlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2gobyA9PiBvLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpKTtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICAvLydncmFiUmVsZWFzZWQnIGlzIGVtaXR0ZWQgb24gaW5wdXQuZXZlbnRzLi4uIHVzZWQgZm9yIG9ydGhvIG1vdXNlIGZpeEZvbGRlclBvc2l0aW9uXHJcbiAgXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IF9iZWluZ01vdmVkID0gZmFsc2U7XHJcbiAgLy9ncm91cC5oaXRzY2FuID0gWyBwYW5lbCwgZ3JhYmJlciwgZGV0YWNoQnV0dG9uIF07XHJcbiAgXHJcbiAgLy8vLy9FWFBFUklNRU5UQUwgRkVBVFVSRSwgQ1VSUkVOVExZIEhBUkRDT0RFRCBOT1QgVE8gSEFQUEVOXHJcbiAgLy9zdWItZm9sZGVycyB0aGF0IGFyZSBkZXRhY2hlZCB3aGlsZSBtb3ZpbmcgcmVtYWluIGF0dGFjaGVkIHRvIHBhcmVudCBvYmplY3QgKHRoZSBjb250cm9sbGVyIHRoYXQncyBtb3ZpbmcgdGhlbSlcclxuICAvLyYga2VwdCBpbiBzZW1pRGV0YWNoZWQgdW50aWwgYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIGF0IHdoaWNoIHBvaW50IHRoZXkgc2hpZnQgYXR0YWNobWVudCB0byBvbGRQYXJlbnRcclxuICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZ3JvdXAsIHtcclxuICAgIGhpdHNjYW46IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgLy9kb24ndCBuZWVkIHRvIGZpbHRlciB2aXNpYmxlIGhlcmUsIHRoaXMnbGwgYmUgZG9uZSBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKVxyXG4gICAgICAgIC8vKGltcGxlbWVudGF0aW9uIG5vdGUgMzEvNy8xOTsgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gaGVyZSBiZWluZyByZW1vdmVkIGFzIGVhY2ggaGVhZGVySXRlbVxyXG4gICAgICAgIC8vc2hvdWxkIG5vdyBiZSBjbG9zZXIgdG8gJ2Z1bGx5IGZsZWRnZWQnIGNvbnRyb2xsZXIpXHJcbiAgICAgICAgbGV0IGhpdHMgPSBbIHBhbmVsLCBncmFiYmVyIF07XHJcbiAgICAgICAgaWYgKGdyb3VwLm1vZGFsRWRpdG9yKSBoaXRzID0gaGl0cy5jb25jYXQoLi4uZ3JvdXAubW9kYWxFZGl0b3IuaGl0c2Nhbik7XHJcbiAgICAgICAgcmV0dXJuIGhpdHM7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBiZWluZ01vdmVkOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBfYmVpbmdNb3ZlZDtcclxuICAgICAgfSxcclxuICAgICAgc2V0OiAodmFsdWUpID0+IHtcclxuICAgICAgICBfYmVpbmdNb3ZlZCA9IHZhbHVlO1xyXG4gICAgICAgIGlmICghX2JlaW5nTW92ZWQpIHtcclxuICAgICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IGdyb3VwLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IGdyb3VwLnVzZXJEYXRhLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgLy9hc3NlcnRpb24uLi4gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIChhbmQgZG9lc24ndCBBRkFJQ1QpLlxyXG4gICAgICAgICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJIb3VzZWtlZXBpbmcgcHJvYmxlbSBpbiBkYXQuR1VJVlIuLi5cIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgLy9hcyB3ZWxsIGFzIHRoaXMgY3VycmVudGx5IGVuZGluZyB1cCB3aXRoIHdyb25nIHRyYW5zZm9ybSwgSSBhbHNvIGhhdmUgd3JvbmcgdHJhbnNmb3JtIGlmIEkgZHJhZyBmb2xkZXIgd2hpbGUgc2VtaURlYXRjaGVkLi4uXHJcbiAgICAgICAgICAgIC8vKiphbHRob3VnaCBpbiB0aGF0IGNhc2UsIGl0IHNoaWZ0cyBiYWNrIHRvIHdoZXJlIGl0IHNob3VsZCBiZSB3aGVuIGJ1dHRvbiBpcyByZWxlYXNlZCoqXHJcbiAgICAgICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBmb3IgKGxldCBrIGluIGFkZENvbnRyb2xsZXJGdW5jcykge1xyXG4gICAgZ3JvdXBba10gPSAoLi4uYXJncykgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sbGVyID0gYWRkQ29udHJvbGxlckZ1bmNzW2tdKC4uLmFyZ3MpO1xyXG4gICAgICBpZiAoIGNvbnRyb2xsZXIgKXtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sbGVyKCBjb250cm9sbGVyICk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXI7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbWFnZSgpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBZ0FBQUFFQUNBTUFBQUR5VGo1VkFBQUFqVkJNVkVWSGNFei8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyt1bUFjN0FBQUFMM1JTVGxNQVduSmZibnFEV0dSNGEyWmNZbkJSYWxSTGdINkVUblI4VUdoMlJvWkRYbGFIU1lvOFFIVTJMeVljRkF3Rm1tVVIxT0lBQUpGaFNVUkJWSGhldEwySldtdTdqalVLSVFra1FMcVp2Z01DWk8yelQvMzMvUi92U2tORGtqMlRyT2FyVmQ1VjZ4RFAzcEpsV2RLUTdxYVBiNit2cnc4dmorUFovdnZyeHovLy9QajYzcy9HNy9jUDJuMC9YWjZPcDZYOGZKSGZhRy8zajlxNVgvTEt0L3Qzdi9RZnVmUWsvWG91Ym9sei9EcTVMSDd5MW5MVmw5eGVINGIyOGppZG5jWnkvWk0wUCtXZmYvN3puLy84Kys5Ly9zRzVVenRhdjNIMWluSklYa2xlOFF2bjMrT1JPUDJvajVPUG16N2V2K201UERERnlYYW4vVXdld0JkODEyNFpEbjJvM2VUQkJtQ0tBelpRZmpZNzVXWC8vWSsvS2o2TG43Ny8vdUYzcjI0dkh5ZlA1YWU5Y1JSc2FINUkvNDh2ZVFxUDVLaDlYOXo4Nnd2bit3amhaZm1ZalR6bXlCZmxTT0J6NVYxbFhPOGVINTRtdzhueks4ZFRIc25QZXBidXB3ZnQxVnUrUHNsdmFaUHRzNzNGYVd4WGJwL2lVangvSTlTVWMzSExxWjJEaG50VlAwRVJmTjc5cTkxOCsvVDJ1RmxPOGV3OEJXK3F3NFJ6NVJaYk9UcDVmc0pqK2RUcUZaL2xsVEFxdUxjK0VtOGpBLzRkQS9TODljOTVraEVoOFpUWW04ZTNwKzBRVjl4UDVmNWZRalU4Vkx1ZUozaXRlOUNUOUxlem41SUQrS3A4dEIzRW1PZmRlZnNsNTgwUFkxV01Ea2FCTkZYcUg1VmplU1NHNUhqUmRUenErZUFNalArRUw4dkh5Q1N6RnpXNkxFOTZQcmp2N3VWcE11cDB1bHVNcDdJcHVXWGI3WFE2d3ljWnR0a1ViOTN0b0kyNjlySExLYThjYnAwVW5NMnZUeE05dC92ODhJaHplTjNrNlNWLzR0Ynlac2U5ZmQ0UWZkMkp2TzdtOGVHNVc1N3lEUmJBck1LNXVEdmVHQ1Q5UWI3SVYremFHTTcyeHhQdVBjTHBTczhqNTluenBCdWZNM3gyNG5IYXZ0b0RobklQNlNYVjhONjRhRFFrUFRsUnRuYjJzOTlFMzlSZmRSaWZycndrbmJ3N2JvL0poWGxMd2VsUG1jaVR4N1BUL2x2N1Q3UFo1aEhqbGtQeXRaZlJqNXVEUnJPVG5BOW12WDk0eGtCMGgzeXZ4ODFKQndJdnF2MTRVem4vK0swdmV5ZWpmZTROVnVDQURjWG1PejVyMTl0MTlmS3h2cG44SFBTMDdWWWorOWpITjdsU2ZuZmkwaCtjemNQT2VkQWJkSVNhNzI5UGNnN2F1ZnYwbGovdDFzdjlhYlpVM3B6SXc2U3Q5UHZHTWthZFFad2lBM0hrUFBuZTQ5eVJuanRZa2FSQ052QlF2dUpneHpFOFljQng3NEVOSGNZWnA2NzRPWU56aHh3ZDR1RnB1TktuajdZUGtBekhrNzRSSHJyUzk5cDFKdlpnT1FENnI3UVRCTVc4eFNKNlBQRlY0OU9YeGdDOHUxeWdoSk5SczFWd3RqSDY3M0Q2UktmVWNyYlgvdkYwS2greDdlNktVWk83Nnl5eG0yTWNwbE9jYjh3NnhFQ2NPenQ3V1E2RWRPc25EOERaT0IveTUwNUh1NWx6UEYxc3Zzb2NITXo3SU9JWVhIc2V6SnYrWXRIdk43MGRiaUVUZFR2YU5mMjhWSG5IMkg3WGEvcWc1cnN3eVc2K2tEYVhkMy9MbjQxOXluSThmWC9Yenp2MytvdW1ZQUQ1aVZQd3BpZVRsRElYeC9odU9kaHZRRkliMXBOTmtYTnYzdGRYbEsrUk1RUzlPZUQ5eFp4RFIvb0x6WnErZmM1NmNGYU9CdkgySmg2R3EvV2lQeGh0alM5T1N3d2VicktUSjloYnpuQTJKc3FnV2ZUWHUxR3NXSmpRR0VSOFZ2K1NBZVFDRWc3ZkJyNjdGL3B6R0RBYjc0VUYwQzlOUG5xbGQxcmpLOUNQZ1ZqM0Z4aUhCejFKK3ZmSG1USHJXaitzMTVPWEJRVlBlekpBbzRSUW1mSHk4bWlhR3hpZzF4emtQcmozN09oRUhNemxMZVhtOTNpV3Z2U0hqTmZpOElHUGxYZFhCdEE3TnNJQnloQ25ieFZBZVA2OGYraXZrd0hrc28rQ0FUNE8vYjVSVitmYjJ4dWUxbnpvbU9oOXlRQWZPT1ZOVlU1NVV4V3R5bCtRRHNLRTh5RHB0OHBEOEpDLzRvZU9JYjdtdE1TQXJ3OGZmTjVzekhuV2dQaU44clJ6TkliSmhKMWNJY3pmblVEU2dXZUVBUmFmL1lHODVnRWZSckg2Z0lteWFHU2tNYTd2MUEwd29mMnpkdlVTQURKL2NNQ25tNW56SFE0MGkvbEJCeFNhVlNqTklJY01xYnhvOUd1blRxYTV5aEpwVUtDVjQ4R3NCM0MzUEdVRUNlQ3lxaWZ2bzJPRDg0MWQ3eDR3L1E1enpxZ1RscGVKM3J0djBzNEd2VGtjbEtkazVIRUwrU0x3eFdDOU9BaFBnYzJPOGlVcTVGZjZmWHF0TU0rTC9oUldyQmhnQWNrbG42OUQrL1Q4aktmWlFJbE9XektBTktqcHk3MUpTaDZiNzRRSm5BRk03T0hqRm8zY2VkMHNEZzFGUHNlajZhL3hQQ291T3gyZ2VXOGdUYzkyamw3aVJoQVB3Z0R5aXJaT1kzbFJXc3Bqeit1K3lpblRySEJ6MEwrSDE1Y25ZQnBBTnhCTlRHZEN5Z2Fzcm5nQ1hzQUk5M0N2ZWdEMWFmMEVvVU1ERG9BYUU1cWVUSGFRZWppcyttM2N6dDFRb0lQakcva3c1ZTJ6dlJRVmEyYzlQWjhxMUE5VkFuSDdOV1RTZUFhK2hpeGE3NkR2UUhqZ3dsVkhsczY1VXB3SzNyWnJQSTdSbm1FRmVsQVNINVJIVks1UzU3bGdBQ3BHR0c5cGNvSU9sUHlsc3lnWlFKcnE5RkRvdnIrU0FZVE8vWkFBTHZibWg4TWNyeWl2dEZDQ3YrbU1oMndZREhiR0VQNXRNa0E3MWVsR25iTktPZ29NbjUrTlNKSERvbGxqblo1Q3FLMVdLMkdYaml5dWcvT3FneWY3WURjeXpMdDVJNU50YTJxZGI2TDRXUjBaYTJnVHdxcFVWanNxbzllckxqZGZNeXJIdTBidUlselF6SGRVaUYzNTB6dHBaNmZWcit1MFBEajZaL1pPdmZYNkRCM25QREpOSXhUclhkeElxQTJ1dkZNaUtCa2JJeU1tQ1RxNHVreU5BU0RFaDVNdVNBTUZDVi9aUGE4UEN3aEZiRGJHV0JmNklpekIzbE9WdU52SkpRUFlvSUJ3NTkxdXArTzZXOGtmcTY3Y09CZ0FQYTRVcTQ0SlhWWlhtTDVPUkZ0WnY2a1JVNnhpSWkzOEZYWHBnMFpwUXN2TzVCd2JkWVNxbmE3T0lya1FJdUNka3VUUTE1V2tUekhGSVJXZUdzckY4Z2RJdmVIU3NLUG1PZEFKQkxYdXRERWwra3l0V2I4QU9nWTFrRkJXengyN1pCbktzWTdBZVJjS2NmVHJBQTA2cTh0K1pjdGQ5RSs1eEsxMnZmVjhQb2NRZzdTaVlyM3VzYTE3U20yb3NuY1E1YWtuYmNBc1p4TUpXQU9UQVdUS1RHVFpkMllmbThLOE9EZ0R4QXpsa2p0ZFludCtsUUdFcUdRdGVkUGRTTnBBL29ETzR2Y1k2Q0ZSOTZuUXdmeGhPcTZRZ3dvRFZsQzc3ZUdnUXV4SkNkNC9VSCtkVVh6MTdmR21RNjR4NVhHWHRaQkhENE0vOVBBV041S242bHBuZkVFOThxQy9aS0FnQUpVQnFFNjQ1cmtlZEV5dG8wb2lyR0phODF6WE51Z1lwMXVYdUhMYzB4SHVka1VIdFVsVjlNc0FEVy8wajloUERsY1pOaGYrcFJCVFFUeDJ4VHBiTW9DK3JzOTQxOEZHL0duTHFGMzgyVjhQZEQ3cWpMV1ZoYU9iRExCdk1ZQnEwT3k1WkFCakxUMkdOVVRKUkozRjc5SDBEL29STHArUHRzdWxDSkJlREdxc083NFU2ZDVFS0ZzeGdPdWdKZzhhV2R5NktvVVhoNFZzWWtRRWNGSER1NXI4R2hWcm0vYnlsN0xIWW0yeVIvdWhUaHhNODV4VGp3N2RrRnJ6d2RYQTVjMUxpbkY1ZnRKTnlNSEd0SlNZMisydis2ZGM0aHA1YU5QZ0NUdW9kbU9uWWJSa2dOTTQxbTNjZy9MVXgrUjBzbm1CenhHaG9qelF0VGxaTVFDc2FadHB4UUNRQ2JjWllPWXpUb1VOcDdCZTVpKzcwSS80Q0lWdS81WFMvaFBUOERVWVlLc3NhM3NlRlJFcmFYcW5OZ05BeEtzQTZJeDBBalh6UnYrVysxRmJ6cmVYYVJTanl2SFJSeG9qUUwwZFUzTEtJRVB6MU9NMlpUQUlPbUNoTlpPSGIxNVNqc3ZMMDFWQ1B6Mzh1cC9FVXgwSUt1NWFuclNHdUlvdjYzbVRDVUlHMkZOdmNOMU9CZ2tyUUkvVGVrYTJiVDVVcUtqeWZPYVd0MkNBTHRUM3BWcUIvNEFCc1BaeHhSN2xqQ01EeUVmSVdnbUZqdm8xYUkzMTZlT1Q1OWFLaHkwZ3owTnF1Y21qZkx5UlVuOWd6UnZzZW1RQTQ1MWtnQkVrVXAram1pcUdYTVlWQU5ZUkcydVpFNTJ6YnJENG9rNW1VUTZoTmNkYWN2T1NXd3p3cC8xVERvL3U2VVlqbFRVNXB2eXlEaHVsbFREQWNSWkg4V1VjSkpjUk1MN2hlL3FReWJyVjRxNHBHQURxb2NvQUhmenU3elBBckpDdUhQaVNEUG9SNTE1dVpvL0h1S0JaSkZza0EwQTFVU2JVUnYyNlpnQ3NiaUxEUlFDb1pJSEJweVBYdXNXRHI2T0ttK2xkYnBraWY2cTRvdmFKWVVuTk0xNzBQazgvUTJ2R245QXhibDd5dHhnZ3gxTzA2UzEyUnJZZmVpOWtHeHRjQW52WkJuSUE1VExNb01mOGdWRzNTWWM3eVh3VW1mbUIyN3NPUUZLZFlRMTgxNm15MnExcDkvc2xBOFRxSXlSeHRiT3lBMno1T1RTK2dobUhtSVVZT3V1dEpjQWpuRVg0d1BzTENVQlZDT3ltVDRQQlIyWkt3emZDNjZqTVhnOEdLNTFEWGJuTHVGQ0xPVEQwV1BEVjVTU29GcHcwMUR0TmlYcDlsb2U0Y0wxMXlkOWpBUG5oMjdSWFhSdGlMdWFZSnYwaEFJUUJVb21pRGk2amlmSGQ2Z1FyMlVNTjZMSnkrWlFNN1VCTVJQZ08wN0dWT0pUUHYyQUFyajQ0R2twY1pRbk0wNFBVcHE3by8vTVp5UUI0ZjJ5UjNRdlNZZ0Q5QVhsdmlvRGVTcTBOemdCY1FxbnVETVRwQVI5aXNjMU0zUWdQZFkzZ2haUU5LZ1RSTVVWOE5HOWU4dGNZZ0kvR1RIS05Gbyt1bG9CMEVxa3BXRFFyNDB3eVFLM0dWUXdnRmltc1hHNWhsalVjQXlhNlJqS0FNa2lQUnFYanp4bmdXS3dCenJlUDQ1c01RQnRsaXhLbjFpNEFhckI3UWE0eHdNSkVlWCtnREtCUEdRMkNBZWdFVVVOUU9EMldabjNBQUswWGxPYkwzREhvU3pzVnpPUDFuQnFrWEpucXljMUwvaElEc0o5Y1Zhbkd0UktZVGlKaGdDL3NvMjh4d0I3RGk2ZXRkUU13ekJQSFZNblVydG9rQStqbWQwNGQ4MWNNY0VycEdpdkE4aVlEcUIwMVpERzNyZUNMVXJRK2dLTmNxN3ZOQUI4bSsvV0FFSVdhdld6VG4rRUdsUzI4T1QzQXgycDlzTTE1UG5WY0tVNHYrWlNhbWhCWlRvVmJsL3hsQm1CL0xkZnJiYUJUOFBoTENiQlA4NzVLeGQwcUYrVXhCZ0cvMVFOTFhVWldDU01GUENPL1lJQTA0czNubEl6VE5nT2tQa3FUYjYyTm1VbVdtNG1CU0xhdFd4UitMZ0gwREprZ0trZmtmSkFWMFF1d3JIVE9NQVQ1S3BQS1RzcWQydUxCcDF4K1pFMkYrcEsvendDL2V2VG5ncTNOQU8xVEIyN3UzY0NSaUcxdFg2V2k4TUM2SGwwajdnaGVBMWpBdXVqNXJWMkFxUFdoTXVPTWJXdG9KOE9TMzVhRmpvTmJjb0xHUXFLR2Q3SHdjczkrVFFjQUhXTUpPR01oR1lVaENBSkdiYXZpSkZnTmFKY1FoVDkxandXTkpjdWFBVzVQNTVzTThIOHZBZUN1djdVRURBb0dPRzM4VlBUR2tvOEYrVlM0K0xFeXduKzZxa1lYNHdUTFAzd2d2NzhOUE9iR1hob05iTHlDenFmZFdpYzJYcVhjTTNUSUdDU0czYVFQN1YzbWJqOE90UmtBekMzWHF6eWZpNUVCNmlkWVFvZnYzWll3SFlkSk4xOTZHVnZoejFnQjhKYXAzaFY2MzF0N0lVNzk5Tm9sZjVzQmJxc2ZWQUpYK0svVERTV1FOQXJGditKWmVKZ1JzUWNIUTlPSENXWUhNL3lsSlZDOW9LOS94QUJwMmpQL1VURzBuK0t4TTJNV1hibUZ4cWh0bmFhQWNHQi9MTXdDcXE5STRWQXhBRmZrK1E3bUdGa0t4Unc4bi9lNTJFOExaWEl5TEJqZ0ZPWnkwSXVibzNKOE9mQzNWWEh3OE0xTC9oWUQzTjZBSkYyR2FHNEdrRzBnM2RvaHQ1MkJmWmRsL2hlMHMvSkFMSTJ6dGk5QWxvdHhXNFA0K1RZUUVWcXZXKzFMcFQ3czFvYytEZWFtRzFBWkNVM21FTk54cGlKQWhKUkdBbnhBZjJkMHhtbFRNd0JtQ0hhQTZ2UFY4K0JZWEZQZFQ1dXZPazduUGoyWGNoZnUybkx2bVZzUCtmaUhWNWUyUDkyTTM3Z2tDYW9IWHArNkpPaWY5OTgyUVJSMGVVSmpBSWt3d01sMVhHcHVibXZoOU9JQ2dTQTVjNS83MW1XNXNVKzk3UTBjejRRQ054bmdYUTlyTExjOW5kdXJ3cUUwZDI4TjdvVTVCL29zMkRDU3VDWWlFZGV5bksvWFlheUdiYnBnZ1BSemlCOFYvdGdkL29jaG5VNDY5WG5JUWhMbVpzVFpob2NNKzF2Yk9wMFpEdk84eFlyQm96Zk5jVGN2TWZNN05KY0pydml3QmVSUCs2ZVhSa2lPYXlFQjJMYU00cnBEek1Rb2xlMTBEcHJCbDJhV2hRcXVMWnp0SEUwaEhtaFhNY0JqcmlacWFzTFlYV2NBT01MbFlVL1BwbDl4TmhkTVJIOHRYYVlrVHlveThtRFhHOFVpWVZib0hjSmczQUhQMVNzWWdQNWU1ZlZkSjZKOE95UEdmdEhySWF2T0FRS216MUNuTWVKc2xWNng2TVRhUmJ1eE9BOVQ4elJCNGdiNWN4cmtiMTZTbjNhVzk1SXJQa21NUCsySE1wUnVpTFc3SWE3NUFoamFlamQrdEx1NWY4M2Yzd1FWZm0vSlZTUFJqcytodUdCMHNWb3dHS0YyekNIbXlNYnVDZ04waDBwVklRaUhObGFBa2dIZzFSdHAwSVJKSXM0ZmZnUjFLN0FlMFFoZDRSbmVTcDJUWEwzYzBhVUdmSnI2MUVtdk45OE5OSzZBY2VFZVVhdXF6dWNpVmdZVmRJajdLRmFBTDFvbDVYMWM4OFJZNDJqTEphZnVMQnZhbTVkRVNKTXd0NFJ0NktVd2l2MXh2enk2ZEVUMlBhZ2x2WUZyL2dlYWdRRTBXcEFFaDJCZnBwd2NJVHlaQXk4WER5UVVBTzQ1eGdTcTFBMHhCZ1pZdWxJL3Q0bkxzYnRnQUFrQzBvZjUwSkxkYURtb3hkVWszRHJwbHRmV0RkRXEzQ0VjQU80WGlqWk83Rk9zWG02WW1DN0RWUzhzc0pZMmIvRHloZ3hoVEQyTUFCL3pYQm5zcmVjaVhIempxWmdBTUZOcW5vZEQyRC9IOTllZDhzdWJsMWhRNHdCQnJkUjd3SHQvMnIrOEZZcmdldFVpbWt2dHJ6dWhQd09DUnRTbzdza1IrblpRQ3NEUUloS2IrWndPK2dsZFo3dDBhWTVQaU0vbHlYMExNdVhZelZzTUlEMGgrbFk2NFlSb1pLS0tBUkM5Q3VoWkZmZUZLRmdxVjR4SDNWUDR6QnR3Y3VVa1dCem9uRURJSElOMUZ0QWxZTVBVT3dqOWlhb1JxU1kwUXZ5VE9aVElBT29INVRDZk5ENnhyWG5PWmJoTTgyeUY1ZlE5TEdkMjh4S0xJUkxUZ3hMdFlLRkNlUFlmOXMrdUJpTmxSRkRSa2dHTVpRNE5lVXZYMHd5Y2crU3k4Tis1K29MeDJ0Sk5xY0tRZU1yaGI0NEtlTFB5Y2tnckdVQmFVekRBQVVQTHhiV2xTTDY4M0NOMDJzMlZIcW5tRDI5WkZIWU5KSGZ0SnV6M2JhWmxlRFFtdWN4K2pUaVRJNHpaSlp6dlNaL1R6Slg5QUt3akF6VE4yaEFRMEowckRJenc4MW9QTW5oeFprZ2FCdVpKSEJVRDgwNDNMd0d3QVRibzNscWFCd3N1LzdpL0hZNjRBdjFWOG1HMmxxM2pTNENPNUR5QkNzQVdLQkVCRmpDMWtBOVRnZG5NaVNLYTBpd3o3NUcvaWZQRHlTdFJ4NHY5VFNNTkRKQS9Dd2FRd1ZnbnVNUVpJSVRFZUtQZ0NUS0F2em0xSFdscFVXQ1hqQWF4VytRSjZQbmNGakpnZDZqSUlEUnhiM2c0dndNMGJWbUMxSDQwcXJIbkRBeVVRVHFKZ294YmlUSUdZZ2E4UkVaaDFHRlVxOUFmRU0yYmx4QmpLQWRVN2NFVldQZit0UDhZQWNralUvUzZERWplUVBSVURXdVBNMERpR2lURUtrUll3L21GaCtrVzBJYU1PRUlmbDA0WEt5VWo5KzNOOUF2UHFwWDQySEZBaTU4cjVRZUx1UFo3QXNacTRRa3lmYWdtQ0ZjTEtvU0xTNzQ1QTZNanVoa25vTXQxK2oyQlpGM2lHY0dqSHJLdk1mTGRpRG9IOTBxVE5leGtRbFFhZ1R0SG14QjZ1cUlJRFUyQnRnOGNMRzhFbks0TW9FTlYvUUFsaVNBWWJsNWloSHN5d0NxdUFKMy91RCsvVDQ0QXVJc0hFSDlidFdkQ0srOHdqM3VKYklLQ2F6QWxxcGIyc0dMSVFpdmI2bThpcUk0VnNMamJCWGZqbkJIK3c0QzJmaHFrVDFwZ2ZhbGRvUk1iQlFBQ0FoWWFpSWI2MTRtcmo0d0k0TDVHT2V2Q2R6OWJYTGIwQ1dnSDZPQ25aN1FuNGs3MmNteXZEY0JJSElSTVJRL1dCV21CZy83bXVid1Zid1RZUEc4aVpCRHNqaDNSSndqOXIxOEMraE9RcndlMDRaMFVNQ0x0V3YvUHp2ZnZRM3NBbEoraUIzM1pIb2pvdmNPa1hISG5yS1A5SFFncHpNSEhKVjdpTFljTWNCYU9sUDQyU1VsNE1qZ0FlQi9ja0tQSkFhMS9JbjBBQm9NY3JHVDR4aElhSk1EQUhiOUtRRHlvb0ZJMmYrblQ5K3d5aXM0QWx5VlVubjBuYTdPbDVnZDRlWHVRWnNpenBmUXRaL0tQdEJrK1ZnNUI5MFFITElIYTgyS1pFTDZQZnVxU3Q1Sm11Z3I2bC9ydlJnL2d5TDFjaGU2TlB1VFV1bVFEOUt0TzNlWDBYUTVvd3p2Sm1adk5XSTdYL1dPOTRNcjVlRTg1dXBuaENYTGtYdHI3Vkg3TFVBamphVi9aeUVvLzdyQW9rZjZuSTRqSVJXem9jeEJjbFVObWdMWWpSd29vUm1uNldyaVkrUmN3NWt1T3BnOW8rVk1KdCtSZzNJczBzTEVUd0xoMzZoWG9Td0RsaS93SEtoQTJpVi95MmVEeXBYMmpxZzFqZzh0cTJnanRzaEZheXBrOEpQKzhXNXR1OU1CVU85RWw1MjJtUElJZTlMTUJVWXV4eHhIOWQ4cGJRVmZCMEQveTN2NFEvZmZSbjdhY3lkVit3UHFJNnowYVoyckRBTS80WXpyV2ZtdnY2QUJhbHVmN0FYMS9IQVdqQ3l0TWRYd2UzMjBzeHRiSHdaQ1JseGJvWUN4S1hJd3dCYjhpMzBMT1Fkd3loOHlnNnh3cFBjQnZNdzdRY1NoSElLNmIrU1h4NVNjT2hwTEVQMDZlSGtQSEMzWFlnNWlRYWc2Y0xubzRndmo5NkwyZ09xWU4yQ01QWVVadWxtUVNuVWRrT3BIV004eFd1VUI3ck4rNFhESDFrTDdXcC8rcWVEZHhjRHBSVXJ6b1ZORUQyby9GUUg2aTAwUUlNUEh5VU8zQmllOGc2UkhMTjlxOXJidjRHeEp1TnJNYm9VTmYwZFloN1IrSEhIamhQSk9qdUJwTEFPY0UreWcwd1NWNzVnZllUUFU3TUNReGtabHg1WTFpY0VPNWhnYVJSVXBMSHk3bmRNWCtDQytHazBQVVBVNTVIUzdod05vemVTcjY5T05BU25iQ1VVRFJzVTl4YnJ5cXR4cEhEK0Q5dWRJOUlJbU1LZGdpODdtVVlvSElXK3l0Z2RkZjlYd3NhQS8zNWNxdlBWaU80RHF4MllHQlJCOHY0RHAxV21JdThRcHFIWEV5OUFGR1lwb21nTXRUUjdBMTlYa3JEZk5PbEduOE1DUXliNFFPWm4zNWFtc0NPUDhKcXF2Y1NwVWZoZGErTVU5TTVnalpFbEhERENFMlg2Y2J6azBpMWlubTFNVTd6UW04TnhuQmREUnlWaXBJZUduVEJFMUg0bExPb2REMUhWdHQ0T000R2xDLy9WeDBjU0hTVG15WmN0Uk9Cak9VdHJYN0FZSm5LcDdDRUtXSHVxNm5jdGxTOFQ5S3cvNGZsejhqb1FzUGZadSt3M0daUU5FM215YXNncWJMNmdxSlFjT29NOWtLK3Z3QzZFN21OeDlxRjNZUmVBWk90cDhUVTJ2VGNMMTFyZHBJQ2pmb2MzZUVXR1RxeS9yMzFtMGF1SkgweEJPL25iMjRGNWpZVVhtc0dmTjBHNGloTUlOVzVBZ2hwdTZMT1lKTW81bHh1cjNvcStEbTFqMXp3Zk5HQlVpb3o0d3RwaXpFRm9rbUV1a0ZUUzFwQTc1d1FyOFRHR01XbXI5dndPMDcwSmVxaU00bmpxY0JLRE81Q29GMkRzR3pwQzF2OENQNmJuZllqZHdwK2x5bWNyQlVNVHhFcUJFUjRicWRIaWxPdFVPRE5QMElaOTM4WTY5TElLTFpLYmJXSnp2WXM0ZlhCbTVSRHVnbTltelB3TW40aWJ2RGd1YWZadnZxYzRkTVJMUTUwUWdJYzVPL2FkV2tmVVd3Q21GMjRiZzloelZnSkVlSmN2VmJxWWxnMUxFcklrZklxa3R6cHRMLzN6dVFwWmh1NUFDYnhwZzV6NjBaL285eURsUDI4S045MDU2c1krU0J3Y09zdFhzdURjaWNjaVlTR0FLUnRvTXpUaVVIV0lZTmppZGV5bE1OQUphaXdUNjBlMnVQM29uWWVNdUxzaHFnOTlWaCtYYnVEbVlpT1dRUkp0aE9FeEd1YmtjMVNUR1NESEVLQ2pLY2kxMVJVS3NZTk13QUdpU2tiN0E2OStRdy9jTkhqeDF1NW5wRjA0T1hBaWZiei9PNllheXNmUm90YTNONWNPR05YcTM3VldvTjkydHMzQnlydHcvZksrMkJBN2hOQnl1R05nVm9BYkh0OGh5N2dzRUM3dEN3ZEViLy92ZE9SVGt0VkpSb1JtallPdElzNGhsa3NHNlEvcDRIWnk3TjBmcWh3aGxBU283d25XWlVEcEU1eGZyQkdMcG5OdXRoWTRFY1dPSk50SFIwUEFkbVNUVm5lcjlQV01wVUZ3REVLdmJuaERBcy9aVDF1YlFTNjJlUURtb1VIcXdYSHE3Q0xTdlNuNmlEc0dFb2pibXhYd2xjWlZRRlZxSTZFQ0N4SURPVFdIa0ZETmxDMWN4UUF0KzhJempoZEJSWGdUVFkwbUc3bkY0SituRUdvT0c5UDI4OFFHcXZYNVVlQVhFdnlWZlFnYzJ6RVJzamgrMEtEMjVQbCtZUExBRkdTSjl1R093dzYrQnJNWTBwdldRSzRDb2s3UU43QkF6T29FRGZ1WW16dkNZTHVIbGVkUERLaERCTU5PTUljdEQvc0VDMDJaTXVRNURtU0lBQlh4ck14alpxN3JXd3RERDR6WVFONGJYUkJDS2ZDWUNXZC9KNDhqNjhaK1JXTEZNZWppRE91UVh5V2tBRk16dFR4UUEwT1hrUWZac0JvQUhBaFlJcjlCa1R2clg5eEJFTWZmaHM2VjNyMHhOMm13RVlmVmVuUmptRjMrV2piL2tNM0Z1MU1RWll5NzNsR1F2UHBXRjVWQXBRSFVUQUhSUDFjYnBSSENIYjFZOElHRzcwd01SemdURVZJak5TUlhvZmswdXArMDBpcndrVk9XcC9LaktzSDRoUzZIOWRPSi9jQTJtRHdUd2F4Z0h1ZnRaTHdUcUlva0Yyby9Bak1EeGNCTWxLQkVNNHFiL2lNeFp6OWREcEVlSmVxV25CRk40elA1S3BZTFE3RjB2QWlrYm5HMHNBdmNQU3RSYjh4RTRkUGFzMGZ1T25Ic0hKSHJXaGVQdWRSajFTcVAwT0F3eDZ3UUNleVlOUkFYTkVUOXBRNkNQZ0VXb1duekk1cWRtNFF6MUdoZ3h3UExXbUcyR2pLUUdVZWYzZWV6SUFNdllvMkRMUysyQnZrWWJjTGhHNEhWdEFpb1F3Wjh1UVF6VVE1NCtRYVFmL3dMZndHTkpjSmFVbHgvSkZnUXNkbDdtbTV4bnVUSlVjblFkc09xallIam9EYUZhSnlEQUhvcm1tQmJWQlZDaGM2OUhjT0pWS1lPRjJnb2JOdmtFb2dmNklzcDBKU0ZhK2tKL0NSQkQxVlJBNzhoU1FKRDlqQUxqemRIeWFQdkV6aVpSRytMUkd1cHVybklsaXRvamtsc0M1QlVOZVoxVWVBT2pmMkFiNkNnbEM2bURIQ21GQ25zbWxsRElVSEV6Ym1YNDc1a0Z5ckRaMVArZ0dndzUwWFhDNEo0UkIvODdWUUh3R2h0T1NyVkFUWnhLVUhZNkFBWmg0emJIdGo0a0JneCtCTzY2VnpBV045NlNYRW9HUFBqMGxHbHduYzZkYlMzTmt6Um5xSG9vcUdCa0FlZ1MyZ1NwM25BRzREUnlaeTl1M2dTNWtEdGtZaDVweFV4M0xKMG84SktnbDhqQUQzRzh6QU5Ra0tJRk5zL1lQTG1NUGtYbXNiNkU2eGkrbVVCNGFDQmdMWTFpMlVqOUFtb01CeXVuV0p4aUNpVDh4cTVoR3pPRmtzUWN3WGhaeWVwYXRZekFGQmhxcXcxa0czZFEwSm9USjFrc2NRdEh3L1hUdDZZR0JKOGprR0JQWFZQMVFEMmtFU2Vqb1U3ZXkzVHNYNktHRzRTTHl6ZlU1anZJblpIQ2sycWp4SEUrdmJUQ0xCOUY5QXBwaVNyTXpnRHpYVzBaTzVnMllZRE9pbVI0d2lSMkJjcE1CcU82ZkI1QTZaT0NNa0JrQlFMTVFyU0x3TUZpY2V6b05vSzNBcVpjb0hNWlo3NU1CY3JwbFhzc2ZxZ1JFWXIzMU9zRWsvMEFGQ0xCMjZwWGZzU3pJQkVEV0x3dU9XNWRncUdqOVpJQis5akxFRkZxWUhGQ0VDZzAzTllJcGYzQXpRWVhrY05Cb3I2WVBOWk83ZHhqcGlEL0lsMDBHc05pOFl2akxtN2ZSVEFGUU9lU0hsL0NxQVJ1MzhKdFdYaHlleUd0QlJDZmNUUVlnYjh0WHFXempFbGFBQUxBUU53RUNHSHR1MTU2MmlHNmVWZW1mekRZREJwaVYweTB6MjFvT1c0L0ZheXJWUVE0bFdQdHpFVExGRmNOZTMyYVZMMUtRNm1TQUpsb3lnSncrOTJZTW9LNjlTUHRnNmFsL3lnQWUzTHpRREhDck0zVXJHaWNzTmdTU1BKWGdnZ0Urc1gvNlBRYllaNWFLakJJK2x2aTZFWm9iOFpZdE1NU21obXdSdmZGekJnaDFmNkZyT3BYWUFvSFVoUWtnTUNkdTNKZ2pGVlZHUkpiWU9qME50S1FTK0lRRVdHQkxURGZMZTgyOFhIR0lxZ01ZSU1IYS9RVHFhaThKZ1RVREFvRERsQmdOTm9zWmlld08wVXRyU1J4ZzB0NzlUeGtnUDA3SUR0MHFvOFlyb2pIZXZWd0NGbVRYMzJJQUg1RUtLMXd4d0dUTEJ0MjB6UURqcTJpeFpJREY0cElCTWxYbjJrS0E2N3d5dWltUnpod041blk5SURTMDd3SW1NWTRwdVlRQlZKYkQ3S1Z6bWZxQkhlSTBydzhsYXlSWU95S0tUOTl1UTJWT1Vnb0FMRG5KQUJZVFFpTngwcm5MTmlRT0pBNlFpajlsQUJ5TVhIR2llWE9NUWJTQU9CL214ZGNuQXpCQSsvY1lnQ1BDTEJXRXM1UXZsOGdMTlp6OElRUDBwRjB5QUhoYmQ3eXJjd2o2dksrT3NvalRCUFFGd3lBWGxVZGd3aC9FWVVoYTNtRXVPeVRHOUFOM0ZkdzhCQlV3d2RyOXpObkZURzVPZUdxcGVGcUowbUlUV1ZOT2RPK0Z3Rzh6d1BmUEdTQWtLOGhMdlF0RFdhY1dLYjYrb0EzMGxOSHZNTUMra0tPWk1hb1NUMngwSDF4ZEFnWTNBTU0wcTE5bEFOMVlkbXhFV3d6UTZjRSttQXdBVGlLOE5qbEcxc25hRkdEUXNLOENvcXYvbDY2Q0g3Y1BRV3pFcHFKSmJZamVzaUVwYjRLWURvcGtnQ0VhZGxEalNnS2s3K2hQR1lDWUpLNkNMd1RNdVNzbE5XWitmWXMyUGRNWWZvTUJUblhHb0lDbTVNdlZ5SXRMQnZBVDhkdmZLNWVBcHJsY0FxQURybGFtMU5VTW9DKzhtNnU5SmNWS3NjK1lETXN4akpkUGtmMGxPa0JpTGhKMGo3VG5OdzlSQlNTSzlKeEFYUWJuaFlXQ0EvdFVwK3hiV1RQcmNxVURoTy9vanhuZ0VxNmRlS0NTYUdWbWlhUU5sTWRCNTljTVVBRlV5Zy8zbHp1MGtSZHRCdUJheFQwN1lKbDgwZHZid1BjM0F2U1I2NU5Ea3JzQVMzV2FYMTl1WXFzeExHZHQ1QXIyN1J4NncxV0FPT25iaHlEcFhacnd5VzU0eFZNNFJyWUpuZFFKdTlaczlsYnRYUURINlk4WjRIYjZqYVd0VnBHT3p2ZkZCUU53cy9vYkRGQ01DSWJjVmNvTE84Qk5Cb0Q1a1JEUkovalNmSzBpQTF5VkFJWlp4TjA1SkNuVjRBUUsxR2JGQUlScXVoNVZBVUVKRERtV3FVS1RwZUZHdlhVSWd2NHQ5SW55aGhRQjlCR3BVS0k1eGhuZzg4RFdyeGpnZzIzeGY4QUFtWWltU2tpNUxHaGpFTTdmWUlBVWZDcVQ4MTc1Y3Q0NjE1Y0E1SnZ4ZmZJUU96aXFWN2NaSUZETDVSSVFsc0E1Tm9hZHpHTDdub3NNTGd3bDBEZDFwY2krMit2aVREN2h2NXpMWHpjUGNYZmdpZUZkMm5vcEhVK1dhZ1pSb21sQ0F2UzkxUktnWWZ0Zk1VQ2RmaU1NcVpucVVGcCtmVUVieXlzeitDVUQrSWg4TWt0RmZIaStYSVc4dUdRQUtxUTBXTWk2M3VoNy9kd1paRExERW96dXlBQUoydXdyYmxjVHdic3ZJSFFBMGJib3VhYXZGbFNvUFVMSUR4Q3BCRWhSaHVyY1BsU3FWVEttWkE1b3lSUWNtVkpsYUlDVFhBSUdiTHRhQjJDamUrMXZLb0hUbUN0b3dja0ZiYnJZdUs1L3pRQWNFWWRaZnNTOThwSUNlYkU1dFJtQWZrUGJwY21NbnN2L2NwQnU2Z0NaczZQYnpWM0EySEdZQWdXR056QlFtdE93ME82WTFpOUJ6UmNlSWM4UGdOT1VhR2srT2Q0K1ZJQzFyWDNrSG9FaUFJc2I1aG9tUWpBQTVEQWFZcllLT3NNNllPbW1OcWUvdUExMHkwMHNNNS84K3BJMnlESFVYRExBc1BZRmNFUnlxZjl3bGJMVXZOZ1FZTnBtQUlmZUtZVDNzRkNVNkJ3WXdaOUxBRTdEbFNLcEMzdmZGalFnUmpoUW1oeDk3YUhoS0VITkZ4Nmh1Mkl1YXl2NFpYL3pVS3FBMmVJcHJJeVNYNDNJdkpJQnVsdHIrdEVsbmJVOUkwVHlKeExnencxQkVRclRzSVhjTG1oalM5YmNHU0ExZFFGWkZXbGcyMWtxVXFVc2VNYWJBWGJiREtCR1M1cjJ5VUp6WWhkL3BRTXMxTW14V0hDejV3NmZoVWNFQlVyVHpQSGtNTG1xQWpWSEZoR0s3THVZeXh5ZHpNNTl1bjBvV2NOYnZVZTQrR284K1JlR0lLVytSVFlMeTl4a2dEODNCU2Nicy9VOUkxWHhscWExSHVpTGdxWk9WN3N2cjNoTzdpYzdhRGtyTWdHUU4rUDlpNkdJV0Q2cjZxSnBzQnB6ZVA5cUYzRDRBQmlja2cwamgzSW5qaEZXK3JjcVZ2U0pIWStJWFNkcUtGdDNGM001ZGphejI0ZEt0UXF0TWdYOGtnSFlXcVpnYTEwNlVmNlFBYkRWdStvTUNqYm1neU9wNkZ1VnBoMjVZejQveVFCVWxSWUl0c2xVWldXV2lvbTA4T3ZtM21zZERVUzlaSURFVDQ1R3FPS2pkUVB3a2IreUE4d2JqWE5ZdTc4TUE2U0JKbzRSOXZLbHAyVUJFay9zK0RkRFBNTGdDRkxlZVE3ek9WdXhzN2w5aUFNRTVZQlZuMUt2L0NVRG9Mbk5wMUFDZC9LZk5IdkVIekxBYVhQTEhaeEVRM0FhTjZoWXNNcTN0QkJHWjRDc3ZHSExLOFBTTUNKMHA2R2NHejg4MytmajRLMjV3UUJmQWVGVm5NSndKSTloeW9XYlVjRUlocElnZE9qSVovckw4STVLK201Z2hJblNQUWFIc1RTcWw0aWpkNGVSL0taczNYblZqbDdNNVVpSWZmc1FkNU1IcnVmUWl6TFM2QmNNRUEwSHEyMWdaaEw0VXdiWUwyOEZoS1JsZkRUUmlzcEZERTZaRXM5TUY1NXZqUWg1THE5ZWU0ZUNqMUV6ekZKUmhxZzEvV3cxQXhSRldsaFg4QVgxcTFHbWJvQVlqOXU0QU11MUJWakl5R2dIWlorMU1haDBFZ0ZyY0pma01FQ0p2QzYwMmZDSkFMQWF5SGVNYnVrUEx1Ynk5UFlocWxYUWdCOGVVc1JpRGZnRkEzampRUWFFWktzWjRPT0NBUllsQTJUVzIrc2hZYkhYYXhxWDFQeVZtVFhYU0hadjY2dzBNRUNFVk9UeXlyMGVnOUlvSmpKRXpmUE1aclBZdlFnOERBRkovS1JoRlI4MDlZSWx3dm9KTWdnMTBBa1ZDOXB0RkJZRURGeUJLZGEyZHhBOGtkSEFMU1BOQXFLOGlBRWl2OXdWMUpOR3V0S2dkUE1RckM0ZUpHSVJVbEZNckdDQXBybGdnQ3I0S3hoZ1hqWm1aK1FCai9vdmtvU2t5QzJ5M21adUNxd2prYmdpMXp3UXJmNzE0Z1dHdGxsc0NPdEdKdm5nOGdxOEJKTlFlTUVWaUFuK2lrelQyVmhaaWFRa2FvdGVOa1hWTGNjS2lRVWVFRUw2SjloQUJhb1FWeDF3eTVuaU4wbDViVURBYmd3SnUwOE9VNzdBNFNYd1BzUTJvMGtYTW9TTUJwVGZiK21iUUxqbXp3NXRSMUUrREVzRmY0RlVsNXJHa2U1amRHVnpRcTdxWHVnQUd6K3dxbFB6NVlEekJ3K25ib1hSanNRVlJvQ1FtNW51Z3lLZE5kaGZIdk52S3pwYnB1QWdCcFJKS0x6Z2lvaUovS1UvUUxGc1Zpc3VTZmw2ejBBTDRpZFBRTVhjT3g3NE5qb1lVTmtwNGQ4RW8wK3piWURpMDV2WkthQXNPT3lkZ0doSENIOTlFZHRNSUxReUFHTTRMV01sZExzSTRyeDl5Q084d2VRWkNaN0pvbkxVbjBBZTIzODhTZXh0L21jSEFYcUxSdEtvZHlVT2JPMnVtU1NFQXg0L2NOaDFLMHBLRnQrbFNrejhLZ1RDZmY3QzJpb05BSVg0R3dFeFRQSlJwT0RZS0wyWWhFSTZ5Q1FQL2dzLzZ2WVMrWDg4UXdKeEZXQUJURWFkbko0UkFISWJUZWRyNWdjQWthWEhFa0FzMGFiRWhDTVhCcktQSElGenp1Y2U0L1c0RWtTYUlnNEhTNlpMN2VDY1orTnExajNlUGpSOUpDWVlVUzlnL3ZqbEVOcFMwOURtUU9Kc1cwOHhYbmN6YmFNZmdIZ014SFlNZi9WRHg1VzZsYTF2VEZ3aC9VeGs0Y0JYcm9EOHBRTkpLVm9PcWd6enljaVJLVGc0L0NsWGdYVjdqMStRdVhXYmNpYnlBT0xhQ0syemVFdTlIRTJ1UndvaFpCYnhIc3NRa20vRkJkNlIxOEdzS3RtWnR3N01iN0JvQXJkVlBobGlHdkxIZE9WaHpyTWphZ2Y3UEt0bjNmdnRRODVzV0l6QWVtLzhaU3ROanJxdFZtaVhjNFFweGltUzJDaWI5bkZBS09sSkNxWXhZTEtBZW82UXFTSFdNamNGWnhIR0gyeVJ1VGlVYXY0TGRTM3RoME1YcFRudHBBTVRsTXVyejhlbFo1dzRGY3VzWlFmQ0N2enU5SHJIV3F4VFRqNDdTQWdCWUJMQWxxeVNoNW5od0h1UTE4QkpqVmtCZERZQ05ZVTB1VnlwZHVlNWxkekV2aVJ3VzlmSVlSWUpJcVEyVjlyOVhTYmtzWVVuZjQxdkh5SlhrOG5qbDZmektFZGRwbzRuVWJtWUk5Qk1aampPbHRySk53NlFPcG1rZ0FxTmovdzd0UnRFc0RFM1JUbHB3QUZCQTBEY0FWN21vcG01S3BDNUkxbjB4VHBPTXl5dlBFQXBqb3dUSm1JOWJSR1R2U0ZGQ1AwQUwyQk1ScVFIQ1UvMnBrVGtJbU5Ecm1LR2llWjh4UnNVcEhaZjY1Y2oxRU5oUmVJS1Q1VG9UcllOODk0T2tCSTdpZ1FSVXB1Njl2Nk9XRTRtUWFsbVhYRm9WazNJSW1HSTdpNmdjUEJrYmptL2M1ekhkYUtRSFBRcDhoM2xtWFdlRUI2NFRGSWdMWlppTG5lR1dhWnVkVEZwa2dZWVZhUXY0S0taMlMzZzRrcEY3Z2tkMzBjN2VlWUhuZ3c5Znp4K015blZNOU94UGJnU3Azb2p1MEJDWWxKSVFrOTZKamQyZzIzcXNhQS9NeHl3RUhXUzJ2MHo4bXpmVVBtVzFWTFgwSFllYm5abXZvWXRPQ3BqNHBubTkvTE1BM2VSa0lkWmVueldiZXgzSk9rcFo2b21INHA4SVpGV3luT3BqUEdWSE9hVUhFYVBtU2NJOFFraFovcXAwenBQaUIrWVZVa0s1RUFxNDh4MllndXJhZGNYaythWU5OaDZGV3B0ZTh2Y1d1aVp5OWpLNmZqejdVeTU1SUZBejMvaGF1NENtWEJDMVN1NVgrUnVCQW1KU2dNSkxiSEZrZE9EK1ExeUo3dDNUTHoyZEFFNUlxa2RhTWhNTzYxS0hWemFTc3RaK29RWGlnMkFGY3d6Z2NQekRVaWx4UU5rbHA2d0RrU0NIOCtOUmtrNlk5b2U1dml5RlVrSG5RQWlEaVU1UUllWjVwbmNoVEVqUitvZ09oKzA4UjUxbmhCdDVTMFlXNUxiY1RrVmhLSnFyV2t0TGlaTlFRTkdBMy9USUFJRHhqbDNtb1lpTjFBUHA2dXYxVTliSEFqMFBQbHNwSmtvbUhDQ00zclhxN0xjSjJpVWlTMkVWc3loUUpUNFlrNEdpRlRDaHFuRms1elVFTml1eUZRTTRDUnFNd0RMeDRqdm9Ja3FQMHdaT3o4UXpxMWk1MDZrRVZYMFRPaHo0b1JtZGtSU3c2Uld5c3laNVF2SktiSUMzcE15NEllMGJ6ZlFCdDdEZkRibjBFR1ljZWlIMzZQTUV3SkNFYnlPVy9nMVlaRERaeFdiYTZnQXJVbWozMElhWUtDWkFJV3ZKdjFwYTFxNnBaYzRlNllYMmRERTJQUVRQYy9vZDFSU1lzSUp6bWhZajdQT3hUSks2eGtOb1BmWTlHSitBNTRwaWc1WUFsSTdVTnBWeFpOSXJWVXdRSkxvZ2dHZWtQbEVIR05nVVppM0hMbUpQQXlBTFh4cGhwRFNRekF4SEdrbU1ScHVTWTN5TE9KcjZWL3dLZEtiRzI2TmVRVHNDQkpDQk9LTDcrNDZ5TWFTQURvTUZVQms1QW5oMnhXM1NDL0IvaHFoc1A2ZlZPRjhyQ2JORWttcEFOeEZlQUJGT0JlQUxnTm5LQUYwMEpEVmd0UFZrejh4Z1VXQm5qOXQzTWw4Y0t0LzVuMkFrNS9SOE5DNlJwSFl3a1FzMVd2bU4raDBzUi9HQ3RJRkhIN2RaMTZOOTVJQk1yVldNb0NUU0RyYlN3QUUxR3BYZVFRTnVVa3p0VkgxVG1hT3c3d2NyVFZHTW9aUng0QmFrTWhtekF2N25wSTUwa2pJd0pGMndJUHhFS2k2TE9VY2dpUXJsbGFWUTBVaTVtUGtDYUY4aXVnaWpHRGVZdWxCVmRyRnl2eklRQVl0WHBlb0tpSjBpcVdhc0JsYnhKY25wVDl2Y3Vpdm1TYzVTYzNwYW1sNXlSWkNLcURuVFpBNTZQZHcwRUJOeUJvUDBZTUhtUVdqQVE5L2dseEhZZ3ZicE1jR0cza3NWbHdlc1VGWG9MUVdNb01SWFFheUhLNU1yWlVNY0FhSjBObVdBSkNuZzNrVkUyQVN3RmtXYStmZGZ3cVlWOU1RVzBiL3M5cnJlejdHU2d0Q0Y0eVpIeE1pd0hGckdxVlNJQVJPU0pLbEF0QzYyNlU4WVk2eFBSK3pJRm1lRUsrandDektsS0hrTFUvSEFwbzRvYUF5eXF4a1J0dUNBUXpkTFBFQjZxcnZNUVdPcGR2R3dnQ3ZJVmtjVmpMalpOYVJRSUxDU0VXeGMxK3Q1WGx5UXptVndQQTZud0hIWVlnMlpXYkhIQ01Vc1pGRFFlZWl1M2ZCWjJZTDUvOG9BK1Z3RmFtMWdnRjZTZ3p4VldGZ2FnYXdaQW9BbEI0aUtxaU9uVFpzWUFuellrbklhVVNnZkh4Z1BvWTZ6VXdTRUZCY0JHRDM5UUlESURYekNKZ3QwbzlRQnBVTVVCbHNHZVRNUENIdVE2Sm1rTlVMOUprcWNqaFYrNnJkNGhaTTFNaWMxc2tBdGh2cWVZa0cxZ2ZEYlpXQ3VoWjFxTnVmNkhVZDBkOG5pazdFUldtWDdxY1o3VzNwMXhtRTJtSFZ6RVRlVGpwOHRZUjdRYnk2aU9WS2pPaEkvU1BEME14SlBzU0x0UUxjUjd0SXJSVU0wS2h6RmNNbHZGSXhRTlN0VVVBcFZpVFlESzR5QUtkMkZrWGlMN2w0M2hEYldTRGpJVFl4UnpuellxL1NXNVY1QkN6anNFSnVvUnBnbmFzWUFCNnlyV1hNSndOZ21BZVJqNFU3UU54Y0l5ZE5mcnRhUGxvaFFValhVWmpZN1kyZ0xXWnBLeTcwVnFRbDRpTXpLRXZhaXJvOWQyR20ySWNhbjBVZXNKaGFyMm5Ud041N21ycHBnVVlDdzZBNzRWNlErRTNUTGlJTVFyWWprWVdRbHdpSGM4K0RYRUlDOUJlTkJqblRRMWN4UUZhdUVqMGdjamhjWTRBQzVyWGdXUjd2TlIrZ0VMQ2ozRUtuSDdDV1JKVGFRZTlxQnpQVWlsc29idXM0eWp0ZGZoOHFoS0IxbXpaNkltOTFMRXVNWldSU0lGNFYyMFJDWmIyTTlScU1BV0dFdFlJTDE3eFhGUXRGQVNkNVdvNkRsN1VvazhtTWFUdURZdDhQTmQ3M1p1aEZaRWlLVWhTWGd1V2xqdW1WUmNmelYyYnY5ZnJNdjgwQVowV3c4dkdPc1VHYXFaN0h3dGNNNEFzU0NuNUh0TVkxQmtpWUZ6bXBLSTNmWFZWbEFaRk9jaUtkaUtIZzl1REVaZFlETWM1TUdMV2tHcEtqL0ZUdWEzcHpkRE85bUZjYTBYdGs0ZlpXZENOdlVWYk1FWnA0clJOcTRYMlQ5YzRBbVpBSGdhTE1sUkFaRnlSMktOSzBSZFc0QlFzeG9UZVVlL1JTaEpBQkZzQUhYREtBMlozQXJuK05BWlQrdmcxTjYwQ255MWo0TmdQa2dyUU5kTkQyS2dNVU1DOENQOEFBaGlpckdNRFR5V0ZyTVJqNDltREpaZGFHYzRGZFhCUTJPck5iZGUwNlMwQWYzUTIxdUhHUkJDTUt0MDk5eVdFdkNSWDZJc3I3SGJnQ01tRFhGaTdOd2RncTVBdHAyelN0akF2ejlUeWlSeVBqelJxeHVpdytwV01ENVI2OW40VW9IY1FTRUF4Z2haUTF2dERCcjMrTEFRcjZsM2FBTHU1Nmd3RW9CbDhuN0w3QkFBbnpZcnhYTUlBczA1bE9ZbWFZUDZKVXJTSVZqRW1iV0dhYk5TckxzcmIwZTZnaEhPVXlUOGduNnJZMWg4Z2U0V2daNmMzaXo0U1lMWkFhUTNzUnk0dGVWRjFVUUl6SHFJUVdEckhZa0FFd3FvUXVic01BRmV2MVlLY0k5cXBvTHFwS2lyQUk2NXV2am1mRGoyWFFhQ2lCS1phSm9aYlJKUGoxcnpHQURnME5rWlVsOERjWWdOMDNHYUN0QW00S0JxRDBMSE1ob3BEOHdtclNRZllTZXFzcXcvazhFSUl3ZHB3UU9Pa1c5WGZ0NExGWXZub3k5c3dmaytGbjBGbHl4WW9nWEhpMEdNdkx1WVlianJqT09iUlNQaGxpOFJ5V2hoeFZYYnhZcXdibklyeTYwOG54OEZ4WlBaMiswa3NHOE5BejlMbzhuSXB1NmhQTGZPMUYxcmJSU0M3WHFPQy95QUFLcVdQVzVOTWZNb0E4N0djTWtFa2dQT1k3R1lEQnZzU0plT0ZWUmFtdTV3dEt6Z0ttN05DMWxKS1FrZHE5aTFSRjhXWkNDeDltaXpHelM2VU4zSG1ST0RidHpiVXU4Ym1ycUhPZHdoNmplcDBCdEpsNVpRSW5BRlI3SHc5NkdCZ0lHZ3lBMExNVmU1MEIxSXhRNXJCNlgvb29vdWg1cjJGUnk3L0VBSjhmQjVrcUZMbS95UUNPbFozOFFnZUlKQkFCN2tvR3NGc3dNV0ZVR2RmSnV4cEUvam5IdStzSE0rc2RLUDJTRzM1ZElpaFNTOWE4d3BrOXRFeWdRclpBNDJxa0h4b1FqS1JKS2V3TEJuaTd1Z1RFaHNIQy9tbk1EOTFTeXpHNkVoRVp0N1NUeUtFTDJNTFV3Vkk2TEZZVmxIYkx2OFFBaDhZVzBlM3ZMZ0VaME5udHdvN0swYjlrZ0VnQ0VmRE9OZ05FbmJqTWJERHNodXh0b3l0NkYva3VSQ202RHQwdjA2V1J0OWpZNjBLRXJRb2tqendESHhmalZ6QUFWVGhrUzZtVlFHS3RGdEpTQWlEaG9pRS8vUVpRa0FFUlFlOTFCaGpET0pFRk5zTVo5SmNZUUtoZ1NaZk0rZlViREJEeVNOVWNHY1BiZG9BRUROUGdjNnFYZ01XY0hBQVo1NWpiQkZTODFBeVFRMTl1aTY0elFJSHNjTlhRV3psUTJWc3hRRC9henhnZzFxZVY2bkRjQnJvV1lRV0VpL0wreE8yTEVBOGRnT2lZd3h5OU54bkF2UmtxVnc0b0FvQ1lncHNNd0hWTzdDUzlTeEVtZkhneFhOQjZhZEQ5TlFPUW03blJTUXZZRlFZZ3pDdnh3cWRLQ2RScm1ZKzdXaytKdi85Zk1jQTJHY0I3ZTk0RzVVeUozbUFBd0Z1amRXNHVBZTlaWnh2VnRKdGFYOUIwUllOa0FMNlFBa0tUQVp4WTZMM05BTzdQbEVsakNjbUYvZzVNdFh6em81cFU5aVFSR1RtT2hCcnFKdVJpdUxDaG90L3FOeGhnWEpnNjBnWitsUUdZOGlBU1FaWU1NQUowVVQ2K25YcW1oREZDeXByU1kyTEhGUHZTTkRyTUJEYVhPZ0N0NDF4dlZ2d1BUK1FXbHIwc0ZCcWtYbzJrZFhZclFHbEtZVi80QXR5VkJ6c09sOUg4RXFpdHlRQWNRR3dqbkFGaXlFYXdKTjFrQU9JU3RGeTVlSE54RmpOalVRSkJFanVwMHBNNFh4Q1A2TnNZc3VwVlV6RFZnSjh4Z0tmZWNReDZCWlBLc3J6SkFFeDVrTmpPWkFCNG9BQmV4YkViRXFEWUJRd2RTaytBTGJ2Qi9KZTdnQ0Z4bGdsQ3dRY3FUV2dLREppK2JobFErNFRiTlc0Wk8wci9lUThnMDRTSG03QW4vZEpxK0NuYUdTdmt2dk8rY2tQVlpyRzlMUEM5dXpRazVKc2htVG5zN2xlaGk4UWxzSVM5czhscEhLWm9VSlVNNE52Ymd5b1ZvVmZnVkxMcTRsSmdqblpRQTlKSGlMV1B1TU5nQUxjL2JHcDNCMHROMVdWNWpRRTRjSW51cmhoQW9Zc2thYkg5Z3ZTbTFFOC9xQXJVekg3dkNUVmw5YW5jRVdrSGdQakRjOE1PSU9SREZneVlBbzNVV0t1SitKNUhYbjBPcWxES2ZZZEs2UlQyWVFuY3ZOTnZnRHpPVmsxN2JPb3NNMmdzRHBSQ0NLTFNYcGdTb1JxbVYwWDBCZTA5ZUVMdVN3YjQraTVMMklPa2tWWFFUQ2NMbjZ1MG5acDd3UWdaOXVrNU90ZnVzeWVwNWFsVzh5Wk4ranVzZllZN2hJdElydzhMNUxMR1NURVNwbDJXVjNNRjEzNmc1YjVrQUkwcGgzakhFT2N1UUNWbnlEUERTREtKVlpyODFMVkNIY0lja211TXAwdUFoUm9UNEdzTXlGNWl1eEhwNGRZOUczMVFpcXpsRDF6NGhpc1RabkFHeWRSS2tDblMrMVBpSy8wTjNVNEw4MEpPSllQWHpnUU40a3Ayays5aWI4TUpsZ0kzR1lDZEpta3d3dlJRMEpuaDNrRHpudERCR0hoZ0U5bzdkSHJVVHBCYWpiNmRBWHNSWlVBWUtYR0hzRVVXUG9nbEN5STlFNVhHZ3BKMVdWNGtpNmJnaWN5QkpRT29ZMjZWSUY4TUc2YTZDSlo1WnVEd29DY1lDS3RNTldKRHMyNGk3Rk4va2N0bGtoMDgycURVV1JDL2dMTEY2TFhSMTE3VFJRRDREaDkvUnQrRnNPZTBJZ05nSmlTUUdDV3BlRitRWmQ0TERHdnBUb3dZd3JFRm4xaHZTdGhOSVhCWmdNZEQ4K0c0WktrQ21zL3B6c3lRcXlLaW1JU2tqOW9Mdnp1NE5FaTlCYW5acTdHWmhKRTZHT2grQ3JRd285ODNBSlVnekY2YllTUVFNWmxsZVdkV0w4RG1hZVlPTFJsZzNzd2hUdnVEY3FwelBrS2o5a3JlR0RpNkNLUTM0bjlIN0k0RU5vNFJYblAwR1crMHJCeTBhd2IvUktBdEhJM3ErZDFTQWJNSk5KLzdob3Y1TEhJR1pjazkwQ0NCeEZaTlBiM011MVZnV011QWdvd2lObzgwZTBQQ0xtdUJlMkplVFM5aHoxcVdyS3pvcVJveTZGSTV3REFGRXhJU3JPcDQxTW16ZzB0QmF2d0FkSmk5RzYvQmZPKzRRN1VQRVMyTUtDdXJPejBtb2hUMWZrOE9kSXBLdjJDQTlBUFpxbEF3Z0JZZW8zTXU0TkFvM0VXMzM1bmc5VWhnMGV1WnZwRUlnRWszWFB3bW1RSWp6TkZuMmZwVHJiTTRNR0xqb3cvaFI0dlV5ZVA4QUZWY2pXekRkWm9WTTZqSTEzOXNvWXFCa0xRNEU1emJUUXdydmQxb2lTUGdXaHFkakI1cENWekd3TllsN0szbWRhUnFRUE93NjZ6eHJpMndONnlKSHNpNUlQVUxvTVBzMWV2UnBvN0pBanFjRkI0VEpqejFJNGk5aFVDUTluaGY0ZFR1b0dSa3lZZGdnS1pwc0hSeDlzWlV6L2w0dGtpTUNLVXlxTHhucW1HUjJPMFEzYTZHRUNNc2paT0NFZUF0YkRlaFVhM2U0Zk1UQVZPY1FDQ0szQmk5KzNJR1piNytZd3RWSExWSzlRNUtsZ0lxdThreStaU2xEdmp4M3BTd0lYQXpDTHBWd2g2STFXTkI2NlNmOUFhME1lcUZINGxIMVJiSXVaclU3QlZzR292RjR6WUpZTFZ5cjRIeGlETDRlekM5d2RaUWFoZ2xPRXdIWUQxUlZ3RjlKVU1BNGpsbkx6My9pQmJtZlBUUWNuRDVtMG9xaktlVmNqNTZEWElPODdQaGt3czQxb1JuVzdYZ1dtZGhWaFB0ZlEvRTl6UFJWZzdpSStEbzFhdmFYcGxCWTRpME5wQVlPN2FBZHI4RldSaFdqTjh1U3hXWnRybm9WY2hnQ2x5RFFRQTZreVhzdmZZaWtaTVZWUTFOdDNINC9xTmZFSGhVbnErQzJrbTlTZHlwUW1xUlhZRGpRQWc3SUtxQjhjQXc2ajhRcFpDREpySzhlakpMd09rU2tJbE5kWENJa0VMajdPWHBKK0lGWWo0cThhSzIveHZIODU0NEV1a0cxTERzZHRTNnRMSjdoaFk2QzNvM0tKcHVlR24ydmlob0Y1MDZUZzQ1MURzWXVQcDBNWVBRRDdJVVFHTGdrSUlzTE8ydmdoTlY5b25YejlWU0Q0ekxYdnpHSWY3RVBWblFIdzhtV290aW9VUVJnOUE0UFNURDI1dUxERlRYUFdWeUYwTGNsZFFGN2pRNDNwY1hUMkxCdVVURW04cFJ6ekdEdUMwcUxicURBMnFLUllQdWlGQWwwa05iNHYyRmpYejJZcG9TTVJUek1VbXRZR0RuMnJIS3FLT05zblpyUHpsZm1ZV2poRzRRbW9qZlFtZUpZY2VCNkdVZnp3NU00NFpJVXVrSllwcDhQQ245ODlYa2VnRHNqMG91b0xtMThTaVBCNloxNHh5R2Z2WWE4K2tSSExMSnFKK1ZxSVRrMVNVSFlaUHJQYWJwNW1SNEV3SWNuNTRVdzA4a2pGWnhwczZBNnUva2k4U2RnbFNFRGxQQkxMTEU2ZG5NenFJYlJ2MFgyNmx3VnVyV1J2RkMyS1pheFJESHFBT1FqcFo0LzNwUysxUi9xYjhSMk1BbGhwR05wOGVTaGlOZ1ptTUEvaGJTampHY2VaRm13UWdvOTN2a2E1QmVFTFJPMlJBbzc3MnVJSUZtZklCUXNINWZGeDc0R2VPbHlOSVpwaUJtbTRzdU5KZWhpbnJOaGQ4Wm5ZaGllWDFWRkZyTEQraWNpWnh5ZG53N1JTZEt2RndKdndtUzFOQlJyZTlOSkF5ck9HUFhJSjBXTTYya0xuR25Jd1Nzby82SGJURVpIT3V4bUxROU5UM2RRQ01jM0ZQam42c2l0cGF4Nmc1THkvMjlma2prUHVBa2ZlZk1JYWxFZm1PMmNnSlR5akhWQllieDZiV0F5K2VTYkFOY0pDNkprOEJzWExZaFpVb285OHRyWnR6bGdsY25iWUUrY0tSWWdmN21jTVkzUjdSU002UjI4cElLbDY0RG9ieTBpUFB0aWZZTUxPZEwzYmZTR2E5ZndPYUloQVRsWW5uTTliR2dLRmRUNG9zdFpTdUErNkpXT3hKbW4wSG9ETHNFVGRGTDNHbnVleG5Gdkc3VTFFTGpVOWFsVXk5NUdPdWlOb0phTWdmMHE1TUJOcTV4S0dFejM0bTBXTG15bDdQVnAyWTV5QnhHYllUTG94ZWliT3MxbEl6Z1dIUUlBYWFHN21wSkNlWEdhY3k0ZStRTXk3Uk4wQWhEMlVpeWtDNDJBZDFGMThYZ3l6TDNac2hteTV1YjI1ZHlvd0xvYjI3K0lWdUpQeVNFV1F5TFBEUWFZbVBLNHVGUWtGTkRSbkI4VWxSYllCQk9NN3FrWllvQ2RkUXgwM0VHb1V1Yk82WVRXNmNMM0drWnhkeG5MS2JhR01LMkd4Q25US1dMd3NwV3lQNlZETUNjSkRKcDdqUC9FUlZpVHVvSDl1WnNMUk1URWhzNjVEQVNMdStHR1poRnVsRkRpV0FCbklRNUVraHZNeCtWVUc0YVdyQURwU1NkWk9LMklSZEltNVlreXhrV0J0RGxnUUltckVPQ3FsS21Jbk9vZGhBR2pCWnhpSFRvd05KRTRBR2V4RXFxZ0NUUUNFV1lMT2pzVzJTZ3RmQjltMWtKS3lnVE9pK0x3dkw5VHk4d1E4c3gweng3elBRbVRPSUxKcGZPUUZwRU1TTTRsaEdUSEVMVVF3YWVpY0RYZ0drRG9XUXNCQ1ZRQlpTMnA0Y3lBOW9wODE5azl2dllUelAvZ2cweXNhRWRtdUQ4bWY1RUhWbUY4Smhkemt2Ujlod0NISkdZUkdnbWxGc0JWcEZ4RjVLVXhHTHFSa2NFZlNPemhKT2xhWXd1SVdEb1lWR2toMFlMcWxwc0V6cWpuT1ZvRW9mVnBERGpFRElFS21DMFBPampqTGtvaDNCUFNDaWFTSEFGZytOdDhoSk54MmthRnZIbGRRbXdMUHdxNmZ4Z3VXSFVHMWZjS1Ixb0dkV1F3YkZwUGdWYkEzbUR4N2xKbW95TDZXWktvUFliaktYTWdiakVtTHBaamR0RW42MjEycW5Bd2l0dUxES2lEQzdnZnZUTkVVZmVCQVRZR0tCdkVFU2Ftd25sVm05eVpOemxETXZrclppWW1kbkZLMldDbG9GTzhRSVo0Z2syZkhaSG1kOXJQWVpsODVERWdjck1pR2JwYW9pTmUwMXNIQVBFR2tETkRLRCtYcVRvYjliQ2hSRXg2NkdpVnU0bGZXTGpVZ2NZOU9SOW9RT01HUnhydmxKUHYxdVVBRkhjcVlld1pmWGs0YVFzYVVDMkx1dk1JcFVmQkJFWUYvNGFHakR2VkxnWXVHR2JlVStaS3RWZ2NxZ29YSlgwaHQ1SktVZVJ3MWc2K1QrK1hoUnIxYjRGbzc4RFdoWVFZRHAyNUNvTVpSbDFVc2F1ZUlYN1B2QUVJbWQ1ZldSMlFXcG5qTEx3d1FFVGtMbk5MTnBsaDZCSFdUTG5sRVg3VTBCSmNOazhFWlN6akdnR05zNkJFVlhKL2dGaWYrbEVRL0prenRHekdLNmpXRllFaXl1aEVkck9JUGJVRFVyVVd4RkVNWXh5WXVXZ0RJc2lVRVg5OUpJQm5LMnRXQUNIbFJIZGZXWHAwQmNRRVhKbklEZmVXL21KZDNuRm1OcDhxakpZTC9yS1I0ZUFBSTNEWTc0dVExbm9VWkJPVUMyV0xVSUw1MWpnRUhObnZrU08vZzBHQUpQaDJRT01jSzhKMFR6emFhbnhBV2c5YUVCRlNRZ2RSL3k3Nm1WNWRFaG5lamVET1BqTUFzQllSb0h0cTVMOW91dWZQZGd5a3lldk5VVnRIUndmRkowTWl3cGhsNUJEZWxzaXJEWS8vd1lEaEVEV3d2ZTVCQlJzTGNnYmhtN2pQYmlJV0FnTW5aaXlCR3c5NlgwVUk4L3FzeWhVZG1nV1ZmU2Z6blBwTlRaeVNBNm1TeG5NNXY3U2dRbVlUa0VQVlVYaGE4RGxYRDNKZW0wR3lJaHRnUGxEK2d6bVhrVFpwK1ZpcnZlRUt6Y1A4cFhCQUJaWk9lZFYzQzlqbGhseE1obDZ3UUJ5QWttR1BFd1piRDE1WmxFY0hQUktZQXJlZWNieXdRTlp5MG9PNE5zekhUbDFBNjQrcnRldEdIY1dwSzR4UytjbzkwTFBFekorQ1BzdldnZ3BWUUtURVNPd1JEQ1NWUnlMdVlQQkVsSEpQdS9DOEpyUGlnRk03U1NzaXpBYkJua05rMlkwUFY2cGViL3pCZ2tBVmJ4cjhTMDNKUUFWWHFVL2RyMk4vdUZCVENSa014ajBMY0pqbmdkREFvenc3eHArN3pMMmxYVUVrUG8vcW0rbkpKYWxsSkFtTVN6TTJHODlXaGRMN3BjUnNBN0VlUzFLQUplem85dk5OTldjcHdsRXhPdFdDTk4yaUc4cWdjUndRaytuQU84ZlhMM01XTXlPY011NlpFVGdzYlhKTFpJQnNweENVVkl2MFZmdHVGWEtPYW9va2RuZVdLZU0vNzlhOHg2ZFhTWUJwNWw2R1prUmJqT0FuVUlyMW55dVNxTE1CR05BVGt2cEdmUVh2WjdKZno5WTZ3RENGNFNkTGs5WmFBNG5NaUxZOVNpR2w4MmROcmJublpibC9yblo2bm1jT2NjQVZ0eHVGQS9POVhFZ2RnT21TNnZuYVZHUzVqb0RVQUQyK2lxUHN4SUdyTlg0QnV3N0NCMlBHZ2hvZ2RKQVlNbEtON2FOdEpJQm92akwyZUhFV0FHeSt1elZBUENKaTR1bnQ3THFRazJ6eTVyM1NDRWNaUUNZZERScGZwc0JTT05WVDJrSllzcTlLK21HMG9ieUVpdjh5NFAzMVM2QUt3UDhsVXpCRjA5NGE5Y1pRenE5eFFJUlRwNlJjRnJXSTRSeGpuU0duZFdHYVRLcUNnZHlMMlF4Y0Qya1NWQjFyeGFiOGVRYkRPREJUb2Evbmp0Q0NDWWNiSllCcUxYUS82cUNhZUpiRXJXaXJWd0NPTm5sUEMrRkd6WFFHR1IvalFFcThBMTdhd2E0V3ZOK285N2QvREw0ZkgvRkFMd1phQ3lNSml3NmtzMlB2bTRWZnk2ZnI2VGZXVnJNM1p3ald0b0JMUEJwaUVUeXBhWUhHSGNaNTh3OXA2REJENDBTemFkejBBY2lXSTNGWkEyT2dWN2VQVmVsUThmM2pENWJ3RzdndGdaeURDS2xJYVA0TGRjWjRKM2hqb3RHU2UzMklVc3JDdy9CZVJmbEFiT0dNVnNOaU84M0ltc3JDVkFJb3hEcVRoT0FoWklCMnFUbTJCRVgwRnRWREhDMTV2MjRYUXRxdHY4dEJ1QWszNWsraDV5TkN0WE45VmVaUVJsQXhCdFNyRWtIYWVsR0ttZ05LRnpOR09tU0FYTGt5VFVPZy83UTNlYk9CZjIwUGlzejBoWU1FSFZqN0NTSXZDNHNNSDJOZ2FTZy9oV2FwbVlBb3BPQXZ4YTJKUDRhcmdCdHdnU2o4MFhKdzJqa0xJSU9MblNBMksrdmZRVmdka09lZG9zQjZxcm5MQ1ZSOUY2dGVULytnMnB3d3dzNDBkd1lnSDd1VG9zQlZpTXFnVXF6WUlEMEJleWdKL2JXYmdlckdhQ1NBQm1NakIzZndGVTlwdy9rWkptUmxoT2FEQUM4WWR3S0hncFk1dGFScGVpUEdJRFN0TVpmRXlGRkUwNkJ5WFNqVVphdmc0bVZFZ2RnbXBvQnNySXlORWI2RTVJbXYxNEM3Z3Q0K0Nwb1Z0VzgvMk1HQUVEcS9BY1NRQWZXbGNCbW9PVGo3cDJPcWk1TUFCcEp2R0Nta1NzNndNRXVpclFFUFZoMEVpZFk2UUJWUmxvU1RsOE9YeHhEeHR4dnFHVllvRFJMeGFrc2RWK2tHUUhORTlUTmwrQmxpWkZjcUppZVlCVWg3akdEOTVId2JHVktDaTdrc0dMNEp5d2ZuN1hWNTBid1ZNeHRoM1NWQWJiRWdIRjVJWXBVRVRVSDE5dnFtdmQveUFBeStOangvRVFIMk0yNWJyb1NPRElsMEhRQTF4Qm5jRlVEQmlDa2JFUWx3UzRoQ2g4eEZVRUFYeE5tQ0NaRTBwSmVHakxCK0VhV2x6SWo3WXNmR0VFcWM4aXEzRy9iQ2RNa1VOdkxzbXZkR2pkRlVzY2ZKYXEvdFBuNXVFRkxBVnRVSlE5aGs0VDdyOEtkaVF4c0hLRUVCZ2p6MWdLUEExV1dSRjh4QzlFRkE0Z25wbE5acWpGaGtMUHM0QXhRMTd6L1l3YjQ2Qk1nNWZramJ1d0NLTEJ4RUF6UTZlbS9zVWVjN1NORmVyK252SEdXb1dxQnZuUkZ3S2hkTEVNd2hpMGlUVTZZaUxHWE1LbGY2RmlZM3FqaVJ3WklYb0xsU04rQy9UL0xxb0hSd2JpVDhmTHVxMkwvemEzSElyMkJnOG9TYUJxakU0bEtvQTFyUEc0bURCQVpZajdWcW1XUXNUSVhoQTczUjhVQW1KMzVSQXhMNUpWc25HWlZ6ZnMvMXdFYXhaak0zYk5FSHIxdUJ3Z2pRVElBZm1aaUUvTlZySGU5aFV4M0lVN2NsQzRXTmV0bFBjblM4Z3JYbkp1OHZKSWlQRHBEcXluTWFSZHdUNWlDcTUxejRoaEhuVFFkT21vWnRkU1piSVBmWXQwWTl5cHZINU9QdUo4aGtoTkhQTUQ1TW5qLzBLZkIzbmREV0FMbmtmRjBMd3d3OCtMS3JLaExtNmQ4YWVEa2FnWlFaMXlUVDl3VW1XWG42MWhVcTVyM2Y4NEE4UHJDdC94TFM2QWRiTVRVMGpRd1p3bnI5K3M2MTFaalY0UjBzMHNHQ0M1WGlRWnJPbmZCU1UzVEhUL2xERmd5TndsV3RFTmh3TW42emdNRVU3dnRyTUF4RG16V3VQTUFkMElLTFdUalpBMXkzZ2Zkb1RHTzBjdjVLNS9Qa3gzZlJQK29ZMnpDeVUxY3NBVW1NQzdDUW9vaURId0dIZUE5NjRBU0hNQVUrNEdUYXkwQnVxRkJhVTVIOVdqRk5lYVdEZ2FvYTk3L09RT3NwRVYweVU5OUFXTVg4V3Rrbmp6dmtOTjNaM0hPSnMwTSs2UUxpT3FIWklCdzRkSzFCL2Q3Umxxa2wxQmtIcjJxa0tUdStLcEs5dU1GalhMMEIxTTA2THVGLzFndk5QZGhKdEdUbGlBYjNnZmRoNzdYL1haREVFak5RS0hFVFJVeGdSZkIreDRaRWFnWkJCV09pakR3TzFRdWdqOWdRUk16QVUySms3dlFBWHJyTXFvZ29zV2xwVnA5dGViOUgyMERoOE9JTDB0djRQelNHN2lNUFBzeXpURFBsUDZzVzM4a0F6VHc3UFVWcHQzblJNOHE2eUFPOGlDUW1xNi9tTk5MaEM1aDJWeE9LSFlQV2JJZjVTTmt2QWh1VEY4cHdHSUlWY0JjQ3BETnhpb3NEQkRDd3VBR2xDeXc4OUhkMjdIdWQ0YmNZQUxMeVFoYllJbVNPanlqSGJ6UDJDZ0wwR05Zc1VmNExIVWJhSldMWkNaazRBTkNWaUhWZDJoVU1KTUJySUJ4bHhpd1k5YVhxSzBEN1pyM2YxZ1UvT2twZ2tkblA0c0h5UHlGUXBWR3R4M2hYcDFad1Jpcnp6dEVNbjQ5VE5IQnBPTkdISVQzRUdYSXIvY3dybDdqc0d5L0JGNWNBaUVoTkMwa2FIUjIzNGRGU3hqcVZRbk5HRExwdGdzWUd4ZVlRNEpzb2hETkdkMWU5M3RHaUxOUjJtS2FtRW41RWhkQWNyVEtKOHJKRVZMcmtYK0FoOTZwaktxY2pCWkthWHBkYjNmbTVyVk9CK1dWSkJ3RHhKanNNdi9JMVpyM2YxWVYvaVZMc3Ywc0lzamxGVWRmam1VcC9lK012KzV1S2RMV25PZ00vYXdEL0N6ZStqRmlCUUdRemtyQVdaZ2Rod0lJaVhjQTVVenlja0xhK21peVZ4ZklxUEhPNkZoaURqUHkyUEYwN0dabEZnKzdIYUpOUEtwUnVpK1FRZElxaEFLd0pTZ3VPWXRxYWxuNVVPc0ZJTlc3aGc1a2hvQmplTXI2dHBXZ3E3bXdBMVMxWkw0SWlxbXFFVHhlclhtLzlEaVJDd1pnbW92S05UaVdCcFRKOFdjeGdjZFRqSDdVeDVpQUxsYmR5VVo2OHV6UVgxeEswUUVabWloVFlnOXh2d3psVGxoMnBGM284SkFESWZrT2NqUEdoV2ZFSkFPV0NXUjhMaTRBV08vWnNRYzFuZzVOaUJxb3QvY01pYmU0NXFPQmp0NnI0cFlBeENpY0xJUDN2Yndzd0dpRTFXZ2pQQmdNSU90L3hrUEpqYkVMaVBTLzRXb3VMWUZ2VVUzcUIyRnhyWG9rMTJ2ZXoxclY3Y0FBTE5XRXZVMmF6c0FmMGdEanVJd0tua1JVOEZlTy9vZ1Y4ekhNamxyQlNLdk0wK3VsNmVHY1dBRGN0SVA4Z1NaOGRyeEF3cktKR0tIWVZhZ0J5UmtFOVpPZHBBYUVTU1JKb0V6MGdFL1VETEVuOHVUbGpkMUtPSlo4RGxBTWtRMWFmZXg0cmJnbFNtTE9yTkpzQUJnSktRNnNEV0F6UUFjelZJVHVaTmI1WFRLRlJaVmlhRnlWQkhmNG05eUU1YnFnT0RDendhMmE5NmVxdmlVVlR1L1I1NGZ4SElkUm9RK0lqTnU0QURuTTBTZWlxa0t0ZlJHZHFUS1AwTjhFbVFvNUFibXJZRDdhQ0VLeDlrWmhTckhyU0svRVRMRXRDVzVNa3Fic2ZTU1dMQkZOSjNsS1lBNkJHR1RaU3dXNEVlTm0zVVFZZ3RUdkRocVdHK3NodlliRkxiTkdNWGdTNE5HRU1BdjM2dXFTV0J1aHM5SmZHTUNpUWdjUkV5MnpodGorVmtXRmRrbncwK21vTC9lUE5KVUN0Z3ptWkxsYTgzN2ZxbkI3L001eWpWRTZLWW9qelRBbnRBbkc2aW95NkNpSHk5RTNaREFuRkZDZ09rQUUyR0xDT2NpVXVETEkwRVNac2tUdGlZQk9ZS2JLU3NDQjlaUWpMNFMzVGNlR25ESjBZcFIvRHRuTE9RcUtCcDRmTDIvM2NxSWVJYVB4TnNwc2ltSkRYVTZ0Tis4WVk2K3JPZFlwRDFUaXQ1VjlPMmFWY2h0b09VRE55Y3VqQndhSFdCdlEvOTg3cXcvVkFkS0N0VTBOdXBvckdpRXpyWkxnK25SdHhnRVV4Rzg1V2E3VnZEL1ZOYTR4UWRoRDFoV0NFSk5KdUN3cHBjSzBYYzc1aENFa1VINVdvTEFwbkRodnhzVHc2dlZURy94RWx1STYvOXNoY1RpYlFGVFhtRFlPaEFPeTI1OVY0eUZMSWN1L2dMZ0tLUXpVWlJaZVBGV0RnYXVCZXNka2NiN0lMQVBLL1RhOThGWXMxSXpHNG1ZZ1Z3cnlTR01DS3dic0hxdkUyaWdEL1B1dnhnTUFFSUlTK2FCcXBqV0lyUVFPdFV1Q28rRjhvYi9EYzNPeUhFK3RtdmZzalNyM25DQ2NiZXpKeVlLemVRd1pUVndNSnNBUGgvT1JMT3lzT0crODE3RUVyUkpyajFiUCtobDVyRjBzRTZXYnN6NDhkQ2FSZFZIanVXNXZWUG05cWpmL2t2NmlSSDNncnFIZVUzWHhFYVhJbkF5eFhJSXpvdnl4VFVoZEhMSEE0cTI4SEwwMkZEZGp4ckJVNVNLUlVVVDFyMkJnWlpKQVpZRC8zc20zUkZLTERWY1c1QzlvcHhnNjFTWEJUekUxQWJVbFFEd3lKc1RtTUp0dlNLbVk0RmpXM1piSEplWVFOelp0ekFhQ2lIaGNISGt2S2lFREpkaEVzWkhmSWFOR0tWd0I3UXR3N2N0MW56cEdGc3NrNXVtNXRKcW9zR1BOU2ZSbnc0cFdBaDNqcjVlVXdqRGZSdzFVV20xRHBrSnBVcnNPRkdhbE56ZmFXQ2FwQWU5VXhRWm1DMklaRWh0TEJQMFVmWWEyY3dmc2VXNUJjLzlSTThBcGsxcU1JU294czdoamlMbUtBMlZKY0lMeE1haEZpb2dzMGZ4dE9nRWJwNFh2dlRKVkNiYS9KR3dMYy9qOW5WUEU4ckJnb1RNeGlBNHE2OXFnOThtSFVHcFMvVS9RS3E1d3VPNkY1cTlmVEhRdnU0bDVxdE5ubU1Mcm1MSnNickVPSVN1VGtIL0psUTUyWk1BZWJEeVo3b3dsNHVDemY0SUZ0NGN0czlBN2NrMFJTM3dHOWszSWg2ZVB1SlNEQWRLbGwrWWNsd285dXUwWXVoN2IvUzlqQUptNzR4ckd6K1ViVGJpQ2Y5YWwxOHNhNEtkajRxeXpSTFBocU5EQkJzdVlJUW1oeDArOGIwYXVvSUlmZTdpOUllQ1oxOUNMMW13ejcwVnVORlNEZ1dDTTdEeUVEQkswU3F3OUVNNzMxZDdmQ2xManpxMWltVk56aXBhZUV5eDJYZzZ6RjYzMFdVSElpazNkL3RJckRleFlwRG1XTmhpbDUxWisrc0V1RENjd3ZNdmZhcytDZDlZZEdnMVQyK1BwdTF6S3Y3TG93NmU3OU9TQU9jTEMyV3dlSDBkK3pJNWtBTnZaWWhWekdQK3NUS3JqaUdEYXBORGFOY0FMbkhXVWFDWlBycklGN0dwclNVcEc2SU53cGF2Q2pkcTA0aEdrU1RDclpXWWloZ0FkTmhGaGFrQTVOeFhMejJXaFcwSkd0UVZLRWp4VldQL0FTblhOc1RXaGhZd0NUdCtwTXNBM2hoVXU5NklwV2RxbDR4am13YkJrMkZLWmY0MXUzbmVHNGxScDhBOEw1aFlYZWx2bHVjM0pTM1k2OEE2K3I1VGtFRW9lMWhOaFhWdzVua1BzdjlLVkRWNUZlcGovS0FPWWJRdXJtTVA0TjJWYUxmN0pIRExmYU8wYTRJbXp6cnFCTlBDc28zRVUzNW1xWktkRUlGSnlPUzNyd0owZHVzbzF6T0hzU0NhSGNrRjlkR0M4NVNMTFdTWVhDUVZaeVVyRnh6SktQUURmeHZLYXRQT3Z3LzV2MWcvalZnWTFoQ2VuRGdKbExqaDhQSHk4bjVuSW5nd1EwWEdDdE5RekdOb1RjVWUwZzd1Y3B0VCtMQmhBMkE4U0FFVytXZFU2R0dEZGE3eklnRHZEbGRlTHlvK0hlWVQyejQ3c0Rpakw4TW9LOEYveEJsN0MrTXZFZWc1QVl5SlJHNE5XRGZERVdTUFRQeG1BUUY4Mkg4V0lRZFc2T2p3NVFOekFITHFiT2ZPV2UwWVRQRGVUMURMMlJWTXV3M011cjZBK0dNQzRLQlJaNmtHeDlnTk11ckY3K3JLU0pONkE5MElBUklBbkx4a0FZMDAzOHFKTVpHOExid1laVFREYWtNZnBhbmNHWU9qRkM2ZG5HZUtsbFFvc3VqeFFUTExmTVV5U2hBU0RBZkIwZXJRMktONmFSUjk2ODlLbUQ4SGd3VnNPaENNbGpRSCs1NDYrWmpnOUhNOVVwdFlrSXBna1lGSHd1Z1k0MTBUaXJNa0FtTDRJUUdWam1IYVp3SVFPb013VVhJYTJiQnk5bFNsdHNzQnNWRXJVSDZ3bU0xRmhZVUhRVUVFQ21ZQ1FKSkNnUmxrTnNneGNrUVlYMk40R2ZISEpBTlFBTFh3STZaU1p5ZDZvRWZtMFFVRXJmREZrajU1QWhtWkZvUWNHZnJJUWh0bElPOFlBSFVjeG1iR1Ird1ZqQUNFSW1BTytBaXBMSkhRejZDMDhHSW9sbVpQdWlOeU1sTEJDZnpBQUl2b0dEWnpwREtVbGtXd3lFNWVZRFBBUEdTRERnaTFjZ3pocjdFT3J1aE5sV1ljcG9md3ExVFVUcmNXcmVPQlU0OEZ0dkFYTDlxNE56K1gxUlNQdlJjUkY3OWJLQUJiNDZ3d3dTK20zWWlCc3A4RHdBQ1c1bXpQRXUwVFVsU0Y2YlFZSURSQjV6dUhUVEEyM3Fxb0RZdlhoWWgxRmRaMWdBSUp3U1J1T3JtVy9OQWJ3T2U2WkZHMDdSQVpRNWdDa2FHS1ZzTTEwejdwTThyQk0rMXF0QWZ4Zkh1TUs4UC91NFBhUlNRWkp5akNXMGllYkRxQzJCTWlpREVVMXFRNHRVWW05UTRsa3o0aU10WU1iSWRPNEswejRxaWdPUmoxeW9xcGhwUVFpNTNJNEhEdGEvdzNnOGhGV3pZNHRBZmJwSkliS1pZcW1LdDQ1UHlIQ3RDa3BvYjFkTWtDaEFYNDBkR3FqVlpXUiswWWwrWFNsMXloVmdKZ1RyR3hpNjBWa1k5ZGRLeG5BUXBqTTRZamRpMXFDeUFCa0RtMDYxSlIyV3hZa3dUckEyRTZvZ1R3aWZlZFlpbklGK0g5MzlPRnFnSk5IekY5bmdOc1NJSmIxWFNjVHVqTExBdWFBdEtGbFJDN1dqaTFLOXhXVkNPWktQVkRIVnhIVEl6M05jeUo2R3gxUFlxTkFJWUJCWXRXa1R6K3BGNGtVWGg4TGQ3UFArV1NBeTRwRE5RTndhOEd5R0Jib2hrYi9GNVZVUUtvMHhHcU5wY2t4R3cvSkFPd2hIb01NZ09BMk1vRE9jYVpwNWEyWHdRQmdqak8rcU5RUnlXZHkxTk80STkxVnh2c1Y0Rit6QWhrRDRIc1N4ai9VcWZhSEVpRFdIMjBlVnBHMXpiaTFCaWVYRnc1WC91bnBBNTVrSVRGWVNuTXRTZ1lndERRa2dDd1JqWEFBVjAwbU9kckFCa0RxRGVIdHdMY1Y3bVlBZ0NuemdnRVM5Wlk0aldDQTFBQjFRSGVzVzVUaElpYWhpcG1JT0R0aUFPVU9HUTFqc0RzVE9zRUFzMkFBb0ppUTVHWE9XTitDQVFhVzZxSmgwV0l1bGF5WE02ckkvRVgxRWM4c1Y0QmpyQUIzOU9Fai9NVURsdjZVQWJnRFdUZGxWaHB1aWhlOUl1cHRlcDBCMGdlcytvM3JBSkI2dzNKTnFDSUtVd2RZbmZVeExoZ3poMXEzWTJnZEVIOHl3WXFaanhMVk4wY2t5MDZpNGxDLy9MSmtnTkFBb1R3V0dGd3Z3clFFcUFpVXNCbWhzekZoNS9uNmM0VDhHOTdyZ2dINmEvdC8xWjhqanpzWm9Ha1FHNnZhYlVSVkZmWWVDekxQdlg3dUR4WTljRWdhQWJnQ01FWE12T2NGdW4raEE4RDlYak1Bc1ZrTG9wY2p0Skx5MDdmVzZMM0JBUFF5SVU0MlRCWE12TFgyaENhWERJQWZHbkd0WTRKVmMrQkpqb3o5ZW9yajRpN3RGUzZ0Y0RjL1U5bkwwSExhVER1cTRWMW5BR3FBcUpPTG1ub2ZCMnRrZ0FSVXpIZVF4SWkwSEFSTDUrc2JtMXZtem9JQkhwbXhTWlVaa1NENllYNE1tUjdWZk5sVFFTZmNudFZLV1BreEt1bFJqYVlwZ0FjVkYvVlJHd0YwRDBBR2tHTGVyQXlBOGZnSkE5QVFlQW1zUk9TUUN1TkRQYWtNV3ZEQjJqQTNHQUErWU9RYWF5SU5ubFZmMkdYUjZQSHlrZ0VzRFZWZnczWWJnRWNqeVJHNTh1TXo3VFFhQ0RQRG8rUlpDTzZWUzdLOENlUDNzUkdwR01DelJKbkxsVW1DT2xDdDFteGtBTk44UVhITTA3Tng1bVdob1FHV0NaQ2tHTjJOK1JpZ3pLaWlvc3Q5TUFDZWpaMUxNemlyaUFBRDBLZUVvWTVXTFBYSEZBK3NiUDFhcVlCa0FDM20zVXV3ejIwR09DM1JLZ1lJU3ZkMnhLbXo3am9NM1FZdUN0REZkUVpRdDIzVUQ2ZWQxOEw5ZTU0UkE0NkptZ0dZelE5THBRdzR4dVZ6VVRJQVFyZERSR3Q4aFhxSWFRMUd0RGV0amtVZEl1eUhEaFVEOENWVEExeXNJV3NKWDBnWGU2RUVJTW9hMWJpNHA2aHF6Wm1xQnBJVW93dUhCRTBBcXFqSXg2VU5CQlpiTXdFZ0l4WVlBQ3QyTFBQa3hsVDJTMU9BSU55aU9Dek53TWtBS09hZHFMUGJET0FKdWRzTTRCbXk5RW1seWVXOEU3c0F5dkJSanQ5Z0FCODVnS2hTaDBDV0RxeExUNGl5cXhtQUdYUlJxQVFtQUJrWHA1YjdjV3dKb0NhMW5Ga01lOUlmZVI1Vng4NDZSQnE4N3lTckdTQTB3TSt5bGkyYTV4aGRSdmxDOEJCS01tT3l0MEtpYmF1QWZXZkpBSGdMbWdCa3RtTTVwK1h1WkVac0NEcnBudytVQWJ4YzFyTmpNTkRLN1g1aER1NWJ2b2ZLQ0pCTHdJNFdxNTh6Z1BpTkdLNzQ2eFFoOFBxcHEyNFNGU0lucnpjWllQeVk4TXF0K25vamI0RytXdFQ3cUlQS0hSalJNY081Z24vN0JQalNrd3ZFTHIyMUZnbTluRksxUUlsQmZSYjhoNHpyTjl3UjdFcXhZSGxOcWJRQkh0aUk3MDhuOW42V05ubmxJVmhuYVptcFVURmdFaENxdFFSNEJTZEFnYkF4aDR6Q0NHMk5PWVRZRkZTNHp0alN6TDNTU0VmT2RUVUg4L2pucFJFZ0dZQUUrUlVEaUJSaUFNdmxFckNnYWFOQTlIb09uU0x1L3lZREpBUWFKWUFNc1VpWmxCVi9hZ2J3d2k5bUF0REJ3Wm9KQ2FLeEhHNlVVVStYeC9YSWZLRnFBV2lKeHluUW53bC9aQmpUb3NBUmZxUUd1R2JENjArc1dTQmtLQUZtbkZiRnNoOHFRTWtBZURObzVUbTZicm1IZ3dJSmxpeUZZVkdERWlhQTFacnlod3hRT255a3FVa3dWM3Q0N3N4VHpGaVJNQUw4T1FORVVPQ2tuZGJDNjhlWHlCRDYwaTNaeGU4eFFOT1FTV3VPeUpwZk5RTXdxSmVycGc2T01vQ2xueU1ETE1BQW1lK1l0Y3hZaHJXSVU0QkhFcVdNVE94a1FmbmR6anpaaFFhNFFrUEdqUTRhK0J4TG1mczZzT1JoVjgvMTVMM1NZUUVOMWpHNVpJQzUxMkE5Tk9sbm9wRkpIRzdJTFN0TnhSUkVlaXlleUYybXhzU3FJZ0RXQUxET3BSSGdUeGtBT3hFcmZuZXRRcmN1STZ2TWFoRGxxQ2JoRVBWZVMvVFNXZ0tLK3Y3VXAzbVpXdE1YMXdva2F6aGhZSC9scTRHL2JESkRTWWVwTXRnOE1wSmxlSGNacHhEaWQ2Y0JPYTF5bHZQR1RLdnZvUUdDYzh6SzFHUHpCTFJMT2hzKzVTeVd4M2FIMDZ4a0FCZ1QxRHhYTWdEREhWUXlJWk40ZXBwaFpBTDhTUlV0NXFEb203cnMrYlh0S2ZHTERNQm9NV0F4YWlQQTcwZ0E1RUhJVjNSYkJPMm96Z0JsenJ0QkpMdEFMd1J0cHhNTW1sV2lMZFZCTUFBOXdnUGlZZDBWM0lCUXUrQ2ZGZ1BRSW1HYU1WS1J5S2dsTnRHeUtucEwvNDUydCtJVVppejdPZ2RLbEFVY3VMaVJvOGxxTG1wQm9yNDMra1ZENVRLcVUvUU9MZzJaSERHb0NhVVNpTENrRVJMek5OYklBREJDQWtxR09qNklOeHFNRk12b0dmYVppckg2aFlqU3dHSjBKMjRHL3AwbEFMa01SSHJTRmxmMmE3SzFicnJTdUlVQ1p0b0hLRklrc25DN3A3Zmt5cTRvWFZHNVAvM1RmYmVLWkhmMCswU2ViYURUOUZHM0dFRG90bVBrajZZSnl0UlZmWGxDMEdoZFpPTDdQRVNyTVd1SUV1bXhJcDZyOUJHK29WeEdmd05tUURabkFJcHh5bHZQejVxK3JDMnpaT3BpUXVlSC9DNjNlaytxVDF3bVZDVTJDb0N4VjBZY2h0RXp3MDVoRkpqRUx4VEdTQ3dHOUJRZ2dzd085UDl1TUFDOW1peWFuNGtzSTk4RmNyK0JnOXQ1Ync5ZURiWk1rV2k0K0ZGWmZkU3NON0VFdUdrcFNNdXBaTWtSby9Mc3RQUUZNRlc4WWVRN3BpaENDVXhQN3FKc0JRUDBpMVl4Z0pVYldORUZGNFdXc00wSHplbFVldUV1TXh2ZDBCQmxJVy9kenM1alhHWkFVNUhtL0YvM2lRSjRaakhhYjZqN3hmOXNWOHh3NWplRkZOeXJ3aHFiejZ5eVkyN0Q4dGMrd1hHQnhUZ3B2b0dMd0EwR2lFUkRUVStUQ3NYOG0wYitpblZwODNPYkxYT0xlNllLZ3EvUkc4Z3pNSXVmS29Tb0dVQ2gyeVlCYUhidlZPaTB4L1FHRWxyS0dGTVpKZ1NrZG5vMm16dzhyMjZac3FOcXRrQ25wOW54MThzb3RaYmFBNTJ3dnNkWjVYK01SS3JsTGJGeXVKd3VhdE9pdDBEZHhQOFM4TzhRUUNFeDdkV0pJZGdibEF5d2xUSHdCMW5ETXFFbmpLLzNYNFlyU3l6R1ZCckJKbHdFYmpBQUJnUFJWR1dkaTZubnJJVjZrc1djcTl6M25ENEp2a1p2QUxiQkxIN3F3REpFVXdta1o0ZUtDcXR6MU9pMG9GSTRPd2ljRmwrek5LanNaMWZaSnpXRnFLZ3JXNDY4Wlp6Q0thc2xFbi9OR3NPUXA5dy9HRUFiVGlYd1hka1lpMWpMMjhES0thR0VnbmhabytsRDliOVdZQWhFUm9XMGQ4SzdIVVcwTE5vTUNDU0hZS0E1REsxQzJHd0FaU0lEOElLeWF1elBHSUFsR0FLTXovbEg4N3owVjlVb3JHSVNwa2RXZzAzd05ab0R0aTErbEtkcU04d280YWhRMWRQMW5tVmpXVzBycVVSMTVqdWdJbUlxeGpIT0pwS3Jha29TWk5YWVZzMEN3N05hSXZIWEpOaERRQjI4M0JrQ3NmVGw2Z2FaSWEyVXQ0bVZBd2xSaHBiQXQwZitMeUZLTEpxSHMzQ1Q5MXROWnpBb1dqZWhkNG14QStyT1FTUEVSeWM4STAwQllBQUc5MldBeHBRUjFRSEdKenJVOGxkWW1laGVlUDVSN2M0eDAxa05OaEpZVk1IK3hIb1VCWDZ4d0xHT29wNklXN0lZR2JTZVJLZVZWQ0oybFBBdlNEZmt4ZUJzU25KbDAzbU5tN1lhWnhpUlVNQ0xiWlpvbURrT2R2S0NoM3A0UEFhOGpQODVVQlJ0RS9KMm5NQTFiNEtXYTVFMlFZbzBzd04wRDNnMy9nTmVyV3d2eEJoZWZrU0pzb1g0Si8wNTVMV29Dbi93ZzlXU2dobjM3T3FJbGVHcXdQaXMvUHNZZGRheW1ITmRIZFBMVEg0RGZNMWVBamFrdFF0bks4S04zVzhGREErazNkVEZaTXVhbGdiekFUaDBDU0F0c1gwK1FrdVE2NlZGbzdHQmhMUFY1SEZvNkRpcE5DVzBGSVdNbzVhcGx5SmxxNUNpd0tpUkVTcGtIQm5KUDZIQWtSUGRYZUR1Q0lxV0lTUlhzNUcvU2VxV0dLUDJFZkRRSDhTeDBNalpLYzBldVFhOFJJQi9xWTRFcWtxYkEwY3pHeEJzbjU1UTRRZzZCSUxJeTB6cWVJM3IzaW4rUTJjQ3I2Y2JJanJaT3gyajVxdGRubVZqN2FRb3o1dWkwTWdFNFJLRWUzVHlzUlgwMFZyNjlzVHhKWUhBT3pIcEV0RVBKRHlxRTBzakI1TlhaN05BaXBLcENTME5ERncyREZnQ1JNdmtJTGJnRmVvQUVpTlFwY3hHQW1FbHZGQmt5a3dibk9TRStwdUdWcG85OXNFQUlUZnZDM1ZFQ2RvQzQyOU9Qbjk5VmhPeUNRQytZZkJqTHFDK0J1ak1pUUtpWjB1bWtJdmlpcnhBbUkyWFU3TG1TUXJpZkNsRklmOW04ZTJpZERwSXNVRUJ5NUpBb0hKa1Q2Z2JaR2MxNlpoN0J5RHRyKzhvclZ3azJxcVJvcHdYZERCZWFDSGNOSGR6anpjMExCUGQvYUhDQU9DTVV2NlEwTjRnb3BQVTJUSlRmRC9Ud0pvQXlKUlhoZGtqR1NCcUpITXNYUUsxd2ZnekZ2Q2RlVDFvNjhYY3A1U2tHS2ZBajNGWGxZUS8ybW9URC9BSy9vbmx2a0ptbHljRlhsU0pWZnlONkFld08zcndEeFFYVStXalNTY0FqVVFEMW0xQ0EwWk91c2krQllVYWtHTWNUOGpvcGthS1JtWTI3aUdyRmxsUG5aeVpUYW93czc5RytYRWF4T2RGSzB5eS9XeGxwdmlLQVk2elNIcjNxZTJTQWRweU02dGV1ektqS3BIU2xySVlZamdCbzlYZnFzaTVhOHloMVVDNGtnaVhpR29jNEJWK0FlaFdJclB4TjAvU0NneVJjdVl4L3M0Z1dHNEZvaHVFU1BvWTVGWm43aFVDMGRpVWsyNjF5a1JRUUdGNjZtRTNMV2NjRjV2blpoeWJTWEJkdGdMT3dqYVBHcU9GbWYwMVNuT0hSeVJhWmF2L09IaTd5UUFaRHZENS8wbTd3Z0M1YlVtZEJHWFgwZThLNXVhZEd4cWZ6cjZrVlg5SElUTWtNYUE3V0ZXU2R4TGhFbEd0QitoTTh3dXc1YXlRMmZFMzBUb3dubWtzbHp5dlNFQjFQRm1BdlBZZ0gxZ0IrZ242REZndlloblpFN0taWmJ1Y2RPdmVnS25naU1LTTFNTmhRaVNOdkRXb1dpbGN5LzVEdHRLZlJYb21EckdnWHBZZlQ1ZFl0SFV3UU9uUXVNVUFNaVVZTHdiNlgyTUFGNXFwazJBSnBrRWpGRXpOSTZJdHBqT1h0TWY4Vzg2Qy9ZaldITEdqWTl3Um81NUVxQkhWUEFCbkdpQnFIcjlmSWJPelBoT3pWU3BwMUY4RHV5NVQwRUUwWlFqSElBcTBvU3ZwNHhsT2FmeFAra1RtNzV4MENBL2krWkNMSGpya2xkU1NBUWdVUFVUZVYvWm4rK3hYSG0wd0dKQndMVERPU0pxckJ1a1VqOVpPcUp1Ni9TVURSSmFRNXVNbUExQm9VaVhwdXNaUC9UTVVURVgvYXZQcW51RmZ6YjhkZFdHT2tDZjR6alJhTDczQVZhUFhOdjBsaU5OMXIzV0Z6T2Jmb0UrbUxGZTZsTUFOYkxzSW94NllWeUFaWUVFQ2ZSd2MvVUlHeVBZWkRKQ1RqbDZNTkR0Tjcrbk1hRE1BZ2FKYUhJaVZnSmsxancyZThjcWZwZFFjUk1hT29KN2hETGlPSkFNRWlaUWJrOVNsSWZJcUEvQXpRZityREVCSGZPb2tRK3o1R2RuZ0NpWXMrTDdEd09MbUU1MlRrL0RHOUpnL2UvejhLdWhNRXBBVXlRRDBLNXZyaC9ibENwVmxmMWNCYUVvdDRiS1NBVXlyaDd4cmRuSlR5ellha2VnTjZXT3Z4RlUzQ2NRUXNhTFdvOUlIZmt6SFpod0xZRkJ6dUdBQXhCMElIaUJJQ2s4QTI4NVJ1Ky9wMEl6Y3lqcEZxbXBmTEQvKzhsZ3dRTXJvYXIwbzBxLzhsQUZ1U2dCN1JLR1RkSEtKQktRT2VHSURUL2NiM05zOHQ0eXBSaGJ2UmVNUlExNWFGVVZPd2Q0ak9GS2NUeXhNRTYzRkFJalRaSnpXeS9TWERNQWM3Z1VEVUt0WFNEcHFpbW0xem0xR29vTkFxNmliU20yZjlMRzZ2NVpDb0p4MGtSTCt5YjA1RmhUUUwrUk9ucTlQWDBYc0FyTG1XVk1weDZFbzQxb1JRRVVIYUtYWFFUVm92VXl4azF3bXFhLzNwZzdBSEFzL1dRSXFQZk9RZVpZeFFhSTZiczVzdkN0bnQvN1V2K3pBcTQycG40Z0RYcnM0bldlZ2RnZXR4Z21BL2w1VWZQd3JCdmd3TGlzWndMWDZRZDlpYlRWSU5ubk14ckNiMlFYR29lUnNoK1RWVG52U3lSSFA4MkhPZm43NllYNlZBWjZmSElZRkRuTlB3S3VEMERBVWxRUllwUVJJdlE3cDVpa3Y0dWF4azZ5Z1c5ZDd5UUNXem9BUmdiOWdBQ29sVFZhNGowclo0RndQaG1OMTBveU53UWdkNW5ZQWUxOG52RE1DNUVrNHowaHRYN2FTQVFnQjJiRWtlY2tBRHcrWERMQ3dGNXRVREVDdHZ0K0h0OXIzWFh3RUNMUXRzSWUremRHUHNZL0RNSllFVmF4S2xCYlVaWkhnaFg0dkdhQ1cwaVVEbUpNQzErQTRhMjJuRG9BYVN3Uk1sRFRkRFM0aXFLcWRaSkQ2ZWk4WlFHMkoyQVo2UHBPZk1RQmZhT0FWN2lOdEIwVUFidUhWRVJJZklTUkFXbzFJM2UrbFVDQ0VBYnl3ekR6dVBJc0ZIOHRXV2J4djV4QVFHc2FTQWJiU0xobkF3enFUQVVLck56bXFLbnl2WmdEUUowY0lobzU3c216ZmRQZWFvSjcvM0FuS3VoVXlSRmNaUUZvQmdkZ2c4U3VFbjh3VzF6ekc5UzVBaXdHMjRIZ3VwNEFvSjNWeUoxbVMraU42cnpHQXREMmg0L0R0d3hMMGNZTUJLSkk2UmFHYWtwZ2pGd0JRaDZFS3U0cUhlVzdNamJpMUI4OFZRSXpRTXc3TTREOHA0U1NXNmpJWlFCY1NCc0hUamtyYWp0QXVHY0JlcU0wQWpUUW84Sm9DcG1reGdIeGdBVDdWL0lUT3k3NEFpUFpiTVVBQU9mU0NRcjVsVWFCQ1lxQWx1RkZUYWRxSEpDNDMwVUVmYUo5Ui82T2dYaW1ubkRwc05ha1hWM3Y1eSt5MlNIWUkzejRRVkIrWEVzQ1NFakRYZ1JIY1pCSUhCMlNHUEkvQzIvZ3FYd1E4aHZhTlFXK2krWFpSaVIyeGRQRDNjNnhidFRxUmZUVzZlbzNSMzZJRzlza0FBN1lMQnFBRVNnYWdqUlU2b014UVJhdkRyaG9NQUxVK3dhZW5vMzhJZVlrQWpKb0JraGJVY0xDYSsxTmZDNTBCVTdycE14MlJCelVrY3RzR0x5UUF0NWtPbXkybzkyeUpJd2JKQUlUZWg2TW5UbTczSmdORTRuQ1dwa0JrenZxS0wwQVhaekxBVUN0aHBRU0R4Q01XSGlUMWVZN1BjclV3ZG5vS25uUWtoYjYvdm9sYjR6UVQ0NmtGS2RYZ3RPd1NlU2F5a0Fpcll6SkFQMXFiQVNpQmtnSG9xUllkY0cwNklEMHJ6Z0JvS21lY1B2S1Vpd1ZnMzJhQUhGSXZQMWV3SGQ2WGsvVEQycUZQd0JuVGRGRXRKbE9VMkFDMEszak1rRk1zR2txU3NHR3E1Y25YZW1GTnpzVGh5OGlYdUxyR0FGQ2R3UUN3aFhkUzR0R1BaS0hWRE92MUZKVFRRRzVpR21KbGlDQnRTR0JabnhwcDhid0xVUGx5WDNUcENzVWJzUWdJTmY4Qzh0cGlBTnMxcGpEbXJrNkd5K0R6bWl5aEtCSHJCT283K0hSMm5BVWY4OUhLbERlWGdIdU9oajdUMkk1aHViVzFkdDRUK2pPblhnb0FHb0ZxaEx1MHpFY1UxS3ZsVkw1TW1ZdW1JUFd0M3V6MkdoU1Q0VlVHTUk4Rm9hWG5icG1oSTlEUWgva2M4dHpteUxlN3hEcHFZdVlDb0dRTGVtcjdNRmhENWxlNlpJRHMraFM1cWZNWjV0MzNhZ21JZG1nekFDbm5IK1YySGJFQXdlN1dvMlRrSTB4RVl5M1doeER0ejVXTUN3QjhtbTBsTUhmcXBoSlI5Y2FyMVpQVTJzcFRwSGl1d2lCeXByNkw5RUw0bE1xUTczS0tJdU9YaHFEWFRMU2V2Wlc0T0ttMkN3VFZMUWJRS005UDJzSXJOWkpaSGFWSHFRTTZJejkxWVJLMWVmdEtMSG9hZkp4MkxCVjAvQVVESEV5WkNLV3hVQUxaTGhrQWo4OE5XVmgyc1d3QVBrbkpuVG9BWUN1czBBYnEwTlNCNXpKa3AySUFLbjNGanV5VFFnbU9ncG9Cd29FY2xVYzJZVGZ3NUkyL1lnQnRLRFRQTkJ1dG02Y1hOQW5saS8yeXBSbGtaQWd3OFM4L1k0QytJWjViREtBeWt1Z01LeHZFL0dKbHJxUVBWd0hHbnRQWUN0YUYvdGI1RFFhQUtGZFZQRlN4Y2h1SWRvVUJodEJQbXBvQkVLN01mOW9NUUx1TGNmS3l2UUNndmJhc3J6UUVwWmV3N3czcVNZc0JJb1FFOUs4RXdHcG9ZTjFmTGdIemVWSEJhdHAyQnRIeldURUExZjM5c3IwM0NEcXFiLzhtQThCajBhTlNzbUpTTzE2WU9neUVwQzFzOUluUkZrU3FJZTdaNmVrRHBPM1hTd0M3V0thWDFyanFmYVZkWlFDalhza0FPK0NOMUpZR1FOS2d4UUN4cS9VRUJKTklFMUdZVk10SlIxTnc3ZHhKQm5mSmtEckRBMHBkZ1A2V1VkZU5mWVRydDVUQUswazVkbVVGcTl4aWVMdmkrTVdHUDZwdkhhS2xTVkI1OFRMdmNXUUpvOTBCMGRlSjVKY0xLUUpZTWg5cGdXMEJLSXhFTUFOUWd5NFo0T1BqRHhtQXdwaHF3RzFUY0RJQUFXbmMyMXJPTU5NQnNSVWtvcnhnZ0dlM0JOTW15eHYwVnRFcWd0SXk1dmF2MHJsREV3VTB4NUlCRUt5SW1FYjdZS29OTkFKSnF1V0xiYUQ3bXBLbVpSNzdpNENRTXZRaktTd21QMmVBS2dBbEdJQjVNd3VSSEF3Z2xwdTBBekJ6RnBOVUl5cWtsaHpBbXFWSlZJWjV2VWhENEN5REx3STUrK3NsZ0YyWWphRUcvQTREMkFUMk1DZG1EWVFYRU80QTVwUW9HUUJHZWU1bkl5MVFlOFNLU2RjVXFKaGw0ZHlKQklTNlhsVU1nTGgrRk9TcTAzVGFCanE5Y3gvaGZOSDRoem94VjFTeVNOUjh0bVNBa3NLbzJVU1VhRFlqaTlFTVFLM0V3U1FEWUJ5Y0Fjb2xiNGxWN0dMcGlLZ29tRTk2aFJ2bG5WaXFMS0FmZ1hPL1pnQzZnMjFCK1ExMzhDSmRWTTRBNzZxWHdndG9ZbUJvV1dYNENGL1RYZWRMcGE0dE0yOTR4MlpSRWduNjlJSzZteS9URHVOR1BLOFFCQlRCdS9aZGhKeXlqTXVjTFpPamx3VVR2WmJOUGxIejJSeW4yQ2twL0lNQzUva3lDSFdKR0hzQXRSamZZeXM1OGFHbEtYZ1UzazhTK3lvRGNBR2dFekRkZ21VQXBsK1MxVlorZ3dHZVN6WGd0eGlBdGdpY0ZLbWE1VFFoRCsxbzAwaFlDUUtaV1g1UjJsaXFsZ3dRdTNyNng3RnRaSXk2d3c3VEY4RFFKNlp2UnlrMVNnQkEzZ2VSbnZQYkFhSnNXVXUweUdESi9XZ1I0emdxL3NQMEFLbVR3bWhXOUNSYkZtOUJ2TFFqWXFDaUpqNjBZQUJwZGZ6RFZRYlFsNEptU0NjZzYyOHpiTXJpZDNPR1pJM2FvSFpDcVZ0ZFJzNEY4ejBUM1pzTXdPdks0b1dteFlXMWlaTm92ZEtaeEVvRXREODZnZnpQMk5jUHZPVytxWnAwaVlvNUhzMjV3eHlVa1JSazQxSXZwbzE4TENCNVJTRXZIOUF2QWtTak9XWnFWaGRNUk9Fak9ic1ZzT2VoemlRMUtYeEMyeDhkSlpvTnk4Z3hJcmNmMFdwOGFESkFJODBMWXBOZnJ6R0F1NWQ4N2ZlTmxJRThFU1JjemhDcXhNa0FnNFJTdDd1QU8vVEQ1VTN3ZHg3STRvVTY5QzRXWXhLZE85clhzV2NRUU80RXlqL2ZHTEZUTi9abmpGeWlZcXdJb1RUQ0RvazF4STZvS0g4anlJRnZLR1hmWlNrL002RnJJMENVTFdxSm5sb0ZFNC9BUnJHd1hEYUNIVWhxUW8wSVJKcnRzNGhha0J2M1RzWm80ME9UQWJqaVJRd2s5UDFyREJEMjNqNmN0MHhkeDhoR0ZLaXRaNGpYcVAwcVNFRW9kYnRMNTJjY0xtK0N2L05BRmkvMHZ6SERZaElOOFk5WkxSeEFUZ0s5RkFCZktuVnNhVHV0SjEwV2UyVVYwejFoaDhRYW5oSkJDcnNyRzNnbGkza0MyQ2hOb1NzQWlIcnpJbWwxd2NRWm9IVW5oeWRtbzgwSHBDYUI4NDlsV2JteGVQSW1sNFpMZk9qZCtHWVVORXFJWmgya0lZbVdxcjRzQURsdDNlbXpiOCtRL2RGMG9pQkZRcWxiWGJvaGljUGxUZkMzSHlpTEYrSnZGNHN4aVo2SXZGYTVqZndZZ2VxdEFMNGNMYmIwbnNTa2kxMTl3TEt0amk5aGg0bzEzSXlKV3dxa2svVW80WWlDNHp3MEtUejJ5b2gxZTVUL3hzdnNWZ1Z3bjJoUmxCY0ZadEU1SURHdUwvbkh0S3pkK3BheUo1WERLL2pRdS9GdEhNUVAzOHFXbUVJNk9EeHhHOUxybGRwK2U0WlliY3R2S0NJa1JVS3A5MVdYdkg0ZUxtOHlMYStMNG9YbDMwQ1l6amlKckU0dmNHdGZlT3k3RTJpWmZ3cWxLQy9yNldVdGZsZGxSakV6QVpBa05Dci95SXZZZ3djQmlhaGNFZStRUlVTWElRc0M3Ym9zeXlRV2FGRjA1djh5NWJIWHRJNC93bFNoUkN5MGoycDcyTWFIM2kwdmtWRDNSZUhsc2hZaVlkdUp0WkpaQnVScEF1V3djaVdPZXF5Q1JMb2k4MEdTWW9sMWE3a3N1eEpKcWlmblRRcGd0Z0ZHMFloVDQ1UmhjZVVDY2IyMFF1Q2JBUDF1ZUJLeGlvNXZ5eGExMkRGbFM0UTRjYUpZQ3hJQWQzLy9GbndaMEJsRGlNcVB4RThXck05eW9tQllhZ01KK2kzTEpJNEx0Q2c2OGI4dTduSlhyMkc1L0NPTmxSYVU3ZmszS2dOUkd4OTZON3VCaFdUWjVxSWFhaFJyRDZDZmJiTTVHbzRVUjdIbUJGVmpEbUljYzdJWWhoNC9PTzBlSFZadGg0dVRIV2lNS2VhektxZVgzRHFyUUhQcXMvUW9iZUFzMFU2d0ZWNFA2MjBVbWtiNVdzb1BycFVzS09wS21JMFA2WllBT05FUG5oTGo1dEFaUFNTYmJaNWlqcUZjNlNpQ2RWOFIrNEZBWldlWlJCaXdBaTNxdU8zRXdZVmRUOE55TzFHeGdEdGJEWG5TU0paK21mbjNJaTBXR1dCL0RRMk5yU016Vm1ROTVLWFZPQTlzSURUOGxJZW9oNTIwdHpLMG1JTTYzY2cwYjFCeHZLUy8wMFovZ0lQUXlHSFdoWnZzQVV2MldmWG0xSHZqbkdRQ0pabGVxVmViR3FYemt1d2RGZjMzOUk5N3FYbWo5V3ljZ0hnM3hOcHNsek5aWmpUb05tRUJDdFRkRG96YkVETVJQVjBtVWVqU3BCKzZyb3BpZ3RQQ0loQnBvcW95aVFWYWROTEovNVdqUmE0cmh1VXlFeGwyc0F3c25JUUpzb2FTQ2tLbVpnQXZ6NHhtY2hLSkYwQm02SlpSUkJZMHp1TFBLc0x4eS9IZysrOWErZ05USHpXWldad1FKbU1pckorZE5rb056QldoejlIWEdIU1oxQUVsNVE1RW5wSjZrWXpFNjhFT1kyZWQzVnFRbERzRlpIN2FlMFZSVW9yUFBYbENHMkJFcmFEb3hzT3Bzc3lvRUFubUJwYWdzUnltRWJrQjZRdjFlR1ZwVkFZRGMrcWxMVUwxNlNyamxSci9hTmE0anpLSjZmSERFZkhHNVArQ2ZGREVhZFkrdzhXSmJTK1l4dUxQK0w5Z2l3U1RJOXk0Y2dmY3lhNE5lb2ZRaURNcXFLOWRTQ3lHOVkwMnBDcmwyRDUwTmZ4cTYzL0k4eEp6c091VFJiakVFTlpEcDQxT0Q4YUNmQmRhcHFjOGQwcktZcWU5WGJrTWh3R2ZzdENPb2g1c3A5VTlXcFZGYTJaUlVSU1VPak04QkNtcG1CUW5DNHBDUVZMRUlsMjBtTGtGREY4STJNSzRyZGVvdk5GaklpVzY5ZDNldGRhc1M0dFd6cnVtOGNxQnpLMXBVNVE1K1poejJxQVd4QmM1Q01MaWJnZE5ZRnJrT1I3R3JPVU1lRzZrazZqQzMwOWtBR1lmZkFLUk1LTllDRHdUN2l3SkRjVmNDVGdGNWpKM2F5ek0yOW9CTWsrUXo4SE9nSlBGRnIrekpoWWxiVVlyblNzNnVycFQ5bjBtSmdKa1BQT1FyVmhIYWNRYzhacWJ6YVBSb3g2c0VMWGRuVVZyUUdvajZ0eHJwSFFUUk03YWxRZ2IweS93a0dxV0dVV3F1eklhd3dpWURDRFR5NktoK3NnUnZJZ0FVUjV0RmlxRTIxa3ZGK0ozU2dab1dNY284bzZqQXRtblBpWmpSY2NackRYUWZ4alNyRUtGWEpKUWhNZ2RSTituOFFxcmgvOTdwMk1Fd2VtYXlOajBwaWVoSkhzd2pzSkNrR1lCcU5JblJySUVNMkF1Sy9NTjdWdFJrM2szNTByRnRMRE5YTEYzbHBweDBFQXc0UjZzUmtBTkJqcUpseVp0TUtzNHZUSWxvUnoyZXJEd3I5WGRjeTlhUTFRREs0b2laaVJDUkNNdHBkdzNDNHA2ellJc003cDkvUmtES01VQlNwRWF2dmdEdEJiWjdBRFZCbmtYR1poT0JwQlhvQTRRWlJJN2hiZXlzUXBrSHlRcVFTb2I1dUU4OUN0Y0JzdUZ5MVB0WDNpaEliVEIzd3poUi9TR1d3SXhzcUpaSUNzMjZNWTBRTEpHbmkxZkJYU1QzY0NrbVlmZU9TbVJMQUZjaFIxQlljQ054Q2MrQjBGU1E4Nno4RTVqdE9uUDlRZnVhQm55c2s2RGJaQzU1UFdGdkF0MTJqVUgrNE0wTmIrN1VvOGU5dXp1b0J1WUowNUdSenlCVko0RHM2eGRPVWhzaFBZaWVYaFJadlQrcHd6UURNNG9VOGxzcWtRVjVkR3lNbUpVMXV5VXFYODZ5RlBCMm0yWXpTZ1RvN0hPcTNWa0hpOEttQjdLZ0l5czRKWTFaRStNOEVlQXQ4ZGNxUUFBQTJDTUdwRWhRaVFENERPOGVpVVMxWkFWSmxjTTlNMjNaalFVM2RXT0RZVWlocmVrcTl4bTdvQno4RURVbWVqRTVzblhOTEtXbnZuZ1ZKdGFqa3huQUNhRUEyTUx0VmpZaG45a3JJNGVCdGt5MEZySngrNm1GOUdBU1dwUWFOZldsRkd0TVdFL1dRV3VxL3ozU3daQXp2eGhseVZhcGFOOVZLWVliNGhueHZXWi9HdHJOcGVpN05wYW8rWG1RRHNvVVFsVVRaODhpSXBKWGRZUWhyQmdzUkVWRnlYK2pUdDlMQUhLQUJpNnpJcjlZcWtBVldFcFg1U0puZm1qWkFBL0JEdFVGU3dUYzVBMW1ZMVZ3UmJXTFZNTEFMblBQdVcySjMweEJ2Q1VrSkc5R29WdEVFRXUxSnRUeUFGeDdVVnJWQ3hTN2hyamdyVzZpZkJDcjhGY2hvSGF2Zy9WSG9XNUZpVUQ2UDBHOGp5TE1mc3BBK0E2dmVUWFIyc0dNRUVIbGRxOUNwak5Yb0VNUmFFSE9yVlpDS0tJeWtvQjRBRThSYVdpTjZheEtoUUF1ejlEQXNnQWN2TU1Ya2U1YU0xZG9XUXBpalQzcnpKQWxuTy9oeUNPY0RsdVFHSU9yaGNoV1QxVUNoUVRsakhGSjdJUjc3U2hGS0FuaGFXalZ3U05nY1NzUUdBclhsZDdXUTB3Z1pWUnZMakUyamo0UVFXRVo5Wlh0a2N1dGJrMFp3RHB4ZjFFVFZQZXNIM0ovd2tEbUpVS3htRjY2NWptMzJvTE5RaDA3L1VkdFhYeXFDeVVuY2l3M0Z3RGxHRk1XSUJWUWdFSXE2NXZBOVYwQUwwanNtSmozZFBrS0xGV1FXZURGNzFkc2tFUFVUMGdIYXFBMlVlSFZwMlJDdDdWa3JLaXNRQTJBeVQ5aWlQTWxMOVk0SDl3SDQrVzhJQmpaaGk0ckVMeERPclczUTFib3UyY2Rlam1jQ0MrRElRcEpSRmtwTDFRTGhHcDNjdGR3TjluQUZRME04Y2l6UnRMTGxhaThxQW90S0x0ZkZtUEZVRDNIY1VhRUZuMis0MVhDQ0k4MFZTWmpyWFNFUFNtQW4rbEk4dXMySXk0V1BkQ1dZa2FCSmNaKzNYM0RPOURodE5lQzVrZmFBVzllWVFiWW1KQlJna1I0RStNUjRFQmpBakE4dGg5V09OZWdQTUdFZ3VyRmgrVFlVWGwyem5vaE8yU0FjTE44Ukt5Q3BqU3hpV0FiWEpVR2NKVHJZcjUveEVEN0dGalY3T2o1Wm1iR2VGVW5GdkNnME16WjM1Mm1OSUMxRFl2dE1DTVExeXdRTVBTZzBVdFI4cTZ0ODdZSlRBQW5EMU0wd1A3RitwQXFvVWtxQUpPOUJERWk3Sk5NQkZFUVAzQVFUUDExRlFCMEl2THlsTE5sdlNRZGJySUFITnB5ckRhWEFLZ2lCS0IzeDhMYno5bkFIWkhhek1BN2JOUmloNkZMQUF1U3NDeG1XT1pMQWJ6Ny8rS0FSZ3NCSE1aekNoakYrY0xGS09PV1oyWkNrRDdYckVQekJwaFVUbU9ES0NhRTF0VE1ZQ3EwRGw4UWtidTVRdUlDQmVGYTFWN1lPaURIOTF0S1NWc0xpa2pBZ0JGZEdzR0dEQWZXS3RTd2JuVUFWenNXRzNLT1ZGWjBYYVhTMEI3WldpSzJodGJzNWU3RGpBTWUxUG9DNkpsWkxYWSswaWwzZEVwYUwwSlQ0VnUrZGNZNExUSnRSYkJ2cjRSQkcwNkF6VXRjVmJQTWl4M0VMczdUUGVvRVJZcmdETkFQMXJOQUswcW9PT3cwN2NaNE9NYUE1aU53WnhxekkxYUFHZnoxb09HTmt0Y1Z0MFFTbWN3d09VdWdJc0x5MXM2U0t6RGhsVTU5YnJoSkZONlJEZnVJK3FwNWUrTHJkMUtPbU52bDR1VmdrR2NBYkpYQzdvR0F6eHhIeWxzT2ovOFBRWmc4WGxmNkdlK0VmeWtPZGlVY3E4dzZhaG1xbmNVRGI0R3FMZ2pCdHFkRjluT0pRTmN4T3JTVS9kN0RKQVp5bjA5R0JiUStRVFpxQURJcWZsT21sdjFIWm1SdkR2anRHbzdRSVhXR21HYkNacnFqbk9IRERTUTFOeFV3TTdDaWNJSnBEditqcG9SYmUwTDY4QmdWOWdCN2xtbGNHMEp3NWd4VHYzckF5NE1QUWR4WmQwVXpmRHhGeG1BbnhudU9xcjB0dlNBc2IyS05nUE9wWW13RU9KeXFhUXBvQ3ljTVNPOGExU242S1FTZUpVQnpNSDM4SHNNTUswTXc2Z1RWQ2JQZUhSb25BcUFjOC9sVXBxNWxjVHl1cDYyZzB5VURHQ1JYMWxDN254V3E0RlFSS20zNjFVV0gxU3RLc0JXVTlhenN3cFZjK2MrRzFWRmhLRWFWVkV2Kzd5bUxiSHZNc1N4bllmS1FHekpkMmxnN2g5K253RVdQRnJhVjBJaUV3UmdGcmNzTTZjS09Vc1FOZzAzZ1p6bTlBMVBFTVBzbFZhWUVTVEwwQndad0pDTlB0bmpEUWFBVC8veE54a2dNcFRqOGUwUTBpei9LbU9IRmNDbVptQW1ZUWVnN1libVd3WkptQy9BNHozTnp3MUR1NmJWVVR2dVhQMXV0UGpZSG03TjBzK0hoaXFSTFpSS3Y0VjFuOE1UNGRXb0RoNEV6YTFTSDE0ZlVidVRXZVFPVGUwaWd0WkU4N1lxdlVsaVFQY0M0R0hPM25ZVlRVamp0RDU2TElmT3ZNZXd1WnV4cHdBTHlEUXBxaXJPaW96SnIwWnVWbG9Cdll2Q0dlS1RqeENtYlBDTG80TDBGUVpBVU5mdk1nRDFDLzZxR2VBeEMwQ3JhVklOK0hPYm1rR0MvaHB5V01zeHIrM2pBamFoSTBNd0xNc2o2OVEvb0VyOW9BSDFsRlN3QkpJa0lGUlVmVlBBUEN2Y0FDd2UzZHhUMXRXbzNOMjBodDlYVFlKa2NITUhyMHNuc2J4a09wbTlkTGp5SU5NV0R3bndrS2Q0ZkhyVzBhVTBWcTVvbGZQYno5THJodmc2ZExESUZNbU1kNDI2SzU3bS82a3NMYld2QzJld3lrT2RyTDhNQzc5a2dLL3ZQMldBajJzTThQb1dKZUNCRk0wcVU3b3lnUDdhTlllUEhKdnNNRFBNczRWQkJrc2RhYWJVZ3krM3h5bFIxa1RJc2xWUjRhWW5MYnF4aGZKcVZEc1BnamJYOFFpMTNGSzdaSVVVaStQcGRCa21ndEZuS0VPVURnZXIxSlUzR1BERlNzWjBrK3VWUkMyMnl2a0pvZEx2RG14QUFSWjRlZk40UUV4enI1cVFhZjZ6dEpRSFI1YWxOTEwyQWd0dkdQMnZNOENQUDJLQTdYVUdJTUtGbVNQN05nY2gyN2lrdzVQSm1keTNEQ1JwWjJxQllhT0dFZEE3blJHcEo3WUtUb21xS29wWGZkdnZnMzdhdXQ0OUs2dFIwZkZ5UXNoSnhCUTVkR0FHNmNseU83cDBJbEJNSGhlQlppd3o4WTVIVlpVM0JPRkg0c0ZSSDRFeUdVSlp4OVl3N2lVaWJ4UlpVT3l5aGN3ZS91d0JXNnd3eEQrTTVJK0loa1hoakFqeHdmdnlvY1FSN1ZrODh2Y1k0UEVtQXdqQncvUmE2UUJuMjNON2dna3ozYkxLMU1adDArdWR5K0VCYW45R0p0MG1HN1VKaitLU0p2UUI5ZkFuNnlPVmRaR2k2dHUzVjdqWmVqV3JsNnFhbFUwK0JrRXpmTkJvR05BQkMwWDBnbHN5L0ZNbFRCbHF5bkRKVFZtOEpBcUQyUitJOFViQU1TWWhoVEVtWTVTWFlwa2NoeDlPbzBJSHFVdE1BTURuUkFCRnBMcmgvcFRhQ092eXdrVE9oZ3cybnBqWUFmOThLMzZSNVdOL2l3SHlSODBBMUpJOTltd0pHQW0ySzJ1enVubWh4eDVGcUNYUE1ZdlhTdVp5VkFYc0RKZ2lySzZuRVZuR0dNZkpPbU5PdldmU05LTjN0YkhxbXpTakZCVWdHS3U4bWxVVWJucmhlc2dBWXFPaFV4VU5FYkRXSTlOTjdnbktSTEM1TmlkUlhhOUl6K0hmWHV3SUhFQ0VTQzdMR1ZOck96QStLODZIWUM4ay9TeC9RSFJBcENVaWhuRmJ1UldRSHhhOXlod3ZpbDUxK3Y4dkdTQ0RWc3FOcXloclpmSksxRytBVUdXc3JiNndSck5MSjJleWlHbEdYTEtpVHY0SEdVOC9tWVBqb3BhWTFXY1NnWWRJOUt4d3N3R05ObHFNYXhNanJUVGFNRm84UVhTc2tJTHFpazVMTkJDVUxhZmJIdkZ5SUQzb0lqOFQwVlVVQkFPaExMb2xYTDBwaG1jVXltenNaa1UxU2h0SUhoN1lVK2tqZVhWNngveWVHYndLMUo1QTUzQi82NWtoUGhaTzArdGhFMk1HSUpBZkJjVC9BZ1BNR1dhR2VFc1luZWFlVnh4MkFtcEVUMTVsU21lZ29TYWZZazdyRDQyNWhoM3lFZ3lMdldtaVd3UFNNN1dwNWMzK0VzcnpPRWpHRXppZmdCZGhiRHNtRzRHU1dDN2NGVHZUQnJIYUJtVmFNUzMrcERvUXNqWUxncEZRaUc1aFRJdHZ4cTNVSG9SeTJaNHRNaFVuVWQ4b0lxTm5tTVMrMnd1RmsxcnQrTjVOUDZNcXByelhNQUUrQzJsN1lXNkFBcEVjUU9qLyt3eHdLT01CNk8xanZYc20yVHZ0R1hDNVk1TE9ISktuQjR5K0lVWEJBWmdhTG9meFErbVBPWEE1N2tJdzFuZ0w2WXpVU0lsOHpiVjR4Z1U2aVhUS0FvYnN3aUtnWGREZ0dFb0JCQ1YvRzRqM2toTlpUcy9kWDdQY2tPc0l2SWY0c29yUFRqVWFHcUl5S2tLY0lKU2ptZUVDZ3J2REhjZnpNQTVzb0V5SHZRZlRHeitRbjQzeGpHTG5PUGNZVzBuNjBhQnBtbG1VM0lZQjRMLy9CZjJEQWViekZnT0VPU09oUmNrQTd1MkxldmRFUm1NQ200WUc3Z3locUFBLzNYMncvdDRzd0FoRTVEbWtlVXcwYkEyRzlXVU9qVm8zSWJoRXZtYS9selpNSXJuU1Z5QjEwQ01uUVRPeU92UXN1ODdmOUxlM0V6T0FvYmY0UHBXMFZIdTU3YWM1c2FqNXptTnBhbFFRTFZrRGtJSm9BNW83MUt6bjBBRVYyenpBR0dDMytEckZHRVJqTTF3TnhZT21URHJIclJXaDlnMDIyaVlCV0R4ZTZYOEhDL1FvclV4Z2dEcGZSU1lrb1RlODQ3WHJNYkpibUJhdHBBclZibW5vbXdGMlFtRnN1WE4wL3B0MnBOVG1XbDNXSVZ1aWhVWm02bEVVNGN1cTZZWTZJdkkxKzcyNEtRdnZFSmpGSXNiY3lpOEIzRWZnNHlvQ0xQQ1IrUnRDOUVJYlRRbG5oTVJwT1ZPbzhxNGJNKzh5dW9WcEpyRWZYZytLcUlwc2RJVWlPcWRSYXhhaTIzcCtJRkVBOUhKbGVqUGQya1lDaloxNmttQ0dMd3ZmbXhWRk45QjZ4SnhBc3Y0TCtjRUFtOEtFY2MrMEFIVytDZ3l5UjA3d0IwZWIwTUEzMXFXM2xaUnluU0FUdDA0ay9jZHBxZkpxbElrMlJFMi9ZcWR0ZSs4b3dtYzBRbXBpeXUxbjBDMHNjbTc4Z2NVQUpqVTV5Y3VZTzkzUUE1Z0I4eUY1VHRlMXAvUGhJdGplajRhT3c0U3pteXMya2tWdmZTZ1lvSXFOMGZRMHhabHNqS2wwTDVQNUhRWXJjYUhSL2NlMHJDeGY5TzR4bFlqeGRpVlBxQzBCazR3cDV3ZXVBTFl3c2V5SlNvb0VZV2hDN0RSaENFV1F6S1BPVnhFSlNmUUg2MjJ5ZGoyc2pOemJqRlZXaDVac0dFTkFUS21IalFFdE5LUnNQZzlrZkl4NjB0THB0alp5SUlTMkI1djBoRWF3M3I5QnRqUHlYL3ZjSmorTkF1Zk5uRm1iRWRadVFKQTU1b3dGdlNnb2dZV29jdi9pWVJSa2dMWkZ5Z3RHaUVhRkU4ZFhHS0IvbFFHc3V1QzZuNXBVTEFGekFvTWlvbmVnZFNTYUFrREFpajFySnUvQUpHVGU4aTRqYVVGdDBCeGtwdW5SQk42VVBsdW44RDhsQTN5ZllsZUp5WWU4QU5DNWNuZmppcGIrd0JIOGVNZEdLeXNFUTg3SFBua0RhTEJoZzNFSnl0RXhhZWsyN05wTGt0SHdKRmF5Q3BhTHNNdEM3NFgxbU1HUnVwWlphdjhOalAyWUtOcWRheTF3T1o3Q2t0N2loWkFOMlhBaklFSE9jTlYzYVpIbFZsRUt5b3RSSTFzWkN0RDBLSndqdTF1YkFlWUZBMWdZbk9WUmQ2RnVTUTFYK005VFhuRUYwZUpHWjZ3RGtZRFAzd1YrQzBEUk1jRUhycmpKVDh5ZjdkWk5tQ2h2eisxa3d2bUsxRERKQUxZQmZtY2I0d1REZEVhbkpqbVlvbTFtdEZYUmxBSFRDT2FyN1ZqZndRSjdGcXRBVmdqbG5udThqTXh0WXgvNGUrQTJnVTV1T1pzQnFuVFhETVlIbmhtdW1SNEN0NWl6K01iVytJU0pwZGFEaHZDb2REU3VxUU81OUZWekpDT0RQZTV4M25jR2dJdFhLZUZaZlYwTHFsSzA4am94ZE9vL3VkWmlwZ0l6bEF5UTJuYzZoTlZiUlJFRGtxRjFhd1lBVVJXNUJvaWhpWGkrQ3dZbkFGZm1hZ0lYdWlZTWk2WEpVSituMEtCY0V5TjVRd0NnaWNESHFweEYyWFVSVUZHOXJBekswa1NOOHl3MDk2ci9rYWRzQmdPVXF6S0NkWSsvdjRMOHFoWlNhZGhBL09NN2tRU1dWaXNBOE5SZlFDcTZ4LzF3OEt6Wm9EWG11c25wWVRoMmxmWUQ1WXJNQzZvc0FmZHprOVlLVkExZDAwQ0ZnQnI1N1F3UThaY0pwMEZQMmJvUkhhbHBhSnRGTDdUdGdPR1NBZVF4YTRqbUN3YkFzcVMvc3VJNGM1NXhDU0JSWFdWWldRVWwxOGk4bkFKTmFhbTRiY3lHb1JaTFN0ckU2Wi8yUm9pTldjRytRZ0FrQStTZUYwc3J5aVRyN0MwTXluQk9IT21HaEx1S3Bwd0hPbjFOZk1NTWE4b0FuanAyOG5jN3BxTFpwd3hIcU9yQWVxTUdhVVdtZElkME1HQ2trVm5NbnFKZUUrUUFkU091aE91RkI4WWFBeWc3WUdsT2E0VTVFTWtBakhzTUJraEFUWiswdEo3ZU92NHJBWnNhWGxBb2MzTW9CSEkwR0lBWmNtMFhnRWQ0VWpxNmxERXh0SlU1ejNKdGZMSk55NGc0WjlmSU1MbGh0MjRwVWlkU08ybitmVlFmUVdqZVIwaGxwR3NTK3BzQVlJdk1uMjZ4c0ZTSGtSNkczWnJwMnJYdTdrZyt3b3k1ZUVFYksvam0xRkJ2TEVEeVB5ZzJlS1RpUEVKc09yc1ZjcmwyT3RoWStxVHQ5M1FiVzhoTzZUbDdUeFlrUTJMNWZnMmdYdmM5S25KempRRVlBclJJQnJDNHgxRXdBTlJzUEF0MjdhemhzNGlHSnpMRVJEMVltZUZYVkc4aXJybTdsOG1ic1dNdXBnR2JpcTJwazZ6S2VaWkU5ZndWaEd0RG5vZVc5c1d0VkhUQlBRaHFrK1plNjE3bkxQSlc2azlwNlFNcUdFQ3VqVDB2YSttb3RVYTdkVmhnVUFiVHlvMGRwYXViS1hQbmdBTzRZMXJEVXp1eHhHb2I3dTBBTWxXbFBEQThNbU5VK0M0MFdRS29Gam5tcFRjWFR4WGF1MVhQZTZ5NkMzNWp6aWNENk9MZVJOa0tSK0pYREVEeDNvc2xZS3p2dGswR2VHZGRqeDcrZ1JyWURxWGxOdERWRllMTkxaQjd4V2xOKzU3RUZhTWo3TGRiQmpzV3hpa2xtYlJsbWZOc0dVVDFERFpFOFlWR2hza3RCS1V4SmJ0SWJmeHIwMXhPUXBNL3BTa1AvTURmYmZvalF3Z3BhQ3VtWmVWQnR3NXdyMkY4cVhUVDdyWFdUYkRTbjBwSzVLbWZLM2FmNVllNXR3UElWQ090WW1PRUpEWVNCQ0s5Rk8rV1hXWFhxSXBrejJLNWNHREdyQ2RydGxvVjNwRURWcUFVZWxlVWl0YVEzWjRoNlRJZ1R4R2laQUFaNjVJQndKZmdJblFSL2xHSDB1STFJQlFwbldIaFovRnNYUk0zYnVHbnlWK1psbnRwd041TEh3SVNTVXFqdzU4S2VoS1ZlVmU0bDZaR2hyeEhjT1FyQjFSZHBIYlFIRVJIQThuLzh3OWIrb0NpWVF0WHhQWEFHamM3YmJMYjVpQ3l2dmljVXc3SVZBYXNHUTJzcjB3Tjd1V1lYR1VBOHN1UjNCaUpKSlltLzdEVEpzcE82SStDUzlpbksrOW9IVjZpY2N5VWJzUnVIT05NN0hHRFZjR3hFUTQ3Yk9aNk1jTHRtRGFqMzNoQlRoRm5OUU5Fa0dybTRHaUYwbkpPazYxRE9pTmZYNlJzVlNLbmR5KzlnUmhSdXZveHYwZ3ltOGk1LzBxaU1oaGdFelArdU5kMmhCQVhjc3JWeDZLTDFQNG5TSzVOenNOZlFuTDdpYjlKLzJ6bWZ3d0d3TWVZN1ljcXFxbTQ2Rll5TUtQelFMVXZDRjdzam9tZlFybjF3VG1ENUFZOTYxd1BNc3MxMGtJY1BxVnpiZkdRQklNZ2JOQllncVh1bE1OMmx0ckZ0NEZyZVNGaW5MRU41T1p3ME1TbW55QWlCQTh5RTd2dEtSYlNzVERsUFJpZ0h3eEFtR2dua21MV29iU2MwMXpZUWpydnFZQXJpYXZnTzI2L3B0eEd5MEVRZGJQeFdTdzBLeWV5ZGlkUnFiUlJiUk82NXV3Mm1yYTdTRzM4QzFjZmlCNGsxNS9TOGE4MCtvQ3lNZEV0R1dBWW1qbTdWekFvZTlZWHN5cURBMWpqaDhCSzFmT0YyaEFEemJyYytFSXNXUENXKzhjNlNqT1pzbWZMTEVJNG1Obys1MXdwdURFOEtLcllrbFN3WUxWQnBjK1cxNGNSME9qcU5jUkc2TXN3cTAvYnFpQmY0am0rWnhzcWJDd1lIakRSYmlSU2pGRGFuTk94cFhZS003Umd5bW1OakdqVzBKR1NHejdRME1RUmp1Y1RlVyt0RnVSY0liNXJlWTYvYlVhemgxMVYreGRTL2w5di8wWDdGLytaQzVEMFovT3NuMkFBbDNXUEdETnJVWHhnUXJtT0tNOEZLMzNESlBmK3dxMmVpb0ZGSzJYR1duSFZvUmpjdjNJcGJ5eDYyMzBabWpGY2JKOVpNWmNid3lqL3liMDhNUHlzTGtmblkyZkhmbHpLa0Uvc3AwZWxYVkUvSkhOOFUySGp6OHlHbVVreGw5ZGlkblJxcG5UbUJrdjlISmpXWHo1eFp5UTBKYmVhUkZNUjV5eU9pWnpkU1ZRbzdoNjVrMnM0L2ZpVTZWVlgyWlRPUm5lUy9ILys1My9ROHo5Qi9td2NXS3YwcXZ2ZHRGVnpCNHpHbVdNZVN3WFVmSkQraklNQS9ia01GQXdndnlnQU1LcUFpbkFwNzN1UWVDQTFGTGZZZ3c1QTJ4MGFyYXhrVktWWkpEa3hQOFl3KzVtQzdOVXkreUVoSXowTHBHemtyNHFRRElUa1JqYk10MHlLcVNic3FtR1NmNVhTK2Y4bjcyeGI0Z2lDSUJ3U0FTRVNDTDdsSUJ3WUR3SW45Ly8vWHFiN3FicWEyZnNVUkJDdGpYdHVhUUNzN2RsK205NFNxQjN3UFdaTjhMWHZyeUpLUk5SRjA4VVRQeTZHREkyaytTYnJ1U0dUaGdrVlJIUGhOQ1EvRGZSM3lMOGdmMnJ0SGsxV0VucUpnOGxCMXZQL21UZTkxbCs0YTZSNUF0eE5nL01HMVM1QWhRZTEybnVtVEwrTFZBNFpDYjNhKzMzckYrbGk3d0szU2F1S2hEVHk5cXFLdHVGVDYvZG96OVFXQlNiWXpaMnlES250K2dZZkttUU9TODRSeFEvTDZ1eDFlNDYyRGdpOXFMdTE0Z0tHSEQ2cXlvZEQzNnpuZW9hM2VTL1VDblErYlFYUDl4YzNRT1A1dnM1TDMwK1FpUW5lMC9Ia080QndzWTMvQ1hjdm96UDdGaUE4Y0lLdG50QjMvZHBIN1lKbFJCOTdndkg0ZHRqN0kwYzZEd1k4OXB1YUJhbkpvc0xUN2VOS0ZoVklCQzZGYnpUQk9BNGI1UXdYTy9wTThNVnoySEFyclZablZHMzkrSllMZkxzNkRVVGNhRm9ma1RHR0RHMFVMN2N0Ni9sUnhvMDVYMURCbC85QzJXa2VBUmljKzM0Q3VjYVUzL0gvZkFjNEVYUmZyODFWUHBDYXBaT0FkL1V6N1lEVHlJWEhVZThZcDFiYlF6b0x1SnA2QndOZ0UwVmFSbTZ5c1lVN1lQQTM0ZTJYTVU2NnJnODRaMGpyQ2Nad3JPeE1SdTNXVWo1SXBzbWNjMWh4Wk1hVUhXNGwydEtCZ2h0MWl4dVFaaVdpK2FhQlBwczVUczl3WU9OZXFWZWdGTjA0Z1U3WlBpNUk2cVgxMS92ZTA0Q1dKTUMxeG1lN0RGRHQvNTVLSUgvaGFnenowYUJQdDJ5UkVLUFBHOEtnWXpZRDkxdlh0c1pvQzQvaFR2RjB1MTg0WjYyc0poaUxLOWhiMi9OS0NENFRxT1hJS28zQzhjZldhTXVIRUhIcjU4aHJHYkZqcytpcGMyR2NvM2doVWkvVTYxRHgzb0RDUVBlaHV1K0hqT3hYWEdQWDBYc1NYM21DeTF0UGt3YWsxMTQ5K2RkRWlMOTBBNmpCLy92SU1YZ3c2ZFNuMzdzb3ZJb0hQNU03NWZTYm9oWmgxSWJITDNOb2haRE9qRGNnNGV5dEpRQkxNczFLK3hSM0cvUEdaR0ZpdnNLZ1dibFJ0M1ZGVWpTMWlCWWRxU2UwMmFQdjIwSVpIeWVDY0l2Yzk5TnlWejVOcmpHdndicXRtVzRkQzFDQ1lZdHdDZ0c4V1dIdlZvQXViWTJ0UXZSZTZkVW9ZOVMrUnhNZldMU2RFRXQwYlRqZERSRHQvQURXazlwOC9MSUlXVXdvWWl0eGY3ZUowem5jMXVHVFpjYldiYk9yNS8waWxmczYyaUp1SFBHZ1dMNmdBNjdmSHJWeFlrNEZFL0RTVHpDbmd0czFWcGFsOU84Mk5BYjhha2hBU29HZCtFZ3pVTmNFcmp6R2lNS0cya0x4NVZpMGs5cUdPRVArOTRXQk9vemE4bXZlcEJDQjY0RDBvOXlYalNXNEJpODVvU3FXYlp2RmhqRnJybXk3SWxBM3FyNDNERHZkYlBMZVBhaWZRSzFvMmwxUWFqbkxVa1hBYnFMdEVkOGFFekkxQXhBRXV3R2NuWGdhQjYvMEdIcXpTVkc1N3F6YVRVendTdTVEQ25VWU5kUHdjOTRrVVRUYTFrZTRYRjdtMG80MlpaL3F3SUlsc1ZXOXRHcSszajFTRG5ibFM2K003V2F1ZW9hVHVhL1pPcFNEMVlsQ0pQNk5nV2JaNVpwMklFeVJrRm0zUUMvNFhRWkRiQVNYczdVa3hFeHNEVDZIZEhVK0pMeTBoUVg4R2t3NFFtdWt0dnNXeE5xeFpaMFdRLzQ0T0J3eVJPWkhkY3crdVA2ay9VamE0N0VieHF0T0ZQeUJ1UXJtL2tDdDFwZ29NcW96cUYvYWt6SVlLYkxMTmR2L2RiWDNaRWxpb1lta1F5ZFBadGlBUTlRL2NiQmNya0I5MnpLbmp3cVVwdkpWaHMzdTBYS3R0Q1BSZXp3d1dweUQ4Z2RjQlNNeFRzY1pYdmk4RXJPOC84bUNYMXhBYldQSmh5VzZYZzBiOGViSE1XRlVhUFBiSkFseEZUQUpWelNXdmdMNVB3ZTZkMHlWTC9iS2x4SGpoTTN0eE9PYUJ6ZlZMNHdlWVAxWis5SEx1czdWYk1wZ1FYNDFjRHdkQXZVRmJGb0tsWEJiUG43WlM1S2lpN1JOSnREaUVqaC8rb213dnBCTFFkYzVERXNUdzI0T3kzUnJCTFFUVy82c3hMb0ZzdUJqM29HVVRjb2tCSVp0YnJWU2FZU09LMjhXL0d2dkRGWWJpR0VnYWdodG9hZWtsM2FocDF3S1lmdi92MWRrV1g2YVFDK0Z3SnJxT1JmN2FsdnhXcU54QzZKdkRlaitXMHg4cEZ4Q0VJU2pFSmZwSTFYaUIzL0FkMnpNcVlmWUNBTVM4QU5pTmpjbWtkalFmK1c1bCtPWFlmUXZVMW5Zb1U3YUtRUkIzdmNVaTFtUDVaZG4vZE1memxRZDNzaFlzQVJTd0dleXAwQ0JDekh1VElUSFJlWENhOGhnM2dTZjgwT3pwb1o5WllDWHlCeXRPNDVJekJJSVNGMHl0YjljaUxIWkh6cjNoZXR2MWFvQVFaQVJNdDJjRlZMUnREZ1AzUGE5QlNOdktRR2Z5KzRqYk95aUsvQS9hS1BnaGVKVjVEMHBMNnhsRTNmV0UzdURiMUpleHVFK3I0cXUzQU1wZERmRUNkZGdBVHhOTUoveENBQjhneUZJT3hxMUFKNGhMNEJPRnZnWmxMMGgyWGwzVzAyc0o0Qi9lS01kanNJZjZRUXJVM3pCd2taZnhqV2k1cDVUWWRocWZtSTlzUVlGc25Bd2tWYzJzVUxnTitpdUcwanhzTlhFZTJRRkNncERCTnZNMk5qSjYvaU9sYnE1am5ZMnl3UDYvSysyQUFxdmROTE52RzNaeURJRWZxZkE4cnJJTEpOb2h5UEFDaFFVaDRKdlpuR1lENEhmNUxLNVJBODhEN2hXQUNoUUJBbGQwNUZIWGVEM0ZpT2JGMFhkaWVheG50amJTaFMybGFWZGg3blhOZnBENEdjaldoU1YrVXJXRXd0Ui9BQnR3elltK0l4U2x3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuICByZXR1cm4gaW1hZ2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmbnQoKXtcclxuICByZXR1cm4gYGluZm8gZmFjZT1cIlJvYm90b1wiIHNpemU9MTkyIGJvbGQ9MCBpdGFsaWM9MCBjaGFyc2V0PVwiXCIgdW5pY29kZT0xIHN0cmV0Y2hIPTEwMCBzbW9vdGg9MSBhYT0xIHBhZGRpbmc9MjQsMjQsMjQsMjQgc3BhY2luZz0xMiwxMiBvdXRsaW5lPTBcclxuY29tbW9uIGxpbmVIZWlnaHQ9MTkyIGJhc2U9MTUyIHNjYWxlVz0zMDcyIHNjYWxlSD0xNTM2IHBhZ2VzPTEgcGFja2VkPTAgYWxwaGFDaG5sPTAgcmVkQ2hubD00IGdyZWVuQ2hubD00IGJsdWVDaG5sPTRcclxucGFnZSBpZD0wIGZpbGU9XCJyb2JvdG9fMC5wbmdcIlxyXG5jaGFycyBjb3VudD0xOTRcclxuY2hhciBpZD0wICAgIHg9NjM2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIgICAgeD01NzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTMgICB4PTQ1MCAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMiAgIHg9Mjk4NyAgeT0xMjQyICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMzICAgeD0xNzE0ICB5PTc2OSAgIHdpZHRoPTY2ICAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzQgICB4PTE5OTkgIHk9MTI2MyAgd2lkdGg9ODEgICAgaGVpZ2h0PTg3ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNSAgIHg9MTIxNCAgeT05NTEgICB3aWR0aD0xMzYgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM2ICAgeD0xNjEwICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzcgICB4PTEzNDEgIHk9NTk1ICAgd2lkdGg9MTUyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOCAgIHg9MTY1OCAgeT01OTIgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM5ICAgeD0yMDkyICB5PTEyNjMgIHdpZHRoPTYyICAgIGhlaWdodD04NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MjggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDAgICB4PTEwMyAgIHk9MCAgICAgd2lkdGg9OTAgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MSAgIHg9MCAgICAgeT0wICAgICB3aWR0aD05MSAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQyICAgeD02NjQgICB5PTEyOTQgIHdpZHRoPTExNCAgIGhlaWdodD0xMTQgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDMgICB4PTAgICAgIHk9MTMxNyAgd2lkdGg9MTI4ICAgaGVpZ2h0PTEyOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NCAgIHg9MTkxNiAgeT0xMjY0ICB3aWR0aD03MSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTExMSAgIHhhZHZhbmNlPTMxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ1ICAgeD0yMzMgICB5PTE0NTcgIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDYgICB4PTI4MjggIHk9MTI0NSAgd2lkdGg9NjggICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMTIgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NyAgIHg9MCAgICAgeT00MjkgICB3aWR0aD0xMDkgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ4ICAgeD0yMzkyICB5PTU4MyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDkgICB4PTExMiAgIHk9MTE0MyAgd2lkdGg9OTMgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MCAgIHg9MTQ0MyAgeT03NzIgICB3aWR0aD0xMjYgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUxICAgeD0yNjYwICB5PTU3NSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTIgICB4PTE3OTQgIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MyAgIHg9NTM5ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU0ICAgeD00MDYgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTUgICB4PTIwODIgIHk9OTQxICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NiAgIHg9MjUyNiAgeT01ODEgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU3ICAgeD0xNTgxICB5PTc3MSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTggICB4PTIzODMgIHk9MTExMyAgd2lkdGg9NjcgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OSAgIHg9MzcyICAgeT0xMTQwICB3aWR0aD03MyAgICBoZWlnaHQ9MTU2ICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYwICAgeD01MzkgICB5PTEzMDcgIHdpZHRoPTExMyAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjEgICB4PTE2ODggIHk9MTI2OSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTkzICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD01MSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MiAgIHg9NDExICAgeT0xMzA4ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYzICAgeD04MDAgICB5PTc3OSAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjQgICB4PTE0MjEgIHk9MCAgICAgd2lkdGg9MTc3ICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xNiAgICB4YWR2YW5jZT0xNDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NSAgIHg9MjcwOCAgeT03NTIgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY2ICAgeD0yMjIxICB5PTkzOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjcgICB4PTE4MTEgIHk9NTkyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OCAgIHg9MTY1MCAgeT05NDYgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY5ICAgeD0yNDk2ICB5PTkzNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzAgICB4PTI2MzAgIHk9OTMyICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MSAgIHg9MTk2MCAgeT01OTAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcyICAgeD05MTYgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzMgICB4PTI5NiAgIHk9MTE0MiAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NCAgIHg9MjcyICAgeT03OTAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc1ICAgeD03NjcgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzYgICB4PTI3NjIgIHk9OTI2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NyAgIHg9MjE5NyAgeT03NjUgICB3aWR0aD0xNjMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc4ICAgeD0xMDY1ICB5PTk1MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzkgICB4PTE1MDUgIHk9NTk0ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MCAgIHg9MTkzOCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgxICAgeD0yMjIyICB5PTIwNyAgIHdpZHRoPTE0MSAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODIgICB4PTEzNjIgIHk9OTQ5ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MyAgIHg9MjEwOSAgeT01ODggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg0ICAgeD02MTcgICB5PTk1NSAgIHdpZHRoPTEzOCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODUgICB4PTEyOCAgIHk9NzkyICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NiAgIHg9Mjg3MCAgeT03NDkgICB3aWR0aD0xNDcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg3ICAgeD0yMDAyICB5PTc2NyAgIHdpZHRoPTE4MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODggICB4PTMxMiAgIHk9OTY2ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OSAgIHg9MTU3ICAgeT05NjggICB3aWR0aD0xNDMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkwICAgeD0xNTA2ICB5PTk0NyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTEgICB4PTY1OCAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MiAgIHg9Mjk0NSAgeT0yMDQgICB3aWR0aD0xMTEgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkzICAgeD01NjcgICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTQgICB4PTE1NzAgIHk9MTI3MSAgd2lkdGg9MTA2ICAgaGVpZ2h0PTEwNSAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NSAgIHg9MCAgICAgeT0xNDU4ICB3aWR0aD0xMjEgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTcyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk2ICAgeD0yNjIyICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NDkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTcgICB4PTE1ODUgIHk9MTEyMSAgd2lkdGg9MTE5ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OCAgIHg9Njc3ICAgeT00MTggICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk5ICAgeD0xNDUzICB5PTExMjMgIHdpZHRoPTEyMCAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAwICB4PTEyMDkgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDEgIHg9MTMyMCAgeT0xMTI1ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMiAgeD0xODY2ICB5PTQwOCAgIHdpZHRoPTEwMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9NiAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAzICB4PTEzNCAgIHk9NjEyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDQgIHg9MjYyNyAgeT0zOTUgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNSAgeD0xMDUwICB5PTc3NiAgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA2ICB4PTEzMjcgIHk9MCAgICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDcgIHg9MjQ5NSAgeT00MDEgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOCAgeD0yNzU1ICB5PTM5MiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA5ICB4PTE5NzMgIHk9MTExNyAgd2lkdGg9MTY4ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTAgIHg9MjE1MyAgeT0xMTE1ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMSAgeD0xMTgxICB5PTExMjYgIHdpZHRoPTEyNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEyICB4PTI2NyAgIHk9NjExICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTMgIHg9NDAwICAgeT02MDAgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNCAgeD0yMjgxICB5PTExMTMgIHdpZHRoPTkwICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE1ICB4PTE3MTYgIHk9MTEyMCAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTYgIHg9NDU3ICAgeT0xMTQwICB3aWR0aD05NSAgICBoZWlnaHQ9MTU1ICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTIzICAgIHhhZHZhbmNlPTUyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNyAgeD0xODQ1ICB5PTExMTcgIHdpZHRoPTExNiAgIGhlaWdodD0xMzUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE4ICB4PTI3NzIgIHk9MTEwMCAgd2lkdGg9MTIyICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTkgIHg9MjQ2MiAgeT0xMTEzICB3aWR0aD0xNjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTEyMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMCAgeD0yNjM3ICB5PTExMDYgIHdpZHRoPTEyMyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIxICB4PTAgICAgIHk9NjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjIgIHg9MjkwNiAgeT0xMDk3ICB3aWR0aD0xMTcgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMyAgeD00NTggICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI0ICB4PTI0NTEgIHk9MjA2ICAgd2lkdGg9NjEgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjUgIHg9MzQ5ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNiAgeD0yMzc4ICB5PTEyNTkgIHdpZHRoPTEzOCAgIGhlaWdodD03OSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYwICB4PTUxMyAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjEgIHg9MjE3ICAgeT0xMTQyICB3aWR0aD02NyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MiAgeD0xMzQxICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MjUgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYzICB4PTEzMDAgIHk9Nzc0ICAgd2lkdGg9MTMxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjQgIHg9NzAyICAgeT0xMTI5ICB3aWR0aD0xNDkgICBoZWlnaHQ9MTQ5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTMwICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NSAgeD00NjUgICB5PTk1NSAgIHdpZHRoPTE0MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY2ICB4PTIzNzUgIHk9MjA2ICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjcgIHg9MjA1ICAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OCAgeD0yNzE2ICB5PTEyNTEgIHdpZHRoPTEwMCAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY5ICB4PTk5NSAgIHk9NTk5ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzAgIHg9MTM2OCAgeT0xMjczICB3aWR0aD05OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTcxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MSAgeD0xMTMxICB5PTEyNzcgIHdpZHRoPTExMCAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcyICB4PTIyNTEgIHk9MTI2MSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTgxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT04OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzMgIHg9MTMzICAgeT0xNDU4ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NCAgeD0xMTY4ICB5PTU5NyAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc1ICB4PTMzMyAgIHk9MTQ0OCAgd2lkdGg9MTA1ICAgaGVpZ2h0PTU5ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzYgIHg9MTgxNSAgeT0xMjY4ICB3aWR0aD04OSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTYwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NyAgeD04NjMgICB5PTExMjkgIHdpZHRoPTEyMSAgIGhlaWdodD0xNDcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MjkgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc4ICB4PTg5OSAgIHk9MTI4OCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzkgIHg9NzkwICAgeT0xMjkwICB3aWR0aD05NyAgICBoZWlnaHQ9MTEyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MCAgeD0yNTI4ICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgxICB4PTg2NiAgIHk9NTk5ICAgd2lkdGg9MTE3ICAgaGVpZ2h0PTE2NiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODIgIHg9Mjg5MyAgeT05MjMgICB3aWR0aD0xMTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MyAgeD0yOTA4ICB5PTEyNDIgIHdpZHRoPTY3ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NjIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg0ICB4PTIxNjYgIHk9MTI2MSAgd2lkdGg9NzMgICAgaGVpZ2h0PTgyICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODUgIHg9MTQ3OSAgeT0xMjcxICB3aWR0aD03OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NiAgeD0xMjUzICB5PTEyNzQgIHdpZHRoPTEwMyAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg3ICB4PTEwMDggIHk9MTI3NyAgd2lkdGg9MTExICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODggIHg9MjU0MiAgeT03NTggICB3aWR0aD0xNTQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OSAgeD0yMzcyICB5PTc2MCAgIHdpZHRoPTE1OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkwICB4PTExMjkgIHk9Nzc2ICAgd2lkdGg9MTU5ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTEgIHg9OTI1ICAgeT03NzcgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MiAgeD0xNjIgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkzICB4PTMyNCAgIHk9MjE0ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTQgIHg9MCAgICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NSAgeD0xMzU5ICB5PTIxMCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk2ICB4PTE4MTQgIHk9MjA4ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTcgIHg9MTAxNiAgeT0wICAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTk5ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0yMyAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OCAgeD0xNzkyICB5PTc2OSAgIHdpZHRoPTE5OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTUwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk5ICB4PTExNzggIHk9MCAgICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDAgIHg9MjkyMiAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMSAgeD02NDEgICB5PTIxNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAyICB4PTc3NSAgIHk9MjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDMgIHg9MTk3NiAgeT0yMDcgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNCAgeD0xMDE4ICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA1ICB4PTExMTIgIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDYgIHg9OTA5ICAgeT0yMTMgICB3aWR0aD05NyAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNyAgeD0yMTEwICB5PTIwNyAgIHdpZHRoPTEwMCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yOCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA4ICB4PTAgICAgIHk9OTY5ICAgd2lkdGg9MTQ1ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDkgIHg9MTUyMSAgeT0yMDggICB3aWR0aD0xMzcgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMCAgeD0yMTg0ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjExICB4PTIwMzEgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTIgIHg9MTg3OCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMyAgeD0yNzY5ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE1ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE0ICB4PTEyMDYgIHk9MjEwICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTMgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTUgIHg9Mjc5ICAgeT0xMzE2ICB3aWR0aD0xMjAgICBoZWlnaHQ9MTIwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQwICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNiAgeD0yNjU1ICB5PTIwNiAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNzQgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTAgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE3ICB4PTI2MjUgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTggIHg9MjQ4MSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOSAgeD0yMzM3ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIwICB4PTE2NzAgIHk9MjA4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjEgIHg9NDg2ICAgeT0yMTQgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMiAgeD0yMzYwICB5PTkzOSAgIHdpZHRoPTEyNCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIzICB4PTEyMSAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD03ICAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjQgIHg9MTYwNCAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNSAgeD0xNDczICB5PTQxMiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI2ICB4PTE3MzUgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjcgIHg9NTMyICAgeT02MDAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOCAgeD0yOTI2ICB5PTU2OSAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI5ICB4PTI1MjQgIHk9MjA2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzAgIHg9OTk2ICAgeT0xMTI5ICB3aWR0aD0xNzMgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTEzNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMSAgeD0xOTc5ICB5PTQwNyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMyICB4PTEwNzYgIHk9NDE1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzMgIHg9OTQzICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNCAgeD04MTAgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM1ICB4PTI3OTMgIHk9NTcyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzYgIHg9NzcyICAgeT02MDAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNyAgeD0yOTcwICB5PTM4OCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM4ICB4PTY2MyAgIHk9NjAwICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzkgIHg9MCAgICAgeT0xMTQzICB3aWR0aD0xMDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MCAgeD0yODEwICB5PTIwNSAgIHdpZHRoPTEyMyAgIGhlaWdodD0xNzMgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NSAgICAgeGFkdmFuY2U9OTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQxICB4PTAgICAgIHk9NzkyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDIgIHg9MjYwICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MyAgeD01MzggICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ0ICB4PTM5OSAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDUgIHg9MjgzMSAgeT0zOTAgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NiAgeD0yMjUzICB5PTU4MyAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ3ICB4PTE0MCAgIHk9MTMxNyAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEyOCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDggIHg9NTY0ICAgeT0xMTI5ICB3aWR0aD0xMjYgICBoZWlnaHQ9MTUzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OSAgeD0yMTExICB5PTQwNyAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUwICB4PTIyMzkgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTEgIHg9MjM2NyAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MiAgeD02NzIgICB5PTc3OSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUzICB4PTc0OSAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTQgIHg9ODgzICAgeT0wICAgICB3aWR0aD0xMjEgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NSAgeD0xNzQ0ICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmtlcm5pbmdzIGNvdW50PTE2ODZcclxua2VybmluZyBmaXJzdD0zMiAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg2ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04OSAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTIyMSBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD02NSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NzQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTQgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTcgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODQgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODYgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9NzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9NzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9ODUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTggYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTUgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk5IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIwIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NyAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTE0XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04OSAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIxIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTIgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTUgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NCAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDYgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjEgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDYgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05OSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NSAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTczIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk3ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDIgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE3MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NjUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQge2dldFRvcExldmVsRm9sZGVyfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAndGljaycsIGhhbmRsZVRpY2sgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIGNvbnN0IHRlbXBNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVUaWNrKCB7IGlucHV0IH0gPSB7fSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICB8fCBmb2xkZXIuZ3JhYkRpc2FibGVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LnByZXNzZWQgJiYgaW5wdXQuc2VsZWN0ZWQgJiYgaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICBpZiggaW5wdXQuaW50ZXJhY3Rpb24ucHJlc3MgPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgICAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbi5zdWIoIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTsgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQud29ybGRUb0xvY2FsKGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9OT1RFOjogaW4gb3J0aG9ncmFwaGljIG1vZGUsIHdlJ3ZlIGFscmVhZHkgbXV0YXRlZCB0aGUgcG9zaXRpb24gb2YgZm9sZGVycyxcclxuICAgICAgICAgIC8vbWVhbmluZyB0aGVyZSBjb3VsZCBiZSBzb21lIGluY29uc2lzdGVuY3kgd2l0aCB0aGUgbW91c2VJbnRlcnNlY3Rpb24gcG9pbnQgbm8gbG9uZ2VyIGJlaW5nIHJpZ2h0Li4uXHJcbiAgICAgICAgICAvL0kgdGhvdWdodCB0aGlzIHdhcyBwbGF5aW5nIGEgcm9sZSBpbiBhIGJ1ZyB3aXRoIG9ydGhvZ3JhcGhpYyBmb2xkZXIgbGF5b3V0LCBhcHBlYXJzIG9rIGZvciBub3cuXHJcbiAgICAgICAgICBmb2xkZXIucG9zaXRpb24uY29weShpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcblxyXG4gICAgICAgICAgZm9sZGVyLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgIGlmKCBoaXRPYmplY3QgPT09IHBhbmVsICl7XHJcbiAgICAgICAgICBoaXRPYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGhpdE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlUGxhbmUuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoIGlucHV0Lm1vdXNlQ2FtZXJhLmdldFdvcmxkRGlyZWN0aW9uKCBpbnB1dC5tb3VzZVBsYW5lLm5vcm1hbCApLCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZVBsYW5lICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICAgIGlmKCBoaXRPYmplY3QgIT09IHBhbmVsICl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZCA9IGZvbGRlcjtcclxuXHJcbiAgICAgICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5zZWxlY3RlZC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlT2Zmc2V0LmNvcHkoIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkuc3ViKCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgICBcclxuICAgICAgdGVtcE1hdHJpeC5nZXRJbnZlcnNlKCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggdGVtcE1hdHJpeCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcblxyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICBpbnB1dE9iamVjdC5hZGQoIGZvbGRlciApOyBcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYmJlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaW5wdXQuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG5cclxuICAgICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJSZWxlYXNlZCcsIGZvbGRlciApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiZXhwb3J0IGNvbnN0IGdyYWJCYXIgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQWdDQVlBQUFDaW5YNkVBQUFBQ1hCSVdYTUFBQzRqQUFBdUl3RjRwVDkyQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBRHNrYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QZ284ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMall0WXpFek1pQTNPUzR4TlRreU9EUXNJREl3TVRZdk1EUXZNVGt0TVRNNk1UTTZOREFnSUNBZ0lDQWdJQ0krQ2lBZ0lEeHlaR1k2VWtSR0lIaHRiRzV6T25Ka1pqMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M4d01pOHlNaTF5WkdZdGMzbHVkR0Y0TFc1ekl5SStDaUFnSUNBZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB3YUc5MGIzTm9iM0E5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmNHaHZkRzl6YUc5d0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRVYyZEQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sUlhabGJuUWpJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenAwYVdabVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM1JwWm1Zdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WlhocFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzlsZUdsbUx6RXVNQzhpUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMGIzSlViMjlzUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5NGJYQTZRM0psWVhSdmNsUnZiMncrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZRM0psWVhSbFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qSTFPak15TFRBM09qQXdQQzk0YlhBNlEzSmxZWFJsUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTmIyUnBabmxFWVhSbFBqSXdNVFl0TURrdE1qaFVNVFk2TXpjNk1qTXRNRGM2TURBOEwzaHRjRHBOYjJScFpubEVZWFJsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPak0zT2pJekxUQTNPakF3UEM5NGJYQTZUV1YwWVdSaGRHRkVZWFJsUGdvZ0lDQWdJQ0FnSUNBOFpHTTZabTl5YldGMFBtbHRZV2RsTDNCdVp6d3ZaR002Wm05eWJXRjBQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0elBDOXdhRzkwYjNOb2IzQTZRMjlzYjNKTmIyUmxQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tsRFExQnliMlpwYkdVK2MxSkhRaUJKUlVNMk1UazJOaTB5TGpFOEwzQm9iM1J2YzJodmNEcEpRME5RY205bWFXeGxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa1J2WTNWdFpXNTBTVVErWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qZGxOemRtWW1aakxUZzFaRFF0TVRGbE5pMWhZemhtTFdGak56VTBaV1ExT0RNM1pqd3ZlRzF3VFUwNlJHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09tTTFabU0wWkdZeUxUa3hZMk10WlRJME1TMDRZMlZqTFRNek9ESXlZMlExWldGbE9Ud3ZlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwVFpYRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrZ2NtUm1PbkJoY25ObFZIbHdaVDBpVW1WemIzVnlZMlVpUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WVdOMGFXOXVQbU55WldGMFpXUThMM04wUlhaME9tRmpkR2x2Ymo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21sdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRwak5XWmpOR1JtTWkwNU1XTmpMV1V5TkRFdE9HTmxZeTB6TXpneU1tTmtOV1ZoWlRrOEwzTjBSWFowT21sdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwM2FHVnVQakl3TVRZdE1Ea3RNamhVTVRZNk1qVTZNekl0TURjNk1EQThMM04wUlhaME9uZG9aVzQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOXpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZMjl1ZG1WeWRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwd1lYSmhiV1YwWlhKelBtWnliMjBnWVhCd2JHbGpZWFJwYjI0dmRtNWtMbUZrYjJKbExuQm9iM1J2YzJodmNDQjBieUJwYldGblpTOXdibWM4TDNOMFJYWjBPbkJoY21GdFpYUmxjbk0rQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajV6WVhabFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4Tmkwd09TMHlPRlF4Tmpvek56b3lNeTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGphR0Z1WjJWa1BpODhMM04wUlhaME9tTm9ZVzVuWldRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0eFBDOWxlR2xtT2tOdmJHOXlVM0JoWTJVK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajQyTkR3dlpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0ek1qd3ZaWGhwWmpwUWFYaGxiRmxFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQZ29nSUNBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBbzhQM2h3WVdOclpYUWdaVzVrUFNKM0lqOCtPaEY3UndBQUFDQmpTRkpOQUFCNkpRQUFnSU1BQVBuL0FBQ0E2UUFBZFRBQUFPcGdBQUE2bUFBQUYyK1NYOFZHQUFBQWxFbEVRVlI0MnV6WnNRM0FJQXhFVVR1VFpKUnNrdDVMUkZtQ2RUTGFwVUtDQmlqby9GMGhuMlNrSnhJS1hKSmxyc09TRndBQUFBQkE2dktJNk83QlVvclhkWnUxL1ZFV0VaZVpmYk41bS9aYW1qZksrQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0JmdWFTbmE3aS9kZDFtYlgrVVNUck43SjdOMjdUWDByeFJ4Z25nWllpZklBQUFBSkM0ZmdBQUFQLy9Bd0F1TVZQdzIwaHhDd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDEnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIC8vIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuNTtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAsIGltYWdlLmhlaWdodCAvIDEwMDAsIDEsIDEgKTtcclxuXHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxufSgpKTtcclxuXHJcbmV4cG9ydCBjb25zdCBkb3duQXJyb3cgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qRTRPakkxTFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRveE9Eb3lOUzB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvek1EUXlZakkwWlMxaU16YzJMV0kwTkdJdE9HSTRZeTFsWlRGalkySXpZV1UxTURVOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pNd05ESmlNalJsTFdJek56WXRZalEwWWkwNFlqaGpMV1ZsTVdOallqTmhaVFV3TlR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NVVpbHowQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFKZFNVUkJWSGphN04zTGNjSkFFSVRoUnVXN25jVWVUUWhrUUFpSURNZ0loVUlJY0ZRV0pnSjg4Rktsb3Z3QXJOMmQ2WjQ1Y1pHQS9UOXZpWWZ0eGVWeVFZenVkTEVFQVNBbUFNUUVnQmpKZVdsMXh5bWxOd0FIQU1keEhIdkZ4VThwRFFDV0FGYmpPSDdJN0FDVCtPOEFObmtoRk9Odjhob2M4cHJ3QTdpSmZ4MHBCSlA0MTJtR29ETVFYd3JCTi9HYkl1aU14SmRBOEV2OFpnZzZRL0dwRWR3UnZ3bUN6bGg4U2dRUHhLK09vTVlPTUR3WW53ckJFL0duQ0FiWEFQS1RYLy9qRkp1VVV1ODRmdjlrL091c1MvOFFkQWJsMzg3ZUk0TDhtUGN6bktyb1RsaHlCMWpPZUM1WENHYU1YMkl0cXdGWUFUaXBJU2dRLzVUWDBoZUEvTjYyRklKUzhVdCtUbEQwSWxBSmdjZjRWVjRHS2lEd0dyL1crd0RVQ0R6SHJ3YUFGWUgzK0ZVQnNDRmdpRjhkQUFzQ2x2aE5BSGhId0JTL0dRQ3ZDTmppTndYZ0RRRmovT1lBdkNCZ2pXOENnSFVFelBITkFMQ0tnRDIrS1FEV0VDakVOd2ZBQ2dLVitDWUJUQkQwQU02MUVSU0lmd2JRVzR4dkZrQkdjTXc3UVRVRWhlS3Y4bk5CQURDTVFERytlUUMxRUtqR0I0Q0ZsNzhSbEZKYTR1c1hURjduakpSdnozNWVEL0ZkQVNpSUFLcngzUUVvaEFDcThWMWNBMVM2SnBDTTd4S0FRUVJ1NDdzRllBaUI2L2l1QVJoQTRENitld0FORVZERXB3RFFBQUZOZkJvQUZSRlF4YWNDVUFFQlhYdzZBQVVSVU1hbkJGQUFBVzE4V2dBeklxQ09UdzFnQmdUMDhla0JUQkRzbmpoMHh4NWZBa0JHTUFEWVBuRElOaCtEQUtDSFFDYStGSUE3RVVqRmx3UHdCd0s1K0pJQWZrQWdHUjl3K0pXd09lZjZ6V0RWK1BJQVl1TGZ4Z1dBV0lJQUVCTUFZZ0pBak9SOERnRCs2T3pndjR1eTlnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBoID0gMC4zO1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAtMC4wMDUsIC0wLjAwNCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja21hcmsgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qTXpPalV6TFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRvek16bzFNeTB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvMk9EY3hZVGs1WXkwek5qRTVMVGxrTkdFdE9EZGtOaTB3WVdFNVlUUmlOV1U0TWpjOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pZNE56RmhPVGxqTFRNMk1Ua3RPV1EwWVMwNE4yUTJMVEJoWVRsaE5HSTFaVGd5Tnp3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NXo5UlQzQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFUdFNVUkJWSGphN0p6YmI1UkZHTVovMnhiQ3ZWaEFTRXhVaUkxNDR3MGhRdEhFR3JIZ0lTcWdONktndE5ZV0FiMHcwV28xWHFyYlBiU2xva1lTeGZNaGVtWC9BYTd3R0FWcThYVHAzMERYaTVtSm0wYTJ1OXYzL2I2WjJYbHVkck9IZHcvUE16UFArNzR6WDZGV3F5R0ZnWUVCRWxwR0QvQWVjQ3R3Qi9EYmNtK1ltNXNUKy9DdTlQL25pbTZnQ0R3Q1hBdDhEVnlYNVJkSUFzZ1BCYUFFak5ROWRpUHdGYkE1Q1NCK1RBRlAvYy9qVzRIUGdMNGtnSGd4Q3d3MWVQNW00R043bXdRUUVib3MrVTgwOGRxdHdFZjJOZ2tnRXJjLzB5VDVEbjEyT2RpU0JCQSsrYVVXeVhmWUFud0RYSjhFRUc2cU53a01yeURHWnBzaTNwQUVFQjZxVjNEN3JhSVArTkttaWtrQWdlQXQ0SWhndkp2c1RKQUU0RGtLd0NuZ3NFTHNzMGtBL3EvNXM4QWhoZGpUd0VGcGQ1b2dTMzVWYWVUUEFrOERpMGtBL3BKZkVsN3pIVTdTdUhLWWxnQVAxdnl5a050Zmloa3Q4cE1BWkVrYVZvaGJWWXFiQkNDSVU4Q1RDbkZMd0pqMmwwOENXTm1hLzdhUzI2OEN4NlFOWHhLQXJIbWVCaDVYV2s3R3NpQS9Ud0dNWWZhL2hVcCttZllhTzgyNC9lR3N5TTlMQUM5Z21pUHZBenNESTcvTHJzMURTaU4vS0k4ZmxDWEdnVmZ0L1Y3Z0RMQXJJQUZNaCtyMmZSREFTOERFa3NjMkFoOEMvUjNzOXN2QWFKNVRXbGJrdjN5RjU5WmpkcjFzOTNqYTEzTDdGZXYyYXpFTFlMd0IrUTVyTWIzdWJSNGF2cE5LYm44YWVBYTRuTGU2dFEzZlJKT3Y3UVcrOEdnbTZMRWpWS094TTRNNUQzQTU3eCtwS1lBWDZ3eGZzOWdBZkFMczhJQjhyY2FPS3h2WGZGQzVsZ0RHZ1ZmYWZLOHpocnR5L0UrMFhIa2xMN2VmcFFBbVdwajJseFBCYlRuOEo3UG8xZlpIOFF6U0Fuak5qbjRKck1lY2pzbXFXRlFBM2xWeSt5WHI5b2xkQUhjS3g3c2ErRHdEWTloajgveURpcW5lWWljSTRGSGdSK0dZYTVXekE4M0d6aFJ3MUZmeU5RVHdDM0NQdlpYRU91QlR6RVVVSkxFcWcxVFBXL0sxVE9DZndDQndVVGp1TmNpV2pic3haVmlOVkMrMzJyNHZhZUFmd0YzQWduRGNUVllFdHd1TlVBM3l5NWpkdTNTeUFBQitCM1lyTEFjYkJPb0U3eWhOKzVOMnpTY0p3R0FlZUFENFRqaHVMNmFCMUtvbjZMYmtQNlkwOG8valNZWFBGd0VBbkFjZVZoREJWUzFtQjY2eG8wSCtGS2F4czBoZ3lLb2RmQUY0RVBoSnFVNnczRXl3eWhxelEwcmtqNFJJZnBZQ0FMZ0U3TEV6Z2lSY3hiQy93Y2l2b0ZQZWRlUUhpNnkzaFAxbGplRzhVb3E0TkRzb1lJbzhXanQ1Z2lZL0R3SFVwNGkvS21RSForcEVVTURzNU5GdyswVXlPTFFScXdEY2NuQXY4TDF3M0hYQWFac2l2cTVrK0lyQUNTSkJucWVENTRFRHdBZkFMWUp4TndIZktwbXlzaVYvTVJZQjVIMHk2QUt3SC9oQk9PNXFZSTJDNFRzYUUvaytDQURNMWJIM0lsOHhsRVRWR3I0YWtjR1hzNEYvQTNmYkdjRTNWQWlvdGgrcUFNQjBFWGQ3Sm9KSlBOekdGYXNBd0RTUUJwSGZWTkt1Mno5RzVQRHhlUGdDOEJCd0x1ZVJmeUxHTlQ4RUFZRFpUSElBK1FaU3Mydis4ZGpjZm1nQ2NIV0MrNUZ2SUMzbjlrYzdoWHpmQmVDTTRSN2t5OFlkNS9aREZRRDgxMEM2cVBnWjBidjlrQVZRbnlKcUZJdmV4R3ptSUFuQWIxd0M3aE0yaGtYZ1dUb1lvVjBsekRXUUpGTEU2Qm83blNBQWx5THVZMlVOcEFvWlhvb3RDVUFlQzVnRzBzOXRrajlLUXRBQ0FOTkFHcVMxUFlhbFJINDhBbkFwWXJQYnk0b0VkbWdqQ2FENUZIRXZqYmVYdllFcDd5WkVLQURuQ2ZaYkVmd0RQSTg1TCtESWY0NE9hT3kwZzM4SEFNL2U3Z3VJUng5NEFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFRVNVUkJWR2lCN2RoQkRvTXdERVJSN2pUaUpDUHVmNVd1bXBoVnhYeWtWSkd6SXBKNWNnc2tkbzRManFPQnJRQTlIQTAwME1EK3dQVmp2QVdjRkJqekVCZ0pwTUNjWjhCTUlBVEtQQUpLQWhsUTV3bndUY0FwTUM1RFlDU1FBdmVyNThCTUlBVEtEUkZRRXNpQUdrOEFVMEFRTUFVRUFWTkFFREFGQkFGVFFCQXdCUVFCVTBBUU1BVUVBVk5BRURBRkJBRlRRQkR3Y2dEL0JQNG40c2ZJWHlUOEt2T1BDWC9PZkVIQlN4cGZWUEd5empjV3ZMWHh6UlZ2Nzd6QXdDVU9MN0p3bWNjTFRWenE4bUk3TC9mUGtrSUU0SmFITjEyNDdlT05KMjU5ZWZOOWkxbHpBRkdERmgzQ2xLaFZCMUV6Yk5saDNJajd3eFBOQmhwb1lEV1FqZ2EyQUQ1Uy9DeUl2Ym1xN2dBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ0J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgdW5kb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVQU1VSQlZHaUI3ZGd4Q3NRd0RBVEEvRW5vSlVMLy84cFZzV1dsT0x3TFVUQnlGZmJFc05jNGRpNG4xOVhBVVlCc3JnWWFhT0I4d1A4c0dqQVdjQm93Rm5BYU1CWndHakFXY0JqUVVBRUNKQXhqUUtpQUFmSjgyZ1JtQlJDWUZWQmdWRUNCeCsvYmdLWnNHOGdEKzBDcXNBK2tDUUJZS3dEQU9vSUFTd1VFV0dZZ0lGYUFnRGlFQWFFQ0JvUXBFSmdWUUdDT29jQ29nQUx3anZTb0FBUDNJQTRvQ3dnTktBc0lEV2c1d1A0RlpRRW5BV1VCSndGbGdUc3IyMUJHVnJXcHpxem94Ukt5bXBkcnpFb09HRXRXY2NoYXM0S0Rac3JlUDJ6bjdQVUx4M2dFZ1ZHZzZ0bzNDeFJkZlVPQm91dC9LRkQ2Q2NSWVFFakFXRUJJd0ZnZ3ozM3dpMllERFRSUURhQ3JnU09BSDhIOEtxZ2dZcEFVQUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDUnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuIiwiLyoqIFxyXG4gKiBCaWcgYnV0dG9uIHdpdGggYW4gaW1hZ2Ugb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBBbHNvIHVzYWJsZSBhcyBhbiAneHkgY29udHJvbGxlcicgdmlhIGFkZFhZQ29udHJvbGxlciBtZXRob2QuXHJcbiAqIFxyXG4gKiBBUEkgc3ViamVjdCB0byBjaGFuZ2UuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtpc0NvbnRyb2xsZXJWaXNpYmxlfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGZ1bmMgPSB1bmRlZmluZWQsXHJcbiAgcHJlc3NpbmcgPSB1bmRlZmluZWQsXHJcbiAgaW1hZ2UgPSBcInRleHR1cmVzL3Nwb3RsaWdodC5qcGdcIiwgLy9UT0RPIGJldHRlciBkZWZhdWx0XHJcbiAgd2lkZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjaGFuZ2VDb2xvck9uSG92ZXIgPSB0cnVlLCAvL3F1aWNrIGhhY2s6IGNvbG9yIHBpY2tlciB3YW50cyB0aGlzIHRvIGJlIGZhbHNlXHJcbiAgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gICAvL1hYWCBtYWdpYyBudW1iZXJzLi4uXHJcbiAgaWYgKCFoZWlnaHQpIGhlaWdodCA9IExheW91dC5QQU5FTF9XSURUSCAgKiAod2lkZSA/IDAuOTQgOiAwLjI1KTtcclxuICBcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqICh3aWRlID8gMC45NCA6IDAuMjUpIC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBidXR0b25EZXB0aDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCAxLCAxICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIC8vbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBjb25zdCBob3ZlckNvbCA9IG9iai50ZXh0ID8gMHg4ODggOiAweEZGRkZGRjtcclxuICAgICAgICBjb25zdCBub0hvdmVyQ29sID0gb2JqLnRleHQgPyAweDExMSA6IDB4Q0NDQ0NDO1xyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChoaWdobGlnaHRMYXN0UHJlc3NlZCAmJiBsYXN0UHJlc3NlZCA9PT0gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGxhc3RQcmVzc2VkQ29sICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgPyBob3ZlckNvbCA6IG5vSG92ZXJDb2wgKTtcclxuICAgICAgICAgICAgaWYgKHN1Ymdyb3VwLnRpcFRleHQpIHNldFZpc2liaWxpdHkoc3ViZ3JvdXAsIHN1Ymdyb3VwLnRpcFRleHQsIGludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgICBpZiAob2JqLmVycm9yKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4QUEzMzMzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldygpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIHN1Ymdyb3VwLmhpdHNjYW4gPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogbWFraW5nIHRoaXMgc2luZ2xlIGVsZW1lbnQgcmF0aGVyIHRoYW4gYXJyYXksXHJcbiAgICAgICAgLy90aGF0IG1lYW5zIHRoZXNlICdzdWJncm91cCcgYnV0dG9ucyBhcmVuJ3QgYWN0aW5nIGV4YWN0bHkgYXMgbm9ybWFsIGRhdC5HVUlWUiBjb250cm9sbGVyc1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IGJ1dHRvbnMubWFwKGI9PmIuaGl0c2Nhbik7Ly8ucHVzaChwYW5lbCk7XHJcbiAgICBncm91cC5oaXRzY2FuLnB1c2gocGFuZWwpO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKSB7XHJcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5iLnVwZGF0ZVZpZXcoKSk7XHJcbiAgfVxyXG4gIFxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+e1xyXG4gICAgICAgIGIuaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgLy9pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlU2xpZGVyIGZyb20gJy4vc2xpZGVyJztcclxuaW1wb3J0IGNyZWF0ZUNoZWNrYm94IGZyb20gJy4vY2hlY2tib3gnO1xyXG5pbXBvcnQgY3JlYXRlQnV0dG9uIGZyb20gJy4vYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUZvbGRlciBmcm9tICcuL2ZvbGRlcic7XHJcbmltcG9ydCBjcmVhdGVEcm9wZG93biBmcm9tICcuL2Ryb3Bkb3duJztcclxuLy9QSlQ6IEknZCByYXRoZXIgaW5qZWN0IGN1c3RvbSBleHRlbnNpb25zIGxpa2UgdGhpcywgYnV0IHdpbGwgd29yayB0aGF0IG91dCBsYXRlci5cclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUtleWJvYXJkIGZyb20gJy4va2V5Ym9hcmQnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dGJveCBmcm9tICcuL3RleHRib3gnO1xyXG5pbXBvcnQgY3JlYXRlQ29sb3JQaWNrZXIgZnJvbSAnLi9jb2xvcnBpY2tlcic7XHJcbmltcG9ydCAqIGFzIFNERlRleHQgZnJvbSAnLi9zZGZ0ZXh0JztcclxuaW1wb3J0IHsgaXNDb250cm9sbGVyVmlzaWJsZSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBnbG9iYWxFdmVudHMgfSBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmNvbnN0IEdVSVZSID0gKGZ1bmN0aW9uIERBVEdVSVZSKCl7XHJcblxyXG4gIC8qXHJcbiAgICBTREYgZm9udFxyXG4gICovXHJcbiAgY29uc3QgdGV4dENyZWF0b3IgPSBTREZUZXh0LmNyZWF0b3IoKTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICBMaXN0cy5cclxuICAgIElucHV0T2JqZWN0cyBhcmUgdGhpbmdzIGxpa2UgVklWRSBjb250cm9sbGVycywgY2FyZGJvYXJkIGhlYWRzZXRzLCBldGMuXHJcbiAgICBDb250cm9sbGVycyBhcmUgdGhlIERBVCBHVUkgc2xpZGVycywgY2hlY2tib3hlcywgZXRjLlxyXG4gICovXHJcbiAgY29uc3QgaW5wdXRPYmplY3RzID0gW107XHJcbiAgY29uc3QgY29udHJvbGxlcnMgPSBbXTtcclxuXHJcbiAgLypcclxuICAgIEZ1bmN0aW9ucyBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuIGNvbnRyb2xsZXIgaXMgdmlzaWJsZSAoYnkgd2hpY2ggd2VcclxuICAgIG1lYW4gbm90IGhpZGRlbiwgbm90ICd2aXNpYmxlJyBpbiB0ZXJtcyBvZiB0aGUgY2FtZXJhIG9yaWVudGF0aW9uIGV0YyksIGFuZFxyXG4gICAgZm9yIHJldHJpZXZpbmcgdGhlIGxpc3Qgb2YgdmlzaWJsZSBoaXRzY2FuT2JqZWN0cyBkeW5hbWljYWxseS5cclxuICAgIFRoaXMgbWlnaHQgYmVuZWZpdCBmcm9tIHNvbWUgY2FjaGluZyBlc3BlY2lhbGx5IGluIGNhc2VzIHdpdGggbGFyZ2UgY29tcGxleCBHVUlzLlxyXG4gICAgSSBoYXZlbid0IG1lYXN1cmVkIHRoZSBpbXBhY3Qgb2YgZ2FyYmFnZSBjb2xsZWN0aW9uIGV0Yy5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVDb250cm9sbGVycygpIHtcclxuICAgIC8vIG5vdCB0ZXJyaWJseSBlZmZpY2llbnRcclxuICAgIHJldHVybiBjb250cm9sbGVycy5maWx0ZXIoIGlzQ29udHJvbGxlclZpc2libGUgKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkge1xyXG4gICAgLy9YWFggV0FSTklORzo6OlxyXG4gICAgLy90aGVyZSBjb3VsZCBleGlzdCBzaXR1YXRpb25zIGluIHdoaWNoIG1lbWJlcnMgb2YgaGl0c2NhbiBmb3IgYSB2aXNpYmxlIGNvbnRyb2xsZXIgYXJlIG5vdCB0aGVtc2VsdmVzIHZpc2libGUuXHJcbiAgICAvL3RoaXMgY2FuIGhhcHBlbiBmb3IgZWcgaWYgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgcGFydGljdWxhciBoaXRzY2FuIGlzIGluIGFuIGludmlzaWJsZSBtb2RhbCBlZGl0b3IuXHJcbiAgICAvL3dlIGNvdWxkIGNoZWNrIHRoYXQsIGFkZGluZyBhIG1vcmUgcm9idXN0IGZpbHRlciB0byBlYWNoIGhpdHNjYW4gYXJyYXkuLi4gZm9yIG5vdywgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mXHJcbiAgICAvL2NvbnRyb2xsZXJzIHRvIGVpdGhlciBvbmx5IHJldHVybiBoaXRzY2FuIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSwgb3IgdG8gc2V0ICd2aXNpYmxlJyBleHBsaWNpdGx5LlxyXG4gICAgY29uc3QgdG1wID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkubWFwKCBvID0+IHsgcmV0dXJuIG8uaGl0c2Nhbi5maWx0ZXIoaCA9PiBoLnZpc2libGUpOyB9IClcclxuICAgIHJldHVybiB0bXAucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKTtcclxuICB9XHJcblxyXG4gIGxldCBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICBsZXQgbW91c2VSZW5kZXJlciA9IHVuZGVmaW5lZDtcclxuICBsZXQgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDsgLy9rZWVwIHRyYWNrIHNvIHRoYXQgd2UgZG9uJ3QgYXR0YWNoIG11bHRpcGxlIGV2ZW50cyAocGFydGljdWxhcmx5IHdoZW4gcmVzaXppbmcgd2luZG93KVxyXG4gIFxyXG4gIGxldCBhdXRvVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgZnVuY3Rpb24gZW5hYmxlTW91c2UoIGNhbWVyYSwgcmVuZGVyZXIgKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IHRydWU7XHJcbiAgICBtb3VzZVJlbmRlcmVyID0gcmVuZGVyZXI7XHJcbiAgICBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhID0gY2FtZXJhO1xyXG4gICAgaWYgKGNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkge1xyXG4gICAgICBpZiAoIW9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gZj0+Zi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLm9uKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQubGFzZXI7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGRpc2FibGVNb3VzZSgpe1xyXG4gICAgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIFRoZSBkZWZhdWx0IGxhc2VyIHBvaW50ZXIgY29taW5nIG91dCBvZiBlYWNoIElucHV0T2JqZWN0LlxyXG4gICovXHJcbiAgY29uc3QgbGFzZXJNYXRlcmlhbCA9IG5ldyBUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg1NWFhZmYsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9KTtcclxuICBmdW5jdGlvbiBjcmVhdGVMYXNlcigpe1xyXG4gICAgY29uc3QgZyA9IG5ldyBUSFJFRS5CdWZmZXJHZW9tZXRyeSgpO1xyXG4gICAgZy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KFswLDAsMCwwLDAsMF0pKSk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKCkgKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoMCwwLDApICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLkxpbmUoIGcsIGxhc2VyTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQSBcImN1cnNvclwiLCBlZyB0aGUgYmFsbCB0aGF0IGFwcGVhcnMgYXQgdGhlIGVuZCBvZiB5b3VyIGxhc2VyLlxyXG4gICovXHJcbiAgY29uc3QgY3Vyc29yTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NDQ0NDQ0LCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSApO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUN1cnNvcigpe1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuU3BoZXJlR2VvbWV0cnkoMC4wMDYsIDQsIDQgKSwgY3Vyc29yTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZ2VuZXJpYyBJbnB1dCB0eXBlLlxyXG4gICAgVGFrZXMgYW55IFRIUkVFLk9iamVjdDNEIHR5cGUgb2JqZWN0IGFuZCB1c2VzIGl0cyBwb3NpdGlvblxyXG4gICAgYW5kIG9yaWVudGF0aW9uIGFzIGFuIGlucHV0IGRldmljZS5cclxuXHJcbiAgICBBIGxhc2VyIHBvaW50ZXIgaXMgaW5jbHVkZWQgYW5kIHdpbGwgYmUgdXBkYXRlZC5cclxuICAgIENvbnRhaW5zIHN0YXRlIGFib3V0IHdoaWNoIEludGVyYWN0aW9uIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkIG9yIGhvdmVyLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gY3JlYXRlSW5wdXQoIGlucHV0T2JqZWN0ID0gbmV3IFRIUkVFLkdyb3VwKCkgKXtcclxuICAgIGNvbnN0IGlucHV0ID0ge1xyXG4gICAgICByYXljYXN0OiBuZXcgVEhSRUUuUmF5Y2FzdGVyKCBuZXcgVEhSRUUuVmVjdG9yMygpLCBuZXcgVEhSRUUuVmVjdG9yMygpICksXHJcbiAgICAgIGxhc2VyOiBjcmVhdGVMYXNlcigpLFxyXG4gICAgICBjdXJzb3I6IGNyZWF0ZUN1cnNvcigpLFxyXG4gICAgICBvYmplY3Q6IGlucHV0T2JqZWN0LFxyXG4gICAgICBwcmVzc2VkOiBmYWxzZSxcclxuICAgICAgZ3JpcHBlZDogZmFsc2UsXHJcbiAgICAgIGV2ZW50czogbmV3IEVtaXR0ZXIoKSxcclxuICAgICAgaW50ZXJhY3Rpb246IHtcclxuICAgICAgICBncmlwOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcHJlc3M6IHVuZGVmaW5lZCxcclxuICAgICAgICBob3ZlcjogdW5kZWZpbmVkXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuYWRkKCBpbnB1dC5jdXJzb3IgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIE1vdXNlSW5wdXQuXHJcbiAgICBBbGxvd3MgeW91IHRvIGNsaWNrIG9uIHRoZSBzY3JlZW4gd2hlbiBub3QgaW4gVlIgZm9yIGRlYnVnZ2luZy5cclxuICAqL1xyXG4gIGNvbnN0IG1vdXNlSW5wdXQgPSBjcmVhdGVNb3VzZUlucHV0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU1vdXNlSW5wdXQoKXtcclxuICAgIGNvbnN0IG1vdXNlID0gbmV3IFRIUkVFLlZlY3RvcjIoLTEsLTEpO1xyXG5cclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoKTtcclxuICAgIGlucHV0Lm1vdXNlID0gbW91c2U7XHJcbiAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZU9mZnNldCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZVBsYW5lID0gbmV3IFRIUkVFLlBsYW5lKCk7XHJcbiAgICBpbnB1dC5pbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgLy8gIHNldCBteSBlbmFibGVNb3VzZVxyXG4gICAgaW5wdXQubW91c2VDYW1lcmEgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZW1vdmUnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgLy8gaWYgYSBzcGVjaWZpYyByZW5kZXJlciBoYXMgYmVlbiBkZWZpbmVkXHJcbiAgICAgIGlmIChtb3VzZVJlbmRlcmVyKSB7XHJcbiAgICAgICAgY29uc3QgY2xpZW50UmVjdCA9IG1vdXNlUmVuZGVyZXIuZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBtb3VzZS54ID0gKCAoZXZlbnQuY2xpZW50WCAtIGNsaWVudFJlY3QubGVmdCkgLyBjbGllbnRSZWN0LndpZHRoKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggKGV2ZW50LmNsaWVudFkgLSBjbGllbnRSZWN0LnRvcCkgLyBjbGllbnRSZWN0LmhlaWdodCkgKiAyICsgMTtcclxuICAgICAgfVxyXG4gICAgICAvLyBkZWZhdWx0IHRvIGZ1bGxzY3JlZW5cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbW91c2UueCA9ICggZXZlbnQuY2xpZW50WCAvIHdpbmRvdy5pbm5lcldpZHRoICkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIGV2ZW50LmNsaWVudFkgLyB3aW5kb3cuaW5uZXJIZWlnaHQgKSAqIDIgKyAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpZiAoaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gcHJldmVudCBtb3VzZSBkb3duIGZyb20gdHJpZ2dlcmluZyBvdGhlciBsaXN0ZW5lcnMgKHBvbHlmaWxsLCBldGMpXHJcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7IC8vc29tZXRpbWVzIHdlIGNhcmUgYWJvdXQgdGhlIG1vdXNlIGJlaW5nIHByZXNzZWQsIGV2ZW4gb24gYmFja2dyb3VuZFxyXG4gICAgICAgLy93aWxsIGJlIHNldCBmYWxzZSBhdCBlbmQgb2YgZmlyc3QgdXBkYXRlLiBTaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHRvIGFkZCBhIG5ldyBwcm9wZXJ0eS4uLiBcclxuICAgICAgIC8vb25QcmVzc2VkIHNob3VsZCBiZSBhZGVxdWF0ZS5cclxuICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICB9LCB0cnVlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZXVwJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIGZ1bmN0aW9uIHVzZXJzIHJ1biB0byBnaXZlIERBVCBHVUkgYW4gaW5wdXQgZGV2aWNlLlxyXG4gICAgQXV0b21hdGljYWxseSBkZXRlY3RzIGZvciBWaXZlQ29udHJvbGxlciBhbmQgYmluZHMgYnV0dG9ucyArIGhhcHRpYyBmZWVkYmFjay5cclxuXHJcbiAgICBSZXR1cm5zIGEgbGFzZXIgcG9pbnRlciBzbyBpdCBjYW4gYmUgZGlyZWN0bHkgYWRkZWQgdG8gc2NlbmUuXHJcblxyXG4gICAgVGhlIGxhc2VyIHdpbGwgdGhlbiBoYXZlIHR3byBtZXRob2RzOlxyXG4gICAgbGFzZXIucHJlc3NlZCgpLCBsYXNlci5ncmlwcGVkKClcclxuXHJcbiAgICBUaGVzZSBjYW4gdGhlbiBiZSBib3VuZCB0byBhbnkgYnV0dG9uIHRoZSB1c2VyIHdhbnRzLiBVc2VmdWwgZm9yIGJpbmRpbmcgdG9cclxuICAgIGNhcmRib2FyZCBvciBhbHRlcm5hdGUgaW5wdXQgZGV2aWNlcy5cclxuXHJcbiAgICBGb3IgZXhhbXBsZS4uLlxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oKXsgbGFzZXIucHJlc3NlZCggdHJ1ZSApOyB9ICk7XHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbnB1dE9iamVjdCggb2JqZWN0ICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCBvYmplY3QgKTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5wcmVzc2VkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgY29uc3QgaGl0cyA9IGlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vIG9ubHkgcGF5IGF0dGVudGlvbiB0byBwcmVzc2VzIG92ZXIgdGhlIEdVSVxyXG4gICAgICBpZiAoZmxhZyAmJiBoaXRzICYmIChoaXRzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7XHJcbiAgICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmdyaXBwZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBpbnB1dC5ncmlwcGVkID0gZmxhZztcclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuY3Vyc29yID0gaW5wdXQuY3Vyc29yO1xyXG5cclxuICAgIGlmKCBUSFJFRS5WaXZlQ29udHJvbGxlciAmJiBvYmplY3QgaW5zdGFuY2VvZiBUSFJFRS5WaXZlQ29udHJvbGxlciApe1xyXG4gICAgICBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBvYmplY3QsIGlucHV0Lmxhc2VyLnByZXNzZWQsIGlucHV0Lmxhc2VyLmdyaXBwZWQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMucHVzaCggaW5wdXQgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQubGFzZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgSGVyZSBhcmUgdGhlIG1haW4gZGF0IGd1aSBjb250cm9sbGVyIHR5cGVzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG1pbiA9IDAuMCwgbWF4ID0gMTAwLjAgKXtcclxuICAgIGNvbnN0IHNsaWRlciA9IGNyZWF0ZVNsaWRlcigge1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG1pbiwgbWF4LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIHNsaWRlciApO1xyXG5cclxuICAgIHJldHVybiBzbGlkZXI7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGNoZWNrYm94ID0gY3JlYXRlQ2hlY2tib3goe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggY2hlY2tib3ggKTtcclxuXHJcbiAgICByZXR1cm4gY2hlY2tib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3RcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuYyB0byBjYWxsIGJhY2sgd2hlbiBidXR0b24gcHJlc3NlZFxyXG4gICAqIEBwYXJhbSB7Kn0gaW1hZ2UgY2FuIGJlIGZpbGVuYW1lLCBXZWJHTFJlbmRlclRhcmdldCBvciBNYXRlcmlhbFxyXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gd2lkZSB3aGV0aGVyIHRvIG1ha2UgYnV0dG9uIGZpbGwgZW50aXJlIHdpZHRoIG9mIHBhbmVsIChhcGkgc3ViamVjdCB0byBjaGFuZ2UpXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b24oZnVuYywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3Qgb2JqZWN0ID0geyBmOiBmdW5jIH07XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnZic7XHJcblxyXG5cclxuICAgIC8vc2VlIGFsc28gZm9sZGVyLmpzIHdoZXJlIHRoaXMgaXMgYWRkZWQgdG8gZ3JvdXAgb2JqZWN0Li4uXHJcbiAgICAvL2FzIHN1Y2ggdGhpcyBmdW5jdGlvbiBhbHNvIG5lZWRzIHRvIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBjcmVhdGVGb2xkZXIuXHJcbiAgICAvL3BlcmhhcHMgYWxsIG9mIHRoZXNlICdhZGRYJyBmdW5jdGlvbnMgY291bGQgYmUgaW5pdGlhbGx5IHB1dCBvbnRvIGFuIG9iamVjdCBzbyB0aGF0XHJcbiAgICAvL25ldyBhZGRpdGlvbnMgY291bGQgYmUgYWRkZWQgc2xpZ2h0bHkgbW9yZSBlYXNpbHkuXHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRYWUNvbnRyb2xsZXIocHJlc3NpbmcsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICcnO1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJlc3NpbmcsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJ1dHRvbik7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBUaGlzIGludGVyZmFjZSBtYXkgYmUgc3ViamVjdCB0byBjaGFuZ2UuICBBcmd1bWVudHMgYXJlIG9iamVjdHMgZGVzY3JpYmluZyBidXR0b25zXHJcbiAgRmlyc3Qgb2JqZWN0IG1heSBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b25QYW5lbChjb2xzLCAuLi5hcmdzKSB7XHJcbiAgICBsZXQgY29sdW1ucyA9IE51bWJlci5pc0ludGVnZXIoY29scykgPyBjb2xzIDogNDtcclxuICAgIGNvbnN0IG9iamVjdHMgPSBhcmdzO1xyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpKSBvYmplY3RzLnVuc2hpZnQoY29scylcclxuICAgIGNvbnN0IGdyaWQgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiBjb2x1bW5zfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGdyaWQpO1xyXG4gICAgcmV0dXJuIGdyaWQ7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRLZXlib2FyZCgga2V5TGlzdGVuZXIgKSB7XHJcbiAgICBpZiAoIWtleUxpc3RlbmVyKSBrZXlMaXN0ZW5lciA9IChrKSA9PiBjb25zb2xlLmxvZyhga2V5RG93biAke2t9YCk7XHJcbiAgICBjb25zdCBrYiA9IGNyZWF0ZUtleWJvYXJkKHtrZXlMaXN0ZW5lciwgdGV4dENyZWF0b3J9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goa2IpO1xyXG4gICAgcmV0dXJuIGtiO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVUZXh0Ym94KHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZUNvbG9yUGlja2VyKHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9wdGlvbnMgKXtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gY3JlYXRlRHJvcGRvd24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG9wdGlvbnNcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGRyb3Bkb3duICk7XHJcbiAgICByZXR1cm4gZHJvcGRvd247XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEFuIGltcGxpY2l0IEFkZCBmdW5jdGlvbiB3aGljaCBkZXRlY3RzIGZvciBwcm9wZXJ0eSB0eXBlXHJcbiAgICBhbmQgZ2l2ZXMgeW91IHRoZSBjb3JyZWN0IGNvbnRyb2xsZXIuXHJcblxyXG4gICAgRHJvcGRvd246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9iamVjdFR5cGUgKVxyXG5cclxuICAgIFNsaWRlcjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZOdW1iZXJUeXBlLCBtaW4sIG1heCApXHJcblxyXG4gICAgQ2hlY2tib3g6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mQm9vbGVhblR5cGUgKVxyXG5cclxuICAgIEJ1dHRvbjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZGdW5jdGlvblR5cGUgKVxyXG5cclxuICAgIE5vdCB1c2VkIGRpcmVjdGx5LiBVc2VkIGJ5IGZvbGRlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApe1xyXG5cclxuICAgIGlmKCBvYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG5cclxuICAgIGlmIChvYmplY3QuaXNGb2xkZXIpIHJldHVybiBvYmplY3Q7XHJcblxyXG4gICAgaWYoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBjb25zb2xlLndhcm4oICdubyBwcm9wZXJ0eSBuYW1lZCcsIHByb3BlcnR5TmFtZSwgJ29uIG9iamVjdCcsIG9iamVjdCApO1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzT2JqZWN0KCBhcmczICkgfHwgaXNBcnJheSggYXJnMyApICl7XHJcbiAgICAgIHJldHVybiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNOdW1iZXIoIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzQm9vbGVhbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Z1bmN0aW9uKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzU3RyaW5nKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc0NvbG9yKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBhZGQgY291bGRuJ3QgZmlndXJlIGl0IG91dCwgcGFzcyBpdCBiYWNrIHRvIGZvbGRlclxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZVNsaWRlciggbWluID0gMCwgbWF4ID0gMSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG51bWJlcjogbWluXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRTbGlkZXIoIHByb3h5LCAnbnVtYmVyJywgbWluLCBtYXggKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZURyb3Bkb3duKCBvcHRpb25zID0gW10gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBvcHRpb246ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGlmKCBvcHRpb25zICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgcHJveHkub3B0aW9uID0gaXNBcnJheSggb3B0aW9ucyApID8gb3B0aW9uc1sgMCBdIDogb3B0aW9uc1sgT2JqZWN0LmtleXMob3B0aW9ucylbMF0gXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWRkRHJvcGRvd24oIHByb3h5LCAnb3B0aW9uJywgb3B0aW9ucyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQ2hlY2tib3goIGRlZmF1bHRPcHRpb24gPSBmYWxzZSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGNoZWNrZWQ6IGRlZmF1bHRPcHRpb25cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZENoZWNrYm94KCBwcm94eSwgJ2NoZWNrZWQnICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVCdXR0b24oIGZuICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgYnV0dG9uOiAoZm4hPT11bmRlZmluZWQpID8gZm4gOiBmdW5jdGlvbigpe31cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZEJ1dHRvbiggcHJveHksICdidXR0b24nICk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIE5vdCB1c2VkIGRpcmVjdGx5OyB1c2VkIGJ5IGZvbGRlcnMuXHJcbiAgUmVtb3ZlIGNvbnRyb2xsZXJzIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBjb250cm9sbGVycyBrbm93biB0byBkYXQuR1VJVlIuXHJcbiAgQ2FsbHMgcmVtb3ZlVGVzdCBmaXJzdCB0byBjaGVjayBpbnB1dCBhcmd1bWVudHMuICByZXR1cm5zIGZhbHNlIGlmIHRoaXMgdGVzdCBmYWlscy5cclxuICByZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bC5cclxuXHJcbiAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVjdXJzaXZlbHkgcmVtb3ZlIGVsZW1lbnRzIGZyb20gZm9sZGVyczsgdGhhdCBpcyBkZWFsdCB3aXRoIGluIHRoZSBmb2xkZXIgY29kZSB3aGljaCBjYWxscyB0aGlzLlxyXG4gIFxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZSggLi4uYXJncyApe1xyXG4gICAgbGV0IGFyZ1NldCA9IFsgLi4ubmV3IFNldChhcmdzKSBdOyAvL2p1c3QgaW4gY2FzZSB0aGVyZSB3ZXJlIHJlcGVhdGVkIGVsZW1lbnRzIGluIGFyZ3MsIHR1cm4gaW50byBTZXQgdGhlbiBiYWNrIHRvIGFycmF5LlxyXG4gICAgaWYgKCAhcmVtb3ZlVGVzdCguLi5hcmdTZXQpICkgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJnU2V0LmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgdmFyIGkgPSBjb250cm9sbGVycy5pbmRleE9mKCBvYmogKTtcclxuICAgICAgaWYgKCBpID4gLTEpIGNvbnRyb2xsZXJzLnNwbGljZSggaSwgMSApO1xyXG4gICAgICBlbHNlIHsgLy8gSSBjYW4ndCBzZWUgaG93IHRoaXMnZCBoYXBwZW4gbm93IHdlIGd1YXJkIGFnYWluc3QgcmVwZWF0ZWQgZWxlbWVudHMuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJJbnRlcm5hbCBlcnJvciBpbiByZW1vdmUsIG5vdCBhbnRpY2lwYXRlZCBieSByZW1vdmVUZXN0LiBJbnRlcm5hbCBkYXQuR1VJVlIgc3RhdGUgbWF5IGJlIGluY29uc2lzdGVudC5cIik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBWZXJpZnkgdGhhdCBhbGwgb2YgdGhlIGl0ZW1zIGluIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZXhpc3RpbmcgY29udHJvbGxlcnMgdGhhdCBzaG91bGQgYmUgb2sgdG8gcmVtb3ZlLlxyXG5cclxuICBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGFyZSBhbnkgbWlzbWF0Y2hlcywgdHJ1ZSBpZiBiZWxpZXZlZCBvayB0byBjb250aW51ZSB3aXRoIGFjdHVhbCByZW1vdmUoKVxyXG5cclxuICBJZiBhbnkgb2YgdGhlIHByb3ZpZGVkIGFyZ3MgYXJlIGZvbGRlcnMgKGhhdmUgaXNGb2xkZXIgcHJvcGVydHkpIHRoaXMgaXMgY2FsbGVkIHJlY3Vyc2l2ZWx5LlxyXG4gIFRoaXMgd2lsbCByZXN1bHQgaW4gcmVkdW5kYW50IHdvcmsgYXMgZWFjaCBmb2xkZXIgd2lsbCBhbHNvIGNhbGwgaXQgYWdhaW4gYXMgaXQncyByZW1vdmVkLCBidXQgdGhpcyBpcyBjaGVhcFxyXG4gIGFuZCBpdCBtZWFucyB0aGF0IGFueSBlcnJvciBzaG91bGQgYmUgY2F1Z2h0IGFzIGVhcmx5IGFzIHBvc3NpYmxlIGFuZCB0aGUgd2hvbGUgcHJvY2VzcyBhYm9ydGVkLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlVGVzdCggLi4uYXJncyApIHtcclxuICAgIGZvciAodmFyIGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBvYmogPSBhcmdzW2ldO1xyXG4gICAgICBpZiAoY29udHJvbGxlcnMuaW5kZXhPZihvYmopID09PSAtMSB8fCAhb2JqLmZvbGRlci5oYXNDaGlsZChvYmopKSB7XHJcbiAgICAgICAgLy9UT0RPOiB0b1N0cmluZyBpbXBsZW1lbnRhdGlvbnMgZm9yIGNvbnRyb2xsZXJzXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJDYW4ndCByZW1vdmUgY29udHJvbGxlciBcIiArIG9iaik7IC8vbm90IHN1cmUgdGhlIHByZWZlcnJlZCB3YXkgb2YgcmVwb3J0aW5nIHByb2JsZW0gdG8gdXNlci5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGlmICghcmVtb3ZlVGVzdCggLi4ub2JqLmd1aUNoaWxkcmVuICkpIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wbGV0ZWx5IHJlbW92ZSBhbGwgR1VJIGVsZW1lbnRzIGZyb20gdGhlIHN5c3RlbSBnbG9iYWxseSwgXHJcbiAgICogaW5jbHVkaW5nIHJlbW92aW5nIGFueSBvYmplY3RzIGZyb20gdGhlIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKi9cclxuICBmdW5jdGlvbiBjbGVhckFsbCgpIHtcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMudmlzaWJsZSA9IGZhbHNlOyBpZiAoYy5wYXJlbnQgJiYgIWMucGFyZW50Lmd1aUNoaWxkcmVuKSBjLnBhcmVudC5yZW1vdmUoYyk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnNwbGljZSgwLCBjb250cm9sbGVycy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZm9sZGVyIHdpdGggdGhlIG5hbWUuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgVEhSRUUuR3JvdXAgdHlwZSBvYmplY3RzIGFuZCBjYW4gZG8gZ3JvdXAuYWRkKCkgZm9yIHNpYmxpbmdzLlxyXG4gICAgRm9sZGVycyB3aWxsIGF1dG9tYXRpY2FsbHkgYXR0ZW1wdCB0byBsYXkgaXRzIGNoaWxkcmVuIG91dCBpbiBzZXF1ZW5jZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBnaXZlbiB0aGUgYWRkKCkgZnVuY3Rpb25hbGl0eSBzbyB0aGF0IHRoZXkgY2FuIGRvXHJcbiAgICBmb2xkZXIuYWRkKCAuLi4gKSB0byBjcmVhdGUgY29udHJvbGxlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBuYW1lICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBjcmVhdGVGb2xkZXIoe1xyXG4gICAgICB0ZXh0Q3JlYXRvcixcclxuICAgICAgbmFtZSxcclxuICAgICAgZ3VpQWRkOiBhZGQsXHJcbiAgICAgIGd1aVJlbW92ZTogcmVtb3ZlLFxyXG4gICAgICBhZGRDb250cm9sbGVyRnVuY3M6IHtcclxuICAgICAgICBhZGRTbGlkZXI6IGFkZFNpbXBsZVNsaWRlcixcclxuICAgICAgICBhZGREcm9wZG93bjogYWRkU2ltcGxlRHJvcGRvd24sXHJcbiAgICAgICAgYWRkQ2hlY2tib3g6IGFkZFNpbXBsZUNoZWNrYm94LFxyXG4gICAgICAgIGFkZEJ1dHRvbjogYWRkU2ltcGxlQnV0dG9uLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uOiBhZGRJbWFnZUJ1dHRvbixcclxuICAgICAgICBhZGRYWUNvbnRyb2xsZXI6IGFkZFhZQ29udHJvbGxlcixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvblBhbmVsOiBhZGRJbWFnZUJ1dHRvblBhbmVsLFxyXG4gICAgICAgIGFkZEtleWJvYXJkOiBhZGRLZXlib2FyZCxcclxuICAgICAgICBhZGRUZXh0Ym94OiBhZGRUZXh0Ym94XHJcbiAgICAgIH0sXHJcbiAgICAgIGdsb2JhbENvbnRyb2xsZXJzOiBjb250cm9sbGVycyxcclxuICAgICAgLy8/Pz9cclxuICAgICAgYWRkSGVhZGVyRnVuY3M6IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZm9sZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUGVyZm9ybSB0aGUgbmVjZXNzYXJ5IHVwZGF0ZXMsIHJheWNhc3RzIG9uIGl0cyBvd24gUkFGLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgdERpcmVjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCAwLCAwLCAtMSApO1xyXG4gIGNvbnN0IHRNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoKSB7XHJcbiAgICBjb25zdCBpc09ydGhvZ3JhcGhpYyA9IG1vdXNlRW5hYmxlZCAmJiBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhO1xyXG4gICAgaWYgKGF1dG9VcGRhdGUpIHJlcXVlc3RBbmltYXRpb25GcmFtZSggdXBkYXRlICk7XHJcbiAgICBcclxuICAgIHZhciBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgY29uc3QgY29udHJvbGxlcnMgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKTtcclxuICAgIGNvbnN0IGZvbGRlcnMgPSBjb250cm9sbGVycy5maWx0ZXIoYyA9PiBjLmZvbGRlciA9PT0gYyk7IC8vYWxsIHRvcC1sZXZlbCBmb2xkZXJzXHJcbiAgICBmb2xkZXJzLmZvckVhY2goZiA9PiB7XHJcbiAgICAgIGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSBpc09ydGhvZ3JhcGhpYyA/IG1vdXNlSW5wdXQubW91c2VDYW1lcmEgOiBmYWxzZTtcclxuICAgICAgaWYgKGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAgIGYucmVxdWVzdExheW91dCgpO1xyXG4gICAgICAgIGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IGZhbHNlOyAvLyBwcm90ZWN0IGFueSBuZXdseS1kaXNwbGF5ZWQgbW9kYWxFZGl0b3IgZnJvbSBiZWluZyBjbGVhcmVkXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGYudXNlckRhdGEubGF5b3V0UGVuZGluZykgZi5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICB9KTsgXHJcblxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICAvL1RPRE86IGxvY2sgbW91c2Ugb24gaG92ZXI/P1xyXG4gICAgICBtb3VzZUlucHV0LmludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLGludGVyYWN0aW9ufSA9IHt9LCBpbmRleCApe1xyXG4gICAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICAgIG9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBcclxuICAgICAgdFBvc2l0aW9uLnNldCgwLDAsMCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgdE1hdHJpeC5pZGVudGl0eSgpLmV4dHJhY3RSb3RhdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIFxyXG4gICAgICB0RGlyZWN0aW9uLnNldCgwLDAsLTEpO1xyXG4gICAgICAvL2FsdGVyaW5nIGRpcmVjdGlvbiBlLmcuIHRvIHBvaW50IGluIGRpcmVjdGlvbiBvZiBleHRlbmRlZCB0cmlnZ2VyIGZpbmdlciwgcmF0aGVyIHRoYW4gJ21haW4gYXhpcycgb2YgVml2ZSBjb250cm9sbGVyLi4uXHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGQgYmUgaW4gdXNlckRhdGEuXHJcbiAgICAgIGlmIChvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcikgdERpcmVjdGlvbi5hcHBseVF1YXRlcm5pb24ob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpO1xyXG4gICAgICB0RGlyZWN0aW9uLmFwcGx5TWF0cml4NCggdE1hdHJpeCApLm5vcm1hbGl6ZSgpO1xyXG4gICAgICBcclxuICAgICAgcmF5Y2FzdC5zZXQoIHRQb3NpdGlvbiwgdERpcmVjdGlvbiApO1xyXG4gICAgICBcclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAwIF0uY29weSggdFBvc2l0aW9uICk7XHJcbiAgICAgIGNvbnN0IGEgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICAgIGFbMF0gPSB0UG9zaXRpb24ueDsgYVsxXSA9IHRQb3NpdGlvbi55OyBhWzJdID0gdFBvc2l0aW9uLno7XHJcbiAgICAgIFxyXG4gICAgICAvLyAgZGVidWcuLi5cclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggdFBvc2l0aW9uICkuYWRkKCB0RGlyZWN0aW9uLm11bHRpcGx5U2NhbGFyKCAxICkgKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbnMgPSByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgXHJcbiAgICAgIGlucHV0T2JqZWN0c1sgaW5kZXggXS5pbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy93YW50IHRvIGFkZCBpbmZvIChoaXQgZGlzY3RhbmNlKSB0byBvYmplY3QgZm9yIHVzZSBvdXRzaWRlLi4uIGp1c3QgYWRkaW5nIGVudGlyZXR5IG9mIGludGVyc2VjdGlvbnMgaW4gY2FzZSB1c2VmdWxcclxuICAgICAgaWYgKG9iamVjdC51c2VyRGF0YSkgb2JqZWN0LnVzZXJEYXRhLmd1aUludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0cyA9IGlucHV0T2JqZWN0cy5zbGljZSgpO1xyXG4gICAgXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIGlucHV0cy5wdXNoKCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goIGMgPT4gYy51cGRhdGVDb250cm9sKCBpbnB1dHMgKSk7XHJcbiAgICAvL25vdyBjaGVjayBpZiBhbnkgcHJlc3Mgb24gYW55IGlucHV0IGhpdCBhbnkgbm9uJ21vZGFsIGVkaXRvcicuLi4gaWYgc28sIHdlJ2xsIHJlbW92ZSBtb2RhbHMgZnJvbSBhbGwgZm9sZGVyc1xyXG4gICAgLy8odGhpcyBpc24ndCBwZXJmZWN0OyBpZiB5b3UgYXJlIGFjdGl2ZWx5IGludGVyYWN0aW5nIHdpdGggc29tZXRoaW5nIGFuZCBwcmVzcyBvdGhlciBidXR0b24gc29tZXdoZXJlIGVsc2UsIGl0J2xsIHJlbW92ZSB5b3VyIG9iamVjdClcclxuICAgIGxldCBoaXROb25Nb2RhbHMgPSBpbnB1dHMuZmlsdGVyKGlucHV0ID0+IGlucHV0LmhpdE5vbk1vZGFsKTtcclxuICAgIGlmIChoaXROb25Nb2RhbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgaGl0Tm9uTW9kYWxzLmZvckVhY2goaCA9PiBoLmhpdE5vbk1vZGFsID0gZmFsc2UpOyAvL3JlbW92ZSBmbGFncyBzbyB0aGV5IGRvbid0IHBlcnNpc3QgdG8gc3Vic2VxdWVudCB1cGRhdGVzXHJcbiAgICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IGYuY2xlYXJNb2RhbEVkaXRvcigpKTsgLy90aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIG5vdCBoaWRlIGl0ZW1zIG5ld2x5IGRpc3BsYXllZCBpbiB0aGlzIGZyYW1lXHJcbiAgICB9XHJcbiAgICBtb3VzZUlucHV0LmNsaWNrZWQgPSBmYWxzZTtcclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKG89Pm8uY2xpY2tlZCA9IGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8vaWYgYW55IGlucHV0LmludGVyYWN0aW9ucyBoYXZlIGhpdFZvbHVtZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHNvbWV0aGluZyBub3QgY3VycmVudGx5IGluIGhpdHNjYW5PYmplY3RzLFxyXG4gIC8vdGhhdCBpbnRlcmFjdGlvbiBzaG91bGQgYmUgY2FuY2VsbGVkLiBFc3BlY2lhbGx5IHByb2JsZW1hdGljIHdpdGggZS5nLiBwcmVzc2luZyAncmVhdHRhY2gnIHdoZW4gdGhlIHBhcmVudCBpcyBjbG9zZWQuXHJcbiAgZnVuY3Rpb24gY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9ucywgaGl0c2Nhbk9iamVjdHMgKSB7XHJcbiAgICBbJ3ByZXNzJywgJ2dyaXAnLCAnaG92ZXInXS5mb3JFYWNoKCBpbnRlcmFjdGlvbk5hbWUgPT4ge1xyXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdO1xyXG4gICAgICBpZiAoaW50ZXJhY3Rpb24gJiYgaGl0c2Nhbk9iamVjdHMuaW5kZXhPZihpbnRlcmFjdGlvbi5oaXRWb2x1bWUpIDwgMCkge1xyXG4gICAgICAgIGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdID0gdW5kZWZpbmVkOyBcclxuICAgICAgICAvL29ubHkgYmUgcG9saXRlIHRvIGluZm9ybSB0aGUgaW50ZXJhY3Rpb24gYXMgd2VsbDsgdXBkYXRlIHdpdGggZW1wdHkgaW5wdXRPYmplY3RzIGFyZyBzaG91bGQgZG8gdGhlIHRyaWNrLlxyXG4gICAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggW10gKTtcclxuICAgICAgfSBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlTGFzZXIoIGxhc2VyLCBwb2ludCApe1xyXG4gICAgY29uc3QgcHAgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICBwcFszXSA9IHBvaW50Lng7XHJcbiAgICBwcFs0XSA9IHBvaW50Lnk7XHJcbiAgICBwcFs1XSA9IHBvaW50Lno7XHJcbiAgICBwcC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHBvaW50ICk7XHJcbiAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnRpY2VzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGlmKCBpbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgY29uc3QgZmlyc3RIaXQgPSBpbnRlcnNlY3Rpb25zWyAwIF07XHJcbiAgICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgY3Vyc29yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZU1vdXNlSW50ZXJzZWN0aW9uKCBpbnRlcnNlY3Rpb24sIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBpbnRlcnNlY3Rpb24gKTtcclxuICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgY3Vyc29yLnBvc2l0aW9uICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBjYW1lcmEgKXtcclxuICAgIHJheWNhc3Quc2V0RnJvbUNhbWVyYSggbW91c2UsIGNhbWVyYSApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIHJldHVybiByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbW91c2VJbnRlcnNlY3RzUGxhbmUoIHJheWNhc3QsIHYsIHBsYW5lICl7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIHBsYW5lLCB2ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLG1vdXNlLG1vdXNlQ2FtZXJhLCBpbnRlcmFjdGlvbn0gPSB7fSApe1xyXG4gICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgbGV0IGludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICBpZiAobW91c2VDYW1lcmEpIHtcclxuICAgICAgaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIG1vdXNlQ2FtZXJhICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnRlcnNlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCk7XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgbWV0aG9kcy5cclxuICAqL1xyXG5cclxuICBjb25zdCBwdWJsaWNJbnRlcmZhY2UgPSB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBhZGRJbnB1dE9iamVjdCxcclxuICAgIGVuYWJsZU1vdXNlLFxyXG4gICAgZGlzYWJsZU1vdXNlLFxyXG4gICAgdGV4dENyZWF0b3IsIC8vY2hlYXAgd2F5IG9mIGV4cG9zaW5nIHRoaXMgc28gaXQgY2FuIGJlIHVzZWQgYnkgaG9zdCBhcHBsaWNhdGlvbi5cclxuICAgIGdsb2JhbEV2ZW50cyxcclxuICAgIGNsZWFyQWxsLFxyXG4gICAgdXBkYXRlXHJcbiAgfTtcclxuICAvLyBhbGxvdyB1c2VyIHRvIGNhbGwgXCJkYXQuR1VJVlIuYXV0b1VwZGF0ZSA9IGZhbHNlXCIgYW5kIHRoZW4gdXBkYXRlIG1hbnVhbGx5IHdpdGhcclxuICAvLyBcImRhdC5HVUlWUi51cGRhdGUoKVwiXHJcbiAgLy8gZXhwb3NlIGF1dG9VcGRhdGUgYXMgcHJvcGVydHkgc28gdGhhdCB0aGUgcmVmZXJlbmNlIHdpbGwgYmUgcHJvcGVybHkgZWZmZWN0ZWRcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIHB1YmxpY0ludGVyZmFjZSwgJ2F1dG9VcGRhdGUnLCB7IGdldDogKCk9PiBhdXRvVXBkYXRlLCBzZXQ6IHYgPT4gYXV0b1VwZGF0ZSA9IHYgfSApO1xyXG4gIHJldHVybiBwdWJsaWNJbnRlcmZhY2U7XHJcblxyXG59KCkpO1xyXG5cclxuaWYoIHdpbmRvdyApe1xyXG4gIGlmKCB3aW5kb3cuZGF0ID09PSB1bmRlZmluZWQgKXtcclxuICAgIHdpbmRvdy5kYXQgPSB7fTtcclxuICB9XHJcblxyXG4gIHdpbmRvdy5kYXQuR1VJVlIgPSBHVUlWUjtcclxufVxyXG5cclxuaWYoIG1vZHVsZSApe1xyXG4gIG1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgZGF0OiBHVUlWUlxyXG4gIH07XHJcbn1cclxuXHJcbmlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xyXG4gIGRlZmluZShbXSwgR1VJVlIpO1xyXG59XHJcblxyXG4vKlxyXG4gIEJ1bmNoIG9mIHN0YXRlLWxlc3MgdXRpbGl0eSBmdW5jdGlvbnMuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBpc051bWJlcihuKSB7XHJcbiAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG4pKSAmJiBpc0Zpbml0ZShuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNCb29sZWFuKG4pe1xyXG4gIHJldHVybiB0eXBlb2YgbiA9PT0gJ2Jvb2xlYW4nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjaykge1xyXG4gIGNvbnN0IGdldFR5cGUgPSB7fTtcclxuICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xyXG59XHJcblxyXG4vLyAgb25seSB7fSBvYmplY3RzIG5vdCBhcnJheXNcclxuLy8gICAgICAgICAgICAgICAgICAgIHdoaWNoIGFyZSB0ZWNobmljYWxseSBvYmplY3RzIGJ1dCB5b3UncmUganVzdCBiZWluZyBwZWRhbnRpY1xyXG5mdW5jdGlvbiBpc09iamVjdCAoaXRlbSkge1xyXG4gIHJldHVybiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pICYmIGl0ZW0gIT09IG51bGwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0FycmF5KCBvICl7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoIG8gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNTdHJpbmcoIG8gKXtcclxuICByZXR1cm4gdHlwZW9mIG8gPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0NvbG9yKCBvICl7XHJcbiAgaWYgKHR5cGVvZiBvICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBvLmlzQ29sb3IgPyB0cnVlIDogZmFsc2U7XHJcbn1cclxuXHJcblxyXG5cclxuLypcclxuICBDb250cm9sbGVyLXNwZWNpZmljIHN1cHBvcnQuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBjb250cm9sbGVyLCBwcmVzc2VkLCBncmlwcGVkICl7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcmRvd24nLCAoKT0+cHJlc3NlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcnVwJywgKCk9PnByZXNzZWQoIGZhbHNlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc2Rvd24nLCAoKT0+Z3JpcHBlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHN1cCcsICgpPT5ncmlwcGVkKCBmYWxzZSApICk7XHJcblxyXG4gIGNvbnN0IGdhbWVwYWQgPSBjb250cm9sbGVyLmdldEdhbWVwYWQoKTtcclxuICBmdW5jdGlvbiB2aWJyYXRlKCB0LCBhICl7XHJcbiAgICBpZiggZ2FtZXBhZCAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycyAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzWyAwIF0ucHVsc2UoIHQsIGEgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NUYXAoKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoMS1hLCAwLjUpLCAxMCwgMjAgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NFY2hvKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDQsIDEuMCAqICgxLWEpKSwgMTAwLCA0ICk7XHJcbiAgfVxyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdvbkNvbnRyb2xsZXJIZWxkJywgZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICB2aWJyYXRlKCAwLjMsIDAuMyApO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiYmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYlJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3Bpbm5lZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3BpblJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldEludGVydmFsVGltZXMoIGNiLCBkZWxheSwgdGltZXMgKXtcclxuICBsZXQgeCA9IDA7XHJcbiAgbGV0IGlkID0gc2V0SW50ZXJ2YWwoIGZ1bmN0aW9uKCl7XHJcbiAgICBjYiggeCwgdGltZXMsIHgvdGltZXMgKTtcclxuICAgIHgrKztcclxuICAgIGlmKCB4Pj10aW1lcyApe1xyXG4gICAgICBjbGVhckludGVydmFsKCBpZCApO1xyXG4gICAgfVxyXG4gIH0sIGRlbGF5ICk7XHJcbiAgcmV0dXJuIGlkO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBnbG9iYWxFdmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdFZvbHVtZSApe1xyXG4gIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG4gIGxldCBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gIGxldCBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gIGxldCBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgdFZlY3RvciA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgYXZhaWxhYmxlSW5wdXRzID0gW107XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSggaW5wdXRPYmplY3RzICl7XHJcblxyXG4gICAgYW55SG92ZXIgPSBmYWxzZTtcclxuICAgIGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgICBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIGlucHV0ICl7XHJcblxyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmluZGV4T2YoIGlucHV0ICkgPCAwICl7XHJcbiAgICAgICAgYXZhaWxhYmxlSW5wdXRzLnB1c2goIGlucHV0ICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHsgaGl0T2JqZWN0LCBoaXRQb2ludCB9ID0gZXh0cmFjdEhpdCggaW5wdXQgKTtcclxuXHJcbiAgICAgIHZhciBob3ZlciA9IGhpdFZvbHVtZSA9PT0gaGl0T2JqZWN0O1xyXG4gICAgICBhbnlIb3ZlciA9IGFueUhvdmVyIHx8IGhvdmVyO1xyXG5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ3ByZXNzZWQnLFxyXG4gICAgICAgIGJ1dHRvbkNsaWNrTmFtZTogJ2NsaWNrZWQnLCAvL21heWJlIG5vdCBzdGFibGUgcGFydCBvZiBBUEkuLi5cclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdwcmVzcycsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvblByZXNzZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAncHJlc3NpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZWQnLFxyXG4gICAgICAgICAvL2ludmVudGluZyBhICdob3ZlcmluZycgZXZlbnQgdGhhdCBvbmx5IGFwcGxpZXMgdG8gJ3ByZXNzZWQnIGJ1dHRvbi4uLlxyXG4gICAgICAgICAvL3RoaXMgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc3RhYmxlIGludGVyZmFjZSwgYnV0IEkgd2FudHMgaXQgbW9yZSB0aGFuIElcclxuICAgICAgICAgLy93YW50IHRvIG1ha2Ugc29tZXRoaW5nIHRvdGFsbHkgY29oZXJlbnQgYW5kIHJvYnVzdCBqdXN0IG5vdy5cclxuICAgICAgICBob3Zlck5hbWU6ICdob3ZlcmluZydcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ2dyaXBwZWQnLFxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ2dyaXAnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25HcmlwcGVkJyxcclxuICAgICAgICBob2xkTmFtZTogJ2dyaXBwaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VHcmlwJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCAndGljaycsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9ICk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZXh0cmFjdEhpdCggaW5wdXQgKXtcclxuICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA8PSAwICl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IHRWZWN0b3Iuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5jdXJzb3IubWF0cml4V29ybGQgKS5jbG9uZSgpLCAvL3h4eDogZ2FyYmFnZT9cclxuICAgICAgICBoaXRPYmplY3Q6IHVuZGVmaW5lZCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5wb2ludCxcclxuICAgICAgICBoaXRPYmplY3Q6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3RcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICBpbnB1dCwgaG92ZXIsXHJcbiAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgYnV0dG9uTmFtZSwgYnV0dG9uQ2xpY2tOYW1lLCBpbnRlcmFjdGlvbk5hbWUsIGRvd25OYW1lLCBob2xkTmFtZSwgdXBOYW1lLCBob3Zlck5hbWVcclxuICB9ID0ge30gKXtcclxuXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBoaXRPYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAvL2NsaWNrZWQgYW5kIGRpZG4ndCBoaXQgYW55IEdVSSBvYmplY3QuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaG92ZXJpbmcgYW5kIGJ1dHRvbiBOT1QgZG93blxyXG4gICAgaWYoIGhvdmVyTmFtZSAmJiBob3ZlciAmJiBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSApIHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBldmVudHMuZW1pdCggaG92ZXJOYW1lLCBwYXlsb2FkICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGhvdmVyaW5nIGFuZCBidXR0b24gZG93biBidXQgbm8gaW50ZXJhY3Rpb25zIGFjdGl2ZSB5ZXRcclxuICAgIC8vLS0tPiBzaG91bGQgYmUgXiBidXR0b24gJ2NsaWNrZWQnLi4uIGllIG9ubHkgaWYgaXQgY2FtZSBkb3duIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS5cclxuICAgIC8vc28sIHNob3VsZCB3ZSBwYXNzICdidXR0b25DbGlja05hbWUnIGFzIGFuIGFyZ3VtZW50IChhbmQgdXNlIGJ1dHRvbk5hbWUgaWYgbm90IHByb3ZpZGVkKT9cclxuICAgIC8vLS0tPj4+PiBYWFg6IGlzIHRoaXMgXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXC8vLy8vLy8vLy8vLyB3b3JraW5nIHdpdGggVml2ZSBjb250cm9sbGVycz8gXHJcbiAgICBpZiggaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbkNsaWNrTmFtZSB8fCBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuXHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaWYgKCFoaXRPYmplY3QudXNlckRhdGEucGFydE9mTW9kYWwpIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuXHJcbiAgICAgIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KTtcclxuICAgICAgXHJcbiAgICAgIC8vZW1pdCBnbG9iYWwgY2xpY2sgZXZlbnQgYXMgd2VsbC4uLlxyXG4gICAgICBnbG9iYWxFdmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBpZiggcGF5bG9hZC5sb2NrZWQgKXtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IGludGVyYWN0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIGFueUFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBzdGlsbCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoIGhvbGROYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBpbnB1dC5ldmVudHMuZW1pdCggJ29uQ29udHJvbGxlckhlbGQnICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBub3QgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSB1bmRlZmluZWQ7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICBldmVudHMuZW1pdCggdXBOYW1lLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KSB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihoaXRPYmplY3QpO1xyXG4gICAgdG9wRm9sZGVyLnByb21vdGVaT3JkZXIoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGlzTWFpbkhvdmVyKCl7XHJcblxyXG4gICAgbGV0IG5vTWFpbkhvdmVyID0gdHJ1ZTtcclxuICAgIGZvciggbGV0IGk9MDsgaTxhdmFpbGFibGVJbnB1dHMubGVuZ3RoOyBpKysgKXtcclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0c1sgaSBdLmludGVyYWN0aW9uLmhvdmVyICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgICBub01haW5Ib3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIG5vTWFpbkhvdmVyICl7XHJcbiAgICAgIHJldHVybiBhbnlIb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmZpbHRlciggZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICAgIHJldHVybiBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9PT0gaW50ZXJhY3Rpb247XHJcbiAgICB9KS5sZW5ndGggPiAwICl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IHtcclxuICAgIGhvdmVyaW5nOiBpc01haW5Ib3ZlcixcclxuICAgIHByZXNzaW5nOiAoKT0+YW55UHJlc3NpbmcsXHJcbiAgICB1cGRhdGUsXHJcbiAgICBldmVudHMsXHJcbiAgICBoaXRWb2x1bWVcclxuICB9O1xyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn1cclxuXHJcbiIsIi8qKlxyXG4gKiBcclxuICogVE9ETzogY3Vyc29ycy4uLlxyXG4gKiBNYXliZSBzb21ldGhpbmcgbGlrZSBtb2JpbGUgaW5wdXQgd2hlcmUgeW91IHN3aXRjaCBiZXR3ZWVuIGxldHRlcnMgJiBudW1iZXJzIC8gc3ltYm9sc1xyXG4gKiBcclxuICogU29tZXRoaW5nIGxpa2UgYSBzcGxpdCBrZXlib2FyZCBhbGEgaHR0cHM6Ly9tZWRpdW0uY29tL2Fhcm9ubi92ci10ZXh0LWlucHV0LXNwbGl0LWtleWJvYXJkLWU1YmYzZmQ4N2E0Y1xyXG4gKiBtaWdodCBiZSBiZXR0ZXIuXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlS2V5Ym9hcmQoIHsgXHJcbiAgICBrZXlMaXN0ZW5lcixcclxuICAgIHRleHRDcmVhdG9yXHJcbn0gPSB7fSkge1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGNvbnN0IG9mZnNldFRyYW5zZm9ybSA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgZ3JvdXAuYWRkKG9mZnNldFRyYW5zZm9ybSk7XHJcblxyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGV2ZW50cy5vbigna2V5RG93bicsIGtleUxpc3RlbmVyKTtcclxuICAgIFxyXG4gICAgY29uc3QgbG93ZXJDaGFycyA9IFwiMTIzNDU2Nzg5MC09cXdlcnR5dWlvcFtdYXNkZmdoamtsOycjXFxcXHp4Y3Zibm0sLi8gXCIuc3BsaXQoJycpO1xyXG4gICAgbGV0IG9iamVjdHMgPSBsb3dlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGxvd2VyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKGxvd2VyS2V5cyk7XHJcblxyXG4gICAgY29uc3QgdXBwZXJDaGFycyA9IFwiIVxcXCLCoyQlXiYqKClfK1FXRVJUWVVJT1B7fUFTREZHSEpLTDpAfnxaWENWQk5NPD4/IFwiLnNwbGl0KCcnKTtcclxuICAgIG9iamVjdHMgPSB1cHBlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHVwcGVyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICB1cHBlcktleXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZCh1cHBlcktleXMpO1xyXG5cclxuICAgIGxldCBzaGlmdCA9IGZhbHNlO1xyXG4gICAgZnVuY3Rpb24gc2hpZnRUb2dnbGUoKSB7XHJcbiAgICAgICAgc2hpZnQgPSAhc2hpZnQ7XHJcbiAgICAgICAgbG93ZXJLZXlzLnZpc2libGUgPSAhc2hpZnQ7XHJcbiAgICAgICAgdXBwZXJLZXlzLnZpc2libGUgPSBzaGlmdDtcclxuICAgfVxyXG5cclxuICAgY29uc3Qgc3BhY2VCYXIgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoeyB0ZXh0Q3JlYXRvciwgY29sdW1uczogMSwgcm93SGVpZ2h0OiAwLjEsIG9iamVjdHM6IFtcclxuICAgICAgIHtmdW5jOiAoKT0+ZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnICcpLCB0ZXh0OiAnc3BhY2UnfVxyXG4gICAgXX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGFjZUJhcik7XHJcbiAgICB2YXIgeSA9IHNwYWNlQmFyLnBvc2l0aW9uLnkgPSAtMC41ICogKGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyk7XHJcbiAgICBcclxuICAgIG9iamVjdHMgPSBbXHJcbiAgICAgICAgeyB0ZXh0OiBcInNoaWZ0XCIsIGZ1bmM6IHNoaWZ0VG9nZ2xlIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImJhY2tzcGFjZVwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXGInKSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJlbnRlclwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXG4nKSB9XHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc3BlY2lhbEtleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAzLCByb3dIZWlnaHQ6IDAuMX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGVjaWFsS2V5cyk7XHJcbiAgICBzcGVjaWFsS2V5cy5wb3NpdGlvbi55ID0geS0wLjUgKiAoc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmcpO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcbiAgICAvL3RoaXMgbG9va3MgcmlnaHQsIG11c3QgYWRtaXQgSSBoYXZlbid0IHRob3VnaHQgdGhyb3VnaCBleGFjdGx5IHdoeSBpdCBzaG91bGQgYmUuXHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0ucG9zaXRpb24ueSA9IHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaGl0c2NhbicsIHtcclxuICAgICAgICBnZXQ6ICgpID0+IFtcclxuICAgICAgICAgICAgc3BlY2lhbEtleXMuaGl0c2Nhbiwgc3BhY2VCYXIuaGl0c2Nhbiwgc2hpZnQgPyB1cHBlcktleXMuaGl0c2NhbiA6IGxvd2VyS2V5cy5oaXRzY2FuXHJcbiAgICAgICAgXS5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBzcGFjZUJhci5mb2xkZXIgPSB1cHBlcktleXMuZm9sZGVyID0gbG93ZXJLZXlzLmZvbGRlciA9IHNwZWNpYWxLZXlzLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IChpbnB1dHMpID0+IHtcclxuICAgICAgICBzcGVjaWFsS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgbG93ZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBzcGFjZUJhci51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgdXBwZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFsaWduTGVmdCggb2JqICl7XHJcbiAgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLk1lc2ggKXtcclxuICAgIG9iai5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIGVsc2UgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5ICl7XHJcbiAgICBvYmouY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgdW5pcXVlTWF0ZXJpYWwgKXtcclxuICBjb25zdCBtYXRlcmlhbCA9IHVuaXF1ZU1hdGVyaWFsID8gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweGZmZmZmZn0pIDogU2hhcmVkTWF0ZXJpYWxzLlBBTkVMO1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggd2lkdGgsIGhlaWdodCwgZGVwdGggKSwgbWF0ZXJpYWwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoICogMC41LCAwLCAwICk7XHJcblxyXG4gIGlmKCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcblxyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcblxyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplUGFuZWwocGFuZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKSB7XHJcbiAgcGFuZWwuZ2VvbWV0cnkuc2NhbGUod2lkdGgvcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoLCBoZWlnaHQvcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCwgZGVwdGgvcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoKTtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIGNvbG9yICl7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDT05UUk9MTEVSX0lEX1dJRFRILCBoZWlnaHQsIENPTlRST0xMRVJfSURfREVQVEggKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCBDT05UUk9MTEVSX0lEX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBjb2xvciApO1xyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURvd25BcnJvdygpe1xyXG4gIGNvbnN0IHcgPSAwLjAwOTY7XHJcbiAgY29uc3QgaCA9IDAuMDE2O1xyXG4gIGNvbnN0IHNoID0gbmV3IFRIUkVFLlNoYXBlKCk7XHJcbiAgc2gubW92ZVRvKDAsMCk7XHJcbiAgc2gubGluZVRvKC13LGgpO1xyXG4gIHNoLmxpbmVUbyh3LGgpO1xyXG4gIHNoLmxpbmVUbygwLDApO1xyXG5cclxuICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuU2hhcGVHZW9tZXRyeSggc2ggKTtcclxuICBnZW8udHJhbnNsYXRlKCAwLCAtaCAqIDAuNSwgMCApO1xyXG5cclxuICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTF9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0hFSUdIVCA9IDAuMDg7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9TUEFDSU5HID0gMDsvLy4wMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9NQVJHSU4gPSAwLjAxNTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOID0gMC4wNjtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfV0lEVEggPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9ERVBUSCA9IDAuMDAxO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9XSURUSCA9IDEuMDI2O1xyXG5leHBvcnQgY29uc3QgU1VCRk9MREVSX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0hFSUdIVCA9IDAuMDk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfR1JBQl9IRUlHSFQgPSAwLjA1MTI7XHJcbmV4cG9ydCBjb25zdCBCT1JERVJfVEhJQ0tORVNTID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX1NJWkUgPSAwLjA1O1xyXG5leHBvcnQgY29uc3QgVEVYVF9TQ0FMRSA9IDAuMDAwMjQ7XHJcbmV4cG9ydCBjb25zdCBHUklEX0JVVFRPTl9NQVJHSU4gPSAwLjAxOyIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25HcmlwcGVkJywgaGFuZGxlT25HcmlwICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlR3JpcCcsIGhhbmRsZU9uR3JpcFJlbGVhc2UgKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIGxldCBvbGRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgbGV0IG9sZFJvdGF0aW9uID0gbmV3IFRIUkVFLkV1bGVyKCk7XHJcblxyXG4gIGNvbnN0IHJvdGF0aW9uR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICByb3RhdGlvbkdyb3VwLnNjYWxlLnNldCggMC4zLCAwLjMsIDAuMyApO1xyXG4gIHJvdGF0aW9uR3JvdXAucG9zaXRpb24uc2V0KCAtMC4wMTUsIDAuMDE1LCAwLjAgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcCggcCApe1xyXG5cclxuICAgIGNvbnN0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvbGRQb3NpdGlvbi5jb3B5KCBmb2xkZXIucG9zaXRpb24gKTtcclxuICAgIG9sZFJvdGF0aW9uLmNvcHkoIGZvbGRlci5yb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnggPSAtTWF0aC5QSSAqIDAuNTtcclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuXHJcbiAgICByb3RhdGlvbkdyb3VwLmFkZCggZm9sZGVyICk7XHJcblxyXG4gICAgaW5wdXRPYmplY3QuYWRkKCByb3RhdGlvbkdyb3VwICk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3Bpbm5lZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXBSZWxlYXNlKCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9PXt9ICl7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KCBvbGRQb3NpdGlvbiApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLmNvcHkoIG9sZFJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3BpblJlbGVhc2VkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsIi8qKlxyXG4gKiBQSlQ6IFRoaXMgaXMgYSB2YXJpYXRpb24gb24gc2Rmc2hhZGVyIGZyb20gYm1mb250LCB3aGljaCBzaG91bGQgSnVzdCBXb3JrIHdpdGggbG9nYXJpdGhtaWMgZGVwdGggYnVmZmVycy5cclxuICogSXQgc2hvdWxkIGFsc28gYWxsb3cgc29tZSBvdGhlciBhc3BlY3RzIG9mIFRIUkVFIHJlbmRlcmluZyB0byBiZSBpbmNvcnBvcmF0ZWQsIGxpa2UgZm9nLCBjbGlwcGluZyBwbGFuZXMuLi5cclxuICogRW52aXJvbm1lbnQgbWFwcyBhbmQgdmFyaW91cyBvdGhlciBiaXRzIGZyb20gTWVzaEJhc2ljTWF0ZXJpYWwgYXJlIHJlbW92ZWQuXHJcbiAqIEF0IHRpbWUgb2Ygd3JpdGluZywgdGhpcyBpcyB3b3JrIGluIHByb2dyZXNzLCBhbmQgc29tZXdoYXQgbW9yZSBibG9hdGVkIHRoYW4gaXQgbmVlZHMgdG8gYmUuXHJcbiAqIFRoZSBzaGFkZXIgY29kZSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggU2hhZGVyTWF0ZXJpYWwgcmF0aGVyIHRoYW4gUmF3U2hhZGVyTWF0ZXJpYWwuXHJcbiAqL1xyXG4gaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZhcnlpbmcgZmxvYXQgdlNjYWxlO1xyXG4vLyBUaGlzIGlzIGRlZmluZWQgaW4gbGF5b3V0LmpzIChhbmQgd2FzIG9ic2VydmVkIGxvb2tpbmcgYXQgdGhyZWUgaGVpcmFjaHkgbWF0cmljZXMpXHJcbiNkZWZpbmUgVEVYVF9TQ0FMRSAke0xheW91dC5URVhUX1NDQUxFfVxyXG52b2lkIG1haW4oKSB7XHJcbiAgXHJcbiAgdlNjYWxlID0gcG93KGFicyhkZXRlcm1pbmFudChtYXQzKG1vZGVsVmlld01hdHJpeCkpKSwgLTAuMzMzMzMpICogVEVYVF9TQ0FMRTtcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG52YXJ5aW5nIGZsb2F0IHZTY2FsZTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgI2lmZGVmIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlc1xyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICAjZWxzZVxyXG4gICAgICAgIGZsb2F0IGFmd2lkdGggPSAoMS4wIC8gMzIuMCkgKiAoMS40MTQyMTM1NjIzNzMwOTUxIC8gKDIuMCAqIGdsX0ZyYWdDb29yZC53KSk7XHJcbiAgICAjZW5kaWZcclxuICAgIGFmd2lkdGggKj0gdlNjYWxlO1xyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBtZXNoLmdlb21ldHJ5LnVwZGF0ZSggc3RyICk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogVEhSRUUuVmVydGV4Q29sb3JzIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiAweEZGRkZGRiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIC8vaG93IGNhbiBJIGNoYW5nZSBjb2xvciBvZiB0ZXh0P1xyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBvYmplY3RbcHJvcGVydHlOYW1lXSwgeyBjb2xvcjogMHgwMDAwMDAwLCBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgLy9idXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IDAuMDE1O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVN0cmluZyhzdHIpIHtcclxuICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdHI7XHJcbiAgICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKHN0cik7XHJcbiAgfVxyXG4gIHZhciBrZXlib2FyZDtcclxuICBmdW5jdGlvbiB0b2dnbGVLZXlib2FyZCgpIHtcclxuICAgIGlmIChrZXlib2FyZCkge1xyXG4gICAgICAgIGtleWJvYXJkLnZpc2libGUgPSAha2V5Ym9hcmQudmlzaWJsZTtcclxuICAgICAgICBpZiAoa2V5Ym9hcmQudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGtleWJvYXJkID0gZGF0LkdVSVZSLmNyZWF0ZShcImtleWJvYXJkXCIpO1xyXG4gICAgICAgIGdyb3VwLmFkZChrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQuZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueCA9IHdpZHRoO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgICAgICBrZXlib2FyZC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAga2V5Ym9hcmQuYWRkS2V5Ym9hcmQoIChrKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBzdHIgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgc3dpdGNoIChrKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXG4nOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0dGluZyBcImtleWJvYXJkLnZpc2libGUgPSBmYWxzZVwiIGluIHRoZSBtaWRkbGUgb2YgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIgc2VlbXMgdG8ga2lsbCBhbGwgZXZlbnQgcHJvY2Vzc2luZyBmcm9tIHRoZW4gb24uXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0IGlzIGFuIGFkZXF1YXRlIHdvcmthcm91bmQgZm9yIG5vdy5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRvZ2dsZUtleWJvYXJkLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxiJzpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSBrO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL3RoaXMgdGVzdCBzaG91bGQgYmUgcmVkdW5kYW50IG5vd1xyXG4gICAgLy8gaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvL29iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICAvL2hpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICAvLyBjcmVhdGUgYSBrZXlib2FyZCBhbmQgYXR0YWNoIGl0IGFzIGNoaWxkIG9mIGdyb3VwLi4uIFxyXG4gICAgLy8gb3IganVzdCBtYWtlIHN1cmUgZXhpc3Rpbmcga2V5Ym9hcmQgaXMgdmlzaWJsZS5cclxuICAgIHRvZ2dsZUtleWJvYXJkKCk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfSElHSExJR0hUX0JHICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0JHICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRMYWJlbCggdGV4dENyZWF0b3IsIHN0ciwgd2lkdGggPSAwLjQsIGRlcHRoID0gMC4wMjksIGZnQ29sb3IgPSAweGZmZmZmZiwgYmdDb2xvciA9IENvbG9ycy5ERUZBVUxUX0JBQ0ssIHNjYWxlID0gMS4wICl7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGxhYmVsXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7c3RyfV1gO1xyXG5cclxuICBjb25zdCBpbnRlcm5hbFBvc2l0aW9uaW5nID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vcmF0aGVyIHVubmVjZXNzYXJ5LlxyXG4gIGdyb3VwLmFkZCggaW50ZXJuYWxQb3NpdGlvbmluZyApO1xyXG5cclxuICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdHIudG9TdHJpbmcoKSwgeyBjb2xvcjogZmdDb2xvciwgc2NhbGUgfSApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCB0ZXh0ICk7XHJcbiAgZ3JvdXAudXNlckRhdGEudGV4dCA9IHRleHQ7XHJcblxyXG4gIGdyb3VwLnNldFN0cmluZyA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkgc3RyID0gXCJbdW5kZWZpbmVkXVwiO1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvU3RyaW5nKCkgKTtcclxuICAgIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0TnVtYmVyID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvRml4ZWQoMikgKTtcclxuICB9O1xyXG5cclxuICB0ZXh0LnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgY29uc3QgYmFja0JvdW5kcyA9IDAuMDE7XHJcbiAgY29uc3QgbWFyZ2luID0gMC4wMTtcclxuICBjb25zdCB0b3RhbFdpZHRoID0gd2lkdGg7XHJcbiAgY29uc3QgdG90YWxIZWlnaHQgPSAwLjA0ICsgbWFyZ2luICogMjtcclxuXHJcbiAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrR2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0LCBkZXB0aCwgMSwgMSwgMSApO1xyXG4gIGxhYmVsQmFja0dlb21ldHJ5LmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oIHRvdGFsV2lkdGggKiAwLjUgLSBtYXJnaW4sIDAsIDAgKSApO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tNZXNoID0gbmV3IFRIUkVFLk1lc2goIGxhYmVsQmFja0dlb21ldHJ5LCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWxCYWNrTWVzaC5nZW9tZXRyeSwgYmdDb2xvciApO1xyXG5cclxuICBsYWJlbEJhY2tNZXNoLnBvc2l0aW9uLnkgPSAwLjAzO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCBsYWJlbEJhY2tNZXNoICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5wb3NpdGlvbi55ID0gLXRvdGFsSGVpZ2h0ICogMC41O1xyXG5cclxuICBncm91cC5iYWNrID0gbGFiZWxCYWNrTWVzaDtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0UGFyZW50SGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbFRpcCggdGV4dENyZWF0b3IsIHRpcCwgcGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCA9IGRlZmF1bHRQYXJlbnRIZWlnaHQsIHBhcmVudERlcHRoICkge1xyXG4gIGNvbnN0IHRpcFRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUodGlwKTtcclxuICBcclxuICBjb25zdCB0aXBHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICBjb25zdCB3ID0gdGlwVGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICBjb25zdCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0aXBUZXh0LmxheW91dC5oZWlnaHQ7XHJcblxyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnggID0gMC41ICogcGFyZW50V2lkdGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueSA9IC0xLjA1ICogcGFyZW50SGVpZ2h0IC0gaDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi56ID0gcGFyZW50RGVwdGggKiAzO1xyXG4gIHRpcEdyb3VwLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbi8vICBzdWJncm91cC5hZGQodGlwR3JvdXApO1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBUZXh0KTtcclxuLy8gIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBHcm91cDtcclxuXHJcbiAgY29uc3QgcGFkZGVkVyA9IHcgKyAwLjAzLCBwYWRkZWRIID0gaCArIDAuMDM7XHJcbiAgY29uc3QgdGlwUmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KHBhZGRlZFcsIHBhZGRlZEgsIDEsIDEpO1xyXG4gIGNvbnN0IHRpcEJhY2tncm91bmQgPSBuZXcgVEhSRUUuTWVzaCh0aXBSZWN0LCBTaGFyZWRNYXRlcmlhbHMuVE9PTFRJUCk7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi54ID0gMDsgLy9wYWRkZWRXIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnkgPSBoIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnogPSAtcGFyZW50RGVwdGggKiAwLjU7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcEJhY2tncm91bmQpO1xyXG5cclxuICB0aXBUZXh0LnBvc2l0aW9uLnggPSAtMC41ICogdztcclxuICB0aXBUZXh0LnBvc2l0aW9uLnkgPSAtMC41ICogaCArIDAuMDAxNTtcclxuXHJcbiAgdGlwR3JvdXAudXNlckRhdGEudyA9IHc7XHJcbiAgdGlwR3JvdXAudXNlckRhdGEuaCA9IGg7XHJcblxyXG4gIHJldHVybiB0aXBHcm91cDtcclxufVxyXG4iLCIvKiogYmFzaWMgdXRpbGl0eSBmdW5jdGlvbnMgKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xsZXJWaXNpYmxlKGNvbnRyb2wpIHtcclxuICB2YXIgZm9sZGVyID0gY29udHJvbC5mb2xkZXI7XHJcbiAgLy9ub3RlOiB0aGUgYmFzaXMgb24gd2hpY2ggYSBjb250cm9sbGVyIGlzIGNvbnNpZGVyZWQgdmlzaWJsZSByZXZpc2VkIGZvciAnaGVhZGVyJyBvYmplY3RzLlxyXG4gIC8vZm9yIG5vdywgdGhpcyBzaG91bGQgYWxsb3cgaGVhZGVyIGNvbnRyb2xsZXJzIHRvIHVwZGF0ZSB3aGlsZSBmb2xkZXIgaXMgY29sbGFwc2VkLlxyXG4gIC8vb25seSBhcHBsaWVzIHRvIGNoZWNrYm94LCBwZW5kaW5nIGRlc2lnbiByZXZpc2lvbiAmIGZ1bGxlciBpbXBsZW1lbnRhdGlvbi4uLlxyXG4gIFxyXG4gIC8vLS0tLSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgbm8gbG9uZ2VyIHJlbGV2YW50LCBidXQgZW5kaW5nIHVwIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3Mgc2ltaWxhci4uLi5cclxuICAvL2lzSGVhZGVyT2JqZWN0IHdpbGwgYXBwbHkgdG8gdGhlIGFjdHVhbCBjb250cm9sIGFwcGVhcmluZyBpbiB0aGUgZm9sZGVyIGhlYWRlciwgd2hlcmVhc1xyXG4gIC8vaXNTaG93bkluRm9sZGVySGVhZGVyIHdhcyB3aGVuIHN1Y2ggb2JqZWN0cyB3ZXJlbid0IHNvIGZ1bGx5LWZsZWRnZWRcclxuICAvL2lmIChjb250cm9sLmlzU2hvd25JbkZvbGRlckhlYWRlcikgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTsgLy88PDw8PCBzdGlsbCBoaXR0aW5nIGZvbGRlZCBidXR0b24/Pz8gKGFsc28sIHRyeSBucG0gYXVkaXQpXHJcbiAgaWYgKGNvbnRyb2wuaXNIZWFkZXJPYmplY3QpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7XHJcblxyXG4gIC8vWFhYIGhhdmluZyBzb21lIGRlZmluaXRlIGJ1Z3MgZS5nLiBtaXNzaW5nIGV2ZW50cyBvdmVyICdwaWN0dXJlcyAvIG1hdGVyaWFscycgZm9sZGVyIGhlYWRlciBpbiBkZW1vLlxyXG4gIFxyXG4gIGlmICghY29udHJvbC52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcil7XHJcbiAgICBpZiAoZm9sZGVyLmlzQ29sbGFwc2VkKCkgfHwgIWZvbGRlci52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gIH1cclxuICBpZiAoIWZvbGRlci5wYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gZm9sZGVyLnZpc2libGU7XHJcbn1cclxuXHJcbi8qKiBcclxuICogSW52aXNpYmxlIFRIUkVFIG9iamVjdHMgaW5jdXIgc2lnbmlmaWNhbnQgQ1BVIGNvc3QuXHJcbiAqIFRoaXMgYXZvaWRzIHRoYXQgYnkgcmVtb3ZpbmcgdGhlbSBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICogXHJcbiAqIElmIHZpc2libGUgaXMgdHJ1ZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9dHJ1ZSBhbmQgaXMgYSBjaGlsZCBvZiBwYXJlbnQuXHJcbiAqIElmIHZpc2libGUgaXMgZmFsc2UsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPWZhbHNlIGFuZCBpcyByZW1vdmVkIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHkocGFyZW50LCBjaGlsZCwgdmlzaWJsZSkge1xyXG4gICAgY29uc3QgaXNDaGlsZCA9IHBhcmVudC5jaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCk7XHJcbiAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgIC8vbWFrZSBzdXJlIHdlIHVzZSBvcmlnaW5hbCBUSFJFRSBtZXRob2RzIHRoYXQgdGhpcyBsaWJyYXJ5IG92ZXJyaWRlcyAoVE9ETzogcmVmYWN0b3IuLi4pXHJcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZC5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCF2aXNpYmxlICYmIGlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmUuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghcGFyZW50LnZpc2libGUpIGNvbnNvbGUud2Fybihgc2V0VmlzaWJpbGl0eSBjYWxsZWQgb24gY2hpbGQgJHtjaGlsZH0gb2YgaW52aXNpYmxlIHBhcmVudCAke3BhcmVudH1gKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2YgcGFyZW50IGZvbGRlciBpbiB0aGUgZ3VpIGhpZWFyY2h5IGNvbnRhaW5pbmcgYSBnaXZlbiBvYmplY3QuXHJcbiAqIG5iLiBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0IGRpZG4ndCBoYXZlIGEgJ2ZvbGRlcicgcHJvcGVydHkuXHJcbiAqIE5vdywgaXQgaXMgaW50ZW5kZWQgdGhhdCBpdCBzaG91bGQgZWl0aGVyIHJldHVybiBhIGZvbGRlciBpZiBhcHByb3ByaWF0ZSwgb3Igbm90aGluZy5cclxuICogQHBhcmFtIHsqfSBncm91cCBlaXRoZXIgYSBmb2xkZXIsIG9yIGFuIG9iamVjdCB3aG9zZSBwYXJlbnQgaGFzIGEgZm9sZGVyLi4uIGFwb2xvZ2llcywgdGhpcyBpcyBub3QgdGhlIGNsZWFyZXN0IHNwZWMuXHJcbiAqIC4uLiBpbnRlbnRpb24gaXMgdGhhdCBpdCBzaG91bGQgd29yayB3aXRoIGFueSBndWkgZWxlbWVudCwgaW4gcGFydGljdWxhciBhbnkgaGl0T2JqZWN0IGluIGludGVyYWN0aW9uLmpzLi4uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApIHtcclxuICAgIHZhciBmb2xkZXIgPSBnZXRGb2xkZXIoZ3JvdXApO1xyXG4gICAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcikgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICAgIHJldHVybiBmb2xkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoZ3JvdXApIHtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIHJldHVybiBncm91cC5mb2xkZXI7XHJcbiAgICBsZXQgbm9kZSA9IGdyb3VwLnBhcmVudDtcclxuICAgIHdoaWxlICghbm9kZS5mb2xkZXIgJiYgZ3JvdXAucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICByZXR1cm4gbm9kZS5mb2xkZXI7XHJcbn1cclxuXHJcbi8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCb3hGcm9tT2JqZWN0KGJveCwgb2JqKSB7XHJcbiAgY29uc3Qgd29ua3lHZW9tID0gW107XHJcbiAgb2JqLnRyYXZlcnNlKG8gPT4ge1xyXG4gICAgaWYgKG8uZ2VvbWV0cnkgJiYgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZSAhPT0gMykge1xyXG4gICAgICBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgPSBmYWxzZTtcclxuICAgICAgd29ua3lHZW9tLnB1c2goby5nZW9tZXRyeSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgYm94LnNldEZyb21PYmplY3Qob2JqKTtcclxuICB3b25reUdlb20uZm9yRWFjaChnID0+IGcuaXNCdWZmZXJHZW9tZXRyeSA9IHRydWUpO1xyXG4gIHJldHVybiBib3g7XHJcbn1cclxuIiwiLypcclxuICpcdEBhdXRob3Igeno4NSAvIGh0dHA6Ly90d2l0dGVyLmNvbS9ibHVyc3BsaW5lIC8gaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZ1xyXG4gKlx0QGF1dGhvciBjZW50ZXJpb253YXJlIC8gaHR0cDovL3d3dy5jZW50ZXJpb253YXJlLmNvbVxyXG4gKlxyXG4gKlx0U3ViZGl2aXNpb24gR2VvbWV0cnkgTW9kaWZpZXJcclxuICpcdFx0dXNpbmcgTG9vcCBTdWJkaXZpc2lvbiBTY2hlbWVcclxuICpcclxuICpcdFJlZmVyZW5jZXM6XHJcbiAqXHRcdGh0dHA6Ly9ncmFwaGljcy5zdGFuZm9yZC5lZHUvfm1kZmlzaGVyL3N1YmRpdmlzaW9uLmh0bWxcclxuICpcdFx0aHR0cDovL3d3dy5ob2xtZXMzZC5uZXQvZ3JhcGhpY3Mvc3ViZGl2aXNpb24vXHJcbiAqXHRcdGh0dHA6Ly93d3cuY3MucnV0Z2Vycy5lZHUvfmRlY2FybG8vcmVhZGluZ3Mvc3ViZGl2LXNnMDBjLnBkZlxyXG4gKlxyXG4gKlx0S25vd24gSXNzdWVzOlxyXG4gKlx0XHQtIGN1cnJlbnRseSBkb2Vzbid0IGhhbmRsZSBcIlNoYXJwIEVkZ2VzXCJcclxuICovXHJcblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyID0gZnVuY3Rpb24gKCBzdWJkaXZpc2lvbnMgKSB7XHJcblxyXG5cdHRoaXMuc3ViZGl2aXNpb25zID0gKCBzdWJkaXZpc2lvbnMgPT09IHVuZGVmaW5lZCApID8gMSA6IHN1YmRpdmlzaW9ucztcclxuXHJcbn07XHJcblxyXG4vLyBBcHBsaWVzIHRoZSBcIm1vZGlmeVwiIHBhdHRlcm5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUubW9kaWZ5ID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHtcclxuXHJcblx0dmFyIHJlcGVhdHMgPSB0aGlzLnN1YmRpdmlzaW9ucztcclxuXHJcblx0d2hpbGUgKCByZXBlYXRzIC0tID4gMCApIHtcclxuXHJcblx0XHR0aGlzLnNtb290aCggZ2VvbWV0cnkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRnZW9tZXRyeS5jb21wdXRlRmFjZU5vcm1hbHMoKTtcclxuXHRnZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xyXG5cclxufTtcclxuXHJcbiggZnVuY3Rpb24oKSB7XHJcblxyXG5cdC8vIFNvbWUgY29uc3RhbnRzXHJcblx0dmFyIFdBUk5JTkdTID0gISB0cnVlOyAvLyBTZXQgdG8gdHJ1ZSBmb3IgZGV2ZWxvcG1lbnRcclxuXHR2YXIgQUJDID0gWyAnYScsICdiJywgJ2MnIF07XHJcblxyXG5cclxuXHRmdW5jdGlvbiBnZXRFZGdlKCBhLCBiLCBtYXAgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0cmV0dXJuIG1hcFsga2V5IF07XHJcblxyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHByb2Nlc3NFZGdlKCBhLCBiLCB2ZXJ0aWNlcywgbWFwLCBmYWNlLCBtZXRhVmVydGljZXMgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0dmFyIGVkZ2U7XHJcblxyXG5cdFx0aWYgKCBrZXkgaW4gbWFwICkge1xyXG5cclxuXHRcdFx0ZWRnZSA9IG1hcFsga2V5IF07XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHZhciB2ZXJ0ZXhBID0gdmVydGljZXNbIHZlcnRleEluZGV4QSBdO1xyXG5cdFx0XHR2YXIgdmVydGV4QiA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEIgXTtcclxuXHJcblx0XHRcdGVkZ2UgPSB7XHJcblxyXG5cdFx0XHRcdGE6IHZlcnRleEEsIC8vIHBvaW50ZXIgcmVmZXJlbmNlXHJcblx0XHRcdFx0YjogdmVydGV4QixcclxuXHRcdFx0XHRuZXdFZGdlOiBudWxsLFxyXG5cdFx0XHRcdC8vIGFJbmRleDogYSwgLy8gbnVtYmVyZWQgcmVmZXJlbmNlXHJcblx0XHRcdFx0Ly8gYkluZGV4OiBiLFxyXG5cdFx0XHRcdGZhY2VzOiBbXSAvLyBwb2ludGVycyB0byBmYWNlXHJcblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0bWFwWyBrZXkgXSA9IGVkZ2U7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGVkZ2UuZmFjZXMucHVzaCggZmFjZSApO1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlc1sgYSBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHRcdG1ldGFWZXJ0aWNlc1sgYiBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2VuZXJhdGVMb29rdXBzKCB2ZXJ0aWNlcywgZmFjZXMsIG1ldGFWZXJ0aWNlcywgZWRnZXMgKSB7XHJcblxyXG5cdFx0dmFyIGksIGlsLCBmYWNlLCBlZGdlO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IHZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0bWV0YVZlcnRpY2VzWyBpIF0gPSB7IGVkZ2VzOiBbXSB9O1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBmYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBmYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYSwgZmFjZS5iLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5iLCBmYWNlLmMsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmMsIGZhY2UuYSwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3RmFjZSggbmV3RmFjZXMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3RmFjZXMucHVzaCggbmV3IFRIUkVFLkZhY2UzKCBhLCBiLCBjICkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBtaWRwb2ludCggYSwgYiApIHtcclxuXHJcblx0XHRyZXR1cm4gKCBNYXRoLmFicyggYiAtIGEgKSAvIDIgKSArIE1hdGgubWluKCBhLCBiICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3VXYoIG5ld1V2cywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdVdnMucHVzaCggWyBhLmNsb25lKCksIGIuY2xvbmUoKSwgYy5jbG9uZSgpIF0gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHQvLyBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIFN1YmRpdmlzaW9uXHJcblx0VEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUuc21vb3RoID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHsgcmV0dXJuOyAvLyBzanB0IFRFTVAgVE9ET1xyXG5cclxuXHRcdHZhciB0bXAgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdHZhciBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG9sZFV2cztcclxuXHRcdHZhciBuZXdWZXJ0aWNlcywgbmV3RmFjZXMsIG5ld1VWcyA9IFtdO1xyXG5cclxuXHRcdHZhciBuLCBsLCBpLCBpbCwgaiwgaztcclxuXHRcdHZhciBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzO1xyXG5cclxuXHRcdC8vIG5ldyBzdHVmZi5cclxuXHRcdHZhciBzb3VyY2VFZGdlcywgbmV3RWRnZVZlcnRpY2VzLCBuZXdTb3VyY2VWZXJ0aWNlcztcclxuXHJcblx0XHRvbGRWZXJ0aWNlcyA9IGdlb21ldHJ5LnZlcnRpY2VzOyAvLyB7IHgsIHksIHp9XHJcblx0XHRvbGRGYWNlcyA9IGdlb21ldHJ5LmZhY2VzOyAvLyB7IGE6IG9sZFZlcnRleDEsIGI6IG9sZFZlcnRleDIsIGM6IG9sZFZlcnRleDMgfVxyXG5cdFx0b2xkVXZzID0gZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdO1xyXG5cclxuXHRcdHZhciBoYXNVdnMgPSBvbGRVdnMgIT09IHVuZGVmaW5lZCAmJiBvbGRVdnMubGVuZ3RoID4gMDtcclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICogU3RlcCAwOiBQcmVwcm9jZXNzIEdlb21ldHJ5IHRvIEdlbmVyYXRlIGVkZ2VzIExvb2t1cFxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlcyA9IG5ldyBBcnJheSggb2xkVmVydGljZXMubGVuZ3RoICk7XHJcblx0XHRzb3VyY2VFZGdlcyA9IHt9OyAvLyBFZGdlID0+IHsgb2xkVmVydGV4MSwgb2xkVmVydGV4MiwgZmFjZXNbXSAgfVxyXG5cclxuXHRcdGdlbmVyYXRlTG9va3Vwcyggb2xkVmVydGljZXMsIG9sZEZhY2VzLCBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzICk7XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAxLlxyXG5cdFx0ICpcdEZvciBlYWNoIGVkZ2UsIGNyZWF0ZSBhIG5ldyBFZGdlIFZlcnRleCxcclxuXHRcdCAqXHR0aGVuIHBvc2l0aW9uIGl0LlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld0VkZ2VWZXJ0aWNlcyA9IFtdO1xyXG5cdFx0dmFyIG90aGVyLCBjdXJyZW50RWRnZSwgbmV3RWRnZSwgZmFjZTtcclxuXHRcdHZhciBlZGdlVmVydGV4V2VpZ2h0LCBhZGphY2VudFZlcnRleFdlaWdodCwgY29ubmVjdGVkRmFjZXM7XHJcblxyXG5cdFx0Zm9yICggaSBpbiBzb3VyY2VFZGdlcyApIHtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlID0gc291cmNlRWRnZXNbIGkgXTtcclxuXHRcdFx0bmV3RWRnZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMyAvIDg7XHJcblx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRjb25uZWN0ZWRGYWNlcyA9IGN1cnJlbnRFZGdlLmZhY2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdC8vIGNoZWNrIGhvdyBtYW55IGxpbmtlZCBmYWNlcy4gMiBzaG91bGQgYmUgY29ycmVjdC5cclxuXHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiBsZW5ndGggaXMgbm90IDIsIGhhbmRsZSBjb25kaXRpb25cclxuXHRcdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMC41O1xyXG5cdFx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdTdWJkaXZpc2lvbiBNb2RpZmllcjogTnVtYmVyIG9mIGNvbm5lY3RlZCBmYWNlcyAhPSAyLCBpczogJywgY29ubmVjdGVkRmFjZXMsIGN1cnJlbnRFZGdlICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld0VkZ2UuYWRkVmVjdG9ycyggY3VycmVudEVkZ2UuYSwgY3VycmVudEVkZ2UuYiApLm11bHRpcGx5U2NhbGFyKCBlZGdlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IGNvbm5lY3RlZEZhY2VzOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRmYWNlID0gY3VycmVudEVkZ2UuZmFjZXNbIGogXTtcclxuXHJcblx0XHRcdFx0Zm9yICggayA9IDA7IGsgPCAzOyBrICsrICkge1xyXG5cclxuXHRcdFx0XHRcdG90aGVyID0gb2xkVmVydGljZXNbIGZhY2VbIEFCQ1sgayBdIF0gXTtcclxuXHRcdFx0XHRcdGlmICggb3RoZXIgIT09IGN1cnJlbnRFZGdlLmEgJiYgb3RoZXIgIT09IGN1cnJlbnRFZGdlLmIgKSBicmVhaztcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBhZGphY2VudFZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdFZGdlLmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZS5uZXdFZGdlID0gbmV3RWRnZVZlcnRpY2VzLmxlbmd0aDtcclxuXHRcdFx0bmV3RWRnZVZlcnRpY2VzLnB1c2goIG5ld0VkZ2UgKTtcclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGN1cnJlbnRFZGdlLCBuZXdFZGdlKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDIuXHJcblx0XHQgKlx0UmVwb3NpdGlvbiBlYWNoIHNvdXJjZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHR2YXIgYmV0YSwgc291cmNlVmVydGV4V2VpZ2h0LCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0O1xyXG5cdFx0dmFyIGNvbm5lY3RpbmdFZGdlLCBjb25uZWN0aW5nRWRnZXMsIG9sZFZlcnRleCwgbmV3U291cmNlVmVydGV4O1xyXG5cdFx0bmV3U291cmNlVmVydGljZXMgPSBbXTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRWZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG9sZFZlcnRleCA9IG9sZFZlcnRpY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIGFsbCBjb25uZWN0aW5nIGVkZ2VzICh1c2luZyBsb29rdXBUYWJsZSlcclxuXHRcdFx0Y29ubmVjdGluZ0VkZ2VzID0gbWV0YVZlcnRpY2VzWyBpIF0uZWRnZXM7XHJcblx0XHRcdG4gPSBjb25uZWN0aW5nRWRnZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0aWYgKCBuID09IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gMTY7XHJcblxyXG5cdFx0XHR9IGVsc2UgaWYgKCBuID4gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAoIDggKiBuICk7IC8vIFdhcnJlbidzIG1vZGlmaWVkIGZvcm11bGFcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIExvb3AncyBvcmlnaW5hbCBiZXRhIGZvcm11bGFcclxuXHRcdFx0Ly8gYmV0YSA9IDEgLyBuICogKCA1LzggLSBNYXRoLnBvdyggMy84ICsgMS80ICogTWF0aC5jb3MoIDIgKiBNYXRoLiBQSSAvIG4gKSwgMikgKTtcclxuXHJcblx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDEgLSBuICogYmV0YTtcclxuXHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IGJldGE7XHJcblxyXG5cdFx0XHRpZiAoIG4gPD0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlc1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUud2FybignY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlcycpO1xyXG5cclxuXHRcdFx0XHRpZiAoIG4gPT0gMiApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMiBjb25uZWN0aW5nIGVkZ2VzJywgY29ubmVjdGluZ0VkZ2VzICk7XHJcblx0XHRcdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAzIC8gNDtcclxuXHRcdFx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdFx0XHQvLyBzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxO1xyXG5cdFx0XHRcdFx0Ly8gY29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnb25seSAxIGNvbm5lY3RpbmcgZWRnZScgKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAwICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcwIGNvbm5lY3RpbmcgZWRnZXMnICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleCA9IG9sZFZlcnRleC5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKCBzb3VyY2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgbjsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0Y29ubmVjdGluZ0VkZ2UgPSBjb25uZWN0aW5nRWRnZXNbIGogXTtcclxuXHRcdFx0XHRvdGhlciA9IGNvbm5lY3RpbmdFZGdlLmEgIT09IG9sZFZlcnRleCA/IGNvbm5lY3RpbmdFZGdlLmEgOiBjb25uZWN0aW5nRWRnZS5iO1xyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3U291cmNlVmVydGV4LmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0aWNlcy5wdXNoKCBuZXdTb3VyY2VWZXJ0ZXggKTtcclxuXHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAzLlxyXG5cdFx0ICpcdEdlbmVyYXRlIEZhY2VzIGJldHdlZW4gc291cmNlIHZlcnRpY2VzXHJcblx0XHQgKlx0YW5kIGVkZ2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3VmVydGljZXMgPSBuZXdTb3VyY2VWZXJ0aWNlcy5jb25jYXQoIG5ld0VkZ2VWZXJ0aWNlcyApO1xyXG5cdFx0dmFyIHNsID0gbmV3U291cmNlVmVydGljZXMubGVuZ3RoLCBlZGdlMSwgZWRnZTIsIGVkZ2UzO1xyXG5cdFx0bmV3RmFjZXMgPSBbXTtcclxuXHJcblx0XHR2YXIgdXYsIHgwLCB4MSwgeDI7XHJcblx0XHR2YXIgeDMgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg0ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NSA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkRmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gb2xkRmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgdGhlIDMgbmV3IGVkZ2VzIHZlcnRleCBvZiBlYWNoIG9sZCBmYWNlXHJcblxyXG5cdFx0XHRlZGdlMSA9IGdldEVkZ2UoIGZhY2UuYSwgZmFjZS5iLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTIgPSBnZXRFZGdlKCBmYWNlLmIsIGZhY2UuYywgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UzID0gZ2V0RWRnZSggZmFjZS5jLCBmYWNlLmEsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgZmFjZXMuXHJcblxyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZWRnZTEsIGVkZ2UyLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5hLCBlZGdlMSwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYiwgZWRnZTIsIGVkZ2UxICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmMsIGVkZ2UzLCBlZGdlMiApO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgbmV3IHV2J3NcclxuXHJcblx0XHRcdGlmICggaGFzVXZzICkge1xyXG5cclxuXHRcdFx0XHR1diA9IG9sZFV2c1sgaSBdO1xyXG5cclxuXHRcdFx0XHR4MCA9IHV2WyAwIF07XHJcblx0XHRcdFx0eDEgPSB1dlsgMSBdO1xyXG5cdFx0XHRcdHgyID0gdXZbIDIgXTtcclxuXHJcblx0XHRcdFx0eDMuc2V0KCBtaWRwb2ludCggeDAueCwgeDEueCApLCBtaWRwb2ludCggeDAueSwgeDEueSApICk7XHJcblx0XHRcdFx0eDQuc2V0KCBtaWRwb2ludCggeDEueCwgeDIueCApLCBtaWRwb2ludCggeDEueSwgeDIueSApICk7XHJcblx0XHRcdFx0eDUuc2V0KCBtaWRwb2ludCggeDAueCwgeDIueCApLCBtaWRwb2ludCggeDAueSwgeDIueSApICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgzLCB4NCwgeDUgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MCwgeDMsIHg1ICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgxLCB4NCwgeDMgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MiwgeDUsIHg0ICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE92ZXJ3cml0ZSBvbGQgYXJyYXlzXHJcblx0XHRnZW9tZXRyeS52ZXJ0aWNlcyA9IG5ld1ZlcnRpY2VzO1xyXG5cdFx0Z2VvbWV0cnkuZmFjZXMgPSBuZXdGYWNlcztcclxuXHRcdGlmICggaGFzVXZzICkgZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdID0gbmV3VVZzO1xyXG5cclxuXHRcdC8vIGNvbnNvbGUubG9nKCdkb25lJyk7XHJcblxyXG5cdH07XHJcblxyXG59ICkoKTtcclxuIiwidmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBhbkFycmF5XG5cbmZ1bmN0aW9uIGFuQXJyYXkoYXJyKSB7XG4gIHJldHVybiAoXG4gICAgICAgYXJyLkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgJiYgc3RyLmNhbGwoYXJyLmJ1ZmZlcikgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSdcbiAgICB8fCBBcnJheS5pc0FycmF5KGFycilcbiAgKVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBudW10eXBlKG51bSwgZGVmKSB7XG5cdHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJ1xuXHRcdD8gbnVtIFxuXHRcdDogKHR5cGVvZiBkZWYgPT09ICdudW1iZXInID8gZGVmIDogMClcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGR0eXBlKSB7XG4gIHN3aXRjaCAoZHR5cGUpIHtcbiAgICBjYXNlICdpbnQ4JzpcbiAgICAgIHJldHVybiBJbnQ4QXJyYXlcbiAgICBjYXNlICdpbnQxNic6XG4gICAgICByZXR1cm4gSW50MTZBcnJheVxuICAgIGNhc2UgJ2ludDMyJzpcbiAgICAgIHJldHVybiBJbnQzMkFycmF5XG4gICAgY2FzZSAndWludDgnOlxuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlcbiAgICBjYXNlICd1aW50MTYnOlxuICAgICAgcmV0dXJuIFVpbnQxNkFycmF5XG4gICAgY2FzZSAndWludDMyJzpcbiAgICAgIHJldHVybiBVaW50MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0MzInOlxuICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0NjQnOlxuICAgICAgcmV0dXJuIEZsb2F0NjRBcnJheVxuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIHJldHVybiBBcnJheVxuICAgIGNhc2UgJ3VpbnQ4X2NsYW1wZWQnOlxuICAgICAgcmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSID0gdHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnID8gUmVmbGVjdCA6IG51bGxcbnZhciBSZWZsZWN0QXBwbHkgPSBSICYmIHR5cGVvZiBSLmFwcGx5ID09PSAnZnVuY3Rpb24nXG4gID8gUi5hcHBseVxuICA6IGZ1bmN0aW9uIFJlZmxlY3RBcHBseSh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpO1xuICB9XG5cbnZhciBSZWZsZWN0T3duS2V5c1xuaWYgKFIgJiYgdHlwZW9mIFIub3duS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICBSZWZsZWN0T3duS2V5cyA9IFIub3duS2V5c1xufSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldClcbiAgICAgIC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKTtcbiAgfTtcbn0gZWxzZSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyh3YXJuaW5nKSB7XG4gIGlmIChjb25zb2xlICYmIGNvbnNvbGUud2FybikgY29uc29sZS53YXJuKHdhcm5pbmcpO1xufVxuXG52YXIgTnVtYmVySXNOYU4gPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gTnVtYmVySXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5tb2R1bGUuZXhwb3J0cy5vbmNlID0gb25jZTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9uY2UoZW1pdHRlciwgbmFtZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZ1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXJyKSB7XG4gICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKG5hbWUsIHJlc29sdmVyKTtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKCkge1xuICAgICAgaWYgKHR5cGVvZiBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgfTtcblxuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCByZXNvbHZlciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIGlmIChuYW1lICE9PSAnZXJyb3InKSB7XG4gICAgICBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBlcnJvckxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgaGFuZGxlciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsICdlcnJvcicsIGhhbmRsZXIsIGZsYWdzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgbGlzdGVuZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICBlbWl0dGVyLm9uY2UobmFtZSwgbGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbWl0dGVyLm9uKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEV2ZW50VGFyZ2V0IGRvZXMgbm90IGhhdmUgYGVycm9yYCBldmVudCBzZW1hbnRpY3MgbGlrZSBOb2RlXG4gICAgLy8gRXZlbnRFbWl0dGVycywgd2UgZG8gbm90IGxpc3RlbiBmb3IgYGVycm9yYCBldmVudHMgaGVyZS5cbiAgICBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZnVuY3Rpb24gd3JhcExpc3RlbmVyKGFyZykge1xuICAgICAgLy8gSUUgZG9lcyBub3QgaGF2ZSBidWlsdGluIGB7IG9uY2U6IHRydWUgfWAgc3VwcG9ydCBzbyB3ZVxuICAgICAgLy8gaGF2ZSB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXIoYXJnKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJlbWl0dGVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGVtaXR0ZXIpO1xuICB9XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gICAgfVxuICB9XG59XG4iLCIvKiFcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXJcbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbi8vIFRoZSBfaXNCdWZmZXIgY2hlY2sgaXMgZm9yIFNhZmFyaSA1LTcgc3VwcG9ydCwgYmVjYXVzZSBpdCdzIG1pc3Npbmdcbi8vIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKGlzQnVmZmVyKG9iaikgfHwgaXNTbG93QnVmZmVyKG9iaikgfHwgISFvYmouX2lzQnVmZmVyKVxufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiAhIW9iai5jb25zdHJ1Y3RvciAmJiB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopXG59XG5cbi8vIEZvciBOb2RlIHYwLjEwIHN1cHBvcnQuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHkuXG5mdW5jdGlvbiBpc1Nsb3dCdWZmZXIgKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iai5yZWFkRmxvYXRMRSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnNsaWNlID09PSAnZnVuY3Rpb24nICYmIGlzQnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsInZhciB3b3JkV3JhcCA9IHJlcXVpcmUoJ3dvcmQtd3JhcHBlcicpXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpXG52YXIgbnVtYmVyID0gcmVxdWlyZSgnYXMtbnVtYmVyJylcblxudmFyIFhfSEVJR0hUUyA9IFsneCcsICdlJywgJ2EnLCAnbycsICduJywgJ3MnLCAncicsICdjJywgJ3UnLCAnbScsICd2JywgJ3cnLCAneiddXG52YXIgTV9XSURUSFMgPSBbJ20nLCAndyddXG52YXIgQ0FQX0hFSUdIVFMgPSBbJ0gnLCAnSScsICdOJywgJ0UnLCAnRicsICdLJywgJ0wnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWiddXG5cblxudmFyIFRBQl9JRCA9ICdcXHQnLmNoYXJDb2RlQXQoMClcbnZhciBTUEFDRV9JRCA9ICcgJy5jaGFyQ29kZUF0KDApXG52YXIgQUxJR05fTEVGVCA9IDAsIFxuICAgIEFMSUdOX0NFTlRFUiA9IDEsIFxuICAgIEFMSUdOX1JJR0hUID0gMlxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUxheW91dChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0TGF5b3V0KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dExheW91dChvcHQpIHtcbiAgdGhpcy5nbHlwaHMgPSBbXVxuICB0aGlzLl9tZWFzdXJlID0gdGhpcy5jb21wdXRlTWV0cmljcy5iaW5kKHRoaXMpXG4gIHRoaXMudXBkYXRlKG9wdClcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24ob3B0KSB7XG4gIG9wdCA9IHh0ZW5kKHtcbiAgICBtZWFzdXJlOiB0aGlzLl9tZWFzdXJlXG4gIH0sIG9wdClcbiAgdGhpcy5fb3B0ID0gb3B0XG4gIHRoaXMuX29wdC50YWJTaXplID0gbnVtYmVyKHRoaXMuX29wdC50YWJTaXplLCA0KVxuXG4gIGlmICghb3B0LmZvbnQpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHByb3ZpZGUgYSB2YWxpZCBiaXRtYXAgZm9udCcpXG5cbiAgdmFyIGdseXBocyA9IHRoaXMuZ2x5cGhzXG4gIHZhciB0ZXh0ID0gb3B0LnRleHR8fCcnIFxuICB2YXIgZm9udCA9IG9wdC5mb250XG4gIHRoaXMuX3NldHVwU3BhY2VHbHlwaHMoZm9udClcbiAgXG4gIHZhciBsaW5lcyA9IHdvcmRXcmFwLmxpbmVzKHRleHQsIG9wdClcbiAgdmFyIG1pbldpZHRoID0gb3B0LndpZHRoIHx8IDBcblxuICAvL2NsZWFyIGdseXBoc1xuICBnbHlwaHMubGVuZ3RoID0gMFxuXG4gIC8vZ2V0IG1heCBsaW5lIHdpZHRoXG4gIHZhciBtYXhMaW5lV2lkdGggPSBsaW5lcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbGluZSkge1xuICAgIHJldHVybiBNYXRoLm1heChwcmV2LCBsaW5lLndpZHRoLCBtaW5XaWR0aClcbiAgfSwgMClcblxuICAvL3RoZSBwZW4gcG9zaXRpb25cbiAgdmFyIHggPSAwXG4gIHZhciB5ID0gMFxuICB2YXIgbGluZUhlaWdodCA9IG51bWJlcihvcHQubGluZUhlaWdodCwgZm9udC5jb21tb24ubGluZUhlaWdodClcbiAgdmFyIGJhc2VsaW5lID0gZm9udC5jb21tb24uYmFzZVxuICB2YXIgZGVzY2VuZGVyID0gbGluZUhlaWdodC1iYXNlbGluZVxuICB2YXIgbGV0dGVyU3BhY2luZyA9IG9wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGhlaWdodCA9IGxpbmVIZWlnaHQgKiBsaW5lcy5sZW5ndGggLSBkZXNjZW5kZXJcbiAgdmFyIGFsaWduID0gZ2V0QWxpZ25UeXBlKHRoaXMuX29wdC5hbGlnbilcblxuICAvL2RyYXcgdGV4dCBhbG9uZyBiYXNlbGluZVxuICB5IC09IGhlaWdodFxuICBcbiAgLy90aGUgbWV0cmljcyBmb3IgdGhpcyB0ZXh0IGxheW91dFxuICB0aGlzLl93aWR0aCA9IG1heExpbmVXaWR0aFxuICB0aGlzLl9oZWlnaHQgPSBoZWlnaHRcbiAgdGhpcy5fZGVzY2VuZGVyID0gbGluZUhlaWdodCAtIGJhc2VsaW5lXG4gIHRoaXMuX2Jhc2VsaW5lID0gYmFzZWxpbmVcbiAgdGhpcy5feEhlaWdodCA9IGdldFhIZWlnaHQoZm9udClcbiAgdGhpcy5fY2FwSGVpZ2h0ID0gZ2V0Q2FwSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0XG4gIHRoaXMuX2FzY2VuZGVyID0gbGluZUhlaWdodCAtIGRlc2NlbmRlciAtIHRoaXMuX3hIZWlnaHRcbiAgICBcbiAgLy9sYXlvdXQgZWFjaCBnbHlwaFxuICB2YXIgc2VsZiA9IHRoaXNcbiAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLCBsaW5lSW5kZXgpIHtcbiAgICB2YXIgc3RhcnQgPSBsaW5lLnN0YXJ0XG4gICAgdmFyIGVuZCA9IGxpbmUuZW5kXG4gICAgdmFyIGxpbmVXaWR0aCA9IGxpbmUud2lkdGhcbiAgICB2YXIgbGFzdEdseXBoXG4gICAgXG4gICAgLy9mb3IgZWFjaCBnbHlwaCBpbiB0aGF0IGxpbmUuLi5cbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZDsgaSsrKSB7XG4gICAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICAgIHZhciBnbHlwaCA9IHNlbGYuZ2V0R2x5cGgoZm9udCwgaWQpXG4gICAgICBpZiAoZ2x5cGgpIHtcbiAgICAgICAgaWYgKGxhc3RHbHlwaCkgXG4gICAgICAgICAgeCArPSBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpXG5cbiAgICAgICAgdmFyIHR4ID0geFxuICAgICAgICBpZiAoYWxpZ24gPT09IEFMSUdOX0NFTlRFUikgXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpLzJcbiAgICAgICAgZWxzZSBpZiAoYWxpZ24gPT09IEFMSUdOX1JJR0hUKVxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKVxuXG4gICAgICAgIGdseXBocy5wdXNoKHtcbiAgICAgICAgICBwb3NpdGlvbjogW3R4LCB5XSxcbiAgICAgICAgICBkYXRhOiBnbHlwaCxcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBsaW5lOiBsaW5lSW5kZXhcbiAgICAgICAgfSkgIFxuXG4gICAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgICB4ICs9IGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vbmV4dCBsaW5lIGRvd25cbiAgICB5ICs9IGxpbmVIZWlnaHRcbiAgICB4ID0gMFxuICB9KVxuICB0aGlzLl9saW5lc1RvdGFsID0gbGluZXMubGVuZ3RoO1xufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5fc2V0dXBTcGFjZUdseXBocyA9IGZ1bmN0aW9uKGZvbnQpIHtcbiAgLy9UaGVzZSBhcmUgZmFsbGJhY2tzLCB3aGVuIHRoZSBmb250IGRvZXNuJ3QgaW5jbHVkZVxuICAvLycgJyBvciAnXFx0JyBnbHlwaHNcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gbnVsbFxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0gbnVsbFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm5cblxuICAvL3RyeSB0byBnZXQgc3BhY2UgZ2x5cGhcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgJ20nIG9yICd3JyBnbHlwaHNcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgZmlyc3QgZ2x5cGggYXZhaWxhYmxlXG4gIHZhciBzcGFjZSA9IGdldEdseXBoQnlJZChmb250LCBTUEFDRV9JRCkgXG4gICAgICAgICAgfHwgZ2V0TUdseXBoKGZvbnQpIFxuICAgICAgICAgIHx8IGZvbnQuY2hhcnNbMF1cblxuICAvL2FuZCBjcmVhdGUgYSBmYWxsYmFjayBmb3IgdGFiXG4gIHZhciB0YWJXaWR0aCA9IHRoaXMuX29wdC50YWJTaXplICogc3BhY2UueGFkdmFuY2VcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gc3BhY2VcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IHh0ZW5kKHNwYWNlLCB7XG4gICAgeDogMCwgeTogMCwgeGFkdmFuY2U6IHRhYldpZHRoLCBpZDogVEFCX0lELCBcbiAgICB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwXG4gIH0pXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmdldEdseXBoID0gZnVuY3Rpb24oZm9udCwgaWQpIHtcbiAgdmFyIGdseXBoID0gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKVxuICBpZiAoZ2x5cGgpXG4gICAgcmV0dXJuIGdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBUQUJfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1RhYkdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBTUEFDRV9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaFxuICByZXR1cm4gbnVsbFxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5jb21wdXRlTWV0cmljcyA9IGZ1bmN0aW9uKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gdGhpcy5fb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgZm9udCA9IHRoaXMuX29wdC5mb250XG4gIHZhciBjdXJQZW4gPSAwXG4gIHZhciBjdXJXaWR0aCA9IDBcbiAgdmFyIGNvdW50ID0gMFxuICB2YXIgZ2x5cGhcbiAgdmFyIGxhc3RHbHlwaFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogc3RhcnQsXG4gICAgICBlbmQ6IHN0YXJ0LFxuICAgICAgd2lkdGg6IDBcbiAgICB9XG4gIH1cblxuICBlbmQgPSBNYXRoLm1pbih0ZXh0Lmxlbmd0aCwgZW5kKVxuICBmb3IgKHZhciBpPXN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB2YXIgZ2x5cGggPSB0aGlzLmdldEdseXBoKGZvbnQsIGlkKVxuXG4gICAgaWYgKGdseXBoKSB7XG4gICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgIHZhciB4b2ZmID0gZ2x5cGgueG9mZnNldFxuICAgICAgdmFyIGtlcm4gPSBsYXN0R2x5cGggPyBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpIDogMFxuICAgICAgY3VyUGVuICs9IGtlcm5cblxuICAgICAgdmFyIG5leHRQZW4gPSBjdXJQZW4gKyBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgIHZhciBuZXh0V2lkdGggPSBjdXJQZW4gKyBnbHlwaC53aWR0aFxuXG4gICAgICAvL3dlJ3ZlIGhpdCBvdXIgbGltaXQ7IHdlIGNhbid0IG1vdmUgb250byB0aGUgbmV4dCBnbHlwaFxuICAgICAgaWYgKG5leHRXaWR0aCA+PSB3aWR0aCB8fCBuZXh0UGVuID49IHdpZHRoKVxuICAgICAgICBicmVha1xuXG4gICAgICAvL290aGVyd2lzZSBjb250aW51ZSBhbG9uZyBvdXIgbGluZVxuICAgICAgY3VyUGVuID0gbmV4dFBlblxuICAgICAgY3VyV2lkdGggPSBuZXh0V2lkdGhcbiAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgfVxuICAgIGNvdW50KytcbiAgfVxuICBcbiAgLy9tYWtlIHN1cmUgcmlnaHRtb3N0IGVkZ2UgbGluZXMgdXAgd2l0aCByZW5kZXJlZCBnbHlwaHNcbiAgaWYgKGxhc3RHbHlwaClcbiAgICBjdXJXaWR0aCArPSBsYXN0R2x5cGgueG9mZnNldFxuXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IHN0YXJ0LFxuICAgIGVuZDogc3RhcnQgKyBjb3VudCxcbiAgICB3aWR0aDogY3VyV2lkdGhcbiAgfVxufVxuXG4vL2dldHRlcnMgZm9yIHRoZSBwcml2YXRlIHZhcnNcbjtbJ3dpZHRoJywgJ2hlaWdodCcsIFxuICAnZGVzY2VuZGVyJywgJ2FzY2VuZGVyJyxcbiAgJ3hIZWlnaHQnLCAnYmFzZWxpbmUnLFxuICAnY2FwSGVpZ2h0JyxcbiAgJ2xpbmVIZWlnaHQnIF0uZm9yRWFjaChhZGRHZXR0ZXIpXG5cbmZ1bmN0aW9uIGFkZEdldHRlcihuYW1lKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZXh0TGF5b3V0LnByb3RvdHlwZSwgbmFtZSwge1xuICAgIGdldDogd3JhcHBlcihuYW1lKSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSlcbn1cblxuLy9jcmVhdGUgbG9va3VwcyBmb3IgcHJpdmF0ZSB2YXJzXG5mdW5jdGlvbiB3cmFwcGVyKG5hbWUpIHtcbiAgcmV0dXJuIChuZXcgRnVuY3Rpb24oW1xuICAgICdyZXR1cm4gZnVuY3Rpb24gJytuYW1lKycoKSB7JyxcbiAgICAnICByZXR1cm4gdGhpcy5fJytuYW1lLFxuICAgICd9J1xuICBdLmpvaW4oJ1xcbicpKSkoKVxufVxuXG5mdW5jdGlvbiBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpIHtcbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIGdseXBoSWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gIGlmIChnbHlwaElkeCA+PSAwKVxuICAgIHJldHVybiBmb250LmNoYXJzW2dseXBoSWR4XVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBnZXRYSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPFhfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IFhfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldE1HbHlwaChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxNX1dJRFRIUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IE1fV0lEVEhTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRDYXBIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8Q0FQX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBDQVBfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEtlcm5pbmcoZm9udCwgbGVmdCwgcmlnaHQpIHtcbiAgaWYgKCFmb250Lmtlcm5pbmdzIHx8IGZvbnQua2VybmluZ3MubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiAwXG5cbiAgdmFyIHRhYmxlID0gZm9udC5rZXJuaW5nc1xuICBmb3IgKHZhciBpPTA7IGk8dGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2VybiA9IHRhYmxlW2ldXG4gICAgaWYgKGtlcm4uZmlyc3QgPT09IGxlZnQgJiYga2Vybi5zZWNvbmQgPT09IHJpZ2h0KVxuICAgICAgcmV0dXJuIGtlcm4uYW1vdW50XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0QWxpZ25UeXBlKGFsaWduKSB7XG4gIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpXG4gICAgcmV0dXJuIEFMSUdOX0NFTlRFUlxuICBlbHNlIGlmIChhbGlnbiA9PT0gJ3JpZ2h0JylcbiAgICByZXR1cm4gQUxJR05fUklHSFRcbiAgcmV0dXJuIEFMSUdOX0xFRlRcbn1cblxuZnVuY3Rpb24gZmluZENoYXIgKGFycmF5LCB2YWx1ZSwgc3RhcnQpIHtcbiAgc3RhcnQgPSBzdGFydCB8fCAwXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldLmlkID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xXG59IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcGFyc2VCTUZvbnRBc2NpaShkYXRhKSB7XG4gIGlmICghZGF0YSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgcHJvdmlkZWQnKVxuICBkYXRhID0gZGF0YS50b1N0cmluZygpLnRyaW0oKVxuXG4gIHZhciBvdXRwdXQgPSB7XG4gICAgcGFnZXM6IFtdLFxuICAgIGNoYXJzOiBbXSxcbiAgICBrZXJuaW5nczogW11cbiAgfVxuXG4gIHZhciBsaW5lcyA9IGRhdGEuc3BsaXQoL1xcclxcbj98XFxuL2cpXG5cbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgaW4gQk1Gb250IGZpbGUnKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGluZURhdGEgPSBzcGxpdExpbmUobGluZXNbaV0sIGkpXG4gICAgaWYgKCFsaW5lRGF0YSkgLy9za2lwIGVtcHR5IGxpbmVzXG4gICAgICBjb250aW51ZVxuXG4gICAgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ3BhZ2UnKSB7XG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuaWQgIT09ICdudW1iZXInKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgaWQ9TicpXG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuZmlsZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBmaWxlPVwicGF0aFwiJylcbiAgICAgIG91dHB1dC5wYWdlc1tsaW5lRGF0YS5kYXRhLmlkXSA9IGxpbmVEYXRhLmRhdGEuZmlsZVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcnMnIHx8IGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmdzJykge1xuICAgICAgLy8uLi4gZG8gbm90aGluZyBmb3IgdGhlc2UgdHdvIC4uLlxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcicpIHtcbiAgICAgIG91dHB1dC5jaGFycy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5nJykge1xuICAgICAgb3V0cHV0Lmtlcm5pbmdzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0W2xpbmVEYXRhLmtleV0gPSBsaW5lRGF0YS5kYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBzcGxpdExpbmUobGluZSwgaWR4KSB7XG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL1xcdCsvZywgJyAnKS50cmltKClcbiAgaWYgKCFsaW5lKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIHNwYWNlID0gbGluZS5pbmRleE9mKCcgJylcbiAgaWYgKHNwYWNlID09PSAtMSkgXG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm8gbmFtZWQgcm93IGF0IGxpbmUgXCIgKyBpZHgpXG5cbiAgdmFyIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIHNwYWNlKVxuXG4gIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhzcGFjZSArIDEpXG4gIC8vY2xlYXIgXCJsZXR0ZXJcIiBmaWVsZCBhcyBpdCBpcyBub24tc3RhbmRhcmQgYW5kXG4gIC8vcmVxdWlyZXMgYWRkaXRpb25hbCBjb21wbGV4aXR5IHRvIHBhcnNlIFwiIC8gPSBzeW1ib2xzXG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL2xldHRlcj1bXFwnXFxcIl1cXFMrW1xcJ1xcXCJdL2dpLCAnJykgIFxuICBsaW5lID0gbGluZS5zcGxpdChcIj1cIilcbiAgbGluZSA9IGxpbmUubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBzdHIudHJpbSgpLm1hdGNoKCgvKFwiLio/XCJ8W15cIlxcc10rKSsoPz1cXHMqfFxccyokKS9nKSlcbiAgfSlcblxuICB2YXIgZGF0YSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkdCA9IGxpbmVbaV1cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFswXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFsxXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0ID0ge1xuICAgIGtleToga2V5LFxuICAgIGRhdGE6IHt9XG4gIH1cblxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIG91dC5kYXRhW3Yua2V5XSA9IHYuZGF0YTtcbiAgfSlcblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShkYXRhKSB7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gXCJcIlxuXG4gIGlmIChkYXRhLmluZGV4T2YoJ1wiJykgPT09IDAgfHwgZGF0YS5pbmRleE9mKFwiJ1wiKSA9PT0gMClcbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoMSwgZGF0YS5sZW5ndGggLSAxKVxuICBpZiAoZGF0YS5pbmRleE9mKCcsJykgIT09IC0xKVxuICAgIHJldHVybiBwYXJzZUludExpc3QoZGF0YSlcbiAgcmV0dXJuIHBhcnNlSW50KGRhdGEsIDEwKVxufVxuXG5mdW5jdGlvbiBwYXJzZUludExpc3QoZGF0YSkge1xuICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMClcbiAgfSlcbn0iLCJ2YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG52YXIgYW5BcnJheSA9IHJlcXVpcmUoJ2FuLWFycmF5JylcbnZhciBpc0J1ZmZlciA9IHJlcXVpcmUoJ2lzLWJ1ZmZlcicpXG5cbnZhciBDVyA9IFswLCAyLCAzXVxudmFyIENDVyA9IFsyLCAxLCAzXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVF1YWRFbGVtZW50cyhhcnJheSwgb3B0KSB7XG4gICAgLy9pZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IGFuIG91dHB1dCBhcnJheVxuICAgIGlmICghYXJyYXkgfHwgIShhbkFycmF5KGFycmF5KSB8fCBpc0J1ZmZlcihhcnJheSkpKSB7XG4gICAgICAgIG9wdCA9IGFycmF5IHx8IHt9XG4gICAgICAgIGFycmF5ID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnbnVtYmVyJykgLy9iYWNrd2FyZHMtY29tcGF0aWJsZVxuICAgICAgICBvcHQgPSB7IGNvdW50OiBvcHQgfVxuICAgIGVsc2VcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9XG5cbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvcHQudHlwZSA9PT0gJ3N0cmluZycgPyBvcHQudHlwZSA6ICd1aW50MTYnXG4gICAgdmFyIGNvdW50ID0gdHlwZW9mIG9wdC5jb3VudCA9PT0gJ251bWJlcicgPyBvcHQuY291bnQgOiAxXG4gICAgdmFyIHN0YXJ0ID0gKG9wdC5zdGFydCB8fCAwKSBcblxuICAgIHZhciBkaXIgPSBvcHQuY2xvY2t3aXNlICE9PSBmYWxzZSA/IENXIDogQ0NXLFxuICAgICAgICBhID0gZGlyWzBdLCBcbiAgICAgICAgYiA9IGRpclsxXSxcbiAgICAgICAgYyA9IGRpclsyXVxuXG4gICAgdmFyIG51bUluZGljZXMgPSBjb3VudCAqIDZcblxuICAgIHZhciBpbmRpY2VzID0gYXJyYXkgfHwgbmV3IChkdHlwZSh0eXBlKSkobnVtSW5kaWNlcylcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBudW1JbmRpY2VzOyBpICs9IDYsIGogKz0gNCkge1xuICAgICAgICB2YXIgeCA9IGkgKyBzdGFydFxuICAgICAgICBpbmRpY2VzW3ggKyAwXSA9IGogKyAwXG4gICAgICAgIGluZGljZXNbeCArIDFdID0gaiArIDFcbiAgICAgICAgaW5kaWNlc1t4ICsgMl0gPSBqICsgMlxuICAgICAgICBpbmRpY2VzW3ggKyAzXSA9IGogKyBhXG4gICAgICAgIGluZGljZXNbeCArIDRdID0gaiArIGJcbiAgICAgICAgaW5kaWNlc1t4ICsgNV0gPSBqICsgY1xuICAgIH1cbiAgICByZXR1cm4gaW5kaWNlc1xufSIsInZhciBjcmVhdGVMYXlvdXQgPSByZXF1aXJlKCdsYXlvdXQtYm1mb250LXRleHQnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIGNyZWF0ZUluZGljZXMgPSByZXF1aXJlKCdxdWFkLWluZGljZXMnKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIEJhc2UuY2FsbCh0aGlzKVxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0KVxuXG4gIC8vIGFsc28gZG8gYW4gaW5pdGlhbCBzZXR1cC4uLlxuICBpZiAob3B0KSB0aGlzLnVwZGF0ZShvcHQpXG59XG5cbmluaGVyaXRzKFRleHRHZW9tZXRyeSwgQmFzZSlcblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAob3B0KSB7XG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSBjb25zdHJ1Y3RvciBkZWZhdWx0c1xuICBvcHQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vcHQsIG9wdClcblxuICBpZiAoIW9wdC5mb250KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGEgeyBmb250IH0gaW4gb3B0aW9ucycpXG4gIH1cblxuICB0aGlzLmxheW91dCA9IGNyZWF0ZUxheW91dChvcHQpXG5cbiAgLy8gZ2V0IHZlYzIgdGV4Y29vcmRzXG4gIHZhciBmbGlwWSA9IG9wdC5mbGlwWSAhPT0gZmFsc2VcblxuICAvLyB0aGUgZGVzaXJlZCBCTUZvbnQgZGF0YVxuICB2YXIgZm9udCA9IG9wdC5mb250XG5cbiAgLy8gZGV0ZXJtaW5lIHRleHR1cmUgc2l6ZSBmcm9tIGZvbnQgZmlsZVxuICB2YXIgdGV4V2lkdGggPSBmb250LmNvbW1vbi5zY2FsZVdcbiAgdmFyIHRleEhlaWdodCA9IGZvbnQuY29tbW9uLnNjYWxlSFxuXG4gIC8vIGdldCB2aXNpYmxlIGdseXBoc1xuICB2YXIgZ2x5cGhzID0gdGhpcy5sYXlvdXQuZ2x5cGhzLmZpbHRlcihmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHJldHVybiBiaXRtYXAud2lkdGggKiBiaXRtYXAuaGVpZ2h0ID4gMFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdmlzaWJsZSBnbHlwaHMgZm9yIGNvbnZlbmllbmNlXG4gIHRoaXMudmlzaWJsZUdseXBocyA9IGdseXBoc1xuXG4gIC8vIGdldCBjb21tb24gdmVydGV4IGRhdGFcbiAgdmFyIHBvc2l0aW9ucyA9IHZlcnRpY2VzLnBvc2l0aW9ucyhnbHlwaHMpXG4gIHZhciB1dnMgPSB2ZXJ0aWNlcy51dnMoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSlcbiAgdmFyIGluZGljZXMgPSBjcmVhdGVJbmRpY2VzKFtdLCB7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIHRoaXMuc2V0SW5kZXgoaW5kaWNlcylcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwb3NpdGlvbnMsIDIpKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHV2cywgMikpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICAvLyBlbmFibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHZhciBwYWdlcyA9IHZlcnRpY2VzLnBhZ2VzKGdseXBocylcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGFnZScsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocGFnZXMsIDEpKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIG5ld2xpbmUgPSAvXFxuL1xudmFyIG5ld2xpbmVDaGFyID0gJ1xcbidcbnZhciB3aGl0ZXNwYWNlID0gL1xccy9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih0ZXh0LCBvcHQpIHtcbiAgICB2YXIgbGluZXMgPSBtb2R1bGUuZXhwb3J0cy5saW5lcyh0ZXh0LCBvcHQpXG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhsaW5lLnN0YXJ0LCBsaW5lLmVuZClcbiAgICB9KS5qb2luKCdcXG4nKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5saW5lcyA9IGZ1bmN0aW9uIHdvcmR3cmFwKHRleHQsIG9wdCkge1xuICAgIG9wdCA9IG9wdHx8e31cblxuICAgIC8vemVybyB3aWR0aCByZXN1bHRzIGluIG5vdGhpbmcgdmlzaWJsZVxuICAgIGlmIChvcHQud2lkdGggPT09IDAgJiYgb3B0Lm1vZGUgIT09ICdub3dyYXAnKSBcbiAgICAgICAgcmV0dXJuIFtdXG5cbiAgICB0ZXh0ID0gdGV4dHx8JydcbiAgICB2YXIgd2lkdGggPSB0eXBlb2Ygb3B0LndpZHRoID09PSAnbnVtYmVyJyA/IG9wdC53aWR0aCA6IE51bWJlci5NQVhfVkFMVUVcbiAgICB2YXIgc3RhcnQgPSBNYXRoLm1heCgwLCBvcHQuc3RhcnR8fDApXG4gICAgdmFyIGVuZCA9IHR5cGVvZiBvcHQuZW5kID09PSAnbnVtYmVyJyA/IG9wdC5lbmQgOiB0ZXh0Lmxlbmd0aFxuICAgIHZhciBtb2RlID0gb3B0Lm1vZGVcblxuICAgIHZhciBtZWFzdXJlID0gb3B0Lm1lYXN1cmUgfHwgbW9ub3NwYWNlXG4gICAgaWYgKG1vZGUgPT09ICdwcmUnKVxuICAgICAgICByZXR1cm4gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKVxuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSlcbn1cblxuZnVuY3Rpb24gaWR4T2YodGV4dCwgY2hyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIGlkeCA9IHRleHQuaW5kZXhPZihjaHIsIHN0YXJ0KVxuICAgIGlmIChpZHggPT09IC0xIHx8IGlkeCA+IGVuZClcbiAgICAgICAgcmV0dXJuIGVuZFxuICAgIHJldHVybiBpZHhcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNocikge1xuICAgIHJldHVybiB3aGl0ZXNwYWNlLnRlc3QoY2hyKVxufVxuXG5mdW5jdGlvbiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgbGluZXMgPSBbXVxuICAgIHZhciBsaW5lU3RhcnQgPSBzdGFydFxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kICYmIGk8dGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hyID0gdGV4dC5jaGFyQXQoaSlcbiAgICAgICAgdmFyIGlzTmV3bGluZSA9IG5ld2xpbmUudGVzdChjaHIpXG5cbiAgICAgICAgLy9JZiB3ZSd2ZSByZWFjaGVkIGEgbmV3bGluZSwgdGhlbiBzdGVwIGRvd24gYSBsaW5lXG4gICAgICAgIC8vT3IgaWYgd2UndmUgcmVhY2hlZCB0aGUgRU9GXG4gICAgICAgIGlmIChpc05ld2xpbmUgfHwgaT09PWVuZC0xKSB7XG4gICAgICAgICAgICB2YXIgbGluZUVuZCA9IGlzTmV3bGluZSA/IGkgOiBpKzFcbiAgICAgICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgbGluZVN0YXJ0LCBsaW5lRW5kLCB3aWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobWVhc3VyZWQpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmVTdGFydCA9IGkrMVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpIHtcbiAgICAvL0EgZ3JlZWR5IHdvcmQgd3JhcHBlciBiYXNlZCBvbiBMaWJHRFggYWxnb3JpdGhtXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbGliZ2R4L2xpYmdkeC9ibG9iL21hc3Rlci9nZHgvc3JjL2NvbS9iYWRsb2dpYy9nZHgvZ3JhcGhpY3MvZzJkL0JpdG1hcEZvbnRDYWNoZS5qYXZhXG4gICAgdmFyIGxpbmVzID0gW11cblxuICAgIHZhciB0ZXN0V2lkdGggPSB3aWR0aFxuICAgIC8vaWYgJ25vd3JhcCcgaXMgc3BlY2lmaWVkLCB3ZSBvbmx5IHdyYXAgb24gbmV3bGluZSBjaGFyc1xuICAgIGlmIChtb2RlID09PSAnbm93cmFwJylcbiAgICAgICAgdGVzdFdpZHRoID0gTnVtYmVyLk1BWF9WQUxVRVxuXG4gICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgLy9nZXQgbmV4dCBuZXdsaW5lIHBvc2l0aW9uXG4gICAgICAgIHZhciBuZXdMaW5lID0gaWR4T2YodGV4dCwgbmV3bGluZUNoYXIsIHN0YXJ0LCBlbmQpXG5cbiAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBzdGFydCBvZiBsaW5lXG4gICAgICAgIHdoaWxlIChzdGFydCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKCB0ZXh0LmNoYXJBdChzdGFydCkgKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgc3RhcnQrK1xuICAgICAgICB9XG5cbiAgICAgICAgLy9kZXRlcm1pbmUgdmlzaWJsZSAjIG9mIGdseXBocyBmb3IgdGhlIGF2YWlsYWJsZSB3aWR0aFxuICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBuZXdMaW5lLCB0ZXN0V2lkdGgpXG5cbiAgICAgICAgdmFyIGxpbmVFbmQgPSBzdGFydCArIChtZWFzdXJlZC5lbmQtbWVhc3VyZWQuc3RhcnQpXG4gICAgICAgIHZhciBuZXh0U3RhcnQgPSBsaW5lRW5kICsgbmV3bGluZUNoYXIubGVuZ3RoXG5cbiAgICAgICAgLy9pZiB3ZSBoYWQgdG8gY3V0IHRoZSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBuZXdsaW5lLi4uXG4gICAgICAgIGlmIChsaW5lRW5kIDwgbmV3TGluZSkge1xuICAgICAgICAgICAgLy9maW5kIGNoYXIgdG8gYnJlYWsgb25cbiAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQpKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5lRW5kID09PSBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPiBzdGFydCArIG5ld2xpbmVDaGFyLmxlbmd0aCkgbmV4dFN0YXJ0LS1cbiAgICAgICAgICAgICAgICBsaW5lRW5kID0gbmV4dFN0YXJ0IC8vIElmIG5vIGNoYXJhY3RlcnMgdG8gYnJlYWssIHNob3cgYWxsLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBsaW5lRW5kXG4gICAgICAgICAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCAtIG5ld2xpbmVDaGFyLmxlbmd0aCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5lRW5kID49IHN0YXJ0KSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbGluZUVuZCwgdGVzdFdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnRcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbi8vZGV0ZXJtaW5lcyB0aGUgdmlzaWJsZSBudW1iZXIgb2YgZ2x5cGhzIHdpdGhpbiBhIGdpdmVuIHdpZHRoXG5mdW5jdGlvbiBtb25vc3BhY2UodGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgZ2x5cGhzID0gTWF0aC5taW4od2lkdGgsIGVuZC1zdGFydClcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnQrZ2x5cGhzXG4gICAgfVxufSIsIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QSxhQUFTLFFBQVQsR0FBb0IsV0FBcEI7QUFDQSxhQUFTLEtBQVQsR0FBaUIsUUFBakI7QUFDQSxRQUFLLE1BQUwsRUFBYyxTQUFTLGFBQVQsQ0FBd0IsQ0FBeEIsSUFBOEIsTUFBOUI7O0FBRWQ7QUFFQSxHQW5QRDtBQXFQQSxDQTVWRDs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICogXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLiBcclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUiBcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1IgXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsIFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcbiAgICBcclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpOyBcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgLy9tb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICBpZiAoIXdpZGUpIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIGVsc2Uge1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMC43NTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueSA9IDAuMDE7IC8vWFhYIG1hZ2ljIG51bWJlclxyXG4gIH1cclxuXHJcbiAgdmFyIG1hdGVyaWFsO1xyXG4gIGlmIChpbWFnZS5pc01hdGVyaWFsKSB7XHJcbiAgICBtYXRlcmlhbCA9IGltYWdlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIG1hdGVyaWFsKTtcclxuICB9XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gIC8vYnV0dG9uIGxhYmVsIHJlbW92ZWQ7IG1pZ2h0IHdhbnQgb3B0aW9ucyBsaWtlIGEgaG92ZXIgbGFiZWwgaW4gZnV0dXJlLlxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBpZiAod2lkZSkgZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAvL1RPRE86IGRyYWcgYW5kIGhvdmVyXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnaG92ZXJpbmcnLCBoYW5kbGVIb3ZlciApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZVByZXNzaW5nICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGxldCBob3ZlckZ1bmMgPSB1bmRlZmluZWQ7XHJcbiAgLy8gSSBtaWdodCB5ZXQgZGVjaWRlIHRvIGNoYW5nZSB0aGlzIGludGVyZmFjZS5cclxuICAvLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgbmFtZSwgbWlnaHQgd2FudCB0byBhZGQgbGlzdGVuZXJzIHRvIGV2ZW50XHJcbiAgLy8gcmF0aGVyIHRoYW4ganVzdCBzZXQgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgZ3JvdXAub25Ib3ZlciA9IGYgPT4ge1xyXG4gICAgaG92ZXJGdW5jID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZ3JvdXAub25QcmVzc2luZyA9IGYgPT4ge1xyXG4gICAgcHJlc3NpbmcgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBmdW5jdGlvbiBoYW5kbGVIb3ZlciggcCApe1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAoaG92ZXJGdW5jKSBob3ZlckZ1bmMocCk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vaXQgc2hvdWxkIGJlIHRoYXQgdGhlIGNoZWNrcyBpbiBpbmRleC5qcyBtZWFuIHRoYXQgbWV0aG9kcyBkb24ndCBnZXQgY2FsbGVkIG9uIGludmlzaWJsZVxyXG4gICAgLy9vYmplY3RzLCByZW5kZXJpbmcgdGhlc2UgdGVzdHMgcmVkdW5kYW50Li4uIGhvd2V2ZXIsIHRoYXQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlIGNhc2UuXHJcbiAgICAvL2V4cGVyaWVuY2VkIHNvbWUgYnVncyBwYXJ0aWN1bGFybHkgd2l0aCAnbW9kYWwgZWRpdG9yJyB0eXBlIHBhbmVscy5cclxuICAgIC8vVE9ETzogZWl0aGVyIG1ha2Ugc3VyZSBpbnZpc2libGUgb2JqZWN0cyBhcmVuJ3QgY2FsbGVkIGluIHRoZSBmaXJzdCBwbGFjZSxcclxuICAgIC8vb3IgbWFrZSBzdXJlIGFsbCB0eXBlcyBvZiBvYmplY3QgZG8gdGhpcyBtb3JlIHRob3JvdWdoIHZpc2liaWxpdHkgY2hlY2suLi5cclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKG9iamVjdCkgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXShwKTtcclxuICAgIGlmIChmdW5jKSBmdW5jKHApO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL2NvbXB1dGUgeCAmIHkgYXMgbm9ybWFsaXNlZCBjb29yZGluYXRlcyBmcm9tIHAucG9pbnRcclxuICAvL2NvdWxkIGNvbnNpZGVyIG1vdmluZyB0aGlzIGNvbXB1dGF0aW9uIGludG8gaW50ZXJhY3Rpb24uanMgcGVyZm9ybVN0YXRlRXZlbnRzKClcclxuICBmdW5jdGlvbiBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwb2ludCkge1xyXG4gICAgY29uc3QgcCA9IGhpdHNjYW5Wb2x1bWUud29ybGRUb0xvY2FsKHBvaW50KTtcclxuICAgIHAueCAvPSBCVVRUT05fV0lEVEg7XHJcbiAgICBwLnkgLz0gQlVUVE9OX0hFSUdIVDtcclxuICAgIHAueSArPSAwLjU7XHJcbiAgICBwLnggPSBNYXRoLm1heChNYXRoLm1pbihwLngsIDEpLCAwKTtcclxuICAgIHAueSA9IE1hdGgubWF4KE1hdGgubWluKHAueSwgMSksIDApO1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVQcmVzc2luZyggcCApIHtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIC8vY29uc29sZS5sb2coYHByZXNzaW5nIGF0ICgke3BvaW50Lnh9LCAke3BvaW50Lnl9KWApOyAvL2ZpcnN0IGluc3RhbmNlIG9mICdwcmVzc2luZycgaXMgYWx3YXlzIGF0ICgxLCAxKVxyXG4gICAgLy9uYiwgbGlrZWx5IHRvIG5lZWQgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIGR1YWwgd2llbGRpbmdcclxuICAgIGlmIChwcmVzc2luZykgcHJlc3NpbmcocCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmICghbWF0ZXJpYWwuY29sb3IpIHJldHVybjtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhDQ0NDQ0MgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKiBcclxuICogR3JpZCBvZiBidXR0b25zIHdpdGggaW1hZ2VzIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgaW1hZ2VidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7Y3JlYXRlVGV4dExhYmVsLCBjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0cywgLy8gYXJyYXkgb2Yge2Z1bmMsIGltYWdlIHwgdGV4dCwgdGlwKG9wdGlvbmFsKSwgcmVsZWFzZShvcHRpb25hbCl9XHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgcm93SGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNvbHVtbnMgPSA0XHJcbn0gPSB7fSApe1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWFyZ2luID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDM7XHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gKHdpZHRoIC0gbWFyZ2luKSAqICgxL2NvbHVtbnMpO1xyXG4gIC8vVE9ETzogYWRkIHNldFJvd0hlaWdodCBtZXRob2RcclxuICBsZXQgQlVUVE9OX0hFSUdIVCA9IHJvd0hlaWdodCA+IDAgPyByb3dIZWlnaHQgOiBCVVRUT05fV0lEVEg7XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvbmdyaWRcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtvYmplY3RzfV1gO1xyXG4gIFxyXG4gIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwob2JqZWN0cy5sZW5ndGggLyBjb2x1bW5zKTtcclxuICBsZXQgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGdyb3VwLnNldFJvd0hlaWdodCA9IGggPT4ge1xyXG4gICAgcm93SGVpZ2h0ID0gQlVUVE9OX0hFSUdIVCA9IGg7XHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG4gICAgbGF5b3V0QnV0dG9ucygpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGZhbHNlO1xyXG4gIGxldCBsYXN0UHJlc3NlZCA9IG51bGw7XHJcbiAgbGV0IGxhc3RQcmVzc2VkQ29sO1xyXG4gIGdyb3VwLmhpZ2hsaWdodExhc3RQcmVzc2VkID0gKGNvbCA9IDB4MzM1NUVFKSA9PiB7XHJcbiAgICAgIGhpZ2hsaWdodExhc3RQcmVzc2VkID0gY29sICE9PSBmYWxzZTtcclxuICAgICAgbGFzdFByZXNzZWRDb2wgPSBjb2w7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgXHJcbiAgbGV0IHBhbmVsLCBncmFiSW50ZXJhY3Rpb24sIGJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgbGF5b3V0QnV0dG9ucygpO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGluaXRQYW5lbCgpIHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIHBhbmVsLmFkZChjb250cm9sbGVySUQpO1xyXG4gICAgXHJcbiAgICBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+Z3JvdXAucmVtb3ZlKGIpKTtcclxuICAgIGJ1dHRvbnMgPSBbXTtcclxuICAgIGdyb3VwLmd1aUNoaWxkcmVuID0gYnV0dG9ucztcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gbGF5b3V0QnV0dG9ucygpIHtcclxuICAgIGluaXRQYW5lbCgpO1xyXG4gICAgLy9UT0RPOiBwYWRkaW5nXHJcbiAgICBjb25zdCBidXR0b25XUGFkZGVkID0gQlVUVE9OX1dJRFRIICogMC45OSwgYnV0dG9uSFBhZGRlZCA9IEJVVFRPTl9IRUlHSFQgKiAwLjk5O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBidXR0b25XUGFkZGVkLCBidXR0b25IUGFkZGVkLCAxLCAxICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggYnV0dG9uV1BhZGRlZCAvIDIsIC1idXR0b25IUGFkZGVkIC8gMiwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IHRvZ2dsZXMgcmF0aGVyIHRoYW4gdHJpZ2dlcnMuLi5cclxuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFvYmouaW1hZ2UgJiYgIW9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN1Ymdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vbm90ZTogcmVkdWNpbmcgbmVzdGluZyBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxyXG4gICAgICAgIHN1Ymdyb3VwLmd1aVR5cGUgPSBcImltYWdlQnV0dG9uR3JpZEVsZW1lbnRcIjtcclxuICAgICAgICBncm91cC5hZGQoc3ViZ3JvdXApO1xyXG4gICAgICAgIGJ1dHRvbnMucHVzaChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbCA9IGkgJSBjb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IE1hdGguZmxvb3IoaSAvIGNvbHVtbnMpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi54ID0gKDIqTGF5b3V0LlBBTkVMX01BUkdJTikgKyBCVVRUT05fV0lEVEggKiBjb2w7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueSA9IChoZWlnaHQvMikgLUJVVFRPTl9IRUlHSFQgKiByb3c7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuXHJcbiAgICAgICAgLy8gIGhpdHNjYW4gdm9sdW1lLlxyXG4gICAgICAgIC8vIFRoaXMgbWF0ZXJpYWwgY291bGQgcHJvYmFibHkgYmUgcmV1c2VkLlxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG9iai5pbWFnZSkgYXBwbHlJbWFnZVRvTWF0ZXJpYWwob2JqLmltYWdlLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgaWYgKG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUob2JqLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyKkxheW91dC5HUklEX0JVVFRPTl9NQVJHSU47XHJcbiAgICAgICAgICAgIGxldCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgaWYgKHcgPiBCVVRUT05fV0lEVEggLSBtYXJnaW4pIHtcclxuICAgICAgICAgICAgICAgIHRleHQuY29uc3RyYWluQm91bmRzKEJVVFRPTl9XSURUSCAtIG1hcmdpbiwgQlVUVE9OX0hFSUdIVCAtIG1hcmdpbik7IC8vPC0tXHJcbiAgICAgICAgICAgICAgICBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJncm91cC5hZGQodGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnggPSBvYmoudGV4dFggfHwgMC41ICogKEJVVFRPTl9XSURUSCAtIHcpO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnkgPSBvYmoudGV4dFkgfHwgLTAuNSAqIEJVVFRPTl9IRUlHSFQgLSBoO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICAgICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgICAgICAvL2J1dHRvbiBsYWJlbCAmIGRlc2NyaXB0b3IgbGFiZWwgcmVtb3ZlZC5cclxuICAgICAgICAvL1Rvb2x0aXAgdGV4dCBvcHRpb24gYWRkZWQuICBNaWdodCB3YW50IHRvIGJlIGFibGUgdG8gcGFzcyBpbiByaWNoZXIgdGhpbmdzLi4uXHJcbiAgICAgICAgLy9tYXliZSBhbiBhcmJpdHJhcnkgVEhSRUUgb2JqZWN0IHdvdWxkIHdvcmsgd2VsbC4uLlxyXG4gICAgICAgIGlmIChvYmoudGlwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcFRleHQgPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCBvYmoudGlwLCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL3N1Ymdyb3VwLmFkZCh0aXBUZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG4gICAgICAgIHN1Ymdyb3VwLmFkZCggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIHBhbmVsLmFkZChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgICAgICAgICBpZiggc3ViZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL1RPRE86IHN0YW5kYXJkaXNlIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gY2FsbGJhY2tzXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZnVuYygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZXJyb3IgPSBlIHx8ICd1bmRlZmluZWQgZXhjZXB0aW9uJztcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0UHJlc3NlZCA9IG9iajtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gICAgICAgICAgICBpZiAob2JqLnJlbGVhc2UpIG9iai5yZWxlYXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcXVpY2sgY29sb3IgaGFjay4uLlxyXG4gICAgICAgIGNvbnN0IGhvdmVyQ29sID0gb2JqLnRleHQgPyAweDg4OCA6IDB4RkZGRkZGO1xyXG4gICAgICAgIGNvbnN0IG5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IGhvdmVyQ29sIDogbm9Ib3ZlckNvbCApO1xyXG4gICAgICAgICAgICBpZiAoc3ViZ3JvdXAudGlwVGV4dCkgc2V0VmlzaWJpbGl0eShzdWJncm91cCwgc3ViZ3JvdXAudGlwVGV4dCwgaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICAgIGlmIChvYmouZXJyb3IpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhBQTMzMzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3KCk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgc3ViZ3JvdXAuaGl0c2NhbiA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBtYWtpbmcgdGhpcyBzaW5nbGUgZWxlbWVudCByYXRoZXIgdGhhbiBhcnJheSxcclxuICAgICAgICAvL3RoYXQgbWVhbnMgdGhlc2UgJ3N1Ymdyb3VwJyBidXR0b25zIGFyZW4ndCBhY3RpbmcgZXhhY3RseSBhcyBub3JtYWwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzXHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5oaXRzY2FuID0gYnV0dG9ucy5tYXAoYj0+Yi5oaXRzY2FuKTsvLy5wdXNoKHBhbmVsKTtcclxuICAgIGdyb3VwLmhpdHNjYW4ucHVzaChwYW5lbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpIHtcclxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGI9PmIudXBkYXRlVmlldygpKTtcclxuICB9XHJcbiAgXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT57XHJcbiAgICAgICAgYi5pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICAvL2ludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVTbGlkZXIgZnJvbSAnLi9zbGlkZXInO1xyXG5pbXBvcnQgY3JlYXRlQ2hlY2tib3ggZnJvbSAnLi9jaGVja2JveCc7XHJcbmltcG9ydCBjcmVhdGVCdXR0b24gZnJvbSAnLi9idXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlRm9sZGVyIGZyb20gJy4vZm9sZGVyJztcclxuaW1wb3J0IGNyZWF0ZURyb3Bkb3duIGZyb20gJy4vZHJvcGRvd24nO1xyXG4vL1BKVDogSSdkIHJhdGhlciBpbmplY3QgY3VzdG9tIGV4dGVuc2lvbnMgbGlrZSB0aGlzLCBidXQgd2lsbCB3b3JrIHRoYXQgb3V0IGxhdGVyLlxyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlS2V5Ym9hcmQgZnJvbSAnLi9rZXlib2FyZCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0Ym94IGZyb20gJy4vdGV4dGJveCc7XHJcbmltcG9ydCBjcmVhdGVDb2xvclBpY2tlciBmcm9tICcuL2NvbG9ycGlja2VyJztcclxuaW1wb3J0ICogYXMgU0RGVGV4dCBmcm9tICcuL3NkZnRleHQnO1xyXG5pbXBvcnQgeyBpc0NvbnRyb2xsZXJWaXNpYmxlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGdsb2JhbEV2ZW50cyB9IGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuY29uc3QgR1VJVlIgPSAoZnVuY3Rpb24gREFUR1VJVlIoKXtcclxuXHJcbiAgLypcclxuICAgIFNERiBmb250XHJcbiAgKi9cclxuICBjb25zdCB0ZXh0Q3JlYXRvciA9IFNERlRleHQuY3JlYXRvcigpO1xyXG5cclxuXHJcbiAgLypcclxuICAgIExpc3RzLlxyXG4gICAgSW5wdXRPYmplY3RzIGFyZSB0aGluZ3MgbGlrZSBWSVZFIGNvbnRyb2xsZXJzLCBjYXJkYm9hcmQgaGVhZHNldHMsIGV0Yy5cclxuICAgIENvbnRyb2xsZXJzIGFyZSB0aGUgREFUIEdVSSBzbGlkZXJzLCBjaGVja2JveGVzLCBldGMuXHJcbiAgKi9cclxuICBjb25zdCBpbnB1dE9iamVjdHMgPSBbXTtcclxuICBjb25zdCBjb250cm9sbGVycyA9IFtdO1xyXG5cclxuICAvKlxyXG4gICAgRnVuY3Rpb25zIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY29udHJvbGxlciBpcyB2aXNpYmxlIChieSB3aGljaCB3ZVxyXG4gICAgbWVhbiBub3QgaGlkZGVuLCBub3QgJ3Zpc2libGUnIGluIHRlcm1zIG9mIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gZXRjKSwgYW5kXHJcbiAgICBmb3IgcmV0cmlldmluZyB0aGUgbGlzdCBvZiB2aXNpYmxlIGhpdHNjYW5PYmplY3RzIGR5bmFtaWNhbGx5LlxyXG4gICAgVGhpcyBtaWdodCBiZW5lZml0IGZyb20gc29tZSBjYWNoaW5nIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2l0aCBsYXJnZSBjb21wbGV4IEdVSXMuXHJcbiAgICBJIGhhdmVuJ3QgbWVhc3VyZWQgdGhlIGltcGFjdCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gZXRjLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkge1xyXG4gICAgLy8gbm90IHRlcnJpYmx5IGVmZmljaWVudFxyXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJzLmZpbHRlciggaXNDb250cm9sbGVyVmlzaWJsZSApO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSB7XHJcbiAgICAvL1hYWCBXQVJOSU5HOjo6XHJcbiAgICAvL3RoZXJlIGNvdWxkIGV4aXN0IHNpdHVhdGlvbnMgaW4gd2hpY2ggbWVtYmVycyBvZiBoaXRzY2FuIGZvciBhIHZpc2libGUgY29udHJvbGxlciBhcmUgbm90IHRoZW1zZWx2ZXMgdmlzaWJsZS5cclxuICAgIC8vdGhpcyBjYW4gaGFwcGVuIGZvciBlZyBpZiB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBwYXJ0aWN1bGFyIGhpdHNjYW4gaXMgaW4gYW4gaW52aXNpYmxlIG1vZGFsIGVkaXRvci5cclxuICAgIC8vd2UgY291bGQgY2hlY2sgdGhhdCwgYWRkaW5nIGEgbW9yZSByb2J1c3QgZmlsdGVyIHRvIGVhY2ggaGl0c2NhbiBhcnJheS4uLiBmb3Igbm93LCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcclxuICAgIC8vY29udHJvbGxlcnMgdG8gZWl0aGVyIG9ubHkgcmV0dXJuIGhpdHNjYW4gb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlLCBvciB0byBzZXQgJ3Zpc2libGUnIGV4cGxpY2l0bHkuXHJcbiAgICBjb25zdCB0bXAgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKS5tYXAoIG8gPT4geyByZXR1cm4gby5oaXRzY2FuLmZpbHRlcihoID0+IGgudmlzaWJsZSk7IH0gKVxyXG4gICAgcmV0dXJuIHRtcC5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgbGV0IG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGxldCBtb3VzZVJlbmRlcmVyID0gdW5kZWZpbmVkO1xyXG4gIGxldCBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkOyAvL2tlZXAgdHJhY2sgc28gdGhhdCB3ZSBkb24ndCBhdHRhY2ggbXVsdGlwbGUgZXZlbnRzIChwYXJ0aWN1bGFybHkgd2hlbiByZXNpemluZyB3aW5kb3cpXHJcbiAgXHJcbiAgbGV0IGF1dG9VcGRhdGUgPSB0cnVlO1xyXG5cclxuICBmdW5jdGlvbiBlbmFibGVNb3VzZSggY2FtZXJhLCByZW5kZXJlciApe1xyXG4gICAgbW91c2VFbmFibGVkID0gdHJ1ZTtcclxuICAgIG1vdXNlUmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgIG1vdXNlSW5wdXQubW91c2VDYW1lcmEgPSBjYW1lcmE7XHJcbiAgICBpZiAoY2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSB7XHJcbiAgICAgIGlmICghb25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSBmPT5mLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMub24oJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5sYXNlcjtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gZGlzYWJsZU1vdXNlKCl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgVGhlIGRlZmF1bHQgbGFzZXIgcG9pbnRlciBjb21pbmcgb3V0IG9mIGVhY2ggSW5wdXRPYmplY3QuXHJcbiAgKi9cclxuICBjb25zdCBsYXNlck1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjoweDU1YWFmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0pO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUxhc2VyKCl7XHJcbiAgICBjb25zdCBnID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBnLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDAsMCwwXSkpKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoKSApO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygwLDAsMCkgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTGluZSggZywgbGFzZXJNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBIFwiY3Vyc29yXCIsIGVnIHRoZSBiYWxsIHRoYXQgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHlvdXIgbGFzZXIuXHJcbiAgKi9cclxuICBjb25zdCBjdXJzb3JNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg0NDQ0NDQsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9ICk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKCl7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgwLjAwNiwgNCwgNCApLCBjdXJzb3JNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBnZW5lcmljIElucHV0IHR5cGUuXHJcbiAgICBUYWtlcyBhbnkgVEhSRUUuT2JqZWN0M0QgdHlwZSBvYmplY3QgYW5kIHVzZXMgaXRzIHBvc2l0aW9uXHJcbiAgICBhbmQgb3JpZW50YXRpb24gYXMgYW4gaW5wdXQgZGV2aWNlLlxyXG5cclxuICAgIEEgbGFzZXIgcG9pbnRlciBpcyBpbmNsdWRlZCBhbmQgd2lsbCBiZSB1cGRhdGVkLlxyXG4gICAgQ29udGFpbnMgc3RhdGUgYWJvdXQgd2hpY2ggSW50ZXJhY3Rpb24gaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb3IgaG92ZXIuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBjcmVhdGVJbnB1dCggaW5wdXRPYmplY3QgPSBuZXcgVEhSRUUuR3JvdXAoKSApe1xyXG4gICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgIHJheWNhc3Q6IG5ldyBUSFJFRS5SYXljYXN0ZXIoIG5ldyBUSFJFRS5WZWN0b3IzKCksIG5ldyBUSFJFRS5WZWN0b3IzKCkgKSxcclxuICAgICAgbGFzZXI6IGNyZWF0ZUxhc2VyKCksXHJcbiAgICAgIGN1cnNvcjogY3JlYXRlQ3Vyc29yKCksXHJcbiAgICAgIG9iamVjdDogaW5wdXRPYmplY3QsXHJcbiAgICAgIHByZXNzZWQ6IGZhbHNlLFxyXG4gICAgICBncmlwcGVkOiBmYWxzZSxcclxuICAgICAgZXZlbnRzOiBuZXcgRW1pdHRlcigpLFxyXG4gICAgICBpbnRlcmFjdGlvbjoge1xyXG4gICAgICAgIGdyaXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmVzczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGhvdmVyOiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5hZGQoIGlucHV0LmN1cnNvciApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgTW91c2VJbnB1dC5cclxuICAgIEFsbG93cyB5b3UgdG8gY2xpY2sgb24gdGhlIHNjcmVlbiB3aGVuIG5vdCBpbiBWUiBmb3IgZGVidWdnaW5nLlxyXG4gICovXHJcbiAgY29uc3QgbW91c2VJbnB1dCA9IGNyZWF0ZU1vdXNlSW5wdXQoKTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlTW91c2VJbnB1dCgpe1xyXG4gICAgY29uc3QgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigtMSwtMSk7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCgpO1xyXG4gICAgaW5wdXQubW91c2UgPSBtb3VzZTtcclxuICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlT2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlUGxhbmUgPSBuZXcgVEhSRUUuUGxhbmUoKTtcclxuICAgIGlucHV0LmludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyAgc2V0IG15IGVuYWJsZU1vdXNlXHJcbiAgICBpbnB1dC5tb3VzZUNhbWVyYSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlbW92ZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICAvLyBpZiBhIHNwZWNpZmljIHJlbmRlcmVyIGhhcyBiZWVuIGRlZmluZWRcclxuICAgICAgaWYgKG1vdXNlUmVuZGVyZXIpIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gbW91c2VSZW5kZXJlci5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIG1vdXNlLnggPSAoIChldmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0KSAvIGNsaWVudFJlY3Qud2lkdGgpICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCAoZXZlbnQuY2xpZW50WSAtIGNsaWVudFJlY3QudG9wKSAvIGNsaWVudFJlY3QuaGVpZ2h0KSAqIDIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gZnVsbHNjcmVlblxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtb3VzZS54ID0gKCBldmVudC5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGggKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCApICogMiArIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmIChpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBwcmV2ZW50IG1vdXNlIGRvd24gZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGxpc3RlbmVycyAocG9seWZpbGwsIGV0YylcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLy9pZiBhbnkgaW5wdXQuaW50ZXJhY3Rpb25zIGhhdmUgaGl0Vm9sdW1lIHRoYXQgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIG5vdCBjdXJyZW50bHkgaW4gaGl0c2Nhbk9iamVjdHMsXHJcbiAgLy90aGF0IGludGVyYWN0aW9uIHNob3VsZCBiZSBjYW5jZWxsZWQuIEVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgd2l0aCBlLmcuIHByZXNzaW5nICdyZWF0dGFjaCcgd2hlbiB0aGUgcGFyZW50IGlzIGNsb3NlZC5cclxuICBmdW5jdGlvbiBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb25zLCBoaXRzY2FuT2JqZWN0cyApIHtcclxuICAgIFsncHJlc3MnLCAnZ3JpcCcsICdob3ZlciddLmZvckVhY2goIGludGVyYWN0aW9uTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV07XHJcbiAgICAgIGlmIChpbnRlcmFjdGlvbiAmJiBoaXRzY2FuT2JqZWN0cy5pbmRleE9mKGludGVyYWN0aW9uLmhpdFZvbHVtZSkgPCAwKSB7XHJcbiAgICAgICAgaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV0gPSB1bmRlZmluZWQ7IFxyXG4gICAgICAgIC8vb25seSBiZSBwb2xpdGUgdG8gaW5mb3JtIHRoZSBpbnRlcmFjdGlvbiBhcyB3ZWxsOyB1cGRhdGUgd2l0aCBlbXB0eSBpbnB1dE9iamVjdHMgYXJnIHNob3VsZCBkbyB0aGUgdHJpY2suXHJcbiAgICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBbXSApO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVMYXNlciggbGFzZXIsIHBvaW50ICl7XHJcbiAgICBjb25zdCBwcCA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgIHBwWzNdID0gcG9pbnQueDtcclxuICAgIHBwWzRdID0gcG9pbnQueTtcclxuICAgIHBwWzVdID0gcG9pbnQuejtcclxuICAgIHBwLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggcG9pbnQgKTtcclxuICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydGljZXNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgaWYoIGludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBjb25zdCBmaXJzdEhpdCA9IGludGVyc2VjdGlvbnNbIDAgXTtcclxuICAgICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IucG9zaXRpb24uY29weSggZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBjdXJzb3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlTW91c2VJbnRlcnNlY3Rpb24oIGludGVyc2VjdGlvbiwgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGludGVyc2VjdGlvbiApO1xyXG4gICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBjdXJzb3IucG9zaXRpb24gKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIGNhbWVyYSApe1xyXG4gICAgcmF5Y2FzdC5zZXRGcm9tQ2FtZXJhKCBtb3VzZSwgY2FtZXJhICk7XHJcbiAgICBjb25zdCBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgcmV0dXJuIHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtb3VzZUludGVyc2VjdHNQbGFuZSggcmF5Y2FzdCwgdiwgcGxhbmUgKXtcclxuICAgIHJldHVybiByYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggcGxhbmUsIHYgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsbW91c2UsbW91c2VDYW1lcmEsIGludGVyYWN0aW9ufSA9IHt9ICl7XHJcbiAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICBsZXQgaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIGlmIChtb3VzZUNhbWVyYSkge1xyXG4gICAgICBpbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgbW91c2VDYW1lcmEgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoKTtcclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBtZXRob2RzLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHB1YmxpY0ludGVyZmFjZSA9IHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGFkZElucHV0T2JqZWN0LFxyXG4gICAgZW5hYmxlTW91c2UsXHJcbiAgICBkaXNhYmxlTW91c2UsXHJcbiAgICB0ZXh0Q3JlYXRvciwgLy9jaGVhcCB3YXkgb2YgZXhwb3NpbmcgdGhpcyBzbyBpdCBjYW4gYmUgdXNlZCBieSBob3N0IGFwcGxpY2F0aW9uLlxyXG4gICAgZ2xvYmFsRXZlbnRzLFxyXG4gICAgY2xlYXJBbGwsXHJcbiAgICB1cGRhdGVcclxuICB9O1xyXG4gIC8vIGFsbG93IHVzZXIgdG8gY2FsbCBcImRhdC5HVUlWUi5hdXRvVXBkYXRlID0gZmFsc2VcIiBhbmQgdGhlbiB1cGRhdGUgbWFudWFsbHkgd2l0aFxyXG4gIC8vIFwiZGF0LkdVSVZSLnVwZGF0ZSgpXCJcclxuICAvLyBleHBvc2UgYXV0b1VwZGF0ZSBhcyBwcm9wZXJ0eSBzbyB0aGF0IHRoZSByZWZlcmVuY2Ugd2lsbCBiZSBwcm9wZXJseSBlZmZlY3RlZFxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggcHVibGljSW50ZXJmYWNlLCAnYXV0b1VwZGF0ZScsIHsgZ2V0OiAoKT0+IGF1dG9VcGRhdGUsIHNldDogdiA9PiBhdXRvVXBkYXRlID0gdiB9ICk7XHJcbiAgcmV0dXJuIHB1YmxpY0ludGVyZmFjZTtcclxuXHJcbn0oKSk7XHJcblxyXG5pZiggd2luZG93ICl7XHJcbiAgaWYoIHdpbmRvdy5kYXQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgd2luZG93LmRhdCA9IHt9O1xyXG4gIH1cclxuXHJcbiAgd2luZG93LmRhdC5HVUlWUiA9IEdVSVZSO1xyXG59XHJcblxyXG5pZiggbW9kdWxlICl7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBkYXQ6IEdVSVZSXHJcbiAgfTtcclxufVxyXG5cclxuaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XHJcbiAgZGVmaW5lKFtdLCBHVUlWUik7XHJcbn1cclxuXHJcbi8qXHJcbiAgQnVuY2ggb2Ygc3RhdGUtbGVzcyB1dGlsaXR5IGZ1bmN0aW9ucy5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGlzTnVtYmVyKG4pIHtcclxuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Jvb2xlYW4obil7XHJcbiAgcmV0dXJuIHR5cGVvZiBuID09PSAnYm9vbGVhbic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuY3Rpb25Ub0NoZWNrKSB7XHJcbiAgY29uc3QgZ2V0VHlwZSA9IHt9O1xyXG4gIHJldHVybiBmdW5jdGlvblRvQ2hlY2sgJiYgZ2V0VHlwZS50b1N0cmluZy5jYWxsKGZ1bmN0aW9uVG9DaGVjaykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XHJcbn1cclxuXHJcbi8vICBvbmx5IHt9IG9iamVjdHMgbm90IGFycmF5c1xyXG4vLyAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHRlY2huaWNhbGx5IG9iamVjdHMgYnV0IHlvdSdyZSBqdXN0IGJlaW5nIHBlZGFudGljXHJcbmZ1bmN0aW9uIGlzT2JqZWN0IChpdGVtKSB7XHJcbiAgcmV0dXJuICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQXJyYXkoIG8gKXtcclxuICByZXR1cm4gQXJyYXkuaXNBcnJheSggbyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1N0cmluZyggbyApe1xyXG4gIHJldHVybiB0eXBlb2YgbyA9PT0gJ3N0cmluZyc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQ29sb3IoIG8gKXtcclxuICBpZiAodHlwZW9mIG8gIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIG8uaXNDb2xvciA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5cclxuXHJcblxyXG4vKlxyXG4gIENvbnRyb2xsZXItc3BlY2lmaWMgc3VwcG9ydC5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIGNvbnRyb2xsZXIsIHByZXNzZWQsIGdyaXBwZWQgKXtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VyZG93bicsICgpPT5wcmVzc2VkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VydXAnLCAoKT0+cHJlc3NlZCggZmFsc2UgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzZG93bicsICgpPT5ncmlwcGVkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc3VwJywgKCk9PmdyaXBwZWQoIGZhbHNlICkgKTtcclxuXHJcbiAgY29uc3QgZ2FtZXBhZCA9IGNvbnRyb2xsZXIuZ2V0R2FtZXBhZCgpO1xyXG4gIGZ1bmN0aW9uIHZpYnJhdGUoIHQsIGEgKXtcclxuICAgIGlmKCBnYW1lcGFkICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnNbIDAgXS5wdWxzZSggdCwgYSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc1RhcCgpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSgxLWEsIDAuNSksIDEwLCAyMCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc0VjaG8oKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoNCwgMS4wICogKDEtYSkpLCAxMDAsIDQgKTtcclxuICB9XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ29uQ29udHJvbGxlckhlbGQnLCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgIHZpYnJhdGUoIDAuMywgMC4zICk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJiZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGlubmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGluUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gc2V0SW50ZXJ2YWxUaW1lcyggY2IsIGRlbGF5LCB0aW1lcyApe1xyXG4gIGxldCB4ID0gMDtcclxuICBsZXQgaWQgPSBzZXRJbnRlcnZhbCggZnVuY3Rpb24oKXtcclxuICAgIGNiKCB4LCB0aW1lcywgeC90aW1lcyApO1xyXG4gICAgeCsrO1xyXG4gICAgaWYoIHg+PXRpbWVzICl7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwoIGlkICk7XHJcbiAgICB9XHJcbiAgfSwgZGVsYXkgKTtcclxuICByZXR1cm4gaWQ7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdsb2JhbEV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbnRlcmFjdGlvbiggaGl0Vm9sdW1lICl7XHJcbiAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbiAgbGV0IGFueUhvdmVyID0gZmFsc2U7XHJcbiAgbGV0IGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgbGV0IGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCB0VmVjdG9yID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCBhdmFpbGFibGVJbnB1dHMgPSBbXTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCBpbnB1dE9iamVjdHMgKXtcclxuXHJcbiAgICBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gICAgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuXHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuaW5kZXhPZiggaW5wdXQgKSA8IDAgKXtcclxuICAgICAgICBhdmFpbGFibGVJbnB1dHMucHVzaCggaW5wdXQgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgeyBoaXRPYmplY3QsIGhpdFBvaW50IH0gPSBleHRyYWN0SGl0KCBpbnB1dCApO1xyXG5cclxuICAgICAgdmFyIGhvdmVyID0gaGl0Vm9sdW1lID09PSBoaXRPYmplY3Q7XHJcbiAgICAgIGFueUhvdmVyID0gYW55SG92ZXIgfHwgaG92ZXI7XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAncHJlc3NlZCcsXHJcbiAgICAgICAgYnV0dG9uQ2xpY2tOYW1lOiAnY2xpY2tlZCcsIC8vbWF5YmUgbm90IHN0YWJsZSBwYXJ0IG9mIEFQSS4uLlxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ3ByZXNzJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uUHJlc3NlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdwcmVzc2luZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlZCcsXHJcbiAgICAgICAgIC8vaW52ZW50aW5nIGEgJ2hvdmVyaW5nJyBldmVudCB0aGF0IG9ubHkgYXBwbGllcyB0byAncHJlc3NlZCcgYnV0dG9uLi4uXHJcbiAgICAgICAgIC8vdGhpcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYSBzdGFibGUgaW50ZXJmYWNlLCBidXQgSSB3YW50cyBpdCBtb3JlIHRoYW4gSVxyXG4gICAgICAgICAvL3dhbnQgdG8gbWFrZSBzb21ldGhpbmcgdG90YWxseSBjb2hlcmVudCBhbmQgcm9idXN0IGp1c3Qgbm93LlxyXG4gICAgICAgIGhvdmVyTmFtZTogJ2hvdmVyaW5nJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAnZ3JpcHBlZCcsXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAnZ3JpcCcsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvbkdyaXBwZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAnZ3JpcHBpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZUdyaXAnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoICd0aWNrJywge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0gKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBleHRyYWN0SGl0KCBpbnB1dCApe1xyXG4gICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoIDw9IDAgKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogdFZlY3Rvci5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LmN1cnNvci5tYXRyaXhXb3JsZCApLmNsb25lKCksIC8veHh4OiBnYXJiYWdlP1xyXG4gICAgICAgIGhpdE9iamVjdDogdW5kZWZpbmVkLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLnBvaW50LFxyXG4gICAgICAgIGhpdE9iamVjdDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgIGlucHV0LCBob3ZlcixcclxuICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICBidXR0b25OYW1lLCBidXR0b25DbGlja05hbWUsIGludGVyYWN0aW9uTmFtZSwgZG93bk5hbWUsIGhvbGROYW1lLCB1cE5hbWUsIGhvdmVyTmFtZVxyXG4gIH0gPSB7fSApe1xyXG5cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGhpdE9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIC8vY2xpY2tlZCBhbmQgZGlkbid0IGhpdCBhbnkgR1VJIG9iamVjdC5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBob3ZlcmluZyBhbmQgYnV0dG9uIE5PVCBkb3duXHJcbiAgICBpZiggaG92ZXJOYW1lICYmIGhvdmVyICYmIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob3Zlck5hbWUsIHBheWxvYWQgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgaG92ZXJpbmcgYW5kIGJ1dHRvbiBkb3duIGJ1dCBubyBpbnRlcmFjdGlvbnMgYWN0aXZlIHlldFxyXG4gICAgLy8tLS0+IHNob3VsZCBiZSBeIGJ1dHRvbiAnY2xpY2tlZCcuLi4gaWUgb25seSBpZiBpdCBjYW1lIGRvd24gc2luY2UgdGhlIGxhc3QgdXBkYXRlLlxyXG4gICAgLy9zbywgc2hvdWxkIHdlIHBhc3MgJ2J1dHRvbkNsaWNrTmFtZScgYXMgYW4gYXJndW1lbnQgKGFuZCB1c2UgYnV0dG9uTmFtZSBpZiBub3QgcHJvdmlkZWQpP1xyXG4gICAgLy8tLS0+Pj4+IFhYWDogaXMgdGhpcyBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcLy8vLy8vLy8vLy8vIHdvcmtpbmcgd2l0aCBWaXZlIGNvbnRyb2xsZXJzPyBcclxuICAgIGlmKCBob3ZlciAmJiBpbnB1dFsgYnV0dG9uQ2xpY2tOYW1lIHx8IGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG5cclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpZiAoIWhpdE9iamVjdC51c2VyRGF0YS5wYXJ0T2ZNb2RhbCkgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG5cclxuICAgICAgcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpO1xyXG4gICAgICBcclxuICAgICAgLy9lbWl0IGdsb2JhbCBjbGljayBldmVudCBhcyB3ZWxsLi4uXHJcbiAgICAgIGdsb2JhbEV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgICBldmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGlmKCBwYXlsb2FkLmxvY2tlZCApe1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gaW50ZXJhY3Rpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgYW55QWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIHN0aWxsIGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggaG9sZE5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnb25Db250cm9sbGVySGVsZCcgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIG5vdCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IHVuZGVmaW5lZDtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCB1cE5hbWUsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpIHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGhpdE9iamVjdCk7XHJcbiAgICB0b3BGb2xkZXIucHJvbW90ZVpPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaXNNYWluSG92ZXIoKXtcclxuXHJcbiAgICBsZXQgbm9NYWluSG92ZXIgPSB0cnVlO1xyXG4gICAgZm9yKCBsZXQgaT0wOyBpPGF2YWlsYWJsZUlucHV0cy5sZW5ndGg7IGkrKyApe1xyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzWyBpIF0uaW50ZXJhY3Rpb24uaG92ZXIgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIG5vTWFpbkhvdmVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggbm9NYWluSG92ZXIgKXtcclxuICAgICAgcmV0dXJuIGFueUhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuZmlsdGVyKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgICAgcmV0dXJuIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID09PSBpbnRlcmFjdGlvbjtcclxuICAgIH0pLmxlbmd0aCA+IDAgKXtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0ge1xyXG4gICAgaG92ZXJpbmc6IGlzTWFpbkhvdmVyLFxyXG4gICAgcHJlc3Npbmc6ICgpPT5hbnlQcmVzc2luZyxcclxuICAgIHVwZGF0ZSxcclxuICAgIGV2ZW50cyxcclxuICAgIGhpdFZvbHVtZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufVxyXG5cclxuIiwiLyoqXHJcbiAqIFxyXG4gKiBUT0RPOiBjdXJzb3JzLi4uXHJcbiAqIE1heWJlIHNvbWV0aGluZyBsaWtlIG1vYmlsZSBpbnB1dCB3aGVyZSB5b3Ugc3dpdGNoIGJldHdlZW4gbGV0dGVycyAmIG51bWJlcnMgLyBzeW1ib2xzXHJcbiAqIFxyXG4gKiBTb21ldGhpbmcgbGlrZSBhIHNwbGl0IGtleWJvYXJkIGFsYSBodHRwczovL21lZGl1bS5jb20vYWFyb25uL3ZyLXRleHQtaW5wdXQtc3BsaXQta2V5Ym9hcmQtZTViZjNmZDg3YTRjXHJcbiAqIG1pZ2h0IGJlIGJldHRlci5cclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZCggeyBcclxuICAgIGtleUxpc3RlbmVyLFxyXG4gICAgdGV4dENyZWF0b3JcclxufSA9IHt9KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0VHJhbnNmb3JtID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBncm91cC5hZGQob2Zmc2V0VHJhbnNmb3JtKTtcclxuXHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgZXZlbnRzLm9uKCdrZXlEb3duJywga2V5TGlzdGVuZXIpO1xyXG4gICAgXHJcbiAgICBjb25zdCBsb3dlckNoYXJzID0gXCIxMjM0NTY3ODkwLT1xd2VydHl1aW9wW11hc2RmZ2hqa2w7JyNcXFxcenhjdmJubSwuLyBcIi5zcGxpdCgnJyk7XHJcbiAgICBsZXQgb2JqZWN0cyA9IGxvd2VyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG93ZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQobG93ZXJLZXlzKTtcclxuXHJcbiAgICBjb25zdCB1cHBlckNoYXJzID0gXCIhXFxcIsKjJCVeJiooKV8rUVdFUlRZVUlPUHt9QVNERkdISktMOkB+fFpYQ1ZCTk08Pj8gXCIuc3BsaXQoJycpO1xyXG4gICAgb2JqZWN0cyA9IHVwcGVyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBwZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIHVwcGVyS2V5cy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHVwcGVyS2V5cyk7XHJcblxyXG4gICAgbGV0IHNoaWZ0ID0gZmFsc2U7XHJcbiAgICBmdW5jdGlvbiBzaGlmdFRvZ2dsZSgpIHtcclxuICAgICAgICBzaGlmdCA9ICFzaGlmdDtcclxuICAgICAgICBsb3dlcktleXMudmlzaWJsZSA9ICFzaGlmdDtcclxuICAgICAgICB1cHBlcktleXMudmlzaWJsZSA9IHNoaWZ0O1xyXG4gICB9XHJcblxyXG4gICBjb25zdCBzcGFjZUJhciA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7IHRleHRDcmVhdG9yLCBjb2x1bW5zOiAxLCByb3dIZWlnaHQ6IDAuMSwgb2JqZWN0czogW1xyXG4gICAgICAge2Z1bmM6ICgpPT5ldmVudHMuZW1pdCgna2V5RG93bicsICcgJyksIHRleHQ6ICdzcGFjZSd9XHJcbiAgICBdfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwYWNlQmFyKTtcclxuICAgIHZhciB5ID0gc3BhY2VCYXIucG9zaXRpb24ueSA9IC0wLjUgKiAobG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nKTtcclxuICAgIFxyXG4gICAgb2JqZWN0cyA9IFtcclxuICAgICAgICB7IHRleHQ6IFwic2hpZnRcIiwgZnVuYzogc2hpZnRUb2dnbGUgfSxcclxuICAgICAgICB7IHRleHQ6IFwiYmFja3NwYWNlXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcYicpIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImVudGVyXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcbicpIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBzcGVjaWFsS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDMsIHJvd0hlaWdodDogMC4xfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwZWNpYWxLZXlzKTtcclxuICAgIHNwZWNpYWxLZXlzLnBvc2l0aW9uLnkgPSB5LTAuNSAqIChzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZyk7XHJcbiAgICBncm91cC5zcGFjaW5nID0gbG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZztcclxuICAgIC8vdGhpcyBsb29rcyByaWdodCwgbXVzdCBhZG1pdCBJIGhhdmVuJ3QgdGhvdWdodCB0aHJvdWdoIGV4YWN0bHkgd2h5IGl0IHNob3VsZCBiZS5cclxuICAgIG9mZnNldFRyYW5zZm9ybS5wb3NpdGlvbi55ID0gc3BlY2lhbEtleXMuc3BhY2luZztcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdoaXRzY2FuJywge1xyXG4gICAgICAgIGdldDogKCkgPT4gW1xyXG4gICAgICAgICAgICBzcGVjaWFsS2V5cy5oaXRzY2FuLCBzcGFjZUJhci5oaXRzY2FuLCBzaGlmdCA/IHVwcGVyS2V5cy5oaXRzY2FuIDogbG93ZXJLZXlzLmhpdHNjYW5cclxuICAgICAgICBdLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSlcclxuICAgIH0pO1xyXG5cclxuICAgIHNwYWNlQmFyLmZvbGRlciA9IHVwcGVyS2V5cy5mb2xkZXIgPSBsb3dlcktleXMuZm9sZGVyID0gc3BlY2lhbEtleXMuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gKGlucHV0cykgPT4ge1xyXG4gICAgICAgIHNwZWNpYWxLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBsb3dlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHNwYWNlQmFyLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICB1cHBlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWxpZ25MZWZ0KCBvYmogKXtcclxuICBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuTWVzaCApe1xyXG4gICAgb2JqLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4LnggLSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmouZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZWxzZSBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkgKXtcclxuICAgIG9iai5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gIGNvbnN0IG1hdGVyaWFsID0gdW5pcXVlTWF0ZXJpYWwgPyBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4ZmZmZmZmfSkgOiBTaGFyZWRNYXRlcmlhbHMuUEFORUw7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApLCBtYXRlcmlhbCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgaWYoIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuXHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxuXHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiByZXNpemVQYW5lbChwYW5lbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgpIHtcclxuICBwYW5lbC5nZW9tZXRyeS5zY2FsZSh3aWR0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGgsIGhlaWdodC9wYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0LCBkZXB0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGgpO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgY29sb3IgKXtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENPTlRST0xMRVJfSURfV0lEVEgsIGhlaWdodCwgQ09OVFJPTExFUl9JRF9ERVBUSCApLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIENPTlRST0xMRVJfSURfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIGNvbG9yICk7XHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRG93bkFycm93KCl7XHJcbiAgY29uc3QgdyA9IDAuMDA5NjtcclxuICBjb25zdCBoID0gMC4wMTY7XHJcbiAgY29uc3Qgc2ggPSBuZXcgVEhSRUUuU2hhcGUoKTtcclxuICBzaC5tb3ZlVG8oMCwwKTtcclxuICBzaC5saW5lVG8oLXcsaCk7XHJcbiAgc2gubGluZVRvKHcsaCk7XHJcbiAgc2gubGluZVRvKDAsMCk7XHJcblxyXG4gIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KCBzaCApO1xyXG4gIGdlby50cmFuc2xhdGUoIDAsIC1oICogMC41LCAwICk7XHJcblxyXG4gIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgUEFORUxfSEVJR0hUID0gMC4wODtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1NQQUNJTkcgPSAwOy8vLjAwMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX01BUkdJTiA9IDAuMDE1O1xyXG5leHBvcnQgY29uc3QgUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gPSAwLjA2O1xyXG5leHBvcnQgY29uc3QgUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9XSURUSCA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RFUFRIID0gMC4wMDE7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX1dJRFRIID0gMS4wMjY7XHJcbmV4cG9ydCBjb25zdCBTVUJGT0xERVJfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfSEVJR0hUID0gMC4wOTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9HUkFCX0hFSUdIVCA9IDAuMDUxMjtcclxuZXhwb3J0IGNvbnN0IEJPUkRFUl9USElDS05FU1MgPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfU0laRSA9IDAuMDU7XHJcbmV4cG9ydCBjb25zdCBURVhUX1NDQUxFID0gMC4wMDAyNDtcclxuZXhwb3J0IGNvbnN0IEdSSURfQlVUVE9OX01BUkdJTiA9IDAuMDE7IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvbkdyaXBwZWQnLCBoYW5kbGVPbkdyaXAgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VHcmlwJywgaGFuZGxlT25HcmlwUmVsZWFzZSApO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgbGV0IG9sZFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBsZXQgb2xkUm90YXRpb24gPSBuZXcgVEhSRUUuRXVsZXIoKTtcclxuXHJcbiAgY29uc3Qgcm90YXRpb25Hcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHJvdGF0aW9uR3JvdXAuc2NhbGUuc2V0KCAwLjMsIDAuMywgMC4zICk7XHJcbiAgcm90YXRpb25Hcm91cC5wb3NpdGlvbi5zZXQoIC0wLjAxNSwgMC4wMTUsIDAuMCApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwKCBwICl7XHJcblxyXG4gICAgY29uc3QgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9sZFBvc2l0aW9uLmNvcHkoIGZvbGRlci5wb3NpdGlvbiApO1xyXG4gICAgb2xkUm90YXRpb24uY29weSggZm9sZGVyLnJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24ueCA9IC1NYXRoLlBJICogMC41O1xyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG5cclxuICAgIHJvdGF0aW9uR3JvdXAuYWRkKCBmb2xkZXIgKTtcclxuXHJcbiAgICBpbnB1dE9iamVjdC5hZGQoIHJvdGF0aW9uR3JvdXAgKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGlubmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcFJlbGVhc2UoIHsgaW5wdXRPYmplY3QsIGlucHV0IH09e30gKXtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoIG9sZFBvc2l0aW9uICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uY29weSggb2xkUm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGluUmVsZWFzZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiLyoqXHJcbiAqIFBKVDogVGhpcyBpcyBhIHZhcmlhdGlvbiBvbiBzZGZzaGFkZXIgZnJvbSBibWZvbnQsIHdoaWNoIHNob3VsZCBKdXN0IFdvcmsgd2l0aCBsb2dhcml0aG1pYyBkZXB0aCBidWZmZXJzLlxyXG4gKiBJdCBzaG91bGQgYWxzbyBhbGxvdyBzb21lIG90aGVyIGFzcGVjdHMgb2YgVEhSRUUgcmVuZGVyaW5nIHRvIGJlIGluY29ycG9yYXRlZCwgbGlrZSBmb2csIGNsaXBwaW5nIHBsYW5lcy4uLlxyXG4gKiBFbnZpcm9ubWVudCBtYXBzIGFuZCB2YXJpb3VzIG90aGVyIGJpdHMgZnJvbSBNZXNoQmFzaWNNYXRlcmlhbCBhcmUgcmVtb3ZlZC5cclxuICogQXQgdGltZSBvZiB3cml0aW5nLCB0aGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MsIGFuZCBzb21ld2hhdCBtb3JlIGJsb2F0ZWQgdGhhbiBpdCBuZWVkcyB0byBiZS5cclxuICogVGhlIHNoYWRlciBjb2RlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBTaGFkZXJNYXRlcmlhbCByYXRoZXIgdGhhbiBSYXdTaGFkZXJNYXRlcmlhbC5cclxuICovXHJcbi8vIGltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XHJcblxyXG4vKipcclxuICogc3RhcnRpbmcgZnJvbSBUSFJFRSBtZXNoYmFzaWMgc2hhZGVycywgcHJ1bmluZyAvIG1vZGlmeWluZy4uLlxyXG4gKi9cclxuY29uc3QgbWVzaGJhc2ljX3ZlcnQgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XHJcblxyXG4vLyB2U2NhbGUgbm90IG5lZWRlZCBpZiB3ZSBhc3N1bWUgc3RhbmRhcmQgZGVyaXZhdGVzIGF2YWlsYWJsZSwgYXMgdGhleSBhcmUgaW4gV2ViZ2wyIFxyXG4vLyB2YXJ5aW5nIGZsb2F0IHZTY2FsZTtcclxuIC8vIFRoaXMgaXMgZGVmaW5lZCBpbiBsYXlvdXQuanMgKGFuZCB3YXMgb2JzZXJ2ZWQgbG9va2luZyBhdCB0aHJlZSBoZWlyYWNoeSBtYXRyaWNlcylcclxuIC8vICNkZWZpbmUgVEVYVF9TQ0FMRSAke0xheW91dC5URVhUX1NDQUxFfVxyXG52b2lkIG1haW4oKSB7XHJcbiAgXHJcbiAgLy8gdlNjYWxlID0gcG93KGFicyhkZXRlcm1pbmFudChtYXQzKG1vZGVsVmlld01hdHJpeCkpKSwgLTAuMzMzMzMpICogVEVYVF9TQ0FMRTtcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG4vLyB2YXJ5aW5nIGZsb2F0IHZTY2FsZTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLlxyXG4gICAgLy8gXHJcbiAgICAvLyNpZmRlZiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXNcclxuICAgICAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgLy8gI2Vsc2VcclxuICAgIC8vICAgICBmbG9hdCBhZndpZHRoID0gKDEuMCAvIDMyLjApICogKDEuNDE0MjEzNTYyMzczMDk1MSAvICgyLjAgKiBnbF9GcmFnQ29vcmQudykpO1xyXG4gICAgLy8gICAgIGFmd2lkdGggKj0gdlNjYWxlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XHJcbn1cclxuLy8vL1xyXG5cclxudm9pZCBtYWluKCkge1xyXG5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxyXG5cclxuICAgIC8vL1xyXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xyXG4gICAgXHJcbiAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKG1hcCwgdlV2KTtcclxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcclxuICAgIGlmIChnbF9GcmFnQ29sb3IuYSA8IDAuMDAwMSkgZGlzY2FyZDtcclxuICAgIC8vL1xyXG5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XHJcbiAgICAvL1hYWDogYmlnIGNodW5rIHJlbW92ZWQgZnJvbSBvcmlnaW5hbCBtZXNoYmFzaWNfZnJhZyBoZXJlLlxyXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cclxufVxyXG5gO1xyXG5cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlU0RGU2hhZGVyIChvcHQpIHtcclxuICBvcHQgPSBvcHQgfHwge307XHJcbiAgdmFyIG9wYWNpdHkgPSB0eXBlb2Ygb3B0Lm9wYWNpdHkgPT09ICdudW1iZXInID8gb3B0Lm9wYWNpdHkgOiAxO1xyXG4gIC8vLy0tIGhhcmRjb2RlZCBpbiBzaGFkZXIgY29kZSwgZ3VpdnIgbmV2ZXIgcGFzc2VkIHRoZXNlIGluIG9wdCAtLVxyXG4gIC8vdmFyIGFscGhhVGVzdCA9IHR5cGVvZiBvcHQuYWxwaGFUZXN0ID09PSAnbnVtYmVyJyA/IG9wdC5hbHBoYVRlc3QgOiAwLjAwMDFcclxuICAvL3ZhciBwcmVjaXNpb24gPSBvcHQucHJlY2lzaW9uIHx8ICdoaWdocCdcclxuICB2YXIgY29sb3IgPSBvcHQuY29sb3I7XHJcbiAgdmFyIG1hcCA9IG9wdC5tYXA7XHJcbiAgXHJcbiAgb3B0LmV4dGVuc2lvbnMgPSBvcHQuZXh0ZW5zaW9ucyB8fCB7fTtcclxuICBvcHQuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcyA9IHRydWU7IC8vbmIsIGZhbHNlIGRlZmF1bHRzIGZvciBmcmFnRGVwdGgsIGRyYXdCdWZmZXJzLCBzaGFkZXJUZXh0dXJlTE9EIHdpbGwgbm8gbG9uZ2VyIGJlIHRoZXJlLlxyXG4gIG9wdC5uYW1lID0gXCJTREYgdGV4dCBtYXRlcmlhbFwiO1xyXG5cclxuICAvLyByZW1vdmUgdG8gc2F0aXNmeSByNzNcclxuICBkZWxldGUgb3B0Lm1hcDtcclxuICBkZWxldGUgb3B0LmNvbG9yO1xyXG4gIGRlbGV0ZSBvcHQucHJlY2lzaW9uO1xyXG4gIGRlbGV0ZSBvcHQub3BhY2l0eTtcclxuXHJcbiAgcmV0dXJuIGFzc2lnbih7XHJcbiAgICB1bmlmb3Jtczoge1xyXG4gICAgICBvcGFjaXR5OiB7IHR5cGU6ICdmJywgdmFsdWU6IG9wYWNpdHkgfSxcclxuICAgICAgbWFwOiB7IHR5cGU6ICd0JywgdmFsdWU6IG1hcCB8fCBuZXcgVEhSRUUuVGV4dHVyZSgpIH0sXHJcbiAgICAgIGNvbG9yOiB7IHR5cGU6ICdjJywgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcihjb2xvcikgfVxyXG4gICAgfSxcclxuICAgIHZlcnRleFNoYWRlcjogbWVzaGJhc2ljX3ZlcnQsXHJcbiAgICBmcmFnbWVudFNoYWRlcjogbWVzaGJhc2ljX2ZyYWdcclxuICB9LCBvcHQpO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgU0RGU2hhZGVyIGZyb20gJy4vc2Rmc2hhZGVyX2xvZ2RlcHRoJztcclxuaW1wb3J0IGNyZWF0ZUdlb21ldHJ5IGZyb20gJ3RocmVlLWJtZm9udC10ZXh0JztcclxuaW1wb3J0IHBhcnNlQVNDSUkgZnJvbSAncGFyc2UtYm1mb250LWFzY2lpJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmltcG9ydCAqIGFzIEZvbnQgZnJvbSAnLi9mb250JztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXRlcmlhbCggY29sb3IgKXtcclxuXHJcbiAgY29uc3QgaW1hZ2UgPSBGb250LmltYWdlKCk7XHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKGltYWdlKTsgdGV4dHVyZS5uYW1lID0gJ3NkZkZvbnRUZXh0dXJlJ1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIC8vTkI6Ojogc29tZXdoYXQgZXhwZXJpbWVudGFsIHJlcGxhY2VtZW50IG9mIFJhd1NoYWRlciBjb2RlIGZyb20gYm1mb250IHdpdGggdmFyaWF0aW9uIG9mIE1lc2hCYXNpYyBzaGFkZXJcclxuICAvL3RoaXMgc2hvdWxkIGFsbG93IGZvciBsb2dkZXB0aCwgZm9nIGlzIGFsc28gYW50aWNpcGF0ZWQgdG8gd29yayByZWFzb25hYmx5IHdlbGwuLi4gXHJcbiAgLy90b25lbWFwcGluZyBldGMgbWF5IGNvbmNlaXZhYmx5IGJlIGltcHJvdmVkLi4uIFlNTVYuXHJcbiAgbGV0IG1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKFNERlNoYWRlcih7XHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBjb2xvcjogY29sb3IsXHJcbiAgICBtYXA6IHRleHR1cmUsXHJcbiAgICB0eXBlOiAnU0RGIFRleHQnXHJcbiAgfSkpO1xyXG4gIHJldHVybiBtYXRlcmlhbDtcclxufVxyXG5cclxuY29uc3QgdGV4dFNjYWxlID0gTGF5b3V0LlRFWFRfU0NBTEU7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRvcigpe1xyXG5cclxuICBjb25zdCBmb250ID0gcGFyc2VBU0NJSSggRm9udC5mbnQoKSApO1xyXG5cclxuICBjb25zdCBjb2xvck1hdGVyaWFscyA9IHt9O1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVUZXh0KCBzdHIsIGZvbnQsIGNvbG9yID0gMHhmZmZmZmYsIHNjYWxlID0gMS4wLCB3aWR0aCwgaGVpZ2h0ICl7XHJcblxyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBjcmVhdGVHZW9tZXRyeSh7XHJcbiAgICAgIHRleHQ6IHN0cixcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IHdpZHRoLFxyXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcclxuICAgICAgZmxpcFk6IHRydWUsXHJcbiAgICAgIGZvbnRcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICBjb25zdCBsYXlvdXQgPSBnZW9tZXRyeS5sYXlvdXQ7XHJcblxyXG4gICAgbGV0IG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF07XHJcbiAgICBpZiggbWF0ZXJpYWwgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdID0gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseSggbmV3IFRIUkVFLlZlY3RvcjMoMSwtMSwxKSApO1xyXG5cclxuICAgIGNvbnN0IGZpbmFsU2NhbGUgPSBzY2FsZSAqIHRleHRTY2FsZTtcclxuXHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5U2NhbGFyKCBmaW5hbFNjYWxlICk7XHJcblxyXG4gICAgbWVzaC5wb3NpdGlvbi55ID0gbGF5b3V0LmhlaWdodCAqIDAuNSAqIGZpbmFsU2NhbGU7XHJcblxyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBzdHIsIHsgY29sb3I9MHhmZmZmZmYsIHNjYWxlPTEuMCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gICAgbGV0IG1lc2ggPSBjcmVhdGVUZXh0KCBzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSApO1xyXG4gICAgZ3JvdXAuYWRkKCBtZXNoICk7XHJcbiAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIGdyb3VwLmNvbXB1dGVXaWR0aCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC53aWR0aCAqIHNjYWxlICogTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICB9XHJcbiAgICBncm91cC5jb21wdXRlSGVpZ2h0ID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LmhlaWdodCAqIHNjYWxlICogTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuY29uc3RyYWluQm91bmRzID0gKHcsIGgpID0+IHtcclxuICAgICAgZ3JvdXAucmVtb3ZlKG1lc2gpO1xyXG4gICAgICBjb25zdCBzID0gTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIGNvbnN0IGhGYWN0b3IgPSBtZXNoLmdlb21ldHJ5LmxheW91dC5oZWlnaHQqcy9oO1xyXG4gICAgICBpZiAoaEZhY3RvciA+IDEpIHtcclxuICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIDAuOTUqIHN0ci5sZW5ndGgvaEZhY3RvcikgKyAnLi4uJztcclxuICAgICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICB9XHJcbiAgICAgIGdyb3VwLmFkZChtZXNoKTtcclxuICAgICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlTGFiZWwgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIG1lc2guZ2VvbWV0cnkudXBkYXRlKCBzdHIgKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiBUSFJFRS5WZXJ0ZXhDb2xvcnMgfSApO1xyXG5leHBvcnQgY29uc3QgTE9DQVRPUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG5leHBvcnQgY29uc3QgRk9MREVSID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDAwMDAwMCB9ICk7XHJcbmV4cG9ydCBjb25zdCBUT09MVElQID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDIwNTA4MCwgdHJhbnNwYXJlbnQ6IGZhbHNlLCBvcGFjaXR5OiAwLjggfSApO1xyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTbGlkZXIoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gMC4wLFxyXG4gIG1pbiA9IDAuMCwgbWF4ID0gMS4wLFxyXG4gIHN0ZXAgPSAwLjEsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaW5pdGlhbEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGFscGhhOiAxLjAsXHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgc3RlcDogc3RlcCxcclxuICAgIHVzZVN0ZXA6IHRydWUsXHJcbiAgICBwcmVjaXNpb246IDEsXHJcbiAgICBsaXN0ZW46IGZhbHNlLFxyXG4gICAgbWluOiBtaW4sXHJcbiAgICBtYXg6IG1heCxcclxuICAgIG9uQ2hhbmdlZENCOiB1bmRlZmluZWQsXHJcbiAgICBvbkZpbmlzaGVkQ2hhbmdlOiB1bmRlZmluZWQsXHJcbiAgICBwcmVzc2luZzogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIHN0YXRlLnN0ZXAgPSBnZXRJbXBsaWVkU3RlcCggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKTtcclxuICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInNsaWRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIGdyb3VwLnNldEhlaWdodCA9IGhlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZSggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgICBjb25zdCBTTElERVJfV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9ERVBUSCA9IGRlcHRoO1xyXG5cclxuICAgIC8vICBmaWxsZWQgdm9sdW1lXHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBTTElERVJfV0lEVEgsIFNMSURFUl9IRUlHSFQsIFNMSURFUl9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoU0xJREVSX1dJRFRIKjAuNSwwLDApO1xyXG4gICAgLy8gTGF5b3V0LmFsaWduTGVmdCggcmVjdCApO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5uYW1lID0gJ2hpdHNjYW5Wb2x1bWUnO1xyXG5cclxuICAgIC8vICBzbGlkZXJCRyB2b2x1bWVcclxuICAgIGNvbnN0IHNsaWRlckJHID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggc2xpZGVyQkcuZ2VvbWV0cnksIENvbG9ycy5TTElERVJfQkcgKTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEggKyBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG5cclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5ERUZBVUxUX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGZpbGxlZFZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgY29uc3QgZW5kTG9jYXRvciA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIDAuMDUsIDAuMDUsIDAuMDUsIDEsIDEsIDEgKSwgU2hhcmVkTWF0ZXJpYWxzLkxPQ0FUT1IgKTtcclxuICAgIGVuZExvY2F0b3IucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSDtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBlbmRMb2NhdG9yICk7XHJcbiAgICBlbmRMb2NhdG9yLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB2YWx1ZUxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gKyB3aWR0aCAqIDAuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoKjIuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzMjU7XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9TTElERVIgKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBwYW5lbC5uYW1lID0gJ3BhbmVsJztcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBzbGlkZXJCRywgdmFsdWVMYWJlbCwgY29udHJvbGxlcklEICk7XHJcblxyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApXHJcblxyXG4gICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgIHVwZGF0ZVNsaWRlcigpO1xyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbHVlTGFiZWwoIHZhbHVlICl7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggcm91bmRUb0RlY2ltYWwoIHN0YXRlLnZhbHVlLCBzdGF0ZS5wcmVjaXNpb24gKS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICAgIGlmKCBzdGF0ZS5wcmVzc2luZyApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLklOVEVSQUNUSU9OX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU2xpZGVyKCl7XHJcbiAgICAgIGZpbGxlZFZvbHVtZS5zY2FsZS54ID1cclxuICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgIE1hdGgubWF4KCBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICkgKiB3aWR0aCwgMC4wMDAwMDEgKSxcclxuICAgICAgICAgIHdpZHRoXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVPYmplY3QoIHZhbHVlICl7XHJcbiAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTdGF0ZUZyb21BbHBoYSggYWxwaGEgKXtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICk7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tQWxwaGEoIHN0YXRlLmFscGhhLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gZ2V0U3RlcHBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUuc3RlcCApO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0Q2xhbXBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKXtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21PYmplY3QoKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRnJvbU9iamVjdCgpe1xyXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICAgIHN0YXRlLm9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAuc3RlcCA9IGZ1bmN0aW9uKCBzdGVwICl7XHJcbiAgICAgIHN0YXRlLnN0ZXAgPSBzdGVwO1xyXG4gICAgICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApXHJcbiAgICAgIHN0YXRlLnVzZVN0ZXAgPSB0cnVlO1xyXG5cclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlUHJlc3MgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlSG9sZCApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZVJlbGVhc2UgKTtcclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVQcmVzcyggcCApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlSG9sZCggeyBwb2ludCB9ID0ge30gKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBmaWxsZWRWb2x1bWUudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgZW5kTG9jYXRvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG5cclxuICAgICAgY29uc3QgYSA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBmaWxsZWRWb2x1bWUubWF0cml4V29ybGQgKTtcclxuICAgICAgY29uc3QgYiA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBlbmRMb2NhdG9yLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHthLGJ9ICkgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICB1cGRhdGVPYmplY3QoIHN0YXRlLnZhbHVlICk7XHJcblxyXG4gICAgICBpZiggcHJldmlvdXNWYWx1ZSAhPT0gc3RhdGUudmFsdWUgJiYgc3RhdGUub25DaGFuZ2VkQ0IgKXtcclxuICAgICAgICBzdGF0ZS5vbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVJlbGVhc2UoKXtcclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgICB1cGRhdGVTbGlkZXIoKTtcclxuICAgICAgfVxyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWluID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWluID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWF4ID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWF4ID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfSAvLyAvc2V0SGVpZ2h0XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KCBpbml0aWFsSGVpZ2h0ICk7XHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCB0YSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRiID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdFRvQSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IGFUb0IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHNlZ21lbnQgKXtcclxuICB0YS5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG4gIHRiLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgY29uc3QgcHJvamVjdGVkID0gdGIucHJvamVjdE9uVmVjdG9yKCB0YSApO1xyXG5cclxuICB0VG9BLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgYVRvQi5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApLm5vcm1hbGl6ZSgpO1xyXG5cclxuICBjb25zdCBzaWRlID0gdFRvQS5ub3JtYWxpemUoKS5kb3QoIGFUb0IgKSA+PSAwID8gMSA6IC0xO1xyXG5cclxuICBjb25zdCBsZW5ndGggPSBzZWdtZW50LmEuZGlzdGFuY2VUbyggc2VnbWVudC5iICkgKiBzaWRlO1xyXG5cclxuICBsZXQgYWxwaGEgPSBwcm9qZWN0ZWQubGVuZ3RoKCkgLyBsZW5ndGg7XHJcbiAgaWYoIGFscGhhID4gMS4wICl7XHJcbiAgICBhbHBoYSA9IDEuMDtcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMC4wICl7XHJcbiAgICBhbHBoYSA9IDAuMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsZXJwKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIHJldHVybiAoMS12YWx1ZSkqbWluICsgdmFsdWUqbWF4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXBfcmFuZ2UodmFsdWUsIGxvdzEsIGhpZ2gxLCBsb3cyLCBoaWdoMikge1xyXG4gICAgcmV0dXJuIGxvdzIgKyAoaGlnaDIgLSBsb3cyKSAqICh2YWx1ZSAtIGxvdzEpIC8gKGhpZ2gxIC0gbG93MSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRBbHBoYSggYWxwaGEgKXtcclxuICBpZiggYWxwaGEgPiAxICl7XHJcbiAgICByZXR1cm4gMVxyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwICl7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIGlmKCB2YWx1ZSA8IG1pbiApe1xyXG4gICAgcmV0dXJuIG1pbjtcclxuICB9XHJcbiAgaWYoIHZhbHVlID4gbWF4ICl7XHJcbiAgICByZXR1cm4gbWF4O1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEltcGxpZWRTdGVwKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICAvL1BKVDogd2hhdCB3b3VsZCB3ZSBsaWtlIHN0ZXAgdG8gbG9vayBsaWtlP1xyXG4gIC8vU29tZXRoaW5nIHRoYXQgaGFzIGFib3V0IHRoZSBvcmRlciBvZiBtYWduaXR1ZGUsIGFuZCBsb29rcyBuaWNlIGluIGJhc2UgMTA/XHJcbiAgY29uc3QgciA9IG1heC1taW47XHJcbiAgbGV0IHN0ZXAgPSByLzEwMDsgLy93aGF0IGlzIHRoZSByYXRpbyBvZiBudW1iZXIgb2YgZGVjaW1hbHMgdG8gb3JkZXIgb2YgbWFnbml0dWRlP1xyXG4gIFxyXG4gIHJldHVybiBzdGVwO1xyXG5cclxuICAvLyBpZiggdmFsdWUgPT09IDAgKXtcclxuICAvLyAgIHJldHVybiAxOyAvLyBXaGF0IGFyZSB3ZSwgcHN5Y2hpY3M/IC8vPDw8PC0tLSBubywgc28gd2Ugc2hvdWxkIGJhc2UgaW1wbGllZFN0ZXAgb24gbWluL21heCwgbm90IHZhbHVlXHJcbiAgLy8gfSBlbHNlIHtcclxuICAvLyAgIC8vIEhleSBEb3VnLCBjaGVjayB0aGlzIG91dC5cclxuICAvLyAgIHJldHVybiBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihNYXRoLmxvZyhNYXRoLmFicyh2YWx1ZSkpL01hdGguTE4xMCkpLzEwO1xyXG4gIC8vIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tQWxwaGEoIGFscGhhLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIGFscGhhLCAwLjAsIDEuMCwgbWluLCBtYXggKVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBbHBoYUZyb21WYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggdmFsdWUsIG1pbiwgbWF4LCAwLjAsIDEuMCApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGVwcGVkVmFsdWUoIHZhbHVlLCBzdGVwICl7XHJcbiAgaWYoIHZhbHVlICUgc3RlcCAhPSAwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZCggdmFsdWUgLyBzdGVwICkgKiBzdGVwO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG51bURlY2ltYWxzKHgpIHtcclxuICB4ID0geC50b1N0cmluZygpO1xyXG4gIGlmICh4LmluZGV4T2YoJy4nKSA+IC0xKSB7XHJcbiAgICByZXR1cm4geC5sZW5ndGggLSB4LmluZGV4T2YoJy4nKSAtIDE7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcm91bmRUb0RlY2ltYWwodmFsdWUsIGRlY2ltYWxzKSB7XHJcbiAgaWYgKE1hdGguYWJzKHZhbHVlKSA8IDAuMDEgJiYgdmFsdWUgIT09IDApIHJldHVybiB2YWx1ZS50b0V4cG9uZW50aWFsKDMpO1xyXG4gIGNvbnN0IHRlblRvID0gTWF0aC5wb3coMTAsIGRlY2ltYWxzKTtcclxuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIHRlblRvKSAvIHRlblRvO1xyXG59IiwiLyoqXHJcbiAqIFdoZW4gdGhlIHRleHRib3ggaXMgZm9jdXNzZWQsICBhIGtleWJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLi4uXHJcbiAqIFRoZXJlIHNob3VsZCBhbHNvIGJlIGEgd2F5IG9mIGRpc21pc3NpbmcgaXQgbGF0ZXIuICBJdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRvXHJcbiAqIHByZXZlbnQgbXVsdGlwbGUga2V5Ym9hcmRzIGJlaW5nIG1hZGUgc2ltdWx0YW5lb3VzbHk/XHJcbiAqIFxyXG4gKiBJbiBvcmRlciB0byBtYWtlIGl0IGFwcGVhciwgaXQgY2FuIGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgdGhlIHRleGJveCBub2RlIGl0c2VsZi4uLlxyXG4gKiBUaGlzJ2xsIG1lYW4gdGhhdCBpdCBnZXRzIGRyYWdnZWQgYXJvdW5kIGJ5IHRoZSBwYXJlbnQgR1VJIGFzIGl0IG1vdmVzLi4uLlxyXG4gKiBNYWtlcyBmb3IgcmVsYXRpdmVseSBjbGVhbiwgc2ltcGxlIGltcGxlbWVudGF0aW9uIGF0IGxlYXN0LlxyXG4gKiBBdCB0aGUgbW9tZW50LCBrZXlib2FyZCBwb3NpdGlvbmluZyBpcyBtZXNzZWQgdXAgYnkgdGhpcyBhcnJhbmdlbWVudC5cclxuICogUmVtb3ZpbmcgZ3JhYmJlciBtYWtlcyBpdCBsZXNzIGxpa2VseSBhIHVzZXIgd2lsbCBkbyB0aGlzLCBidXQgbWlnaHQgYmUgd29ydGggZml4aW5nIHRoZSBiYXNpYyBidWcuXHJcbiAqIFxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIEdVSSBmcm9tICcuL2luZGV4JztcclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRCb3goe1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSkge1xyXG4gIC8vIGJpZyBvbGQgY29weSAvIHBhc3RlIGZyb20gYnV0dG9uLmpzLiBNaWdodCB0cnkgdG8gZmFjdG9yIG91dCBzb21lIG9mIHRoaXMgY29tbW9uIGNvZGUuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGJveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCIvKlxyXG4gKlx0QGF1dGhvciB6ejg1IC8gaHR0cDovL3R3aXR0ZXIuY29tL2JsdXJzcGxpbmUgLyBodHRwOi8vd3d3LmxhYjRnYW1lcy5uZXQveno4NS9ibG9nXHJcbiAqXHRAYXV0aG9yIGNlbnRlcmlvbndhcmUgLyBodHRwOi8vd3d3LmNlbnRlcmlvbndhcmUuY29tXHJcbiAqXHJcbiAqXHRTdWJkaXZpc2lvbiBHZW9tZXRyeSBNb2RpZmllclxyXG4gKlx0XHR1c2luZyBMb29wIFN1YmRpdmlzaW9uIFNjaGVtZVxyXG4gKlxyXG4gKlx0UmVmZXJlbmNlczpcclxuICpcdFx0aHR0cDovL2dyYXBoaWNzLnN0YW5mb3JkLmVkdS9+bWRmaXNoZXIvc3ViZGl2aXNpb24uaHRtbFxyXG4gKlx0XHRodHRwOi8vd3d3LmhvbG1lczNkLm5ldC9ncmFwaGljcy9zdWJkaXZpc2lvbi9cclxuICpcdFx0aHR0cDovL3d3dy5jcy5ydXRnZXJzLmVkdS9+ZGVjYXJsby9yZWFkaW5ncy9zdWJkaXYtc2cwMGMucGRmXHJcbiAqXHJcbiAqXHRLbm93biBJc3N1ZXM6XHJcbiAqXHRcdC0gY3VycmVudGx5IGRvZXNuJ3QgaGFuZGxlIFwiU2hhcnAgRWRnZXNcIlxyXG4gKi9cclxuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIgPSBmdW5jdGlvbiAoIHN1YmRpdmlzaW9ucyApIHtcclxuXHJcblx0dGhpcy5zdWJkaXZpc2lvbnMgPSAoIHN1YmRpdmlzaW9ucyA9PT0gdW5kZWZpbmVkICkgPyAxIDogc3ViZGl2aXNpb25zO1xyXG5cclxufTtcclxuXHJcbi8vIEFwcGxpZXMgdGhlIFwibW9kaWZ5XCIgcGF0dGVyblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5tb2RpZnkgPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkge1xyXG5cclxuXHR2YXIgcmVwZWF0cyA9IHRoaXMuc3ViZGl2aXNpb25zO1xyXG5cclxuXHR3aGlsZSAoIHJlcGVhdHMgLS0gPiAwICkge1xyXG5cclxuXHRcdHRoaXMuc21vb3RoKCBnZW9tZXRyeSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGdlb21ldHJ5LmNvbXB1dGVGYWNlTm9ybWFscygpO1xyXG5cdGdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XHJcblxyXG59O1xyXG5cclxuKCBmdW5jdGlvbigpIHtcclxuXHJcblx0Ly8gU29tZSBjb25zdGFudHNcclxuXHR2YXIgV0FSTklOR1MgPSAhIHRydWU7IC8vIFNldCB0byB0cnVlIGZvciBkZXZlbG9wbWVudFxyXG5cdHZhciBBQkMgPSBbICdhJywgJ2InLCAnYycgXTtcclxuXHJcblxyXG5cdGZ1bmN0aW9uIGdldEVkZ2UoIGEsIGIsIG1hcCApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHRyZXR1cm4gbWFwWyBrZXkgXTtcclxuXHJcblx0fVxyXG5cclxuXHJcblx0ZnVuY3Rpb24gcHJvY2Vzc0VkZ2UoIGEsIGIsIHZlcnRpY2VzLCBtYXAsIGZhY2UsIG1ldGFWZXJ0aWNlcyApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHR2YXIgZWRnZTtcclxuXHJcblx0XHRpZiAoIGtleSBpbiBtYXAgKSB7XHJcblxyXG5cdFx0XHRlZGdlID0gbWFwWyBrZXkgXTtcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0dmFyIHZlcnRleEEgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhBIF07XHJcblx0XHRcdHZhciB2ZXJ0ZXhCID0gdmVydGljZXNbIHZlcnRleEluZGV4QiBdO1xyXG5cclxuXHRcdFx0ZWRnZSA9IHtcclxuXHJcblx0XHRcdFx0YTogdmVydGV4QSwgLy8gcG9pbnRlciByZWZlcmVuY2VcclxuXHRcdFx0XHRiOiB2ZXJ0ZXhCLFxyXG5cdFx0XHRcdG5ld0VkZ2U6IG51bGwsXHJcblx0XHRcdFx0Ly8gYUluZGV4OiBhLCAvLyBudW1iZXJlZCByZWZlcmVuY2VcclxuXHRcdFx0XHQvLyBiSW5kZXg6IGIsXHJcblx0XHRcdFx0ZmFjZXM6IFtdIC8vIHBvaW50ZXJzIHRvIGZhY2VcclxuXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRtYXBbIGtleSBdID0gZWRnZTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0ZWRnZS5mYWNlcy5wdXNoKCBmYWNlICk7XHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzWyBhIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cdFx0bWV0YVZlcnRpY2VzWyBiIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBnZW5lcmF0ZUxvb2t1cHMoIHZlcnRpY2VzLCBmYWNlcywgbWV0YVZlcnRpY2VzLCBlZGdlcyApIHtcclxuXHJcblx0XHR2YXIgaSwgaWwsIGZhY2UsIGVkZ2U7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gdmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRtZXRhVmVydGljZXNbIGkgXSA9IHsgZWRnZXM6IFtdIH07XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IGZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IGZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5hLCBmYWNlLmIsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmIsIGZhY2UuYywgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYywgZmFjZS5hLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdGYWNlKCBuZXdGYWNlcywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdGYWNlcy5wdXNoKCBuZXcgVEhSRUUuRmFjZTMoIGEsIGIsIGMgKSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG1pZHBvaW50KCBhLCBiICkge1xyXG5cclxuXHRcdHJldHVybiAoIE1hdGguYWJzKCBiIC0gYSApIC8gMiApICsgTWF0aC5taW4oIGEsIGIgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdVdiggbmV3VXZzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld1V2cy5wdXNoKCBbIGEuY2xvbmUoKSwgYi5jbG9uZSgpLCBjLmNsb25lKCkgXSApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cdC8vIFBlcmZvcm1zIG9uZSBpdGVyYXRpb24gb2YgU3ViZGl2aXNpb25cclxuXHRUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5zbW9vdGggPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkgeyByZXR1cm47IC8vIHNqcHQgVEVNUCBUT0RPXHJcblxyXG5cdFx0dmFyIHRtcCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0dmFyIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgb2xkVXZzO1xyXG5cdFx0dmFyIG5ld1ZlcnRpY2VzLCBuZXdGYWNlcywgbmV3VVZzID0gW107XHJcblxyXG5cdFx0dmFyIG4sIGwsIGksIGlsLCBqLCBrO1xyXG5cdFx0dmFyIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXM7XHJcblxyXG5cdFx0Ly8gbmV3IHN0dWZmLlxyXG5cdFx0dmFyIHNvdXJjZUVkZ2VzLCBuZXdFZGdlVmVydGljZXMsIG5ld1NvdXJjZVZlcnRpY2VzO1xyXG5cclxuXHRcdG9sZFZlcnRpY2VzID0gZ2VvbWV0cnkudmVydGljZXM7IC8vIHsgeCwgeSwgen1cclxuXHRcdG9sZEZhY2VzID0gZ2VvbWV0cnkuZmFjZXM7IC8vIHsgYTogb2xkVmVydGV4MSwgYjogb2xkVmVydGV4MiwgYzogb2xkVmVydGV4MyB9XHJcblx0XHRvbGRVdnMgPSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF07XHJcblxyXG5cdFx0dmFyIGhhc1V2cyA9IG9sZFV2cyAhPT0gdW5kZWZpbmVkICYmIG9sZFV2cy5sZW5ndGggPiAwO1xyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKiBTdGVwIDA6IFByZXByb2Nlc3MgR2VvbWV0cnkgdG8gR2VuZXJhdGUgZWRnZXMgTG9va3VwXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzID0gbmV3IEFycmF5KCBvbGRWZXJ0aWNlcy5sZW5ndGggKTtcclxuXHRcdHNvdXJjZUVkZ2VzID0ge307IC8vIEVkZ2UgPT4geyBvbGRWZXJ0ZXgxLCBvbGRWZXJ0ZXgyLCBmYWNlc1tdICB9XHJcblxyXG5cdFx0Z2VuZXJhdGVMb29rdXBzKCBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXMgKTtcclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDEuXHJcblx0XHQgKlx0Rm9yIGVhY2ggZWRnZSwgY3JlYXRlIGEgbmV3IEVkZ2UgVmVydGV4LFxyXG5cdFx0ICpcdHRoZW4gcG9zaXRpb24gaXQuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3RWRnZVZlcnRpY2VzID0gW107XHJcblx0XHR2YXIgb3RoZXIsIGN1cnJlbnRFZGdlLCBuZXdFZGdlLCBmYWNlO1xyXG5cdFx0dmFyIGVkZ2VWZXJ0ZXhXZWlnaHQsIGFkamFjZW50VmVydGV4V2VpZ2h0LCBjb25uZWN0ZWRGYWNlcztcclxuXHJcblx0XHRmb3IgKCBpIGluIHNvdXJjZUVkZ2VzICkge1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UgPSBzb3VyY2VFZGdlc1sgaSBdO1xyXG5cdFx0XHRuZXdFZGdlID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAzIC8gODtcclxuXHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdGNvbm5lY3RlZEZhY2VzID0gY3VycmVudEVkZ2UuZmFjZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgaG93IG1hbnkgbGlua2VkIGZhY2VzLiAyIHNob3VsZCBiZSBjb3JyZWN0LlxyXG5cdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGlmIGxlbmd0aCBpcyBub3QgMiwgaGFuZGxlIGNvbmRpdGlvblxyXG5cdFx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAwLjU7XHJcblx0XHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ1N1YmRpdmlzaW9uIE1vZGlmaWVyOiBOdW1iZXIgb2YgY29ubmVjdGVkIGZhY2VzICE9IDIsIGlzOiAnLCBjb25uZWN0ZWRGYWNlcywgY3VycmVudEVkZ2UgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3RWRnZS5hZGRWZWN0b3JzKCBjdXJyZW50RWRnZS5hLCBjdXJyZW50RWRnZS5iICkubXVsdGlwbHlTY2FsYXIoIGVkZ2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgY29ubmVjdGVkRmFjZXM7IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGZhY2UgPSBjdXJyZW50RWRnZS5mYWNlc1sgaiBdO1xyXG5cclxuXHRcdFx0XHRmb3IgKCBrID0gMDsgayA8IDM7IGsgKysgKSB7XHJcblxyXG5cdFx0XHRcdFx0b3RoZXIgPSBvbGRWZXJ0aWNlc1sgZmFjZVsgQUJDWyBrIF0gXSBdO1xyXG5cdFx0XHRcdFx0aWYgKCBvdGhlciAhPT0gY3VycmVudEVkZ2UuYSAmJiBvdGhlciAhPT0gY3VycmVudEVkZ2UuYiApIGJyZWFrO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGFkamFjZW50VmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld0VkZ2UuYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlLm5ld0VkZ2UgPSBuZXdFZGdlVmVydGljZXMubGVuZ3RoO1xyXG5cdFx0XHRuZXdFZGdlVmVydGljZXMucHVzaCggbmV3RWRnZSApO1xyXG5cclxuXHRcdFx0Ly8gY29uc29sZS5sb2coY3VycmVudEVkZ2UsIG5ld0VkZ2UpO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMi5cclxuXHRcdCAqXHRSZXBvc2l0aW9uIGVhY2ggc291cmNlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdHZhciBiZXRhLCBzb3VyY2VWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQ7XHJcblx0XHR2YXIgY29ubmVjdGluZ0VkZ2UsIGNvbm5lY3RpbmdFZGdlcywgb2xkVmVydGV4LCBuZXdTb3VyY2VWZXJ0ZXg7XHJcblx0XHRuZXdTb3VyY2VWZXJ0aWNlcyA9IFtdO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZFZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0b2xkVmVydGV4ID0gb2xkVmVydGljZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgYWxsIGNvbm5lY3RpbmcgZWRnZXMgKHVzaW5nIGxvb2t1cFRhYmxlKVxyXG5cdFx0XHRjb25uZWN0aW5nRWRnZXMgPSBtZXRhVmVydGljZXNbIGkgXS5lZGdlcztcclxuXHRcdFx0biA9IGNvbm5lY3RpbmdFZGdlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIG4gPT0gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAxNjtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoIG4gPiAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvICggOCAqIG4gKTsgLy8gV2FycmVuJ3MgbW9kaWZpZWQgZm9ybXVsYVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTG9vcCdzIG9yaWdpbmFsIGJldGEgZm9ybXVsYVxyXG5cdFx0XHQvLyBiZXRhID0gMSAvIG4gKiAoIDUvOCAtIE1hdGgucG93KCAzLzggKyAxLzQgKiBNYXRoLmNvcyggMiAqIE1hdGguIFBJIC8gbiApLCAyKSApO1xyXG5cclxuXHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMSAtIG4gKiBiZXRhO1xyXG5cdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gYmV0YTtcclxuXHJcblx0XHRcdGlmICggbiA8PSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzXHJcblx0XHRcdFx0Ly8gY29uc29sZS53YXJuKCdjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzJyk7XHJcblxyXG5cdFx0XHRcdGlmICggbiA9PSAyICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcyIGNvbm5lY3RpbmcgZWRnZXMnLCBjb25uZWN0aW5nRWRnZXMgKTtcclxuXHRcdFx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDMgLyA0O1xyXG5cdFx0XHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0XHRcdC8vIHNvdXJjZVZlcnRleFdlaWdodCA9IDE7XHJcblx0XHRcdFx0XHQvLyBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdvbmx5IDEgY29ubmVjdGluZyBlZGdlJyApO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDAgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzAgY29ubmVjdGluZyBlZGdlcycgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGV4ID0gb2xkVmVydGV4LmNsb25lKCkubXVsdGlwbHlTY2FsYXIoIHNvdXJjZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBuOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRjb25uZWN0aW5nRWRnZSA9IGNvbm5lY3RpbmdFZGdlc1sgaiBdO1xyXG5cdFx0XHRcdG90aGVyID0gY29ubmVjdGluZ0VkZ2UuYSAhPT0gb2xkVmVydGV4ID8gY29ubmVjdGluZ0VkZ2UuYSA6IGNvbm5lY3RpbmdFZGdlLmI7XHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggY29ubmVjdGluZ1ZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXguYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRpY2VzLnB1c2goIG5ld1NvdXJjZVZlcnRleCApO1xyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDMuXHJcblx0XHQgKlx0R2VuZXJhdGUgRmFjZXMgYmV0d2VlbiBzb3VyY2UgdmVydGljZXNcclxuXHRcdCAqXHRhbmQgZWRnZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdWZXJ0aWNlcyA9IG5ld1NvdXJjZVZlcnRpY2VzLmNvbmNhdCggbmV3RWRnZVZlcnRpY2VzICk7XHJcblx0XHR2YXIgc2wgPSBuZXdTb3VyY2VWZXJ0aWNlcy5sZW5ndGgsIGVkZ2UxLCBlZGdlMiwgZWRnZTM7XHJcblx0XHRuZXdGYWNlcyA9IFtdO1xyXG5cclxuXHRcdHZhciB1diwgeDAsIHgxLCB4MjtcclxuXHRcdHZhciB4MyA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDQgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg1ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRGYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBvbGRGYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCB0aGUgMyBuZXcgZWRnZXMgdmVydGV4IG9mIGVhY2ggb2xkIGZhY2VcclxuXHJcblx0XHRcdGVkZ2UxID0gZ2V0RWRnZSggZmFjZS5hLCBmYWNlLmIsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMiA9IGdldEVkZ2UoIGZhY2UuYiwgZmFjZS5jLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTMgPSBnZXRFZGdlKCBmYWNlLmMsIGZhY2UuYSwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBmYWNlcy5cclxuXHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBlZGdlMSwgZWRnZTIsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmEsIGVkZ2UxLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5iLCBlZGdlMiwgZWRnZTEgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYywgZWRnZTMsIGVkZ2UyICk7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBuZXcgdXYnc1xyXG5cclxuXHRcdFx0aWYgKCBoYXNVdnMgKSB7XHJcblxyXG5cdFx0XHRcdHV2ID0gb2xkVXZzWyBpIF07XHJcblxyXG5cdFx0XHRcdHgwID0gdXZbIDAgXTtcclxuXHRcdFx0XHR4MSA9IHV2WyAxIF07XHJcblx0XHRcdFx0eDIgPSB1dlsgMiBdO1xyXG5cclxuXHRcdFx0XHR4My5zZXQoIG1pZHBvaW50KCB4MC54LCB4MS54ICksIG1pZHBvaW50KCB4MC55LCB4MS55ICkgKTtcclxuXHRcdFx0XHR4NC5zZXQoIG1pZHBvaW50KCB4MS54LCB4Mi54ICksIG1pZHBvaW50KCB4MS55LCB4Mi55ICkgKTtcclxuXHRcdFx0XHR4NS5zZXQoIG1pZHBvaW50KCB4MC54LCB4Mi54ICksIG1pZHBvaW50KCB4MC55LCB4Mi55ICkgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDMsIHg0LCB4NSApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgwLCB4MywgeDUgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDEsIHg0LCB4MyApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgyLCB4NSwgeDQgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3ZlcndyaXRlIG9sZCBhcnJheXNcclxuXHRcdGdlb21ldHJ5LnZlcnRpY2VzID0gbmV3VmVydGljZXM7XHJcblx0XHRnZW9tZXRyeS5mYWNlcyA9IG5ld0ZhY2VzO1xyXG5cdFx0aWYgKCBoYXNVdnMgKSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF0gPSBuZXdVVnM7XHJcblxyXG5cdFx0Ly8gY29uc29sZS5sb2coJ2RvbmUnKTtcclxuXHJcblx0fTtcclxuXHJcbn0gKSgpO1xyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgQmFzZS5jYWxsKHRoaXMpXG5cbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIHRoZXNlIGFzIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgc3Vic2VxdWVudFxuICAvLyBjYWxscyB0byB1cGRhdGUoKVxuICB0aGlzLl9vcHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX29wdCwgb3B0KVxuXG4gIGlmICghb3B0LmZvbnQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgYSB7IGZvbnQgfSBpbiBvcHRpb25zJylcbiAgfVxuXG4gIHRoaXMubGF5b3V0ID0gY3JlYXRlTGF5b3V0KG9wdClcblxuICAvLyBnZXQgdmVjMiB0ZXhjb29yZHNcbiAgdmFyIGZsaXBZID0gb3B0LmZsaXBZICE9PSBmYWxzZVxuXG4gIC8vIHRoZSBkZXNpcmVkIEJNRm9udCBkYXRhXG4gIHZhciBmb250ID0gb3B0LmZvbnRcblxuICAvLyBkZXRlcm1pbmUgdGV4dHVyZSBzaXplIGZyb20gZm9udCBmaWxlXG4gIHZhciB0ZXhXaWR0aCA9IGZvbnQuY29tbW9uLnNjYWxlV1xuICB2YXIgdGV4SGVpZ2h0ID0gZm9udC5jb21tb24uc2NhbGVIXG5cbiAgLy8gZ2V0IHZpc2libGUgZ2x5cGhzXG4gIHZhciBnbHlwaHMgPSB0aGlzLmxheW91dC5nbHlwaHMuZmlsdGVyKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgcmV0dXJuIGJpdG1hcC53aWR0aCAqIGJpdG1hcC5oZWlnaHQgPiAwXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB2aXNpYmxlIGdseXBocyBmb3IgY29udmVuaWVuY2VcbiAgdGhpcy52aXNpYmxlR2x5cGhzID0gZ2x5cGhzXG5cbiAgLy8gZ2V0IGNvbW1vbiB2ZXJ0ZXggZGF0YVxuICB2YXIgcG9zaXRpb25zID0gdmVydGljZXMucG9zaXRpb25zKGdseXBocylcbiAgdmFyIHV2cyA9IHZlcnRpY2VzLnV2cyhnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKVxuICB2YXIgaW5kaWNlcyA9IGNyZWF0ZUluZGljZXMoW10sIHtcbiAgICBjbG9ja3dpc2U6IHRydWUsXG4gICAgdHlwZTogJ3VpbnQxNicsXG4gICAgY291bnQ6IGdseXBocy5sZW5ndGhcbiAgfSlcblxuICAvLyB1cGRhdGUgdmVydGV4IGRhdGFcbiAgdGhpcy5zZXRJbmRleChpbmRpY2VzKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9ucywgMikpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSlcblxuICAvLyB1cGRhdGUgbXVsdGlwYWdlIGRhdGFcbiAgaWYgKCFvcHQubXVsdGlwYWdlICYmICdwYWdlJyBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAvLyBkaXNhYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGFnZScpXG4gIH0gZWxzZSBpZiAob3B0Lm11bHRpcGFnZSkge1xuICAgIC8vIGVuYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdmFyIHBhZ2VzID0gdmVydGljZXMucGFnZXMoZ2x5cGhzKVxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwYWdlJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwYWdlcywgMSkpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdTcGhlcmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nU3BoZXJlID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZSA9IG5ldyBUSFJFRS5TcGhlcmUoKVxuICB9XG5cbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMgPSAwXG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXIuc2V0KDAsIDAsIDApXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZVNwaGVyZShwb3NpdGlvbnMsIHRoaXMuYm91bmRpbmdTcGhlcmUpXG4gIGlmIChpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogJyArXG4gICAgICAnQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICcgK1xuICAgICAgJ1wicG9zaXRpb25cIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ0JveCA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpXG4gIH1cblxuICB2YXIgYmJveCA9IHRoaXMuYm91bmRpbmdCb3hcbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgYmJveC5tYWtlRW1wdHkoKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVCb3gocG9zaXRpb25zLCBiYm94KVxufVxuIiwidmFyIGl0ZW1TaXplID0gMlxudmFyIGJveCA9IHsgbWluOiBbMCwgMF0sIG1heDogWzAsIDBdIH1cblxuZnVuY3Rpb24gYm91bmRzIChwb3NpdGlvbnMpIHtcbiAgdmFyIGNvdW50ID0gcG9zaXRpb25zLmxlbmd0aCAvIGl0ZW1TaXplXG4gIGJveC5taW5bMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1pblsxXSA9IHBvc2l0aW9uc1sxXVxuICBib3gubWF4WzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5tYXhbMV0gPSBwb3NpdGlvbnNbMV1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICB2YXIgeCA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAwXVxuICAgIHZhciB5ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDFdXG4gICAgYm94Lm1pblswXSA9IE1hdGgubWluKHgsIGJveC5taW5bMF0pXG4gICAgYm94Lm1pblsxXSA9IE1hdGgubWluKHksIGJveC5taW5bMV0pXG4gICAgYm94Lm1heFswXSA9IE1hdGgubWF4KHgsIGJveC5tYXhbMF0pXG4gICAgYm94Lm1heFsxXSA9IE1hdGgubWF4KHksIGJveC5tYXhbMV0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZUJveCA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICBvdXRwdXQubWluLnNldChib3gubWluWzBdLCBib3gubWluWzFdLCAwKVxuICBvdXRwdXQubWF4LnNldChib3gubWF4WzBdLCBib3gubWF4WzFdLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlU3BoZXJlID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIHZhciBtaW5YID0gYm94Lm1pblswXVxuICB2YXIgbWluWSA9IGJveC5taW5bMV1cbiAgdmFyIG1heFggPSBib3gubWF4WzBdXG4gIHZhciBtYXhZID0gYm94Lm1heFsxXVxuICB2YXIgd2lkdGggPSBtYXhYIC0gbWluWFxuICB2YXIgaGVpZ2h0ID0gbWF4WSAtIG1pbllcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KVxuICBvdXRwdXQuY2VudGVyLnNldChtaW5YICsgd2lkdGggLyAyLCBtaW5ZICsgaGVpZ2h0IC8gMiwgMClcbiAgb3V0cHV0LnJhZGl1cyA9IGxlbmd0aCAvIDJcbn1cbiIsIm1vZHVsZS5leHBvcnRzLnBhZ2VzID0gZnVuY3Rpb24gcGFnZXMgKGdseXBocykge1xuICB2YXIgcGFnZXMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMSlcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBpZCA9IGdseXBoLmRhdGEucGFnZSB8fCAwXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gIH0pXG4gIHJldHVybiBwYWdlc1xufVxuXG5tb2R1bGUuZXhwb3J0cy51dnMgPSBmdW5jdGlvbiB1dnMgKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpIHtcbiAgdmFyIHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICB2YXIgYncgPSAoYml0bWFwLnggKyBiaXRtYXAud2lkdGgpXG4gICAgdmFyIGJoID0gKGJpdG1hcC55ICsgYml0bWFwLmhlaWdodClcblxuICAgIC8vIHRvcCBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHUwID0gYml0bWFwLnggLyB0ZXhXaWR0aFxuICAgIHZhciB2MSA9IGJpdG1hcC55IC8gdGV4SGVpZ2h0XG4gICAgdmFyIHUxID0gYncgLyB0ZXhXaWR0aFxuICAgIHZhciB2MCA9IGJoIC8gdGV4SGVpZ2h0XG5cbiAgICBpZiAoZmxpcFkpIHtcbiAgICAgIHYxID0gKHRleEhlaWdodCAtIGJpdG1hcC55KSAvIHRleEhlaWdodFxuICAgICAgdjAgPSAodGV4SGVpZ2h0IC0gYmgpIC8gdGV4SGVpZ2h0XG4gICAgfVxuXG4gICAgLy8gQkxcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MVxuICAgIC8vIFRMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBUUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gQlJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MVxuICB9KVxuICByZXR1cm4gdXZzXG59XG5cbm1vZHVsZS5leHBvcnRzLnBvc2l0aW9ucyA9IGZ1bmN0aW9uIHBvc2l0aW9ucyAoZ2x5cGhzKSB7XG4gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG5cbiAgICAvLyBib3R0b20gbGVmdCBwb3NpdGlvblxuICAgIHZhciB4ID0gZ2x5cGgucG9zaXRpb25bMF0gKyBiaXRtYXAueG9mZnNldFxuICAgIHZhciB5ID0gZ2x5cGgucG9zaXRpb25bMV0gKyBiaXRtYXAueW9mZnNldFxuXG4gICAgLy8gcXVhZCBzaXplXG4gICAgdmFyIHcgPSBiaXRtYXAud2lkdGhcbiAgICB2YXIgaCA9IGJpdG1hcC5oZWlnaHRcblxuICAgIC8vIEJMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gICAgLy8gVExcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gVFJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIEJSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICB9KVxuICByZXR1cm4gcG9zaXRpb25zXG59XG4iLCJ2YXIgbmV3bGluZSA9IC9cXG4vXG52YXIgbmV3bGluZUNoYXIgPSAnXFxuJ1xudmFyIHdoaXRlc3BhY2UgPSAvXFxzL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHRleHQsIG9wdCkge1xuICAgIHZhciBsaW5lcyA9IG1vZHVsZS5leHBvcnRzLmxpbmVzKHRleHQsIG9wdClcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKGxpbmUuc3RhcnQsIGxpbmUuZW5kKVxuICAgIH0pLmpvaW4oJ1xcbicpXG59XG5cbm1vZHVsZS5leHBvcnRzLmxpbmVzID0gZnVuY3Rpb24gd29yZHdyYXAodGV4dCwgb3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgLy96ZXJvIHdpZHRoIHJlc3VsdHMgaW4gbm90aGluZyB2aXNpYmxlXG4gICAgaWYgKG9wdC53aWR0aCA9PT0gMCAmJiBvcHQubW9kZSAhPT0gJ25vd3JhcCcpIFxuICAgICAgICByZXR1cm4gW11cblxuICAgIHRleHQgPSB0ZXh0fHwnJ1xuICAgIHZhciB3aWR0aCA9IHR5cGVvZiBvcHQud2lkdGggPT09ICdudW1iZXInID8gb3B0LndpZHRoIDogTnVtYmVyLk1BWF9WQUxVRVxuICAgIHZhciBzdGFydCA9IE1hdGgubWF4KDAsIG9wdC5zdGFydHx8MClcbiAgICB2YXIgZW5kID0gdHlwZW9mIG9wdC5lbmQgPT09ICdudW1iZXInID8gb3B0LmVuZCA6IHRleHQubGVuZ3RoXG4gICAgdmFyIG1vZGUgPSBvcHQubW9kZVxuXG4gICAgdmFyIG1lYXN1cmUgPSBvcHQubWVhc3VyZSB8fCBtb25vc3BhY2VcbiAgICBpZiAobW9kZSA9PT0gJ3ByZScpXG4gICAgICAgIHJldHVybiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpXG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKVxufVxuXG5mdW5jdGlvbiBpZHhPZih0ZXh0LCBjaHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKGNociwgc3RhcnQpXG4gICAgaWYgKGlkeCA9PT0gLTEgfHwgaWR4ID4gZW5kKVxuICAgICAgICByZXR1cm4gZW5kXG4gICAgcmV0dXJuIGlkeFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hyKSB7XG4gICAgcmV0dXJuIHdoaXRlc3BhY2UudGVzdChjaHIpXG59XG5cbmZ1bmN0aW9uIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBsaW5lcyA9IFtdXG4gICAgdmFyIGxpbmVTdGFydCA9IHN0YXJ0XG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQgJiYgaTx0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaHIgPSB0ZXh0LmNoYXJBdChpKVxuICAgICAgICB2YXIgaXNOZXdsaW5lID0gbmV3bGluZS50ZXN0KGNocilcblxuICAgICAgICAvL0lmIHdlJ3ZlIHJlYWNoZWQgYSBuZXdsaW5lLCB0aGVuIHN0ZXAgZG93biBhIGxpbmVcbiAgICAgICAgLy9PciBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBFT0ZcbiAgICAgICAgaWYgKGlzTmV3bGluZSB8fCBpPT09ZW5kLTEpIHtcbiAgICAgICAgICAgIHZhciBsaW5lRW5kID0gaXNOZXdsaW5lID8gaSA6IGkrMVxuICAgICAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBsaW5lU3RhcnQsIGxpbmVFbmQsIHdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChtZWFzdXJlZClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGluZVN0YXJ0ID0gaSsxXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSkge1xuICAgIC8vQSBncmVlZHkgd29yZCB3cmFwcGVyIGJhc2VkIG9uIExpYkdEWCBhbGdvcml0aG1cbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9saWJnZHgvbGliZ2R4L2Jsb2IvbWFzdGVyL2dkeC9zcmMvY29tL2JhZGxvZ2ljL2dkeC9ncmFwaGljcy9nMmQvQml0bWFwRm9udENhY2hlLmphdmFcbiAgICB2YXIgbGluZXMgPSBbXVxuXG4gICAgdmFyIHRlc3RXaWR0aCA9IHdpZHRoXG4gICAgLy9pZiAnbm93cmFwJyBpcyBzcGVjaWZpZWQsIHdlIG9ubHkgd3JhcCBvbiBuZXdsaW5lIGNoYXJzXG4gICAgaWYgKG1vZGUgPT09ICdub3dyYXAnKVxuICAgICAgICB0ZXN0V2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFXG5cbiAgICB3aGlsZSAoc3RhcnQgPCBlbmQgJiYgc3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAvL2dldCBuZXh0IG5ld2xpbmUgcG9zaXRpb25cbiAgICAgICAgdmFyIG5ld0xpbmUgPSBpZHhPZih0ZXh0LCBuZXdsaW5lQ2hhciwgc3RhcnQsIGVuZClcblxuICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IHN0YXJ0IG9mIGxpbmVcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbmV3TGluZSkge1xuICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UoIHRleHQuY2hhckF0KHN0YXJ0KSApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBzdGFydCsrXG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSB2aXNpYmxlICMgb2YgZ2x5cGhzIGZvciB0aGUgYXZhaWxhYmxlIHdpZHRoXG4gICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIG5ld0xpbmUsIHRlc3RXaWR0aClcblxuICAgICAgICB2YXIgbGluZUVuZCA9IHN0YXJ0ICsgKG1lYXN1cmVkLmVuZC1tZWFzdXJlZC5zdGFydClcbiAgICAgICAgdmFyIG5leHRTdGFydCA9IGxpbmVFbmQgKyBuZXdsaW5lQ2hhci5sZW5ndGhcblxuICAgICAgICAvL2lmIHdlIGhhZCB0byBjdXQgdGhlIGxpbmUgYmVmb3JlIHRoZSBuZXh0IG5ld2xpbmUuLi5cbiAgICAgICAgaWYgKGxpbmVFbmQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICAvL2ZpbmQgY2hhciB0byBicmVhayBvblxuICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmVFbmQgPT09IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGFydCA+IHN0YXJ0ICsgbmV3bGluZUNoYXIubGVuZ3RoKSBuZXh0U3RhcnQtLVxuICAgICAgICAgICAgICAgIGxpbmVFbmQgPSBuZXh0U3RhcnQgLy8gSWYgbm8gY2hhcmFjdGVycyB0byBicmVhaywgc2hvdyBhbGwuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IGxpbmVFbmRcbiAgICAgICAgICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kIC0gbmV3bGluZUNoYXIubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVFbmQgPj0gc3RhcnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBsaW5lRW5kLCB0ZXN0V2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IG5leHRTdGFydFxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuLy9kZXRlcm1pbmVzIHRoZSB2aXNpYmxlIG51bWJlciBvZiBnbHlwaHMgd2l0aGluIGEgZ2l2ZW4gd2lkdGhcbmZ1bmN0aW9uIG1vbm9zcGFjZSh0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBnbHlwaHMgPSBNYXRoLm1pbih3aWR0aCwgZW5kLXN0YXJ0KVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgZW5kOiBzdGFydCtnbHlwaHNcbiAgICB9XG59IiwibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiJdfQ== diff --git a/build/datguivr.map b/build/datguivr.map index 82acc1f..1292a44 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_vert","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_vert","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index 729c52a..c15a762 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -5,6 +5,6 @@ return'info face="Roboto" size=192 bold=0 italic=0 charset="" unicode=1 stretchH }Object.defineProperty(c,"__esModule",{value:!0}),c.image=d,c.fnt=e},{}],8:[function(a,b,c){"use strict";function d(){function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i);var J=b.text?2184:16777215,K=b.text?273:13421772;j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?J:K),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8, -"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("./layout"),e=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(d),f=a("object-assign"),g="\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvarying float vScale;\n// This is defined in layout.js (and was observed looking at three heirachy matrices)\n#define TEXT_SCALE "+e.TEXT_SCALE+"\nvoid main() {\n \n vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n";b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,d=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,f({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:d||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:g,fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\nvarying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n #ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n #else\n float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n #endif\n afwidth *= vScale;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"./layout":15,"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f) +"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign"),e="\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\n// vScale not needed if we assume standard derivates available, as they are in Webgl2 \n// varying float vScale;\n // This is defined in layout.js (and was observed looking at three heirachy matrices)\n // #define TEXT_SCALE "+Layout.TEXT_SCALE+"\nvoid main() {\n \n // vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n";b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,f=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:f||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:e,fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n// varying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available.\n // \n //#ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n // #else\n // float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n // afwidth *= vScale;\n // #endif\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f) ;var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b #include -varying float vScale; -// This is defined in layout.js (and was observed looking at three heirachy matrices) -#define TEXT_SCALE ${Layout.TEXT_SCALE} +// vScale not needed if we assume standard derivates available, as they are in Webgl2 +// varying float vScale; + // This is defined in layout.js (and was observed looking at three heirachy matrices) + // #define TEXT_SCALE ${Layout.TEXT_SCALE} void main() { - vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE; + // vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE; vUv = uv; #include @@ -45,7 +46,7 @@ const meshbasic_frag = ` #define USE_UV uniform vec3 color; uniform float opacity; -varying float vScale; +// varying float vScale; #include //#include @@ -57,12 +58,14 @@ varying float vScale; ///// float aastep(float value) { - #ifdef GL_OES_standard_derivatives + // We now assume WebGL2 and so the derivatives are available. + // + //#ifdef GL_OES_standard_derivatives float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757; - #else - float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w)); - #endif - afwidth *= vScale; + // #else + // float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w)); + // afwidth *= vScale; + // #endif return smoothstep(0.5 - afwidth, 0.5 + afwidth, value); } //// From 60d96e829dc2f67c4e25b42657bbfb1eae0b8e60 Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Thu, 27 Jan 2022 08:59:35 +0000 Subject: [PATCH 11/24] version with non-derivative path and vScale removed (were commented out in previous version) --- build/datguivr.js | 6 +++--- build/datguivr.map | 2 +- build/datguivr.min.js | 4 ++-- modules/datguivr/sdfshader_logdepth.js | 20 ++++---------------- 4 files changed, 10 insertions(+), 22 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index 47ab942..a37214b 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -4597,9 +4597,9 @@ var assign = require('object-assign'); /** * starting from THREE meshbasic shaders, pruning / modifying... */ -var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\n// vScale not needed if we assume standard derivates available, as they are in Webgl2 \n// varying float vScale;\n // This is defined in layout.js (and was observed looking at three heirachy matrices)\n // #define TEXT_SCALE ' + Layout.TEXT_SCALE + '\nvoid main() {\n \n // vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; +var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; -var meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n// varying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available.\n // \n //#ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n // #else\n // float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n // afwidth *= vScale;\n // #endif\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; +var meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; module.exports = function createSDFShader(opt) { opt = opt || {}; @@ -7585,4 +7585,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QSxhQUFTLFFBQVQsR0FBb0IsV0FBcEI7QUFDQSxhQUFTLEtBQVQsR0FBaUIsUUFBakI7QUFDQSxRQUFLLE1BQUwsRUFBYyxTQUFTLGFBQVQsQ0FBd0IsQ0FBeEIsSUFBOEIsTUFBOUI7O0FBRWQ7QUFFQSxHQW5QRDtBQXFQQSxDQTVWRDs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICogXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLiBcclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUiBcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1IgXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsIFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcbiAgICBcclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpOyBcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgLy9tb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICBpZiAoIXdpZGUpIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIGVsc2Uge1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMC43NTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueSA9IDAuMDE7IC8vWFhYIG1hZ2ljIG51bWJlclxyXG4gIH1cclxuXHJcbiAgdmFyIG1hdGVyaWFsO1xyXG4gIGlmIChpbWFnZS5pc01hdGVyaWFsKSB7XHJcbiAgICBtYXRlcmlhbCA9IGltYWdlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIG1hdGVyaWFsKTtcclxuICB9XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gIC8vYnV0dG9uIGxhYmVsIHJlbW92ZWQ7IG1pZ2h0IHdhbnQgb3B0aW9ucyBsaWtlIGEgaG92ZXIgbGFiZWwgaW4gZnV0dXJlLlxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBpZiAod2lkZSkgZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAvL1RPRE86IGRyYWcgYW5kIGhvdmVyXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnaG92ZXJpbmcnLCBoYW5kbGVIb3ZlciApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZVByZXNzaW5nICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGxldCBob3ZlckZ1bmMgPSB1bmRlZmluZWQ7XHJcbiAgLy8gSSBtaWdodCB5ZXQgZGVjaWRlIHRvIGNoYW5nZSB0aGlzIGludGVyZmFjZS5cclxuICAvLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgbmFtZSwgbWlnaHQgd2FudCB0byBhZGQgbGlzdGVuZXJzIHRvIGV2ZW50XHJcbiAgLy8gcmF0aGVyIHRoYW4ganVzdCBzZXQgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgZ3JvdXAub25Ib3ZlciA9IGYgPT4ge1xyXG4gICAgaG92ZXJGdW5jID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZ3JvdXAub25QcmVzc2luZyA9IGYgPT4ge1xyXG4gICAgcHJlc3NpbmcgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBmdW5jdGlvbiBoYW5kbGVIb3ZlciggcCApe1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAoaG92ZXJGdW5jKSBob3ZlckZ1bmMocCk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vaXQgc2hvdWxkIGJlIHRoYXQgdGhlIGNoZWNrcyBpbiBpbmRleC5qcyBtZWFuIHRoYXQgbWV0aG9kcyBkb24ndCBnZXQgY2FsbGVkIG9uIGludmlzaWJsZVxyXG4gICAgLy9vYmplY3RzLCByZW5kZXJpbmcgdGhlc2UgdGVzdHMgcmVkdW5kYW50Li4uIGhvd2V2ZXIsIHRoYXQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlIGNhc2UuXHJcbiAgICAvL2V4cGVyaWVuY2VkIHNvbWUgYnVncyBwYXJ0aWN1bGFybHkgd2l0aCAnbW9kYWwgZWRpdG9yJyB0eXBlIHBhbmVscy5cclxuICAgIC8vVE9ETzogZWl0aGVyIG1ha2Ugc3VyZSBpbnZpc2libGUgb2JqZWN0cyBhcmVuJ3QgY2FsbGVkIGluIHRoZSBmaXJzdCBwbGFjZSxcclxuICAgIC8vb3IgbWFrZSBzdXJlIGFsbCB0eXBlcyBvZiBvYmplY3QgZG8gdGhpcyBtb3JlIHRob3JvdWdoIHZpc2liaWxpdHkgY2hlY2suLi5cclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKG9iamVjdCkgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXShwKTtcclxuICAgIGlmIChmdW5jKSBmdW5jKHApO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL2NvbXB1dGUgeCAmIHkgYXMgbm9ybWFsaXNlZCBjb29yZGluYXRlcyBmcm9tIHAucG9pbnRcclxuICAvL2NvdWxkIGNvbnNpZGVyIG1vdmluZyB0aGlzIGNvbXB1dGF0aW9uIGludG8gaW50ZXJhY3Rpb24uanMgcGVyZm9ybVN0YXRlRXZlbnRzKClcclxuICBmdW5jdGlvbiBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwb2ludCkge1xyXG4gICAgY29uc3QgcCA9IGhpdHNjYW5Wb2x1bWUud29ybGRUb0xvY2FsKHBvaW50KTtcclxuICAgIHAueCAvPSBCVVRUT05fV0lEVEg7XHJcbiAgICBwLnkgLz0gQlVUVE9OX0hFSUdIVDtcclxuICAgIHAueSArPSAwLjU7XHJcbiAgICBwLnggPSBNYXRoLm1heChNYXRoLm1pbihwLngsIDEpLCAwKTtcclxuICAgIHAueSA9IE1hdGgubWF4KE1hdGgubWluKHAueSwgMSksIDApO1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVQcmVzc2luZyggcCApIHtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIC8vY29uc29sZS5sb2coYHByZXNzaW5nIGF0ICgke3BvaW50Lnh9LCAke3BvaW50Lnl9KWApOyAvL2ZpcnN0IGluc3RhbmNlIG9mICdwcmVzc2luZycgaXMgYWx3YXlzIGF0ICgxLCAxKVxyXG4gICAgLy9uYiwgbGlrZWx5IHRvIG5lZWQgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIGR1YWwgd2llbGRpbmdcclxuICAgIGlmIChwcmVzc2luZykgcHJlc3NpbmcocCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmICghbWF0ZXJpYWwuY29sb3IpIHJldHVybjtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhDQ0NDQ0MgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKiBcclxuICogR3JpZCBvZiBidXR0b25zIHdpdGggaW1hZ2VzIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgaW1hZ2VidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7Y3JlYXRlVGV4dExhYmVsLCBjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0cywgLy8gYXJyYXkgb2Yge2Z1bmMsIGltYWdlIHwgdGV4dCwgdGlwKG9wdGlvbmFsKSwgcmVsZWFzZShvcHRpb25hbCl9XHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgcm93SGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNvbHVtbnMgPSA0XHJcbn0gPSB7fSApe1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWFyZ2luID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDM7XHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gKHdpZHRoIC0gbWFyZ2luKSAqICgxL2NvbHVtbnMpO1xyXG4gIC8vVE9ETzogYWRkIHNldFJvd0hlaWdodCBtZXRob2RcclxuICBsZXQgQlVUVE9OX0hFSUdIVCA9IHJvd0hlaWdodCA+IDAgPyByb3dIZWlnaHQgOiBCVVRUT05fV0lEVEg7XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvbmdyaWRcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtvYmplY3RzfV1gO1xyXG4gIFxyXG4gIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwob2JqZWN0cy5sZW5ndGggLyBjb2x1bW5zKTtcclxuICBsZXQgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGdyb3VwLnNldFJvd0hlaWdodCA9IGggPT4ge1xyXG4gICAgcm93SGVpZ2h0ID0gQlVUVE9OX0hFSUdIVCA9IGg7XHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG4gICAgbGF5b3V0QnV0dG9ucygpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGZhbHNlO1xyXG4gIGxldCBsYXN0UHJlc3NlZCA9IG51bGw7XHJcbiAgbGV0IGxhc3RQcmVzc2VkQ29sO1xyXG4gIGdyb3VwLmhpZ2hsaWdodExhc3RQcmVzc2VkID0gKGNvbCA9IDB4MzM1NUVFKSA9PiB7XHJcbiAgICAgIGhpZ2hsaWdodExhc3RQcmVzc2VkID0gY29sICE9PSBmYWxzZTtcclxuICAgICAgbGFzdFByZXNzZWRDb2wgPSBjb2w7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgXHJcbiAgbGV0IHBhbmVsLCBncmFiSW50ZXJhY3Rpb24sIGJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgbGF5b3V0QnV0dG9ucygpO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGluaXRQYW5lbCgpIHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIHBhbmVsLmFkZChjb250cm9sbGVySUQpO1xyXG4gICAgXHJcbiAgICBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+Z3JvdXAucmVtb3ZlKGIpKTtcclxuICAgIGJ1dHRvbnMgPSBbXTtcclxuICAgIGdyb3VwLmd1aUNoaWxkcmVuID0gYnV0dG9ucztcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gbGF5b3V0QnV0dG9ucygpIHtcclxuICAgIGluaXRQYW5lbCgpO1xyXG4gICAgLy9UT0RPOiBwYWRkaW5nXHJcbiAgICBjb25zdCBidXR0b25XUGFkZGVkID0gQlVUVE9OX1dJRFRIICogMC45OSwgYnV0dG9uSFBhZGRlZCA9IEJVVFRPTl9IRUlHSFQgKiAwLjk5O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBidXR0b25XUGFkZGVkLCBidXR0b25IUGFkZGVkLCAxLCAxICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggYnV0dG9uV1BhZGRlZCAvIDIsIC1idXR0b25IUGFkZGVkIC8gMiwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IHRvZ2dsZXMgcmF0aGVyIHRoYW4gdHJpZ2dlcnMuLi5cclxuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFvYmouaW1hZ2UgJiYgIW9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN1Ymdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vbm90ZTogcmVkdWNpbmcgbmVzdGluZyBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxyXG4gICAgICAgIHN1Ymdyb3VwLmd1aVR5cGUgPSBcImltYWdlQnV0dG9uR3JpZEVsZW1lbnRcIjtcclxuICAgICAgICBncm91cC5hZGQoc3ViZ3JvdXApO1xyXG4gICAgICAgIGJ1dHRvbnMucHVzaChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbCA9IGkgJSBjb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IE1hdGguZmxvb3IoaSAvIGNvbHVtbnMpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi54ID0gKDIqTGF5b3V0LlBBTkVMX01BUkdJTikgKyBCVVRUT05fV0lEVEggKiBjb2w7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueSA9IChoZWlnaHQvMikgLUJVVFRPTl9IRUlHSFQgKiByb3c7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuXHJcbiAgICAgICAgLy8gIGhpdHNjYW4gdm9sdW1lLlxyXG4gICAgICAgIC8vIFRoaXMgbWF0ZXJpYWwgY291bGQgcHJvYmFibHkgYmUgcmV1c2VkLlxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG9iai5pbWFnZSkgYXBwbHlJbWFnZVRvTWF0ZXJpYWwob2JqLmltYWdlLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgaWYgKG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUob2JqLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyKkxheW91dC5HUklEX0JVVFRPTl9NQVJHSU47XHJcbiAgICAgICAgICAgIGxldCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgaWYgKHcgPiBCVVRUT05fV0lEVEggLSBtYXJnaW4pIHtcclxuICAgICAgICAgICAgICAgIHRleHQuY29uc3RyYWluQm91bmRzKEJVVFRPTl9XSURUSCAtIG1hcmdpbiwgQlVUVE9OX0hFSUdIVCAtIG1hcmdpbik7IC8vPC0tXHJcbiAgICAgICAgICAgICAgICBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJncm91cC5hZGQodGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnggPSBvYmoudGV4dFggfHwgMC41ICogKEJVVFRPTl9XSURUSCAtIHcpO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnkgPSBvYmoudGV4dFkgfHwgLTAuNSAqIEJVVFRPTl9IRUlHSFQgLSBoO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICAgICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgICAgICAvL2J1dHRvbiBsYWJlbCAmIGRlc2NyaXB0b3IgbGFiZWwgcmVtb3ZlZC5cclxuICAgICAgICAvL1Rvb2x0aXAgdGV4dCBvcHRpb24gYWRkZWQuICBNaWdodCB3YW50IHRvIGJlIGFibGUgdG8gcGFzcyBpbiByaWNoZXIgdGhpbmdzLi4uXHJcbiAgICAgICAgLy9tYXliZSBhbiBhcmJpdHJhcnkgVEhSRUUgb2JqZWN0IHdvdWxkIHdvcmsgd2VsbC4uLlxyXG4gICAgICAgIGlmIChvYmoudGlwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcFRleHQgPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCBvYmoudGlwLCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL3N1Ymdyb3VwLmFkZCh0aXBUZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG4gICAgICAgIHN1Ymdyb3VwLmFkZCggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIHBhbmVsLmFkZChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgICAgICAgICBpZiggc3ViZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL1RPRE86IHN0YW5kYXJkaXNlIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gY2FsbGJhY2tzXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZnVuYygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZXJyb3IgPSBlIHx8ICd1bmRlZmluZWQgZXhjZXB0aW9uJztcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0UHJlc3NlZCA9IG9iajtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gICAgICAgICAgICBpZiAob2JqLnJlbGVhc2UpIG9iai5yZWxlYXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcXVpY2sgY29sb3IgaGFjay4uLlxyXG4gICAgICAgIGNvbnN0IGhvdmVyQ29sID0gb2JqLnRleHQgPyAweDg4OCA6IDB4RkZGRkZGO1xyXG4gICAgICAgIGNvbnN0IG5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IGhvdmVyQ29sIDogbm9Ib3ZlckNvbCApO1xyXG4gICAgICAgICAgICBpZiAoc3ViZ3JvdXAudGlwVGV4dCkgc2V0VmlzaWJpbGl0eShzdWJncm91cCwgc3ViZ3JvdXAudGlwVGV4dCwgaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICAgIGlmIChvYmouZXJyb3IpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhBQTMzMzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3KCk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgc3ViZ3JvdXAuaGl0c2NhbiA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBtYWtpbmcgdGhpcyBzaW5nbGUgZWxlbWVudCByYXRoZXIgdGhhbiBhcnJheSxcclxuICAgICAgICAvL3RoYXQgbWVhbnMgdGhlc2UgJ3N1Ymdyb3VwJyBidXR0b25zIGFyZW4ndCBhY3RpbmcgZXhhY3RseSBhcyBub3JtYWwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzXHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5oaXRzY2FuID0gYnV0dG9ucy5tYXAoYj0+Yi5oaXRzY2FuKTsvLy5wdXNoKHBhbmVsKTtcclxuICAgIGdyb3VwLmhpdHNjYW4ucHVzaChwYW5lbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpIHtcclxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGI9PmIudXBkYXRlVmlldygpKTtcclxuICB9XHJcbiAgXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT57XHJcbiAgICAgICAgYi5pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICAvL2ludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVTbGlkZXIgZnJvbSAnLi9zbGlkZXInO1xyXG5pbXBvcnQgY3JlYXRlQ2hlY2tib3ggZnJvbSAnLi9jaGVja2JveCc7XHJcbmltcG9ydCBjcmVhdGVCdXR0b24gZnJvbSAnLi9idXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlRm9sZGVyIGZyb20gJy4vZm9sZGVyJztcclxuaW1wb3J0IGNyZWF0ZURyb3Bkb3duIGZyb20gJy4vZHJvcGRvd24nO1xyXG4vL1BKVDogSSdkIHJhdGhlciBpbmplY3QgY3VzdG9tIGV4dGVuc2lvbnMgbGlrZSB0aGlzLCBidXQgd2lsbCB3b3JrIHRoYXQgb3V0IGxhdGVyLlxyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlS2V5Ym9hcmQgZnJvbSAnLi9rZXlib2FyZCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0Ym94IGZyb20gJy4vdGV4dGJveCc7XHJcbmltcG9ydCBjcmVhdGVDb2xvclBpY2tlciBmcm9tICcuL2NvbG9ycGlja2VyJztcclxuaW1wb3J0ICogYXMgU0RGVGV4dCBmcm9tICcuL3NkZnRleHQnO1xyXG5pbXBvcnQgeyBpc0NvbnRyb2xsZXJWaXNpYmxlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGdsb2JhbEV2ZW50cyB9IGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuY29uc3QgR1VJVlIgPSAoZnVuY3Rpb24gREFUR1VJVlIoKXtcclxuXHJcbiAgLypcclxuICAgIFNERiBmb250XHJcbiAgKi9cclxuICBjb25zdCB0ZXh0Q3JlYXRvciA9IFNERlRleHQuY3JlYXRvcigpO1xyXG5cclxuXHJcbiAgLypcclxuICAgIExpc3RzLlxyXG4gICAgSW5wdXRPYmplY3RzIGFyZSB0aGluZ3MgbGlrZSBWSVZFIGNvbnRyb2xsZXJzLCBjYXJkYm9hcmQgaGVhZHNldHMsIGV0Yy5cclxuICAgIENvbnRyb2xsZXJzIGFyZSB0aGUgREFUIEdVSSBzbGlkZXJzLCBjaGVja2JveGVzLCBldGMuXHJcbiAgKi9cclxuICBjb25zdCBpbnB1dE9iamVjdHMgPSBbXTtcclxuICBjb25zdCBjb250cm9sbGVycyA9IFtdO1xyXG5cclxuICAvKlxyXG4gICAgRnVuY3Rpb25zIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY29udHJvbGxlciBpcyB2aXNpYmxlIChieSB3aGljaCB3ZVxyXG4gICAgbWVhbiBub3QgaGlkZGVuLCBub3QgJ3Zpc2libGUnIGluIHRlcm1zIG9mIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gZXRjKSwgYW5kXHJcbiAgICBmb3IgcmV0cmlldmluZyB0aGUgbGlzdCBvZiB2aXNpYmxlIGhpdHNjYW5PYmplY3RzIGR5bmFtaWNhbGx5LlxyXG4gICAgVGhpcyBtaWdodCBiZW5lZml0IGZyb20gc29tZSBjYWNoaW5nIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2l0aCBsYXJnZSBjb21wbGV4IEdVSXMuXHJcbiAgICBJIGhhdmVuJ3QgbWVhc3VyZWQgdGhlIGltcGFjdCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gZXRjLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkge1xyXG4gICAgLy8gbm90IHRlcnJpYmx5IGVmZmljaWVudFxyXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJzLmZpbHRlciggaXNDb250cm9sbGVyVmlzaWJsZSApO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSB7XHJcbiAgICAvL1hYWCBXQVJOSU5HOjo6XHJcbiAgICAvL3RoZXJlIGNvdWxkIGV4aXN0IHNpdHVhdGlvbnMgaW4gd2hpY2ggbWVtYmVycyBvZiBoaXRzY2FuIGZvciBhIHZpc2libGUgY29udHJvbGxlciBhcmUgbm90IHRoZW1zZWx2ZXMgdmlzaWJsZS5cclxuICAgIC8vdGhpcyBjYW4gaGFwcGVuIGZvciBlZyBpZiB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBwYXJ0aWN1bGFyIGhpdHNjYW4gaXMgaW4gYW4gaW52aXNpYmxlIG1vZGFsIGVkaXRvci5cclxuICAgIC8vd2UgY291bGQgY2hlY2sgdGhhdCwgYWRkaW5nIGEgbW9yZSByb2J1c3QgZmlsdGVyIHRvIGVhY2ggaGl0c2NhbiBhcnJheS4uLiBmb3Igbm93LCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcclxuICAgIC8vY29udHJvbGxlcnMgdG8gZWl0aGVyIG9ubHkgcmV0dXJuIGhpdHNjYW4gb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlLCBvciB0byBzZXQgJ3Zpc2libGUnIGV4cGxpY2l0bHkuXHJcbiAgICBjb25zdCB0bXAgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKS5tYXAoIG8gPT4geyByZXR1cm4gby5oaXRzY2FuLmZpbHRlcihoID0+IGgudmlzaWJsZSk7IH0gKVxyXG4gICAgcmV0dXJuIHRtcC5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgbGV0IG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGxldCBtb3VzZVJlbmRlcmVyID0gdW5kZWZpbmVkO1xyXG4gIGxldCBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkOyAvL2tlZXAgdHJhY2sgc28gdGhhdCB3ZSBkb24ndCBhdHRhY2ggbXVsdGlwbGUgZXZlbnRzIChwYXJ0aWN1bGFybHkgd2hlbiByZXNpemluZyB3aW5kb3cpXHJcbiAgXHJcbiAgbGV0IGF1dG9VcGRhdGUgPSB0cnVlO1xyXG5cclxuICBmdW5jdGlvbiBlbmFibGVNb3VzZSggY2FtZXJhLCByZW5kZXJlciApe1xyXG4gICAgbW91c2VFbmFibGVkID0gdHJ1ZTtcclxuICAgIG1vdXNlUmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgIG1vdXNlSW5wdXQubW91c2VDYW1lcmEgPSBjYW1lcmE7XHJcbiAgICBpZiAoY2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSB7XHJcbiAgICAgIGlmICghb25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSBmPT5mLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMub24oJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5sYXNlcjtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gZGlzYWJsZU1vdXNlKCl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgVGhlIGRlZmF1bHQgbGFzZXIgcG9pbnRlciBjb21pbmcgb3V0IG9mIGVhY2ggSW5wdXRPYmplY3QuXHJcbiAgKi9cclxuICBjb25zdCBsYXNlck1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjoweDU1YWFmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0pO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUxhc2VyKCl7XHJcbiAgICBjb25zdCBnID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBnLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDAsMCwwXSkpKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoKSApO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygwLDAsMCkgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTGluZSggZywgbGFzZXJNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBIFwiY3Vyc29yXCIsIGVnIHRoZSBiYWxsIHRoYXQgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHlvdXIgbGFzZXIuXHJcbiAgKi9cclxuICBjb25zdCBjdXJzb3JNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg0NDQ0NDQsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9ICk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKCl7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgwLjAwNiwgNCwgNCApLCBjdXJzb3JNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBnZW5lcmljIElucHV0IHR5cGUuXHJcbiAgICBUYWtlcyBhbnkgVEhSRUUuT2JqZWN0M0QgdHlwZSBvYmplY3QgYW5kIHVzZXMgaXRzIHBvc2l0aW9uXHJcbiAgICBhbmQgb3JpZW50YXRpb24gYXMgYW4gaW5wdXQgZGV2aWNlLlxyXG5cclxuICAgIEEgbGFzZXIgcG9pbnRlciBpcyBpbmNsdWRlZCBhbmQgd2lsbCBiZSB1cGRhdGVkLlxyXG4gICAgQ29udGFpbnMgc3RhdGUgYWJvdXQgd2hpY2ggSW50ZXJhY3Rpb24gaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb3IgaG92ZXIuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBjcmVhdGVJbnB1dCggaW5wdXRPYmplY3QgPSBuZXcgVEhSRUUuR3JvdXAoKSApe1xyXG4gICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgIHJheWNhc3Q6IG5ldyBUSFJFRS5SYXljYXN0ZXIoIG5ldyBUSFJFRS5WZWN0b3IzKCksIG5ldyBUSFJFRS5WZWN0b3IzKCkgKSxcclxuICAgICAgbGFzZXI6IGNyZWF0ZUxhc2VyKCksXHJcbiAgICAgIGN1cnNvcjogY3JlYXRlQ3Vyc29yKCksXHJcbiAgICAgIG9iamVjdDogaW5wdXRPYmplY3QsXHJcbiAgICAgIHByZXNzZWQ6IGZhbHNlLFxyXG4gICAgICBncmlwcGVkOiBmYWxzZSxcclxuICAgICAgZXZlbnRzOiBuZXcgRW1pdHRlcigpLFxyXG4gICAgICBpbnRlcmFjdGlvbjoge1xyXG4gICAgICAgIGdyaXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmVzczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGhvdmVyOiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5hZGQoIGlucHV0LmN1cnNvciApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgTW91c2VJbnB1dC5cclxuICAgIEFsbG93cyB5b3UgdG8gY2xpY2sgb24gdGhlIHNjcmVlbiB3aGVuIG5vdCBpbiBWUiBmb3IgZGVidWdnaW5nLlxyXG4gICovXHJcbiAgY29uc3QgbW91c2VJbnB1dCA9IGNyZWF0ZU1vdXNlSW5wdXQoKTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlTW91c2VJbnB1dCgpe1xyXG4gICAgY29uc3QgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigtMSwtMSk7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCgpO1xyXG4gICAgaW5wdXQubW91c2UgPSBtb3VzZTtcclxuICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlT2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlUGxhbmUgPSBuZXcgVEhSRUUuUGxhbmUoKTtcclxuICAgIGlucHV0LmludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyAgc2V0IG15IGVuYWJsZU1vdXNlXHJcbiAgICBpbnB1dC5tb3VzZUNhbWVyYSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlbW92ZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICAvLyBpZiBhIHNwZWNpZmljIHJlbmRlcmVyIGhhcyBiZWVuIGRlZmluZWRcclxuICAgICAgaWYgKG1vdXNlUmVuZGVyZXIpIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gbW91c2VSZW5kZXJlci5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIG1vdXNlLnggPSAoIChldmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0KSAvIGNsaWVudFJlY3Qud2lkdGgpICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCAoZXZlbnQuY2xpZW50WSAtIGNsaWVudFJlY3QudG9wKSAvIGNsaWVudFJlY3QuaGVpZ2h0KSAqIDIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gZnVsbHNjcmVlblxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtb3VzZS54ID0gKCBldmVudC5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGggKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCApICogMiArIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmIChpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBwcmV2ZW50IG1vdXNlIGRvd24gZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGxpc3RlbmVycyAocG9seWZpbGwsIGV0YylcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLy9pZiBhbnkgaW5wdXQuaW50ZXJhY3Rpb25zIGhhdmUgaGl0Vm9sdW1lIHRoYXQgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIG5vdCBjdXJyZW50bHkgaW4gaGl0c2Nhbk9iamVjdHMsXHJcbiAgLy90aGF0IGludGVyYWN0aW9uIHNob3VsZCBiZSBjYW5jZWxsZWQuIEVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgd2l0aCBlLmcuIHByZXNzaW5nICdyZWF0dGFjaCcgd2hlbiB0aGUgcGFyZW50IGlzIGNsb3NlZC5cclxuICBmdW5jdGlvbiBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb25zLCBoaXRzY2FuT2JqZWN0cyApIHtcclxuICAgIFsncHJlc3MnLCAnZ3JpcCcsICdob3ZlciddLmZvckVhY2goIGludGVyYWN0aW9uTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV07XHJcbiAgICAgIGlmIChpbnRlcmFjdGlvbiAmJiBoaXRzY2FuT2JqZWN0cy5pbmRleE9mKGludGVyYWN0aW9uLmhpdFZvbHVtZSkgPCAwKSB7XHJcbiAgICAgICAgaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV0gPSB1bmRlZmluZWQ7IFxyXG4gICAgICAgIC8vb25seSBiZSBwb2xpdGUgdG8gaW5mb3JtIHRoZSBpbnRlcmFjdGlvbiBhcyB3ZWxsOyB1cGRhdGUgd2l0aCBlbXB0eSBpbnB1dE9iamVjdHMgYXJnIHNob3VsZCBkbyB0aGUgdHJpY2suXHJcbiAgICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBbXSApO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVMYXNlciggbGFzZXIsIHBvaW50ICl7XHJcbiAgICBjb25zdCBwcCA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgIHBwWzNdID0gcG9pbnQueDtcclxuICAgIHBwWzRdID0gcG9pbnQueTtcclxuICAgIHBwWzVdID0gcG9pbnQuejtcclxuICAgIHBwLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggcG9pbnQgKTtcclxuICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydGljZXNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgaWYoIGludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBjb25zdCBmaXJzdEhpdCA9IGludGVyc2VjdGlvbnNbIDAgXTtcclxuICAgICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IucG9zaXRpb24uY29weSggZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBjdXJzb3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlTW91c2VJbnRlcnNlY3Rpb24oIGludGVyc2VjdGlvbiwgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGludGVyc2VjdGlvbiApO1xyXG4gICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBjdXJzb3IucG9zaXRpb24gKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIGNhbWVyYSApe1xyXG4gICAgcmF5Y2FzdC5zZXRGcm9tQ2FtZXJhKCBtb3VzZSwgY2FtZXJhICk7XHJcbiAgICBjb25zdCBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgcmV0dXJuIHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtb3VzZUludGVyc2VjdHNQbGFuZSggcmF5Y2FzdCwgdiwgcGxhbmUgKXtcclxuICAgIHJldHVybiByYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggcGxhbmUsIHYgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsbW91c2UsbW91c2VDYW1lcmEsIGludGVyYWN0aW9ufSA9IHt9ICl7XHJcbiAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICBsZXQgaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIGlmIChtb3VzZUNhbWVyYSkge1xyXG4gICAgICBpbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgbW91c2VDYW1lcmEgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoKTtcclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBtZXRob2RzLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHB1YmxpY0ludGVyZmFjZSA9IHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGFkZElucHV0T2JqZWN0LFxyXG4gICAgZW5hYmxlTW91c2UsXHJcbiAgICBkaXNhYmxlTW91c2UsXHJcbiAgICB0ZXh0Q3JlYXRvciwgLy9jaGVhcCB3YXkgb2YgZXhwb3NpbmcgdGhpcyBzbyBpdCBjYW4gYmUgdXNlZCBieSBob3N0IGFwcGxpY2F0aW9uLlxyXG4gICAgZ2xvYmFsRXZlbnRzLFxyXG4gICAgY2xlYXJBbGwsXHJcbiAgICB1cGRhdGVcclxuICB9O1xyXG4gIC8vIGFsbG93IHVzZXIgdG8gY2FsbCBcImRhdC5HVUlWUi5hdXRvVXBkYXRlID0gZmFsc2VcIiBhbmQgdGhlbiB1cGRhdGUgbWFudWFsbHkgd2l0aFxyXG4gIC8vIFwiZGF0LkdVSVZSLnVwZGF0ZSgpXCJcclxuICAvLyBleHBvc2UgYXV0b1VwZGF0ZSBhcyBwcm9wZXJ0eSBzbyB0aGF0IHRoZSByZWZlcmVuY2Ugd2lsbCBiZSBwcm9wZXJseSBlZmZlY3RlZFxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggcHVibGljSW50ZXJmYWNlLCAnYXV0b1VwZGF0ZScsIHsgZ2V0OiAoKT0+IGF1dG9VcGRhdGUsIHNldDogdiA9PiBhdXRvVXBkYXRlID0gdiB9ICk7XHJcbiAgcmV0dXJuIHB1YmxpY0ludGVyZmFjZTtcclxuXHJcbn0oKSk7XHJcblxyXG5pZiggd2luZG93ICl7XHJcbiAgaWYoIHdpbmRvdy5kYXQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgd2luZG93LmRhdCA9IHt9O1xyXG4gIH1cclxuXHJcbiAgd2luZG93LmRhdC5HVUlWUiA9IEdVSVZSO1xyXG59XHJcblxyXG5pZiggbW9kdWxlICl7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBkYXQ6IEdVSVZSXHJcbiAgfTtcclxufVxyXG5cclxuaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XHJcbiAgZGVmaW5lKFtdLCBHVUlWUik7XHJcbn1cclxuXHJcbi8qXHJcbiAgQnVuY2ggb2Ygc3RhdGUtbGVzcyB1dGlsaXR5IGZ1bmN0aW9ucy5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGlzTnVtYmVyKG4pIHtcclxuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Jvb2xlYW4obil7XHJcbiAgcmV0dXJuIHR5cGVvZiBuID09PSAnYm9vbGVhbic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuY3Rpb25Ub0NoZWNrKSB7XHJcbiAgY29uc3QgZ2V0VHlwZSA9IHt9O1xyXG4gIHJldHVybiBmdW5jdGlvblRvQ2hlY2sgJiYgZ2V0VHlwZS50b1N0cmluZy5jYWxsKGZ1bmN0aW9uVG9DaGVjaykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XHJcbn1cclxuXHJcbi8vICBvbmx5IHt9IG9iamVjdHMgbm90IGFycmF5c1xyXG4vLyAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHRlY2huaWNhbGx5IG9iamVjdHMgYnV0IHlvdSdyZSBqdXN0IGJlaW5nIHBlZGFudGljXHJcbmZ1bmN0aW9uIGlzT2JqZWN0IChpdGVtKSB7XHJcbiAgcmV0dXJuICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQXJyYXkoIG8gKXtcclxuICByZXR1cm4gQXJyYXkuaXNBcnJheSggbyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1N0cmluZyggbyApe1xyXG4gIHJldHVybiB0eXBlb2YgbyA9PT0gJ3N0cmluZyc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQ29sb3IoIG8gKXtcclxuICBpZiAodHlwZW9mIG8gIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIG8uaXNDb2xvciA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5cclxuXHJcblxyXG4vKlxyXG4gIENvbnRyb2xsZXItc3BlY2lmaWMgc3VwcG9ydC5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIGNvbnRyb2xsZXIsIHByZXNzZWQsIGdyaXBwZWQgKXtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VyZG93bicsICgpPT5wcmVzc2VkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VydXAnLCAoKT0+cHJlc3NlZCggZmFsc2UgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzZG93bicsICgpPT5ncmlwcGVkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc3VwJywgKCk9PmdyaXBwZWQoIGZhbHNlICkgKTtcclxuXHJcbiAgY29uc3QgZ2FtZXBhZCA9IGNvbnRyb2xsZXIuZ2V0R2FtZXBhZCgpO1xyXG4gIGZ1bmN0aW9uIHZpYnJhdGUoIHQsIGEgKXtcclxuICAgIGlmKCBnYW1lcGFkICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnNbIDAgXS5wdWxzZSggdCwgYSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc1RhcCgpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSgxLWEsIDAuNSksIDEwLCAyMCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc0VjaG8oKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoNCwgMS4wICogKDEtYSkpLCAxMDAsIDQgKTtcclxuICB9XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ29uQ29udHJvbGxlckhlbGQnLCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgIHZpYnJhdGUoIDAuMywgMC4zICk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJiZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGlubmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGluUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gc2V0SW50ZXJ2YWxUaW1lcyggY2IsIGRlbGF5LCB0aW1lcyApe1xyXG4gIGxldCB4ID0gMDtcclxuICBsZXQgaWQgPSBzZXRJbnRlcnZhbCggZnVuY3Rpb24oKXtcclxuICAgIGNiKCB4LCB0aW1lcywgeC90aW1lcyApO1xyXG4gICAgeCsrO1xyXG4gICAgaWYoIHg+PXRpbWVzICl7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwoIGlkICk7XHJcbiAgICB9XHJcbiAgfSwgZGVsYXkgKTtcclxuICByZXR1cm4gaWQ7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdsb2JhbEV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbnRlcmFjdGlvbiggaGl0Vm9sdW1lICl7XHJcbiAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbiAgbGV0IGFueUhvdmVyID0gZmFsc2U7XHJcbiAgbGV0IGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgbGV0IGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCB0VmVjdG9yID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCBhdmFpbGFibGVJbnB1dHMgPSBbXTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCBpbnB1dE9iamVjdHMgKXtcclxuXHJcbiAgICBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gICAgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuXHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuaW5kZXhPZiggaW5wdXQgKSA8IDAgKXtcclxuICAgICAgICBhdmFpbGFibGVJbnB1dHMucHVzaCggaW5wdXQgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgeyBoaXRPYmplY3QsIGhpdFBvaW50IH0gPSBleHRyYWN0SGl0KCBpbnB1dCApO1xyXG5cclxuICAgICAgdmFyIGhvdmVyID0gaGl0Vm9sdW1lID09PSBoaXRPYmplY3Q7XHJcbiAgICAgIGFueUhvdmVyID0gYW55SG92ZXIgfHwgaG92ZXI7XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAncHJlc3NlZCcsXHJcbiAgICAgICAgYnV0dG9uQ2xpY2tOYW1lOiAnY2xpY2tlZCcsIC8vbWF5YmUgbm90IHN0YWJsZSBwYXJ0IG9mIEFQSS4uLlxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ3ByZXNzJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uUHJlc3NlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdwcmVzc2luZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlZCcsXHJcbiAgICAgICAgIC8vaW52ZW50aW5nIGEgJ2hvdmVyaW5nJyBldmVudCB0aGF0IG9ubHkgYXBwbGllcyB0byAncHJlc3NlZCcgYnV0dG9uLi4uXHJcbiAgICAgICAgIC8vdGhpcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYSBzdGFibGUgaW50ZXJmYWNlLCBidXQgSSB3YW50cyBpdCBtb3JlIHRoYW4gSVxyXG4gICAgICAgICAvL3dhbnQgdG8gbWFrZSBzb21ldGhpbmcgdG90YWxseSBjb2hlcmVudCBhbmQgcm9idXN0IGp1c3Qgbm93LlxyXG4gICAgICAgIGhvdmVyTmFtZTogJ2hvdmVyaW5nJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAnZ3JpcHBlZCcsXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAnZ3JpcCcsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvbkdyaXBwZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAnZ3JpcHBpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZUdyaXAnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoICd0aWNrJywge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0gKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBleHRyYWN0SGl0KCBpbnB1dCApe1xyXG4gICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoIDw9IDAgKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogdFZlY3Rvci5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LmN1cnNvci5tYXRyaXhXb3JsZCApLmNsb25lKCksIC8veHh4OiBnYXJiYWdlP1xyXG4gICAgICAgIGhpdE9iamVjdDogdW5kZWZpbmVkLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLnBvaW50LFxyXG4gICAgICAgIGhpdE9iamVjdDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgIGlucHV0LCBob3ZlcixcclxuICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICBidXR0b25OYW1lLCBidXR0b25DbGlja05hbWUsIGludGVyYWN0aW9uTmFtZSwgZG93bk5hbWUsIGhvbGROYW1lLCB1cE5hbWUsIGhvdmVyTmFtZVxyXG4gIH0gPSB7fSApe1xyXG5cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGhpdE9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIC8vY2xpY2tlZCBhbmQgZGlkbid0IGhpdCBhbnkgR1VJIG9iamVjdC5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBob3ZlcmluZyBhbmQgYnV0dG9uIE5PVCBkb3duXHJcbiAgICBpZiggaG92ZXJOYW1lICYmIGhvdmVyICYmIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob3Zlck5hbWUsIHBheWxvYWQgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgaG92ZXJpbmcgYW5kIGJ1dHRvbiBkb3duIGJ1dCBubyBpbnRlcmFjdGlvbnMgYWN0aXZlIHlldFxyXG4gICAgLy8tLS0+IHNob3VsZCBiZSBeIGJ1dHRvbiAnY2xpY2tlZCcuLi4gaWUgb25seSBpZiBpdCBjYW1lIGRvd24gc2luY2UgdGhlIGxhc3QgdXBkYXRlLlxyXG4gICAgLy9zbywgc2hvdWxkIHdlIHBhc3MgJ2J1dHRvbkNsaWNrTmFtZScgYXMgYW4gYXJndW1lbnQgKGFuZCB1c2UgYnV0dG9uTmFtZSBpZiBub3QgcHJvdmlkZWQpP1xyXG4gICAgLy8tLS0+Pj4+IFhYWDogaXMgdGhpcyBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcLy8vLy8vLy8vLy8vIHdvcmtpbmcgd2l0aCBWaXZlIGNvbnRyb2xsZXJzPyBcclxuICAgIGlmKCBob3ZlciAmJiBpbnB1dFsgYnV0dG9uQ2xpY2tOYW1lIHx8IGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG5cclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpZiAoIWhpdE9iamVjdC51c2VyRGF0YS5wYXJ0T2ZNb2RhbCkgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG5cclxuICAgICAgcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpO1xyXG4gICAgICBcclxuICAgICAgLy9lbWl0IGdsb2JhbCBjbGljayBldmVudCBhcyB3ZWxsLi4uXHJcbiAgICAgIGdsb2JhbEV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgICBldmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGlmKCBwYXlsb2FkLmxvY2tlZCApe1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gaW50ZXJhY3Rpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgYW55QWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIHN0aWxsIGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggaG9sZE5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnb25Db250cm9sbGVySGVsZCcgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIG5vdCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IHVuZGVmaW5lZDtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCB1cE5hbWUsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpIHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGhpdE9iamVjdCk7XHJcbiAgICB0b3BGb2xkZXIucHJvbW90ZVpPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaXNNYWluSG92ZXIoKXtcclxuXHJcbiAgICBsZXQgbm9NYWluSG92ZXIgPSB0cnVlO1xyXG4gICAgZm9yKCBsZXQgaT0wOyBpPGF2YWlsYWJsZUlucHV0cy5sZW5ndGg7IGkrKyApe1xyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzWyBpIF0uaW50ZXJhY3Rpb24uaG92ZXIgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIG5vTWFpbkhvdmVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggbm9NYWluSG92ZXIgKXtcclxuICAgICAgcmV0dXJuIGFueUhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuZmlsdGVyKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgICAgcmV0dXJuIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID09PSBpbnRlcmFjdGlvbjtcclxuICAgIH0pLmxlbmd0aCA+IDAgKXtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0ge1xyXG4gICAgaG92ZXJpbmc6IGlzTWFpbkhvdmVyLFxyXG4gICAgcHJlc3Npbmc6ICgpPT5hbnlQcmVzc2luZyxcclxuICAgIHVwZGF0ZSxcclxuICAgIGV2ZW50cyxcclxuICAgIGhpdFZvbHVtZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufVxyXG5cclxuIiwiLyoqXHJcbiAqIFxyXG4gKiBUT0RPOiBjdXJzb3JzLi4uXHJcbiAqIE1heWJlIHNvbWV0aGluZyBsaWtlIG1vYmlsZSBpbnB1dCB3aGVyZSB5b3Ugc3dpdGNoIGJldHdlZW4gbGV0dGVycyAmIG51bWJlcnMgLyBzeW1ib2xzXHJcbiAqIFxyXG4gKiBTb21ldGhpbmcgbGlrZSBhIHNwbGl0IGtleWJvYXJkIGFsYSBodHRwczovL21lZGl1bS5jb20vYWFyb25uL3ZyLXRleHQtaW5wdXQtc3BsaXQta2V5Ym9hcmQtZTViZjNmZDg3YTRjXHJcbiAqIG1pZ2h0IGJlIGJldHRlci5cclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZCggeyBcclxuICAgIGtleUxpc3RlbmVyLFxyXG4gICAgdGV4dENyZWF0b3JcclxufSA9IHt9KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0VHJhbnNmb3JtID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBncm91cC5hZGQob2Zmc2V0VHJhbnNmb3JtKTtcclxuXHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgZXZlbnRzLm9uKCdrZXlEb3duJywga2V5TGlzdGVuZXIpO1xyXG4gICAgXHJcbiAgICBjb25zdCBsb3dlckNoYXJzID0gXCIxMjM0NTY3ODkwLT1xd2VydHl1aW9wW11hc2RmZ2hqa2w7JyNcXFxcenhjdmJubSwuLyBcIi5zcGxpdCgnJyk7XHJcbiAgICBsZXQgb2JqZWN0cyA9IGxvd2VyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG93ZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQobG93ZXJLZXlzKTtcclxuXHJcbiAgICBjb25zdCB1cHBlckNoYXJzID0gXCIhXFxcIsKjJCVeJiooKV8rUVdFUlRZVUlPUHt9QVNERkdISktMOkB+fFpYQ1ZCTk08Pj8gXCIuc3BsaXQoJycpO1xyXG4gICAgb2JqZWN0cyA9IHVwcGVyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBwZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIHVwcGVyS2V5cy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHVwcGVyS2V5cyk7XHJcblxyXG4gICAgbGV0IHNoaWZ0ID0gZmFsc2U7XHJcbiAgICBmdW5jdGlvbiBzaGlmdFRvZ2dsZSgpIHtcclxuICAgICAgICBzaGlmdCA9ICFzaGlmdDtcclxuICAgICAgICBsb3dlcktleXMudmlzaWJsZSA9ICFzaGlmdDtcclxuICAgICAgICB1cHBlcktleXMudmlzaWJsZSA9IHNoaWZ0O1xyXG4gICB9XHJcblxyXG4gICBjb25zdCBzcGFjZUJhciA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7IHRleHRDcmVhdG9yLCBjb2x1bW5zOiAxLCByb3dIZWlnaHQ6IDAuMSwgb2JqZWN0czogW1xyXG4gICAgICAge2Z1bmM6ICgpPT5ldmVudHMuZW1pdCgna2V5RG93bicsICcgJyksIHRleHQ6ICdzcGFjZSd9XHJcbiAgICBdfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwYWNlQmFyKTtcclxuICAgIHZhciB5ID0gc3BhY2VCYXIucG9zaXRpb24ueSA9IC0wLjUgKiAobG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nKTtcclxuICAgIFxyXG4gICAgb2JqZWN0cyA9IFtcclxuICAgICAgICB7IHRleHQ6IFwic2hpZnRcIiwgZnVuYzogc2hpZnRUb2dnbGUgfSxcclxuICAgICAgICB7IHRleHQ6IFwiYmFja3NwYWNlXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcYicpIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImVudGVyXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcbicpIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBzcGVjaWFsS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDMsIHJvd0hlaWdodDogMC4xfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwZWNpYWxLZXlzKTtcclxuICAgIHNwZWNpYWxLZXlzLnBvc2l0aW9uLnkgPSB5LTAuNSAqIChzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZyk7XHJcbiAgICBncm91cC5zcGFjaW5nID0gbG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZztcclxuICAgIC8vdGhpcyBsb29rcyByaWdodCwgbXVzdCBhZG1pdCBJIGhhdmVuJ3QgdGhvdWdodCB0aHJvdWdoIGV4YWN0bHkgd2h5IGl0IHNob3VsZCBiZS5cclxuICAgIG9mZnNldFRyYW5zZm9ybS5wb3NpdGlvbi55ID0gc3BlY2lhbEtleXMuc3BhY2luZztcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdoaXRzY2FuJywge1xyXG4gICAgICAgIGdldDogKCkgPT4gW1xyXG4gICAgICAgICAgICBzcGVjaWFsS2V5cy5oaXRzY2FuLCBzcGFjZUJhci5oaXRzY2FuLCBzaGlmdCA/IHVwcGVyS2V5cy5oaXRzY2FuIDogbG93ZXJLZXlzLmhpdHNjYW5cclxuICAgICAgICBdLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSlcclxuICAgIH0pO1xyXG5cclxuICAgIHNwYWNlQmFyLmZvbGRlciA9IHVwcGVyS2V5cy5mb2xkZXIgPSBsb3dlcktleXMuZm9sZGVyID0gc3BlY2lhbEtleXMuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gKGlucHV0cykgPT4ge1xyXG4gICAgICAgIHNwZWNpYWxLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBsb3dlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHNwYWNlQmFyLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICB1cHBlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWxpZ25MZWZ0KCBvYmogKXtcclxuICBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuTWVzaCApe1xyXG4gICAgb2JqLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4LnggLSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmouZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZWxzZSBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkgKXtcclxuICAgIG9iai5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gIGNvbnN0IG1hdGVyaWFsID0gdW5pcXVlTWF0ZXJpYWwgPyBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4ZmZmZmZmfSkgOiBTaGFyZWRNYXRlcmlhbHMuUEFORUw7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApLCBtYXRlcmlhbCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgaWYoIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuXHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxuXHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiByZXNpemVQYW5lbChwYW5lbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgpIHtcclxuICBwYW5lbC5nZW9tZXRyeS5zY2FsZSh3aWR0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGgsIGhlaWdodC9wYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0LCBkZXB0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGgpO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgY29sb3IgKXtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENPTlRST0xMRVJfSURfV0lEVEgsIGhlaWdodCwgQ09OVFJPTExFUl9JRF9ERVBUSCApLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIENPTlRST0xMRVJfSURfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIGNvbG9yICk7XHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRG93bkFycm93KCl7XHJcbiAgY29uc3QgdyA9IDAuMDA5NjtcclxuICBjb25zdCBoID0gMC4wMTY7XHJcbiAgY29uc3Qgc2ggPSBuZXcgVEhSRUUuU2hhcGUoKTtcclxuICBzaC5tb3ZlVG8oMCwwKTtcclxuICBzaC5saW5lVG8oLXcsaCk7XHJcbiAgc2gubGluZVRvKHcsaCk7XHJcbiAgc2gubGluZVRvKDAsMCk7XHJcblxyXG4gIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KCBzaCApO1xyXG4gIGdlby50cmFuc2xhdGUoIDAsIC1oICogMC41LCAwICk7XHJcblxyXG4gIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgUEFORUxfSEVJR0hUID0gMC4wODtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1NQQUNJTkcgPSAwOy8vLjAwMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX01BUkdJTiA9IDAuMDE1O1xyXG5leHBvcnQgY29uc3QgUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gPSAwLjA2O1xyXG5leHBvcnQgY29uc3QgUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9XSURUSCA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RFUFRIID0gMC4wMDE7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX1dJRFRIID0gMS4wMjY7XHJcbmV4cG9ydCBjb25zdCBTVUJGT0xERVJfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfSEVJR0hUID0gMC4wOTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9HUkFCX0hFSUdIVCA9IDAuMDUxMjtcclxuZXhwb3J0IGNvbnN0IEJPUkRFUl9USElDS05FU1MgPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfU0laRSA9IDAuMDU7XHJcbmV4cG9ydCBjb25zdCBURVhUX1NDQUxFID0gMC4wMDAyNDtcclxuZXhwb3J0IGNvbnN0IEdSSURfQlVUVE9OX01BUkdJTiA9IDAuMDE7IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvbkdyaXBwZWQnLCBoYW5kbGVPbkdyaXAgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VHcmlwJywgaGFuZGxlT25HcmlwUmVsZWFzZSApO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgbGV0IG9sZFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBsZXQgb2xkUm90YXRpb24gPSBuZXcgVEhSRUUuRXVsZXIoKTtcclxuXHJcbiAgY29uc3Qgcm90YXRpb25Hcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHJvdGF0aW9uR3JvdXAuc2NhbGUuc2V0KCAwLjMsIDAuMywgMC4zICk7XHJcbiAgcm90YXRpb25Hcm91cC5wb3NpdGlvbi5zZXQoIC0wLjAxNSwgMC4wMTUsIDAuMCApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwKCBwICl7XHJcblxyXG4gICAgY29uc3QgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9sZFBvc2l0aW9uLmNvcHkoIGZvbGRlci5wb3NpdGlvbiApO1xyXG4gICAgb2xkUm90YXRpb24uY29weSggZm9sZGVyLnJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24ueCA9IC1NYXRoLlBJICogMC41O1xyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG5cclxuICAgIHJvdGF0aW9uR3JvdXAuYWRkKCBmb2xkZXIgKTtcclxuXHJcbiAgICBpbnB1dE9iamVjdC5hZGQoIHJvdGF0aW9uR3JvdXAgKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGlubmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcFJlbGVhc2UoIHsgaW5wdXRPYmplY3QsIGlucHV0IH09e30gKXtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoIG9sZFBvc2l0aW9uICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uY29weSggb2xkUm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGluUmVsZWFzZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiLyoqXHJcbiAqIFBKVDogVGhpcyBpcyBhIHZhcmlhdGlvbiBvbiBzZGZzaGFkZXIgZnJvbSBibWZvbnQsIHdoaWNoIHNob3VsZCBKdXN0IFdvcmsgd2l0aCBsb2dhcml0aG1pYyBkZXB0aCBidWZmZXJzLlxyXG4gKiBJdCBzaG91bGQgYWxzbyBhbGxvdyBzb21lIG90aGVyIGFzcGVjdHMgb2YgVEhSRUUgcmVuZGVyaW5nIHRvIGJlIGluY29ycG9yYXRlZCwgbGlrZSBmb2csIGNsaXBwaW5nIHBsYW5lcy4uLlxyXG4gKiBFbnZpcm9ubWVudCBtYXBzIGFuZCB2YXJpb3VzIG90aGVyIGJpdHMgZnJvbSBNZXNoQmFzaWNNYXRlcmlhbCBhcmUgcmVtb3ZlZC5cclxuICogQXQgdGltZSBvZiB3cml0aW5nLCB0aGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MsIGFuZCBzb21ld2hhdCBtb3JlIGJsb2F0ZWQgdGhhbiBpdCBuZWVkcyB0byBiZS5cclxuICogVGhlIHNoYWRlciBjb2RlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBTaGFkZXJNYXRlcmlhbCByYXRoZXIgdGhhbiBSYXdTaGFkZXJNYXRlcmlhbC5cclxuICovXHJcbi8vIGltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XHJcblxyXG4vKipcclxuICogc3RhcnRpbmcgZnJvbSBUSFJFRSBtZXNoYmFzaWMgc2hhZGVycywgcHJ1bmluZyAvIG1vZGlmeWluZy4uLlxyXG4gKi9cclxuY29uc3QgbWVzaGJhc2ljX3ZlcnQgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XHJcblxyXG4vLyB2U2NhbGUgbm90IG5lZWRlZCBpZiB3ZSBhc3N1bWUgc3RhbmRhcmQgZGVyaXZhdGVzIGF2YWlsYWJsZSwgYXMgdGhleSBhcmUgaW4gV2ViZ2wyIFxyXG4vLyB2YXJ5aW5nIGZsb2F0IHZTY2FsZTtcclxuIC8vIFRoaXMgaXMgZGVmaW5lZCBpbiBsYXlvdXQuanMgKGFuZCB3YXMgb2JzZXJ2ZWQgbG9va2luZyBhdCB0aHJlZSBoZWlyYWNoeSBtYXRyaWNlcylcclxuIC8vICNkZWZpbmUgVEVYVF9TQ0FMRSAke0xheW91dC5URVhUX1NDQUxFfVxyXG52b2lkIG1haW4oKSB7XHJcbiAgXHJcbiAgLy8gdlNjYWxlID0gcG93KGFicyhkZXRlcm1pbmFudChtYXQzKG1vZGVsVmlld01hdHJpeCkpKSwgLTAuMzMzMzMpICogVEVYVF9TQ0FMRTtcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG4vLyB2YXJ5aW5nIGZsb2F0IHZTY2FsZTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLlxyXG4gICAgLy8gXHJcbiAgICAvLyNpZmRlZiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXNcclxuICAgICAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgLy8gI2Vsc2VcclxuICAgIC8vICAgICBmbG9hdCBhZndpZHRoID0gKDEuMCAvIDMyLjApICogKDEuNDE0MjEzNTYyMzczMDk1MSAvICgyLjAgKiBnbF9GcmFnQ29vcmQudykpO1xyXG4gICAgLy8gICAgIGFmd2lkdGggKj0gdlNjYWxlO1xyXG4gICAgLy8gI2VuZGlmXHJcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XHJcbn1cclxuLy8vL1xyXG5cclxudm9pZCBtYWluKCkge1xyXG5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxyXG5cclxuICAgIC8vL1xyXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xyXG4gICAgXHJcbiAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKG1hcCwgdlV2KTtcclxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcclxuICAgIGlmIChnbF9GcmFnQ29sb3IuYSA8IDAuMDAwMSkgZGlzY2FyZDtcclxuICAgIC8vL1xyXG5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XHJcbiAgICAvL1hYWDogYmlnIGNodW5rIHJlbW92ZWQgZnJvbSBvcmlnaW5hbCBtZXNoYmFzaWNfZnJhZyBoZXJlLlxyXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cclxufVxyXG5gO1xyXG5cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlU0RGU2hhZGVyIChvcHQpIHtcclxuICBvcHQgPSBvcHQgfHwge307XHJcbiAgdmFyIG9wYWNpdHkgPSB0eXBlb2Ygb3B0Lm9wYWNpdHkgPT09ICdudW1iZXInID8gb3B0Lm9wYWNpdHkgOiAxO1xyXG4gIC8vLy0tIGhhcmRjb2RlZCBpbiBzaGFkZXIgY29kZSwgZ3VpdnIgbmV2ZXIgcGFzc2VkIHRoZXNlIGluIG9wdCAtLVxyXG4gIC8vdmFyIGFscGhhVGVzdCA9IHR5cGVvZiBvcHQuYWxwaGFUZXN0ID09PSAnbnVtYmVyJyA/IG9wdC5hbHBoYVRlc3QgOiAwLjAwMDFcclxuICAvL3ZhciBwcmVjaXNpb24gPSBvcHQucHJlY2lzaW9uIHx8ICdoaWdocCdcclxuICB2YXIgY29sb3IgPSBvcHQuY29sb3I7XHJcbiAgdmFyIG1hcCA9IG9wdC5tYXA7XHJcbiAgXHJcbiAgb3B0LmV4dGVuc2lvbnMgPSBvcHQuZXh0ZW5zaW9ucyB8fCB7fTtcclxuICBvcHQuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcyA9IHRydWU7IC8vbmIsIGZhbHNlIGRlZmF1bHRzIGZvciBmcmFnRGVwdGgsIGRyYXdCdWZmZXJzLCBzaGFkZXJUZXh0dXJlTE9EIHdpbGwgbm8gbG9uZ2VyIGJlIHRoZXJlLlxyXG4gIG9wdC5uYW1lID0gXCJTREYgdGV4dCBtYXRlcmlhbFwiO1xyXG5cclxuICAvLyByZW1vdmUgdG8gc2F0aXNmeSByNzNcclxuICBkZWxldGUgb3B0Lm1hcDtcclxuICBkZWxldGUgb3B0LmNvbG9yO1xyXG4gIGRlbGV0ZSBvcHQucHJlY2lzaW9uO1xyXG4gIGRlbGV0ZSBvcHQub3BhY2l0eTtcclxuXHJcbiAgcmV0dXJuIGFzc2lnbih7XHJcbiAgICB1bmlmb3Jtczoge1xyXG4gICAgICBvcGFjaXR5OiB7IHR5cGU6ICdmJywgdmFsdWU6IG9wYWNpdHkgfSxcclxuICAgICAgbWFwOiB7IHR5cGU6ICd0JywgdmFsdWU6IG1hcCB8fCBuZXcgVEhSRUUuVGV4dHVyZSgpIH0sXHJcbiAgICAgIGNvbG9yOiB7IHR5cGU6ICdjJywgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcihjb2xvcikgfVxyXG4gICAgfSxcclxuICAgIHZlcnRleFNoYWRlcjogbWVzaGJhc2ljX3ZlcnQsXHJcbiAgICBmcmFnbWVudFNoYWRlcjogbWVzaGJhc2ljX2ZyYWdcclxuICB9LCBvcHQpO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgU0RGU2hhZGVyIGZyb20gJy4vc2Rmc2hhZGVyX2xvZ2RlcHRoJztcclxuaW1wb3J0IGNyZWF0ZUdlb21ldHJ5IGZyb20gJ3RocmVlLWJtZm9udC10ZXh0JztcclxuaW1wb3J0IHBhcnNlQVNDSUkgZnJvbSAncGFyc2UtYm1mb250LWFzY2lpJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmltcG9ydCAqIGFzIEZvbnQgZnJvbSAnLi9mb250JztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXRlcmlhbCggY29sb3IgKXtcclxuXHJcbiAgY29uc3QgaW1hZ2UgPSBGb250LmltYWdlKCk7XHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKGltYWdlKTsgdGV4dHVyZS5uYW1lID0gJ3NkZkZvbnRUZXh0dXJlJ1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIC8vTkI6Ojogc29tZXdoYXQgZXhwZXJpbWVudGFsIHJlcGxhY2VtZW50IG9mIFJhd1NoYWRlciBjb2RlIGZyb20gYm1mb250IHdpdGggdmFyaWF0aW9uIG9mIE1lc2hCYXNpYyBzaGFkZXJcclxuICAvL3RoaXMgc2hvdWxkIGFsbG93IGZvciBsb2dkZXB0aCwgZm9nIGlzIGFsc28gYW50aWNpcGF0ZWQgdG8gd29yayByZWFzb25hYmx5IHdlbGwuLi4gXHJcbiAgLy90b25lbWFwcGluZyBldGMgbWF5IGNvbmNlaXZhYmx5IGJlIGltcHJvdmVkLi4uIFlNTVYuXHJcbiAgbGV0IG1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKFNERlNoYWRlcih7XHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBjb2xvcjogY29sb3IsXHJcbiAgICBtYXA6IHRleHR1cmUsXHJcbiAgICB0eXBlOiAnU0RGIFRleHQnXHJcbiAgfSkpO1xyXG4gIHJldHVybiBtYXRlcmlhbDtcclxufVxyXG5cclxuY29uc3QgdGV4dFNjYWxlID0gTGF5b3V0LlRFWFRfU0NBTEU7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRvcigpe1xyXG5cclxuICBjb25zdCBmb250ID0gcGFyc2VBU0NJSSggRm9udC5mbnQoKSApO1xyXG5cclxuICBjb25zdCBjb2xvck1hdGVyaWFscyA9IHt9O1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVUZXh0KCBzdHIsIGZvbnQsIGNvbG9yID0gMHhmZmZmZmYsIHNjYWxlID0gMS4wLCB3aWR0aCwgaGVpZ2h0ICl7XHJcblxyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBjcmVhdGVHZW9tZXRyeSh7XHJcbiAgICAgIHRleHQ6IHN0cixcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IHdpZHRoLFxyXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcclxuICAgICAgZmxpcFk6IHRydWUsXHJcbiAgICAgIGZvbnRcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICBjb25zdCBsYXlvdXQgPSBnZW9tZXRyeS5sYXlvdXQ7XHJcblxyXG4gICAgbGV0IG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF07XHJcbiAgICBpZiggbWF0ZXJpYWwgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdID0gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseSggbmV3IFRIUkVFLlZlY3RvcjMoMSwtMSwxKSApO1xyXG5cclxuICAgIGNvbnN0IGZpbmFsU2NhbGUgPSBzY2FsZSAqIHRleHRTY2FsZTtcclxuXHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5U2NhbGFyKCBmaW5hbFNjYWxlICk7XHJcblxyXG4gICAgbWVzaC5wb3NpdGlvbi55ID0gbGF5b3V0LmhlaWdodCAqIDAuNSAqIGZpbmFsU2NhbGU7XHJcblxyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBzdHIsIHsgY29sb3I9MHhmZmZmZmYsIHNjYWxlPTEuMCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gICAgbGV0IG1lc2ggPSBjcmVhdGVUZXh0KCBzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSApO1xyXG4gICAgZ3JvdXAuYWRkKCBtZXNoICk7XHJcbiAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIGdyb3VwLmNvbXB1dGVXaWR0aCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC53aWR0aCAqIHNjYWxlICogTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICB9XHJcbiAgICBncm91cC5jb21wdXRlSGVpZ2h0ID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LmhlaWdodCAqIHNjYWxlICogTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuY29uc3RyYWluQm91bmRzID0gKHcsIGgpID0+IHtcclxuICAgICAgZ3JvdXAucmVtb3ZlKG1lc2gpO1xyXG4gICAgICBjb25zdCBzID0gTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIGNvbnN0IGhGYWN0b3IgPSBtZXNoLmdlb21ldHJ5LmxheW91dC5oZWlnaHQqcy9oO1xyXG4gICAgICBpZiAoaEZhY3RvciA+IDEpIHtcclxuICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIDAuOTUqIHN0ci5sZW5ndGgvaEZhY3RvcikgKyAnLi4uJztcclxuICAgICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICB9XHJcbiAgICAgIGdyb3VwLmFkZChtZXNoKTtcclxuICAgICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlTGFiZWwgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIG1lc2guZ2VvbWV0cnkudXBkYXRlKCBzdHIgKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiBUSFJFRS5WZXJ0ZXhDb2xvcnMgfSApO1xyXG5leHBvcnQgY29uc3QgTE9DQVRPUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG5leHBvcnQgY29uc3QgRk9MREVSID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDAwMDAwMCB9ICk7XHJcbmV4cG9ydCBjb25zdCBUT09MVElQID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDIwNTA4MCwgdHJhbnNwYXJlbnQ6IGZhbHNlLCBvcGFjaXR5OiAwLjggfSApO1xyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTbGlkZXIoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gMC4wLFxyXG4gIG1pbiA9IDAuMCwgbWF4ID0gMS4wLFxyXG4gIHN0ZXAgPSAwLjEsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaW5pdGlhbEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGFscGhhOiAxLjAsXHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgc3RlcDogc3RlcCxcclxuICAgIHVzZVN0ZXA6IHRydWUsXHJcbiAgICBwcmVjaXNpb246IDEsXHJcbiAgICBsaXN0ZW46IGZhbHNlLFxyXG4gICAgbWluOiBtaW4sXHJcbiAgICBtYXg6IG1heCxcclxuICAgIG9uQ2hhbmdlZENCOiB1bmRlZmluZWQsXHJcbiAgICBvbkZpbmlzaGVkQ2hhbmdlOiB1bmRlZmluZWQsXHJcbiAgICBwcmVzc2luZzogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIHN0YXRlLnN0ZXAgPSBnZXRJbXBsaWVkU3RlcCggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKTtcclxuICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInNsaWRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIGdyb3VwLnNldEhlaWdodCA9IGhlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZSggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgICBjb25zdCBTTElERVJfV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9ERVBUSCA9IGRlcHRoO1xyXG5cclxuICAgIC8vICBmaWxsZWQgdm9sdW1lXHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBTTElERVJfV0lEVEgsIFNMSURFUl9IRUlHSFQsIFNMSURFUl9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoU0xJREVSX1dJRFRIKjAuNSwwLDApO1xyXG4gICAgLy8gTGF5b3V0LmFsaWduTGVmdCggcmVjdCApO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5uYW1lID0gJ2hpdHNjYW5Wb2x1bWUnO1xyXG5cclxuICAgIC8vICBzbGlkZXJCRyB2b2x1bWVcclxuICAgIGNvbnN0IHNsaWRlckJHID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggc2xpZGVyQkcuZ2VvbWV0cnksIENvbG9ycy5TTElERVJfQkcgKTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEggKyBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG5cclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5ERUZBVUxUX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGZpbGxlZFZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgY29uc3QgZW5kTG9jYXRvciA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIDAuMDUsIDAuMDUsIDAuMDUsIDEsIDEsIDEgKSwgU2hhcmVkTWF0ZXJpYWxzLkxPQ0FUT1IgKTtcclxuICAgIGVuZExvY2F0b3IucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSDtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBlbmRMb2NhdG9yICk7XHJcbiAgICBlbmRMb2NhdG9yLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB2YWx1ZUxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gKyB3aWR0aCAqIDAuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoKjIuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzMjU7XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9TTElERVIgKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBwYW5lbC5uYW1lID0gJ3BhbmVsJztcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBzbGlkZXJCRywgdmFsdWVMYWJlbCwgY29udHJvbGxlcklEICk7XHJcblxyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApXHJcblxyXG4gICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgIHVwZGF0ZVNsaWRlcigpO1xyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbHVlTGFiZWwoIHZhbHVlICl7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggcm91bmRUb0RlY2ltYWwoIHN0YXRlLnZhbHVlLCBzdGF0ZS5wcmVjaXNpb24gKS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICAgIGlmKCBzdGF0ZS5wcmVzc2luZyApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLklOVEVSQUNUSU9OX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU2xpZGVyKCl7XHJcbiAgICAgIGZpbGxlZFZvbHVtZS5zY2FsZS54ID1cclxuICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgIE1hdGgubWF4KCBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICkgKiB3aWR0aCwgMC4wMDAwMDEgKSxcclxuICAgICAgICAgIHdpZHRoXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVPYmplY3QoIHZhbHVlICl7XHJcbiAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTdGF0ZUZyb21BbHBoYSggYWxwaGEgKXtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICk7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tQWxwaGEoIHN0YXRlLmFscGhhLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gZ2V0U3RlcHBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUuc3RlcCApO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0Q2xhbXBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKXtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21PYmplY3QoKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRnJvbU9iamVjdCgpe1xyXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICAgIHN0YXRlLm9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAuc3RlcCA9IGZ1bmN0aW9uKCBzdGVwICl7XHJcbiAgICAgIHN0YXRlLnN0ZXAgPSBzdGVwO1xyXG4gICAgICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApXHJcbiAgICAgIHN0YXRlLnVzZVN0ZXAgPSB0cnVlO1xyXG5cclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlUHJlc3MgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlSG9sZCApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZVJlbGVhc2UgKTtcclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVQcmVzcyggcCApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlSG9sZCggeyBwb2ludCB9ID0ge30gKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBmaWxsZWRWb2x1bWUudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgZW5kTG9jYXRvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG5cclxuICAgICAgY29uc3QgYSA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBmaWxsZWRWb2x1bWUubWF0cml4V29ybGQgKTtcclxuICAgICAgY29uc3QgYiA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBlbmRMb2NhdG9yLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHthLGJ9ICkgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICB1cGRhdGVPYmplY3QoIHN0YXRlLnZhbHVlICk7XHJcblxyXG4gICAgICBpZiggcHJldmlvdXNWYWx1ZSAhPT0gc3RhdGUudmFsdWUgJiYgc3RhdGUub25DaGFuZ2VkQ0IgKXtcclxuICAgICAgICBzdGF0ZS5vbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVJlbGVhc2UoKXtcclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgICB1cGRhdGVTbGlkZXIoKTtcclxuICAgICAgfVxyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWluID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWluID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWF4ID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWF4ID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfSAvLyAvc2V0SGVpZ2h0XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KCBpbml0aWFsSGVpZ2h0ICk7XHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCB0YSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRiID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdFRvQSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IGFUb0IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHNlZ21lbnQgKXtcclxuICB0YS5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG4gIHRiLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgY29uc3QgcHJvamVjdGVkID0gdGIucHJvamVjdE9uVmVjdG9yKCB0YSApO1xyXG5cclxuICB0VG9BLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgYVRvQi5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApLm5vcm1hbGl6ZSgpO1xyXG5cclxuICBjb25zdCBzaWRlID0gdFRvQS5ub3JtYWxpemUoKS5kb3QoIGFUb0IgKSA+PSAwID8gMSA6IC0xO1xyXG5cclxuICBjb25zdCBsZW5ndGggPSBzZWdtZW50LmEuZGlzdGFuY2VUbyggc2VnbWVudC5iICkgKiBzaWRlO1xyXG5cclxuICBsZXQgYWxwaGEgPSBwcm9qZWN0ZWQubGVuZ3RoKCkgLyBsZW5ndGg7XHJcbiAgaWYoIGFscGhhID4gMS4wICl7XHJcbiAgICBhbHBoYSA9IDEuMDtcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMC4wICl7XHJcbiAgICBhbHBoYSA9IDAuMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsZXJwKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIHJldHVybiAoMS12YWx1ZSkqbWluICsgdmFsdWUqbWF4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXBfcmFuZ2UodmFsdWUsIGxvdzEsIGhpZ2gxLCBsb3cyLCBoaWdoMikge1xyXG4gICAgcmV0dXJuIGxvdzIgKyAoaGlnaDIgLSBsb3cyKSAqICh2YWx1ZSAtIGxvdzEpIC8gKGhpZ2gxIC0gbG93MSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRBbHBoYSggYWxwaGEgKXtcclxuICBpZiggYWxwaGEgPiAxICl7XHJcbiAgICByZXR1cm4gMVxyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwICl7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIGlmKCB2YWx1ZSA8IG1pbiApe1xyXG4gICAgcmV0dXJuIG1pbjtcclxuICB9XHJcbiAgaWYoIHZhbHVlID4gbWF4ICl7XHJcbiAgICByZXR1cm4gbWF4O1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEltcGxpZWRTdGVwKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICAvL1BKVDogd2hhdCB3b3VsZCB3ZSBsaWtlIHN0ZXAgdG8gbG9vayBsaWtlP1xyXG4gIC8vU29tZXRoaW5nIHRoYXQgaGFzIGFib3V0IHRoZSBvcmRlciBvZiBtYWduaXR1ZGUsIGFuZCBsb29rcyBuaWNlIGluIGJhc2UgMTA/XHJcbiAgY29uc3QgciA9IG1heC1taW47XHJcbiAgbGV0IHN0ZXAgPSByLzEwMDsgLy93aGF0IGlzIHRoZSByYXRpbyBvZiBudW1iZXIgb2YgZGVjaW1hbHMgdG8gb3JkZXIgb2YgbWFnbml0dWRlP1xyXG4gIFxyXG4gIHJldHVybiBzdGVwO1xyXG5cclxuICAvLyBpZiggdmFsdWUgPT09IDAgKXtcclxuICAvLyAgIHJldHVybiAxOyAvLyBXaGF0IGFyZSB3ZSwgcHN5Y2hpY3M/IC8vPDw8PC0tLSBubywgc28gd2Ugc2hvdWxkIGJhc2UgaW1wbGllZFN0ZXAgb24gbWluL21heCwgbm90IHZhbHVlXHJcbiAgLy8gfSBlbHNlIHtcclxuICAvLyAgIC8vIEhleSBEb3VnLCBjaGVjayB0aGlzIG91dC5cclxuICAvLyAgIHJldHVybiBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihNYXRoLmxvZyhNYXRoLmFicyh2YWx1ZSkpL01hdGguTE4xMCkpLzEwO1xyXG4gIC8vIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tQWxwaGEoIGFscGhhLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIGFscGhhLCAwLjAsIDEuMCwgbWluLCBtYXggKVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBbHBoYUZyb21WYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggdmFsdWUsIG1pbiwgbWF4LCAwLjAsIDEuMCApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGVwcGVkVmFsdWUoIHZhbHVlLCBzdGVwICl7XHJcbiAgaWYoIHZhbHVlICUgc3RlcCAhPSAwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZCggdmFsdWUgLyBzdGVwICkgKiBzdGVwO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG51bURlY2ltYWxzKHgpIHtcclxuICB4ID0geC50b1N0cmluZygpO1xyXG4gIGlmICh4LmluZGV4T2YoJy4nKSA+IC0xKSB7XHJcbiAgICByZXR1cm4geC5sZW5ndGggLSB4LmluZGV4T2YoJy4nKSAtIDE7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcm91bmRUb0RlY2ltYWwodmFsdWUsIGRlY2ltYWxzKSB7XHJcbiAgaWYgKE1hdGguYWJzKHZhbHVlKSA8IDAuMDEgJiYgdmFsdWUgIT09IDApIHJldHVybiB2YWx1ZS50b0V4cG9uZW50aWFsKDMpO1xyXG4gIGNvbnN0IHRlblRvID0gTWF0aC5wb3coMTAsIGRlY2ltYWxzKTtcclxuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIHRlblRvKSAvIHRlblRvO1xyXG59IiwiLyoqXHJcbiAqIFdoZW4gdGhlIHRleHRib3ggaXMgZm9jdXNzZWQsICBhIGtleWJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLi4uXHJcbiAqIFRoZXJlIHNob3VsZCBhbHNvIGJlIGEgd2F5IG9mIGRpc21pc3NpbmcgaXQgbGF0ZXIuICBJdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRvXHJcbiAqIHByZXZlbnQgbXVsdGlwbGUga2V5Ym9hcmRzIGJlaW5nIG1hZGUgc2ltdWx0YW5lb3VzbHk/XHJcbiAqIFxyXG4gKiBJbiBvcmRlciB0byBtYWtlIGl0IGFwcGVhciwgaXQgY2FuIGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgdGhlIHRleGJveCBub2RlIGl0c2VsZi4uLlxyXG4gKiBUaGlzJ2xsIG1lYW4gdGhhdCBpdCBnZXRzIGRyYWdnZWQgYXJvdW5kIGJ5IHRoZSBwYXJlbnQgR1VJIGFzIGl0IG1vdmVzLi4uLlxyXG4gKiBNYWtlcyBmb3IgcmVsYXRpdmVseSBjbGVhbiwgc2ltcGxlIGltcGxlbWVudGF0aW9uIGF0IGxlYXN0LlxyXG4gKiBBdCB0aGUgbW9tZW50LCBrZXlib2FyZCBwb3NpdGlvbmluZyBpcyBtZXNzZWQgdXAgYnkgdGhpcyBhcnJhbmdlbWVudC5cclxuICogUmVtb3ZpbmcgZ3JhYmJlciBtYWtlcyBpdCBsZXNzIGxpa2VseSBhIHVzZXIgd2lsbCBkbyB0aGlzLCBidXQgbWlnaHQgYmUgd29ydGggZml4aW5nIHRoZSBiYXNpYyBidWcuXHJcbiAqIFxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIEdVSSBmcm9tICcuL2luZGV4JztcclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRCb3goe1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSkge1xyXG4gIC8vIGJpZyBvbGQgY29weSAvIHBhc3RlIGZyb20gYnV0dG9uLmpzLiBNaWdodCB0cnkgdG8gZmFjdG9yIG91dCBzb21lIG9mIHRoaXMgY29tbW9uIGNvZGUuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGJveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCIvKlxyXG4gKlx0QGF1dGhvciB6ejg1IC8gaHR0cDovL3R3aXR0ZXIuY29tL2JsdXJzcGxpbmUgLyBodHRwOi8vd3d3LmxhYjRnYW1lcy5uZXQveno4NS9ibG9nXHJcbiAqXHRAYXV0aG9yIGNlbnRlcmlvbndhcmUgLyBodHRwOi8vd3d3LmNlbnRlcmlvbndhcmUuY29tXHJcbiAqXHJcbiAqXHRTdWJkaXZpc2lvbiBHZW9tZXRyeSBNb2RpZmllclxyXG4gKlx0XHR1c2luZyBMb29wIFN1YmRpdmlzaW9uIFNjaGVtZVxyXG4gKlxyXG4gKlx0UmVmZXJlbmNlczpcclxuICpcdFx0aHR0cDovL2dyYXBoaWNzLnN0YW5mb3JkLmVkdS9+bWRmaXNoZXIvc3ViZGl2aXNpb24uaHRtbFxyXG4gKlx0XHRodHRwOi8vd3d3LmhvbG1lczNkLm5ldC9ncmFwaGljcy9zdWJkaXZpc2lvbi9cclxuICpcdFx0aHR0cDovL3d3dy5jcy5ydXRnZXJzLmVkdS9+ZGVjYXJsby9yZWFkaW5ncy9zdWJkaXYtc2cwMGMucGRmXHJcbiAqXHJcbiAqXHRLbm93biBJc3N1ZXM6XHJcbiAqXHRcdC0gY3VycmVudGx5IGRvZXNuJ3QgaGFuZGxlIFwiU2hhcnAgRWRnZXNcIlxyXG4gKi9cclxuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIgPSBmdW5jdGlvbiAoIHN1YmRpdmlzaW9ucyApIHtcclxuXHJcblx0dGhpcy5zdWJkaXZpc2lvbnMgPSAoIHN1YmRpdmlzaW9ucyA9PT0gdW5kZWZpbmVkICkgPyAxIDogc3ViZGl2aXNpb25zO1xyXG5cclxufTtcclxuXHJcbi8vIEFwcGxpZXMgdGhlIFwibW9kaWZ5XCIgcGF0dGVyblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5tb2RpZnkgPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkge1xyXG5cclxuXHR2YXIgcmVwZWF0cyA9IHRoaXMuc3ViZGl2aXNpb25zO1xyXG5cclxuXHR3aGlsZSAoIHJlcGVhdHMgLS0gPiAwICkge1xyXG5cclxuXHRcdHRoaXMuc21vb3RoKCBnZW9tZXRyeSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGdlb21ldHJ5LmNvbXB1dGVGYWNlTm9ybWFscygpO1xyXG5cdGdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XHJcblxyXG59O1xyXG5cclxuKCBmdW5jdGlvbigpIHtcclxuXHJcblx0Ly8gU29tZSBjb25zdGFudHNcclxuXHR2YXIgV0FSTklOR1MgPSAhIHRydWU7IC8vIFNldCB0byB0cnVlIGZvciBkZXZlbG9wbWVudFxyXG5cdHZhciBBQkMgPSBbICdhJywgJ2InLCAnYycgXTtcclxuXHJcblxyXG5cdGZ1bmN0aW9uIGdldEVkZ2UoIGEsIGIsIG1hcCApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHRyZXR1cm4gbWFwWyBrZXkgXTtcclxuXHJcblx0fVxyXG5cclxuXHJcblx0ZnVuY3Rpb24gcHJvY2Vzc0VkZ2UoIGEsIGIsIHZlcnRpY2VzLCBtYXAsIGZhY2UsIG1ldGFWZXJ0aWNlcyApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHR2YXIgZWRnZTtcclxuXHJcblx0XHRpZiAoIGtleSBpbiBtYXAgKSB7XHJcblxyXG5cdFx0XHRlZGdlID0gbWFwWyBrZXkgXTtcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0dmFyIHZlcnRleEEgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhBIF07XHJcblx0XHRcdHZhciB2ZXJ0ZXhCID0gdmVydGljZXNbIHZlcnRleEluZGV4QiBdO1xyXG5cclxuXHRcdFx0ZWRnZSA9IHtcclxuXHJcblx0XHRcdFx0YTogdmVydGV4QSwgLy8gcG9pbnRlciByZWZlcmVuY2VcclxuXHRcdFx0XHRiOiB2ZXJ0ZXhCLFxyXG5cdFx0XHRcdG5ld0VkZ2U6IG51bGwsXHJcblx0XHRcdFx0Ly8gYUluZGV4OiBhLCAvLyBudW1iZXJlZCByZWZlcmVuY2VcclxuXHRcdFx0XHQvLyBiSW5kZXg6IGIsXHJcblx0XHRcdFx0ZmFjZXM6IFtdIC8vIHBvaW50ZXJzIHRvIGZhY2VcclxuXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRtYXBbIGtleSBdID0gZWRnZTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0ZWRnZS5mYWNlcy5wdXNoKCBmYWNlICk7XHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzWyBhIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cdFx0bWV0YVZlcnRpY2VzWyBiIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBnZW5lcmF0ZUxvb2t1cHMoIHZlcnRpY2VzLCBmYWNlcywgbWV0YVZlcnRpY2VzLCBlZGdlcyApIHtcclxuXHJcblx0XHR2YXIgaSwgaWwsIGZhY2UsIGVkZ2U7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gdmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRtZXRhVmVydGljZXNbIGkgXSA9IHsgZWRnZXM6IFtdIH07XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IGZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IGZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5hLCBmYWNlLmIsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmIsIGZhY2UuYywgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYywgZmFjZS5hLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdGYWNlKCBuZXdGYWNlcywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdGYWNlcy5wdXNoKCBuZXcgVEhSRUUuRmFjZTMoIGEsIGIsIGMgKSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG1pZHBvaW50KCBhLCBiICkge1xyXG5cclxuXHRcdHJldHVybiAoIE1hdGguYWJzKCBiIC0gYSApIC8gMiApICsgTWF0aC5taW4oIGEsIGIgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdVdiggbmV3VXZzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld1V2cy5wdXNoKCBbIGEuY2xvbmUoKSwgYi5jbG9uZSgpLCBjLmNsb25lKCkgXSApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cdC8vIFBlcmZvcm1zIG9uZSBpdGVyYXRpb24gb2YgU3ViZGl2aXNpb25cclxuXHRUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5zbW9vdGggPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkgeyByZXR1cm47IC8vIHNqcHQgVEVNUCBUT0RPXHJcblxyXG5cdFx0dmFyIHRtcCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0dmFyIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgb2xkVXZzO1xyXG5cdFx0dmFyIG5ld1ZlcnRpY2VzLCBuZXdGYWNlcywgbmV3VVZzID0gW107XHJcblxyXG5cdFx0dmFyIG4sIGwsIGksIGlsLCBqLCBrO1xyXG5cdFx0dmFyIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXM7XHJcblxyXG5cdFx0Ly8gbmV3IHN0dWZmLlxyXG5cdFx0dmFyIHNvdXJjZUVkZ2VzLCBuZXdFZGdlVmVydGljZXMsIG5ld1NvdXJjZVZlcnRpY2VzO1xyXG5cclxuXHRcdG9sZFZlcnRpY2VzID0gZ2VvbWV0cnkudmVydGljZXM7IC8vIHsgeCwgeSwgen1cclxuXHRcdG9sZEZhY2VzID0gZ2VvbWV0cnkuZmFjZXM7IC8vIHsgYTogb2xkVmVydGV4MSwgYjogb2xkVmVydGV4MiwgYzogb2xkVmVydGV4MyB9XHJcblx0XHRvbGRVdnMgPSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF07XHJcblxyXG5cdFx0dmFyIGhhc1V2cyA9IG9sZFV2cyAhPT0gdW5kZWZpbmVkICYmIG9sZFV2cy5sZW5ndGggPiAwO1xyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKiBTdGVwIDA6IFByZXByb2Nlc3MgR2VvbWV0cnkgdG8gR2VuZXJhdGUgZWRnZXMgTG9va3VwXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzID0gbmV3IEFycmF5KCBvbGRWZXJ0aWNlcy5sZW5ndGggKTtcclxuXHRcdHNvdXJjZUVkZ2VzID0ge307IC8vIEVkZ2UgPT4geyBvbGRWZXJ0ZXgxLCBvbGRWZXJ0ZXgyLCBmYWNlc1tdICB9XHJcblxyXG5cdFx0Z2VuZXJhdGVMb29rdXBzKCBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXMgKTtcclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDEuXHJcblx0XHQgKlx0Rm9yIGVhY2ggZWRnZSwgY3JlYXRlIGEgbmV3IEVkZ2UgVmVydGV4LFxyXG5cdFx0ICpcdHRoZW4gcG9zaXRpb24gaXQuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3RWRnZVZlcnRpY2VzID0gW107XHJcblx0XHR2YXIgb3RoZXIsIGN1cnJlbnRFZGdlLCBuZXdFZGdlLCBmYWNlO1xyXG5cdFx0dmFyIGVkZ2VWZXJ0ZXhXZWlnaHQsIGFkamFjZW50VmVydGV4V2VpZ2h0LCBjb25uZWN0ZWRGYWNlcztcclxuXHJcblx0XHRmb3IgKCBpIGluIHNvdXJjZUVkZ2VzICkge1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UgPSBzb3VyY2VFZGdlc1sgaSBdO1xyXG5cdFx0XHRuZXdFZGdlID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAzIC8gODtcclxuXHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdGNvbm5lY3RlZEZhY2VzID0gY3VycmVudEVkZ2UuZmFjZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgaG93IG1hbnkgbGlua2VkIGZhY2VzLiAyIHNob3VsZCBiZSBjb3JyZWN0LlxyXG5cdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGlmIGxlbmd0aCBpcyBub3QgMiwgaGFuZGxlIGNvbmRpdGlvblxyXG5cdFx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAwLjU7XHJcblx0XHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ1N1YmRpdmlzaW9uIE1vZGlmaWVyOiBOdW1iZXIgb2YgY29ubmVjdGVkIGZhY2VzICE9IDIsIGlzOiAnLCBjb25uZWN0ZWRGYWNlcywgY3VycmVudEVkZ2UgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3RWRnZS5hZGRWZWN0b3JzKCBjdXJyZW50RWRnZS5hLCBjdXJyZW50RWRnZS5iICkubXVsdGlwbHlTY2FsYXIoIGVkZ2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgY29ubmVjdGVkRmFjZXM7IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGZhY2UgPSBjdXJyZW50RWRnZS5mYWNlc1sgaiBdO1xyXG5cclxuXHRcdFx0XHRmb3IgKCBrID0gMDsgayA8IDM7IGsgKysgKSB7XHJcblxyXG5cdFx0XHRcdFx0b3RoZXIgPSBvbGRWZXJ0aWNlc1sgZmFjZVsgQUJDWyBrIF0gXSBdO1xyXG5cdFx0XHRcdFx0aWYgKCBvdGhlciAhPT0gY3VycmVudEVkZ2UuYSAmJiBvdGhlciAhPT0gY3VycmVudEVkZ2UuYiApIGJyZWFrO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGFkamFjZW50VmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld0VkZ2UuYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlLm5ld0VkZ2UgPSBuZXdFZGdlVmVydGljZXMubGVuZ3RoO1xyXG5cdFx0XHRuZXdFZGdlVmVydGljZXMucHVzaCggbmV3RWRnZSApO1xyXG5cclxuXHRcdFx0Ly8gY29uc29sZS5sb2coY3VycmVudEVkZ2UsIG5ld0VkZ2UpO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMi5cclxuXHRcdCAqXHRSZXBvc2l0aW9uIGVhY2ggc291cmNlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdHZhciBiZXRhLCBzb3VyY2VWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQ7XHJcblx0XHR2YXIgY29ubmVjdGluZ0VkZ2UsIGNvbm5lY3RpbmdFZGdlcywgb2xkVmVydGV4LCBuZXdTb3VyY2VWZXJ0ZXg7XHJcblx0XHRuZXdTb3VyY2VWZXJ0aWNlcyA9IFtdO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZFZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0b2xkVmVydGV4ID0gb2xkVmVydGljZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgYWxsIGNvbm5lY3RpbmcgZWRnZXMgKHVzaW5nIGxvb2t1cFRhYmxlKVxyXG5cdFx0XHRjb25uZWN0aW5nRWRnZXMgPSBtZXRhVmVydGljZXNbIGkgXS5lZGdlcztcclxuXHRcdFx0biA9IGNvbm5lY3RpbmdFZGdlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIG4gPT0gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAxNjtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoIG4gPiAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvICggOCAqIG4gKTsgLy8gV2FycmVuJ3MgbW9kaWZpZWQgZm9ybXVsYVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTG9vcCdzIG9yaWdpbmFsIGJldGEgZm9ybXVsYVxyXG5cdFx0XHQvLyBiZXRhID0gMSAvIG4gKiAoIDUvOCAtIE1hdGgucG93KCAzLzggKyAxLzQgKiBNYXRoLmNvcyggMiAqIE1hdGguIFBJIC8gbiApLCAyKSApO1xyXG5cclxuXHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMSAtIG4gKiBiZXRhO1xyXG5cdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gYmV0YTtcclxuXHJcblx0XHRcdGlmICggbiA8PSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzXHJcblx0XHRcdFx0Ly8gY29uc29sZS53YXJuKCdjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzJyk7XHJcblxyXG5cdFx0XHRcdGlmICggbiA9PSAyICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcyIGNvbm5lY3RpbmcgZWRnZXMnLCBjb25uZWN0aW5nRWRnZXMgKTtcclxuXHRcdFx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDMgLyA0O1xyXG5cdFx0XHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0XHRcdC8vIHNvdXJjZVZlcnRleFdlaWdodCA9IDE7XHJcblx0XHRcdFx0XHQvLyBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdvbmx5IDEgY29ubmVjdGluZyBlZGdlJyApO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDAgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzAgY29ubmVjdGluZyBlZGdlcycgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGV4ID0gb2xkVmVydGV4LmNsb25lKCkubXVsdGlwbHlTY2FsYXIoIHNvdXJjZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBuOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRjb25uZWN0aW5nRWRnZSA9IGNvbm5lY3RpbmdFZGdlc1sgaiBdO1xyXG5cdFx0XHRcdG90aGVyID0gY29ubmVjdGluZ0VkZ2UuYSAhPT0gb2xkVmVydGV4ID8gY29ubmVjdGluZ0VkZ2UuYSA6IGNvbm5lY3RpbmdFZGdlLmI7XHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggY29ubmVjdGluZ1ZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXguYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRpY2VzLnB1c2goIG5ld1NvdXJjZVZlcnRleCApO1xyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDMuXHJcblx0XHQgKlx0R2VuZXJhdGUgRmFjZXMgYmV0d2VlbiBzb3VyY2UgdmVydGljZXNcclxuXHRcdCAqXHRhbmQgZWRnZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdWZXJ0aWNlcyA9IG5ld1NvdXJjZVZlcnRpY2VzLmNvbmNhdCggbmV3RWRnZVZlcnRpY2VzICk7XHJcblx0XHR2YXIgc2wgPSBuZXdTb3VyY2VWZXJ0aWNlcy5sZW5ndGgsIGVkZ2UxLCBlZGdlMiwgZWRnZTM7XHJcblx0XHRuZXdGYWNlcyA9IFtdO1xyXG5cclxuXHRcdHZhciB1diwgeDAsIHgxLCB4MjtcclxuXHRcdHZhciB4MyA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDQgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg1ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRGYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBvbGRGYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCB0aGUgMyBuZXcgZWRnZXMgdmVydGV4IG9mIGVhY2ggb2xkIGZhY2VcclxuXHJcblx0XHRcdGVkZ2UxID0gZ2V0RWRnZSggZmFjZS5hLCBmYWNlLmIsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMiA9IGdldEVkZ2UoIGZhY2UuYiwgZmFjZS5jLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTMgPSBnZXRFZGdlKCBmYWNlLmMsIGZhY2UuYSwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBmYWNlcy5cclxuXHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBlZGdlMSwgZWRnZTIsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmEsIGVkZ2UxLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5iLCBlZGdlMiwgZWRnZTEgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYywgZWRnZTMsIGVkZ2UyICk7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBuZXcgdXYnc1xyXG5cclxuXHRcdFx0aWYgKCBoYXNVdnMgKSB7XHJcblxyXG5cdFx0XHRcdHV2ID0gb2xkVXZzWyBpIF07XHJcblxyXG5cdFx0XHRcdHgwID0gdXZbIDAgXTtcclxuXHRcdFx0XHR4MSA9IHV2WyAxIF07XHJcblx0XHRcdFx0eDIgPSB1dlsgMiBdO1xyXG5cclxuXHRcdFx0XHR4My5zZXQoIG1pZHBvaW50KCB4MC54LCB4MS54ICksIG1pZHBvaW50KCB4MC55LCB4MS55ICkgKTtcclxuXHRcdFx0XHR4NC5zZXQoIG1pZHBvaW50KCB4MS54LCB4Mi54ICksIG1pZHBvaW50KCB4MS55LCB4Mi55ICkgKTtcclxuXHRcdFx0XHR4NS5zZXQoIG1pZHBvaW50KCB4MC54LCB4Mi54ICksIG1pZHBvaW50KCB4MC55LCB4Mi55ICkgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDMsIHg0LCB4NSApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgwLCB4MywgeDUgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDEsIHg0LCB4MyApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgyLCB4NSwgeDQgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3ZlcndyaXRlIG9sZCBhcnJheXNcclxuXHRcdGdlb21ldHJ5LnZlcnRpY2VzID0gbmV3VmVydGljZXM7XHJcblx0XHRnZW9tZXRyeS5mYWNlcyA9IG5ld0ZhY2VzO1xyXG5cdFx0aWYgKCBoYXNVdnMgKSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF0gPSBuZXdVVnM7XHJcblxyXG5cdFx0Ly8gY29uc29sZS5sb2coJ2RvbmUnKTtcclxuXHJcblx0fTtcclxuXHJcbn0gKSgpO1xyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgQmFzZS5jYWxsKHRoaXMpXG5cbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIHRoZXNlIGFzIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgc3Vic2VxdWVudFxuICAvLyBjYWxscyB0byB1cGRhdGUoKVxuICB0aGlzLl9vcHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX29wdCwgb3B0KVxuXG4gIGlmICghb3B0LmZvbnQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgYSB7IGZvbnQgfSBpbiBvcHRpb25zJylcbiAgfVxuXG4gIHRoaXMubGF5b3V0ID0gY3JlYXRlTGF5b3V0KG9wdClcblxuICAvLyBnZXQgdmVjMiB0ZXhjb29yZHNcbiAgdmFyIGZsaXBZID0gb3B0LmZsaXBZICE9PSBmYWxzZVxuXG4gIC8vIHRoZSBkZXNpcmVkIEJNRm9udCBkYXRhXG4gIHZhciBmb250ID0gb3B0LmZvbnRcblxuICAvLyBkZXRlcm1pbmUgdGV4dHVyZSBzaXplIGZyb20gZm9udCBmaWxlXG4gIHZhciB0ZXhXaWR0aCA9IGZvbnQuY29tbW9uLnNjYWxlV1xuICB2YXIgdGV4SGVpZ2h0ID0gZm9udC5jb21tb24uc2NhbGVIXG5cbiAgLy8gZ2V0IHZpc2libGUgZ2x5cGhzXG4gIHZhciBnbHlwaHMgPSB0aGlzLmxheW91dC5nbHlwaHMuZmlsdGVyKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgcmV0dXJuIGJpdG1hcC53aWR0aCAqIGJpdG1hcC5oZWlnaHQgPiAwXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB2aXNpYmxlIGdseXBocyBmb3IgY29udmVuaWVuY2VcbiAgdGhpcy52aXNpYmxlR2x5cGhzID0gZ2x5cGhzXG5cbiAgLy8gZ2V0IGNvbW1vbiB2ZXJ0ZXggZGF0YVxuICB2YXIgcG9zaXRpb25zID0gdmVydGljZXMucG9zaXRpb25zKGdseXBocylcbiAgdmFyIHV2cyA9IHZlcnRpY2VzLnV2cyhnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKVxuICB2YXIgaW5kaWNlcyA9IGNyZWF0ZUluZGljZXMoW10sIHtcbiAgICBjbG9ja3dpc2U6IHRydWUsXG4gICAgdHlwZTogJ3VpbnQxNicsXG4gICAgY291bnQ6IGdseXBocy5sZW5ndGhcbiAgfSlcblxuICAvLyB1cGRhdGUgdmVydGV4IGRhdGFcbiAgdGhpcy5zZXRJbmRleChpbmRpY2VzKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9ucywgMikpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSlcblxuICAvLyB1cGRhdGUgbXVsdGlwYWdlIGRhdGFcbiAgaWYgKCFvcHQubXVsdGlwYWdlICYmICdwYWdlJyBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAvLyBkaXNhYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGFnZScpXG4gIH0gZWxzZSBpZiAob3B0Lm11bHRpcGFnZSkge1xuICAgIC8vIGVuYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdmFyIHBhZ2VzID0gdmVydGljZXMucGFnZXMoZ2x5cGhzKVxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwYWdlJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwYWdlcywgMSkpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdTcGhlcmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nU3BoZXJlID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZSA9IG5ldyBUSFJFRS5TcGhlcmUoKVxuICB9XG5cbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMgPSAwXG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXIuc2V0KDAsIDAsIDApXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZVNwaGVyZShwb3NpdGlvbnMsIHRoaXMuYm91bmRpbmdTcGhlcmUpXG4gIGlmIChpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogJyArXG4gICAgICAnQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICcgK1xuICAgICAgJ1wicG9zaXRpb25cIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ0JveCA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpXG4gIH1cblxuICB2YXIgYmJveCA9IHRoaXMuYm91bmRpbmdCb3hcbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgYmJveC5tYWtlRW1wdHkoKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVCb3gocG9zaXRpb25zLCBiYm94KVxufVxuIiwidmFyIGl0ZW1TaXplID0gMlxudmFyIGJveCA9IHsgbWluOiBbMCwgMF0sIG1heDogWzAsIDBdIH1cblxuZnVuY3Rpb24gYm91bmRzIChwb3NpdGlvbnMpIHtcbiAgdmFyIGNvdW50ID0gcG9zaXRpb25zLmxlbmd0aCAvIGl0ZW1TaXplXG4gIGJveC5taW5bMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1pblsxXSA9IHBvc2l0aW9uc1sxXVxuICBib3gubWF4WzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5tYXhbMV0gPSBwb3NpdGlvbnNbMV1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICB2YXIgeCA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAwXVxuICAgIHZhciB5ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDFdXG4gICAgYm94Lm1pblswXSA9IE1hdGgubWluKHgsIGJveC5taW5bMF0pXG4gICAgYm94Lm1pblsxXSA9IE1hdGgubWluKHksIGJveC5taW5bMV0pXG4gICAgYm94Lm1heFswXSA9IE1hdGgubWF4KHgsIGJveC5tYXhbMF0pXG4gICAgYm94Lm1heFsxXSA9IE1hdGgubWF4KHksIGJveC5tYXhbMV0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZUJveCA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICBvdXRwdXQubWluLnNldChib3gubWluWzBdLCBib3gubWluWzFdLCAwKVxuICBvdXRwdXQubWF4LnNldChib3gubWF4WzBdLCBib3gubWF4WzFdLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlU3BoZXJlID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIHZhciBtaW5YID0gYm94Lm1pblswXVxuICB2YXIgbWluWSA9IGJveC5taW5bMV1cbiAgdmFyIG1heFggPSBib3gubWF4WzBdXG4gIHZhciBtYXhZID0gYm94Lm1heFsxXVxuICB2YXIgd2lkdGggPSBtYXhYIC0gbWluWFxuICB2YXIgaGVpZ2h0ID0gbWF4WSAtIG1pbllcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KVxuICBvdXRwdXQuY2VudGVyLnNldChtaW5YICsgd2lkdGggLyAyLCBtaW5ZICsgaGVpZ2h0IC8gMiwgMClcbiAgb3V0cHV0LnJhZGl1cyA9IGxlbmd0aCAvIDJcbn1cbiIsIm1vZHVsZS5leHBvcnRzLnBhZ2VzID0gZnVuY3Rpb24gcGFnZXMgKGdseXBocykge1xuICB2YXIgcGFnZXMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMSlcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBpZCA9IGdseXBoLmRhdGEucGFnZSB8fCAwXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gIH0pXG4gIHJldHVybiBwYWdlc1xufVxuXG5tb2R1bGUuZXhwb3J0cy51dnMgPSBmdW5jdGlvbiB1dnMgKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpIHtcbiAgdmFyIHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICB2YXIgYncgPSAoYml0bWFwLnggKyBiaXRtYXAud2lkdGgpXG4gICAgdmFyIGJoID0gKGJpdG1hcC55ICsgYml0bWFwLmhlaWdodClcblxuICAgIC8vIHRvcCBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHUwID0gYml0bWFwLnggLyB0ZXhXaWR0aFxuICAgIHZhciB2MSA9IGJpdG1hcC55IC8gdGV4SGVpZ2h0XG4gICAgdmFyIHUxID0gYncgLyB0ZXhXaWR0aFxuICAgIHZhciB2MCA9IGJoIC8gdGV4SGVpZ2h0XG5cbiAgICBpZiAoZmxpcFkpIHtcbiAgICAgIHYxID0gKHRleEhlaWdodCAtIGJpdG1hcC55KSAvIHRleEhlaWdodFxuICAgICAgdjAgPSAodGV4SGVpZ2h0IC0gYmgpIC8gdGV4SGVpZ2h0XG4gICAgfVxuXG4gICAgLy8gQkxcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MVxuICAgIC8vIFRMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBUUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gQlJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MVxuICB9KVxuICByZXR1cm4gdXZzXG59XG5cbm1vZHVsZS5leHBvcnRzLnBvc2l0aW9ucyA9IGZ1bmN0aW9uIHBvc2l0aW9ucyAoZ2x5cGhzKSB7XG4gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG5cbiAgICAvLyBib3R0b20gbGVmdCBwb3NpdGlvblxuICAgIHZhciB4ID0gZ2x5cGgucG9zaXRpb25bMF0gKyBiaXRtYXAueG9mZnNldFxuICAgIHZhciB5ID0gZ2x5cGgucG9zaXRpb25bMV0gKyBiaXRtYXAueW9mZnNldFxuXG4gICAgLy8gcXVhZCBzaXplXG4gICAgdmFyIHcgPSBiaXRtYXAud2lkdGhcbiAgICB2YXIgaCA9IGJpdG1hcC5oZWlnaHRcblxuICAgIC8vIEJMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gICAgLy8gVExcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gVFJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIEJSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICB9KVxuICByZXR1cm4gcG9zaXRpb25zXG59XG4iLCJ2YXIgbmV3bGluZSA9IC9cXG4vXG52YXIgbmV3bGluZUNoYXIgPSAnXFxuJ1xudmFyIHdoaXRlc3BhY2UgPSAvXFxzL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHRleHQsIG9wdCkge1xuICAgIHZhciBsaW5lcyA9IG1vZHVsZS5leHBvcnRzLmxpbmVzKHRleHQsIG9wdClcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKGxpbmUuc3RhcnQsIGxpbmUuZW5kKVxuICAgIH0pLmpvaW4oJ1xcbicpXG59XG5cbm1vZHVsZS5leHBvcnRzLmxpbmVzID0gZnVuY3Rpb24gd29yZHdyYXAodGV4dCwgb3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgLy96ZXJvIHdpZHRoIHJlc3VsdHMgaW4gbm90aGluZyB2aXNpYmxlXG4gICAgaWYgKG9wdC53aWR0aCA9PT0gMCAmJiBvcHQubW9kZSAhPT0gJ25vd3JhcCcpIFxuICAgICAgICByZXR1cm4gW11cblxuICAgIHRleHQgPSB0ZXh0fHwnJ1xuICAgIHZhciB3aWR0aCA9IHR5cGVvZiBvcHQud2lkdGggPT09ICdudW1iZXInID8gb3B0LndpZHRoIDogTnVtYmVyLk1BWF9WQUxVRVxuICAgIHZhciBzdGFydCA9IE1hdGgubWF4KDAsIG9wdC5zdGFydHx8MClcbiAgICB2YXIgZW5kID0gdHlwZW9mIG9wdC5lbmQgPT09ICdudW1iZXInID8gb3B0LmVuZCA6IHRleHQubGVuZ3RoXG4gICAgdmFyIG1vZGUgPSBvcHQubW9kZVxuXG4gICAgdmFyIG1lYXN1cmUgPSBvcHQubWVhc3VyZSB8fCBtb25vc3BhY2VcbiAgICBpZiAobW9kZSA9PT0gJ3ByZScpXG4gICAgICAgIHJldHVybiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpXG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKVxufVxuXG5mdW5jdGlvbiBpZHhPZih0ZXh0LCBjaHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKGNociwgc3RhcnQpXG4gICAgaWYgKGlkeCA9PT0gLTEgfHwgaWR4ID4gZW5kKVxuICAgICAgICByZXR1cm4gZW5kXG4gICAgcmV0dXJuIGlkeFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hyKSB7XG4gICAgcmV0dXJuIHdoaXRlc3BhY2UudGVzdChjaHIpXG59XG5cbmZ1bmN0aW9uIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBsaW5lcyA9IFtdXG4gICAgdmFyIGxpbmVTdGFydCA9IHN0YXJ0XG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQgJiYgaTx0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaHIgPSB0ZXh0LmNoYXJBdChpKVxuICAgICAgICB2YXIgaXNOZXdsaW5lID0gbmV3bGluZS50ZXN0KGNocilcblxuICAgICAgICAvL0lmIHdlJ3ZlIHJlYWNoZWQgYSBuZXdsaW5lLCB0aGVuIHN0ZXAgZG93biBhIGxpbmVcbiAgICAgICAgLy9PciBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBFT0ZcbiAgICAgICAgaWYgKGlzTmV3bGluZSB8fCBpPT09ZW5kLTEpIHtcbiAgICAgICAgICAgIHZhciBsaW5lRW5kID0gaXNOZXdsaW5lID8gaSA6IGkrMVxuICAgICAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBsaW5lU3RhcnQsIGxpbmVFbmQsIHdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChtZWFzdXJlZClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGluZVN0YXJ0ID0gaSsxXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSkge1xuICAgIC8vQSBncmVlZHkgd29yZCB3cmFwcGVyIGJhc2VkIG9uIExpYkdEWCBhbGdvcml0aG1cbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9saWJnZHgvbGliZ2R4L2Jsb2IvbWFzdGVyL2dkeC9zcmMvY29tL2JhZGxvZ2ljL2dkeC9ncmFwaGljcy9nMmQvQml0bWFwRm9udENhY2hlLmphdmFcbiAgICB2YXIgbGluZXMgPSBbXVxuXG4gICAgdmFyIHRlc3RXaWR0aCA9IHdpZHRoXG4gICAgLy9pZiAnbm93cmFwJyBpcyBzcGVjaWZpZWQsIHdlIG9ubHkgd3JhcCBvbiBuZXdsaW5lIGNoYXJzXG4gICAgaWYgKG1vZGUgPT09ICdub3dyYXAnKVxuICAgICAgICB0ZXN0V2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFXG5cbiAgICB3aGlsZSAoc3RhcnQgPCBlbmQgJiYgc3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAvL2dldCBuZXh0IG5ld2xpbmUgcG9zaXRpb25cbiAgICAgICAgdmFyIG5ld0xpbmUgPSBpZHhPZih0ZXh0LCBuZXdsaW5lQ2hhciwgc3RhcnQsIGVuZClcblxuICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IHN0YXJ0IG9mIGxpbmVcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbmV3TGluZSkge1xuICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UoIHRleHQuY2hhckF0KHN0YXJ0KSApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBzdGFydCsrXG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSB2aXNpYmxlICMgb2YgZ2x5cGhzIGZvciB0aGUgYXZhaWxhYmxlIHdpZHRoXG4gICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIG5ld0xpbmUsIHRlc3RXaWR0aClcblxuICAgICAgICB2YXIgbGluZUVuZCA9IHN0YXJ0ICsgKG1lYXN1cmVkLmVuZC1tZWFzdXJlZC5zdGFydClcbiAgICAgICAgdmFyIG5leHRTdGFydCA9IGxpbmVFbmQgKyBuZXdsaW5lQ2hhci5sZW5ndGhcblxuICAgICAgICAvL2lmIHdlIGhhZCB0byBjdXQgdGhlIGxpbmUgYmVmb3JlIHRoZSBuZXh0IG5ld2xpbmUuLi5cbiAgICAgICAgaWYgKGxpbmVFbmQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICAvL2ZpbmQgY2hhciB0byBicmVhayBvblxuICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmVFbmQgPT09IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGFydCA+IHN0YXJ0ICsgbmV3bGluZUNoYXIubGVuZ3RoKSBuZXh0U3RhcnQtLVxuICAgICAgICAgICAgICAgIGxpbmVFbmQgPSBuZXh0U3RhcnQgLy8gSWYgbm8gY2hhcmFjdGVycyB0byBicmVhaywgc2hvdyBhbGwuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IGxpbmVFbmRcbiAgICAgICAgICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kIC0gbmV3bGluZUNoYXIubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVFbmQgPj0gc3RhcnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBsaW5lRW5kLCB0ZXN0V2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IG5leHRTdGFydFxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuLy9kZXRlcm1pbmVzIHRoZSB2aXNpYmxlIG51bWJlciBvZiBnbHlwaHMgd2l0aGluIGEgZ2l2ZW4gd2lkdGhcbmZ1bmN0aW9uIG1vbm9zcGFjZSh0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBnbHlwaHMgPSBNYXRoLm1pbih3aWR0aCwgZW5kLXN0YXJ0KVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgZW5kOiBzdGFydCtnbHlwaHNcbiAgICB9XG59IiwibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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V0FBcEI7QUFDQSxhQUFTLEtBQVQsR0FBaUIsUUFBakI7QUFDQSxRQUFLLE1BQUwsRUFBYyxTQUFTLGFBQVQsQ0FBd0IsQ0FBeEIsSUFBOEIsTUFBOUI7O0FBRWQ7QUFFQSxHQW5QRDtBQXFQQSxDQTVWRDs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICogXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLiBcclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUiBcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1IgXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsIFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcbiAgICBcclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpOyBcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgLy9tb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICBpZiAoIXdpZGUpIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIGVsc2Uge1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMC43NTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueSA9IDAuMDE7IC8vWFhYIG1hZ2ljIG51bWJlclxyXG4gIH1cclxuXHJcbiAgdmFyIG1hdGVyaWFsO1xyXG4gIGlmIChpbWFnZS5pc01hdGVyaWFsKSB7XHJcbiAgICBtYXRlcmlhbCA9IGltYWdlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIG1hdGVyaWFsKTtcclxuICB9XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gIC8vYnV0dG9uIGxhYmVsIHJlbW92ZWQ7IG1pZ2h0IHdhbnQgb3B0aW9ucyBsaWtlIGEgaG92ZXIgbGFiZWwgaW4gZnV0dXJlLlxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBpZiAod2lkZSkgZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAvL1RPRE86IGRyYWcgYW5kIGhvdmVyXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnaG92ZXJpbmcnLCBoYW5kbGVIb3ZlciApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZVByZXNzaW5nICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGxldCBob3ZlckZ1bmMgPSB1bmRlZmluZWQ7XHJcbiAgLy8gSSBtaWdodCB5ZXQgZGVjaWRlIHRvIGNoYW5nZSB0aGlzIGludGVyZmFjZS5cclxuICAvLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgbmFtZSwgbWlnaHQgd2FudCB0byBhZGQgbGlzdGVuZXJzIHRvIGV2ZW50XHJcbiAgLy8gcmF0aGVyIHRoYW4ganVzdCBzZXQgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgZ3JvdXAub25Ib3ZlciA9IGYgPT4ge1xyXG4gICAgaG92ZXJGdW5jID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZ3JvdXAub25QcmVzc2luZyA9IGYgPT4ge1xyXG4gICAgcHJlc3NpbmcgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBmdW5jdGlvbiBoYW5kbGVIb3ZlciggcCApe1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAoaG92ZXJGdW5jKSBob3ZlckZ1bmMocCk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vaXQgc2hvdWxkIGJlIHRoYXQgdGhlIGNoZWNrcyBpbiBpbmRleC5qcyBtZWFuIHRoYXQgbWV0aG9kcyBkb24ndCBnZXQgY2FsbGVkIG9uIGludmlzaWJsZVxyXG4gICAgLy9vYmplY3RzLCByZW5kZXJpbmcgdGhlc2UgdGVzdHMgcmVkdW5kYW50Li4uIGhvd2V2ZXIsIHRoYXQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlIGNhc2UuXHJcbiAgICAvL2V4cGVyaWVuY2VkIHNvbWUgYnVncyBwYXJ0aWN1bGFybHkgd2l0aCAnbW9kYWwgZWRpdG9yJyB0eXBlIHBhbmVscy5cclxuICAgIC8vVE9ETzogZWl0aGVyIG1ha2Ugc3VyZSBpbnZpc2libGUgb2JqZWN0cyBhcmVuJ3QgY2FsbGVkIGluIHRoZSBmaXJzdCBwbGFjZSxcclxuICAgIC8vb3IgbWFrZSBzdXJlIGFsbCB0eXBlcyBvZiBvYmplY3QgZG8gdGhpcyBtb3JlIHRob3JvdWdoIHZpc2liaWxpdHkgY2hlY2suLi5cclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKG9iamVjdCkgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXShwKTtcclxuICAgIGlmIChmdW5jKSBmdW5jKHApO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL2NvbXB1dGUgeCAmIHkgYXMgbm9ybWFsaXNlZCBjb29yZGluYXRlcyBmcm9tIHAucG9pbnRcclxuICAvL2NvdWxkIGNvbnNpZGVyIG1vdmluZyB0aGlzIGNvbXB1dGF0aW9uIGludG8gaW50ZXJhY3Rpb24uanMgcGVyZm9ybVN0YXRlRXZlbnRzKClcclxuICBmdW5jdGlvbiBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwb2ludCkge1xyXG4gICAgY29uc3QgcCA9IGhpdHNjYW5Wb2x1bWUud29ybGRUb0xvY2FsKHBvaW50KTtcclxuICAgIHAueCAvPSBCVVRUT05fV0lEVEg7XHJcbiAgICBwLnkgLz0gQlVUVE9OX0hFSUdIVDtcclxuICAgIHAueSArPSAwLjU7XHJcbiAgICBwLnggPSBNYXRoLm1heChNYXRoLm1pbihwLngsIDEpLCAwKTtcclxuICAgIHAueSA9IE1hdGgubWF4KE1hdGgubWluKHAueSwgMSksIDApO1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVQcmVzc2luZyggcCApIHtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIC8vY29uc29sZS5sb2coYHByZXNzaW5nIGF0ICgke3BvaW50Lnh9LCAke3BvaW50Lnl9KWApOyAvL2ZpcnN0IGluc3RhbmNlIG9mICdwcmVzc2luZycgaXMgYWx3YXlzIGF0ICgxLCAxKVxyXG4gICAgLy9uYiwgbGlrZWx5IHRvIG5lZWQgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIGR1YWwgd2llbGRpbmdcclxuICAgIGlmIChwcmVzc2luZykgcHJlc3NpbmcocCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmICghbWF0ZXJpYWwuY29sb3IpIHJldHVybjtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhDQ0NDQ0MgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKiBcclxuICogR3JpZCBvZiBidXR0b25zIHdpdGggaW1hZ2VzIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgaW1hZ2VidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7Y3JlYXRlVGV4dExhYmVsLCBjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0cywgLy8gYXJyYXkgb2Yge2Z1bmMsIGltYWdlIHwgdGV4dCwgdGlwKG9wdGlvbmFsKSwgcmVsZWFzZShvcHRpb25hbCl9XHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgcm93SGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNvbHVtbnMgPSA0XHJcbn0gPSB7fSApe1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWFyZ2luID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDM7XHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gKHdpZHRoIC0gbWFyZ2luKSAqICgxL2NvbHVtbnMpO1xyXG4gIC8vVE9ETzogYWRkIHNldFJvd0hlaWdodCBtZXRob2RcclxuICBsZXQgQlVUVE9OX0hFSUdIVCA9IHJvd0hlaWdodCA+IDAgPyByb3dIZWlnaHQgOiBCVVRUT05fV0lEVEg7XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvbmdyaWRcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtvYmplY3RzfV1gO1xyXG4gIFxyXG4gIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwob2JqZWN0cy5sZW5ndGggLyBjb2x1bW5zKTtcclxuICBsZXQgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGdyb3VwLnNldFJvd0hlaWdodCA9IGggPT4ge1xyXG4gICAgcm93SGVpZ2h0ID0gQlVUVE9OX0hFSUdIVCA9IGg7XHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG4gICAgbGF5b3V0QnV0dG9ucygpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGZhbHNlO1xyXG4gIGxldCBsYXN0UHJlc3NlZCA9IG51bGw7XHJcbiAgbGV0IGxhc3RQcmVzc2VkQ29sO1xyXG4gIGdyb3VwLmhpZ2hsaWdodExhc3RQcmVzc2VkID0gKGNvbCA9IDB4MzM1NUVFKSA9PiB7XHJcbiAgICAgIGhpZ2hsaWdodExhc3RQcmVzc2VkID0gY29sICE9PSBmYWxzZTtcclxuICAgICAgbGFzdFByZXNzZWRDb2wgPSBjb2w7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgXHJcbiAgbGV0IHBhbmVsLCBncmFiSW50ZXJhY3Rpb24sIGJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgbGF5b3V0QnV0dG9ucygpO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGluaXRQYW5lbCgpIHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIHBhbmVsLmFkZChjb250cm9sbGVySUQpO1xyXG4gICAgXHJcbiAgICBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+Z3JvdXAucmVtb3ZlKGIpKTtcclxuICAgIGJ1dHRvbnMgPSBbXTtcclxuICAgIGdyb3VwLmd1aUNoaWxkcmVuID0gYnV0dG9ucztcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gbGF5b3V0QnV0dG9ucygpIHtcclxuICAgIGluaXRQYW5lbCgpO1xyXG4gICAgLy9UT0RPOiBwYWRkaW5nXHJcbiAgICBjb25zdCBidXR0b25XUGFkZGVkID0gQlVUVE9OX1dJRFRIICogMC45OSwgYnV0dG9uSFBhZGRlZCA9IEJVVFRPTl9IRUlHSFQgKiAwLjk5O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBidXR0b25XUGFkZGVkLCBidXR0b25IUGFkZGVkLCAxLCAxICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggYnV0dG9uV1BhZGRlZCAvIDIsIC1idXR0b25IUGFkZGVkIC8gMiwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IHRvZ2dsZXMgcmF0aGVyIHRoYW4gdHJpZ2dlcnMuLi5cclxuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFvYmouaW1hZ2UgJiYgIW9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN1Ymdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vbm90ZTogcmVkdWNpbmcgbmVzdGluZyBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxyXG4gICAgICAgIHN1Ymdyb3VwLmd1aVR5cGUgPSBcImltYWdlQnV0dG9uR3JpZEVsZW1lbnRcIjtcclxuICAgICAgICBncm91cC5hZGQoc3ViZ3JvdXApO1xyXG4gICAgICAgIGJ1dHRvbnMucHVzaChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbCA9IGkgJSBjb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IE1hdGguZmxvb3IoaSAvIGNvbHVtbnMpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi54ID0gKDIqTGF5b3V0LlBBTkVMX01BUkdJTikgKyBCVVRUT05fV0lEVEggKiBjb2w7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueSA9IChoZWlnaHQvMikgLUJVVFRPTl9IRUlHSFQgKiByb3c7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuXHJcbiAgICAgICAgLy8gIGhpdHNjYW4gdm9sdW1lLlxyXG4gICAgICAgIC8vIFRoaXMgbWF0ZXJpYWwgY291bGQgcHJvYmFibHkgYmUgcmV1c2VkLlxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG9iai5pbWFnZSkgYXBwbHlJbWFnZVRvTWF0ZXJpYWwob2JqLmltYWdlLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgaWYgKG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUob2JqLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyKkxheW91dC5HUklEX0JVVFRPTl9NQVJHSU47XHJcbiAgICAgICAgICAgIGxldCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgaWYgKHcgPiBCVVRUT05fV0lEVEggLSBtYXJnaW4pIHtcclxuICAgICAgICAgICAgICAgIHRleHQuY29uc3RyYWluQm91bmRzKEJVVFRPTl9XSURUSCAtIG1hcmdpbiwgQlVUVE9OX0hFSUdIVCAtIG1hcmdpbik7IC8vPC0tXHJcbiAgICAgICAgICAgICAgICBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJncm91cC5hZGQodGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnggPSBvYmoudGV4dFggfHwgMC41ICogKEJVVFRPTl9XSURUSCAtIHcpO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnkgPSBvYmoudGV4dFkgfHwgLTAuNSAqIEJVVFRPTl9IRUlHSFQgLSBoO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICAgICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgICAgICAvL2J1dHRvbiBsYWJlbCAmIGRlc2NyaXB0b3IgbGFiZWwgcmVtb3ZlZC5cclxuICAgICAgICAvL1Rvb2x0aXAgdGV4dCBvcHRpb24gYWRkZWQuICBNaWdodCB3YW50IHRvIGJlIGFibGUgdG8gcGFzcyBpbiByaWNoZXIgdGhpbmdzLi4uXHJcbiAgICAgICAgLy9tYXliZSBhbiBhcmJpdHJhcnkgVEhSRUUgb2JqZWN0IHdvdWxkIHdvcmsgd2VsbC4uLlxyXG4gICAgICAgIGlmIChvYmoudGlwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcFRleHQgPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCBvYmoudGlwLCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL3N1Ymdyb3VwLmFkZCh0aXBUZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG4gICAgICAgIHN1Ymdyb3VwLmFkZCggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIHBhbmVsLmFkZChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgICAgICAgICBpZiggc3ViZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL1RPRE86IHN0YW5kYXJkaXNlIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gY2FsbGJhY2tzXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZnVuYygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZXJyb3IgPSBlIHx8ICd1bmRlZmluZWQgZXhjZXB0aW9uJztcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0UHJlc3NlZCA9IG9iajtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gICAgICAgICAgICBpZiAob2JqLnJlbGVhc2UpIG9iai5yZWxlYXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcXVpY2sgY29sb3IgaGFjay4uLlxyXG4gICAgICAgIGNvbnN0IGhvdmVyQ29sID0gb2JqLnRleHQgPyAweDg4OCA6IDB4RkZGRkZGO1xyXG4gICAgICAgIGNvbnN0IG5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IGhvdmVyQ29sIDogbm9Ib3ZlckNvbCApO1xyXG4gICAgICAgICAgICBpZiAoc3ViZ3JvdXAudGlwVGV4dCkgc2V0VmlzaWJpbGl0eShzdWJncm91cCwgc3ViZ3JvdXAudGlwVGV4dCwgaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICAgIGlmIChvYmouZXJyb3IpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhBQTMzMzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3KCk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgc3ViZ3JvdXAuaGl0c2NhbiA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBtYWtpbmcgdGhpcyBzaW5nbGUgZWxlbWVudCByYXRoZXIgdGhhbiBhcnJheSxcclxuICAgICAgICAvL3RoYXQgbWVhbnMgdGhlc2UgJ3N1Ymdyb3VwJyBidXR0b25zIGFyZW4ndCBhY3RpbmcgZXhhY3RseSBhcyBub3JtYWwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzXHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5oaXRzY2FuID0gYnV0dG9ucy5tYXAoYj0+Yi5oaXRzY2FuKTsvLy5wdXNoKHBhbmVsKTtcclxuICAgIGdyb3VwLmhpdHNjYW4ucHVzaChwYW5lbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpIHtcclxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGI9PmIudXBkYXRlVmlldygpKTtcclxuICB9XHJcbiAgXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT57XHJcbiAgICAgICAgYi5pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICAvL2ludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVTbGlkZXIgZnJvbSAnLi9zbGlkZXInO1xyXG5pbXBvcnQgY3JlYXRlQ2hlY2tib3ggZnJvbSAnLi9jaGVja2JveCc7XHJcbmltcG9ydCBjcmVhdGVCdXR0b24gZnJvbSAnLi9idXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlRm9sZGVyIGZyb20gJy4vZm9sZGVyJztcclxuaW1wb3J0IGNyZWF0ZURyb3Bkb3duIGZyb20gJy4vZHJvcGRvd24nO1xyXG4vL1BKVDogSSdkIHJhdGhlciBpbmplY3QgY3VzdG9tIGV4dGVuc2lvbnMgbGlrZSB0aGlzLCBidXQgd2lsbCB3b3JrIHRoYXQgb3V0IGxhdGVyLlxyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlS2V5Ym9hcmQgZnJvbSAnLi9rZXlib2FyZCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0Ym94IGZyb20gJy4vdGV4dGJveCc7XHJcbmltcG9ydCBjcmVhdGVDb2xvclBpY2tlciBmcm9tICcuL2NvbG9ycGlja2VyJztcclxuaW1wb3J0ICogYXMgU0RGVGV4dCBmcm9tICcuL3NkZnRleHQnO1xyXG5pbXBvcnQgeyBpc0NvbnRyb2xsZXJWaXNpYmxlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGdsb2JhbEV2ZW50cyB9IGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuY29uc3QgR1VJVlIgPSAoZnVuY3Rpb24gREFUR1VJVlIoKXtcclxuXHJcbiAgLypcclxuICAgIFNERiBmb250XHJcbiAgKi9cclxuICBjb25zdCB0ZXh0Q3JlYXRvciA9IFNERlRleHQuY3JlYXRvcigpO1xyXG5cclxuXHJcbiAgLypcclxuICAgIExpc3RzLlxyXG4gICAgSW5wdXRPYmplY3RzIGFyZSB0aGluZ3MgbGlrZSBWSVZFIGNvbnRyb2xsZXJzLCBjYXJkYm9hcmQgaGVhZHNldHMsIGV0Yy5cclxuICAgIENvbnRyb2xsZXJzIGFyZSB0aGUgREFUIEdVSSBzbGlkZXJzLCBjaGVja2JveGVzLCBldGMuXHJcbiAgKi9cclxuICBjb25zdCBpbnB1dE9iamVjdHMgPSBbXTtcclxuICBjb25zdCBjb250cm9sbGVycyA9IFtdO1xyXG5cclxuICAvKlxyXG4gICAgRnVuY3Rpb25zIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY29udHJvbGxlciBpcyB2aXNpYmxlIChieSB3aGljaCB3ZVxyXG4gICAgbWVhbiBub3QgaGlkZGVuLCBub3QgJ3Zpc2libGUnIGluIHRlcm1zIG9mIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gZXRjKSwgYW5kXHJcbiAgICBmb3IgcmV0cmlldmluZyB0aGUgbGlzdCBvZiB2aXNpYmxlIGhpdHNjYW5PYmplY3RzIGR5bmFtaWNhbGx5LlxyXG4gICAgVGhpcyBtaWdodCBiZW5lZml0IGZyb20gc29tZSBjYWNoaW5nIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2l0aCBsYXJnZSBjb21wbGV4IEdVSXMuXHJcbiAgICBJIGhhdmVuJ3QgbWVhc3VyZWQgdGhlIGltcGFjdCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gZXRjLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkge1xyXG4gICAgLy8gbm90IHRlcnJpYmx5IGVmZmljaWVudFxyXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJzLmZpbHRlciggaXNDb250cm9sbGVyVmlzaWJsZSApO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSB7XHJcbiAgICAvL1hYWCBXQVJOSU5HOjo6XHJcbiAgICAvL3RoZXJlIGNvdWxkIGV4aXN0IHNpdHVhdGlvbnMgaW4gd2hpY2ggbWVtYmVycyBvZiBoaXRzY2FuIGZvciBhIHZpc2libGUgY29udHJvbGxlciBhcmUgbm90IHRoZW1zZWx2ZXMgdmlzaWJsZS5cclxuICAgIC8vdGhpcyBjYW4gaGFwcGVuIGZvciBlZyBpZiB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBwYXJ0aWN1bGFyIGhpdHNjYW4gaXMgaW4gYW4gaW52aXNpYmxlIG1vZGFsIGVkaXRvci5cclxuICAgIC8vd2UgY291bGQgY2hlY2sgdGhhdCwgYWRkaW5nIGEgbW9yZSByb2J1c3QgZmlsdGVyIHRvIGVhY2ggaGl0c2NhbiBhcnJheS4uLiBmb3Igbm93LCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcclxuICAgIC8vY29udHJvbGxlcnMgdG8gZWl0aGVyIG9ubHkgcmV0dXJuIGhpdHNjYW4gb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlLCBvciB0byBzZXQgJ3Zpc2libGUnIGV4cGxpY2l0bHkuXHJcbiAgICBjb25zdCB0bXAgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKS5tYXAoIG8gPT4geyByZXR1cm4gby5oaXRzY2FuLmZpbHRlcihoID0+IGgudmlzaWJsZSk7IH0gKVxyXG4gICAgcmV0dXJuIHRtcC5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgbGV0IG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGxldCBtb3VzZVJlbmRlcmVyID0gdW5kZWZpbmVkO1xyXG4gIGxldCBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkOyAvL2tlZXAgdHJhY2sgc28gdGhhdCB3ZSBkb24ndCBhdHRhY2ggbXVsdGlwbGUgZXZlbnRzIChwYXJ0aWN1bGFybHkgd2hlbiByZXNpemluZyB3aW5kb3cpXHJcbiAgXHJcbiAgbGV0IGF1dG9VcGRhdGUgPSB0cnVlO1xyXG5cclxuICBmdW5jdGlvbiBlbmFibGVNb3VzZSggY2FtZXJhLCByZW5kZXJlciApe1xyXG4gICAgbW91c2VFbmFibGVkID0gdHJ1ZTtcclxuICAgIG1vdXNlUmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgIG1vdXNlSW5wdXQubW91c2VDYW1lcmEgPSBjYW1lcmE7XHJcbiAgICBpZiAoY2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSB7XHJcbiAgICAgIGlmICghb25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSBmPT5mLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMub24oJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5sYXNlcjtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gZGlzYWJsZU1vdXNlKCl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgVGhlIGRlZmF1bHQgbGFzZXIgcG9pbnRlciBjb21pbmcgb3V0IG9mIGVhY2ggSW5wdXRPYmplY3QuXHJcbiAgKi9cclxuICBjb25zdCBsYXNlck1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjoweDU1YWFmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0pO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUxhc2VyKCl7XHJcbiAgICBjb25zdCBnID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBnLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDAsMCwwXSkpKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoKSApO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygwLDAsMCkgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTGluZSggZywgbGFzZXJNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBIFwiY3Vyc29yXCIsIGVnIHRoZSBiYWxsIHRoYXQgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHlvdXIgbGFzZXIuXHJcbiAgKi9cclxuICBjb25zdCBjdXJzb3JNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg0NDQ0NDQsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9ICk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKCl7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgwLjAwNiwgNCwgNCApLCBjdXJzb3JNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBnZW5lcmljIElucHV0IHR5cGUuXHJcbiAgICBUYWtlcyBhbnkgVEhSRUUuT2JqZWN0M0QgdHlwZSBvYmplY3QgYW5kIHVzZXMgaXRzIHBvc2l0aW9uXHJcbiAgICBhbmQgb3JpZW50YXRpb24gYXMgYW4gaW5wdXQgZGV2aWNlLlxyXG5cclxuICAgIEEgbGFzZXIgcG9pbnRlciBpcyBpbmNsdWRlZCBhbmQgd2lsbCBiZSB1cGRhdGVkLlxyXG4gICAgQ29udGFpbnMgc3RhdGUgYWJvdXQgd2hpY2ggSW50ZXJhY3Rpb24gaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb3IgaG92ZXIuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBjcmVhdGVJbnB1dCggaW5wdXRPYmplY3QgPSBuZXcgVEhSRUUuR3JvdXAoKSApe1xyXG4gICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgIHJheWNhc3Q6IG5ldyBUSFJFRS5SYXljYXN0ZXIoIG5ldyBUSFJFRS5WZWN0b3IzKCksIG5ldyBUSFJFRS5WZWN0b3IzKCkgKSxcclxuICAgICAgbGFzZXI6IGNyZWF0ZUxhc2VyKCksXHJcbiAgICAgIGN1cnNvcjogY3JlYXRlQ3Vyc29yKCksXHJcbiAgICAgIG9iamVjdDogaW5wdXRPYmplY3QsXHJcbiAgICAgIHByZXNzZWQ6IGZhbHNlLFxyXG4gICAgICBncmlwcGVkOiBmYWxzZSxcclxuICAgICAgZXZlbnRzOiBuZXcgRW1pdHRlcigpLFxyXG4gICAgICBpbnRlcmFjdGlvbjoge1xyXG4gICAgICAgIGdyaXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmVzczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGhvdmVyOiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5hZGQoIGlucHV0LmN1cnNvciApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgTW91c2VJbnB1dC5cclxuICAgIEFsbG93cyB5b3UgdG8gY2xpY2sgb24gdGhlIHNjcmVlbiB3aGVuIG5vdCBpbiBWUiBmb3IgZGVidWdnaW5nLlxyXG4gICovXHJcbiAgY29uc3QgbW91c2VJbnB1dCA9IGNyZWF0ZU1vdXNlSW5wdXQoKTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlTW91c2VJbnB1dCgpe1xyXG4gICAgY29uc3QgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigtMSwtMSk7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCgpO1xyXG4gICAgaW5wdXQubW91c2UgPSBtb3VzZTtcclxuICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlT2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlUGxhbmUgPSBuZXcgVEhSRUUuUGxhbmUoKTtcclxuICAgIGlucHV0LmludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyAgc2V0IG15IGVuYWJsZU1vdXNlXHJcbiAgICBpbnB1dC5tb3VzZUNhbWVyYSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlbW92ZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICAvLyBpZiBhIHNwZWNpZmljIHJlbmRlcmVyIGhhcyBiZWVuIGRlZmluZWRcclxuICAgICAgaWYgKG1vdXNlUmVuZGVyZXIpIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gbW91c2VSZW5kZXJlci5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIG1vdXNlLnggPSAoIChldmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0KSAvIGNsaWVudFJlY3Qud2lkdGgpICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCAoZXZlbnQuY2xpZW50WSAtIGNsaWVudFJlY3QudG9wKSAvIGNsaWVudFJlY3QuaGVpZ2h0KSAqIDIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gZnVsbHNjcmVlblxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtb3VzZS54ID0gKCBldmVudC5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGggKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCApICogMiArIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmIChpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBwcmV2ZW50IG1vdXNlIGRvd24gZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGxpc3RlbmVycyAocG9seWZpbGwsIGV0YylcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLy9pZiBhbnkgaW5wdXQuaW50ZXJhY3Rpb25zIGhhdmUgaGl0Vm9sdW1lIHRoYXQgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIG5vdCBjdXJyZW50bHkgaW4gaGl0c2Nhbk9iamVjdHMsXHJcbiAgLy90aGF0IGludGVyYWN0aW9uIHNob3VsZCBiZSBjYW5jZWxsZWQuIEVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgd2l0aCBlLmcuIHByZXNzaW5nICdyZWF0dGFjaCcgd2hlbiB0aGUgcGFyZW50IGlzIGNsb3NlZC5cclxuICBmdW5jdGlvbiBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb25zLCBoaXRzY2FuT2JqZWN0cyApIHtcclxuICAgIFsncHJlc3MnLCAnZ3JpcCcsICdob3ZlciddLmZvckVhY2goIGludGVyYWN0aW9uTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV07XHJcbiAgICAgIGlmIChpbnRlcmFjdGlvbiAmJiBoaXRzY2FuT2JqZWN0cy5pbmRleE9mKGludGVyYWN0aW9uLmhpdFZvbHVtZSkgPCAwKSB7XHJcbiAgICAgICAgaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV0gPSB1bmRlZmluZWQ7IFxyXG4gICAgICAgIC8vb25seSBiZSBwb2xpdGUgdG8gaW5mb3JtIHRoZSBpbnRlcmFjdGlvbiBhcyB3ZWxsOyB1cGRhdGUgd2l0aCBlbXB0eSBpbnB1dE9iamVjdHMgYXJnIHNob3VsZCBkbyB0aGUgdHJpY2suXHJcbiAgICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBbXSApO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVMYXNlciggbGFzZXIsIHBvaW50ICl7XHJcbiAgICBjb25zdCBwcCA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgIHBwWzNdID0gcG9pbnQueDtcclxuICAgIHBwWzRdID0gcG9pbnQueTtcclxuICAgIHBwWzVdID0gcG9pbnQuejtcclxuICAgIHBwLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggcG9pbnQgKTtcclxuICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydGljZXNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgaWYoIGludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBjb25zdCBmaXJzdEhpdCA9IGludGVyc2VjdGlvbnNbIDAgXTtcclxuICAgICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IucG9zaXRpb24uY29weSggZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBjdXJzb3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlTW91c2VJbnRlcnNlY3Rpb24oIGludGVyc2VjdGlvbiwgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGludGVyc2VjdGlvbiApO1xyXG4gICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBjdXJzb3IucG9zaXRpb24gKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIGNhbWVyYSApe1xyXG4gICAgcmF5Y2FzdC5zZXRGcm9tQ2FtZXJhKCBtb3VzZSwgY2FtZXJhICk7XHJcbiAgICBjb25zdCBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgcmV0dXJuIHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtb3VzZUludGVyc2VjdHNQbGFuZSggcmF5Y2FzdCwgdiwgcGxhbmUgKXtcclxuICAgIHJldHVybiByYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggcGxhbmUsIHYgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsbW91c2UsbW91c2VDYW1lcmEsIGludGVyYWN0aW9ufSA9IHt9ICl7XHJcbiAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICBsZXQgaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIGlmIChtb3VzZUNhbWVyYSkge1xyXG4gICAgICBpbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgbW91c2VDYW1lcmEgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoKTtcclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBtZXRob2RzLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHB1YmxpY0ludGVyZmFjZSA9IHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGFkZElucHV0T2JqZWN0LFxyXG4gICAgZW5hYmxlTW91c2UsXHJcbiAgICBkaXNhYmxlTW91c2UsXHJcbiAgICB0ZXh0Q3JlYXRvciwgLy9jaGVhcCB3YXkgb2YgZXhwb3NpbmcgdGhpcyBzbyBpdCBjYW4gYmUgdXNlZCBieSBob3N0IGFwcGxpY2F0aW9uLlxyXG4gICAgZ2xvYmFsRXZlbnRzLFxyXG4gICAgY2xlYXJBbGwsXHJcbiAgICB1cGRhdGVcclxuICB9O1xyXG4gIC8vIGFsbG93IHVzZXIgdG8gY2FsbCBcImRhdC5HVUlWUi5hdXRvVXBkYXRlID0gZmFsc2VcIiBhbmQgdGhlbiB1cGRhdGUgbWFudWFsbHkgd2l0aFxyXG4gIC8vIFwiZGF0LkdVSVZSLnVwZGF0ZSgpXCJcclxuICAvLyBleHBvc2UgYXV0b1VwZGF0ZSBhcyBwcm9wZXJ0eSBzbyB0aGF0IHRoZSByZWZlcmVuY2Ugd2lsbCBiZSBwcm9wZXJseSBlZmZlY3RlZFxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggcHVibGljSW50ZXJmYWNlLCAnYXV0b1VwZGF0ZScsIHsgZ2V0OiAoKT0+IGF1dG9VcGRhdGUsIHNldDogdiA9PiBhdXRvVXBkYXRlID0gdiB9ICk7XHJcbiAgcmV0dXJuIHB1YmxpY0ludGVyZmFjZTtcclxuXHJcbn0oKSk7XHJcblxyXG5pZiggd2luZG93ICl7XHJcbiAgaWYoIHdpbmRvdy5kYXQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgd2luZG93LmRhdCA9IHt9O1xyXG4gIH1cclxuXHJcbiAgd2luZG93LmRhdC5HVUlWUiA9IEdVSVZSO1xyXG59XHJcblxyXG5pZiggbW9kdWxlICl7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBkYXQ6IEdVSVZSXHJcbiAgfTtcclxufVxyXG5cclxuaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XHJcbiAgZGVmaW5lKFtdLCBHVUlWUik7XHJcbn1cclxuXHJcbi8qXHJcbiAgQnVuY2ggb2Ygc3RhdGUtbGVzcyB1dGlsaXR5IGZ1bmN0aW9ucy5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGlzTnVtYmVyKG4pIHtcclxuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Jvb2xlYW4obil7XHJcbiAgcmV0dXJuIHR5cGVvZiBuID09PSAnYm9vbGVhbic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuY3Rpb25Ub0NoZWNrKSB7XHJcbiAgY29uc3QgZ2V0VHlwZSA9IHt9O1xyXG4gIHJldHVybiBmdW5jdGlvblRvQ2hlY2sgJiYgZ2V0VHlwZS50b1N0cmluZy5jYWxsKGZ1bmN0aW9uVG9DaGVjaykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XHJcbn1cclxuXHJcbi8vICBvbmx5IHt9IG9iamVjdHMgbm90IGFycmF5c1xyXG4vLyAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHRlY2huaWNhbGx5IG9iamVjdHMgYnV0IHlvdSdyZSBqdXN0IGJlaW5nIHBlZGFudGljXHJcbmZ1bmN0aW9uIGlzT2JqZWN0IChpdGVtKSB7XHJcbiAgcmV0dXJuICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQXJyYXkoIG8gKXtcclxuICByZXR1cm4gQXJyYXkuaXNBcnJheSggbyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1N0cmluZyggbyApe1xyXG4gIHJldHVybiB0eXBlb2YgbyA9PT0gJ3N0cmluZyc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQ29sb3IoIG8gKXtcclxuICBpZiAodHlwZW9mIG8gIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIG8uaXNDb2xvciA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5cclxuXHJcblxyXG4vKlxyXG4gIENvbnRyb2xsZXItc3BlY2lmaWMgc3VwcG9ydC5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIGNvbnRyb2xsZXIsIHByZXNzZWQsIGdyaXBwZWQgKXtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VyZG93bicsICgpPT5wcmVzc2VkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VydXAnLCAoKT0+cHJlc3NlZCggZmFsc2UgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzZG93bicsICgpPT5ncmlwcGVkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc3VwJywgKCk9PmdyaXBwZWQoIGZhbHNlICkgKTtcclxuXHJcbiAgY29uc3QgZ2FtZXBhZCA9IGNvbnRyb2xsZXIuZ2V0R2FtZXBhZCgpO1xyXG4gIGZ1bmN0aW9uIHZpYnJhdGUoIHQsIGEgKXtcclxuICAgIGlmKCBnYW1lcGFkICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnNbIDAgXS5wdWxzZSggdCwgYSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc1RhcCgpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSgxLWEsIDAuNSksIDEwLCAyMCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc0VjaG8oKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoNCwgMS4wICogKDEtYSkpLCAxMDAsIDQgKTtcclxuICB9XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ29uQ29udHJvbGxlckhlbGQnLCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgIHZpYnJhdGUoIDAuMywgMC4zICk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJiZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGlubmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGluUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gc2V0SW50ZXJ2YWxUaW1lcyggY2IsIGRlbGF5LCB0aW1lcyApe1xyXG4gIGxldCB4ID0gMDtcclxuICBsZXQgaWQgPSBzZXRJbnRlcnZhbCggZnVuY3Rpb24oKXtcclxuICAgIGNiKCB4LCB0aW1lcywgeC90aW1lcyApO1xyXG4gICAgeCsrO1xyXG4gICAgaWYoIHg+PXRpbWVzICl7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwoIGlkICk7XHJcbiAgICB9XHJcbiAgfSwgZGVsYXkgKTtcclxuICByZXR1cm4gaWQ7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdsb2JhbEV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbnRlcmFjdGlvbiggaGl0Vm9sdW1lICl7XHJcbiAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbiAgbGV0IGFueUhvdmVyID0gZmFsc2U7XHJcbiAgbGV0IGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgbGV0IGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCB0VmVjdG9yID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCBhdmFpbGFibGVJbnB1dHMgPSBbXTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCBpbnB1dE9iamVjdHMgKXtcclxuXHJcbiAgICBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gICAgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuXHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuaW5kZXhPZiggaW5wdXQgKSA8IDAgKXtcclxuICAgICAgICBhdmFpbGFibGVJbnB1dHMucHVzaCggaW5wdXQgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgeyBoaXRPYmplY3QsIGhpdFBvaW50IH0gPSBleHRyYWN0SGl0KCBpbnB1dCApO1xyXG5cclxuICAgICAgdmFyIGhvdmVyID0gaGl0Vm9sdW1lID09PSBoaXRPYmplY3Q7XHJcbiAgICAgIGFueUhvdmVyID0gYW55SG92ZXIgfHwgaG92ZXI7XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAncHJlc3NlZCcsXHJcbiAgICAgICAgYnV0dG9uQ2xpY2tOYW1lOiAnY2xpY2tlZCcsIC8vbWF5YmUgbm90IHN0YWJsZSBwYXJ0IG9mIEFQSS4uLlxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ3ByZXNzJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uUHJlc3NlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdwcmVzc2luZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlZCcsXHJcbiAgICAgICAgIC8vaW52ZW50aW5nIGEgJ2hvdmVyaW5nJyBldmVudCB0aGF0IG9ubHkgYXBwbGllcyB0byAncHJlc3NlZCcgYnV0dG9uLi4uXHJcbiAgICAgICAgIC8vdGhpcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYSBzdGFibGUgaW50ZXJmYWNlLCBidXQgSSB3YW50cyBpdCBtb3JlIHRoYW4gSVxyXG4gICAgICAgICAvL3dhbnQgdG8gbWFrZSBzb21ldGhpbmcgdG90YWxseSBjb2hlcmVudCBhbmQgcm9idXN0IGp1c3Qgbm93LlxyXG4gICAgICAgIGhvdmVyTmFtZTogJ2hvdmVyaW5nJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAnZ3JpcHBlZCcsXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAnZ3JpcCcsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvbkdyaXBwZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAnZ3JpcHBpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZUdyaXAnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoICd0aWNrJywge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0gKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBleHRyYWN0SGl0KCBpbnB1dCApe1xyXG4gICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoIDw9IDAgKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogdFZlY3Rvci5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LmN1cnNvci5tYXRyaXhXb3JsZCApLmNsb25lKCksIC8veHh4OiBnYXJiYWdlP1xyXG4gICAgICAgIGhpdE9iamVjdDogdW5kZWZpbmVkLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLnBvaW50LFxyXG4gICAgICAgIGhpdE9iamVjdDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgIGlucHV0LCBob3ZlcixcclxuICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICBidXR0b25OYW1lLCBidXR0b25DbGlja05hbWUsIGludGVyYWN0aW9uTmFtZSwgZG93bk5hbWUsIGhvbGROYW1lLCB1cE5hbWUsIGhvdmVyTmFtZVxyXG4gIH0gPSB7fSApe1xyXG5cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGhpdE9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIC8vY2xpY2tlZCBhbmQgZGlkbid0IGhpdCBhbnkgR1VJIG9iamVjdC5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBob3ZlcmluZyBhbmQgYnV0dG9uIE5PVCBkb3duXHJcbiAgICBpZiggaG92ZXJOYW1lICYmIGhvdmVyICYmIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob3Zlck5hbWUsIHBheWxvYWQgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgaG92ZXJpbmcgYW5kIGJ1dHRvbiBkb3duIGJ1dCBubyBpbnRlcmFjdGlvbnMgYWN0aXZlIHlldFxyXG4gICAgLy8tLS0+IHNob3VsZCBiZSBeIGJ1dHRvbiAnY2xpY2tlZCcuLi4gaWUgb25seSBpZiBpdCBjYW1lIGRvd24gc2luY2UgdGhlIGxhc3QgdXBkYXRlLlxyXG4gICAgLy9zbywgc2hvdWxkIHdlIHBhc3MgJ2J1dHRvbkNsaWNrTmFtZScgYXMgYW4gYXJndW1lbnQgKGFuZCB1c2UgYnV0dG9uTmFtZSBpZiBub3QgcHJvdmlkZWQpP1xyXG4gICAgLy8tLS0+Pj4+IFhYWDogaXMgdGhpcyBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcLy8vLy8vLy8vLy8vIHdvcmtpbmcgd2l0aCBWaXZlIGNvbnRyb2xsZXJzPyBcclxuICAgIGlmKCBob3ZlciAmJiBpbnB1dFsgYnV0dG9uQ2xpY2tOYW1lIHx8IGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG5cclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpZiAoIWhpdE9iamVjdC51c2VyRGF0YS5wYXJ0T2ZNb2RhbCkgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG5cclxuICAgICAgcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpO1xyXG4gICAgICBcclxuICAgICAgLy9lbWl0IGdsb2JhbCBjbGljayBldmVudCBhcyB3ZWxsLi4uXHJcbiAgICAgIGdsb2JhbEV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgICBldmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGlmKCBwYXlsb2FkLmxvY2tlZCApe1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gaW50ZXJhY3Rpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgYW55QWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIHN0aWxsIGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggaG9sZE5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnb25Db250cm9sbGVySGVsZCcgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIG5vdCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IHVuZGVmaW5lZDtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCB1cE5hbWUsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpIHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGhpdE9iamVjdCk7XHJcbiAgICB0b3BGb2xkZXIucHJvbW90ZVpPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaXNNYWluSG92ZXIoKXtcclxuXHJcbiAgICBsZXQgbm9NYWluSG92ZXIgPSB0cnVlO1xyXG4gICAgZm9yKCBsZXQgaT0wOyBpPGF2YWlsYWJsZUlucHV0cy5sZW5ndGg7IGkrKyApe1xyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzWyBpIF0uaW50ZXJhY3Rpb24uaG92ZXIgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIG5vTWFpbkhvdmVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggbm9NYWluSG92ZXIgKXtcclxuICAgICAgcmV0dXJuIGFueUhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuZmlsdGVyKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgICAgcmV0dXJuIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID09PSBpbnRlcmFjdGlvbjtcclxuICAgIH0pLmxlbmd0aCA+IDAgKXtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0ge1xyXG4gICAgaG92ZXJpbmc6IGlzTWFpbkhvdmVyLFxyXG4gICAgcHJlc3Npbmc6ICgpPT5hbnlQcmVzc2luZyxcclxuICAgIHVwZGF0ZSxcclxuICAgIGV2ZW50cyxcclxuICAgIGhpdFZvbHVtZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufVxyXG5cclxuIiwiLyoqXHJcbiAqIFxyXG4gKiBUT0RPOiBjdXJzb3JzLi4uXHJcbiAqIE1heWJlIHNvbWV0aGluZyBsaWtlIG1vYmlsZSBpbnB1dCB3aGVyZSB5b3Ugc3dpdGNoIGJldHdlZW4gbGV0dGVycyAmIG51bWJlcnMgLyBzeW1ib2xzXHJcbiAqIFxyXG4gKiBTb21ldGhpbmcgbGlrZSBhIHNwbGl0IGtleWJvYXJkIGFsYSBodHRwczovL21lZGl1bS5jb20vYWFyb25uL3ZyLXRleHQtaW5wdXQtc3BsaXQta2V5Ym9hcmQtZTViZjNmZDg3YTRjXHJcbiAqIG1pZ2h0IGJlIGJldHRlci5cclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZCggeyBcclxuICAgIGtleUxpc3RlbmVyLFxyXG4gICAgdGV4dENyZWF0b3JcclxufSA9IHt9KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0VHJhbnNmb3JtID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBncm91cC5hZGQob2Zmc2V0VHJhbnNmb3JtKTtcclxuXHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgZXZlbnRzLm9uKCdrZXlEb3duJywga2V5TGlzdGVuZXIpO1xyXG4gICAgXHJcbiAgICBjb25zdCBsb3dlckNoYXJzID0gXCIxMjM0NTY3ODkwLT1xd2VydHl1aW9wW11hc2RmZ2hqa2w7JyNcXFxcenhjdmJubSwuLyBcIi5zcGxpdCgnJyk7XHJcbiAgICBsZXQgb2JqZWN0cyA9IGxvd2VyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG93ZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQobG93ZXJLZXlzKTtcclxuXHJcbiAgICBjb25zdCB1cHBlckNoYXJzID0gXCIhXFxcIsKjJCVeJiooKV8rUVdFUlRZVUlPUHt9QVNERkdISktMOkB+fFpYQ1ZCTk08Pj8gXCIuc3BsaXQoJycpO1xyXG4gICAgb2JqZWN0cyA9IHVwcGVyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBwZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIHVwcGVyS2V5cy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHVwcGVyS2V5cyk7XHJcblxyXG4gICAgbGV0IHNoaWZ0ID0gZmFsc2U7XHJcbiAgICBmdW5jdGlvbiBzaGlmdFRvZ2dsZSgpIHtcclxuICAgICAgICBzaGlmdCA9ICFzaGlmdDtcclxuICAgICAgICBsb3dlcktleXMudmlzaWJsZSA9ICFzaGlmdDtcclxuICAgICAgICB1cHBlcktleXMudmlzaWJsZSA9IHNoaWZ0O1xyXG4gICB9XHJcblxyXG4gICBjb25zdCBzcGFjZUJhciA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7IHRleHRDcmVhdG9yLCBjb2x1bW5zOiAxLCByb3dIZWlnaHQ6IDAuMSwgb2JqZWN0czogW1xyXG4gICAgICAge2Z1bmM6ICgpPT5ldmVudHMuZW1pdCgna2V5RG93bicsICcgJyksIHRleHQ6ICdzcGFjZSd9XHJcbiAgICBdfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwYWNlQmFyKTtcclxuICAgIHZhciB5ID0gc3BhY2VCYXIucG9zaXRpb24ueSA9IC0wLjUgKiAobG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nKTtcclxuICAgIFxyXG4gICAgb2JqZWN0cyA9IFtcclxuICAgICAgICB7IHRleHQ6IFwic2hpZnRcIiwgZnVuYzogc2hpZnRUb2dnbGUgfSxcclxuICAgICAgICB7IHRleHQ6IFwiYmFja3NwYWNlXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcYicpIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImVudGVyXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcbicpIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBzcGVjaWFsS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDMsIHJvd0hlaWdodDogMC4xfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwZWNpYWxLZXlzKTtcclxuICAgIHNwZWNpYWxLZXlzLnBvc2l0aW9uLnkgPSB5LTAuNSAqIChzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZyk7XHJcbiAgICBncm91cC5zcGFjaW5nID0gbG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZztcclxuICAgIC8vdGhpcyBsb29rcyByaWdodCwgbXVzdCBhZG1pdCBJIGhhdmVuJ3QgdGhvdWdodCB0aHJvdWdoIGV4YWN0bHkgd2h5IGl0IHNob3VsZCBiZS5cclxuICAgIG9mZnNldFRyYW5zZm9ybS5wb3NpdGlvbi55ID0gc3BlY2lhbEtleXMuc3BhY2luZztcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdoaXRzY2FuJywge1xyXG4gICAgICAgIGdldDogKCkgPT4gW1xyXG4gICAgICAgICAgICBzcGVjaWFsS2V5cy5oaXRzY2FuLCBzcGFjZUJhci5oaXRzY2FuLCBzaGlmdCA/IHVwcGVyS2V5cy5oaXRzY2FuIDogbG93ZXJLZXlzLmhpdHNjYW5cclxuICAgICAgICBdLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSlcclxuICAgIH0pO1xyXG5cclxuICAgIHNwYWNlQmFyLmZvbGRlciA9IHVwcGVyS2V5cy5mb2xkZXIgPSBsb3dlcktleXMuZm9sZGVyID0gc3BlY2lhbEtleXMuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gKGlucHV0cykgPT4ge1xyXG4gICAgICAgIHNwZWNpYWxLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBsb3dlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHNwYWNlQmFyLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICB1cHBlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWxpZ25MZWZ0KCBvYmogKXtcclxuICBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuTWVzaCApe1xyXG4gICAgb2JqLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4LnggLSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmouZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZWxzZSBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkgKXtcclxuICAgIG9iai5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gIGNvbnN0IG1hdGVyaWFsID0gdW5pcXVlTWF0ZXJpYWwgPyBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4ZmZmZmZmfSkgOiBTaGFyZWRNYXRlcmlhbHMuUEFORUw7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApLCBtYXRlcmlhbCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgaWYoIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuXHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxuXHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiByZXNpemVQYW5lbChwYW5lbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgpIHtcclxuICBwYW5lbC5nZW9tZXRyeS5zY2FsZSh3aWR0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGgsIGhlaWdodC9wYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0LCBkZXB0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGgpO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgY29sb3IgKXtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENPTlRST0xMRVJfSURfV0lEVEgsIGhlaWdodCwgQ09OVFJPTExFUl9JRF9ERVBUSCApLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIENPTlRST0xMRVJfSURfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIGNvbG9yICk7XHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRG93bkFycm93KCl7XHJcbiAgY29uc3QgdyA9IDAuMDA5NjtcclxuICBjb25zdCBoID0gMC4wMTY7XHJcbiAgY29uc3Qgc2ggPSBuZXcgVEhSRUUuU2hhcGUoKTtcclxuICBzaC5tb3ZlVG8oMCwwKTtcclxuICBzaC5saW5lVG8oLXcsaCk7XHJcbiAgc2gubGluZVRvKHcsaCk7XHJcbiAgc2gubGluZVRvKDAsMCk7XHJcblxyXG4gIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KCBzaCApO1xyXG4gIGdlby50cmFuc2xhdGUoIDAsIC1oICogMC41LCAwICk7XHJcblxyXG4gIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgUEFORUxfSEVJR0hUID0gMC4wODtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1NQQUNJTkcgPSAwOy8vLjAwMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX01BUkdJTiA9IDAuMDE1O1xyXG5leHBvcnQgY29uc3QgUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gPSAwLjA2O1xyXG5leHBvcnQgY29uc3QgUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9XSURUSCA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RFUFRIID0gMC4wMDE7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX1dJRFRIID0gMS4wMjY7XHJcbmV4cG9ydCBjb25zdCBTVUJGT0xERVJfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfSEVJR0hUID0gMC4wOTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9HUkFCX0hFSUdIVCA9IDAuMDUxMjtcclxuZXhwb3J0IGNvbnN0IEJPUkRFUl9USElDS05FU1MgPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfU0laRSA9IDAuMDU7XHJcbmV4cG9ydCBjb25zdCBURVhUX1NDQUxFID0gMC4wMDAyNDtcclxuZXhwb3J0IGNvbnN0IEdSSURfQlVUVE9OX01BUkdJTiA9IDAuMDE7IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvbkdyaXBwZWQnLCBoYW5kbGVPbkdyaXAgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VHcmlwJywgaGFuZGxlT25HcmlwUmVsZWFzZSApO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgbGV0IG9sZFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBsZXQgb2xkUm90YXRpb24gPSBuZXcgVEhSRUUuRXVsZXIoKTtcclxuXHJcbiAgY29uc3Qgcm90YXRpb25Hcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHJvdGF0aW9uR3JvdXAuc2NhbGUuc2V0KCAwLjMsIDAuMywgMC4zICk7XHJcbiAgcm90YXRpb25Hcm91cC5wb3NpdGlvbi5zZXQoIC0wLjAxNSwgMC4wMTUsIDAuMCApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwKCBwICl7XHJcblxyXG4gICAgY29uc3QgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9sZFBvc2l0aW9uLmNvcHkoIGZvbGRlci5wb3NpdGlvbiApO1xyXG4gICAgb2xkUm90YXRpb24uY29weSggZm9sZGVyLnJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24ueCA9IC1NYXRoLlBJICogMC41O1xyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG5cclxuICAgIHJvdGF0aW9uR3JvdXAuYWRkKCBmb2xkZXIgKTtcclxuXHJcbiAgICBpbnB1dE9iamVjdC5hZGQoIHJvdGF0aW9uR3JvdXAgKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGlubmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcFJlbGVhc2UoIHsgaW5wdXRPYmplY3QsIGlucHV0IH09e30gKXtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoIG9sZFBvc2l0aW9uICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uY29weSggb2xkUm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGluUmVsZWFzZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiLyoqXHJcbiAqIFBKVDogVGhpcyBpcyBhIHZhcmlhdGlvbiBvbiBzZGZzaGFkZXIgZnJvbSBibWZvbnQsIHdoaWNoIHNob3VsZCBKdXN0IFdvcmsgd2l0aCBsb2dhcml0aG1pYyBkZXB0aCBidWZmZXJzLlxyXG4gKiBJdCBzaG91bGQgYWxzbyBhbGxvdyBzb21lIG90aGVyIGFzcGVjdHMgb2YgVEhSRUUgcmVuZGVyaW5nIHRvIGJlIGluY29ycG9yYXRlZCwgbGlrZSBmb2csIGNsaXBwaW5nIHBsYW5lcy4uLlxyXG4gKiBFbnZpcm9ubWVudCBtYXBzIGFuZCB2YXJpb3VzIG90aGVyIGJpdHMgZnJvbSBNZXNoQmFzaWNNYXRlcmlhbCBhcmUgcmVtb3ZlZC5cclxuICogQXQgdGltZSBvZiB3cml0aW5nLCB0aGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MsIGFuZCBzb21ld2hhdCBtb3JlIGJsb2F0ZWQgdGhhbiBpdCBuZWVkcyB0byBiZS5cclxuICogVGhlIHNoYWRlciBjb2RlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBTaGFkZXJNYXRlcmlhbCByYXRoZXIgdGhhbiBSYXdTaGFkZXJNYXRlcmlhbC5cclxuICovXHJcbi8vIGltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XHJcblxyXG4vKipcclxuICogc3RhcnRpbmcgZnJvbSBUSFJFRSBtZXNoYmFzaWMgc2hhZGVycywgcHJ1bmluZyAvIG1vZGlmeWluZy4uLlxyXG4gKi9cclxuY29uc3QgbWVzaGJhc2ljX3ZlcnQgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XHJcblxyXG52b2lkIG1haW4oKSB7IFxyXG4gIHZVdiA9IHV2O1xyXG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IG1lc2hiYXNpY19mcmFnID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxudW5pZm9ybSB2ZWMzIGNvbG9yO1xyXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XHJcblxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XHJcblxyXG4vLy8vL1xyXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcclxuICAgIC8vIFdlIG5vdyBhc3N1bWUgV2ViR0wyIGFuZCBzbyB0aGUgZGVyaXZhdGl2ZXMgYXJlIGF2YWlsYWJsZSwgXHJcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXHJcbiAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBtZXNoLmdlb21ldHJ5LnVwZGF0ZSggc3RyICk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogVEhSRUUuVmVydGV4Q29sb3JzIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiAweEZGRkZGRiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIC8vaG93IGNhbiBJIGNoYW5nZSBjb2xvciBvZiB0ZXh0P1xyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBvYmplY3RbcHJvcGVydHlOYW1lXSwgeyBjb2xvcjogMHgwMDAwMDAwLCBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgLy9idXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IDAuMDE1O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVN0cmluZyhzdHIpIHtcclxuICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdHI7XHJcbiAgICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKHN0cik7XHJcbiAgfVxyXG4gIHZhciBrZXlib2FyZDtcclxuICBmdW5jdGlvbiB0b2dnbGVLZXlib2FyZCgpIHtcclxuICAgIGlmIChrZXlib2FyZCkge1xyXG4gICAgICAgIGtleWJvYXJkLnZpc2libGUgPSAha2V5Ym9hcmQudmlzaWJsZTtcclxuICAgICAgICBpZiAoa2V5Ym9hcmQudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGtleWJvYXJkID0gZGF0LkdVSVZSLmNyZWF0ZShcImtleWJvYXJkXCIpO1xyXG4gICAgICAgIGdyb3VwLmFkZChrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQuZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueCA9IHdpZHRoO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgICAgICBrZXlib2FyZC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAga2V5Ym9hcmQuYWRkS2V5Ym9hcmQoIChrKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBzdHIgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgc3dpdGNoIChrKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXG4nOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0dGluZyBcImtleWJvYXJkLnZpc2libGUgPSBmYWxzZVwiIGluIHRoZSBtaWRkbGUgb2YgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIgc2VlbXMgdG8ga2lsbCBhbGwgZXZlbnQgcHJvY2Vzc2luZyBmcm9tIHRoZW4gb24uXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0IGlzIGFuIGFkZXF1YXRlIHdvcmthcm91bmQgZm9yIG5vdy5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRvZ2dsZUtleWJvYXJkLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxiJzpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSBrO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL3RoaXMgdGVzdCBzaG91bGQgYmUgcmVkdW5kYW50IG5vd1xyXG4gICAgLy8gaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvL29iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICAvL2hpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICAvLyBjcmVhdGUgYSBrZXlib2FyZCBhbmQgYXR0YWNoIGl0IGFzIGNoaWxkIG9mIGdyb3VwLi4uIFxyXG4gICAgLy8gb3IganVzdCBtYWtlIHN1cmUgZXhpc3Rpbmcga2V5Ym9hcmQgaXMgdmlzaWJsZS5cclxuICAgIHRvZ2dsZUtleWJvYXJkKCk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfSElHSExJR0hUX0JHICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0JHICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRMYWJlbCggdGV4dENyZWF0b3IsIHN0ciwgd2lkdGggPSAwLjQsIGRlcHRoID0gMC4wMjksIGZnQ29sb3IgPSAweGZmZmZmZiwgYmdDb2xvciA9IENvbG9ycy5ERUZBVUxUX0JBQ0ssIHNjYWxlID0gMS4wICl7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGxhYmVsXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7c3RyfV1gO1xyXG5cclxuICBjb25zdCBpbnRlcm5hbFBvc2l0aW9uaW5nID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vcmF0aGVyIHVubmVjZXNzYXJ5LlxyXG4gIGdyb3VwLmFkZCggaW50ZXJuYWxQb3NpdGlvbmluZyApO1xyXG5cclxuICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdHIudG9TdHJpbmcoKSwgeyBjb2xvcjogZmdDb2xvciwgc2NhbGUgfSApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCB0ZXh0ICk7XHJcbiAgZ3JvdXAudXNlckRhdGEudGV4dCA9IHRleHQ7XHJcblxyXG4gIGdyb3VwLnNldFN0cmluZyA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkgc3RyID0gXCJbdW5kZWZpbmVkXVwiO1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvU3RyaW5nKCkgKTtcclxuICAgIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0TnVtYmVyID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvRml4ZWQoMikgKTtcclxuICB9O1xyXG5cclxuICB0ZXh0LnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgY29uc3QgYmFja0JvdW5kcyA9IDAuMDE7XHJcbiAgY29uc3QgbWFyZ2luID0gMC4wMTtcclxuICBjb25zdCB0b3RhbFdpZHRoID0gd2lkdGg7XHJcbiAgY29uc3QgdG90YWxIZWlnaHQgPSAwLjA0ICsgbWFyZ2luICogMjtcclxuXHJcbiAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrR2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0LCBkZXB0aCwgMSwgMSwgMSApO1xyXG4gIGxhYmVsQmFja0dlb21ldHJ5LmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oIHRvdGFsV2lkdGggKiAwLjUgLSBtYXJnaW4sIDAsIDAgKSApO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tNZXNoID0gbmV3IFRIUkVFLk1lc2goIGxhYmVsQmFja0dlb21ldHJ5LCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWxCYWNrTWVzaC5nZW9tZXRyeSwgYmdDb2xvciApO1xyXG5cclxuICBsYWJlbEJhY2tNZXNoLnBvc2l0aW9uLnkgPSAwLjAzO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCBsYWJlbEJhY2tNZXNoICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5wb3NpdGlvbi55ID0gLXRvdGFsSGVpZ2h0ICogMC41O1xyXG5cclxuICBncm91cC5iYWNrID0gbGFiZWxCYWNrTWVzaDtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0UGFyZW50SGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbFRpcCggdGV4dENyZWF0b3IsIHRpcCwgcGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCA9IGRlZmF1bHRQYXJlbnRIZWlnaHQsIHBhcmVudERlcHRoICkge1xyXG4gIGNvbnN0IHRpcFRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUodGlwKTtcclxuICBcclxuICBjb25zdCB0aXBHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICBjb25zdCB3ID0gdGlwVGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICBjb25zdCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0aXBUZXh0LmxheW91dC5oZWlnaHQ7XHJcblxyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnggID0gMC41ICogcGFyZW50V2lkdGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueSA9IC0xLjA1ICogcGFyZW50SGVpZ2h0IC0gaDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi56ID0gcGFyZW50RGVwdGggKiAzO1xyXG4gIHRpcEdyb3VwLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbi8vICBzdWJncm91cC5hZGQodGlwR3JvdXApO1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBUZXh0KTtcclxuLy8gIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBHcm91cDtcclxuXHJcbiAgY29uc3QgcGFkZGVkVyA9IHcgKyAwLjAzLCBwYWRkZWRIID0gaCArIDAuMDM7XHJcbiAgY29uc3QgdGlwUmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KHBhZGRlZFcsIHBhZGRlZEgsIDEsIDEpO1xyXG4gIGNvbnN0IHRpcEJhY2tncm91bmQgPSBuZXcgVEhSRUUuTWVzaCh0aXBSZWN0LCBTaGFyZWRNYXRlcmlhbHMuVE9PTFRJUCk7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi54ID0gMDsgLy9wYWRkZWRXIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnkgPSBoIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnogPSAtcGFyZW50RGVwdGggKiAwLjU7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcEJhY2tncm91bmQpO1xyXG5cclxuICB0aXBUZXh0LnBvc2l0aW9uLnggPSAtMC41ICogdztcclxuICB0aXBUZXh0LnBvc2l0aW9uLnkgPSAtMC41ICogaCArIDAuMDAxNTtcclxuXHJcbiAgdGlwR3JvdXAudXNlckRhdGEudyA9IHc7XHJcbiAgdGlwR3JvdXAudXNlckRhdGEuaCA9IGg7XHJcblxyXG4gIHJldHVybiB0aXBHcm91cDtcclxufVxyXG4iLCIvKiogYmFzaWMgdXRpbGl0eSBmdW5jdGlvbnMgKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xsZXJWaXNpYmxlKGNvbnRyb2wpIHtcclxuICB2YXIgZm9sZGVyID0gY29udHJvbC5mb2xkZXI7XHJcbiAgLy9ub3RlOiB0aGUgYmFzaXMgb24gd2hpY2ggYSBjb250cm9sbGVyIGlzIGNvbnNpZGVyZWQgdmlzaWJsZSByZXZpc2VkIGZvciAnaGVhZGVyJyBvYmplY3RzLlxyXG4gIC8vZm9yIG5vdywgdGhpcyBzaG91bGQgYWxsb3cgaGVhZGVyIGNvbnRyb2xsZXJzIHRvIHVwZGF0ZSB3aGlsZSBmb2xkZXIgaXMgY29sbGFwc2VkLlxyXG4gIC8vb25seSBhcHBsaWVzIHRvIGNoZWNrYm94LCBwZW5kaW5nIGRlc2lnbiByZXZpc2lvbiAmIGZ1bGxlciBpbXBsZW1lbnRhdGlvbi4uLlxyXG4gIFxyXG4gIC8vLS0tLSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgbm8gbG9uZ2VyIHJlbGV2YW50LCBidXQgZW5kaW5nIHVwIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3Mgc2ltaWxhci4uLi5cclxuICAvL2lzSGVhZGVyT2JqZWN0IHdpbGwgYXBwbHkgdG8gdGhlIGFjdHVhbCBjb250cm9sIGFwcGVhcmluZyBpbiB0aGUgZm9sZGVyIGhlYWRlciwgd2hlcmVhc1xyXG4gIC8vaXNTaG93bkluRm9sZGVySGVhZGVyIHdhcyB3aGVuIHN1Y2ggb2JqZWN0cyB3ZXJlbid0IHNvIGZ1bGx5LWZsZWRnZWRcclxuICAvL2lmIChjb250cm9sLmlzU2hvd25JbkZvbGRlckhlYWRlcikgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTsgLy88PDw8PCBzdGlsbCBoaXR0aW5nIGZvbGRlZCBidXR0b24/Pz8gKGFsc28sIHRyeSBucG0gYXVkaXQpXHJcbiAgaWYgKGNvbnRyb2wuaXNIZWFkZXJPYmplY3QpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7XHJcblxyXG4gIC8vWFhYIGhhdmluZyBzb21lIGRlZmluaXRlIGJ1Z3MgZS5nLiBtaXNzaW5nIGV2ZW50cyBvdmVyICdwaWN0dXJlcyAvIG1hdGVyaWFscycgZm9sZGVyIGhlYWRlciBpbiBkZW1vLlxyXG4gIFxyXG4gIGlmICghY29udHJvbC52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcil7XHJcbiAgICBpZiAoZm9sZGVyLmlzQ29sbGFwc2VkKCkgfHwgIWZvbGRlci52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gIH1cclxuICBpZiAoIWZvbGRlci5wYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gZm9sZGVyLnZpc2libGU7XHJcbn1cclxuXHJcbi8qKiBcclxuICogSW52aXNpYmxlIFRIUkVFIG9iamVjdHMgaW5jdXIgc2lnbmlmaWNhbnQgQ1BVIGNvc3QuXHJcbiAqIFRoaXMgYXZvaWRzIHRoYXQgYnkgcmVtb3ZpbmcgdGhlbSBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICogXHJcbiAqIElmIHZpc2libGUgaXMgdHJ1ZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9dHJ1ZSBhbmQgaXMgYSBjaGlsZCBvZiBwYXJlbnQuXHJcbiAqIElmIHZpc2libGUgaXMgZmFsc2UsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPWZhbHNlIGFuZCBpcyByZW1vdmVkIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHkocGFyZW50LCBjaGlsZCwgdmlzaWJsZSkge1xyXG4gICAgY29uc3QgaXNDaGlsZCA9IHBhcmVudC5jaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCk7XHJcbiAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgIC8vbWFrZSBzdXJlIHdlIHVzZSBvcmlnaW5hbCBUSFJFRSBtZXRob2RzIHRoYXQgdGhpcyBsaWJyYXJ5IG92ZXJyaWRlcyAoVE9ETzogcmVmYWN0b3IuLi4pXHJcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZC5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCF2aXNpYmxlICYmIGlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmUuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghcGFyZW50LnZpc2libGUpIGNvbnNvbGUud2Fybihgc2V0VmlzaWJpbGl0eSBjYWxsZWQgb24gY2hpbGQgJHtjaGlsZH0gb2YgaW52aXNpYmxlIHBhcmVudCAke3BhcmVudH1gKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2YgcGFyZW50IGZvbGRlciBpbiB0aGUgZ3VpIGhpZWFyY2h5IGNvbnRhaW5pbmcgYSBnaXZlbiBvYmplY3QuXHJcbiAqIG5iLiBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0IGRpZG4ndCBoYXZlIGEgJ2ZvbGRlcicgcHJvcGVydHkuXHJcbiAqIE5vdywgaXQgaXMgaW50ZW5kZWQgdGhhdCBpdCBzaG91bGQgZWl0aGVyIHJldHVybiBhIGZvbGRlciBpZiBhcHByb3ByaWF0ZSwgb3Igbm90aGluZy5cclxuICogQHBhcmFtIHsqfSBncm91cCBlaXRoZXIgYSBmb2xkZXIsIG9yIGFuIG9iamVjdCB3aG9zZSBwYXJlbnQgaGFzIGEgZm9sZGVyLi4uIGFwb2xvZ2llcywgdGhpcyBpcyBub3QgdGhlIGNsZWFyZXN0IHNwZWMuXHJcbiAqIC4uLiBpbnRlbnRpb24gaXMgdGhhdCBpdCBzaG91bGQgd29yayB3aXRoIGFueSBndWkgZWxlbWVudCwgaW4gcGFydGljdWxhciBhbnkgaGl0T2JqZWN0IGluIGludGVyYWN0aW9uLmpzLi4uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApIHtcclxuICAgIHZhciBmb2xkZXIgPSBnZXRGb2xkZXIoZ3JvdXApO1xyXG4gICAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcikgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICAgIHJldHVybiBmb2xkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoZ3JvdXApIHtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIHJldHVybiBncm91cC5mb2xkZXI7XHJcbiAgICBsZXQgbm9kZSA9IGdyb3VwLnBhcmVudDtcclxuICAgIHdoaWxlICghbm9kZS5mb2xkZXIgJiYgZ3JvdXAucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICByZXR1cm4gbm9kZS5mb2xkZXI7XHJcbn1cclxuXHJcbi8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCb3hGcm9tT2JqZWN0KGJveCwgb2JqKSB7XHJcbiAgY29uc3Qgd29ua3lHZW9tID0gW107XHJcbiAgb2JqLnRyYXZlcnNlKG8gPT4ge1xyXG4gICAgaWYgKG8uZ2VvbWV0cnkgJiYgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZSAhPT0gMykge1xyXG4gICAgICBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgPSBmYWxzZTtcclxuICAgICAgd29ua3lHZW9tLnB1c2goby5nZW9tZXRyeSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgYm94LnNldEZyb21PYmplY3Qob2JqKTtcclxuICB3b25reUdlb20uZm9yRWFjaChnID0+IGcuaXNCdWZmZXJHZW9tZXRyeSA9IHRydWUpO1xyXG4gIHJldHVybiBib3g7XHJcbn1cclxuIiwiLypcclxuICpcdEBhdXRob3Igeno4NSAvIGh0dHA6Ly90d2l0dGVyLmNvbS9ibHVyc3BsaW5lIC8gaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZ1xyXG4gKlx0QGF1dGhvciBjZW50ZXJpb253YXJlIC8gaHR0cDovL3d3dy5jZW50ZXJpb253YXJlLmNvbVxyXG4gKlxyXG4gKlx0U3ViZGl2aXNpb24gR2VvbWV0cnkgTW9kaWZpZXJcclxuICpcdFx0dXNpbmcgTG9vcCBTdWJkaXZpc2lvbiBTY2hlbWVcclxuICpcclxuICpcdFJlZmVyZW5jZXM6XHJcbiAqXHRcdGh0dHA6Ly9ncmFwaGljcy5zdGFuZm9yZC5lZHUvfm1kZmlzaGVyL3N1YmRpdmlzaW9uLmh0bWxcclxuICpcdFx0aHR0cDovL3d3dy5ob2xtZXMzZC5uZXQvZ3JhcGhpY3Mvc3ViZGl2aXNpb24vXHJcbiAqXHRcdGh0dHA6Ly93d3cuY3MucnV0Z2Vycy5lZHUvfmRlY2FybG8vcmVhZGluZ3Mvc3ViZGl2LXNnMDBjLnBkZlxyXG4gKlxyXG4gKlx0S25vd24gSXNzdWVzOlxyXG4gKlx0XHQtIGN1cnJlbnRseSBkb2Vzbid0IGhhbmRsZSBcIlNoYXJwIEVkZ2VzXCJcclxuICovXHJcblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyID0gZnVuY3Rpb24gKCBzdWJkaXZpc2lvbnMgKSB7XHJcblxyXG5cdHRoaXMuc3ViZGl2aXNpb25zID0gKCBzdWJkaXZpc2lvbnMgPT09IHVuZGVmaW5lZCApID8gMSA6IHN1YmRpdmlzaW9ucztcclxuXHJcbn07XHJcblxyXG4vLyBBcHBsaWVzIHRoZSBcIm1vZGlmeVwiIHBhdHRlcm5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUubW9kaWZ5ID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHtcclxuXHJcblx0dmFyIHJlcGVhdHMgPSB0aGlzLnN1YmRpdmlzaW9ucztcclxuXHJcblx0d2hpbGUgKCByZXBlYXRzIC0tID4gMCApIHtcclxuXHJcblx0XHR0aGlzLnNtb290aCggZ2VvbWV0cnkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRnZW9tZXRyeS5jb21wdXRlRmFjZU5vcm1hbHMoKTtcclxuXHRnZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xyXG5cclxufTtcclxuXHJcbiggZnVuY3Rpb24oKSB7XHJcblxyXG5cdC8vIFNvbWUgY29uc3RhbnRzXHJcblx0dmFyIFdBUk5JTkdTID0gISB0cnVlOyAvLyBTZXQgdG8gdHJ1ZSBmb3IgZGV2ZWxvcG1lbnRcclxuXHR2YXIgQUJDID0gWyAnYScsICdiJywgJ2MnIF07XHJcblxyXG5cclxuXHRmdW5jdGlvbiBnZXRFZGdlKCBhLCBiLCBtYXAgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0cmV0dXJuIG1hcFsga2V5IF07XHJcblxyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHByb2Nlc3NFZGdlKCBhLCBiLCB2ZXJ0aWNlcywgbWFwLCBmYWNlLCBtZXRhVmVydGljZXMgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0dmFyIGVkZ2U7XHJcblxyXG5cdFx0aWYgKCBrZXkgaW4gbWFwICkge1xyXG5cclxuXHRcdFx0ZWRnZSA9IG1hcFsga2V5IF07XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHZhciB2ZXJ0ZXhBID0gdmVydGljZXNbIHZlcnRleEluZGV4QSBdO1xyXG5cdFx0XHR2YXIgdmVydGV4QiA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEIgXTtcclxuXHJcblx0XHRcdGVkZ2UgPSB7XHJcblxyXG5cdFx0XHRcdGE6IHZlcnRleEEsIC8vIHBvaW50ZXIgcmVmZXJlbmNlXHJcblx0XHRcdFx0YjogdmVydGV4QixcclxuXHRcdFx0XHRuZXdFZGdlOiBudWxsLFxyXG5cdFx0XHRcdC8vIGFJbmRleDogYSwgLy8gbnVtYmVyZWQgcmVmZXJlbmNlXHJcblx0XHRcdFx0Ly8gYkluZGV4OiBiLFxyXG5cdFx0XHRcdGZhY2VzOiBbXSAvLyBwb2ludGVycyB0byBmYWNlXHJcblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0bWFwWyBrZXkgXSA9IGVkZ2U7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGVkZ2UuZmFjZXMucHVzaCggZmFjZSApO1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlc1sgYSBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHRcdG1ldGFWZXJ0aWNlc1sgYiBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2VuZXJhdGVMb29rdXBzKCB2ZXJ0aWNlcywgZmFjZXMsIG1ldGFWZXJ0aWNlcywgZWRnZXMgKSB7XHJcblxyXG5cdFx0dmFyIGksIGlsLCBmYWNlLCBlZGdlO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IHZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0bWV0YVZlcnRpY2VzWyBpIF0gPSB7IGVkZ2VzOiBbXSB9O1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBmYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBmYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYSwgZmFjZS5iLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5iLCBmYWNlLmMsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmMsIGZhY2UuYSwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3RmFjZSggbmV3RmFjZXMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3RmFjZXMucHVzaCggbmV3IFRIUkVFLkZhY2UzKCBhLCBiLCBjICkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBtaWRwb2ludCggYSwgYiApIHtcclxuXHJcblx0XHRyZXR1cm4gKCBNYXRoLmFicyggYiAtIGEgKSAvIDIgKSArIE1hdGgubWluKCBhLCBiICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3VXYoIG5ld1V2cywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdVdnMucHVzaCggWyBhLmNsb25lKCksIGIuY2xvbmUoKSwgYy5jbG9uZSgpIF0gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHQvLyBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIFN1YmRpdmlzaW9uXHJcblx0VEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUuc21vb3RoID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHsgcmV0dXJuOyAvLyBzanB0IFRFTVAgVE9ET1xyXG5cclxuXHRcdHZhciB0bXAgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdHZhciBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG9sZFV2cztcclxuXHRcdHZhciBuZXdWZXJ0aWNlcywgbmV3RmFjZXMsIG5ld1VWcyA9IFtdO1xyXG5cclxuXHRcdHZhciBuLCBsLCBpLCBpbCwgaiwgaztcclxuXHRcdHZhciBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzO1xyXG5cclxuXHRcdC8vIG5ldyBzdHVmZi5cclxuXHRcdHZhciBzb3VyY2VFZGdlcywgbmV3RWRnZVZlcnRpY2VzLCBuZXdTb3VyY2VWZXJ0aWNlcztcclxuXHJcblx0XHRvbGRWZXJ0aWNlcyA9IGdlb21ldHJ5LnZlcnRpY2VzOyAvLyB7IHgsIHksIHp9XHJcblx0XHRvbGRGYWNlcyA9IGdlb21ldHJ5LmZhY2VzOyAvLyB7IGE6IG9sZFZlcnRleDEsIGI6IG9sZFZlcnRleDIsIGM6IG9sZFZlcnRleDMgfVxyXG5cdFx0b2xkVXZzID0gZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdO1xyXG5cclxuXHRcdHZhciBoYXNVdnMgPSBvbGRVdnMgIT09IHVuZGVmaW5lZCAmJiBvbGRVdnMubGVuZ3RoID4gMDtcclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICogU3RlcCAwOiBQcmVwcm9jZXNzIEdlb21ldHJ5IHRvIEdlbmVyYXRlIGVkZ2VzIExvb2t1cFxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlcyA9IG5ldyBBcnJheSggb2xkVmVydGljZXMubGVuZ3RoICk7XHJcblx0XHRzb3VyY2VFZGdlcyA9IHt9OyAvLyBFZGdlID0+IHsgb2xkVmVydGV4MSwgb2xkVmVydGV4MiwgZmFjZXNbXSAgfVxyXG5cclxuXHRcdGdlbmVyYXRlTG9va3Vwcyggb2xkVmVydGljZXMsIG9sZEZhY2VzLCBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzICk7XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAxLlxyXG5cdFx0ICpcdEZvciBlYWNoIGVkZ2UsIGNyZWF0ZSBhIG5ldyBFZGdlIFZlcnRleCxcclxuXHRcdCAqXHR0aGVuIHBvc2l0aW9uIGl0LlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld0VkZ2VWZXJ0aWNlcyA9IFtdO1xyXG5cdFx0dmFyIG90aGVyLCBjdXJyZW50RWRnZSwgbmV3RWRnZSwgZmFjZTtcclxuXHRcdHZhciBlZGdlVmVydGV4V2VpZ2h0LCBhZGphY2VudFZlcnRleFdlaWdodCwgY29ubmVjdGVkRmFjZXM7XHJcblxyXG5cdFx0Zm9yICggaSBpbiBzb3VyY2VFZGdlcyApIHtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlID0gc291cmNlRWRnZXNbIGkgXTtcclxuXHRcdFx0bmV3RWRnZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMyAvIDg7XHJcblx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRjb25uZWN0ZWRGYWNlcyA9IGN1cnJlbnRFZGdlLmZhY2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdC8vIGNoZWNrIGhvdyBtYW55IGxpbmtlZCBmYWNlcy4gMiBzaG91bGQgYmUgY29ycmVjdC5cclxuXHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiBsZW5ndGggaXMgbm90IDIsIGhhbmRsZSBjb25kaXRpb25cclxuXHRcdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMC41O1xyXG5cdFx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdTdWJkaXZpc2lvbiBNb2RpZmllcjogTnVtYmVyIG9mIGNvbm5lY3RlZCBmYWNlcyAhPSAyLCBpczogJywgY29ubmVjdGVkRmFjZXMsIGN1cnJlbnRFZGdlICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld0VkZ2UuYWRkVmVjdG9ycyggY3VycmVudEVkZ2UuYSwgY3VycmVudEVkZ2UuYiApLm11bHRpcGx5U2NhbGFyKCBlZGdlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IGNvbm5lY3RlZEZhY2VzOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRmYWNlID0gY3VycmVudEVkZ2UuZmFjZXNbIGogXTtcclxuXHJcblx0XHRcdFx0Zm9yICggayA9IDA7IGsgPCAzOyBrICsrICkge1xyXG5cclxuXHRcdFx0XHRcdG90aGVyID0gb2xkVmVydGljZXNbIGZhY2VbIEFCQ1sgayBdIF0gXTtcclxuXHRcdFx0XHRcdGlmICggb3RoZXIgIT09IGN1cnJlbnRFZGdlLmEgJiYgb3RoZXIgIT09IGN1cnJlbnRFZGdlLmIgKSBicmVhaztcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBhZGphY2VudFZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdFZGdlLmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZS5uZXdFZGdlID0gbmV3RWRnZVZlcnRpY2VzLmxlbmd0aDtcclxuXHRcdFx0bmV3RWRnZVZlcnRpY2VzLnB1c2goIG5ld0VkZ2UgKTtcclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGN1cnJlbnRFZGdlLCBuZXdFZGdlKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDIuXHJcblx0XHQgKlx0UmVwb3NpdGlvbiBlYWNoIHNvdXJjZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHR2YXIgYmV0YSwgc291cmNlVmVydGV4V2VpZ2h0LCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0O1xyXG5cdFx0dmFyIGNvbm5lY3RpbmdFZGdlLCBjb25uZWN0aW5nRWRnZXMsIG9sZFZlcnRleCwgbmV3U291cmNlVmVydGV4O1xyXG5cdFx0bmV3U291cmNlVmVydGljZXMgPSBbXTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRWZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG9sZFZlcnRleCA9IG9sZFZlcnRpY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIGFsbCBjb25uZWN0aW5nIGVkZ2VzICh1c2luZyBsb29rdXBUYWJsZSlcclxuXHRcdFx0Y29ubmVjdGluZ0VkZ2VzID0gbWV0YVZlcnRpY2VzWyBpIF0uZWRnZXM7XHJcblx0XHRcdG4gPSBjb25uZWN0aW5nRWRnZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0aWYgKCBuID09IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gMTY7XHJcblxyXG5cdFx0XHR9IGVsc2UgaWYgKCBuID4gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAoIDggKiBuICk7IC8vIFdhcnJlbidzIG1vZGlmaWVkIGZvcm11bGFcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIExvb3AncyBvcmlnaW5hbCBiZXRhIGZvcm11bGFcclxuXHRcdFx0Ly8gYmV0YSA9IDEgLyBuICogKCA1LzggLSBNYXRoLnBvdyggMy84ICsgMS80ICogTWF0aC5jb3MoIDIgKiBNYXRoLiBQSSAvIG4gKSwgMikgKTtcclxuXHJcblx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDEgLSBuICogYmV0YTtcclxuXHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IGJldGE7XHJcblxyXG5cdFx0XHRpZiAoIG4gPD0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlc1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUud2FybignY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlcycpO1xyXG5cclxuXHRcdFx0XHRpZiAoIG4gPT0gMiApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMiBjb25uZWN0aW5nIGVkZ2VzJywgY29ubmVjdGluZ0VkZ2VzICk7XHJcblx0XHRcdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAzIC8gNDtcclxuXHRcdFx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdFx0XHQvLyBzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxO1xyXG5cdFx0XHRcdFx0Ly8gY29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnb25seSAxIGNvbm5lY3RpbmcgZWRnZScgKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAwICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcwIGNvbm5lY3RpbmcgZWRnZXMnICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleCA9IG9sZFZlcnRleC5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKCBzb3VyY2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgbjsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0Y29ubmVjdGluZ0VkZ2UgPSBjb25uZWN0aW5nRWRnZXNbIGogXTtcclxuXHRcdFx0XHRvdGhlciA9IGNvbm5lY3RpbmdFZGdlLmEgIT09IG9sZFZlcnRleCA/IGNvbm5lY3RpbmdFZGdlLmEgOiBjb25uZWN0aW5nRWRnZS5iO1xyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3U291cmNlVmVydGV4LmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0aWNlcy5wdXNoKCBuZXdTb3VyY2VWZXJ0ZXggKTtcclxuXHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAzLlxyXG5cdFx0ICpcdEdlbmVyYXRlIEZhY2VzIGJldHdlZW4gc291cmNlIHZlcnRpY2VzXHJcblx0XHQgKlx0YW5kIGVkZ2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3VmVydGljZXMgPSBuZXdTb3VyY2VWZXJ0aWNlcy5jb25jYXQoIG5ld0VkZ2VWZXJ0aWNlcyApO1xyXG5cdFx0dmFyIHNsID0gbmV3U291cmNlVmVydGljZXMubGVuZ3RoLCBlZGdlMSwgZWRnZTIsIGVkZ2UzO1xyXG5cdFx0bmV3RmFjZXMgPSBbXTtcclxuXHJcblx0XHR2YXIgdXYsIHgwLCB4MSwgeDI7XHJcblx0XHR2YXIgeDMgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg0ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NSA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkRmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gb2xkRmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgdGhlIDMgbmV3IGVkZ2VzIHZlcnRleCBvZiBlYWNoIG9sZCBmYWNlXHJcblxyXG5cdFx0XHRlZGdlMSA9IGdldEVkZ2UoIGZhY2UuYSwgZmFjZS5iLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTIgPSBnZXRFZGdlKCBmYWNlLmIsIGZhY2UuYywgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UzID0gZ2V0RWRnZSggZmFjZS5jLCBmYWNlLmEsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgZmFjZXMuXHJcblxyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZWRnZTEsIGVkZ2UyLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5hLCBlZGdlMSwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYiwgZWRnZTIsIGVkZ2UxICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmMsIGVkZ2UzLCBlZGdlMiApO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgbmV3IHV2J3NcclxuXHJcblx0XHRcdGlmICggaGFzVXZzICkge1xyXG5cclxuXHRcdFx0XHR1diA9IG9sZFV2c1sgaSBdO1xyXG5cclxuXHRcdFx0XHR4MCA9IHV2WyAwIF07XHJcblx0XHRcdFx0eDEgPSB1dlsgMSBdO1xyXG5cdFx0XHRcdHgyID0gdXZbIDIgXTtcclxuXHJcblx0XHRcdFx0eDMuc2V0KCBtaWRwb2ludCggeDAueCwgeDEueCApLCBtaWRwb2ludCggeDAueSwgeDEueSApICk7XHJcblx0XHRcdFx0eDQuc2V0KCBtaWRwb2ludCggeDEueCwgeDIueCApLCBtaWRwb2ludCggeDEueSwgeDIueSApICk7XHJcblx0XHRcdFx0eDUuc2V0KCBtaWRwb2ludCggeDAueCwgeDIueCApLCBtaWRwb2ludCggeDAueSwgeDIueSApICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgzLCB4NCwgeDUgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MCwgeDMsIHg1ICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgxLCB4NCwgeDMgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MiwgeDUsIHg0ICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE92ZXJ3cml0ZSBvbGQgYXJyYXlzXHJcblx0XHRnZW9tZXRyeS52ZXJ0aWNlcyA9IG5ld1ZlcnRpY2VzO1xyXG5cdFx0Z2VvbWV0cnkuZmFjZXMgPSBuZXdGYWNlcztcclxuXHRcdGlmICggaGFzVXZzICkgZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdID0gbmV3VVZzO1xyXG5cclxuXHRcdC8vIGNvbnNvbGUubG9nKCdkb25lJyk7XHJcblxyXG5cdH07XHJcblxyXG59ICkoKTtcclxuIiwidmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBhbkFycmF5XG5cbmZ1bmN0aW9uIGFuQXJyYXkoYXJyKSB7XG4gIHJldHVybiAoXG4gICAgICAgYXJyLkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgJiYgc3RyLmNhbGwoYXJyLmJ1ZmZlcikgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSdcbiAgICB8fCBBcnJheS5pc0FycmF5KGFycilcbiAgKVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBudW10eXBlKG51bSwgZGVmKSB7XG5cdHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJ1xuXHRcdD8gbnVtIFxuXHRcdDogKHR5cGVvZiBkZWYgPT09ICdudW1iZXInID8gZGVmIDogMClcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGR0eXBlKSB7XG4gIHN3aXRjaCAoZHR5cGUpIHtcbiAgICBjYXNlICdpbnQ4JzpcbiAgICAgIHJldHVybiBJbnQ4QXJyYXlcbiAgICBjYXNlICdpbnQxNic6XG4gICAgICByZXR1cm4gSW50MTZBcnJheVxuICAgIGNhc2UgJ2ludDMyJzpcbiAgICAgIHJldHVybiBJbnQzMkFycmF5XG4gICAgY2FzZSAndWludDgnOlxuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlcbiAgICBjYXNlICd1aW50MTYnOlxuICAgICAgcmV0dXJuIFVpbnQxNkFycmF5XG4gICAgY2FzZSAndWludDMyJzpcbiAgICAgIHJldHVybiBVaW50MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0MzInOlxuICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0NjQnOlxuICAgICAgcmV0dXJuIEZsb2F0NjRBcnJheVxuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIHJldHVybiBBcnJheVxuICAgIGNhc2UgJ3VpbnQ4X2NsYW1wZWQnOlxuICAgICAgcmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSID0gdHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnID8gUmVmbGVjdCA6IG51bGxcbnZhciBSZWZsZWN0QXBwbHkgPSBSICYmIHR5cGVvZiBSLmFwcGx5ID09PSAnZnVuY3Rpb24nXG4gID8gUi5hcHBseVxuICA6IGZ1bmN0aW9uIFJlZmxlY3RBcHBseSh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpO1xuICB9XG5cbnZhciBSZWZsZWN0T3duS2V5c1xuaWYgKFIgJiYgdHlwZW9mIFIub3duS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICBSZWZsZWN0T3duS2V5cyA9IFIub3duS2V5c1xufSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldClcbiAgICAgIC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKTtcbiAgfTtcbn0gZWxzZSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyh3YXJuaW5nKSB7XG4gIGlmIChjb25zb2xlICYmIGNvbnNvbGUud2FybikgY29uc29sZS53YXJuKHdhcm5pbmcpO1xufVxuXG52YXIgTnVtYmVySXNOYU4gPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gTnVtYmVySXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5tb2R1bGUuZXhwb3J0cy5vbmNlID0gb25jZTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9uY2UoZW1pdHRlciwgbmFtZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZ1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXJyKSB7XG4gICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKG5hbWUsIHJlc29sdmVyKTtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKCkge1xuICAgICAgaWYgKHR5cGVvZiBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgfTtcblxuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCByZXNvbHZlciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIGlmIChuYW1lICE9PSAnZXJyb3InKSB7XG4gICAgICBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBlcnJvckxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgaGFuZGxlciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsICdlcnJvcicsIGhhbmRsZXIsIGZsYWdzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgbGlzdGVuZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICBlbWl0dGVyLm9uY2UobmFtZSwgbGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbWl0dGVyLm9uKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEV2ZW50VGFyZ2V0IGRvZXMgbm90IGhhdmUgYGVycm9yYCBldmVudCBzZW1hbnRpY3MgbGlrZSBOb2RlXG4gICAgLy8gRXZlbnRFbWl0dGVycywgd2UgZG8gbm90IGxpc3RlbiBmb3IgYGVycm9yYCBldmVudHMgaGVyZS5cbiAgICBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZnVuY3Rpb24gd3JhcExpc3RlbmVyKGFyZykge1xuICAgICAgLy8gSUUgZG9lcyBub3QgaGF2ZSBidWlsdGluIGB7IG9uY2U6IHRydWUgfWAgc3VwcG9ydCBzbyB3ZVxuICAgICAgLy8gaGF2ZSB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXIoYXJnKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJlbWl0dGVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGVtaXR0ZXIpO1xuICB9XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gICAgfVxuICB9XG59XG4iLCIvKiFcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXJcbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbi8vIFRoZSBfaXNCdWZmZXIgY2hlY2sgaXMgZm9yIFNhZmFyaSA1LTcgc3VwcG9ydCwgYmVjYXVzZSBpdCdzIG1pc3Npbmdcbi8vIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKGlzQnVmZmVyKG9iaikgfHwgaXNTbG93QnVmZmVyKG9iaikgfHwgISFvYmouX2lzQnVmZmVyKVxufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiAhIW9iai5jb25zdHJ1Y3RvciAmJiB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopXG59XG5cbi8vIEZvciBOb2RlIHYwLjEwIHN1cHBvcnQuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHkuXG5mdW5jdGlvbiBpc1Nsb3dCdWZmZXIgKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iai5yZWFkRmxvYXRMRSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnNsaWNlID09PSAnZnVuY3Rpb24nICYmIGlzQnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsInZhciB3b3JkV3JhcCA9IHJlcXVpcmUoJ3dvcmQtd3JhcHBlcicpXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpXG52YXIgbnVtYmVyID0gcmVxdWlyZSgnYXMtbnVtYmVyJylcblxudmFyIFhfSEVJR0hUUyA9IFsneCcsICdlJywgJ2EnLCAnbycsICduJywgJ3MnLCAncicsICdjJywgJ3UnLCAnbScsICd2JywgJ3cnLCAneiddXG52YXIgTV9XSURUSFMgPSBbJ20nLCAndyddXG52YXIgQ0FQX0hFSUdIVFMgPSBbJ0gnLCAnSScsICdOJywgJ0UnLCAnRicsICdLJywgJ0wnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWiddXG5cblxudmFyIFRBQl9JRCA9ICdcXHQnLmNoYXJDb2RlQXQoMClcbnZhciBTUEFDRV9JRCA9ICcgJy5jaGFyQ29kZUF0KDApXG52YXIgQUxJR05fTEVGVCA9IDAsIFxuICAgIEFMSUdOX0NFTlRFUiA9IDEsIFxuICAgIEFMSUdOX1JJR0hUID0gMlxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUxheW91dChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0TGF5b3V0KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dExheW91dChvcHQpIHtcbiAgdGhpcy5nbHlwaHMgPSBbXVxuICB0aGlzLl9tZWFzdXJlID0gdGhpcy5jb21wdXRlTWV0cmljcy5iaW5kKHRoaXMpXG4gIHRoaXMudXBkYXRlKG9wdClcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24ob3B0KSB7XG4gIG9wdCA9IHh0ZW5kKHtcbiAgICBtZWFzdXJlOiB0aGlzLl9tZWFzdXJlXG4gIH0sIG9wdClcbiAgdGhpcy5fb3B0ID0gb3B0XG4gIHRoaXMuX29wdC50YWJTaXplID0gbnVtYmVyKHRoaXMuX29wdC50YWJTaXplLCA0KVxuXG4gIGlmICghb3B0LmZvbnQpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHByb3ZpZGUgYSB2YWxpZCBiaXRtYXAgZm9udCcpXG5cbiAgdmFyIGdseXBocyA9IHRoaXMuZ2x5cGhzXG4gIHZhciB0ZXh0ID0gb3B0LnRleHR8fCcnIFxuICB2YXIgZm9udCA9IG9wdC5mb250XG4gIHRoaXMuX3NldHVwU3BhY2VHbHlwaHMoZm9udClcbiAgXG4gIHZhciBsaW5lcyA9IHdvcmRXcmFwLmxpbmVzKHRleHQsIG9wdClcbiAgdmFyIG1pbldpZHRoID0gb3B0LndpZHRoIHx8IDBcblxuICAvL2NsZWFyIGdseXBoc1xuICBnbHlwaHMubGVuZ3RoID0gMFxuXG4gIC8vZ2V0IG1heCBsaW5lIHdpZHRoXG4gIHZhciBtYXhMaW5lV2lkdGggPSBsaW5lcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbGluZSkge1xuICAgIHJldHVybiBNYXRoLm1heChwcmV2LCBsaW5lLndpZHRoLCBtaW5XaWR0aClcbiAgfSwgMClcblxuICAvL3RoZSBwZW4gcG9zaXRpb25cbiAgdmFyIHggPSAwXG4gIHZhciB5ID0gMFxuICB2YXIgbGluZUhlaWdodCA9IG51bWJlcihvcHQubGluZUhlaWdodCwgZm9udC5jb21tb24ubGluZUhlaWdodClcbiAgdmFyIGJhc2VsaW5lID0gZm9udC5jb21tb24uYmFzZVxuICB2YXIgZGVzY2VuZGVyID0gbGluZUhlaWdodC1iYXNlbGluZVxuICB2YXIgbGV0dGVyU3BhY2luZyA9IG9wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGhlaWdodCA9IGxpbmVIZWlnaHQgKiBsaW5lcy5sZW5ndGggLSBkZXNjZW5kZXJcbiAgdmFyIGFsaWduID0gZ2V0QWxpZ25UeXBlKHRoaXMuX29wdC5hbGlnbilcblxuICAvL2RyYXcgdGV4dCBhbG9uZyBiYXNlbGluZVxuICB5IC09IGhlaWdodFxuICBcbiAgLy90aGUgbWV0cmljcyBmb3IgdGhpcyB0ZXh0IGxheW91dFxuICB0aGlzLl93aWR0aCA9IG1heExpbmVXaWR0aFxuICB0aGlzLl9oZWlnaHQgPSBoZWlnaHRcbiAgdGhpcy5fZGVzY2VuZGVyID0gbGluZUhlaWdodCAtIGJhc2VsaW5lXG4gIHRoaXMuX2Jhc2VsaW5lID0gYmFzZWxpbmVcbiAgdGhpcy5feEhlaWdodCA9IGdldFhIZWlnaHQoZm9udClcbiAgdGhpcy5fY2FwSGVpZ2h0ID0gZ2V0Q2FwSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0XG4gIHRoaXMuX2FzY2VuZGVyID0gbGluZUhlaWdodCAtIGRlc2NlbmRlciAtIHRoaXMuX3hIZWlnaHRcbiAgICBcbiAgLy9sYXlvdXQgZWFjaCBnbHlwaFxuICB2YXIgc2VsZiA9IHRoaXNcbiAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLCBsaW5lSW5kZXgpIHtcbiAgICB2YXIgc3RhcnQgPSBsaW5lLnN0YXJ0XG4gICAgdmFyIGVuZCA9IGxpbmUuZW5kXG4gICAgdmFyIGxpbmVXaWR0aCA9IGxpbmUud2lkdGhcbiAgICB2YXIgbGFzdEdseXBoXG4gICAgXG4gICAgLy9mb3IgZWFjaCBnbHlwaCBpbiB0aGF0IGxpbmUuLi5cbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZDsgaSsrKSB7XG4gICAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICAgIHZhciBnbHlwaCA9IHNlbGYuZ2V0R2x5cGgoZm9udCwgaWQpXG4gICAgICBpZiAoZ2x5cGgpIHtcbiAgICAgICAgaWYgKGxhc3RHbHlwaCkgXG4gICAgICAgICAgeCArPSBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpXG5cbiAgICAgICAgdmFyIHR4ID0geFxuICAgICAgICBpZiAoYWxpZ24gPT09IEFMSUdOX0NFTlRFUikgXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpLzJcbiAgICAgICAgZWxzZSBpZiAoYWxpZ24gPT09IEFMSUdOX1JJR0hUKVxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKVxuXG4gICAgICAgIGdseXBocy5wdXNoKHtcbiAgICAgICAgICBwb3NpdGlvbjogW3R4LCB5XSxcbiAgICAgICAgICBkYXRhOiBnbHlwaCxcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBsaW5lOiBsaW5lSW5kZXhcbiAgICAgICAgfSkgIFxuXG4gICAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgICB4ICs9IGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vbmV4dCBsaW5lIGRvd25cbiAgICB5ICs9IGxpbmVIZWlnaHRcbiAgICB4ID0gMFxuICB9KVxuICB0aGlzLl9saW5lc1RvdGFsID0gbGluZXMubGVuZ3RoO1xufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5fc2V0dXBTcGFjZUdseXBocyA9IGZ1bmN0aW9uKGZvbnQpIHtcbiAgLy9UaGVzZSBhcmUgZmFsbGJhY2tzLCB3aGVuIHRoZSBmb250IGRvZXNuJ3QgaW5jbHVkZVxuICAvLycgJyBvciAnXFx0JyBnbHlwaHNcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gbnVsbFxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0gbnVsbFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm5cblxuICAvL3RyeSB0byBnZXQgc3BhY2UgZ2x5cGhcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgJ20nIG9yICd3JyBnbHlwaHNcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgZmlyc3QgZ2x5cGggYXZhaWxhYmxlXG4gIHZhciBzcGFjZSA9IGdldEdseXBoQnlJZChmb250LCBTUEFDRV9JRCkgXG4gICAgICAgICAgfHwgZ2V0TUdseXBoKGZvbnQpIFxuICAgICAgICAgIHx8IGZvbnQuY2hhcnNbMF1cblxuICAvL2FuZCBjcmVhdGUgYSBmYWxsYmFjayBmb3IgdGFiXG4gIHZhciB0YWJXaWR0aCA9IHRoaXMuX29wdC50YWJTaXplICogc3BhY2UueGFkdmFuY2VcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gc3BhY2VcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IHh0ZW5kKHNwYWNlLCB7XG4gICAgeDogMCwgeTogMCwgeGFkdmFuY2U6IHRhYldpZHRoLCBpZDogVEFCX0lELCBcbiAgICB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwXG4gIH0pXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmdldEdseXBoID0gZnVuY3Rpb24oZm9udCwgaWQpIHtcbiAgdmFyIGdseXBoID0gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKVxuICBpZiAoZ2x5cGgpXG4gICAgcmV0dXJuIGdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBUQUJfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1RhYkdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBTUEFDRV9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaFxuICByZXR1cm4gbnVsbFxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5jb21wdXRlTWV0cmljcyA9IGZ1bmN0aW9uKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gdGhpcy5fb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgZm9udCA9IHRoaXMuX29wdC5mb250XG4gIHZhciBjdXJQZW4gPSAwXG4gIHZhciBjdXJXaWR0aCA9IDBcbiAgdmFyIGNvdW50ID0gMFxuICB2YXIgZ2x5cGhcbiAgdmFyIGxhc3RHbHlwaFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogc3RhcnQsXG4gICAgICBlbmQ6IHN0YXJ0LFxuICAgICAgd2lkdGg6IDBcbiAgICB9XG4gIH1cblxuICBlbmQgPSBNYXRoLm1pbih0ZXh0Lmxlbmd0aCwgZW5kKVxuICBmb3IgKHZhciBpPXN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB2YXIgZ2x5cGggPSB0aGlzLmdldEdseXBoKGZvbnQsIGlkKVxuXG4gICAgaWYgKGdseXBoKSB7XG4gICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgIHZhciB4b2ZmID0gZ2x5cGgueG9mZnNldFxuICAgICAgdmFyIGtlcm4gPSBsYXN0R2x5cGggPyBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpIDogMFxuICAgICAgY3VyUGVuICs9IGtlcm5cblxuICAgICAgdmFyIG5leHRQZW4gPSBjdXJQZW4gKyBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgIHZhciBuZXh0V2lkdGggPSBjdXJQZW4gKyBnbHlwaC53aWR0aFxuXG4gICAgICAvL3dlJ3ZlIGhpdCBvdXIgbGltaXQ7IHdlIGNhbid0IG1vdmUgb250byB0aGUgbmV4dCBnbHlwaFxuICAgICAgaWYgKG5leHRXaWR0aCA+PSB3aWR0aCB8fCBuZXh0UGVuID49IHdpZHRoKVxuICAgICAgICBicmVha1xuXG4gICAgICAvL290aGVyd2lzZSBjb250aW51ZSBhbG9uZyBvdXIgbGluZVxuICAgICAgY3VyUGVuID0gbmV4dFBlblxuICAgICAgY3VyV2lkdGggPSBuZXh0V2lkdGhcbiAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgfVxuICAgIGNvdW50KytcbiAgfVxuICBcbiAgLy9tYWtlIHN1cmUgcmlnaHRtb3N0IGVkZ2UgbGluZXMgdXAgd2l0aCByZW5kZXJlZCBnbHlwaHNcbiAgaWYgKGxhc3RHbHlwaClcbiAgICBjdXJXaWR0aCArPSBsYXN0R2x5cGgueG9mZnNldFxuXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IHN0YXJ0LFxuICAgIGVuZDogc3RhcnQgKyBjb3VudCxcbiAgICB3aWR0aDogY3VyV2lkdGhcbiAgfVxufVxuXG4vL2dldHRlcnMgZm9yIHRoZSBwcml2YXRlIHZhcnNcbjtbJ3dpZHRoJywgJ2hlaWdodCcsIFxuICAnZGVzY2VuZGVyJywgJ2FzY2VuZGVyJyxcbiAgJ3hIZWlnaHQnLCAnYmFzZWxpbmUnLFxuICAnY2FwSGVpZ2h0JyxcbiAgJ2xpbmVIZWlnaHQnIF0uZm9yRWFjaChhZGRHZXR0ZXIpXG5cbmZ1bmN0aW9uIGFkZEdldHRlcihuYW1lKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZXh0TGF5b3V0LnByb3RvdHlwZSwgbmFtZSwge1xuICAgIGdldDogd3JhcHBlcihuYW1lKSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSlcbn1cblxuLy9jcmVhdGUgbG9va3VwcyBmb3IgcHJpdmF0ZSB2YXJzXG5mdW5jdGlvbiB3cmFwcGVyKG5hbWUpIHtcbiAgcmV0dXJuIChuZXcgRnVuY3Rpb24oW1xuICAgICdyZXR1cm4gZnVuY3Rpb24gJytuYW1lKycoKSB7JyxcbiAgICAnICByZXR1cm4gdGhpcy5fJytuYW1lLFxuICAgICd9J1xuICBdLmpvaW4oJ1xcbicpKSkoKVxufVxuXG5mdW5jdGlvbiBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpIHtcbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIGdseXBoSWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gIGlmIChnbHlwaElkeCA+PSAwKVxuICAgIHJldHVybiBmb250LmNoYXJzW2dseXBoSWR4XVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBnZXRYSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPFhfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IFhfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldE1HbHlwaChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxNX1dJRFRIUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IE1fV0lEVEhTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRDYXBIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8Q0FQX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBDQVBfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEtlcm5pbmcoZm9udCwgbGVmdCwgcmlnaHQpIHtcbiAgaWYgKCFmb250Lmtlcm5pbmdzIHx8IGZvbnQua2VybmluZ3MubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiAwXG5cbiAgdmFyIHRhYmxlID0gZm9udC5rZXJuaW5nc1xuICBmb3IgKHZhciBpPTA7IGk8dGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2VybiA9IHRhYmxlW2ldXG4gICAgaWYgKGtlcm4uZmlyc3QgPT09IGxlZnQgJiYga2Vybi5zZWNvbmQgPT09IHJpZ2h0KVxuICAgICAgcmV0dXJuIGtlcm4uYW1vdW50XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0QWxpZ25UeXBlKGFsaWduKSB7XG4gIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpXG4gICAgcmV0dXJuIEFMSUdOX0NFTlRFUlxuICBlbHNlIGlmIChhbGlnbiA9PT0gJ3JpZ2h0JylcbiAgICByZXR1cm4gQUxJR05fUklHSFRcbiAgcmV0dXJuIEFMSUdOX0xFRlRcbn1cblxuZnVuY3Rpb24gZmluZENoYXIgKGFycmF5LCB2YWx1ZSwgc3RhcnQpIHtcbiAgc3RhcnQgPSBzdGFydCB8fCAwXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldLmlkID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xXG59IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcGFyc2VCTUZvbnRBc2NpaShkYXRhKSB7XG4gIGlmICghZGF0YSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgcHJvdmlkZWQnKVxuICBkYXRhID0gZGF0YS50b1N0cmluZygpLnRyaW0oKVxuXG4gIHZhciBvdXRwdXQgPSB7XG4gICAgcGFnZXM6IFtdLFxuICAgIGNoYXJzOiBbXSxcbiAgICBrZXJuaW5nczogW11cbiAgfVxuXG4gIHZhciBsaW5lcyA9IGRhdGEuc3BsaXQoL1xcclxcbj98XFxuL2cpXG5cbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgaW4gQk1Gb250IGZpbGUnKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGluZURhdGEgPSBzcGxpdExpbmUobGluZXNbaV0sIGkpXG4gICAgaWYgKCFsaW5lRGF0YSkgLy9za2lwIGVtcHR5IGxpbmVzXG4gICAgICBjb250aW51ZVxuXG4gICAgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ3BhZ2UnKSB7XG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuaWQgIT09ICdudW1iZXInKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgaWQ9TicpXG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuZmlsZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBmaWxlPVwicGF0aFwiJylcbiAgICAgIG91dHB1dC5wYWdlc1tsaW5lRGF0YS5kYXRhLmlkXSA9IGxpbmVEYXRhLmRhdGEuZmlsZVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcnMnIHx8IGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmdzJykge1xuICAgICAgLy8uLi4gZG8gbm90aGluZyBmb3IgdGhlc2UgdHdvIC4uLlxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcicpIHtcbiAgICAgIG91dHB1dC5jaGFycy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5nJykge1xuICAgICAgb3V0cHV0Lmtlcm5pbmdzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0W2xpbmVEYXRhLmtleV0gPSBsaW5lRGF0YS5kYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBzcGxpdExpbmUobGluZSwgaWR4KSB7XG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL1xcdCsvZywgJyAnKS50cmltKClcbiAgaWYgKCFsaW5lKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIHNwYWNlID0gbGluZS5pbmRleE9mKCcgJylcbiAgaWYgKHNwYWNlID09PSAtMSkgXG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm8gbmFtZWQgcm93IGF0IGxpbmUgXCIgKyBpZHgpXG5cbiAgdmFyIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIHNwYWNlKVxuXG4gIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhzcGFjZSArIDEpXG4gIC8vY2xlYXIgXCJsZXR0ZXJcIiBmaWVsZCBhcyBpdCBpcyBub24tc3RhbmRhcmQgYW5kXG4gIC8vcmVxdWlyZXMgYWRkaXRpb25hbCBjb21wbGV4aXR5IHRvIHBhcnNlIFwiIC8gPSBzeW1ib2xzXG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL2xldHRlcj1bXFwnXFxcIl1cXFMrW1xcJ1xcXCJdL2dpLCAnJykgIFxuICBsaW5lID0gbGluZS5zcGxpdChcIj1cIilcbiAgbGluZSA9IGxpbmUubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBzdHIudHJpbSgpLm1hdGNoKCgvKFwiLio/XCJ8W15cIlxcc10rKSsoPz1cXHMqfFxccyokKS9nKSlcbiAgfSlcblxuICB2YXIgZGF0YSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkdCA9IGxpbmVbaV1cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFswXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFsxXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0ID0ge1xuICAgIGtleToga2V5LFxuICAgIGRhdGE6IHt9XG4gIH1cblxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIG91dC5kYXRhW3Yua2V5XSA9IHYuZGF0YTtcbiAgfSlcblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShkYXRhKSB7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gXCJcIlxuXG4gIGlmIChkYXRhLmluZGV4T2YoJ1wiJykgPT09IDAgfHwgZGF0YS5pbmRleE9mKFwiJ1wiKSA9PT0gMClcbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoMSwgZGF0YS5sZW5ndGggLSAxKVxuICBpZiAoZGF0YS5pbmRleE9mKCcsJykgIT09IC0xKVxuICAgIHJldHVybiBwYXJzZUludExpc3QoZGF0YSlcbiAgcmV0dXJuIHBhcnNlSW50KGRhdGEsIDEwKVxufVxuXG5mdW5jdGlvbiBwYXJzZUludExpc3QoZGF0YSkge1xuICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMClcbiAgfSlcbn0iLCJ2YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG52YXIgYW5BcnJheSA9IHJlcXVpcmUoJ2FuLWFycmF5JylcbnZhciBpc0J1ZmZlciA9IHJlcXVpcmUoJ2lzLWJ1ZmZlcicpXG5cbnZhciBDVyA9IFswLCAyLCAzXVxudmFyIENDVyA9IFsyLCAxLCAzXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVF1YWRFbGVtZW50cyhhcnJheSwgb3B0KSB7XG4gICAgLy9pZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IGFuIG91dHB1dCBhcnJheVxuICAgIGlmICghYXJyYXkgfHwgIShhbkFycmF5KGFycmF5KSB8fCBpc0J1ZmZlcihhcnJheSkpKSB7XG4gICAgICAgIG9wdCA9IGFycmF5IHx8IHt9XG4gICAgICAgIGFycmF5ID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnbnVtYmVyJykgLy9iYWNrd2FyZHMtY29tcGF0aWJsZVxuICAgICAgICBvcHQgPSB7IGNvdW50OiBvcHQgfVxuICAgIGVsc2VcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9XG5cbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvcHQudHlwZSA9PT0gJ3N0cmluZycgPyBvcHQudHlwZSA6ICd1aW50MTYnXG4gICAgdmFyIGNvdW50ID0gdHlwZW9mIG9wdC5jb3VudCA9PT0gJ251bWJlcicgPyBvcHQuY291bnQgOiAxXG4gICAgdmFyIHN0YXJ0ID0gKG9wdC5zdGFydCB8fCAwKSBcblxuICAgIHZhciBkaXIgPSBvcHQuY2xvY2t3aXNlICE9PSBmYWxzZSA/IENXIDogQ0NXLFxuICAgICAgICBhID0gZGlyWzBdLCBcbiAgICAgICAgYiA9IGRpclsxXSxcbiAgICAgICAgYyA9IGRpclsyXVxuXG4gICAgdmFyIG51bUluZGljZXMgPSBjb3VudCAqIDZcblxuICAgIHZhciBpbmRpY2VzID0gYXJyYXkgfHwgbmV3IChkdHlwZSh0eXBlKSkobnVtSW5kaWNlcylcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBudW1JbmRpY2VzOyBpICs9IDYsIGogKz0gNCkge1xuICAgICAgICB2YXIgeCA9IGkgKyBzdGFydFxuICAgICAgICBpbmRpY2VzW3ggKyAwXSA9IGogKyAwXG4gICAgICAgIGluZGljZXNbeCArIDFdID0gaiArIDFcbiAgICAgICAgaW5kaWNlc1t4ICsgMl0gPSBqICsgMlxuICAgICAgICBpbmRpY2VzW3ggKyAzXSA9IGogKyBhXG4gICAgICAgIGluZGljZXNbeCArIDRdID0gaiArIGJcbiAgICAgICAgaW5kaWNlc1t4ICsgNV0gPSBqICsgY1xuICAgIH1cbiAgICByZXR1cm4gaW5kaWNlc1xufSIsInZhciBjcmVhdGVMYXlvdXQgPSByZXF1aXJlKCdsYXlvdXQtYm1mb250LXRleHQnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIGNyZWF0ZUluZGljZXMgPSByZXF1aXJlKCdxdWFkLWluZGljZXMnKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIEJhc2UuY2FsbCh0aGlzKVxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0KVxuXG4gIC8vIGFsc28gZG8gYW4gaW5pdGlhbCBzZXR1cC4uLlxuICBpZiAob3B0KSB0aGlzLnVwZGF0ZShvcHQpXG59XG5cbmluaGVyaXRzKFRleHRHZW9tZXRyeSwgQmFzZSlcblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAob3B0KSB7XG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSBjb25zdHJ1Y3RvciBkZWZhdWx0c1xuICBvcHQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vcHQsIG9wdClcblxuICBpZiAoIW9wdC5mb250KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGEgeyBmb250IH0gaW4gb3B0aW9ucycpXG4gIH1cblxuICB0aGlzLmxheW91dCA9IGNyZWF0ZUxheW91dChvcHQpXG5cbiAgLy8gZ2V0IHZlYzIgdGV4Y29vcmRzXG4gIHZhciBmbGlwWSA9IG9wdC5mbGlwWSAhPT0gZmFsc2VcblxuICAvLyB0aGUgZGVzaXJlZCBCTUZvbnQgZGF0YVxuICB2YXIgZm9udCA9IG9wdC5mb250XG5cbiAgLy8gZGV0ZXJtaW5lIHRleHR1cmUgc2l6ZSBmcm9tIGZvbnQgZmlsZVxuICB2YXIgdGV4V2lkdGggPSBmb250LmNvbW1vbi5zY2FsZVdcbiAgdmFyIHRleEhlaWdodCA9IGZvbnQuY29tbW9uLnNjYWxlSFxuXG4gIC8vIGdldCB2aXNpYmxlIGdseXBoc1xuICB2YXIgZ2x5cGhzID0gdGhpcy5sYXlvdXQuZ2x5cGhzLmZpbHRlcihmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHJldHVybiBiaXRtYXAud2lkdGggKiBiaXRtYXAuaGVpZ2h0ID4gMFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdmlzaWJsZSBnbHlwaHMgZm9yIGNvbnZlbmllbmNlXG4gIHRoaXMudmlzaWJsZUdseXBocyA9IGdseXBoc1xuXG4gIC8vIGdldCBjb21tb24gdmVydGV4IGRhdGFcbiAgdmFyIHBvc2l0aW9ucyA9IHZlcnRpY2VzLnBvc2l0aW9ucyhnbHlwaHMpXG4gIHZhciB1dnMgPSB2ZXJ0aWNlcy51dnMoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSlcbiAgdmFyIGluZGljZXMgPSBjcmVhdGVJbmRpY2VzKFtdLCB7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIHRoaXMuc2V0SW5kZXgoaW5kaWNlcylcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwb3NpdGlvbnMsIDIpKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHV2cywgMikpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICAvLyBlbmFibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHZhciBwYWdlcyA9IHZlcnRpY2VzLnBhZ2VzKGdseXBocylcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGFnZScsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocGFnZXMsIDEpKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIG5ld2xpbmUgPSAvXFxuL1xudmFyIG5ld2xpbmVDaGFyID0gJ1xcbidcbnZhciB3aGl0ZXNwYWNlID0gL1xccy9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih0ZXh0LCBvcHQpIHtcbiAgICB2YXIgbGluZXMgPSBtb2R1bGUuZXhwb3J0cy5saW5lcyh0ZXh0LCBvcHQpXG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhsaW5lLnN0YXJ0LCBsaW5lLmVuZClcbiAgICB9KS5qb2luKCdcXG4nKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5saW5lcyA9IGZ1bmN0aW9uIHdvcmR3cmFwKHRleHQsIG9wdCkge1xuICAgIG9wdCA9IG9wdHx8e31cblxuICAgIC8vemVybyB3aWR0aCByZXN1bHRzIGluIG5vdGhpbmcgdmlzaWJsZVxuICAgIGlmIChvcHQud2lkdGggPT09IDAgJiYgb3B0Lm1vZGUgIT09ICdub3dyYXAnKSBcbiAgICAgICAgcmV0dXJuIFtdXG5cbiAgICB0ZXh0ID0gdGV4dHx8JydcbiAgICB2YXIgd2lkdGggPSB0eXBlb2Ygb3B0LndpZHRoID09PSAnbnVtYmVyJyA/IG9wdC53aWR0aCA6IE51bWJlci5NQVhfVkFMVUVcbiAgICB2YXIgc3RhcnQgPSBNYXRoLm1heCgwLCBvcHQuc3RhcnR8fDApXG4gICAgdmFyIGVuZCA9IHR5cGVvZiBvcHQuZW5kID09PSAnbnVtYmVyJyA/IG9wdC5lbmQgOiB0ZXh0Lmxlbmd0aFxuICAgIHZhciBtb2RlID0gb3B0Lm1vZGVcblxuICAgIHZhciBtZWFzdXJlID0gb3B0Lm1lYXN1cmUgfHwgbW9ub3NwYWNlXG4gICAgaWYgKG1vZGUgPT09ICdwcmUnKVxuICAgICAgICByZXR1cm4gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKVxuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSlcbn1cblxuZnVuY3Rpb24gaWR4T2YodGV4dCwgY2hyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIGlkeCA9IHRleHQuaW5kZXhPZihjaHIsIHN0YXJ0KVxuICAgIGlmIChpZHggPT09IC0xIHx8IGlkeCA+IGVuZClcbiAgICAgICAgcmV0dXJuIGVuZFxuICAgIHJldHVybiBpZHhcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNocikge1xuICAgIHJldHVybiB3aGl0ZXNwYWNlLnRlc3QoY2hyKVxufVxuXG5mdW5jdGlvbiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgbGluZXMgPSBbXVxuICAgIHZhciBsaW5lU3RhcnQgPSBzdGFydFxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kICYmIGk8dGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hyID0gdGV4dC5jaGFyQXQoaSlcbiAgICAgICAgdmFyIGlzTmV3bGluZSA9IG5ld2xpbmUudGVzdChjaHIpXG5cbiAgICAgICAgLy9JZiB3ZSd2ZSByZWFjaGVkIGEgbmV3bGluZSwgdGhlbiBzdGVwIGRvd24gYSBsaW5lXG4gICAgICAgIC8vT3IgaWYgd2UndmUgcmVhY2hlZCB0aGUgRU9GXG4gICAgICAgIGlmIChpc05ld2xpbmUgfHwgaT09PWVuZC0xKSB7XG4gICAgICAgICAgICB2YXIgbGluZUVuZCA9IGlzTmV3bGluZSA/IGkgOiBpKzFcbiAgICAgICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgbGluZVN0YXJ0LCBsaW5lRW5kLCB3aWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobWVhc3VyZWQpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmVTdGFydCA9IGkrMVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpIHtcbiAgICAvL0EgZ3JlZWR5IHdvcmQgd3JhcHBlciBiYXNlZCBvbiBMaWJHRFggYWxnb3JpdGhtXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbGliZ2R4L2xpYmdkeC9ibG9iL21hc3Rlci9nZHgvc3JjL2NvbS9iYWRsb2dpYy9nZHgvZ3JhcGhpY3MvZzJkL0JpdG1hcEZvbnRDYWNoZS5qYXZhXG4gICAgdmFyIGxpbmVzID0gW11cblxuICAgIHZhciB0ZXN0V2lkdGggPSB3aWR0aFxuICAgIC8vaWYgJ25vd3JhcCcgaXMgc3BlY2lmaWVkLCB3ZSBvbmx5IHdyYXAgb24gbmV3bGluZSBjaGFyc1xuICAgIGlmIChtb2RlID09PSAnbm93cmFwJylcbiAgICAgICAgdGVzdFdpZHRoID0gTnVtYmVyLk1BWF9WQUxVRVxuXG4gICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgLy9nZXQgbmV4dCBuZXdsaW5lIHBvc2l0aW9uXG4gICAgICAgIHZhciBuZXdMaW5lID0gaWR4T2YodGV4dCwgbmV3bGluZUNoYXIsIHN0YXJ0LCBlbmQpXG5cbiAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBzdGFydCBvZiBsaW5lXG4gICAgICAgIHdoaWxlIChzdGFydCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKCB0ZXh0LmNoYXJBdChzdGFydCkgKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgc3RhcnQrK1xuICAgICAgICB9XG5cbiAgICAgICAgLy9kZXRlcm1pbmUgdmlzaWJsZSAjIG9mIGdseXBocyBmb3IgdGhlIGF2YWlsYWJsZSB3aWR0aFxuICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBuZXdMaW5lLCB0ZXN0V2lkdGgpXG5cbiAgICAgICAgdmFyIGxpbmVFbmQgPSBzdGFydCArIChtZWFzdXJlZC5lbmQtbWVhc3VyZWQuc3RhcnQpXG4gICAgICAgIHZhciBuZXh0U3RhcnQgPSBsaW5lRW5kICsgbmV3bGluZUNoYXIubGVuZ3RoXG5cbiAgICAgICAgLy9pZiB3ZSBoYWQgdG8gY3V0IHRoZSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBuZXdsaW5lLi4uXG4gICAgICAgIGlmIChsaW5lRW5kIDwgbmV3TGluZSkge1xuICAgICAgICAgICAgLy9maW5kIGNoYXIgdG8gYnJlYWsgb25cbiAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQpKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5lRW5kID09PSBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPiBzdGFydCArIG5ld2xpbmVDaGFyLmxlbmd0aCkgbmV4dFN0YXJ0LS1cbiAgICAgICAgICAgICAgICBsaW5lRW5kID0gbmV4dFN0YXJ0IC8vIElmIG5vIGNoYXJhY3RlcnMgdG8gYnJlYWssIHNob3cgYWxsLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBsaW5lRW5kXG4gICAgICAgICAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCAtIG5ld2xpbmVDaGFyLmxlbmd0aCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5lRW5kID49IHN0YXJ0KSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbGluZUVuZCwgdGVzdFdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnRcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbi8vZGV0ZXJtaW5lcyB0aGUgdmlzaWJsZSBudW1iZXIgb2YgZ2x5cGhzIHdpdGhpbiBhIGdpdmVuIHdpZHRoXG5mdW5jdGlvbiBtb25vc3BhY2UodGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgZ2x5cGhzID0gTWF0aC5taW4od2lkdGgsIGVuZC1zdGFydClcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnQrZ2x5cGhzXG4gICAgfVxufSIsIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXX0= diff --git a/build/datguivr.map b/build/datguivr.map index 1292a44..209ac1a 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_vert","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index c15a762..19f84b7 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -5,6 +5,6 @@ return'info face="Roboto" size=192 bold=0 italic=0 charset="" unicode=1 stretchH }Object.defineProperty(c,"__esModule",{value:!0}),c.image=d,c.fnt=e},{}],8:[function(a,b,c){"use strict";function d(){function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i);var J=b.text?2184:16777215,K=b.text?273:13421772;j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?J:K),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8, -"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign"),e="\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\n// vScale not needed if we assume standard derivates available, as they are in Webgl2 \n// varying float vScale;\n // This is defined in layout.js (and was observed looking at three heirachy matrices)\n // #define TEXT_SCALE "+Layout.TEXT_SCALE+"\nvoid main() {\n \n // vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE;\n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n";b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,f=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:f||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:e,fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n// varying float vScale;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available.\n // \n //#ifdef GL_OES_standard_derivatives\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n // #else\n // float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));\n // afwidth *= vScale;\n // #endif\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f) -;var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b) +;if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b #include -// vScale not needed if we assume standard derivates available, as they are in Webgl2 -// varying float vScale; - // This is defined in layout.js (and was observed looking at three heirachy matrices) - // #define TEXT_SCALE ${Layout.TEXT_SCALE} -void main() { - - // vScale = pow(abs(determinant(mat3(modelViewMatrix))), -0.33333) * TEXT_SCALE; +void main() { vUv = uv; #include @@ -46,7 +40,6 @@ const meshbasic_frag = ` #define USE_UV uniform vec3 color; uniform float opacity; -// varying float vScale; #include //#include @@ -58,14 +51,9 @@ uniform float opacity; ///// float aastep(float value) { - // We now assume WebGL2 and so the derivatives are available. - // - //#ifdef GL_OES_standard_derivatives - float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757; - // #else - // float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w)); - // afwidth *= vScale; - // #endif + // We now assume WebGL2 and so the derivatives are available, + // so afwidth depends on scale of gui + float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757; return smoothstep(0.5 - afwidth, 0.5 + afwidth, value); } //// From 412e6783ec6b7af8abdd37651809260d1b9da5de Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Thu, 27 Jan 2022 13:34:39 +0000 Subject: [PATCH 12/24] return mouseInput.intersections; from update(), so datguix can use it for selection --- build/datguivr.js | 3 ++- build/datguivr.map | 2 +- build/datguivr.min.js | 4 ++-- modules/datguivr/index.js | 1 + 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index a37214b..74b71f8 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -3757,6 +3757,7 @@ var GUIVR = function DATGUIVR() { inputObjects.forEach(function (o) { return o.clicked = false; }); + return mouseInput.intersections; } //if any input.interactions have hitVolume that corresponds to something not currently in hitscanObjects, @@ -7585,4 +7586,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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V0FBcEI7QUFDQSxhQUFTLEtBQVQsR0FBaUIsUUFBakI7QUFDQSxRQUFLLE1BQUwsRUFBYyxTQUFTLGFBQVQsQ0FBd0IsQ0FBeEIsSUFBOEIsTUFBOUI7O0FBRWQ7QUFFQSxHQW5QRDtBQXFQQSxDQTVWRDs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICogXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLiBcclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUiBcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1IgXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsIFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcbiAgICBcclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpOyBcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgLy9tb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICBpZiAoIXdpZGUpIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIGVsc2Uge1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMC43NTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueSA9IDAuMDE7IC8vWFhYIG1hZ2ljIG51bWJlclxyXG4gIH1cclxuXHJcbiAgdmFyIG1hdGVyaWFsO1xyXG4gIGlmIChpbWFnZS5pc01hdGVyaWFsKSB7XHJcbiAgICBtYXRlcmlhbCA9IGltYWdlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIG1hdGVyaWFsKTtcclxuICB9XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gIC8vYnV0dG9uIGxhYmVsIHJlbW92ZWQ7IG1pZ2h0IHdhbnQgb3B0aW9ucyBsaWtlIGEgaG92ZXIgbGFiZWwgaW4gZnV0dXJlLlxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBpZiAod2lkZSkgZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAvL1RPRE86IGRyYWcgYW5kIGhvdmVyXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnaG92ZXJpbmcnLCBoYW5kbGVIb3ZlciApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZVByZXNzaW5nICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGxldCBob3ZlckZ1bmMgPSB1bmRlZmluZWQ7XHJcbiAgLy8gSSBtaWdodCB5ZXQgZGVjaWRlIHRvIGNoYW5nZSB0aGlzIGludGVyZmFjZS5cclxuICAvLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgbmFtZSwgbWlnaHQgd2FudCB0byBhZGQgbGlzdGVuZXJzIHRvIGV2ZW50XHJcbiAgLy8gcmF0aGVyIHRoYW4ganVzdCBzZXQgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgZ3JvdXAub25Ib3ZlciA9IGYgPT4ge1xyXG4gICAgaG92ZXJGdW5jID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZ3JvdXAub25QcmVzc2luZyA9IGYgPT4ge1xyXG4gICAgcHJlc3NpbmcgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBmdW5jdGlvbiBoYW5kbGVIb3ZlciggcCApe1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAoaG92ZXJGdW5jKSBob3ZlckZ1bmMocCk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vaXQgc2hvdWxkIGJlIHRoYXQgdGhlIGNoZWNrcyBpbiBpbmRleC5qcyBtZWFuIHRoYXQgbWV0aG9kcyBkb24ndCBnZXQgY2FsbGVkIG9uIGludmlzaWJsZVxyXG4gICAgLy9vYmplY3RzLCByZW5kZXJpbmcgdGhlc2UgdGVzdHMgcmVkdW5kYW50Li4uIGhvd2V2ZXIsIHRoYXQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlIGNhc2UuXHJcbiAgICAvL2V4cGVyaWVuY2VkIHNvbWUgYnVncyBwYXJ0aWN1bGFybHkgd2l0aCAnbW9kYWwgZWRpdG9yJyB0eXBlIHBhbmVscy5cclxuICAgIC8vVE9ETzogZWl0aGVyIG1ha2Ugc3VyZSBpbnZpc2libGUgb2JqZWN0cyBhcmVuJ3QgY2FsbGVkIGluIHRoZSBmaXJzdCBwbGFjZSxcclxuICAgIC8vb3IgbWFrZSBzdXJlIGFsbCB0eXBlcyBvZiBvYmplY3QgZG8gdGhpcyBtb3JlIHRob3JvdWdoIHZpc2liaWxpdHkgY2hlY2suLi5cclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKG9iamVjdCkgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXShwKTtcclxuICAgIGlmIChmdW5jKSBmdW5jKHApO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL2NvbXB1dGUgeCAmIHkgYXMgbm9ybWFsaXNlZCBjb29yZGluYXRlcyBmcm9tIHAucG9pbnRcclxuICAvL2NvdWxkIGNvbnNpZGVyIG1vdmluZyB0aGlzIGNvbXB1dGF0aW9uIGludG8gaW50ZXJhY3Rpb24uanMgcGVyZm9ybVN0YXRlRXZlbnRzKClcclxuICBmdW5jdGlvbiBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwb2ludCkge1xyXG4gICAgY29uc3QgcCA9IGhpdHNjYW5Wb2x1bWUud29ybGRUb0xvY2FsKHBvaW50KTtcclxuICAgIHAueCAvPSBCVVRUT05fV0lEVEg7XHJcbiAgICBwLnkgLz0gQlVUVE9OX0hFSUdIVDtcclxuICAgIHAueSArPSAwLjU7XHJcbiAgICBwLnggPSBNYXRoLm1heChNYXRoLm1pbihwLngsIDEpLCAwKTtcclxuICAgIHAueSA9IE1hdGgubWF4KE1hdGgubWluKHAueSwgMSksIDApO1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVQcmVzc2luZyggcCApIHtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIC8vY29uc29sZS5sb2coYHByZXNzaW5nIGF0ICgke3BvaW50Lnh9LCAke3BvaW50Lnl9KWApOyAvL2ZpcnN0IGluc3RhbmNlIG9mICdwcmVzc2luZycgaXMgYWx3YXlzIGF0ICgxLCAxKVxyXG4gICAgLy9uYiwgbGlrZWx5IHRvIG5lZWQgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIGR1YWwgd2llbGRpbmdcclxuICAgIGlmIChwcmVzc2luZykgcHJlc3NpbmcocCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmICghbWF0ZXJpYWwuY29sb3IpIHJldHVybjtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhDQ0NDQ0MgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKiBcclxuICogR3JpZCBvZiBidXR0b25zIHdpdGggaW1hZ2VzIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgaW1hZ2VidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7Y3JlYXRlVGV4dExhYmVsLCBjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0cywgLy8gYXJyYXkgb2Yge2Z1bmMsIGltYWdlIHwgdGV4dCwgdGlwKG9wdGlvbmFsKSwgcmVsZWFzZShvcHRpb25hbCl9XHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgcm93SGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNvbHVtbnMgPSA0XHJcbn0gPSB7fSApe1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWFyZ2luID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDM7XHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gKHdpZHRoIC0gbWFyZ2luKSAqICgxL2NvbHVtbnMpO1xyXG4gIC8vVE9ETzogYWRkIHNldFJvd0hlaWdodCBtZXRob2RcclxuICBsZXQgQlVUVE9OX0hFSUdIVCA9IHJvd0hlaWdodCA+IDAgPyByb3dIZWlnaHQgOiBCVVRUT05fV0lEVEg7XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvbmdyaWRcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtvYmplY3RzfV1gO1xyXG4gIFxyXG4gIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwob2JqZWN0cy5sZW5ndGggLyBjb2x1bW5zKTtcclxuICBsZXQgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGdyb3VwLnNldFJvd0hlaWdodCA9IGggPT4ge1xyXG4gICAgcm93SGVpZ2h0ID0gQlVUVE9OX0hFSUdIVCA9IGg7XHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG4gICAgbGF5b3V0QnV0dG9ucygpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGZhbHNlO1xyXG4gIGxldCBsYXN0UHJlc3NlZCA9IG51bGw7XHJcbiAgbGV0IGxhc3RQcmVzc2VkQ29sO1xyXG4gIGdyb3VwLmhpZ2hsaWdodExhc3RQcmVzc2VkID0gKGNvbCA9IDB4MzM1NUVFKSA9PiB7XHJcbiAgICAgIGhpZ2hsaWdodExhc3RQcmVzc2VkID0gY29sICE9PSBmYWxzZTtcclxuICAgICAgbGFzdFByZXNzZWRDb2wgPSBjb2w7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgXHJcbiAgbGV0IHBhbmVsLCBncmFiSW50ZXJhY3Rpb24sIGJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgbGF5b3V0QnV0dG9ucygpO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGluaXRQYW5lbCgpIHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIHBhbmVsLmFkZChjb250cm9sbGVySUQpO1xyXG4gICAgXHJcbiAgICBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+Z3JvdXAucmVtb3ZlKGIpKTtcclxuICAgIGJ1dHRvbnMgPSBbXTtcclxuICAgIGdyb3VwLmd1aUNoaWxkcmVuID0gYnV0dG9ucztcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gbGF5b3V0QnV0dG9ucygpIHtcclxuICAgIGluaXRQYW5lbCgpO1xyXG4gICAgLy9UT0RPOiBwYWRkaW5nXHJcbiAgICBjb25zdCBidXR0b25XUGFkZGVkID0gQlVUVE9OX1dJRFRIICogMC45OSwgYnV0dG9uSFBhZGRlZCA9IEJVVFRPTl9IRUlHSFQgKiAwLjk5O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBidXR0b25XUGFkZGVkLCBidXR0b25IUGFkZGVkLCAxLCAxICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggYnV0dG9uV1BhZGRlZCAvIDIsIC1idXR0b25IUGFkZGVkIC8gMiwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IHRvZ2dsZXMgcmF0aGVyIHRoYW4gdHJpZ2dlcnMuLi5cclxuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFvYmouaW1hZ2UgJiYgIW9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN1Ymdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vbm90ZTogcmVkdWNpbmcgbmVzdGluZyBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxyXG4gICAgICAgIHN1Ymdyb3VwLmd1aVR5cGUgPSBcImltYWdlQnV0dG9uR3JpZEVsZW1lbnRcIjtcclxuICAgICAgICBncm91cC5hZGQoc3ViZ3JvdXApO1xyXG4gICAgICAgIGJ1dHRvbnMucHVzaChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbCA9IGkgJSBjb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IE1hdGguZmxvb3IoaSAvIGNvbHVtbnMpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi54ID0gKDIqTGF5b3V0LlBBTkVMX01BUkdJTikgKyBCVVRUT05fV0lEVEggKiBjb2w7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueSA9IChoZWlnaHQvMikgLUJVVFRPTl9IRUlHSFQgKiByb3c7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuXHJcbiAgICAgICAgLy8gIGhpdHNjYW4gdm9sdW1lLlxyXG4gICAgICAgIC8vIFRoaXMgbWF0ZXJpYWwgY291bGQgcHJvYmFibHkgYmUgcmV1c2VkLlxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG9iai5pbWFnZSkgYXBwbHlJbWFnZVRvTWF0ZXJpYWwob2JqLmltYWdlLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgaWYgKG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUob2JqLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyKkxheW91dC5HUklEX0JVVFRPTl9NQVJHSU47XHJcbiAgICAgICAgICAgIGxldCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgaWYgKHcgPiBCVVRUT05fV0lEVEggLSBtYXJnaW4pIHtcclxuICAgICAgICAgICAgICAgIHRleHQuY29uc3RyYWluQm91bmRzKEJVVFRPTl9XSURUSCAtIG1hcmdpbiwgQlVUVE9OX0hFSUdIVCAtIG1hcmdpbik7IC8vPC0tXHJcbiAgICAgICAgICAgICAgICBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJncm91cC5hZGQodGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnggPSBvYmoudGV4dFggfHwgMC41ICogKEJVVFRPTl9XSURUSCAtIHcpO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnkgPSBvYmoudGV4dFkgfHwgLTAuNSAqIEJVVFRPTl9IRUlHSFQgLSBoO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICAgICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgICAgICAvL2J1dHRvbiBsYWJlbCAmIGRlc2NyaXB0b3IgbGFiZWwgcmVtb3ZlZC5cclxuICAgICAgICAvL1Rvb2x0aXAgdGV4dCBvcHRpb24gYWRkZWQuICBNaWdodCB3YW50IHRvIGJlIGFibGUgdG8gcGFzcyBpbiByaWNoZXIgdGhpbmdzLi4uXHJcbiAgICAgICAgLy9tYXliZSBhbiBhcmJpdHJhcnkgVEhSRUUgb2JqZWN0IHdvdWxkIHdvcmsgd2VsbC4uLlxyXG4gICAgICAgIGlmIChvYmoudGlwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcFRleHQgPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCBvYmoudGlwLCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL3N1Ymdyb3VwLmFkZCh0aXBUZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG4gICAgICAgIHN1Ymdyb3VwLmFkZCggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIHBhbmVsLmFkZChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgICAgICAgICBpZiggc3ViZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL1RPRE86IHN0YW5kYXJkaXNlIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gY2FsbGJhY2tzXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZnVuYygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZXJyb3IgPSBlIHx8ICd1bmRlZmluZWQgZXhjZXB0aW9uJztcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0UHJlc3NlZCA9IG9iajtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gICAgICAgICAgICBpZiAob2JqLnJlbGVhc2UpIG9iai5yZWxlYXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcXVpY2sgY29sb3IgaGFjay4uLlxyXG4gICAgICAgIGNvbnN0IGhvdmVyQ29sID0gb2JqLnRleHQgPyAweDg4OCA6IDB4RkZGRkZGO1xyXG4gICAgICAgIGNvbnN0IG5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IGhvdmVyQ29sIDogbm9Ib3ZlckNvbCApO1xyXG4gICAgICAgICAgICBpZiAoc3ViZ3JvdXAudGlwVGV4dCkgc2V0VmlzaWJpbGl0eShzdWJncm91cCwgc3ViZ3JvdXAudGlwVGV4dCwgaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICAgIGlmIChvYmouZXJyb3IpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhBQTMzMzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3KCk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgc3ViZ3JvdXAuaGl0c2NhbiA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBtYWtpbmcgdGhpcyBzaW5nbGUgZWxlbWVudCByYXRoZXIgdGhhbiBhcnJheSxcclxuICAgICAgICAvL3RoYXQgbWVhbnMgdGhlc2UgJ3N1Ymdyb3VwJyBidXR0b25zIGFyZW4ndCBhY3RpbmcgZXhhY3RseSBhcyBub3JtYWwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzXHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5oaXRzY2FuID0gYnV0dG9ucy5tYXAoYj0+Yi5oaXRzY2FuKTsvLy5wdXNoKHBhbmVsKTtcclxuICAgIGdyb3VwLmhpdHNjYW4ucHVzaChwYW5lbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpIHtcclxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGI9PmIudXBkYXRlVmlldygpKTtcclxuICB9XHJcbiAgXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT57XHJcbiAgICAgICAgYi5pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICAvL2ludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVTbGlkZXIgZnJvbSAnLi9zbGlkZXInO1xyXG5pbXBvcnQgY3JlYXRlQ2hlY2tib3ggZnJvbSAnLi9jaGVja2JveCc7XHJcbmltcG9ydCBjcmVhdGVCdXR0b24gZnJvbSAnLi9idXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlRm9sZGVyIGZyb20gJy4vZm9sZGVyJztcclxuaW1wb3J0IGNyZWF0ZURyb3Bkb3duIGZyb20gJy4vZHJvcGRvd24nO1xyXG4vL1BKVDogSSdkIHJhdGhlciBpbmplY3QgY3VzdG9tIGV4dGVuc2lvbnMgbGlrZSB0aGlzLCBidXQgd2lsbCB3b3JrIHRoYXQgb3V0IGxhdGVyLlxyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlS2V5Ym9hcmQgZnJvbSAnLi9rZXlib2FyZCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0Ym94IGZyb20gJy4vdGV4dGJveCc7XHJcbmltcG9ydCBjcmVhdGVDb2xvclBpY2tlciBmcm9tICcuL2NvbG9ycGlja2VyJztcclxuaW1wb3J0ICogYXMgU0RGVGV4dCBmcm9tICcuL3NkZnRleHQnO1xyXG5pbXBvcnQgeyBpc0NvbnRyb2xsZXJWaXNpYmxlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGdsb2JhbEV2ZW50cyB9IGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuY29uc3QgR1VJVlIgPSAoZnVuY3Rpb24gREFUR1VJVlIoKXtcclxuXHJcbiAgLypcclxuICAgIFNERiBmb250XHJcbiAgKi9cclxuICBjb25zdCB0ZXh0Q3JlYXRvciA9IFNERlRleHQuY3JlYXRvcigpO1xyXG5cclxuXHJcbiAgLypcclxuICAgIExpc3RzLlxyXG4gICAgSW5wdXRPYmplY3RzIGFyZSB0aGluZ3MgbGlrZSBWSVZFIGNvbnRyb2xsZXJzLCBjYXJkYm9hcmQgaGVhZHNldHMsIGV0Yy5cclxuICAgIENvbnRyb2xsZXJzIGFyZSB0aGUgREFUIEdVSSBzbGlkZXJzLCBjaGVja2JveGVzLCBldGMuXHJcbiAgKi9cclxuICBjb25zdCBpbnB1dE9iamVjdHMgPSBbXTtcclxuICBjb25zdCBjb250cm9sbGVycyA9IFtdO1xyXG5cclxuICAvKlxyXG4gICAgRnVuY3Rpb25zIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY29udHJvbGxlciBpcyB2aXNpYmxlIChieSB3aGljaCB3ZVxyXG4gICAgbWVhbiBub3QgaGlkZGVuLCBub3QgJ3Zpc2libGUnIGluIHRlcm1zIG9mIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gZXRjKSwgYW5kXHJcbiAgICBmb3IgcmV0cmlldmluZyB0aGUgbGlzdCBvZiB2aXNpYmxlIGhpdHNjYW5PYmplY3RzIGR5bmFtaWNhbGx5LlxyXG4gICAgVGhpcyBtaWdodCBiZW5lZml0IGZyb20gc29tZSBjYWNoaW5nIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2l0aCBsYXJnZSBjb21wbGV4IEdVSXMuXHJcbiAgICBJIGhhdmVuJ3QgbWVhc3VyZWQgdGhlIGltcGFjdCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gZXRjLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkge1xyXG4gICAgLy8gbm90IHRlcnJpYmx5IGVmZmljaWVudFxyXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJzLmZpbHRlciggaXNDb250cm9sbGVyVmlzaWJsZSApO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSB7XHJcbiAgICAvL1hYWCBXQVJOSU5HOjo6XHJcbiAgICAvL3RoZXJlIGNvdWxkIGV4aXN0IHNpdHVhdGlvbnMgaW4gd2hpY2ggbWVtYmVycyBvZiBoaXRzY2FuIGZvciBhIHZpc2libGUgY29udHJvbGxlciBhcmUgbm90IHRoZW1zZWx2ZXMgdmlzaWJsZS5cclxuICAgIC8vdGhpcyBjYW4gaGFwcGVuIGZvciBlZyBpZiB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBwYXJ0aWN1bGFyIGhpdHNjYW4gaXMgaW4gYW4gaW52aXNpYmxlIG1vZGFsIGVkaXRvci5cclxuICAgIC8vd2UgY291bGQgY2hlY2sgdGhhdCwgYWRkaW5nIGEgbW9yZSByb2J1c3QgZmlsdGVyIHRvIGVhY2ggaGl0c2NhbiBhcnJheS4uLiBmb3Igbm93LCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcclxuICAgIC8vY29udHJvbGxlcnMgdG8gZWl0aGVyIG9ubHkgcmV0dXJuIGhpdHNjYW4gb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlLCBvciB0byBzZXQgJ3Zpc2libGUnIGV4cGxpY2l0bHkuXHJcbiAgICBjb25zdCB0bXAgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKS5tYXAoIG8gPT4geyByZXR1cm4gby5oaXRzY2FuLmZpbHRlcihoID0+IGgudmlzaWJsZSk7IH0gKVxyXG4gICAgcmV0dXJuIHRtcC5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgbGV0IG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGxldCBtb3VzZVJlbmRlcmVyID0gdW5kZWZpbmVkO1xyXG4gIGxldCBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkOyAvL2tlZXAgdHJhY2sgc28gdGhhdCB3ZSBkb24ndCBhdHRhY2ggbXVsdGlwbGUgZXZlbnRzIChwYXJ0aWN1bGFybHkgd2hlbiByZXNpemluZyB3aW5kb3cpXHJcbiAgXHJcbiAgbGV0IGF1dG9VcGRhdGUgPSB0cnVlO1xyXG5cclxuICBmdW5jdGlvbiBlbmFibGVNb3VzZSggY2FtZXJhLCByZW5kZXJlciApe1xyXG4gICAgbW91c2VFbmFibGVkID0gdHJ1ZTtcclxuICAgIG1vdXNlUmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgIG1vdXNlSW5wdXQubW91c2VDYW1lcmEgPSBjYW1lcmE7XHJcbiAgICBpZiAoY2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSB7XHJcbiAgICAgIGlmICghb25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSBmPT5mLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMub24oJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5sYXNlcjtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gZGlzYWJsZU1vdXNlKCl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgVGhlIGRlZmF1bHQgbGFzZXIgcG9pbnRlciBjb21pbmcgb3V0IG9mIGVhY2ggSW5wdXRPYmplY3QuXHJcbiAgKi9cclxuICBjb25zdCBsYXNlck1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjoweDU1YWFmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0pO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUxhc2VyKCl7XHJcbiAgICBjb25zdCBnID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBnLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDAsMCwwXSkpKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoKSApO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygwLDAsMCkgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTGluZSggZywgbGFzZXJNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBIFwiY3Vyc29yXCIsIGVnIHRoZSBiYWxsIHRoYXQgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHlvdXIgbGFzZXIuXHJcbiAgKi9cclxuICBjb25zdCBjdXJzb3JNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg0NDQ0NDQsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9ICk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKCl7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgwLjAwNiwgNCwgNCApLCBjdXJzb3JNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBnZW5lcmljIElucHV0IHR5cGUuXHJcbiAgICBUYWtlcyBhbnkgVEhSRUUuT2JqZWN0M0QgdHlwZSBvYmplY3QgYW5kIHVzZXMgaXRzIHBvc2l0aW9uXHJcbiAgICBhbmQgb3JpZW50YXRpb24gYXMgYW4gaW5wdXQgZGV2aWNlLlxyXG5cclxuICAgIEEgbGFzZXIgcG9pbnRlciBpcyBpbmNsdWRlZCBhbmQgd2lsbCBiZSB1cGRhdGVkLlxyXG4gICAgQ29udGFpbnMgc3RhdGUgYWJvdXQgd2hpY2ggSW50ZXJhY3Rpb24gaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb3IgaG92ZXIuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBjcmVhdGVJbnB1dCggaW5wdXRPYmplY3QgPSBuZXcgVEhSRUUuR3JvdXAoKSApe1xyXG4gICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgIHJheWNhc3Q6IG5ldyBUSFJFRS5SYXljYXN0ZXIoIG5ldyBUSFJFRS5WZWN0b3IzKCksIG5ldyBUSFJFRS5WZWN0b3IzKCkgKSxcclxuICAgICAgbGFzZXI6IGNyZWF0ZUxhc2VyKCksXHJcbiAgICAgIGN1cnNvcjogY3JlYXRlQ3Vyc29yKCksXHJcbiAgICAgIG9iamVjdDogaW5wdXRPYmplY3QsXHJcbiAgICAgIHByZXNzZWQ6IGZhbHNlLFxyXG4gICAgICBncmlwcGVkOiBmYWxzZSxcclxuICAgICAgZXZlbnRzOiBuZXcgRW1pdHRlcigpLFxyXG4gICAgICBpbnRlcmFjdGlvbjoge1xyXG4gICAgICAgIGdyaXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmVzczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGhvdmVyOiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5hZGQoIGlucHV0LmN1cnNvciApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgTW91c2VJbnB1dC5cclxuICAgIEFsbG93cyB5b3UgdG8gY2xpY2sgb24gdGhlIHNjcmVlbiB3aGVuIG5vdCBpbiBWUiBmb3IgZGVidWdnaW5nLlxyXG4gICovXHJcbiAgY29uc3QgbW91c2VJbnB1dCA9IGNyZWF0ZU1vdXNlSW5wdXQoKTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlTW91c2VJbnB1dCgpe1xyXG4gICAgY29uc3QgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigtMSwtMSk7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCgpO1xyXG4gICAgaW5wdXQubW91c2UgPSBtb3VzZTtcclxuICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlT2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlUGxhbmUgPSBuZXcgVEhSRUUuUGxhbmUoKTtcclxuICAgIGlucHV0LmludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyAgc2V0IG15IGVuYWJsZU1vdXNlXHJcbiAgICBpbnB1dC5tb3VzZUNhbWVyYSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlbW92ZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICAvLyBpZiBhIHNwZWNpZmljIHJlbmRlcmVyIGhhcyBiZWVuIGRlZmluZWRcclxuICAgICAgaWYgKG1vdXNlUmVuZGVyZXIpIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gbW91c2VSZW5kZXJlci5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIG1vdXNlLnggPSAoIChldmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0KSAvIGNsaWVudFJlY3Qud2lkdGgpICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCAoZXZlbnQuY2xpZW50WSAtIGNsaWVudFJlY3QudG9wKSAvIGNsaWVudFJlY3QuaGVpZ2h0KSAqIDIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gZnVsbHNjcmVlblxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtb3VzZS54ID0gKCBldmVudC5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGggKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCApICogMiArIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmIChpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBwcmV2ZW50IG1vdXNlIGRvd24gZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGxpc3RlbmVycyAocG9seWZpbGwsIGV0YylcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLy9pZiBhbnkgaW5wdXQuaW50ZXJhY3Rpb25zIGhhdmUgaGl0Vm9sdW1lIHRoYXQgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIG5vdCBjdXJyZW50bHkgaW4gaGl0c2Nhbk9iamVjdHMsXHJcbiAgLy90aGF0IGludGVyYWN0aW9uIHNob3VsZCBiZSBjYW5jZWxsZWQuIEVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgd2l0aCBlLmcuIHByZXNzaW5nICdyZWF0dGFjaCcgd2hlbiB0aGUgcGFyZW50IGlzIGNsb3NlZC5cclxuICBmdW5jdGlvbiBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb25zLCBoaXRzY2FuT2JqZWN0cyApIHtcclxuICAgIFsncHJlc3MnLCAnZ3JpcCcsICdob3ZlciddLmZvckVhY2goIGludGVyYWN0aW9uTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV07XHJcbiAgICAgIGlmIChpbnRlcmFjdGlvbiAmJiBoaXRzY2FuT2JqZWN0cy5pbmRleE9mKGludGVyYWN0aW9uLmhpdFZvbHVtZSkgPCAwKSB7XHJcbiAgICAgICAgaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV0gPSB1bmRlZmluZWQ7IFxyXG4gICAgICAgIC8vb25seSBiZSBwb2xpdGUgdG8gaW5mb3JtIHRoZSBpbnRlcmFjdGlvbiBhcyB3ZWxsOyB1cGRhdGUgd2l0aCBlbXB0eSBpbnB1dE9iamVjdHMgYXJnIHNob3VsZCBkbyB0aGUgdHJpY2suXHJcbiAgICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBbXSApO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVMYXNlciggbGFzZXIsIHBvaW50ICl7XHJcbiAgICBjb25zdCBwcCA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgIHBwWzNdID0gcG9pbnQueDtcclxuICAgIHBwWzRdID0gcG9pbnQueTtcclxuICAgIHBwWzVdID0gcG9pbnQuejtcclxuICAgIHBwLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggcG9pbnQgKTtcclxuICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydGljZXNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgaWYoIGludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBjb25zdCBmaXJzdEhpdCA9IGludGVyc2VjdGlvbnNbIDAgXTtcclxuICAgICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IucG9zaXRpb24uY29weSggZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBjdXJzb3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlTW91c2VJbnRlcnNlY3Rpb24oIGludGVyc2VjdGlvbiwgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGludGVyc2VjdGlvbiApO1xyXG4gICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBjdXJzb3IucG9zaXRpb24gKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIGNhbWVyYSApe1xyXG4gICAgcmF5Y2FzdC5zZXRGcm9tQ2FtZXJhKCBtb3VzZSwgY2FtZXJhICk7XHJcbiAgICBjb25zdCBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgcmV0dXJuIHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtb3VzZUludGVyc2VjdHNQbGFuZSggcmF5Y2FzdCwgdiwgcGxhbmUgKXtcclxuICAgIHJldHVybiByYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggcGxhbmUsIHYgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsbW91c2UsbW91c2VDYW1lcmEsIGludGVyYWN0aW9ufSA9IHt9ICl7XHJcbiAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICBsZXQgaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIGlmIChtb3VzZUNhbWVyYSkge1xyXG4gICAgICBpbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgbW91c2VDYW1lcmEgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoKTtcclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBtZXRob2RzLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHB1YmxpY0ludGVyZmFjZSA9IHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGFkZElucHV0T2JqZWN0LFxyXG4gICAgZW5hYmxlTW91c2UsXHJcbiAgICBkaXNhYmxlTW91c2UsXHJcbiAgICB0ZXh0Q3JlYXRvciwgLy9jaGVhcCB3YXkgb2YgZXhwb3NpbmcgdGhpcyBzbyBpdCBjYW4gYmUgdXNlZCBieSBob3N0IGFwcGxpY2F0aW9uLlxyXG4gICAgZ2xvYmFsRXZlbnRzLFxyXG4gICAgY2xlYXJBbGwsXHJcbiAgICB1cGRhdGVcclxuICB9O1xyXG4gIC8vIGFsbG93IHVzZXIgdG8gY2FsbCBcImRhdC5HVUlWUi5hdXRvVXBkYXRlID0gZmFsc2VcIiBhbmQgdGhlbiB1cGRhdGUgbWFudWFsbHkgd2l0aFxyXG4gIC8vIFwiZGF0LkdVSVZSLnVwZGF0ZSgpXCJcclxuICAvLyBleHBvc2UgYXV0b1VwZGF0ZSBhcyBwcm9wZXJ0eSBzbyB0aGF0IHRoZSByZWZlcmVuY2Ugd2lsbCBiZSBwcm9wZXJseSBlZmZlY3RlZFxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggcHVibGljSW50ZXJmYWNlLCAnYXV0b1VwZGF0ZScsIHsgZ2V0OiAoKT0+IGF1dG9VcGRhdGUsIHNldDogdiA9PiBhdXRvVXBkYXRlID0gdiB9ICk7XHJcbiAgcmV0dXJuIHB1YmxpY0ludGVyZmFjZTtcclxuXHJcbn0oKSk7XHJcblxyXG5pZiggd2luZG93ICl7XHJcbiAgaWYoIHdpbmRvdy5kYXQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgd2luZG93LmRhdCA9IHt9O1xyXG4gIH1cclxuXHJcbiAgd2luZG93LmRhdC5HVUlWUiA9IEdVSVZSO1xyXG59XHJcblxyXG5pZiggbW9kdWxlICl7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBkYXQ6IEdVSVZSXHJcbiAgfTtcclxufVxyXG5cclxuaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XHJcbiAgZGVmaW5lKFtdLCBHVUlWUik7XHJcbn1cclxuXHJcbi8qXHJcbiAgQnVuY2ggb2Ygc3RhdGUtbGVzcyB1dGlsaXR5IGZ1bmN0aW9ucy5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGlzTnVtYmVyKG4pIHtcclxuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Jvb2xlYW4obil7XHJcbiAgcmV0dXJuIHR5cGVvZiBuID09PSAnYm9vbGVhbic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuY3Rpb25Ub0NoZWNrKSB7XHJcbiAgY29uc3QgZ2V0VHlwZSA9IHt9O1xyXG4gIHJldHVybiBmdW5jdGlvblRvQ2hlY2sgJiYgZ2V0VHlwZS50b1N0cmluZy5jYWxsKGZ1bmN0aW9uVG9DaGVjaykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XHJcbn1cclxuXHJcbi8vICBvbmx5IHt9IG9iamVjdHMgbm90IGFycmF5c1xyXG4vLyAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHRlY2huaWNhbGx5IG9iamVjdHMgYnV0IHlvdSdyZSBqdXN0IGJlaW5nIHBlZGFudGljXHJcbmZ1bmN0aW9uIGlzT2JqZWN0IChpdGVtKSB7XHJcbiAgcmV0dXJuICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQXJyYXkoIG8gKXtcclxuICByZXR1cm4gQXJyYXkuaXNBcnJheSggbyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1N0cmluZyggbyApe1xyXG4gIHJldHVybiB0eXBlb2YgbyA9PT0gJ3N0cmluZyc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQ29sb3IoIG8gKXtcclxuICBpZiAodHlwZW9mIG8gIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIG8uaXNDb2xvciA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5cclxuXHJcblxyXG4vKlxyXG4gIENvbnRyb2xsZXItc3BlY2lmaWMgc3VwcG9ydC5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIGNvbnRyb2xsZXIsIHByZXNzZWQsIGdyaXBwZWQgKXtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VyZG93bicsICgpPT5wcmVzc2VkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VydXAnLCAoKT0+cHJlc3NlZCggZmFsc2UgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzZG93bicsICgpPT5ncmlwcGVkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc3VwJywgKCk9PmdyaXBwZWQoIGZhbHNlICkgKTtcclxuXHJcbiAgY29uc3QgZ2FtZXBhZCA9IGNvbnRyb2xsZXIuZ2V0R2FtZXBhZCgpO1xyXG4gIGZ1bmN0aW9uIHZpYnJhdGUoIHQsIGEgKXtcclxuICAgIGlmKCBnYW1lcGFkICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnNbIDAgXS5wdWxzZSggdCwgYSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc1RhcCgpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSgxLWEsIDAuNSksIDEwLCAyMCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc0VjaG8oKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoNCwgMS4wICogKDEtYSkpLCAxMDAsIDQgKTtcclxuICB9XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ29uQ29udHJvbGxlckhlbGQnLCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgIHZpYnJhdGUoIDAuMywgMC4zICk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJiZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGlubmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGluUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gc2V0SW50ZXJ2YWxUaW1lcyggY2IsIGRlbGF5LCB0aW1lcyApe1xyXG4gIGxldCB4ID0gMDtcclxuICBsZXQgaWQgPSBzZXRJbnRlcnZhbCggZnVuY3Rpb24oKXtcclxuICAgIGNiKCB4LCB0aW1lcywgeC90aW1lcyApO1xyXG4gICAgeCsrO1xyXG4gICAgaWYoIHg+PXRpbWVzICl7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwoIGlkICk7XHJcbiAgICB9XHJcbiAgfSwgZGVsYXkgKTtcclxuICByZXR1cm4gaWQ7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdsb2JhbEV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbnRlcmFjdGlvbiggaGl0Vm9sdW1lICl7XHJcbiAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbiAgbGV0IGFueUhvdmVyID0gZmFsc2U7XHJcbiAgbGV0IGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgbGV0IGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCB0VmVjdG9yID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCBhdmFpbGFibGVJbnB1dHMgPSBbXTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCBpbnB1dE9iamVjdHMgKXtcclxuXHJcbiAgICBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gICAgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuXHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuaW5kZXhPZiggaW5wdXQgKSA8IDAgKXtcclxuICAgICAgICBhdmFpbGFibGVJbnB1dHMucHVzaCggaW5wdXQgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgeyBoaXRPYmplY3QsIGhpdFBvaW50IH0gPSBleHRyYWN0SGl0KCBpbnB1dCApO1xyXG5cclxuICAgICAgdmFyIGhvdmVyID0gaGl0Vm9sdW1lID09PSBoaXRPYmplY3Q7XHJcbiAgICAgIGFueUhvdmVyID0gYW55SG92ZXIgfHwgaG92ZXI7XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAncHJlc3NlZCcsXHJcbiAgICAgICAgYnV0dG9uQ2xpY2tOYW1lOiAnY2xpY2tlZCcsIC8vbWF5YmUgbm90IHN0YWJsZSBwYXJ0IG9mIEFQSS4uLlxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ3ByZXNzJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uUHJlc3NlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdwcmVzc2luZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlZCcsXHJcbiAgICAgICAgIC8vaW52ZW50aW5nIGEgJ2hvdmVyaW5nJyBldmVudCB0aGF0IG9ubHkgYXBwbGllcyB0byAncHJlc3NlZCcgYnV0dG9uLi4uXHJcbiAgICAgICAgIC8vdGhpcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYSBzdGFibGUgaW50ZXJmYWNlLCBidXQgSSB3YW50cyBpdCBtb3JlIHRoYW4gSVxyXG4gICAgICAgICAvL3dhbnQgdG8gbWFrZSBzb21ldGhpbmcgdG90YWxseSBjb2hlcmVudCBhbmQgcm9idXN0IGp1c3Qgbm93LlxyXG4gICAgICAgIGhvdmVyTmFtZTogJ2hvdmVyaW5nJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAnZ3JpcHBlZCcsXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAnZ3JpcCcsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvbkdyaXBwZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAnZ3JpcHBpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZUdyaXAnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoICd0aWNrJywge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0gKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBleHRyYWN0SGl0KCBpbnB1dCApe1xyXG4gICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoIDw9IDAgKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogdFZlY3Rvci5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LmN1cnNvci5tYXRyaXhXb3JsZCApLmNsb25lKCksIC8veHh4OiBnYXJiYWdlP1xyXG4gICAgICAgIGhpdE9iamVjdDogdW5kZWZpbmVkLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLnBvaW50LFxyXG4gICAgICAgIGhpdE9iamVjdDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgIGlucHV0LCBob3ZlcixcclxuICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICBidXR0b25OYW1lLCBidXR0b25DbGlja05hbWUsIGludGVyYWN0aW9uTmFtZSwgZG93bk5hbWUsIGhvbGROYW1lLCB1cE5hbWUsIGhvdmVyTmFtZVxyXG4gIH0gPSB7fSApe1xyXG5cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGhpdE9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIC8vY2xpY2tlZCBhbmQgZGlkbid0IGhpdCBhbnkgR1VJIG9iamVjdC5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBob3ZlcmluZyBhbmQgYnV0dG9uIE5PVCBkb3duXHJcbiAgICBpZiggaG92ZXJOYW1lICYmIGhvdmVyICYmIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob3Zlck5hbWUsIHBheWxvYWQgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgaG92ZXJpbmcgYW5kIGJ1dHRvbiBkb3duIGJ1dCBubyBpbnRlcmFjdGlvbnMgYWN0aXZlIHlldFxyXG4gICAgLy8tLS0+IHNob3VsZCBiZSBeIGJ1dHRvbiAnY2xpY2tlZCcuLi4gaWUgb25seSBpZiBpdCBjYW1lIGRvd24gc2luY2UgdGhlIGxhc3QgdXBkYXRlLlxyXG4gICAgLy9zbywgc2hvdWxkIHdlIHBhc3MgJ2J1dHRvbkNsaWNrTmFtZScgYXMgYW4gYXJndW1lbnQgKGFuZCB1c2UgYnV0dG9uTmFtZSBpZiBub3QgcHJvdmlkZWQpP1xyXG4gICAgLy8tLS0+Pj4+IFhYWDogaXMgdGhpcyBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcLy8vLy8vLy8vLy8vIHdvcmtpbmcgd2l0aCBWaXZlIGNvbnRyb2xsZXJzPyBcclxuICAgIGlmKCBob3ZlciAmJiBpbnB1dFsgYnV0dG9uQ2xpY2tOYW1lIHx8IGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG5cclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpZiAoIWhpdE9iamVjdC51c2VyRGF0YS5wYXJ0T2ZNb2RhbCkgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG5cclxuICAgICAgcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpO1xyXG4gICAgICBcclxuICAgICAgLy9lbWl0IGdsb2JhbCBjbGljayBldmVudCBhcyB3ZWxsLi4uXHJcbiAgICAgIGdsb2JhbEV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgICBldmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGlmKCBwYXlsb2FkLmxvY2tlZCApe1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gaW50ZXJhY3Rpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgYW55QWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIHN0aWxsIGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggaG9sZE5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnb25Db250cm9sbGVySGVsZCcgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIG5vdCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IHVuZGVmaW5lZDtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCB1cE5hbWUsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpIHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGhpdE9iamVjdCk7XHJcbiAgICB0b3BGb2xkZXIucHJvbW90ZVpPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaXNNYWluSG92ZXIoKXtcclxuXHJcbiAgICBsZXQgbm9NYWluSG92ZXIgPSB0cnVlO1xyXG4gICAgZm9yKCBsZXQgaT0wOyBpPGF2YWlsYWJsZUlucHV0cy5sZW5ndGg7IGkrKyApe1xyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzWyBpIF0uaW50ZXJhY3Rpb24uaG92ZXIgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIG5vTWFpbkhvdmVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggbm9NYWluSG92ZXIgKXtcclxuICAgICAgcmV0dXJuIGFueUhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuZmlsdGVyKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgICAgcmV0dXJuIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID09PSBpbnRlcmFjdGlvbjtcclxuICAgIH0pLmxlbmd0aCA+IDAgKXtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0ge1xyXG4gICAgaG92ZXJpbmc6IGlzTWFpbkhvdmVyLFxyXG4gICAgcHJlc3Npbmc6ICgpPT5hbnlQcmVzc2luZyxcclxuICAgIHVwZGF0ZSxcclxuICAgIGV2ZW50cyxcclxuICAgIGhpdFZvbHVtZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufVxyXG5cclxuIiwiLyoqXHJcbiAqIFxyXG4gKiBUT0RPOiBjdXJzb3JzLi4uXHJcbiAqIE1heWJlIHNvbWV0aGluZyBsaWtlIG1vYmlsZSBpbnB1dCB3aGVyZSB5b3Ugc3dpdGNoIGJldHdlZW4gbGV0dGVycyAmIG51bWJlcnMgLyBzeW1ib2xzXHJcbiAqIFxyXG4gKiBTb21ldGhpbmcgbGlrZSBhIHNwbGl0IGtleWJvYXJkIGFsYSBodHRwczovL21lZGl1bS5jb20vYWFyb25uL3ZyLXRleHQtaW5wdXQtc3BsaXQta2V5Ym9hcmQtZTViZjNmZDg3YTRjXHJcbiAqIG1pZ2h0IGJlIGJldHRlci5cclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZCggeyBcclxuICAgIGtleUxpc3RlbmVyLFxyXG4gICAgdGV4dENyZWF0b3JcclxufSA9IHt9KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0VHJhbnNmb3JtID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBncm91cC5hZGQob2Zmc2V0VHJhbnNmb3JtKTtcclxuXHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgZXZlbnRzLm9uKCdrZXlEb3duJywga2V5TGlzdGVuZXIpO1xyXG4gICAgXHJcbiAgICBjb25zdCBsb3dlckNoYXJzID0gXCIxMjM0NTY3ODkwLT1xd2VydHl1aW9wW11hc2RmZ2hqa2w7JyNcXFxcenhjdmJubSwuLyBcIi5zcGxpdCgnJyk7XHJcbiAgICBsZXQgb2JqZWN0cyA9IGxvd2VyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG93ZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQobG93ZXJLZXlzKTtcclxuXHJcbiAgICBjb25zdCB1cHBlckNoYXJzID0gXCIhXFxcIsKjJCVeJiooKV8rUVdFUlRZVUlPUHt9QVNERkdISktMOkB+fFpYQ1ZCTk08Pj8gXCIuc3BsaXQoJycpO1xyXG4gICAgb2JqZWN0cyA9IHVwcGVyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBwZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIHVwcGVyS2V5cy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHVwcGVyS2V5cyk7XHJcblxyXG4gICAgbGV0IHNoaWZ0ID0gZmFsc2U7XHJcbiAgICBmdW5jdGlvbiBzaGlmdFRvZ2dsZSgpIHtcclxuICAgICAgICBzaGlmdCA9ICFzaGlmdDtcclxuICAgICAgICBsb3dlcktleXMudmlzaWJsZSA9ICFzaGlmdDtcclxuICAgICAgICB1cHBlcktleXMudmlzaWJsZSA9IHNoaWZ0O1xyXG4gICB9XHJcblxyXG4gICBjb25zdCBzcGFjZUJhciA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7IHRleHRDcmVhdG9yLCBjb2x1bW5zOiAxLCByb3dIZWlnaHQ6IDAuMSwgb2JqZWN0czogW1xyXG4gICAgICAge2Z1bmM6ICgpPT5ldmVudHMuZW1pdCgna2V5RG93bicsICcgJyksIHRleHQ6ICdzcGFjZSd9XHJcbiAgICBdfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwYWNlQmFyKTtcclxuICAgIHZhciB5ID0gc3BhY2VCYXIucG9zaXRpb24ueSA9IC0wLjUgKiAobG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nKTtcclxuICAgIFxyXG4gICAgb2JqZWN0cyA9IFtcclxuICAgICAgICB7IHRleHQ6IFwic2hpZnRcIiwgZnVuYzogc2hpZnRUb2dnbGUgfSxcclxuICAgICAgICB7IHRleHQ6IFwiYmFja3NwYWNlXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcYicpIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImVudGVyXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcbicpIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBzcGVjaWFsS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDMsIHJvd0hlaWdodDogMC4xfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwZWNpYWxLZXlzKTtcclxuICAgIHNwZWNpYWxLZXlzLnBvc2l0aW9uLnkgPSB5LTAuNSAqIChzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZyk7XHJcbiAgICBncm91cC5zcGFjaW5nID0gbG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZztcclxuICAgIC8vdGhpcyBsb29rcyByaWdodCwgbXVzdCBhZG1pdCBJIGhhdmVuJ3QgdGhvdWdodCB0aHJvdWdoIGV4YWN0bHkgd2h5IGl0IHNob3VsZCBiZS5cclxuICAgIG9mZnNldFRyYW5zZm9ybS5wb3NpdGlvbi55ID0gc3BlY2lhbEtleXMuc3BhY2luZztcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdoaXRzY2FuJywge1xyXG4gICAgICAgIGdldDogKCkgPT4gW1xyXG4gICAgICAgICAgICBzcGVjaWFsS2V5cy5oaXRzY2FuLCBzcGFjZUJhci5oaXRzY2FuLCBzaGlmdCA/IHVwcGVyS2V5cy5oaXRzY2FuIDogbG93ZXJLZXlzLmhpdHNjYW5cclxuICAgICAgICBdLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSlcclxuICAgIH0pO1xyXG5cclxuICAgIHNwYWNlQmFyLmZvbGRlciA9IHVwcGVyS2V5cy5mb2xkZXIgPSBsb3dlcktleXMuZm9sZGVyID0gc3BlY2lhbEtleXMuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gKGlucHV0cykgPT4ge1xyXG4gICAgICAgIHNwZWNpYWxLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBsb3dlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHNwYWNlQmFyLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICB1cHBlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWxpZ25MZWZ0KCBvYmogKXtcclxuICBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuTWVzaCApe1xyXG4gICAgb2JqLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4LnggLSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmouZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZWxzZSBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkgKXtcclxuICAgIG9iai5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gIGNvbnN0IG1hdGVyaWFsID0gdW5pcXVlTWF0ZXJpYWwgPyBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4ZmZmZmZmfSkgOiBTaGFyZWRNYXRlcmlhbHMuUEFORUw7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApLCBtYXRlcmlhbCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgaWYoIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuXHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxuXHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiByZXNpemVQYW5lbChwYW5lbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgpIHtcclxuICBwYW5lbC5nZW9tZXRyeS5zY2FsZSh3aWR0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGgsIGhlaWdodC9wYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0LCBkZXB0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGgpO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgY29sb3IgKXtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENPTlRST0xMRVJfSURfV0lEVEgsIGhlaWdodCwgQ09OVFJPTExFUl9JRF9ERVBUSCApLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIENPTlRST0xMRVJfSURfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIGNvbG9yICk7XHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRG93bkFycm93KCl7XHJcbiAgY29uc3QgdyA9IDAuMDA5NjtcclxuICBjb25zdCBoID0gMC4wMTY7XHJcbiAgY29uc3Qgc2ggPSBuZXcgVEhSRUUuU2hhcGUoKTtcclxuICBzaC5tb3ZlVG8oMCwwKTtcclxuICBzaC5saW5lVG8oLXcsaCk7XHJcbiAgc2gubGluZVRvKHcsaCk7XHJcbiAgc2gubGluZVRvKDAsMCk7XHJcblxyXG4gIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KCBzaCApO1xyXG4gIGdlby50cmFuc2xhdGUoIDAsIC1oICogMC41LCAwICk7XHJcblxyXG4gIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgUEFORUxfSEVJR0hUID0gMC4wODtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1NQQUNJTkcgPSAwOy8vLjAwMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX01BUkdJTiA9IDAuMDE1O1xyXG5leHBvcnQgY29uc3QgUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gPSAwLjA2O1xyXG5leHBvcnQgY29uc3QgUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9XSURUSCA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RFUFRIID0gMC4wMDE7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX1dJRFRIID0gMS4wMjY7XHJcbmV4cG9ydCBjb25zdCBTVUJGT0xERVJfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfSEVJR0hUID0gMC4wOTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9HUkFCX0hFSUdIVCA9IDAuMDUxMjtcclxuZXhwb3J0IGNvbnN0IEJPUkRFUl9USElDS05FU1MgPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfU0laRSA9IDAuMDU7XHJcbmV4cG9ydCBjb25zdCBURVhUX1NDQUxFID0gMC4wMDAyNDtcclxuZXhwb3J0IGNvbnN0IEdSSURfQlVUVE9OX01BUkdJTiA9IDAuMDE7IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvbkdyaXBwZWQnLCBoYW5kbGVPbkdyaXAgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VHcmlwJywgaGFuZGxlT25HcmlwUmVsZWFzZSApO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgbGV0IG9sZFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBsZXQgb2xkUm90YXRpb24gPSBuZXcgVEhSRUUuRXVsZXIoKTtcclxuXHJcbiAgY29uc3Qgcm90YXRpb25Hcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHJvdGF0aW9uR3JvdXAuc2NhbGUuc2V0KCAwLjMsIDAuMywgMC4zICk7XHJcbiAgcm90YXRpb25Hcm91cC5wb3NpdGlvbi5zZXQoIC0wLjAxNSwgMC4wMTUsIDAuMCApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwKCBwICl7XHJcblxyXG4gICAgY29uc3QgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9sZFBvc2l0aW9uLmNvcHkoIGZvbGRlci5wb3NpdGlvbiApO1xyXG4gICAgb2xkUm90YXRpb24uY29weSggZm9sZGVyLnJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24ueCA9IC1NYXRoLlBJICogMC41O1xyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG5cclxuICAgIHJvdGF0aW9uR3JvdXAuYWRkKCBmb2xkZXIgKTtcclxuXHJcbiAgICBpbnB1dE9iamVjdC5hZGQoIHJvdGF0aW9uR3JvdXAgKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGlubmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcFJlbGVhc2UoIHsgaW5wdXRPYmplY3QsIGlucHV0IH09e30gKXtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoIG9sZFBvc2l0aW9uICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uY29weSggb2xkUm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGluUmVsZWFzZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiLyoqXHJcbiAqIFBKVDogVGhpcyBpcyBhIHZhcmlhdGlvbiBvbiBzZGZzaGFkZXIgZnJvbSBibWZvbnQsIHdoaWNoIHNob3VsZCBKdXN0IFdvcmsgd2l0aCBsb2dhcml0aG1pYyBkZXB0aCBidWZmZXJzLlxyXG4gKiBJdCBzaG91bGQgYWxzbyBhbGxvdyBzb21lIG90aGVyIGFzcGVjdHMgb2YgVEhSRUUgcmVuZGVyaW5nIHRvIGJlIGluY29ycG9yYXRlZCwgbGlrZSBmb2csIGNsaXBwaW5nIHBsYW5lcy4uLlxyXG4gKiBFbnZpcm9ubWVudCBtYXBzIGFuZCB2YXJpb3VzIG90aGVyIGJpdHMgZnJvbSBNZXNoQmFzaWNNYXRlcmlhbCBhcmUgcmVtb3ZlZC5cclxuICogQXQgdGltZSBvZiB3cml0aW5nLCB0aGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MsIGFuZCBzb21ld2hhdCBtb3JlIGJsb2F0ZWQgdGhhbiBpdCBuZWVkcyB0byBiZS5cclxuICogVGhlIHNoYWRlciBjb2RlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBTaGFkZXJNYXRlcmlhbCByYXRoZXIgdGhhbiBSYXdTaGFkZXJNYXRlcmlhbC5cclxuICovXHJcbi8vIGltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XHJcblxyXG4vKipcclxuICogc3RhcnRpbmcgZnJvbSBUSFJFRSBtZXNoYmFzaWMgc2hhZGVycywgcHJ1bmluZyAvIG1vZGlmeWluZy4uLlxyXG4gKi9cclxuY29uc3QgbWVzaGJhc2ljX3ZlcnQgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XHJcblxyXG52b2lkIG1haW4oKSB7IFxyXG4gIHZVdiA9IHV2O1xyXG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IG1lc2hiYXNpY19mcmFnID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxudW5pZm9ybSB2ZWMzIGNvbG9yO1xyXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XHJcblxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XHJcblxyXG4vLy8vL1xyXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcclxuICAgIC8vIFdlIG5vdyBhc3N1bWUgV2ViR0wyIGFuZCBzbyB0aGUgZGVyaXZhdGl2ZXMgYXJlIGF2YWlsYWJsZSwgXHJcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXHJcbiAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBtZXNoLmdlb21ldHJ5LnVwZGF0ZSggc3RyICk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogVEhSRUUuVmVydGV4Q29sb3JzIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiAweEZGRkZGRiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIC8vaG93IGNhbiBJIGNoYW5nZSBjb2xvciBvZiB0ZXh0P1xyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBvYmplY3RbcHJvcGVydHlOYW1lXSwgeyBjb2xvcjogMHgwMDAwMDAwLCBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgLy9idXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IDAuMDE1O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVN0cmluZyhzdHIpIHtcclxuICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdHI7XHJcbiAgICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKHN0cik7XHJcbiAgfVxyXG4gIHZhciBrZXlib2FyZDtcclxuICBmdW5jdGlvbiB0b2dnbGVLZXlib2FyZCgpIHtcclxuICAgIGlmIChrZXlib2FyZCkge1xyXG4gICAgICAgIGtleWJvYXJkLnZpc2libGUgPSAha2V5Ym9hcmQudmlzaWJsZTtcclxuICAgICAgICBpZiAoa2V5Ym9hcmQudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGtleWJvYXJkID0gZGF0LkdVSVZSLmNyZWF0ZShcImtleWJvYXJkXCIpO1xyXG4gICAgICAgIGdyb3VwLmFkZChrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQuZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueCA9IHdpZHRoO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgICAgICBrZXlib2FyZC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAga2V5Ym9hcmQuYWRkS2V5Ym9hcmQoIChrKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBzdHIgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgc3dpdGNoIChrKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXG4nOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0dGluZyBcImtleWJvYXJkLnZpc2libGUgPSBmYWxzZVwiIGluIHRoZSBtaWRkbGUgb2YgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIgc2VlbXMgdG8ga2lsbCBhbGwgZXZlbnQgcHJvY2Vzc2luZyBmcm9tIHRoZW4gb24uXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0IGlzIGFuIGFkZXF1YXRlIHdvcmthcm91bmQgZm9yIG5vdy5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRvZ2dsZUtleWJvYXJkLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxiJzpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSBrO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL3RoaXMgdGVzdCBzaG91bGQgYmUgcmVkdW5kYW50IG5vd1xyXG4gICAgLy8gaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvL29iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICAvL2hpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICAvLyBjcmVhdGUgYSBrZXlib2FyZCBhbmQgYXR0YWNoIGl0IGFzIGNoaWxkIG9mIGdyb3VwLi4uIFxyXG4gICAgLy8gb3IganVzdCBtYWtlIHN1cmUgZXhpc3Rpbmcga2V5Ym9hcmQgaXMgdmlzaWJsZS5cclxuICAgIHRvZ2dsZUtleWJvYXJkKCk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfSElHSExJR0hUX0JHICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0JHICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRMYWJlbCggdGV4dENyZWF0b3IsIHN0ciwgd2lkdGggPSAwLjQsIGRlcHRoID0gMC4wMjksIGZnQ29sb3IgPSAweGZmZmZmZiwgYmdDb2xvciA9IENvbG9ycy5ERUZBVUxUX0JBQ0ssIHNjYWxlID0gMS4wICl7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGxhYmVsXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7c3RyfV1gO1xyXG5cclxuICBjb25zdCBpbnRlcm5hbFBvc2l0aW9uaW5nID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vcmF0aGVyIHVubmVjZXNzYXJ5LlxyXG4gIGdyb3VwLmFkZCggaW50ZXJuYWxQb3NpdGlvbmluZyApO1xyXG5cclxuICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdHIudG9TdHJpbmcoKSwgeyBjb2xvcjogZmdDb2xvciwgc2NhbGUgfSApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCB0ZXh0ICk7XHJcbiAgZ3JvdXAudXNlckRhdGEudGV4dCA9IHRleHQ7XHJcblxyXG4gIGdyb3VwLnNldFN0cmluZyA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkgc3RyID0gXCJbdW5kZWZpbmVkXVwiO1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvU3RyaW5nKCkgKTtcclxuICAgIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0TnVtYmVyID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvRml4ZWQoMikgKTtcclxuICB9O1xyXG5cclxuICB0ZXh0LnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgY29uc3QgYmFja0JvdW5kcyA9IDAuMDE7XHJcbiAgY29uc3QgbWFyZ2luID0gMC4wMTtcclxuICBjb25zdCB0b3RhbFdpZHRoID0gd2lkdGg7XHJcbiAgY29uc3QgdG90YWxIZWlnaHQgPSAwLjA0ICsgbWFyZ2luICogMjtcclxuXHJcbiAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrR2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0LCBkZXB0aCwgMSwgMSwgMSApO1xyXG4gIGxhYmVsQmFja0dlb21ldHJ5LmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oIHRvdGFsV2lkdGggKiAwLjUgLSBtYXJnaW4sIDAsIDAgKSApO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tNZXNoID0gbmV3IFRIUkVFLk1lc2goIGxhYmVsQmFja0dlb21ldHJ5LCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWxCYWNrTWVzaC5nZW9tZXRyeSwgYmdDb2xvciApO1xyXG5cclxuICBsYWJlbEJhY2tNZXNoLnBvc2l0aW9uLnkgPSAwLjAzO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCBsYWJlbEJhY2tNZXNoICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5wb3NpdGlvbi55ID0gLXRvdGFsSGVpZ2h0ICogMC41O1xyXG5cclxuICBncm91cC5iYWNrID0gbGFiZWxCYWNrTWVzaDtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0UGFyZW50SGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbFRpcCggdGV4dENyZWF0b3IsIHRpcCwgcGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCA9IGRlZmF1bHRQYXJlbnRIZWlnaHQsIHBhcmVudERlcHRoICkge1xyXG4gIGNvbnN0IHRpcFRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUodGlwKTtcclxuICBcclxuICBjb25zdCB0aXBHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICBjb25zdCB3ID0gdGlwVGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICBjb25zdCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0aXBUZXh0LmxheW91dC5oZWlnaHQ7XHJcblxyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnggID0gMC41ICogcGFyZW50V2lkdGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueSA9IC0xLjA1ICogcGFyZW50SGVpZ2h0IC0gaDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi56ID0gcGFyZW50RGVwdGggKiAzO1xyXG4gIHRpcEdyb3VwLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbi8vICBzdWJncm91cC5hZGQodGlwR3JvdXApO1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBUZXh0KTtcclxuLy8gIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBHcm91cDtcclxuXHJcbiAgY29uc3QgcGFkZGVkVyA9IHcgKyAwLjAzLCBwYWRkZWRIID0gaCArIDAuMDM7XHJcbiAgY29uc3QgdGlwUmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KHBhZGRlZFcsIHBhZGRlZEgsIDEsIDEpO1xyXG4gIGNvbnN0IHRpcEJhY2tncm91bmQgPSBuZXcgVEhSRUUuTWVzaCh0aXBSZWN0LCBTaGFyZWRNYXRlcmlhbHMuVE9PTFRJUCk7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi54ID0gMDsgLy9wYWRkZWRXIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnkgPSBoIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnogPSAtcGFyZW50RGVwdGggKiAwLjU7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcEJhY2tncm91bmQpO1xyXG5cclxuICB0aXBUZXh0LnBvc2l0aW9uLnggPSAtMC41ICogdztcclxuICB0aXBUZXh0LnBvc2l0aW9uLnkgPSAtMC41ICogaCArIDAuMDAxNTtcclxuXHJcbiAgdGlwR3JvdXAudXNlckRhdGEudyA9IHc7XHJcbiAgdGlwR3JvdXAudXNlckRhdGEuaCA9IGg7XHJcblxyXG4gIHJldHVybiB0aXBHcm91cDtcclxufVxyXG4iLCIvKiogYmFzaWMgdXRpbGl0eSBmdW5jdGlvbnMgKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xsZXJWaXNpYmxlKGNvbnRyb2wpIHtcclxuICB2YXIgZm9sZGVyID0gY29udHJvbC5mb2xkZXI7XHJcbiAgLy9ub3RlOiB0aGUgYmFzaXMgb24gd2hpY2ggYSBjb250cm9sbGVyIGlzIGNvbnNpZGVyZWQgdmlzaWJsZSByZXZpc2VkIGZvciAnaGVhZGVyJyBvYmplY3RzLlxyXG4gIC8vZm9yIG5vdywgdGhpcyBzaG91bGQgYWxsb3cgaGVhZGVyIGNvbnRyb2xsZXJzIHRvIHVwZGF0ZSB3aGlsZSBmb2xkZXIgaXMgY29sbGFwc2VkLlxyXG4gIC8vb25seSBhcHBsaWVzIHRvIGNoZWNrYm94LCBwZW5kaW5nIGRlc2lnbiByZXZpc2lvbiAmIGZ1bGxlciBpbXBsZW1lbnRhdGlvbi4uLlxyXG4gIFxyXG4gIC8vLS0tLSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgbm8gbG9uZ2VyIHJlbGV2YW50LCBidXQgZW5kaW5nIHVwIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3Mgc2ltaWxhci4uLi5cclxuICAvL2lzSGVhZGVyT2JqZWN0IHdpbGwgYXBwbHkgdG8gdGhlIGFjdHVhbCBjb250cm9sIGFwcGVhcmluZyBpbiB0aGUgZm9sZGVyIGhlYWRlciwgd2hlcmVhc1xyXG4gIC8vaXNTaG93bkluRm9sZGVySGVhZGVyIHdhcyB3aGVuIHN1Y2ggb2JqZWN0cyB3ZXJlbid0IHNvIGZ1bGx5LWZsZWRnZWRcclxuICAvL2lmIChjb250cm9sLmlzU2hvd25JbkZvbGRlckhlYWRlcikgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTsgLy88PDw8PCBzdGlsbCBoaXR0aW5nIGZvbGRlZCBidXR0b24/Pz8gKGFsc28sIHRyeSBucG0gYXVkaXQpXHJcbiAgaWYgKGNvbnRyb2wuaXNIZWFkZXJPYmplY3QpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7XHJcblxyXG4gIC8vWFhYIGhhdmluZyBzb21lIGRlZmluaXRlIGJ1Z3MgZS5nLiBtaXNzaW5nIGV2ZW50cyBvdmVyICdwaWN0dXJlcyAvIG1hdGVyaWFscycgZm9sZGVyIGhlYWRlciBpbiBkZW1vLlxyXG4gIFxyXG4gIGlmICghY29udHJvbC52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcil7XHJcbiAgICBpZiAoZm9sZGVyLmlzQ29sbGFwc2VkKCkgfHwgIWZvbGRlci52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gIH1cclxuICBpZiAoIWZvbGRlci5wYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gZm9sZGVyLnZpc2libGU7XHJcbn1cclxuXHJcbi8qKiBcclxuICogSW52aXNpYmxlIFRIUkVFIG9iamVjdHMgaW5jdXIgc2lnbmlmaWNhbnQgQ1BVIGNvc3QuXHJcbiAqIFRoaXMgYXZvaWRzIHRoYXQgYnkgcmVtb3ZpbmcgdGhlbSBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICogXHJcbiAqIElmIHZpc2libGUgaXMgdHJ1ZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9dHJ1ZSBhbmQgaXMgYSBjaGlsZCBvZiBwYXJlbnQuXHJcbiAqIElmIHZpc2libGUgaXMgZmFsc2UsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPWZhbHNlIGFuZCBpcyByZW1vdmVkIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHkocGFyZW50LCBjaGlsZCwgdmlzaWJsZSkge1xyXG4gICAgY29uc3QgaXNDaGlsZCA9IHBhcmVudC5jaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCk7XHJcbiAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgIC8vbWFrZSBzdXJlIHdlIHVzZSBvcmlnaW5hbCBUSFJFRSBtZXRob2RzIHRoYXQgdGhpcyBsaWJyYXJ5IG92ZXJyaWRlcyAoVE9ETzogcmVmYWN0b3IuLi4pXHJcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZC5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCF2aXNpYmxlICYmIGlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmUuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghcGFyZW50LnZpc2libGUpIGNvbnNvbGUud2Fybihgc2V0VmlzaWJpbGl0eSBjYWxsZWQgb24gY2hpbGQgJHtjaGlsZH0gb2YgaW52aXNpYmxlIHBhcmVudCAke3BhcmVudH1gKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2YgcGFyZW50IGZvbGRlciBpbiB0aGUgZ3VpIGhpZWFyY2h5IGNvbnRhaW5pbmcgYSBnaXZlbiBvYmplY3QuXHJcbiAqIG5iLiBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0IGRpZG4ndCBoYXZlIGEgJ2ZvbGRlcicgcHJvcGVydHkuXHJcbiAqIE5vdywgaXQgaXMgaW50ZW5kZWQgdGhhdCBpdCBzaG91bGQgZWl0aGVyIHJldHVybiBhIGZvbGRlciBpZiBhcHByb3ByaWF0ZSwgb3Igbm90aGluZy5cclxuICogQHBhcmFtIHsqfSBncm91cCBlaXRoZXIgYSBmb2xkZXIsIG9yIGFuIG9iamVjdCB3aG9zZSBwYXJlbnQgaGFzIGEgZm9sZGVyLi4uIGFwb2xvZ2llcywgdGhpcyBpcyBub3QgdGhlIGNsZWFyZXN0IHNwZWMuXHJcbiAqIC4uLiBpbnRlbnRpb24gaXMgdGhhdCBpdCBzaG91bGQgd29yayB3aXRoIGFueSBndWkgZWxlbWVudCwgaW4gcGFydGljdWxhciBhbnkgaGl0T2JqZWN0IGluIGludGVyYWN0aW9uLmpzLi4uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApIHtcclxuICAgIHZhciBmb2xkZXIgPSBnZXRGb2xkZXIoZ3JvdXApO1xyXG4gICAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcikgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICAgIHJldHVybiBmb2xkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoZ3JvdXApIHtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIHJldHVybiBncm91cC5mb2xkZXI7XHJcbiAgICBsZXQgbm9kZSA9IGdyb3VwLnBhcmVudDtcclxuICAgIHdoaWxlICghbm9kZS5mb2xkZXIgJiYgZ3JvdXAucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICByZXR1cm4gbm9kZS5mb2xkZXI7XHJcbn1cclxuXHJcbi8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCb3hGcm9tT2JqZWN0KGJveCwgb2JqKSB7XHJcbiAgY29uc3Qgd29ua3lHZW9tID0gW107XHJcbiAgb2JqLnRyYXZlcnNlKG8gPT4ge1xyXG4gICAgaWYgKG8uZ2VvbWV0cnkgJiYgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZSAhPT0gMykge1xyXG4gICAgICBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgPSBmYWxzZTtcclxuICAgICAgd29ua3lHZW9tLnB1c2goby5nZW9tZXRyeSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgYm94LnNldEZyb21PYmplY3Qob2JqKTtcclxuICB3b25reUdlb20uZm9yRWFjaChnID0+IGcuaXNCdWZmZXJHZW9tZXRyeSA9IHRydWUpO1xyXG4gIHJldHVybiBib3g7XHJcbn1cclxuIiwiLypcclxuICpcdEBhdXRob3Igeno4NSAvIGh0dHA6Ly90d2l0dGVyLmNvbS9ibHVyc3BsaW5lIC8gaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZ1xyXG4gKlx0QGF1dGhvciBjZW50ZXJpb253YXJlIC8gaHR0cDovL3d3dy5jZW50ZXJpb253YXJlLmNvbVxyXG4gKlxyXG4gKlx0U3ViZGl2aXNpb24gR2VvbWV0cnkgTW9kaWZpZXJcclxuICpcdFx0dXNpbmcgTG9vcCBTdWJkaXZpc2lvbiBTY2hlbWVcclxuICpcclxuICpcdFJlZmVyZW5jZXM6XHJcbiAqXHRcdGh0dHA6Ly9ncmFwaGljcy5zdGFuZm9yZC5lZHUvfm1kZmlzaGVyL3N1YmRpdmlzaW9uLmh0bWxcclxuICpcdFx0aHR0cDovL3d3dy5ob2xtZXMzZC5uZXQvZ3JhcGhpY3Mvc3ViZGl2aXNpb24vXHJcbiAqXHRcdGh0dHA6Ly93d3cuY3MucnV0Z2Vycy5lZHUvfmRlY2FybG8vcmVhZGluZ3Mvc3ViZGl2LXNnMDBjLnBkZlxyXG4gKlxyXG4gKlx0S25vd24gSXNzdWVzOlxyXG4gKlx0XHQtIGN1cnJlbnRseSBkb2Vzbid0IGhhbmRsZSBcIlNoYXJwIEVkZ2VzXCJcclxuICovXHJcblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyID0gZnVuY3Rpb24gKCBzdWJkaXZpc2lvbnMgKSB7XHJcblxyXG5cdHRoaXMuc3ViZGl2aXNpb25zID0gKCBzdWJkaXZpc2lvbnMgPT09IHVuZGVmaW5lZCApID8gMSA6IHN1YmRpdmlzaW9ucztcclxuXHJcbn07XHJcblxyXG4vLyBBcHBsaWVzIHRoZSBcIm1vZGlmeVwiIHBhdHRlcm5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUubW9kaWZ5ID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHtcclxuXHJcblx0dmFyIHJlcGVhdHMgPSB0aGlzLnN1YmRpdmlzaW9ucztcclxuXHJcblx0d2hpbGUgKCByZXBlYXRzIC0tID4gMCApIHtcclxuXHJcblx0XHR0aGlzLnNtb290aCggZ2VvbWV0cnkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRnZW9tZXRyeS5jb21wdXRlRmFjZU5vcm1hbHMoKTtcclxuXHRnZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xyXG5cclxufTtcclxuXHJcbiggZnVuY3Rpb24oKSB7XHJcblxyXG5cdC8vIFNvbWUgY29uc3RhbnRzXHJcblx0dmFyIFdBUk5JTkdTID0gISB0cnVlOyAvLyBTZXQgdG8gdHJ1ZSBmb3IgZGV2ZWxvcG1lbnRcclxuXHR2YXIgQUJDID0gWyAnYScsICdiJywgJ2MnIF07XHJcblxyXG5cclxuXHRmdW5jdGlvbiBnZXRFZGdlKCBhLCBiLCBtYXAgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0cmV0dXJuIG1hcFsga2V5IF07XHJcblxyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHByb2Nlc3NFZGdlKCBhLCBiLCB2ZXJ0aWNlcywgbWFwLCBmYWNlLCBtZXRhVmVydGljZXMgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0dmFyIGVkZ2U7XHJcblxyXG5cdFx0aWYgKCBrZXkgaW4gbWFwICkge1xyXG5cclxuXHRcdFx0ZWRnZSA9IG1hcFsga2V5IF07XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHZhciB2ZXJ0ZXhBID0gdmVydGljZXNbIHZlcnRleEluZGV4QSBdO1xyXG5cdFx0XHR2YXIgdmVydGV4QiA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEIgXTtcclxuXHJcblx0XHRcdGVkZ2UgPSB7XHJcblxyXG5cdFx0XHRcdGE6IHZlcnRleEEsIC8vIHBvaW50ZXIgcmVmZXJlbmNlXHJcblx0XHRcdFx0YjogdmVydGV4QixcclxuXHRcdFx0XHRuZXdFZGdlOiBudWxsLFxyXG5cdFx0XHRcdC8vIGFJbmRleDogYSwgLy8gbnVtYmVyZWQgcmVmZXJlbmNlXHJcblx0XHRcdFx0Ly8gYkluZGV4OiBiLFxyXG5cdFx0XHRcdGZhY2VzOiBbXSAvLyBwb2ludGVycyB0byBmYWNlXHJcblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0bWFwWyBrZXkgXSA9IGVkZ2U7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGVkZ2UuZmFjZXMucHVzaCggZmFjZSApO1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlc1sgYSBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHRcdG1ldGFWZXJ0aWNlc1sgYiBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2VuZXJhdGVMb29rdXBzKCB2ZXJ0aWNlcywgZmFjZXMsIG1ldGFWZXJ0aWNlcywgZWRnZXMgKSB7XHJcblxyXG5cdFx0dmFyIGksIGlsLCBmYWNlLCBlZGdlO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IHZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0bWV0YVZlcnRpY2VzWyBpIF0gPSB7IGVkZ2VzOiBbXSB9O1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBmYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBmYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYSwgZmFjZS5iLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5iLCBmYWNlLmMsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmMsIGZhY2UuYSwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3RmFjZSggbmV3RmFjZXMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3RmFjZXMucHVzaCggbmV3IFRIUkVFLkZhY2UzKCBhLCBiLCBjICkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBtaWRwb2ludCggYSwgYiApIHtcclxuXHJcblx0XHRyZXR1cm4gKCBNYXRoLmFicyggYiAtIGEgKSAvIDIgKSArIE1hdGgubWluKCBhLCBiICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3VXYoIG5ld1V2cywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdVdnMucHVzaCggWyBhLmNsb25lKCksIGIuY2xvbmUoKSwgYy5jbG9uZSgpIF0gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHQvLyBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIFN1YmRpdmlzaW9uXHJcblx0VEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUuc21vb3RoID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHsgcmV0dXJuOyAvLyBzanB0IFRFTVAgVE9ET1xyXG5cclxuXHRcdHZhciB0bXAgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdHZhciBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG9sZFV2cztcclxuXHRcdHZhciBuZXdWZXJ0aWNlcywgbmV3RmFjZXMsIG5ld1VWcyA9IFtdO1xyXG5cclxuXHRcdHZhciBuLCBsLCBpLCBpbCwgaiwgaztcclxuXHRcdHZhciBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzO1xyXG5cclxuXHRcdC8vIG5ldyBzdHVmZi5cclxuXHRcdHZhciBzb3VyY2VFZGdlcywgbmV3RWRnZVZlcnRpY2VzLCBuZXdTb3VyY2VWZXJ0aWNlcztcclxuXHJcblx0XHRvbGRWZXJ0aWNlcyA9IGdlb21ldHJ5LnZlcnRpY2VzOyAvLyB7IHgsIHksIHp9XHJcblx0XHRvbGRGYWNlcyA9IGdlb21ldHJ5LmZhY2VzOyAvLyB7IGE6IG9sZFZlcnRleDEsIGI6IG9sZFZlcnRleDIsIGM6IG9sZFZlcnRleDMgfVxyXG5cdFx0b2xkVXZzID0gZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdO1xyXG5cclxuXHRcdHZhciBoYXNVdnMgPSBvbGRVdnMgIT09IHVuZGVmaW5lZCAmJiBvbGRVdnMubGVuZ3RoID4gMDtcclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICogU3RlcCAwOiBQcmVwcm9jZXNzIEdlb21ldHJ5IHRvIEdlbmVyYXRlIGVkZ2VzIExvb2t1cFxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlcyA9IG5ldyBBcnJheSggb2xkVmVydGljZXMubGVuZ3RoICk7XHJcblx0XHRzb3VyY2VFZGdlcyA9IHt9OyAvLyBFZGdlID0+IHsgb2xkVmVydGV4MSwgb2xkVmVydGV4MiwgZmFjZXNbXSAgfVxyXG5cclxuXHRcdGdlbmVyYXRlTG9va3Vwcyggb2xkVmVydGljZXMsIG9sZEZhY2VzLCBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzICk7XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAxLlxyXG5cdFx0ICpcdEZvciBlYWNoIGVkZ2UsIGNyZWF0ZSBhIG5ldyBFZGdlIFZlcnRleCxcclxuXHRcdCAqXHR0aGVuIHBvc2l0aW9uIGl0LlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld0VkZ2VWZXJ0aWNlcyA9IFtdO1xyXG5cdFx0dmFyIG90aGVyLCBjdXJyZW50RWRnZSwgbmV3RWRnZSwgZmFjZTtcclxuXHRcdHZhciBlZGdlVmVydGV4V2VpZ2h0LCBhZGphY2VudFZlcnRleFdlaWdodCwgY29ubmVjdGVkRmFjZXM7XHJcblxyXG5cdFx0Zm9yICggaSBpbiBzb3VyY2VFZGdlcyApIHtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlID0gc291cmNlRWRnZXNbIGkgXTtcclxuXHRcdFx0bmV3RWRnZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMyAvIDg7XHJcblx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRjb25uZWN0ZWRGYWNlcyA9IGN1cnJlbnRFZGdlLmZhY2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdC8vIGNoZWNrIGhvdyBtYW55IGxpbmtlZCBmYWNlcy4gMiBzaG91bGQgYmUgY29ycmVjdC5cclxuXHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiBsZW5ndGggaXMgbm90IDIsIGhhbmRsZSBjb25kaXRpb25cclxuXHRcdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMC41O1xyXG5cdFx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdTdWJkaXZpc2lvbiBNb2RpZmllcjogTnVtYmVyIG9mIGNvbm5lY3RlZCBmYWNlcyAhPSAyLCBpczogJywgY29ubmVjdGVkRmFjZXMsIGN1cnJlbnRFZGdlICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld0VkZ2UuYWRkVmVjdG9ycyggY3VycmVudEVkZ2UuYSwgY3VycmVudEVkZ2UuYiApLm11bHRpcGx5U2NhbGFyKCBlZGdlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IGNvbm5lY3RlZEZhY2VzOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRmYWNlID0gY3VycmVudEVkZ2UuZmFjZXNbIGogXTtcclxuXHJcblx0XHRcdFx0Zm9yICggayA9IDA7IGsgPCAzOyBrICsrICkge1xyXG5cclxuXHRcdFx0XHRcdG90aGVyID0gb2xkVmVydGljZXNbIGZhY2VbIEFCQ1sgayBdIF0gXTtcclxuXHRcdFx0XHRcdGlmICggb3RoZXIgIT09IGN1cnJlbnRFZGdlLmEgJiYgb3RoZXIgIT09IGN1cnJlbnRFZGdlLmIgKSBicmVhaztcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBhZGphY2VudFZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdFZGdlLmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZS5uZXdFZGdlID0gbmV3RWRnZVZlcnRpY2VzLmxlbmd0aDtcclxuXHRcdFx0bmV3RWRnZVZlcnRpY2VzLnB1c2goIG5ld0VkZ2UgKTtcclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGN1cnJlbnRFZGdlLCBuZXdFZGdlKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDIuXHJcblx0XHQgKlx0UmVwb3NpdGlvbiBlYWNoIHNvdXJjZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHR2YXIgYmV0YSwgc291cmNlVmVydGV4V2VpZ2h0LCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0O1xyXG5cdFx0dmFyIGNvbm5lY3RpbmdFZGdlLCBjb25uZWN0aW5nRWRnZXMsIG9sZFZlcnRleCwgbmV3U291cmNlVmVydGV4O1xyXG5cdFx0bmV3U291cmNlVmVydGljZXMgPSBbXTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRWZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG9sZFZlcnRleCA9IG9sZFZlcnRpY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIGFsbCBjb25uZWN0aW5nIGVkZ2VzICh1c2luZyBsb29rdXBUYWJsZSlcclxuXHRcdFx0Y29ubmVjdGluZ0VkZ2VzID0gbWV0YVZlcnRpY2VzWyBpIF0uZWRnZXM7XHJcblx0XHRcdG4gPSBjb25uZWN0aW5nRWRnZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0aWYgKCBuID09IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gMTY7XHJcblxyXG5cdFx0XHR9IGVsc2UgaWYgKCBuID4gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAoIDggKiBuICk7IC8vIFdhcnJlbidzIG1vZGlmaWVkIGZvcm11bGFcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIExvb3AncyBvcmlnaW5hbCBiZXRhIGZvcm11bGFcclxuXHRcdFx0Ly8gYmV0YSA9IDEgLyBuICogKCA1LzggLSBNYXRoLnBvdyggMy84ICsgMS80ICogTWF0aC5jb3MoIDIgKiBNYXRoLiBQSSAvIG4gKSwgMikgKTtcclxuXHJcblx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDEgLSBuICogYmV0YTtcclxuXHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IGJldGE7XHJcblxyXG5cdFx0XHRpZiAoIG4gPD0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlc1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUud2FybignY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlcycpO1xyXG5cclxuXHRcdFx0XHRpZiAoIG4gPT0gMiApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMiBjb25uZWN0aW5nIGVkZ2VzJywgY29ubmVjdGluZ0VkZ2VzICk7XHJcblx0XHRcdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAzIC8gNDtcclxuXHRcdFx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdFx0XHQvLyBzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxO1xyXG5cdFx0XHRcdFx0Ly8gY29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnb25seSAxIGNvbm5lY3RpbmcgZWRnZScgKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAwICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcwIGNvbm5lY3RpbmcgZWRnZXMnICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleCA9IG9sZFZlcnRleC5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKCBzb3VyY2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgbjsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0Y29ubmVjdGluZ0VkZ2UgPSBjb25uZWN0aW5nRWRnZXNbIGogXTtcclxuXHRcdFx0XHRvdGhlciA9IGNvbm5lY3RpbmdFZGdlLmEgIT09IG9sZFZlcnRleCA/IGNvbm5lY3RpbmdFZGdlLmEgOiBjb25uZWN0aW5nRWRnZS5iO1xyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3U291cmNlVmVydGV4LmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0aWNlcy5wdXNoKCBuZXdTb3VyY2VWZXJ0ZXggKTtcclxuXHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAzLlxyXG5cdFx0ICpcdEdlbmVyYXRlIEZhY2VzIGJldHdlZW4gc291cmNlIHZlcnRpY2VzXHJcblx0XHQgKlx0YW5kIGVkZ2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3VmVydGljZXMgPSBuZXdTb3VyY2VWZXJ0aWNlcy5jb25jYXQoIG5ld0VkZ2VWZXJ0aWNlcyApO1xyXG5cdFx0dmFyIHNsID0gbmV3U291cmNlVmVydGljZXMubGVuZ3RoLCBlZGdlMSwgZWRnZTIsIGVkZ2UzO1xyXG5cdFx0bmV3RmFjZXMgPSBbXTtcclxuXHJcblx0XHR2YXIgdXYsIHgwLCB4MSwgeDI7XHJcblx0XHR2YXIgeDMgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg0ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NSA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkRmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gb2xkRmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgdGhlIDMgbmV3IGVkZ2VzIHZlcnRleCBvZiBlYWNoIG9sZCBmYWNlXHJcblxyXG5cdFx0XHRlZGdlMSA9IGdldEVkZ2UoIGZhY2UuYSwgZmFjZS5iLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTIgPSBnZXRFZGdlKCBmYWNlLmIsIGZhY2UuYywgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UzID0gZ2V0RWRnZSggZmFjZS5jLCBmYWNlLmEsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgZmFjZXMuXHJcblxyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZWRnZTEsIGVkZ2UyLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5hLCBlZGdlMSwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYiwgZWRnZTIsIGVkZ2UxICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmMsIGVkZ2UzLCBlZGdlMiApO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgbmV3IHV2J3NcclxuXHJcblx0XHRcdGlmICggaGFzVXZzICkge1xyXG5cclxuXHRcdFx0XHR1diA9IG9sZFV2c1sgaSBdO1xyXG5cclxuXHRcdFx0XHR4MCA9IHV2WyAwIF07XHJcblx0XHRcdFx0eDEgPSB1dlsgMSBdO1xyXG5cdFx0XHRcdHgyID0gdXZbIDIgXTtcclxuXHJcblx0XHRcdFx0eDMuc2V0KCBtaWRwb2ludCggeDAueCwgeDEueCApLCBtaWRwb2ludCggeDAueSwgeDEueSApICk7XHJcblx0XHRcdFx0eDQuc2V0KCBtaWRwb2ludCggeDEueCwgeDIueCApLCBtaWRwb2ludCggeDEueSwgeDIueSApICk7XHJcblx0XHRcdFx0eDUuc2V0KCBtaWRwb2ludCggeDAueCwgeDIueCApLCBtaWRwb2ludCggeDAueSwgeDIueSApICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgzLCB4NCwgeDUgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MCwgeDMsIHg1ICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgxLCB4NCwgeDMgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MiwgeDUsIHg0ICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE92ZXJ3cml0ZSBvbGQgYXJyYXlzXHJcblx0XHRnZW9tZXRyeS52ZXJ0aWNlcyA9IG5ld1ZlcnRpY2VzO1xyXG5cdFx0Z2VvbWV0cnkuZmFjZXMgPSBuZXdGYWNlcztcclxuXHRcdGlmICggaGFzVXZzICkgZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdID0gbmV3VVZzO1xyXG5cclxuXHRcdC8vIGNvbnNvbGUubG9nKCdkb25lJyk7XHJcblxyXG5cdH07XHJcblxyXG59ICkoKTtcclxuIiwidmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBhbkFycmF5XG5cbmZ1bmN0aW9uIGFuQXJyYXkoYXJyKSB7XG4gIHJldHVybiAoXG4gICAgICAgYXJyLkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgJiYgc3RyLmNhbGwoYXJyLmJ1ZmZlcikgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSdcbiAgICB8fCBBcnJheS5pc0FycmF5KGFycilcbiAgKVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBudW10eXBlKG51bSwgZGVmKSB7XG5cdHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJ1xuXHRcdD8gbnVtIFxuXHRcdDogKHR5cGVvZiBkZWYgPT09ICdudW1iZXInID8gZGVmIDogMClcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGR0eXBlKSB7XG4gIHN3aXRjaCAoZHR5cGUpIHtcbiAgICBjYXNlICdpbnQ4JzpcbiAgICAgIHJldHVybiBJbnQ4QXJyYXlcbiAgICBjYXNlICdpbnQxNic6XG4gICAgICByZXR1cm4gSW50MTZBcnJheVxuICAgIGNhc2UgJ2ludDMyJzpcbiAgICAgIHJldHVybiBJbnQzMkFycmF5XG4gICAgY2FzZSAndWludDgnOlxuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlcbiAgICBjYXNlICd1aW50MTYnOlxuICAgICAgcmV0dXJuIFVpbnQxNkFycmF5XG4gICAgY2FzZSAndWludDMyJzpcbiAgICAgIHJldHVybiBVaW50MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0MzInOlxuICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0NjQnOlxuICAgICAgcmV0dXJuIEZsb2F0NjRBcnJheVxuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIHJldHVybiBBcnJheVxuICAgIGNhc2UgJ3VpbnQ4X2NsYW1wZWQnOlxuICAgICAgcmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSID0gdHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnID8gUmVmbGVjdCA6IG51bGxcbnZhciBSZWZsZWN0QXBwbHkgPSBSICYmIHR5cGVvZiBSLmFwcGx5ID09PSAnZnVuY3Rpb24nXG4gID8gUi5hcHBseVxuICA6IGZ1bmN0aW9uIFJlZmxlY3RBcHBseSh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpO1xuICB9XG5cbnZhciBSZWZsZWN0T3duS2V5c1xuaWYgKFIgJiYgdHlwZW9mIFIub3duS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICBSZWZsZWN0T3duS2V5cyA9IFIub3duS2V5c1xufSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldClcbiAgICAgIC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKTtcbiAgfTtcbn0gZWxzZSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyh3YXJuaW5nKSB7XG4gIGlmIChjb25zb2xlICYmIGNvbnNvbGUud2FybikgY29uc29sZS53YXJuKHdhcm5pbmcpO1xufVxuXG52YXIgTnVtYmVySXNOYU4gPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gTnVtYmVySXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5tb2R1bGUuZXhwb3J0cy5vbmNlID0gb25jZTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9uY2UoZW1pdHRlciwgbmFtZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZ1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXJyKSB7XG4gICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKG5hbWUsIHJlc29sdmVyKTtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKCkge1xuICAgICAgaWYgKHR5cGVvZiBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgfTtcblxuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCByZXNvbHZlciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIGlmIChuYW1lICE9PSAnZXJyb3InKSB7XG4gICAgICBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBlcnJvckxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgaGFuZGxlciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsICdlcnJvcicsIGhhbmRsZXIsIGZsYWdzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgbGlzdGVuZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICBlbWl0dGVyLm9uY2UobmFtZSwgbGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbWl0dGVyLm9uKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEV2ZW50VGFyZ2V0IGRvZXMgbm90IGhhdmUgYGVycm9yYCBldmVudCBzZW1hbnRpY3MgbGlrZSBOb2RlXG4gICAgLy8gRXZlbnRFbWl0dGVycywgd2UgZG8gbm90IGxpc3RlbiBmb3IgYGVycm9yYCBldmVudHMgaGVyZS5cbiAgICBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZnVuY3Rpb24gd3JhcExpc3RlbmVyKGFyZykge1xuICAgICAgLy8gSUUgZG9lcyBub3QgaGF2ZSBidWlsdGluIGB7IG9uY2U6IHRydWUgfWAgc3VwcG9ydCBzbyB3ZVxuICAgICAgLy8gaGF2ZSB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXIoYXJnKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJlbWl0dGVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGVtaXR0ZXIpO1xuICB9XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gICAgfVxuICB9XG59XG4iLCIvKiFcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXJcbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbi8vIFRoZSBfaXNCdWZmZXIgY2hlY2sgaXMgZm9yIFNhZmFyaSA1LTcgc3VwcG9ydCwgYmVjYXVzZSBpdCdzIG1pc3Npbmdcbi8vIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKGlzQnVmZmVyKG9iaikgfHwgaXNTbG93QnVmZmVyKG9iaikgfHwgISFvYmouX2lzQnVmZmVyKVxufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiAhIW9iai5jb25zdHJ1Y3RvciAmJiB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopXG59XG5cbi8vIEZvciBOb2RlIHYwLjEwIHN1cHBvcnQuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHkuXG5mdW5jdGlvbiBpc1Nsb3dCdWZmZXIgKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iai5yZWFkRmxvYXRMRSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnNsaWNlID09PSAnZnVuY3Rpb24nICYmIGlzQnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsInZhciB3b3JkV3JhcCA9IHJlcXVpcmUoJ3dvcmQtd3JhcHBlcicpXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpXG52YXIgbnVtYmVyID0gcmVxdWlyZSgnYXMtbnVtYmVyJylcblxudmFyIFhfSEVJR0hUUyA9IFsneCcsICdlJywgJ2EnLCAnbycsICduJywgJ3MnLCAncicsICdjJywgJ3UnLCAnbScsICd2JywgJ3cnLCAneiddXG52YXIgTV9XSURUSFMgPSBbJ20nLCAndyddXG52YXIgQ0FQX0hFSUdIVFMgPSBbJ0gnLCAnSScsICdOJywgJ0UnLCAnRicsICdLJywgJ0wnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWiddXG5cblxudmFyIFRBQl9JRCA9ICdcXHQnLmNoYXJDb2RlQXQoMClcbnZhciBTUEFDRV9JRCA9ICcgJy5jaGFyQ29kZUF0KDApXG52YXIgQUxJR05fTEVGVCA9IDAsIFxuICAgIEFMSUdOX0NFTlRFUiA9IDEsIFxuICAgIEFMSUdOX1JJR0hUID0gMlxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUxheW91dChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0TGF5b3V0KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dExheW91dChvcHQpIHtcbiAgdGhpcy5nbHlwaHMgPSBbXVxuICB0aGlzLl9tZWFzdXJlID0gdGhpcy5jb21wdXRlTWV0cmljcy5iaW5kKHRoaXMpXG4gIHRoaXMudXBkYXRlKG9wdClcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24ob3B0KSB7XG4gIG9wdCA9IHh0ZW5kKHtcbiAgICBtZWFzdXJlOiB0aGlzLl9tZWFzdXJlXG4gIH0sIG9wdClcbiAgdGhpcy5fb3B0ID0gb3B0XG4gIHRoaXMuX29wdC50YWJTaXplID0gbnVtYmVyKHRoaXMuX29wdC50YWJTaXplLCA0KVxuXG4gIGlmICghb3B0LmZvbnQpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHByb3ZpZGUgYSB2YWxpZCBiaXRtYXAgZm9udCcpXG5cbiAgdmFyIGdseXBocyA9IHRoaXMuZ2x5cGhzXG4gIHZhciB0ZXh0ID0gb3B0LnRleHR8fCcnIFxuICB2YXIgZm9udCA9IG9wdC5mb250XG4gIHRoaXMuX3NldHVwU3BhY2VHbHlwaHMoZm9udClcbiAgXG4gIHZhciBsaW5lcyA9IHdvcmRXcmFwLmxpbmVzKHRleHQsIG9wdClcbiAgdmFyIG1pbldpZHRoID0gb3B0LndpZHRoIHx8IDBcblxuICAvL2NsZWFyIGdseXBoc1xuICBnbHlwaHMubGVuZ3RoID0gMFxuXG4gIC8vZ2V0IG1heCBsaW5lIHdpZHRoXG4gIHZhciBtYXhMaW5lV2lkdGggPSBsaW5lcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbGluZSkge1xuICAgIHJldHVybiBNYXRoLm1heChwcmV2LCBsaW5lLndpZHRoLCBtaW5XaWR0aClcbiAgfSwgMClcblxuICAvL3RoZSBwZW4gcG9zaXRpb25cbiAgdmFyIHggPSAwXG4gIHZhciB5ID0gMFxuICB2YXIgbGluZUhlaWdodCA9IG51bWJlcihvcHQubGluZUhlaWdodCwgZm9udC5jb21tb24ubGluZUhlaWdodClcbiAgdmFyIGJhc2VsaW5lID0gZm9udC5jb21tb24uYmFzZVxuICB2YXIgZGVzY2VuZGVyID0gbGluZUhlaWdodC1iYXNlbGluZVxuICB2YXIgbGV0dGVyU3BhY2luZyA9IG9wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGhlaWdodCA9IGxpbmVIZWlnaHQgKiBsaW5lcy5sZW5ndGggLSBkZXNjZW5kZXJcbiAgdmFyIGFsaWduID0gZ2V0QWxpZ25UeXBlKHRoaXMuX29wdC5hbGlnbilcblxuICAvL2RyYXcgdGV4dCBhbG9uZyBiYXNlbGluZVxuICB5IC09IGhlaWdodFxuICBcbiAgLy90aGUgbWV0cmljcyBmb3IgdGhpcyB0ZXh0IGxheW91dFxuICB0aGlzLl93aWR0aCA9IG1heExpbmVXaWR0aFxuICB0aGlzLl9oZWlnaHQgPSBoZWlnaHRcbiAgdGhpcy5fZGVzY2VuZGVyID0gbGluZUhlaWdodCAtIGJhc2VsaW5lXG4gIHRoaXMuX2Jhc2VsaW5lID0gYmFzZWxpbmVcbiAgdGhpcy5feEhlaWdodCA9IGdldFhIZWlnaHQoZm9udClcbiAgdGhpcy5fY2FwSGVpZ2h0ID0gZ2V0Q2FwSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0XG4gIHRoaXMuX2FzY2VuZGVyID0gbGluZUhlaWdodCAtIGRlc2NlbmRlciAtIHRoaXMuX3hIZWlnaHRcbiAgICBcbiAgLy9sYXlvdXQgZWFjaCBnbHlwaFxuICB2YXIgc2VsZiA9IHRoaXNcbiAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLCBsaW5lSW5kZXgpIHtcbiAgICB2YXIgc3RhcnQgPSBsaW5lLnN0YXJ0XG4gICAgdmFyIGVuZCA9IGxpbmUuZW5kXG4gICAgdmFyIGxpbmVXaWR0aCA9IGxpbmUud2lkdGhcbiAgICB2YXIgbGFzdEdseXBoXG4gICAgXG4gICAgLy9mb3IgZWFjaCBnbHlwaCBpbiB0aGF0IGxpbmUuLi5cbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZDsgaSsrKSB7XG4gICAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICAgIHZhciBnbHlwaCA9IHNlbGYuZ2V0R2x5cGgoZm9udCwgaWQpXG4gICAgICBpZiAoZ2x5cGgpIHtcbiAgICAgICAgaWYgKGxhc3RHbHlwaCkgXG4gICAgICAgICAgeCArPSBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpXG5cbiAgICAgICAgdmFyIHR4ID0geFxuICAgICAgICBpZiAoYWxpZ24gPT09IEFMSUdOX0NFTlRFUikgXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpLzJcbiAgICAgICAgZWxzZSBpZiAoYWxpZ24gPT09IEFMSUdOX1JJR0hUKVxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKVxuXG4gICAgICAgIGdseXBocy5wdXNoKHtcbiAgICAgICAgICBwb3NpdGlvbjogW3R4LCB5XSxcbiAgICAgICAgICBkYXRhOiBnbHlwaCxcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBsaW5lOiBsaW5lSW5kZXhcbiAgICAgICAgfSkgIFxuXG4gICAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgICB4ICs9IGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vbmV4dCBsaW5lIGRvd25cbiAgICB5ICs9IGxpbmVIZWlnaHRcbiAgICB4ID0gMFxuICB9KVxuICB0aGlzLl9saW5lc1RvdGFsID0gbGluZXMubGVuZ3RoO1xufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5fc2V0dXBTcGFjZUdseXBocyA9IGZ1bmN0aW9uKGZvbnQpIHtcbiAgLy9UaGVzZSBhcmUgZmFsbGJhY2tzLCB3aGVuIHRoZSBmb250IGRvZXNuJ3QgaW5jbHVkZVxuICAvLycgJyBvciAnXFx0JyBnbHlwaHNcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gbnVsbFxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0gbnVsbFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm5cblxuICAvL3RyeSB0byBnZXQgc3BhY2UgZ2x5cGhcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgJ20nIG9yICd3JyBnbHlwaHNcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgZmlyc3QgZ2x5cGggYXZhaWxhYmxlXG4gIHZhciBzcGFjZSA9IGdldEdseXBoQnlJZChmb250LCBTUEFDRV9JRCkgXG4gICAgICAgICAgfHwgZ2V0TUdseXBoKGZvbnQpIFxuICAgICAgICAgIHx8IGZvbnQuY2hhcnNbMF1cblxuICAvL2FuZCBjcmVhdGUgYSBmYWxsYmFjayBmb3IgdGFiXG4gIHZhciB0YWJXaWR0aCA9IHRoaXMuX29wdC50YWJTaXplICogc3BhY2UueGFkdmFuY2VcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gc3BhY2VcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IHh0ZW5kKHNwYWNlLCB7XG4gICAgeDogMCwgeTogMCwgeGFkdmFuY2U6IHRhYldpZHRoLCBpZDogVEFCX0lELCBcbiAgICB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwXG4gIH0pXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmdldEdseXBoID0gZnVuY3Rpb24oZm9udCwgaWQpIHtcbiAgdmFyIGdseXBoID0gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKVxuICBpZiAoZ2x5cGgpXG4gICAgcmV0dXJuIGdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBUQUJfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1RhYkdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBTUEFDRV9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaFxuICByZXR1cm4gbnVsbFxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5jb21wdXRlTWV0cmljcyA9IGZ1bmN0aW9uKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gdGhpcy5fb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgZm9udCA9IHRoaXMuX29wdC5mb250XG4gIHZhciBjdXJQZW4gPSAwXG4gIHZhciBjdXJXaWR0aCA9IDBcbiAgdmFyIGNvdW50ID0gMFxuICB2YXIgZ2x5cGhcbiAgdmFyIGxhc3RHbHlwaFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogc3RhcnQsXG4gICAgICBlbmQ6IHN0YXJ0LFxuICAgICAgd2lkdGg6IDBcbiAgICB9XG4gIH1cblxuICBlbmQgPSBNYXRoLm1pbih0ZXh0Lmxlbmd0aCwgZW5kKVxuICBmb3IgKHZhciBpPXN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB2YXIgZ2x5cGggPSB0aGlzLmdldEdseXBoKGZvbnQsIGlkKVxuXG4gICAgaWYgKGdseXBoKSB7XG4gICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgIHZhciB4b2ZmID0gZ2x5cGgueG9mZnNldFxuICAgICAgdmFyIGtlcm4gPSBsYXN0R2x5cGggPyBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpIDogMFxuICAgICAgY3VyUGVuICs9IGtlcm5cblxuICAgICAgdmFyIG5leHRQZW4gPSBjdXJQZW4gKyBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgIHZhciBuZXh0V2lkdGggPSBjdXJQZW4gKyBnbHlwaC53aWR0aFxuXG4gICAgICAvL3dlJ3ZlIGhpdCBvdXIgbGltaXQ7IHdlIGNhbid0IG1vdmUgb250byB0aGUgbmV4dCBnbHlwaFxuICAgICAgaWYgKG5leHRXaWR0aCA+PSB3aWR0aCB8fCBuZXh0UGVuID49IHdpZHRoKVxuICAgICAgICBicmVha1xuXG4gICAgICAvL290aGVyd2lzZSBjb250aW51ZSBhbG9uZyBvdXIgbGluZVxuICAgICAgY3VyUGVuID0gbmV4dFBlblxuICAgICAgY3VyV2lkdGggPSBuZXh0V2lkdGhcbiAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgfVxuICAgIGNvdW50KytcbiAgfVxuICBcbiAgLy9tYWtlIHN1cmUgcmlnaHRtb3N0IGVkZ2UgbGluZXMgdXAgd2l0aCByZW5kZXJlZCBnbHlwaHNcbiAgaWYgKGxhc3RHbHlwaClcbiAgICBjdXJXaWR0aCArPSBsYXN0R2x5cGgueG9mZnNldFxuXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IHN0YXJ0LFxuICAgIGVuZDogc3RhcnQgKyBjb3VudCxcbiAgICB3aWR0aDogY3VyV2lkdGhcbiAgfVxufVxuXG4vL2dldHRlcnMgZm9yIHRoZSBwcml2YXRlIHZhcnNcbjtbJ3dpZHRoJywgJ2hlaWdodCcsIFxuICAnZGVzY2VuZGVyJywgJ2FzY2VuZGVyJyxcbiAgJ3hIZWlnaHQnLCAnYmFzZWxpbmUnLFxuICAnY2FwSGVpZ2h0JyxcbiAgJ2xpbmVIZWlnaHQnIF0uZm9yRWFjaChhZGRHZXR0ZXIpXG5cbmZ1bmN0aW9uIGFkZEdldHRlcihuYW1lKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZXh0TGF5b3V0LnByb3RvdHlwZSwgbmFtZSwge1xuICAgIGdldDogd3JhcHBlcihuYW1lKSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSlcbn1cblxuLy9jcmVhdGUgbG9va3VwcyBmb3IgcHJpdmF0ZSB2YXJzXG5mdW5jdGlvbiB3cmFwcGVyKG5hbWUpIHtcbiAgcmV0dXJuIChuZXcgRnVuY3Rpb24oW1xuICAgICdyZXR1cm4gZnVuY3Rpb24gJytuYW1lKycoKSB7JyxcbiAgICAnICByZXR1cm4gdGhpcy5fJytuYW1lLFxuICAgICd9J1xuICBdLmpvaW4oJ1xcbicpKSkoKVxufVxuXG5mdW5jdGlvbiBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpIHtcbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIGdseXBoSWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gIGlmIChnbHlwaElkeCA+PSAwKVxuICAgIHJldHVybiBmb250LmNoYXJzW2dseXBoSWR4XVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBnZXRYSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPFhfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IFhfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldE1HbHlwaChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxNX1dJRFRIUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IE1fV0lEVEhTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRDYXBIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8Q0FQX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBDQVBfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEtlcm5pbmcoZm9udCwgbGVmdCwgcmlnaHQpIHtcbiAgaWYgKCFmb250Lmtlcm5pbmdzIHx8IGZvbnQua2VybmluZ3MubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiAwXG5cbiAgdmFyIHRhYmxlID0gZm9udC5rZXJuaW5nc1xuICBmb3IgKHZhciBpPTA7IGk8dGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2VybiA9IHRhYmxlW2ldXG4gICAgaWYgKGtlcm4uZmlyc3QgPT09IGxlZnQgJiYga2Vybi5zZWNvbmQgPT09IHJpZ2h0KVxuICAgICAgcmV0dXJuIGtlcm4uYW1vdW50XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0QWxpZ25UeXBlKGFsaWduKSB7XG4gIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpXG4gICAgcmV0dXJuIEFMSUdOX0NFTlRFUlxuICBlbHNlIGlmIChhbGlnbiA9PT0gJ3JpZ2h0JylcbiAgICByZXR1cm4gQUxJR05fUklHSFRcbiAgcmV0dXJuIEFMSUdOX0xFRlRcbn1cblxuZnVuY3Rpb24gZmluZENoYXIgKGFycmF5LCB2YWx1ZSwgc3RhcnQpIHtcbiAgc3RhcnQgPSBzdGFydCB8fCAwXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldLmlkID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xXG59IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcGFyc2VCTUZvbnRBc2NpaShkYXRhKSB7XG4gIGlmICghZGF0YSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgcHJvdmlkZWQnKVxuICBkYXRhID0gZGF0YS50b1N0cmluZygpLnRyaW0oKVxuXG4gIHZhciBvdXRwdXQgPSB7XG4gICAgcGFnZXM6IFtdLFxuICAgIGNoYXJzOiBbXSxcbiAgICBrZXJuaW5nczogW11cbiAgfVxuXG4gIHZhciBsaW5lcyA9IGRhdGEuc3BsaXQoL1xcclxcbj98XFxuL2cpXG5cbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgaW4gQk1Gb250IGZpbGUnKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGluZURhdGEgPSBzcGxpdExpbmUobGluZXNbaV0sIGkpXG4gICAgaWYgKCFsaW5lRGF0YSkgLy9za2lwIGVtcHR5IGxpbmVzXG4gICAgICBjb250aW51ZVxuXG4gICAgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ3BhZ2UnKSB7XG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuaWQgIT09ICdudW1iZXInKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgaWQ9TicpXG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuZmlsZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBmaWxlPVwicGF0aFwiJylcbiAgICAgIG91dHB1dC5wYWdlc1tsaW5lRGF0YS5kYXRhLmlkXSA9IGxpbmVEYXRhLmRhdGEuZmlsZVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcnMnIHx8IGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmdzJykge1xuICAgICAgLy8uLi4gZG8gbm90aGluZyBmb3IgdGhlc2UgdHdvIC4uLlxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcicpIHtcbiAgICAgIG91dHB1dC5jaGFycy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5nJykge1xuICAgICAgb3V0cHV0Lmtlcm5pbmdzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0W2xpbmVEYXRhLmtleV0gPSBsaW5lRGF0YS5kYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBzcGxpdExpbmUobGluZSwgaWR4KSB7XG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL1xcdCsvZywgJyAnKS50cmltKClcbiAgaWYgKCFsaW5lKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIHNwYWNlID0gbGluZS5pbmRleE9mKCcgJylcbiAgaWYgKHNwYWNlID09PSAtMSkgXG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm8gbmFtZWQgcm93IGF0IGxpbmUgXCIgKyBpZHgpXG5cbiAgdmFyIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIHNwYWNlKVxuXG4gIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhzcGFjZSArIDEpXG4gIC8vY2xlYXIgXCJsZXR0ZXJcIiBmaWVsZCBhcyBpdCBpcyBub24tc3RhbmRhcmQgYW5kXG4gIC8vcmVxdWlyZXMgYWRkaXRpb25hbCBjb21wbGV4aXR5IHRvIHBhcnNlIFwiIC8gPSBzeW1ib2xzXG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL2xldHRlcj1bXFwnXFxcIl1cXFMrW1xcJ1xcXCJdL2dpLCAnJykgIFxuICBsaW5lID0gbGluZS5zcGxpdChcIj1cIilcbiAgbGluZSA9IGxpbmUubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBzdHIudHJpbSgpLm1hdGNoKCgvKFwiLio/XCJ8W15cIlxcc10rKSsoPz1cXHMqfFxccyokKS9nKSlcbiAgfSlcblxuICB2YXIgZGF0YSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkdCA9IGxpbmVbaV1cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFswXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFsxXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0ID0ge1xuICAgIGtleToga2V5LFxuICAgIGRhdGE6IHt9XG4gIH1cblxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIG91dC5kYXRhW3Yua2V5XSA9IHYuZGF0YTtcbiAgfSlcblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShkYXRhKSB7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gXCJcIlxuXG4gIGlmIChkYXRhLmluZGV4T2YoJ1wiJykgPT09IDAgfHwgZGF0YS5pbmRleE9mKFwiJ1wiKSA9PT0gMClcbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoMSwgZGF0YS5sZW5ndGggLSAxKVxuICBpZiAoZGF0YS5pbmRleE9mKCcsJykgIT09IC0xKVxuICAgIHJldHVybiBwYXJzZUludExpc3QoZGF0YSlcbiAgcmV0dXJuIHBhcnNlSW50KGRhdGEsIDEwKVxufVxuXG5mdW5jdGlvbiBwYXJzZUludExpc3QoZGF0YSkge1xuICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMClcbiAgfSlcbn0iLCJ2YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG52YXIgYW5BcnJheSA9IHJlcXVpcmUoJ2FuLWFycmF5JylcbnZhciBpc0J1ZmZlciA9IHJlcXVpcmUoJ2lzLWJ1ZmZlcicpXG5cbnZhciBDVyA9IFswLCAyLCAzXVxudmFyIENDVyA9IFsyLCAxLCAzXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVF1YWRFbGVtZW50cyhhcnJheSwgb3B0KSB7XG4gICAgLy9pZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IGFuIG91dHB1dCBhcnJheVxuICAgIGlmICghYXJyYXkgfHwgIShhbkFycmF5KGFycmF5KSB8fCBpc0J1ZmZlcihhcnJheSkpKSB7XG4gICAgICAgIG9wdCA9IGFycmF5IHx8IHt9XG4gICAgICAgIGFycmF5ID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnbnVtYmVyJykgLy9iYWNrd2FyZHMtY29tcGF0aWJsZVxuICAgICAgICBvcHQgPSB7IGNvdW50OiBvcHQgfVxuICAgIGVsc2VcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9XG5cbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvcHQudHlwZSA9PT0gJ3N0cmluZycgPyBvcHQudHlwZSA6ICd1aW50MTYnXG4gICAgdmFyIGNvdW50ID0gdHlwZW9mIG9wdC5jb3VudCA9PT0gJ251bWJlcicgPyBvcHQuY291bnQgOiAxXG4gICAgdmFyIHN0YXJ0ID0gKG9wdC5zdGFydCB8fCAwKSBcblxuICAgIHZhciBkaXIgPSBvcHQuY2xvY2t3aXNlICE9PSBmYWxzZSA/IENXIDogQ0NXLFxuICAgICAgICBhID0gZGlyWzBdLCBcbiAgICAgICAgYiA9IGRpclsxXSxcbiAgICAgICAgYyA9IGRpclsyXVxuXG4gICAgdmFyIG51bUluZGljZXMgPSBjb3VudCAqIDZcblxuICAgIHZhciBpbmRpY2VzID0gYXJyYXkgfHwgbmV3IChkdHlwZSh0eXBlKSkobnVtSW5kaWNlcylcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBudW1JbmRpY2VzOyBpICs9IDYsIGogKz0gNCkge1xuICAgICAgICB2YXIgeCA9IGkgKyBzdGFydFxuICAgICAgICBpbmRpY2VzW3ggKyAwXSA9IGogKyAwXG4gICAgICAgIGluZGljZXNbeCArIDFdID0gaiArIDFcbiAgICAgICAgaW5kaWNlc1t4ICsgMl0gPSBqICsgMlxuICAgICAgICBpbmRpY2VzW3ggKyAzXSA9IGogKyBhXG4gICAgICAgIGluZGljZXNbeCArIDRdID0gaiArIGJcbiAgICAgICAgaW5kaWNlc1t4ICsgNV0gPSBqICsgY1xuICAgIH1cbiAgICByZXR1cm4gaW5kaWNlc1xufSIsInZhciBjcmVhdGVMYXlvdXQgPSByZXF1aXJlKCdsYXlvdXQtYm1mb250LXRleHQnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIGNyZWF0ZUluZGljZXMgPSByZXF1aXJlKCdxdWFkLWluZGljZXMnKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIEJhc2UuY2FsbCh0aGlzKVxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0KVxuXG4gIC8vIGFsc28gZG8gYW4gaW5pdGlhbCBzZXR1cC4uLlxuICBpZiAob3B0KSB0aGlzLnVwZGF0ZShvcHQpXG59XG5cbmluaGVyaXRzKFRleHRHZW9tZXRyeSwgQmFzZSlcblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAob3B0KSB7XG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSBjb25zdHJ1Y3RvciBkZWZhdWx0c1xuICBvcHQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vcHQsIG9wdClcblxuICBpZiAoIW9wdC5mb250KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGEgeyBmb250IH0gaW4gb3B0aW9ucycpXG4gIH1cblxuICB0aGlzLmxheW91dCA9IGNyZWF0ZUxheW91dChvcHQpXG5cbiAgLy8gZ2V0IHZlYzIgdGV4Y29vcmRzXG4gIHZhciBmbGlwWSA9IG9wdC5mbGlwWSAhPT0gZmFsc2VcblxuICAvLyB0aGUgZGVzaXJlZCBCTUZvbnQgZGF0YVxuICB2YXIgZm9udCA9IG9wdC5mb250XG5cbiAgLy8gZGV0ZXJtaW5lIHRleHR1cmUgc2l6ZSBmcm9tIGZvbnQgZmlsZVxuICB2YXIgdGV4V2lkdGggPSBmb250LmNvbW1vbi5zY2FsZVdcbiAgdmFyIHRleEhlaWdodCA9IGZvbnQuY29tbW9uLnNjYWxlSFxuXG4gIC8vIGdldCB2aXNpYmxlIGdseXBoc1xuICB2YXIgZ2x5cGhzID0gdGhpcy5sYXlvdXQuZ2x5cGhzLmZpbHRlcihmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHJldHVybiBiaXRtYXAud2lkdGggKiBiaXRtYXAuaGVpZ2h0ID4gMFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdmlzaWJsZSBnbHlwaHMgZm9yIGNvbnZlbmllbmNlXG4gIHRoaXMudmlzaWJsZUdseXBocyA9IGdseXBoc1xuXG4gIC8vIGdldCBjb21tb24gdmVydGV4IGRhdGFcbiAgdmFyIHBvc2l0aW9ucyA9IHZlcnRpY2VzLnBvc2l0aW9ucyhnbHlwaHMpXG4gIHZhciB1dnMgPSB2ZXJ0aWNlcy51dnMoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSlcbiAgdmFyIGluZGljZXMgPSBjcmVhdGVJbmRpY2VzKFtdLCB7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIHRoaXMuc2V0SW5kZXgoaW5kaWNlcylcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwb3NpdGlvbnMsIDIpKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHV2cywgMikpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICAvLyBlbmFibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHZhciBwYWdlcyA9IHZlcnRpY2VzLnBhZ2VzKGdseXBocylcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGFnZScsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocGFnZXMsIDEpKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIG5ld2xpbmUgPSAvXFxuL1xudmFyIG5ld2xpbmVDaGFyID0gJ1xcbidcbnZhciB3aGl0ZXNwYWNlID0gL1xccy9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih0ZXh0LCBvcHQpIHtcbiAgICB2YXIgbGluZXMgPSBtb2R1bGUuZXhwb3J0cy5saW5lcyh0ZXh0LCBvcHQpXG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhsaW5lLnN0YXJ0LCBsaW5lLmVuZClcbiAgICB9KS5qb2luKCdcXG4nKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5saW5lcyA9IGZ1bmN0aW9uIHdvcmR3cmFwKHRleHQsIG9wdCkge1xuICAgIG9wdCA9IG9wdHx8e31cblxuICAgIC8vemVybyB3aWR0aCByZXN1bHRzIGluIG5vdGhpbmcgdmlzaWJsZVxuICAgIGlmIChvcHQud2lkdGggPT09IDAgJiYgb3B0Lm1vZGUgIT09ICdub3dyYXAnKSBcbiAgICAgICAgcmV0dXJuIFtdXG5cbiAgICB0ZXh0ID0gdGV4dHx8JydcbiAgICB2YXIgd2lkdGggPSB0eXBlb2Ygb3B0LndpZHRoID09PSAnbnVtYmVyJyA/IG9wdC53aWR0aCA6IE51bWJlci5NQVhfVkFMVUVcbiAgICB2YXIgc3RhcnQgPSBNYXRoLm1heCgwLCBvcHQuc3RhcnR8fDApXG4gICAgdmFyIGVuZCA9IHR5cGVvZiBvcHQuZW5kID09PSAnbnVtYmVyJyA/IG9wdC5lbmQgOiB0ZXh0Lmxlbmd0aFxuICAgIHZhciBtb2RlID0gb3B0Lm1vZGVcblxuICAgIHZhciBtZWFzdXJlID0gb3B0Lm1lYXN1cmUgfHwgbW9ub3NwYWNlXG4gICAgaWYgKG1vZGUgPT09ICdwcmUnKVxuICAgICAgICByZXR1cm4gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKVxuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSlcbn1cblxuZnVuY3Rpb24gaWR4T2YodGV4dCwgY2hyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIGlkeCA9IHRleHQuaW5kZXhPZihjaHIsIHN0YXJ0KVxuICAgIGlmIChpZHggPT09IC0xIHx8IGlkeCA+IGVuZClcbiAgICAgICAgcmV0dXJuIGVuZFxuICAgIHJldHVybiBpZHhcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNocikge1xuICAgIHJldHVybiB3aGl0ZXNwYWNlLnRlc3QoY2hyKVxufVxuXG5mdW5jdGlvbiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgbGluZXMgPSBbXVxuICAgIHZhciBsaW5lU3RhcnQgPSBzdGFydFxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kICYmIGk8dGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hyID0gdGV4dC5jaGFyQXQoaSlcbiAgICAgICAgdmFyIGlzTmV3bGluZSA9IG5ld2xpbmUudGVzdChjaHIpXG5cbiAgICAgICAgLy9JZiB3ZSd2ZSByZWFjaGVkIGEgbmV3bGluZSwgdGhlbiBzdGVwIGRvd24gYSBsaW5lXG4gICAgICAgIC8vT3IgaWYgd2UndmUgcmVhY2hlZCB0aGUgRU9GXG4gICAgICAgIGlmIChpc05ld2xpbmUgfHwgaT09PWVuZC0xKSB7XG4gICAgICAgICAgICB2YXIgbGluZUVuZCA9IGlzTmV3bGluZSA/IGkgOiBpKzFcbiAgICAgICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgbGluZVN0YXJ0LCBsaW5lRW5kLCB3aWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobWVhc3VyZWQpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmVTdGFydCA9IGkrMVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpIHtcbiAgICAvL0EgZ3JlZWR5IHdvcmQgd3JhcHBlciBiYXNlZCBvbiBMaWJHRFggYWxnb3JpdGhtXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbGliZ2R4L2xpYmdkeC9ibG9iL21hc3Rlci9nZHgvc3JjL2NvbS9iYWRsb2dpYy9nZHgvZ3JhcGhpY3MvZzJkL0JpdG1hcEZvbnRDYWNoZS5qYXZhXG4gICAgdmFyIGxpbmVzID0gW11cblxuICAgIHZhciB0ZXN0V2lkdGggPSB3aWR0aFxuICAgIC8vaWYgJ25vd3JhcCcgaXMgc3BlY2lmaWVkLCB3ZSBvbmx5IHdyYXAgb24gbmV3bGluZSBjaGFyc1xuICAgIGlmIChtb2RlID09PSAnbm93cmFwJylcbiAgICAgICAgdGVzdFdpZHRoID0gTnVtYmVyLk1BWF9WQUxVRVxuXG4gICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgLy9nZXQgbmV4dCBuZXdsaW5lIHBvc2l0aW9uXG4gICAgICAgIHZhciBuZXdMaW5lID0gaWR4T2YodGV4dCwgbmV3bGluZUNoYXIsIHN0YXJ0LCBlbmQpXG5cbiAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBzdGFydCBvZiBsaW5lXG4gICAgICAgIHdoaWxlIChzdGFydCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKCB0ZXh0LmNoYXJBdChzdGFydCkgKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgc3RhcnQrK1xuICAgICAgICB9XG5cbiAgICAgICAgLy9kZXRlcm1pbmUgdmlzaWJsZSAjIG9mIGdseXBocyBmb3IgdGhlIGF2YWlsYWJsZSB3aWR0aFxuICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBuZXdMaW5lLCB0ZXN0V2lkdGgpXG5cbiAgICAgICAgdmFyIGxpbmVFbmQgPSBzdGFydCArIChtZWFzdXJlZC5lbmQtbWVhc3VyZWQuc3RhcnQpXG4gICAgICAgIHZhciBuZXh0U3RhcnQgPSBsaW5lRW5kICsgbmV3bGluZUNoYXIubGVuZ3RoXG5cbiAgICAgICAgLy9pZiB3ZSBoYWQgdG8gY3V0IHRoZSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBuZXdsaW5lLi4uXG4gICAgICAgIGlmIChsaW5lRW5kIDwgbmV3TGluZSkge1xuICAgICAgICAgICAgLy9maW5kIGNoYXIgdG8gYnJlYWsgb25cbiAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQpKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5lRW5kID09PSBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPiBzdGFydCArIG5ld2xpbmVDaGFyLmxlbmd0aCkgbmV4dFN0YXJ0LS1cbiAgICAgICAgICAgICAgICBsaW5lRW5kID0gbmV4dFN0YXJ0IC8vIElmIG5vIGNoYXJhY3RlcnMgdG8gYnJlYWssIHNob3cgYWxsLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBsaW5lRW5kXG4gICAgICAgICAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCAtIG5ld2xpbmVDaGFyLmxlbmd0aCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5lRW5kID49IHN0YXJ0KSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbGluZUVuZCwgdGVzdFdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnRcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbi8vZGV0ZXJtaW5lcyB0aGUgdmlzaWJsZSBudW1iZXIgb2YgZ2x5cGhzIHdpdGhpbiBhIGdpdmVuIHdpZHRoXG5mdW5jdGlvbiBtb25vc3BhY2UodGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgZ2x5cGhzID0gTWF0aC5taW4od2lkdGgsIGVuZC1zdGFydClcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnQrZ2x5cGhzXG4gICAgfVxufSIsIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QUFDQSxhQUFTLFFBQVQsR0FBb0IsV0FBcEI7QUFDQSxhQUFTLEtBQVQsR0FBaUIsUUFBakI7QUFDQSxRQUFLLE1BQUwsRUFBYyxTQUFTLGFBQVQsQ0FBd0IsQ0FBeEIsSUFBOEIsTUFBOUI7O0FBRWQ7QUFFQSxHQW5QRDtBQXFQQSxDQTVWRDs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICogXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLiBcclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUiBcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1IgXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsIFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcbiAgICBcclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpOyBcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgLy9tb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICBpZiAoIXdpZGUpIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIGVsc2Uge1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMC43NTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueSA9IDAuMDE7IC8vWFhYIG1hZ2ljIG51bWJlclxyXG4gIH1cclxuXHJcbiAgdmFyIG1hdGVyaWFsO1xyXG4gIGlmIChpbWFnZS5pc01hdGVyaWFsKSB7XHJcbiAgICBtYXRlcmlhbCA9IGltYWdlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIG1hdGVyaWFsKTtcclxuICB9XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gIC8vYnV0dG9uIGxhYmVsIHJlbW92ZWQ7IG1pZ2h0IHdhbnQgb3B0aW9ucyBsaWtlIGEgaG92ZXIgbGFiZWwgaW4gZnV0dXJlLlxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBpZiAod2lkZSkgZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAvL1RPRE86IGRyYWcgYW5kIGhvdmVyXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnaG92ZXJpbmcnLCBoYW5kbGVIb3ZlciApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZVByZXNzaW5nICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGxldCBob3ZlckZ1bmMgPSB1bmRlZmluZWQ7XHJcbiAgLy8gSSBtaWdodCB5ZXQgZGVjaWRlIHRvIGNoYW5nZSB0aGlzIGludGVyZmFjZS5cclxuICAvLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgbmFtZSwgbWlnaHQgd2FudCB0byBhZGQgbGlzdGVuZXJzIHRvIGV2ZW50XHJcbiAgLy8gcmF0aGVyIHRoYW4ganVzdCBzZXQgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgZ3JvdXAub25Ib3ZlciA9IGYgPT4ge1xyXG4gICAgaG92ZXJGdW5jID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZ3JvdXAub25QcmVzc2luZyA9IGYgPT4ge1xyXG4gICAgcHJlc3NpbmcgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBmdW5jdGlvbiBoYW5kbGVIb3ZlciggcCApe1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAoaG92ZXJGdW5jKSBob3ZlckZ1bmMocCk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vaXQgc2hvdWxkIGJlIHRoYXQgdGhlIGNoZWNrcyBpbiBpbmRleC5qcyBtZWFuIHRoYXQgbWV0aG9kcyBkb24ndCBnZXQgY2FsbGVkIG9uIGludmlzaWJsZVxyXG4gICAgLy9vYmplY3RzLCByZW5kZXJpbmcgdGhlc2UgdGVzdHMgcmVkdW5kYW50Li4uIGhvd2V2ZXIsIHRoYXQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlIGNhc2UuXHJcbiAgICAvL2V4cGVyaWVuY2VkIHNvbWUgYnVncyBwYXJ0aWN1bGFybHkgd2l0aCAnbW9kYWwgZWRpdG9yJyB0eXBlIHBhbmVscy5cclxuICAgIC8vVE9ETzogZWl0aGVyIG1ha2Ugc3VyZSBpbnZpc2libGUgb2JqZWN0cyBhcmVuJ3QgY2FsbGVkIGluIHRoZSBmaXJzdCBwbGFjZSxcclxuICAgIC8vb3IgbWFrZSBzdXJlIGFsbCB0eXBlcyBvZiBvYmplY3QgZG8gdGhpcyBtb3JlIHRob3JvdWdoIHZpc2liaWxpdHkgY2hlY2suLi5cclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKG9iamVjdCkgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXShwKTtcclxuICAgIGlmIChmdW5jKSBmdW5jKHApO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL2NvbXB1dGUgeCAmIHkgYXMgbm9ybWFsaXNlZCBjb29yZGluYXRlcyBmcm9tIHAucG9pbnRcclxuICAvL2NvdWxkIGNvbnNpZGVyIG1vdmluZyB0aGlzIGNvbXB1dGF0aW9uIGludG8gaW50ZXJhY3Rpb24uanMgcGVyZm9ybVN0YXRlRXZlbnRzKClcclxuICBmdW5jdGlvbiBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwb2ludCkge1xyXG4gICAgY29uc3QgcCA9IGhpdHNjYW5Wb2x1bWUud29ybGRUb0xvY2FsKHBvaW50KTtcclxuICAgIHAueCAvPSBCVVRUT05fV0lEVEg7XHJcbiAgICBwLnkgLz0gQlVUVE9OX0hFSUdIVDtcclxuICAgIHAueSArPSAwLjU7XHJcbiAgICBwLnggPSBNYXRoLm1heChNYXRoLm1pbihwLngsIDEpLCAwKTtcclxuICAgIHAueSA9IE1hdGgubWF4KE1hdGgubWluKHAueSwgMSksIDApO1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVQcmVzc2luZyggcCApIHtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIC8vY29uc29sZS5sb2coYHByZXNzaW5nIGF0ICgke3BvaW50Lnh9LCAke3BvaW50Lnl9KWApOyAvL2ZpcnN0IGluc3RhbmNlIG9mICdwcmVzc2luZycgaXMgYWx3YXlzIGF0ICgxLCAxKVxyXG4gICAgLy9uYiwgbGlrZWx5IHRvIG5lZWQgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIGR1YWwgd2llbGRpbmdcclxuICAgIGlmIChwcmVzc2luZykgcHJlc3NpbmcocCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmICghbWF0ZXJpYWwuY29sb3IpIHJldHVybjtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhDQ0NDQ0MgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKiBcclxuICogR3JpZCBvZiBidXR0b25zIHdpdGggaW1hZ2VzIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgaW1hZ2VidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7Y3JlYXRlVGV4dExhYmVsLCBjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0cywgLy8gYXJyYXkgb2Yge2Z1bmMsIGltYWdlIHwgdGV4dCwgdGlwKG9wdGlvbmFsKSwgcmVsZWFzZShvcHRpb25hbCl9XHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgcm93SGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNvbHVtbnMgPSA0XHJcbn0gPSB7fSApe1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWFyZ2luID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDM7XHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gKHdpZHRoIC0gbWFyZ2luKSAqICgxL2NvbHVtbnMpO1xyXG4gIC8vVE9ETzogYWRkIHNldFJvd0hlaWdodCBtZXRob2RcclxuICBsZXQgQlVUVE9OX0hFSUdIVCA9IHJvd0hlaWdodCA+IDAgPyByb3dIZWlnaHQgOiBCVVRUT05fV0lEVEg7XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvbmdyaWRcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtvYmplY3RzfV1gO1xyXG4gIFxyXG4gIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwob2JqZWN0cy5sZW5ndGggLyBjb2x1bW5zKTtcclxuICBsZXQgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGdyb3VwLnNldFJvd0hlaWdodCA9IGggPT4ge1xyXG4gICAgcm93SGVpZ2h0ID0gQlVUVE9OX0hFSUdIVCA9IGg7XHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG4gICAgbGF5b3V0QnV0dG9ucygpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGZhbHNlO1xyXG4gIGxldCBsYXN0UHJlc3NlZCA9IG51bGw7XHJcbiAgbGV0IGxhc3RQcmVzc2VkQ29sO1xyXG4gIGdyb3VwLmhpZ2hsaWdodExhc3RQcmVzc2VkID0gKGNvbCA9IDB4MzM1NUVFKSA9PiB7XHJcbiAgICAgIGhpZ2hsaWdodExhc3RQcmVzc2VkID0gY29sICE9PSBmYWxzZTtcclxuICAgICAgbGFzdFByZXNzZWRDb2wgPSBjb2w7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgXHJcbiAgbGV0IHBhbmVsLCBncmFiSW50ZXJhY3Rpb24sIGJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgbGF5b3V0QnV0dG9ucygpO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGluaXRQYW5lbCgpIHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIHBhbmVsLmFkZChjb250cm9sbGVySUQpO1xyXG4gICAgXHJcbiAgICBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+Z3JvdXAucmVtb3ZlKGIpKTtcclxuICAgIGJ1dHRvbnMgPSBbXTtcclxuICAgIGdyb3VwLmd1aUNoaWxkcmVuID0gYnV0dG9ucztcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gbGF5b3V0QnV0dG9ucygpIHtcclxuICAgIGluaXRQYW5lbCgpO1xyXG4gICAgLy9UT0RPOiBwYWRkaW5nXHJcbiAgICBjb25zdCBidXR0b25XUGFkZGVkID0gQlVUVE9OX1dJRFRIICogMC45OSwgYnV0dG9uSFBhZGRlZCA9IEJVVFRPTl9IRUlHSFQgKiAwLjk5O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBidXR0b25XUGFkZGVkLCBidXR0b25IUGFkZGVkLCAxLCAxICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggYnV0dG9uV1BhZGRlZCAvIDIsIC1idXR0b25IUGFkZGVkIC8gMiwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IHRvZ2dsZXMgcmF0aGVyIHRoYW4gdHJpZ2dlcnMuLi5cclxuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFvYmouaW1hZ2UgJiYgIW9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN1Ymdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vbm90ZTogcmVkdWNpbmcgbmVzdGluZyBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxyXG4gICAgICAgIHN1Ymdyb3VwLmd1aVR5cGUgPSBcImltYWdlQnV0dG9uR3JpZEVsZW1lbnRcIjtcclxuICAgICAgICBncm91cC5hZGQoc3ViZ3JvdXApO1xyXG4gICAgICAgIGJ1dHRvbnMucHVzaChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbCA9IGkgJSBjb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IE1hdGguZmxvb3IoaSAvIGNvbHVtbnMpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi54ID0gKDIqTGF5b3V0LlBBTkVMX01BUkdJTikgKyBCVVRUT05fV0lEVEggKiBjb2w7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueSA9IChoZWlnaHQvMikgLUJVVFRPTl9IRUlHSFQgKiByb3c7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuXHJcbiAgICAgICAgLy8gIGhpdHNjYW4gdm9sdW1lLlxyXG4gICAgICAgIC8vIFRoaXMgbWF0ZXJpYWwgY291bGQgcHJvYmFibHkgYmUgcmV1c2VkLlxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG9iai5pbWFnZSkgYXBwbHlJbWFnZVRvTWF0ZXJpYWwob2JqLmltYWdlLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgaWYgKG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUob2JqLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyKkxheW91dC5HUklEX0JVVFRPTl9NQVJHSU47XHJcbiAgICAgICAgICAgIGxldCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgaWYgKHcgPiBCVVRUT05fV0lEVEggLSBtYXJnaW4pIHtcclxuICAgICAgICAgICAgICAgIHRleHQuY29uc3RyYWluQm91bmRzKEJVVFRPTl9XSURUSCAtIG1hcmdpbiwgQlVUVE9OX0hFSUdIVCAtIG1hcmdpbik7IC8vPC0tXHJcbiAgICAgICAgICAgICAgICBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJncm91cC5hZGQodGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnggPSBvYmoudGV4dFggfHwgMC41ICogKEJVVFRPTl9XSURUSCAtIHcpO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnkgPSBvYmoudGV4dFkgfHwgLTAuNSAqIEJVVFRPTl9IRUlHSFQgLSBoO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICAgICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgICAgICAvL2J1dHRvbiBsYWJlbCAmIGRlc2NyaXB0b3IgbGFiZWwgcmVtb3ZlZC5cclxuICAgICAgICAvL1Rvb2x0aXAgdGV4dCBvcHRpb24gYWRkZWQuICBNaWdodCB3YW50IHRvIGJlIGFibGUgdG8gcGFzcyBpbiByaWNoZXIgdGhpbmdzLi4uXHJcbiAgICAgICAgLy9tYXliZSBhbiBhcmJpdHJhcnkgVEhSRUUgb2JqZWN0IHdvdWxkIHdvcmsgd2VsbC4uLlxyXG4gICAgICAgIGlmIChvYmoudGlwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcFRleHQgPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCBvYmoudGlwLCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL3N1Ymdyb3VwLmFkZCh0aXBUZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG4gICAgICAgIHN1Ymdyb3VwLmFkZCggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIHBhbmVsLmFkZChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgICAgICAgICBpZiggc3ViZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL1RPRE86IHN0YW5kYXJkaXNlIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gY2FsbGJhY2tzXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZnVuYygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZXJyb3IgPSBlIHx8ICd1bmRlZmluZWQgZXhjZXB0aW9uJztcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0UHJlc3NlZCA9IG9iajtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gICAgICAgICAgICBpZiAob2JqLnJlbGVhc2UpIG9iai5yZWxlYXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcXVpY2sgY29sb3IgaGFjay4uLlxyXG4gICAgICAgIGNvbnN0IGhvdmVyQ29sID0gb2JqLnRleHQgPyAweDg4OCA6IDB4RkZGRkZGO1xyXG4gICAgICAgIGNvbnN0IG5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IGhvdmVyQ29sIDogbm9Ib3ZlckNvbCApO1xyXG4gICAgICAgICAgICBpZiAoc3ViZ3JvdXAudGlwVGV4dCkgc2V0VmlzaWJpbGl0eShzdWJncm91cCwgc3ViZ3JvdXAudGlwVGV4dCwgaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICAgIGlmIChvYmouZXJyb3IpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhBQTMzMzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3KCk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgc3ViZ3JvdXAuaGl0c2NhbiA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBtYWtpbmcgdGhpcyBzaW5nbGUgZWxlbWVudCByYXRoZXIgdGhhbiBhcnJheSxcclxuICAgICAgICAvL3RoYXQgbWVhbnMgdGhlc2UgJ3N1Ymdyb3VwJyBidXR0b25zIGFyZW4ndCBhY3RpbmcgZXhhY3RseSBhcyBub3JtYWwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzXHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5oaXRzY2FuID0gYnV0dG9ucy5tYXAoYj0+Yi5oaXRzY2FuKTsvLy5wdXNoKHBhbmVsKTtcclxuICAgIGdyb3VwLmhpdHNjYW4ucHVzaChwYW5lbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpIHtcclxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGI9PmIudXBkYXRlVmlldygpKTtcclxuICB9XHJcbiAgXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT57XHJcbiAgICAgICAgYi5pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICAvL2ludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVTbGlkZXIgZnJvbSAnLi9zbGlkZXInO1xyXG5pbXBvcnQgY3JlYXRlQ2hlY2tib3ggZnJvbSAnLi9jaGVja2JveCc7XHJcbmltcG9ydCBjcmVhdGVCdXR0b24gZnJvbSAnLi9idXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlRm9sZGVyIGZyb20gJy4vZm9sZGVyJztcclxuaW1wb3J0IGNyZWF0ZURyb3Bkb3duIGZyb20gJy4vZHJvcGRvd24nO1xyXG4vL1BKVDogSSdkIHJhdGhlciBpbmplY3QgY3VzdG9tIGV4dGVuc2lvbnMgbGlrZSB0aGlzLCBidXQgd2lsbCB3b3JrIHRoYXQgb3V0IGxhdGVyLlxyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlS2V5Ym9hcmQgZnJvbSAnLi9rZXlib2FyZCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0Ym94IGZyb20gJy4vdGV4dGJveCc7XHJcbmltcG9ydCBjcmVhdGVDb2xvclBpY2tlciBmcm9tICcuL2NvbG9ycGlja2VyJztcclxuaW1wb3J0ICogYXMgU0RGVGV4dCBmcm9tICcuL3NkZnRleHQnO1xyXG5pbXBvcnQgeyBpc0NvbnRyb2xsZXJWaXNpYmxlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGdsb2JhbEV2ZW50cyB9IGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuY29uc3QgR1VJVlIgPSAoZnVuY3Rpb24gREFUR1VJVlIoKXtcclxuXHJcbiAgLypcclxuICAgIFNERiBmb250XHJcbiAgKi9cclxuICBjb25zdCB0ZXh0Q3JlYXRvciA9IFNERlRleHQuY3JlYXRvcigpO1xyXG5cclxuXHJcbiAgLypcclxuICAgIExpc3RzLlxyXG4gICAgSW5wdXRPYmplY3RzIGFyZSB0aGluZ3MgbGlrZSBWSVZFIGNvbnRyb2xsZXJzLCBjYXJkYm9hcmQgaGVhZHNldHMsIGV0Yy5cclxuICAgIENvbnRyb2xsZXJzIGFyZSB0aGUgREFUIEdVSSBzbGlkZXJzLCBjaGVja2JveGVzLCBldGMuXHJcbiAgKi9cclxuICBjb25zdCBpbnB1dE9iamVjdHMgPSBbXTtcclxuICBjb25zdCBjb250cm9sbGVycyA9IFtdO1xyXG5cclxuICAvKlxyXG4gICAgRnVuY3Rpb25zIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY29udHJvbGxlciBpcyB2aXNpYmxlIChieSB3aGljaCB3ZVxyXG4gICAgbWVhbiBub3QgaGlkZGVuLCBub3QgJ3Zpc2libGUnIGluIHRlcm1zIG9mIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gZXRjKSwgYW5kXHJcbiAgICBmb3IgcmV0cmlldmluZyB0aGUgbGlzdCBvZiB2aXNpYmxlIGhpdHNjYW5PYmplY3RzIGR5bmFtaWNhbGx5LlxyXG4gICAgVGhpcyBtaWdodCBiZW5lZml0IGZyb20gc29tZSBjYWNoaW5nIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2l0aCBsYXJnZSBjb21wbGV4IEdVSXMuXHJcbiAgICBJIGhhdmVuJ3QgbWVhc3VyZWQgdGhlIGltcGFjdCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gZXRjLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkge1xyXG4gICAgLy8gbm90IHRlcnJpYmx5IGVmZmljaWVudFxyXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJzLmZpbHRlciggaXNDb250cm9sbGVyVmlzaWJsZSApO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSB7XHJcbiAgICAvL1hYWCBXQVJOSU5HOjo6XHJcbiAgICAvL3RoZXJlIGNvdWxkIGV4aXN0IHNpdHVhdGlvbnMgaW4gd2hpY2ggbWVtYmVycyBvZiBoaXRzY2FuIGZvciBhIHZpc2libGUgY29udHJvbGxlciBhcmUgbm90IHRoZW1zZWx2ZXMgdmlzaWJsZS5cclxuICAgIC8vdGhpcyBjYW4gaGFwcGVuIGZvciBlZyBpZiB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBwYXJ0aWN1bGFyIGhpdHNjYW4gaXMgaW4gYW4gaW52aXNpYmxlIG1vZGFsIGVkaXRvci5cclxuICAgIC8vd2UgY291bGQgY2hlY2sgdGhhdCwgYWRkaW5nIGEgbW9yZSByb2J1c3QgZmlsdGVyIHRvIGVhY2ggaGl0c2NhbiBhcnJheS4uLiBmb3Igbm93LCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcclxuICAgIC8vY29udHJvbGxlcnMgdG8gZWl0aGVyIG9ubHkgcmV0dXJuIGhpdHNjYW4gb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlLCBvciB0byBzZXQgJ3Zpc2libGUnIGV4cGxpY2l0bHkuXHJcbiAgICBjb25zdCB0bXAgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKS5tYXAoIG8gPT4geyByZXR1cm4gby5oaXRzY2FuLmZpbHRlcihoID0+IGgudmlzaWJsZSk7IH0gKVxyXG4gICAgcmV0dXJuIHRtcC5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgbGV0IG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGxldCBtb3VzZVJlbmRlcmVyID0gdW5kZWZpbmVkO1xyXG4gIGxldCBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkOyAvL2tlZXAgdHJhY2sgc28gdGhhdCB3ZSBkb24ndCBhdHRhY2ggbXVsdGlwbGUgZXZlbnRzIChwYXJ0aWN1bGFybHkgd2hlbiByZXNpemluZyB3aW5kb3cpXHJcbiAgXHJcbiAgbGV0IGF1dG9VcGRhdGUgPSB0cnVlO1xyXG5cclxuICBmdW5jdGlvbiBlbmFibGVNb3VzZSggY2FtZXJhLCByZW5kZXJlciApe1xyXG4gICAgbW91c2VFbmFibGVkID0gdHJ1ZTtcclxuICAgIG1vdXNlUmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgIG1vdXNlSW5wdXQubW91c2VDYW1lcmEgPSBjYW1lcmE7XHJcbiAgICBpZiAoY2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSB7XHJcbiAgICAgIGlmICghb25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSBmPT5mLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMub24oJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5sYXNlcjtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gZGlzYWJsZU1vdXNlKCl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgVGhlIGRlZmF1bHQgbGFzZXIgcG9pbnRlciBjb21pbmcgb3V0IG9mIGVhY2ggSW5wdXRPYmplY3QuXHJcbiAgKi9cclxuICBjb25zdCBsYXNlck1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjoweDU1YWFmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0pO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUxhc2VyKCl7XHJcbiAgICBjb25zdCBnID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBnLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDAsMCwwXSkpKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoKSApO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygwLDAsMCkgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTGluZSggZywgbGFzZXJNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBIFwiY3Vyc29yXCIsIGVnIHRoZSBiYWxsIHRoYXQgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHlvdXIgbGFzZXIuXHJcbiAgKi9cclxuICBjb25zdCBjdXJzb3JNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg0NDQ0NDQsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9ICk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKCl7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgwLjAwNiwgNCwgNCApLCBjdXJzb3JNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBnZW5lcmljIElucHV0IHR5cGUuXHJcbiAgICBUYWtlcyBhbnkgVEhSRUUuT2JqZWN0M0QgdHlwZSBvYmplY3QgYW5kIHVzZXMgaXRzIHBvc2l0aW9uXHJcbiAgICBhbmQgb3JpZW50YXRpb24gYXMgYW4gaW5wdXQgZGV2aWNlLlxyXG5cclxuICAgIEEgbGFzZXIgcG9pbnRlciBpcyBpbmNsdWRlZCBhbmQgd2lsbCBiZSB1cGRhdGVkLlxyXG4gICAgQ29udGFpbnMgc3RhdGUgYWJvdXQgd2hpY2ggSW50ZXJhY3Rpb24gaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb3IgaG92ZXIuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBjcmVhdGVJbnB1dCggaW5wdXRPYmplY3QgPSBuZXcgVEhSRUUuR3JvdXAoKSApe1xyXG4gICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgIHJheWNhc3Q6IG5ldyBUSFJFRS5SYXljYXN0ZXIoIG5ldyBUSFJFRS5WZWN0b3IzKCksIG5ldyBUSFJFRS5WZWN0b3IzKCkgKSxcclxuICAgICAgbGFzZXI6IGNyZWF0ZUxhc2VyKCksXHJcbiAgICAgIGN1cnNvcjogY3JlYXRlQ3Vyc29yKCksXHJcbiAgICAgIG9iamVjdDogaW5wdXRPYmplY3QsXHJcbiAgICAgIHByZXNzZWQ6IGZhbHNlLFxyXG4gICAgICBncmlwcGVkOiBmYWxzZSxcclxuICAgICAgZXZlbnRzOiBuZXcgRW1pdHRlcigpLFxyXG4gICAgICBpbnRlcmFjdGlvbjoge1xyXG4gICAgICAgIGdyaXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmVzczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGhvdmVyOiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5hZGQoIGlucHV0LmN1cnNvciApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgTW91c2VJbnB1dC5cclxuICAgIEFsbG93cyB5b3UgdG8gY2xpY2sgb24gdGhlIHNjcmVlbiB3aGVuIG5vdCBpbiBWUiBmb3IgZGVidWdnaW5nLlxyXG4gICovXHJcbiAgY29uc3QgbW91c2VJbnB1dCA9IGNyZWF0ZU1vdXNlSW5wdXQoKTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlTW91c2VJbnB1dCgpe1xyXG4gICAgY29uc3QgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigtMSwtMSk7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCgpO1xyXG4gICAgaW5wdXQubW91c2UgPSBtb3VzZTtcclxuICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlT2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlUGxhbmUgPSBuZXcgVEhSRUUuUGxhbmUoKTtcclxuICAgIGlucHV0LmludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyAgc2V0IG15IGVuYWJsZU1vdXNlXHJcbiAgICBpbnB1dC5tb3VzZUNhbWVyYSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlbW92ZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICAvLyBpZiBhIHNwZWNpZmljIHJlbmRlcmVyIGhhcyBiZWVuIGRlZmluZWRcclxuICAgICAgaWYgKG1vdXNlUmVuZGVyZXIpIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gbW91c2VSZW5kZXJlci5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIG1vdXNlLnggPSAoIChldmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0KSAvIGNsaWVudFJlY3Qud2lkdGgpICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCAoZXZlbnQuY2xpZW50WSAtIGNsaWVudFJlY3QudG9wKSAvIGNsaWVudFJlY3QuaGVpZ2h0KSAqIDIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gZnVsbHNjcmVlblxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtb3VzZS54ID0gKCBldmVudC5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGggKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCApICogMiArIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmIChpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBwcmV2ZW50IG1vdXNlIGRvd24gZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGxpc3RlbmVycyAocG9seWZpbGwsIGV0YylcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIC8vaWYgYW55IGlucHV0LmludGVyYWN0aW9ucyBoYXZlIGhpdFZvbHVtZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHNvbWV0aGluZyBub3QgY3VycmVudGx5IGluIGhpdHNjYW5PYmplY3RzLFxyXG4gIC8vdGhhdCBpbnRlcmFjdGlvbiBzaG91bGQgYmUgY2FuY2VsbGVkLiBFc3BlY2lhbGx5IHByb2JsZW1hdGljIHdpdGggZS5nLiBwcmVzc2luZyAncmVhdHRhY2gnIHdoZW4gdGhlIHBhcmVudCBpcyBjbG9zZWQuXHJcbiAgZnVuY3Rpb24gY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9ucywgaGl0c2Nhbk9iamVjdHMgKSB7XHJcbiAgICBbJ3ByZXNzJywgJ2dyaXAnLCAnaG92ZXInXS5mb3JFYWNoKCBpbnRlcmFjdGlvbk5hbWUgPT4ge1xyXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdO1xyXG4gICAgICBpZiAoaW50ZXJhY3Rpb24gJiYgaGl0c2Nhbk9iamVjdHMuaW5kZXhPZihpbnRlcmFjdGlvbi5oaXRWb2x1bWUpIDwgMCkge1xyXG4gICAgICAgIGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdID0gdW5kZWZpbmVkOyBcclxuICAgICAgICAvL29ubHkgYmUgcG9saXRlIHRvIGluZm9ybSB0aGUgaW50ZXJhY3Rpb24gYXMgd2VsbDsgdXBkYXRlIHdpdGggZW1wdHkgaW5wdXRPYmplY3RzIGFyZyBzaG91bGQgZG8gdGhlIHRyaWNrLlxyXG4gICAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggW10gKTtcclxuICAgICAgfSBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlTGFzZXIoIGxhc2VyLCBwb2ludCApe1xyXG4gICAgY29uc3QgcHAgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICBwcFszXSA9IHBvaW50Lng7XHJcbiAgICBwcFs0XSA9IHBvaW50Lnk7XHJcbiAgICBwcFs1XSA9IHBvaW50Lno7XHJcbiAgICBwcC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHBvaW50ICk7XHJcbiAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnRpY2VzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGlmKCBpbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgY29uc3QgZmlyc3RIaXQgPSBpbnRlcnNlY3Rpb25zWyAwIF07XHJcbiAgICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgY3Vyc29yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZU1vdXNlSW50ZXJzZWN0aW9uKCBpbnRlcnNlY3Rpb24sIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBpbnRlcnNlY3Rpb24gKTtcclxuICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgY3Vyc29yLnBvc2l0aW9uICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBjYW1lcmEgKXtcclxuICAgIHJheWNhc3Quc2V0RnJvbUNhbWVyYSggbW91c2UsIGNhbWVyYSApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIHJldHVybiByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbW91c2VJbnRlcnNlY3RzUGxhbmUoIHJheWNhc3QsIHYsIHBsYW5lICl7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIHBsYW5lLCB2ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLG1vdXNlLG1vdXNlQ2FtZXJhLCBpbnRlcmFjdGlvbn0gPSB7fSApe1xyXG4gICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgbGV0IGludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICBpZiAobW91c2VDYW1lcmEpIHtcclxuICAgICAgaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIG1vdXNlQ2FtZXJhICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnRlcnNlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCk7XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgbWV0aG9kcy5cclxuICAqL1xyXG5cclxuICBjb25zdCBwdWJsaWNJbnRlcmZhY2UgPSB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBhZGRJbnB1dE9iamVjdCxcclxuICAgIGVuYWJsZU1vdXNlLFxyXG4gICAgZGlzYWJsZU1vdXNlLFxyXG4gICAgdGV4dENyZWF0b3IsIC8vY2hlYXAgd2F5IG9mIGV4cG9zaW5nIHRoaXMgc28gaXQgY2FuIGJlIHVzZWQgYnkgaG9zdCBhcHBsaWNhdGlvbi5cclxuICAgIGdsb2JhbEV2ZW50cyxcclxuICAgIGNsZWFyQWxsLFxyXG4gICAgdXBkYXRlXHJcbiAgfTtcclxuICAvLyBhbGxvdyB1c2VyIHRvIGNhbGwgXCJkYXQuR1VJVlIuYXV0b1VwZGF0ZSA9IGZhbHNlXCIgYW5kIHRoZW4gdXBkYXRlIG1hbnVhbGx5IHdpdGhcclxuICAvLyBcImRhdC5HVUlWUi51cGRhdGUoKVwiXHJcbiAgLy8gZXhwb3NlIGF1dG9VcGRhdGUgYXMgcHJvcGVydHkgc28gdGhhdCB0aGUgcmVmZXJlbmNlIHdpbGwgYmUgcHJvcGVybHkgZWZmZWN0ZWRcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIHB1YmxpY0ludGVyZmFjZSwgJ2F1dG9VcGRhdGUnLCB7IGdldDogKCk9PiBhdXRvVXBkYXRlLCBzZXQ6IHYgPT4gYXV0b1VwZGF0ZSA9IHYgfSApO1xyXG4gIHJldHVybiBwdWJsaWNJbnRlcmZhY2U7XHJcblxyXG59KCkpO1xyXG5cclxuaWYoIHdpbmRvdyApe1xyXG4gIGlmKCB3aW5kb3cuZGF0ID09PSB1bmRlZmluZWQgKXtcclxuICAgIHdpbmRvdy5kYXQgPSB7fTtcclxuICB9XHJcblxyXG4gIHdpbmRvdy5kYXQuR1VJVlIgPSBHVUlWUjtcclxufVxyXG5cclxuaWYoIG1vZHVsZSApe1xyXG4gIG1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgZGF0OiBHVUlWUlxyXG4gIH07XHJcbn1cclxuXHJcbmlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xyXG4gIGRlZmluZShbXSwgR1VJVlIpO1xyXG59XHJcblxyXG4vKlxyXG4gIEJ1bmNoIG9mIHN0YXRlLWxlc3MgdXRpbGl0eSBmdW5jdGlvbnMuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBpc051bWJlcihuKSB7XHJcbiAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG4pKSAmJiBpc0Zpbml0ZShuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNCb29sZWFuKG4pe1xyXG4gIHJldHVybiB0eXBlb2YgbiA9PT0gJ2Jvb2xlYW4nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjaykge1xyXG4gIGNvbnN0IGdldFR5cGUgPSB7fTtcclxuICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xyXG59XHJcblxyXG4vLyAgb25seSB7fSBvYmplY3RzIG5vdCBhcnJheXNcclxuLy8gICAgICAgICAgICAgICAgICAgIHdoaWNoIGFyZSB0ZWNobmljYWxseSBvYmplY3RzIGJ1dCB5b3UncmUganVzdCBiZWluZyBwZWRhbnRpY1xyXG5mdW5jdGlvbiBpc09iamVjdCAoaXRlbSkge1xyXG4gIHJldHVybiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pICYmIGl0ZW0gIT09IG51bGwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0FycmF5KCBvICl7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoIG8gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNTdHJpbmcoIG8gKXtcclxuICByZXR1cm4gdHlwZW9mIG8gPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0NvbG9yKCBvICl7XHJcbiAgaWYgKHR5cGVvZiBvICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBvLmlzQ29sb3IgPyB0cnVlIDogZmFsc2U7XHJcbn1cclxuXHJcblxyXG5cclxuLypcclxuICBDb250cm9sbGVyLXNwZWNpZmljIHN1cHBvcnQuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBjb250cm9sbGVyLCBwcmVzc2VkLCBncmlwcGVkICl7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcmRvd24nLCAoKT0+cHJlc3NlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcnVwJywgKCk9PnByZXNzZWQoIGZhbHNlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc2Rvd24nLCAoKT0+Z3JpcHBlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHN1cCcsICgpPT5ncmlwcGVkKCBmYWxzZSApICk7XHJcblxyXG4gIGNvbnN0IGdhbWVwYWQgPSBjb250cm9sbGVyLmdldEdhbWVwYWQoKTtcclxuICBmdW5jdGlvbiB2aWJyYXRlKCB0LCBhICl7XHJcbiAgICBpZiggZ2FtZXBhZCAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycyAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzWyAwIF0ucHVsc2UoIHQsIGEgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NUYXAoKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoMS1hLCAwLjUpLCAxMCwgMjAgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NFY2hvKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDQsIDEuMCAqICgxLWEpKSwgMTAwLCA0ICk7XHJcbiAgfVxyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdvbkNvbnRyb2xsZXJIZWxkJywgZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICB2aWJyYXRlKCAwLjMsIDAuMyApO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiYmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYlJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3Bpbm5lZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3BpblJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldEludGVydmFsVGltZXMoIGNiLCBkZWxheSwgdGltZXMgKXtcclxuICBsZXQgeCA9IDA7XHJcbiAgbGV0IGlkID0gc2V0SW50ZXJ2YWwoIGZ1bmN0aW9uKCl7XHJcbiAgICBjYiggeCwgdGltZXMsIHgvdGltZXMgKTtcclxuICAgIHgrKztcclxuICAgIGlmKCB4Pj10aW1lcyApe1xyXG4gICAgICBjbGVhckludGVydmFsKCBpZCApO1xyXG4gICAgfVxyXG4gIH0sIGRlbGF5ICk7XHJcbiAgcmV0dXJuIGlkO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBnbG9iYWxFdmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdFZvbHVtZSApe1xyXG4gIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG4gIGxldCBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gIGxldCBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gIGxldCBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgdFZlY3RvciA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgYXZhaWxhYmxlSW5wdXRzID0gW107XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSggaW5wdXRPYmplY3RzICl7XHJcblxyXG4gICAgYW55SG92ZXIgPSBmYWxzZTtcclxuICAgIGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgICBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIGlucHV0ICl7XHJcblxyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmluZGV4T2YoIGlucHV0ICkgPCAwICl7XHJcbiAgICAgICAgYXZhaWxhYmxlSW5wdXRzLnB1c2goIGlucHV0ICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHsgaGl0T2JqZWN0LCBoaXRQb2ludCB9ID0gZXh0cmFjdEhpdCggaW5wdXQgKTtcclxuXHJcbiAgICAgIHZhciBob3ZlciA9IGhpdFZvbHVtZSA9PT0gaGl0T2JqZWN0O1xyXG4gICAgICBhbnlIb3ZlciA9IGFueUhvdmVyIHx8IGhvdmVyO1xyXG5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ3ByZXNzZWQnLFxyXG4gICAgICAgIGJ1dHRvbkNsaWNrTmFtZTogJ2NsaWNrZWQnLCAvL21heWJlIG5vdCBzdGFibGUgcGFydCBvZiBBUEkuLi5cclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdwcmVzcycsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvblByZXNzZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAncHJlc3NpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZWQnLFxyXG4gICAgICAgICAvL2ludmVudGluZyBhICdob3ZlcmluZycgZXZlbnQgdGhhdCBvbmx5IGFwcGxpZXMgdG8gJ3ByZXNzZWQnIGJ1dHRvbi4uLlxyXG4gICAgICAgICAvL3RoaXMgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc3RhYmxlIGludGVyZmFjZSwgYnV0IEkgd2FudHMgaXQgbW9yZSB0aGFuIElcclxuICAgICAgICAgLy93YW50IHRvIG1ha2Ugc29tZXRoaW5nIHRvdGFsbHkgY29oZXJlbnQgYW5kIHJvYnVzdCBqdXN0IG5vdy5cclxuICAgICAgICBob3Zlck5hbWU6ICdob3ZlcmluZydcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ2dyaXBwZWQnLFxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ2dyaXAnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25HcmlwcGVkJyxcclxuICAgICAgICBob2xkTmFtZTogJ2dyaXBwaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VHcmlwJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCAndGljaycsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9ICk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZXh0cmFjdEhpdCggaW5wdXQgKXtcclxuICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA8PSAwICl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IHRWZWN0b3Iuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5jdXJzb3IubWF0cml4V29ybGQgKS5jbG9uZSgpLCAvL3h4eDogZ2FyYmFnZT9cclxuICAgICAgICBoaXRPYmplY3Q6IHVuZGVmaW5lZCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5wb2ludCxcclxuICAgICAgICBoaXRPYmplY3Q6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3RcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICBpbnB1dCwgaG92ZXIsXHJcbiAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgYnV0dG9uTmFtZSwgYnV0dG9uQ2xpY2tOYW1lLCBpbnRlcmFjdGlvbk5hbWUsIGRvd25OYW1lLCBob2xkTmFtZSwgdXBOYW1lLCBob3Zlck5hbWVcclxuICB9ID0ge30gKXtcclxuXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBoaXRPYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAvL2NsaWNrZWQgYW5kIGRpZG4ndCBoaXQgYW55IEdVSSBvYmplY3QuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaG92ZXJpbmcgYW5kIGJ1dHRvbiBOT1QgZG93blxyXG4gICAgaWYoIGhvdmVyTmFtZSAmJiBob3ZlciAmJiBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSApIHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBldmVudHMuZW1pdCggaG92ZXJOYW1lLCBwYXlsb2FkICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGhvdmVyaW5nIGFuZCBidXR0b24gZG93biBidXQgbm8gaW50ZXJhY3Rpb25zIGFjdGl2ZSB5ZXRcclxuICAgIC8vLS0tPiBzaG91bGQgYmUgXiBidXR0b24gJ2NsaWNrZWQnLi4uIGllIG9ubHkgaWYgaXQgY2FtZSBkb3duIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS5cclxuICAgIC8vc28sIHNob3VsZCB3ZSBwYXNzICdidXR0b25DbGlja05hbWUnIGFzIGFuIGFyZ3VtZW50IChhbmQgdXNlIGJ1dHRvbk5hbWUgaWYgbm90IHByb3ZpZGVkKT9cclxuICAgIC8vLS0tPj4+PiBYWFg6IGlzIHRoaXMgXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXC8vLy8vLy8vLy8vLyB3b3JraW5nIHdpdGggVml2ZSBjb250cm9sbGVycz8gXHJcbiAgICBpZiggaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbkNsaWNrTmFtZSB8fCBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuXHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaWYgKCFoaXRPYmplY3QudXNlckRhdGEucGFydE9mTW9kYWwpIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuXHJcbiAgICAgIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KTtcclxuICAgICAgXHJcbiAgICAgIC8vZW1pdCBnbG9iYWwgY2xpY2sgZXZlbnQgYXMgd2VsbC4uLlxyXG4gICAgICBnbG9iYWxFdmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBpZiggcGF5bG9hZC5sb2NrZWQgKXtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IGludGVyYWN0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIGFueUFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBzdGlsbCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoIGhvbGROYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBpbnB1dC5ldmVudHMuZW1pdCggJ29uQ29udHJvbGxlckhlbGQnICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBub3QgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSB1bmRlZmluZWQ7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICBldmVudHMuZW1pdCggdXBOYW1lLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KSB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihoaXRPYmplY3QpO1xyXG4gICAgdG9wRm9sZGVyLnByb21vdGVaT3JkZXIoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGlzTWFpbkhvdmVyKCl7XHJcblxyXG4gICAgbGV0IG5vTWFpbkhvdmVyID0gdHJ1ZTtcclxuICAgIGZvciggbGV0IGk9MDsgaTxhdmFpbGFibGVJbnB1dHMubGVuZ3RoOyBpKysgKXtcclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0c1sgaSBdLmludGVyYWN0aW9uLmhvdmVyICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgICBub01haW5Ib3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIG5vTWFpbkhvdmVyICl7XHJcbiAgICAgIHJldHVybiBhbnlIb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmZpbHRlciggZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICAgIHJldHVybiBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9PT0gaW50ZXJhY3Rpb247XHJcbiAgICB9KS5sZW5ndGggPiAwICl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IHtcclxuICAgIGhvdmVyaW5nOiBpc01haW5Ib3ZlcixcclxuICAgIHByZXNzaW5nOiAoKT0+YW55UHJlc3NpbmcsXHJcbiAgICB1cGRhdGUsXHJcbiAgICBldmVudHMsXHJcbiAgICBoaXRWb2x1bWVcclxuICB9O1xyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn1cclxuXHJcbiIsIi8qKlxyXG4gKiBcclxuICogVE9ETzogY3Vyc29ycy4uLlxyXG4gKiBNYXliZSBzb21ldGhpbmcgbGlrZSBtb2JpbGUgaW5wdXQgd2hlcmUgeW91IHN3aXRjaCBiZXR3ZWVuIGxldHRlcnMgJiBudW1iZXJzIC8gc3ltYm9sc1xyXG4gKiBcclxuICogU29tZXRoaW5nIGxpa2UgYSBzcGxpdCBrZXlib2FyZCBhbGEgaHR0cHM6Ly9tZWRpdW0uY29tL2Fhcm9ubi92ci10ZXh0LWlucHV0LXNwbGl0LWtleWJvYXJkLWU1YmYzZmQ4N2E0Y1xyXG4gKiBtaWdodCBiZSBiZXR0ZXIuXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlS2V5Ym9hcmQoIHsgXHJcbiAgICBrZXlMaXN0ZW5lcixcclxuICAgIHRleHRDcmVhdG9yXHJcbn0gPSB7fSkge1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGNvbnN0IG9mZnNldFRyYW5zZm9ybSA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgZ3JvdXAuYWRkKG9mZnNldFRyYW5zZm9ybSk7XHJcblxyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGV2ZW50cy5vbigna2V5RG93bicsIGtleUxpc3RlbmVyKTtcclxuICAgIFxyXG4gICAgY29uc3QgbG93ZXJDaGFycyA9IFwiMTIzNDU2Nzg5MC09cXdlcnR5dWlvcFtdYXNkZmdoamtsOycjXFxcXHp4Y3Zibm0sLi8gXCIuc3BsaXQoJycpO1xyXG4gICAgbGV0IG9iamVjdHMgPSBsb3dlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGxvd2VyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKGxvd2VyS2V5cyk7XHJcblxyXG4gICAgY29uc3QgdXBwZXJDaGFycyA9IFwiIVxcXCLCoyQlXiYqKClfK1FXRVJUWVVJT1B7fUFTREZHSEpLTDpAfnxaWENWQk5NPD4/IFwiLnNwbGl0KCcnKTtcclxuICAgIG9iamVjdHMgPSB1cHBlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHVwcGVyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICB1cHBlcktleXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZCh1cHBlcktleXMpO1xyXG5cclxuICAgIGxldCBzaGlmdCA9IGZhbHNlO1xyXG4gICAgZnVuY3Rpb24gc2hpZnRUb2dnbGUoKSB7XHJcbiAgICAgICAgc2hpZnQgPSAhc2hpZnQ7XHJcbiAgICAgICAgbG93ZXJLZXlzLnZpc2libGUgPSAhc2hpZnQ7XHJcbiAgICAgICAgdXBwZXJLZXlzLnZpc2libGUgPSBzaGlmdDtcclxuICAgfVxyXG5cclxuICAgY29uc3Qgc3BhY2VCYXIgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoeyB0ZXh0Q3JlYXRvciwgY29sdW1uczogMSwgcm93SGVpZ2h0OiAwLjEsIG9iamVjdHM6IFtcclxuICAgICAgIHtmdW5jOiAoKT0+ZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnICcpLCB0ZXh0OiAnc3BhY2UnfVxyXG4gICAgXX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGFjZUJhcik7XHJcbiAgICB2YXIgeSA9IHNwYWNlQmFyLnBvc2l0aW9uLnkgPSAtMC41ICogKGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyk7XHJcbiAgICBcclxuICAgIG9iamVjdHMgPSBbXHJcbiAgICAgICAgeyB0ZXh0OiBcInNoaWZ0XCIsIGZ1bmM6IHNoaWZ0VG9nZ2xlIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImJhY2tzcGFjZVwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXGInKSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJlbnRlclwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXG4nKSB9XHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc3BlY2lhbEtleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAzLCByb3dIZWlnaHQ6IDAuMX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGVjaWFsS2V5cyk7XHJcbiAgICBzcGVjaWFsS2V5cy5wb3NpdGlvbi55ID0geS0wLjUgKiAoc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmcpO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcbiAgICAvL3RoaXMgbG9va3MgcmlnaHQsIG11c3QgYWRtaXQgSSBoYXZlbid0IHRob3VnaHQgdGhyb3VnaCBleGFjdGx5IHdoeSBpdCBzaG91bGQgYmUuXHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0ucG9zaXRpb24ueSA9IHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaGl0c2NhbicsIHtcclxuICAgICAgICBnZXQ6ICgpID0+IFtcclxuICAgICAgICAgICAgc3BlY2lhbEtleXMuaGl0c2Nhbiwgc3BhY2VCYXIuaGl0c2Nhbiwgc2hpZnQgPyB1cHBlcktleXMuaGl0c2NhbiA6IGxvd2VyS2V5cy5oaXRzY2FuXHJcbiAgICAgICAgXS5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBzcGFjZUJhci5mb2xkZXIgPSB1cHBlcktleXMuZm9sZGVyID0gbG93ZXJLZXlzLmZvbGRlciA9IHNwZWNpYWxLZXlzLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IChpbnB1dHMpID0+IHtcclxuICAgICAgICBzcGVjaWFsS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgbG93ZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBzcGFjZUJhci51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgdXBwZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFsaWduTGVmdCggb2JqICl7XHJcbiAgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLk1lc2ggKXtcclxuICAgIG9iai5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIGVsc2UgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5ICl7XHJcbiAgICBvYmouY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgdW5pcXVlTWF0ZXJpYWwgKXtcclxuICBjb25zdCBtYXRlcmlhbCA9IHVuaXF1ZU1hdGVyaWFsID8gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweGZmZmZmZn0pIDogU2hhcmVkTWF0ZXJpYWxzLlBBTkVMO1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggd2lkdGgsIGhlaWdodCwgZGVwdGggKSwgbWF0ZXJpYWwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoICogMC41LCAwLCAwICk7XHJcblxyXG4gIGlmKCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcblxyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcblxyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplUGFuZWwocGFuZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKSB7XHJcbiAgcGFuZWwuZ2VvbWV0cnkuc2NhbGUod2lkdGgvcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoLCBoZWlnaHQvcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCwgZGVwdGgvcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoKTtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIGNvbG9yICl7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDT05UUk9MTEVSX0lEX1dJRFRILCBoZWlnaHQsIENPTlRST0xMRVJfSURfREVQVEggKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCBDT05UUk9MTEVSX0lEX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBjb2xvciApO1xyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURvd25BcnJvdygpe1xyXG4gIGNvbnN0IHcgPSAwLjAwOTY7XHJcbiAgY29uc3QgaCA9IDAuMDE2O1xyXG4gIGNvbnN0IHNoID0gbmV3IFRIUkVFLlNoYXBlKCk7XHJcbiAgc2gubW92ZVRvKDAsMCk7XHJcbiAgc2gubGluZVRvKC13LGgpO1xyXG4gIHNoLmxpbmVUbyh3LGgpO1xyXG4gIHNoLmxpbmVUbygwLDApO1xyXG5cclxuICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuU2hhcGVHZW9tZXRyeSggc2ggKTtcclxuICBnZW8udHJhbnNsYXRlKCAwLCAtaCAqIDAuNSwgMCApO1xyXG5cclxuICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTF9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0hFSUdIVCA9IDAuMDg7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9TUEFDSU5HID0gMDsvLy4wMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9NQVJHSU4gPSAwLjAxNTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOID0gMC4wNjtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfV0lEVEggPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9ERVBUSCA9IDAuMDAxO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9XSURUSCA9IDEuMDI2O1xyXG5leHBvcnQgY29uc3QgU1VCRk9MREVSX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0hFSUdIVCA9IDAuMDk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfR1JBQl9IRUlHSFQgPSAwLjA1MTI7XHJcbmV4cG9ydCBjb25zdCBCT1JERVJfVEhJQ0tORVNTID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX1NJWkUgPSAwLjA1O1xyXG5leHBvcnQgY29uc3QgVEVYVF9TQ0FMRSA9IDAuMDAwMjQ7XHJcbmV4cG9ydCBjb25zdCBHUklEX0JVVFRPTl9NQVJHSU4gPSAwLjAxOyIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25HcmlwcGVkJywgaGFuZGxlT25HcmlwICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlR3JpcCcsIGhhbmRsZU9uR3JpcFJlbGVhc2UgKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIGxldCBvbGRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgbGV0IG9sZFJvdGF0aW9uID0gbmV3IFRIUkVFLkV1bGVyKCk7XHJcblxyXG4gIGNvbnN0IHJvdGF0aW9uR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICByb3RhdGlvbkdyb3VwLnNjYWxlLnNldCggMC4zLCAwLjMsIDAuMyApO1xyXG4gIHJvdGF0aW9uR3JvdXAucG9zaXRpb24uc2V0KCAtMC4wMTUsIDAuMDE1LCAwLjAgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcCggcCApe1xyXG5cclxuICAgIGNvbnN0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvbGRQb3NpdGlvbi5jb3B5KCBmb2xkZXIucG9zaXRpb24gKTtcclxuICAgIG9sZFJvdGF0aW9uLmNvcHkoIGZvbGRlci5yb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnggPSAtTWF0aC5QSSAqIDAuNTtcclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuXHJcbiAgICByb3RhdGlvbkdyb3VwLmFkZCggZm9sZGVyICk7XHJcblxyXG4gICAgaW5wdXRPYmplY3QuYWRkKCByb3RhdGlvbkdyb3VwICk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3Bpbm5lZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXBSZWxlYXNlKCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9PXt9ICl7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KCBvbGRQb3NpdGlvbiApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLmNvcHkoIG9sZFJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3BpblJlbGVhc2VkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsIi8qKlxyXG4gKiBQSlQ6IFRoaXMgaXMgYSB2YXJpYXRpb24gb24gc2Rmc2hhZGVyIGZyb20gYm1mb250LCB3aGljaCBzaG91bGQgSnVzdCBXb3JrIHdpdGggbG9nYXJpdGhtaWMgZGVwdGggYnVmZmVycy5cclxuICogSXQgc2hvdWxkIGFsc28gYWxsb3cgc29tZSBvdGhlciBhc3BlY3RzIG9mIFRIUkVFIHJlbmRlcmluZyB0byBiZSBpbmNvcnBvcmF0ZWQsIGxpa2UgZm9nLCBjbGlwcGluZyBwbGFuZXMuLi5cclxuICogRW52aXJvbm1lbnQgbWFwcyBhbmQgdmFyaW91cyBvdGhlciBiaXRzIGZyb20gTWVzaEJhc2ljTWF0ZXJpYWwgYXJlIHJlbW92ZWQuXHJcbiAqIEF0IHRpbWUgb2Ygd3JpdGluZywgdGhpcyBpcyB3b3JrIGluIHByb2dyZXNzLCBhbmQgc29tZXdoYXQgbW9yZSBibG9hdGVkIHRoYW4gaXQgbmVlZHMgdG8gYmUuXHJcbiAqIFRoZSBzaGFkZXIgY29kZSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggU2hhZGVyTWF0ZXJpYWwgcmF0aGVyIHRoYW4gUmF3U2hhZGVyTWF0ZXJpYWwuXHJcbiAqL1xyXG4vLyBpbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xyXG5cclxuLyoqXHJcbiAqIHN0YXJ0aW5nIGZyb20gVEhSRUUgbWVzaGJhc2ljIHNoYWRlcnMsIHBydW5pbmcgLyBtb2RpZnlpbmcuLi5cclxuICovXHJcbmNvbnN0IG1lc2hiYXNpY192ZXJ0ID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4PlxyXG5cclxudm9pZCBtYWluKCkgeyBcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG5cclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50PlxyXG5cclxuLy8vLy9cclxuZmxvYXQgYWFzdGVwKGZsb2F0IHZhbHVlKSB7XHJcbiAgICAvLyBXZSBub3cgYXNzdW1lIFdlYkdMMiBhbmQgc28gdGhlIGRlcml2YXRpdmVzIGFyZSBhdmFpbGFibGUsIFxyXG4gICAgLy8gc28gYWZ3aWR0aCBkZXBlbmRzIG9uIHNjYWxlIG9mIGd1aVxyXG4gICAgZmxvYXQgYWZ3aWR0aCA9IGxlbmd0aCh2ZWMyKGRGZHgodmFsdWUpLCBkRmR5KHZhbHVlKSkpICogMC43MDcxMDY3ODExODY1NDc1NztcclxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcclxufVxyXG4vLy8vXHJcblxyXG52b2lkIG1haW4oKSB7XHJcblxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XHJcblxyXG4gICAgLy8vXHJcbiAgICB2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICk7XHJcbiAgICBcclxuICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQobWFwLCB2VXYpO1xyXG4gICAgZmxvYXQgYWxwaGEgPSBhYXN0ZXAodGV4Q29sb3IuYSk7XHJcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xyXG4gICAgaWYgKGdsX0ZyYWdDb2xvci5hIDwgMC4wMDAxKSBkaXNjYXJkO1xyXG4gICAgLy8vXHJcblxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cclxuICAgIC8vWFhYOiBiaWcgY2h1bmsgcmVtb3ZlZCBmcm9tIG9yaWdpbmFsIG1lc2hiYXNpY19mcmFnIGhlcmUuXHJcbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxyXG59XHJcbmA7XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVTREZTaGFkZXIgKG9wdCkge1xyXG4gIG9wdCA9IG9wdCB8fCB7fTtcclxuICB2YXIgb3BhY2l0eSA9IHR5cGVvZiBvcHQub3BhY2l0eSA9PT0gJ251bWJlcicgPyBvcHQub3BhY2l0eSA6IDE7XHJcbiAgLy8vLS0gaGFyZGNvZGVkIGluIHNoYWRlciBjb2RlLCBndWl2ciBuZXZlciBwYXNzZWQgdGhlc2UgaW4gb3B0IC0tXHJcbiAgLy92YXIgYWxwaGFUZXN0ID0gdHlwZW9mIG9wdC5hbHBoYVRlc3QgPT09ICdudW1iZXInID8gb3B0LmFscGhhVGVzdCA6IDAuMDAwMVxyXG4gIC8vdmFyIHByZWNpc2lvbiA9IG9wdC5wcmVjaXNpb24gfHwgJ2hpZ2hwJ1xyXG4gIHZhciBjb2xvciA9IG9wdC5jb2xvcjtcclxuICB2YXIgbWFwID0gb3B0Lm1hcDtcclxuICBcclxuICBvcHQuZXh0ZW5zaW9ucyA9IG9wdC5leHRlbnNpb25zIHx8IHt9O1xyXG4gIG9wdC5leHRlbnNpb25zLmRlcml2YXRpdmVzID0gdHJ1ZTsgLy9uYiwgZmFsc2UgZGVmYXVsdHMgZm9yIGZyYWdEZXB0aCwgZHJhd0J1ZmZlcnMsIHNoYWRlclRleHR1cmVMT0Qgd2lsbCBubyBsb25nZXIgYmUgdGhlcmUuXHJcbiAgb3B0Lm5hbWUgPSBcIlNERiB0ZXh0IG1hdGVyaWFsXCI7XHJcblxyXG4gIC8vIHJlbW92ZSB0byBzYXRpc2Z5IHI3M1xyXG4gIGRlbGV0ZSBvcHQubWFwO1xyXG4gIGRlbGV0ZSBvcHQuY29sb3I7XHJcbiAgZGVsZXRlIG9wdC5wcmVjaXNpb247XHJcbiAgZGVsZXRlIG9wdC5vcGFjaXR5O1xyXG5cclxuICByZXR1cm4gYXNzaWduKHtcclxuICAgIHVuaWZvcm1zOiB7XHJcbiAgICAgIG9wYWNpdHk6IHsgdHlwZTogJ2YnLCB2YWx1ZTogb3BhY2l0eSB9LFxyXG4gICAgICBtYXA6IHsgdHlwZTogJ3QnLCB2YWx1ZTogbWFwIHx8IG5ldyBUSFJFRS5UZXh0dXJlKCkgfSxcclxuICAgICAgY29sb3I6IHsgdHlwZTogJ2MnLCB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGNvbG9yKSB9XHJcbiAgICB9LFxyXG4gICAgdmVydGV4U2hhZGVyOiBtZXNoYmFzaWNfdmVydCxcclxuICAgIGZyYWdtZW50U2hhZGVyOiBtZXNoYmFzaWNfZnJhZ1xyXG4gIH0sIG9wdCk7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBTREZTaGFkZXIgZnJvbSAnLi9zZGZzaGFkZXJfbG9nZGVwdGgnO1xyXG5pbXBvcnQgY3JlYXRlR2VvbWV0cnkgZnJvbSAndGhyZWUtYm1mb250LXRleHQnO1xyXG5pbXBvcnQgcGFyc2VBU0NJSSBmcm9tICdwYXJzZS1ibWZvbnQtYXNjaWknO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuaW1wb3J0ICogYXMgRm9udCBmcm9tICcuL2ZvbnQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApe1xyXG5cclxuICBjb25zdCBpbWFnZSA9IEZvbnQuaW1hZ2UoKTtcclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoaW1hZ2UpOyB0ZXh0dXJlLm5hbWUgPSAnc2RmRm9udFRleHR1cmUnXHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgLy9OQjo6OiBzb21ld2hhdCBleHBlcmltZW50YWwgcmVwbGFjZW1lbnQgb2YgUmF3U2hhZGVyIGNvZGUgZnJvbSBibWZvbnQgd2l0aCB2YXJpYXRpb24gb2YgTWVzaEJhc2ljIHNoYWRlclxyXG4gIC8vdGhpcyBzaG91bGQgYWxsb3cgZm9yIGxvZ2RlcHRoLCBmb2cgaXMgYWxzbyBhbnRpY2lwYXRlZCB0byB3b3JrIHJlYXNvbmFibHkgd2VsbC4uLiBcclxuICAvL3RvbmVtYXBwaW5nIGV0YyBtYXkgY29uY2VpdmFibHkgYmUgaW1wcm92ZWQuLi4gWU1NVi5cclxuICBsZXQgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoU0RGU2hhZGVyKHtcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIGNvbG9yOiBjb2xvcixcclxuICAgIG1hcDogdGV4dHVyZSxcclxuICAgIHR5cGU6ICdTREYgVGV4dCdcclxuICB9KSk7XHJcbiAgcmV0dXJuIG1hdGVyaWFsO1xyXG59XHJcblxyXG5jb25zdCB0ZXh0U2NhbGUgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdG9yKCl7XHJcblxyXG4gIGNvbnN0IGZvbnQgPSBwYXJzZUFTQ0lJKCBGb250LmZudCgpICk7XHJcblxyXG4gIGNvbnN0IGNvbG9yTWF0ZXJpYWxzID0ge307XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IgPSAweGZmZmZmZiwgc2NhbGUgPSAxLjAsIHdpZHRoLCBoZWlnaHQgKXtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IGNyZWF0ZUdlb21ldHJ5KHtcclxuICAgICAgdGV4dDogc3RyLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICBmbGlwWTogdHJ1ZSxcclxuICAgICAgZm9udFxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IGxheW91dCA9IGdlb21ldHJ5LmxheW91dDtcclxuXHJcbiAgICBsZXQgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXTtcclxuICAgIGlmKCBtYXRlcmlhbCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF0gPSBjcmVhdGVNYXRlcmlhbCggY29sb3IgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5KCBuZXcgVEhSRUUuVmVjdG9yMygxLC0xLDEpICk7XHJcblxyXG4gICAgY29uc3QgZmluYWxTY2FsZSA9IHNjYWxlICogdGV4dFNjYWxlO1xyXG5cclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHlTY2FsYXIoIGZpbmFsU2NhbGUgKTtcclxuXHJcbiAgICBtZXNoLnBvc2l0aW9uLnkgPSBsYXlvdXQuaGVpZ2h0ICogMC41ICogZmluYWxTY2FsZTtcclxuXHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIHN0ciwgeyBjb2xvcj0weGZmZmZmZiwgc2NhbGU9MS4wIH0gPSB7fSApe1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgICBsZXQgbWVzaCA9IGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IsIHNjYWxlICk7XHJcbiAgICBncm91cC5hZGQoIG1lc2ggKTtcclxuICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgZ3JvdXAuY29tcHV0ZVdpZHRoID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LndpZHRoICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuICAgIGdyb3VwLmNvbXB1dGVIZWlnaHQgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQuaGVpZ2h0ICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5jb25zdHJhaW5Cb3VuZHMgPSAodywgaCkgPT4ge1xyXG4gICAgICBncm91cC5yZW1vdmUobWVzaCk7XHJcbiAgICAgIGNvbnN0IHMgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgY29uc3QgaEZhY3RvciA9IG1lc2guZ2VvbWV0cnkubGF5b3V0LmhlaWdodCpzL2g7XHJcbiAgICAgIGlmIChoRmFjdG9yID4gMSkge1xyXG4gICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgMC45NSogc3RyLmxlbmd0aC9oRmFjdG9yKSArICcuLi4nO1xyXG4gICAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIH1cclxuICAgICAgZ3JvdXAuYWRkKG1lc2gpO1xyXG4gICAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC51cGRhdGVMYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgZ2V0TWF0ZXJpYWw6ICgpPT4gbWF0ZXJpYWwgLy9YWFg6IHRoaXMgZGF0ZXMgYmFjayBxdWl0ZSBhIGxvbmcgd2F5LCBub3Qgc3VyZSBpdCB3YXMgZXZlciByaWdodC5cclxuICB9XHJcblxyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4ZmZmZmZmLCB2ZXJ0ZXhDb2xvcnM6IFRIUkVFLlZlcnRleENvbG9ycyB9ICk7XHJcbmV4cG9ydCBjb25zdCBMT0NBVE9SID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVIgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MDAwMDAwIH0gKTtcclxuZXhwb3J0IGNvbnN0IFRPT0xUSVAgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MjA1MDgwLCB0cmFuc3BhcmVudDogZmFsc2UsIG9wYWNpdHk6IDAuOCB9ICk7XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNsaWRlcigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSAwLjAsXHJcbiAgbWluID0gMC4wLCBtYXggPSAxLjAsXHJcbiAgc3RlcCA9IDAuMSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBpbml0aWFsSGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgYWxwaGE6IDEuMCxcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBzdGVwOiBzdGVwLFxyXG4gICAgdXNlU3RlcDogdHJ1ZSxcclxuICAgIHByZWNpc2lvbjogMSxcclxuICAgIGxpc3RlbjogZmFsc2UsXHJcbiAgICBtaW46IG1pbixcclxuICAgIG1heDogbWF4LFxyXG4gICAgb25DaGFuZ2VkQ0I6IHVuZGVmaW5lZCxcclxuICAgIG9uRmluaXNoZWRDaGFuZ2U6IHVuZGVmaW5lZCxcclxuICAgIHByZXNzaW5nOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgc3RhdGUuc3RlcCA9IGdldEltcGxpZWRTdGVwKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApO1xyXG4gIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwic2xpZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gaGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0IFNMSURFUl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0RFUFRIID0gZGVwdGg7XHJcblxyXG4gICAgLy8gIGZpbGxlZCB2b2x1bWVcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIFNMSURFUl9XSURUSCwgU0xJREVSX0hFSUdIVCwgU0xJREVSX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShTTElERVJfV0lEVEgqMC41LDAsMCk7XHJcbiAgICAvLyBMYXlvdXQuYWxpZ25MZWZ0KCByZWN0ICk7XHJcblxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLm5hbWUgPSAnaGl0c2NhblZvbHVtZSc7XHJcblxyXG4gICAgLy8gIHNsaWRlckJHIHZvbHVtZVxyXG4gICAgY29uc3Qgc2xpZGVyQkcgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBzbGlkZXJCRy5nZW9tZXRyeSwgQ29sb3JzLlNMSURFUl9CRyApO1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSCArIExheW91dC5QQU5FTF9NQVJHSU47XHJcblxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkRFRkFVTFRfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgZmlsbGVkVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICBjb25zdCBlbmRMb2NhdG9yID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggMC4wNSwgMC4wNSwgMC4wNSwgMSwgMSwgMSApLCBTaGFyZWRNYXRlcmlhbHMuTE9DQVRPUiApO1xyXG4gICAgZW5kTG9jYXRvci5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGVuZExvY2F0b3IgKTtcclxuICAgIGVuZExvY2F0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9WQUxVRV9URVhUX01BUkdJTiArIHdpZHRoICogMC41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGgqMi41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDMyNTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX1NMSURFUiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIHBhbmVsLm5hbWUgPSAncGFuZWwnO1xyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIHNsaWRlckJHLCB2YWx1ZUxhYmVsLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgICBncm91cC5hZGQoIHBhbmVsIClcclxuXHJcbiAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgdXBkYXRlU2xpZGVyKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsdWVMYWJlbCggdmFsdWUgKXtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCByb3VuZFRvRGVjaW1hbCggc3RhdGUudmFsdWUsIHN0YXRlLnByZWNpc2lvbiApLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgICAgaWYoIHN0YXRlLnByZXNzaW5nICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSU5URVJBQ1RJT05fQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTbGlkZXIoKXtcclxuICAgICAgZmlsbGVkVm9sdW1lLnNjYWxlLnggPVxyXG4gICAgICAgIE1hdGgubWluKFxyXG4gICAgICAgICAgTWF0aC5tYXgoIGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKSAqIHdpZHRoLCAwLjAwMDAwMSApLFxyXG4gICAgICAgICAgd2lkdGhcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9iamVjdCggdmFsdWUgKXtcclxuICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBhbHBoYSApe1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggYWxwaGEgKTtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBnZXRTdGVwcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5zdGVwICk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRDbGFtcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpe1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbU9iamVjdCgpO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tT2JqZWN0KCl7XHJcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgICAgc3RhdGUub25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5zdGVwID0gZnVuY3Rpb24oIHN0ZXAgKXtcclxuICAgICAgc3RhdGUuc3RlcCA9IHN0ZXA7XHJcbiAgICAgIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwIClcclxuICAgICAgc3RhdGUudXNlU3RlcCA9IHRydWU7XHJcblxyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVQcmVzcyApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVIb2xkICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlUmVsZWFzZSApO1xyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVByZXNzKCBwICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVIb2xkKCB7IHBvaW50IH0gPSB7fSApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGZpbGxlZFZvbHVtZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBlbmRMb2NhdG9yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcblxyXG4gICAgICBjb25zdCBhID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGZpbGxlZFZvbHVtZS5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBjb25zdCBiID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGVuZExvY2F0b3IubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBnZXRQb2ludEFscGhhKCBwb2ludCwge2EsYn0gKSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHVwZGF0ZU9iamVjdCggc3RhdGUudmFsdWUgKTtcclxuXHJcbiAgICAgIGlmKCBwcmV2aW91c1ZhbHVlICE9PSBzdGF0ZS52YWx1ZSAmJiBzdGF0ZS5vbkNoYW5nZWRDQiApe1xyXG4gICAgICAgIHN0YXRlLm9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUmVsZWFzZSgpe1xyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICAgIHVwZGF0ZVNsaWRlcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5taW4gPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5taW4gPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5tYXggPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5tYXggPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9IC8vIC9zZXRIZWlnaHRcclxuICBncm91cC5zZXRIZWlnaHQoIGluaXRpYWxIZWlnaHQgKTtcclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IHRhID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0VG9BID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgYVRvQiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb2ludEFscGhhKCBwb2ludCwgc2VnbWVudCApe1xyXG4gIHRhLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICk7XHJcbiAgdGIuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBjb25zdCBwcm9qZWN0ZWQgPSB0Yi5wcm9qZWN0T25WZWN0b3IoIHRhICk7XHJcblxyXG4gIHRUb0EuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBhVG9CLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICkubm9ybWFsaXplKCk7XHJcblxyXG4gIGNvbnN0IHNpZGUgPSB0VG9BLm5vcm1hbGl6ZSgpLmRvdCggYVRvQiApID49IDAgPyAxIDogLTE7XHJcblxyXG4gIGNvbnN0IGxlbmd0aCA9IHNlZ21lbnQuYS5kaXN0YW5jZVRvKCBzZWdtZW50LmIgKSAqIHNpZGU7XHJcblxyXG4gIGxldCBhbHBoYSA9IHByb2plY3RlZC5sZW5ndGgoKSAvIGxlbmd0aDtcclxuICBpZiggYWxwaGEgPiAxLjAgKXtcclxuICAgIGFscGhhID0gMS4wO1xyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwLjAgKXtcclxuICAgIGFscGhhID0gMC4wO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxlcnAobWluLCBtYXgsIHZhbHVlKSB7XHJcbiAgcmV0dXJuICgxLXZhbHVlKSptaW4gKyB2YWx1ZSptYXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcF9yYW5nZSh2YWx1ZSwgbG93MSwgaGlnaDEsIGxvdzIsIGhpZ2gyKSB7XHJcbiAgICByZXR1cm4gbG93MiArIChoaWdoMiAtIGxvdzIpICogKHZhbHVlIC0gbG93MSkgLyAoaGlnaDEgLSBsb3cxKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApe1xyXG4gIGlmKCBhbHBoYSA+IDEgKXtcclxuICAgIHJldHVybiAxXHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAgKXtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRWYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgaWYoIHZhbHVlIDwgbWluICl7XHJcbiAgICByZXR1cm4gbWluO1xyXG4gIH1cclxuICBpZiggdmFsdWUgPiBtYXggKXtcclxuICAgIHJldHVybiBtYXg7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0SW1wbGllZFN0ZXAoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIC8vUEpUOiB3aGF0IHdvdWxkIHdlIGxpa2Ugc3RlcCB0byBsb29rIGxpa2U/XHJcbiAgLy9Tb21ldGhpbmcgdGhhdCBoYXMgYWJvdXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSwgYW5kIGxvb2tzIG5pY2UgaW4gYmFzZSAxMD9cclxuICBjb25zdCByID0gbWF4LW1pbjtcclxuICBsZXQgc3RlcCA9IHIvMTAwOyAvL3doYXQgaXMgdGhlIHJhdGlvIG9mIG51bWJlciBvZiBkZWNpbWFscyB0byBvcmRlciBvZiBtYWduaXR1ZGU/XHJcbiAgXHJcbiAgcmV0dXJuIHN0ZXA7XHJcblxyXG4gIC8vIGlmKCB2YWx1ZSA9PT0gMCApe1xyXG4gIC8vICAgcmV0dXJuIDE7IC8vIFdoYXQgYXJlIHdlLCBwc3ljaGljcz8gLy88PDw8LS0tIG5vLCBzbyB3ZSBzaG91bGQgYmFzZSBpbXBsaWVkU3RlcCBvbiBtaW4vbWF4LCBub3QgdmFsdWVcclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgLy8gSGV5IERvdWcsIGNoZWNrIHRoaXMgb3V0LlxyXG4gIC8vICAgcmV0dXJuIE1hdGgucG93KDEwLCBNYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKHZhbHVlKSkvTWF0aC5MTjEwKSkvMTA7XHJcbiAgLy8gfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRWYWx1ZUZyb21BbHBoYSggYWxwaGEsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggYWxwaGEsIDAuMCwgMS4wLCBtaW4sIG1heCApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFscGhhRnJvbVZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCB2YWx1ZSwgbWluLCBtYXgsIDAuMCwgMS4wICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFN0ZXBwZWRWYWx1ZSggdmFsdWUsIHN0ZXAgKXtcclxuICBpZiggdmFsdWUgJSBzdGVwICE9IDApIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKCB2YWx1ZSAvIHN0ZXAgKSAqIHN0ZXA7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gbnVtRGVjaW1hbHMoeCkge1xyXG4gIHggPSB4LnRvU3RyaW5nKCk7XHJcbiAgaWYgKHguaW5kZXhPZignLicpID4gLTEpIHtcclxuICAgIHJldHVybiB4Lmxlbmd0aCAtIHguaW5kZXhPZignLicpIC0gMTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByb3VuZFRvRGVjaW1hbCh2YWx1ZSwgZGVjaW1hbHMpIHtcclxuICBpZiAoTWF0aC5hYnModmFsdWUpIDwgMC4wMSAmJiB2YWx1ZSAhPT0gMCkgcmV0dXJuIHZhbHVlLnRvRXhwb25lbnRpYWwoMyk7XHJcbiAgY29uc3QgdGVuVG8gPSBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xyXG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogdGVuVG8pIC8gdGVuVG87XHJcbn0iLCIvKipcclxuICogV2hlbiB0aGUgdGV4dGJveCBpcyBmb2N1c3NlZCwgIGEga2V5Ym9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuLi5cclxuICogVGhlcmUgc2hvdWxkIGFsc28gYmUgYSB3YXkgb2YgZGlzbWlzc2luZyBpdCBsYXRlci4gIEl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdG9cclxuICogcHJldmVudCBtdWx0aXBsZSBrZXlib2FyZHMgYmVpbmcgbWFkZSBzaW11bHRhbmVvdXNseT9cclxuICogXHJcbiAqIEluIG9yZGVyIHRvIG1ha2UgaXQgYXBwZWFyLCBpdCBjYW4gYmUgYWRkZWQgYXMgYSBjaGlsZCBvZiB0aGUgdGV4Ym94IG5vZGUgaXRzZWxmLi4uXHJcbiAqIFRoaXMnbGwgbWVhbiB0aGF0IGl0IGdldHMgZHJhZ2dlZCBhcm91bmQgYnkgdGhlIHBhcmVudCBHVUkgYXMgaXQgbW92ZXMuLi4uXHJcbiAqIE1ha2VzIGZvciByZWxhdGl2ZWx5IGNsZWFuLCBzaW1wbGUgaW1wbGVtZW50YXRpb24gYXQgbGVhc3QuXHJcbiAqIEF0IHRoZSBtb21lbnQsIGtleWJvYXJkIHBvc2l0aW9uaW5nIGlzIG1lc3NlZCB1cCBieSB0aGlzIGFycmFuZ2VtZW50LlxyXG4gKiBSZW1vdmluZyBncmFiYmVyIG1ha2VzIGl0IGxlc3MgbGlrZWx5IGEgdXNlciB3aWxsIGRvIHRoaXMsIGJ1dCBtaWdodCBiZSB3b3J0aCBmaXhpbmcgdGhlIGJhc2ljIGJ1Zy5cclxuICogXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgR1VJIGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dEJveCh7XHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9KSB7XHJcbiAgLy8gYmlnIG9sZCBjb3B5IC8gcGFzdGUgZnJvbSBidXR0b24uanMuIE1pZ2h0IHRyeSB0byBmYWN0b3Igb3V0IHNvbWUgb2YgdGhpcyBjb21tb24gY29kZS5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0Ym94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogMHhGRkZGRkYgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICAvL2hvdyBjYW4gSSBjaGFuZ2UgY29sb3Igb2YgdGV4dD9cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggb2JqZWN0W3Byb3BlcnR5TmFtZV0sIHsgY29sb3I6IDB4MDAwMDAwMCwgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIC8vYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSAwLjAxNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVTdHJpbmcoc3RyKSB7XHJcbiAgICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RyO1xyXG4gICAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbChzdHIpO1xyXG4gIH1cclxuICB2YXIga2V5Ym9hcmQ7XHJcbiAgZnVuY3Rpb24gdG9nZ2xlS2V5Ym9hcmQoKSB7XHJcbiAgICBpZiAoa2V5Ym9hcmQpIHtcclxuICAgICAgICBrZXlib2FyZC52aXNpYmxlID0gIWtleWJvYXJkLnZpc2libGU7XHJcbiAgICAgICAgaWYgKGtleWJvYXJkLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBrZXlib2FyZCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJrZXlib2FyZFwiKTtcclxuICAgICAgICBncm91cC5hZGQoa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLmZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnggPSB3aWR0aDtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICAgICAga2V5Ym9hcmQuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgIGtleWJvYXJkLmFkZEtleWJvYXJkKCAoaykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgc3RyID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAoaykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxuJzpcclxuICAgICAgICAgICAgICAgICAgICAvL3NldHRpbmcgXCJrZXlib2FyZC52aXNpYmxlID0gZmFsc2VcIiBpbiB0aGUgbWlkZGxlIG9mIGV2ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyIHNlZW1zIHRvIGtpbGwgYWxsIGV2ZW50IHByb2Nlc3NpbmcgZnJvbSB0aGVuIG9uLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0VGltZW91dCBpcyBhbiBhZGVxdWF0ZSB3b3JrYXJvdW5kIGZvciBub3cuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0b2dnbGVLZXlib2FyZCwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcYic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gaztcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy90aGlzIHRlc3Qgc2hvdWxkIGJlIHJlZHVuZGFudCBub3dcclxuICAgIC8vIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy9vYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgLy9oaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgLy8gY3JlYXRlIGEga2V5Ym9hcmQgYW5kIGF0dGFjaCBpdCBhcyBjaGlsZCBvZiBncm91cC4uLiBcclxuICAgIC8vIG9yIGp1c3QgbWFrZSBzdXJlIGV4aXN0aW5nIGtleWJvYXJkIGlzIHZpc2libGUuXHJcbiAgICB0b2dnbGVLZXlib2FyZCgpO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0hJR0hMSUdIVF9CRyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9CRyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0TGFiZWwoIHRleHRDcmVhdG9yLCBzdHIsIHdpZHRoID0gMC40LCBkZXB0aCA9IDAuMDI5LCBmZ0NvbG9yID0gMHhmZmZmZmYsIGJnQ29sb3IgPSBDb2xvcnMuREVGQVVMVF9CQUNLLCBzY2FsZSA9IDEuMCApe1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRsYWJlbFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3N0cn1dYDtcclxuXHJcbiAgY29uc3QgaW50ZXJuYWxQb3NpdGlvbmluZyA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL3JhdGhlciB1bm5lY2Vzc2FyeS5cclxuICBncm91cC5hZGQoIGludGVybmFsUG9zaXRpb25pbmcgKTtcclxuXHJcbiAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RyLnRvU3RyaW5nKCksIHsgY29sb3I6IGZnQ29sb3IsIHNjYWxlIH0gKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggdGV4dCApO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnRleHQgPSB0ZXh0O1xyXG5cclxuICBncm91cC5zZXRTdHJpbmcgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHN0ciA9IFwiW3VuZGVmaW5lZF1cIjtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b1N0cmluZygpICk7XHJcbiAgICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldE51bWJlciA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b0ZpeGVkKDIpICk7XHJcbiAgfTtcclxuXHJcbiAgdGV4dC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIGNvbnN0IGJhY2tCb3VuZHMgPSAwLjAxO1xyXG4gIGNvbnN0IG1hcmdpbiA9IDAuMDE7XHJcbiAgY29uc3QgdG90YWxXaWR0aCA9IHdpZHRoO1xyXG4gIGNvbnN0IHRvdGFsSGVpZ2h0ID0gMC4wNCArIG1hcmdpbiAqIDI7XHJcblxyXG4gIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja0dlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB0b3RhbFdpZHRoLCB0b3RhbEhlaWdodCwgZGVwdGgsIDEsIDEsIDEgKTtcclxuICBsYWJlbEJhY2tHZW9tZXRyeS5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVRyYW5zbGF0aW9uKCB0b3RhbFdpZHRoICogMC41IC0gbWFyZ2luLCAwLCAwICkgKTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrTWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBsYWJlbEJhY2tHZW9tZXRyeSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsQmFja01lc2guZ2VvbWV0cnksIGJnQ29sb3IgKTtcclxuXHJcbiAgbGFiZWxCYWNrTWVzaC5wb3NpdGlvbi55ID0gMC4wMztcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggbGFiZWxCYWNrTWVzaCApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcucG9zaXRpb24ueSA9IC10b3RhbEhlaWdodCAqIDAuNTtcclxuXHJcbiAgZ3JvdXAuYmFjayA9IGxhYmVsQmFja01lc2g7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgZGVmYXVsdFBhcmVudEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2xUaXAoIHRleHRDcmVhdG9yLCB0aXAsIHBhcmVudFdpZHRoLCBwYXJlbnRIZWlnaHQgPSBkZWZhdWx0UGFyZW50SGVpZ2h0LCBwYXJlbnREZXB0aCApIHtcclxuICBjb25zdCB0aXBUZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKHRpcCk7XHJcbiAgXHJcbiAgY29uc3QgdGlwR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgY29uc3QgdyA9IHRpcFRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgY29uc3QgaCA9IExheW91dC5URVhUX1NDQUxFICogdGlwVGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG5cclxuICB0aXBHcm91cC5wb3NpdGlvbi54ICA9IDAuNSAqIHBhcmVudFdpZHRoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnkgPSAtMS4wNSAqIHBhcmVudEhlaWdodCAtIGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueiA9IHBhcmVudERlcHRoICogMztcclxuICB0aXBHcm91cC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4vLyAgc3ViZ3JvdXAuYWRkKHRpcEdyb3VwKTtcclxuICB0aXBHcm91cC5hZGQodGlwVGV4dCk7XHJcbi8vICBzdWJncm91cC50aXBUZXh0ID0gdGlwR3JvdXA7XHJcblxyXG4gIGNvbnN0IHBhZGRlZFcgPSB3ICsgMC4wMywgcGFkZGVkSCA9IGggKyAwLjAzO1xyXG4gIGNvbnN0IHRpcFJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeShwYWRkZWRXLCBwYWRkZWRILCAxLCAxKTtcclxuICBjb25zdCB0aXBCYWNrZ3JvdW5kID0gbmV3IFRIUkVFLk1lc2godGlwUmVjdCwgU2hhcmVkTWF0ZXJpYWxzLlRPT0xUSVApO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueCA9IDA7IC8vcGFkZGVkVyAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi55ID0gaCAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi56ID0gLXBhcmVudERlcHRoICogMC41O1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBCYWNrZ3JvdW5kKTtcclxuXHJcbiAgdGlwVGV4dC5wb3NpdGlvbi54ID0gLTAuNSAqIHc7XHJcbiAgdGlwVGV4dC5wb3NpdGlvbi55ID0gLTAuNSAqIGggKyAwLjAwMTU7XHJcblxyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLncgPSB3O1xyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLmggPSBoO1xyXG5cclxuICByZXR1cm4gdGlwR3JvdXA7XHJcbn1cclxuIiwiLyoqIGJhc2ljIHV0aWxpdHkgZnVuY3Rpb25zICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sbGVyVmlzaWJsZShjb250cm9sKSB7XHJcbiAgdmFyIGZvbGRlciA9IGNvbnRyb2wuZm9sZGVyO1xyXG4gIC8vbm90ZTogdGhlIGJhc2lzIG9uIHdoaWNoIGEgY29udHJvbGxlciBpcyBjb25zaWRlcmVkIHZpc2libGUgcmV2aXNlZCBmb3IgJ2hlYWRlcicgb2JqZWN0cy5cclxuICAvL2ZvciBub3csIHRoaXMgc2hvdWxkIGFsbG93IGhlYWRlciBjb250cm9sbGVycyB0byB1cGRhdGUgd2hpbGUgZm9sZGVyIGlzIGNvbGxhcHNlZC5cclxuICAvL29ubHkgYXBwbGllcyB0byBjaGVja2JveCwgcGVuZGluZyBkZXNpZ24gcmV2aXNpb24gJiBmdWxsZXIgaW1wbGVtZW50YXRpb24uLi5cclxuICBcclxuICAvLy0tLS0gaXNTaG93bkluRm9sZGVySGVhZGVyIG5vIGxvbmdlciByZWxldmFudCwgYnV0IGVuZGluZyB1cCB3aXRoIHNvbWV0aGluZyB0aGF0IGxvb2tzIHNpbWlsYXIuLi4uXHJcbiAgLy9pc0hlYWRlck9iamVjdCB3aWxsIGFwcGx5IHRvIHRoZSBhY3R1YWwgY29udHJvbCBhcHBlYXJpbmcgaW4gdGhlIGZvbGRlciBoZWFkZXIsIHdoZXJlYXNcclxuICAvL2lzU2hvd25JbkZvbGRlckhlYWRlciB3YXMgd2hlbiBzdWNoIG9iamVjdHMgd2VyZW4ndCBzbyBmdWxseS1mbGVkZ2VkXHJcbiAgLy9pZiAoY29udHJvbC5pc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7IC8vPDw8PDwgc3RpbGwgaGl0dGluZyBmb2xkZWQgYnV0dG9uPz8/IChhbHNvLCB0cnkgbnBtIGF1ZGl0KVxyXG4gIGlmIChjb250cm9sLmlzSGVhZGVyT2JqZWN0KSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpO1xyXG5cclxuICAvL1hYWCBoYXZpbmcgc29tZSBkZWZpbml0ZSBidWdzIGUuZy4gbWlzc2luZyBldmVudHMgb3ZlciAncGljdHVyZXMgLyBtYXRlcmlhbHMnIGZvbGRlciBoZWFkZXIgaW4gZGVtby5cclxuICBcclxuICBpZiAoIWNvbnRyb2wudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gIFxyXG4gIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpe1xyXG4gICAgaWYgKGZvbGRlci5pc0NvbGxhcHNlZCgpIHx8ICFmb2xkZXIudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICB9XHJcbiAgaWYgKCFmb2xkZXIucGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIGZvbGRlci52aXNpYmxlO1xyXG59XHJcblxyXG4vKiogXHJcbiAqIEludmlzaWJsZSBUSFJFRSBvYmplY3RzIGluY3VyIHNpZ25pZmljYW50IENQVSBjb3N0LlxyXG4gKiBUaGlzIGF2b2lkcyB0aGF0IGJ5IHJlbW92aW5nIHRoZW0gZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqIFxyXG4gKiBJZiB2aXNpYmxlIGlzIHRydWUsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPXRydWUgYW5kIGlzIGEgY2hpbGQgb2YgcGFyZW50LlxyXG4gKiBJZiB2aXNpYmxlIGlzIGZhbHNlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT1mYWxzZSBhbmQgaXMgcmVtb3ZlZCBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRWaXNpYmlsaXR5KHBhcmVudCwgY2hpbGQsIHZpc2libGUpIHtcclxuICAgIGNvbnN0IGlzQ2hpbGQgPSBwYXJlbnQuY2hpbGRyZW4uaW5jbHVkZXMoY2hpbGQpO1xyXG4gICAgY2hpbGQudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAvL21ha2Ugc3VyZSB3ZSB1c2Ugb3JpZ2luYWwgVEhSRUUgbWV0aG9kcyB0aGF0IHRoaXMgbGlicmFyeSBvdmVycmlkZXMgKFRPRE86IHJlZmFjdG9yLi4uKVxyXG4gICAgaWYgKHZpc2libGUgJiYgIWlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghdmlzaWJsZSAmJiBpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXBhcmVudC52aXNpYmxlKSBjb25zb2xlLndhcm4oYHNldFZpc2liaWxpdHkgY2FsbGVkIG9uIGNoaWxkICR7Y2hpbGR9IG9mIGludmlzaWJsZSBwYXJlbnQgJHtwYXJlbnR9YCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBoaWdoZXN0IGxldmVsIG9mIHBhcmVudCBmb2xkZXIgaW4gdGhlIGd1aSBoaWVhcmNoeSBjb250YWluaW5nIGEgZ2l2ZW4gb2JqZWN0LlxyXG4gKiBuYi4gb2xkZXIgdmVyc2lvbnMgb2YgdGhpcyBmdW5jdGlvbiB3b3VsZCByZXR1cm4gdGhlIGlucHV0IG9iamVjdCBpZiBpdCBkaWRuJ3QgaGF2ZSBhICdmb2xkZXInIHByb3BlcnR5LlxyXG4gKiBOb3csIGl0IGlzIGludGVuZGVkIHRoYXQgaXQgc2hvdWxkIGVpdGhlciByZXR1cm4gYSBmb2xkZXIgaWYgYXBwcm9wcmlhdGUsIG9yIG5vdGhpbmcuXHJcbiAqIEBwYXJhbSB7Kn0gZ3JvdXAgZWl0aGVyIGEgZm9sZGVyLCBvciBhbiBvYmplY3Qgd2hvc2UgcGFyZW50IGhhcyBhIGZvbGRlci4uLiBhcG9sb2dpZXMsIHRoaXMgaXMgbm90IHRoZSBjbGVhcmVzdCBzcGVjLlxyXG4gKiAuLi4gaW50ZW50aW9uIGlzIHRoYXQgaXQgc2hvdWxkIHdvcmsgd2l0aCBhbnkgZ3VpIGVsZW1lbnQsIGluIHBhcnRpY3VsYXIgYW55IGhpdE9iamVjdCBpbiBpbnRlcmFjdGlvbi5qcy4uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSB7XHJcbiAgICB2YXIgZm9sZGVyID0gZ2V0Rm9sZGVyKGdyb3VwKTtcclxuICAgIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9sZGVyKGdyb3VwKSB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSByZXR1cm4gZ3JvdXAuZm9sZGVyO1xyXG4gICAgbGV0IG5vZGUgPSBncm91cC5wYXJlbnQ7XHJcbiAgICB3aGlsZSAoIW5vZGUuZm9sZGVyICYmIGdyb3VwLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgcmV0dXJuIG5vZGUuZm9sZGVyO1xyXG59XHJcblxyXG4vL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Qm94RnJvbU9iamVjdChib3gsIG9iaikge1xyXG4gIGNvbnN0IHdvbmt5R2VvbSA9IFtdO1xyXG4gIG9iai50cmF2ZXJzZShvID0+IHtcclxuICAgIGlmIChvLmdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemUgIT09IDMpIHtcclxuICAgICAgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ID0gZmFsc2U7XHJcbiAgICAgIHdvbmt5R2VvbS5wdXNoKG8uZ2VvbWV0cnkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGJveC5zZXRGcm9tT2JqZWN0KG9iaik7XHJcbiAgd29ua3lHZW9tLmZvckVhY2goZyA9PiBnLmlzQnVmZmVyR2VvbWV0cnkgPSB0cnVlKTtcclxuICByZXR1cm4gYm94O1xyXG59XHJcbiIsIi8qXHJcbiAqXHRAYXV0aG9yIHp6ODUgLyBodHRwOi8vdHdpdHRlci5jb20vYmx1cnNwbGluZSAvIGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2dcclxuICpcdEBhdXRob3IgY2VudGVyaW9ud2FyZSAvIGh0dHA6Ly93d3cuY2VudGVyaW9ud2FyZS5jb21cclxuICpcclxuICpcdFN1YmRpdmlzaW9uIEdlb21ldHJ5IE1vZGlmaWVyXHJcbiAqXHRcdHVzaW5nIExvb3AgU3ViZGl2aXNpb24gU2NoZW1lXHJcbiAqXHJcbiAqXHRSZWZlcmVuY2VzOlxyXG4gKlx0XHRodHRwOi8vZ3JhcGhpY3Muc3RhbmZvcmQuZWR1L35tZGZpc2hlci9zdWJkaXZpc2lvbi5odG1sXHJcbiAqXHRcdGh0dHA6Ly93d3cuaG9sbWVzM2QubmV0L2dyYXBoaWNzL3N1YmRpdmlzaW9uL1xyXG4gKlx0XHRodHRwOi8vd3d3LmNzLnJ1dGdlcnMuZWR1L35kZWNhcmxvL3JlYWRpbmdzL3N1YmRpdi1zZzAwYy5wZGZcclxuICpcclxuICpcdEtub3duIElzc3VlczpcclxuICpcdFx0LSBjdXJyZW50bHkgZG9lc24ndCBoYW5kbGUgXCJTaGFycCBFZGdlc1wiXHJcbiAqL1xyXG5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciA9IGZ1bmN0aW9uICggc3ViZGl2aXNpb25zICkge1xyXG5cclxuXHR0aGlzLnN1YmRpdmlzaW9ucyA9ICggc3ViZGl2aXNpb25zID09PSB1bmRlZmluZWQgKSA/IDEgOiBzdWJkaXZpc2lvbnM7XHJcblxyXG59O1xyXG5cclxuLy8gQXBwbGllcyB0aGUgXCJtb2RpZnlcIiBwYXR0ZXJuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLm1vZGlmeSA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7XHJcblxyXG5cdHZhciByZXBlYXRzID0gdGhpcy5zdWJkaXZpc2lvbnM7XHJcblxyXG5cdHdoaWxlICggcmVwZWF0cyAtLSA+IDAgKSB7XHJcblxyXG5cdFx0dGhpcy5zbW9vdGgoIGdlb21ldHJ5ICk7XHJcblxyXG5cdH1cclxuXHJcblx0Z2VvbWV0cnkuY29tcHV0ZUZhY2VOb3JtYWxzKCk7XHJcblx0Z2VvbWV0cnkuY29tcHV0ZVZlcnRleE5vcm1hbHMoKTtcclxuXHJcbn07XHJcblxyXG4oIGZ1bmN0aW9uKCkge1xyXG5cclxuXHQvLyBTb21lIGNvbnN0YW50c1xyXG5cdHZhciBXQVJOSU5HUyA9ICEgdHJ1ZTsgLy8gU2V0IHRvIHRydWUgZm9yIGRldmVsb3BtZW50XHJcblx0dmFyIEFCQyA9IFsgJ2EnLCAnYicsICdjJyBdO1xyXG5cclxuXHJcblx0ZnVuY3Rpb24gZ2V0RWRnZSggYSwgYiwgbWFwICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHJldHVybiBtYXBbIGtleSBdO1xyXG5cclxuXHR9XHJcblxyXG5cclxuXHRmdW5jdGlvbiBwcm9jZXNzRWRnZSggYSwgYiwgdmVydGljZXMsIG1hcCwgZmFjZSwgbWV0YVZlcnRpY2VzICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHZhciBlZGdlO1xyXG5cclxuXHRcdGlmICgga2V5IGluIG1hcCApIHtcclxuXHJcblx0XHRcdGVkZ2UgPSBtYXBbIGtleSBdO1xyXG5cclxuXHRcdH0gZWxzZSB7XHJcblxyXG5cdFx0XHR2YXIgdmVydGV4QSA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEEgXTtcclxuXHRcdFx0dmFyIHZlcnRleEIgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhCIF07XHJcblxyXG5cdFx0XHRlZGdlID0ge1xyXG5cclxuXHRcdFx0XHRhOiB2ZXJ0ZXhBLCAvLyBwb2ludGVyIHJlZmVyZW5jZVxyXG5cdFx0XHRcdGI6IHZlcnRleEIsXHJcblx0XHRcdFx0bmV3RWRnZTogbnVsbCxcclxuXHRcdFx0XHQvLyBhSW5kZXg6IGEsIC8vIG51bWJlcmVkIHJlZmVyZW5jZVxyXG5cdFx0XHRcdC8vIGJJbmRleDogYixcclxuXHRcdFx0XHRmYWNlczogW10gLy8gcG9pbnRlcnMgdG8gZmFjZVxyXG5cclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdG1hcFsga2V5IF0gPSBlZGdlO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRlZGdlLmZhY2VzLnB1c2goIGZhY2UgKTtcclxuXHJcblx0XHRtZXRhVmVydGljZXNbIGEgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblx0XHRtZXRhVmVydGljZXNbIGIgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGdlbmVyYXRlTG9va3VwcyggdmVydGljZXMsIGZhY2VzLCBtZXRhVmVydGljZXMsIGVkZ2VzICkge1xyXG5cclxuXHRcdHZhciBpLCBpbCwgZmFjZSwgZWRnZTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSB2ZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG1ldGFWZXJ0aWNlc1sgaSBdID0geyBlZGdlczogW10gfTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gZmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gZmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmEsIGZhY2UuYiwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYiwgZmFjZS5jLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5jLCBmYWNlLmEsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld0ZhY2UoIG5ld0ZhY2VzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld0ZhY2VzLnB1c2goIG5ldyBUSFJFRS5GYWNlMyggYSwgYiwgYyApICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbWlkcG9pbnQoIGEsIGIgKSB7XHJcblxyXG5cdFx0cmV0dXJuICggTWF0aC5hYnMoIGIgLSBhICkgLyAyICkgKyBNYXRoLm1pbiggYSwgYiApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld1V2KCBuZXdVdnMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3VXZzLnB1c2goIFsgYS5jbG9uZSgpLCBiLmNsb25lKCksIGMuY2xvbmUoKSBdICk7XHJcblxyXG5cdH1cclxuXHJcblx0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblx0Ly8gUGVyZm9ybXMgb25lIGl0ZXJhdGlvbiBvZiBTdWJkaXZpc2lvblxyXG5cdFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLnNtb290aCA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7IHJldHVybjsgLy8gc2pwdCBURU1QIFRPRE9cclxuXHJcblx0XHR2YXIgdG1wID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHR2YXIgb2xkVmVydGljZXMsIG9sZEZhY2VzLCBvbGRVdnM7XHJcblx0XHR2YXIgbmV3VmVydGljZXMsIG5ld0ZhY2VzLCBuZXdVVnMgPSBbXTtcclxuXHJcblx0XHR2YXIgbiwgbCwgaSwgaWwsIGosIGs7XHJcblx0XHR2YXIgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcztcclxuXHJcblx0XHQvLyBuZXcgc3R1ZmYuXHJcblx0XHR2YXIgc291cmNlRWRnZXMsIG5ld0VkZ2VWZXJ0aWNlcywgbmV3U291cmNlVmVydGljZXM7XHJcblxyXG5cdFx0b2xkVmVydGljZXMgPSBnZW9tZXRyeS52ZXJ0aWNlczsgLy8geyB4LCB5LCB6fVxyXG5cdFx0b2xkRmFjZXMgPSBnZW9tZXRyeS5mYWNlczsgLy8geyBhOiBvbGRWZXJ0ZXgxLCBiOiBvbGRWZXJ0ZXgyLCBjOiBvbGRWZXJ0ZXgzIH1cclxuXHRcdG9sZFV2cyA9IGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXTtcclxuXHJcblx0XHR2YXIgaGFzVXZzID0gb2xkVXZzICE9PSB1bmRlZmluZWQgJiYgb2xkVXZzLmxlbmd0aCA+IDA7XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqIFN0ZXAgMDogUHJlcHJvY2VzcyBHZW9tZXRyeSB0byBHZW5lcmF0ZSBlZGdlcyBMb29rdXBcclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRtZXRhVmVydGljZXMgPSBuZXcgQXJyYXkoIG9sZFZlcnRpY2VzLmxlbmd0aCApO1xyXG5cdFx0c291cmNlRWRnZXMgPSB7fTsgLy8gRWRnZSA9PiB7IG9sZFZlcnRleDEsIG9sZFZlcnRleDIsIGZhY2VzW10gIH1cclxuXHJcblx0XHRnZW5lcmF0ZUxvb2t1cHMoIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcyApO1xyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMS5cclxuXHRcdCAqXHRGb3IgZWFjaCBlZGdlLCBjcmVhdGUgYSBuZXcgRWRnZSBWZXJ0ZXgsXHJcblx0XHQgKlx0dGhlbiBwb3NpdGlvbiBpdC5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdFZGdlVmVydGljZXMgPSBbXTtcclxuXHRcdHZhciBvdGhlciwgY3VycmVudEVkZ2UsIG5ld0VkZ2UsIGZhY2U7XHJcblx0XHR2YXIgZWRnZVZlcnRleFdlaWdodCwgYWRqYWNlbnRWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RlZEZhY2VzO1xyXG5cclxuXHRcdGZvciAoIGkgaW4gc291cmNlRWRnZXMgKSB7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZSA9IHNvdXJjZUVkZ2VzWyBpIF07XHJcblx0XHRcdG5ld0VkZ2UgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDMgLyA4O1xyXG5cdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0Y29ubmVjdGVkRmFjZXMgPSBjdXJyZW50RWRnZS5mYWNlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHQvLyBjaGVjayBob3cgbWFueSBsaW5rZWQgZmFjZXMuIDIgc2hvdWxkIGJlIGNvcnJlY3QuXHJcblx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gaWYgbGVuZ3RoIGlzIG5vdCAyLCBoYW5kbGUgY29uZGl0aW9uXHJcblx0XHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDAuNTtcclxuXHRcdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnU3ViZGl2aXNpb24gTW9kaWZpZXI6IE51bWJlciBvZiBjb25uZWN0ZWQgZmFjZXMgIT0gMiwgaXM6ICcsIGNvbm5lY3RlZEZhY2VzLCBjdXJyZW50RWRnZSApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdFZGdlLmFkZFZlY3RvcnMoIGN1cnJlbnRFZGdlLmEsIGN1cnJlbnRFZGdlLmIgKS5tdWx0aXBseVNjYWxhciggZWRnZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBjb25uZWN0ZWRGYWNlczsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0ZmFjZSA9IGN1cnJlbnRFZGdlLmZhY2VzWyBqIF07XHJcblxyXG5cdFx0XHRcdGZvciAoIGsgPSAwOyBrIDwgMzsgayArKyApIHtcclxuXHJcblx0XHRcdFx0XHRvdGhlciA9IG9sZFZlcnRpY2VzWyBmYWNlWyBBQkNbIGsgXSBdIF07XHJcblx0XHRcdFx0XHRpZiAoIG90aGVyICE9PSBjdXJyZW50RWRnZS5hICYmIG90aGVyICE9PSBjdXJyZW50RWRnZS5iICkgYnJlYWs7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggYWRqYWNlbnRWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3RWRnZS5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UubmV3RWRnZSA9IG5ld0VkZ2VWZXJ0aWNlcy5sZW5ndGg7XHJcblx0XHRcdG5ld0VkZ2VWZXJ0aWNlcy5wdXNoKCBuZXdFZGdlICk7XHJcblxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhjdXJyZW50RWRnZSwgbmV3RWRnZSk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAyLlxyXG5cdFx0ICpcdFJlcG9zaXRpb24gZWFjaCBzb3VyY2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0dmFyIGJldGEsIHNvdXJjZVZlcnRleFdlaWdodCwgY29ubmVjdGluZ1ZlcnRleFdlaWdodDtcclxuXHRcdHZhciBjb25uZWN0aW5nRWRnZSwgY29ubmVjdGluZ0VkZ2VzLCBvbGRWZXJ0ZXgsIG5ld1NvdXJjZVZlcnRleDtcclxuXHRcdG5ld1NvdXJjZVZlcnRpY2VzID0gW107XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkVmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRvbGRWZXJ0ZXggPSBvbGRWZXJ0aWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCBhbGwgY29ubmVjdGluZyBlZGdlcyAodXNpbmcgbG9va3VwVGFibGUpXHJcblx0XHRcdGNvbm5lY3RpbmdFZGdlcyA9IG1ldGFWZXJ0aWNlc1sgaSBdLmVkZ2VzO1xyXG5cdFx0XHRuID0gY29ubmVjdGluZ0VkZ2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdGlmICggbiA9PSAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvIDE2O1xyXG5cclxuXHRcdFx0fSBlbHNlIGlmICggbiA+IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gKCA4ICogbiApOyAvLyBXYXJyZW4ncyBtb2RpZmllZCBmb3JtdWxhXHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBMb29wJ3Mgb3JpZ2luYWwgYmV0YSBmb3JtdWxhXHJcblx0XHRcdC8vIGJldGEgPSAxIC8gbiAqICggNS84IC0gTWF0aC5wb3coIDMvOCArIDEvNCAqIE1hdGguY29zKCAyICogTWF0aC4gUEkgLyBuICksIDIpICk7XHJcblxyXG5cdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxIC0gbiAqIGJldGE7XHJcblx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSBiZXRhO1xyXG5cclxuXHRcdFx0aWYgKCBuIDw9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGNyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXNcclxuXHRcdFx0XHQvLyBjb25zb2xlLndhcm4oJ2NyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXMnKTtcclxuXHJcblx0XHRcdFx0aWYgKCBuID09IDIgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzIgY29ubmVjdGluZyBlZGdlcycsIGNvbm5lY3RpbmdFZGdlcyApO1xyXG5cdFx0XHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMyAvIDQ7XHJcblx0XHRcdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRcdFx0Ly8gc291cmNlVmVydGV4V2VpZ2h0ID0gMTtcclxuXHRcdFx0XHRcdC8vIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ29ubHkgMSBjb25uZWN0aW5nIGVkZ2UnICk7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMCApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMCBjb25uZWN0aW5nIGVkZ2VzJyApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXggPSBvbGRWZXJ0ZXguY2xvbmUoKS5tdWx0aXBseVNjYWxhciggc291cmNlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IG47IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGNvbm5lY3RpbmdFZGdlID0gY29ubmVjdGluZ0VkZ2VzWyBqIF07XHJcblx0XHRcdFx0b3RoZXIgPSBjb25uZWN0aW5nRWRnZS5hICE9PSBvbGRWZXJ0ZXggPyBjb25uZWN0aW5nRWRnZS5hIDogY29ubmVjdGluZ0VkZ2UuYjtcclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleC5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGljZXMucHVzaCggbmV3U291cmNlVmVydGV4ICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMy5cclxuXHRcdCAqXHRHZW5lcmF0ZSBGYWNlcyBiZXR3ZWVuIHNvdXJjZSB2ZXJ0aWNlc1xyXG5cdFx0ICpcdGFuZCBlZGdlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld1ZlcnRpY2VzID0gbmV3U291cmNlVmVydGljZXMuY29uY2F0KCBuZXdFZGdlVmVydGljZXMgKTtcclxuXHRcdHZhciBzbCA9IG5ld1NvdXJjZVZlcnRpY2VzLmxlbmd0aCwgZWRnZTEsIGVkZ2UyLCBlZGdlMztcclxuXHRcdG5ld0ZhY2VzID0gW107XHJcblxyXG5cdFx0dmFyIHV2LCB4MCwgeDEsIHgyO1xyXG5cdFx0dmFyIHgzID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NCA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDUgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZEZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IG9sZEZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIHRoZSAzIG5ldyBlZGdlcyB2ZXJ0ZXggb2YgZWFjaCBvbGQgZmFjZVxyXG5cclxuXHRcdFx0ZWRnZTEgPSBnZXRFZGdlKCBmYWNlLmEsIGZhY2UuYiwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UyID0gZ2V0RWRnZSggZmFjZS5iLCBmYWNlLmMsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMyA9IGdldEVkZ2UoIGZhY2UuYywgZmFjZS5hLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IGZhY2VzLlxyXG5cclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGVkZ2UxLCBlZGdlMiwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYSwgZWRnZTEsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmIsIGVkZ2UyLCBlZGdlMSApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5jLCBlZGdlMywgZWRnZTIgKTtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IG5ldyB1didzXHJcblxyXG5cdFx0XHRpZiAoIGhhc1V2cyApIHtcclxuXHJcblx0XHRcdFx0dXYgPSBvbGRVdnNbIGkgXTtcclxuXHJcblx0XHRcdFx0eDAgPSB1dlsgMCBdO1xyXG5cdFx0XHRcdHgxID0gdXZbIDEgXTtcclxuXHRcdFx0XHR4MiA9IHV2WyAyIF07XHJcblxyXG5cdFx0XHRcdHgzLnNldCggbWlkcG9pbnQoIHgwLngsIHgxLnggKSwgbWlkcG9pbnQoIHgwLnksIHgxLnkgKSApO1xyXG5cdFx0XHRcdHg0LnNldCggbWlkcG9pbnQoIHgxLngsIHgyLnggKSwgbWlkcG9pbnQoIHgxLnksIHgyLnkgKSApO1xyXG5cdFx0XHRcdHg1LnNldCggbWlkcG9pbnQoIHgwLngsIHgyLnggKSwgbWlkcG9pbnQoIHgwLnksIHgyLnkgKSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MywgeDQsIHg1ICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDAsIHgzLCB4NSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MSwgeDQsIHgzICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDIsIHg1LCB4NCApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvLyBPdmVyd3JpdGUgb2xkIGFycmF5c1xyXG5cdFx0Z2VvbWV0cnkudmVydGljZXMgPSBuZXdWZXJ0aWNlcztcclxuXHRcdGdlb21ldHJ5LmZhY2VzID0gbmV3RmFjZXM7XHJcblx0XHRpZiAoIGhhc1V2cyApIGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXSA9IG5ld1VWcztcclxuXHJcblx0XHQvLyBjb25zb2xlLmxvZygnZG9uZScpO1xyXG5cclxuXHR9O1xyXG5cclxufSApKCk7XHJcbiIsInZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXG5cbm1vZHVsZS5leHBvcnRzID0gYW5BcnJheVxuXG5mdW5jdGlvbiBhbkFycmF5KGFycikge1xuICByZXR1cm4gKFxuICAgICAgIGFyci5CWVRFU19QRVJfRUxFTUVOVFxuICAgICYmIHN0ci5jYWxsKGFyci5idWZmZXIpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nXG4gICAgfHwgQXJyYXkuaXNBcnJheShhcnIpXG4gIClcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbnVtdHlwZShudW0sIGRlZikge1xuXHRyZXR1cm4gdHlwZW9mIG51bSA9PT0gJ251bWJlcidcblx0XHQ/IG51bSBcblx0XHQ6ICh0eXBlb2YgZGVmID09PSAnbnVtYmVyJyA/IGRlZiA6IDApXG59IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihkdHlwZSkge1xuICBzd2l0Y2ggKGR0eXBlKSB7XG4gICAgY2FzZSAnaW50OCc6XG4gICAgICByZXR1cm4gSW50OEFycmF5XG4gICAgY2FzZSAnaW50MTYnOlxuICAgICAgcmV0dXJuIEludDE2QXJyYXlcbiAgICBjYXNlICdpbnQzMic6XG4gICAgICByZXR1cm4gSW50MzJBcnJheVxuICAgIGNhc2UgJ3VpbnQ4JzpcbiAgICAgIHJldHVybiBVaW50OEFycmF5XG4gICAgY2FzZSAndWludDE2JzpcbiAgICAgIHJldHVybiBVaW50MTZBcnJheVxuICAgIGNhc2UgJ3VpbnQzMic6XG4gICAgICByZXR1cm4gVWludDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDMyJzpcbiAgICAgIHJldHVybiBGbG9hdDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDY0JzpcbiAgICAgIHJldHVybiBGbG9hdDY0QXJyYXlcbiAgICBjYXNlICdhcnJheSc6XG4gICAgICByZXR1cm4gQXJyYXlcbiAgICBjYXNlICd1aW50OF9jbGFtcGVkJzpcbiAgICAgIHJldHVybiBVaW50OENsYW1wZWRBcnJheVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUiA9IHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyA/IFJlZmxlY3QgOiBudWxsXG52YXIgUmVmbGVjdEFwcGx5ID0gUiAmJiB0eXBlb2YgUi5hcHBseSA9PT0gJ2Z1bmN0aW9uJ1xuICA/IFIuYXBwbHlcbiAgOiBmdW5jdGlvbiBSZWZsZWN0QXBwbHkodGFyZ2V0LCByZWNlaXZlciwgYXJncykge1xuICAgIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbCh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKTtcbiAgfVxuXG52YXIgUmVmbGVjdE93bktleXNcbmlmIChSICYmIHR5cGVvZiBSLm93bktleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgUmVmbGVjdE93bktleXMgPSBSLm93bktleXNcbn0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpXG4gICAgICAuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSk7XG4gIH07XG59IGVsc2Uge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBQcm9jZXNzRW1pdFdhcm5pbmcod2FybmluZykge1xuICBpZiAoY29uc29sZSAmJiBjb25zb2xlLndhcm4pIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbn1cblxudmFyIE51bWJlcklzTmFOID0gTnVtYmVyLmlzTmFOIHx8IGZ1bmN0aW9uIE51bWJlcklzTmFOKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIEV2ZW50RW1pdHRlcigpIHtcbiAgRXZlbnRFbWl0dGVyLmluaXQuY2FsbCh0aGlzKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xubW9kdWxlLmV4cG9ydHMub25jZSA9IG9uY2U7XG5cbi8vIEJhY2t3YXJkcy1jb21wYXQgd2l0aCBub2RlIDAuMTAueFxuRXZlbnRFbWl0dGVyLkV2ZW50RW1pdHRlciA9IEV2ZW50RW1pdHRlcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzID0gdW5kZWZpbmVkO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzQ291bnQgPSAwO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzID0gdW5kZWZpbmVkO1xuXG4vLyBCeSBkZWZhdWx0IEV2ZW50RW1pdHRlcnMgd2lsbCBwcmludCBhIHdhcm5pbmcgaWYgbW9yZSB0aGFuIDEwIGxpc3RlbmVycyBhcmVcbi8vIGFkZGVkIHRvIGl0LiBUaGlzIGlzIGEgdXNlZnVsIGRlZmF1bHQgd2hpY2ggaGVscHMgZmluZGluZyBtZW1vcnkgbGVha3MuXG52YXIgZGVmYXVsdE1heExpc3RlbmVycyA9IDEwO1xuXG5mdW5jdGlvbiBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKSB7XG4gIGlmICh0eXBlb2YgbGlzdGVuZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJsaXN0ZW5lclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGxpc3RlbmVyKTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRFbWl0dGVyLCAnZGVmYXVsdE1heExpc3RlbmVycycsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZGVmYXVsdE1heExpc3RlbmVycztcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbihhcmcpIHtcbiAgICBpZiAodHlwZW9mIGFyZyAhPT0gJ251bWJlcicgfHwgYXJnIDwgMCB8fCBOdW1iZXJJc05hTihhcmcpKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiZGVmYXVsdE1heExpc3RlbmVyc1wiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBhcmcgKyAnLicpO1xuICAgIH1cbiAgICBkZWZhdWx0TWF4TGlzdGVuZXJzID0gYXJnO1xuICB9XG59KTtcblxuRXZlbnRFbWl0dGVyLmluaXQgPSBmdW5jdGlvbigpIHtcblxuICBpZiAodGhpcy5fZXZlbnRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuX2V2ZW50cyA9PT0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHMpIHtcbiAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgfVxuXG4gIHRoaXMuX21heExpc3RlbmVycyA9IHRoaXMuX21heExpc3RlbmVycyB8fCB1bmRlZmluZWQ7XG59O1xuXG4vLyBPYnZpb3VzbHkgbm90IGFsbCBFbWl0dGVycyBzaG91bGQgYmUgbGltaXRlZCB0byAxMC4gVGhpcyBmdW5jdGlvbiBhbGxvd3Ncbi8vIHRoYXQgdG8gYmUgaW5jcmVhc2VkLiBTZXQgdG8gemVybyBmb3IgdW5saW1pdGVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBzZXRNYXhMaXN0ZW5lcnMobikge1xuICBpZiAodHlwZW9mIG4gIT09ICdudW1iZXInIHx8IG4gPCAwIHx8IE51bWJlcklzTmFOKG4pKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcIm5cIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgbiArICcuJyk7XG4gIH1cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5mdW5jdGlvbiBfZ2V0TWF4TGlzdGVuZXJzKHRoYXQpIHtcbiAgaWYgKHRoYXQuX21heExpc3RlbmVycyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgcmV0dXJuIHRoYXQuX21heExpc3RlbmVycztcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBnZXRNYXhMaXN0ZW5lcnMoKSB7XG4gIHJldHVybiBfZ2V0TWF4TGlzdGVuZXJzKHRoaXMpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24gZW1pdCh0eXBlKSB7XG4gIHZhciBhcmdzID0gW107XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgdmFyIGRvRXJyb3IgPSAodHlwZSA9PT0gJ2Vycm9yJyk7XG5cbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKVxuICAgIGRvRXJyb3IgPSAoZG9FcnJvciAmJiBldmVudHMuZXJyb3IgPT09IHVuZGVmaW5lZCk7XG4gIGVsc2UgaWYgKCFkb0Vycm9yKVxuICAgIHJldHVybiBmYWxzZTtcblxuICAvLyBJZiB0aGVyZSBpcyBubyAnZXJyb3InIGV2ZW50IGxpc3RlbmVyIHRoZW4gdGhyb3cuXG4gIGlmIChkb0Vycm9yKSB7XG4gICAgdmFyIGVyO1xuICAgIGlmIChhcmdzLmxlbmd0aCA+IDApXG4gICAgICBlciA9IGFyZ3NbMF07XG4gICAgaWYgKGVyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIE5vdGU6IFRoZSBjb21tZW50cyBvbiB0aGUgYHRocm93YCBsaW5lcyBhcmUgaW50ZW50aW9uYWwsIHRoZXkgc2hvd1xuICAgICAgLy8gdXAgaW4gTm9kZSdzIG91dHB1dCBpZiB0aGlzIHJlc3VsdHMgaW4gYW4gdW5oYW5kbGVkIGV4Y2VwdGlvbi5cbiAgICAgIHRocm93IGVyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICAgIH1cbiAgICAvLyBBdCBsZWFzdCBnaXZlIHNvbWUga2luZCBvZiBjb250ZXh0IHRvIHRoZSB1c2VyXG4gICAgdmFyIGVyciA9IG5ldyBFcnJvcignVW5oYW5kbGVkIGVycm9yLicgKyAoZXIgPyAnICgnICsgZXIubWVzc2FnZSArICcpJyA6ICcnKSk7XG4gICAgZXJyLmNvbnRleHQgPSBlcjtcbiAgICB0aHJvdyBlcnI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gIH1cblxuICB2YXIgaGFuZGxlciA9IGV2ZW50c1t0eXBlXTtcblxuICBpZiAoaGFuZGxlciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBmYWxzZTtcblxuICBpZiAodHlwZW9mIGhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBSZWZsZWN0QXBwbHkoaGFuZGxlciwgdGhpcywgYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGxlbiA9IGhhbmRsZXIubGVuZ3RoO1xuICAgIHZhciBsaXN0ZW5lcnMgPSBhcnJheUNsb25lKGhhbmRsZXIsIGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSlcbiAgICAgIFJlZmxlY3RBcHBseShsaXN0ZW5lcnNbaV0sIHRoaXMsIGFyZ3MpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5mdW5jdGlvbiBfYWRkTGlzdGVuZXIodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lciwgcHJlcGVuZCkge1xuICB2YXIgbTtcbiAgdmFyIGV2ZW50cztcbiAgdmFyIGV4aXN0aW5nO1xuXG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGFyZ2V0Ll9ldmVudHNDb3VudCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgLy8gVG8gYXZvaWQgcmVjdXJzaW9uIGluIHRoZSBjYXNlIHRoYXQgdHlwZSA9PT0gXCJuZXdMaXN0ZW5lclwiISBCZWZvcmVcbiAgICAvLyBhZGRpbmcgaXQgdG8gdGhlIGxpc3RlbmVycywgZmlyc3QgZW1pdCBcIm5ld0xpc3RlbmVyXCIuXG4gICAgaWYgKGV2ZW50cy5uZXdMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YXJnZXQuZW1pdCgnbmV3TGlzdGVuZXInLCB0eXBlLFxuICAgICAgICAgICAgICAgICAgbGlzdGVuZXIubGlzdGVuZXIgPyBsaXN0ZW5lci5saXN0ZW5lciA6IGxpc3RlbmVyKTtcblxuICAgICAgLy8gUmUtYXNzaWduIGBldmVudHNgIGJlY2F1c2UgYSBuZXdMaXN0ZW5lciBoYW5kbGVyIGNvdWxkIGhhdmUgY2F1c2VkIHRoZVxuICAgICAgLy8gdGhpcy5fZXZlbnRzIHRvIGJlIGFzc2lnbmVkIHRvIGEgbmV3IG9iamVjdFxuICAgICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gICAgfVxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdO1xuICB9XG5cbiAgaWYgKGV4aXN0aW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBPcHRpbWl6ZSB0aGUgY2FzZSBvZiBvbmUgbGlzdGVuZXIuIERvbid0IG5lZWQgdGhlIGV4dHJhIGFycmF5IG9iamVjdC5cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9IGxpc3RlbmVyO1xuICAgICsrdGFyZ2V0Ll9ldmVudHNDb3VudDtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGV4aXN0aW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBuZWVkIHRvIGNoYW5nZSB0byBhcnJheS5cbiAgICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID1cbiAgICAgICAgcHJlcGVuZCA/IFtsaXN0ZW5lciwgZXhpc3RpbmddIDogW2V4aXN0aW5nLCBsaXN0ZW5lcl07XG4gICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGdvdCBhbiBhcnJheSwganVzdCBhcHBlbmQuXG4gICAgfSBlbHNlIGlmIChwcmVwZW5kKSB7XG4gICAgICBleGlzdGluZy51bnNoaWZ0KGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RpbmcucHVzaChsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIGxpc3RlbmVyIGxlYWtcbiAgICBtID0gX2dldE1heExpc3RlbmVycyh0YXJnZXQpO1xuICAgIGlmIChtID4gMCAmJiBleGlzdGluZy5sZW5ndGggPiBtICYmICFleGlzdGluZy53YXJuZWQpIHtcbiAgICAgIGV4aXN0aW5nLndhcm5lZCA9IHRydWU7XG4gICAgICAvLyBObyBlcnJvciBjb2RlIGZvciB0aGlzIHNpbmNlIGl0IGlzIGEgV2FybmluZ1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICB2YXIgdyA9IG5ldyBFcnJvcignUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcubGVuZ3RoICsgJyAnICsgU3RyaW5nKHR5cGUpICsgJyBsaXN0ZW5lcnMgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRlZC4gVXNlIGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdpbmNyZWFzZSBsaW1pdCcpO1xuICAgICAgdy5uYW1lID0gJ01heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyc7XG4gICAgICB3LmVtaXR0ZXIgPSB0YXJnZXQ7XG4gICAgICB3LnR5cGUgPSB0eXBlO1xuICAgICAgdy5jb3VudCA9IGV4aXN0aW5nLmxlbmd0aDtcbiAgICAgIFByb2Nlc3NFbWl0V2FybmluZyh3KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyID0gZnVuY3Rpb24gYWRkTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIHRydWUpO1xuICAgIH07XG5cbmZ1bmN0aW9uIG9uY2VXcmFwcGVyKCkge1xuICBpZiAoIXRoaXMuZmlyZWQpIHtcbiAgICB0aGlzLnRhcmdldC5yZW1vdmVMaXN0ZW5lcih0aGlzLnR5cGUsIHRoaXMud3JhcEZuKTtcbiAgICB0aGlzLmZpcmVkID0gdHJ1ZTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQpO1xuICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmFwcGx5KHRoaXMudGFyZ2V0LCBhcmd1bWVudHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9vbmNlV3JhcCh0YXJnZXQsIHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBzdGF0ZSA9IHsgZmlyZWQ6IGZhbHNlLCB3cmFwRm46IHVuZGVmaW5lZCwgdGFyZ2V0OiB0YXJnZXQsIHR5cGU6IHR5cGUsIGxpc3RlbmVyOiBsaXN0ZW5lciB9O1xuICB2YXIgd3JhcHBlZCA9IG9uY2VXcmFwcGVyLmJpbmQoc3RhdGUpO1xuICB3cmFwcGVkLmxpc3RlbmVyID0gbGlzdGVuZXI7XG4gIHN0YXRlLndyYXBGbiA9IHdyYXBwZWQ7XG4gIHJldHVybiB3cmFwcGVkO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbiBvbmNlKHR5cGUsIGxpc3RlbmVyKSB7XG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICB0aGlzLm9uKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZE9uY2VMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZE9uY2VMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gICAgICB0aGlzLnByZXBlbmRMaXN0ZW5lcih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbi8vIEVtaXRzIGEgJ3JlbW92ZUxpc3RlbmVyJyBldmVudCBpZiBhbmQgb25seSBpZiB0aGUgbGlzdGVuZXIgd2FzIHJlbW92ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgdmFyIGxpc3QsIGV2ZW50cywgcG9zaXRpb24sIGksIG9yaWdpbmFsTGlzdGVuZXI7XG5cbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBsaXN0ID0gZXZlbnRzW3R5cGVdO1xuICAgICAgaWYgKGxpc3QgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGlmIChsaXN0ID09PSBsaXN0ZW5lciB8fCBsaXN0Lmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIpXG4gICAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgbGlzdC5saXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGxpc3QgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcG9zaXRpb24gPSAtMTtcblxuICAgICAgICBmb3IgKGkgPSBsaXN0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgaWYgKGxpc3RbaV0gPT09IGxpc3RlbmVyIHx8IGxpc3RbaV0ubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgICAgICBvcmlnaW5hbExpc3RlbmVyID0gbGlzdFtpXS5saXN0ZW5lcjtcbiAgICAgICAgICAgIHBvc2l0aW9uID0gaTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwb3NpdGlvbiA8IDApXG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSAwKVxuICAgICAgICAgIGxpc3Quc2hpZnQoKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgc3BsaWNlT25lKGxpc3QsIHBvc2l0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSlcbiAgICAgICAgICBldmVudHNbdHlwZV0gPSBsaXN0WzBdO1xuXG4gICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgb3JpZ2luYWxMaXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub2ZmID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyh0eXBlKSB7XG4gICAgICB2YXIgbGlzdGVuZXJzLCBldmVudHMsIGk7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIC8vIG5vdCBsaXN0ZW5pbmcgZm9yIHJlbW92ZUxpc3RlbmVyLCBubyBuZWVkIHRvIGVtaXRcbiAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50c1t0eXBlXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIC8vIGVtaXQgcmVtb3ZlTGlzdGVuZXIgZm9yIGFsbCBsaXN0ZW5lcnMgb24gYWxsIGV2ZW50c1xuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhldmVudHMpO1xuICAgICAgICB2YXIga2V5O1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICAgICAgaWYgKGtleSA9PT0gJ3JlbW92ZUxpc3RlbmVyJykgY29udGludWU7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygncmVtb3ZlTGlzdGVuZXInKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgbGlzdGVuZXJzID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgICBpZiAodHlwZW9mIGxpc3RlbmVycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVycyk7XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbmVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIExJRk8gb3JkZXJcbiAgICAgICAgZm9yIChpID0gbGlzdGVuZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbmZ1bmN0aW9uIF9saXN0ZW5lcnModGFyZ2V0LCB0eXBlLCB1bndyYXApIHtcbiAgdmFyIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG4gIGlmIChldmxpc3RlbmVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJylcbiAgICByZXR1cm4gdW53cmFwID8gW2V2bGlzdGVuZXIubGlzdGVuZXIgfHwgZXZsaXN0ZW5lcl0gOiBbZXZsaXN0ZW5lcl07XG5cbiAgcmV0dXJuIHVud3JhcCA/XG4gICAgdW53cmFwTGlzdGVuZXJzKGV2bGlzdGVuZXIpIDogYXJyYXlDbG9uZShldmxpc3RlbmVyLCBldmxpc3RlbmVyLmxlbmd0aCk7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24gbGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgdHJ1ZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJhd0xpc3RlbmVycyA9IGZ1bmN0aW9uIHJhd0xpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24oZW1pdHRlciwgdHlwZSkge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIubGlzdGVuZXJDb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBlbWl0dGVyLmxpc3RlbmVyQ291bnQodHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGxpc3RlbmVyQ291bnQuY2FsbChlbWl0dGVyLCB0eXBlKTtcbiAgfVxufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50ID0gbGlzdGVuZXJDb3VudDtcbmZ1bmN0aW9uIGxpc3RlbmVyQ291bnQodHlwZSkge1xuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKGV2bGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGV2bGlzdGVuZXIubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmV2ZW50TmFtZXMgPSBmdW5jdGlvbiBldmVudE5hbWVzKCkge1xuICByZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQgPiAwID8gUmVmbGVjdE93bktleXModGhpcy5fZXZlbnRzKSA6IFtdO1xufTtcblxuZnVuY3Rpb24gYXJyYXlDbG9uZShhcnIsIG4pIHtcbiAgdmFyIGNvcHkgPSBuZXcgQXJyYXkobik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKVxuICAgIGNvcHlbaV0gPSBhcnJbaV07XG4gIHJldHVybiBjb3B5O1xufVxuXG5mdW5jdGlvbiBzcGxpY2VPbmUobGlzdCwgaW5kZXgpIHtcbiAgZm9yICg7IGluZGV4ICsgMSA8IGxpc3QubGVuZ3RoOyBpbmRleCsrKVxuICAgIGxpc3RbaW5kZXhdID0gbGlzdFtpbmRleCArIDFdO1xuICBsaXN0LnBvcCgpO1xufVxuXG5mdW5jdGlvbiB1bndyYXBMaXN0ZW5lcnMoYXJyKSB7XG4gIHZhciByZXQgPSBuZXcgQXJyYXkoYXJyLmxlbmd0aCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcmV0Lmxlbmd0aDsgKytpKSB7XG4gICAgcmV0W2ldID0gYXJyW2ldLmxpc3RlbmVyIHx8IGFycltpXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvbmNlKGVtaXR0ZXIsIG5hbWUpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBmdW5jdGlvbiBlcnJvckxpc3RlbmVyKGVycikge1xuICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcihuYW1lLCByZXNvbHZlcik7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlcigpIHtcbiAgICAgIGlmICh0eXBlb2YgZW1pdHRlci5yZW1vdmVMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIGVycm9yTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShbXS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO1xuICAgIH07XG5cbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgcmVzb2x2ZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICBpZiAobmFtZSAhPT0gJ2Vycm9yJykge1xuICAgICAgYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgZXJyb3JMaXN0ZW5lciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGhhbmRsZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCAnZXJyb3InLCBoYW5kbGVyLCBmbGFncyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIGxpc3RlbmVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgZW1pdHRlci5vbmNlKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW1pdHRlci5vbihuYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBFdmVudFRhcmdldCBkb2VzIG5vdCBoYXZlIGBlcnJvcmAgZXZlbnQgc2VtYW50aWNzIGxpa2UgTm9kZVxuICAgIC8vIEV2ZW50RW1pdHRlcnMsIHdlIGRvIG5vdCBsaXN0ZW4gZm9yIGBlcnJvcmAgZXZlbnRzIGhlcmUuXG4gICAgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmN0aW9uIHdyYXBMaXN0ZW5lcihhcmcpIHtcbiAgICAgIC8vIElFIGRvZXMgbm90IGhhdmUgYnVpbHRpbiBgeyBvbmNlOiB0cnVlIH1gIHN1cHBvcnQgc28gd2VcbiAgICAgIC8vIGhhdmUgdG8gZG8gaXQgbWFudWFsbHkuXG4gICAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgd3JhcExpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIGxpc3RlbmVyKGFyZyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwiZW1pdHRlclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBlbWl0dGVyKTtcbiAgfVxufVxuIiwiaWYgKHR5cGVvZiBPYmplY3QuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gIC8vIGltcGxlbWVudGF0aW9uIGZyb20gc3RhbmRhcmQgbm9kZS5qcyAndXRpbCcgbW9kdWxlXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICAgICAgdmFsdWU6IGN0b3IsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9O1xufSBlbHNlIHtcbiAgLy8gb2xkIHNjaG9vbCBzaGltIGZvciBvbGQgYnJvd3NlcnNcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgdmFyIFRlbXBDdG9yID0gZnVuY3Rpb24gKCkge31cbiAgICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGVcbiAgICAgIGN0b3IucHJvdG90eXBlID0gbmV3IFRlbXBDdG9yKClcbiAgICAgIGN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY3RvclxuICAgIH1cbiAgfVxufVxuIiwiLyohXG4gKiBEZXRlcm1pbmUgaWYgYW4gb2JqZWN0IGlzIGEgQnVmZmVyXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG4vLyBUaGUgX2lzQnVmZmVyIGNoZWNrIGlzIGZvciBTYWZhcmkgNS03IHN1cHBvcnQsIGJlY2F1c2UgaXQncyBtaXNzaW5nXG4vLyBPYmplY3QucHJvdG90eXBlLmNvbnN0cnVjdG9yLiBSZW1vdmUgdGhpcyBldmVudHVhbGx5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIChpc0J1ZmZlcihvYmopIHx8IGlzU2xvd0J1ZmZlcihvYmopIHx8ICEhb2JqLl9pc0J1ZmZlcilcbn1cblxuZnVuY3Rpb24gaXNCdWZmZXIgKG9iaikge1xuICByZXR1cm4gISFvYmouY29uc3RydWN0b3IgJiYgdHlwZW9mIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIob2JqKVxufVxuXG4vLyBGb3IgTm9kZSB2MC4xMCBzdXBwb3J0LiBSZW1vdmUgdGhpcyBldmVudHVhbGx5LlxuZnVuY3Rpb24gaXNTbG93QnVmZmVyIChvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmoucmVhZEZsb2F0TEUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5zbGljZSA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0J1ZmZlcihvYmouc2xpY2UoMCwgMCkpXG59XG4iLCJ2YXIgd29yZFdyYXAgPSByZXF1aXJlKCd3b3JkLXdyYXBwZXInKVxudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKVxudmFyIG51bWJlciA9IHJlcXVpcmUoJ2FzLW51bWJlcicpXG5cbnZhciBYX0hFSUdIVFMgPSBbJ3gnLCAnZScsICdhJywgJ28nLCAnbicsICdzJywgJ3InLCAnYycsICd1JywgJ20nLCAndicsICd3JywgJ3onXVxudmFyIE1fV0lEVEhTID0gWydtJywgJ3cnXVxudmFyIENBUF9IRUlHSFRTID0gWydIJywgJ0knLCAnTicsICdFJywgJ0YnLCAnSycsICdMJywgJ1QnLCAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onXVxuXG5cbnZhciBUQUJfSUQgPSAnXFx0Jy5jaGFyQ29kZUF0KDApXG52YXIgU1BBQ0VfSUQgPSAnICcuY2hhckNvZGVBdCgwKVxudmFyIEFMSUdOX0xFRlQgPSAwLCBcbiAgICBBTElHTl9DRU5URVIgPSAxLCBcbiAgICBBTElHTl9SSUdIVCA9IDJcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVMYXlvdXQob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dExheW91dChvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRMYXlvdXQob3B0KSB7XG4gIHRoaXMuZ2x5cGhzID0gW11cbiAgdGhpcy5fbWVhc3VyZSA9IHRoaXMuY29tcHV0ZU1ldHJpY3MuYmluZCh0aGlzKVxuICB0aGlzLnVwZGF0ZShvcHQpXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKG9wdCkge1xuICBvcHQgPSB4dGVuZCh7XG4gICAgbWVhc3VyZTogdGhpcy5fbWVhc3VyZVxuICB9LCBvcHQpXG4gIHRoaXMuX29wdCA9IG9wdFxuICB0aGlzLl9vcHQudGFiU2l6ZSA9IG51bWJlcih0aGlzLl9vcHQudGFiU2l6ZSwgNClcblxuICBpZiAoIW9wdC5mb250KVxuICAgIHRocm93IG5ldyBFcnJvcignbXVzdCBwcm92aWRlIGEgdmFsaWQgYml0bWFwIGZvbnQnKVxuXG4gIHZhciBnbHlwaHMgPSB0aGlzLmdseXBoc1xuICB2YXIgdGV4dCA9IG9wdC50ZXh0fHwnJyBcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuICB0aGlzLl9zZXR1cFNwYWNlR2x5cGhzKGZvbnQpXG4gIFxuICB2YXIgbGluZXMgPSB3b3JkV3JhcC5saW5lcyh0ZXh0LCBvcHQpXG4gIHZhciBtaW5XaWR0aCA9IG9wdC53aWR0aCB8fCAwXG5cbiAgLy9jbGVhciBnbHlwaHNcbiAgZ2x5cGhzLmxlbmd0aCA9IDBcblxuICAvL2dldCBtYXggbGluZSB3aWR0aFxuICB2YXIgbWF4TGluZVdpZHRoID0gbGluZXMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGxpbmUpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgocHJldiwgbGluZS53aWR0aCwgbWluV2lkdGgpXG4gIH0sIDApXG5cbiAgLy90aGUgcGVuIHBvc2l0aW9uXG4gIHZhciB4ID0gMFxuICB2YXIgeSA9IDBcbiAgdmFyIGxpbmVIZWlnaHQgPSBudW1iZXIob3B0LmxpbmVIZWlnaHQsIGZvbnQuY29tbW9uLmxpbmVIZWlnaHQpXG4gIHZhciBiYXNlbGluZSA9IGZvbnQuY29tbW9uLmJhc2VcbiAgdmFyIGRlc2NlbmRlciA9IGxpbmVIZWlnaHQtYmFzZWxpbmVcbiAgdmFyIGxldHRlclNwYWNpbmcgPSBvcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBoZWlnaHQgPSBsaW5lSGVpZ2h0ICogbGluZXMubGVuZ3RoIC0gZGVzY2VuZGVyXG4gIHZhciBhbGlnbiA9IGdldEFsaWduVHlwZSh0aGlzLl9vcHQuYWxpZ24pXG5cbiAgLy9kcmF3IHRleHQgYWxvbmcgYmFzZWxpbmVcbiAgeSAtPSBoZWlnaHRcbiAgXG4gIC8vdGhlIG1ldHJpY3MgZm9yIHRoaXMgdGV4dCBsYXlvdXRcbiAgdGhpcy5fd2lkdGggPSBtYXhMaW5lV2lkdGhcbiAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0XG4gIHRoaXMuX2Rlc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBiYXNlbGluZVxuICB0aGlzLl9iYXNlbGluZSA9IGJhc2VsaW5lXG4gIHRoaXMuX3hIZWlnaHQgPSBnZXRYSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2NhcEhlaWdodCA9IGdldENhcEhlaWdodChmb250KVxuICB0aGlzLl9saW5lSGVpZ2h0ID0gbGluZUhlaWdodFxuICB0aGlzLl9hc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBkZXNjZW5kZXIgLSB0aGlzLl94SGVpZ2h0XG4gICAgXG4gIC8vbGF5b3V0IGVhY2ggZ2x5cGhcbiAgdmFyIHNlbGYgPSB0aGlzXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSwgbGluZUluZGV4KSB7XG4gICAgdmFyIHN0YXJ0ID0gbGluZS5zdGFydFxuICAgIHZhciBlbmQgPSBsaW5lLmVuZFxuICAgIHZhciBsaW5lV2lkdGggPSBsaW5lLndpZHRoXG4gICAgdmFyIGxhc3RHbHlwaFxuICAgIFxuICAgIC8vZm9yIGVhY2ggZ2x5cGggaW4gdGhhdCBsaW5lLi4uXG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQ7IGkrKykge1xuICAgICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgICB2YXIgZ2x5cGggPSBzZWxmLmdldEdseXBoKGZvbnQsIGlkKVxuICAgICAgaWYgKGdseXBoKSB7XG4gICAgICAgIGlmIChsYXN0R2x5cGgpIFxuICAgICAgICAgIHggKz0gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKVxuXG4gICAgICAgIHZhciB0eCA9IHhcbiAgICAgICAgaWYgKGFsaWduID09PSBBTElHTl9DRU5URVIpIFxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKS8yXG4gICAgICAgIGVsc2UgaWYgKGFsaWduID09PSBBTElHTl9SSUdIVClcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aClcblxuICAgICAgICBnbHlwaHMucHVzaCh7XG4gICAgICAgICAgcG9zaXRpb246IFt0eCwgeV0sXG4gICAgICAgICAgZGF0YTogZ2x5cGgsXG4gICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgbGluZTogbGluZUluZGV4XG4gICAgICAgIH0pICBcblxuICAgICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgICAgeCArPSBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL25leHQgbGluZSBkb3duXG4gICAgeSArPSBsaW5lSGVpZ2h0XG4gICAgeCA9IDBcbiAgfSlcbiAgdGhpcy5fbGluZXNUb3RhbCA9IGxpbmVzLmxlbmd0aDtcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuX3NldHVwU3BhY2VHbHlwaHMgPSBmdW5jdGlvbihmb250KSB7XG4gIC8vVGhlc2UgYXJlIGZhbGxiYWNrcywgd2hlbiB0aGUgZm9udCBkb2Vzbid0IGluY2x1ZGVcbiAgLy8nICcgb3IgJ1xcdCcgZ2x5cGhzXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IG51bGxcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IG51bGxcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuXG5cbiAgLy90cnkgdG8gZ2V0IHNwYWNlIGdseXBoXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlICdtJyBvciAndycgZ2x5cGhzXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlIGZpcnN0IGdseXBoIGF2YWlsYWJsZVxuICB2YXIgc3BhY2UgPSBnZXRHbHlwaEJ5SWQoZm9udCwgU1BBQ0VfSUQpIFxuICAgICAgICAgIHx8IGdldE1HbHlwaChmb250KSBcbiAgICAgICAgICB8fCBmb250LmNoYXJzWzBdXG5cbiAgLy9hbmQgY3JlYXRlIGEgZmFsbGJhY2sgZm9yIHRhYlxuICB2YXIgdGFiV2lkdGggPSB0aGlzLl9vcHQudGFiU2l6ZSAqIHNwYWNlLnhhZHZhbmNlXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IHNwYWNlXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSB4dGVuZChzcGFjZSwge1xuICAgIHg6IDAsIHk6IDAsIHhhZHZhbmNlOiB0YWJXaWR0aCwgaWQ6IFRBQl9JRCwgXG4gICAgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDAsIGhlaWdodDogMFxuICB9KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5nZXRHbHlwaCA9IGZ1bmN0aW9uKGZvbnQsIGlkKSB7XG4gIHZhciBnbHlwaCA9IGdldEdseXBoQnlJZChmb250LCBpZClcbiAgaWYgKGdseXBoKVxuICAgIHJldHVybiBnbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gVEFCX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tUYWJHbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gU1BBQ0VfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGhcbiAgcmV0dXJuIG51bGxcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuY29tcHV0ZU1ldHJpY3MgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICB2YXIgbGV0dGVyU3BhY2luZyA9IHRoaXMuX29wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGZvbnQgPSB0aGlzLl9vcHQuZm9udFxuICB2YXIgY3VyUGVuID0gMFxuICB2YXIgY3VyV2lkdGggPSAwXG4gIHZhciBjb3VudCA9IDBcbiAgdmFyIGdseXBoXG4gIHZhciBsYXN0R2x5cGhcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgZW5kOiBzdGFydCxcbiAgICAgIHdpZHRoOiAwXG4gICAgfVxuICB9XG5cbiAgZW5kID0gTWF0aC5taW4odGV4dC5sZW5ndGgsIGVuZClcbiAgZm9yICh2YXIgaT1zdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgdmFyIGdseXBoID0gdGhpcy5nZXRHbHlwaChmb250LCBpZClcblxuICAgIGlmIChnbHlwaCkge1xuICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICB2YXIgeG9mZiA9IGdseXBoLnhvZmZzZXRcbiAgICAgIHZhciBrZXJuID0gbGFzdEdseXBoID8gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKSA6IDBcbiAgICAgIGN1clBlbiArPSBrZXJuXG5cbiAgICAgIHZhciBuZXh0UGVuID0gY3VyUGVuICsgZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICB2YXIgbmV4dFdpZHRoID0gY3VyUGVuICsgZ2x5cGgud2lkdGhcblxuICAgICAgLy93ZSd2ZSBoaXQgb3VyIGxpbWl0OyB3ZSBjYW4ndCBtb3ZlIG9udG8gdGhlIG5leHQgZ2x5cGhcbiAgICAgIGlmIChuZXh0V2lkdGggPj0gd2lkdGggfHwgbmV4dFBlbiA+PSB3aWR0aClcbiAgICAgICAgYnJlYWtcblxuICAgICAgLy9vdGhlcndpc2UgY29udGludWUgYWxvbmcgb3VyIGxpbmVcbiAgICAgIGN1clBlbiA9IG5leHRQZW5cbiAgICAgIGN1cldpZHRoID0gbmV4dFdpZHRoXG4gICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgIH1cbiAgICBjb3VudCsrXG4gIH1cbiAgXG4gIC8vbWFrZSBzdXJlIHJpZ2h0bW9zdCBlZGdlIGxpbmVzIHVwIHdpdGggcmVuZGVyZWQgZ2x5cGhzXG4gIGlmIChsYXN0R2x5cGgpXG4gICAgY3VyV2lkdGggKz0gbGFzdEdseXBoLnhvZmZzZXRcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbmQ6IHN0YXJ0ICsgY291bnQsXG4gICAgd2lkdGg6IGN1cldpZHRoXG4gIH1cbn1cblxuLy9nZXR0ZXJzIGZvciB0aGUgcHJpdmF0ZSB2YXJzXG47Wyd3aWR0aCcsICdoZWlnaHQnLCBcbiAgJ2Rlc2NlbmRlcicsICdhc2NlbmRlcicsXG4gICd4SGVpZ2h0JywgJ2Jhc2VsaW5lJyxcbiAgJ2NhcEhlaWdodCcsXG4gICdsaW5lSGVpZ2h0JyBdLmZvckVhY2goYWRkR2V0dGVyKVxuXG5mdW5jdGlvbiBhZGRHZXR0ZXIobmFtZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVGV4dExheW91dC5wcm90b3R5cGUsIG5hbWUsIHtcbiAgICBnZXQ6IHdyYXBwZXIobmFtZSksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pXG59XG5cbi8vY3JlYXRlIGxvb2t1cHMgZm9yIHByaXZhdGUgdmFyc1xuZnVuY3Rpb24gd3JhcHBlcihuYW1lKSB7XG4gIHJldHVybiAobmV3IEZ1bmN0aW9uKFtcbiAgICAncmV0dXJuIGZ1bmN0aW9uICcrbmFtZSsnKCkgeycsXG4gICAgJyAgcmV0dXJuIHRoaXMuXycrbmFtZSxcbiAgICAnfSdcbiAgXS5qb2luKCdcXG4nKSkpKClcbn1cblxuZnVuY3Rpb24gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKSB7XG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBnbHlwaElkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICBpZiAoZ2x5cGhJZHggPj0gMClcbiAgICByZXR1cm4gZm9udC5jaGFyc1tnbHlwaElkeF1cbiAgcmV0dXJuIG51bGxcbn1cblxuZnVuY3Rpb24gZ2V0WEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxYX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBYX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRNR2x5cGgoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8TV9XSURUSFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBNX1dJRFRIU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0Q2FwSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPENBUF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gQ0FQX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRLZXJuaW5nKGZvbnQsIGxlZnQsIHJpZ2h0KSB7XG4gIGlmICghZm9udC5rZXJuaW5ncyB8fCBmb250Lmtlcm5pbmdzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gMFxuXG4gIHZhciB0YWJsZSA9IGZvbnQua2VybmluZ3NcbiAgZm9yICh2YXIgaT0wOyBpPHRhYmxlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtlcm4gPSB0YWJsZVtpXVxuICAgIGlmIChrZXJuLmZpcnN0ID09PSBsZWZ0ICYmIGtlcm4uc2Vjb25kID09PSByaWdodClcbiAgICAgIHJldHVybiBrZXJuLmFtb3VudFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEFsaWduVHlwZShhbGlnbikge1xuICBpZiAoYWxpZ24gPT09ICdjZW50ZXInKVxuICAgIHJldHVybiBBTElHTl9DRU5URVJcbiAgZWxzZSBpZiAoYWxpZ24gPT09ICdyaWdodCcpXG4gICAgcmV0dXJuIEFMSUdOX1JJR0hUXG4gIHJldHVybiBBTElHTl9MRUZUXG59XG5cbmZ1bmN0aW9uIGZpbmRDaGFyIChhcnJheSwgdmFsdWUsIHN0YXJ0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMFxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnJheVtpXS5pZCA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG4gIHJldHVybiAtMVxufSIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlQk1Gb250QXNjaWkoZGF0YSkge1xuICBpZiAoIWRhdGEpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIHByb3ZpZGVkJylcbiAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKS50cmltKClcblxuICB2YXIgb3V0cHV0ID0ge1xuICAgIHBhZ2VzOiBbXSxcbiAgICBjaGFyczogW10sXG4gICAga2VybmluZ3M6IFtdXG4gIH1cblxuICB2YXIgbGluZXMgPSBkYXRhLnNwbGl0KC9cXHJcXG4/fFxcbi9nKVxuXG4gIGlmIChsaW5lcy5sZW5ndGggPT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIGluIEJNRm9udCBmaWxlJylcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxpbmVEYXRhID0gc3BsaXRMaW5lKGxpbmVzW2ldLCBpKVxuICAgIGlmICghbGluZURhdGEpIC8vc2tpcCBlbXB0eSBsaW5lc1xuICAgICAgY29udGludWVcblxuICAgIGlmIChsaW5lRGF0YS5rZXkgPT09ICdwYWdlJykge1xuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmlkICE9PSAnbnVtYmVyJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGlkPU4nKVxuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmZpbGUgIT09ICdzdHJpbmcnKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgZmlsZT1cInBhdGhcIicpXG4gICAgICBvdXRwdXQucGFnZXNbbGluZURhdGEuZGF0YS5pZF0gPSBsaW5lRGF0YS5kYXRhLmZpbGVcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXJzJyB8fCBsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5ncycpIHtcbiAgICAgIC8vLi4uIGRvIG5vdGhpbmcgZm9yIHRoZXNlIHR3byAuLi5cbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXInKSB7XG4gICAgICBvdXRwdXQuY2hhcnMucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAna2VybmluZycpIHtcbiAgICAgIG91dHB1dC5rZXJuaW5ncy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dFtsaW5lRGF0YS5rZXldID0gbGluZURhdGEuZGF0YVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXRcbn1cblxuZnVuY3Rpb24gc3BsaXRMaW5lKGxpbmUsIGlkeCkge1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9cXHQrL2csICcgJykudHJpbSgpXG4gIGlmICghbGluZSlcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBzcGFjZSA9IGxpbmUuaW5kZXhPZignICcpXG4gIGlmIChzcGFjZSA9PT0gLTEpIFxuICAgIHRocm93IG5ldyBFcnJvcihcIm5vIG5hbWVkIHJvdyBhdCBsaW5lIFwiICsgaWR4KVxuXG4gIHZhciBrZXkgPSBsaW5lLnN1YnN0cmluZygwLCBzcGFjZSlcblxuICBsaW5lID0gbGluZS5zdWJzdHJpbmcoc3BhY2UgKyAxKVxuICAvL2NsZWFyIFwibGV0dGVyXCIgZmllbGQgYXMgaXQgaXMgbm9uLXN0YW5kYXJkIGFuZFxuICAvL3JlcXVpcmVzIGFkZGl0aW9uYWwgY29tcGxleGl0eSB0byBwYXJzZSBcIiAvID0gc3ltYm9sc1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9sZXR0ZXI9W1xcJ1xcXCJdXFxTK1tcXCdcXFwiXS9naSwgJycpICBcbiAgbGluZSA9IGxpbmUuc3BsaXQoXCI9XCIpXG4gIGxpbmUgPSBsaW5lLm1hcChmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gc3RyLnRyaW0oKS5tYXRjaCgoLyhcIi4qP1wifFteXCJcXHNdKykrKD89XFxzKnxcXHMqJCkvZykpXG4gIH0pXG5cbiAgdmFyIGRhdGEgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZHQgPSBsaW5lW2ldXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMF0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChpID09PSBsaW5lLmxlbmd0aCAtIDEpIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMV0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgdmFyIG91dCA9IHtcbiAgICBrZXk6IGtleSxcbiAgICBkYXRhOiB7fVxuICB9XG5cbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICBvdXQuZGF0YVt2LmtleV0gPSB2LmRhdGE7XG4gIH0pXG5cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiBwYXJzZURhdGEoZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFwiXCJcblxuICBpZiAoZGF0YS5pbmRleE9mKCdcIicpID09PSAwIHx8IGRhdGEuaW5kZXhPZihcIidcIikgPT09IDApXG4gICAgcmV0dXJuIGRhdGEuc3Vic3RyaW5nKDEsIGRhdGEubGVuZ3RoIC0gMSlcbiAgaWYgKGRhdGEuaW5kZXhPZignLCcpICE9PSAtMSlcbiAgICByZXR1cm4gcGFyc2VJbnRMaXN0KGRhdGEpXG4gIHJldHVybiBwYXJzZUludChkYXRhLCAxMClcbn1cblxuZnVuY3Rpb24gcGFyc2VJbnRMaXN0KGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24odmFsKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbCwgMTApXG4gIH0pXG59IiwidmFyIGR0eXBlID0gcmVxdWlyZSgnZHR5cGUnKVxudmFyIGFuQXJyYXkgPSByZXF1aXJlKCdhbi1hcnJheScpXG52YXIgaXNCdWZmZXIgPSByZXF1aXJlKCdpcy1idWZmZXInKVxuXG52YXIgQ1cgPSBbMCwgMiwgM11cbnZhciBDQ1cgPSBbMiwgMSwgM11cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVRdWFkRWxlbWVudHMoYXJyYXksIG9wdCkge1xuICAgIC8vaWYgdXNlciBkaWRuJ3Qgc3BlY2lmeSBhbiBvdXRwdXQgYXJyYXlcbiAgICBpZiAoIWFycmF5IHx8ICEoYW5BcnJheShhcnJheSkgfHwgaXNCdWZmZXIoYXJyYXkpKSkge1xuICAgICAgICBvcHQgPSBhcnJheSB8fCB7fVxuICAgICAgICBhcnJheSA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdCA9PT0gJ251bWJlcicpIC8vYmFja3dhcmRzLWNvbXBhdGlibGVcbiAgICAgICAgb3B0ID0geyBjb3VudDogb3B0IH1cbiAgICBlbHNlXG4gICAgICAgIG9wdCA9IG9wdCB8fCB7fVxuXG4gICAgdmFyIHR5cGUgPSB0eXBlb2Ygb3B0LnR5cGUgPT09ICdzdHJpbmcnID8gb3B0LnR5cGUgOiAndWludDE2J1xuICAgIHZhciBjb3VudCA9IHR5cGVvZiBvcHQuY291bnQgPT09ICdudW1iZXInID8gb3B0LmNvdW50IDogMVxuICAgIHZhciBzdGFydCA9IChvcHQuc3RhcnQgfHwgMCkgXG5cbiAgICB2YXIgZGlyID0gb3B0LmNsb2Nrd2lzZSAhPT0gZmFsc2UgPyBDVyA6IENDVyxcbiAgICAgICAgYSA9IGRpclswXSwgXG4gICAgICAgIGIgPSBkaXJbMV0sXG4gICAgICAgIGMgPSBkaXJbMl1cblxuICAgIHZhciBudW1JbmRpY2VzID0gY291bnQgKiA2XG5cbiAgICB2YXIgaW5kaWNlcyA9IGFycmF5IHx8IG5ldyAoZHR5cGUodHlwZSkpKG51bUluZGljZXMpXG4gICAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgbnVtSW5kaWNlczsgaSArPSA2LCBqICs9IDQpIHtcbiAgICAgICAgdmFyIHggPSBpICsgc3RhcnRcbiAgICAgICAgaW5kaWNlc1t4ICsgMF0gPSBqICsgMFxuICAgICAgICBpbmRpY2VzW3ggKyAxXSA9IGogKyAxXG4gICAgICAgIGluZGljZXNbeCArIDJdID0gaiArIDJcbiAgICAgICAgaW5kaWNlc1t4ICsgM10gPSBqICsgYVxuICAgICAgICBpbmRpY2VzW3ggKyA0XSA9IGogKyBiXG4gICAgICAgIGluZGljZXNbeCArIDVdID0gaiArIGNcbiAgICB9XG4gICAgcmV0dXJuIGluZGljZXNcbn0iLCJ2YXIgY3JlYXRlTGF5b3V0ID0gcmVxdWlyZSgnbGF5b3V0LWJtZm9udC10ZXh0JylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBjcmVhdGVJbmRpY2VzID0gcmVxdWlyZSgncXVhZC1pbmRpY2VzJylcblxudmFyIHZlcnRpY2VzID0gcmVxdWlyZSgnLi9saWIvdmVydGljZXMnKVxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi9saWIvdXRpbHMnKVxuXG52YXIgQmFzZSA9IFRIUkVFLkJ1ZmZlckdlb21ldHJ5XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0R2VvbWV0cnkob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0R2VvbWV0cnkgKG9wdCkge1xuICBCYXNlLmNhbGwodGhpcylcblxuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgdGhlc2UgYXMgZGVmYXVsdCB2YWx1ZXMgZm9yIGFueSBzdWJzZXF1ZW50XG4gIC8vIGNhbGxzIHRvIHVwZGF0ZSgpXG4gIHRoaXMuX29wdCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdClcblxuICAvLyBhbHNvIGRvIGFuIGluaXRpYWwgc2V0dXAuLi5cbiAgaWYgKG9wdCkgdGhpcy51cGRhdGUob3B0KVxufVxuXG5pbmhlcml0cyhUZXh0R2VvbWV0cnksIEJhc2UpXG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKG9wdCkge1xuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgY29uc3RydWN0b3IgZGVmYXVsdHNcbiAgb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3B0LCBvcHQpXG5cbiAgaWYgKCFvcHQuZm9udCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3BlY2lmeSBhIHsgZm9udCB9IGluIG9wdGlvbnMnKVxuICB9XG5cbiAgdGhpcy5sYXlvdXQgPSBjcmVhdGVMYXlvdXQob3B0KVxuXG4gIC8vIGdldCB2ZWMyIHRleGNvb3Jkc1xuICB2YXIgZmxpcFkgPSBvcHQuZmxpcFkgIT09IGZhbHNlXG5cbiAgLy8gdGhlIGRlc2lyZWQgQk1Gb250IGRhdGFcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuXG4gIC8vIGRldGVybWluZSB0ZXh0dXJlIHNpemUgZnJvbSBmb250IGZpbGVcbiAgdmFyIHRleFdpZHRoID0gZm9udC5jb21tb24uc2NhbGVXXG4gIHZhciB0ZXhIZWlnaHQgPSBmb250LmNvbW1vbi5zY2FsZUhcblxuICAvLyBnZXQgdmlzaWJsZSBnbHlwaHNcbiAgdmFyIGdseXBocyA9IHRoaXMubGF5b3V0LmdseXBocy5maWx0ZXIoZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICByZXR1cm4gYml0bWFwLndpZHRoICogYml0bWFwLmhlaWdodCA+IDBcbiAgfSlcblxuICAvLyBwcm92aWRlIHZpc2libGUgZ2x5cGhzIGZvciBjb252ZW5pZW5jZVxuICB0aGlzLnZpc2libGVHbHlwaHMgPSBnbHlwaHNcblxuICAvLyBnZXQgY29tbW9uIHZlcnRleCBkYXRhXG4gIHZhciBwb3NpdGlvbnMgPSB2ZXJ0aWNlcy5wb3NpdGlvbnMoZ2x5cGhzKVxuICB2YXIgdXZzID0gdmVydGljZXMudXZzKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpXG4gIHZhciBpbmRpY2VzID0gY3JlYXRlSW5kaWNlcyhbXSwge1xuICAgIGNsb2Nrd2lzZTogdHJ1ZSxcbiAgICB0eXBlOiAndWludDE2JyxcbiAgICBjb3VudDogZ2x5cGhzLmxlbmd0aFxuICB9KVxuXG4gIC8vIHVwZGF0ZSB2ZXJ0ZXggZGF0YVxuICB0aGlzLnNldEluZGV4KGluZGljZXMpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocG9zaXRpb25zLCAyKSlcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSh1dnMsIDIpKVxuXG4gIC8vIHVwZGF0ZSBtdWx0aXBhZ2UgZGF0YVxuICBpZiAoIW9wdC5tdWx0aXBhZ2UgJiYgJ3BhZ2UnIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgIC8vIGRpc2FibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwYWdlJylcbiAgfSBlbHNlIGlmIChvcHQubXVsdGlwYWdlKSB7XG4gICAgLy8gZW5hYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB2YXIgcGFnZXMgPSB2ZXJ0aWNlcy5wYWdlcyhnbHlwaHMpXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BhZ2UnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBhZ2VzLCAxKSlcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdTcGhlcmUgPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlID0gbmV3IFRIUkVFLlNwaGVyZSgpXG4gIH1cblxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cyA9IDBcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlci5zZXQoMCwgMCwgMClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlU3BoZXJlKHBvc2l0aW9ucywgdGhpcy5ib3VuZGluZ1NwaGVyZSlcbiAgaWYgKGlzTmFOKHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiAnICtcbiAgICAgICdDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgJyArXG4gICAgICAnXCJwb3NpdGlvblwiIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdCb3ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nQm94ID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ0JveCA9IG5ldyBUSFJFRS5Cb3gzKClcbiAgfVxuXG4gIHZhciBiYm94ID0gdGhpcy5ib3VuZGluZ0JveFxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICBiYm94Lm1ha2VFbXB0eSgpXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZUJveChwb3NpdGlvbnMsIGJib3gpXG59XG4iLCJ2YXIgaXRlbVNpemUgPSAyXG52YXIgYm94ID0geyBtaW46IFswLCAwXSwgbWF4OiBbMCwgMF0gfVxuXG5mdW5jdGlvbiBib3VuZHMgKHBvc2l0aW9ucykge1xuICB2YXIgY291bnQgPSBwb3NpdGlvbnMubGVuZ3RoIC8gaXRlbVNpemVcbiAgYm94Lm1pblswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWluWzFdID0gcG9zaXRpb25zWzFdXG4gIGJveC5tYXhbMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1heFsxXSA9IHBvc2l0aW9uc1sxXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIHZhciB4ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDBdXG4gICAgdmFyIHkgPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMV1cbiAgICBib3gubWluWzBdID0gTWF0aC5taW4oeCwgYm94Lm1pblswXSlcbiAgICBib3gubWluWzFdID0gTWF0aC5taW4oeSwgYm94Lm1pblsxXSlcbiAgICBib3gubWF4WzBdID0gTWF0aC5tYXgoeCwgYm94Lm1heFswXSlcbiAgICBib3gubWF4WzFdID0gTWF0aC5tYXgoeSwgYm94Lm1heFsxXSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlQm94ID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIG91dHB1dC5taW4uc2V0KGJveC5taW5bMF0sIGJveC5taW5bMV0sIDApXG4gIG91dHB1dC5tYXguc2V0KGJveC5tYXhbMF0sIGJveC5tYXhbMV0sIDApXG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVTcGhlcmUgPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgdmFyIG1pblggPSBib3gubWluWzBdXG4gIHZhciBtaW5ZID0gYm94Lm1pblsxXVxuICB2YXIgbWF4WCA9IGJveC5tYXhbMF1cbiAgdmFyIG1heFkgPSBib3gubWF4WzFdXG4gIHZhciB3aWR0aCA9IG1heFggLSBtaW5YXG4gIHZhciBoZWlnaHQgPSBtYXhZIC0gbWluWVxuICB2YXIgbGVuZ3RoID0gTWF0aC5zcXJ0KHdpZHRoICogd2lkdGggKyBoZWlnaHQgKiBoZWlnaHQpXG4gIG91dHB1dC5jZW50ZXIuc2V0KG1pblggKyB3aWR0aCAvIDIsIG1pblkgKyBoZWlnaHQgLyAyLCAwKVxuICBvdXRwdXQucmFkaXVzID0gbGVuZ3RoIC8gMlxufVxuIiwibW9kdWxlLmV4cG9ydHMucGFnZXMgPSBmdW5jdGlvbiBwYWdlcyAoZ2x5cGhzKSB7XG4gIHZhciBwYWdlcyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAxKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGlkID0gZ2x5cGguZGF0YS5wYWdlIHx8IDBcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgfSlcbiAgcmV0dXJuIHBhZ2VzXG59XG5cbm1vZHVsZS5leHBvcnRzLnV2cyA9IGZ1bmN0aW9uIHV2cyAoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSkge1xuICB2YXIgdXZzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHZhciBidyA9IChiaXRtYXAueCArIGJpdG1hcC53aWR0aClcbiAgICB2YXIgYmggPSAoYml0bWFwLnkgKyBiaXRtYXAuaGVpZ2h0KVxuXG4gICAgLy8gdG9wIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgdTAgPSBiaXRtYXAueCAvIHRleFdpZHRoXG4gICAgdmFyIHYxID0gYml0bWFwLnkgLyB0ZXhIZWlnaHRcbiAgICB2YXIgdTEgPSBidyAvIHRleFdpZHRoXG4gICAgdmFyIHYwID0gYmggLyB0ZXhIZWlnaHRcblxuICAgIGlmIChmbGlwWSkge1xuICAgICAgdjEgPSAodGV4SGVpZ2h0IC0gYml0bWFwLnkpIC8gdGV4SGVpZ2h0XG4gICAgICB2MCA9ICh0ZXhIZWlnaHQgLSBiaCkgLyB0ZXhIZWlnaHRcbiAgICB9XG5cbiAgICAvLyBCTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYxXG4gICAgLy8gVExcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIFRSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBCUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYxXG4gIH0pXG4gIHJldHVybiB1dnNcbn1cblxubW9kdWxlLmV4cG9ydHMucG9zaXRpb25zID0gZnVuY3Rpb24gcG9zaXRpb25zIChnbHlwaHMpIHtcbiAgdmFyIHBvc2l0aW9ucyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcblxuICAgIC8vIGJvdHRvbSBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHggPSBnbHlwaC5wb3NpdGlvblswXSArIGJpdG1hcC54b2Zmc2V0XG4gICAgdmFyIHkgPSBnbHlwaC5wb3NpdGlvblsxXSArIGJpdG1hcC55b2Zmc2V0XG5cbiAgICAvLyBxdWFkIHNpemVcbiAgICB2YXIgdyA9IGJpdG1hcC53aWR0aFxuICAgIHZhciBoID0gYml0bWFwLmhlaWdodFxuXG4gICAgLy8gQkxcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgICAvLyBUTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBUUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gQlJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gIH0pXG4gIHJldHVybiBwb3NpdGlvbnNcbn1cbiIsInZhciBuZXdsaW5lID0gL1xcbi9cbnZhciBuZXdsaW5lQ2hhciA9ICdcXG4nXG52YXIgd2hpdGVzcGFjZSA9IC9cXHMvXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odGV4dCwgb3B0KSB7XG4gICAgdmFyIGxpbmVzID0gbW9kdWxlLmV4cG9ydHMubGluZXModGV4dCwgb3B0KVxuICAgIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcobGluZS5zdGFydCwgbGluZS5lbmQpXG4gICAgfSkuam9pbignXFxuJylcbn1cblxubW9kdWxlLmV4cG9ydHMubGluZXMgPSBmdW5jdGlvbiB3b3Jkd3JhcCh0ZXh0LCBvcHQpIHtcbiAgICBvcHQgPSBvcHR8fHt9XG5cbiAgICAvL3plcm8gd2lkdGggcmVzdWx0cyBpbiBub3RoaW5nIHZpc2libGVcbiAgICBpZiAob3B0LndpZHRoID09PSAwICYmIG9wdC5tb2RlICE9PSAnbm93cmFwJykgXG4gICAgICAgIHJldHVybiBbXVxuXG4gICAgdGV4dCA9IHRleHR8fCcnXG4gICAgdmFyIHdpZHRoID0gdHlwZW9mIG9wdC53aWR0aCA9PT0gJ251bWJlcicgPyBvcHQud2lkdGggOiBOdW1iZXIuTUFYX1ZBTFVFXG4gICAgdmFyIHN0YXJ0ID0gTWF0aC5tYXgoMCwgb3B0LnN0YXJ0fHwwKVxuICAgIHZhciBlbmQgPSB0eXBlb2Ygb3B0LmVuZCA9PT0gJ251bWJlcicgPyBvcHQuZW5kIDogdGV4dC5sZW5ndGhcbiAgICB2YXIgbW9kZSA9IG9wdC5tb2RlXG5cbiAgICB2YXIgbWVhc3VyZSA9IG9wdC5tZWFzdXJlIHx8IG1vbm9zcGFjZVxuICAgIGlmIChtb2RlID09PSAncHJlJylcbiAgICAgICAgcmV0dXJuIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aClcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpXG59XG5cbmZ1bmN0aW9uIGlkeE9mKHRleHQsIGNociwgc3RhcnQsIGVuZCkge1xuICAgIHZhciBpZHggPSB0ZXh0LmluZGV4T2YoY2hyLCBzdGFydClcbiAgICBpZiAoaWR4ID09PSAtMSB8fCBpZHggPiBlbmQpXG4gICAgICAgIHJldHVybiBlbmRcbiAgICByZXR1cm4gaWR4XG59XG5cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjaHIpIHtcbiAgICByZXR1cm4gd2hpdGVzcGFjZS50ZXN0KGNocilcbn1cblxuZnVuY3Rpb24gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGxpbmVzID0gW11cbiAgICB2YXIgbGluZVN0YXJ0ID0gc3RhcnRcbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZCAmJiBpPHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNociA9IHRleHQuY2hhckF0KGkpXG4gICAgICAgIHZhciBpc05ld2xpbmUgPSBuZXdsaW5lLnRlc3QoY2hyKVxuXG4gICAgICAgIC8vSWYgd2UndmUgcmVhY2hlZCBhIG5ld2xpbmUsIHRoZW4gc3RlcCBkb3duIGEgbGluZVxuICAgICAgICAvL09yIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIEVPRlxuICAgICAgICBpZiAoaXNOZXdsaW5lIHx8IGk9PT1lbmQtMSkge1xuICAgICAgICAgICAgdmFyIGxpbmVFbmQgPSBpc05ld2xpbmUgPyBpIDogaSsxXG4gICAgICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIGxpbmVTdGFydCwgbGluZUVuZCwgd2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKG1lYXN1cmVkKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBsaW5lU3RhcnQgPSBpKzFcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKSB7XG4gICAgLy9BIGdyZWVkeSB3b3JkIHdyYXBwZXIgYmFzZWQgb24gTGliR0RYIGFsZ29yaXRobVxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL2xpYmdkeC9saWJnZHgvYmxvYi9tYXN0ZXIvZ2R4L3NyYy9jb20vYmFkbG9naWMvZ2R4L2dyYXBoaWNzL2cyZC9CaXRtYXBGb250Q2FjaGUuamF2YVxuICAgIHZhciBsaW5lcyA9IFtdXG5cbiAgICB2YXIgdGVzdFdpZHRoID0gd2lkdGhcbiAgICAvL2lmICdub3dyYXAnIGlzIHNwZWNpZmllZCwgd2Ugb25seSB3cmFwIG9uIG5ld2xpbmUgY2hhcnNcbiAgICBpZiAobW9kZSA9PT0gJ25vd3JhcCcpXG4gICAgICAgIHRlc3RXaWR0aCA9IE51bWJlci5NQVhfVkFMVUVcblxuICAgIHdoaWxlIChzdGFydCA8IGVuZCAmJiBzdGFydCA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgIC8vZ2V0IG5leHQgbmV3bGluZSBwb3NpdGlvblxuICAgICAgICB2YXIgbmV3TGluZSA9IGlkeE9mKHRleHQsIG5ld2xpbmVDaGFyLCBzdGFydCwgZW5kKVxuXG4gICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgc3RhcnQgb2YgbGluZVxuICAgICAgICB3aGlsZSAoc3RhcnQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSggdGV4dC5jaGFyQXQoc3RhcnQpICkpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIHN0YXJ0KytcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZGV0ZXJtaW5lIHZpc2libGUgIyBvZiBnbHlwaHMgZm9yIHRoZSBhdmFpbGFibGUgd2lkdGhcbiAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbmV3TGluZSwgdGVzdFdpZHRoKVxuXG4gICAgICAgIHZhciBsaW5lRW5kID0gc3RhcnQgKyAobWVhc3VyZWQuZW5kLW1lYXN1cmVkLnN0YXJ0KVxuICAgICAgICB2YXIgbmV4dFN0YXJ0ID0gbGluZUVuZCArIG5ld2xpbmVDaGFyLmxlbmd0aFxuXG4gICAgICAgIC8vaWYgd2UgaGFkIHRvIGN1dCB0aGUgbGluZSBiZWZvcmUgdGhlIG5leHQgbmV3bGluZS4uLlxuICAgICAgICBpZiAobGluZUVuZCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIC8vZmluZCBjaGFyIHRvIGJyZWFrIG9uXG4gICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kKSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluZUVuZCA9PT0gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXJ0ID4gc3RhcnQgKyBuZXdsaW5lQ2hhci5sZW5ndGgpIG5leHRTdGFydC0tXG4gICAgICAgICAgICAgICAgbGluZUVuZCA9IG5leHRTdGFydCAvLyBJZiBubyBjaGFyYWN0ZXJzIHRvIGJyZWFrLCBzaG93IGFsbC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gbGluZUVuZFxuICAgICAgICAgICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgZW5kIG9mIGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQgLSBuZXdsaW5lQ2hhci5sZW5ndGgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGluZUVuZCA+PSBzdGFydCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIGxpbmVFbmQsIHRlc3RXaWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KVxuICAgICAgICB9XG4gICAgICAgIHN0YXJ0ID0gbmV4dFN0YXJ0XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG4vL2RldGVybWluZXMgdGhlIHZpc2libGUgbnVtYmVyIG9mIGdseXBocyB3aXRoaW4gYSBnaXZlbiB3aWR0aFxuZnVuY3Rpb24gbW9ub3NwYWNlKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGdseXBocyA9IE1hdGgubWluKHdpZHRoLCBlbmQtc3RhcnQpXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBlbmQ6IHN0YXJ0K2dseXBoc1xuICAgIH1cbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGV4dGVuZFxuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBleHRlbmQoKSB7XG4gICAgdmFyIHRhcmdldCA9IHt9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldXG5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldFxufVxuIl19 diff --git a/build/datguivr.map b/build/datguivr.map index 209ac1a..a00dac5 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index 19f84b7..517bcbe 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -5,6 +5,6 @@ return'info face="Roboto" size=192 bold=0 italic=0 charset="" unicode=1 stretchH }Object.defineProperty(c,"__esModule",{value:!0}),c.image=d,c.fnt=e},{}],8:[function(a,b,c){"use strict";function d(){function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i);var J=b.text?2184:16777215,K=b.text?273:13421772;j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?J:K),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8, -"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1})}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b) -;if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});return 0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1}),la.intersections}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder +;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;bo.clicked = false); + return mouseInput.intersections; } //if any input.interactions have hitVolume that corresponds to something not currently in hitscanObjects, From a78a6d0b1d10b49855aab2140826ae582ba797bb Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Wed, 2 Mar 2022 12:10:15 +0000 Subject: [PATCH 13/24] allow custom button colours --- build/datguivr.js | 8 ++++---- build/datguivr.map | 2 +- build/datguivr.min.js | 4 ++-- modules/datguivr/imagebuttongrid.js | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index 74b71f8..0fdb162 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -2980,12 +2980,12 @@ function createImageButtonGrid() { if (obj.release) obj.release(); } //quick color hack... - var hoverCol = obj.text ? 0x888 : 0xFFFFFF; - var noHoverCol = obj.text ? 0x111 : 0xCCCCCC; + obj.hoverCol = obj.text ? 0x888 : 0xFFFFFF; + obj.noHoverCol = obj.text ? 0x111 : 0xCCCCCC; subgroup.updateView = function () { if (highlightLastPressed && lastPressed === obj) { material.color.setHex(lastPressedCol); - } else material.color.setHex(interaction.hovering() ? hoverCol : noHoverCol); + } else material.color.setHex(interaction.hovering() ? obj.hoverCol : obj.noHoverCol); if (subgroup.tipText) (0, _utils.setVisibility)(subgroup, subgroup.tipText, interaction.hovering()); if (obj.error) material.color.setHex(0xAA3333); }; @@ -7586,4 +7586,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QUFDQSxhQUFTLFFBQVQsR0FBb0IsV0FBcEI7QUFDQSxhQUFTLEtBQVQsR0FBaUIsUUFBakI7QUFDQSxRQUFLLE1BQUwsRUFBYyxTQUFTLGFBQVQsQ0FBd0IsQ0FBeEIsSUFBOEIsTUFBOUI7O0FBRWQ7QUFFQSxHQW5QRDtBQXFQQSxDQTVWRDs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICogXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLiBcclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUiBcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1IgXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsIFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcbiAgICBcclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpOyBcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgLy9tb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICBpZiAoIXdpZGUpIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIGVsc2Uge1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMC43NTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueSA9IDAuMDE7IC8vWFhYIG1hZ2ljIG51bWJlclxyXG4gIH1cclxuXHJcbiAgdmFyIG1hdGVyaWFsO1xyXG4gIGlmIChpbWFnZS5pc01hdGVyaWFsKSB7XHJcbiAgICBtYXRlcmlhbCA9IGltYWdlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIG1hdGVyaWFsKTtcclxuICB9XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gIC8vYnV0dG9uIGxhYmVsIHJlbW92ZWQ7IG1pZ2h0IHdhbnQgb3B0aW9ucyBsaWtlIGEgaG92ZXIgbGFiZWwgaW4gZnV0dXJlLlxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBpZiAod2lkZSkgZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAvL1RPRE86IGRyYWcgYW5kIGhvdmVyXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnaG92ZXJpbmcnLCBoYW5kbGVIb3ZlciApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZVByZXNzaW5nICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGxldCBob3ZlckZ1bmMgPSB1bmRlZmluZWQ7XHJcbiAgLy8gSSBtaWdodCB5ZXQgZGVjaWRlIHRvIGNoYW5nZSB0aGlzIGludGVyZmFjZS5cclxuICAvLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgbmFtZSwgbWlnaHQgd2FudCB0byBhZGQgbGlzdGVuZXJzIHRvIGV2ZW50XHJcbiAgLy8gcmF0aGVyIHRoYW4ganVzdCBzZXQgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgZ3JvdXAub25Ib3ZlciA9IGYgPT4ge1xyXG4gICAgaG92ZXJGdW5jID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZ3JvdXAub25QcmVzc2luZyA9IGYgPT4ge1xyXG4gICAgcHJlc3NpbmcgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBmdW5jdGlvbiBoYW5kbGVIb3ZlciggcCApe1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAoaG92ZXJGdW5jKSBob3ZlckZ1bmMocCk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vaXQgc2hvdWxkIGJlIHRoYXQgdGhlIGNoZWNrcyBpbiBpbmRleC5qcyBtZWFuIHRoYXQgbWV0aG9kcyBkb24ndCBnZXQgY2FsbGVkIG9uIGludmlzaWJsZVxyXG4gICAgLy9vYmplY3RzLCByZW5kZXJpbmcgdGhlc2UgdGVzdHMgcmVkdW5kYW50Li4uIGhvd2V2ZXIsIHRoYXQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlIGNhc2UuXHJcbiAgICAvL2V4cGVyaWVuY2VkIHNvbWUgYnVncyBwYXJ0aWN1bGFybHkgd2l0aCAnbW9kYWwgZWRpdG9yJyB0eXBlIHBhbmVscy5cclxuICAgIC8vVE9ETzogZWl0aGVyIG1ha2Ugc3VyZSBpbnZpc2libGUgb2JqZWN0cyBhcmVuJ3QgY2FsbGVkIGluIHRoZSBmaXJzdCBwbGFjZSxcclxuICAgIC8vb3IgbWFrZSBzdXJlIGFsbCB0eXBlcyBvZiBvYmplY3QgZG8gdGhpcyBtb3JlIHRob3JvdWdoIHZpc2liaWxpdHkgY2hlY2suLi5cclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKG9iamVjdCkgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXShwKTtcclxuICAgIGlmIChmdW5jKSBmdW5jKHApO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL2NvbXB1dGUgeCAmIHkgYXMgbm9ybWFsaXNlZCBjb29yZGluYXRlcyBmcm9tIHAucG9pbnRcclxuICAvL2NvdWxkIGNvbnNpZGVyIG1vdmluZyB0aGlzIGNvbXB1dGF0aW9uIGludG8gaW50ZXJhY3Rpb24uanMgcGVyZm9ybVN0YXRlRXZlbnRzKClcclxuICBmdW5jdGlvbiBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwb2ludCkge1xyXG4gICAgY29uc3QgcCA9IGhpdHNjYW5Wb2x1bWUud29ybGRUb0xvY2FsKHBvaW50KTtcclxuICAgIHAueCAvPSBCVVRUT05fV0lEVEg7XHJcbiAgICBwLnkgLz0gQlVUVE9OX0hFSUdIVDtcclxuICAgIHAueSArPSAwLjU7XHJcbiAgICBwLnggPSBNYXRoLm1heChNYXRoLm1pbihwLngsIDEpLCAwKTtcclxuICAgIHAueSA9IE1hdGgubWF4KE1hdGgubWluKHAueSwgMSksIDApO1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVQcmVzc2luZyggcCApIHtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIC8vY29uc29sZS5sb2coYHByZXNzaW5nIGF0ICgke3BvaW50Lnh9LCAke3BvaW50Lnl9KWApOyAvL2ZpcnN0IGluc3RhbmNlIG9mICdwcmVzc2luZycgaXMgYWx3YXlzIGF0ICgxLCAxKVxyXG4gICAgLy9uYiwgbGlrZWx5IHRvIG5lZWQgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIGR1YWwgd2llbGRpbmdcclxuICAgIGlmIChwcmVzc2luZykgcHJlc3NpbmcocCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmICghbWF0ZXJpYWwuY29sb3IpIHJldHVybjtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhDQ0NDQ0MgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKiBcclxuICogR3JpZCBvZiBidXR0b25zIHdpdGggaW1hZ2VzIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgaW1hZ2VidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7Y3JlYXRlVGV4dExhYmVsLCBjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0cywgLy8gYXJyYXkgb2Yge2Z1bmMsIGltYWdlIHwgdGV4dCwgdGlwKG9wdGlvbmFsKSwgcmVsZWFzZShvcHRpb25hbCl9XHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgcm93SGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNvbHVtbnMgPSA0XHJcbn0gPSB7fSApe1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWFyZ2luID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDM7XHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gKHdpZHRoIC0gbWFyZ2luKSAqICgxL2NvbHVtbnMpO1xyXG4gIC8vVE9ETzogYWRkIHNldFJvd0hlaWdodCBtZXRob2RcclxuICBsZXQgQlVUVE9OX0hFSUdIVCA9IHJvd0hlaWdodCA+IDAgPyByb3dIZWlnaHQgOiBCVVRUT05fV0lEVEg7XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvbmdyaWRcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtvYmplY3RzfV1gO1xyXG4gIFxyXG4gIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwob2JqZWN0cy5sZW5ndGggLyBjb2x1bW5zKTtcclxuICBsZXQgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGdyb3VwLnNldFJvd0hlaWdodCA9IGggPT4ge1xyXG4gICAgcm93SGVpZ2h0ID0gQlVUVE9OX0hFSUdIVCA9IGg7XHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG4gICAgbGF5b3V0QnV0dG9ucygpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGZhbHNlO1xyXG4gIGxldCBsYXN0UHJlc3NlZCA9IG51bGw7XHJcbiAgbGV0IGxhc3RQcmVzc2VkQ29sO1xyXG4gIGdyb3VwLmhpZ2hsaWdodExhc3RQcmVzc2VkID0gKGNvbCA9IDB4MzM1NUVFKSA9PiB7XHJcbiAgICAgIGhpZ2hsaWdodExhc3RQcmVzc2VkID0gY29sICE9PSBmYWxzZTtcclxuICAgICAgbGFzdFByZXNzZWRDb2wgPSBjb2w7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgXHJcbiAgbGV0IHBhbmVsLCBncmFiSW50ZXJhY3Rpb24sIGJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgbGF5b3V0QnV0dG9ucygpO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGluaXRQYW5lbCgpIHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIHBhbmVsLmFkZChjb250cm9sbGVySUQpO1xyXG4gICAgXHJcbiAgICBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+Z3JvdXAucmVtb3ZlKGIpKTtcclxuICAgIGJ1dHRvbnMgPSBbXTtcclxuICAgIGdyb3VwLmd1aUNoaWxkcmVuID0gYnV0dG9ucztcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gbGF5b3V0QnV0dG9ucygpIHtcclxuICAgIGluaXRQYW5lbCgpO1xyXG4gICAgLy9UT0RPOiBwYWRkaW5nXHJcbiAgICBjb25zdCBidXR0b25XUGFkZGVkID0gQlVUVE9OX1dJRFRIICogMC45OSwgYnV0dG9uSFBhZGRlZCA9IEJVVFRPTl9IRUlHSFQgKiAwLjk5O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBidXR0b25XUGFkZGVkLCBidXR0b25IUGFkZGVkLCAxLCAxICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggYnV0dG9uV1BhZGRlZCAvIDIsIC1idXR0b25IUGFkZGVkIC8gMiwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IHRvZ2dsZXMgcmF0aGVyIHRoYW4gdHJpZ2dlcnMuLi5cclxuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFvYmouaW1hZ2UgJiYgIW9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN1Ymdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vbm90ZTogcmVkdWNpbmcgbmVzdGluZyBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxyXG4gICAgICAgIHN1Ymdyb3VwLmd1aVR5cGUgPSBcImltYWdlQnV0dG9uR3JpZEVsZW1lbnRcIjtcclxuICAgICAgICBncm91cC5hZGQoc3ViZ3JvdXApO1xyXG4gICAgICAgIGJ1dHRvbnMucHVzaChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbCA9IGkgJSBjb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IE1hdGguZmxvb3IoaSAvIGNvbHVtbnMpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi54ID0gKDIqTGF5b3V0LlBBTkVMX01BUkdJTikgKyBCVVRUT05fV0lEVEggKiBjb2w7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueSA9IChoZWlnaHQvMikgLUJVVFRPTl9IRUlHSFQgKiByb3c7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuXHJcbiAgICAgICAgLy8gIGhpdHNjYW4gdm9sdW1lLlxyXG4gICAgICAgIC8vIFRoaXMgbWF0ZXJpYWwgY291bGQgcHJvYmFibHkgYmUgcmV1c2VkLlxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG9iai5pbWFnZSkgYXBwbHlJbWFnZVRvTWF0ZXJpYWwob2JqLmltYWdlLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgaWYgKG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUob2JqLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyKkxheW91dC5HUklEX0JVVFRPTl9NQVJHSU47XHJcbiAgICAgICAgICAgIGxldCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgaWYgKHcgPiBCVVRUT05fV0lEVEggLSBtYXJnaW4pIHtcclxuICAgICAgICAgICAgICAgIHRleHQuY29uc3RyYWluQm91bmRzKEJVVFRPTl9XSURUSCAtIG1hcmdpbiwgQlVUVE9OX0hFSUdIVCAtIG1hcmdpbik7IC8vPC0tXHJcbiAgICAgICAgICAgICAgICBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJncm91cC5hZGQodGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnggPSBvYmoudGV4dFggfHwgMC41ICogKEJVVFRPTl9XSURUSCAtIHcpO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnkgPSBvYmoudGV4dFkgfHwgLTAuNSAqIEJVVFRPTl9IRUlHSFQgLSBoO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICAgICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgICAgICAvL2J1dHRvbiBsYWJlbCAmIGRlc2NyaXB0b3IgbGFiZWwgcmVtb3ZlZC5cclxuICAgICAgICAvL1Rvb2x0aXAgdGV4dCBvcHRpb24gYWRkZWQuICBNaWdodCB3YW50IHRvIGJlIGFibGUgdG8gcGFzcyBpbiByaWNoZXIgdGhpbmdzLi4uXHJcbiAgICAgICAgLy9tYXliZSBhbiBhcmJpdHJhcnkgVEhSRUUgb2JqZWN0IHdvdWxkIHdvcmsgd2VsbC4uLlxyXG4gICAgICAgIGlmIChvYmoudGlwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcFRleHQgPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCBvYmoudGlwLCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL3N1Ymdyb3VwLmFkZCh0aXBUZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG4gICAgICAgIHN1Ymdyb3VwLmFkZCggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIHBhbmVsLmFkZChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgICAgICAgICBpZiggc3ViZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL1RPRE86IHN0YW5kYXJkaXNlIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gY2FsbGJhY2tzXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZnVuYygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZXJyb3IgPSBlIHx8ICd1bmRlZmluZWQgZXhjZXB0aW9uJztcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0UHJlc3NlZCA9IG9iajtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gICAgICAgICAgICBpZiAob2JqLnJlbGVhc2UpIG9iai5yZWxlYXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcXVpY2sgY29sb3IgaGFjay4uLlxyXG4gICAgICAgIGNvbnN0IGhvdmVyQ29sID0gb2JqLnRleHQgPyAweDg4OCA6IDB4RkZGRkZGO1xyXG4gICAgICAgIGNvbnN0IG5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IGhvdmVyQ29sIDogbm9Ib3ZlckNvbCApO1xyXG4gICAgICAgICAgICBpZiAoc3ViZ3JvdXAudGlwVGV4dCkgc2V0VmlzaWJpbGl0eShzdWJncm91cCwgc3ViZ3JvdXAudGlwVGV4dCwgaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICAgIGlmIChvYmouZXJyb3IpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhBQTMzMzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3KCk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgc3ViZ3JvdXAuaGl0c2NhbiA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBtYWtpbmcgdGhpcyBzaW5nbGUgZWxlbWVudCByYXRoZXIgdGhhbiBhcnJheSxcclxuICAgICAgICAvL3RoYXQgbWVhbnMgdGhlc2UgJ3N1Ymdyb3VwJyBidXR0b25zIGFyZW4ndCBhY3RpbmcgZXhhY3RseSBhcyBub3JtYWwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzXHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5oaXRzY2FuID0gYnV0dG9ucy5tYXAoYj0+Yi5oaXRzY2FuKTsvLy5wdXNoKHBhbmVsKTtcclxuICAgIGdyb3VwLmhpdHNjYW4ucHVzaChwYW5lbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpIHtcclxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGI9PmIudXBkYXRlVmlldygpKTtcclxuICB9XHJcbiAgXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT57XHJcbiAgICAgICAgYi5pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICAvL2ludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVTbGlkZXIgZnJvbSAnLi9zbGlkZXInO1xyXG5pbXBvcnQgY3JlYXRlQ2hlY2tib3ggZnJvbSAnLi9jaGVja2JveCc7XHJcbmltcG9ydCBjcmVhdGVCdXR0b24gZnJvbSAnLi9idXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlRm9sZGVyIGZyb20gJy4vZm9sZGVyJztcclxuaW1wb3J0IGNyZWF0ZURyb3Bkb3duIGZyb20gJy4vZHJvcGRvd24nO1xyXG4vL1BKVDogSSdkIHJhdGhlciBpbmplY3QgY3VzdG9tIGV4dGVuc2lvbnMgbGlrZSB0aGlzLCBidXQgd2lsbCB3b3JrIHRoYXQgb3V0IGxhdGVyLlxyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlS2V5Ym9hcmQgZnJvbSAnLi9rZXlib2FyZCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0Ym94IGZyb20gJy4vdGV4dGJveCc7XHJcbmltcG9ydCBjcmVhdGVDb2xvclBpY2tlciBmcm9tICcuL2NvbG9ycGlja2VyJztcclxuaW1wb3J0ICogYXMgU0RGVGV4dCBmcm9tICcuL3NkZnRleHQnO1xyXG5pbXBvcnQgeyBpc0NvbnRyb2xsZXJWaXNpYmxlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGdsb2JhbEV2ZW50cyB9IGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuY29uc3QgR1VJVlIgPSAoZnVuY3Rpb24gREFUR1VJVlIoKXtcclxuXHJcbiAgLypcclxuICAgIFNERiBmb250XHJcbiAgKi9cclxuICBjb25zdCB0ZXh0Q3JlYXRvciA9IFNERlRleHQuY3JlYXRvcigpO1xyXG5cclxuXHJcbiAgLypcclxuICAgIExpc3RzLlxyXG4gICAgSW5wdXRPYmplY3RzIGFyZSB0aGluZ3MgbGlrZSBWSVZFIGNvbnRyb2xsZXJzLCBjYXJkYm9hcmQgaGVhZHNldHMsIGV0Yy5cclxuICAgIENvbnRyb2xsZXJzIGFyZSB0aGUgREFUIEdVSSBzbGlkZXJzLCBjaGVja2JveGVzLCBldGMuXHJcbiAgKi9cclxuICBjb25zdCBpbnB1dE9iamVjdHMgPSBbXTtcclxuICBjb25zdCBjb250cm9sbGVycyA9IFtdO1xyXG5cclxuICAvKlxyXG4gICAgRnVuY3Rpb25zIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY29udHJvbGxlciBpcyB2aXNpYmxlIChieSB3aGljaCB3ZVxyXG4gICAgbWVhbiBub3QgaGlkZGVuLCBub3QgJ3Zpc2libGUnIGluIHRlcm1zIG9mIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gZXRjKSwgYW5kXHJcbiAgICBmb3IgcmV0cmlldmluZyB0aGUgbGlzdCBvZiB2aXNpYmxlIGhpdHNjYW5PYmplY3RzIGR5bmFtaWNhbGx5LlxyXG4gICAgVGhpcyBtaWdodCBiZW5lZml0IGZyb20gc29tZSBjYWNoaW5nIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2l0aCBsYXJnZSBjb21wbGV4IEdVSXMuXHJcbiAgICBJIGhhdmVuJ3QgbWVhc3VyZWQgdGhlIGltcGFjdCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gZXRjLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkge1xyXG4gICAgLy8gbm90IHRlcnJpYmx5IGVmZmljaWVudFxyXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJzLmZpbHRlciggaXNDb250cm9sbGVyVmlzaWJsZSApO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSB7XHJcbiAgICAvL1hYWCBXQVJOSU5HOjo6XHJcbiAgICAvL3RoZXJlIGNvdWxkIGV4aXN0IHNpdHVhdGlvbnMgaW4gd2hpY2ggbWVtYmVycyBvZiBoaXRzY2FuIGZvciBhIHZpc2libGUgY29udHJvbGxlciBhcmUgbm90IHRoZW1zZWx2ZXMgdmlzaWJsZS5cclxuICAgIC8vdGhpcyBjYW4gaGFwcGVuIGZvciBlZyBpZiB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBwYXJ0aWN1bGFyIGhpdHNjYW4gaXMgaW4gYW4gaW52aXNpYmxlIG1vZGFsIGVkaXRvci5cclxuICAgIC8vd2UgY291bGQgY2hlY2sgdGhhdCwgYWRkaW5nIGEgbW9yZSByb2J1c3QgZmlsdGVyIHRvIGVhY2ggaGl0c2NhbiBhcnJheS4uLiBmb3Igbm93LCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcclxuICAgIC8vY29udHJvbGxlcnMgdG8gZWl0aGVyIG9ubHkgcmV0dXJuIGhpdHNjYW4gb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlLCBvciB0byBzZXQgJ3Zpc2libGUnIGV4cGxpY2l0bHkuXHJcbiAgICBjb25zdCB0bXAgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKS5tYXAoIG8gPT4geyByZXR1cm4gby5oaXRzY2FuLmZpbHRlcihoID0+IGgudmlzaWJsZSk7IH0gKVxyXG4gICAgcmV0dXJuIHRtcC5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgbGV0IG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGxldCBtb3VzZVJlbmRlcmVyID0gdW5kZWZpbmVkO1xyXG4gIGxldCBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkOyAvL2tlZXAgdHJhY2sgc28gdGhhdCB3ZSBkb24ndCBhdHRhY2ggbXVsdGlwbGUgZXZlbnRzIChwYXJ0aWN1bGFybHkgd2hlbiByZXNpemluZyB3aW5kb3cpXHJcbiAgXHJcbiAgbGV0IGF1dG9VcGRhdGUgPSB0cnVlO1xyXG5cclxuICBmdW5jdGlvbiBlbmFibGVNb3VzZSggY2FtZXJhLCByZW5kZXJlciApe1xyXG4gICAgbW91c2VFbmFibGVkID0gdHJ1ZTtcclxuICAgIG1vdXNlUmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgIG1vdXNlSW5wdXQubW91c2VDYW1lcmEgPSBjYW1lcmE7XHJcbiAgICBpZiAoY2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSB7XHJcbiAgICAgIGlmICghb25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSBmPT5mLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMub24oJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5sYXNlcjtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gZGlzYWJsZU1vdXNlKCl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgVGhlIGRlZmF1bHQgbGFzZXIgcG9pbnRlciBjb21pbmcgb3V0IG9mIGVhY2ggSW5wdXRPYmplY3QuXHJcbiAgKi9cclxuICBjb25zdCBsYXNlck1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjoweDU1YWFmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0pO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUxhc2VyKCl7XHJcbiAgICBjb25zdCBnID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBnLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDAsMCwwXSkpKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoKSApO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygwLDAsMCkgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTGluZSggZywgbGFzZXJNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBIFwiY3Vyc29yXCIsIGVnIHRoZSBiYWxsIHRoYXQgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHlvdXIgbGFzZXIuXHJcbiAgKi9cclxuICBjb25zdCBjdXJzb3JNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg0NDQ0NDQsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9ICk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKCl7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgwLjAwNiwgNCwgNCApLCBjdXJzb3JNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBnZW5lcmljIElucHV0IHR5cGUuXHJcbiAgICBUYWtlcyBhbnkgVEhSRUUuT2JqZWN0M0QgdHlwZSBvYmplY3QgYW5kIHVzZXMgaXRzIHBvc2l0aW9uXHJcbiAgICBhbmQgb3JpZW50YXRpb24gYXMgYW4gaW5wdXQgZGV2aWNlLlxyXG5cclxuICAgIEEgbGFzZXIgcG9pbnRlciBpcyBpbmNsdWRlZCBhbmQgd2lsbCBiZSB1cGRhdGVkLlxyXG4gICAgQ29udGFpbnMgc3RhdGUgYWJvdXQgd2hpY2ggSW50ZXJhY3Rpb24gaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb3IgaG92ZXIuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBjcmVhdGVJbnB1dCggaW5wdXRPYmplY3QgPSBuZXcgVEhSRUUuR3JvdXAoKSApe1xyXG4gICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgIHJheWNhc3Q6IG5ldyBUSFJFRS5SYXljYXN0ZXIoIG5ldyBUSFJFRS5WZWN0b3IzKCksIG5ldyBUSFJFRS5WZWN0b3IzKCkgKSxcclxuICAgICAgbGFzZXI6IGNyZWF0ZUxhc2VyKCksXHJcbiAgICAgIGN1cnNvcjogY3JlYXRlQ3Vyc29yKCksXHJcbiAgICAgIG9iamVjdDogaW5wdXRPYmplY3QsXHJcbiAgICAgIHByZXNzZWQ6IGZhbHNlLFxyXG4gICAgICBncmlwcGVkOiBmYWxzZSxcclxuICAgICAgZXZlbnRzOiBuZXcgRW1pdHRlcigpLFxyXG4gICAgICBpbnRlcmFjdGlvbjoge1xyXG4gICAgICAgIGdyaXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmVzczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGhvdmVyOiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5hZGQoIGlucHV0LmN1cnNvciApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgTW91c2VJbnB1dC5cclxuICAgIEFsbG93cyB5b3UgdG8gY2xpY2sgb24gdGhlIHNjcmVlbiB3aGVuIG5vdCBpbiBWUiBmb3IgZGVidWdnaW5nLlxyXG4gICovXHJcbiAgY29uc3QgbW91c2VJbnB1dCA9IGNyZWF0ZU1vdXNlSW5wdXQoKTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlTW91c2VJbnB1dCgpe1xyXG4gICAgY29uc3QgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigtMSwtMSk7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCgpO1xyXG4gICAgaW5wdXQubW91c2UgPSBtb3VzZTtcclxuICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlT2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlUGxhbmUgPSBuZXcgVEhSRUUuUGxhbmUoKTtcclxuICAgIGlucHV0LmludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyAgc2V0IG15IGVuYWJsZU1vdXNlXHJcbiAgICBpbnB1dC5tb3VzZUNhbWVyYSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlbW92ZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICAvLyBpZiBhIHNwZWNpZmljIHJlbmRlcmVyIGhhcyBiZWVuIGRlZmluZWRcclxuICAgICAgaWYgKG1vdXNlUmVuZGVyZXIpIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gbW91c2VSZW5kZXJlci5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIG1vdXNlLnggPSAoIChldmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0KSAvIGNsaWVudFJlY3Qud2lkdGgpICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCAoZXZlbnQuY2xpZW50WSAtIGNsaWVudFJlY3QudG9wKSAvIGNsaWVudFJlY3QuaGVpZ2h0KSAqIDIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gZnVsbHNjcmVlblxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtb3VzZS54ID0gKCBldmVudC5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGggKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCApICogMiArIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmIChpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBwcmV2ZW50IG1vdXNlIGRvd24gZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGxpc3RlbmVycyAocG9seWZpbGwsIGV0YylcclxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIC8vaWYgYW55IGlucHV0LmludGVyYWN0aW9ucyBoYXZlIGhpdFZvbHVtZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHNvbWV0aGluZyBub3QgY3VycmVudGx5IGluIGhpdHNjYW5PYmplY3RzLFxyXG4gIC8vdGhhdCBpbnRlcmFjdGlvbiBzaG91bGQgYmUgY2FuY2VsbGVkLiBFc3BlY2lhbGx5IHByb2JsZW1hdGljIHdpdGggZS5nLiBwcmVzc2luZyAncmVhdHRhY2gnIHdoZW4gdGhlIHBhcmVudCBpcyBjbG9zZWQuXHJcbiAgZnVuY3Rpb24gY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9ucywgaGl0c2Nhbk9iamVjdHMgKSB7XHJcbiAgICBbJ3ByZXNzJywgJ2dyaXAnLCAnaG92ZXInXS5mb3JFYWNoKCBpbnRlcmFjdGlvbk5hbWUgPT4ge1xyXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdO1xyXG4gICAgICBpZiAoaW50ZXJhY3Rpb24gJiYgaGl0c2Nhbk9iamVjdHMuaW5kZXhPZihpbnRlcmFjdGlvbi5oaXRWb2x1bWUpIDwgMCkge1xyXG4gICAgICAgIGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdID0gdW5kZWZpbmVkOyBcclxuICAgICAgICAvL29ubHkgYmUgcG9saXRlIHRvIGluZm9ybSB0aGUgaW50ZXJhY3Rpb24gYXMgd2VsbDsgdXBkYXRlIHdpdGggZW1wdHkgaW5wdXRPYmplY3RzIGFyZyBzaG91bGQgZG8gdGhlIHRyaWNrLlxyXG4gICAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggW10gKTtcclxuICAgICAgfSBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlTGFzZXIoIGxhc2VyLCBwb2ludCApe1xyXG4gICAgY29uc3QgcHAgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICBwcFszXSA9IHBvaW50Lng7XHJcbiAgICBwcFs0XSA9IHBvaW50Lnk7XHJcbiAgICBwcFs1XSA9IHBvaW50Lno7XHJcbiAgICBwcC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHBvaW50ICk7XHJcbiAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnRpY2VzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGlmKCBpbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgY29uc3QgZmlyc3RIaXQgPSBpbnRlcnNlY3Rpb25zWyAwIF07XHJcbiAgICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgY3Vyc29yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZU1vdXNlSW50ZXJzZWN0aW9uKCBpbnRlcnNlY3Rpb24sIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBpbnRlcnNlY3Rpb24gKTtcclxuICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgY3Vyc29yLnBvc2l0aW9uICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBjYW1lcmEgKXtcclxuICAgIHJheWNhc3Quc2V0RnJvbUNhbWVyYSggbW91c2UsIGNhbWVyYSApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIHJldHVybiByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbW91c2VJbnRlcnNlY3RzUGxhbmUoIHJheWNhc3QsIHYsIHBsYW5lICl7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIHBsYW5lLCB2ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLG1vdXNlLG1vdXNlQ2FtZXJhLCBpbnRlcmFjdGlvbn0gPSB7fSApe1xyXG4gICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgbGV0IGludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICBpZiAobW91c2VDYW1lcmEpIHtcclxuICAgICAgaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIG1vdXNlQ2FtZXJhICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnRlcnNlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCk7XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgbWV0aG9kcy5cclxuICAqL1xyXG5cclxuICBjb25zdCBwdWJsaWNJbnRlcmZhY2UgPSB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBhZGRJbnB1dE9iamVjdCxcclxuICAgIGVuYWJsZU1vdXNlLFxyXG4gICAgZGlzYWJsZU1vdXNlLFxyXG4gICAgdGV4dENyZWF0b3IsIC8vY2hlYXAgd2F5IG9mIGV4cG9zaW5nIHRoaXMgc28gaXQgY2FuIGJlIHVzZWQgYnkgaG9zdCBhcHBsaWNhdGlvbi5cclxuICAgIGdsb2JhbEV2ZW50cyxcclxuICAgIGNsZWFyQWxsLFxyXG4gICAgdXBkYXRlXHJcbiAgfTtcclxuICAvLyBhbGxvdyB1c2VyIHRvIGNhbGwgXCJkYXQuR1VJVlIuYXV0b1VwZGF0ZSA9IGZhbHNlXCIgYW5kIHRoZW4gdXBkYXRlIG1hbnVhbGx5IHdpdGhcclxuICAvLyBcImRhdC5HVUlWUi51cGRhdGUoKVwiXHJcbiAgLy8gZXhwb3NlIGF1dG9VcGRhdGUgYXMgcHJvcGVydHkgc28gdGhhdCB0aGUgcmVmZXJlbmNlIHdpbGwgYmUgcHJvcGVybHkgZWZmZWN0ZWRcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIHB1YmxpY0ludGVyZmFjZSwgJ2F1dG9VcGRhdGUnLCB7IGdldDogKCk9PiBhdXRvVXBkYXRlLCBzZXQ6IHYgPT4gYXV0b1VwZGF0ZSA9IHYgfSApO1xyXG4gIHJldHVybiBwdWJsaWNJbnRlcmZhY2U7XHJcblxyXG59KCkpO1xyXG5cclxuaWYoIHdpbmRvdyApe1xyXG4gIGlmKCB3aW5kb3cuZGF0ID09PSB1bmRlZmluZWQgKXtcclxuICAgIHdpbmRvdy5kYXQgPSB7fTtcclxuICB9XHJcblxyXG4gIHdpbmRvdy5kYXQuR1VJVlIgPSBHVUlWUjtcclxufVxyXG5cclxuaWYoIG1vZHVsZSApe1xyXG4gIG1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgZGF0OiBHVUlWUlxyXG4gIH07XHJcbn1cclxuXHJcbmlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xyXG4gIGRlZmluZShbXSwgR1VJVlIpO1xyXG59XHJcblxyXG4vKlxyXG4gIEJ1bmNoIG9mIHN0YXRlLWxlc3MgdXRpbGl0eSBmdW5jdGlvbnMuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBpc051bWJlcihuKSB7XHJcbiAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG4pKSAmJiBpc0Zpbml0ZShuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNCb29sZWFuKG4pe1xyXG4gIHJldHVybiB0eXBlb2YgbiA9PT0gJ2Jvb2xlYW4nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjaykge1xyXG4gIGNvbnN0IGdldFR5cGUgPSB7fTtcclxuICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xyXG59XHJcblxyXG4vLyAgb25seSB7fSBvYmplY3RzIG5vdCBhcnJheXNcclxuLy8gICAgICAgICAgICAgICAgICAgIHdoaWNoIGFyZSB0ZWNobmljYWxseSBvYmplY3RzIGJ1dCB5b3UncmUganVzdCBiZWluZyBwZWRhbnRpY1xyXG5mdW5jdGlvbiBpc09iamVjdCAoaXRlbSkge1xyXG4gIHJldHVybiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pICYmIGl0ZW0gIT09IG51bGwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0FycmF5KCBvICl7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoIG8gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNTdHJpbmcoIG8gKXtcclxuICByZXR1cm4gdHlwZW9mIG8gPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0NvbG9yKCBvICl7XHJcbiAgaWYgKHR5cGVvZiBvICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBvLmlzQ29sb3IgPyB0cnVlIDogZmFsc2U7XHJcbn1cclxuXHJcblxyXG5cclxuLypcclxuICBDb250cm9sbGVyLXNwZWNpZmljIHN1cHBvcnQuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBjb250cm9sbGVyLCBwcmVzc2VkLCBncmlwcGVkICl7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcmRvd24nLCAoKT0+cHJlc3NlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcnVwJywgKCk9PnByZXNzZWQoIGZhbHNlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc2Rvd24nLCAoKT0+Z3JpcHBlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHN1cCcsICgpPT5ncmlwcGVkKCBmYWxzZSApICk7XHJcblxyXG4gIGNvbnN0IGdhbWVwYWQgPSBjb250cm9sbGVyLmdldEdhbWVwYWQoKTtcclxuICBmdW5jdGlvbiB2aWJyYXRlKCB0LCBhICl7XHJcbiAgICBpZiggZ2FtZXBhZCAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycyAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzWyAwIF0ucHVsc2UoIHQsIGEgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NUYXAoKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoMS1hLCAwLjUpLCAxMCwgMjAgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NFY2hvKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDQsIDEuMCAqICgxLWEpKSwgMTAwLCA0ICk7XHJcbiAgfVxyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdvbkNvbnRyb2xsZXJIZWxkJywgZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICB2aWJyYXRlKCAwLjMsIDAuMyApO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiYmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYlJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3Bpbm5lZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3BpblJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldEludGVydmFsVGltZXMoIGNiLCBkZWxheSwgdGltZXMgKXtcclxuICBsZXQgeCA9IDA7XHJcbiAgbGV0IGlkID0gc2V0SW50ZXJ2YWwoIGZ1bmN0aW9uKCl7XHJcbiAgICBjYiggeCwgdGltZXMsIHgvdGltZXMgKTtcclxuICAgIHgrKztcclxuICAgIGlmKCB4Pj10aW1lcyApe1xyXG4gICAgICBjbGVhckludGVydmFsKCBpZCApO1xyXG4gICAgfVxyXG4gIH0sIGRlbGF5ICk7XHJcbiAgcmV0dXJuIGlkO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBnbG9iYWxFdmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdFZvbHVtZSApe1xyXG4gIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG4gIGxldCBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gIGxldCBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gIGxldCBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgdFZlY3RvciA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgYXZhaWxhYmxlSW5wdXRzID0gW107XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSggaW5wdXRPYmplY3RzICl7XHJcblxyXG4gICAgYW55SG92ZXIgPSBmYWxzZTtcclxuICAgIGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgICBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIGlucHV0ICl7XHJcblxyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmluZGV4T2YoIGlucHV0ICkgPCAwICl7XHJcbiAgICAgICAgYXZhaWxhYmxlSW5wdXRzLnB1c2goIGlucHV0ICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHsgaGl0T2JqZWN0LCBoaXRQb2ludCB9ID0gZXh0cmFjdEhpdCggaW5wdXQgKTtcclxuXHJcbiAgICAgIHZhciBob3ZlciA9IGhpdFZvbHVtZSA9PT0gaGl0T2JqZWN0O1xyXG4gICAgICBhbnlIb3ZlciA9IGFueUhvdmVyIHx8IGhvdmVyO1xyXG5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ3ByZXNzZWQnLFxyXG4gICAgICAgIGJ1dHRvbkNsaWNrTmFtZTogJ2NsaWNrZWQnLCAvL21heWJlIG5vdCBzdGFibGUgcGFydCBvZiBBUEkuLi5cclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdwcmVzcycsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvblByZXNzZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAncHJlc3NpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZWQnLFxyXG4gICAgICAgICAvL2ludmVudGluZyBhICdob3ZlcmluZycgZXZlbnQgdGhhdCBvbmx5IGFwcGxpZXMgdG8gJ3ByZXNzZWQnIGJ1dHRvbi4uLlxyXG4gICAgICAgICAvL3RoaXMgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc3RhYmxlIGludGVyZmFjZSwgYnV0IEkgd2FudHMgaXQgbW9yZSB0aGFuIElcclxuICAgICAgICAgLy93YW50IHRvIG1ha2Ugc29tZXRoaW5nIHRvdGFsbHkgY29oZXJlbnQgYW5kIHJvYnVzdCBqdXN0IG5vdy5cclxuICAgICAgICBob3Zlck5hbWU6ICdob3ZlcmluZydcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ2dyaXBwZWQnLFxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ2dyaXAnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25HcmlwcGVkJyxcclxuICAgICAgICBob2xkTmFtZTogJ2dyaXBwaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VHcmlwJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCAndGljaycsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9ICk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZXh0cmFjdEhpdCggaW5wdXQgKXtcclxuICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA8PSAwICl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IHRWZWN0b3Iuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5jdXJzb3IubWF0cml4V29ybGQgKS5jbG9uZSgpLCAvL3h4eDogZ2FyYmFnZT9cclxuICAgICAgICBoaXRPYmplY3Q6IHVuZGVmaW5lZCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5wb2ludCxcclxuICAgICAgICBoaXRPYmplY3Q6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3RcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICBpbnB1dCwgaG92ZXIsXHJcbiAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgYnV0dG9uTmFtZSwgYnV0dG9uQ2xpY2tOYW1lLCBpbnRlcmFjdGlvbk5hbWUsIGRvd25OYW1lLCBob2xkTmFtZSwgdXBOYW1lLCBob3Zlck5hbWVcclxuICB9ID0ge30gKXtcclxuXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBoaXRPYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAvL2NsaWNrZWQgYW5kIGRpZG4ndCBoaXQgYW55IEdVSSBvYmplY3QuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaG92ZXJpbmcgYW5kIGJ1dHRvbiBOT1QgZG93blxyXG4gICAgaWYoIGhvdmVyTmFtZSAmJiBob3ZlciAmJiBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSApIHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBldmVudHMuZW1pdCggaG92ZXJOYW1lLCBwYXlsb2FkICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGhvdmVyaW5nIGFuZCBidXR0b24gZG93biBidXQgbm8gaW50ZXJhY3Rpb25zIGFjdGl2ZSB5ZXRcclxuICAgIC8vLS0tPiBzaG91bGQgYmUgXiBidXR0b24gJ2NsaWNrZWQnLi4uIGllIG9ubHkgaWYgaXQgY2FtZSBkb3duIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS5cclxuICAgIC8vc28sIHNob3VsZCB3ZSBwYXNzICdidXR0b25DbGlja05hbWUnIGFzIGFuIGFyZ3VtZW50IChhbmQgdXNlIGJ1dHRvbk5hbWUgaWYgbm90IHByb3ZpZGVkKT9cclxuICAgIC8vLS0tPj4+PiBYWFg6IGlzIHRoaXMgXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXC8vLy8vLy8vLy8vLyB3b3JraW5nIHdpdGggVml2ZSBjb250cm9sbGVycz8gXHJcbiAgICBpZiggaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbkNsaWNrTmFtZSB8fCBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuXHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaWYgKCFoaXRPYmplY3QudXNlckRhdGEucGFydE9mTW9kYWwpIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuXHJcbiAgICAgIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KTtcclxuICAgICAgXHJcbiAgICAgIC8vZW1pdCBnbG9iYWwgY2xpY2sgZXZlbnQgYXMgd2VsbC4uLlxyXG4gICAgICBnbG9iYWxFdmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBpZiggcGF5bG9hZC5sb2NrZWQgKXtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IGludGVyYWN0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIGFueUFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBzdGlsbCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoIGhvbGROYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBpbnB1dC5ldmVudHMuZW1pdCggJ29uQ29udHJvbGxlckhlbGQnICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBub3QgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSB1bmRlZmluZWQ7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICBldmVudHMuZW1pdCggdXBOYW1lLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KSB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihoaXRPYmplY3QpO1xyXG4gICAgdG9wRm9sZGVyLnByb21vdGVaT3JkZXIoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGlzTWFpbkhvdmVyKCl7XHJcblxyXG4gICAgbGV0IG5vTWFpbkhvdmVyID0gdHJ1ZTtcclxuICAgIGZvciggbGV0IGk9MDsgaTxhdmFpbGFibGVJbnB1dHMubGVuZ3RoOyBpKysgKXtcclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0c1sgaSBdLmludGVyYWN0aW9uLmhvdmVyICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgICBub01haW5Ib3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIG5vTWFpbkhvdmVyICl7XHJcbiAgICAgIHJldHVybiBhbnlIb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmZpbHRlciggZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICAgIHJldHVybiBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9PT0gaW50ZXJhY3Rpb247XHJcbiAgICB9KS5sZW5ndGggPiAwICl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IHtcclxuICAgIGhvdmVyaW5nOiBpc01haW5Ib3ZlcixcclxuICAgIHByZXNzaW5nOiAoKT0+YW55UHJlc3NpbmcsXHJcbiAgICB1cGRhdGUsXHJcbiAgICBldmVudHMsXHJcbiAgICBoaXRWb2x1bWVcclxuICB9O1xyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn1cclxuXHJcbiIsIi8qKlxyXG4gKiBcclxuICogVE9ETzogY3Vyc29ycy4uLlxyXG4gKiBNYXliZSBzb21ldGhpbmcgbGlrZSBtb2JpbGUgaW5wdXQgd2hlcmUgeW91IHN3aXRjaCBiZXR3ZWVuIGxldHRlcnMgJiBudW1iZXJzIC8gc3ltYm9sc1xyXG4gKiBcclxuICogU29tZXRoaW5nIGxpa2UgYSBzcGxpdCBrZXlib2FyZCBhbGEgaHR0cHM6Ly9tZWRpdW0uY29tL2Fhcm9ubi92ci10ZXh0LWlucHV0LXNwbGl0LWtleWJvYXJkLWU1YmYzZmQ4N2E0Y1xyXG4gKiBtaWdodCBiZSBiZXR0ZXIuXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlS2V5Ym9hcmQoIHsgXHJcbiAgICBrZXlMaXN0ZW5lcixcclxuICAgIHRleHRDcmVhdG9yXHJcbn0gPSB7fSkge1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGNvbnN0IG9mZnNldFRyYW5zZm9ybSA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgZ3JvdXAuYWRkKG9mZnNldFRyYW5zZm9ybSk7XHJcblxyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGV2ZW50cy5vbigna2V5RG93bicsIGtleUxpc3RlbmVyKTtcclxuICAgIFxyXG4gICAgY29uc3QgbG93ZXJDaGFycyA9IFwiMTIzNDU2Nzg5MC09cXdlcnR5dWlvcFtdYXNkZmdoamtsOycjXFxcXHp4Y3Zibm0sLi8gXCIuc3BsaXQoJycpO1xyXG4gICAgbGV0IG9iamVjdHMgPSBsb3dlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGxvd2VyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKGxvd2VyS2V5cyk7XHJcblxyXG4gICAgY29uc3QgdXBwZXJDaGFycyA9IFwiIVxcXCLCoyQlXiYqKClfK1FXRVJUWVVJT1B7fUFTREZHSEpLTDpAfnxaWENWQk5NPD4/IFwiLnNwbGl0KCcnKTtcclxuICAgIG9iamVjdHMgPSB1cHBlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHVwcGVyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICB1cHBlcktleXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZCh1cHBlcktleXMpO1xyXG5cclxuICAgIGxldCBzaGlmdCA9IGZhbHNlO1xyXG4gICAgZnVuY3Rpb24gc2hpZnRUb2dnbGUoKSB7XHJcbiAgICAgICAgc2hpZnQgPSAhc2hpZnQ7XHJcbiAgICAgICAgbG93ZXJLZXlzLnZpc2libGUgPSAhc2hpZnQ7XHJcbiAgICAgICAgdXBwZXJLZXlzLnZpc2libGUgPSBzaGlmdDtcclxuICAgfVxyXG5cclxuICAgY29uc3Qgc3BhY2VCYXIgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoeyB0ZXh0Q3JlYXRvciwgY29sdW1uczogMSwgcm93SGVpZ2h0OiAwLjEsIG9iamVjdHM6IFtcclxuICAgICAgIHtmdW5jOiAoKT0+ZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnICcpLCB0ZXh0OiAnc3BhY2UnfVxyXG4gICAgXX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGFjZUJhcik7XHJcbiAgICB2YXIgeSA9IHNwYWNlQmFyLnBvc2l0aW9uLnkgPSAtMC41ICogKGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyk7XHJcbiAgICBcclxuICAgIG9iamVjdHMgPSBbXHJcbiAgICAgICAgeyB0ZXh0OiBcInNoaWZ0XCIsIGZ1bmM6IHNoaWZ0VG9nZ2xlIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImJhY2tzcGFjZVwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXGInKSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJlbnRlclwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXG4nKSB9XHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc3BlY2lhbEtleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAzLCByb3dIZWlnaHQ6IDAuMX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGVjaWFsS2V5cyk7XHJcbiAgICBzcGVjaWFsS2V5cy5wb3NpdGlvbi55ID0geS0wLjUgKiAoc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmcpO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcbiAgICAvL3RoaXMgbG9va3MgcmlnaHQsIG11c3QgYWRtaXQgSSBoYXZlbid0IHRob3VnaHQgdGhyb3VnaCBleGFjdGx5IHdoeSBpdCBzaG91bGQgYmUuXHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0ucG9zaXRpb24ueSA9IHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaGl0c2NhbicsIHtcclxuICAgICAgICBnZXQ6ICgpID0+IFtcclxuICAgICAgICAgICAgc3BlY2lhbEtleXMuaGl0c2Nhbiwgc3BhY2VCYXIuaGl0c2Nhbiwgc2hpZnQgPyB1cHBlcktleXMuaGl0c2NhbiA6IGxvd2VyS2V5cy5oaXRzY2FuXHJcbiAgICAgICAgXS5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBzcGFjZUJhci5mb2xkZXIgPSB1cHBlcktleXMuZm9sZGVyID0gbG93ZXJLZXlzLmZvbGRlciA9IHNwZWNpYWxLZXlzLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IChpbnB1dHMpID0+IHtcclxuICAgICAgICBzcGVjaWFsS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgbG93ZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBzcGFjZUJhci51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgdXBwZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFsaWduTGVmdCggb2JqICl7XHJcbiAgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLk1lc2ggKXtcclxuICAgIG9iai5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIGVsc2UgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5ICl7XHJcbiAgICBvYmouY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgdW5pcXVlTWF0ZXJpYWwgKXtcclxuICBjb25zdCBtYXRlcmlhbCA9IHVuaXF1ZU1hdGVyaWFsID8gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweGZmZmZmZn0pIDogU2hhcmVkTWF0ZXJpYWxzLlBBTkVMO1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggd2lkdGgsIGhlaWdodCwgZGVwdGggKSwgbWF0ZXJpYWwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoICogMC41LCAwLCAwICk7XHJcblxyXG4gIGlmKCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcblxyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcblxyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplUGFuZWwocGFuZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKSB7XHJcbiAgcGFuZWwuZ2VvbWV0cnkuc2NhbGUod2lkdGgvcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoLCBoZWlnaHQvcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCwgZGVwdGgvcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoKTtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIGNvbG9yICl7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDT05UUk9MTEVSX0lEX1dJRFRILCBoZWlnaHQsIENPTlRST0xMRVJfSURfREVQVEggKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCBDT05UUk9MTEVSX0lEX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBjb2xvciApO1xyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURvd25BcnJvdygpe1xyXG4gIGNvbnN0IHcgPSAwLjAwOTY7XHJcbiAgY29uc3QgaCA9IDAuMDE2O1xyXG4gIGNvbnN0IHNoID0gbmV3IFRIUkVFLlNoYXBlKCk7XHJcbiAgc2gubW92ZVRvKDAsMCk7XHJcbiAgc2gubGluZVRvKC13LGgpO1xyXG4gIHNoLmxpbmVUbyh3LGgpO1xyXG4gIHNoLmxpbmVUbygwLDApO1xyXG5cclxuICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuU2hhcGVHZW9tZXRyeSggc2ggKTtcclxuICBnZW8udHJhbnNsYXRlKCAwLCAtaCAqIDAuNSwgMCApO1xyXG5cclxuICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTF9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0hFSUdIVCA9IDAuMDg7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9TUEFDSU5HID0gMDsvLy4wMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9NQVJHSU4gPSAwLjAxNTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOID0gMC4wNjtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfV0lEVEggPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9ERVBUSCA9IDAuMDAxO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9XSURUSCA9IDEuMDI2O1xyXG5leHBvcnQgY29uc3QgU1VCRk9MREVSX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0hFSUdIVCA9IDAuMDk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfR1JBQl9IRUlHSFQgPSAwLjA1MTI7XHJcbmV4cG9ydCBjb25zdCBCT1JERVJfVEhJQ0tORVNTID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX1NJWkUgPSAwLjA1O1xyXG5leHBvcnQgY29uc3QgVEVYVF9TQ0FMRSA9IDAuMDAwMjQ7XHJcbmV4cG9ydCBjb25zdCBHUklEX0JVVFRPTl9NQVJHSU4gPSAwLjAxOyIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25HcmlwcGVkJywgaGFuZGxlT25HcmlwICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlR3JpcCcsIGhhbmRsZU9uR3JpcFJlbGVhc2UgKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIGxldCBvbGRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgbGV0IG9sZFJvdGF0aW9uID0gbmV3IFRIUkVFLkV1bGVyKCk7XHJcblxyXG4gIGNvbnN0IHJvdGF0aW9uR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICByb3RhdGlvbkdyb3VwLnNjYWxlLnNldCggMC4zLCAwLjMsIDAuMyApO1xyXG4gIHJvdGF0aW9uR3JvdXAucG9zaXRpb24uc2V0KCAtMC4wMTUsIDAuMDE1LCAwLjAgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcCggcCApe1xyXG5cclxuICAgIGNvbnN0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvbGRQb3NpdGlvbi5jb3B5KCBmb2xkZXIucG9zaXRpb24gKTtcclxuICAgIG9sZFJvdGF0aW9uLmNvcHkoIGZvbGRlci5yb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnggPSAtTWF0aC5QSSAqIDAuNTtcclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuXHJcbiAgICByb3RhdGlvbkdyb3VwLmFkZCggZm9sZGVyICk7XHJcblxyXG4gICAgaW5wdXRPYmplY3QuYWRkKCByb3RhdGlvbkdyb3VwICk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3Bpbm5lZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXBSZWxlYXNlKCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9PXt9ICl7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KCBvbGRQb3NpdGlvbiApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLmNvcHkoIG9sZFJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3BpblJlbGVhc2VkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsIi8qKlxyXG4gKiBQSlQ6IFRoaXMgaXMgYSB2YXJpYXRpb24gb24gc2Rmc2hhZGVyIGZyb20gYm1mb250LCB3aGljaCBzaG91bGQgSnVzdCBXb3JrIHdpdGggbG9nYXJpdGhtaWMgZGVwdGggYnVmZmVycy5cclxuICogSXQgc2hvdWxkIGFsc28gYWxsb3cgc29tZSBvdGhlciBhc3BlY3RzIG9mIFRIUkVFIHJlbmRlcmluZyB0byBiZSBpbmNvcnBvcmF0ZWQsIGxpa2UgZm9nLCBjbGlwcGluZyBwbGFuZXMuLi5cclxuICogRW52aXJvbm1lbnQgbWFwcyBhbmQgdmFyaW91cyBvdGhlciBiaXRzIGZyb20gTWVzaEJhc2ljTWF0ZXJpYWwgYXJlIHJlbW92ZWQuXHJcbiAqIEF0IHRpbWUgb2Ygd3JpdGluZywgdGhpcyBpcyB3b3JrIGluIHByb2dyZXNzLCBhbmQgc29tZXdoYXQgbW9yZSBibG9hdGVkIHRoYW4gaXQgbmVlZHMgdG8gYmUuXHJcbiAqIFRoZSBzaGFkZXIgY29kZSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggU2hhZGVyTWF0ZXJpYWwgcmF0aGVyIHRoYW4gUmF3U2hhZGVyTWF0ZXJpYWwuXHJcbiAqL1xyXG4vLyBpbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xyXG5cclxuLyoqXHJcbiAqIHN0YXJ0aW5nIGZyb20gVEhSRUUgbWVzaGJhc2ljIHNoYWRlcnMsIHBydW5pbmcgLyBtb2RpZnlpbmcuLi5cclxuICovXHJcbmNvbnN0IG1lc2hiYXNpY192ZXJ0ID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4PlxyXG5cclxudm9pZCBtYWluKCkgeyBcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG5cclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50PlxyXG5cclxuLy8vLy9cclxuZmxvYXQgYWFzdGVwKGZsb2F0IHZhbHVlKSB7XHJcbiAgICAvLyBXZSBub3cgYXNzdW1lIFdlYkdMMiBhbmQgc28gdGhlIGRlcml2YXRpdmVzIGFyZSBhdmFpbGFibGUsIFxyXG4gICAgLy8gc28gYWZ3aWR0aCBkZXBlbmRzIG9uIHNjYWxlIG9mIGd1aVxyXG4gICAgZmxvYXQgYWZ3aWR0aCA9IGxlbmd0aCh2ZWMyKGRGZHgodmFsdWUpLCBkRmR5KHZhbHVlKSkpICogMC43MDcxMDY3ODExODY1NDc1NztcclxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcclxufVxyXG4vLy8vXHJcblxyXG52b2lkIG1haW4oKSB7XHJcblxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XHJcblxyXG4gICAgLy8vXHJcbiAgICB2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICk7XHJcbiAgICBcclxuICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQobWFwLCB2VXYpO1xyXG4gICAgZmxvYXQgYWxwaGEgPSBhYXN0ZXAodGV4Q29sb3IuYSk7XHJcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xyXG4gICAgaWYgKGdsX0ZyYWdDb2xvci5hIDwgMC4wMDAxKSBkaXNjYXJkO1xyXG4gICAgLy8vXHJcblxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cclxuICAgIC8vWFhYOiBiaWcgY2h1bmsgcmVtb3ZlZCBmcm9tIG9yaWdpbmFsIG1lc2hiYXNpY19mcmFnIGhlcmUuXHJcbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxyXG59XHJcbmA7XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVTREZTaGFkZXIgKG9wdCkge1xyXG4gIG9wdCA9IG9wdCB8fCB7fTtcclxuICB2YXIgb3BhY2l0eSA9IHR5cGVvZiBvcHQub3BhY2l0eSA9PT0gJ251bWJlcicgPyBvcHQub3BhY2l0eSA6IDE7XHJcbiAgLy8vLS0gaGFyZGNvZGVkIGluIHNoYWRlciBjb2RlLCBndWl2ciBuZXZlciBwYXNzZWQgdGhlc2UgaW4gb3B0IC0tXHJcbiAgLy92YXIgYWxwaGFUZXN0ID0gdHlwZW9mIG9wdC5hbHBoYVRlc3QgPT09ICdudW1iZXInID8gb3B0LmFscGhhVGVzdCA6IDAuMDAwMVxyXG4gIC8vdmFyIHByZWNpc2lvbiA9IG9wdC5wcmVjaXNpb24gfHwgJ2hpZ2hwJ1xyXG4gIHZhciBjb2xvciA9IG9wdC5jb2xvcjtcclxuICB2YXIgbWFwID0gb3B0Lm1hcDtcclxuICBcclxuICBvcHQuZXh0ZW5zaW9ucyA9IG9wdC5leHRlbnNpb25zIHx8IHt9O1xyXG4gIG9wdC5leHRlbnNpb25zLmRlcml2YXRpdmVzID0gdHJ1ZTsgLy9uYiwgZmFsc2UgZGVmYXVsdHMgZm9yIGZyYWdEZXB0aCwgZHJhd0J1ZmZlcnMsIHNoYWRlclRleHR1cmVMT0Qgd2lsbCBubyBsb25nZXIgYmUgdGhlcmUuXHJcbiAgb3B0Lm5hbWUgPSBcIlNERiB0ZXh0IG1hdGVyaWFsXCI7XHJcblxyXG4gIC8vIHJlbW92ZSB0byBzYXRpc2Z5IHI3M1xyXG4gIGRlbGV0ZSBvcHQubWFwO1xyXG4gIGRlbGV0ZSBvcHQuY29sb3I7XHJcbiAgZGVsZXRlIG9wdC5wcmVjaXNpb247XHJcbiAgZGVsZXRlIG9wdC5vcGFjaXR5O1xyXG5cclxuICByZXR1cm4gYXNzaWduKHtcclxuICAgIHVuaWZvcm1zOiB7XHJcbiAgICAgIG9wYWNpdHk6IHsgdHlwZTogJ2YnLCB2YWx1ZTogb3BhY2l0eSB9LFxyXG4gICAgICBtYXA6IHsgdHlwZTogJ3QnLCB2YWx1ZTogbWFwIHx8IG5ldyBUSFJFRS5UZXh0dXJlKCkgfSxcclxuICAgICAgY29sb3I6IHsgdHlwZTogJ2MnLCB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGNvbG9yKSB9XHJcbiAgICB9LFxyXG4gICAgdmVydGV4U2hhZGVyOiBtZXNoYmFzaWNfdmVydCxcclxuICAgIGZyYWdtZW50U2hhZGVyOiBtZXNoYmFzaWNfZnJhZ1xyXG4gIH0sIG9wdCk7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBTREZTaGFkZXIgZnJvbSAnLi9zZGZzaGFkZXJfbG9nZGVwdGgnO1xyXG5pbXBvcnQgY3JlYXRlR2VvbWV0cnkgZnJvbSAndGhyZWUtYm1mb250LXRleHQnO1xyXG5pbXBvcnQgcGFyc2VBU0NJSSBmcm9tICdwYXJzZS1ibWZvbnQtYXNjaWknO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuaW1wb3J0ICogYXMgRm9udCBmcm9tICcuL2ZvbnQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApe1xyXG5cclxuICBjb25zdCBpbWFnZSA9IEZvbnQuaW1hZ2UoKTtcclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoaW1hZ2UpOyB0ZXh0dXJlLm5hbWUgPSAnc2RmRm9udFRleHR1cmUnXHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgLy9OQjo6OiBzb21ld2hhdCBleHBlcmltZW50YWwgcmVwbGFjZW1lbnQgb2YgUmF3U2hhZGVyIGNvZGUgZnJvbSBibWZvbnQgd2l0aCB2YXJpYXRpb24gb2YgTWVzaEJhc2ljIHNoYWRlclxyXG4gIC8vdGhpcyBzaG91bGQgYWxsb3cgZm9yIGxvZ2RlcHRoLCBmb2cgaXMgYWxzbyBhbnRpY2lwYXRlZCB0byB3b3JrIHJlYXNvbmFibHkgd2VsbC4uLiBcclxuICAvL3RvbmVtYXBwaW5nIGV0YyBtYXkgY29uY2VpdmFibHkgYmUgaW1wcm92ZWQuLi4gWU1NVi5cclxuICBsZXQgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoU0RGU2hhZGVyKHtcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIGNvbG9yOiBjb2xvcixcclxuICAgIG1hcDogdGV4dHVyZSxcclxuICAgIHR5cGU6ICdTREYgVGV4dCdcclxuICB9KSk7XHJcbiAgcmV0dXJuIG1hdGVyaWFsO1xyXG59XHJcblxyXG5jb25zdCB0ZXh0U2NhbGUgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdG9yKCl7XHJcblxyXG4gIGNvbnN0IGZvbnQgPSBwYXJzZUFTQ0lJKCBGb250LmZudCgpICk7XHJcblxyXG4gIGNvbnN0IGNvbG9yTWF0ZXJpYWxzID0ge307XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IgPSAweGZmZmZmZiwgc2NhbGUgPSAxLjAsIHdpZHRoLCBoZWlnaHQgKXtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IGNyZWF0ZUdlb21ldHJ5KHtcclxuICAgICAgdGV4dDogc3RyLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICBmbGlwWTogdHJ1ZSxcclxuICAgICAgZm9udFxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IGxheW91dCA9IGdlb21ldHJ5LmxheW91dDtcclxuXHJcbiAgICBsZXQgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXTtcclxuICAgIGlmKCBtYXRlcmlhbCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF0gPSBjcmVhdGVNYXRlcmlhbCggY29sb3IgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5KCBuZXcgVEhSRUUuVmVjdG9yMygxLC0xLDEpICk7XHJcblxyXG4gICAgY29uc3QgZmluYWxTY2FsZSA9IHNjYWxlICogdGV4dFNjYWxlO1xyXG5cclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHlTY2FsYXIoIGZpbmFsU2NhbGUgKTtcclxuXHJcbiAgICBtZXNoLnBvc2l0aW9uLnkgPSBsYXlvdXQuaGVpZ2h0ICogMC41ICogZmluYWxTY2FsZTtcclxuXHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIHN0ciwgeyBjb2xvcj0weGZmZmZmZiwgc2NhbGU9MS4wIH0gPSB7fSApe1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgICBsZXQgbWVzaCA9IGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IsIHNjYWxlICk7XHJcbiAgICBncm91cC5hZGQoIG1lc2ggKTtcclxuICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgZ3JvdXAuY29tcHV0ZVdpZHRoID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LndpZHRoICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuICAgIGdyb3VwLmNvbXB1dGVIZWlnaHQgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQuaGVpZ2h0ICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5jb25zdHJhaW5Cb3VuZHMgPSAodywgaCkgPT4ge1xyXG4gICAgICBncm91cC5yZW1vdmUobWVzaCk7XHJcbiAgICAgIGNvbnN0IHMgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgY29uc3QgaEZhY3RvciA9IG1lc2guZ2VvbWV0cnkubGF5b3V0LmhlaWdodCpzL2g7XHJcbiAgICAgIGlmIChoRmFjdG9yID4gMSkge1xyXG4gICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgMC45NSogc3RyLmxlbmd0aC9oRmFjdG9yKSArICcuLi4nO1xyXG4gICAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIH1cclxuICAgICAgZ3JvdXAuYWRkKG1lc2gpO1xyXG4gICAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC51cGRhdGVMYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgZ2V0TWF0ZXJpYWw6ICgpPT4gbWF0ZXJpYWwgLy9YWFg6IHRoaXMgZGF0ZXMgYmFjayBxdWl0ZSBhIGxvbmcgd2F5LCBub3Qgc3VyZSBpdCB3YXMgZXZlciByaWdodC5cclxuICB9XHJcblxyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4ZmZmZmZmLCB2ZXJ0ZXhDb2xvcnM6IFRIUkVFLlZlcnRleENvbG9ycyB9ICk7XHJcbmV4cG9ydCBjb25zdCBMT0NBVE9SID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVIgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MDAwMDAwIH0gKTtcclxuZXhwb3J0IGNvbnN0IFRPT0xUSVAgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MjA1MDgwLCB0cmFuc3BhcmVudDogZmFsc2UsIG9wYWNpdHk6IDAuOCB9ICk7XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNsaWRlcigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSAwLjAsXHJcbiAgbWluID0gMC4wLCBtYXggPSAxLjAsXHJcbiAgc3RlcCA9IDAuMSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBpbml0aWFsSGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgYWxwaGE6IDEuMCxcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBzdGVwOiBzdGVwLFxyXG4gICAgdXNlU3RlcDogdHJ1ZSxcclxuICAgIHByZWNpc2lvbjogMSxcclxuICAgIGxpc3RlbjogZmFsc2UsXHJcbiAgICBtaW46IG1pbixcclxuICAgIG1heDogbWF4LFxyXG4gICAgb25DaGFuZ2VkQ0I6IHVuZGVmaW5lZCxcclxuICAgIG9uRmluaXNoZWRDaGFuZ2U6IHVuZGVmaW5lZCxcclxuICAgIHByZXNzaW5nOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgc3RhdGUuc3RlcCA9IGdldEltcGxpZWRTdGVwKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApO1xyXG4gIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwic2xpZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gaGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0IFNMSURFUl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0RFUFRIID0gZGVwdGg7XHJcblxyXG4gICAgLy8gIGZpbGxlZCB2b2x1bWVcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIFNMSURFUl9XSURUSCwgU0xJREVSX0hFSUdIVCwgU0xJREVSX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShTTElERVJfV0lEVEgqMC41LDAsMCk7XHJcbiAgICAvLyBMYXlvdXQuYWxpZ25MZWZ0KCByZWN0ICk7XHJcblxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLm5hbWUgPSAnaGl0c2NhblZvbHVtZSc7XHJcblxyXG4gICAgLy8gIHNsaWRlckJHIHZvbHVtZVxyXG4gICAgY29uc3Qgc2xpZGVyQkcgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBzbGlkZXJCRy5nZW9tZXRyeSwgQ29sb3JzLlNMSURFUl9CRyApO1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSCArIExheW91dC5QQU5FTF9NQVJHSU47XHJcblxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkRFRkFVTFRfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgZmlsbGVkVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICBjb25zdCBlbmRMb2NhdG9yID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggMC4wNSwgMC4wNSwgMC4wNSwgMSwgMSwgMSApLCBTaGFyZWRNYXRlcmlhbHMuTE9DQVRPUiApO1xyXG4gICAgZW5kTG9jYXRvci5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGVuZExvY2F0b3IgKTtcclxuICAgIGVuZExvY2F0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9WQUxVRV9URVhUX01BUkdJTiArIHdpZHRoICogMC41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGgqMi41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDMyNTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX1NMSURFUiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIHBhbmVsLm5hbWUgPSAncGFuZWwnO1xyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIHNsaWRlckJHLCB2YWx1ZUxhYmVsLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgICBncm91cC5hZGQoIHBhbmVsIClcclxuXHJcbiAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgdXBkYXRlU2xpZGVyKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsdWVMYWJlbCggdmFsdWUgKXtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCByb3VuZFRvRGVjaW1hbCggc3RhdGUudmFsdWUsIHN0YXRlLnByZWNpc2lvbiApLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgICAgaWYoIHN0YXRlLnByZXNzaW5nICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSU5URVJBQ1RJT05fQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTbGlkZXIoKXtcclxuICAgICAgZmlsbGVkVm9sdW1lLnNjYWxlLnggPVxyXG4gICAgICAgIE1hdGgubWluKFxyXG4gICAgICAgICAgTWF0aC5tYXgoIGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKSAqIHdpZHRoLCAwLjAwMDAwMSApLFxyXG4gICAgICAgICAgd2lkdGhcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9iamVjdCggdmFsdWUgKXtcclxuICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBhbHBoYSApe1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggYWxwaGEgKTtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBnZXRTdGVwcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5zdGVwICk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRDbGFtcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpe1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbU9iamVjdCgpO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tT2JqZWN0KCl7XHJcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgICAgc3RhdGUub25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5zdGVwID0gZnVuY3Rpb24oIHN0ZXAgKXtcclxuICAgICAgc3RhdGUuc3RlcCA9IHN0ZXA7XHJcbiAgICAgIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwIClcclxuICAgICAgc3RhdGUudXNlU3RlcCA9IHRydWU7XHJcblxyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVQcmVzcyApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVIb2xkICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlUmVsZWFzZSApO1xyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVByZXNzKCBwICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVIb2xkKCB7IHBvaW50IH0gPSB7fSApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGZpbGxlZFZvbHVtZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBlbmRMb2NhdG9yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcblxyXG4gICAgICBjb25zdCBhID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGZpbGxlZFZvbHVtZS5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBjb25zdCBiID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGVuZExvY2F0b3IubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBnZXRQb2ludEFscGhhKCBwb2ludCwge2EsYn0gKSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHVwZGF0ZU9iamVjdCggc3RhdGUudmFsdWUgKTtcclxuXHJcbiAgICAgIGlmKCBwcmV2aW91c1ZhbHVlICE9PSBzdGF0ZS52YWx1ZSAmJiBzdGF0ZS5vbkNoYW5nZWRDQiApe1xyXG4gICAgICAgIHN0YXRlLm9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUmVsZWFzZSgpe1xyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICAgIHVwZGF0ZVNsaWRlcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5taW4gPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5taW4gPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5tYXggPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5tYXggPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9IC8vIC9zZXRIZWlnaHRcclxuICBncm91cC5zZXRIZWlnaHQoIGluaXRpYWxIZWlnaHQgKTtcclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IHRhID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0VG9BID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgYVRvQiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb2ludEFscGhhKCBwb2ludCwgc2VnbWVudCApe1xyXG4gIHRhLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICk7XHJcbiAgdGIuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBjb25zdCBwcm9qZWN0ZWQgPSB0Yi5wcm9qZWN0T25WZWN0b3IoIHRhICk7XHJcblxyXG4gIHRUb0EuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBhVG9CLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICkubm9ybWFsaXplKCk7XHJcblxyXG4gIGNvbnN0IHNpZGUgPSB0VG9BLm5vcm1hbGl6ZSgpLmRvdCggYVRvQiApID49IDAgPyAxIDogLTE7XHJcblxyXG4gIGNvbnN0IGxlbmd0aCA9IHNlZ21lbnQuYS5kaXN0YW5jZVRvKCBzZWdtZW50LmIgKSAqIHNpZGU7XHJcblxyXG4gIGxldCBhbHBoYSA9IHByb2plY3RlZC5sZW5ndGgoKSAvIGxlbmd0aDtcclxuICBpZiggYWxwaGEgPiAxLjAgKXtcclxuICAgIGFscGhhID0gMS4wO1xyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwLjAgKXtcclxuICAgIGFscGhhID0gMC4wO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxlcnAobWluLCBtYXgsIHZhbHVlKSB7XHJcbiAgcmV0dXJuICgxLXZhbHVlKSptaW4gKyB2YWx1ZSptYXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcF9yYW5nZSh2YWx1ZSwgbG93MSwgaGlnaDEsIGxvdzIsIGhpZ2gyKSB7XHJcbiAgICByZXR1cm4gbG93MiArIChoaWdoMiAtIGxvdzIpICogKHZhbHVlIC0gbG93MSkgLyAoaGlnaDEgLSBsb3cxKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApe1xyXG4gIGlmKCBhbHBoYSA+IDEgKXtcclxuICAgIHJldHVybiAxXHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAgKXtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRWYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgaWYoIHZhbHVlIDwgbWluICl7XHJcbiAgICByZXR1cm4gbWluO1xyXG4gIH1cclxuICBpZiggdmFsdWUgPiBtYXggKXtcclxuICAgIHJldHVybiBtYXg7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0SW1wbGllZFN0ZXAoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIC8vUEpUOiB3aGF0IHdvdWxkIHdlIGxpa2Ugc3RlcCB0byBsb29rIGxpa2U/XHJcbiAgLy9Tb21ldGhpbmcgdGhhdCBoYXMgYWJvdXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSwgYW5kIGxvb2tzIG5pY2UgaW4gYmFzZSAxMD9cclxuICBjb25zdCByID0gbWF4LW1pbjtcclxuICBsZXQgc3RlcCA9IHIvMTAwOyAvL3doYXQgaXMgdGhlIHJhdGlvIG9mIG51bWJlciBvZiBkZWNpbWFscyB0byBvcmRlciBvZiBtYWduaXR1ZGU/XHJcbiAgXHJcbiAgcmV0dXJuIHN0ZXA7XHJcblxyXG4gIC8vIGlmKCB2YWx1ZSA9PT0gMCApe1xyXG4gIC8vICAgcmV0dXJuIDE7IC8vIFdoYXQgYXJlIHdlLCBwc3ljaGljcz8gLy88PDw8LS0tIG5vLCBzbyB3ZSBzaG91bGQgYmFzZSBpbXBsaWVkU3RlcCBvbiBtaW4vbWF4LCBub3QgdmFsdWVcclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgLy8gSGV5IERvdWcsIGNoZWNrIHRoaXMgb3V0LlxyXG4gIC8vICAgcmV0dXJuIE1hdGgucG93KDEwLCBNYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKHZhbHVlKSkvTWF0aC5MTjEwKSkvMTA7XHJcbiAgLy8gfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRWYWx1ZUZyb21BbHBoYSggYWxwaGEsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggYWxwaGEsIDAuMCwgMS4wLCBtaW4sIG1heCApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFscGhhRnJvbVZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCB2YWx1ZSwgbWluLCBtYXgsIDAuMCwgMS4wICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFN0ZXBwZWRWYWx1ZSggdmFsdWUsIHN0ZXAgKXtcclxuICBpZiggdmFsdWUgJSBzdGVwICE9IDApIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKCB2YWx1ZSAvIHN0ZXAgKSAqIHN0ZXA7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gbnVtRGVjaW1hbHMoeCkge1xyXG4gIHggPSB4LnRvU3RyaW5nKCk7XHJcbiAgaWYgKHguaW5kZXhPZignLicpID4gLTEpIHtcclxuICAgIHJldHVybiB4Lmxlbmd0aCAtIHguaW5kZXhPZignLicpIC0gMTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByb3VuZFRvRGVjaW1hbCh2YWx1ZSwgZGVjaW1hbHMpIHtcclxuICBpZiAoTWF0aC5hYnModmFsdWUpIDwgMC4wMSAmJiB2YWx1ZSAhPT0gMCkgcmV0dXJuIHZhbHVlLnRvRXhwb25lbnRpYWwoMyk7XHJcbiAgY29uc3QgdGVuVG8gPSBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xyXG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogdGVuVG8pIC8gdGVuVG87XHJcbn0iLCIvKipcclxuICogV2hlbiB0aGUgdGV4dGJveCBpcyBmb2N1c3NlZCwgIGEga2V5Ym9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuLi5cclxuICogVGhlcmUgc2hvdWxkIGFsc28gYmUgYSB3YXkgb2YgZGlzbWlzc2luZyBpdCBsYXRlci4gIEl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdG9cclxuICogcHJldmVudCBtdWx0aXBsZSBrZXlib2FyZHMgYmVpbmcgbWFkZSBzaW11bHRhbmVvdXNseT9cclxuICogXHJcbiAqIEluIG9yZGVyIHRvIG1ha2UgaXQgYXBwZWFyLCBpdCBjYW4gYmUgYWRkZWQgYXMgYSBjaGlsZCBvZiB0aGUgdGV4Ym94IG5vZGUgaXRzZWxmLi4uXHJcbiAqIFRoaXMnbGwgbWVhbiB0aGF0IGl0IGdldHMgZHJhZ2dlZCBhcm91bmQgYnkgdGhlIHBhcmVudCBHVUkgYXMgaXQgbW92ZXMuLi4uXHJcbiAqIE1ha2VzIGZvciByZWxhdGl2ZWx5IGNsZWFuLCBzaW1wbGUgaW1wbGVtZW50YXRpb24gYXQgbGVhc3QuXHJcbiAqIEF0IHRoZSBtb21lbnQsIGtleWJvYXJkIHBvc2l0aW9uaW5nIGlzIG1lc3NlZCB1cCBieSB0aGlzIGFycmFuZ2VtZW50LlxyXG4gKiBSZW1vdmluZyBncmFiYmVyIG1ha2VzIGl0IGxlc3MgbGlrZWx5IGEgdXNlciB3aWxsIGRvIHRoaXMsIGJ1dCBtaWdodCBiZSB3b3J0aCBmaXhpbmcgdGhlIGJhc2ljIGJ1Zy5cclxuICogXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgR1VJIGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dEJveCh7XHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9KSB7XHJcbiAgLy8gYmlnIG9sZCBjb3B5IC8gcGFzdGUgZnJvbSBidXR0b24uanMuIE1pZ2h0IHRyeSB0byBmYWN0b3Igb3V0IHNvbWUgb2YgdGhpcyBjb21tb24gY29kZS5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0Ym94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogMHhGRkZGRkYgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICAvL2hvdyBjYW4gSSBjaGFuZ2UgY29sb3Igb2YgdGV4dD9cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggb2JqZWN0W3Byb3BlcnR5TmFtZV0sIHsgY29sb3I6IDB4MDAwMDAwMCwgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIC8vYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSAwLjAxNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVTdHJpbmcoc3RyKSB7XHJcbiAgICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RyO1xyXG4gICAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbChzdHIpO1xyXG4gIH1cclxuICB2YXIga2V5Ym9hcmQ7XHJcbiAgZnVuY3Rpb24gdG9nZ2xlS2V5Ym9hcmQoKSB7XHJcbiAgICBpZiAoa2V5Ym9hcmQpIHtcclxuICAgICAgICBrZXlib2FyZC52aXNpYmxlID0gIWtleWJvYXJkLnZpc2libGU7XHJcbiAgICAgICAgaWYgKGtleWJvYXJkLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBrZXlib2FyZCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJrZXlib2FyZFwiKTtcclxuICAgICAgICBncm91cC5hZGQoa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLmZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnggPSB3aWR0aDtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICAgICAga2V5Ym9hcmQuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgIGtleWJvYXJkLmFkZEtleWJvYXJkKCAoaykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgc3RyID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAoaykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxuJzpcclxuICAgICAgICAgICAgICAgICAgICAvL3NldHRpbmcgXCJrZXlib2FyZC52aXNpYmxlID0gZmFsc2VcIiBpbiB0aGUgbWlkZGxlIG9mIGV2ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyIHNlZW1zIHRvIGtpbGwgYWxsIGV2ZW50IHByb2Nlc3NpbmcgZnJvbSB0aGVuIG9uLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0VGltZW91dCBpcyBhbiBhZGVxdWF0ZSB3b3JrYXJvdW5kIGZvciBub3cuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0b2dnbGVLZXlib2FyZCwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcYic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gaztcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy90aGlzIHRlc3Qgc2hvdWxkIGJlIHJlZHVuZGFudCBub3dcclxuICAgIC8vIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy9vYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgLy9oaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgLy8gY3JlYXRlIGEga2V5Ym9hcmQgYW5kIGF0dGFjaCBpdCBhcyBjaGlsZCBvZiBncm91cC4uLiBcclxuICAgIC8vIG9yIGp1c3QgbWFrZSBzdXJlIGV4aXN0aW5nIGtleWJvYXJkIGlzIHZpc2libGUuXHJcbiAgICB0b2dnbGVLZXlib2FyZCgpO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0hJR0hMSUdIVF9CRyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9CRyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0TGFiZWwoIHRleHRDcmVhdG9yLCBzdHIsIHdpZHRoID0gMC40LCBkZXB0aCA9IDAuMDI5LCBmZ0NvbG9yID0gMHhmZmZmZmYsIGJnQ29sb3IgPSBDb2xvcnMuREVGQVVMVF9CQUNLLCBzY2FsZSA9IDEuMCApe1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRsYWJlbFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3N0cn1dYDtcclxuXHJcbiAgY29uc3QgaW50ZXJuYWxQb3NpdGlvbmluZyA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL3JhdGhlciB1bm5lY2Vzc2FyeS5cclxuICBncm91cC5hZGQoIGludGVybmFsUG9zaXRpb25pbmcgKTtcclxuXHJcbiAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RyLnRvU3RyaW5nKCksIHsgY29sb3I6IGZnQ29sb3IsIHNjYWxlIH0gKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggdGV4dCApO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnRleHQgPSB0ZXh0O1xyXG5cclxuICBncm91cC5zZXRTdHJpbmcgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHN0ciA9IFwiW3VuZGVmaW5lZF1cIjtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b1N0cmluZygpICk7XHJcbiAgICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldE51bWJlciA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b0ZpeGVkKDIpICk7XHJcbiAgfTtcclxuXHJcbiAgdGV4dC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIGNvbnN0IGJhY2tCb3VuZHMgPSAwLjAxO1xyXG4gIGNvbnN0IG1hcmdpbiA9IDAuMDE7XHJcbiAgY29uc3QgdG90YWxXaWR0aCA9IHdpZHRoO1xyXG4gIGNvbnN0IHRvdGFsSGVpZ2h0ID0gMC4wNCArIG1hcmdpbiAqIDI7XHJcblxyXG4gIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja0dlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB0b3RhbFdpZHRoLCB0b3RhbEhlaWdodCwgZGVwdGgsIDEsIDEsIDEgKTtcclxuICBsYWJlbEJhY2tHZW9tZXRyeS5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVRyYW5zbGF0aW9uKCB0b3RhbFdpZHRoICogMC41IC0gbWFyZ2luLCAwLCAwICkgKTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrTWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBsYWJlbEJhY2tHZW9tZXRyeSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsQmFja01lc2guZ2VvbWV0cnksIGJnQ29sb3IgKTtcclxuXHJcbiAgbGFiZWxCYWNrTWVzaC5wb3NpdGlvbi55ID0gMC4wMztcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggbGFiZWxCYWNrTWVzaCApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcucG9zaXRpb24ueSA9IC10b3RhbEhlaWdodCAqIDAuNTtcclxuXHJcbiAgZ3JvdXAuYmFjayA9IGxhYmVsQmFja01lc2g7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgZGVmYXVsdFBhcmVudEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2xUaXAoIHRleHRDcmVhdG9yLCB0aXAsIHBhcmVudFdpZHRoLCBwYXJlbnRIZWlnaHQgPSBkZWZhdWx0UGFyZW50SGVpZ2h0LCBwYXJlbnREZXB0aCApIHtcclxuICBjb25zdCB0aXBUZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKHRpcCk7XHJcbiAgXHJcbiAgY29uc3QgdGlwR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgY29uc3QgdyA9IHRpcFRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgY29uc3QgaCA9IExheW91dC5URVhUX1NDQUxFICogdGlwVGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG5cclxuICB0aXBHcm91cC5wb3NpdGlvbi54ICA9IDAuNSAqIHBhcmVudFdpZHRoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnkgPSAtMS4wNSAqIHBhcmVudEhlaWdodCAtIGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueiA9IHBhcmVudERlcHRoICogMztcclxuICB0aXBHcm91cC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4vLyAgc3ViZ3JvdXAuYWRkKHRpcEdyb3VwKTtcclxuICB0aXBHcm91cC5hZGQodGlwVGV4dCk7XHJcbi8vICBzdWJncm91cC50aXBUZXh0ID0gdGlwR3JvdXA7XHJcblxyXG4gIGNvbnN0IHBhZGRlZFcgPSB3ICsgMC4wMywgcGFkZGVkSCA9IGggKyAwLjAzO1xyXG4gIGNvbnN0IHRpcFJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeShwYWRkZWRXLCBwYWRkZWRILCAxLCAxKTtcclxuICBjb25zdCB0aXBCYWNrZ3JvdW5kID0gbmV3IFRIUkVFLk1lc2godGlwUmVjdCwgU2hhcmVkTWF0ZXJpYWxzLlRPT0xUSVApO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueCA9IDA7IC8vcGFkZGVkVyAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi55ID0gaCAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi56ID0gLXBhcmVudERlcHRoICogMC41O1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBCYWNrZ3JvdW5kKTtcclxuXHJcbiAgdGlwVGV4dC5wb3NpdGlvbi54ID0gLTAuNSAqIHc7XHJcbiAgdGlwVGV4dC5wb3NpdGlvbi55ID0gLTAuNSAqIGggKyAwLjAwMTU7XHJcblxyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLncgPSB3O1xyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLmggPSBoO1xyXG5cclxuICByZXR1cm4gdGlwR3JvdXA7XHJcbn1cclxuIiwiLyoqIGJhc2ljIHV0aWxpdHkgZnVuY3Rpb25zICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sbGVyVmlzaWJsZShjb250cm9sKSB7XHJcbiAgdmFyIGZvbGRlciA9IGNvbnRyb2wuZm9sZGVyO1xyXG4gIC8vbm90ZTogdGhlIGJhc2lzIG9uIHdoaWNoIGEgY29udHJvbGxlciBpcyBjb25zaWRlcmVkIHZpc2libGUgcmV2aXNlZCBmb3IgJ2hlYWRlcicgb2JqZWN0cy5cclxuICAvL2ZvciBub3csIHRoaXMgc2hvdWxkIGFsbG93IGhlYWRlciBjb250cm9sbGVycyB0byB1cGRhdGUgd2hpbGUgZm9sZGVyIGlzIGNvbGxhcHNlZC5cclxuICAvL29ubHkgYXBwbGllcyB0byBjaGVja2JveCwgcGVuZGluZyBkZXNpZ24gcmV2aXNpb24gJiBmdWxsZXIgaW1wbGVtZW50YXRpb24uLi5cclxuICBcclxuICAvLy0tLS0gaXNTaG93bkluRm9sZGVySGVhZGVyIG5vIGxvbmdlciByZWxldmFudCwgYnV0IGVuZGluZyB1cCB3aXRoIHNvbWV0aGluZyB0aGF0IGxvb2tzIHNpbWlsYXIuLi4uXHJcbiAgLy9pc0hlYWRlck9iamVjdCB3aWxsIGFwcGx5IHRvIHRoZSBhY3R1YWwgY29udHJvbCBhcHBlYXJpbmcgaW4gdGhlIGZvbGRlciBoZWFkZXIsIHdoZXJlYXNcclxuICAvL2lzU2hvd25JbkZvbGRlckhlYWRlciB3YXMgd2hlbiBzdWNoIG9iamVjdHMgd2VyZW4ndCBzbyBmdWxseS1mbGVkZ2VkXHJcbiAgLy9pZiAoY29udHJvbC5pc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7IC8vPDw8PDwgc3RpbGwgaGl0dGluZyBmb2xkZWQgYnV0dG9uPz8/IChhbHNvLCB0cnkgbnBtIGF1ZGl0KVxyXG4gIGlmIChjb250cm9sLmlzSGVhZGVyT2JqZWN0KSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpO1xyXG5cclxuICAvL1hYWCBoYXZpbmcgc29tZSBkZWZpbml0ZSBidWdzIGUuZy4gbWlzc2luZyBldmVudHMgb3ZlciAncGljdHVyZXMgLyBtYXRlcmlhbHMnIGZvbGRlciBoZWFkZXIgaW4gZGVtby5cclxuICBcclxuICBpZiAoIWNvbnRyb2wudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gIFxyXG4gIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpe1xyXG4gICAgaWYgKGZvbGRlci5pc0NvbGxhcHNlZCgpIHx8ICFmb2xkZXIudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICB9XHJcbiAgaWYgKCFmb2xkZXIucGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIGZvbGRlci52aXNpYmxlO1xyXG59XHJcblxyXG4vKiogXHJcbiAqIEludmlzaWJsZSBUSFJFRSBvYmplY3RzIGluY3VyIHNpZ25pZmljYW50IENQVSBjb3N0LlxyXG4gKiBUaGlzIGF2b2lkcyB0aGF0IGJ5IHJlbW92aW5nIHRoZW0gZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqIFxyXG4gKiBJZiB2aXNpYmxlIGlzIHRydWUsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPXRydWUgYW5kIGlzIGEgY2hpbGQgb2YgcGFyZW50LlxyXG4gKiBJZiB2aXNpYmxlIGlzIGZhbHNlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT1mYWxzZSBhbmQgaXMgcmVtb3ZlZCBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRWaXNpYmlsaXR5KHBhcmVudCwgY2hpbGQsIHZpc2libGUpIHtcclxuICAgIGNvbnN0IGlzQ2hpbGQgPSBwYXJlbnQuY2hpbGRyZW4uaW5jbHVkZXMoY2hpbGQpO1xyXG4gICAgY2hpbGQudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAvL21ha2Ugc3VyZSB3ZSB1c2Ugb3JpZ2luYWwgVEhSRUUgbWV0aG9kcyB0aGF0IHRoaXMgbGlicmFyeSBvdmVycmlkZXMgKFRPRE86IHJlZmFjdG9yLi4uKVxyXG4gICAgaWYgKHZpc2libGUgJiYgIWlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghdmlzaWJsZSAmJiBpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXBhcmVudC52aXNpYmxlKSBjb25zb2xlLndhcm4oYHNldFZpc2liaWxpdHkgY2FsbGVkIG9uIGNoaWxkICR7Y2hpbGR9IG9mIGludmlzaWJsZSBwYXJlbnQgJHtwYXJlbnR9YCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBoaWdoZXN0IGxldmVsIG9mIHBhcmVudCBmb2xkZXIgaW4gdGhlIGd1aSBoaWVhcmNoeSBjb250YWluaW5nIGEgZ2l2ZW4gb2JqZWN0LlxyXG4gKiBuYi4gb2xkZXIgdmVyc2lvbnMgb2YgdGhpcyBmdW5jdGlvbiB3b3VsZCByZXR1cm4gdGhlIGlucHV0IG9iamVjdCBpZiBpdCBkaWRuJ3QgaGF2ZSBhICdmb2xkZXInIHByb3BlcnR5LlxyXG4gKiBOb3csIGl0IGlzIGludGVuZGVkIHRoYXQgaXQgc2hvdWxkIGVpdGhlciByZXR1cm4gYSBmb2xkZXIgaWYgYXBwcm9wcmlhdGUsIG9yIG5vdGhpbmcuXHJcbiAqIEBwYXJhbSB7Kn0gZ3JvdXAgZWl0aGVyIGEgZm9sZGVyLCBvciBhbiBvYmplY3Qgd2hvc2UgcGFyZW50IGhhcyBhIGZvbGRlci4uLiBhcG9sb2dpZXMsIHRoaXMgaXMgbm90IHRoZSBjbGVhcmVzdCBzcGVjLlxyXG4gKiAuLi4gaW50ZW50aW9uIGlzIHRoYXQgaXQgc2hvdWxkIHdvcmsgd2l0aCBhbnkgZ3VpIGVsZW1lbnQsIGluIHBhcnRpY3VsYXIgYW55IGhpdE9iamVjdCBpbiBpbnRlcmFjdGlvbi5qcy4uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSB7XHJcbiAgICB2YXIgZm9sZGVyID0gZ2V0Rm9sZGVyKGdyb3VwKTtcclxuICAgIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9sZGVyKGdyb3VwKSB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSByZXR1cm4gZ3JvdXAuZm9sZGVyO1xyXG4gICAgbGV0IG5vZGUgPSBncm91cC5wYXJlbnQ7XHJcbiAgICB3aGlsZSAoIW5vZGUuZm9sZGVyICYmIGdyb3VwLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgcmV0dXJuIG5vZGUuZm9sZGVyO1xyXG59XHJcblxyXG4vL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Qm94RnJvbU9iamVjdChib3gsIG9iaikge1xyXG4gIGNvbnN0IHdvbmt5R2VvbSA9IFtdO1xyXG4gIG9iai50cmF2ZXJzZShvID0+IHtcclxuICAgIGlmIChvLmdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemUgIT09IDMpIHtcclxuICAgICAgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ID0gZmFsc2U7XHJcbiAgICAgIHdvbmt5R2VvbS5wdXNoKG8uZ2VvbWV0cnkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGJveC5zZXRGcm9tT2JqZWN0KG9iaik7XHJcbiAgd29ua3lHZW9tLmZvckVhY2goZyA9PiBnLmlzQnVmZmVyR2VvbWV0cnkgPSB0cnVlKTtcclxuICByZXR1cm4gYm94O1xyXG59XHJcbiIsIi8qXHJcbiAqXHRAYXV0aG9yIHp6ODUgLyBodHRwOi8vdHdpdHRlci5jb20vYmx1cnNwbGluZSAvIGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2dcclxuICpcdEBhdXRob3IgY2VudGVyaW9ud2FyZSAvIGh0dHA6Ly93d3cuY2VudGVyaW9ud2FyZS5jb21cclxuICpcclxuICpcdFN1YmRpdmlzaW9uIEdlb21ldHJ5IE1vZGlmaWVyXHJcbiAqXHRcdHVzaW5nIExvb3AgU3ViZGl2aXNpb24gU2NoZW1lXHJcbiAqXHJcbiAqXHRSZWZlcmVuY2VzOlxyXG4gKlx0XHRodHRwOi8vZ3JhcGhpY3Muc3RhbmZvcmQuZWR1L35tZGZpc2hlci9zdWJkaXZpc2lvbi5odG1sXHJcbiAqXHRcdGh0dHA6Ly93d3cuaG9sbWVzM2QubmV0L2dyYXBoaWNzL3N1YmRpdmlzaW9uL1xyXG4gKlx0XHRodHRwOi8vd3d3LmNzLnJ1dGdlcnMuZWR1L35kZWNhcmxvL3JlYWRpbmdzL3N1YmRpdi1zZzAwYy5wZGZcclxuICpcclxuICpcdEtub3duIElzc3VlczpcclxuICpcdFx0LSBjdXJyZW50bHkgZG9lc24ndCBoYW5kbGUgXCJTaGFycCBFZGdlc1wiXHJcbiAqL1xyXG5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciA9IGZ1bmN0aW9uICggc3ViZGl2aXNpb25zICkge1xyXG5cclxuXHR0aGlzLnN1YmRpdmlzaW9ucyA9ICggc3ViZGl2aXNpb25zID09PSB1bmRlZmluZWQgKSA/IDEgOiBzdWJkaXZpc2lvbnM7XHJcblxyXG59O1xyXG5cclxuLy8gQXBwbGllcyB0aGUgXCJtb2RpZnlcIiBwYXR0ZXJuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLm1vZGlmeSA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7XHJcblxyXG5cdHZhciByZXBlYXRzID0gdGhpcy5zdWJkaXZpc2lvbnM7XHJcblxyXG5cdHdoaWxlICggcmVwZWF0cyAtLSA+IDAgKSB7XHJcblxyXG5cdFx0dGhpcy5zbW9vdGgoIGdlb21ldHJ5ICk7XHJcblxyXG5cdH1cclxuXHJcblx0Z2VvbWV0cnkuY29tcHV0ZUZhY2VOb3JtYWxzKCk7XHJcblx0Z2VvbWV0cnkuY29tcHV0ZVZlcnRleE5vcm1hbHMoKTtcclxuXHJcbn07XHJcblxyXG4oIGZ1bmN0aW9uKCkge1xyXG5cclxuXHQvLyBTb21lIGNvbnN0YW50c1xyXG5cdHZhciBXQVJOSU5HUyA9ICEgdHJ1ZTsgLy8gU2V0IHRvIHRydWUgZm9yIGRldmVsb3BtZW50XHJcblx0dmFyIEFCQyA9IFsgJ2EnLCAnYicsICdjJyBdO1xyXG5cclxuXHJcblx0ZnVuY3Rpb24gZ2V0RWRnZSggYSwgYiwgbWFwICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHJldHVybiBtYXBbIGtleSBdO1xyXG5cclxuXHR9XHJcblxyXG5cclxuXHRmdW5jdGlvbiBwcm9jZXNzRWRnZSggYSwgYiwgdmVydGljZXMsIG1hcCwgZmFjZSwgbWV0YVZlcnRpY2VzICkge1xyXG5cclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEEgPSBNYXRoLm1pbiggYSwgYiApO1xyXG5cdFx0dmFyIHZlcnRleEluZGV4QiA9IE1hdGgubWF4KCBhLCBiICk7XHJcblxyXG5cdFx0dmFyIGtleSA9IHZlcnRleEluZGV4QSArIFwiX1wiICsgdmVydGV4SW5kZXhCO1xyXG5cclxuXHRcdHZhciBlZGdlO1xyXG5cclxuXHRcdGlmICgga2V5IGluIG1hcCApIHtcclxuXHJcblx0XHRcdGVkZ2UgPSBtYXBbIGtleSBdO1xyXG5cclxuXHRcdH0gZWxzZSB7XHJcblxyXG5cdFx0XHR2YXIgdmVydGV4QSA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEEgXTtcclxuXHRcdFx0dmFyIHZlcnRleEIgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhCIF07XHJcblxyXG5cdFx0XHRlZGdlID0ge1xyXG5cclxuXHRcdFx0XHRhOiB2ZXJ0ZXhBLCAvLyBwb2ludGVyIHJlZmVyZW5jZVxyXG5cdFx0XHRcdGI6IHZlcnRleEIsXHJcblx0XHRcdFx0bmV3RWRnZTogbnVsbCxcclxuXHRcdFx0XHQvLyBhSW5kZXg6IGEsIC8vIG51bWJlcmVkIHJlZmVyZW5jZVxyXG5cdFx0XHRcdC8vIGJJbmRleDogYixcclxuXHRcdFx0XHRmYWNlczogW10gLy8gcG9pbnRlcnMgdG8gZmFjZVxyXG5cclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdG1hcFsga2V5IF0gPSBlZGdlO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRlZGdlLmZhY2VzLnB1c2goIGZhY2UgKTtcclxuXHJcblx0XHRtZXRhVmVydGljZXNbIGEgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblx0XHRtZXRhVmVydGljZXNbIGIgXS5lZGdlcy5wdXNoKCBlZGdlICk7XHJcblxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIGdlbmVyYXRlTG9va3VwcyggdmVydGljZXMsIGZhY2VzLCBtZXRhVmVydGljZXMsIGVkZ2VzICkge1xyXG5cclxuXHRcdHZhciBpLCBpbCwgZmFjZSwgZWRnZTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSB2ZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG1ldGFWZXJ0aWNlc1sgaSBdID0geyBlZGdlczogW10gfTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gZmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gZmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmEsIGZhY2UuYiwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYiwgZmFjZS5jLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5jLCBmYWNlLmEsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld0ZhY2UoIG5ld0ZhY2VzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld0ZhY2VzLnB1c2goIG5ldyBUSFJFRS5GYWNlMyggYSwgYiwgYyApICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbWlkcG9pbnQoIGEsIGIgKSB7XHJcblxyXG5cdFx0cmV0dXJuICggTWF0aC5hYnMoIGIgLSBhICkgLyAyICkgKyBNYXRoLm1pbiggYSwgYiApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG5ld1V2KCBuZXdVdnMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3VXZzLnB1c2goIFsgYS5jbG9uZSgpLCBiLmNsb25lKCksIGMuY2xvbmUoKSBdICk7XHJcblxyXG5cdH1cclxuXHJcblx0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblx0Ly8gUGVyZm9ybXMgb25lIGl0ZXJhdGlvbiBvZiBTdWJkaXZpc2lvblxyXG5cdFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLnNtb290aCA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7IHJldHVybjsgLy8gc2pwdCBURU1QIFRPRE9cclxuXHJcblx0XHR2YXIgdG1wID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHR2YXIgb2xkVmVydGljZXMsIG9sZEZhY2VzLCBvbGRVdnM7XHJcblx0XHR2YXIgbmV3VmVydGljZXMsIG5ld0ZhY2VzLCBuZXdVVnMgPSBbXTtcclxuXHJcblx0XHR2YXIgbiwgbCwgaSwgaWwsIGosIGs7XHJcblx0XHR2YXIgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcztcclxuXHJcblx0XHQvLyBuZXcgc3R1ZmYuXHJcblx0XHR2YXIgc291cmNlRWRnZXMsIG5ld0VkZ2VWZXJ0aWNlcywgbmV3U291cmNlVmVydGljZXM7XHJcblxyXG5cdFx0b2xkVmVydGljZXMgPSBnZW9tZXRyeS52ZXJ0aWNlczsgLy8geyB4LCB5LCB6fVxyXG5cdFx0b2xkRmFjZXMgPSBnZW9tZXRyeS5mYWNlczsgLy8geyBhOiBvbGRWZXJ0ZXgxLCBiOiBvbGRWZXJ0ZXgyLCBjOiBvbGRWZXJ0ZXgzIH1cclxuXHRcdG9sZFV2cyA9IGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXTtcclxuXHJcblx0XHR2YXIgaGFzVXZzID0gb2xkVXZzICE9PSB1bmRlZmluZWQgJiYgb2xkVXZzLmxlbmd0aCA+IDA7XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqIFN0ZXAgMDogUHJlcHJvY2VzcyBHZW9tZXRyeSB0byBHZW5lcmF0ZSBlZGdlcyBMb29rdXBcclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRtZXRhVmVydGljZXMgPSBuZXcgQXJyYXkoIG9sZFZlcnRpY2VzLmxlbmd0aCApO1xyXG5cdFx0c291cmNlRWRnZXMgPSB7fTsgLy8gRWRnZSA9PiB7IG9sZFZlcnRleDEsIG9sZFZlcnRleDIsIGZhY2VzW10gIH1cclxuXHJcblx0XHRnZW5lcmF0ZUxvb2t1cHMoIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgbWV0YVZlcnRpY2VzLCBzb3VyY2VFZGdlcyApO1xyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMS5cclxuXHRcdCAqXHRGb3IgZWFjaCBlZGdlLCBjcmVhdGUgYSBuZXcgRWRnZSBWZXJ0ZXgsXHJcblx0XHQgKlx0dGhlbiBwb3NpdGlvbiBpdC5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdFZGdlVmVydGljZXMgPSBbXTtcclxuXHRcdHZhciBvdGhlciwgY3VycmVudEVkZ2UsIG5ld0VkZ2UsIGZhY2U7XHJcblx0XHR2YXIgZWRnZVZlcnRleFdlaWdodCwgYWRqYWNlbnRWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RlZEZhY2VzO1xyXG5cclxuXHRcdGZvciAoIGkgaW4gc291cmNlRWRnZXMgKSB7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZSA9IHNvdXJjZUVkZ2VzWyBpIF07XHJcblx0XHRcdG5ld0VkZ2UgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDMgLyA4O1xyXG5cdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0Y29ubmVjdGVkRmFjZXMgPSBjdXJyZW50RWRnZS5mYWNlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHQvLyBjaGVjayBob3cgbWFueSBsaW5rZWQgZmFjZXMuIDIgc2hvdWxkIGJlIGNvcnJlY3QuXHJcblx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gaWYgbGVuZ3RoIGlzIG5vdCAyLCBoYW5kbGUgY29uZGl0aW9uXHJcblx0XHRcdFx0ZWRnZVZlcnRleFdlaWdodCA9IDAuNTtcclxuXHRcdFx0XHRhZGphY2VudFZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdGlmICggY29ubmVjdGVkRmFjZXMgIT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnU3ViZGl2aXNpb24gTW9kaWZpZXI6IE51bWJlciBvZiBjb25uZWN0ZWQgZmFjZXMgIT0gMiwgaXM6ICcsIGNvbm5lY3RlZEZhY2VzLCBjdXJyZW50RWRnZSApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdFZGdlLmFkZFZlY3RvcnMoIGN1cnJlbnRFZGdlLmEsIGN1cnJlbnRFZGdlLmIgKS5tdWx0aXBseVNjYWxhciggZWRnZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBjb25uZWN0ZWRGYWNlczsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0ZmFjZSA9IGN1cnJlbnRFZGdlLmZhY2VzWyBqIF07XHJcblxyXG5cdFx0XHRcdGZvciAoIGsgPSAwOyBrIDwgMzsgayArKyApIHtcclxuXHJcblx0XHRcdFx0XHRvdGhlciA9IG9sZFZlcnRpY2VzWyBmYWNlWyBBQkNbIGsgXSBdIF07XHJcblx0XHRcdFx0XHRpZiAoIG90aGVyICE9PSBjdXJyZW50RWRnZS5hICYmIG90aGVyICE9PSBjdXJyZW50RWRnZS5iICkgYnJlYWs7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggYWRqYWNlbnRWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3RWRnZS5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UubmV3RWRnZSA9IG5ld0VkZ2VWZXJ0aWNlcy5sZW5ndGg7XHJcblx0XHRcdG5ld0VkZ2VWZXJ0aWNlcy5wdXNoKCBuZXdFZGdlICk7XHJcblxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZyhjdXJyZW50RWRnZSwgbmV3RWRnZSk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAyLlxyXG5cdFx0ICpcdFJlcG9zaXRpb24gZWFjaCBzb3VyY2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0dmFyIGJldGEsIHNvdXJjZVZlcnRleFdlaWdodCwgY29ubmVjdGluZ1ZlcnRleFdlaWdodDtcclxuXHRcdHZhciBjb25uZWN0aW5nRWRnZSwgY29ubmVjdGluZ0VkZ2VzLCBvbGRWZXJ0ZXgsIG5ld1NvdXJjZVZlcnRleDtcclxuXHRcdG5ld1NvdXJjZVZlcnRpY2VzID0gW107XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkVmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRvbGRWZXJ0ZXggPSBvbGRWZXJ0aWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCBhbGwgY29ubmVjdGluZyBlZGdlcyAodXNpbmcgbG9va3VwVGFibGUpXHJcblx0XHRcdGNvbm5lY3RpbmdFZGdlcyA9IG1ldGFWZXJ0aWNlc1sgaSBdLmVkZ2VzO1xyXG5cdFx0XHRuID0gY29ubmVjdGluZ0VkZ2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdGlmICggbiA9PSAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvIDE2O1xyXG5cclxuXHRcdFx0fSBlbHNlIGlmICggbiA+IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gKCA4ICogbiApOyAvLyBXYXJyZW4ncyBtb2RpZmllZCBmb3JtdWxhXHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBMb29wJ3Mgb3JpZ2luYWwgYmV0YSBmb3JtdWxhXHJcblx0XHRcdC8vIGJldGEgPSAxIC8gbiAqICggNS84IC0gTWF0aC5wb3coIDMvOCArIDEvNCAqIE1hdGguY29zKCAyICogTWF0aC4gUEkgLyBuICksIDIpICk7XHJcblxyXG5cdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxIC0gbiAqIGJldGE7XHJcblx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSBiZXRhO1xyXG5cclxuXHRcdFx0aWYgKCBuIDw9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGNyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXNcclxuXHRcdFx0XHQvLyBjb25zb2xlLndhcm4oJ2NyZWFzZSBhbmQgYm91bmRhcnkgcnVsZXMnKTtcclxuXHJcblx0XHRcdFx0aWYgKCBuID09IDIgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzIgY29ubmVjdGluZyBlZGdlcycsIGNvbm5lY3RpbmdFZGdlcyApO1xyXG5cdFx0XHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMyAvIDQ7XHJcblx0XHRcdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRcdFx0Ly8gc291cmNlVmVydGV4V2VpZ2h0ID0gMTtcclxuXHRcdFx0XHRcdC8vIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ29ubHkgMSBjb25uZWN0aW5nIGVkZ2UnICk7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMCApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMCBjb25uZWN0aW5nIGVkZ2VzJyApO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXggPSBvbGRWZXJ0ZXguY2xvbmUoKS5tdWx0aXBseVNjYWxhciggc291cmNlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IG47IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGNvbm5lY3RpbmdFZGdlID0gY29ubmVjdGluZ0VkZ2VzWyBqIF07XHJcblx0XHRcdFx0b3RoZXIgPSBjb25uZWN0aW5nRWRnZS5hICE9PSBvbGRWZXJ0ZXggPyBjb25uZWN0aW5nRWRnZS5hIDogY29ubmVjdGluZ0VkZ2UuYjtcclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleC5hZGQoIHRtcCApO1xyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGljZXMucHVzaCggbmV3U291cmNlVmVydGV4ICk7XHJcblxyXG5cdFx0fVxyXG5cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMy5cclxuXHRcdCAqXHRHZW5lcmF0ZSBGYWNlcyBiZXR3ZWVuIHNvdXJjZSB2ZXJ0aWNlc1xyXG5cdFx0ICpcdGFuZCBlZGdlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld1ZlcnRpY2VzID0gbmV3U291cmNlVmVydGljZXMuY29uY2F0KCBuZXdFZGdlVmVydGljZXMgKTtcclxuXHRcdHZhciBzbCA9IG5ld1NvdXJjZVZlcnRpY2VzLmxlbmd0aCwgZWRnZTEsIGVkZ2UyLCBlZGdlMztcclxuXHRcdG5ld0ZhY2VzID0gW107XHJcblxyXG5cdFx0dmFyIHV2LCB4MCwgeDEsIHgyO1xyXG5cdFx0dmFyIHgzID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NCA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDUgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZEZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IG9sZEZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIHRoZSAzIG5ldyBlZGdlcyB2ZXJ0ZXggb2YgZWFjaCBvbGQgZmFjZVxyXG5cclxuXHRcdFx0ZWRnZTEgPSBnZXRFZGdlKCBmYWNlLmEsIGZhY2UuYiwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UyID0gZ2V0RWRnZSggZmFjZS5iLCBmYWNlLmMsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMyA9IGdldEVkZ2UoIGZhY2UuYywgZmFjZS5hLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IGZhY2VzLlxyXG5cclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGVkZ2UxLCBlZGdlMiwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYSwgZWRnZTEsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmIsIGVkZ2UyLCBlZGdlMSApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5jLCBlZGdlMywgZWRnZTIgKTtcclxuXHJcblx0XHRcdC8vIGNyZWF0ZSA0IG5ldyB1didzXHJcblxyXG5cdFx0XHRpZiAoIGhhc1V2cyApIHtcclxuXHJcblx0XHRcdFx0dXYgPSBvbGRVdnNbIGkgXTtcclxuXHJcblx0XHRcdFx0eDAgPSB1dlsgMCBdO1xyXG5cdFx0XHRcdHgxID0gdXZbIDEgXTtcclxuXHRcdFx0XHR4MiA9IHV2WyAyIF07XHJcblxyXG5cdFx0XHRcdHgzLnNldCggbWlkcG9pbnQoIHgwLngsIHgxLnggKSwgbWlkcG9pbnQoIHgwLnksIHgxLnkgKSApO1xyXG5cdFx0XHRcdHg0LnNldCggbWlkcG9pbnQoIHgxLngsIHgyLnggKSwgbWlkcG9pbnQoIHgxLnksIHgyLnkgKSApO1xyXG5cdFx0XHRcdHg1LnNldCggbWlkcG9pbnQoIHgwLngsIHgyLnggKSwgbWlkcG9pbnQoIHgwLnksIHgyLnkgKSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MywgeDQsIHg1ICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDAsIHgzLCB4NSApO1xyXG5cclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MSwgeDQsIHgzICk7XHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDIsIHg1LCB4NCApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvLyBPdmVyd3JpdGUgb2xkIGFycmF5c1xyXG5cdFx0Z2VvbWV0cnkudmVydGljZXMgPSBuZXdWZXJ0aWNlcztcclxuXHRcdGdlb21ldHJ5LmZhY2VzID0gbmV3RmFjZXM7XHJcblx0XHRpZiAoIGhhc1V2cyApIGdlb21ldHJ5LmZhY2VWZXJ0ZXhVdnNbIDAgXSA9IG5ld1VWcztcclxuXHJcblx0XHQvLyBjb25zb2xlLmxvZygnZG9uZScpO1xyXG5cclxuXHR9O1xyXG5cclxufSApKCk7XHJcbiIsInZhciBzdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXG5cbm1vZHVsZS5leHBvcnRzID0gYW5BcnJheVxuXG5mdW5jdGlvbiBhbkFycmF5KGFycikge1xuICByZXR1cm4gKFxuICAgICAgIGFyci5CWVRFU19QRVJfRUxFTUVOVFxuICAgICYmIHN0ci5jYWxsKGFyci5idWZmZXIpID09PSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nXG4gICAgfHwgQXJyYXkuaXNBcnJheShhcnIpXG4gIClcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbnVtdHlwZShudW0sIGRlZikge1xuXHRyZXR1cm4gdHlwZW9mIG51bSA9PT0gJ251bWJlcidcblx0XHQ/IG51bSBcblx0XHQ6ICh0eXBlb2YgZGVmID09PSAnbnVtYmVyJyA/IGRlZiA6IDApXG59IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihkdHlwZSkge1xuICBzd2l0Y2ggKGR0eXBlKSB7XG4gICAgY2FzZSAnaW50OCc6XG4gICAgICByZXR1cm4gSW50OEFycmF5XG4gICAgY2FzZSAnaW50MTYnOlxuICAgICAgcmV0dXJuIEludDE2QXJyYXlcbiAgICBjYXNlICdpbnQzMic6XG4gICAgICByZXR1cm4gSW50MzJBcnJheVxuICAgIGNhc2UgJ3VpbnQ4JzpcbiAgICAgIHJldHVybiBVaW50OEFycmF5XG4gICAgY2FzZSAndWludDE2JzpcbiAgICAgIHJldHVybiBVaW50MTZBcnJheVxuICAgIGNhc2UgJ3VpbnQzMic6XG4gICAgICByZXR1cm4gVWludDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDMyJzpcbiAgICAgIHJldHVybiBGbG9hdDMyQXJyYXlcbiAgICBjYXNlICdmbG9hdDY0JzpcbiAgICAgIHJldHVybiBGbG9hdDY0QXJyYXlcbiAgICBjYXNlICdhcnJheSc6XG4gICAgICByZXR1cm4gQXJyYXlcbiAgICBjYXNlICd1aW50OF9jbGFtcGVkJzpcbiAgICAgIHJldHVybiBVaW50OENsYW1wZWRBcnJheVxuICB9XG59XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUiA9IHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyA/IFJlZmxlY3QgOiBudWxsXG52YXIgUmVmbGVjdEFwcGx5ID0gUiAmJiB0eXBlb2YgUi5hcHBseSA9PT0gJ2Z1bmN0aW9uJ1xuICA/IFIuYXBwbHlcbiAgOiBmdW5jdGlvbiBSZWZsZWN0QXBwbHkodGFyZ2V0LCByZWNlaXZlciwgYXJncykge1xuICAgIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbCh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKTtcbiAgfVxuXG52YXIgUmVmbGVjdE93bktleXNcbmlmIChSICYmIHR5cGVvZiBSLm93bktleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgUmVmbGVjdE93bktleXMgPSBSLm93bktleXNcbn0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpXG4gICAgICAuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSk7XG4gIH07XG59IGVsc2Uge1xuICBSZWZsZWN0T3duS2V5cyA9IGZ1bmN0aW9uIFJlZmxlY3RPd25LZXlzKHRhcmdldCkge1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBQcm9jZXNzRW1pdFdhcm5pbmcod2FybmluZykge1xuICBpZiAoY29uc29sZSAmJiBjb25zb2xlLndhcm4pIGNvbnNvbGUud2Fybih3YXJuaW5nKTtcbn1cblxudmFyIE51bWJlcklzTmFOID0gTnVtYmVyLmlzTmFOIHx8IGZ1bmN0aW9uIE51bWJlcklzTmFOKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIEV2ZW50RW1pdHRlcigpIHtcbiAgRXZlbnRFbWl0dGVyLmluaXQuY2FsbCh0aGlzKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xubW9kdWxlLmV4cG9ydHMub25jZSA9IG9uY2U7XG5cbi8vIEJhY2t3YXJkcy1jb21wYXQgd2l0aCBub2RlIDAuMTAueFxuRXZlbnRFbWl0dGVyLkV2ZW50RW1pdHRlciA9IEV2ZW50RW1pdHRlcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzID0gdW5kZWZpbmVkO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fZXZlbnRzQ291bnQgPSAwO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzID0gdW5kZWZpbmVkO1xuXG4vLyBCeSBkZWZhdWx0IEV2ZW50RW1pdHRlcnMgd2lsbCBwcmludCBhIHdhcm5pbmcgaWYgbW9yZSB0aGFuIDEwIGxpc3RlbmVycyBhcmVcbi8vIGFkZGVkIHRvIGl0LiBUaGlzIGlzIGEgdXNlZnVsIGRlZmF1bHQgd2hpY2ggaGVscHMgZmluZGluZyBtZW1vcnkgbGVha3MuXG52YXIgZGVmYXVsdE1heExpc3RlbmVycyA9IDEwO1xuXG5mdW5jdGlvbiBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKSB7XG4gIGlmICh0eXBlb2YgbGlzdGVuZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJsaXN0ZW5lclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGxpc3RlbmVyKTtcbiAgfVxufVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRFbWl0dGVyLCAnZGVmYXVsdE1heExpc3RlbmVycycsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gZGVmYXVsdE1heExpc3RlbmVycztcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbihhcmcpIHtcbiAgICBpZiAodHlwZW9mIGFyZyAhPT0gJ251bWJlcicgfHwgYXJnIDwgMCB8fCBOdW1iZXJJc05hTihhcmcpKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiZGVmYXVsdE1heExpc3RlbmVyc1wiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBhcmcgKyAnLicpO1xuICAgIH1cbiAgICBkZWZhdWx0TWF4TGlzdGVuZXJzID0gYXJnO1xuICB9XG59KTtcblxuRXZlbnRFbWl0dGVyLmluaXQgPSBmdW5jdGlvbigpIHtcblxuICBpZiAodGhpcy5fZXZlbnRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuX2V2ZW50cyA9PT0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHMpIHtcbiAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgfVxuXG4gIHRoaXMuX21heExpc3RlbmVycyA9IHRoaXMuX21heExpc3RlbmVycyB8fCB1bmRlZmluZWQ7XG59O1xuXG4vLyBPYnZpb3VzbHkgbm90IGFsbCBFbWl0dGVycyBzaG91bGQgYmUgbGltaXRlZCB0byAxMC4gVGhpcyBmdW5jdGlvbiBhbGxvd3Ncbi8vIHRoYXQgdG8gYmUgaW5jcmVhc2VkLiBTZXQgdG8gemVybyBmb3IgdW5saW1pdGVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBzZXRNYXhMaXN0ZW5lcnMobikge1xuICBpZiAodHlwZW9mIG4gIT09ICdudW1iZXInIHx8IG4gPCAwIHx8IE51bWJlcklzTmFOKG4pKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcIm5cIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgbiArICcuJyk7XG4gIH1cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5mdW5jdGlvbiBfZ2V0TWF4TGlzdGVuZXJzKHRoYXQpIHtcbiAgaWYgKHRoYXQuX21heExpc3RlbmVycyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgcmV0dXJuIHRoYXQuX21heExpc3RlbmVycztcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnMgPSBmdW5jdGlvbiBnZXRNYXhMaXN0ZW5lcnMoKSB7XG4gIHJldHVybiBfZ2V0TWF4TGlzdGVuZXJzKHRoaXMpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24gZW1pdCh0eXBlKSB7XG4gIHZhciBhcmdzID0gW107XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgdmFyIGRvRXJyb3IgPSAodHlwZSA9PT0gJ2Vycm9yJyk7XG5cbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKVxuICAgIGRvRXJyb3IgPSAoZG9FcnJvciAmJiBldmVudHMuZXJyb3IgPT09IHVuZGVmaW5lZCk7XG4gIGVsc2UgaWYgKCFkb0Vycm9yKVxuICAgIHJldHVybiBmYWxzZTtcblxuICAvLyBJZiB0aGVyZSBpcyBubyAnZXJyb3InIGV2ZW50IGxpc3RlbmVyIHRoZW4gdGhyb3cuXG4gIGlmIChkb0Vycm9yKSB7XG4gICAgdmFyIGVyO1xuICAgIGlmIChhcmdzLmxlbmd0aCA+IDApXG4gICAgICBlciA9IGFyZ3NbMF07XG4gICAgaWYgKGVyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIC8vIE5vdGU6IFRoZSBjb21tZW50cyBvbiB0aGUgYHRocm93YCBsaW5lcyBhcmUgaW50ZW50aW9uYWwsIHRoZXkgc2hvd1xuICAgICAgLy8gdXAgaW4gTm9kZSdzIG91dHB1dCBpZiB0aGlzIHJlc3VsdHMgaW4gYW4gdW5oYW5kbGVkIGV4Y2VwdGlvbi5cbiAgICAgIHRocm93IGVyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICAgIH1cbiAgICAvLyBBdCBsZWFzdCBnaXZlIHNvbWUga2luZCBvZiBjb250ZXh0IHRvIHRoZSB1c2VyXG4gICAgdmFyIGVyciA9IG5ldyBFcnJvcignVW5oYW5kbGVkIGVycm9yLicgKyAoZXIgPyAnICgnICsgZXIubWVzc2FnZSArICcpJyA6ICcnKSk7XG4gICAgZXJyLmNvbnRleHQgPSBlcjtcbiAgICB0aHJvdyBlcnI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gIH1cblxuICB2YXIgaGFuZGxlciA9IGV2ZW50c1t0eXBlXTtcblxuICBpZiAoaGFuZGxlciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBmYWxzZTtcblxuICBpZiAodHlwZW9mIGhhbmRsZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBSZWZsZWN0QXBwbHkoaGFuZGxlciwgdGhpcywgYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGxlbiA9IGhhbmRsZXIubGVuZ3RoO1xuICAgIHZhciBsaXN0ZW5lcnMgPSBhcnJheUNsb25lKGhhbmRsZXIsIGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSlcbiAgICAgIFJlZmxlY3RBcHBseShsaXN0ZW5lcnNbaV0sIHRoaXMsIGFyZ3MpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5mdW5jdGlvbiBfYWRkTGlzdGVuZXIodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lciwgcHJlcGVuZCkge1xuICB2YXIgbTtcbiAgdmFyIGV2ZW50cztcbiAgdmFyIGV4aXN0aW5nO1xuXG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGFyZ2V0Ll9ldmVudHNDb3VudCA9IDA7XG4gIH0gZWxzZSB7XG4gICAgLy8gVG8gYXZvaWQgcmVjdXJzaW9uIGluIHRoZSBjYXNlIHRoYXQgdHlwZSA9PT0gXCJuZXdMaXN0ZW5lclwiISBCZWZvcmVcbiAgICAvLyBhZGRpbmcgaXQgdG8gdGhlIGxpc3RlbmVycywgZmlyc3QgZW1pdCBcIm5ld0xpc3RlbmVyXCIuXG4gICAgaWYgKGV2ZW50cy5uZXdMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YXJnZXQuZW1pdCgnbmV3TGlzdGVuZXInLCB0eXBlLFxuICAgICAgICAgICAgICAgICAgbGlzdGVuZXIubGlzdGVuZXIgPyBsaXN0ZW5lci5saXN0ZW5lciA6IGxpc3RlbmVyKTtcblxuICAgICAgLy8gUmUtYXNzaWduIGBldmVudHNgIGJlY2F1c2UgYSBuZXdMaXN0ZW5lciBoYW5kbGVyIGNvdWxkIGhhdmUgY2F1c2VkIHRoZVxuICAgICAgLy8gdGhpcy5fZXZlbnRzIHRvIGJlIGFzc2lnbmVkIHRvIGEgbmV3IG9iamVjdFxuICAgICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gICAgfVxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdO1xuICB9XG5cbiAgaWYgKGV4aXN0aW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBPcHRpbWl6ZSB0aGUgY2FzZSBvZiBvbmUgbGlzdGVuZXIuIERvbid0IG5lZWQgdGhlIGV4dHJhIGFycmF5IG9iamVjdC5cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9IGxpc3RlbmVyO1xuICAgICsrdGFyZ2V0Ll9ldmVudHNDb3VudDtcbiAgfSBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGV4aXN0aW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBuZWVkIHRvIGNoYW5nZSB0byBhcnJheS5cbiAgICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID1cbiAgICAgICAgcHJlcGVuZCA/IFtsaXN0ZW5lciwgZXhpc3RpbmddIDogW2V4aXN0aW5nLCBsaXN0ZW5lcl07XG4gICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGdvdCBhbiBhcnJheSwganVzdCBhcHBlbmQuXG4gICAgfSBlbHNlIGlmIChwcmVwZW5kKSB7XG4gICAgICBleGlzdGluZy51bnNoaWZ0KGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RpbmcucHVzaChsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIGxpc3RlbmVyIGxlYWtcbiAgICBtID0gX2dldE1heExpc3RlbmVycyh0YXJnZXQpO1xuICAgIGlmIChtID4gMCAmJiBleGlzdGluZy5sZW5ndGggPiBtICYmICFleGlzdGluZy53YXJuZWQpIHtcbiAgICAgIGV4aXN0aW5nLndhcm5lZCA9IHRydWU7XG4gICAgICAvLyBObyBlcnJvciBjb2RlIGZvciB0aGlzIHNpbmNlIGl0IGlzIGEgV2FybmluZ1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICB2YXIgdyA9IG5ldyBFcnJvcignUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcubGVuZ3RoICsgJyAnICsgU3RyaW5nKHR5cGUpICsgJyBsaXN0ZW5lcnMgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRlZC4gVXNlIGVtaXR0ZXIuc2V0TWF4TGlzdGVuZXJzKCkgdG8gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdpbmNyZWFzZSBsaW1pdCcpO1xuICAgICAgdy5uYW1lID0gJ01heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyc7XG4gICAgICB3LmVtaXR0ZXIgPSB0YXJnZXQ7XG4gICAgICB3LnR5cGUgPSB0eXBlO1xuICAgICAgdy5jb3VudCA9IGV4aXN0aW5nLmxlbmd0aDtcbiAgICAgIFByb2Nlc3NFbWl0V2FybmluZyh3KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyID0gZnVuY3Rpb24gYWRkTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIHRydWUpO1xuICAgIH07XG5cbmZ1bmN0aW9uIG9uY2VXcmFwcGVyKCkge1xuICBpZiAoIXRoaXMuZmlyZWQpIHtcbiAgICB0aGlzLnRhcmdldC5yZW1vdmVMaXN0ZW5lcih0aGlzLnR5cGUsIHRoaXMud3JhcEZuKTtcbiAgICB0aGlzLmZpcmVkID0gdHJ1ZTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQpO1xuICAgIHJldHVybiB0aGlzLmxpc3RlbmVyLmFwcGx5KHRoaXMudGFyZ2V0LCBhcmd1bWVudHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9vbmNlV3JhcCh0YXJnZXQsIHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBzdGF0ZSA9IHsgZmlyZWQ6IGZhbHNlLCB3cmFwRm46IHVuZGVmaW5lZCwgdGFyZ2V0OiB0YXJnZXQsIHR5cGU6IHR5cGUsIGxpc3RlbmVyOiBsaXN0ZW5lciB9O1xuICB2YXIgd3JhcHBlZCA9IG9uY2VXcmFwcGVyLmJpbmQoc3RhdGUpO1xuICB3cmFwcGVkLmxpc3RlbmVyID0gbGlzdGVuZXI7XG4gIHN0YXRlLndyYXBGbiA9IHdyYXBwZWQ7XG4gIHJldHVybiB3cmFwcGVkO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbiBvbmNlKHR5cGUsIGxpc3RlbmVyKSB7XG4gIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICB0aGlzLm9uKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucHJlcGVuZE9uY2VMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZE9uY2VMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gICAgICB0aGlzLnByZXBlbmRMaXN0ZW5lcih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbi8vIEVtaXRzIGEgJ3JlbW92ZUxpc3RlbmVyJyBldmVudCBpZiBhbmQgb25seSBpZiB0aGUgbGlzdGVuZXIgd2FzIHJlbW92ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgdmFyIGxpc3QsIGV2ZW50cywgcG9zaXRpb24sIGksIG9yaWdpbmFsTGlzdGVuZXI7XG5cbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBsaXN0ID0gZXZlbnRzW3R5cGVdO1xuICAgICAgaWYgKGxpc3QgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGlmIChsaXN0ID09PSBsaXN0ZW5lciB8fCBsaXN0Lmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIpXG4gICAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgbGlzdC5saXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGxpc3QgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcG9zaXRpb24gPSAtMTtcblxuICAgICAgICBmb3IgKGkgPSBsaXN0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgaWYgKGxpc3RbaV0gPT09IGxpc3RlbmVyIHx8IGxpc3RbaV0ubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgICAgICBvcmlnaW5hbExpc3RlbmVyID0gbGlzdFtpXS5saXN0ZW5lcjtcbiAgICAgICAgICAgIHBvc2l0aW9uID0gaTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwb3NpdGlvbiA8IDApXG4gICAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSAwKVxuICAgICAgICAgIGxpc3Quc2hpZnQoKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgc3BsaWNlT25lKGxpc3QsIHBvc2l0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSlcbiAgICAgICAgICBldmVudHNbdHlwZV0gPSBsaXN0WzBdO1xuXG4gICAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgb3JpZ2luYWxMaXN0ZW5lciB8fCBsaXN0ZW5lcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub2ZmID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyh0eXBlKSB7XG4gICAgICB2YXIgbGlzdGVuZXJzLCBldmVudHMsIGk7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIC8vIG5vdCBsaXN0ZW5pbmcgZm9yIHJlbW92ZUxpc3RlbmVyLCBubyBuZWVkIHRvIGVtaXRcbiAgICAgIGlmIChldmVudHMucmVtb3ZlTGlzdGVuZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50c1t0eXBlXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIC8vIGVtaXQgcmVtb3ZlTGlzdGVuZXIgZm9yIGFsbCBsaXN0ZW5lcnMgb24gYWxsIGV2ZW50c1xuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhldmVudHMpO1xuICAgICAgICB2YXIga2V5O1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICAgICAgaWYgKGtleSA9PT0gJ3JlbW92ZUxpc3RlbmVyJykgY29udGludWU7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygncmVtb3ZlTGlzdGVuZXInKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgbGlzdGVuZXJzID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgICBpZiAodHlwZW9mIGxpc3RlbmVycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVycyk7XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbmVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIExJRk8gb3JkZXJcbiAgICAgICAgZm9yIChpID0gbGlzdGVuZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnNbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbmZ1bmN0aW9uIF9saXN0ZW5lcnModGFyZ2V0LCB0eXBlLCB1bndyYXApIHtcbiAgdmFyIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG4gIGlmIChldmxpc3RlbmVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJylcbiAgICByZXR1cm4gdW53cmFwID8gW2V2bGlzdGVuZXIubGlzdGVuZXIgfHwgZXZsaXN0ZW5lcl0gOiBbZXZsaXN0ZW5lcl07XG5cbiAgcmV0dXJuIHVud3JhcCA/XG4gICAgdW53cmFwTGlzdGVuZXJzKGV2bGlzdGVuZXIpIDogYXJyYXlDbG9uZShldmxpc3RlbmVyLCBldmxpc3RlbmVyLmxlbmd0aCk7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24gbGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgdHJ1ZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJhd0xpc3RlbmVycyA9IGZ1bmN0aW9uIHJhd0xpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24oZW1pdHRlciwgdHlwZSkge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIubGlzdGVuZXJDb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBlbWl0dGVyLmxpc3RlbmVyQ291bnQodHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGxpc3RlbmVyQ291bnQuY2FsbChlbWl0dGVyLCB0eXBlKTtcbiAgfVxufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50ID0gbGlzdGVuZXJDb3VudDtcbmZ1bmN0aW9uIGxpc3RlbmVyQ291bnQodHlwZSkge1xuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuXG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuXG4gICAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKGV2bGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGV2bGlzdGVuZXIubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmV2ZW50TmFtZXMgPSBmdW5jdGlvbiBldmVudE5hbWVzKCkge1xuICByZXR1cm4gdGhpcy5fZXZlbnRzQ291bnQgPiAwID8gUmVmbGVjdE93bktleXModGhpcy5fZXZlbnRzKSA6IFtdO1xufTtcblxuZnVuY3Rpb24gYXJyYXlDbG9uZShhcnIsIG4pIHtcbiAgdmFyIGNvcHkgPSBuZXcgQXJyYXkobik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKVxuICAgIGNvcHlbaV0gPSBhcnJbaV07XG4gIHJldHVybiBjb3B5O1xufVxuXG5mdW5jdGlvbiBzcGxpY2VPbmUobGlzdCwgaW5kZXgpIHtcbiAgZm9yICg7IGluZGV4ICsgMSA8IGxpc3QubGVuZ3RoOyBpbmRleCsrKVxuICAgIGxpc3RbaW5kZXhdID0gbGlzdFtpbmRleCArIDFdO1xuICBsaXN0LnBvcCgpO1xufVxuXG5mdW5jdGlvbiB1bndyYXBMaXN0ZW5lcnMoYXJyKSB7XG4gIHZhciByZXQgPSBuZXcgQXJyYXkoYXJyLmxlbmd0aCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcmV0Lmxlbmd0aDsgKytpKSB7XG4gICAgcmV0W2ldID0gYXJyW2ldLmxpc3RlbmVyIHx8IGFycltpXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvbmNlKGVtaXR0ZXIsIG5hbWUpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBmdW5jdGlvbiBlcnJvckxpc3RlbmVyKGVycikge1xuICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcihuYW1lLCByZXNvbHZlcik7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlcigpIHtcbiAgICAgIGlmICh0eXBlb2YgZW1pdHRlci5yZW1vdmVMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIGVycm9yTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShbXS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO1xuICAgIH07XG5cbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgcmVzb2x2ZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICBpZiAobmFtZSAhPT0gJ2Vycm9yJykge1xuICAgICAgYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgZXJyb3JMaXN0ZW5lciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGhhbmRsZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCAnZXJyb3InLCBoYW5kbGVyLCBmbGFncyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIGxpc3RlbmVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgZW1pdHRlci5vbmNlKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW1pdHRlci5vbihuYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBFdmVudFRhcmdldCBkb2VzIG5vdCBoYXZlIGBlcnJvcmAgZXZlbnQgc2VtYW50aWNzIGxpa2UgTm9kZVxuICAgIC8vIEV2ZW50RW1pdHRlcnMsIHdlIGRvIG5vdCBsaXN0ZW4gZm9yIGBlcnJvcmAgZXZlbnRzIGhlcmUuXG4gICAgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGZ1bmN0aW9uIHdyYXBMaXN0ZW5lcihhcmcpIHtcbiAgICAgIC8vIElFIGRvZXMgbm90IGhhdmUgYnVpbHRpbiBgeyBvbmNlOiB0cnVlIH1gIHN1cHBvcnQgc28gd2VcbiAgICAgIC8vIGhhdmUgdG8gZG8gaXQgbWFudWFsbHkuXG4gICAgICBpZiAoZmxhZ3Mub25jZSkge1xuICAgICAgICBlbWl0dGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgd3JhcExpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIGxpc3RlbmVyKGFyZyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwiZW1pdHRlclwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBlbWl0dGVyKTtcbiAgfVxufVxuIiwiaWYgKHR5cGVvZiBPYmplY3QuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gIC8vIGltcGxlbWVudGF0aW9uIGZyb20gc3RhbmRhcmQgbm9kZS5qcyAndXRpbCcgbW9kdWxlXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7XG4gICAgICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICAgICAgdmFsdWU6IGN0b3IsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9O1xufSBlbHNlIHtcbiAgLy8gb2xkIHNjaG9vbCBzaGltIGZvciBvbGQgYnJvd3NlcnNcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgdmFyIFRlbXBDdG9yID0gZnVuY3Rpb24gKCkge31cbiAgICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGVcbiAgICAgIGN0b3IucHJvdG90eXBlID0gbmV3IFRlbXBDdG9yKClcbiAgICAgIGN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY3RvclxuICAgIH1cbiAgfVxufVxuIiwiLyohXG4gKiBEZXRlcm1pbmUgaWYgYW4gb2JqZWN0IGlzIGEgQnVmZmVyXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG4vLyBUaGUgX2lzQnVmZmVyIGNoZWNrIGlzIGZvciBTYWZhcmkgNS03IHN1cHBvcnQsIGJlY2F1c2UgaXQncyBtaXNzaW5nXG4vLyBPYmplY3QucHJvdG90eXBlLmNvbnN0cnVjdG9yLiBSZW1vdmUgdGhpcyBldmVudHVhbGx5XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPSBudWxsICYmIChpc0J1ZmZlcihvYmopIHx8IGlzU2xvd0J1ZmZlcihvYmopIHx8ICEhb2JqLl9pc0J1ZmZlcilcbn1cblxuZnVuY3Rpb24gaXNCdWZmZXIgKG9iaikge1xuICByZXR1cm4gISFvYmouY29uc3RydWN0b3IgJiYgdHlwZW9mIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIob2JqKVxufVxuXG4vLyBGb3IgTm9kZSB2MC4xMCBzdXBwb3J0LiBSZW1vdmUgdGhpcyBldmVudHVhbGx5LlxuZnVuY3Rpb24gaXNTbG93QnVmZmVyIChvYmopIHtcbiAgcmV0dXJuIHR5cGVvZiBvYmoucmVhZEZsb2F0TEUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIG9iai5zbGljZSA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0J1ZmZlcihvYmouc2xpY2UoMCwgMCkpXG59XG4iLCJ2YXIgd29yZFdyYXAgPSByZXF1aXJlKCd3b3JkLXdyYXBwZXInKVxudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKVxudmFyIG51bWJlciA9IHJlcXVpcmUoJ2FzLW51bWJlcicpXG5cbnZhciBYX0hFSUdIVFMgPSBbJ3gnLCAnZScsICdhJywgJ28nLCAnbicsICdzJywgJ3InLCAnYycsICd1JywgJ20nLCAndicsICd3JywgJ3onXVxudmFyIE1fV0lEVEhTID0gWydtJywgJ3cnXVxudmFyIENBUF9IRUlHSFRTID0gWydIJywgJ0knLCAnTicsICdFJywgJ0YnLCAnSycsICdMJywgJ1QnLCAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onXVxuXG5cbnZhciBUQUJfSUQgPSAnXFx0Jy5jaGFyQ29kZUF0KDApXG52YXIgU1BBQ0VfSUQgPSAnICcuY2hhckNvZGVBdCgwKVxudmFyIEFMSUdOX0xFRlQgPSAwLCBcbiAgICBBTElHTl9DRU5URVIgPSAxLCBcbiAgICBBTElHTl9SSUdIVCA9IDJcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVMYXlvdXQob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dExheW91dChvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRMYXlvdXQob3B0KSB7XG4gIHRoaXMuZ2x5cGhzID0gW11cbiAgdGhpcy5fbWVhc3VyZSA9IHRoaXMuY29tcHV0ZU1ldHJpY3MuYmluZCh0aGlzKVxuICB0aGlzLnVwZGF0ZShvcHQpXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKG9wdCkge1xuICBvcHQgPSB4dGVuZCh7XG4gICAgbWVhc3VyZTogdGhpcy5fbWVhc3VyZVxuICB9LCBvcHQpXG4gIHRoaXMuX29wdCA9IG9wdFxuICB0aGlzLl9vcHQudGFiU2l6ZSA9IG51bWJlcih0aGlzLl9vcHQudGFiU2l6ZSwgNClcblxuICBpZiAoIW9wdC5mb250KVxuICAgIHRocm93IG5ldyBFcnJvcignbXVzdCBwcm92aWRlIGEgdmFsaWQgYml0bWFwIGZvbnQnKVxuXG4gIHZhciBnbHlwaHMgPSB0aGlzLmdseXBoc1xuICB2YXIgdGV4dCA9IG9wdC50ZXh0fHwnJyBcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuICB0aGlzLl9zZXR1cFNwYWNlR2x5cGhzKGZvbnQpXG4gIFxuICB2YXIgbGluZXMgPSB3b3JkV3JhcC5saW5lcyh0ZXh0LCBvcHQpXG4gIHZhciBtaW5XaWR0aCA9IG9wdC53aWR0aCB8fCAwXG5cbiAgLy9jbGVhciBnbHlwaHNcbiAgZ2x5cGhzLmxlbmd0aCA9IDBcblxuICAvL2dldCBtYXggbGluZSB3aWR0aFxuICB2YXIgbWF4TGluZVdpZHRoID0gbGluZXMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGxpbmUpIHtcbiAgICByZXR1cm4gTWF0aC5tYXgocHJldiwgbGluZS53aWR0aCwgbWluV2lkdGgpXG4gIH0sIDApXG5cbiAgLy90aGUgcGVuIHBvc2l0aW9uXG4gIHZhciB4ID0gMFxuICB2YXIgeSA9IDBcbiAgdmFyIGxpbmVIZWlnaHQgPSBudW1iZXIob3B0LmxpbmVIZWlnaHQsIGZvbnQuY29tbW9uLmxpbmVIZWlnaHQpXG4gIHZhciBiYXNlbGluZSA9IGZvbnQuY29tbW9uLmJhc2VcbiAgdmFyIGRlc2NlbmRlciA9IGxpbmVIZWlnaHQtYmFzZWxpbmVcbiAgdmFyIGxldHRlclNwYWNpbmcgPSBvcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBoZWlnaHQgPSBsaW5lSGVpZ2h0ICogbGluZXMubGVuZ3RoIC0gZGVzY2VuZGVyXG4gIHZhciBhbGlnbiA9IGdldEFsaWduVHlwZSh0aGlzLl9vcHQuYWxpZ24pXG5cbiAgLy9kcmF3IHRleHQgYWxvbmcgYmFzZWxpbmVcbiAgeSAtPSBoZWlnaHRcbiAgXG4gIC8vdGhlIG1ldHJpY3MgZm9yIHRoaXMgdGV4dCBsYXlvdXRcbiAgdGhpcy5fd2lkdGggPSBtYXhMaW5lV2lkdGhcbiAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0XG4gIHRoaXMuX2Rlc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBiYXNlbGluZVxuICB0aGlzLl9iYXNlbGluZSA9IGJhc2VsaW5lXG4gIHRoaXMuX3hIZWlnaHQgPSBnZXRYSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2NhcEhlaWdodCA9IGdldENhcEhlaWdodChmb250KVxuICB0aGlzLl9saW5lSGVpZ2h0ID0gbGluZUhlaWdodFxuICB0aGlzLl9hc2NlbmRlciA9IGxpbmVIZWlnaHQgLSBkZXNjZW5kZXIgLSB0aGlzLl94SGVpZ2h0XG4gICAgXG4gIC8vbGF5b3V0IGVhY2ggZ2x5cGhcbiAgdmFyIHNlbGYgPSB0aGlzXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSwgbGluZUluZGV4KSB7XG4gICAgdmFyIHN0YXJ0ID0gbGluZS5zdGFydFxuICAgIHZhciBlbmQgPSBsaW5lLmVuZFxuICAgIHZhciBsaW5lV2lkdGggPSBsaW5lLndpZHRoXG4gICAgdmFyIGxhc3RHbHlwaFxuICAgIFxuICAgIC8vZm9yIGVhY2ggZ2x5cGggaW4gdGhhdCBsaW5lLi4uXG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQ7IGkrKykge1xuICAgICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgICB2YXIgZ2x5cGggPSBzZWxmLmdldEdseXBoKGZvbnQsIGlkKVxuICAgICAgaWYgKGdseXBoKSB7XG4gICAgICAgIGlmIChsYXN0R2x5cGgpIFxuICAgICAgICAgIHggKz0gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKVxuXG4gICAgICAgIHZhciB0eCA9IHhcbiAgICAgICAgaWYgKGFsaWduID09PSBBTElHTl9DRU5URVIpIFxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKS8yXG4gICAgICAgIGVsc2UgaWYgKGFsaWduID09PSBBTElHTl9SSUdIVClcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aClcblxuICAgICAgICBnbHlwaHMucHVzaCh7XG4gICAgICAgICAgcG9zaXRpb246IFt0eCwgeV0sXG4gICAgICAgICAgZGF0YTogZ2x5cGgsXG4gICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgbGluZTogbGluZUluZGV4XG4gICAgICAgIH0pICBcblxuICAgICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgICAgeCArPSBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL25leHQgbGluZSBkb3duXG4gICAgeSArPSBsaW5lSGVpZ2h0XG4gICAgeCA9IDBcbiAgfSlcbiAgdGhpcy5fbGluZXNUb3RhbCA9IGxpbmVzLmxlbmd0aDtcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuX3NldHVwU3BhY2VHbHlwaHMgPSBmdW5jdGlvbihmb250KSB7XG4gIC8vVGhlc2UgYXJlIGZhbGxiYWNrcywgd2hlbiB0aGUgZm9udCBkb2Vzbid0IGluY2x1ZGVcbiAgLy8nICcgb3IgJ1xcdCcgZ2x5cGhzXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IG51bGxcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IG51bGxcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuXG5cbiAgLy90cnkgdG8gZ2V0IHNwYWNlIGdseXBoXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlICdtJyBvciAndycgZ2x5cGhzXG4gIC8vdGhlbiBmYWxsIGJhY2sgdG8gdGhlIGZpcnN0IGdseXBoIGF2YWlsYWJsZVxuICB2YXIgc3BhY2UgPSBnZXRHbHlwaEJ5SWQoZm9udCwgU1BBQ0VfSUQpIFxuICAgICAgICAgIHx8IGdldE1HbHlwaChmb250KSBcbiAgICAgICAgICB8fCBmb250LmNoYXJzWzBdXG5cbiAgLy9hbmQgY3JlYXRlIGEgZmFsbGJhY2sgZm9yIHRhYlxuICB2YXIgdGFiV2lkdGggPSB0aGlzLl9vcHQudGFiU2l6ZSAqIHNwYWNlLnhhZHZhbmNlXG4gIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaCA9IHNwYWNlXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSB4dGVuZChzcGFjZSwge1xuICAgIHg6IDAsIHk6IDAsIHhhZHZhbmNlOiB0YWJXaWR0aCwgaWQ6IFRBQl9JRCwgXG4gICAgeG9mZnNldDogMCwgeW9mZnNldDogMCwgd2lkdGg6IDAsIGhlaWdodDogMFxuICB9KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5nZXRHbHlwaCA9IGZ1bmN0aW9uKGZvbnQsIGlkKSB7XG4gIHZhciBnbHlwaCA9IGdldEdseXBoQnlJZChmb250LCBpZClcbiAgaWYgKGdseXBoKVxuICAgIHJldHVybiBnbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gVEFCX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tUYWJHbHlwaFxuICBlbHNlIGlmIChpZCA9PT0gU1BBQ0VfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGhcbiAgcmV0dXJuIG51bGxcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuY29tcHV0ZU1ldHJpY3MgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICB2YXIgbGV0dGVyU3BhY2luZyA9IHRoaXMuX29wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGZvbnQgPSB0aGlzLl9vcHQuZm9udFxuICB2YXIgY3VyUGVuID0gMFxuICB2YXIgY3VyV2lkdGggPSAwXG4gIHZhciBjb3VudCA9IDBcbiAgdmFyIGdseXBoXG4gIHZhciBsYXN0R2x5cGhcblxuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgZW5kOiBzdGFydCxcbiAgICAgIHdpZHRoOiAwXG4gICAgfVxuICB9XG5cbiAgZW5kID0gTWF0aC5taW4odGV4dC5sZW5ndGgsIGVuZClcbiAgZm9yICh2YXIgaT1zdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgdmFyIGlkID0gdGV4dC5jaGFyQ29kZUF0KGkpXG4gICAgdmFyIGdseXBoID0gdGhpcy5nZXRHbHlwaChmb250LCBpZClcblxuICAgIGlmIChnbHlwaCkge1xuICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICB2YXIgeG9mZiA9IGdseXBoLnhvZmZzZXRcbiAgICAgIHZhciBrZXJuID0gbGFzdEdseXBoID8gZ2V0S2VybmluZyhmb250LCBsYXN0R2x5cGguaWQsIGdseXBoLmlkKSA6IDBcbiAgICAgIGN1clBlbiArPSBrZXJuXG5cbiAgICAgIHZhciBuZXh0UGVuID0gY3VyUGVuICsgZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICB2YXIgbmV4dFdpZHRoID0gY3VyUGVuICsgZ2x5cGgud2lkdGhcblxuICAgICAgLy93ZSd2ZSBoaXQgb3VyIGxpbWl0OyB3ZSBjYW4ndCBtb3ZlIG9udG8gdGhlIG5leHQgZ2x5cGhcbiAgICAgIGlmIChuZXh0V2lkdGggPj0gd2lkdGggfHwgbmV4dFBlbiA+PSB3aWR0aClcbiAgICAgICAgYnJlYWtcblxuICAgICAgLy9vdGhlcndpc2UgY29udGludWUgYWxvbmcgb3VyIGxpbmVcbiAgICAgIGN1clBlbiA9IG5leHRQZW5cbiAgICAgIGN1cldpZHRoID0gbmV4dFdpZHRoXG4gICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgIH1cbiAgICBjb3VudCsrXG4gIH1cbiAgXG4gIC8vbWFrZSBzdXJlIHJpZ2h0bW9zdCBlZGdlIGxpbmVzIHVwIHdpdGggcmVuZGVyZWQgZ2x5cGhzXG4gIGlmIChsYXN0R2x5cGgpXG4gICAgY3VyV2lkdGggKz0gbGFzdEdseXBoLnhvZmZzZXRcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbmQ6IHN0YXJ0ICsgY291bnQsXG4gICAgd2lkdGg6IGN1cldpZHRoXG4gIH1cbn1cblxuLy9nZXR0ZXJzIGZvciB0aGUgcHJpdmF0ZSB2YXJzXG47Wyd3aWR0aCcsICdoZWlnaHQnLCBcbiAgJ2Rlc2NlbmRlcicsICdhc2NlbmRlcicsXG4gICd4SGVpZ2h0JywgJ2Jhc2VsaW5lJyxcbiAgJ2NhcEhlaWdodCcsXG4gICdsaW5lSGVpZ2h0JyBdLmZvckVhY2goYWRkR2V0dGVyKVxuXG5mdW5jdGlvbiBhZGRHZXR0ZXIobmFtZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVGV4dExheW91dC5wcm90b3R5cGUsIG5hbWUsIHtcbiAgICBnZXQ6IHdyYXBwZXIobmFtZSksXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pXG59XG5cbi8vY3JlYXRlIGxvb2t1cHMgZm9yIHByaXZhdGUgdmFyc1xuZnVuY3Rpb24gd3JhcHBlcihuYW1lKSB7XG4gIHJldHVybiAobmV3IEZ1bmN0aW9uKFtcbiAgICAncmV0dXJuIGZ1bmN0aW9uICcrbmFtZSsnKCkgeycsXG4gICAgJyAgcmV0dXJuIHRoaXMuXycrbmFtZSxcbiAgICAnfSdcbiAgXS5qb2luKCdcXG4nKSkpKClcbn1cblxuZnVuY3Rpb24gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKSB7XG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBnbHlwaElkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICBpZiAoZ2x5cGhJZHggPj0gMClcbiAgICByZXR1cm4gZm9udC5jaGFyc1tnbHlwaElkeF1cbiAgcmV0dXJuIG51bGxcbn1cblxuZnVuY3Rpb24gZ2V0WEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxYX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBYX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRNR2x5cGgoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8TV9XSURUSFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBNX1dJRFRIU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0Q2FwSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPENBUF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gQ0FQX0hFSUdIVFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XS5oZWlnaHRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRLZXJuaW5nKGZvbnQsIGxlZnQsIHJpZ2h0KSB7XG4gIGlmICghZm9udC5rZXJuaW5ncyB8fCBmb250Lmtlcm5pbmdzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gMFxuXG4gIHZhciB0YWJsZSA9IGZvbnQua2VybmluZ3NcbiAgZm9yICh2YXIgaT0wOyBpPHRhYmxlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtlcm4gPSB0YWJsZVtpXVxuICAgIGlmIChrZXJuLmZpcnN0ID09PSBsZWZ0ICYmIGtlcm4uc2Vjb25kID09PSByaWdodClcbiAgICAgIHJldHVybiBrZXJuLmFtb3VudFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEFsaWduVHlwZShhbGlnbikge1xuICBpZiAoYWxpZ24gPT09ICdjZW50ZXInKVxuICAgIHJldHVybiBBTElHTl9DRU5URVJcbiAgZWxzZSBpZiAoYWxpZ24gPT09ICdyaWdodCcpXG4gICAgcmV0dXJuIEFMSUdOX1JJR0hUXG4gIHJldHVybiBBTElHTl9MRUZUXG59XG5cbmZ1bmN0aW9uIGZpbmRDaGFyIChhcnJheSwgdmFsdWUsIHN0YXJ0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMFxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnJheVtpXS5pZCA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG4gIHJldHVybiAtMVxufSIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlQk1Gb250QXNjaWkoZGF0YSkge1xuICBpZiAoIWRhdGEpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIHByb3ZpZGVkJylcbiAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKS50cmltKClcblxuICB2YXIgb3V0cHV0ID0ge1xuICAgIHBhZ2VzOiBbXSxcbiAgICBjaGFyczogW10sXG4gICAga2VybmluZ3M6IFtdXG4gIH1cblxuICB2YXIgbGluZXMgPSBkYXRhLnNwbGl0KC9cXHJcXG4/fFxcbi9nKVxuXG4gIGlmIChsaW5lcy5sZW5ndGggPT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdubyBkYXRhIGluIEJNRm9udCBmaWxlJylcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGxpbmVEYXRhID0gc3BsaXRMaW5lKGxpbmVzW2ldLCBpKVxuICAgIGlmICghbGluZURhdGEpIC8vc2tpcCBlbXB0eSBsaW5lc1xuICAgICAgY29udGludWVcblxuICAgIGlmIChsaW5lRGF0YS5rZXkgPT09ICdwYWdlJykge1xuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmlkICE9PSAnbnVtYmVyJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGlkPU4nKVxuICAgICAgaWYgKHR5cGVvZiBsaW5lRGF0YS5kYXRhLmZpbGUgIT09ICdzdHJpbmcnKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgZmlsZT1cInBhdGhcIicpXG4gICAgICBvdXRwdXQucGFnZXNbbGluZURhdGEuZGF0YS5pZF0gPSBsaW5lRGF0YS5kYXRhLmZpbGVcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXJzJyB8fCBsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5ncycpIHtcbiAgICAgIC8vLi4uIGRvIG5vdGhpbmcgZm9yIHRoZXNlIHR3byAuLi5cbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2NoYXInKSB7XG4gICAgICBvdXRwdXQuY2hhcnMucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAna2VybmluZycpIHtcbiAgICAgIG91dHB1dC5rZXJuaW5ncy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dFtsaW5lRGF0YS5rZXldID0gbGluZURhdGEuZGF0YVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXRcbn1cblxuZnVuY3Rpb24gc3BsaXRMaW5lKGxpbmUsIGlkeCkge1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9cXHQrL2csICcgJykudHJpbSgpXG4gIGlmICghbGluZSlcbiAgICByZXR1cm4gbnVsbFxuXG4gIHZhciBzcGFjZSA9IGxpbmUuaW5kZXhPZignICcpXG4gIGlmIChzcGFjZSA9PT0gLTEpIFxuICAgIHRocm93IG5ldyBFcnJvcihcIm5vIG5hbWVkIHJvdyBhdCBsaW5lIFwiICsgaWR4KVxuXG4gIHZhciBrZXkgPSBsaW5lLnN1YnN0cmluZygwLCBzcGFjZSlcblxuICBsaW5lID0gbGluZS5zdWJzdHJpbmcoc3BhY2UgKyAxKVxuICAvL2NsZWFyIFwibGV0dGVyXCIgZmllbGQgYXMgaXQgaXMgbm9uLXN0YW5kYXJkIGFuZFxuICAvL3JlcXVpcmVzIGFkZGl0aW9uYWwgY29tcGxleGl0eSB0byBwYXJzZSBcIiAvID0gc3ltYm9sc1xuICBsaW5lID0gbGluZS5yZXBsYWNlKC9sZXR0ZXI9W1xcJ1xcXCJdXFxTK1tcXCdcXFwiXS9naSwgJycpICBcbiAgbGluZSA9IGxpbmUuc3BsaXQoXCI9XCIpXG4gIGxpbmUgPSBsaW5lLm1hcChmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gc3RyLnRyaW0oKS5tYXRjaCgoLyhcIi4qP1wifFteXCJcXHNdKykrKD89XFxzKnxcXHMqJCkvZykpXG4gIH0pXG5cbiAgdmFyIGRhdGEgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZHQgPSBsaW5lW2ldXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMF0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChpID09PSBsaW5lLmxlbmd0aCAtIDEpIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgIGtleTogZHRbMV0sXG4gICAgICAgIGRhdGE6IFwiXCJcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgdmFyIG91dCA9IHtcbiAgICBrZXk6IGtleSxcbiAgICBkYXRhOiB7fVxuICB9XG5cbiAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHYpIHtcbiAgICBvdXQuZGF0YVt2LmtleV0gPSB2LmRhdGE7XG4gIH0pXG5cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiBwYXJzZURhdGEoZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFwiXCJcblxuICBpZiAoZGF0YS5pbmRleE9mKCdcIicpID09PSAwIHx8IGRhdGEuaW5kZXhPZihcIidcIikgPT09IDApXG4gICAgcmV0dXJuIGRhdGEuc3Vic3RyaW5nKDEsIGRhdGEubGVuZ3RoIC0gMSlcbiAgaWYgKGRhdGEuaW5kZXhPZignLCcpICE9PSAtMSlcbiAgICByZXR1cm4gcGFyc2VJbnRMaXN0KGRhdGEpXG4gIHJldHVybiBwYXJzZUludChkYXRhLCAxMClcbn1cblxuZnVuY3Rpb24gcGFyc2VJbnRMaXN0KGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEuc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24odmFsKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHZhbCwgMTApXG4gIH0pXG59IiwidmFyIGR0eXBlID0gcmVxdWlyZSgnZHR5cGUnKVxudmFyIGFuQXJyYXkgPSByZXF1aXJlKCdhbi1hcnJheScpXG52YXIgaXNCdWZmZXIgPSByZXF1aXJlKCdpcy1idWZmZXInKVxuXG52YXIgQ1cgPSBbMCwgMiwgM11cbnZhciBDQ1cgPSBbMiwgMSwgM11cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVRdWFkRWxlbWVudHMoYXJyYXksIG9wdCkge1xuICAgIC8vaWYgdXNlciBkaWRuJ3Qgc3BlY2lmeSBhbiBvdXRwdXQgYXJyYXlcbiAgICBpZiAoIWFycmF5IHx8ICEoYW5BcnJheShhcnJheSkgfHwgaXNCdWZmZXIoYXJyYXkpKSkge1xuICAgICAgICBvcHQgPSBhcnJheSB8fCB7fVxuICAgICAgICBhcnJheSA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9wdCA9PT0gJ251bWJlcicpIC8vYmFja3dhcmRzLWNvbXBhdGlibGVcbiAgICAgICAgb3B0ID0geyBjb3VudDogb3B0IH1cbiAgICBlbHNlXG4gICAgICAgIG9wdCA9IG9wdCB8fCB7fVxuXG4gICAgdmFyIHR5cGUgPSB0eXBlb2Ygb3B0LnR5cGUgPT09ICdzdHJpbmcnID8gb3B0LnR5cGUgOiAndWludDE2J1xuICAgIHZhciBjb3VudCA9IHR5cGVvZiBvcHQuY291bnQgPT09ICdudW1iZXInID8gb3B0LmNvdW50IDogMVxuICAgIHZhciBzdGFydCA9IChvcHQuc3RhcnQgfHwgMCkgXG5cbiAgICB2YXIgZGlyID0gb3B0LmNsb2Nrd2lzZSAhPT0gZmFsc2UgPyBDVyA6IENDVyxcbiAgICAgICAgYSA9IGRpclswXSwgXG4gICAgICAgIGIgPSBkaXJbMV0sXG4gICAgICAgIGMgPSBkaXJbMl1cblxuICAgIHZhciBudW1JbmRpY2VzID0gY291bnQgKiA2XG5cbiAgICB2YXIgaW5kaWNlcyA9IGFycmF5IHx8IG5ldyAoZHR5cGUodHlwZSkpKG51bUluZGljZXMpXG4gICAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgbnVtSW5kaWNlczsgaSArPSA2LCBqICs9IDQpIHtcbiAgICAgICAgdmFyIHggPSBpICsgc3RhcnRcbiAgICAgICAgaW5kaWNlc1t4ICsgMF0gPSBqICsgMFxuICAgICAgICBpbmRpY2VzW3ggKyAxXSA9IGogKyAxXG4gICAgICAgIGluZGljZXNbeCArIDJdID0gaiArIDJcbiAgICAgICAgaW5kaWNlc1t4ICsgM10gPSBqICsgYVxuICAgICAgICBpbmRpY2VzW3ggKyA0XSA9IGogKyBiXG4gICAgICAgIGluZGljZXNbeCArIDVdID0gaiArIGNcbiAgICB9XG4gICAgcmV0dXJuIGluZGljZXNcbn0iLCJ2YXIgY3JlYXRlTGF5b3V0ID0gcmVxdWlyZSgnbGF5b3V0LWJtZm9udC10ZXh0JylcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJylcbnZhciBjcmVhdGVJbmRpY2VzID0gcmVxdWlyZSgncXVhZC1pbmRpY2VzJylcblxudmFyIHZlcnRpY2VzID0gcmVxdWlyZSgnLi9saWIvdmVydGljZXMnKVxudmFyIHV0aWxzID0gcmVxdWlyZSgnLi9saWIvdXRpbHMnKVxuXG52YXIgQmFzZSA9IFRIUkVFLkJ1ZmZlckdlb21ldHJ5XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0R2VvbWV0cnkob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0R2VvbWV0cnkgKG9wdCkge1xuICBCYXNlLmNhbGwodGhpcylcblxuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgdGhlc2UgYXMgZGVmYXVsdCB2YWx1ZXMgZm9yIGFueSBzdWJzZXF1ZW50XG4gIC8vIGNhbGxzIHRvIHVwZGF0ZSgpXG4gIHRoaXMuX29wdCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdClcblxuICAvLyBhbHNvIGRvIGFuIGluaXRpYWwgc2V0dXAuLi5cbiAgaWYgKG9wdCkgdGhpcy51cGRhdGUob3B0KVxufVxuXG5pbmhlcml0cyhUZXh0R2VvbWV0cnksIEJhc2UpXG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKG9wdCkge1xuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgY29uc3RydWN0b3IgZGVmYXVsdHNcbiAgb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3B0LCBvcHQpXG5cbiAgaWYgKCFvcHQuZm9udCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3BlY2lmeSBhIHsgZm9udCB9IGluIG9wdGlvbnMnKVxuICB9XG5cbiAgdGhpcy5sYXlvdXQgPSBjcmVhdGVMYXlvdXQob3B0KVxuXG4gIC8vIGdldCB2ZWMyIHRleGNvb3Jkc1xuICB2YXIgZmxpcFkgPSBvcHQuZmxpcFkgIT09IGZhbHNlXG5cbiAgLy8gdGhlIGRlc2lyZWQgQk1Gb250IGRhdGFcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuXG4gIC8vIGRldGVybWluZSB0ZXh0dXJlIHNpemUgZnJvbSBmb250IGZpbGVcbiAgdmFyIHRleFdpZHRoID0gZm9udC5jb21tb24uc2NhbGVXXG4gIHZhciB0ZXhIZWlnaHQgPSBmb250LmNvbW1vbi5zY2FsZUhcblxuICAvLyBnZXQgdmlzaWJsZSBnbHlwaHNcbiAgdmFyIGdseXBocyA9IHRoaXMubGF5b3V0LmdseXBocy5maWx0ZXIoZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICByZXR1cm4gYml0bWFwLndpZHRoICogYml0bWFwLmhlaWdodCA+IDBcbiAgfSlcblxuICAvLyBwcm92aWRlIHZpc2libGUgZ2x5cGhzIGZvciBjb252ZW5pZW5jZVxuICB0aGlzLnZpc2libGVHbHlwaHMgPSBnbHlwaHNcblxuICAvLyBnZXQgY29tbW9uIHZlcnRleCBkYXRhXG4gIHZhciBwb3NpdGlvbnMgPSB2ZXJ0aWNlcy5wb3NpdGlvbnMoZ2x5cGhzKVxuICB2YXIgdXZzID0gdmVydGljZXMudXZzKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpXG4gIHZhciBpbmRpY2VzID0gY3JlYXRlSW5kaWNlcyhbXSwge1xuICAgIGNsb2Nrd2lzZTogdHJ1ZSxcbiAgICB0eXBlOiAndWludDE2JyxcbiAgICBjb3VudDogZ2x5cGhzLmxlbmd0aFxuICB9KVxuXG4gIC8vIHVwZGF0ZSB2ZXJ0ZXggZGF0YVxuICB0aGlzLnNldEluZGV4KGluZGljZXMpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocG9zaXRpb25zLCAyKSlcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSh1dnMsIDIpKVxuXG4gIC8vIHVwZGF0ZSBtdWx0aXBhZ2UgZGF0YVxuICBpZiAoIW9wdC5tdWx0aXBhZ2UgJiYgJ3BhZ2UnIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgIC8vIGRpc2FibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwYWdlJylcbiAgfSBlbHNlIGlmIChvcHQubXVsdGlwYWdlKSB7XG4gICAgLy8gZW5hYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB2YXIgcGFnZXMgPSB2ZXJ0aWNlcy5wYWdlcyhnbHlwaHMpXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BhZ2UnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBhZ2VzLCAxKSlcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdTcGhlcmUgPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlID0gbmV3IFRIUkVFLlNwaGVyZSgpXG4gIH1cblxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cyA9IDBcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlci5zZXQoMCwgMCwgMClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlU3BoZXJlKHBvc2l0aW9ucywgdGhpcy5ib3VuZGluZ1NwaGVyZSlcbiAgaWYgKGlzTmFOKHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiAnICtcbiAgICAgICdDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgJyArXG4gICAgICAnXCJwb3NpdGlvblwiIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdCb3ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nQm94ID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ0JveCA9IG5ldyBUSFJFRS5Cb3gzKClcbiAgfVxuXG4gIHZhciBiYm94ID0gdGhpcy5ib3VuZGluZ0JveFxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICBiYm94Lm1ha2VFbXB0eSgpXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZUJveChwb3NpdGlvbnMsIGJib3gpXG59XG4iLCJ2YXIgaXRlbVNpemUgPSAyXG52YXIgYm94ID0geyBtaW46IFswLCAwXSwgbWF4OiBbMCwgMF0gfVxuXG5mdW5jdGlvbiBib3VuZHMgKHBvc2l0aW9ucykge1xuICB2YXIgY291bnQgPSBwb3NpdGlvbnMubGVuZ3RoIC8gaXRlbVNpemVcbiAgYm94Lm1pblswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWluWzFdID0gcG9zaXRpb25zWzFdXG4gIGJveC5tYXhbMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1heFsxXSA9IHBvc2l0aW9uc1sxXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIHZhciB4ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDBdXG4gICAgdmFyIHkgPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMV1cbiAgICBib3gubWluWzBdID0gTWF0aC5taW4oeCwgYm94Lm1pblswXSlcbiAgICBib3gubWluWzFdID0gTWF0aC5taW4oeSwgYm94Lm1pblsxXSlcbiAgICBib3gubWF4WzBdID0gTWF0aC5tYXgoeCwgYm94Lm1heFswXSlcbiAgICBib3gubWF4WzFdID0gTWF0aC5tYXgoeSwgYm94Lm1heFsxXSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlQm94ID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIG91dHB1dC5taW4uc2V0KGJveC5taW5bMF0sIGJveC5taW5bMV0sIDApXG4gIG91dHB1dC5tYXguc2V0KGJveC5tYXhbMF0sIGJveC5tYXhbMV0sIDApXG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVTcGhlcmUgPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgdmFyIG1pblggPSBib3gubWluWzBdXG4gIHZhciBtaW5ZID0gYm94Lm1pblsxXVxuICB2YXIgbWF4WCA9IGJveC5tYXhbMF1cbiAgdmFyIG1heFkgPSBib3gubWF4WzFdXG4gIHZhciB3aWR0aCA9IG1heFggLSBtaW5YXG4gIHZhciBoZWlnaHQgPSBtYXhZIC0gbWluWVxuICB2YXIgbGVuZ3RoID0gTWF0aC5zcXJ0KHdpZHRoICogd2lkdGggKyBoZWlnaHQgKiBoZWlnaHQpXG4gIG91dHB1dC5jZW50ZXIuc2V0KG1pblggKyB3aWR0aCAvIDIsIG1pblkgKyBoZWlnaHQgLyAyLCAwKVxuICBvdXRwdXQucmFkaXVzID0gbGVuZ3RoIC8gMlxufVxuIiwibW9kdWxlLmV4cG9ydHMucGFnZXMgPSBmdW5jdGlvbiBwYWdlcyAoZ2x5cGhzKSB7XG4gIHZhciBwYWdlcyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAxKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGlkID0gZ2x5cGguZGF0YS5wYWdlIHx8IDBcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgfSlcbiAgcmV0dXJuIHBhZ2VzXG59XG5cbm1vZHVsZS5leHBvcnRzLnV2cyA9IGZ1bmN0aW9uIHV2cyAoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSkge1xuICB2YXIgdXZzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHZhciBidyA9IChiaXRtYXAueCArIGJpdG1hcC53aWR0aClcbiAgICB2YXIgYmggPSAoYml0bWFwLnkgKyBiaXRtYXAuaGVpZ2h0KVxuXG4gICAgLy8gdG9wIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgdTAgPSBiaXRtYXAueCAvIHRleFdpZHRoXG4gICAgdmFyIHYxID0gYml0bWFwLnkgLyB0ZXhIZWlnaHRcbiAgICB2YXIgdTEgPSBidyAvIHRleFdpZHRoXG4gICAgdmFyIHYwID0gYmggLyB0ZXhIZWlnaHRcblxuICAgIGlmIChmbGlwWSkge1xuICAgICAgdjEgPSAodGV4SGVpZ2h0IC0gYml0bWFwLnkpIC8gdGV4SGVpZ2h0XG4gICAgICB2MCA9ICh0ZXhIZWlnaHQgLSBiaCkgLyB0ZXhIZWlnaHRcbiAgICB9XG5cbiAgICAvLyBCTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYxXG4gICAgLy8gVExcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIFRSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBCUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYxXG4gIH0pXG4gIHJldHVybiB1dnNcbn1cblxubW9kdWxlLmV4cG9ydHMucG9zaXRpb25zID0gZnVuY3Rpb24gcG9zaXRpb25zIChnbHlwaHMpIHtcbiAgdmFyIHBvc2l0aW9ucyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcblxuICAgIC8vIGJvdHRvbSBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHggPSBnbHlwaC5wb3NpdGlvblswXSArIGJpdG1hcC54b2Zmc2V0XG4gICAgdmFyIHkgPSBnbHlwaC5wb3NpdGlvblsxXSArIGJpdG1hcC55b2Zmc2V0XG5cbiAgICAvLyBxdWFkIHNpemVcbiAgICB2YXIgdyA9IGJpdG1hcC53aWR0aFxuICAgIHZhciBoID0gYml0bWFwLmhlaWdodFxuXG4gICAgLy8gQkxcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgICAvLyBUTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBUUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gQlJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gIH0pXG4gIHJldHVybiBwb3NpdGlvbnNcbn1cbiIsInZhciBuZXdsaW5lID0gL1xcbi9cbnZhciBuZXdsaW5lQ2hhciA9ICdcXG4nXG52YXIgd2hpdGVzcGFjZSA9IC9cXHMvXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odGV4dCwgb3B0KSB7XG4gICAgdmFyIGxpbmVzID0gbW9kdWxlLmV4cG9ydHMubGluZXModGV4dCwgb3B0KVxuICAgIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcobGluZS5zdGFydCwgbGluZS5lbmQpXG4gICAgfSkuam9pbignXFxuJylcbn1cblxubW9kdWxlLmV4cG9ydHMubGluZXMgPSBmdW5jdGlvbiB3b3Jkd3JhcCh0ZXh0LCBvcHQpIHtcbiAgICBvcHQgPSBvcHR8fHt9XG5cbiAgICAvL3plcm8gd2lkdGggcmVzdWx0cyBpbiBub3RoaW5nIHZpc2libGVcbiAgICBpZiAob3B0LndpZHRoID09PSAwICYmIG9wdC5tb2RlICE9PSAnbm93cmFwJykgXG4gICAgICAgIHJldHVybiBbXVxuXG4gICAgdGV4dCA9IHRleHR8fCcnXG4gICAgdmFyIHdpZHRoID0gdHlwZW9mIG9wdC53aWR0aCA9PT0gJ251bWJlcicgPyBvcHQud2lkdGggOiBOdW1iZXIuTUFYX1ZBTFVFXG4gICAgdmFyIHN0YXJ0ID0gTWF0aC5tYXgoMCwgb3B0LnN0YXJ0fHwwKVxuICAgIHZhciBlbmQgPSB0eXBlb2Ygb3B0LmVuZCA9PT0gJ251bWJlcicgPyBvcHQuZW5kIDogdGV4dC5sZW5ndGhcbiAgICB2YXIgbW9kZSA9IG9wdC5tb2RlXG5cbiAgICB2YXIgbWVhc3VyZSA9IG9wdC5tZWFzdXJlIHx8IG1vbm9zcGFjZVxuICAgIGlmIChtb2RlID09PSAncHJlJylcbiAgICAgICAgcmV0dXJuIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aClcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpXG59XG5cbmZ1bmN0aW9uIGlkeE9mKHRleHQsIGNociwgc3RhcnQsIGVuZCkge1xuICAgIHZhciBpZHggPSB0ZXh0LmluZGV4T2YoY2hyLCBzdGFydClcbiAgICBpZiAoaWR4ID09PSAtMSB8fCBpZHggPiBlbmQpXG4gICAgICAgIHJldHVybiBlbmRcbiAgICByZXR1cm4gaWR4XG59XG5cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjaHIpIHtcbiAgICByZXR1cm4gd2hpdGVzcGFjZS50ZXN0KGNocilcbn1cblxuZnVuY3Rpb24gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGxpbmVzID0gW11cbiAgICB2YXIgbGluZVN0YXJ0ID0gc3RhcnRcbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZCAmJiBpPHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNociA9IHRleHQuY2hhckF0KGkpXG4gICAgICAgIHZhciBpc05ld2xpbmUgPSBuZXdsaW5lLnRlc3QoY2hyKVxuXG4gICAgICAgIC8vSWYgd2UndmUgcmVhY2hlZCBhIG5ld2xpbmUsIHRoZW4gc3RlcCBkb3duIGEgbGluZVxuICAgICAgICAvL09yIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIEVPRlxuICAgICAgICBpZiAoaXNOZXdsaW5lIHx8IGk9PT1lbmQtMSkge1xuICAgICAgICAgICAgdmFyIGxpbmVFbmQgPSBpc05ld2xpbmUgPyBpIDogaSsxXG4gICAgICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIGxpbmVTdGFydCwgbGluZUVuZCwgd2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKG1lYXN1cmVkKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBsaW5lU3RhcnQgPSBpKzFcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKSB7XG4gICAgLy9BIGdyZWVkeSB3b3JkIHdyYXBwZXIgYmFzZWQgb24gTGliR0RYIGFsZ29yaXRobVxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL2xpYmdkeC9saWJnZHgvYmxvYi9tYXN0ZXIvZ2R4L3NyYy9jb20vYmFkbG9naWMvZ2R4L2dyYXBoaWNzL2cyZC9CaXRtYXBGb250Q2FjaGUuamF2YVxuICAgIHZhciBsaW5lcyA9IFtdXG5cbiAgICB2YXIgdGVzdFdpZHRoID0gd2lkdGhcbiAgICAvL2lmICdub3dyYXAnIGlzIHNwZWNpZmllZCwgd2Ugb25seSB3cmFwIG9uIG5ld2xpbmUgY2hhcnNcbiAgICBpZiAobW9kZSA9PT0gJ25vd3JhcCcpXG4gICAgICAgIHRlc3RXaWR0aCA9IE51bWJlci5NQVhfVkFMVUVcblxuICAgIHdoaWxlIChzdGFydCA8IGVuZCAmJiBzdGFydCA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgIC8vZ2V0IG5leHQgbmV3bGluZSBwb3NpdGlvblxuICAgICAgICB2YXIgbmV3TGluZSA9IGlkeE9mKHRleHQsIG5ld2xpbmVDaGFyLCBzdGFydCwgZW5kKVxuXG4gICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgc3RhcnQgb2YgbGluZVxuICAgICAgICB3aGlsZSAoc3RhcnQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSggdGV4dC5jaGFyQXQoc3RhcnQpICkpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIHN0YXJ0KytcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZGV0ZXJtaW5lIHZpc2libGUgIyBvZiBnbHlwaHMgZm9yIHRoZSBhdmFpbGFibGUgd2lkdGhcbiAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbmV3TGluZSwgdGVzdFdpZHRoKVxuXG4gICAgICAgIHZhciBsaW5lRW5kID0gc3RhcnQgKyAobWVhc3VyZWQuZW5kLW1lYXN1cmVkLnN0YXJ0KVxuICAgICAgICB2YXIgbmV4dFN0YXJ0ID0gbGluZUVuZCArIG5ld2xpbmVDaGFyLmxlbmd0aFxuXG4gICAgICAgIC8vaWYgd2UgaGFkIHRvIGN1dCB0aGUgbGluZSBiZWZvcmUgdGhlIG5leHQgbmV3bGluZS4uLlxuICAgICAgICBpZiAobGluZUVuZCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIC8vZmluZCBjaGFyIHRvIGJyZWFrIG9uXG4gICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kKSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluZUVuZCA9PT0gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXJ0ID4gc3RhcnQgKyBuZXdsaW5lQ2hhci5sZW5ndGgpIG5leHRTdGFydC0tXG4gICAgICAgICAgICAgICAgbGluZUVuZCA9IG5leHRTdGFydCAvLyBJZiBubyBjaGFyYWN0ZXJzIHRvIGJyZWFrLCBzaG93IGFsbC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gbGluZUVuZFxuICAgICAgICAgICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgZW5kIG9mIGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQgLSBuZXdsaW5lQ2hhci5sZW5ndGgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGluZUVuZCA+PSBzdGFydCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIGxpbmVFbmQsIHRlc3RXaWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KVxuICAgICAgICB9XG4gICAgICAgIHN0YXJ0ID0gbmV4dFN0YXJ0XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG4vL2RldGVybWluZXMgdGhlIHZpc2libGUgbnVtYmVyIG9mIGdseXBocyB3aXRoaW4gYSBnaXZlbiB3aWR0aFxuZnVuY3Rpb24gbW9ub3NwYWNlKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGdseXBocyA9IE1hdGgubWluKHdpZHRoLCBlbmQtc3RhcnQpXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBlbmQ6IHN0YXJ0K2dseXBoc1xuICAgIH1cbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGV4dGVuZFxuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBleHRlbmQoKSB7XG4gICAgdmFyIHRhcmdldCA9IHt9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldXG5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldFxufVxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICogXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLiBcclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUiBcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1IgXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsIFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcbiAgICBcclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpOyBcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgLy9tb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICBpZiAoIXdpZGUpIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIGVsc2Uge1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMC43NTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueSA9IDAuMDE7IC8vWFhYIG1hZ2ljIG51bWJlclxyXG4gIH1cclxuXHJcbiAgdmFyIG1hdGVyaWFsO1xyXG4gIGlmIChpbWFnZS5pc01hdGVyaWFsKSB7XHJcbiAgICBtYXRlcmlhbCA9IGltYWdlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIG1hdGVyaWFsKTtcclxuICB9XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gIC8vYnV0dG9uIGxhYmVsIHJlbW92ZWQ7IG1pZ2h0IHdhbnQgb3B0aW9ucyBsaWtlIGEgaG92ZXIgbGFiZWwgaW4gZnV0dXJlLlxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBpZiAod2lkZSkgZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAvL1RPRE86IGRyYWcgYW5kIGhvdmVyXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnaG92ZXJpbmcnLCBoYW5kbGVIb3ZlciApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZVByZXNzaW5nICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGxldCBob3ZlckZ1bmMgPSB1bmRlZmluZWQ7XHJcbiAgLy8gSSBtaWdodCB5ZXQgZGVjaWRlIHRvIGNoYW5nZSB0aGlzIGludGVyZmFjZS5cclxuICAvLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgbmFtZSwgbWlnaHQgd2FudCB0byBhZGQgbGlzdGVuZXJzIHRvIGV2ZW50XHJcbiAgLy8gcmF0aGVyIHRoYW4ganVzdCBzZXQgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgZ3JvdXAub25Ib3ZlciA9IGYgPT4ge1xyXG4gICAgaG92ZXJGdW5jID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZ3JvdXAub25QcmVzc2luZyA9IGYgPT4ge1xyXG4gICAgcHJlc3NpbmcgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBmdW5jdGlvbiBoYW5kbGVIb3ZlciggcCApe1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAoaG92ZXJGdW5jKSBob3ZlckZ1bmMocCk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vaXQgc2hvdWxkIGJlIHRoYXQgdGhlIGNoZWNrcyBpbiBpbmRleC5qcyBtZWFuIHRoYXQgbWV0aG9kcyBkb24ndCBnZXQgY2FsbGVkIG9uIGludmlzaWJsZVxyXG4gICAgLy9vYmplY3RzLCByZW5kZXJpbmcgdGhlc2UgdGVzdHMgcmVkdW5kYW50Li4uIGhvd2V2ZXIsIHRoYXQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlIGNhc2UuXHJcbiAgICAvL2V4cGVyaWVuY2VkIHNvbWUgYnVncyBwYXJ0aWN1bGFybHkgd2l0aCAnbW9kYWwgZWRpdG9yJyB0eXBlIHBhbmVscy5cclxuICAgIC8vVE9ETzogZWl0aGVyIG1ha2Ugc3VyZSBpbnZpc2libGUgb2JqZWN0cyBhcmVuJ3QgY2FsbGVkIGluIHRoZSBmaXJzdCBwbGFjZSxcclxuICAgIC8vb3IgbWFrZSBzdXJlIGFsbCB0eXBlcyBvZiBvYmplY3QgZG8gdGhpcyBtb3JlIHRob3JvdWdoIHZpc2liaWxpdHkgY2hlY2suLi5cclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKG9iamVjdCkgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXShwKTtcclxuICAgIGlmIChmdW5jKSBmdW5jKHApO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL2NvbXB1dGUgeCAmIHkgYXMgbm9ybWFsaXNlZCBjb29yZGluYXRlcyBmcm9tIHAucG9pbnRcclxuICAvL2NvdWxkIGNvbnNpZGVyIG1vdmluZyB0aGlzIGNvbXB1dGF0aW9uIGludG8gaW50ZXJhY3Rpb24uanMgcGVyZm9ybVN0YXRlRXZlbnRzKClcclxuICBmdW5jdGlvbiBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwb2ludCkge1xyXG4gICAgY29uc3QgcCA9IGhpdHNjYW5Wb2x1bWUud29ybGRUb0xvY2FsKHBvaW50KTtcclxuICAgIHAueCAvPSBCVVRUT05fV0lEVEg7XHJcbiAgICBwLnkgLz0gQlVUVE9OX0hFSUdIVDtcclxuICAgIHAueSArPSAwLjU7XHJcbiAgICBwLnggPSBNYXRoLm1heChNYXRoLm1pbihwLngsIDEpLCAwKTtcclxuICAgIHAueSA9IE1hdGgubWF4KE1hdGgubWluKHAueSwgMSksIDApO1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVQcmVzc2luZyggcCApIHtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIC8vY29uc29sZS5sb2coYHByZXNzaW5nIGF0ICgke3BvaW50Lnh9LCAke3BvaW50Lnl9KWApOyAvL2ZpcnN0IGluc3RhbmNlIG9mICdwcmVzc2luZycgaXMgYWx3YXlzIGF0ICgxLCAxKVxyXG4gICAgLy9uYiwgbGlrZWx5IHRvIG5lZWQgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIGR1YWwgd2llbGRpbmdcclxuICAgIGlmIChwcmVzc2luZykgcHJlc3NpbmcocCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmICghbWF0ZXJpYWwuY29sb3IpIHJldHVybjtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhDQ0NDQ0MgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKiBcclxuICogR3JpZCBvZiBidXR0b25zIHdpdGggaW1hZ2VzIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgaW1hZ2VidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7Y3JlYXRlVGV4dExhYmVsLCBjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0cywgLy8gYXJyYXkgb2Yge2Z1bmMsIGltYWdlIHwgdGV4dCwgdGlwKG9wdGlvbmFsKSwgcmVsZWFzZShvcHRpb25hbCl9XHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgcm93SGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNvbHVtbnMgPSA0XHJcbn0gPSB7fSApe1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWFyZ2luID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDM7XHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gKHdpZHRoIC0gbWFyZ2luKSAqICgxL2NvbHVtbnMpO1xyXG4gIC8vVE9ETzogYWRkIHNldFJvd0hlaWdodCBtZXRob2RcclxuICBsZXQgQlVUVE9OX0hFSUdIVCA9IHJvd0hlaWdodCA+IDAgPyByb3dIZWlnaHQgOiBCVVRUT05fV0lEVEg7XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvbmdyaWRcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtvYmplY3RzfV1gO1xyXG4gIFxyXG4gIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwob2JqZWN0cy5sZW5ndGggLyBjb2x1bW5zKTtcclxuICBsZXQgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGdyb3VwLnNldFJvd0hlaWdodCA9IGggPT4ge1xyXG4gICAgcm93SGVpZ2h0ID0gQlVUVE9OX0hFSUdIVCA9IGg7XHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG4gICAgbGF5b3V0QnV0dG9ucygpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGZhbHNlO1xyXG4gIGxldCBsYXN0UHJlc3NlZCA9IG51bGw7XHJcbiAgbGV0IGxhc3RQcmVzc2VkQ29sO1xyXG4gIGdyb3VwLmhpZ2hsaWdodExhc3RQcmVzc2VkID0gKGNvbCA9IDB4MzM1NUVFKSA9PiB7XHJcbiAgICAgIGhpZ2hsaWdodExhc3RQcmVzc2VkID0gY29sICE9PSBmYWxzZTtcclxuICAgICAgbGFzdFByZXNzZWRDb2wgPSBjb2w7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgXHJcbiAgbGV0IHBhbmVsLCBncmFiSW50ZXJhY3Rpb24sIGJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgbGF5b3V0QnV0dG9ucygpO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGluaXRQYW5lbCgpIHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIHBhbmVsLmFkZChjb250cm9sbGVySUQpO1xyXG4gICAgXHJcbiAgICBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+Z3JvdXAucmVtb3ZlKGIpKTtcclxuICAgIGJ1dHRvbnMgPSBbXTtcclxuICAgIGdyb3VwLmd1aUNoaWxkcmVuID0gYnV0dG9ucztcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gbGF5b3V0QnV0dG9ucygpIHtcclxuICAgIGluaXRQYW5lbCgpO1xyXG4gICAgLy9UT0RPOiBwYWRkaW5nXHJcbiAgICBjb25zdCBidXR0b25XUGFkZGVkID0gQlVUVE9OX1dJRFRIICogMC45OSwgYnV0dG9uSFBhZGRlZCA9IEJVVFRPTl9IRUlHSFQgKiAwLjk5O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBidXR0b25XUGFkZGVkLCBidXR0b25IUGFkZGVkLCAxLCAxICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggYnV0dG9uV1BhZGRlZCAvIDIsIC1idXR0b25IUGFkZGVkIC8gMiwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IHRvZ2dsZXMgcmF0aGVyIHRoYW4gdHJpZ2dlcnMuLi5cclxuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFvYmouaW1hZ2UgJiYgIW9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN1Ymdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vbm90ZTogcmVkdWNpbmcgbmVzdGluZyBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxyXG4gICAgICAgIHN1Ymdyb3VwLmd1aVR5cGUgPSBcImltYWdlQnV0dG9uR3JpZEVsZW1lbnRcIjtcclxuICAgICAgICBncm91cC5hZGQoc3ViZ3JvdXApO1xyXG4gICAgICAgIGJ1dHRvbnMucHVzaChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbCA9IGkgJSBjb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IE1hdGguZmxvb3IoaSAvIGNvbHVtbnMpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi54ID0gKDIqTGF5b3V0LlBBTkVMX01BUkdJTikgKyBCVVRUT05fV0lEVEggKiBjb2w7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueSA9IChoZWlnaHQvMikgLUJVVFRPTl9IRUlHSFQgKiByb3c7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuXHJcbiAgICAgICAgLy8gIGhpdHNjYW4gdm9sdW1lLlxyXG4gICAgICAgIC8vIFRoaXMgbWF0ZXJpYWwgY291bGQgcHJvYmFibHkgYmUgcmV1c2VkLlxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG9iai5pbWFnZSkgYXBwbHlJbWFnZVRvTWF0ZXJpYWwob2JqLmltYWdlLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgaWYgKG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUob2JqLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyKkxheW91dC5HUklEX0JVVFRPTl9NQVJHSU47XHJcbiAgICAgICAgICAgIGxldCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgaWYgKHcgPiBCVVRUT05fV0lEVEggLSBtYXJnaW4pIHtcclxuICAgICAgICAgICAgICAgIHRleHQuY29uc3RyYWluQm91bmRzKEJVVFRPTl9XSURUSCAtIG1hcmdpbiwgQlVUVE9OX0hFSUdIVCAtIG1hcmdpbik7IC8vPC0tXHJcbiAgICAgICAgICAgICAgICBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJncm91cC5hZGQodGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnggPSBvYmoudGV4dFggfHwgMC41ICogKEJVVFRPTl9XSURUSCAtIHcpO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnkgPSBvYmoudGV4dFkgfHwgLTAuNSAqIEJVVFRPTl9IRUlHSFQgLSBoO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICAgICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgICAgICAvL2J1dHRvbiBsYWJlbCAmIGRlc2NyaXB0b3IgbGFiZWwgcmVtb3ZlZC5cclxuICAgICAgICAvL1Rvb2x0aXAgdGV4dCBvcHRpb24gYWRkZWQuICBNaWdodCB3YW50IHRvIGJlIGFibGUgdG8gcGFzcyBpbiByaWNoZXIgdGhpbmdzLi4uXHJcbiAgICAgICAgLy9tYXliZSBhbiBhcmJpdHJhcnkgVEhSRUUgb2JqZWN0IHdvdWxkIHdvcmsgd2VsbC4uLlxyXG4gICAgICAgIGlmIChvYmoudGlwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcFRleHQgPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCBvYmoudGlwLCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL3N1Ymdyb3VwLmFkZCh0aXBUZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG4gICAgICAgIHN1Ymdyb3VwLmFkZCggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIHBhbmVsLmFkZChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgICAgICAgICBpZiggc3ViZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL1RPRE86IHN0YW5kYXJkaXNlIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gY2FsbGJhY2tzXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZnVuYygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZXJyb3IgPSBlIHx8ICd1bmRlZmluZWQgZXhjZXB0aW9uJztcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0UHJlc3NlZCA9IG9iajtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gICAgICAgICAgICBpZiAob2JqLnJlbGVhc2UpIG9iai5yZWxlYXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcXVpY2sgY29sb3IgaGFjay4uLlxyXG4gICAgICAgIG9iai5ob3ZlckNvbCA9IG9iai50ZXh0ID8gMHg4ODggOiAweEZGRkZGRjtcclxuICAgICAgICBvYmoubm9Ib3ZlckNvbCA9IG9iai50ZXh0ID8gMHgxMTEgOiAweENDQ0NDQztcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3ID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaGlnaGxpZ2h0TGFzdFByZXNzZWQgJiYgbGFzdFByZXNzZWQgPT09IG9iaikge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBsYXN0UHJlc3NlZENvbCApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpID8gb2JqLmhvdmVyQ29sIDogb2JqLm5vSG92ZXJDb2wgKTtcclxuICAgICAgICAgICAgaWYgKHN1Ymdyb3VwLnRpcFRleHQpIHNldFZpc2liaWxpdHkoc3ViZ3JvdXAsIHN1Ymdyb3VwLnRpcFRleHQsIGludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgICBpZiAob2JqLmVycm9yKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4QUEzMzMzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldygpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIHN1Ymdyb3VwLmhpdHNjYW4gPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogbWFraW5nIHRoaXMgc2luZ2xlIGVsZW1lbnQgcmF0aGVyIHRoYW4gYXJyYXksXHJcbiAgICAgICAgLy90aGF0IG1lYW5zIHRoZXNlICdzdWJncm91cCcgYnV0dG9ucyBhcmVuJ3QgYWN0aW5nIGV4YWN0bHkgYXMgbm9ybWFsIGRhdC5HVUlWUiBjb250cm9sbGVyc1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IGJ1dHRvbnMubWFwKGI9PmIuaGl0c2Nhbik7Ly8ucHVzaChwYW5lbCk7XHJcbiAgICBncm91cC5oaXRzY2FuLnB1c2gocGFuZWwpO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKSB7XHJcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5iLnVwZGF0ZVZpZXcoKSk7XHJcbiAgfVxyXG4gIFxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+e1xyXG4gICAgICAgIGIuaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgLy9pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlU2xpZGVyIGZyb20gJy4vc2xpZGVyJztcclxuaW1wb3J0IGNyZWF0ZUNoZWNrYm94IGZyb20gJy4vY2hlY2tib3gnO1xyXG5pbXBvcnQgY3JlYXRlQnV0dG9uIGZyb20gJy4vYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUZvbGRlciBmcm9tICcuL2ZvbGRlcic7XHJcbmltcG9ydCBjcmVhdGVEcm9wZG93biBmcm9tICcuL2Ryb3Bkb3duJztcclxuLy9QSlQ6IEknZCByYXRoZXIgaW5qZWN0IGN1c3RvbSBleHRlbnNpb25zIGxpa2UgdGhpcywgYnV0IHdpbGwgd29yayB0aGF0IG91dCBsYXRlci5cclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUtleWJvYXJkIGZyb20gJy4va2V5Ym9hcmQnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dGJveCBmcm9tICcuL3RleHRib3gnO1xyXG5pbXBvcnQgY3JlYXRlQ29sb3JQaWNrZXIgZnJvbSAnLi9jb2xvcnBpY2tlcic7XHJcbmltcG9ydCAqIGFzIFNERlRleHQgZnJvbSAnLi9zZGZ0ZXh0JztcclxuaW1wb3J0IHsgaXNDb250cm9sbGVyVmlzaWJsZSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBnbG9iYWxFdmVudHMgfSBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmNvbnN0IEdVSVZSID0gKGZ1bmN0aW9uIERBVEdVSVZSKCl7XHJcblxyXG4gIC8qXHJcbiAgICBTREYgZm9udFxyXG4gICovXHJcbiAgY29uc3QgdGV4dENyZWF0b3IgPSBTREZUZXh0LmNyZWF0b3IoKTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICBMaXN0cy5cclxuICAgIElucHV0T2JqZWN0cyBhcmUgdGhpbmdzIGxpa2UgVklWRSBjb250cm9sbGVycywgY2FyZGJvYXJkIGhlYWRzZXRzLCBldGMuXHJcbiAgICBDb250cm9sbGVycyBhcmUgdGhlIERBVCBHVUkgc2xpZGVycywgY2hlY2tib3hlcywgZXRjLlxyXG4gICovXHJcbiAgY29uc3QgaW5wdXRPYmplY3RzID0gW107XHJcbiAgY29uc3QgY29udHJvbGxlcnMgPSBbXTtcclxuXHJcbiAgLypcclxuICAgIEZ1bmN0aW9ucyBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuIGNvbnRyb2xsZXIgaXMgdmlzaWJsZSAoYnkgd2hpY2ggd2VcclxuICAgIG1lYW4gbm90IGhpZGRlbiwgbm90ICd2aXNpYmxlJyBpbiB0ZXJtcyBvZiB0aGUgY2FtZXJhIG9yaWVudGF0aW9uIGV0YyksIGFuZFxyXG4gICAgZm9yIHJldHJpZXZpbmcgdGhlIGxpc3Qgb2YgdmlzaWJsZSBoaXRzY2FuT2JqZWN0cyBkeW5hbWljYWxseS5cclxuICAgIFRoaXMgbWlnaHQgYmVuZWZpdCBmcm9tIHNvbWUgY2FjaGluZyBlc3BlY2lhbGx5IGluIGNhc2VzIHdpdGggbGFyZ2UgY29tcGxleCBHVUlzLlxyXG4gICAgSSBoYXZlbid0IG1lYXN1cmVkIHRoZSBpbXBhY3Qgb2YgZ2FyYmFnZSBjb2xsZWN0aW9uIGV0Yy5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVDb250cm9sbGVycygpIHtcclxuICAgIC8vIG5vdCB0ZXJyaWJseSBlZmZpY2llbnRcclxuICAgIHJldHVybiBjb250cm9sbGVycy5maWx0ZXIoIGlzQ29udHJvbGxlclZpc2libGUgKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkge1xyXG4gICAgLy9YWFggV0FSTklORzo6OlxyXG4gICAgLy90aGVyZSBjb3VsZCBleGlzdCBzaXR1YXRpb25zIGluIHdoaWNoIG1lbWJlcnMgb2YgaGl0c2NhbiBmb3IgYSB2aXNpYmxlIGNvbnRyb2xsZXIgYXJlIG5vdCB0aGVtc2VsdmVzIHZpc2libGUuXHJcbiAgICAvL3RoaXMgY2FuIGhhcHBlbiBmb3IgZWcgaWYgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgcGFydGljdWxhciBoaXRzY2FuIGlzIGluIGFuIGludmlzaWJsZSBtb2RhbCBlZGl0b3IuXHJcbiAgICAvL3dlIGNvdWxkIGNoZWNrIHRoYXQsIGFkZGluZyBhIG1vcmUgcm9idXN0IGZpbHRlciB0byBlYWNoIGhpdHNjYW4gYXJyYXkuLi4gZm9yIG5vdywgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mXHJcbiAgICAvL2NvbnRyb2xsZXJzIHRvIGVpdGhlciBvbmx5IHJldHVybiBoaXRzY2FuIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSwgb3IgdG8gc2V0ICd2aXNpYmxlJyBleHBsaWNpdGx5LlxyXG4gICAgY29uc3QgdG1wID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkubWFwKCBvID0+IHsgcmV0dXJuIG8uaGl0c2Nhbi5maWx0ZXIoaCA9PiBoLnZpc2libGUpOyB9IClcclxuICAgIHJldHVybiB0bXAucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKTtcclxuICB9XHJcblxyXG4gIGxldCBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICBsZXQgbW91c2VSZW5kZXJlciA9IHVuZGVmaW5lZDtcclxuICBsZXQgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDsgLy9rZWVwIHRyYWNrIHNvIHRoYXQgd2UgZG9uJ3QgYXR0YWNoIG11bHRpcGxlIGV2ZW50cyAocGFydGljdWxhcmx5IHdoZW4gcmVzaXppbmcgd2luZG93KVxyXG4gIFxyXG4gIGxldCBhdXRvVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgZnVuY3Rpb24gZW5hYmxlTW91c2UoIGNhbWVyYSwgcmVuZGVyZXIgKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IHRydWU7XHJcbiAgICBtb3VzZVJlbmRlcmVyID0gcmVuZGVyZXI7XHJcbiAgICBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhID0gY2FtZXJhO1xyXG4gICAgaWYgKGNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkge1xyXG4gICAgICBpZiAoIW9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gZj0+Zi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLm9uKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQubGFzZXI7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGRpc2FibGVNb3VzZSgpe1xyXG4gICAgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIFRoZSBkZWZhdWx0IGxhc2VyIHBvaW50ZXIgY29taW5nIG91dCBvZiBlYWNoIElucHV0T2JqZWN0LlxyXG4gICovXHJcbiAgY29uc3QgbGFzZXJNYXRlcmlhbCA9IG5ldyBUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg1NWFhZmYsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9KTtcclxuICBmdW5jdGlvbiBjcmVhdGVMYXNlcigpe1xyXG4gICAgY29uc3QgZyA9IG5ldyBUSFJFRS5CdWZmZXJHZW9tZXRyeSgpO1xyXG4gICAgZy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KFswLDAsMCwwLDAsMF0pKSk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKCkgKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoMCwwLDApICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLkxpbmUoIGcsIGxhc2VyTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQSBcImN1cnNvclwiLCBlZyB0aGUgYmFsbCB0aGF0IGFwcGVhcnMgYXQgdGhlIGVuZCBvZiB5b3VyIGxhc2VyLlxyXG4gICovXHJcbiAgY29uc3QgY3Vyc29yTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NDQ0NDQ0LCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSApO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUN1cnNvcigpe1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuU3BoZXJlR2VvbWV0cnkoMC4wMDYsIDQsIDQgKSwgY3Vyc29yTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZ2VuZXJpYyBJbnB1dCB0eXBlLlxyXG4gICAgVGFrZXMgYW55IFRIUkVFLk9iamVjdDNEIHR5cGUgb2JqZWN0IGFuZCB1c2VzIGl0cyBwb3NpdGlvblxyXG4gICAgYW5kIG9yaWVudGF0aW9uIGFzIGFuIGlucHV0IGRldmljZS5cclxuXHJcbiAgICBBIGxhc2VyIHBvaW50ZXIgaXMgaW5jbHVkZWQgYW5kIHdpbGwgYmUgdXBkYXRlZC5cclxuICAgIENvbnRhaW5zIHN0YXRlIGFib3V0IHdoaWNoIEludGVyYWN0aW9uIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkIG9yIGhvdmVyLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gY3JlYXRlSW5wdXQoIGlucHV0T2JqZWN0ID0gbmV3IFRIUkVFLkdyb3VwKCkgKXtcclxuICAgIGNvbnN0IGlucHV0ID0ge1xyXG4gICAgICByYXljYXN0OiBuZXcgVEhSRUUuUmF5Y2FzdGVyKCBuZXcgVEhSRUUuVmVjdG9yMygpLCBuZXcgVEhSRUUuVmVjdG9yMygpICksXHJcbiAgICAgIGxhc2VyOiBjcmVhdGVMYXNlcigpLFxyXG4gICAgICBjdXJzb3I6IGNyZWF0ZUN1cnNvcigpLFxyXG4gICAgICBvYmplY3Q6IGlucHV0T2JqZWN0LFxyXG4gICAgICBwcmVzc2VkOiBmYWxzZSxcclxuICAgICAgZ3JpcHBlZDogZmFsc2UsXHJcbiAgICAgIGV2ZW50czogbmV3IEVtaXR0ZXIoKSxcclxuICAgICAgaW50ZXJhY3Rpb246IHtcclxuICAgICAgICBncmlwOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcHJlc3M6IHVuZGVmaW5lZCxcclxuICAgICAgICBob3ZlcjogdW5kZWZpbmVkXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuYWRkKCBpbnB1dC5jdXJzb3IgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIE1vdXNlSW5wdXQuXHJcbiAgICBBbGxvd3MgeW91IHRvIGNsaWNrIG9uIHRoZSBzY3JlZW4gd2hlbiBub3QgaW4gVlIgZm9yIGRlYnVnZ2luZy5cclxuICAqL1xyXG4gIGNvbnN0IG1vdXNlSW5wdXQgPSBjcmVhdGVNb3VzZUlucHV0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU1vdXNlSW5wdXQoKXtcclxuICAgIGNvbnN0IG1vdXNlID0gbmV3IFRIUkVFLlZlY3RvcjIoLTEsLTEpO1xyXG5cclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoKTtcclxuICAgIGlucHV0Lm1vdXNlID0gbW91c2U7XHJcbiAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZU9mZnNldCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZVBsYW5lID0gbmV3IFRIUkVFLlBsYW5lKCk7XHJcbiAgICBpbnB1dC5pbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgLy8gIHNldCBteSBlbmFibGVNb3VzZVxyXG4gICAgaW5wdXQubW91c2VDYW1lcmEgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZW1vdmUnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgLy8gaWYgYSBzcGVjaWZpYyByZW5kZXJlciBoYXMgYmVlbiBkZWZpbmVkXHJcbiAgICAgIGlmIChtb3VzZVJlbmRlcmVyKSB7XHJcbiAgICAgICAgY29uc3QgY2xpZW50UmVjdCA9IG1vdXNlUmVuZGVyZXIuZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBtb3VzZS54ID0gKCAoZXZlbnQuY2xpZW50WCAtIGNsaWVudFJlY3QubGVmdCkgLyBjbGllbnRSZWN0LndpZHRoKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggKGV2ZW50LmNsaWVudFkgLSBjbGllbnRSZWN0LnRvcCkgLyBjbGllbnRSZWN0LmhlaWdodCkgKiAyICsgMTtcclxuICAgICAgfVxyXG4gICAgICAvLyBkZWZhdWx0IHRvIGZ1bGxzY3JlZW5cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbW91c2UueCA9ICggZXZlbnQuY2xpZW50WCAvIHdpbmRvdy5pbm5lcldpZHRoICkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIGV2ZW50LmNsaWVudFkgLyB3aW5kb3cuaW5uZXJIZWlnaHQgKSAqIDIgKyAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpZiAoaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gcHJldmVudCBtb3VzZSBkb3duIGZyb20gdHJpZ2dlcmluZyBvdGhlciBsaXN0ZW5lcnMgKHBvbHlmaWxsLCBldGMpXHJcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7IC8vc29tZXRpbWVzIHdlIGNhcmUgYWJvdXQgdGhlIG1vdXNlIGJlaW5nIHByZXNzZWQsIGV2ZW4gb24gYmFja2dyb3VuZFxyXG4gICAgICAgLy93aWxsIGJlIHNldCBmYWxzZSBhdCBlbmQgb2YgZmlyc3QgdXBkYXRlLiBTaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHRvIGFkZCBhIG5ldyBwcm9wZXJ0eS4uLiBcclxuICAgICAgIC8vb25QcmVzc2VkIHNob3VsZCBiZSBhZGVxdWF0ZS5cclxuICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICB9LCB0cnVlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZXVwJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIGZ1bmN0aW9uIHVzZXJzIHJ1biB0byBnaXZlIERBVCBHVUkgYW4gaW5wdXQgZGV2aWNlLlxyXG4gICAgQXV0b21hdGljYWxseSBkZXRlY3RzIGZvciBWaXZlQ29udHJvbGxlciBhbmQgYmluZHMgYnV0dG9ucyArIGhhcHRpYyBmZWVkYmFjay5cclxuXHJcbiAgICBSZXR1cm5zIGEgbGFzZXIgcG9pbnRlciBzbyBpdCBjYW4gYmUgZGlyZWN0bHkgYWRkZWQgdG8gc2NlbmUuXHJcblxyXG4gICAgVGhlIGxhc2VyIHdpbGwgdGhlbiBoYXZlIHR3byBtZXRob2RzOlxyXG4gICAgbGFzZXIucHJlc3NlZCgpLCBsYXNlci5ncmlwcGVkKClcclxuXHJcbiAgICBUaGVzZSBjYW4gdGhlbiBiZSBib3VuZCB0byBhbnkgYnV0dG9uIHRoZSB1c2VyIHdhbnRzLiBVc2VmdWwgZm9yIGJpbmRpbmcgdG9cclxuICAgIGNhcmRib2FyZCBvciBhbHRlcm5hdGUgaW5wdXQgZGV2aWNlcy5cclxuXHJcbiAgICBGb3IgZXhhbXBsZS4uLlxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oKXsgbGFzZXIucHJlc3NlZCggdHJ1ZSApOyB9ICk7XHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbnB1dE9iamVjdCggb2JqZWN0ICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCBvYmplY3QgKTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5wcmVzc2VkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgY29uc3QgaGl0cyA9IGlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vIG9ubHkgcGF5IGF0dGVudGlvbiB0byBwcmVzc2VzIG92ZXIgdGhlIEdVSVxyXG4gICAgICBpZiAoZmxhZyAmJiBoaXRzICYmIChoaXRzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7XHJcbiAgICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmdyaXBwZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBpbnB1dC5ncmlwcGVkID0gZmxhZztcclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuY3Vyc29yID0gaW5wdXQuY3Vyc29yO1xyXG5cclxuICAgIGlmKCBUSFJFRS5WaXZlQ29udHJvbGxlciAmJiBvYmplY3QgaW5zdGFuY2VvZiBUSFJFRS5WaXZlQ29udHJvbGxlciApe1xyXG4gICAgICBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBvYmplY3QsIGlucHV0Lmxhc2VyLnByZXNzZWQsIGlucHV0Lmxhc2VyLmdyaXBwZWQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMucHVzaCggaW5wdXQgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQubGFzZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgSGVyZSBhcmUgdGhlIG1haW4gZGF0IGd1aSBjb250cm9sbGVyIHR5cGVzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG1pbiA9IDAuMCwgbWF4ID0gMTAwLjAgKXtcclxuICAgIGNvbnN0IHNsaWRlciA9IGNyZWF0ZVNsaWRlcigge1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG1pbiwgbWF4LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIHNsaWRlciApO1xyXG5cclxuICAgIHJldHVybiBzbGlkZXI7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGNoZWNrYm94ID0gY3JlYXRlQ2hlY2tib3goe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggY2hlY2tib3ggKTtcclxuXHJcbiAgICByZXR1cm4gY2hlY2tib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3RcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuYyB0byBjYWxsIGJhY2sgd2hlbiBidXR0b24gcHJlc3NlZFxyXG4gICAqIEBwYXJhbSB7Kn0gaW1hZ2UgY2FuIGJlIGZpbGVuYW1lLCBXZWJHTFJlbmRlclRhcmdldCBvciBNYXRlcmlhbFxyXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gd2lkZSB3aGV0aGVyIHRvIG1ha2UgYnV0dG9uIGZpbGwgZW50aXJlIHdpZHRoIG9mIHBhbmVsIChhcGkgc3ViamVjdCB0byBjaGFuZ2UpXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b24oZnVuYywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3Qgb2JqZWN0ID0geyBmOiBmdW5jIH07XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnZic7XHJcblxyXG5cclxuICAgIC8vc2VlIGFsc28gZm9sZGVyLmpzIHdoZXJlIHRoaXMgaXMgYWRkZWQgdG8gZ3JvdXAgb2JqZWN0Li4uXHJcbiAgICAvL2FzIHN1Y2ggdGhpcyBmdW5jdGlvbiBhbHNvIG5lZWRzIHRvIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBjcmVhdGVGb2xkZXIuXHJcbiAgICAvL3BlcmhhcHMgYWxsIG9mIHRoZXNlICdhZGRYJyBmdW5jdGlvbnMgY291bGQgYmUgaW5pdGlhbGx5IHB1dCBvbnRvIGFuIG9iamVjdCBzbyB0aGF0XHJcbiAgICAvL25ldyBhZGRpdGlvbnMgY291bGQgYmUgYWRkZWQgc2xpZ2h0bHkgbW9yZSBlYXNpbHkuXHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRYWUNvbnRyb2xsZXIocHJlc3NpbmcsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICcnO1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJlc3NpbmcsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJ1dHRvbik7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBUaGlzIGludGVyZmFjZSBtYXkgYmUgc3ViamVjdCB0byBjaGFuZ2UuICBBcmd1bWVudHMgYXJlIG9iamVjdHMgZGVzY3JpYmluZyBidXR0b25zXHJcbiAgRmlyc3Qgb2JqZWN0IG1heSBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b25QYW5lbChjb2xzLCAuLi5hcmdzKSB7XHJcbiAgICBsZXQgY29sdW1ucyA9IE51bWJlci5pc0ludGVnZXIoY29scykgPyBjb2xzIDogNDtcclxuICAgIGNvbnN0IG9iamVjdHMgPSBhcmdzO1xyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpKSBvYmplY3RzLnVuc2hpZnQoY29scylcclxuICAgIGNvbnN0IGdyaWQgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiBjb2x1bW5zfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGdyaWQpO1xyXG4gICAgcmV0dXJuIGdyaWQ7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRLZXlib2FyZCgga2V5TGlzdGVuZXIgKSB7XHJcbiAgICBpZiAoIWtleUxpc3RlbmVyKSBrZXlMaXN0ZW5lciA9IChrKSA9PiBjb25zb2xlLmxvZyhga2V5RG93biAke2t9YCk7XHJcbiAgICBjb25zdCBrYiA9IGNyZWF0ZUtleWJvYXJkKHtrZXlMaXN0ZW5lciwgdGV4dENyZWF0b3J9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goa2IpO1xyXG4gICAgcmV0dXJuIGtiO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVUZXh0Ym94KHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZUNvbG9yUGlja2VyKHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9wdGlvbnMgKXtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gY3JlYXRlRHJvcGRvd24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG9wdGlvbnNcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGRyb3Bkb3duICk7XHJcbiAgICByZXR1cm4gZHJvcGRvd247XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEFuIGltcGxpY2l0IEFkZCBmdW5jdGlvbiB3aGljaCBkZXRlY3RzIGZvciBwcm9wZXJ0eSB0eXBlXHJcbiAgICBhbmQgZ2l2ZXMgeW91IHRoZSBjb3JyZWN0IGNvbnRyb2xsZXIuXHJcblxyXG4gICAgRHJvcGRvd246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9iamVjdFR5cGUgKVxyXG5cclxuICAgIFNsaWRlcjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZOdW1iZXJUeXBlLCBtaW4sIG1heCApXHJcblxyXG4gICAgQ2hlY2tib3g6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mQm9vbGVhblR5cGUgKVxyXG5cclxuICAgIEJ1dHRvbjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZGdW5jdGlvblR5cGUgKVxyXG5cclxuICAgIE5vdCB1c2VkIGRpcmVjdGx5LiBVc2VkIGJ5IGZvbGRlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApe1xyXG5cclxuICAgIGlmKCBvYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG5cclxuICAgIGlmIChvYmplY3QuaXNGb2xkZXIpIHJldHVybiBvYmplY3Q7XHJcblxyXG4gICAgaWYoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBjb25zb2xlLndhcm4oICdubyBwcm9wZXJ0eSBuYW1lZCcsIHByb3BlcnR5TmFtZSwgJ29uIG9iamVjdCcsIG9iamVjdCApO1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzT2JqZWN0KCBhcmczICkgfHwgaXNBcnJheSggYXJnMyApICl7XHJcbiAgICAgIHJldHVybiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNOdW1iZXIoIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzQm9vbGVhbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Z1bmN0aW9uKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzU3RyaW5nKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc0NvbG9yKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBhZGQgY291bGRuJ3QgZmlndXJlIGl0IG91dCwgcGFzcyBpdCBiYWNrIHRvIGZvbGRlclxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZVNsaWRlciggbWluID0gMCwgbWF4ID0gMSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG51bWJlcjogbWluXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRTbGlkZXIoIHByb3h5LCAnbnVtYmVyJywgbWluLCBtYXggKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZURyb3Bkb3duKCBvcHRpb25zID0gW10gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBvcHRpb246ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGlmKCBvcHRpb25zICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgcHJveHkub3B0aW9uID0gaXNBcnJheSggb3B0aW9ucyApID8gb3B0aW9uc1sgMCBdIDogb3B0aW9uc1sgT2JqZWN0LmtleXMob3B0aW9ucylbMF0gXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWRkRHJvcGRvd24oIHByb3h5LCAnb3B0aW9uJywgb3B0aW9ucyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQ2hlY2tib3goIGRlZmF1bHRPcHRpb24gPSBmYWxzZSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGNoZWNrZWQ6IGRlZmF1bHRPcHRpb25cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZENoZWNrYm94KCBwcm94eSwgJ2NoZWNrZWQnICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVCdXR0b24oIGZuICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgYnV0dG9uOiAoZm4hPT11bmRlZmluZWQpID8gZm4gOiBmdW5jdGlvbigpe31cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZEJ1dHRvbiggcHJveHksICdidXR0b24nICk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIE5vdCB1c2VkIGRpcmVjdGx5OyB1c2VkIGJ5IGZvbGRlcnMuXHJcbiAgUmVtb3ZlIGNvbnRyb2xsZXJzIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBjb250cm9sbGVycyBrbm93biB0byBkYXQuR1VJVlIuXHJcbiAgQ2FsbHMgcmVtb3ZlVGVzdCBmaXJzdCB0byBjaGVjayBpbnB1dCBhcmd1bWVudHMuICByZXR1cm5zIGZhbHNlIGlmIHRoaXMgdGVzdCBmYWlscy5cclxuICByZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bC5cclxuXHJcbiAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVjdXJzaXZlbHkgcmVtb3ZlIGVsZW1lbnRzIGZyb20gZm9sZGVyczsgdGhhdCBpcyBkZWFsdCB3aXRoIGluIHRoZSBmb2xkZXIgY29kZSB3aGljaCBjYWxscyB0aGlzLlxyXG4gIFxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZSggLi4uYXJncyApe1xyXG4gICAgbGV0IGFyZ1NldCA9IFsgLi4ubmV3IFNldChhcmdzKSBdOyAvL2p1c3QgaW4gY2FzZSB0aGVyZSB3ZXJlIHJlcGVhdGVkIGVsZW1lbnRzIGluIGFyZ3MsIHR1cm4gaW50byBTZXQgdGhlbiBiYWNrIHRvIGFycmF5LlxyXG4gICAgaWYgKCAhcmVtb3ZlVGVzdCguLi5hcmdTZXQpICkgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJnU2V0LmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgdmFyIGkgPSBjb250cm9sbGVycy5pbmRleE9mKCBvYmogKTtcclxuICAgICAgaWYgKCBpID4gLTEpIGNvbnRyb2xsZXJzLnNwbGljZSggaSwgMSApO1xyXG4gICAgICBlbHNlIHsgLy8gSSBjYW4ndCBzZWUgaG93IHRoaXMnZCBoYXBwZW4gbm93IHdlIGd1YXJkIGFnYWluc3QgcmVwZWF0ZWQgZWxlbWVudHMuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJJbnRlcm5hbCBlcnJvciBpbiByZW1vdmUsIG5vdCBhbnRpY2lwYXRlZCBieSByZW1vdmVUZXN0LiBJbnRlcm5hbCBkYXQuR1VJVlIgc3RhdGUgbWF5IGJlIGluY29uc2lzdGVudC5cIik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBWZXJpZnkgdGhhdCBhbGwgb2YgdGhlIGl0ZW1zIGluIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZXhpc3RpbmcgY29udHJvbGxlcnMgdGhhdCBzaG91bGQgYmUgb2sgdG8gcmVtb3ZlLlxyXG5cclxuICBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGFyZSBhbnkgbWlzbWF0Y2hlcywgdHJ1ZSBpZiBiZWxpZXZlZCBvayB0byBjb250aW51ZSB3aXRoIGFjdHVhbCByZW1vdmUoKVxyXG5cclxuICBJZiBhbnkgb2YgdGhlIHByb3ZpZGVkIGFyZ3MgYXJlIGZvbGRlcnMgKGhhdmUgaXNGb2xkZXIgcHJvcGVydHkpIHRoaXMgaXMgY2FsbGVkIHJlY3Vyc2l2ZWx5LlxyXG4gIFRoaXMgd2lsbCByZXN1bHQgaW4gcmVkdW5kYW50IHdvcmsgYXMgZWFjaCBmb2xkZXIgd2lsbCBhbHNvIGNhbGwgaXQgYWdhaW4gYXMgaXQncyByZW1vdmVkLCBidXQgdGhpcyBpcyBjaGVhcFxyXG4gIGFuZCBpdCBtZWFucyB0aGF0IGFueSBlcnJvciBzaG91bGQgYmUgY2F1Z2h0IGFzIGVhcmx5IGFzIHBvc3NpYmxlIGFuZCB0aGUgd2hvbGUgcHJvY2VzcyBhYm9ydGVkLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlVGVzdCggLi4uYXJncyApIHtcclxuICAgIGZvciAodmFyIGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBvYmogPSBhcmdzW2ldO1xyXG4gICAgICBpZiAoY29udHJvbGxlcnMuaW5kZXhPZihvYmopID09PSAtMSB8fCAhb2JqLmZvbGRlci5oYXNDaGlsZChvYmopKSB7XHJcbiAgICAgICAgLy9UT0RPOiB0b1N0cmluZyBpbXBsZW1lbnRhdGlvbnMgZm9yIGNvbnRyb2xsZXJzXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJDYW4ndCByZW1vdmUgY29udHJvbGxlciBcIiArIG9iaik7IC8vbm90IHN1cmUgdGhlIHByZWZlcnJlZCB3YXkgb2YgcmVwb3J0aW5nIHByb2JsZW0gdG8gdXNlci5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGlmICghcmVtb3ZlVGVzdCggLi4ub2JqLmd1aUNoaWxkcmVuICkpIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wbGV0ZWx5IHJlbW92ZSBhbGwgR1VJIGVsZW1lbnRzIGZyb20gdGhlIHN5c3RlbSBnbG9iYWxseSwgXHJcbiAgICogaW5jbHVkaW5nIHJlbW92aW5nIGFueSBvYmplY3RzIGZyb20gdGhlIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKi9cclxuICBmdW5jdGlvbiBjbGVhckFsbCgpIHtcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMudmlzaWJsZSA9IGZhbHNlOyBpZiAoYy5wYXJlbnQgJiYgIWMucGFyZW50Lmd1aUNoaWxkcmVuKSBjLnBhcmVudC5yZW1vdmUoYyk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnNwbGljZSgwLCBjb250cm9sbGVycy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZm9sZGVyIHdpdGggdGhlIG5hbWUuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgVEhSRUUuR3JvdXAgdHlwZSBvYmplY3RzIGFuZCBjYW4gZG8gZ3JvdXAuYWRkKCkgZm9yIHNpYmxpbmdzLlxyXG4gICAgRm9sZGVycyB3aWxsIGF1dG9tYXRpY2FsbHkgYXR0ZW1wdCB0byBsYXkgaXRzIGNoaWxkcmVuIG91dCBpbiBzZXF1ZW5jZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBnaXZlbiB0aGUgYWRkKCkgZnVuY3Rpb25hbGl0eSBzbyB0aGF0IHRoZXkgY2FuIGRvXHJcbiAgICBmb2xkZXIuYWRkKCAuLi4gKSB0byBjcmVhdGUgY29udHJvbGxlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBuYW1lICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBjcmVhdGVGb2xkZXIoe1xyXG4gICAgICB0ZXh0Q3JlYXRvcixcclxuICAgICAgbmFtZSxcclxuICAgICAgZ3VpQWRkOiBhZGQsXHJcbiAgICAgIGd1aVJlbW92ZTogcmVtb3ZlLFxyXG4gICAgICBhZGRDb250cm9sbGVyRnVuY3M6IHtcclxuICAgICAgICBhZGRTbGlkZXI6IGFkZFNpbXBsZVNsaWRlcixcclxuICAgICAgICBhZGREcm9wZG93bjogYWRkU2ltcGxlRHJvcGRvd24sXHJcbiAgICAgICAgYWRkQ2hlY2tib3g6IGFkZFNpbXBsZUNoZWNrYm94LFxyXG4gICAgICAgIGFkZEJ1dHRvbjogYWRkU2ltcGxlQnV0dG9uLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uOiBhZGRJbWFnZUJ1dHRvbixcclxuICAgICAgICBhZGRYWUNvbnRyb2xsZXI6IGFkZFhZQ29udHJvbGxlcixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvblBhbmVsOiBhZGRJbWFnZUJ1dHRvblBhbmVsLFxyXG4gICAgICAgIGFkZEtleWJvYXJkOiBhZGRLZXlib2FyZCxcclxuICAgICAgICBhZGRUZXh0Ym94OiBhZGRUZXh0Ym94XHJcbiAgICAgIH0sXHJcbiAgICAgIGdsb2JhbENvbnRyb2xsZXJzOiBjb250cm9sbGVycyxcclxuICAgICAgLy8/Pz9cclxuICAgICAgYWRkSGVhZGVyRnVuY3M6IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZm9sZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUGVyZm9ybSB0aGUgbmVjZXNzYXJ5IHVwZGF0ZXMsIHJheWNhc3RzIG9uIGl0cyBvd24gUkFGLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgdERpcmVjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCAwLCAwLCAtMSApO1xyXG4gIGNvbnN0IHRNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoKSB7XHJcbiAgICBjb25zdCBpc09ydGhvZ3JhcGhpYyA9IG1vdXNlRW5hYmxlZCAmJiBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhO1xyXG4gICAgaWYgKGF1dG9VcGRhdGUpIHJlcXVlc3RBbmltYXRpb25GcmFtZSggdXBkYXRlICk7XHJcbiAgICBcclxuICAgIHZhciBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgY29uc3QgY29udHJvbGxlcnMgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKTtcclxuICAgIGNvbnN0IGZvbGRlcnMgPSBjb250cm9sbGVycy5maWx0ZXIoYyA9PiBjLmZvbGRlciA9PT0gYyk7IC8vYWxsIHRvcC1sZXZlbCBmb2xkZXJzXHJcbiAgICBmb2xkZXJzLmZvckVhY2goZiA9PiB7XHJcbiAgICAgIGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSBpc09ydGhvZ3JhcGhpYyA/IG1vdXNlSW5wdXQubW91c2VDYW1lcmEgOiBmYWxzZTtcclxuICAgICAgaWYgKGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAgIGYucmVxdWVzdExheW91dCgpO1xyXG4gICAgICAgIGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IGZhbHNlOyAvLyBwcm90ZWN0IGFueSBuZXdseS1kaXNwbGF5ZWQgbW9kYWxFZGl0b3IgZnJvbSBiZWluZyBjbGVhcmVkXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGYudXNlckRhdGEubGF5b3V0UGVuZGluZykgZi5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICB9KTsgXHJcblxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICAvL1RPRE86IGxvY2sgbW91c2Ugb24gaG92ZXI/P1xyXG4gICAgICBtb3VzZUlucHV0LmludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLGludGVyYWN0aW9ufSA9IHt9LCBpbmRleCApe1xyXG4gICAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICAgIG9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBcclxuICAgICAgdFBvc2l0aW9uLnNldCgwLDAsMCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgdE1hdHJpeC5pZGVudGl0eSgpLmV4dHJhY3RSb3RhdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIFxyXG4gICAgICB0RGlyZWN0aW9uLnNldCgwLDAsLTEpO1xyXG4gICAgICAvL2FsdGVyaW5nIGRpcmVjdGlvbiBlLmcuIHRvIHBvaW50IGluIGRpcmVjdGlvbiBvZiBleHRlbmRlZCB0cmlnZ2VyIGZpbmdlciwgcmF0aGVyIHRoYW4gJ21haW4gYXhpcycgb2YgVml2ZSBjb250cm9sbGVyLi4uXHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGQgYmUgaW4gdXNlckRhdGEuXHJcbiAgICAgIGlmIChvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcikgdERpcmVjdGlvbi5hcHBseVF1YXRlcm5pb24ob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpO1xyXG4gICAgICB0RGlyZWN0aW9uLmFwcGx5TWF0cml4NCggdE1hdHJpeCApLm5vcm1hbGl6ZSgpO1xyXG4gICAgICBcclxuICAgICAgcmF5Y2FzdC5zZXQoIHRQb3NpdGlvbiwgdERpcmVjdGlvbiApO1xyXG4gICAgICBcclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAwIF0uY29weSggdFBvc2l0aW9uICk7XHJcbiAgICAgIGNvbnN0IGEgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICAgIGFbMF0gPSB0UG9zaXRpb24ueDsgYVsxXSA9IHRQb3NpdGlvbi55OyBhWzJdID0gdFBvc2l0aW9uLno7XHJcbiAgICAgIFxyXG4gICAgICAvLyAgZGVidWcuLi5cclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggdFBvc2l0aW9uICkuYWRkKCB0RGlyZWN0aW9uLm11bHRpcGx5U2NhbGFyKCAxICkgKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbnMgPSByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgXHJcbiAgICAgIGlucHV0T2JqZWN0c1sgaW5kZXggXS5pbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy93YW50IHRvIGFkZCBpbmZvIChoaXQgZGlzY3RhbmNlKSB0byBvYmplY3QgZm9yIHVzZSBvdXRzaWRlLi4uIGp1c3QgYWRkaW5nIGVudGlyZXR5IG9mIGludGVyc2VjdGlvbnMgaW4gY2FzZSB1c2VmdWxcclxuICAgICAgaWYgKG9iamVjdC51c2VyRGF0YSkgb2JqZWN0LnVzZXJEYXRhLmd1aUludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0cyA9IGlucHV0T2JqZWN0cy5zbGljZSgpO1xyXG4gICAgXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIGlucHV0cy5wdXNoKCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goIGMgPT4gYy51cGRhdGVDb250cm9sKCBpbnB1dHMgKSk7XHJcbiAgICAvL25vdyBjaGVjayBpZiBhbnkgcHJlc3Mgb24gYW55IGlucHV0IGhpdCBhbnkgbm9uJ21vZGFsIGVkaXRvcicuLi4gaWYgc28sIHdlJ2xsIHJlbW92ZSBtb2RhbHMgZnJvbSBhbGwgZm9sZGVyc1xyXG4gICAgLy8odGhpcyBpc24ndCBwZXJmZWN0OyBpZiB5b3UgYXJlIGFjdGl2ZWx5IGludGVyYWN0aW5nIHdpdGggc29tZXRoaW5nIGFuZCBwcmVzcyBvdGhlciBidXR0b24gc29tZXdoZXJlIGVsc2UsIGl0J2xsIHJlbW92ZSB5b3VyIG9iamVjdClcclxuICAgIGxldCBoaXROb25Nb2RhbHMgPSBpbnB1dHMuZmlsdGVyKGlucHV0ID0+IGlucHV0LmhpdE5vbk1vZGFsKTtcclxuICAgIGlmIChoaXROb25Nb2RhbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgaGl0Tm9uTW9kYWxzLmZvckVhY2goaCA9PiBoLmhpdE5vbk1vZGFsID0gZmFsc2UpOyAvL3JlbW92ZSBmbGFncyBzbyB0aGV5IGRvbid0IHBlcnNpc3QgdG8gc3Vic2VxdWVudCB1cGRhdGVzXHJcbiAgICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IGYuY2xlYXJNb2RhbEVkaXRvcigpKTsgLy90aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIG5vdCBoaWRlIGl0ZW1zIG5ld2x5IGRpc3BsYXllZCBpbiB0aGlzIGZyYW1lXHJcbiAgICB9XHJcbiAgICBtb3VzZUlucHV0LmNsaWNrZWQgPSBmYWxzZTtcclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKG89Pm8uY2xpY2tlZCA9IGZhbHNlKTtcclxuICAgIHJldHVybiBtb3VzZUlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxuLy8gaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZvaWQgbWFpbigpIHsgXHJcbiAgdlV2ID0gdXY7XHJcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cclxufVxyXG5gO1xyXG5cclxuY29uc3QgbWVzaGJhc2ljX2ZyYWcgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG51bmlmb3JtIHZlYzMgY29sb3I7XHJcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLCBcclxuICAgIC8vIHNvIGFmd2lkdGggZGVwZW5kcyBvbiBzY2FsZSBvZiBndWlcclxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XHJcbn1cclxuLy8vL1xyXG5cclxudm9pZCBtYWluKCkge1xyXG5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxyXG5cclxuICAgIC8vL1xyXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xyXG4gICAgXHJcbiAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKG1hcCwgdlV2KTtcclxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcclxuICAgIGlmIChnbF9GcmFnQ29sb3IuYSA8IDAuMDAwMSkgZGlzY2FyZDtcclxuICAgIC8vL1xyXG5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XHJcbiAgICAvL1hYWDogYmlnIGNodW5rIHJlbW92ZWQgZnJvbSBvcmlnaW5hbCBtZXNoYmFzaWNfZnJhZyBoZXJlLlxyXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cclxufVxyXG5gO1xyXG5cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlU0RGU2hhZGVyIChvcHQpIHtcclxuICBvcHQgPSBvcHQgfHwge307XHJcbiAgdmFyIG9wYWNpdHkgPSB0eXBlb2Ygb3B0Lm9wYWNpdHkgPT09ICdudW1iZXInID8gb3B0Lm9wYWNpdHkgOiAxO1xyXG4gIC8vLy0tIGhhcmRjb2RlZCBpbiBzaGFkZXIgY29kZSwgZ3VpdnIgbmV2ZXIgcGFzc2VkIHRoZXNlIGluIG9wdCAtLVxyXG4gIC8vdmFyIGFscGhhVGVzdCA9IHR5cGVvZiBvcHQuYWxwaGFUZXN0ID09PSAnbnVtYmVyJyA/IG9wdC5hbHBoYVRlc3QgOiAwLjAwMDFcclxuICAvL3ZhciBwcmVjaXNpb24gPSBvcHQucHJlY2lzaW9uIHx8ICdoaWdocCdcclxuICB2YXIgY29sb3IgPSBvcHQuY29sb3I7XHJcbiAgdmFyIG1hcCA9IG9wdC5tYXA7XHJcbiAgXHJcbiAgb3B0LmV4dGVuc2lvbnMgPSBvcHQuZXh0ZW5zaW9ucyB8fCB7fTtcclxuICBvcHQuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcyA9IHRydWU7IC8vbmIsIGZhbHNlIGRlZmF1bHRzIGZvciBmcmFnRGVwdGgsIGRyYXdCdWZmZXJzLCBzaGFkZXJUZXh0dXJlTE9EIHdpbGwgbm8gbG9uZ2VyIGJlIHRoZXJlLlxyXG4gIG9wdC5uYW1lID0gXCJTREYgdGV4dCBtYXRlcmlhbFwiO1xyXG5cclxuICAvLyByZW1vdmUgdG8gc2F0aXNmeSByNzNcclxuICBkZWxldGUgb3B0Lm1hcDtcclxuICBkZWxldGUgb3B0LmNvbG9yO1xyXG4gIGRlbGV0ZSBvcHQucHJlY2lzaW9uO1xyXG4gIGRlbGV0ZSBvcHQub3BhY2l0eTtcclxuXHJcbiAgcmV0dXJuIGFzc2lnbih7XHJcbiAgICB1bmlmb3Jtczoge1xyXG4gICAgICBvcGFjaXR5OiB7IHR5cGU6ICdmJywgdmFsdWU6IG9wYWNpdHkgfSxcclxuICAgICAgbWFwOiB7IHR5cGU6ICd0JywgdmFsdWU6IG1hcCB8fCBuZXcgVEhSRUUuVGV4dHVyZSgpIH0sXHJcbiAgICAgIGNvbG9yOiB7IHR5cGU6ICdjJywgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcihjb2xvcikgfVxyXG4gICAgfSxcclxuICAgIHZlcnRleFNoYWRlcjogbWVzaGJhc2ljX3ZlcnQsXHJcbiAgICBmcmFnbWVudFNoYWRlcjogbWVzaGJhc2ljX2ZyYWdcclxuICB9LCBvcHQpO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgU0RGU2hhZGVyIGZyb20gJy4vc2Rmc2hhZGVyX2xvZ2RlcHRoJztcclxuaW1wb3J0IGNyZWF0ZUdlb21ldHJ5IGZyb20gJ3RocmVlLWJtZm9udC10ZXh0JztcclxuaW1wb3J0IHBhcnNlQVNDSUkgZnJvbSAncGFyc2UtYm1mb250LWFzY2lpJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmltcG9ydCAqIGFzIEZvbnQgZnJvbSAnLi9mb250JztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXRlcmlhbCggY29sb3IgKXtcclxuXHJcbiAgY29uc3QgaW1hZ2UgPSBGb250LmltYWdlKCk7XHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKGltYWdlKTsgdGV4dHVyZS5uYW1lID0gJ3NkZkZvbnRUZXh0dXJlJ1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIC8vTkI6Ojogc29tZXdoYXQgZXhwZXJpbWVudGFsIHJlcGxhY2VtZW50IG9mIFJhd1NoYWRlciBjb2RlIGZyb20gYm1mb250IHdpdGggdmFyaWF0aW9uIG9mIE1lc2hCYXNpYyBzaGFkZXJcclxuICAvL3RoaXMgc2hvdWxkIGFsbG93IGZvciBsb2dkZXB0aCwgZm9nIGlzIGFsc28gYW50aWNpcGF0ZWQgdG8gd29yayByZWFzb25hYmx5IHdlbGwuLi4gXHJcbiAgLy90b25lbWFwcGluZyBldGMgbWF5IGNvbmNlaXZhYmx5IGJlIGltcHJvdmVkLi4uIFlNTVYuXHJcbiAgbGV0IG1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKFNERlNoYWRlcih7XHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBjb2xvcjogY29sb3IsXHJcbiAgICBtYXA6IHRleHR1cmUsXHJcbiAgICB0eXBlOiAnU0RGIFRleHQnXHJcbiAgfSkpO1xyXG4gIHJldHVybiBtYXRlcmlhbDtcclxufVxyXG5cclxuY29uc3QgdGV4dFNjYWxlID0gTGF5b3V0LlRFWFRfU0NBTEU7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRvcigpe1xyXG5cclxuICBjb25zdCBmb250ID0gcGFyc2VBU0NJSSggRm9udC5mbnQoKSApO1xyXG5cclxuICBjb25zdCBjb2xvck1hdGVyaWFscyA9IHt9O1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVUZXh0KCBzdHIsIGZvbnQsIGNvbG9yID0gMHhmZmZmZmYsIHNjYWxlID0gMS4wLCB3aWR0aCwgaGVpZ2h0ICl7XHJcblxyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBjcmVhdGVHZW9tZXRyeSh7XHJcbiAgICAgIHRleHQ6IHN0cixcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IHdpZHRoLFxyXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcclxuICAgICAgZmxpcFk6IHRydWUsXHJcbiAgICAgIGZvbnRcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICBjb25zdCBsYXlvdXQgPSBnZW9tZXRyeS5sYXlvdXQ7XHJcblxyXG4gICAgbGV0IG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF07XHJcbiAgICBpZiggbWF0ZXJpYWwgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdID0gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseSggbmV3IFRIUkVFLlZlY3RvcjMoMSwtMSwxKSApO1xyXG5cclxuICAgIGNvbnN0IGZpbmFsU2NhbGUgPSBzY2FsZSAqIHRleHRTY2FsZTtcclxuXHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5U2NhbGFyKCBmaW5hbFNjYWxlICk7XHJcblxyXG4gICAgbWVzaC5wb3NpdGlvbi55ID0gbGF5b3V0LmhlaWdodCAqIDAuNSAqIGZpbmFsU2NhbGU7XHJcblxyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBzdHIsIHsgY29sb3I9MHhmZmZmZmYsIHNjYWxlPTEuMCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gICAgbGV0IG1lc2ggPSBjcmVhdGVUZXh0KCBzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSApO1xyXG4gICAgZ3JvdXAuYWRkKCBtZXNoICk7XHJcbiAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIGdyb3VwLmNvbXB1dGVXaWR0aCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC53aWR0aCAqIHNjYWxlICogTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICB9XHJcbiAgICBncm91cC5jb21wdXRlSGVpZ2h0ID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LmhlaWdodCAqIHNjYWxlICogTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuY29uc3RyYWluQm91bmRzID0gKHcsIGgpID0+IHtcclxuICAgICAgZ3JvdXAucmVtb3ZlKG1lc2gpO1xyXG4gICAgICBjb25zdCBzID0gTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIGNvbnN0IGhGYWN0b3IgPSBtZXNoLmdlb21ldHJ5LmxheW91dC5oZWlnaHQqcy9oO1xyXG4gICAgICBpZiAoaEZhY3RvciA+IDEpIHtcclxuICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIDAuOTUqIHN0ci5sZW5ndGgvaEZhY3RvcikgKyAnLi4uJztcclxuICAgICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICB9XHJcbiAgICAgIGdyb3VwLmFkZChtZXNoKTtcclxuICAgICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlTGFiZWwgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIG1lc2guZ2VvbWV0cnkudXBkYXRlKCBzdHIgKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiBUSFJFRS5WZXJ0ZXhDb2xvcnMgfSApO1xyXG5leHBvcnQgY29uc3QgTE9DQVRPUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG5leHBvcnQgY29uc3QgRk9MREVSID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDAwMDAwMCB9ICk7XHJcbmV4cG9ydCBjb25zdCBUT09MVElQID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDIwNTA4MCwgdHJhbnNwYXJlbnQ6IGZhbHNlLCBvcGFjaXR5OiAwLjggfSApO1xyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTbGlkZXIoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gMC4wLFxyXG4gIG1pbiA9IDAuMCwgbWF4ID0gMS4wLFxyXG4gIHN0ZXAgPSAwLjEsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaW5pdGlhbEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGFscGhhOiAxLjAsXHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgc3RlcDogc3RlcCxcclxuICAgIHVzZVN0ZXA6IHRydWUsXHJcbiAgICBwcmVjaXNpb246IDEsXHJcbiAgICBsaXN0ZW46IGZhbHNlLFxyXG4gICAgbWluOiBtaW4sXHJcbiAgICBtYXg6IG1heCxcclxuICAgIG9uQ2hhbmdlZENCOiB1bmRlZmluZWQsXHJcbiAgICBvbkZpbmlzaGVkQ2hhbmdlOiB1bmRlZmluZWQsXHJcbiAgICBwcmVzc2luZzogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIHN0YXRlLnN0ZXAgPSBnZXRJbXBsaWVkU3RlcCggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKTtcclxuICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInNsaWRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIGdyb3VwLnNldEhlaWdodCA9IGhlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZSggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgICBjb25zdCBTTElERVJfV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9ERVBUSCA9IGRlcHRoO1xyXG5cclxuICAgIC8vICBmaWxsZWQgdm9sdW1lXHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBTTElERVJfV0lEVEgsIFNMSURFUl9IRUlHSFQsIFNMSURFUl9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoU0xJREVSX1dJRFRIKjAuNSwwLDApO1xyXG4gICAgLy8gTGF5b3V0LmFsaWduTGVmdCggcmVjdCApO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5uYW1lID0gJ2hpdHNjYW5Wb2x1bWUnO1xyXG5cclxuICAgIC8vICBzbGlkZXJCRyB2b2x1bWVcclxuICAgIGNvbnN0IHNsaWRlckJHID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggc2xpZGVyQkcuZ2VvbWV0cnksIENvbG9ycy5TTElERVJfQkcgKTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEggKyBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG5cclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5ERUZBVUxUX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGZpbGxlZFZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgY29uc3QgZW5kTG9jYXRvciA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIDAuMDUsIDAuMDUsIDAuMDUsIDEsIDEsIDEgKSwgU2hhcmVkTWF0ZXJpYWxzLkxPQ0FUT1IgKTtcclxuICAgIGVuZExvY2F0b3IucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSDtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBlbmRMb2NhdG9yICk7XHJcbiAgICBlbmRMb2NhdG9yLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB2YWx1ZUxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gKyB3aWR0aCAqIDAuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoKjIuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzMjU7XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9TTElERVIgKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBwYW5lbC5uYW1lID0gJ3BhbmVsJztcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBzbGlkZXJCRywgdmFsdWVMYWJlbCwgY29udHJvbGxlcklEICk7XHJcblxyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApXHJcblxyXG4gICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgIHVwZGF0ZVNsaWRlcigpO1xyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbHVlTGFiZWwoIHZhbHVlICl7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggcm91bmRUb0RlY2ltYWwoIHN0YXRlLnZhbHVlLCBzdGF0ZS5wcmVjaXNpb24gKS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICAgIGlmKCBzdGF0ZS5wcmVzc2luZyApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLklOVEVSQUNUSU9OX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU2xpZGVyKCl7XHJcbiAgICAgIGZpbGxlZFZvbHVtZS5zY2FsZS54ID1cclxuICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgIE1hdGgubWF4KCBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICkgKiB3aWR0aCwgMC4wMDAwMDEgKSxcclxuICAgICAgICAgIHdpZHRoXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVPYmplY3QoIHZhbHVlICl7XHJcbiAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTdGF0ZUZyb21BbHBoYSggYWxwaGEgKXtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICk7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tQWxwaGEoIHN0YXRlLmFscGhhLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gZ2V0U3RlcHBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUuc3RlcCApO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0Q2xhbXBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKXtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21PYmplY3QoKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRnJvbU9iamVjdCgpe1xyXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICAgIHN0YXRlLm9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAuc3RlcCA9IGZ1bmN0aW9uKCBzdGVwICl7XHJcbiAgICAgIHN0YXRlLnN0ZXAgPSBzdGVwO1xyXG4gICAgICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApXHJcbiAgICAgIHN0YXRlLnVzZVN0ZXAgPSB0cnVlO1xyXG5cclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlUHJlc3MgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlSG9sZCApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZVJlbGVhc2UgKTtcclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVQcmVzcyggcCApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlSG9sZCggeyBwb2ludCB9ID0ge30gKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBmaWxsZWRWb2x1bWUudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgZW5kTG9jYXRvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG5cclxuICAgICAgY29uc3QgYSA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBmaWxsZWRWb2x1bWUubWF0cml4V29ybGQgKTtcclxuICAgICAgY29uc3QgYiA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBlbmRMb2NhdG9yLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHthLGJ9ICkgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICB1cGRhdGVPYmplY3QoIHN0YXRlLnZhbHVlICk7XHJcblxyXG4gICAgICBpZiggcHJldmlvdXNWYWx1ZSAhPT0gc3RhdGUudmFsdWUgJiYgc3RhdGUub25DaGFuZ2VkQ0IgKXtcclxuICAgICAgICBzdGF0ZS5vbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVJlbGVhc2UoKXtcclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgICB1cGRhdGVTbGlkZXIoKTtcclxuICAgICAgfVxyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWluID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWluID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWF4ID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWF4ID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfSAvLyAvc2V0SGVpZ2h0XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KCBpbml0aWFsSGVpZ2h0ICk7XHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCB0YSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRiID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdFRvQSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IGFUb0IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHNlZ21lbnQgKXtcclxuICB0YS5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG4gIHRiLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgY29uc3QgcHJvamVjdGVkID0gdGIucHJvamVjdE9uVmVjdG9yKCB0YSApO1xyXG5cclxuICB0VG9BLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgYVRvQi5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApLm5vcm1hbGl6ZSgpO1xyXG5cclxuICBjb25zdCBzaWRlID0gdFRvQS5ub3JtYWxpemUoKS5kb3QoIGFUb0IgKSA+PSAwID8gMSA6IC0xO1xyXG5cclxuICBjb25zdCBsZW5ndGggPSBzZWdtZW50LmEuZGlzdGFuY2VUbyggc2VnbWVudC5iICkgKiBzaWRlO1xyXG5cclxuICBsZXQgYWxwaGEgPSBwcm9qZWN0ZWQubGVuZ3RoKCkgLyBsZW5ndGg7XHJcbiAgaWYoIGFscGhhID4gMS4wICl7XHJcbiAgICBhbHBoYSA9IDEuMDtcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMC4wICl7XHJcbiAgICBhbHBoYSA9IDAuMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsZXJwKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIHJldHVybiAoMS12YWx1ZSkqbWluICsgdmFsdWUqbWF4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXBfcmFuZ2UodmFsdWUsIGxvdzEsIGhpZ2gxLCBsb3cyLCBoaWdoMikge1xyXG4gICAgcmV0dXJuIGxvdzIgKyAoaGlnaDIgLSBsb3cyKSAqICh2YWx1ZSAtIGxvdzEpIC8gKGhpZ2gxIC0gbG93MSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRBbHBoYSggYWxwaGEgKXtcclxuICBpZiggYWxwaGEgPiAxICl7XHJcbiAgICByZXR1cm4gMVxyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwICl7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIGlmKCB2YWx1ZSA8IG1pbiApe1xyXG4gICAgcmV0dXJuIG1pbjtcclxuICB9XHJcbiAgaWYoIHZhbHVlID4gbWF4ICl7XHJcbiAgICByZXR1cm4gbWF4O1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEltcGxpZWRTdGVwKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICAvL1BKVDogd2hhdCB3b3VsZCB3ZSBsaWtlIHN0ZXAgdG8gbG9vayBsaWtlP1xyXG4gIC8vU29tZXRoaW5nIHRoYXQgaGFzIGFib3V0IHRoZSBvcmRlciBvZiBtYWduaXR1ZGUsIGFuZCBsb29rcyBuaWNlIGluIGJhc2UgMTA/XHJcbiAgY29uc3QgciA9IG1heC1taW47XHJcbiAgbGV0IHN0ZXAgPSByLzEwMDsgLy93aGF0IGlzIHRoZSByYXRpbyBvZiBudW1iZXIgb2YgZGVjaW1hbHMgdG8gb3JkZXIgb2YgbWFnbml0dWRlP1xyXG4gIFxyXG4gIHJldHVybiBzdGVwO1xyXG5cclxuICAvLyBpZiggdmFsdWUgPT09IDAgKXtcclxuICAvLyAgIHJldHVybiAxOyAvLyBXaGF0IGFyZSB3ZSwgcHN5Y2hpY3M/IC8vPDw8PC0tLSBubywgc28gd2Ugc2hvdWxkIGJhc2UgaW1wbGllZFN0ZXAgb24gbWluL21heCwgbm90IHZhbHVlXHJcbiAgLy8gfSBlbHNlIHtcclxuICAvLyAgIC8vIEhleSBEb3VnLCBjaGVjayB0aGlzIG91dC5cclxuICAvLyAgIHJldHVybiBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihNYXRoLmxvZyhNYXRoLmFicyh2YWx1ZSkpL01hdGguTE4xMCkpLzEwO1xyXG4gIC8vIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tQWxwaGEoIGFscGhhLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIGFscGhhLCAwLjAsIDEuMCwgbWluLCBtYXggKVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBbHBoYUZyb21WYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggdmFsdWUsIG1pbiwgbWF4LCAwLjAsIDEuMCApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGVwcGVkVmFsdWUoIHZhbHVlLCBzdGVwICl7XHJcbiAgaWYoIHZhbHVlICUgc3RlcCAhPSAwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZCggdmFsdWUgLyBzdGVwICkgKiBzdGVwO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG51bURlY2ltYWxzKHgpIHtcclxuICB4ID0geC50b1N0cmluZygpO1xyXG4gIGlmICh4LmluZGV4T2YoJy4nKSA+IC0xKSB7XHJcbiAgICByZXR1cm4geC5sZW5ndGggLSB4LmluZGV4T2YoJy4nKSAtIDE7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcm91bmRUb0RlY2ltYWwodmFsdWUsIGRlY2ltYWxzKSB7XHJcbiAgaWYgKE1hdGguYWJzKHZhbHVlKSA8IDAuMDEgJiYgdmFsdWUgIT09IDApIHJldHVybiB2YWx1ZS50b0V4cG9uZW50aWFsKDMpO1xyXG4gIGNvbnN0IHRlblRvID0gTWF0aC5wb3coMTAsIGRlY2ltYWxzKTtcclxuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIHRlblRvKSAvIHRlblRvO1xyXG59IiwiLyoqXHJcbiAqIFdoZW4gdGhlIHRleHRib3ggaXMgZm9jdXNzZWQsICBhIGtleWJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLi4uXHJcbiAqIFRoZXJlIHNob3VsZCBhbHNvIGJlIGEgd2F5IG9mIGRpc21pc3NpbmcgaXQgbGF0ZXIuICBJdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRvXHJcbiAqIHByZXZlbnQgbXVsdGlwbGUga2V5Ym9hcmRzIGJlaW5nIG1hZGUgc2ltdWx0YW5lb3VzbHk/XHJcbiAqIFxyXG4gKiBJbiBvcmRlciB0byBtYWtlIGl0IGFwcGVhciwgaXQgY2FuIGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgdGhlIHRleGJveCBub2RlIGl0c2VsZi4uLlxyXG4gKiBUaGlzJ2xsIG1lYW4gdGhhdCBpdCBnZXRzIGRyYWdnZWQgYXJvdW5kIGJ5IHRoZSBwYXJlbnQgR1VJIGFzIGl0IG1vdmVzLi4uLlxyXG4gKiBNYWtlcyBmb3IgcmVsYXRpdmVseSBjbGVhbiwgc2ltcGxlIGltcGxlbWVudGF0aW9uIGF0IGxlYXN0LlxyXG4gKiBBdCB0aGUgbW9tZW50LCBrZXlib2FyZCBwb3NpdGlvbmluZyBpcyBtZXNzZWQgdXAgYnkgdGhpcyBhcnJhbmdlbWVudC5cclxuICogUmVtb3ZpbmcgZ3JhYmJlciBtYWtlcyBpdCBsZXNzIGxpa2VseSBhIHVzZXIgd2lsbCBkbyB0aGlzLCBidXQgbWlnaHQgYmUgd29ydGggZml4aW5nIHRoZSBiYXNpYyBidWcuXHJcbiAqIFxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIEdVSSBmcm9tICcuL2luZGV4JztcclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRCb3goe1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSkge1xyXG4gIC8vIGJpZyBvbGQgY29weSAvIHBhc3RlIGZyb20gYnV0dG9uLmpzLiBNaWdodCB0cnkgdG8gZmFjdG9yIG91dCBzb21lIG9mIHRoaXMgY29tbW9uIGNvZGUuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGJveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCIvKlxyXG4gKlx0QGF1dGhvciB6ejg1IC8gaHR0cDovL3R3aXR0ZXIuY29tL2JsdXJzcGxpbmUgLyBodHRwOi8vd3d3LmxhYjRnYW1lcy5uZXQveno4NS9ibG9nXHJcbiAqXHRAYXV0aG9yIGNlbnRlcmlvbndhcmUgLyBodHRwOi8vd3d3LmNlbnRlcmlvbndhcmUuY29tXHJcbiAqXHJcbiAqXHRTdWJkaXZpc2lvbiBHZW9tZXRyeSBNb2RpZmllclxyXG4gKlx0XHR1c2luZyBMb29wIFN1YmRpdmlzaW9uIFNjaGVtZVxyXG4gKlxyXG4gKlx0UmVmZXJlbmNlczpcclxuICpcdFx0aHR0cDovL2dyYXBoaWNzLnN0YW5mb3JkLmVkdS9+bWRmaXNoZXIvc3ViZGl2aXNpb24uaHRtbFxyXG4gKlx0XHRodHRwOi8vd3d3LmhvbG1lczNkLm5ldC9ncmFwaGljcy9zdWJkaXZpc2lvbi9cclxuICpcdFx0aHR0cDovL3d3dy5jcy5ydXRnZXJzLmVkdS9+ZGVjYXJsby9yZWFkaW5ncy9zdWJkaXYtc2cwMGMucGRmXHJcbiAqXHJcbiAqXHRLbm93biBJc3N1ZXM6XHJcbiAqXHRcdC0gY3VycmVudGx5IGRvZXNuJ3QgaGFuZGxlIFwiU2hhcnAgRWRnZXNcIlxyXG4gKi9cclxuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIgPSBmdW5jdGlvbiAoIHN1YmRpdmlzaW9ucyApIHtcclxuXHJcblx0dGhpcy5zdWJkaXZpc2lvbnMgPSAoIHN1YmRpdmlzaW9ucyA9PT0gdW5kZWZpbmVkICkgPyAxIDogc3ViZGl2aXNpb25zO1xyXG5cclxufTtcclxuXHJcbi8vIEFwcGxpZXMgdGhlIFwibW9kaWZ5XCIgcGF0dGVyblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5tb2RpZnkgPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkge1xyXG5cclxuXHR2YXIgcmVwZWF0cyA9IHRoaXMuc3ViZGl2aXNpb25zO1xyXG5cclxuXHR3aGlsZSAoIHJlcGVhdHMgLS0gPiAwICkge1xyXG5cclxuXHRcdHRoaXMuc21vb3RoKCBnZW9tZXRyeSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGdlb21ldHJ5LmNvbXB1dGVGYWNlTm9ybWFscygpO1xyXG5cdGdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XHJcblxyXG59O1xyXG5cclxuKCBmdW5jdGlvbigpIHtcclxuXHJcblx0Ly8gU29tZSBjb25zdGFudHNcclxuXHR2YXIgV0FSTklOR1MgPSAhIHRydWU7IC8vIFNldCB0byB0cnVlIGZvciBkZXZlbG9wbWVudFxyXG5cdHZhciBBQkMgPSBbICdhJywgJ2InLCAnYycgXTtcclxuXHJcblxyXG5cdGZ1bmN0aW9uIGdldEVkZ2UoIGEsIGIsIG1hcCApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHRyZXR1cm4gbWFwWyBrZXkgXTtcclxuXHJcblx0fVxyXG5cclxuXHJcblx0ZnVuY3Rpb24gcHJvY2Vzc0VkZ2UoIGEsIGIsIHZlcnRpY2VzLCBtYXAsIGZhY2UsIG1ldGFWZXJ0aWNlcyApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHR2YXIgZWRnZTtcclxuXHJcblx0XHRpZiAoIGtleSBpbiBtYXAgKSB7XHJcblxyXG5cdFx0XHRlZGdlID0gbWFwWyBrZXkgXTtcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0dmFyIHZlcnRleEEgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhBIF07XHJcblx0XHRcdHZhciB2ZXJ0ZXhCID0gdmVydGljZXNbIHZlcnRleEluZGV4QiBdO1xyXG5cclxuXHRcdFx0ZWRnZSA9IHtcclxuXHJcblx0XHRcdFx0YTogdmVydGV4QSwgLy8gcG9pbnRlciByZWZlcmVuY2VcclxuXHRcdFx0XHRiOiB2ZXJ0ZXhCLFxyXG5cdFx0XHRcdG5ld0VkZ2U6IG51bGwsXHJcblx0XHRcdFx0Ly8gYUluZGV4OiBhLCAvLyBudW1iZXJlZCByZWZlcmVuY2VcclxuXHRcdFx0XHQvLyBiSW5kZXg6IGIsXHJcblx0XHRcdFx0ZmFjZXM6IFtdIC8vIHBvaW50ZXJzIHRvIGZhY2VcclxuXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRtYXBbIGtleSBdID0gZWRnZTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0ZWRnZS5mYWNlcy5wdXNoKCBmYWNlICk7XHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzWyBhIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cdFx0bWV0YVZlcnRpY2VzWyBiIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBnZW5lcmF0ZUxvb2t1cHMoIHZlcnRpY2VzLCBmYWNlcywgbWV0YVZlcnRpY2VzLCBlZGdlcyApIHtcclxuXHJcblx0XHR2YXIgaSwgaWwsIGZhY2UsIGVkZ2U7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gdmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRtZXRhVmVydGljZXNbIGkgXSA9IHsgZWRnZXM6IFtdIH07XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IGZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IGZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5hLCBmYWNlLmIsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmIsIGZhY2UuYywgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYywgZmFjZS5hLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdGYWNlKCBuZXdGYWNlcywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdGYWNlcy5wdXNoKCBuZXcgVEhSRUUuRmFjZTMoIGEsIGIsIGMgKSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG1pZHBvaW50KCBhLCBiICkge1xyXG5cclxuXHRcdHJldHVybiAoIE1hdGguYWJzKCBiIC0gYSApIC8gMiApICsgTWF0aC5taW4oIGEsIGIgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdVdiggbmV3VXZzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld1V2cy5wdXNoKCBbIGEuY2xvbmUoKSwgYi5jbG9uZSgpLCBjLmNsb25lKCkgXSApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cdC8vIFBlcmZvcm1zIG9uZSBpdGVyYXRpb24gb2YgU3ViZGl2aXNpb25cclxuXHRUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5zbW9vdGggPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkgeyByZXR1cm47IC8vIHNqcHQgVEVNUCBUT0RPXHJcblxyXG5cdFx0dmFyIHRtcCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0dmFyIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgb2xkVXZzO1xyXG5cdFx0dmFyIG5ld1ZlcnRpY2VzLCBuZXdGYWNlcywgbmV3VVZzID0gW107XHJcblxyXG5cdFx0dmFyIG4sIGwsIGksIGlsLCBqLCBrO1xyXG5cdFx0dmFyIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXM7XHJcblxyXG5cdFx0Ly8gbmV3IHN0dWZmLlxyXG5cdFx0dmFyIHNvdXJjZUVkZ2VzLCBuZXdFZGdlVmVydGljZXMsIG5ld1NvdXJjZVZlcnRpY2VzO1xyXG5cclxuXHRcdG9sZFZlcnRpY2VzID0gZ2VvbWV0cnkudmVydGljZXM7IC8vIHsgeCwgeSwgen1cclxuXHRcdG9sZEZhY2VzID0gZ2VvbWV0cnkuZmFjZXM7IC8vIHsgYTogb2xkVmVydGV4MSwgYjogb2xkVmVydGV4MiwgYzogb2xkVmVydGV4MyB9XHJcblx0XHRvbGRVdnMgPSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF07XHJcblxyXG5cdFx0dmFyIGhhc1V2cyA9IG9sZFV2cyAhPT0gdW5kZWZpbmVkICYmIG9sZFV2cy5sZW5ndGggPiAwO1xyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKiBTdGVwIDA6IFByZXByb2Nlc3MgR2VvbWV0cnkgdG8gR2VuZXJhdGUgZWRnZXMgTG9va3VwXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzID0gbmV3IEFycmF5KCBvbGRWZXJ0aWNlcy5sZW5ndGggKTtcclxuXHRcdHNvdXJjZUVkZ2VzID0ge307IC8vIEVkZ2UgPT4geyBvbGRWZXJ0ZXgxLCBvbGRWZXJ0ZXgyLCBmYWNlc1tdICB9XHJcblxyXG5cdFx0Z2VuZXJhdGVMb29rdXBzKCBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXMgKTtcclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDEuXHJcblx0XHQgKlx0Rm9yIGVhY2ggZWRnZSwgY3JlYXRlIGEgbmV3IEVkZ2UgVmVydGV4LFxyXG5cdFx0ICpcdHRoZW4gcG9zaXRpb24gaXQuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3RWRnZVZlcnRpY2VzID0gW107XHJcblx0XHR2YXIgb3RoZXIsIGN1cnJlbnRFZGdlLCBuZXdFZGdlLCBmYWNlO1xyXG5cdFx0dmFyIGVkZ2VWZXJ0ZXhXZWlnaHQsIGFkamFjZW50VmVydGV4V2VpZ2h0LCBjb25uZWN0ZWRGYWNlcztcclxuXHJcblx0XHRmb3IgKCBpIGluIHNvdXJjZUVkZ2VzICkge1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UgPSBzb3VyY2VFZGdlc1sgaSBdO1xyXG5cdFx0XHRuZXdFZGdlID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAzIC8gODtcclxuXHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdGNvbm5lY3RlZEZhY2VzID0gY3VycmVudEVkZ2UuZmFjZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgaG93IG1hbnkgbGlua2VkIGZhY2VzLiAyIHNob3VsZCBiZSBjb3JyZWN0LlxyXG5cdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGlmIGxlbmd0aCBpcyBub3QgMiwgaGFuZGxlIGNvbmRpdGlvblxyXG5cdFx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAwLjU7XHJcblx0XHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ1N1YmRpdmlzaW9uIE1vZGlmaWVyOiBOdW1iZXIgb2YgY29ubmVjdGVkIGZhY2VzICE9IDIsIGlzOiAnLCBjb25uZWN0ZWRGYWNlcywgY3VycmVudEVkZ2UgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3RWRnZS5hZGRWZWN0b3JzKCBjdXJyZW50RWRnZS5hLCBjdXJyZW50RWRnZS5iICkubXVsdGlwbHlTY2FsYXIoIGVkZ2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgY29ubmVjdGVkRmFjZXM7IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGZhY2UgPSBjdXJyZW50RWRnZS5mYWNlc1sgaiBdO1xyXG5cclxuXHRcdFx0XHRmb3IgKCBrID0gMDsgayA8IDM7IGsgKysgKSB7XHJcblxyXG5cdFx0XHRcdFx0b3RoZXIgPSBvbGRWZXJ0aWNlc1sgZmFjZVsgQUJDWyBrIF0gXSBdO1xyXG5cdFx0XHRcdFx0aWYgKCBvdGhlciAhPT0gY3VycmVudEVkZ2UuYSAmJiBvdGhlciAhPT0gY3VycmVudEVkZ2UuYiApIGJyZWFrO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGFkamFjZW50VmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld0VkZ2UuYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlLm5ld0VkZ2UgPSBuZXdFZGdlVmVydGljZXMubGVuZ3RoO1xyXG5cdFx0XHRuZXdFZGdlVmVydGljZXMucHVzaCggbmV3RWRnZSApO1xyXG5cclxuXHRcdFx0Ly8gY29uc29sZS5sb2coY3VycmVudEVkZ2UsIG5ld0VkZ2UpO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMi5cclxuXHRcdCAqXHRSZXBvc2l0aW9uIGVhY2ggc291cmNlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdHZhciBiZXRhLCBzb3VyY2VWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQ7XHJcblx0XHR2YXIgY29ubmVjdGluZ0VkZ2UsIGNvbm5lY3RpbmdFZGdlcywgb2xkVmVydGV4LCBuZXdTb3VyY2VWZXJ0ZXg7XHJcblx0XHRuZXdTb3VyY2VWZXJ0aWNlcyA9IFtdO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZFZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0b2xkVmVydGV4ID0gb2xkVmVydGljZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgYWxsIGNvbm5lY3RpbmcgZWRnZXMgKHVzaW5nIGxvb2t1cFRhYmxlKVxyXG5cdFx0XHRjb25uZWN0aW5nRWRnZXMgPSBtZXRhVmVydGljZXNbIGkgXS5lZGdlcztcclxuXHRcdFx0biA9IGNvbm5lY3RpbmdFZGdlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIG4gPT0gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAxNjtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoIG4gPiAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvICggOCAqIG4gKTsgLy8gV2FycmVuJ3MgbW9kaWZpZWQgZm9ybXVsYVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTG9vcCdzIG9yaWdpbmFsIGJldGEgZm9ybXVsYVxyXG5cdFx0XHQvLyBiZXRhID0gMSAvIG4gKiAoIDUvOCAtIE1hdGgucG93KCAzLzggKyAxLzQgKiBNYXRoLmNvcyggMiAqIE1hdGguIFBJIC8gbiApLCAyKSApO1xyXG5cclxuXHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMSAtIG4gKiBiZXRhO1xyXG5cdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gYmV0YTtcclxuXHJcblx0XHRcdGlmICggbiA8PSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzXHJcblx0XHRcdFx0Ly8gY29uc29sZS53YXJuKCdjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzJyk7XHJcblxyXG5cdFx0XHRcdGlmICggbiA9PSAyICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcyIGNvbm5lY3RpbmcgZWRnZXMnLCBjb25uZWN0aW5nRWRnZXMgKTtcclxuXHRcdFx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDMgLyA0O1xyXG5cdFx0XHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0XHRcdC8vIHNvdXJjZVZlcnRleFdlaWdodCA9IDE7XHJcblx0XHRcdFx0XHQvLyBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdvbmx5IDEgY29ubmVjdGluZyBlZGdlJyApO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDAgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzAgY29ubmVjdGluZyBlZGdlcycgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGV4ID0gb2xkVmVydGV4LmNsb25lKCkubXVsdGlwbHlTY2FsYXIoIHNvdXJjZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBuOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRjb25uZWN0aW5nRWRnZSA9IGNvbm5lY3RpbmdFZGdlc1sgaiBdO1xyXG5cdFx0XHRcdG90aGVyID0gY29ubmVjdGluZ0VkZ2UuYSAhPT0gb2xkVmVydGV4ID8gY29ubmVjdGluZ0VkZ2UuYSA6IGNvbm5lY3RpbmdFZGdlLmI7XHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggY29ubmVjdGluZ1ZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXguYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRpY2VzLnB1c2goIG5ld1NvdXJjZVZlcnRleCApO1xyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDMuXHJcblx0XHQgKlx0R2VuZXJhdGUgRmFjZXMgYmV0d2VlbiBzb3VyY2UgdmVydGljZXNcclxuXHRcdCAqXHRhbmQgZWRnZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdWZXJ0aWNlcyA9IG5ld1NvdXJjZVZlcnRpY2VzLmNvbmNhdCggbmV3RWRnZVZlcnRpY2VzICk7XHJcblx0XHR2YXIgc2wgPSBuZXdTb3VyY2VWZXJ0aWNlcy5sZW5ndGgsIGVkZ2UxLCBlZGdlMiwgZWRnZTM7XHJcblx0XHRuZXdGYWNlcyA9IFtdO1xyXG5cclxuXHRcdHZhciB1diwgeDAsIHgxLCB4MjtcclxuXHRcdHZhciB4MyA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDQgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg1ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRGYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBvbGRGYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCB0aGUgMyBuZXcgZWRnZXMgdmVydGV4IG9mIGVhY2ggb2xkIGZhY2VcclxuXHJcblx0XHRcdGVkZ2UxID0gZ2V0RWRnZSggZmFjZS5hLCBmYWNlLmIsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMiA9IGdldEVkZ2UoIGZhY2UuYiwgZmFjZS5jLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTMgPSBnZXRFZGdlKCBmYWNlLmMsIGZhY2UuYSwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBmYWNlcy5cclxuXHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBlZGdlMSwgZWRnZTIsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmEsIGVkZ2UxLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5iLCBlZGdlMiwgZWRnZTEgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYywgZWRnZTMsIGVkZ2UyICk7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBuZXcgdXYnc1xyXG5cclxuXHRcdFx0aWYgKCBoYXNVdnMgKSB7XHJcblxyXG5cdFx0XHRcdHV2ID0gb2xkVXZzWyBpIF07XHJcblxyXG5cdFx0XHRcdHgwID0gdXZbIDAgXTtcclxuXHRcdFx0XHR4MSA9IHV2WyAxIF07XHJcblx0XHRcdFx0eDIgPSB1dlsgMiBdO1xyXG5cclxuXHRcdFx0XHR4My5zZXQoIG1pZHBvaW50KCB4MC54LCB4MS54ICksIG1pZHBvaW50KCB4MC55LCB4MS55ICkgKTtcclxuXHRcdFx0XHR4NC5zZXQoIG1pZHBvaW50KCB4MS54LCB4Mi54ICksIG1pZHBvaW50KCB4MS55LCB4Mi55ICkgKTtcclxuXHRcdFx0XHR4NS5zZXQoIG1pZHBvaW50KCB4MC54LCB4Mi54ICksIG1pZHBvaW50KCB4MC55LCB4Mi55ICkgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDMsIHg0LCB4NSApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgwLCB4MywgeDUgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDEsIHg0LCB4MyApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgyLCB4NSwgeDQgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3ZlcndyaXRlIG9sZCBhcnJheXNcclxuXHRcdGdlb21ldHJ5LnZlcnRpY2VzID0gbmV3VmVydGljZXM7XHJcblx0XHRnZW9tZXRyeS5mYWNlcyA9IG5ld0ZhY2VzO1xyXG5cdFx0aWYgKCBoYXNVdnMgKSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF0gPSBuZXdVVnM7XHJcblxyXG5cdFx0Ly8gY29uc29sZS5sb2coJ2RvbmUnKTtcclxuXHJcblx0fTtcclxuXHJcbn0gKSgpO1xyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgQmFzZS5jYWxsKHRoaXMpXG5cbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIHRoZXNlIGFzIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgc3Vic2VxdWVudFxuICAvLyBjYWxscyB0byB1cGRhdGUoKVxuICB0aGlzLl9vcHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX29wdCwgb3B0KVxuXG4gIGlmICghb3B0LmZvbnQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgYSB7IGZvbnQgfSBpbiBvcHRpb25zJylcbiAgfVxuXG4gIHRoaXMubGF5b3V0ID0gY3JlYXRlTGF5b3V0KG9wdClcblxuICAvLyBnZXQgdmVjMiB0ZXhjb29yZHNcbiAgdmFyIGZsaXBZID0gb3B0LmZsaXBZICE9PSBmYWxzZVxuXG4gIC8vIHRoZSBkZXNpcmVkIEJNRm9udCBkYXRhXG4gIHZhciBmb250ID0gb3B0LmZvbnRcblxuICAvLyBkZXRlcm1pbmUgdGV4dHVyZSBzaXplIGZyb20gZm9udCBmaWxlXG4gIHZhciB0ZXhXaWR0aCA9IGZvbnQuY29tbW9uLnNjYWxlV1xuICB2YXIgdGV4SGVpZ2h0ID0gZm9udC5jb21tb24uc2NhbGVIXG5cbiAgLy8gZ2V0IHZpc2libGUgZ2x5cGhzXG4gIHZhciBnbHlwaHMgPSB0aGlzLmxheW91dC5nbHlwaHMuZmlsdGVyKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgcmV0dXJuIGJpdG1hcC53aWR0aCAqIGJpdG1hcC5oZWlnaHQgPiAwXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB2aXNpYmxlIGdseXBocyBmb3IgY29udmVuaWVuY2VcbiAgdGhpcy52aXNpYmxlR2x5cGhzID0gZ2x5cGhzXG5cbiAgLy8gZ2V0IGNvbW1vbiB2ZXJ0ZXggZGF0YVxuICB2YXIgcG9zaXRpb25zID0gdmVydGljZXMucG9zaXRpb25zKGdseXBocylcbiAgdmFyIHV2cyA9IHZlcnRpY2VzLnV2cyhnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKVxuICB2YXIgaW5kaWNlcyA9IGNyZWF0ZUluZGljZXMoW10sIHtcbiAgICBjbG9ja3dpc2U6IHRydWUsXG4gICAgdHlwZTogJ3VpbnQxNicsXG4gICAgY291bnQ6IGdseXBocy5sZW5ndGhcbiAgfSlcblxuICAvLyB1cGRhdGUgdmVydGV4IGRhdGFcbiAgdGhpcy5zZXRJbmRleChpbmRpY2VzKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9ucywgMikpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSlcblxuICAvLyB1cGRhdGUgbXVsdGlwYWdlIGRhdGFcbiAgaWYgKCFvcHQubXVsdGlwYWdlICYmICdwYWdlJyBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAvLyBkaXNhYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGFnZScpXG4gIH0gZWxzZSBpZiAob3B0Lm11bHRpcGFnZSkge1xuICAgIC8vIGVuYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdmFyIHBhZ2VzID0gdmVydGljZXMucGFnZXMoZ2x5cGhzKVxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwYWdlJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwYWdlcywgMSkpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdTcGhlcmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nU3BoZXJlID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZSA9IG5ldyBUSFJFRS5TcGhlcmUoKVxuICB9XG5cbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMgPSAwXG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXIuc2V0KDAsIDAsIDApXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZVNwaGVyZShwb3NpdGlvbnMsIHRoaXMuYm91bmRpbmdTcGhlcmUpXG4gIGlmIChpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogJyArXG4gICAgICAnQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICcgK1xuICAgICAgJ1wicG9zaXRpb25cIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ0JveCA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpXG4gIH1cblxuICB2YXIgYmJveCA9IHRoaXMuYm91bmRpbmdCb3hcbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgYmJveC5tYWtlRW1wdHkoKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVCb3gocG9zaXRpb25zLCBiYm94KVxufVxuIiwidmFyIGl0ZW1TaXplID0gMlxudmFyIGJveCA9IHsgbWluOiBbMCwgMF0sIG1heDogWzAsIDBdIH1cblxuZnVuY3Rpb24gYm91bmRzIChwb3NpdGlvbnMpIHtcbiAgdmFyIGNvdW50ID0gcG9zaXRpb25zLmxlbmd0aCAvIGl0ZW1TaXplXG4gIGJveC5taW5bMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1pblsxXSA9IHBvc2l0aW9uc1sxXVxuICBib3gubWF4WzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5tYXhbMV0gPSBwb3NpdGlvbnNbMV1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICB2YXIgeCA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAwXVxuICAgIHZhciB5ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDFdXG4gICAgYm94Lm1pblswXSA9IE1hdGgubWluKHgsIGJveC5taW5bMF0pXG4gICAgYm94Lm1pblsxXSA9IE1hdGgubWluKHksIGJveC5taW5bMV0pXG4gICAgYm94Lm1heFswXSA9IE1hdGgubWF4KHgsIGJveC5tYXhbMF0pXG4gICAgYm94Lm1heFsxXSA9IE1hdGgubWF4KHksIGJveC5tYXhbMV0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZUJveCA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICBvdXRwdXQubWluLnNldChib3gubWluWzBdLCBib3gubWluWzFdLCAwKVxuICBvdXRwdXQubWF4LnNldChib3gubWF4WzBdLCBib3gubWF4WzFdLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlU3BoZXJlID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIHZhciBtaW5YID0gYm94Lm1pblswXVxuICB2YXIgbWluWSA9IGJveC5taW5bMV1cbiAgdmFyIG1heFggPSBib3gubWF4WzBdXG4gIHZhciBtYXhZID0gYm94Lm1heFsxXVxuICB2YXIgd2lkdGggPSBtYXhYIC0gbWluWFxuICB2YXIgaGVpZ2h0ID0gbWF4WSAtIG1pbllcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KVxuICBvdXRwdXQuY2VudGVyLnNldChtaW5YICsgd2lkdGggLyAyLCBtaW5ZICsgaGVpZ2h0IC8gMiwgMClcbiAgb3V0cHV0LnJhZGl1cyA9IGxlbmd0aCAvIDJcbn1cbiIsIm1vZHVsZS5leHBvcnRzLnBhZ2VzID0gZnVuY3Rpb24gcGFnZXMgKGdseXBocykge1xuICB2YXIgcGFnZXMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMSlcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBpZCA9IGdseXBoLmRhdGEucGFnZSB8fCAwXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gIH0pXG4gIHJldHVybiBwYWdlc1xufVxuXG5tb2R1bGUuZXhwb3J0cy51dnMgPSBmdW5jdGlvbiB1dnMgKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpIHtcbiAgdmFyIHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICB2YXIgYncgPSAoYml0bWFwLnggKyBiaXRtYXAud2lkdGgpXG4gICAgdmFyIGJoID0gKGJpdG1hcC55ICsgYml0bWFwLmhlaWdodClcblxuICAgIC8vIHRvcCBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHUwID0gYml0bWFwLnggLyB0ZXhXaWR0aFxuICAgIHZhciB2MSA9IGJpdG1hcC55IC8gdGV4SGVpZ2h0XG4gICAgdmFyIHUxID0gYncgLyB0ZXhXaWR0aFxuICAgIHZhciB2MCA9IGJoIC8gdGV4SGVpZ2h0XG5cbiAgICBpZiAoZmxpcFkpIHtcbiAgICAgIHYxID0gKHRleEhlaWdodCAtIGJpdG1hcC55KSAvIHRleEhlaWdodFxuICAgICAgdjAgPSAodGV4SGVpZ2h0IC0gYmgpIC8gdGV4SGVpZ2h0XG4gICAgfVxuXG4gICAgLy8gQkxcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MVxuICAgIC8vIFRMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBUUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gQlJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MVxuICB9KVxuICByZXR1cm4gdXZzXG59XG5cbm1vZHVsZS5leHBvcnRzLnBvc2l0aW9ucyA9IGZ1bmN0aW9uIHBvc2l0aW9ucyAoZ2x5cGhzKSB7XG4gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG5cbiAgICAvLyBib3R0b20gbGVmdCBwb3NpdGlvblxuICAgIHZhciB4ID0gZ2x5cGgucG9zaXRpb25bMF0gKyBiaXRtYXAueG9mZnNldFxuICAgIHZhciB5ID0gZ2x5cGgucG9zaXRpb25bMV0gKyBiaXRtYXAueW9mZnNldFxuXG4gICAgLy8gcXVhZCBzaXplXG4gICAgdmFyIHcgPSBiaXRtYXAud2lkdGhcbiAgICB2YXIgaCA9IGJpdG1hcC5oZWlnaHRcblxuICAgIC8vIEJMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gICAgLy8gVExcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gVFJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIEJSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICB9KVxuICByZXR1cm4gcG9zaXRpb25zXG59XG4iLCJ2YXIgbmV3bGluZSA9IC9cXG4vXG52YXIgbmV3bGluZUNoYXIgPSAnXFxuJ1xudmFyIHdoaXRlc3BhY2UgPSAvXFxzL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHRleHQsIG9wdCkge1xuICAgIHZhciBsaW5lcyA9IG1vZHVsZS5leHBvcnRzLmxpbmVzKHRleHQsIG9wdClcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKGxpbmUuc3RhcnQsIGxpbmUuZW5kKVxuICAgIH0pLmpvaW4oJ1xcbicpXG59XG5cbm1vZHVsZS5leHBvcnRzLmxpbmVzID0gZnVuY3Rpb24gd29yZHdyYXAodGV4dCwgb3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgLy96ZXJvIHdpZHRoIHJlc3VsdHMgaW4gbm90aGluZyB2aXNpYmxlXG4gICAgaWYgKG9wdC53aWR0aCA9PT0gMCAmJiBvcHQubW9kZSAhPT0gJ25vd3JhcCcpIFxuICAgICAgICByZXR1cm4gW11cblxuICAgIHRleHQgPSB0ZXh0fHwnJ1xuICAgIHZhciB3aWR0aCA9IHR5cGVvZiBvcHQud2lkdGggPT09ICdudW1iZXInID8gb3B0LndpZHRoIDogTnVtYmVyLk1BWF9WQUxVRVxuICAgIHZhciBzdGFydCA9IE1hdGgubWF4KDAsIG9wdC5zdGFydHx8MClcbiAgICB2YXIgZW5kID0gdHlwZW9mIG9wdC5lbmQgPT09ICdudW1iZXInID8gb3B0LmVuZCA6IHRleHQubGVuZ3RoXG4gICAgdmFyIG1vZGUgPSBvcHQubW9kZVxuXG4gICAgdmFyIG1lYXN1cmUgPSBvcHQubWVhc3VyZSB8fCBtb25vc3BhY2VcbiAgICBpZiAobW9kZSA9PT0gJ3ByZScpXG4gICAgICAgIHJldHVybiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpXG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKVxufVxuXG5mdW5jdGlvbiBpZHhPZih0ZXh0LCBjaHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKGNociwgc3RhcnQpXG4gICAgaWYgKGlkeCA9PT0gLTEgfHwgaWR4ID4gZW5kKVxuICAgICAgICByZXR1cm4gZW5kXG4gICAgcmV0dXJuIGlkeFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hyKSB7XG4gICAgcmV0dXJuIHdoaXRlc3BhY2UudGVzdChjaHIpXG59XG5cbmZ1bmN0aW9uIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBsaW5lcyA9IFtdXG4gICAgdmFyIGxpbmVTdGFydCA9IHN0YXJ0XG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQgJiYgaTx0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaHIgPSB0ZXh0LmNoYXJBdChpKVxuICAgICAgICB2YXIgaXNOZXdsaW5lID0gbmV3bGluZS50ZXN0KGNocilcblxuICAgICAgICAvL0lmIHdlJ3ZlIHJlYWNoZWQgYSBuZXdsaW5lLCB0aGVuIHN0ZXAgZG93biBhIGxpbmVcbiAgICAgICAgLy9PciBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBFT0ZcbiAgICAgICAgaWYgKGlzTmV3bGluZSB8fCBpPT09ZW5kLTEpIHtcbiAgICAgICAgICAgIHZhciBsaW5lRW5kID0gaXNOZXdsaW5lID8gaSA6IGkrMVxuICAgICAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBsaW5lU3RhcnQsIGxpbmVFbmQsIHdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChtZWFzdXJlZClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGluZVN0YXJ0ID0gaSsxXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSkge1xuICAgIC8vQSBncmVlZHkgd29yZCB3cmFwcGVyIGJhc2VkIG9uIExpYkdEWCBhbGdvcml0aG1cbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9saWJnZHgvbGliZ2R4L2Jsb2IvbWFzdGVyL2dkeC9zcmMvY29tL2JhZGxvZ2ljL2dkeC9ncmFwaGljcy9nMmQvQml0bWFwRm9udENhY2hlLmphdmFcbiAgICB2YXIgbGluZXMgPSBbXVxuXG4gICAgdmFyIHRlc3RXaWR0aCA9IHdpZHRoXG4gICAgLy9pZiAnbm93cmFwJyBpcyBzcGVjaWZpZWQsIHdlIG9ubHkgd3JhcCBvbiBuZXdsaW5lIGNoYXJzXG4gICAgaWYgKG1vZGUgPT09ICdub3dyYXAnKVxuICAgICAgICB0ZXN0V2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFXG5cbiAgICB3aGlsZSAoc3RhcnQgPCBlbmQgJiYgc3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAvL2dldCBuZXh0IG5ld2xpbmUgcG9zaXRpb25cbiAgICAgICAgdmFyIG5ld0xpbmUgPSBpZHhPZih0ZXh0LCBuZXdsaW5lQ2hhciwgc3RhcnQsIGVuZClcblxuICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IHN0YXJ0IG9mIGxpbmVcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbmV3TGluZSkge1xuICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UoIHRleHQuY2hhckF0KHN0YXJ0KSApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBzdGFydCsrXG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSB2aXNpYmxlICMgb2YgZ2x5cGhzIGZvciB0aGUgYXZhaWxhYmxlIHdpZHRoXG4gICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIG5ld0xpbmUsIHRlc3RXaWR0aClcblxuICAgICAgICB2YXIgbGluZUVuZCA9IHN0YXJ0ICsgKG1lYXN1cmVkLmVuZC1tZWFzdXJlZC5zdGFydClcbiAgICAgICAgdmFyIG5leHRTdGFydCA9IGxpbmVFbmQgKyBuZXdsaW5lQ2hhci5sZW5ndGhcblxuICAgICAgICAvL2lmIHdlIGhhZCB0byBjdXQgdGhlIGxpbmUgYmVmb3JlIHRoZSBuZXh0IG5ld2xpbmUuLi5cbiAgICAgICAgaWYgKGxpbmVFbmQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICAvL2ZpbmQgY2hhciB0byBicmVhayBvblxuICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmVFbmQgPT09IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGFydCA+IHN0YXJ0ICsgbmV3bGluZUNoYXIubGVuZ3RoKSBuZXh0U3RhcnQtLVxuICAgICAgICAgICAgICAgIGxpbmVFbmQgPSBuZXh0U3RhcnQgLy8gSWYgbm8gY2hhcmFjdGVycyB0byBicmVhaywgc2hvdyBhbGwuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IGxpbmVFbmRcbiAgICAgICAgICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kIC0gbmV3bGluZUNoYXIubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVFbmQgPj0gc3RhcnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBsaW5lRW5kLCB0ZXN0V2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IG5leHRTdGFydFxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuLy9kZXRlcm1pbmVzIHRoZSB2aXNpYmxlIG51bWJlciBvZiBnbHlwaHMgd2l0aGluIGEgZ2l2ZW4gd2lkdGhcbmZ1bmN0aW9uIG1vbm9zcGFjZSh0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBnbHlwaHMgPSBNYXRoLm1pbih3aWR0aCwgZW5kLXN0YXJ0KVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgZW5kOiBzdGFydCtnbHlwaHNcbiAgICB9XG59IiwibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiJdfQ== diff --git a/build/datguivr.map b/build/datguivr.map index a00dac5..e7db2e9 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"CAAA,WAAY,QAASA,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAE,kBAAmBC,UAASA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,IAAIK,GAAE,GAAIC,OAAM,uBAAuBN,EAAE,IAAK,MAAMK,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEX,EAAEG,IAAIS,WAAYb,GAAEI,GAAG,GAAGU,KAAKF,EAAEC,QAAQ,SAASd,GAAoB,MAAOI,GAAlBH,EAAEI,GAAG,GAAGL,IAAeA,IAAIa,EAAEA,EAAEC,QAAQd,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGS,QAAQ,IAAI,GAAIL,GAAE,kBAAmBD,UAASA,QAAQH,EAAE,EAAEA,EAAEF,EAAEa,OAAOX,IAAID,EAAED,EAAEE,GAAI,OAAOD,GAAE,MAAOJ,OAAOiB,GAAG,SAAST,EAAQU,EAAOJ,GACxe,YAmCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASK,KAuEP,QAASC,GAAcjB,IACC,IAAlBkB,EAAMC,UAIVC,EAAOC,KAEPC,EAAcC,SAASC,EAAmB,GAAfC,EAE3BzB,EAAE0B,QAAS,GAGb,QAASC,KACPL,EAAcC,SAASC,EAAmB,GAAfC,EAG7B,QAASG,KAEHC,EAAYC,WACdC,EAASC,MAAMC,OAAOC,EAAOC,wBAE7BJ,EAASC,MAAMC,OAAOC,EAAOE,cA3FjC,GAAIC,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DC,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDG,EAAuB,GAART,EAAcC,EAAOS,aACpCC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACIG,GAAcV,EAAeE,EAC7BS,EAAO,GAAIR,OAAMS,YAAYZ,EAAcE,EAAe7B,EAAcwC,KAAKC,MAFjE,EAEmFJ,GAFnF,EAAA,EAGD,IAAIP,OAAMY,oBAAoB,GACpCC,OAAOL,GAChBA,EAAKM,UAAyB,GAAfjB,EAAoB,EAAG,EAGtC,IAAIkB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAmB,GAAfC,EAC3BH,EAAcC,SAASmD,EAAY,GAAR/B,CAE3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOE,eACvDuC,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAElB,IAAIC,GAAcpC,EAAYqC,OAAOxD,GAAgByD,MAAO,MAI5DF,GAAYrD,SAASmD,EAAmB,GAAftB,EAAgD,MAA3BwB,EAAYG,OAAOpC,MAAmB,GACpFiC,EAAYrD,SAASC,EAAmB,IAAfC,EACzBmD,EAAYrD,SAASyD,GAAK,KAC1BL,EAAad,IAAIe,EAEjB,IAAIK,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,aAAc7D,GAEpCC,IA2BAV,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAiBzD,OAfAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAETA,EAAM0D,YAAc,SAAUoB,GAE5B,MADApB,GAAYqB,YAAYD,GACjB9E,GAGFA,EAzJTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUO,CAElB,IAAIoF,GAAuBzG,EAAQ,qCAI/B0G,GAFsB3F,EAAwB0F,GAEjCzG,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KA8IhCC,oCAAoC,GAAGC,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKC,GAAG,SAASvH,EAAQU,EAAOJ,GACxK,YAmCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAqBvF,QAAS4G,KAuDP,QAASlG,GAAcjB,IACC,IAAlBkB,EAAMC,UAIViG,EAAMjB,OAASiB,EAAMjB,MAErB/E,EAAOC,GAAgB+F,EAAMjB,MAEzBkB,GACFA,EAAYD,EAAMjB,OAGpBnG,EAAE0B,QAAS,GAGb,QAASE,KACP0F,EAAUnG,QAAUiG,EAAMjB,MAC1BoB,EAAUpG,QAAUU,EAAYC,WAC5B0F,IACFA,EAAQF,UAAUnG,QAAUiG,EAAMjB,MAClCqB,EAAQD,UAAUpG,QAAUqG,EAAQ3F,YAAYC,YAwBpD,QAAS2F,KACP,GAAID,EAAS,MAAOA,EACpB,IAAIE,GAA6B,GAAtB9E,EAAOI,aACde,EAAO,GAAIR,OAAMS,YAAY0D,EAAMA,EAAMxE,EAC7Ca,GAAKM,UAAiB,GAAPqD,EAAY,EAAG,EAC9B,IAAIpD,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAC1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDkD,GAAUlG,EAEVA,EAAcC,SAASC,EAAI0B,CAG3B,IAAIqE,GAAY3E,EAAOgB,YAAY8D,EAAO9E,EAAO+E,iBAAkBD,EAAO9E,EAAO+E,iBAAkBzE,GAAO,EAC1GsE,GAAQD,UAAYA,EACpBA,EAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,CAEvB,IAAIoE,GAAYM,EAAQN,UAAU,GAAMI,EAAO9E,EAAOiF,cACtDL,GAAQF,UAAYA,EACpBA,EAAUnG,QAAUiG,EAAMjB,MAC1BmB,EAAU/F,SAASC,EAAY,IAAR0B,EACvB5B,EAAcuC,IAAIyD,EAElB,IAAIzF,IAAc,EAAIyD,EAAc7E,SAASa,EAe7C,OAdAO,GAAY0D,OAAOC,GAAG,YAAasC,GACnCN,EAAQ3F,YAAcA,EAGtB2F,EAAQ5B,cAAgB,SAAUC,GAC5BuB,EAAMW,SACRX,EAAMjB,MAAQ/E,EAAOC,IAIvBQ,EAAYiE,OAAOD,GACnBjE,KAGK4F,EAIT,QAASM,GAAkB9H,IACI,IAAzBkB,EAAM8G,OAAO7G,UAAyC,IAApBqG,EAAQrG,UAC9CiG,EAAMjB,OAASiB,EAAMjB,MACrB/E,EAAOC,GAAgB+F,EAAMjB,MACzBkB,GAAaA,EAAYD,EAAMjB,OACnCnG,EAAE0B,QAAS,EAGX8F,EAAQF,UAAUnG,QAAUiG,EAAMjB,OAvJpC,GAAI9D,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DwF,EAAoB5F,EAAK6F,aACzBA,MAAqC3F,KAAtB0F,GAA0CA,EACzDvF,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACFjB,MAAO+B,EACPH,QAAQ,GAGNI,EAAevF,EAAOI,aAAeJ,EAAOiF,cAE5C3G,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,WAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAI4D,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIqC,OAAc,EAGlBnG,GAAMkH,SAAW,SAAUC,GAEzB,MADAhB,GAAcgB,EACPnH,GAGTA,EAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,GAGTA,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,EAGT,IAAIoG,OAAY,GACZC,MAAY,GACZ1F,MAAc,GA2BdyG,GAAwB,CAC5BpH,GAAMqH,mBAAqB,WACzB,GAAIpC,KAAQ7D,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,KAAmBA,UAAU,EAS3E,OAPI6D,KAAUmC,IACZA,EAAwBnC,EAGxBqB,EAAUC,IACNtB,EAAOjF,EAAM8G,OAAOQ,cAAchB,GAAcA,EAAQrG,SAAU,GAEjED,GAETL,OAAOqF,eAAehF,EAAO,yBAC3BuH,IAAK,WACH,MAAOH,IAETI,IAAKxH,EAAMqH,oBAEb,IAAIf,OAAU,GAwDV7D,MAAQ,EA+EZ,OA5EAzC,GAAMyH,UAAY,SAAUC,GACtBjF,GAAOzC,EAAM2H,OAAOlF,GAExBzC,EAAM4H,QAAUF,CAEhB,IAAIG,GAAiBH,EAAYT,EAC7Ba,EAAkBD,EAClBE,EAAiB/F,EACjBgG,EAAiB,GAAMH,EAAiBnG,EAAOiF,aAEnDlE,GAAQf,EAAOgB,YAAYjB,EAAOiG,EAAW1F,GAC7ChC,EAAM2C,IAAIF,EAGV,IAAII,GAAO,GAAIR,OAAMS,YAAY+E,EAAgBC,EAAiBC,EAClElF,GAAKM,UAA2B,GAAjB0E,EAAsB,EAAG,EAGxC,IAAIzE,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAI0B,EAC3B5B,EAAcC,SAASmD,EAAY,GAAR/B,CAO3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOiH,oBACvDxE,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAElB,IAAIQ,GAAevC,EAAOwC,sBAAsBwD,EAAW1G,EAAOkH,uBAClEjE,GAAa5D,SAASC,EAAI0B,EAE1BqE,EAAY3E,EAAOgB,YAAYmF,EAAiBnG,EAAO+E,iBAAkBqB,EAAkBpG,EAAO+E,iBAAkBsB,GAAgB,GACpI1B,EAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,EAEvBoE,EAAYM,EAAQN,UAAU4B,GAC9B5B,EAAU/F,SAASC,EAAY,IAAR0B,EACvB5B,EAAcuC,IAAIyD,GAElB3D,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAAcoC,GAIxD1F,GAAc,EAAIyD,EAAc7E,SAASa,GACzCO,EAAY0D,OAAOC,GAAG,YAAavE,GAEnCW,IAEAV,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC1BuB,EAAMW,SACRX,EAAMjB,MAAQ/E,EAAOC,IAEvBQ,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGEV,EAAM8G,QAAQ9G,EAAM8G,OAAOqB,gBAExBnI,GAGTA,EAAMyH,UAAU5F,GAET7B,EAlSTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAU0G,CAElB,IAAId,GAAa1G,EAAQ,eAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC7C,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KAsQhCE,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKuC,GAAG,SAAS7J,EAAQU,EAAOJ,GAC/I,YA+BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAgCvF,QAASkJ,GAASC,EAAGC,EAAGC,GACpB,GAAIzK,GAAG0K,EAAGC,EAAGtK,EAAGC,EAAGO,EAAG+J,EAAGzK,CAUzB,QATyB,IAArBgD,UAAUnC,aAEEoC,KAARmH,EAAEhF,GAAiBiF,EAAID,EAAE1E,EAAG4E,EAAIF,EAAElI,EAAGkI,EAAIA,EAAEhF,IAAOiF,EAAID,EAAEC,EAAGC,EAAIF,EAAEE,EAAGF,EAAIA,EAAEA,IAElFlK,EAAIyE,KAAKC,MAAU,EAAJwF,GACfjK,EAAQ,EAAJiK,EAAQlK,EACZQ,EAAI4J,GAAK,EAAID,GACbI,EAAIH,GAAK,EAAInK,EAAIkK,GACjBrK,EAAIsK,GAAK,GAAK,EAAInK,GAAKkK,GACfnK,EAAI,GACR,IAAK,GACDL,EAAIyK,EAAGC,EAAIvK,EAAGwK,EAAI9J,CAAE,MACxB,KAAK,GACDb,EAAI4K,EAAGF,EAAID,EAAGE,EAAI9J,CAAE,MACxB,KAAK,GACDb,EAAIa,EAAG6J,EAAID,EAAGE,EAAIxK,CAAE,MACxB,KAAK,GACDH,EAAIa,EAAG6J,EAAIE,EAAGD,EAAIF,CAAE,MACxB,KAAK,GACDzK,EAAIG,EAAGuK,EAAI7J,EAAG8J,EAAIF,CAAE,MACxB,KAAK,GACDzK,EAAIyK,EAAGC,EAAI7J,EAAG8J,EAAIC,EAE1B,OACI5K,EAAGA,EACH0K,EAAGA,EACHC,EAAGA,GAQX,QAASE,GAAS7K,EAAG0K,EAAGC,GACK,IAArBxH,UAAUnC,SACV0J,EAAI1K,EAAE0K,EAAGC,EAAI3K,EAAE2K,EAAG3K,EAAIA,EAAEA,EAE5B,IAGIuK,GAHAO,EAAMhG,KAAKgG,IAAI9K,EAAG0K,EAAGC,GACrBI,EAAMjG,KAAKiG,IAAI/K,EAAG0K,EAAGC,GACrBK,EAAIF,EAAMC,EAEVP,EAAY,IAARM,EAAY,EAAIE,EAAIF,EACxBL,EAAIK,CAER,QAAQA,GACJ,IAAKC,GACDR,EAAI,CAAE,MACV,KAAKvK,GACDuK,EAAIG,EAAIC,EAAIK,GAAKN,EAAIC,EAAI,EAAI,GAAGJ,GAAK,EAAIS,CAAE,MAC/C,KAAKN,GACDH,EAAII,EAAI3K,EAAQ,EAAJgL,EAAMT,GAAK,EAAIS,CAAE,MACjC,KAAKL,GACDJ,EAAIvK,EAAI0K,EAAQ,EAAJM,EAAMT,GAAK,EAAIS,EAGnC,OACIT,EAAGA,EACHC,EAAGA,EACHC,EAAGA,EACHlF,EAAGgF,EAAG1E,EAAG2E,EAAGnI,EAAGoI,GAIvB,QAASQ,KAiCL,QAASC,KACLC,EAAMtI,MAAM0G,IAAI1G,GAChBuD,EAAOgF,KAAK,WAAYvI,GAK5B,QAASwI,KACA7G,GACLA,EAAMpC,SAASmH,IAAI,EAAG,EAAG,EAAIxF,GAGjC,QAASuH,KACL,GAAI9G,EAIA,MAHAA,GAAMxC,SAAWwC,EAAMxC,QACnBwC,EAAMxC,SAASD,EAAM8G,OAAO0C,eAAe/G,OAC/C6G,IAOA,IAHA7G,EAAQgH,IAAIC,MAAM/F,OAAO,iBACzBlB,EAAMkH,aAEFC,EAAY,CACZ,GAAIC,GAAO,SAAc/K,GACrBgL,EAASC,YAAY9E,MAAMzB,EAAI1E,EAAEkL,WAAWxG,CAC5C,IAAIhF,GAAI+J,EAASuB,EAASC,YAAY9E,MACtCnE,GAAMmJ,OAAOzL,EAAEP,EAAGO,EAAEmK,EAAGnK,EAAEoK,GACzBO,IACAe,EAAUC,aAAc,GAGxBC,EAAa,GAAI/H,OAAMgI,gBACvBP,SAAUA,EACVQ,aAAcC,EACdC,eAAgBC,IAEhBC,EAAQ,SAAe5L,GACvBgL,EAASC,YAAY9E,MAAMnB,EAAIhF,EAAEkL,WAAWxG,EAC5CsG,EAASC,YAAY9E,MAAM3E,EAAIxB,EAAEkL,WAAWlG,CAE5C,IAAItF,GAAI+J,EAASuB,EAASC,YAAY9E,MACtCnE,GAAMmJ,OAAOzL,EAAEP,EAAGO,EAAEmK,EAAGnK,EAAEoK,GACzBO,IACAe,EAAUC,aAAc,GAGxBQ,EAAcjJ,EAAOnB,aAAe,EACxCkC,GAAMmI,gBAAgBF,EAAON,GAFlB,EAEoC1I,EAAOC,YAAc,EAAGK,EAAO2I,EAC9E,IAAIT,GAAY,GAAI7H,OAAMgI,gBACtBP,SAAUA,EACVQ,aAAcC,EACdC,eAAgBK,GAIpBpI,GAAMmI,gBAAgBf,EAAMK,GAVjB,EAUkCxI,EAAOI,aAAcE,EAAO2I,OAEzElI,GAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,GACrC1G,EAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,GACrC1G,EAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,EAEzCnJ,GAAM2C,IAAIF,GACVzC,EAAM8G,OAAO0C,eAAe/G,GAC5B6G,IACA7G,EAAMqE,OAAS9G,EAAM8G,OAe7B,QAASgE,KAGLhK,EAAQZ,EAAOC,GACfiJ,EAAMtI,MAAMiK,KAAKjK,GACjBgJ,EAASC,YAAY9E,MAAM8F,KAAKjC,EAAShI,IArH7C,GAAIK,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtElB,EAASiB,EAAKjB,OACdC,EAAegB,EAAKhB,aACpBmB,EAAcH,EAAKG,YACnBE,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAc,EAAKF,EAK7DiJ,EAAOzB,EACPzI,EAAQZ,EAAOC,GACf3B,EAAIsK,EAAShI,GACbgJ,GAAaC,aAAe9E,MAAO,GAAI5C,OAAM4I,QAAQzM,EAAEgK,EAAGhK,EAAEiK,EAAGjK,EAAEkK,KACjEU,EAAQ,GAAI/G,OAAMgB,mBAAoBvC,MAAOA,IAC7CuD,EAAS,GAAI6G,GAAS3L,QAEtB2G,GACAW,QAAQ,GAGR7G,GAAQ,EAAImL,EAAc5L,UAC1B+B,YAAaA,EAAa0J,KAAMA,EAAM5B,MAAOA,EAAOjJ,aAAcA,EAAcsB,MAAOA,EAAOI,OAAQA,EAAQG,MAAOA,EAAOoJ,oBANvG,GAQzBpL,GAAMuC,QAAU,aAEhB,IAAIE,GAOAmH,GAAa,CAgEjB5J,GAAMkH,SAAW,SAAUC,GAEvB,MADA9C,GAAOC,GAAG,WAAY6C,GACfnH,EAGX,IAAIqL,GAAwBrL,EAAM0E,aAkBlC,OAjBA1E,GAAM0E,cAAgB,SAAUC,GACxBuB,EAAMW,QAAQiE,IAClBO,EAAsB1G,IAU1B3E,EAAM6G,OAAS,WAEX,MADAX,GAAMW,QAAS,EACR7G,GAGJA,EA9PXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAU2J,CAElB,IAAIoC,GAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCC,EAAe9M,EAAQ,iBAEvB0M,EAAgB/L,EAAuBmM,GAEvClG,EAAU5G,EAAQ,YAIlB6G,GAFS9F,EAAwB6F,GAEvB5G,EAAQ,aAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAuBhB+M,GArBOhM,EAAwBgG,GAqBrB,yMAEV+E,EAAa,uIAEbE,EAAe,mDAAqDe,EAAU,uZAE9EX,EAAoB,mDAAqDW,EAAU,6VA2MpF9F,WAAW,EAAEC,SAAS,EAAE8F,gBAAgB,GAAG5F,WAAW,GAAGC,oBAAoB,GAAGzB,OAAS,KAAKqH,GAAG,SAASjN,EAAQU,EAAOJ,GAC5H,YAiDA,SAAS4M,GAAiBC,EAAU9K,GAClC,GAAI+K,GAAM,GAAIxJ,OAAMyJ,MAAMhL,GACtBtC,EAAIoN,EAASG,aAAa,SAC1BpN,MAAI,EACHH,GAIHG,EAAIH,EAAEwN,OAHNrN,EAAI,GAAIsN,cAAaL,EAASG,aAAa,YAAYC,MAAM/M,QAAQiN,KAAK,IAC1E1N,EAAIoN,EAASO,aAAa,QAAS,GAAI9J,OAAM+J,gBAAgBzN,EAAG,IAIlE,KAAK,GAAIL,GAAI,EAAGA,EAAIK,EAAEM,OAAQX,GAAK,EACjCK,EAAEL,GAAKuN,EAAI5N,EACXU,EAAEL,EAAI,GAAKuN,EAAIlD,EACfhK,EAAEL,EAAI,GAAKuN,EAAIjD,CAQjB,OANApK,GAAE2L,aAAc,EAMTyB,EApETjM,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQ4M,iBAAmBA,CAoBP5M,GAAQsN,cAAgB,QACtBtN,EAAQuN,gBAAkB,QACxBvN,EAAQwN,kBAAoB,OAC/BxN,EAAQyN,eAAiB,QACfzN,EAAQ0N,yBAA2B,SAC9C1N,EAAQ2N,cAAgB,SACzB3N,EAAQ4N,aAAe,OAChB5N,EAAQ6N,oBAAsB,QACnC7N,EAAQ8N,eAAiB,QACzB9N,EAAQ+N,eAAiB,QACnB/N,EAAQgO,qBAAuB,QAC7BhO,EAAQmJ,uBAAyB,QACnCnJ,EAAQoF,qBAAuB,SACjCpF,EAAQiO,mBAAqB,QACzBjO,EAAQkO,uBAAyB,SACtClO,EAAQmO,kBAAoB,SAC5BnO,EAAQoO,kBAAoB,EAC5BpO,EAAQkJ,kBAAoB,SACjClJ,EAAQmC,aAAe,SACbnC,EAAQkC,uBAAyB,SAC9ClC,EAAQqO,UAAY,QACnBrO,EAAQsO,WAAa,SACXtO,EAAQuO,qBAAuB,cA0BpDC,GAAG,SAAS9O,EAAQU,EAAOJ,GACjC,YAiCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASmO,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GAmB1L,QAASK,KA8DP,QAASC,KACP,MAAIL,OAAMC,QAAQK,GACTA,EAAQC,KAAK,SAAUC,GAC5B,MAAOA,KAAehO,EAAOC,KAGxBR,OAAOwO,KAAKH,GAASC,KAAK,SAAUC,GACzC,MAAOhO,GAAOC,KAAkB6N,EAAQE,KAK9C,QAASE,GAAaC,EAAWC,GAE/B,GAAIC,IAAQ,EAAIC,EAAYjP,SAAS+B,EAAa+M,EAElDI,EAAgBzM,EAAOhB,EAAOmM,kBAAmBnM,EAAOkM,kBAAmB,KAC3EqB,GAAMG,KAAKnM,QAAU,iBACrBgM,EAAMhM,QAAU,iBAEZ+L,EAAUK,EAAcpK,QAAQqK,KAAKL,EAAMG,MAAW1O,EAAMuE,QAAQqK,KAAKL,EAAMG,KACnF,IAAIG,IAAmB,EAAIzK,EAAc7E,SAASgP,EAAMG,KAiDxD,OAhDAG,GAAiBtM,QAAU,iBAC3BuM,EAAkBF,KAAKC,GACvBE,EAAaH,KAAKL,GAEdD,EACFO,EAAiBxK,OAAOC,GAAG,YAAa,SAAUxF,GAChDoH,EAAM8I,KAAOL,EAAc1O,QAC3BgP,EAAcC,UAAUb,EAExB,IAAIc,IAAkB,CAElBzB,OAAMC,QAAQK,IAChBmB,EAAkBjP,EAAOC,KAAkBkO,KAEzCnO,EAAOC,GAAgBkO,IAGzBc,EAAkBjP,EAAOC,KAAkB6N,EAAQK,MAEjDnO,EAAOC,GAAgB6N,EAAQK,IAInCe,IACAlJ,EAAM8I,MAAO,EAET7I,GAAegJ,GACjBhJ,EAAYjG,EAAOC,IAEjBkP,GACFA,EAAWnP,EAAOC,IAGpBrB,EAAE0B,QAAS,IAGbqO,EAAiBxK,OAAOC,GAAG,YAAa,SAAUxF,GAChDoH,EAAM8I,KAAOL,EAAc1O,SACR,IAAfiG,EAAM8I,KACRM,IAEAF,IAGFtQ,EAAE0B,QAAS,IAGf+N,EAAMD,SAAWA,EACVC,EAGT,QAASa,KACPlJ,EAAM8I,MAAO,EACThP,EAAM8G,QAAQ9G,EAAM8G,OAAOyI,mBAGjC,QAASD,KACPpJ,EAAM8I,MAAO,EACbhP,EAAM8G,OAAO0C,eAAemF,GAO5BI,EAAaS,QAAQ,SAAUjB,GACzBA,EAAMD,WACRC,EAAMtO,SAAU,EAChBsO,EAAMG,KAAKzO,SAAU,KAe3B,QAASwP,GAAuBlB,EAAOmB,GACrCnB,EAAMlO,SAASyD,GAAK6L,GAAmBD,EAAQE,EAAgC,GAAKC,EACpFtB,EAAMlO,SAASC,EAAI0B,EACnBuM,EAAMlO,SAASmD,GAAKiL,EAAiB1L,KAAKC,MAAM0M,EAAQE,GAG1D,QAASE,GAAc5B,EAAYwB,GACjC,GAAIK,GAAc3B,EAAaF,GAAY,EAE3C,OADAuB,GAAuBM,EAAaL,GAC7BK,EA6BT,QAASrP,KAEPoO,EAAkBU,QAAQ,SAAU7O,EAAa+O,GAC/C,GAAInB,GAAQQ,EAAaW,EACrBnB,GAAMD,WACJ3N,EAAYC,WACdI,EAAO2K,iBAAiB4C,EAAMG,KAAK9C,SAAU5K,EAAOsL,iBAEpDtL,EAAO2K,iBAAiB4C,EAAMG,KAAK9C,SAAU5K,EAAOkM,sBAK1DhH,EAAM8I,KAAOL,EAAc1O,QACvBD,EAAMgQ,SAASC,SAIjB,EAAIC,EAAOC,eAAe1N,EAAOzC,EAAMgQ,SAASC,OAAQnB,EAAkB,GAAGlO,YAE3EkO,EAAkB,GAAGlO,YAAcsF,EAAM8I,KAC3C3I,EAAUpG,SAAU,EAEpBoG,EAAUpG,SAAU,EAnOxB,GAAIkB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAG/D6O,GAFoBjP,EAAK6F,aAEV7F,EAAK6M,SACpBA,MAA2B3M,KAAjB+O,KAAkCA,EAC5C5O,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACF8I,MAAM,EACNnI,QAAQ,GAGN4H,EAAyB,GAARhN,EAAcC,EAAOS,aACtCkO,EAAkBxO,EAASH,EAAOS,aAClCmO,EAAiBtO,EACjB6N,EAAyBhO,EAA+B,IAAtBH,EAAOS,aACzCwN,GAAyC,GAAvBjO,EAAOS,aACzByN,EAAgC,GAEhC5P,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,WAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,KAIrDH,EAAMgQ,SAASO,aAAerQ,EAC9BF,EAAMgQ,SAASQ,mBAAqBrQ,EACpCH,EAAMgQ,SAASS,SAAW,SAAU/H,GAClC,IAA4B,IAAxBsF,EAAQ0C,QAAQhI,GAGlB,WADAiI,SAAQC,KAAK,8BAAgClI,EAAI,mBAAqBvI,EAAe,uBAAyB6N,EAAQ6C,KAAK,MAAQ,IAGrI3Q,GAAOC,GAAgBuI,EACnBvC,GAAaA,EAAYjG,EAAOC,IAGtC,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,GAEVzC,EAAMuE,SAAW9B,EAEjB,IAAIkM,GAAgB,GAAItM,OAAMC,KAC9BqM,GAAc1O,SAAU,EACxB0O,EAAcpK,UACd,IAAIuK,MACAC,KAGA+B,EAAe/C,IAkGfkB,EAAgBb,EAAa0C,GAAgB,KAAK,EACtD7B,GAAc5O,SAASmD,EAA0B,GAAtB9B,EAAOS,aAA6B,GAARV,EACvDwN,EAAc5O,SAASC,EAAI0B,CAE3B,IAAI+O,GAAYrK,EAAQqK,WAExBA,GAAU1Q,SAASmH,IAAIiH,EAAiB,IAAM,EAAW,KAARzM,GACjDiN,EAActM,IAAIoO,GAclB9B,EAActM,IAAIgM,GACdjB,MAAMC,QAAQK,GAChBW,EAAchM,IAAIqO,MAAMrC,EAAenB,EAAmBQ,EAAQiD,IAAInB,KAEtEnB,EAAchM,IAAIqO,MAAMrC,EAAenB,EAAmB7N,OAAOwO,KAAKH,GAASiD,IAAInB,KAGrFV,GAEA,IAAIrL,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOiM,uBAC/DhJ,GAAa5D,SAASC,EAAI0B,CAE1B,IAAIqE,GAAY3E,EAAOgB,YAAY+L,EAAiB/M,EAAO+E,iBAAkB4J,EAA4C,GAA1B3O,EAAO+E,iBAAwB6J,GAAgB,EAC9IjK,GAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,EAEvBS,EAAME,IAAIoB,EAAiBE,EAAcgL,EAAe5I,GAExD3F,GA6BA,IAAIyF,OAAc,GAEdkJ,MAAa,EAEjBrP,GAAMkH,SAAW,SAAUC,GAEzB,MADAhB,GAAcgB,EACPnH,GAETA,EAAMkR,SAAW,SAAU/J,GAEzB,MADAkI,GAAalI,EACNnH,EAGT,IAAIwE,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAmCzD,OAjCAzC,GAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,GAGTA,EAAM0E,cAAgB,SAAUC,GAC1BuB,EAAMW,QACRoI,EAAcC,UAAUnB,KAE1Be,EAAkBU,QAAQ,SAAUX,GAClCA,EAAiBjK,OAAOD,KAE1BH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGTA,EAAMmR,WAAa,SAAUC,GAC3B,GAAI/R,GAAMW,CACVX,GAAI2Q,SAASoB,IAAMA,EAGnB/R,EAAI2Q,SAASC,QAAS,EAAI9K,EAAWkM,eAAe/P,EAAa8P,EAAK1P,EAAO4P,aAAcjS,EAAIuI,QAASlG,EAAOnB,eAGjHP,EAAMuR,WAAa,WACjB,MAAOvR,GAAMgQ,SAASoB,KAGjBpR,EA9UTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUuO,CAElB,IAAI3I,GAAa1G,EAAQ,eAErB+P,EAAcpP,EAAuB+F,GAErCC,EAAe3G,EAAQ,iBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC5C,EAAQ/G,EAAQ,UAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aAoTlBiH,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGE,cAAc,GAAGyL,UAAU,KAAKC,GAAG,SAAShT,EAAQU,EAAOJ,GACrI,YAuCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAIlQ,QAAS+N,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GA+B1L,QAASiE,KACP,GAAIC,GAAMC,EAAe,GAAG5B,SAAS6B,cACrC,IAAKF,KAAOC,EAAe3S,QAAU,GAArC,CAEA,GAAI6S,GAAMF,EAAeG,OAAO,SAAUvO,GACxC,MAAOA,GAAEvD,UAEP+R,EAAOL,EAAIK,KAEX7T,GADMwT,EAAIM,IACNH,EAAI7S,QACRiT,EAAKJ,EAAIb,IAAI,SAAU1S,GACzB,MAAOA,GAAE8B,SAASC,IACjB6R,KAAK,SAAUxT,EAAGiK,GACnB,MAAOjK,GAAIiK,GAEbsJ,IAAI,IAAM,KACVA,EAAG1C,QAAQ,SAAUlP,EAAGhC,GACtB,MAAO4T,GAAG5T,GAAKyE,KAAKgG,IAAImJ,EAAG5T,GAAI4T,EAAG5T,EAAI,GAAK,GAAKoD,EAAOO,eAGzD6P,EAAItC,QAAQ,SAAUjR,EAAGD,GAEvB,GAAIgC,GAAI4R,EAAG5T,EACPgC,KAAM/B,EAAE8B,SAASC,IACnB/B,EAAE8B,SAASC,EAAIA,EACf/B,EAAE6T,eACF7T,EAAE8T,uBAGFP,EAAI3T,EAAI,GAAGkC,SAASC,GAAK0R,EAAOtQ,EAAOO,aACzC0O,QAAQ2B,IAAI,2EAKhB,QAASC,GAAYZ,GACnB,GAAKA,EAAIa,qBAAT,CACA,GAAIR,GAAOL,EAAIK,KACXC,EAAMN,EAAIM,IAEVQ,GADIb,EAAe3S,OACf0S,EAAIe,MACRzU,EAAI0T,EAAIgB,MACRvU,EAAIuT,EAAIiB,IACRhK,EAAI+I,EAAIkB,OACRvS,EAAIqR,EAAItR,SAASC,CAGrB,OAFAwS,GAAc9J,IAAIxB,IAAIiL,EAAG7J,GAAIqJ,EAAM3R,GACnCwS,EAAc/J,IAAIvB,IAAIvJ,EAAGG,GAAI4T,EAAO1R,GAC7BwS,GAGT,QAASC,KA2IP,QAASC,GAAQ3U,GAGf4U,EAAYjU,KAAKgB,EAAO3B,GAE1B,QAAS6U,GAAW7U,GAClB8U,EAAenU,KAAKgB,EAAO3B,GAyQ7B,QAAS+U,GAAYC,EAAOC,EAAQC,GAClCD,EAAOE,oBACPH,EAAMI,aAAaH,EAAOI,aAC1BJ,EAAO3L,OAAO0L,GACdE,EAAM5Q,IAAI0Q,GAEZ,QAASM,GAAYN,EAAOE,EAAOD,GACjCA,EAAOE,oBACPH,EAAMI,cAAa,GAAIpR,OAAMuR,SAAUC,WAAWP,EAAOI,cACzDH,EAAM5L,OAAO0L,GACbC,EAAO3Q,IAAI0Q,GAEb,QAASS,GAAWT,EAAOU,EAAWC,GAEpC,IADA,GAAIC,GAAOF,EACJE,EAAKX,QACVW,EAAOA,EAAKX,MACb,IAAIC,GAAQU,CAEbb,GAAYC,EAAOU,EAAWR,GAC9BI,EAAYN,EAAOE,EAAOS,GAwG5B,QAASE,KACPC,GAEA,IAEIC,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAE1CoU,KAAcpU,GACZoU,EAAUE,aAAeF,EAAUE,YAAYJ,eAAeE,EAAUE,YAAYJ,gBAExFE,EAAUpE,SAASuE,kBAAmB,EACtCH,EAAUpE,SAASwE,aAAe,EAClCJ,EAAUpE,SAASyE,YAAc,EACjCL,EAAUpE,SAAS0E,YAAcN,EAAU/T,SAASyD,EAG/C8N,EAAe+C,SAAS3U,KAC3B4R,EAAehD,KAAK5O,GAChBA,EAAMgQ,SAAS6B,gBAAgBH,OAMrC1R,EAAMgQ,SAASwE,aAAexU,EAAM8G,OAAOkJ,SAASwE,aACpDxU,EAAMgQ,SAASyE,YAAczU,EAAM8G,OAAOkJ,SAASyE,YAE/C7C,EAAe+C,SAAS3U,KAC1B4R,EAAegD,OAAOhD,EAAelB,QAAQ1Q,GAAQ,GACjDA,EAAMgQ,SAAS6B,gBAAgBH,KAMvC,IAAImD,GAAuBnT,EAAOI,aAAeJ,EAAOoT,cACpDC,EAAmBrT,EAAOsT,cAAgBtT,EAAOoT,cACjDG,EAAeF,CAEnBG,GAAcC,SAAS3F,QAAQ,SAAUhR,GACvCA,EAAEyB,SAAWiG,EAAMkP,WAMrB,IAAIC,GAAe,CAcnB,IATAH,EAAcC,SAAS3F,QAAQ,SAAUhR,EAAGF,OACvB+C,KAAf7C,EAAE8W,SACJ9W,EAAE8W,SAAWD,GAAgB,EACxBA,EAAe7W,EAAE8W,WAE1BJ,EAAcC,SAAShD,KAAK,SAAUxT,EAAGiK,GACvC,MAAOjK,GAAE2W,SAAW1M,EAAE0M,WAGpBpP,EAAMkP,UACRrE,EAAUwE,SAASjV,EAAc,GAAVyC,KAAKyS,OACvB,CACLzE,EAAUwE,SAASjV,EAAI,CAEvB,IAAIwD,GAAI,EACJ2R,EAAaV,CAEjBG,GAAcC,SAAS3F,QAAQ,SAAU6D,EAAO3D,GAC1C2D,EAAMqC,WACRrC,EAAMrD,SAAS0E,WAAa1U,EAAMgQ,SAAS0E,WAAa5Q,EACxDuP,EAAMa,gBAgCN,IAyBMyB,GArDFnN,EAAI6K,EAAMzL,QAAUyL,EAAMzL,QAAUiN,EAKpCjN,EAAU,IAAO6N,EAAajN,EAElC,IAAI6K,EAAMqC,SAAU,CAGlB,GAAIC,GAAS,IAAOF,EAAaV,EACjC1B,GAAMhT,SAASyD,EAAIA,EAAI6R,MAEvBtC,GAAMhT,SAASyD,EAAIA,EAAI8D,CAGzB9D,IAAK8D,EACL6N,EAAajN,EAETkH,EAAQkG,IAA4BX,GAAgBzM,GACxD6K,EAAMhT,SAASmD,EAAI,MAEdkM,EAAQ,GAAKkG,GAA+B,IAAG9R,EAAI,GAExDuP,EAAMhT,SAASmD,GAAK/B,EAAQsB,KAAKC,MAAM0M,EAAQkG,GAiDjDvC,EAAMjB,iBAIVpS,EAAM4H,QAAUqN,CAGhB,IAAIY,GAAanU,EAAO4P,YACpBtR,GAAM8G,SAAW9G,IACnB6V,EAAanU,EAAOoU,iBAGtBpU,EAAOqU,YAAYtT,EAAOoT,EAAYnU,EAAOsT,cAAehT,GAExDoS,IAAcpU,IAChBA,EAAMgQ,SAASuE,kBAAmB,EAClCvU,EAAMgQ,SAASgG,eAAgB,EAC/BhW,EAAMqS,qBAIV,QAAS8B,KACP,GAAI8B,GAAKvU,EAAOsT,cACZxR,EAAI9B,EAAO4P,YACf4E,GAAYf,SAAS3F,QAAQ,SAAUhR,GAChCA,EAAEyB,UACPuD,GAAU,GAALyS,EACLzX,EAAE6B,SAASmD,EAAIA,EACfA,GAAU,GAALyS,KAIT,QAASvV,KACHC,EAAYC,WACd6B,EAAM5B,SAASC,MAAMC,OAAOC,EAAO6L,gBAEnCpK,EAAM5B,SAASC,MAAMC,OAAOC,EAAO4L,qBAGjCpI,GAAgB5D,WAClBuV,EAAQtV,SAASC,MAAMC,OAAOC,EAAO6L,gBAErCsJ,EAAQtV,SAASC,MAAMC,OAAOC,EAAO4L,qBAInCwJ,EAAwBxV,WAC1ByV,EAAqBvV,MAAMC,OAAO,UAElCsV,EAAqBvV,MAAMC,OAAO,SAztBtC,GAAII,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBuD,EAAO1D,EAAK0D,KACZyR,EAASnV,EAAKmV,OACdC,EAAYpV,EAAKoV,UACjBC,EAAqBrV,EAAKqV,mBAC1BC,EAAoBtV,EAAKsV,kBAEzBb,EAA6B,GAE7BnU,EAAQC,EAAO4P,aACftP,EAAQN,EAAOO,YAEfiE,GACFkP,WAAW,EACXsB,mBAAgBrV,IAGdrB,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOsC,EAAO,IAG7C,IAAIqQ,GAAgB,GAAI7S,OAAMC,KAC9BtC,GAAM2C,IAAIuS,EAEV,IAAIyB,IAAc,CAIlBhX,QAAOqF,eAAehF,EAAO,aAC3BuH,IAAK,WACH,MAAOoP,IAETnP,IAAK,SAAaoP,GACZA,IAAaD,GAAa3W,EAAM6W,YAAY9E,OAAO,SAAUvT,GAC/D,MAAOA,GAAEkX,WACRzE,IAAI,SAAUzS,GACf,MAAOA,GAAEsY,UAEXH,EAAcC,EACd5W,EAAMmI,mBAKVnI,EAAMmI,cAAgB,WACpB,GAAIiM,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAC1CoU,GAAUpE,SAASuE,iBACrB5D,QAAQ2B,IAAI,8BAAgCtS,EAAM+W,WAAa,wCAG/D3C,EAAUpE,SAASgG,eAAgB,GAIvChW,EAAMkU,cAAgBA,CAEtB,IAAI8C,GAAmB,GAAI3U,OAAM4U,UAEjCjX,GAAMqS,kBAAoB,WACxB,GAAI6E,GAAS9V,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAE7E7C,EAAI4Y,IACR,IAAK5Y,EAAEyR,SAAS6B,eAAhB,CAEAtT,EAAE6Y,0BAA0BJ,EAK5B,IAAIK,IAAM,EAAInH,EAAOoH,kBAAkBC,EAAkBhZ,GACrDiZ,EAAOH,EAAItO,IAAIvF,EAAI6T,EAAIrO,IAAIxF,EAG3BmO,GAFO0F,EAAItO,IAAIjF,EAAIuT,EAAItO,IAAIjF,EAErBvF,EAAEyR,SAAS6B,gBACjB4F,EAASlF,EAAYZ,GAIrB+F,EAAeL,EAAIM,UAAUF,GAK7BG,EAAmBF,EAAaG,QAAQC,GACxCC,EAAUpG,EAAIgB,MAAQhB,EAAIe,KAC1BsF,EAAUrG,EAAIiB,IAAMjB,EAAIkB,MAE5B+E,GAAiBpU,GAAKgU,EAAKI,EAAiB9T,GAAK0T,CACjD,IAAIrN,IAAc,CAEdyN,GAAiBpU,EAAI0T,IAGvB3Y,EAAE8B,SAASmD,EAAImO,EAAIe,KAAOqF,EAAU,EACpC5N,GAAc,GAEZyN,EAAiB9T,EAAIoT,IACvB3Y,EAAE8B,SAASyD,EAAI6N,EAAIkB,OAASmF,EAAU,EACtC7N,GAAc,GAEZA,GAAa5L,EAAE6T,iBAGrBpS,EAAMiY,YAAc,WAClB,MAAO/R,GAAMkP,WAIfzV,OAAOqF,eAAehF,EAAO,eAK3BuH,IAAK,WACH,SAAU2Q,OAAO1K,EAAmB0H,EAAcC,UAAW3H,EAAmB0I,EAAYf,cAIhGnV,EAAMmY,SAAW,WACf,IAAK,GAAIC,GAAOhX,UAAUnC,OAAQoZ,EAAO3K,MAAM0K,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQlX,UAAUkX,EAGzB,QAAQD,EAAK1D,SAAS,SAAUtV,GAC9B,OAA2C,IAApCW,EAAM6W,YAAYnG,QAAQrR,MAIrCW,EAAM+W,WAAalS,CAGnB,IAAIoO,GAAc5Q,MAAMC,MAAM1C,UAAU+C,IAEpCwQ,EAAiB9Q,MAAMC,MAAM1C,UAAU+H,OAavClF,EAAQf,EAAOgB,YAAYjB,EAAOC,EAAOsT,cAAehT,GAAO,EACnEgR,GAAQvQ,EAER,IAAIsB,GAAkBzC,EAAYqC,OAAOkB,EACzCd,GAAgB1D,SAASmD,EAAqC,IAAjC9B,EAAOsC,wBACpCD,EAAgB1D,SAASyD,GAAK,IAC9BC,EAAgB1D,SAASC,EAAI0B,EAC7BS,EAAME,IAAIoB,EAEV,IAAIgN,GAAYrP,EAAO6W,iBACvBvX,GAAO2K,iBAAiBoF,EAAUnF,SAAU,UAC5CmF,EAAU1Q,SAASmH,IAAI,IAAM,EAAW,KAARxF,GAChCS,EAAME,IAAIoO,EAEV,IAAIoF,GAAUzU,EAAOgB,YAAYjB,EAAOC,EAAO8W,mBAAoBxW,GAAO,EAC1EmU,GAAQ9V,SAASyD,EAA2B,IAAvBpC,EAAOsT,cAC5BmB,EAAQtR,KAAO,UACfmO,EAAQmD,EAER,IAAIsC,GAAU/R,EAAQ+R,SACtBA,GAAQpY,SAASmH,IAAY,GAAR/F,EAAa,EAAW,MAARO,GACrCmU,EAAQxT,IAAI8V,GACZzY,EAAM0V,UAAW,EACjB1V,EAAM0Y,YAAc,WAClBvC,EAAQlW,SAAU,GAEpBD,EAAM2Y,YAAc,WAClBxC,EAAQlW,SAAU,GAEpBD,EAAM2J,WAAa,WACjB3J,EAAM0Y,cAENjW,EAAMxC,SAAU,GAElBD,EAAM4Y,WAAa,WAEjBnW,EAAMxC,SAAU,EAIlB,IAAIiW,GAAc,GAAI7T,OAAMC,KAC5BG,GAAME,IAAIuT,GAIVlW,EAAMsH,cAAgB,SAAUjI,GAC9B6W,EAAYvT,IAAItD,GAChBA,EAAIyH,OAAS9G,EACbX,EAAIwZ,gBAAiB,EAIhBxZ,EAAIqF,gBAAerF,EAAIqF,cAAgB,SAAUC,GACpD,MAAOtF,GAAIsB,YAAYiE,OAAOD,KAEhCtF,EAAIkF,SAAWlF,GACfoX,EAAkB7H,KAAKvP,GAGzB,IAAIgX,GAAuB,GAAIhU,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,IACnFtQ,EAA2B,GAAvB9G,EAAOsT,cACX+D,EAAmB,GAAI1W,OAAMS,YAAY0F,EAAGA,EAAyB,EAAtB9G,EAAOnB,cAEtDyY,EAActS,EAAQuS,OAAOpY,SAASoQ,IACtCiI,EAAgBxS,EAAQyS,SAAStY,SAASoQ,GAC9CoF,GAAqBpF,IAAMiI,CAC3B,IAAIE,GAAe,GAAI/W,OAAMiB,KAAKyV,EAAkB1C,EACpD+C,GAAanZ,SAAU,EACvBmZ,EAAa/Y,SAASmD,EAAI9B,EAAO4P,aAAe5P,EAAOsT,aACvD,IAAIoB,IAA0B,EAAIhS,EAAc7E,SAAS6Z,EACzDA,GAAazY,YAAcyV,EAC3BA,EAAwB/R,OAAOC,GAAG,YAAa,SAAUxF,GACnDkB,EAAMqZ,eACRrZ,EAAMsZ,WACDtZ,EAAMuZ,SACbza,EAAE0B,QAAS,IAGbR,EAAMsH,cAAc8R,EAEpB,IAAII,IAAe,CACnB7Z,QAAOqF,eAAehF,EAAO,cAC3BuH,IAAK,WACH,MAAOiS,IAEThS,IAAK,SAAaoP,GACZA,IAAa4C,IACjBJ,EAAanZ,QAAU2W,EACvB4C,EAAe5C,MAInB5W,EAAM2C,IAAM,WACV,GAAI8W,GAAgBnD,EAAOtF,UAAM3P,GAAWD,UAE5C,OAAIqY,IACFzZ,EAAM0Z,cAAcD,GACbA,GAEA,GAAIpX,OAAMC,OAQrBtC,EAAMwJ,eAAiB,SAAUtL,GAe/B,QAASyb,GAAiBrG,GACxBA,EAAO6B,SAAS3F,QAAQ,SAAUhR,GAChCA,EAAEwR,SAAS4J,YAAc1b,EACzByb,EAAiBnb,KAZrB,GAAIsI,IAAS,EAAIoJ,EAAOmE,mBAAmBrU,EACvC8G,GAAOwN,cAAaxN,EAAOwN,YAAYrU,SAAU,GACrD6G,EAAOwN,YAAcpW,EAChBA,IACLA,EAAE+B,SAAU,EACR/B,EAAEgW,eAAehW,EAAEgW,gBACvBpN,EAAO+S,2BAA4B,EASnCF,EAAiBzb,KAQnB8B,EAAMuP,iBAAmB,WACvB,GAAIzI,IAAS,EAAIoJ,EAAOmE,mBAAmBrU,EACtC8G,GAAO+S,2BAEN/S,EAAOwN,cACTxN,EAAOwN,YAAYrU,SAAU,EAC7B6G,EAAOwN,YAAc,OAe3BtU,EAAM2H,OAAS,WACb,IAAK,GAAImS,GAAQ1Y,UAAUnC,OAAQoZ,EAAO3K,MAAMoM,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF1B,EAAK0B,GAAS3Y,UAAU2Y,EAK1B,SADSxD,EAAUvF,UAAM3P,GAAWgX,KAEpCA,EAAK7I,QAAQ,SAAUnQ,GACrBsR,QAAQqJ,OAAOha,EAAMmY,SAAS9Y,GAAM,2FAChCA,EAAIqW,UACNrW,EAAIsI,OAAOqJ,MAAM3R,EAAKmO,EAAmBnO,EAAIwX,cAE/C3B,EAAcvN,OAAOtI,KAGvBW,EAAMmI,iBACC,IAKTnI,EAAMia,iBAAmB,SAAU3G,GACjCtT,EAAMqZ,eAAiB/F,EACR,OAAXA,EACF8F,EAAavY,SAASoQ,IAAMiI,GAE5B7C,EAAqBpF,IAAM+H,EAC3BhZ,EAAM4Y,aACN5Y,EAAM2Y,cACN3Y,EAAM8G,OAAS9G,IAWnBA,EAAMka,YAAc,SAAU7G,GAC5B,SAAKA,EAAMqC,UAAYrC,EAAMvM,SAAW9G,KACxCqT,EAAM4G,iBAAiBja,GACvBkV,EAAcvN,OAAO0L,GAErBH,EAAWG,GACXrT,EAAMmI,gBACCnI,IAOTA,EAAMuZ,OAAS,WACb,GAAIvZ,EAAM8G,SAAW9G,EAAO,OAAO,CAInC,IAAIoU,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAC9CA,GAAM8G,OAAOoT,YAAYla,EAGzB,IAAIma,GAAM/F,EAAUd,QAAUtT,EAAMsT,MACpC,IAAK6G,EAAL,CACAA,EAAIxX,IAAI3C,EACR,IAAIoa,GAAIhG,EAAUiG,OAAO9W,OAEzBvD,GAAMyT,aAAa2G,GACnBA,EAAEE,YAAY,GAAIjY,OAAM4I,QACxB,IAAI7M,GAAI,GAAIiE,OAAM4I,QAAQvJ,EAAO4P,aAAc,EAAG,GAAGmC,aAAa2G,EAGlE,IAFApa,EAAMK,SAASsC,IAAIvE,GAEfgW,EAAUmG,WAAY,CAmBtBzG,EAJY9T,EACIoU,EAAUd,OACVc,EAAUL,WAQ9B,MAHA/T,GAAMgQ,SAAS6B,eAAiBuC,EAAUpE,SAAS6B,eACnD7R,EAAMqS,kBAAkB,IACxBrS,EAAMgP,OACChP,IA0BTA,EAAMwa,iBAAmBxa,EAAMuZ,OAE/BvZ,EAAMsZ,SAAW,WACf,IAAKtZ,EAAMqZ,eAAgB,OAAO,CAElCrZ,GAAMqZ,eAAeoB,UAAUza,EAC/B,IAAIoU,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAAMqZ,eACpD,IAAIjF,EAAUmG,WAAY,CAGxB,GAAIG,GAAQtG,EAAUpE,SAAS2K,aAC3BjL,EAAQgL,EAAMhK,QAAQ1Q,EACtB0P,IAAS,GAAG0E,EAAUpE,SAAS2K,aAAa/F,OAAOlF,EAAO,GAIhE,MADA1P,GAAMia,iBAAiB,OAChB,GAGTja,EAAM0Z,cAAgB,WACpB,IAAK,GAAIkB,GAAQxZ,UAAUnC,OAAQoZ,EAAO3K,MAAMkN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFxC,EAAKwC,GAASzZ,UAAUyZ,EAG1BxC,GAAK7I,QAAQ,SAAUnQ,GACjBA,EAAIqW,SACN1V,EAAMya,UAAUpb,IAEhB6V,EAAcvS,IAAItD,GAClBA,EAAIyH,OAAS9G,GAGXX,EAAI8R,aACR9R,EAAI8R,WAAa,SAAUC,GACzB/R,EAAI2Q,SAASoB,IAAMA,CAEnB,IAAInB,IAAS,EAAI9K,EAAWkM,eAAe/P,EAAa8P,EAAK1P,EAAO4P,aAAcjS,EAAIuI,QAASlG,EAAOnB,aACtGlB,GAAI2Q,SAASC,OAASA,EAGlB5Q,EAAIsB,YAENtB,EAAIsB,YAAY0D,OAAOC,GAAG,OAAQ,WAM5BjF,EAAIY,UAAS,EAAIiQ,EAAOC,eAAe9Q,EAAK4Q,EAAQ5Q,EAAIsB,YAAYC,cAG1E+P,QAAQmK,MAAM,4BAA+Bzb,EAAIkD,QAAU,oDAI/DlD,EAAIkS,WAAa,WACf,MAAOlS,GAAI2Q,SAASoB,QAIxBpR,EAAMmI,iBAGRnI,EAAMya,UAAY,WAChB,IAAK,GAAIM,GAAQ3Z,UAAUnC,OAAQoZ,EAAO3K,MAAMqN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF3C,EAAK2C,GAAS5Z,UAAU4Z,EAG1B3C,GAAK7I,QAAQ,SAAUnQ,GAErB6V,EAAcvS,IAAItD,GAClBA,EAAIyH,OAAS9G,EACbX,EAAIgb,OAAOY,WACX5b,EAAIuE,MAAM4D,IAAI,EAAG,EAAG,GACpBnI,EAAIgB,SAASmH,IAAI,EAAG,EAAG,GACvBnI,EAAIkW,SAAS/N,IAAI,EAAG,EAAG,GAEvBnI,EAAIqZ,cACJrZ,EAAIyX,UAGN9W,EAAMmI,iBAGRnI,EAAMkb,cAAgB,YAChB,EAAIhL,EAAOmE,mBAAmBrU,KAAWA,GAAU4R,EAAe+C,SAAS3U,IAE7E2Q,QAAQmK,MAAM,iDAEhBlJ,EAAegD,OAAOhD,EAAelB,QAAQ1Q,GAAQ,GACrD4R,EAAehD,KAAK5O,GAMhBA,EAAMgQ,SAAS6B,gBAAgBH,IA8MrC,IAAI/Q,IAAc,EAAIyD,EAAc7E,SAASkD,EAC7C9B,GAAY0D,OAAOC,GAAG,YAAa,SAAUxF,GACvCoH,EAAMkP,UAAWpV,EAAMgP,OAAYhP,EAAM8W,QAC7ChY,EAAE0B,QAAS,IAGbR,EAAMgP,KAAO,WACN9I,EAAMkP,YACPpV,EAAM8G,SAAW9G,GAASA,EAAM8G,OAAOqU,WACzCnb,EAAM8G,OAAO+P,YAAY9E,OAAO,SAAUvT,GACxC,MAAOA,GAAEkX,UAAYlX,IAAMwB,IAC1BwP,QAAQ,SAAUhR,GACnB,MAAOA,GAAEsY,UAGb5Q,EAAMkP,WAAY,EAClBpC,EAAQkC,GACRlV,EAAMmI,kBAGRnI,EAAM8W,MAAQ,WACR5Q,EAAMkP,YACVlP,EAAMkP,WAAY,EAClBlC,EAAWgC,GACXlV,EAAMmI,kBAGRnI,EAAM8G,OAAS9G,CAEf,IAAIwE,IAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAO0T,IACrDiF,GAAqBC,EAAQ1X,QAAS3D,MAAOA,EAAOyC,MAAOA,GAC/DzC,GAAM0E,cAAgB,SAAUC,GAM9BhE,EAAYiE,OAAOD,GACnBH,GAAgBI,OAAOD,GACvByW,GAAmBxW,OAAOD,GAE1BjE,KAKFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,EAGT,IAAIsb,KAAc,CAMlBtb,GAAMgQ,SAAS2K,gBAEfhb,OAAO4b,iBAAiBvb,GACtBuE,SACEgD,IAAK,WACH,GAAIiU,GAKAC,GAAQhZ,EAAO0T,EAEnB,OADInW,GAAMsU,cAAamH,GAAQD,EAAQC,GAAMvD,OAAOlH,MAAMwK,EAAOhO,EAAmBxN,EAAMsU,YAAY/P,WAC/FkX,IAGXlB,YACEhT,IAAK,WACH,MAAO+T,KAET9T,IAAK,SAAavC,GAEhB,KADAqW,GAAcrW,GACI,CAChB,GAAI8O,GAAY/T,EAAMsT,OAClBU,EAAYhU,EAAMgQ,SAAS+D,WAE3B,EAAI7D,EAAOmE,mBAAmBrU,KAAWA,GAC3C2Q,QAAQ2B,IAAI,wCAGdtS,EAAMgQ,SAAS2K,aAAanL,QAAQ,SAAU6D,GAG5CS,EAAWT,EAAOU,EAAWC,KAE/BhU,EAAMgQ,SAAS2K,oBAkBvB,KAAK,GAAIe,MAAKlF,IAZF,SAAekF,GACzB1b,EAAM0b,GAAK,WACT,GAAIC,GAAanF,EAAmBkF,GAAG1K,MAAMwF,EAAoBpV,UACjE,OAAIua,IACF3b,EAAM0Z,cAAciC,GACbA,GAEA,GAAItZ,OAAMC,QAMfoZ,GAGR,OAAO1b,GAz8BTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUwT,CAElB,IAAI5N,GAAa1G,EAAQ,eAErB2G,EAAe3G,EAAQ,iBAEvB2F,EA8BJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IA9B5C+F,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC7C,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/BoW,EAAWnd,EAAQ,aAEnB4c,EAAU7b,EAAwBoc,GAElC1L,EAASzR,EAAQ,WA+BjBmT,KAEA2F,EAAmB,GAAIlV,OAAMwZ,KAC7B/I,EAAgB,GAAIzQ,OAAMwZ,KAC1B/D,EAAc,GAAIzV,OAAM4I,UAs4BzBvF,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGiW,YAAY,GAAGhW,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKuK,GAAG,SAAStd,EAAQU,EAAOJ,GAC3K,YA0BA,SAASqK,KACP,GAAIA,GAAQ,GAAI4S,MAEhB,OADA5S,GAAM6S,IAAM;u2hDACL7S;EAGT,QAAS8S,KACP,MAAO;;CA/BTvc,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQqK,MAAQA,EAChBrK,EAAQmd,IAAMA,OA8BRC,GAAG,SAAS1d,EAAQU,EAAOJ,GACjC,YAkCA,SAAS4E,KAgBP,QAASyY,KACP,GAAIC,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACvEkb,EAAQD,EAAMC,MAEdxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAAwBA,EAAOyV,cAI/BD,EAAME,MACR,GAAIF,EAAMG,SAAWH,EAAMI,UAAYJ,EAAMK,QAAQC,IAAIC,eAAeP,EAAMQ,WAAYR,EAAMS,oBAC9F,GAAIT,EAAM3b,YAAYqc,QAAUrc,EAY9B,MAXA2b,GAAMS,kBAAkBE,IAAIX,EAAMY,aAElCZ,EAAMI,SAASpJ,OAAOE,oBACtB8I,EAAMI,SAASpJ,OAAO6J,aAAab,EAAMS,mBAKzCjW,EAAOzG,SAAS0K,KAAKuR,EAAMS,uBAE3BjW,GAAOsL,mBAGJ,IAAIkK,EAAMc,cAAcne,OAAS,EAAG,CACzC,GAAIoe,GAAYf,EAAMc,cAAc,GAAGld,MACnCmd,KAAc5a,IAChB4a,EAAU7J,oBAEV8J,EAAUC,sBAAsBF,EAAU3J,aAE1C4I,EAAMQ,WAAWU,8BAA8BlB,EAAMmB,YAAYC,kBAAkBpB,EAAMQ,WAAWa,QAASL,KAOrH,QAASvd,GAAcjB,GACrB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAIsB,IAAtBA,EAAOyT,WAAX,CAIA,GAAI+B,EAAME,OACR,GAAIF,EAAMc,cAAcne,OAAS,GAC3Bqd,EAAMK,QAAQC,IAAIC,eAAeP,EAAMQ,WAAYR,EAAMS,mBAAoB,CAC/E,GAAIM,GAAYf,EAAMc,cAAc,GAAGld,MACvC,IAAImd,IAAc5a,EAChB,MAKF,IAFA6Z,EAAMI,SAAW5V,EAEbA,EAAOyV,aAAc,MAEzBD,GAAMI,SAASlJ,oBACf8J,EAAUC,sBAAsBjB,EAAMI,SAAShJ,aAE/C4I,EAAMY,YAAYnS,KAAKuR,EAAMS,mBAAmBE,IAAIK,QAInD,CACL,GAAIxW,EAAOyV,aAAc,MAEzBsB,GAAWhK,WAAW+J,EAAYlK,aAElC5M,EAAOuT,OAAOyD,YAAYD,GAC1B/W,EAAOuT,OAAO0D,UAAUjX,EAAOzG,SAAUyG,EAAOkX,WAAYlX,EAAOlD,OAEnEkD,EAAOiN,UAAYjN,EAAOwM,OAE1BsK,EAAYjb,IAAImE,GAGlBhI,EAAE0B,QAAS,EAEXsG,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,UAAWiT,IAG/B,QAAS7b,GAAgB3B,GACvB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAIsB,IAAtBA,EAAOyT,WAAX,CAIA,GAAI+B,EAAME,MACRF,EAAMI,aAAWrb,OACZ,CAEL,OAAyBA,KAArByF,EAAOiN,UACT,MAGFjN,GAAOuT,OAAOyD,YAAYF,EAAYlK,aACtC5M,EAAOuT,OAAO0D,UAAUjX,EAAOzG,SAAUyG,EAAOkX,WAAYlX,EAAOlD,OACnEkD,EAAOiN,UAAUpR,IAAImE,GACrBA,EAAOiN,cAAY1S,GAGrByF,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,eAAgBvC,IAzIpC,GAAI3F,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEpB,EAAQmB,EAAKnB,MACbyC,EAAQtB,EAAKsB,MAEb9B,GAAc,EAAIyD,EAAc7E,SAASkD,EAE7C9B,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,OAAQ8X,GAC9Bzb,EAAY0D,OAAOC,GAAG,aAAc7D,EAEpC,IAAIod,GAAa,GAAIxb,OAAMuR,QACvB0J,EAAY,GAAIjb,OAAM4I,OAiI1B,OAAOtK,GA7KThB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQ4E,OAASA,CAEjB,IAAIyB,GAAe3G,EAAQ,iBAEvB2F,EAIJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAJ5C+F,GAEvC8K,EAASzR,EAAQ,aAuKlBmH,gBAAgB,GAAG4L,UAAU,KAAKyM,GAAG,SAASxf,EAAQU,EAAOJ,GAChE,YAEAY,QAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,GAEKlG,GAAQ0Z,QAAU,WAC9B,GAAIrP,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,4jvBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,CAKtB,IAAItJ,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI1S,GAAW,GAAIvJ,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAM2H,EAAMvH,OAAS,IAAM,EAAG,EAGnF,OADW,IAAIQ,OAAMiB,KAAKsI,EAAU/K,OAKxB9B,EAAQgS,UAAY,WAClC,GAAI3H,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM;+tnBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GACIM,GAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IADxC,GACkD2H,EAAMvH,OAAS,IADjE,GAC2E,EAAG,EAEtF,OADA+c,GAAIzb,WAAW,MAAQ,KAAO,GACvB,GAAId,OAAMiB,KAAKsb,EAAK/d,OAIf9B,EAAQqH,UAAY,WAClC,GAAIgD,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM;ukpBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,OAIpB9B,EAAQka,KAAO,WACxB,GAAI7P,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,w7CAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,OAIlB9B,EAAQoa,OAAS,WAC5B,GAAI/P,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,o8CAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,YAIzBge,IAAI,SAASpgB,EAAQU,EAAOJ,GAClC,YAqCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAgClQ,QAASqf,KAwHP,QAASC,GAAYjgB,IACd,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAC3CC,GAAWA,EAAUrgB,IAG3B,QAASiB,GAAcjB,IAMhB,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAC3Chf,GAAQA,EAAOC,GAAcrB,GAC7BkM,GAAMA,EAAKlM,GAEfsB,EAAcC,SAASC,EAAmB,GAAfC,EAE3BzB,EAAE0B,QAAS,GAKb,QAASye,GAA8BC,GACrC,GAAIpgB,GAAIsB,EAAc+c,aAAa+B,EAMnC,OALApgB,GAAE0E,GAAKtB,EACPpD,EAAEgF,GAAK1B,EACPtD,EAAEgF,GAAK,GACPhF,EAAE0E,EAAIT,KAAKgG,IAAIhG,KAAKiG,IAAIlK,EAAE0E,EAAG,GAAI,GACjC1E,EAAEgF,EAAIf,KAAKgG,IAAIhG,KAAKiG,IAAIlK,EAAEgF,EAAG,GAAI,GAC1BhF,EAGT,QAASsgB,GAAetgB,IACjB,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAG3CG,GAAUA,EAASvgB,IAGzB,QAAS2B,KACPL,EAAcC,SAASC,EAAmB,GAAfC,EAG7B,QAASG,KACFG,EAASC,QACVH,EAAYC,WACVwK,GAAoBvK,EAASC,MAAMC,OAAO,UAE1CqK,GAAoBvK,EAASC,MAAMC,OAAO,WAnLlD,GAAII,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/D+d,EAAYne,EAAK6J,KACjBA,MAAqB3J,KAAdie,MAA0Bje,GAAYie,EAC7CC,EAAgBpe,EAAKke,SACrBA,MAA6Bhe,KAAlBke,MAA8Ble,GAAYke,EACrDC,EAAare,EAAKiI,MAClBA,MAAuB/H,KAAfme,EAA2B,yBAA2BA,EAC9DC,EAAYte,EAAKue,KACjBA,MAAqBre,KAAdoe,GAAkCA,EACzCje,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDK,EAASV,EAAKU,OACdE,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EACxD4d,EAAwBxe,EAAKiK,mBAC7BA,MAA+C/J,KAA1Bse,GAA6CA,EAClEC,EAAmBze,EAAKwJ,YACxBA,MAAmCtJ,KAArBue,EAAiCle,EAAOnB,aAAeqf,CAmBpE/d,KAAQA,EAASH,EAAOC,aAAe+d,EAAO,IAAO,KAE1D,IAAIxd,GAAeT,GAASie,EAAO,IAAO,KAAQhe,EAAOS,aACrDC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAeoK,EAEf3K,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,cAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,KAErDH,EAAM4H,QAAU/F,CAEhB,IAAIY,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACII,GAAO,GAAIR,OAAMkc,cAAcrc,EAAcE,EAAe,EAAG,EACpD,IAAIC,OAAMY,oBAAoB,EAE7CJ,GAAKM,UAAyB,GAAfjB,EAAoB,EAAG3B,EAGtC,IAAI6C,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAIC,EACtBmf,GACHtf,EAAcC,SAASmD,EAAqC,IAAjC9B,EAAOsC,wBAClC5D,EAAcC,SAASyD,EAAI,KAFlB1D,EAAcC,SAASmD,EAAY,GAAR/B,CAKtC,IAAIZ,EACAuI,GAAMyW,WACRhf,EAAWuI,GAEXvI,EAAW,GAAIwB,OAAMgB,kBACrBxC,EAASiY,aAAc,EAxDzB,SAA8B1P,EAAO0W,GACnC,GAAqB,gBAAV1W,IAET,GAAI/G,OAAM0d,eAAgBC,KAAK5W,EAAO,SAAU8U,GAC9CA,EAAQ+B,MAAQ/B,EAAQgC,MAAQ7d,MAAM8d,oBACtCL,EAAe7O,IAAMiN,EACrB4B,EAAe3V,aAAc,QAE1B,IAAIf,EAAMgX,UACfN,EAAe7O,IAAM7H,MAChB,CAAA,IAAIA,EAAMiX,oBAEV,KAAM,mCAAqCjX,CADhD0W,GAAe7O,IAAM7H,EAAM8U,QAE7B4B,EAAe3V,aAAc,GA4CRf,EAAOvI,GAE9B,IAAI4C,GAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAIlB,IAAIM,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,IAC1B4b,IAAM3b,EAAgB9D,SAAU,EAEpC,IAAIgE,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAE7CO,GAAY0D,OAAOC,GAAG,WAAYya,GAClCpe,EAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,WAAY8a,GAClCze,EAAY0D,OAAOC,GAAG,aAAc7D,GAEpCC,GAEA,IAAIye,OAAY9d,EAIhBrB,GAAMsgB,QAAU,SAAU/hB,GAExB,MADA4gB,GAAY5gB,EACLyB,GAETA,EAAMugB,WAAa,SAAUhiB,GAE3B,MADA8gB,GAAW9gB,EACJyB,GAkETA,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGFA,EA7QTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUuf,CAElB,IAAI5Z,GAAuBzG,EAAQ,qCAI/B0G,GAFsB3F,EAAwB0F,GAEjCzG,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aA+OlBgH,oCAAoC,GAAGC,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKgP,IAAI,SAAS/hB,EAAQU,EAAOJ,GACtL,YA+BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAIlQ,QAASghB,KAYL,QAASC,GAAqBtX,EAAO0W,GACjC,GAAqB,gBAAV1W,IAEP,GAAI/G,OAAM0d,eAAgBC,KAAK5W,EAAO,SAAU8U,GAC5CA,EAAQ+B,MAAQ/B,EAAQgC,MAAQ7d,MAAM8d,oBACtCL,EAAe7O,IAAMiN,EACrB4B,EAAe3V,aAAc,QAE9B,IAAIf,EAAMgX,UACbN,EAAe7O,IAAM7H,MAClB,CAAA,IAAIA,EAAMiX,oBAEV,KAAM,mCAAqCjX,CAD9C0W,GAAe7O,IAAM7H,EAAM8U,QAE/B4B,EAAe3V,aAAc,EA4CjC,QAASwW,KACDle,GAAOzC,EAAM2H,OAAOlF,GACxBA,EAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,GAC1ChC,EAAM2C,IAAIF,EAEV,IAAIwB,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAC1BS,EAAME,IAAIsB,GAEVO,EAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,IAErDme,EAAQpR,QAAQ,SAAU5G,GACtB,MAAO5I,GAAM2H,OAAOiB,KAExBgY,KACA5gB,EAAM6W,YAAc+J,EAGxB,QAASC,KACLF,GAEA,IAAIG,GAA+B,IAAf5e,EAChB6e,EAAgC,IAAhB3e,EAChBS,EAAO,GAAIR,OAAMkc,cAAcuC,EAAeC,EAAe,EAAG,EACpEle,GAAKM,UAAU2d,EAAgB,GAAIC,EAAgB,EAAGxgB,EAKtDygB,GAAQxR,QAAQ,SAAUnQ,EAAKf,GA+D3B,QAASyB,GAAcjB,GACnB,IAAyB,IAArBmiB,EAAShhB,QAAb,CAIAnB,EAAE0B,QAAS,CAEX,KACInB,EAAI2L,OACN,MAAO9M,GAEL,YADAmB,EAAIyb,MAAQ5c,GAAK,uBAGrBgjB,EAAc7hB,EACd4hB,EAAS5gB,SAASC,EAAmB,GAAfC,GAG1B,QAASE,KACLwgB,EAAS5gB,SAASC,EAAIC,EAClBlB,EAAI8hB,SAAS9hB,EAAI8hB,UAjFzB,GAAK9hB,EAAI+J,OAAU/J,EAAI+hB,KAAvB,CAGA,GAAIH,GAAW,GAAI5e,OAAMC,KACzB2e,GAAS1e,QAAU,yBACnBvC,EAAM2C,IAAIse,GACVL,EAAQhS,KAAKqS,EAEb,IAAIpV,GAAMvN,EAAI+iB,EACVC,EAAMve,KAAKC,MAAM1E,EAAI+iB,EAEzBJ,GAAS5gB,SAASmD,EAAI,EAAI9B,EAAOS,aAAeD,EAAe2J,EAC/DoV,EAAS5gB,SAASyD,EAAIjC,EAAS,EAAIO,EAAgBkf,EACnDL,EAAS5gB,SAASC,EAAIC,CAItB,IAAI6C,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,GAE7CvC,EAAW,GAAIwB,OAAMgB,iBAGzB,IAFAxC,EAASiY,aAAc,EACnBzZ,EAAI+J,OAAOsX,EAAqBrhB,EAAI+J,MAAOvI,GAC3CxB,EAAI+hB,KAAM,CACV,GAAIA,GAAO9f,EAAYqC,OAAOtE,EAAI+hB,MAC9BG,EAAU,EAAI7f,EAAO8f,mBACrBhZ,EAAI9G,EAAO+f,WAAaL,EAAKvd,OAAOhC,OACpC6f,EAAIN,EAAKO,cACTD,GAAIxf,EAAeqf,IACnBH,EAAKQ,gBAAgB1f,EAAeqf,EAASnf,EAAgBmf,GAC7D/Y,EAAI9G,EAAO+f,WAAaL,EAAKvd,OAAOhC,OACpC6f,EAAIN,EAAKO,gBAEbV,EAASte,IAAIye,GACbH,EAASG,KAAOA,EAChBA,EAAK/gB,SAASmD,EAAInE,EAAIwiB,OAAS,IAAO3f,EAAewf,GACrDN,EAAK/gB,SAASyD,EAAIzE,EAAIyiB,QAAU,GAAM1f,EAAgBoG,EACtD4Y,EAAK/gB,SAASC,EAAmB,IAAfC,EAEtB,GAAIkD,GAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAMhD,IALAT,EAAcuC,IAAIc,GAKdpE,EAAI+R,IAAK,CACT,GAAI2Q,IAAU,EAAI5c,EAAWkM,eAAe/P,EAAajC,EAAI+R,IAAKlP,EAAcE,EAAe7B,EAG/F0gB,GAASc,QAAUA,EAIvBd,EAASte,IAAIvC,GACbqC,EAAME,IAAIse,EAEV,IAAItgB,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,aAAc7D,GAwBpCpB,EAAI2iB,SAAW3iB,EAAI+hB,KAAO,KAAQ,SAClC/hB,EAAI4iB,WAAa5iB,EAAI+hB,KAAO,IAAQ,SACpCH,EAASvgB,WAAa,WACdwhB,GAAwBhB,IAAgB7hB,EACxCwB,EAASC,MAAMC,OAAOohB,GACnBthB,EAASC,MAAMC,OAAOJ,EAAYC,WAAavB,EAAI2iB,SAAW3iB,EAAI4iB,YACrEhB,EAASc,UAAS,EAAI7R,EAAOC,eAAe8Q,EAAUA,EAASc,QAASphB,EAAYC,YACpFvB,EAAIyb,OAAOja,EAASC,MAAMC,OAAO,WAGzCkgB,EAASvgB,aAETugB,EAAStgB,YAAcA,EACvBsgB,EAAS1c,QAAUnE,KAIvBJ,EAAMuE,QAAUqc,EAAQ3P,IAAI,SAAUrI,GAClC,MAAOA,GAAErE,UAEbvE,EAAMuE,QAAQqK,KAAKnM,GAGvB,QAAS/B,KACLkgB,EAAQpR,QAAQ,SAAU5G,GACtB,MAAOA,GAAElI,eA/MjB,GAAIS,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnB0f,EAAU7f,EAAK6f,QACfxf,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxD4gB,EAAYjhB,EAAKihB,UACjBrgB,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EACxDsgB,EAAelhB,EAAKkgB,QACpBA,MAA2BhgB,KAAjBghB,EAA6B,EAAIA,EAkB3CC,EAA+B,EAAtB5gB,EAAOS,aAChBD,EAAmC,EAAImf,GAAvB5f,EAAQ6gB,GAExBlgB,EAAgBggB,EAAY,EAAIA,EAAYlgB,EAC5C3B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,kBAChBvC,EAAMwC,SAAW,WACb,MAAO,IAAMxC,EAAMuC,QAAU,KAAOye,EAAU,IAGlD,IAAIuB,GAAOxf,KAAKyf,KAAKxB,EAAQ/hB,OAASoiB,GAClCxf,EAASH,EAAOS,aAAeC,EAAgBmgB,CACnDviB,GAAM4H,QAAU/F,EAEhB7B,EAAMyiB,aAAe,SAAUja,GAK3B,MAJA4Z,GAAYhgB,EAAgBoG,EAC5B3G,EAASH,EAAOS,aAAeC,EAAgBmgB,EAC/CviB,EAAM4H,QAAU/F,EAChBgf,IACO7gB,EAGX,IAAIkiB,IAAuB,EACvBhB,EAAc,KACdiB,MAAiB,EACrBniB,GAAMkiB,qBAAuB,WACzB,GAAIrW,GAAMzK,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,OAI9E,OAFA8gB,IAA+B,IAARrW,EACvBsW,EAAiBtW,EACV7L,EAGX,IAAIyC,OAAQ,GACR+B,MAAkB,GAClBoc,IAiKJ,OA/JAC,KAiJA7gB,EAAM0E,cAAgB,SAAUC,GAC5Bic,EAAQpR,QAAQ,SAAU5G,GACtBA,EAAEjI,YAAYiE,OAAOD,KAGzBH,EAAgBI,OAAOD,GACvBjE,KAGJV,EAAM6E,KAAO,SAAUC,GAEnB,MADAf,iBAAgBgB,YAAYD,GACrB9E,GAGJA,EAnQXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAUkhB,CAElB,IAAItb,GAAa1G,EAAQ,eAErB2G,EAAe3G,EAAQ,iBAEvB2F,EAsBJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAtB5C+F,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aAmQlBiH,WAAW;aAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKkR,IAAI,SAASjkB,EAAQU,EAAOJ,GAC/I,YA0DA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASmO,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GAwwB1L,QAASkV,GAASxkB,GAChB,OAAQykB,MAAMC,WAAW1kB,KAAO2kB,SAAS3kB,GAG3C,QAAS4kB,GAAU5kB,GACjB,MAAoB,iBAANA,GAGhB,QAAS6kB,GAAWC,GAClB,GAAIC,KACJ,OAAOD,IAA8D,sBAA3CC,EAAQ1gB,SAASxD,KAAKikB,GAKlD,QAASE,GAASC,GAChB,MAAuE,gBAA/C,KAATA,EAAuB,YAAcC,EAAQD,MAAwB1V,MAAMC,QAAQyV,IAAkB,OAATA,EAG7G,QAASzV,GAAQtP,GACf,MAAOqP,OAAMC,QAAQtP,GAGvB,QAASilB,GAASjlB,GAChB,MAAoB,gBAANA,GAGhB,QAASklB,GAAQllB,GACf,MAA8D,gBAA5C,KAANA,EAAoB,YAAcglB,EAAQhlB,OAC/CA,EAAEklB,QAOX,QAASC,GAAmBlH,EAAOX,EAAYc,EAASgH,GAetD,QAASC,GAAQtlB,EAAGO,GACdglB,GAAWA,EAAQC,iBAAmBD,EAAQC,gBAAgB3kB,OAAS,GACzE0kB,EAAQC,gBAAgB,GAAGC,MAAMzlB,EAAGO,GAIxC,QAASmlB,KACPC,EAAiB,SAAUvgB,EAAGpF,EAAGO,GAC/B,MAAO+kB,GAAQ,EAAI/kB,EAAG,KACrB,GAAI,IAGT,QAASqlB,KACPD,EAAiB,SAAUvgB,EAAGpF,EAAGO,GAC/B,MAAO+kB,GAAQ,EAAG,GAAO,EAAI/kB,KAC5B,IAAK,GA7BVgd,EAAWsI,iBAAiB,cAAe,WACzC,MAAOxH,IAAQ,KAEjBd,EAAWsI,iBAAiB,YAAa,WACvC,MAAOxH,IAAQ,KAEjBd,EAAWsI,iBAAiB,YAAa,WACvC,MAAOR,IAAQ,KAEjB9H,EAAWsI,iBAAiB,UAAW,WACrC,MAAOR,IAAQ,IAGjB,IAAIE,GAAUhI,EAAWuI,YAmBzB5H,GAAMjY,OAAOC,GAAG,mBAAoB,SAAUgY,GAC5CoH,EAAQ,GAAK,MAGfpH,EAAMjY,OAAOC,GAAG,UAAW,WACzBwf,MAGFxH,EAAMjY,OAAOC,GAAG,eAAgB,WAC9B0f,MAGF1H,EAAMjY,OAAOC,GAAG,SAAU,WACxBwf,MAGFxH,EAAMjY,OAAOC,GAAG,cAAe,WAC7B0f,MAIJ,QAASD,GAAiBI,EAAIC,EAAOC,GACnC,GAAI7gB,GAAI,EACJ8gB,EAAKC,YAAY,WACnBJ,EAAG3gB,EAAG6gB,EAAO7gB,EAAI6gB,KACjB7gB,GACS6gB,GACPG,cAAcF,IAEfF,EACH,OAAOE,GAr6BT,GAAIjB,GAA4B,kBAAXoB,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUrlB,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXolB,SAAyBplB,EAAIslB,cAAgBF,QAAUplB,IAAQolB,OAAO7kB,UAAY,eAAkBP,IAElQiM,EAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCsZ,EAAUnmB,EAAQ,YAElBomB,EAAWzlB,EAAuBwlB,GAElCE,EAAYrmB,EAAQ,cAEpBsmB,EAAa3lB,EAAuB0lB,GAEpCE,EAAUvmB,EAAQ,YAElBwmB,EAAW7lB,EAAuB4lB,GAElCE,EAAUzmB,EAAQ,YAElB0mB,EAAW/lB,EAAuB8lB,GAElCE,EAAY3mB,EAAQ,cAEpB4mB,EAAajmB,EAAuBgmB,GAEpC7Z,EAAe9M,EAAQ,iBAEvB0M,EAAgB/L,EAAuBmM,GAEvC+Z,EAAmB7mB,EAAQ,qBAE3B8mB,EAAoBnmB,EAAuBkmB,GAE3CE,EAAY/mB,EAAQ,cAEpBgnB,EAAarmB,EAAuBomB,GAEpCE,EAAWjnB,EAAQ,aAEnBknB,EAAYvmB,EAAuBsmB,GAEnCE,EAAennB,EAAQ,iBAEvBonB,EAAgBzmB,EAAuBwmB,GAEvCE,EAAWrnB,EAAQ,aAEnBsnB,EAMJ,SAAiC1mB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,GAN5NqmB,GAElC5V,EAASzR,EAAQ,WAEjB2G,EAAe3G,EAAQ,iBA4BvBiL,EAAQ,WAsBV,QAASsc,KAEP,MAAOC,IAAYlU,OAAO7B,EAAO8O,qBAEnC,QAASkH,KAWP,MALUF,KAAwB/U,IAAI,SAAU5S,GAC9C,MAAOA,GAAEkG,QAAQwN,OAAO,SAAUvJ,GAChC,MAAOA,GAAEvI,YAGFkmB,OAAO,SAAUxnB,EAAGiK,GAC7B,MAAOjK,GAAEuZ,OAAOtP,QAUpB,QAASwd,GAAYC,EAAQC,GAiB3B,MAhBAC,KAAe,EACfC,GAAgBF,EAChBG,GAAWhJ,YAAc4I,EACrBA,EAAO7T,qBACJkU,KACHA,GAAsB,SAA6BnoB,GACjD,MAAOA,GAAE8T,qBAEXoU,GAAWpiB,OAAOC,GAAG,eAAgBoiB,KAGnCA,KACFD,GAAWpiB,OAAOsiB,eAAe,eAAgBD,IACjDA,OAAsBrlB,IAGnBolB,GAAWG,MAGpB,QAASC,KACPN,IAAe,EACXG,KACFD,GAAWpiB,OAAOsiB,eAAe,eAAgBD,IACjDA,OAAsBrlB,IAQ1B,QAASylB,KACP,GAAIne,GAAI,GAAItG,OAAM0kB,cAIlB,OAHApe,GAAEwD,aAAa,WAAY,GAAI9J,OAAM+J,gBAAgB,GAAIH,eAAc,EAAG,EAAG,EAAG,EAAG,EAAG,MAG/E,GAAI5J,OAAM2kB,KAAKre,EAAGse,IAO3B,QAASC,KACP,MAAO,IAAI7kB,OAAMiB,KAAK,GAAIjB,OAAM8kB,eAAe,KAAO,EAAG,GAAIC,IAU/D,QAASC,KACP,GAAIzJ,GAAcxc,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAAIiB,OAAMC,MAE5Fga,GACFK,QAAS,GAAIta,OAAMilB,UAAU,GAAIjlB,OAAM4I,QAAW,GAAI5I,OAAM4I,SAC5D2b,MAAOE,IACPS,OAAQL,IACRhnB,OAAQ0d,EACRnB,SAAS,EACTgH,SAAS,EACTpf,OAAQ,GAAI6G,GAAS3L,QACrBoB,aACE6mB,SAAMnmB,GACN2b,UAAO3b,GACPomB,UAAOpmB,IAMX,OAFAib,GAAMsK,MAAMjkB,IAAI2Z,EAAMiL,QAEfjL,EAiET,QAASoL,GAAexnB,GACtB,GAAIoc,GAAQ+K,EAAYnnB,EAyBxB,OAvBAoc,GAAMsK,MAAMnK,QAAU,SAAUkL,GAC9B,GAAIlM,GAAOa,EAAMc,aAEbuK,IAAQlM,GAAQA,EAAKxc,OAAS,GAChCqd,EAAMG,SAAU,EAChBH,EAAMsL,SAAU,GAEhBtL,EAAMG,SAAU,GAIpBH,EAAMsK,MAAMnD,QAAU,SAAUkE,GAC9BrL,EAAMmH,QAAUkE,GAGlBrL,EAAMsK,MAAMW,OAASjL,EAAMiL,OAEvBllB,MAAMwlB,gBAAkB3nB,YAAkBmC,OAAMwlB,gBAClDrE,EAAmBlH,EAAOpc,EAAQoc,EAAMsK,MAAMnK,QAASH,EAAMsK,MAAMnD,SAGrE9e,GAAaiK,KAAK0N,GAEXA,EAAMsK,MAOf,QAASkB,GAAU5nB,EAAQC,GACzB,GAAI6I,GAAM5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC1E2H,EAAM3H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAE1E2mB,GAAS,EAAIlD,EAAStlB,UACxB+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAAQ8I,IAAKA,EAAKD,IAAKA,EACrF/B,aAAc9G,EAAOC,IAKvB,OAFA8lB,IAAYrX,KAAKmZ,GAEVA,EAGT,QAASC,GAAY9nB,EAAQC,GAC3B,GAAI8nB,IAAW,EAAIlD,EAAWxlB,UAC5B+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAC9D8G,aAAc9G,EAAOC,IAKvB,OAFA8lB,IAAYrX,KAAKqZ,GAEVA,EAGT,QAASC,GAAUhoB,EAAQC,GACzB,GAAIgoB,IAAS,EAAIlD,EAAS1lB,UACxB+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,GAIhE,OADA+lB,IAAYrX,KAAKuZ,GACVA,EAST,QAASC,GAAepd,EAAM5B,EAAOsW,EAAM7d,GACzC,GAAI3B,IAAW3B,EAAGyM,GAOdmd,GAAS,EAAIhd,EAAc5L,UAC7B+B,YAAaA,GAAapB,OAAQA,EAAQC,aAPzB,IAOqDiJ,MAAOA,EAAOsW,KAAMA,EAAM7d,OAAQA,GAG1G,OADAokB,IAAYrX,KAAKuZ,GACVA,EAGT,QAASvd,GAAgByU,EAAUjW,EAAOsW,EAAM7d,GAC9C,GACIsmB,IAAS,EAAIhd,EAAc5L,UAC7B+B,YAAaA,GAAa+d,SAAUA,EAAUlf,aAF7B,GAEyDiJ,MAAOA,EAAOsW,KAAMA,EAAM7d,OAAQA,GAG9G,OADAokB,IAAYrX,KAAKuZ,GACVA,EAOT,QAASE,GAAoBC,GAG3B,IAAK,GAFDjH,GAAUkH,OAAOC,UAAUF,GAAQA,EAAO,EAErClQ,EAAOhX,UAAUnC,OAAQoZ,EAAO3K,MAAM0K,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC9FD,EAAKC,EAAO,GAAKlX,UAAUkX,EAG7B,IAAI0I,GAAU3I,CACTkQ,QAAOC,UAAUF,IAAOtH,EAAQyH,QAAQH,EAC7C,IAAII,IAAO,EAAInD,EAAkBhmB,UAAW+B,YAAaA,GAAa0f,QAASA,EAASK,QAASA,GAEjG,OADA4E,IAAYrX,KAAK8Z,GACVA,EAGT,QAASC,GAAYC,GACdA,IAAaA,EAAc,SAAqBlN,GACnD,MAAO/K,SAAQ2B,IAAI,WAAaoJ,IAElC,IAAImN,IAAK,EAAIpD,EAAWlmB,UAAWqpB,YAAaA,EAAatnB,YAAaA,IAE1E,OADA2kB,IAAYrX,KAAKia,GACVA,EAGT,QAASC,GAAW5oB,EAAQC,GAC1B,GAAIkX,IAAM,EAAIsO,EAAUpmB,UAAW+B,YAAaA,GAAapB,OAAQA,EAAQC,aAAcA,GAE3F,OADA8lB,IAAYrX,KAAKyI,GACVA,EAGT,QAAS0R,GAAe7oB,EAAQC,GAC9B,GAAIkX,IAAM,EAAIwO,EAActmB,UAAW+B,YAAaA,GAAapB,OAAQA,EAAQC,aAAcA,GAE/F,OADA8lB,IAAYrX,KAAKyI,GACVA,EAGT,QAAS2R,GAAY9oB,EAAQC,EAAc6N,GACzC,GAAIib,IAAW,EAAI5D,EAAW9lB,UAC5B+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAAQ8N,QAASA,GAIjF,OADAiY,IAAYrX,KAAKqa,GACVA,EAiBT,QAAStmB,GAAIzC,EAAQC,EAAc+oB,EAAMC,GAEvC,OAAe9nB,KAAXnB,EAEG,MAAIA,GAAOwV,SAAiBxV,MAENmB,KAAzBnB,EAAOC,IACTwQ,QAAQC,KAAK,oBAAqBzQ,EAAc,YAAaD,GACtD,GAAImC,OAAMC,OAGf6gB,EAAS+F,IAASvb,EAAQub,GACrBF,EAAY9oB,EAAQC,EAAc+oB,GAGvCvG,EAASziB,EAAOC,IACX2nB,EAAU5nB,EAAQC,EAAc+oB,EAAMC,GAG3CpG,EAAU7iB,EAAOC,IACZ6nB,EAAY9nB,EAAQC,GAGzB6iB,EAAW9iB,EAAOC,IACb+nB,EAAUhoB,EAAQC,GAGvBmjB,EAASpjB,EAAOC,IACX2oB,EAAW5oB,EAAQC,GAGxBojB,EAAQrjB,EAAOC,IACV4oB,EAAe7oB,EAAQC,OADhC,GAQF,QAASipB,KACP,GAAIpgB,GAAM5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAO9E,OAAO0mB,IAHLuB,OAAQrgB,GAGc,SAAUA,EANxB5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAShF,QAASkoB,KACP,GAAItb,GAAU5M,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEzEmoB,GACFC,OAAQ,GAOV,YAJgBnoB,KAAZ2M,IACFub,EAAMC,OAAS7b,EAAQK,GAAWA,EAAQ,GAAKA,EAAQrO,OAAOwO,KAAKH,GAAS,KAGvEgb,EAAYO,EAAO,SAAUvb,GAGtC,QAASyb,KAOP,MAAOzB,IAHL0B,QAHkBtoB,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,IAAmBA,UAAU,IAMzD,WAG5B,QAASuoB,GAAgBC,GAKvB,MAAO1B,IAHLC,WAAe9mB,KAAPuoB,EAAmBA,EAAK,cAGV,UAW1B,QAASjiB,KACP,IAAK,GAAImS,GAAQ1Y,UAAUnC,OAAQoZ,EAAO3K,MAAMoM,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF1B,EAAK0B,GAAS3Y,UAAU2Y,EAG1B,IAAI8P,MAAY3R,OAAO1K,EAAmB,GAAIsc,KAAIzR,IAClD,SAAK0R,EAAW/Y,UAAM3P,GAAWmM,EAAmBqc,MACpDA,EAAOra,QAAQ,SAAUnQ,GACvB,GAAIf,GAAI2nB,GAAYvV,QAAQrR,EAC5B,MAAIf,GAAK,GAGP,MADAqS,SAAQ2B,IAAI,2GACL,CAHG2T,IAAYrR,OAAOtW,EAAG,MAM7B,GAUT,QAASyrB,KACP,IAAK,GAAInP,GAAQxZ,UAAUnC,OAAQoZ,EAAO3K,MAAMkN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFxC,EAAKwC,GAASzZ,UAAUyZ,EAG1B,KAAK,GAAIvc,GAAI,EAAGA,EAAI+Z,EAAKpZ,OAAQX,IAAK,CACpC,GAAIe,GAAMgZ,EAAK/Z,EACf,KAAkC,IAA9B2nB,GAAYvV,QAAQrR,KAAgBA,EAAIyH,OAAOqR,SAAS9Y,GAG1D,MADAsR,SAAQ2B,IAAI,2BAA6BjT,IAClC,CAET,IAAIA,EAAIqW,WACDqU,EAAW/Y,UAAM3P,GAAWmM,EAAmBnO,EAAIwX,cAAe,OAAO,EAGlF,OAAO,EAOT,QAASmT,KACP/D,GAAYzW,QAAQ,SAAUhR,GAC5BA,EAAEyB,SAAU,EAAUzB,EAAE8U,SAAW9U,EAAE8U,OAAOuD,aAAarY,EAAE8U,OAAO3L,OAAOnJ,KAE3EynB,GAAYrR,OAAO,EAAGqR,GAAYhnB,QAWpC,QAAS0E,GAAOkB,GACd,GAAIiC,IAAS,EAAIqe,EAAS5lB,UACxB+B,YAAaA,GACbuD,KAAMA,EACNyR,OAAQ3T,EACR4T,UAAW5O,EACX6O,oBACEsR,UAAWsB,EACXJ,YAAaM,EACbtB,YAAayB,EACbvB,UAAWyB,EACXvB,eAAgBA,EAChBxd,gBAAiBA,EACjByd,oBAAqBA,EACrBM,YAAaA,EACbG,WAAYA,GAEdrS,kBAAmBwP,GAEnBgE,mBAKF,OAFAhE,IAAYrX,KAAK9H,GAEVA,EAWT,QAASlC,KACP,GAAIiN,GAAiB0U,IAAgBE,GAAWhJ,YAAYjL,oBACxD0X,KAAYC,sBAAsBvlB,EAEtC,IAAIwlB,GAAiBlE,IACjBD,EAAcD,IACdqE,EAAUpE,EAAYlU,OAAO,SAAUvT,GACzC,MAAOA,GAAEsI,SAAWtI,GAEtB6rB,GAAQ7a,QAAQ,SAAUjR,GACxBA,EAAEyR,SAAS6B,iBAAiBA,GAAiB4U,GAAWhJ,YACpDlf,EAAEsb,4BACJtb,EAAE4J,gBACF5J,EAAEsb,2BAA4B,GAE5Btb,EAAEyR,SAASgG,eAAezX,EAAE2V,kBAG9BqS,KAEFE,GAAWrJ,cAAgBkN,GAAkBF,EAAgB3D,KAG/D9hB,GAAa6K,QAAQ,WACnB,GAAIrO,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEtElB,GADMiB,EAAKkW,IACFlW,EAAKjB,QACdyc,EAAUxb,EAAKwb,QACfiK,EAAQzlB,EAAKylB,MACbW,EAASpmB,EAAKomB,OACd5mB,EAAcQ,EAAKR,YAEnB+O,EAAQtO,UAAU,EAEtBmpB,GAA2B5pB,EAAaypB,GACxClqB,EAAOsT,oBAEP8J,GAAU9V,IAAI,EAAG,EAAG,GAAG+V,sBAAsBrd,EAAOwT,aACpD8W,GAAQvP,WAAWwP,gBAAgBvqB,EAAOwT,aAE1CgX,GAAWljB,IAAI,EAAG,GAAI,GAGlBtH,EAAOyqB,qBAAqBD,GAAWE,gBAAgB1qB,EAAOyqB,qBAClED,GAAWjX,aAAa+W,IAASK,YAEjClO,EAAQnV,IAAI8V,GAAWoN,GAGvB,IAAI/rB,GAAIioB,EAAMhb,SAASG,aAAa,YAAYC,KAChDrN,GAAE,GAAK2e,GAAU9Z,EAAE7E,EAAE,GAAK2e,GAAUxZ,EAAEnF,EAAE,GAAK2e,GAAUhd,CAKvD,IAAI8c,GAAgBT,EAAQmO,iBAAiBV,GAAgB,EAC7DW,GAAmB3N,EAAewJ,EAAOW,GAEzC5iB,GAAa+K,GAAO0N,cAAgBA,EAEhCld,EAAO8P,WAAU9P,EAAO8P,SAASgb,iBAAmB5N,IAG1D,IAAI6N,GAAStmB,GAAaumB,OAEtB3E,KACF0E,EAAOrc,KAAK6X,IAGdR,EAAYzW,QAAQ,SAAUhR,GAC5B,MAAOA,GAAEkG,cAAcumB,IAIzB,IAAIE,GAAeF,EAAOlZ,OAAO,SAAUuK,GACzC,MAAOA,GAAM8O,aAcf,OAZ2B,IAAvBD,EAAalsB,SACfksB,EAAa3b,QAAQ,SAAUhH,GAC7B,MAAOA,GAAE4iB,aAAc,IAEzBf,EAAQ7a,QAAQ,SAAUjR,GACxB,MAAOA,GAAEgR,sBAGbkX,GAAWmB,SAAU,EACrBjjB,GAAa6K,QAAQ,SAAUnR,GAC7B,MAAOA,GAAEupB,SAAU,IAEdnB,GAAWrJ,cAKpB,QAASmN,GAA2Bc,EAAcjB,IAC/C,QAAS,OAAQ,SAAS5a,QAAQ,SAAU8b,GAC3C,GAAI3qB,GAAc0qB,EAAaC,EAC3B3qB,IAAeypB,EAAe1Z,QAAQ/P,EAAY4qB,WAAa,IACjEF,EAAaC,OAAmBjqB,GAEhCV,EAAYiE,cAKlB,QAAS4mB,GAAY5E,EAAO1H,GAC1B,GAAIuM,GAAK7E,EAAMhb,SAASG,aAAa,YAAYC,KACjDyf,GAAG,GAAKvM,EAAM1b,EACdioB,EAAG,GAAKvM,EAAMpb,EACd2nB,EAAG,GAAKvM,EAAM5e,EACdmrB,EAAGthB,aAAc,EAEjByc,EAAM3mB,SAAU,EAChB2mB,EAAMhb,SAAS8f,wBACf9E,EAAMhb,SAAS+f,qBAIjB,QAASZ,GAAmB3N,EAAewJ,EAAOW,GAChD,GAAInK,EAAcne,OAAS,EAAG,CAC5B,GAAI2sB,GAAWxO,EAAc,EAC7BoO,GAAY5E,EAAOgF,EAAS1M,OAC5BqI,EAAOlnB,SAAS0K,KAAK6gB,EAAS1M,OAC9BqI,EAAOtnB,SAAU,EACjBsnB,EAAO/T,wBAEPoT,GAAM3mB,SAAU,EAChBsnB,EAAOtnB,SAAU,EASrB,QAAS4rB,IAAyBlP,EAASH,EAAO6J,GAChD1J,EAAQmP,cAActP,EAAO6J,EAC7B,IAAI+D,GAAiBlE,GACrB,OAAOvJ,GAAQmO,iBAAiBV,GAAgB,GAOlD,QAASE,IAAkBF,GACzB,GAAI/N,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAGvEub,GAFMN,EAAMhF,IACHgF,EAAMnc,OACLmc,EAAMM,SAChBiK,EAAQvK,EAAMuK,MACdW,EAASlL,EAAMkL,OACf/K,EAAQH,EAAMG,MACdiB,EAAcpB,EAAMoB,WAGxB8M,GAFkBlO,EAAM1b,YAEgBypB,EACxC,IAAIhN,KASJ,OAPIK,KACFL,EAAgByO,GAAyBlP,EAASH,EAAOiB,GACzDsN,EAAmB3N,EAAewJ,EAAOW,GACzCA,EAAOtnB,SAAU,EACjB2mB,EAAM3mB,SAAU,GAGXmd,EAzrBT,GAAI9b,IAAcykB,EAAQgG,UAOtBpnB,MACAshB,MA6BAM,IAAe,EACfC,OAAgBnlB,GAChBqlB,OAAsBrlB,GAEtB6oB,IAAa,EAiCbjD,GAAgB,GAAI5kB,OAAM2pB,mBAAoBlrB,MAAO,QAAUgY,aAAa,EAAMmT,SAAU5pB,MAAM6pB,mBAYlG9E,GAAiB,GAAI/kB,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,EAAMmT,SAAU5pB,MAAM6pB,mBAuCnGzF,GAEJ,WACE,GAAIjK,GAAQ,GAAIna,OAAM8pB,SAAS,GAAI,GAE/B7P,EAAQ+K,GAuCZ,OAtCA/K,GAAME,MAAQA,EACdF,EAAMS,kBAAoB,GAAI1a,OAAM4I,QACpCqR,EAAMY,YAAc,GAAI7a,OAAM4I,QAC9BqR,EAAMQ,WAAa,GAAIza,OAAM+pB,MAC7B9P,EAAMc,iBAGNd,EAAMmB,gBAAcpc,GAEpBgrB,OAAOpI,iBAAiB,YAAa,SAAUqI,GAE7C,GAAI9F,GAAe,CACjB,GAAI+F,GAAa/F,GAAcgG,WAAWC,uBAC1CjQ,GAAMhZ,GAAK8oB,EAAMI,QAAUH,EAAW7Z,MAAQ6Z,EAAW9qB,MAAQ,EAAI,EACrE+a,EAAM1Y,IAAOwoB,EAAMK,QAAUJ,EAAW3Z,KAAO2Z,EAAW1qB,OAAU,EAAI,MAItE2a,GAAMhZ,EAAI8oB,EAAMI,QAAUL,OAAOO,WAAa,EAAI,EAClDpQ,EAAM1Y,GAAMwoB,EAAMK,QAAUN,OAAOQ,YAAe,EAAI,IAEzD,GAEHR,OAAOpI,iBAAiB,YAAa,SAAUqI,GACzChQ,EAAMc,cAAcne,OAAS,GAE/BqtB,EAAMQ,2BAERxQ,EAAMG,SAAU,EAGhBH,EAAMsL,SAAU,IACf,GAEHyE,OAAOpI,iBAAiB,UAAW,SAAUqI,GAC3ChQ,EAAMG,SAAU,IACf,GAEIH,KAqWLgB,GAAY,GAAIjb,OAAM4I,QACtByf,GAAa,GAAIroB,OAAM4I,QAAQ,EAAG,GAAI,GACtCuf,GAAU,GAAInoB,OAAMuR,OA4KxBhP,IAMA,IAAImoB,KACFppB,OAAQA,EACR+jB,eAAgBA,EAChBtB,YAAaA,EACbS,aAAcA,EACdvlB,YAAaA,GACb0rB,aAAc5nB,EAAa4nB,aAC3BhD,SAAUA,EACVplB,OAAQA,EAUV,OALAjF,QAAOqF,eAAe+nB,GAAiB,cAAgBxlB,IAAK,WACxD,MAAO2iB,KACN1iB,IAAK,SAAakB,GACnB,MAAOwhB,IAAaxhB,KAEjBqkB,KAGLV,cACiBhrB,KAAfgrB,OAAO5iB,MACT4iB,OAAO5iB,QAGT4iB,OAAO5iB,IAAIC,MAAQA,GAGjBvK,IACFA,EAAOJ,SACL0K,IAAKC,IAIa,kBAAXujB,SAAyBA,OAAOC,KACzCD,UAAWvjB,KA6GVyjB,WAAW,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,aAAa,EAAEC,WAAW,EAAE9hB,gBAAgB,GAAG+hB,oBAAoB,GAAG5nB,gBAAgB,GAAG6nB,aAAa,GAAGC,YAAY,GAAGC,WAAW,GAAGC,YAAY,GAAGpc,UAAU,GAAGnN,OAAS,KAAKwpB,IAAI,SAASpvB,EAAQU,EAAOJ,GAC7P,YAoCA,SAAS+uB,GAAkBvC,GAUzB,QAAS3mB,GAAOD,GAEdopB,GAAW,EACXC,GAAc,EACdC,GAAY,EAEZtpB,EAAa6K,QAAQ,SAAU8M,GAEzB4R,EAAgBxd,QAAQ4L,GAAS,GACnC4R,EAAgBtf,KAAK0N,EAGvB,IAAI6R,GAAcC,EAAW9R,GACzBe,EAAY8Q,EAAY9Q,UACxBgR,EAAWF,EAAYE,SAEvB5G,EAAQ8D,IAAclO,CAC1B0Q,GAAWA,GAAYtG,EAEvB6G,GACEhS,MAAOA,EACPmL,MAAOA,EACPpK,UAAWA,EAAWgR,SAAUA,EAChCE,WAAY,UACZC,gBAAiB,UACjBlD,gBAAiB,QACjBmD,SAAU,YACVC,SAAU,WACVC,OAAQ,aAIRC,UAAW,aAGbN,GACEhS,MAAOA,EACPmL,MAAOA,EACPpK,UAAWA,EAAWgR,SAAUA,EAChCE,WAAY,UACZjD,gBAAiB,OACjBmD,SAAU,YACVC,SAAU,WACVC,OAAQ,kBAGVtqB,EAAOgF,KAAK,QACViT,MAAOA,EACPe,UAAWA,EACXO,YAAatB,EAAMpc,WAKzB,QAASkuB,GAAW9R,GAClB,MAAIA,GAAMc,cAAcne,QAAU,GAE9BovB,SAAUQ,EAAQtR,sBAAsBjB,EAAMiL,OAAO7T,aAAanQ,QAClE8Z,cAAWhc,KAIXgtB,SAAU/R,EAAMc,cAAc,GAAG8B,MACjC7B,UAAWf,EAAMc,cAAc,GAAGld,QAKxC,QAASouB,KACP,GAAIntB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEkb,EAAQnb,EAAKmb,MACbmL,EAAQtmB,EAAKsmB,MACbpK,EAAYlc,EAAKkc,UACjBgR,EAAWltB,EAAKktB,SAChBE,EAAaptB,EAAKotB,WAClBC,EAAkBrtB,EAAKqtB,gBACvBlD,EAAkBnqB,EAAKmqB,gBACvBmD,EAAWttB,EAAKstB,SAChBC,EAAWvtB,EAAKutB,SAChBC,EAASxtB,EAAKwtB,OACdC,EAAYztB,EAAKytB,SAErB,KAA0B,IAAtBtS,EAAMiS,QAAsCltB,KAAdgc,EAIhC,YADAf,EAAM8O,aAAc,EAKtB,IAAIwD,GAAanH,IAA+B,IAAtBnL,EAAMiS,GAAuB,CACrD,GAAIO,IACFxS,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAEV6D,GAAOgF,KAAKulB,EAAWE,GAOzB,GAAIrH,IAAkD,IAAzCnL,EAAMkS,GAAmBD,QAA+DltB,KAAvCib,EAAM3b,YAAY2qB,GAAgC,CAE9G,GAAIyD,IACFzS,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAIL6c,GAAUrN,SAAS4J,cAAa0C,EAAM8O,aAAc,GAEzDlQ,EAAcmC,GAGd2P,EAAa3jB,KAAKolB,EAAUM,GAC5B1qB,EAAOgF,KAAKolB,EAAUM,GAElBA,EAASvuB,SACX8b,EAAM3b,YAAY2qB,GAAmB3qB,EACrC2b,EAAM3b,YAAY8mB,MAAQ9mB,GAG5BqtB,GAAc,EACdC,GAAY,EAId,GAAI3R,EAAMiS,IAAejS,EAAM3b,YAAY2qB,KAAqB3qB,EAAa,CAC3E,GAAIquB,IACF1S,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAGV6D,GAAOgF,KAAKqlB,EAAUM,GAEtBhB,GAAc,EAEd1R,EAAMjY,OAAOgF,KAAK,qBAIM,IAAtBiT,EAAMiS,IAAyBjS,EAAM3b,YAAY2qB,KAAqB3qB,IACxE2b,EAAM3b,YAAY2qB,OAAmBjqB,GACrCib,EAAM3b,YAAY8mB,UAAQpmB,GAC1BgD,EAAOgF,KAAKslB,GACVrS,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,UAKzB,QAASgb,GAAcmC,IACL,EAAInN,EAAOmE,mBAAmBgJ,GACpCnC,gBAGZ,QAAS+T,KAGP,IAAK,GADDC,IAAc,EACT5wB,EAAI,EAAGA,EAAI4vB,EAAgBjvB,OAAQX,IAC1C,OAA6C+C,KAAzC6sB,EAAgB5vB,GAAGqC,YAAY8mB,MAAqB,CACtDyH,GAAc,CACd,OAIJ,MAAIA,GACKnB,EAGLG,EAAgBnc,OAAO,SAAUuK,GACnC,MAAOA,GAAM3b,YAAY8mB,QAAU9mB,IAClC1B,OAAS,EAjMd,GAAIoF,GAAS,GAAI6G,GAAS3L,QAEtBwuB,GAAW,EACXC,GAAc,EACdC,GAAY,EAEZY,EAAU,GAAIxsB,OAAM4I,QACpBijB,KAiMAvtB,GACFC,SAAUquB,EACV5P,SAAU,WACR,MAAO2O,IAETppB,OAAQA,EACRP,OAAQA,EACRknB,UAAWA,EAGb,OAAO5qB,GArPThB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQiuB,iBAAe3rB,GACvBtC,EAAQQ,QAAUuuB,CAElB,IAAIxiB,GAAU7M,EAAQ,UAElByM,EAIJ,SAAgC7L,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAJjDiM,GAElC4E,EAASzR,EAAQ,WAsBjBuuB,EAAejuB,EAAQiuB,aAAe,GAAI9hB,GAAS3L,UAwNpDiS,UAAU,GAAGnN,OAAS,KAAK8qB,IAAI,SAAS1wB,EAAQU,EAAOJ,GAC1D,YAmBA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS+vB,KAgCL,QAASC,KACLC,GAASA,EACTC,EAAUtvB,SAAWqvB,EACrBE,EAAUvvB,QAAUqvB,EAlCxB,GAAInuB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEwnB,EAAcznB,EAAKynB,YACnBtnB,EAAcH,EAAKG,YAEnBtB,EAAQ,GAAIqC,OAAMC,MAClBmtB,EAAkB,GAAIptB,OAAMC,KAChCtC,GAAM2C,IAAI8sB,EAEV,IAAIprB,GAAS,GAAI6G,GAAS3L,OAC1B8E,GAAOC,GAAG,UAAWskB,EAErB,IAAI8G,GAAa,oDAAoDC,MAAM,IACvE3O,EAAU0O,EAAWze,IAAI,SAAUyK,GACnC,OAAS1Q,KAAM,WACP,MAAO3G,GAAOgF,KAAK,UAAWqS,IAC/B0F,KAAM1F,KAEb6T,GAAY,EAAIhK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,IACtGoO,GAAgB9sB,IAAI4sB,GAGpBvO,EADiB,mDAAoD2O,MAAM,IACtD1e,IAAI,SAAUyK,GAC/B,OAAS1Q,KAAM,WACP,MAAO3G,GAAOgF,KAAK,UAAWqS,IAC/B0F,KAAM1F,IAEjB,IAAI8T,IAAY,EAAIjK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,IACtGmO,GAAUvvB,SAAU,EACpBwvB,EAAgB9sB,IAAI6sB,EAEpB,IAAIF,IAAQ,EAORM,GAAW,EAAIrK,EAAkBhmB,UAAW+B,YAAaA,EAAa+f,QAAS,EAAGe,UAAW,GAAKpB,UAAYhW,KAAM,WAC5G,MAAO3G,GAAOgF,KAAK,UAAW,MAC/B+X,KAAM,WACjBqO,GAAgB9sB,IAAIitB,EACpB,IAAI9rB,GAAI8rB,EAASvvB,SAASyD,GAAK,IAAOyrB,EAAU3nB,QAAUgoB,EAAShoB,QAEnEoZ,KAAaI,KAAM,QAASpW,KAAMqkB,IAAiBjO,KAAM,YAAapW,KAAM,WACpE,MAAO3G,GAAOgF,KAAK,UAAW,SAC3B+X,KAAM,QAASpW,KAAM,WACxB,MAAO3G,GAAOgF,KAAK,UAAW,QAEtC,IAAIwmB,IAAc,EAAItK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,EAAGe,UAAW,IAuBtH,OAtBAqN,GAAgB9sB,IAAIktB,GACpBA,EAAYxvB,SAASyD,EAAIA,EAAI,IAAO8rB,EAAShoB,QAAUioB,EAAYjoB,SACnE5H,EAAM4H,QAAU2nB,EAAU3nB,QAAUgoB,EAAShoB,QAAUioB,EAAYjoB,QAEnE6nB,EAAgBpvB,SAASyD,EAAI+rB,EAAYjoB,QAEzCjI,OAAOqF,eAAehF,EAAO,WACzBuH,IAAK,WACD,OAAQsoB,EAAYtrB,QAASqrB,EAASrrB,QAAS+qB,EAAQE,EAAUjrB,QAAUgrB,EAAUhrB,SAAS4hB,OAAO,SAAUxnB,EAAGiK,GAC9G,MAAOjK,GAAEuZ,OAAOtP,WAK5BgnB,EAAS9oB,OAAS0oB,EAAU1oB,OAASyoB,EAAUzoB,OAAS+oB,EAAY/oB,OAAS9G,EAC7EA,EAAM0E,cAAgB,SAAUumB,GAC5B4E,EAAYnrB,cAAcumB,GAC1BsE,EAAU7qB,cAAcumB,GACxB2E,EAASlrB,cAAcumB,GACvBuE,EAAU9qB,cAAcumB,IAGrBjrB,EA3FXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAU6vB,CAElB,IAAI9jB,GAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCga,EAAmB7mB,EAAQ,qBAE3B8mB,EAAoBnmB,EAAuBkmB,GAE3C/Z,EAAe9M,EAAQ,gBAEPW,GAAuBmM,KAwFxCE,gBAAgB,GAAG+hB,oBAAoB,GAAGnpB,OAAS,KAAKyrB,IAAI,SAASrxB,EAAQU,EAAOJ,GACvF,YAoBA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAqBlQ,QAASswB,GAAU1wB,GACjB,GAAIA,YAAegD,OAAMiB,KAAM,CAC7BjE,EAAIuM,SAAS+f,oBACb,IAAIlqB,GAAQpC,EAAIuM,SAASokB,YAAYjnB,IAAIvF,EAAInE,EAAIuM,SAASokB,YAAYjnB,IAAIjF,CAE1E,OADAzE,GAAIuM,SAASzI,UAAU1B,EAAO,EAAG,GAC1BpC,EACF,GAAIA,YAAegD,OAAM0kB,eAAgB,CAC9C1nB,EAAIssB,oBACJ,IAAIsE,GAAS5wB,EAAI2wB,YAAYjnB,IAAIvF,EAAInE,EAAI2wB,YAAYjnB,IAAIjF,CAEzD,OADAzE,GAAI8D,UAAU8sB,EAAQ,EAAG,GAClB5wB,GAIX,QAASqD,GAAYjB,EAAOI,EAAQG,EAAOkuB,GACzC,GAAIrvB,GAAWqvB,EAAiB,GAAI7tB,OAAMgB,mBAAoBvC,MAAO,WAAcqvB,EAAgBC,MAC/F3tB,EAAQ,GAAIJ,OAAMiB,KAAK,GAAIjB,OAAMS,YAAYrB,EAAOI,EAAQG,GAAQnB,EAaxE,OAZA4B,GAAMmJ,SAASzI,UAAkB,GAAR1B,EAAa,EAAG,GAErCyuB,EACFrvB,EAASC,MAAMC,OAAOC,EAAO2L,cAE7B3L,EAAO2K,iBAAiBlJ,EAAMmJ,SAAU5K,EAAO2L,cAGjDlK,EAAMuN,SAASqgB,aAAe5uB,EAC9BgB,EAAMuN,SAASsgB,cAAgBzuB,EAC/BY,EAAMuN,SAASugB,aAAevuB,EAEvBS,EAET,QAASsT,GAAYtT,EAAOhB,EAAOI,EAAQG,GACzCS,EAAMmJ,SAAShI,MAAMnC,EAAQgB,EAAMuN,SAASqgB,aAAcxuB,EAASY,EAAMuN,SAASsgB,cAAetuB,EAAQS,EAAMuN,SAASugB,cACxH9tB,EAAMuN,SAASqgB,aAAe5uB,EAC9BgB,EAAMuN,SAASsgB,cAAgBzuB,EAC/BY,EAAMuN,SAASugB,aAAevuB,EAGhC,QAASkC,GAAsBrC,EAAQf,GACrC,GAAI2B,GAAQ,GAAIJ,OAAMiB,KAAK,GAAIjB,OAAMS,YAAY0tB,EAAqB3uB,EAAQ4uB,GAAsBN,EAAgBC,MAGpH,OAFA3tB,GAAMmJ,SAASzI,UAAgC,GAAtBqtB,EAA2B,EAAG,GACvDxvB,EAAO2K,iBAAiBlJ,EAAMmJ,SAAU9K,GACjC2B,EAGT,QAAS8V,KACP,GACI/P,GAAI,KACJkoB,EAAK,GAAIruB,OAAMsuB,KACnBD,GAAGE,OAAO,EAAG,GACbF,EAAGG,QAJK,MAIMroB,GACdkoB,EAAGG,OALK,MAKKroB,GACbkoB,EAAGG,OAAO,EAAG,EAEb,IAAIjS,GAAM,GAAIvc,OAAMyuB,cAAcJ,EAGlC,OAFA9R,GAAIzb,UAAU,GAAG,KAAU,GAEpB,GAAId,OAAMiB,KAAKsb,EAAKuR,EAAgBC,OAhG7CzwB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQyiB,mBAAqBziB,EAAQ0iB,WAAa1iB,EAAQ4H,cAAgB5H,EAAQ0H,iBAAmB1H,EAAQyZ,mBAAqBzZ,EAAQiW,cAAgBjW,EAAQ+W,gBAAkB/W,EAAQuS,aAAevS,EAAQwB,aAAexB,EAAQ0xB,oBAAsB1xB,EAAQyxB,oBAAsBzxB,EAAQgyB,wBAA0BhyB,EAAQiF,wBAA0BjF,EAAQoD,aAAepD,EAAQ+V,cAAgB/V,EAAQkD,YAAclD,EAAQ+C,aAAe/C,EAAQ4C,gBAAcN,GACpdtC,EAAQgxB,UAAYA,EACpBhxB,EAAQ2D,YAAcA,EACtB3D,EAAQgX,YAAcA,EACtBhX,EAAQmF,sBAAwBA,EAChCnF,EAAQwZ,gBAAkBA,CAE1B,IAAIhT,GAAmB9G,EAAQ,qBAE3B0xB,EAAkB3wB,EAAwB+F,GAE1CF,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GA0FjCmrB,GAPczxB,EAAQ4C,YAAc,EACrB5C,EAAQ+C,aAAe,IACxB/C,EAAQkD,YAAc,IACpBlD,EAAQ+V,cAAgB,EACzB/V,EAAQoD,aAAe,KACZpD,EAAQiF,wBAA0B,IAClCjF,EAAQgyB,wBAA0B,IACtChyB,EAAQyxB,oBAAsB,KACpDC,EAAsB1xB,EAAQ0xB,oBAAsB,IACrC1xB,GAAQwB,aAAe,IACvBxB,EAAQuS,aAAe,MACpBvS,EAAQ+W,gBAAkB,EAC5B/W,EAAQiW,cAAgB,IACnBjW,EAAQyZ,mBAAqB,MAC/BzZ,EAAQ0H,iBAAmB,IAC9B1H,EAAQ4H,cAAgB,IAC3B5H,EAAQ0iB,WAAa,MACb1iB,EAAQyiB,mBAAqB,MAEnD9b,WAAW,EAAEI,oBAAoB,KAAKkrB,IAAI,SAASvyB,EAAQU,EAAOJ,GACrE,YAaA,SAAS4E,KAkBL,QAASstB,GAAanyB,GAClB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,EAAS9G,EAAM8G,WACJzF,KAAXyF,IAIsB,IAAtBA,EAAOyT,aAIX2W,EAAYnmB,KAAKjE,EAAOzG,UACxB8wB,EAAYpmB,KAAKjE,EAAOyO,UAExBzO,EAAOzG,SAASmH,IAAI,EAAG,EAAG,GAC1BV,EAAOyO,SAAS/N,IAAI,EAAG,EAAG,GAC1BV,EAAOyO,SAAS/R,EAAe,IAAVT,KAAKyS,GAE1B1O,EAAOiN,UAAYjN,EAAOwM,OAE1B8d,EAAczuB,IAAImE,GAElB8W,EAAYjb,IAAIyuB,GAEhBtyB,EAAE0B,QAAS,EAEXsG,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,SAAUiT,IAGhC,QAAS+U,KACL,GAAIhV,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEvEkb,GADcD,EAAMuB,YACZvB,EAAMC,OAEdxV,EAAS9G,EAAM8G,WACJzF,KAAXyF,OAIqBzF,KAArByF,EAAOiN,YAIe,IAAtBjN,EAAOyT,aAIXzT,EAAOiN,UAAUpR,IAAImE,GACrBA,EAAOiN,cAAY1S,GAEnByF,EAAOzG,SAAS0K,KAAKmmB,GACrBpqB,EAAOyO,SAASxK,KAAKomB,GAErBrqB,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,cAAeiT,IA7ErC,GAAInb,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEpB,EAAQmB,EAAKnB,MACbyC,EAAQtB,EAAKsB,MAEb9B,GAAc,EAAIyD,EAAc7E,SAASkD,EAE7C9B,GAAY0D,OAAOC,GAAG,YAAa2sB,GACnCtwB,EAAY0D,OAAOC,GAAG,gBAAiB+sB,EAGvC,IAAIH,GAAc,GAAI7uB,OAAM4I,QACxBkmB,EAAc,GAAI9uB,OAAMivB,MAExBF,EAAgB,GAAI/uB,OAAMC,KAmE9B,OAlEA8uB,GAAcxtB,MAAM4D,IAAI,GAAK,GAAK,IAClC4pB,EAAc/wB,SAASmH,KAAK,KAAO,KAAO,GAiEnC7G,EA5FXhB,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQ4E,OAASA,CAEjB,IAAIyB,GAAe3G,EAAQ,iBAEvB2F,EAEJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAF5C+F,KAyGxCQ,gBAAgB,KAAK2rB,IAAI,SAAS9yB,EAAQU,EAAOJ,GACpD,YAUA,IAAIyyB,GAAS/yB,EAAQ,gBASrBU,GAAOJ,QAAU,SAAyB0yB,GACxCA,EAAMA,KACN,IAAIC,GAAiC,gBAAhBD,GAAIC,QAAuBD,EAAIC,QAAU,EAI1D5wB,EAAQ2wB,EAAI3wB,MACZmQ,EAAMwgB,EAAIxgB,GAYd,OAVAwgB,GAAIE,WAAaF,EAAIE,eACrBF,EAAIE,WAAWC,aAAc,EAC7BH,EAAI5sB,KAAO,0BAGJ4sB,GAAIxgB,UACJwgB,GAAI3wB,YACJ2wB,GAAII,gBACJJ,GAAIC,QAEJF,GACL1nB,UACE4nB,SAAWI,KAAM,IAAK7sB,MAAOysB,GAC7BzgB,KAAO6gB,KAAM,IAAK7sB,MAAOgM,GAAO,GAAI5O,OAAM8b,SAC1Crd,OAASgxB,KAAM,IAAK7sB,MAAO,GAAI5C,OAAMyJ,MAAMhL,KAE7CwJ,aA7BiB,kdA8BjBE,eA5BiB,+lCA6BhBinB,MAGFM,gBAAgB,KAAKC,IAAI,SAASvzB,EAAQU,EAAOJ,GACpD,YA4BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS4yB,GAAenxB,GAEtB,GAAIsI,GAAQ8oB,EAAK9oB,QACb8U,EAAU,GAAI7b,OAAM8b,QAAQ/U,EAgBhC,OAhBuC8U,GAAQrZ,KAAO,iBACtDqZ,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMsc,aAC1BT,EAAQQ,UAAYrc,MAAMsc,aAC1BT,EAAQiU,iBAAkB,EAKX,GAAI9vB,OAAMgI,gBAAe,EAAI+nB,EAAqB7yB,UAC/D6e,KAAM/b,MAAMgc,WACZvF,aAAa,EACbhY,MAAOA,EACPmQ,IAAKiN,EACL4T,KAAM,cAwBV,QAAS/F,KAMP,QAASsG,GAAWvtB,EAAKwtB,GACvB,GAAIxxB,GAAQM,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,SAC5EwC,EAAQxC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5EK,EAAQL,UAAU,GAClBS,EAAST,UAAU,GAGnBwK,GAAW,EAAI2mB,EAAkBhzB,UACnC6hB,KAAMtc,EACN0tB,MAAO,OACP/wB,MAAOA,EACPI,OAAQA,EACR4wB,OAAO,EACPH,KAAMA,IAGJzuB,EAAS+H,EAAS/H,OAElBhD,EAAW6xB,EAAe5xB,OACbO,KAAbR,IACFA,EAAW6xB,EAAe5xB,GAASmxB,EAAenxB,GAEpD,IAAI6xB,GAAO,GAAItwB,OAAMiB,KAAKsI,EAAU/K,EACpC8xB,GAAK/uB,MAAMgvB,SAAS,GAAIvwB,OAAM4I,QAAQ,GAAI,EAAG,GAE7C,IAAI4nB,GAAajvB,EAAQkvB,CAMzB,OAJAH,GAAK/uB,MAAMmvB,eAAeF,GAE1BF,EAAKtyB,SAASyD,EAAoB,GAAhBD,EAAOhC,OAAegxB,EAEjCF,EAGT,QAAShvB,GAAOmB,GACd,GAAI3D,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtE4xB,EAAa7xB,EAAKL,MAClBA,MAAuBO,KAAf2xB,EAA2B,SAAWA,EAC9CC,EAAa9xB,EAAKyC,MAClBA,MAAuBvC,KAAf4xB,EAA2B,EAAMA,EAEzCjzB,EAAQ,GAAIqC,OAAMC,MAElBqwB,EAAON,EAAWvtB,EAAKwtB,EAAMxxB,EAAO8C,EA2BxC,OA1BA5D,GAAM2C,IAAIgwB,GACV3yB,EAAM6D,OAAS8uB,EAAK/mB,SAAS/H,OAC7B7D,EAAM2hB,aAAe,WACnB,MAAO3hB,GAAM6D,OAAOpC,MAAQmC,EAAQlC,EAAO+f,YAE7CzhB,EAAMkzB,cAAgB,WACpB,MAAOlzB,GAAM6D,OAAOhC,OAAS+B,EAAQlC,EAAO+f,YAG9CzhB,EAAM4hB,gBAAkB,SAAUF,EAAGlZ,GACnCxI,EAAM2H,OAAOgrB,EACb,IAAIlqB,GAAI/G,EAAO+f,UACfkR,GAAON,EAAWvtB,EAAKwtB,EAAMxxB,EAAO8C,EAAO8d,EAAIjZ,EAAGD,EAAIC,EACtD,IAAI0qB,GAAUR,EAAK/mB,SAAS/H,OAAOhC,OAAS4G,EAAID,CAC5C2qB,GAAU,IACZruB,EAAMA,EAAIsuB,UAAU,EAAG,IAAOtuB,EAAI7F,OAASk0B,GAAW,MACtDR,EAAON,EAAWvtB,EAAKwtB,EAAMxxB,EAAO8C,EAAO8d,EAAIjZ,EAAGD,EAAIC,IAExDzI,EAAM2C,IAAIgwB,GACV3yB,EAAM6D,OAAS8uB,EAAK/mB,SAAS/H,QAG/B7D,EAAM+E,YAAc,SAAUD,GAC5B6tB,EAAK/mB,SAAShH,OAAOE,IAGhB9E,EA1ET,GAAIsyB,IAAO,EAAIe,EAAmB9zB,SAAS2yB,EAAKhW,OAE5CwW,IA2EJ,QACE/uB,OAAQA,EACR2vB,YAAa,WACX,MAAOzyB,YAzJblB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQkzB,eAAiBA,EACzBlzB,EAAQgtB,QAAUA,CAElB,IAAIwH,GAAsB90B,EAAQ,wBAE9B2zB,EAAuBhzB,EAAuBm0B,GAE9CC,EAAmB/0B,EAAQ,qBAE3B8zB,EAAoBnzB,EAAuBo0B,GAE3CC,EAAoBh1B,EAAQ,sBAE5B40B,EAAqBj0B,EAAuBq0B,GAE5CnuB,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCouB,EAAQj1B,EAAQ,UAEhByzB,EAAO1yB,EAAwBk0B,GA6C/BZ,EAAYpxB,EAAO+f,aAyFpBkS,SAAS,EAAE9tB,WAAW,GAAG+tB,uBAAuB,GAAGC,qBAAqB,GAAGC,oBAAoB,KAAKC,IAAI,SAASt1B,EAAQU,EAAOJ,GACnI,YAEAY,QAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQi1B,QAAUj1B,EAAQk1B,OAASl1B,EAAQm1B,QAAUn1B,EAAQqxB,UAAQ/uB,EAErE,IAAIgE,GAAU5G,EAAQ,aAItB,SAAiCY,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAUD,GAAOF,QAAUF,IAFjNgG,GAIzBtG,EAAQqxB,MAAQ,GAAI/tB,OAAMgB,mBAAoBvC,MAAO,SAAUqzB,aAAc9xB,MAAM+xB,eAmBjFr1B,EAAQm1B,QAAU,GAAI7xB,OAAMgB,kBAC7BtE,EAAQk1B,OAAS,GAAI5xB,OAAMgB,mBAAoBvC,MAAO,IACrD/B,EAAQi1B,QAAU,GAAI3xB,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,EAAO4Y,QAAS,OAEzGhsB,WAAW,IAAI2uB,IAAI,SAAS51B,EAAQU,EAAOJ,GAC9C,YAmCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASi1B,KACP,GAAInzB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DwF,EAAoB5F,EAAK6F,aACzBA,MAAqC3F,KAAtB0F,EAAkC,EAAMA,EACvDwtB,EAAWpzB,EAAK6H,IAChBA,MAAmB3H,KAAbkzB,EAAyB,EAAMA,EACrCC,EAAWrzB,EAAK4H,IAChBA,MAAmB1H,KAAbmzB,EAAyB,EAAMA,EACrCC,EAAYtzB,EAAKuzB,KACjBA,MAAqBrzB,KAAdozB,EAA0B,GAAMA,EACvCjzB,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDmzB,EAAqBxzB,EAAKyzB,cAC1BA,MAAuCvzB,KAAvBszB,EAAmCjzB,EAAOI,aAAe6yB,EACzE5yB,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACF2uB,MAAO,EACP5vB,MAAO+B,EACP0tB,KAAMA,EACNI,SAAS,EACTjD,UAAW,EACXhrB,QAAQ,EACRmC,IAAKA,EACLD,IAAKA,EACL5C,gBAAa9E,GACb0zB,qBAAkB1zB,GAClBge,UAAU,EAGZnZ,GAAMwuB,KAAOM,EAAe9uB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC1D7C,EAAM2rB,UAAYoD,EAAY/uB,EAAMwuB,MACpCxuB,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,IAE9D,IAAI/I,GAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAI4D,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIrB,OAAQ,EAsNZ,OArNAzC,GAAMyH,UAAY,SAAU5F,GAuD1B,QAASszB,GAAiBlwB,GACpBiB,EAAM4uB,QACRM,EAAWrwB,YAAYswB,EAAenvB,EAAMjB,MAAOiB,EAAM2rB,WAAWrvB,YAEpE4yB,EAAWrwB,YAAYmB,EAAMjB,MAAMzC,YAIvC,QAAS9B,KACHwF,EAAMmZ,SACRxe,EAASC,MAAMC,OAAOC,EAAOuL,mBACpB5L,EAAYC,WACrBC,EAASC,MAAMC,OAAOC,EAAOsL,iBAE7BzL,EAASC,MAAMC,OAAOC,EAAOqL,eAIjC,QAASipB,KACP7xB,EAAaG,MAAMJ,EAAIT,KAAKiG,IAAIjG,KAAKgG,IAAImsB,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAAOtH,EAAO,MAAWA,GAGpH,QAAS8zB,GAAatwB,GACpB/E,EAAOC,GAAgB8E,EAGzB,QAASuwB,GAAqBX,GAC5B3uB,EAAM2uB,MAAQY,EAAgBZ,GAC9B3uB,EAAMjB,MAAQywB,EAAkBxvB,EAAM2uB,MAAO3uB,EAAM8C,IAAK9C,EAAM6C,KAC1D7C,EAAM4uB,UACR5uB,EAAMjB,MAAQ0wB,EAAgBzvB,EAAMjB,MAAOiB,EAAMwuB,OAEnDxuB,EAAMjB,MAAQ2wB,EAAgB1vB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAG9D,QAAS+B,KACP5E,EAAMjB,MAAQ4wB,IACd3vB,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9D7C,EAAM2uB,MAAQY,EAAgBvvB,EAAM2uB,OAGtC,QAASgB,KACP,MAAOhT,YAAW3iB,EAAOC,IA+B3B,QAAS21B,GAAYh3B,IACG,IAAlBkB,EAAMC,UAGViG,EAAMmZ,UAAW,EACjBvgB,EAAE0B,QAAS,GAGb,QAASu1B,KACP,GAAI1Z,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACvE8d,EAAQ7C,EAAM6C,KAElB,KAAsB,IAAlBlf,EAAMC,QAAV,CAIAiG,EAAMmZ,UAAW,EAEjB5b,EAAa+P,oBACbwiB,EAAWxiB,mBAEX,IAAI7U,IAAI,GAAI0D,OAAM4I,SAAUsS,sBAAsB9Z,EAAaiQ,aAC3D9K,GAAI,GAAIvG,OAAM4I,SAAUsS,sBAAsByY,EAAWtiB,aAEzDuiB,EAAgB/vB,EAAMjB,KAE1BuwB,GAAqBU,EAAchX,GAASvgB,EAAGA,EAAGiK,EAAGA,KACrDusB,EAAiBjvB,EAAMjB,OACvBqwB,IACAC,EAAarvB,EAAMjB,OAEfgxB,IAAkB/vB,EAAMjB,OAASiB,EAAMC,aACzCD,EAAMC,YAAYD,EAAMjB,QAI5B,QAASkxB,KACPjwB,EAAMmZ,UAAW,EApKf5c,GAAOzC,EAAM2H,OAAOlF,GAExBzC,EAAM4H,QAAU/F,CAEhB,IAAIu0B,GAAuB,GAAR30B,EAAcC,EAAOS,aACpCk0B,EAAgBx0B,EAASH,EAAOS,aAChCm0B,EAAet0B,EAGfa,EAAO,GAAIR,OAAMS,YAAYszB,EAAcC,EAAeC,EAC9DzzB,GAAKM,UAAyB,GAAfizB,EAAoB,EAAG,EAGtC,IAAIhzB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAI0B,EAC3B5B,EAAcC,SAASmD,EAAY,GAAR/B,EAC3BrB,EAAcyE,KAAO,eAGrB,IAAI0xB,GAAW,GAAIl0B,OAAMiB,KAAKT,EAAKU,QAAS4sB,EAAgBC,MAC5DpvB,GAAO2K,iBAAiB4qB,EAAS3qB,SAAU5K,EAAOoM,WAClDmpB,EAASl2B,SAASC,EAAY,GAAR0B,EACtBu0B,EAASl2B,SAASmD,EAAI4yB,EAAe10B,EAAOS,YAE5C,IAAItB,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOqL,gBACvD5I,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChD4C,GAAapD,SAASC,EAAY,GAAR0B,EAC1B5B,EAAcuC,IAAIc,EAElB,IAAIuyB,GAAa,GAAI3zB,OAAMiB,KAAK,GAAIjB,OAAMS,YAAY,IAAM,IAAM,IAAM,EAAG,EAAG,GAAIqtB,EAAgB+D,QAClG8B,GAAW31B,SAASmD,EAAI4yB,EACxBh2B,EAAcuC,IAAIqzB,GAClBA,EAAW/1B,SAAU,CAErB,IAAIm1B,GAAa9zB,EAAYqC,OAAOuC,EAAMjB,MAAMzC,WAChD4yB,GAAW/0B,SAASmD,EAAI9B,EAAOqvB,wBAAkC,GAARtvB,EACzD2zB,EAAW/0B,SAASC,EAAY,IAAR0B,EACxBozB,EAAW/0B,SAASyD,GAAK,KAEzB,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAO+L,qBAC/D9I,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,GAC1CS,EAAMoC,KAAO,QACbpC,EAAME,IAAIoB,EAAiB3D,EAAem2B,EAAUnB,EAAYnxB,GAEhEjE,EAAM2C,IAAIF,GAEV0yB,EAAiBjvB,EAAMjB,OACvBqwB,IA+CAt1B,EAAMkH,SAAW,SAAUC,GAEzB,MADAjB,GAAMC,YAAcgB,EACbnH,GAGTA,EAAM00B,KAAO,SAAUA,GAUrB,MATAxuB,GAAMwuB,KAAOA,EACbxuB,EAAM2rB,UAAYoD,EAAY/uB,EAAMwuB,MACpCxuB,EAAM4uB,SAAU,EAEhB5uB,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAE9DysB,EAAqBtvB,EAAM2uB,OAC3BM,EAAiBjvB,EAAMjB,OACvBqwB,IACOt1B,GAGTA,EAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,EAGT,IAAIW,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAawxB,GACnCn1B,EAAY0D,OAAOC,GAAG,WAAYyxB,GAClCp1B,EAAY0D,OAAOC,GAAG,aAAc6xB,GA0CpCn2B,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,IACrD2Y,EAAqBC,EAAQ1X,QAAS3D,MAAOA,EAAOyC,MAAOA,GAsC/D,OApCAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvByW,EAAmBxW,OAAOD,GAEtBuB,EAAMW,SACRiE,IACAqqB,EAAiBjvB,EAAMjB,OACvBqwB,KAEF50B,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGTA,EAAMgJ,IAAM,SAAUoR,GAMpB,MALAlU,GAAM8C,IAAMoR,EACZlU,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9DysB,EAAqBtvB,EAAM2uB,OAC3BM,EAAiBjvB,EAAMjB,OACvBqwB,IACOt1B,GAGTA,EAAM+I,IAAM,SAAUqR,GAMpB,MALAlU,GAAM6C,IAAMqR,EACZlU,EAAM2uB,MAAQK,EAAkBhvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9DysB,EAAqBtvB,EAAM2uB,OAC3BM,EAAiBjvB,EAAMjB,OACvBqwB,IACOt1B,GAELA,EAAM8G,QAAQ9G,EAAM8G,OAAOqB,gBACxBnI,GAETA,EAAMyH,UAAUmtB,GACT50B,EAyBT,QAASk2B,GAAchX,EAAOsX,GAC5BC,EAAG1rB,KAAKyrB,EAAQ5tB,GAAGqU,IAAIuZ,EAAQ73B,GAC/B+3B,EAAG3rB,KAAKmU,GAAOjC,IAAIuZ,EAAQ73B,EAE3B,IAAIg4B,GAAYD,EAAGE,gBAAgBH,EAEnCI,GAAK9rB,KAAKmU,GAAOjC,IAAIuZ,EAAQ73B,GAE7Bm4B,EAAK/rB,KAAKyrB,EAAQ5tB,GAAGqU,IAAIuZ,EAAQ73B,GAAGksB,WAEpC,IAAIzM,GAAOyY,EAAKhM,YAAYkM,IAAID,IAAS,EAAI,GAAK,EAE9C73B,EAASu3B,EAAQ73B,EAAEq4B,WAAWR,EAAQ5tB,GAAKwV,EAE3CyW,EAAQ8B,EAAU13B,SAAWA,CAOjC,OANI41B,GAAQ,IACVA,EAAQ,GAENA,EAAQ,IACVA,EAAQ,GAEHA,EAOT,QAASoC,GAAUhyB,EAAOiyB,EAAMC,EAAOC,EAAMC,GAC3C,MAAOD,IAAQC,EAAQD,IAASnyB,EAAQiyB,IAASC,EAAQD,GAG3D,QAASzB,GAAgBZ,GACvB,MAAIA,GAAQ,EACH,EAELA,EAAQ,EACH,EAEFA,EAGT,QAASe,GAAgB3wB,EAAO+D,EAAKD,GACnC,MAAI9D,GAAQ+D,EACHA,EAEL/D,EAAQ8D,EACHA,EAEF9D,EAGT,QAAS+vB,GAAe/vB,EAAO+D,EAAKD,GAMlC,OAHQA,EAAMC,GACC,IAYjB,QAAS0sB,GAAkBb,EAAO7rB,EAAKD,GACrC,MAAOkuB,GAAUpC,EAAO,EAAK,EAAK7rB,EAAKD,GAGzC,QAASmsB,GAAkBjwB,EAAO+D,EAAKD,GACrC,MAAOkuB,GAAUhyB,EAAO+D,EAAKD,EAAK,EAAK,GAGzC,QAAS4sB,GAAgB1wB,EAAOyvB,GAC9B,MAAIzvB,GAAQyvB,GAAQ,EACX3xB,KAAKu0B,MAAMryB,EAAQyvB,GAAQA,EAE7BzvB,EAGT,QAASgwB,GAAYzxB,GAEnB,MADAA,GAAIA,EAAEhB,WACFgB,EAAEkN,QAAQ,MAAQ,EACblN,EAAEvE,OAASuE,EAAEkN,QAAQ,KAAO,EAE5B,EAIX,QAAS2kB,GAAepwB,EAAOsyB,GAC7B,GAAIx0B,KAAKy0B,IAAIvyB,GAAS,KAAkB,IAAVA,EAAa,MAAOA,GAAMwyB,cAAc,EACtE,IAAIC,GAAQ30B,KAAK40B,IAAI,GAAIJ,EACzB,OAAOx0B,MAAKu0B,MAAMryB,EAAQyyB,GAASA,EArarC/3B,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAU+0B,CAElB,IAAInvB,GAAa1G,EAAQ,eAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAE3B0xB,EAAkB3wB,EAAwB+F,GAE1CC,EAAQ/G,EAAQ,UAEhBgG,EAAOjF,EAAwBgG,GAE/BoW,EAAWnd,EAAQ,aAEnB4c,EAAU7b,EAAwBoc,GAkSlC6a,EAAK,GAAIp0B,OAAM4I,QACfyrB,EAAK,GAAIr0B,OAAM4I,QACf4rB,EAAO,GAAIx0B,OAAM4I,QACjB6rB,EAAO,GAAIz0B,OAAM4I,UAoGlBvF,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGiW,YAAY,GAAGhW,oBAAoB,GAAGC,cAAc,KAAK6xB,IAAI,SAASn5B,EAAQU,EAAOJ,GACjJ,YAmCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASo4B,KAyEP,QAASC,GAAahzB,GACpB5E,EAAOC,GAAgB2E,EACvBpB,EAAYqB,YAAYD,GAG1B,QAASizB,KACP,GAAIC,EAGF,MAFAA,GAAS/3B,SAAW+3B,EAAS/3B,aACzB+3B,EAAS/3B,SAASD,EAAM8G,OAAO0C,eAAewuB,GAGlDA,GAAWvuB,IAAIC,MAAM/F,OAAO,YAC5B3D,EAAM2C,IAAIq1B,GACVA,EAASlxB,OAAS9G,EAAM8G,OACxB9G,EAAM8G,OAAO0C,eAAewuB,GAC5BA,EAAS33B,SAASmD,EAAI/B,EACtBu2B,EAAS33B,SAASyD,EAAIpC,EAAOsT,cAC7BgjB,EAASruB,aACTquB,EAASrP,YAAY,SAAUjN,GAC7B,GAAI5W,GAAM5E,EAAOC,EACjB,QAAQub,GACN,IAAK,KAIHuc,WAAWF,EAAgB,IAC3B,MACF,KAAK,KACHjzB,EAAMA,EAAIsuB,UAAU,EAAGtuB,EAAI7F,OAAS,GACpC64B,EAAahzB,EACb,MACF,SACEA,GAAO4W,EACPoc,EAAahzB,MAMvB,QAAS/E,GAAcjB,GAYrBi5B,IAEAj5B,EAAE0B,QAAS,EAGb,QAASE,KAEHC,EAAYC,WACdC,EAASC,MAAMC,OAAOC,EAAOsM,sBAE7BzM,EAASC,MAAMC,OAAOC,EAAOqM,YArIjC,GAAIlM,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DC,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAGxDG,EAAuB,GAART,EAAcC,EAAOS,aACpCC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,UAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACIG,GAAcV,EAAeE,EAC7BS,EAAO,GAAIR,OAAMS,YAAYZ,EAAcE,EAAe7B,EAAcwC,KAAKC,MAFjE,EAEmFJ,GAFnF,EAAA,EAGD,IAAIP,OAAMY,oBAAoB,GACpCC,OAAOL,GAChBA,EAAKM,UAAyB,GAAfjB,EAAoB,EAAG,EAGtC,IAAIkB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAmB,GAAfC,EAC3BH,EAAcC,SAASmD,EAAY,GAAR/B,CAE3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAO,WAChD2C,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAGlB,IAAIC,GAAcpC,EAAYqC,OAAOzD,EAAOC,IAAiBW,MAAO,EAAW8C,MAAO,MAKtFF,GAAYrD,SAASmD,EAAI,KACzBE,EAAYrD,SAASC,EAAmB,IAAfC,EACzBmD,EAAYrD,SAASyD,GAAK,KAC1BL,EAAad,IAAIe,EAEjB,IAAIK,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GAEnCW,GAMA,IAAIs3B,EA6DJh4B,GAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGFA,EA/LTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUs4B,CAElB,IAAIK,GAASz5B,EAAQ,WAIjB0G,GAFM3F,EAAwB04B,GAEjBz5B,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KA8KhCE,WAAW,EAAEC,SAAS,EAAEwyB,UAAU,GAAGvyB,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKqyB,IAAI,SAAS35B,EAAQU,EAAOJ,GAC/I,YAoBA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAAS44B,GAAgB/2B,EAAawD,GACpC,GAAIrD,GAAQL,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC5EY,EAAQZ,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,KAC5Ek3B,EAAUl3B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,SAC9Em3B,EAAUn3B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAKJ,EAAO2L,aACrF/I,EAAQxC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAG5EpB,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,YAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOuC,EAAM,IAG5C,IAAI0zB,GAAsB,GAAIn2B,OAAMC,KACpCtC,GAAM2C,IAAI61B,EAEV,IAAIpX,GAAO9f,EAAYqC,OAAOmB,EAAItC,YAAc1B,MAAOw3B,EAAS10B,MAAOA,GACvE40B,GAAoB71B,IAAIye,GACxBphB,EAAMgQ,SAASoR,KAAOA,EAEtBphB,EAAMkP,UAAY,SAAUpK,OACdzD,KAARyD,IAAmBA,EAAM,eAC7Bsc,EAAKrc,YAAYD,EAAItC,aAIvBxC,EAAMy4B,UAAY,SAAU3zB,GAC1Bsc,EAAKrc,YAAYD,EAAI4zB,QAAQ,KAG/BtX,EAAK/gB,SAASC,EAAI0B,CAElB,IAEI22B,GAAal3B,EAKbm3B,EAAoB,GAAIv2B,OAAMS,YAAY61B,EAJ5B,IAIqD32B,EAAO,EAAG,EAAG,EACpF42B,GAAkBnlB,cAAa,GAAIpR,OAAMuR,SAAUilB,gBAA6B,GAAbF,EAPtD,IAOiF,EAAG,GAEjG,IAAIG,GAAgB,GAAIz2B,OAAMiB,KAAKs1B,EAAmBzI,EAAgBC,MAStE,OARApvB,GAAO2K,iBAAiBmtB,EAAcltB,SAAU2sB,GAEhDO,EAAcz4B,SAASyD,EAAI,IAC3B00B,EAAoB71B,IAAIm2B,GACxBN,EAAoBn4B,SAASyD,GAAI,IAEjC9D,EAAM0O,KAAOoqB,EAEN94B,EAqBT,QAASqR,GAAc/P,EAAa8P,EAAK2nB,GACvC,GAAIC,GAAe53B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK63B,EACnFC,EAAc93B,UAAU,GAExB2gB,EAAUzgB,EAAYqC,OAAOyN,GAE7B+nB,EAAW,GAAI92B,OAAMC,MAErBof,EAAIK,EAAQJ,eACZnZ,EAAI9G,EAAO+f,WAAaM,EAAQle,OAAOhC,MAE3Cs3B,GAAS94B,SAASmD,EAAI,GAAMu1B,EAC5BI,EAAS94B,SAASyD,GAAK,KAAOk1B,EAAexwB,EAC7C2wB,EAAS94B,SAASC,EAAkB,EAAd44B,EACtBC,EAASl5B,SAAU,EAGnBk5B,EAASx2B,IAAIof,EAGb,IAAIqX,GAAU1X,EAAI,IACd2X,EAAU7wB,EAAI,IACd8wB,EAAU,GAAIj3B,OAAMkc,cAAc6a,EAASC,EAAS,EAAG,GACvDE,EAAgB,GAAIl3B,OAAMiB,KAAKg2B,EAASnJ,EAAgB6D,QAY5D,OAXAuF,GAAcl5B,SAASmD,EAAI,EAC3B+1B,EAAcl5B,SAASyD,EAAI0E,EAAI,EAC/B+wB,EAAcl5B,SAASC,EAAmB,IAAd44B,EAC5BC,EAASx2B,IAAI42B,GAEbxX,EAAQ1hB,SAASmD,GAAK,GAAMke,EAC5BK,EAAQ1hB,SAASyD,GAAK,GAAM0E,EAAI,MAEhC2wB,EAASnpB,SAAS0R,EAAIA,EACtByX,EAASnpB,SAASxH,EAAIA,EAEf2wB,EAhITx5B,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAU84B,EAClBt5B,EAAQsS,cAAgBA,CAExB,IAAIhM,GAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCE,EAAmB9G,EAAQ,qBAE3B0xB,EAAkB3wB,EAAwB+F,GAE1CD,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GA4EjC2zB,EAAsBv3B,EAAOI,aAAeJ,EAAOoT,gBAuCpDpP,WAAW,EAAEG,WAAW,GAAGC,oBAAoB,KAAK0zB,IAAI,SAAS/6B,EAAQU,EAAOJ,GACnF,YAYA,SAASigB,GAAoBya,GAC3B,GAAI3yB,GAAS2yB,EAAQ3yB,MASrB,IAAI2yB,EAAQ5gB,eAAgB,MAAOmG,GAAoBlY;gCAIvD,KAAK2yB,EAAQx5B,QAAS,OAAO,CAE7B,MAAO6G,EAAOA,SAAWA,GAAQ,CAC/B,GAAIA,EAAOmR,gBAAkBnR,EAAO7G,QAAS,OAAO,CACpD6G,GAASA,EAAOA,OAElB,QAAKA,EAAOwM,QACLxM,EAAO7G,QAUhB,QAASkQ,GAAcmD,EAAQD,EAAOpT,GACpC,GAAIy5B,GAAUpmB,EAAO6B,SAASR,SAAStB,EACvCA,GAAMpT,QAAUA,EAEZA,IAAYy5B,GAASr3B,MAAMC,MAAM1C,UAAU+C,IAAI3D,KAAKsU,EAAQD,IAC3DpT,GAAWy5B,GAASr3B,MAAMC,MAAM1C,UAAU+H,OAAO3I,KAAKsU,EAAQD,GAC9DC,EAAOrT,SAAS0Q,QAAQC,KAAK,iCAAmCyC,EAAQ,wBAA0BC,GAUzG,QAASe,GAAkBrU,GAEzB,IADA,GAAI8G,GAAS6yB,EAAU35B,GAChB8G,EAAOA,SAAWA,GACvBA,EAASA,EAAOA,MACjB,OAAOA,GAGV,QAAS6yB,GAAU35B,GACjB,GAAIA,EAAM8G,OAAQ,MAAO9G,GAAM8G,MAE/B,KADA,GAAImN,GAAOjU,EAAMsT,QACTW,EAAKnN,QAAU9G,EAAMsT,QAC3BW,EAAOA,EAAKX,MACb,OAAOW,GAAKnN,OAKf,QAASwQ,GAAiBD,EAAKhY,GAC7B,GAAIu6B,KAWJ,OAVAv6B,GAAIw6B,SAAS,SAAUx7B,GACjBA,EAAEuN,UAAYvN,EAAEuN,SAASkuB,kBAAgE,IAA5Cz7B,EAAEuN,SAASmuB,WAAW15B,SAAS25B,WAC9E37B,EAAEuN,SAASkuB,kBAAmB,EAC9BF,EAAUhrB,KAAKvQ,EAAEuN,aAGrByL,EAAI4iB,cAAc56B,GAClBu6B,EAAUpqB,QAAQ,SAAU7G,GAC1B,MAAOA,GAAEmxB,kBAAmB,IAEvBziB,EAtFT1X,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQigB,oBAAsBA,EAC9BjgB,EAAQoR,cAAgBA,EACxBpR,EAAQsV,kBAAoBA,EAC5BtV,EAAQ46B,UAAYA,EACpB56B,EAAQuY,iBAAmBA,OAkFrB4iB,IAAI,SAASz7B,EAAQU,EAAOJ,GAClC,YAkBAsD,OAAMY,oBAAsB,SAAUk3B,GAEpChjB,KAAKgjB,iBAAgC94B,KAAjB84B,EAA6B,EAAIA,GAIvD93B,MAAMY,oBAAoBrD,UAAUsD,OAAS,SAAU0I,GAIrD,IAFA,GAAIwuB,GAAUjjB,KAAKgjB,aAEZC,KAAY,GAEjBjjB,KAAKkjB,OAAOzuB,EAGdA,GAAS0uB,qBACT1uB,EAAS2uB,wBAGX,WA0FEl4B,MAAMY,oBAAoBrD,UAAUy6B,OAAS,SAAUzuB,GACrD,gBAyOE4uB,IAAI,SAAS/7B,EAAQU,EAAOJ,GAKlC,QAAS07B,GAAQhtB,GACf,MACKA,GAAIitB,mBACqB,yBAAzB51B,EAAI9F,KAAKyO,EAAIktB,SACbjtB,MAAMC,QAAQF,GARrB,GAAI3I,GAAMnF,OAAOC,UAAU4C,QAE3BrD,GAAOJ,QAAU07B,OAUXG,IAAI,SAASn8B,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAU,SAAiB87B,EAAKC,GACtC,MAAsB,gBAARD,GACXA,EACgB,gBAARC,GAAmBA,EAAM,QAE/BC,IAAI,SAASt8B,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAU,SAASi8B,GACxB,OAAQA,GACN,IAAK,OACH,MAAOC,UACT,KAAK,QACH,MAAOC,WACT,KAAK,QACH,MAAOC,WACT,KAAK,QACH,MAAOC,WACT,KAAK,SACH,MAAOC,YACT,KAAK,SACH,MAAOC,YACT,KAAK,UACH,MAAOrvB,aACT,KAAK,UACH,MAAOsvB,aACT,KAAK,QACH,MAAO7tB,MACT,KAAK,gBACH,MAAO8tB,0BAIPC,IAAI,SAASh9B,EAAQU,EAAOJ,GAsBlC,YAuBA,SAAS28B,GAAmBC,GACtBhrB,SAAWA,QAAQC,MAAMD,QAAQC,KAAK+qB,GAO5C,QAASC,KACPA,EAAaC,KAAK78B,KAAKmY,MAgBzB,QAAS2kB,GAAcC,GACrB,GAAwB,kBAAbA,GACT,KAAM,IAAIC,WAAU,yEAA4ED,IAsCpG,QAASE,GAAiBC,GACxB,WAA2B76B,KAAvB66B,EAAKC,cACAP,EAAaQ,oBACfF,EAAKC,cAmDd,QAASE,GAAaC,EAAQxK,EAAMiK,EAAUQ,GAC5C,GAAIniB,GACA/V,EACAm4B,CAsBJ,IApBAV,EAAcC,GAEd13B,EAASi4B,EAAOhxB,YACDjK,KAAXgD,GACFA,EAASi4B,EAAOhxB,QAAU3L,OAAOgE,OAAO,MACxC24B,EAAOG,aAAe,QAIKp7B,KAAvBgD,EAAOq4B,cACTJ,EAAOjzB,KAAK,cAAeyoB,EACfiK,EAASA,SAAWA,EAASA,SAAWA,GAIpD13B,EAASi4B,EAAOhxB,SAElBkxB,EAAWn4B,EAAOytB,QAGHzwB,KAAbm7B,EAEFA,EAAWn4B,EAAOytB,GAAQiK,IACxBO,EAAOG,iBAeT,IAbwB,kBAAbD,GAETA,EAAWn4B,EAAOytB,GAChByK,GAAWR,EAAUS,IAAaA,EAAUT,GAErCQ,EACTC,EAAS/T,QAAQsT,GAEjBS,EAAS5tB,KAAKmtB,IAIhB3hB,EAAI6hB,EAAiBK,IACb,GAAKE,EAASv9B,OAASmb,IAAMoiB,EAASG,OAAQ,CACpDH,EAASG,QAAS,CAGlB,IAAIjb,GAAI,GAAI9iB,OAAM,+CACE49B,EAASv9B,OAAS,IAAM29B,OAAO9K,GAAQ,oEAG3DpQ,GAAE7c,KAAO,8BACT6c,EAAEmb,QAAUP,EACZ5a,EAAEoQ,KAAOA,EACTpQ,EAAEob,MAAQN,EAASv9B,OACnBy8B,EAAmBha,GAIvB,MAAO4a,GAcT,QAASS,KACP,IAAK5lB,KAAK6lB,MAGR,MAFA7lB,MAAKmlB,OAAO3V,eAAexP,KAAK2a,KAAM3a,KAAK8lB,QAC3C9lB,KAAK6lB,OAAQ,EACY,IAArB57B,UAAUnC,OACLkY,KAAK4kB,SAAS/8B,KAAKmY,KAAKmlB,QAC1BnlB,KAAK4kB,SAAS/qB,MAAMmG,KAAKmlB,OAAQl7B,WAI5C,QAAS87B,GAAUZ,EAAQxK,EAAMiK,GAC/B,GAAI71B,IAAU82B,OAAO,EAAOC,WAAQ57B,GAAWi7B,OAAQA,EAAQxK,KAAMA,EAAMiK,SAAUA,GACjFoB,EAAUJ,EAAYK,KAAKl3B,EAG/B,OAFAi3B,GAAQpB,SAAWA,EACnB71B,EAAM+2B,OAASE,EACRA,EA0HT,QAASE,GAAWf,EAAQxK,EAAMwL,GAChC,GAAIj5B,GAASi4B,EAAOhxB,OAEpB,QAAejK,KAAXgD,EACF,QAEF,IAAIk5B,GAAal5B,EAAOytB,EACxB,YAAmBzwB,KAAfk8B,KAGsB,kBAAfA,GACFD,GAAUC,EAAWxB,UAAYwB,IAAeA,GAElDD,EACLE,EAAgBD,GAAcE,EAAWF,EAAYA,EAAWt+B,QAoBpE,QAASy+B,GAAc5L,GACrB,GAAIztB,GAAS8S,KAAK7L,OAElB,QAAejK,KAAXgD,EAAsB,CACxB,GAAIk5B,GAAal5B,EAAOytB,EAExB,IAA0B,kBAAfyL,GACT,MAAO,EACF,QAAmBl8B,KAAfk8B,EACT,MAAOA,GAAWt+B,OAItB,MAAO,GAOT,QAASw+B,GAAWhwB,EAAKtP,GAEvB,IAAK,GADD4M,GAAO,GAAI2C,OAAMvP,GACZG,EAAI,EAAGA,EAAIH,IAAKG,EACvByM,EAAKzM,GAAKmP,EAAInP,EAChB,OAAOyM,GAGT,QAAS4yB,GAAUC,EAAMluB,GACvB,KAAOA,EAAQ,EAAIkuB,EAAK3+B,OAAQyQ,IAC9BkuB,EAAKluB,GAASkuB,EAAKluB,EAAQ,EAC7BkuB,GAAKC,MAGP,QAASL,GAAgB/vB,GAEvB,IAAK,GADDqwB,GAAM,GAAIpwB,OAAMD,EAAIxO,QACfX,EAAI,EAAGA,EAAIw/B,EAAI7+B,SAAUX,EAChCw/B,EAAIx/B,GAAKmP,EAAInP,GAAGy9B,UAAYtuB,EAAInP,EAElC,OAAOw/B,GAGT,QAASC,GAAKlB,EAASh4B,GACrB,MAAO,IAAIm5B,SAAQ,SAAUC,EAASC,GACpC,QAASC,GAAcC,GACrBvB,EAAQlW,eAAe9hB,EAAMw5B,GAC7BH,EAAOE,GAGT,QAASC,KAC+B,kBAA3BxB,GAAQlW,gBACjBkW,EAAQlW,eAAe,QAASwX,GAElCF,KAAW/S,MAAMlsB,KAAKoC,YAGxBk9B,EAA+BzB,EAASh4B,EAAMw5B,GAAYN,MAAM,IACnD,UAATl5B,GACF05B,EAA8B1B,EAASsB,GAAiBJ,MAAM,MAKpE,QAASQ,GAA8B1B,EAAS2B,EAASC,GAC7B,kBAAf5B,GAAQv4B,IACjBg6B,EAA+BzB,EAAS,QAAS2B,EAASC,GAI9D,QAASH,GAA+BzB,EAASh4B,EAAMk3B,EAAU0C,GAC/D,GAA0B,kBAAf5B,GAAQv4B,GACbm6B,EAAMV,KACRlB,EAAQkB,KAAKl5B,EAAMk3B,GAEnBc,EAAQv4B,GAAGO,EAAMk3B,OAEd,CAAA,GAAwC,kBAA7Bc,GAAQ5Y,iBAYxB,KAAM,IAAI+X,WAAU,4EAA+Ea,GATnGA,GAAQ5Y,iBAAiBpf,EAAM,QAAS65B,GAAaC,GAG/CF,EAAMV,MACRlB,EAAQ+B,oBAAoB/5B,EAAM65B,GAEpC3C,EAAS4C,MApdf,GAOIE,GAPAC,EAAuB,gBAAZC,SAAuBA,QAAU,KAC5CC,EAAeF,GAAwB,kBAAZA,GAAE9tB,MAC7B8tB,EAAE9tB,MACF,SAAsBsrB,EAAQ2C,EAAU5mB,GACxC,MAAO6mB,UAASt/B,UAAUoR,MAAMhS,KAAKs9B,EAAQ2C,EAAU5mB,GAKzDwmB,GADEC,GAA0B,kBAAdA,GAAEK,QACCL,EAAEK,QACVx/B,OAAOy/B,sBACC,SAAwB9C,GACvC,MAAO38B,QAAO0/B,oBAAoB/C,GAC/BpkB,OAAOvY,OAAOy/B,sBAAsB9C,KAGxB,SAAwBA,GACvC,MAAO38B,QAAO0/B,oBAAoB/C,GAQtC,IAAIgD,GAAc/W,OAAO3F,OAAS,SAAqB3d,GACrD,MAAOA,KAAUA,EAMnB9F,GAAOJ,QAAU68B,EACjBz8B,EAAOJ,QAAQg/B,KAAOA,EAGtBnC,EAAaA,aAAeA,EAE5BA,EAAah8B,UAAU0L,YAAUjK,GACjCu6B,EAAah8B,UAAU68B,aAAe,EACtCb,EAAah8B,UAAUu8B,kBAAgB96B,EAIvC,IAAI+6B,GAAsB,EAQ1Bz8B,QAAOqF,eAAe42B,EAAc,uBAClC2D,YAAY,EACZh4B,IAAK,WACH,MAAO60B,IAET50B,IAAK,SAASm3B,GACZ,GAAmB,gBAARA,IAAoBA,EAAM,GAAKW,EAAYX,GACpD,KAAM,IAAIa,YAAW,kGAAoGb,EAAM,IAEjIvC,GAAsBuC,KAI1B/C,EAAaC,KAAO,eAEGx6B,KAAjB8V,KAAK7L,SACL6L,KAAK7L,UAAY3L,OAAO8/B,eAAetoB,MAAM7L,UAC/C6L,KAAK7L,QAAU3L,OAAOgE,OAAO,MAC7BwT,KAAKslB,aAAe,GAGtBtlB,KAAKglB,cAAgBhlB,KAAKglB,mBAAiB96B,IAK7Cu6B,EAAah8B,UAAU8/B,gBAAkB,SAAyBvhC,GAChE,GAAiB,gBAANA,IAAkBA,EAAI,GAAKmhC,EAAYnhC,GAChD,KAAM,IAAIqhC,YAAW,gFAAkFrhC,EAAI,IAG7G,OADAgZ,MAAKglB,cAAgBh+B,EACdgZ,MASTykB,EAAah8B,UAAU+/B,gBAAkB,WACvC,MAAO1D,GAAiB9kB,OAG1BykB,EAAah8B,UAAUyJ,KAAO,SAAcyoB,GAE1C,IAAK,GADDzZ,MACK/Z,EAAI,EAAGA,EAAI8C,UAAUnC,OAAQX,IAAK+Z,EAAKzJ,KAAKxN,UAAU9C,GAC/D,IAAIshC,GAAoB,UAAT9N,EAEXztB,EAAS8S,KAAK7L,OAClB,QAAejK,KAAXgD,EACFu7B,EAAWA,OAA4Bv+B,KAAjBgD,EAAOyW,UAC1B,KAAK8kB,EACR,OAAO,CAGT,IAAIA,EAAS,CACX,GAAIC,EAGJ,IAFIxnB,EAAKpZ,OAAS,IAChB4gC,EAAKxnB,EAAK,IACRwnB,YAAcjhC,OAGhB,KAAMihC,EAGR,IAAIzB,GAAM,GAAIx/B,OAAM,oBAAsBihC,EAAK,KAAOA,EAAGC,QAAU,IAAM,IAEzE,MADA1B,GAAI2B,QAAUF,EACRzB,EAGR,GAAII,GAAUn6B,EAAOytB,EAErB,QAAgBzwB,KAAZm9B,EACF,OAAO,CAET,IAAuB,kBAAZA,GACTQ,EAAaR,EAASrnB,KAAMkB,OAI5B,KAAK,GAFD2nB,GAAMxB,EAAQv/B,OACdghC,EAAYxC,EAAWe,EAASwB,GAC3B1hC,EAAI,EAAGA,EAAI0hC,IAAO1hC,EACzB0gC,EAAaiB,EAAU3hC,GAAI6Y,KAAMkB,EAGrC,QAAO,GAiETujB,EAAah8B,UAAUsgC,YAAc,SAAqBpO,EAAMiK,GAC9D,MAAOM,GAAallB,KAAM2a,EAAMiK,GAAU,IAG5CH,EAAah8B,UAAU0E,GAAKs3B,EAAah8B,UAAUsgC,YAEnDtE,EAAah8B,UAAUugC,gBACnB,SAAyBrO,EAAMiK,GAC7B,MAAOM,GAAallB,KAAM2a,EAAMiK,GAAU,IAqBhDH,EAAah8B,UAAUm+B,KAAO,SAAcjM,EAAMiK,GAGhD,MAFAD,GAAcC,GACd5kB,KAAK7S,GAAGwtB,EAAMoL,EAAU/lB,KAAM2a,EAAMiK,IAC7B5kB,MAGTykB,EAAah8B,UAAUwgC,oBACnB,SAA6BtO,EAAMiK,GAGjC,MAFAD,GAAcC,GACd5kB,KAAKgpB,gBAAgBrO,EAAMoL,EAAU/lB,KAAM2a,EAAMiK,IAC1C5kB,MAIbykB,EAAah8B,UAAU+mB,eACnB,SAAwBmL,EAAMiK,GAC5B,GAAI6B,GAAMv5B,EAAQhE,EAAU/B,EAAG+hC,CAK/B,IAHAvE,EAAcC,OAGC16B,MADfgD,EAAS8S,KAAK7L,SAEZ,MAAO6L,KAGT,QAAa9V,MADbu8B,EAAOv5B,EAAOytB,IAEZ,MAAO3a,KAET,IAAIymB,IAAS7B,GAAY6B,EAAK7B,WAAaA,EACb,KAAtB5kB,KAAKslB,aACTtlB,KAAK7L,QAAU3L,OAAOgE,OAAO,aAEtBU,GAAOytB,GACVztB,EAAOsiB,gBACTxP,KAAK9N,KAAK,iBAAkByoB,EAAM8L,EAAK7B,UAAYA,QAElD,IAAoB,kBAAT6B,GAAqB,CAGrC,IAFAv9B,GAAY,EAEP/B,EAAIs/B,EAAK3+B,OAAS,EAAGX,GAAK,EAAGA,IAChC,GAAIs/B,EAAKt/B,KAAOy9B,GAAY6B,EAAKt/B,GAAGy9B,WAAaA,EAAU,CACzDsE,EAAmBzC,EAAKt/B,GAAGy9B,SAC3B17B,EAAW/B,CACX,OAIJ,GAAI+B,EAAW,EACb,MAAO8W,KAEQ,KAAb9W,EACFu9B,EAAKtO,QAELqO,EAAUC,EAAMv9B,GAGE,IAAhBu9B,EAAK3+B,SACPoF,EAAOytB,GAAQ8L,EAAK,QAEQv8B,KAA1BgD,EAAOsiB,gBACTxP,KAAK9N,KAAK,iBAAkByoB,EAAMuO,GAAoBtE,GAG1D,MAAO5kB,OAGbykB,EAAah8B,UAAU0gC,IAAM1E,EAAah8B,UAAU+mB,eAEpDiV,EAAah8B,UAAU2gC,mBACnB,SAA4BzO,GAC1B,GAAImO,GAAW57B,EAAQ/F,CAGvB,QAAe+C,MADfgD,EAAS8S,KAAK7L,SAEZ,MAAO6L,KAGT,QAA8B9V,KAA1BgD,EAAOsiB,eAUT,MATyB,KAArBvlB,UAAUnC,QACZkY,KAAK7L,QAAU3L,OAAOgE,OAAO,MAC7BwT,KAAKslB,aAAe,OACMp7B,KAAjBgD,EAAOytB,KACY,KAAtB3a,KAAKslB,aACTtlB,KAAK7L,QAAU3L,OAAOgE,OAAO,YAEtBU,GAAOytB,IAEX3a,IAIT,IAAyB,IAArB/V,UAAUnC,OAAc,CAC1B,GACIS,GADAyO,EAAOxO,OAAOwO,KAAK9J,EAEvB,KAAK/F,EAAI,EAAGA,EAAI6P,EAAKlP,SAAUX,EAEjB,oBADZoB,EAAMyO,EAAK7P,KAEX6Y,KAAKopB,mBAAmB7gC,EAK1B,OAHAyX,MAAKopB,mBAAmB,kBACxBppB,KAAK7L,QAAU3L,OAAOgE,OAAO,MAC7BwT,KAAKslB,aAAe,EACbtlB,KAKT,GAAyB,mBAFzB8oB,EAAY57B,EAAOytB,IAGjB3a,KAAKwP,eAAemL,EAAMmO,OACrB,QAAkB5+B,KAAd4+B,EAET,IAAK3hC,EAAI2hC,EAAUhhC,OAAS,EAAGX,GAAK,EAAGA,IACrC6Y,KAAKwP,eAAemL,EAAMmO,EAAU3hC,GAIxC,OAAO6Y,OAoBbykB,EAAah8B,UAAUqgC,UAAY,SAAmBnO,GACpD,MAAOuL,GAAWlmB,KAAM2a,GAAM,IAGhC8J,EAAah8B,UAAU4gC,aAAe,SAAsB1O,GAC1D,MAAOuL,GAAWlmB,KAAM2a,GAAM,IAGhC8J,EAAa8B,cAAgB,SAASb,EAAS/K,GAC7C,MAAqC,kBAA1B+K,GAAQa,cACVb,EAAQa,cAAc5L,GAEtB4L,EAAc1+B,KAAK69B,EAAS/K,IAIvC8J,EAAah8B,UAAU89B,cAAgBA,EAiBvC9B,EAAah8B,UAAU6gC,WAAa,WAClC,MAAOtpB,MAAKslB,aAAe,EAAIoC,EAAe1nB,KAAK7L,kBA0E/Co1B,IAAI,SAASjiC,EAAQU,EAAOJ,GACL,kBAAlBY,QAAOgE,OAEhBxE,EAAOJ,QAAU,SAAkB4hC,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAK/gC,UAAYD,OAAOgE,OAAOi9B,EAAUhhC,WACvC+kB,aACE1f,MAAO07B,EACPpB,YAAY,EACZuB,UAAU,EACVC,cAAc,OAOtB5hC,EAAOJ,QAAU,SAAkB4hC,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,CACd,IAAII,GAAW,YACfA,GAASphC,UAAYghC,EAAUhhC,UAC/B+gC,EAAK/gC,UAAY,GAAIohC,GACrBL,EAAK/gC,UAAU+kB,YAAcgc,SAK7BM,IAAI,SAASxiC,EAAQU,EAAOJ,GAclC,QAASmiC,GAAU7hC,GACjB,QAASA,EAAIslB,aAAmD,kBAA7BtlB,GAAIslB,YAAYuc,UAA2B7hC,EAAIslB,YAAYuc,SAAS7hC,GAIzG,QAAS8hC,GAAc9hC,GACrB,MAAkC,kBAApBA,GAAI+hC,aAAmD,kBAAd/hC,GAAI6rB,OAAwBgW,EAAS7hC,EAAI6rB,MAAM,EAAG,IAV3G/rB,EAAOJ,QAAU,SAAUM,GACzB,MAAc,OAAPA,IAAgB6hC,EAAS7hC,IAAQ8hC,EAAa9hC,MAAUA,EAAIgiC,iBAY/DC,IAAI,SAAS7iC,EAAQU,EAAOJ,GAoBlC,QAASwiC,GAAW9P,GAClBta,KAAKqqB,UACLrqB,KAAKsqB,SAAWtqB,KAAKuqB,eAAetE,KAAKjmB,MACzCA,KAAKvS,OAAO6sB,GA+Ld,QAASkQ,GAAU98B,GACjBlF,OAAOqF,eAAeu8B,EAAW3hC,UAAWiF,GAC1C0C,IAAKq6B,EAAQ/8B,GACbk8B,cAAc,IAKlB,QAASa,GAAQ/8B,GACf,MAAO,IAAKq6B,WACV,mBAAmBr6B,EAAK,OACxB,kBAAkBA,EAClB,KACAgM,KAAK,SAGT,QAASgxB,GAAavP,EAAMhO,GAC1B,IAAKgO,EAAKwP,OAA+B,IAAtBxP,EAAKwP,MAAM7iC,OAC5B,MAAO,KAET,IAAI8iC,GAAWC,EAAS1P,EAAKwP,MAAOxd,EACpC,OAAIyd,IAAY,EACPzP,EAAKwP,MAAMC,GACb,KAGT,QAASE,GAAW3P,GAClB,IAAK,GAAIh0B,GAAE,EAAGA,EAAE4jC,EAAUjjC,OAAQX,IAAK,CACrC,GAAIgmB,GAAK4d,EAAU5jC,GAAG6jC,WAAW,GAC7BC,EAAMJ,EAAS1P,EAAKwP,MAAOxd,EAC/B,IAAI8d,GAAO,EACT,MAAO9P,GAAKwP,MAAMM,GAAKvgC,OAE3B,MAAO,GAGT,QAASwgC,GAAU/P,GACjB,IAAK,GAAIh0B,GAAE,EAAGA,EAAEgkC,EAASrjC,OAAQX,IAAK,CACpC,GAAIgmB,GAAKge,EAAShkC,GAAG6jC,WAAW,GAC5BC,EAAMJ,EAAS1P,EAAKwP,MAAOxd,EAC/B,IAAI8d,GAAO,EACT,MAAO9P,GAAKwP,MAAMM,GAEtB,MAAO,GAGT,QAASG,GAAajQ,GACpB,IAAK,GAAIh0B,GAAE,EAAGA,EAAEkkC,EAAYvjC,OAAQX,IAAK,CACvC,GAAIgmB,GAAKke,EAAYlkC,GAAG6jC,WAAW,GAC/BC,EAAMJ,EAAS1P,EAAKwP,MAAOxd,EAC/B,IAAI8d,GAAO,EACT,MAAO9P,GAAKwP,MAAMM,GAAKvgC,OAE3B,MAAO,GAGT,QAAS4gC,GAAWnQ,EAAM5f,EAAMC,GAC9B,IAAK2f,EAAKoQ,UAAqC,IAAzBpQ,EAAKoQ,SAASzjC,OAClC,MAAO,EAGT,KAAK,GADD0jC,GAAQrQ,EAAKoQ,SACRpkC,EAAE,EAAGA,EAAEqkC,EAAM1jC,OAAQX,IAAK,CACjC,GAAIskC,GAAOD,EAAMrkC,EACjB,IAAIskC,EAAKC,QAAUnwB,GAAQkwB,EAAKE,SAAWnwB,EACzC,MAAOiwB,GAAKG,OAEhB,MAAO,GAGT,QAASC,GAAaxQ,GACpB,MAAc,WAAVA,EACKyQ,EACU,UAAVzQ,EACA0Q,EACFC,EAGT,QAASnB,GAAUh2B,EAAO/G,EAAOm+B,GAC/BA,EAAQA,GAAS,CACjB,KAAK,GAAI9kC,GAAI8kC,EAAO9kC,EAAI0N,EAAM/M,OAAQX,IACpC,GAAI0N,EAAM1N,GAAGgmB,KAAOrf,EAClB,MAAO3G,EAGX,QAAQ,EAzSV,GAAI+kC,GAAW5kC,EAAQ,gBACnB6kC,EAAQ7kC,EAAQ,SAChB4qB,EAAS5qB,EAAQ,aAEjByjC,GAAa,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzEI,GAAY,IAAK,KACjBE,GAAe,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhFe,EAAS,KAAKpB,WAAW,GACzBqB,EAAW,IAAIrB,WAAW,GAC1BgB,EAAa,EACbF,EAAe,EACfC,EAAc,CAElB/jC,GAAOJ,QAAU,SAAsB0yB,GACrC,MAAO,IAAI8P,GAAW9P,IASxB8P,EAAW3hC,UAAUgF,OAAS,SAAS6sB,GAOrC,GANAA,EAAM6R,GACJG,QAAStsB,KAAKsqB,UACbhQ,GACHta,KAAKusB,KAAOjS,EACZta,KAAKusB,KAAKC,QAAUta,EAAOlS,KAAKusB,KAAKC,QAAS,IAEzClS,EAAIa,KACP,KAAM,IAAI1zB,OAAM,mCAElB,IAAI4iC,GAASrqB,KAAKqqB,OACdpgB,EAAOqQ,EAAIrQ,MAAM,GACjBkR,EAAOb,EAAIa,IACfnb,MAAKysB,kBAAkBtR,EAEvB,IAAIuR,GAAQR,EAASQ,MAAMziB,EAAMqQ,GAC7BqS,EAAWrS,EAAIhwB,OAAS,CAG5B+/B,GAAOviC,OAAS,CAGhB,IAAI8kC,GAAeF,EAAM1d,OAAO,SAAS6d,EAAMC,GAC7C,MAAOlhC,MAAKgG,IAAIi7B,EAAMC,EAAKxiC,MAAOqiC,IACjC,GAGCtgC,EAAI,EACJM,EAAI,EACJogC,EAAa7a,EAAOoI,EAAIyS,WAAY5R,EAAK6R,OAAOD,YAChDE,EAAW9R,EAAK6R,OAAOE,KACvBC,EAAYJ,EAAWE,EACvBG,EAAgB9S,EAAI8S,eAAiB,EACrC1iC,EAASqiC,EAAaL,EAAM5kC,OAASqlC,EACrC9R,EAAQwQ,EAAa7rB,KAAKusB,KAAKlR,MAGnC1uB,IAAKjC,EAGLsV,KAAK8Y,OAAS8T,EACd5sB,KAAKqtB,QAAU3iC,EACfsV,KAAKstB,WAAaP,EAAaE,EAC/BjtB,KAAKutB,UAAYN,EACjBjtB,KAAKwtB,SAAW1C,EAAW3P,GAC3Bnb,KAAKytB,WAAarC,EAAajQ,GAC/Bnb,KAAK0tB,YAAcX,EACnB/sB,KAAK2tB,UAAYZ,EAAaI,EAAYntB,KAAKwtB,QAG/C,IAAII,GAAO5tB,IACX0sB,GAAMr0B,QAAQ,SAASy0B,EAAMe,GAO3B,IAAK,GAHDC,GAHA7B,EAAQa,EAAKb,MACb8B,EAAMjB,EAAKiB,IACXC,EAAYlB,EAAKxiC,MAIZnD,EAAE8kC,EAAO9kC,EAAE4mC,EAAK5mC,IAAK,CAC5B,GAAIgmB,GAAKlD,EAAK+gB,WAAW7jC,GACrB8mC,EAAQL,EAAKM,SAAS/S,EAAMhO,EAChC,IAAI8gB,EAAO,CACLH,IACFzhC,GAAKi/B,EAAWnQ,EAAM2S,EAAU3gB,GAAI8gB,EAAM9gB,IAE5C,IAAIghB,GAAK9hC,CACLgvB,KAAUyQ,EACZqC,IAAOvB,EAAaoB,GAAW,EACxB3S,IAAU0Q,IACjBoC,GAAOvB,EAAaoB,GAEtB3D,EAAO5yB,MACLvO,UAAWilC,EAAIxhC,GACfyhC,KAAMH,EACN11B,MAAOpR,EACP2lC,KAAMe,IAIRxhC,GAAK4hC,EAAMI,SAAWjB,EACtBU,EAAYG,GAKhBthC,GAAKogC,EACL1gC,EAAI,IAEN2T,KAAKsuB,YAAc5B,EAAM5kC,QAG3BsiC,EAAW3hC,UAAUgkC,kBAAoB,SAAStR,GAMhD,GAHAnb,KAAKuuB,oBAAsB,KAC3BvuB,KAAKwuB,kBAAoB,KAEpBrT,EAAKwP,OAA+B,IAAtBxP,EAAKwP,MAAM7iC,OAA9B,CAMA,GAAI2mC,GAAQ/D,EAAavP,EAAMkR,IACpBnB,EAAU/P,IACVA,EAAKwP,MAAM,GAGlB+D,EAAW1uB,KAAKusB,KAAKC,QAAUiC,EAAMJ,QACzCruB,MAAKuuB,oBAAsBE,EAC3BzuB,KAAKwuB,kBAAoBrC,EAAMsC,GAC7BpiC,EAAG,EAAGM,EAAG,EAAG0hC,SAAUK,EAAUvhB,GAAIif,EACpCuC,QAAS,EAAGC,QAAS,EAAGtkC,MAAO,EAAGI,OAAQ,MAI9C0/B,EAAW3hC,UAAUylC,SAAW,SAAS/S,EAAMhO,GAC7C,GAAI8gB,GAAQvD,EAAavP,EAAMhO,EAC/B,OAAI8gB,KAEK9gB,IAAOif,EACPpsB,KAAKwuB,kBACLrhB,IAAOkf,EACPrsB,KAAKuuB,oBACP,OAGTnE,EAAW3hC,UAAU8hC,eAAiB,SAAStgB,EAAMgiB,EAAO8B,EAAKzjC,GAC/D,GAKI2jC,GACAH,EANAV,EAAgBptB,KAAKusB,KAAKa,eAAiB,EAC3CjS,EAAOnb,KAAKusB,KAAKpR,KACjB0T,EAAS,EACTC,EAAW,EACXnJ,EAAQ,CAIZ,KAAKxK,EAAKwP,OAA+B,IAAtBxP,EAAKwP,MAAM7iC,OAC5B,OACEmkC,MAAOA,EACP8B,IAAK9B,EACL3hC,MAAO,EAIXyjC,GAAMniC,KAAKiG,IAAIoY,EAAKniB,OAAQimC,EAC5B,KAAK,GAAI5mC,GAAE8kC,EAAO9kC,EAAI4mC,EAAK5mC,IAAK,CAC9B,GAAIgmB,GAAKlD,EAAK+gB,WAAW7jC,GACrB8mC,EAAQjuB,KAAKkuB,SAAS/S,EAAMhO,EAEhC,IAAI8gB,EAAO,CAEEA,EAAMU,OAEjBE,IADWf,EAAYxC,EAAWnQ,EAAM2S,EAAU3gB,GAAI8gB,EAAM9gB,IAAM,CAGlE,IAAI4hB,GAAUF,EAASZ,EAAMI,SAAWjB,EACpC4B,EAAYH,EAASZ,EAAM3jC,KAG/B,IAAI0kC,GAAa1kC,GAASykC,GAAWzkC,EACnC,KAGFukC,GAASE,EACTD,EAAWE,EACXlB,EAAYG,EAEdtI,IAOF,MAHImI,KACFgB,GAAYhB,EAAUa,UAGtB1C,MAAOA,EACP8B,IAAK9B,EAAQtG,EACbr7B,MAAOwkC,KAKT,QAAS,SACT,YAAa,WACb,UAAW,WACX,YACA,cAAez2B,QAAQmyB,KAwFtByE,YAAY,GAAGC,eAAe,GAAG/C,MAAQ,KAAKgD,IAAI,SAAS7nC,EAAQU,EAAOJ,GAO7E,YAMA,SAASwnC,GAASC,GACjB,GAAY,OAARA,OAAwBnlC,KAARmlC,EACnB,KAAM,IAAIxK,WAAU,wDAGrB,OAAOr8B,QAAO6mC,GATf,GAAIpH,GAAwBz/B,OAAOy/B,sBAC/Bv/B,EAAiBF,OAAOC,UAAUC,eAClC4mC,EAAmB9mC,OAAOC,UAAU8mC,oBAsDxCvnC,GAAOJ,QA5CP,WACC,IACC,IAAKY,OAAO6xB,OACX,OAAO,CAMR,IAAImV,GAAQ,GAAI/J,QAAO,MAEvB,IADA+J,EAAM,GAAK,KACkC,MAAzChnC,OAAO0/B,oBAAoBsH,GAAO,GACrC,OAAO,CAKR,KAAK,GADDC,MACKtoC,EAAI,EAAGA,EAAI,GAAIA,IACvBsoC,EAAM,IAAMhK,OAAOiK,aAAavoC,IAAMA,CAKvC,IAAwB,eAHXqB,OAAO0/B,oBAAoBuH,GAAO31B,IAAI,SAAU9S,GAC5D,MAAOyoC,GAAMzoC,KAEH0S,KAAK,IACf,OAAO,CAIR,IAAIi2B,KAIJ,OAHA,uBAAuBnX,MAAM,IAAIngB,QAAQ,SAAUu3B,GAClDD,EAAMC,GAAUA,IAGf,yBADEpnC,OAAOwO,KAAKxO,OAAO6xB,UAAWsV,IAAQj2B,KAAK,IAM9C,MAAOutB,GAER,OAAO,MAI4Bz+B,OAAO6xB,OAAS,SAAU8K,EAAQ0K,GAKtE,IAAK,GAJDn5B,GAEAo5B,EADAC,EAAKX,EAASjK,GAGT7zB,EAAI,EAAGA,EAAIrH,UAAUnC,OAAQwJ,IAAK,CAC1CoF,EAAOlO,OAAOyB,UAAUqH,GAExB,KAAK,GAAI/I,KAAOmO,GACXhO,EAAeb,KAAK6O,EAAMnO,KAC7BwnC,EAAGxnC,GAAOmO,EAAKnO,GAIjB,IAAI0/B,EAAuB,CAC1B6H,EAAU7H,EAAsBvxB,EAChC,KAAK,GAAIvP,GAAI,EAAGA,EAAI2oC,EAAQhoC,OAAQX,IAC/BmoC,EAAiBznC,KAAK6O,EAAMo5B,EAAQ3oC,MACvC4oC,EAAGD,EAAQ3oC,IAAMuP,EAAKo5B,EAAQ3oC,MAMlC,MAAO4oC,SAGFC,IAAI,SAAS1oC,EAAQU,EAAOJ,GA0ClC,QAASqoC,GAAUnD,EAAM7B,GAEvB,KADA6B,EAAOA,EAAKoD,QAAQ,OAAQ,KAAKC,QAE/B,MAAO,KAET,IAAI1B,GAAQ3B,EAAKvzB,QAAQ,IACzB,KAAe,IAAXk1B,EACF,KAAM,IAAIhnC,OAAM,wBAA0BwjC,EAE5C,IAAI1iC,GAAMukC,EAAK7Q,UAAU,EAAGwS,EAE5B3B,GAAOA,EAAK7Q,UAAUwS,EAAQ,GAG9B3B,EAAOA,EAAKoD,QAAQ,2BAA4B,IAChDpD,EAAOA,EAAKtU,MAAM,KAClBsU,EAAOA,EAAKhzB,IAAI,SAASnM,GACvB,MAAOA,GAAIwiC,OAAOC,MAAM,kCAI1B,KAAK,GADDhC,MACKjnC,EAAI,EAAGA,EAAI2lC,EAAKhlC,OAAQX,IAAK,CACpC,GAAIkpC,GAAKvD,EAAK3lC,EACJ,KAANA,EACFinC,EAAK32B,MACHlP,IAAK8nC,EAAG,GACRjC,KAAM,KAECjnC,IAAM2lC,EAAKhlC,OAAS,EAC7BsmC,EAAKA,EAAKtmC,OAAS,GAAGsmC,KAAOkC,EAAUD,EAAG,KAE1CjC,EAAKA,EAAKtmC,OAAS,GAAGsmC,KAAOkC,EAAUD,EAAG,IAC1CjC,EAAK32B,MACHlP,IAAK8nC,EAAG,GACRjC,KAAM,MAKZ,GAAImC,IACFhoC,IAAKA,EACL6lC,QAOF,OAJAA,GAAK/1B,QAAQ,SAAS9G,GACpBg/B,EAAInC,KAAK78B,EAAEhJ,KAAOgJ,EAAE68B,OAGfmC,EAGT,QAASD,GAAUlC,GACjB,MAAKA,IAAwB,IAAhBA,EAAKtmC,OAGQ,IAAtBsmC,EAAK70B,QAAQ,MAAoC,IAAtB60B,EAAK70B,QAAQ,KACnC60B,EAAKnS,UAAU,EAAGmS,EAAKtmC,OAAS,IACd,IAAvBsmC,EAAK70B,QAAQ,KACRi3B,EAAapC,GACfqC,SAASrC,EAAM,IANb,GASX,QAASoC,GAAapC,GACpB,MAAOA,GAAK5V,MAAM,KAAK1e,IAAI,SAASu1B,GAClC,MAAOoB,UAASpB,EAAK,MAzGzBrnC,EAAOJ,QAAU,SAA0BwmC,GACzC,IAAKA,EACH,KAAM,IAAI3mC,OAAM,mBAClB2mC,GAAOA,EAAK/iC,WAAW8kC,MAEvB,IAAIO,IACFC,SACAhG,SACAY,aAGEmB,EAAQ0B,EAAK5V,MAAM,YAEvB,IAAqB,IAAjBkU,EAAM5kC,OACR,KAAM,IAAIL,OAAM,yBAElB,KAAK,GAAIN,GAAI,EAAGA,EAAIulC,EAAM5kC,OAAQX,IAAK,CACrC,GAAIypC,GAAWX,EAAUvD,EAAMvlC,GAAIA,EACnC,IAAKypC,EAGL,GAAqB,SAAjBA,EAASroC,IAAgB,CAC3B,GAAgC,gBAArBqoC,GAASxC,KAAKjhB,GACvB,KAAM,IAAI1lB,OAAM,0BAA4BN,EAAI,sBAClD,IAAkC,gBAAvBypC,GAASxC,KAAKyC,KACvB,KAAM,IAAIppC,OAAM,0BAA4BN,EAAI,6BAClDupC,GAAOC,MAAMC,EAASxC,KAAKjhB,IAAMyjB,EAASxC,KAAKyC,SACrB,UAAjBD,EAASroC,KAAoC,aAAjBqoC,EAASroC,MAEpB,SAAjBqoC,EAASroC,IAClBmoC,EAAO/F,MAAMlzB,KAAKm5B,EAASxC,MACD,YAAjBwC,EAASroC,IAClBmoC,EAAOnF,SAAS9zB,KAAKm5B,EAASxC,MAE9BsC,EAAOE,EAASroC,KAAOqoC,EAASxC,MAIpC,MAAOsC,SAsEHI,IAAI,SAASxpC,EAAQU,EAAOJ,GAClC,GAAIi8B,GAAQv8B,EAAQ,SAChBg8B,EAAUh8B,EAAQ,YAClByiC,EAAWziC,EAAQ,aAEnBypC,GAAM,EAAG,EAAG,GACZC,GAAO,EAAG,EAAG,EAEjBhpC,GAAOJ,QAAU,SAA4BiN,EAAOylB,GAE3CzlB,IAAWyuB,EAAQzuB,IAAUk1B,EAASl1B,MACvCylB,EAAMzlB,MACNA,EAAQ,MAIRylB,EADe,gBAARA,IACCqL,MAAOrL,GAETA,KAcV,KAAK,GAZDK,GAA2B,gBAAbL,GAAIK,KAAoBL,EAAIK,KAAO,SACjDgL,EAA6B,gBAAdrL,GAAIqL,MAAqBrL,EAAIqL,MAAQ,EACpDsG,EAAS3R,EAAI2R,OAAS,EAEtBgF,GAAwB,IAAlB3W,EAAI4W,UAAsBH,EAAKC,EACrCxpC,EAAIypC,EAAI,GACRx/B,EAAIw/B,EAAI,GACR5pC,EAAI4pC,EAAI,GAERE,EAAqB,EAARxL,EAEbyL,EAAUv8B,GAAS,IAAKgvB,EAAMlJ,IAAOwW,GAChChqC,EAAI,EAAGkqC,EAAI,EAAGlqC,EAAIgqC,EAAYhqC,GAAK,EAAGkqC,GAAK,EAAG,CACnD,GAAIhlC,GAAIlF,EAAI8kC,CACZmF,GAAQ/kC,EAAI,GAAKglC,EAAI,EACrBD,EAAQ/kC,EAAI,GAAKglC,EAAI,EACrBD,EAAQ/kC,EAAI,GAAKglC,EAAI,EACrBD,EAAQ/kC,EAAI,GAAKglC,EAAI7pC,EACrB4pC,EAAQ/kC,EAAI,GAAKglC,EAAI5/B,EACrB2/B,EAAQ/kC,EAAI,GAAKglC,EAAIhqC,EAEzB,MAAO+pC,MAERE,WAAW,GAAGzN,MAAQ,GAAG0N,YAAY,KAAKC,IAAI,SAASlqC,EAAQU,EAAOJ,GAczE,QAAS6pC,GAAcnX,GACrBoX,EAAK7pC,KAAKmY,MAES,gBAARsa,KACTA,GAAQrQ,KAAMqQ,IAKhBta,KAAKusB,KAAO/jC,OAAO6xB,UAAWC,GAG1BA,GAAKta,KAAKvS,OAAO6sB,GAzBvB,GAAIqX,GAAerqC,EAAQ,sBACvBsqC,EAAWtqC,EAAQ,YACnBuqC,EAAgBvqC,EAAQ,gBAExBwqC,EAAWxqC,EAAQ,kBACnByqC,EAAQzqC,EAAQ,eAEhBoqC,EAAOxmC,MAAM0kB,cAEjB5nB,GAAOJ,QAAU,SAA6B0yB,GAC5C,MAAO,IAAImX,GAAanX,IAkB1BsX,EAASH,EAAcC,GAEvBD,EAAahpC,UAAUgF,OAAS,SAAU6sB,GAQxC,GAPmB,gBAARA,KACTA,GAAQrQ,KAAMqQ,IAIhBA,EAAM9xB,OAAO6xB,UAAWra,KAAKusB,KAAMjS,IAE9BA,EAAIa,KACP,KAAM,IAAI0J,WAAU,qCAGtB7kB,MAAKtT,OAASilC,EAAarX,EAG3B,IAAIgB,IAAsB,IAAdhB,EAAIgB,MAGZH,EAAOb,EAAIa,KAGX6W,EAAW7W,EAAK6R,OAAOiF,OACvBC,EAAY/W,EAAK6R,OAAOmF,OAGxB9H,EAASrqB,KAAKtT,OAAO29B,OAAOzvB,OAAO,SAAUqzB,GAC/C,GAAImE,GAASnE,EAAMG,IACnB,OAAOgE,GAAO9nC,MAAQ8nC,EAAO1nC,OAAS,GAIxCsV,MAAKqyB,cAAgBhI,CAGrB,IAAIiI,GAAYR,EAASQ,UAAUjI,GAC/BkI,EAAMT,EAASS,IAAIlI,EAAQ2H,EAAUE,EAAW5W,GAChD8V,EAAUS,MACZX,WAAW,EACXvW,KAAM,SACNgL,MAAO0E,EAAOviC,QAShB,IALAkY,KAAKwyB,SAASpB,GACdpxB,KAAKhL,aAAa,WAAY,GAAI9J,OAAM+J,gBAAgBq9B,EAAW,IACnEtyB,KAAKhL,aAAa,KAAM,GAAI9J,OAAM+J,gBAAgBs9B,EAAK,KAGlDjY,EAAImY,WAAa,QAAUzyB,MAAK4iB,WAEnC5iB,KAAK0yB,gBAAgB,YAChB,IAAIpY,EAAImY,UAAW,CAExB,GAAI9B,GAAQmB,EAASnB,MAAMtG,EAC3BrqB,MAAKhL,aAAa,OAAQ,GAAI9J,OAAM+J,gBAAgB07B,EAAO,MAI/Dc,EAAahpC,UAAU8rB,sBAAwB,WACjB,OAAxBvU,KAAK2yB,iBACP3yB,KAAK2yB,eAAiB,GAAIznC,OAAM0nC,OAGlC,IAAIN,GAAYtyB,KAAK4iB,WAAW15B,SAAS2L,MACrCguB,EAAW7iB,KAAK4iB,WAAW15B,SAAS25B,QACxC,KAAKyP,IAAczP,GAAYyP,EAAUxqC,OAAS,EAGhD,MAFAkY,MAAK2yB,eAAeE,OAAS,MAC7B7yB,MAAK2yB,eAAeG,OAAOziC,IAAI,EAAG,EAAG,EAGvC0hC,GAAMgB,cAAcT,EAAWtyB,KAAK2yB,gBAChClnB,MAAMzL,KAAK2yB,eAAeE,SAC5Br5B,QAAQmK,MAAM,iIAMlB8tB,EAAahpC,UAAU+rB,mBAAqB,WACjB,OAArBxU,KAAK6Y,cACP7Y,KAAK6Y,YAAc,GAAI3tB,OAAMwZ,KAG/B,IAAIsuB,GAAOhzB,KAAK6Y,YACZyZ,EAAYtyB,KAAK4iB,WAAW15B,SAAS2L,MACrCguB,EAAW7iB,KAAK4iB,WAAW15B,SAAS25B,QACxC,KAAKyP,IAAczP,GAAYyP,EAAUxqC,OAAS,EAEhD,WADAkrC,GAAKC,WAGPlB,GAAMmB,WAAWZ,EAAWU,MAG3BG,cAAc,GAAGC,iBAAiB,GAAGxB,SAAW,GAAGyB,qBAAqB,GAAGC,eAAe,KAAKC,IAAI,SAASjsC,EAAQU,EAAOJ,GAI9H,QAAS4rC,GAAQlB,GACf,GAAI3M,GAAQ2M,EAAUxqC,OAAS+6B,CAC/B3iB,GAAIrO,IAAI,GAAKygC,EAAU,GACvBpyB,EAAIrO,IAAI,GAAKygC,EAAU,GACvBpyB,EAAItO,IAAI,GAAK0gC,EAAU,GACvBpyB,EAAItO,IAAI,GAAK0gC,EAAU,EAEvB,KAAK,GAAInrC,GAAI,EAAGA,EAAIw+B,EAAOx+B,IAAK,CAC9B,GAAIkF,GAAIimC,EAAUnrC,EAAI07B,EAAW,GAC7Bl2B,EAAI2lC,EAAUnrC,EAAI07B,EAAW,EACjC3iB,GAAIrO,IAAI,GAAKjG,KAAKiG,IAAIxF,EAAG6T,EAAIrO,IAAI,IACjCqO,EAAIrO,IAAI,GAAKjG,KAAKiG,IAAIlF,EAAGuT,EAAIrO,IAAI,IACjCqO,EAAItO,IAAI,GAAKhG,KAAKgG,IAAIvF,EAAG6T,EAAItO,IAAI,IACjCsO,EAAItO,IAAI,GAAKhG,KAAKgG,IAAIjF,EAAGuT,EAAItO,IAAI,KAhBrC,GAAIixB,GAAW,EACX3iB,GAAQrO,KAAM,EAAG,GAAID,KAAM,EAAG,GAmBlC5J,GAAOJ,QAAQsrC,WAAa,SAAUZ,EAAW5B,GAC/C8C,EAAOlB,GACP5B,EAAO7+B,IAAIxB,IAAI6P,EAAIrO,IAAI,GAAIqO,EAAIrO,IAAI,GAAI,GACvC6+B,EAAO9+B,IAAIvB,IAAI6P,EAAItO,IAAI,GAAIsO,EAAItO,IAAI,GAAI,IAGzC5J,EAAOJ,QAAQmrC,cAAgB,SAAUT,EAAW5B,GAClD8C,EAAOlB,EACP,IAAImB,GAAOvzB,EAAIrO,IAAI,GACf6hC,EAAOxzB,EAAIrO,IAAI,GACf8hC,EAAOzzB,EAAItO,IAAI,GACfgiC,EAAO1zB,EAAItO,IAAI,GACftH,EAAQqpC,EAAOF,EACf/oC,EAASkpC,EAAOF,EAChB5rC,EAAS8D,KAAKioC,KAAKvpC,EAAQA,EAAQI,EAASA,EAChDgmC,GAAOoC,OAAOziC,IAAIojC,EAAOnpC,EAAQ,EAAGopC,EAAOhpC,EAAS,EAAG,GACvDgmC,EAAOmC,OAAS/qC,EAAS,QAGrBgsC,IAAI,SAASxsC,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAQ+oC,MAAQ,SAAgBtG,GACrC,GAAIsG,GAAQ,GAAI77B,cAA6B,EAAhBu1B,EAAOviC,OAAa,GAC7CX,EAAI,CAQR,OAPAkjC,GAAOhyB,QAAQ,SAAU41B,GACvB,GAAI9gB,GAAK8gB,EAAMG,KAAK2F,MAAQ,CAC5BpD,GAAMxpC,KAAOgmB,EACbwjB,EAAMxpC,KAAOgmB,EACbwjB,EAAMxpC,KAAOgmB,EACbwjB,EAAMxpC,KAAOgmB,IAERwjB,GAGT3oC,EAAOJ,QAAQ2qC,IAAM,SAAclI,EAAQ2H,EAAUE,EAAW5W,GAC9D,GAAIiX,GAAM,GAAIz9B,cAA6B,EAAhBu1B,EAAOviC,OAAa,GAC3CX,EAAI,CA8BR,OA7BAkjC,GAAOhyB,QAAQ,SAAU41B,GACvB,GAAImE,GAASnE,EAAMG,KACf4F,EAAM5B,EAAO/lC,EAAI+lC,EAAO9nC,MACxB2pC,EAAM7B,EAAOzlC,EAAIylC,EAAO1nC,OAGxBwpC,EAAK9B,EAAO/lC,EAAI2lC,EAChBmC,EAAK/B,EAAOzlC,EAAIulC,EAChBkC,EAAKJ,EAAKhC,EACVqC,EAAKJ,EAAK/B,CAEV5W,KACF6Y,GAAMjC,EAAYE,EAAOzlC,GAAKulC,EAC9BmC,GAAMnC,EAAY+B,GAAM/B,GAI1BK,EAAIprC,KAAO+sC,EACX3B,EAAIprC,KAAOgtC,EAEX5B,EAAIprC,KAAO+sC,EACX3B,EAAIprC,KAAOktC,EAEX9B,EAAIprC,KAAOitC,EACX7B,EAAIprC,KAAOktC,EAEX9B,EAAIprC,KAAOitC,EACX7B,EAAIprC,KAAOgtC,IAEN5B,GAGTvqC,EAAOJ,QAAQ0qC,UAAY,SAAoBjI,GAC7C,GAAIiI,GAAY,GAAIx9B,cAA6B,EAAhBu1B,EAAOviC,OAAa,GACjDX,EAAI,CAyBR,OAxBAkjC,GAAOhyB,QAAQ,SAAU41B,GACvB,GAAImE,GAASnE,EAAMG,KAGf/hC,EAAI4hC,EAAM/kC,SAAS,GAAKkpC,EAAOzD,QAC/BhiC,EAAIshC,EAAM/kC,SAAS,GAAKkpC,EAAOxD,QAG/BrkB,EAAI6nB,EAAO9nC,MACX+G,EAAI+gC,EAAO1nC,MAGf4nC,GAAUnrC,KAAOkF,EACjBimC,EAAUnrC,KAAOwF,EAEjB2lC,EAAUnrC,KAAOkF,EACjBimC,EAAUnrC,KAAOwF,EAAI0E,EAErBihC,EAAUnrC,KAAOkF,EAAIke,EACrB+nB,EAAUnrC,KAAOwF,EAAI0E,EAErBihC,EAAUnrC,KAAOkF,EAAIke,EACrB+nB,EAAUnrC,KAAOwF,IAEZ2lC,QAGHgC,IAAI,SAAShtC,EAAQU,EAAOJ,GAgClC,QAAS2sC,GAAMtqB,EAAMuqB,EAAKvI,EAAO8B,GAC7B,GAAI9C,GAAMhhB,EAAK1Q,QAAQi7B,EAAKvI,EAC5B,QAAa,IAAThB,GAAcA,EAAM8C,EACbA,EACJ9C,EAGX,QAASwJ,GAAaD,GAClB,MAAOE,GAAWC,KAAKH,GAG3B,QAASI,GAAItI,EAASriB,EAAMgiB,EAAO8B,EAAKzjC,GAGpC,IAAK,GAFDoiC,MACAmI,EAAY5I,EACP9kC,EAAE8kC,EAAO9kC,EAAE4mC,GAAO5mC,EAAE8iB,EAAKniB,OAAQX,IAAK,CAC3C,GAAIqtC,GAAMvqB,EAAK6qB,OAAO3tC,GAClB4tC,EAAYC,EAAQL,KAAKH,EAI7B,IAAIO,GAAa5tC,IAAI4mC,EAAI,EAAG,CACxB,GAAIkH,GAAUF,EAAY5tC,EAAIA,EAAE,EAC5B+tC,EAAW5I,EAAQriB,EAAM4qB,EAAWI,EAAS3qC,EACjDoiC,GAAMj1B,KAAKy9B,GAEXL,EAAY1tC,EAAE,GAGtB,MAAOulC,GAGX,QAASyI,GAAO7I,EAASriB,EAAMgiB,EAAO8B,EAAKzjC,EAAO8qC,GAG9C,GAAI1I,MAEA2I,EAAY/qC,CAKhB,KAHa,WAAT8qC,IACAC,EAAYjkB,OAAOkkB,WAEhBrJ,EAAQ8B,GAAO9B,EAAQhiB,EAAKniB,QAAQ,CAKvC,IAHA,GAAIytC,GAAUhB,EAAMtqB,EAAMurB,EAAavJ,EAAO8B,GAGvC9B,EAAQsJ,GACNd,EAAcxqB,EAAK6qB,OAAO7I,KAE/BA,GAIJ,IAAIiJ,GAAW5I,EAAQriB,EAAMgiB,EAAOsJ,EAASF,GAEzCJ,EAAUhJ,GAASiJ,EAASnH,IAAImH,EAASjJ,OACzCwJ,EAAYR,EAAUO,EAAY1tC,MAGtC,IAAImtC,EAAUM,EAAS,CAEnB,KAAON,EAAUhJ,IACTwI,EAAaxqB,EAAK6qB,OAAOG,KAE7BA,GAEJ,IAAIA,IAAYhJ,EACRwJ,EAAYxJ,EAAQuJ,EAAY1tC,QAAQ2tC,IAC5CR,EAAUQ,MAIV,KAFAA,EAAYR,EAELA,EAAUhJ,GACRwI,EAAaxqB,EAAK6qB,OAAOG,EAAUO,EAAY1tC,UAEpDmtC,IAIZ,GAAIA,GAAWhJ,EAAO,CAClB,GAAIyJ,GAASpJ,EAAQriB,EAAMgiB,EAAOgJ,EAASI,EAC3C3I,GAAMj1B,KAAKi+B,GAEfzJ,EAAQwJ,EAEZ,MAAO/I,GAIX,QAASiJ,GAAU1rB,EAAMgiB,EAAO8B,EAAKzjC,GAEjC,OACI2hC,MAAOA,EACP8B,IAAK9B,EAHIrgC,KAAKiG,IAAIvH,EAAOyjC,EAAI9B,IAzHrC,GAAI+I,GAAU,KACVQ,EAAc,KACdd,EAAa,IAEjB1sC,GAAOJ,QAAU,SAASqiB,EAAMqQ,GAE5B,MADYtyB,GAAOJ,QAAQ8kC,MAAMziB,EAAMqQ,GAC1BxgB,IAAI,SAASgzB,GACtB,MAAO7iB,GAAKgS,UAAU6Q,EAAKb,MAAOa,EAAKiB,OACxCr0B,KAAK,OAGZ1R,EAAOJ,QAAQ8kC,MAAQ,SAAkBziB,EAAMqQ,GAI3C,GAHAA,EAAMA,MAGY,IAAdA,EAAIhwB,OAA4B,WAAbgwB,EAAI8a,KACvB,QAEJnrB,GAAOA,GAAM,EACb,IAAI3f,GAA6B,gBAAdgwB,GAAIhwB,MAAqBgwB,EAAIhwB,MAAQ8mB,OAAOkkB,UAC3DrJ,EAAQrgC,KAAKgG,IAAI,EAAG0oB,EAAI2R,OAAO,GAC/B8B,EAAyB,gBAAZzT,GAAIyT,IAAmBzT,EAAIyT,IAAM9jB,EAAKniB,OACnDstC,EAAO9a,EAAI8a,KAEX9I,EAAUhS,EAAIgS,SAAWqJ,CAC7B,OAAa,QAATP,EACOR,EAAItI,EAASriB,EAAMgiB,EAAO8B,EAAKzjC,GAE/B6qC,EAAO7I,EAASriB,EAAMgiB,EAAO8B,EAAKzjC,EAAO8qC,SAmGlDQ,IAAI,SAAStuC,EAAQU,EAAOJ,GAKlC,QAASiuC,KAGL,IAAK,GAFD1Q,MAEKh+B,EAAI,EAAGA,EAAI8C,UAAUnC,OAAQX,IAAK,CACvC,GAAI0oC,GAAS5lC,UAAU9C,EAEvB,KAAK,GAAIoB,KAAOsnC,GACRnnC,EAAeb,KAAKgoC,EAAQtnC,KAC5B48B,EAAO58B,GAAOsnC,EAAOtnC,IAKjC,MAAO48B,GAjBXn9B,EAAOJ,QAAUiuC,CAEjB,IAAIntC,GAAiBF,OAAOC,UAAUC,yBAkB3B","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index 517bcbe..8bd4426 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -4,7 +4,7 @@ a}function e(){ return'info face="Roboto" size=192 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=24,24,24,24 spacing=12,12 outline=0\ncommon lineHeight=192 base=152 scaleW=3072 scaleH=1536 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4\npage id=0 file="roboto_0.png"\nchars count=194\nchar id=0 x=636 y=1438 width=48 height=49 xoffset=-24 yoffset=167 xadvance=0 page=0 chnl=15\nchar id=2 x=576 y=1438 width=48 height=49 xoffset=-24 yoffset=167 xadvance=0 page=0 chnl=15\nchar id=13 x=450 y=1439 width=51 height=49 xoffset=-25 yoffset=167 xadvance=40 page=0 chnl=15\nchar id=32 x=2987 y=1242 width=51 height=49 xoffset=-25 yoffset=167 xadvance=40 page=0 chnl=15\nchar id=33 x=1714 y=769 width=66 height=163 xoffset=-12 yoffset=14 xadvance=41 page=0 chnl=15\nchar id=34 x=1999 y=1263 width=81 height=87 xoffset=-14 yoffset=8 xadvance=51 page=0 chnl=15\nchar id=35 x=1214 y=951 width=136 height=162 xoffset=-15 yoffset=14 xadvance=99 page=0 chnl=15\nchar id=36 x=1610 y=0 width=122 height=196 xoffset=-16 yoffset=-4 xadvance=90 page=0 chnl=15\nchar id=37 x=1341 y=595 width=152 height=165 xoffset=-17 yoffset=13 xadvance=117 page=0 chnl=15\nchar id=38 x=1658 y=592 width=141 height=165 xoffset=-17 yoffset=13 xadvance=99 page=0 chnl=15\nchar id=39 x=2092 y=1263 width=62 height=85 xoffset=-17 yoffset=8 xadvance=28 page=0 chnl=15\nchar id=40 x=103 y=0 width=90 height=213 xoffset=-14 yoffset=0 xadvance=55 page=0 chnl=15\nchar id=41 x=0 y=0 width=91 height=213 xoffset=-22 yoffset=0 xadvance=56 page=0 chnl=15\nchar id=42 x=664 y=1294 width=114 height=114 xoffset=-23 yoffset=14 xadvance=69 page=0 chnl=15\nchar id=43 x=0 y=1317 width=128 height=129 xoffset=-19 yoffset=34 xadvance=91 page=0 chnl=15\nchar id=44 x=1916 y=1264 width=71 height=88 xoffset=-22 yoffset=111 xadvance=31 page=0 chnl=15\nchar id=45 x=233 y=1457 width=88 height=60 xoffset=-22 yoffset=74 xadvance=44 page=0 chnl=15\nchar id=46 x=2828 y=1245 width=68 height=65 xoffset=-14 yoffset=112 xadvance=42 page=0 chnl=15\nchar id=47 x=0 y=429 width=109 height=172 xoffset=-23 yoffset=14 xadvance=66 page=0 chnl=15\nchar id=48 x=2392 y=583 width=122 height=165 xoffset=-16 yoffset=13 xadvance=90 page=0 chnl=15\nchar id=49 x=112 y=1143 width=93 height=162 xoffset=-11 yoffset=14 xadvance=90 page=0 chnl=15\nchar id=50 x=1443 y=772 width=126 height=163 xoffset=-17 yoffset=13 xadvance=90 page=0 chnl=15\nchar id=51 x=2660 y=575 width=121 height=165 xoffset=-17 yoffset=13 xadvance=90 page=0 chnl=15\nchar id=52 x=1794 y=943 width=132 height=162 xoffset=-21 yoffset=14 xadvance=90 page=0 chnl=15\nchar id=53 x=539 y=779 width=121 height=164 xoffset=-13 yoffset=14 xadvance=90 page=0 chnl=15\nchar id=54 x=406 y=779 width=121 height=164 xoffset=-14 yoffset=14 xadvance=90 page=0 chnl=15\nchar id=55 x=2082 y=941 width=127 height=162 xoffset=-19 yoffset=14 xadvance=90 page=0 chnl=15\nchar id=56 x=2526 y=581 width=122 height=165 xoffset=-16 yoffset=13 xadvance=90 page=0 chnl=15\nchar id=57 x=1581 y=771 width=121 height=163 xoffset=-17 yoffset=13 xadvance=90 page=0 chnl=15\nchar id=58 x=2383 y=1113 width=67 height=134 xoffset=-14 yoffset=43 xadvance=39 page=0 chnl=15\nchar id=59 x=372 y=1140 width=73 height=156 xoffset=-22 yoffset=43 xadvance=34 page=0 chnl=15\nchar id=60 x=539 y=1307 width=113 height=119 xoffset=-19 yoffset=42 xadvance=81 page=0 chnl=15\nchar id=61 x=1688 y=1269 width=115 height=93 xoffset=-13 yoffset=51 xadvance=88 page=0 chnl=15\nchar id=62 x=411 y=1308 width=116 height=119 xoffset=-14 yoffset=42 xadvance=84 page=0 chnl=15\nchar id=63 x=800 y=779 width=113 height=164 xoffset=-19 yoffset=13 xadvance=76 page=0 chnl=15\nchar id=64 x=1421 y=0 width=177 height=196 xoffset=-16 yoffset=16 xadvance=144 page=0 chnl=15\nchar id=65 x=2708 y=752 width=150 height=162 xoffset=-23 yoffset=14 xadvance=104 page=0 chnl=15\nchar id=66 x=2221 y=939 width=127 height=162 xoffset=-12 yoffset=14 xadvance=100 page=0 chnl=15\nchar id=67 x=1811 y=592 width=137 height=165 xoffset=-15 yoffset=13 xadvance=104 page=0 chnl=15\nchar id=68 x=1650 y=946 width=132 height=162 xoffset=-12 yoffset=14 xadvance=105 page=0 chnl=15\nchar id=69 x=2496 y=934 width=122 height=162 xoffset=-12 yoffset=14 xadvance=91 page=0 chnl=15\nchar id=70 x=2630 y=932 width=120 height=162 xoffset=-12 yoffset=14 xadvance=88 page=0 chnl=15\nchar id=71 x=1960 y=590 width=137 height=165 xoffset=-15 yoffset=13 xadvance=109 page=0 chnl=15\nchar id=72 x=916 y=955 width=137 height=162 xoffset=-12 yoffset=14 xadvance=114 page=0 chnl=15\nchar id=73 x=296 y=1142 width=64 height=162 xoffset=-10 yoffset=14 xadvance=44 page=0 chnl=15\nchar id=74 x=272 y=790 width=122 height=164 xoffset=-21 yoffset=14 xadvance=88 page=0 chnl=15\nchar id=75 x=767 y=955 width=137 height=162 xoffset=-12 yoffset=14 xadvance=100 page=0 chnl=15\nchar id=76 x=2762 y=926 width=119 height=162 xoffset=-12 yoffset=14 xadvance=86 page=0 chnl=15\nchar id=77 x=2197 y=765 width=163 height=162 xoffset=-12 yoffset=14 xadvance=140 page=0 chnl=15\nchar id=78 x=1065 y=952 width=137 height=162 xoffset=-12 yoffset=14 xadvance=114 page=0 chnl=15\nchar id=79 x=1505 y=594 width=141 height=165 xoffset=-16 yoffset=13 xadvance=110 page=0 chnl=15\nchar id=80 x=1938 y=943 width=132 height=162 xoffset=-12 yoffset=14 xadvance=101 page=0 chnl=15\nchar id=81 x=2222 y=207 width=141 height=183 xoffset=-16 yoffset=13 xadvance=110 page=0 chnl=15\nchar id=82 x=1362 y=949 width=132 height=162 xoffset=-11 yoffset=14 xadvance=99 page=0 chnl=15\nchar id=83 x=2109 y=588 width=132 height=165 xoffset=-18 yoffset=13 xadvance=95 page=0 chnl=15\nchar id=84 x=617 y=955 width=138 height=162 xoffset=-21 yoffset=14 xadvance=95 page=0 chnl=15\nchar id=85 x=128 y=792 width=132 height=164 xoffset=-14 yoffset=14 xadvance=104 page=0 chnl=15\nchar id=86 x=2870 y=749 width=147 height=162 xoffset=-22 yoffset=14 xadvance=102 page=0 chnl=15\nchar id=87 x=2002 y=767 width=183 height=162 xoffset=-20 yoffset=14 xadvance=142 page=0 chnl=15\nchar id=88 x=312 y=966 width=141 height=162 xoffset=-20 yoffset=14 xadvance=100 page=0 chnl=15\nchar id=89 x=157 y=968 width=143 height=162 xoffset=-24 yoffset=14 xadvance=96 page=0 chnl=15\nchar id=90 x=1506 y=947 width=132 height=162 xoffset=-18 yoffset=14 xadvance=96 page=0 chnl=15\nchar id=91 x=658 y=0 width=79 height=202 xoffset=-13 yoffset=-2 xadvance=42 page=0 chnl=15\nchar id=92 x=2945 y=204 width=111 height=172 xoffset=-22 yoffset=14 xadvance=66 page=0 chnl=15\nchar id=93 x=567 y=0 width=79 height=202 xoffset=-24 yoffset=-2 xadvance=42 page=0 chnl=15\nchar id=94 x=1570 y=1271 width=106 height=105 xoffset=-20 yoffset=14 xadvance=67 page=0 chnl=15\nchar id=95 x=0 y=1458 width=121 height=60 xoffset=-24 yoffset=128 xadvance=72 page=0 chnl=15\nchar id=96 x=2622 y=1258 width=82 height=71 xoffset=-20 yoffset=8 xadvance=49 page=0 chnl=15\nchar id=97 x=1585 y=1121 width=119 height=136 xoffset=-16 yoffset=42 xadvance=87 page=0 chnl=15\nchar id=98 x=677 y=418 width=121 height=170 xoffset=-14 yoffset=8 xadvance=90 page=0 chnl=15\nchar id=99 x=1453 y=1123 width=120 height=136 xoffset=-17 yoffset=42 xadvance=84 page=0 chnl=15\nchar id=100 x=1209 y=413 width=120 height=170 xoffset=-17 yoffset=8 xadvance=90 page=0 chnl=15\nchar id=101 x=1320 y=1125 width=121 height=136 xoffset=-17 yoffset=42 xadvance=85 page=0 chnl=15\nchar id=102 x=1866 y=408 width=101 height=170 xoffset=-20 yoffset=6 xadvance=56 page=0 chnl=15\nchar id=103 x=134 y=612 width=121 height=167 xoffset=-17 yoffset=42 xadvance=90 page=0 chnl=15\nchar id=104 x=2627 y=395 width=116 height=168 xoffset=-14 yoffset=8 xadvance=88 page=0 chnl=15\nchar id=105 x=1050 y=776 width=67 height=164 xoffset=-14 yoffset=12 xadvance=39 page=0 chnl=15\nchar id=106 x=1327 y=0 width=82 height=198 xoffset=-30 yoffset=12 xadvance=38 page=0 chnl=15\nchar id=107 x=2495 y=401 width=120 height=168 xoffset=-14 yoffset=8 xadvance=81 page=0 chnl=15\nchar id=108 x=2755 y=392 width=64 height=168 xoffset=-13 yoffset=8 xadvance=39 page=0 chnl=15\nchar id=109 x=1973 y=1117 width=168 height=134 xoffset=-14 yoffset=42 xadvance=140 page=0 chnl=15\nchar id=110 x=2153 y=1115 width=116 height=134 xoffset=-14 yoffset=42 xadvance=88 page=0 chnl=15\nchar id=111 x=1181 y=1126 width=127 height=136 xoffset=-18 yoffset=42 xadvance=91 page=0 chnl=15\nchar id=112 x=267 y=611 width=121 height=167 xoffset=-14 yoffset=42 xadvance=90 page=0 chnl=15\nchar id=113 x=400 y=600 width=120 height=167 xoffset=-17 yoffset=42 xadvance=91 page=0 chnl=15\nchar id=114 x=2281 y=1113 width=90 height=134 xoffset=-14 yoffset=42 xadvance=54 page=0 chnl=15\nchar id=115 x=1716 y=1120 width=117 height=136 xoffset=-17 yoffset=42 xadvance=83 page=0 chnl=15\nchar id=116 x=457 y=1140 width=95 height=155 xoffset=-24 yoffset=23 xadvance=52 page=0 chnl=15\nchar id=117 x=1845 y=1117 width=116 height=135 xoffset=-14 yoffset=43 xadvance=88 page=0 chnl=15\nchar id=118 x=2772 y=1100 width=122 height=133 xoffset=-22 yoffset=43 xadvance=78 page=0 chnl=15\nchar id=119 x=2462 y=1113 width=163 height=133 xoffset=-22 yoffset=43 xadvance=120 page=0 chnl=15\nchar id=120 x=2637 y=1106 width=123 height=133 xoffset=-22 yoffset=43 xadvance=79 page=0 chnl=15\nchar id=121 x=0 y=613 width=122 height=167 xoffset=-23 yoffset=43 xadvance=76 page=0 chnl=15\nchar id=122 x=2906 y=1097 width=117 height=133 xoffset=-18 yoffset=43 xadvance=79 page=0 chnl=15\nchar id=123 x=458 y=0 width=97 height=202 xoffset=-20 yoffset=3 xadvance=54 page=0 chnl=15\nchar id=124 x=2451 y=206 width=61 height=183 xoffset=-11 yoffset=14 xadvance=39 page=0 chnl=15\nchar id=125 x=349 y=0 width=97 height=202 xoffset=-23 yoffset=3 xadvance=54 page=0 chnl=15\nchar id=126 x=2378 y=1259 width=138 height=79 xoffset=-14 yoffset=65 xadvance=109 page=0 chnl=15\nchar id=160 x=513 y=1439 width=51 height=49 xoffset=-25 yoffset=167 xadvance=40 page=0 chnl=15\nchar id=161 x=217 y=1142 width=67 height=162 xoffset=-14 yoffset=42 xadvance=39 page=0 chnl=15\nchar id=162 x=1341 y=413 width=120 height=170 xoffset=-16 yoffset=25 xadvance=88 page=0 chnl=15\nchar id=163 x=1300 y=774 width=131 height=163 xoffset=-18 yoffset=13 xadvance=93 page=0 chnl=15\nchar id=164 x=702 y=1129 width=149 height=149 xoffset=-17 yoffset=30 xadvance=114 page=0 chnl=15\nchar id=165 x=465 y=955 width=140 height=162 xoffset=-22 yoffset=14 xadvance=97 page=0 chnl=15\nchar id=166 x=2375 y=206 width=64 height=183 xoffset=-13 yoffset=14 xadvance=38 page=0 chnl=15\nchar id=167 x=205 y=0 width=132 height=202 xoffset=-18 yoffset=13 xadvance=98 page=0 chnl=15\nchar id=168 x=2716 y=1251 width=100 height=65 xoffset=-17 yoffset=12 xadvance=67 page=0 chnl=15\nchar id=169 x=995 y=599 width=161 height=165 xoffset=-18 yoffset=13 xadvance=126 page=0 chnl=15\nchar id=170 x=1368 y=1273 width=99 height=109 xoffset=-13 yoffset=13 xadvance=71 page=0 chnl=15\nchar id=171 x=1131 y=1277 width=110 height=110 xoffset=-17 yoffset=54 xadvance=75 page=0 chnl=15\nchar id=172 x=2251 y=1261 width=115 height=81 xoffset=-15 yoffset=65 xadvance=89 page=0 chnl=15\nchar id=173 x=133 y=1458 width=88 height=60 xoffset=-22 yoffset=74 xadvance=44 page=0 chnl=15\nchar id=174 x=1168 y=597 width=161 height=165 xoffset=-18 yoffset=13 xadvance=126 page=0 chnl=15\nchar id=175 x=333 y=1448 width=105 height=59 xoffset=-15 yoffset=14 xadvance=73 page=0 chnl=15\nchar id=176 x=1815 y=1268 width=89 height=88 xoffset=-15 yoffset=13 xadvance=60 page=0 chnl=15\nchar id=177 x=863 y=1129 width=121 height=147 xoffset=-17 yoffset=29 xadvance=85 page=0 chnl=15\nchar id=178 x=899 y=1288 width=97 height=111 xoffset=-19 yoffset=13 xadvance=59 page=0 chnl=15\nchar id=179 x=790 y=1290 width=97 height=112 xoffset=-20 yoffset=13 xadvance=59 page=0 chnl=15\nchar id=180 x=2528 y=1258 width=82 height=71 xoffset=-15 yoffset=8 xadvance=50 page=0 chnl=15\nchar id=181 x=866 y=599 width=117 height=166 xoffset=-13 yoffset=43 xadvance=91 page=0 chnl=15\nchar id=182 x=2893 y=923 width=110 height=162 xoffset=-20 yoffset=14 xadvance=78 page=0 chnl=15\nchar id=183 x=2908 y=1242 width=67 height=65 xoffset=-13 yoffset=62 xadvance=42 page=0 chnl=15\nchar id=184 x=2166 y=1261 width=73 height=82 xoffset=-15 yoffset=128 xadvance=40 page=0 chnl=15\nchar id=185 x=1479 y=1271 width=79 height=109 xoffset=-15 yoffset=14 xadvance=59 page=0 chnl=15\nchar id=186 x=1253 y=1274 width=103 height=109 xoffset=-15 yoffset=13 xadvance=73 page=0 chnl=15\nchar id=187 x=1008 y=1277 width=111 height=110 xoffset=-17 yoffset=54 xadvance=75 page=0 chnl=15\nchar id=188 x=2542 y=758 width=154 height=162 xoffset=-18 yoffset=14 xadvance=117 page=0 chnl=15\nchar id=189 x=2372 y=760 width=158 height=162 xoffset=-18 yoffset=14 xadvance=124 page=0 chnl=15\nchar id=190 x=1129 y=776 width=159 height=163 xoffset=-16 yoffset=13 xadvance=124 page=0 chnl=15\nchar id=191 x=925 y=777 width=113 height=164 xoffset=-19 yoffset=42 xadvance=76 page=0 chnl=15\nchar id=192 x=162 y=225 width=150 height=192 xoffset=-23 yoffset=-16 xadvance=104 page=0 chnl=15\nchar id=193 x=324 y=214 width=150 height=192 xoffset=-23 yoffset=-16 xadvance=104 page=0 chnl=15\nchar id=194 x=0 y=225 width=150 height=192 xoffset=-23 yoffset=-16 xadvance=104 page=0 chnl=15\nchar id=195 x=1359 y=210 width=150 height=190 xoffset=-23 yoffset=-14 xadvance=104 page=0 chnl=15\nchar id=196 x=1814 y=208 width=150 height=188 xoffset=-23 yoffset=-12 xadvance=104 page=0 chnl=15\nchar id=197 x=1016 y=0 width=150 height=199 xoffset=-23 yoffset=-23 xadvance=104 page=0 chnl=15\nchar id=198 x=1792 y=769 width=198 height=162 xoffset=-26 yoffset=14 xadvance=150 page=0 chnl=15\nchar id=199 x=1178 y=0 width=137 height=198 xoffset=-15 yoffset=13 xadvance=104 page=0 chnl=15\nchar id=200 x=2922 y=0 width=122 height=192 xoffset=-12 yoffset=-16 xadvance=91 page=0 chnl=15\nchar id=201 x=641 y=214 width=122 height=192 xoffset=-12 yoffset=-16 xadvance=91 page=0 chnl=15\nchar id=202 x=775 y=213 width=122 height=192 xoffset=-12 yoffset=-16 xadvance=91 page=0 chnl=15\nchar id=203 x=1976 y=207 width=122 height=188 xoffset=-12 yoffset=-12 xadvance=91 page=0 chnl=15\nchar id=204 x=1018 y=211 width=82 height=192 xoffset=-27 yoffset=-16 xadvance=44 page=0 chnl=15\nchar id=205 x=1112 y=211 width=82 height=192 xoffset=-11 yoffset=-16 xadvance=44 page=0 chnl=15\nchar id=206 x=909 y=213 width=97 height=192 xoffset=-27 yoffset=-16 xadvance=44 page=0 chnl=15\nchar id=207 x=2110 y=207 width=100 height=188 xoffset=-28 yoffset=-12 xadvance=44 page=0 chnl=15\nchar id=208 x=0 y=969 width=145 height=162 xoffset=-22 yoffset=14 xadvance=107 page=0 chnl=15\nchar id=209 x=1521 y=208 width=137 height=190 xoffset=-12 yoffset=-14 xadvance=114 page=0 chnl=15\nchar id=210 x=2184 y=0 width=141 height=195 xoffset=-16 yoffset=-17 xadvance=110 page=0 chnl=15\nchar id=211 x=2031 y=0 width=141 height=195 xoffset=-16 yoffset=-17 xadvance=110 page=0 chnl=15\nchar id=212 x=1878 y=0 width=141 height=195 xoffset=-16 yoffset=-17 xadvance=110 page=0 chnl=15\nchar id=213 x=2769 y=0 width=141 height=193 xoffset=-16 yoffset=-15 xadvance=110 page=0 chnl=15\nchar id=214 x=1206 y=210 width=141 height=191 xoffset=-16 yoffset=-13 xadvance=110 page=0 chnl=15\nchar id=215 x=279 y=1316 width=120 height=120 xoffset=-18 yoffset=40 xadvance=85 page=0 chnl=15\nchar id=216 x=2655 y=206 width=143 height=174 xoffset=-16 yoffset=10 xadvance=110 page=0 chnl=15\nchar id=217 x=2625 y=0 width=132 height=194 xoffset=-14 yoffset=-16 xadvance=104 page=0 chnl=15\nchar id=218 x=2481 y=0 width=132 height=194 xoffset=-14 yoffset=-16 xadvance=104 page=0 chnl=15\nchar id=219 x=2337 y=0 width=132 height=194 xoffset=-14 yoffset=-16 xadvance=104 page=0 chnl=15\nchar id=220 x=1670 y=208 width=132 height=190 xoffset=-14 yoffset=-12 xadvance=104 page=0 chnl=15\nchar id=221 x=486 y=214 width=143 height=192 xoffset=-24 yoffset=-16 xadvance=96 page=0 chnl=15\nchar id=222 x=2360 y=939 width=124 height=162 xoffset=-12 yoffset=14 xadvance=95 page=0 chnl=15\nchar id=223 x=121 y=429 width=127 height=171 xoffset=-14 yoffset=7 xadvance=95 page=0 chnl=15\nchar id=224 x=1604 y=410 width=119 height=170 xoffset=-16 yoffset=8 xadvance=87 page=0 chnl=15\nchar id=225 x=1473 y=412 width=119 height=170 xoffset=-16 yoffset=8 xadvance=87 page=0 chnl=15\nchar id=226 x=1735 y=410 width=119 height=170 xoffset=-16 yoffset=8 xadvance=87 page=0 chnl=15\nchar id=227 x=532 y=600 width=119 height=167 xoffset=-16 yoffset=11 xadvance=87 page=0 chnl=15\nchar id=228 x=2926 y=569 width=119 height=165 xoffset=-16 yoffset=13 xadvance=87 page=0 chnl=15\nchar id=229 x=2524 y=206 width=119 height=177 xoffset=-16 yoffset=1 xadvance=87 page=0 chnl=15\nchar id=230 x=996 y=1129 width=173 height=136 xoffset=-19 yoffset=42 xadvance=135 page=0 chnl=15\nchar id=231 x=1979 y=407 width=120 height=169 xoffset=-17 yoffset=42 xadvance=84 page=0 chnl=15\nchar id=232 x=1076 y=415 width=121 height=170 xoffset=-17 yoffset=8 xadvance=85 page=0 chnl=15\nchar id=233 x=943 y=417 width=121 height=170 xoffset=-17 yoffset=8 xadvance=85 page=0 chnl=15\nchar id=234 x=810 y=417 width=121 height=170 xoffset=-17 yoffset=8 xadvance=85 page=0 chnl=15\nchar id=235 x=2793 y=572 width=121 height=165 xoffset=-17 yoffset=13 xadvance=85 page=0 chnl=15\nchar id=236 x=772 y=600 width=82 height=167 xoffset=-29 yoffset=9 xadvance=40 page=0 chnl=15\nchar id=237 x=2970 y=388 width=82 height=167 xoffset=-13 yoffset=9 xadvance=40 page=0 chnl=15\nchar id=238 x=663 y=600 width=97 height=167 xoffset=-29 yoffset=9 xadvance=40 page=0 chnl=15\nchar id=239 x=0 y=1143 width=100 height=162 xoffset=-30 yoffset=14 xadvance=40 page=0 chnl=15\nchar id=240 x=2810 y=205 width=123 height=173 xoffset=-15 yoffset=5 xadvance=94 page=0 chnl=15\nchar id=241 x=0 y=792 width=116 height=165 xoffset=-14 yoffset=11 xadvance=88 page=0 chnl=15\nchar id=242 x=260 y=429 width=127 height=170 xoffset=-18 yoffset=8 xadvance=91 page=0 chnl=15\nchar id=243 x=538 y=418 width=127 height=170 xoffset=-18 yoffset=8 xadvance=91 page=0 chnl=15\nchar id=244 x=399 y=418 width=127 height=170 xoffset=-18 yoffset=8 xadvance=91 page=0 chnl=15\nchar id=245 x=2831 y=390 width=127 height=167 xoffset=-18 yoffset=11 xadvance=91 page=0 chnl=15\nchar id=246 x=2253 y=583 width=127 height=165 xoffset=-18 yoffset=13 xadvance=91 page=0 chnl=15\nchar id=247 x=140 y=1317 width=127 height=128 xoffset=-19 yoffset=34 xadvance=91 page=0 chnl=15\nchar id=248 x=564 y=1129 width=126 height=153 xoffset=-17 yoffset=34 xadvance=91 page=0 chnl=15\nchar id=249 x=2111 y=407 width=116 height=169 xoffset=-14 yoffset=9 xadvance=88 page=0 chnl=15\nchar id=250 x=2239 y=402 width=116 height=169 xoffset=-14 yoffset=9 xadvance=88 page=0 chnl=15\nchar id=251 x=2367 y=402 width=116 height=169 xoffset=-14 yoffset=9 xadvance=88 page=0 chnl=15\nchar id=252 x=672 y=779 width=116 height=164 xoffset=-14 yoffset=14 xadvance=88 page=0 chnl=15\nchar id=253 x=749 y=0 width=122 height=201 xoffset=-23 yoffset=9 xadvance=76 page=0 chnl=15\nchar id=254 x=883 y=0 width=121 height=201 xoffset=-13 yoffset=8 xadvance=92 page=0 chnl=15\nchar id=255 x=1744 y=0 width=122 height=196 xoffset=-23 yoffset=14 xadvance=76 page=0 chnl=15\nkernings count=1686\nkerning first=32 second=84 amount=-3\nkerning first=40 second=86 amount=2\nkerning first=40 second=87 amount=1\nkerning first=40 second=89 amount=2\nkerning first=40 second=221 amount=2\nkerning first=70 second=44 amount=-18\nkerning first=70 second=46 amount=-18\nkerning first=70 second=65 amount=-13\nkerning first=70 second=74 amount=-21\nkerning first=70 second=84 amount=2\nkerning first=70 second=97 amount=-3\nkerning first=70 second=99 amount=-2\nkerning first=70 second=100 amount=-2\nkerning first=70 second=101 amount=-2\nkerning first=70 second=103 amount=-2\nkerning first=70 second=111 amount=-2\nkerning first=70 second=113 amount=-2\nkerning first=70 second=117 amount=-2\nkerning first=70 second=118 amount=-2\nkerning first=70 second=121 amount=-2\nkerning first=70 second=192 amount=-13\nkerning first=70 second=193 amount=-13\nkerning first=70 second=194 amount=-13\nkerning first=70 second=195 amount=-13\nkerning first=70 second=196 amount=-13\nkerning first=70 second=197 amount=-13\nkerning first=70 second=224 amount=-3\nkerning first=70 second=225 amount=-3\nkerning first=70 second=226 amount=-3\nkerning first=70 second=227 amount=-3\nkerning first=70 second=228 amount=-3\nkerning first=70 second=229 amount=-3\nkerning first=70 second=231 amount=-2\nkerning first=70 second=232 amount=-2\nkerning first=70 second=233 amount=-2\nkerning first=70 second=234 amount=-2\nkerning first=70 second=235 amount=-2\nkerning first=70 second=242 amount=-2\nkerning first=70 second=243 amount=-2\nkerning first=70 second=244 amount=-2\nkerning first=70 second=245 amount=-2\nkerning first=70 second=246 amount=-2\nkerning first=70 second=249 amount=-2\nkerning first=70 second=250 amount=-2\nkerning first=70 second=251 amount=-2\nkerning first=70 second=252 amount=-2\nkerning first=70 second=253 amount=-2\nkerning first=70 second=255 amount=-2\nkerning first=81 second=84 amount=-3\nkerning first=81 second=86 amount=-2\nkerning first=81 second=87 amount=-2\nkerning first=81 second=89 amount=-3\nkerning first=81 second=221 amount=-3\nkerning first=82 second=84 amount=-6\nkerning first=82 second=86 amount=-1\nkerning first=82 second=89 amount=-4\nkerning first=82 second=221 amount=-4\nkerning first=91 second=74 amount=-1\nkerning first=91 second=85 amount=-1\nkerning first=91 second=217 amount=-1\nkerning first=91 second=218 amount=-1\nkerning first=91 second=219 amount=-1\nkerning first=91 second=220 amount=-1\nkerning first=102 second=34 amount=1\nkerning first=102 second=39 amount=1\nkerning first=102 second=99 amount=-2\nkerning first=102 second=100 amount=-2\nkerning first=102 second=101 amount=-2\nkerning first=102 second=103 amount=-2\nkerning first=102 second=113 amount=-2\nkerning first=102 second=231 amount=-2\nkerning first=102 second=232 amount=-2\nkerning first=102 second=233 amount=-2\nkerning first=102 second=234 amount=-2\nkerning first=102 second=235 amount=-2\nkerning first=107 second=99 amount=-2\nkerning first=107 second=100 amount=-2\nkerning first=107 second=101 amount=-2\nkerning first=107 second=103 amount=-2\nkerning first=107 second=113 amount=-2\nkerning first=107 second=231 amount=-2\nkerning first=107 second=232 amount=-2\nkerning first=107 second=233 amount=-2\nkerning first=107 second=234 amount=-2\nkerning first=107 second=235 amount=-2\nkerning first=116 second=111 amount=-2\nkerning first=116 second=242 amount=-2\nkerning first=116 second=243 amount=-2\nkerning first=116 second=244 amount=-2\nkerning first=116 second=245 amount=-2\nkerning first=116 second=246 amount=-2\nkerning first=119 second=44 amount=-10\nkerning first=119 second=46 amount=-10\nkerning first=123 second=74 amount=-2\nkerning first=123 second=85 amount=-2\nkerning first=123 second=217 amount=-2\nkerning first=123 second=218 amount=-2\nkerning first=123 second=219 amount=-2\nkerning first=123 second=220 amount=-2\nkerning first=34 second=34 amount=-8\nkerning first=34 second=39 amount=-8\nkerning first=34 second=111 amount=-5\nkerning first=34 second=242 amount=-5\nkerning first=34 second=243 amount=-5\nkerning first=34 second=244 amount=-5\nkerning first=34 second=245 amount=-5\nkerning first=34 second=246 amount=-5\nkerning first=34 second=65 amount=-9\nkerning first=34 second=192 amount=-9\nkerning first=34 second=193 amount=-9\nkerning first=34 second=194 amount=-9\nkerning first=34 second=195 amount=-9\nkerning first=34 second=196 amount=-9\nkerning first=34 second=197 amount=-9\nkerning first=34 second=99 amount=-5\nkerning first=34 second=100 amount=-5\nkerning first=34 second=101 amount=-5\nkerning first=34 second=103 amount=-5\nkerning first=34 second=113 amount=-5\nkerning first=34 second=231 amount=-5\nkerning first=34 second=232 amount=-5\nkerning first=34 second=233 amount=-5\nkerning first=34 second=234 amount=-5\nkerning first=34 second=235 amount=-5\nkerning first=34 second=109 amount=-2\nkerning first=34 second=110 amount=-2\nkerning first=34 second=112 amount=-2\nkerning first=34 second=241 amount=-2\nkerning first=34 second=97 amount=-4\nkerning first=34 second=224 amount=-4\nkerning first=34 second=225 amount=-4\nkerning first=34 second=226 amount=-4\nkerning first=34 second=227 amount=-4\nkerning first=34 second=228 amount=-4\nkerning first=34 second=229 amount=-4\nkerning first=34 second=115 amount=-6\nkerning first=39 second=34 amount=-8\nkerning first=39 second=39 amount=-8\nkerning first=39 second=111 amount=-5\nkerning first=39 second=242 amount=-5\nkerning first=39 second=243 amount=-5\nkerning first=39 second=244 amount=-5\nkerning first=39 second=245 amount=-5\nkerning first=39 second=246 amount=-5\nkerning first=39 second=65 amount=-9\nkerning first=39 second=192 amount=-9\nkerning first=39 second=193 amount=-9\nkerning first=39 second=194 amount=-9\nkerning first=39 second=195 amount=-9\nkerning first=39 second=196 amount=-9\nkerning first=39 second=197 amount=-9\nkerning first=39 second=99 amount=-5\nkerning first=39 second=100 amount=-5\nkerning first=39 second=101 amount=-5\nkerning first=39 second=103 amount=-5\nkerning first=39 second=113 amount=-5\nkerning first=39 second=231 amount=-5\nkerning first=39 second=232 amount=-5\nkerning first=39 second=233 amount=-5\nkerning first=39 second=234 amount=-5\nkerning first=39 second=235 amount=-5\nkerning first=39 second=109 amount=-2\nkerning first=39 second=110 amount=-2\nkerning first=39 second=112 amount=-2\nkerning first=39 second=241 amount=-2\nkerning first=39 second=97 amount=-4\nkerning first=39 second=224 amount=-4\nkerning first=39 second=225 amount=-4\nkerning first=39 second=226 amount=-4\nkerning first=39 second=227 amount=-4\nkerning first=39 second=228 amount=-4\nkerning first=39 second=229 amount=-4\nkerning first=39 second=115 amount=-6\nkerning first=44 second=34 amount=-13\nkerning first=44 second=39 amount=-13\nkerning first=46 second=34 amount=-13\nkerning first=46 second=39 amount=-13\nkerning first=65 second=118 amount=-4\nkerning first=65 second=121 amount=-4\nkerning first=65 second=253 amount=-4\nkerning first=65 second=255 amount=-4\nkerning first=65 second=67 amount=-1\nkerning first=65 second=71 amount=-1\nkerning first=65 second=79 amount=-1\nkerning first=65 second=81 amount=-1\nkerning first=65 second=216 amount=-1\nkerning first=65 second=199 amount=-1\nkerning first=65 second=210 amount=-1\nkerning first=65 second=211 amount=-1\nkerning first=65 second=212 amount=-1\nkerning first=65 second=213 amount=-1\nkerning first=65 second=214 amount=-1\nkerning first=65 second=85 amount=-1\nkerning first=65 second=217 amount=-1\nkerning first=65 second=218 amount=-1\nkerning first=65 second=219 amount=-1\nkerning first=65 second=220 amount=-1\nkerning first=65 second=34 amount=-9\nkerning first=65 second=39 amount=-9\nkerning first=65 second=111 amount=-1\nkerning first=65 second=242 amount=-1\nkerning first=65 second=243 amount=-1\nkerning first=65 second=244 amount=-1\nkerning first=65 second=245 amount=-1\nkerning first=65 second=246 amount=-1\nkerning first=65 second=87 amount=-5\nkerning first=65 second=84 amount=-10\nkerning first=65 second=117 amount=-1\nkerning first=65 second=249 amount=-1\nkerning first=65 second=250 amount=-1\nkerning first=65 second=251 amount=-1\nkerning first=65 second=252 amount=-1\nkerning first=65 second=122 amount=1\nkerning first=65 second=86 amount=-7\nkerning first=65 second=89 amount=-7\nkerning first=65 second=221 amount=-7\nkerning first=66 second=84 amount=-2\nkerning first=66 second=86 amount=-2\nkerning first=66 second=89 amount=-4\nkerning first=66 second=221 amount=-4\nkerning first=67 second=84 amount=-2\nkerning first=68 second=84 amount=-2\nkerning first=68 second=86 amount=-2\nkerning first=68 second=89 amount=-3\nkerning first=68 second=221 amount=-3\nkerning first=68 second=65 amount=-2\nkerning first=68 second=192 amount=-2\nkerning first=68 second=193 amount=-2\nkerning first=68 second=194 amount=-2\nkerning first=68 second=195 amount=-2\nkerning first=68 second=196 amount=-2\nkerning first=68 second=197 amount=-2\nkerning first=68 second=88 amount=-2\nkerning first=68 second=44 amount=-8\nkerning first=68 second=46 amount=-8\nkerning first=68 second=90 amount=-2\nkerning first=69 second=118 amount=-2\nkerning first=69 second=121 amount=-2\nkerning first=69 second=253 amount=-2\nkerning first=69 second=255 amount=-2\nkerning first=69 second=111 amount=-1\nkerning first=69 second=242 amount=-1\nkerning first=69 second=243 amount=-1\nkerning first=69 second=244 amount=-1\nkerning first=69 second=245 amount=-1\nkerning first=69 second=246 amount=-1\nkerning first=69 second=84 amount=2\nkerning first=69 second=117 amount=-1\nkerning first=69 second=249 amount=-1\nkerning first=69 second=250 amount=-1\nkerning first=69 second=251 amount=-1\nkerning first=69 second=252 amount=-1\nkerning first=69 second=99 amount=-1\nkerning first=69 second=100 amount=-1\nkerning first=69 second=101 amount=-1\nkerning first=69 second=103 amount=-1\nkerning first=69 second=113 amount=-1\nkerning first=69 second=231 amount=-1\nkerning first=69 second=232 amount=-1\nkerning first=69 second=233 amount=-1\nkerning first=69 second=234 amount=-1\nkerning first=69 second=235 amount=-1\nkerning first=72 second=84 amount=-2\nkerning first=72 second=89 amount=-2\nkerning first=72 second=221 amount=-2\nkerning first=72 second=65 amount=1\nkerning first=72 second=192 amount=1\nkerning first=72 second=193 amount=1\nkerning first=72 second=194 amount=1\nkerning first=72 second=195 amount=1\nkerning first=72 second=196 amount=1\nkerning first=72 second=197 amount=1\nkerning first=72 second=88 amount=1\nkerning first=73 second=84 amount=-2\nkerning first=73 second=89 amount=-2\nkerning first=73 second=221 amount=-2\nkerning first=73 second=65 amount=1\nkerning first=73 second=192 amount=1\nkerning first=73 second=193 amount=1\nkerning first=73 second=194 amount=1\nkerning first=73 second=195 amount=1\nkerning first=73 second=196 amount=1\nkerning first=73 second=197 amount=1\nkerning first=73 second=88 amount=1\nkerning first=74 second=65 amount=-2\nkerning first=74 second=192 amount=-2\nkerning first=74 second=193 amount=-2\nkerning first=74 second=194 amount=-2\nkerning first=74 second=195 amount=-2\nkerning first=74 second=196 amount=-2\nkerning first=74 second=197 amount=-2\nkerning first=75 second=118 amount=-3\nkerning first=75 second=121 amount=-3\nkerning first=75 second=253 amount=-3\nkerning first=75 second=255 amount=-3\nkerning first=75 second=67 amount=-2\nkerning first=75 second=71 amount=-2\nkerning first=75 second=79 amount=-2\nkerning first=75 second=81 amount=-2\nkerning first=75 second=216 amount=-2\nkerning first=75 second=199 amount=-2\nkerning first=75 second=210 amount=-2\nkerning first=75 second=211 amount=-2\nkerning first=75 second=212 amount=-2\nkerning first=75 second=213 amount=-2\nkerning first=75 second=214 amount=-2\nkerning first=75 second=111 amount=-2\nkerning first=75 second=242 amount=-2\nkerning first=75 second=243 amount=-2\nkerning first=75 second=244 amount=-2\nkerning first=75 second=245 amount=-2\nkerning first=75 second=246 amount=-2\nkerning first=75 second=117 amount=-2\nkerning first=75 second=249 amount=-2\nkerning first=75 second=250 amount=-2\nkerning first=75 second=251 amount=-2\nkerning first=75 second=252 amount=-2\nkerning first=75 second=99 amount=-2\nkerning first=75 second=100 amount=-2\nkerning first=75 second=101 amount=-2\nkerning first=75 second=103 amount=-2\nkerning first=75 second=113 amount=-2\nkerning first=75 second=231 amount=-2\nkerning first=75 second=232 amount=-2\nkerning first=75 second=233 amount=-2\nkerning first=75 second=234 amount=-2\nkerning first=75 second=235 amount=-2\nkerning first=75 second=45 amount=-5\nkerning first=75 second=173 amount=-5\nkerning first=75 second=109 amount=-2\nkerning first=75 second=110 amount=-2\nkerning first=75 second=112 amount=-2\nkerning first=75 second=241 amount=-2\nkerning first=76 second=118 amount=-10\nkerning first=76 second=121 amount=-10\nkerning first=76 second=253 amount=-10\nkerning first=76 second=255 amount=-10\nkerning first=76 second=67 amount=-5\nkerning first=76 second=71 amount=-5\nkerning first=76 second=79 amount=-5\nkerning first=76 second=81 amount=-5\nkerning first=76 second=216 amount=-5\nkerning first=76 second=199 amount=-5\nkerning first=76 second=210 amount=-5\nkerning first=76 second=211 amount=-5\nkerning first=76 second=212 amount=-5\nkerning first=76 second=213 amount=-5\nkerning first=76 second=214 amount=-5\nkerning first=76 second=85 amount=-4\nkerning first=76 second=217 amount=-4\nkerning first=76 second=218 amount=-4\nkerning first=76 second=219 amount=-4\nkerning first=76 second=220 amount=-4\nkerning first=76 second=34 amount=-26\nkerning first=76 second=39 amount=-26\nkerning first=76 second=87 amount=-11\nkerning first=76 second=84 amount=-21\nkerning first=76 second=117 amount=-3\nkerning first=76 second=249 amount=-3\nkerning first=76 second=250 amount=-3\nkerning first=76 second=251 amount=-3\nkerning first=76 second=252 amount=-3\nkerning first=76 second=86 amount=-14\nkerning first=76 second=89 amount=-19\nkerning first=76 second=221 amount=-19\nkerning first=76 second=65 amount=1\nkerning first=76 second=192 amount=1\nkerning first=76 second=193 amount=1\nkerning first=76 second=194 amount=1\nkerning first=76 second=195 amount=1\nkerning first=76 second=196 amount=1\nkerning first=76 second=197 amount=1\nkerning first=77 second=84 amount=-2\nkerning first=77 second=89 amount=-2\nkerning first=77 second=221 amount=-2\nkerning first=77 second=65 amount=1\nkerning first=77 second=192 amount=1\nkerning first=77 second=193 amount=1\nkerning first=77 second=194 amount=1\nkerning first=77 second=195 amount=1\nkerning first=77 second=196 amount=1\nkerning first=77 second=197 amount=1\nkerning first=77 second=88 amount=1\nkerning first=78 second=84 amount=-2\nkerning first=78 second=89 amount=-2\nkerning first=78 second=221 amount=-2\nkerning first=78 second=65 amount=1\nkerning first=78 second=192 amount=1\nkerning first=78 second=193 amount=1\nkerning first=78 second=194 amount=1\nkerning first=78 second=195 amount=1\nkerning first=78 second=196 amount=1\nkerning first=78 second=197 amount=1\nkerning first=78 second=88 amount=1\nkerning first=79 second=84 amount=-2\nkerning first=79 second=86 amount=-2\nkerning first=79 second=89 amount=-3\nkerning first=79 second=221 amount=-3\nkerning first=79 second=65 amount=-2\nkerning first=79 second=192 amount=-2\nkerning first=79 second=193 amount=-2\nkerning first=79 second=194 amount=-2\nkerning first=79 second=195 amount=-2\nkerning first=79 second=196 amount=-2\nkerning first=79 second=197 amount=-2\nkerning first=79 second=88 amount=-2\nkerning first=79 second=44 amount=-8\nkerning first=79 second=46 amount=-8\nkerning first=79 second=90 amount=-2\nkerning first=80 second=118 amount=1\nkerning first=80 second=121 amount=1\nkerning first=80 second=253 amount=1\nkerning first=80 second=255 amount=1\nkerning first=80 second=111 amount=-1\nkerning first=80 second=242 amount=-1\nkerning first=80 second=243 amount=-1\nkerning first=80 second=244 amount=-1\nkerning first=80 second=245 amount=-1\nkerning first=80 second=246 amount=-1\nkerning first=80 second=65 amount=-11\nkerning first=80 second=192 amount=-11\nkerning first=80 second=193 amount=-11\nkerning first=80 second=194 amount=-11\nkerning first=80 second=195 amount=-11\nkerning first=80 second=196 amount=-11\nkerning first=80 second=197 amount=-11\nkerning first=80 second=88 amount=-2\nkerning first=80 second=44 amount=-25\nkerning first=80 second=46 amount=-25\nkerning first=80 second=90 amount=-2\nkerning first=80 second=99 amount=-1\nkerning first=80 second=100 amount=-1\nkerning first=80 second=101 amount=-1\nkerning first=80 second=103 amount=-1\nkerning first=80 second=113 amount=-1\nkerning first=80 second=231 amount=-1\nkerning first=80 second=232 amount=-1\nkerning first=80 second=233 amount=-1\nkerning first=80 second=234 amount=-1\nkerning first=80 second=235 amount=-1\nkerning first=80 second=97 amount=-1\nkerning first=80 second=224 amount=-1\nkerning first=80 second=225 amount=-1\nkerning first=80 second=226 amount=-1\nkerning first=80 second=227 amount=-1\nkerning first=80 second=228 amount=-1\nkerning first=80 second=229 amount=-1\nkerning first=80 second=74 amount=-16\nkerning first=84 second=118 amount=-6\nkerning first=84 second=121 amount=-6\nkerning first=84 second=253 amount=-6\nkerning first=84 second=255 amount=-6\nkerning first=84 second=67 amount=-2\nkerning first=84 second=71 amount=-2\nkerning first=84 second=79 amount=-2\nkerning first=84 second=81 amount=-2\nkerning first=84 second=216 amount=-2\nkerning first=84 second=199 amount=-2\nkerning first=84 second=210 amount=-2\nkerning first=84 second=211 amount=-2\nkerning first=84 second=212 amount=-2\nkerning first=84 second=213 amount=-2\nkerning first=84 second=214 amount=-2\nkerning first=84 second=111 amount=-8\nkerning first=84 second=242 amount=-8\nkerning first=84 second=243 amount=-8\nkerning first=84 second=244 amount=-8\nkerning first=84 second=245 amount=-8\nkerning first=84 second=246 amount=-8\nkerning first=84 second=87 amount=1\nkerning first=84 second=84 amount=1\nkerning first=84 second=117 amount=-7\nkerning first=84 second=249 amount=-7\nkerning first=84 second=250 amount=-7\nkerning first=84 second=251 amount=-7\nkerning first=84 second=252 amount=-7\nkerning first=84 second=122 amount=-5\nkerning first=84 second=86 amount=1\nkerning first=84 second=89 amount=1\nkerning first=84 second=221 amount=1\nkerning first=84 second=65 amount=-6\nkerning first=84 second=192 amount=-6\nkerning first=84 second=193 amount=-6\nkerning first=84 second=194 amount=-6\nkerning first=84 second=195 amount=-6\nkerning first=84 second=196 amount=-6\nkerning first=84 second=197 amount=-6\nkerning first=84 second=44 amount=-17\nkerning first=84 second=46 amount=-17\nkerning first=84 second=99 amount=-8\nkerning first=84 second=100 amount=-8\nkerning first=84 second=101 amount=-8\nkerning first=84 second=103 amount=-8\nkerning first=84 second=113 amount=-8\nkerning first=84 second=231 amount=-8\nkerning first=84 second=232 amount=-8\nkerning first=84 second=233 amount=-8\nkerning first=84 second=234 amount=-8\nkerning first=84 second=235 amount=-8\nkerning first=84 second=120 amount=-6\nkerning first=84 second=45 amount=-18\nkerning first=84 second=173 amount=-18\nkerning first=84 second=109 amount=-9\nkerning first=84 second=110 amount=-9\nkerning first=84 second=112 amount=-9\nkerning first=84 second=241 amount=-9\nkerning first=84 second=83 amount=-1\nkerning first=84 second=97 amount=-9\nkerning first=84 second=224 amount=-9\nkerning first=84 second=225 amount=-9\nkerning first=84 second=226 amount=-9\nkerning first=84 second=227 amount=-9\nkerning first=84 second=228 amount=-9\nkerning first=84 second=229 amount=-9\nkerning first=84 second=115 amount=-9\nkerning first=84 second=74 amount=-19\nkerning first=85 second=65 amount=-2\nkerning first=85 second=192 amount=-2\nkerning first=85 second=193 amount=-2\nkerning first=85 second=194 amount=-2\nkerning first=85 second=195 amount=-2\nkerning first=85 second=196 amount=-2\nkerning first=85 second=197 amount=-2\nkerning first=86 second=118 amount=-1\nkerning first=86 second=121 amount=-1\nkerning first=86 second=253 amount=-1\nkerning first=86 second=255 amount=-1\nkerning first=86 second=67 amount=-1\nkerning first=86 second=71 amount=-1\nkerning first=86 second=79 amount=-1\nkerning first=86 second=81 amount=-1\nkerning first=86 second=216 amount=-1\nkerning first=86 second=199 amount=-1\nkerning first=86 second=210 amount=-1\nkerning first=86 second=211 amount=-1\nkerning first=86 second=212 amount=-1\nkerning first=86 second=213 amount=-1\nkerning first=86 second=214 amount=-1\nkerning first=86 second=111 amount=-4\nkerning first=86 second=242 amount=-4\nkerning first=86 second=243 amount=-4\nkerning first=86 second=244 amount=-4\nkerning first=86 second=245 amount=-4\nkerning first=86 second=246 amount=-4\nkerning first=86 second=117 amount=-2\nkerning first=86 second=249 amount=-2\nkerning first=86 second=250 amount=-2\nkerning first=86 second=251 amount=-2\nkerning first=86 second=252 amount=-2\nkerning first=86 second=65 amount=-6\nkerning first=86 second=192 amount=-6\nkerning first=86 second=193 amount=-6\nkerning first=86 second=194 amount=-6\nkerning first=86 second=195 amount=-6\nkerning first=86 second=196 amount=-6\nkerning first=86 second=197 amount=-6\nkerning first=86 second=44 amount=-18\nkerning first=86 second=46 amount=-18\nkerning first=86 second=99 amount=-3\nkerning first=86 second=100 amount=-3\nkerning first=86 second=101 amount=-3\nkerning first=86 second=103 amount=-3\nkerning first=86 second=113 amount=-3\nkerning first=86 second=231 amount=-3\nkerning first=86 second=232 amount=-3\nkerning first=86 second=233 amount=-3\nkerning first=86 second=234 amount=-3\nkerning first=86 second=235 amount=-3\nkerning first=86 second=45 amount=-3\nkerning first=86 second=173 amount=-3\nkerning first=86 second=97 amount=-4\nkerning first=86 second=224 amount=-4\nkerning first=86 second=225 amount=-4\nkerning first=86 second=226 amount=-4\nkerning first=86 second=227 amount=-4\nkerning first=86 second=228 amount=-4\nkerning first=86 second=229 amount=-4\nkerning first=87 second=111 amount=-2\nkerning first=87 second=242 amount=-2\nkerning first=87 second=243 amount=-2\nkerning first=87 second=244 amount=-2\nkerning first=87 second=245 amount=-2\nkerning first=87 second=246 amount=-2\nkerning first=87 second=84 amount=1\nkerning first=87 second=117 amount=-1\nkerning first=87 second=249 amount=-1\nkerning first=87 second=250 amount=-1\nkerning first=87 second=251 amount=-1\nkerning first=87 second=252 amount=-1\nkerning first=87 second=65 amount=-3\nkerning first=87 second=192 amount=-3\nkerning first=87 second=193 amount=-3\nkerning first=87 second=194 amount=-3\nkerning first=87 second=195 amount=-3\nkerning first=87 second=196 amount=-3\nkerning first=87 second=197 amount=-3\nkerning first=87 second=44 amount=-10\nkerning first=87 second=46 amount=-10\nkerning first=87 second=99 amount=-2\nkerning first=87 second=100 amount=-2\nkerning first=87 second=101 amount=-2\nkerning first=87 second=103 amount=-2\nkerning first=87 second=113 amount=-2\nkerning first=87 second=231 amount=-2\nkerning first=87 second=232 amount=-2\nkerning first=87 second=233 amount=-2\nkerning first=87 second=234 amount=-2\nkerning first=87 second=235 amount=-2\nkerning first=87 second=45 amount=-5\nkerning first=87 second=173 amount=-5\nkerning first=87 second=97 amount=-3\nkerning first=87 second=224 amount=-3\nkerning first=87 second=225 amount=-3\nkerning first=87 second=226 amount=-3\nkerning first=87 second=227 amount=-3\nkerning first=87 second=228 amount=-3\nkerning first=87 second=229 amount=-3\nkerning first=88 second=118 amount=-2\nkerning first=88 second=121 amount=-2\nkerning first=88 second=253 amount=-2\nkerning first=88 second=255 amount=-2\nkerning first=88 second=67 amount=-2\nkerning first=88 second=71 amount=-2\nkerning first=88 second=79 amount=-2\nkerning first=88 second=81 amount=-2\nkerning first=88 second=216 amount=-2\nkerning first=88 second=199 amount=-2\nkerning first=88 second=210 amount=-2\nkerning first=88 second=211 amount=-2\nkerning first=88 second=212 amount=-2\nkerning first=88 second=213 amount=-2\nkerning first=88 second=214 amount=-2\nkerning first=88 second=111 amount=-2\nkerning first=88 second=242 amount=-2\nkerning first=88 second=243 amount=-2\nkerning first=88 second=244 amount=-2\nkerning first=88 second=245 amount=-2\nkerning first=88 second=246 amount=-2\nkerning first=88 second=117 amount=-2\nkerning first=88 second=249 amount=-2\nkerning first=88 second=250 amount=-2\nkerning first=88 second=251 amount=-2\nkerning first=88 second=252 amount=-2\nkerning first=88 second=86 amount=1\nkerning first=88 second=99 amount=-2\nkerning first=88 second=100 amount=-2\nkerning first=88 second=101 amount=-2\nkerning first=88 second=103 amount=-2\nkerning first=88 second=113 amount=-2\nkerning first=88 second=231 amount=-2\nkerning first=88 second=232 amount=-2\nkerning first=88 second=233 amount=-2\nkerning first=88 second=234 amount=-2\nkerning first=88 second=235 amount=-2\nkerning first=88 second=45 amount=-4\nkerning first=88 second=173 amount=-4\nkerning first=89 second=118 amount=-2\nkerning first=89 second=121 amount=-2\nkerning first=89 second=253 amount=-2\nkerning first=89 second=255 amount=-2\nkerning first=89 second=67 amount=-2\nkerning first=89 second=71 amount=-2\nkerning first=89 second=79 amount=-2\nkerning first=89 second=81 amount=-2\nkerning first=89 second=216 amount=-2\nkerning first=89 second=199 amount=-2\nkerning first=89 second=210 amount=-2\nkerning first=89 second=211 amount=-2\nkerning first=89 second=212 amount=-2\nkerning first=89 second=213 amount=-2\nkerning first=89 second=214 amount=-2\nkerning first=89 second=85 amount=-7\nkerning first=89 second=217 amount=-7\nkerning first=89 second=218 amount=-7\nkerning first=89 second=219 amount=-7\nkerning first=89 second=220 amount=-7\nkerning first=89 second=111 amount=-5\nkerning first=89 second=242 amount=-5\nkerning first=89 second=243 amount=-5\nkerning first=89 second=244 amount=-5\nkerning first=89 second=245 amount=-5\nkerning first=89 second=246 amount=-5\nkerning first=89 second=87 amount=1\nkerning first=89 second=84 amount=1\nkerning first=89 second=117 amount=-3\nkerning first=89 second=249 amount=-3\nkerning first=89 second=250 amount=-3\nkerning first=89 second=251 amount=-3\nkerning first=89 second=252 amount=-3\nkerning first=89 second=122 amount=-2\nkerning first=89 second=86 amount=1\nkerning first=89 second=89 amount=1\nkerning first=89 second=221 amount=1\nkerning first=89 second=65 amount=-7\nkerning first=89 second=192 amount=-7\nkerning first=89 second=193 amount=-7\nkerning first=89 second=194 amount=-7\nkerning first=89 second=195 amount=-7\nkerning first=89 second=196 amount=-7\nkerning first=89 second=197 amount=-7\nkerning first=89 second=88 amount=1\nkerning first=89 second=44 amount=-16\nkerning first=89 second=46 amount=-16\nkerning first=89 second=99 amount=-5\nkerning first=89 second=100 amount=-5\nkerning first=89 second=101 amount=-5\nkerning first=89 second=103 amount=-5\nkerning first=89 second=113 amount=-5\nkerning first=89 second=231 amount=-5\nkerning first=89 second=232 amount=-5\nkerning first=89 second=233 amount=-5\nkerning first=89 second=234 amount=-5\nkerning first=89 second=235 amount=-5\nkerning first=89 second=120 amount=-2\nkerning first=89 second=45 amount=-4\nkerning first=89 second=173 amount=-4\nkerning first=89 second=109 amount=-3\nkerning first=89 second=110 amount=-3\nkerning first=89 second=112 amount=-3\nkerning first=89 second=241 amount=-3\nkerning first=89 second=83 amount=-1\nkerning first=89 second=97 amount=-6\nkerning first=89 second=224 amount=-6\nkerning first=89 second=225 amount=-6\nkerning first=89 second=226 amount=-6\nkerning first=89 second=227 amount=-6\nkerning first=89 second=228 amount=-6\nkerning first=89 second=229 amount=-6\nkerning first=89 second=115 amount=-5\nkerning first=89 second=74 amount=-7\nkerning first=90 second=118 amount=-2\nkerning first=90 second=121 amount=-2\nkerning first=90 second=253 amount=-2\nkerning first=90 second=255 amount=-2\nkerning first=90 second=67 amount=-2\nkerning first=90 second=71 amount=-2\nkerning first=90 second=79 amount=-2\nkerning first=90 second=81 amount=-2\nkerning first=90 second=216 amount=-2\nkerning first=90 second=199 amount=-2\nkerning first=90 second=210 amount=-2\nkerning first=90 second=211 amount=-2\nkerning first=90 second=212 amount=-2\nkerning first=90 second=213 amount=-2\nkerning first=90 second=214 amount=-2\nkerning first=90 second=111 amount=-2\nkerning first=90 second=242 amount=-2\nkerning first=90 second=243 amount=-2\nkerning first=90 second=244 amount=-2\nkerning first=90 second=245 amount=-2\nkerning first=90 second=246 amount=-2\nkerning first=90 second=117 amount=-1\nkerning first=90 second=249 amount=-1\nkerning first=90 second=250 amount=-1\nkerning first=90 second=251 amount=-1\nkerning first=90 second=252 amount=-1\nkerning first=90 second=65 amount=1\nkerning first=90 second=192 amount=1\nkerning first=90 second=193 amount=1\nkerning first=90 second=194 amount=1\nkerning first=90 second=195 amount=1\nkerning first=90 second=196 amount=1\nkerning first=90 second=197 amount=1\nkerning first=90 second=99 amount=-2\nkerning first=90 second=100 amount=-2\nkerning first=90 second=101 amount=-2\nkerning first=90 second=103 amount=-2\nkerning first=90 second=113 amount=-2\nkerning first=90 second=231 amount=-2\nkerning first=90 second=232 amount=-2\nkerning first=90 second=233 amount=-2\nkerning first=90 second=234 amount=-2\nkerning first=90 second=235 amount=-2\nkerning first=97 second=118 amount=-1\nkerning first=97 second=121 amount=-1\nkerning first=97 second=253 amount=-1\nkerning first=97 second=255 amount=-1\nkerning first=97 second=34 amount=-5\nkerning first=97 second=39 amount=-5\nkerning first=98 second=118 amount=-1\nkerning first=98 second=121 amount=-1\nkerning first=98 second=253 amount=-1\nkerning first=98 second=255 amount=-1\nkerning first=98 second=34 amount=-2\nkerning first=98 second=39 amount=-2\nkerning first=98 second=122 amount=-1\nkerning first=98 second=120 amount=-1\nkerning first=99 second=34 amount=-1\nkerning first=99 second=39 amount=-1\nkerning first=101 second=118 amount=-1\nkerning first=101 second=121 amount=-1\nkerning first=101 second=253 amount=-1\nkerning first=101 second=255 amount=-1\nkerning first=101 second=34 amount=-1\nkerning first=101 second=39 amount=-1\nkerning first=104 second=34 amount=-8\nkerning first=104 second=39 amount=-8\nkerning first=109 second=34 amount=-8\nkerning first=109 second=39 amount=-8\nkerning first=110 second=34 amount=-8\nkerning first=110 second=39 amount=-8\nkerning first=111 second=118 amount=-1\nkerning first=111 second=121 amount=-1\nkerning first=111 second=253 amount=-1\nkerning first=111 second=255 amount=-1\nkerning first=111 second=34 amount=-11\nkerning first=111 second=39 amount=-11\nkerning first=111 second=122 amount=-1\nkerning first=111 second=120 amount=-2\nkerning first=112 second=118 amount=-1\nkerning first=112 second=121 amount=-1\nkerning first=112 second=253 amount=-1\nkerning first=112 second=255 amount=-1\nkerning first=112 second=34 amount=-2\nkerning first=112 second=39 amount=-2\nkerning first=112 second=122 amount=-1\nkerning first=112 second=120 amount=-1\nkerning first=114 second=118 amount=1\nkerning first=114 second=121 amount=1\nkerning first=114 second=253 amount=1\nkerning first=114 second=255 amount=1\nkerning first=114 second=34 amount=1\nkerning first=114 second=39 amount=1\nkerning first=114 second=111 amount=-2\nkerning first=114 second=242 amount=-2\nkerning first=114 second=243 amount=-2\nkerning first=114 second=244 amount=-2\nkerning first=114 second=245 amount=-2\nkerning first=114 second=246 amount=-2\nkerning first=114 second=44 amount=-10\nkerning first=114 second=46 amount=-10\nkerning first=114 second=99 amount=-1\nkerning first=114 second=100 amount=-1\nkerning first=114 second=101 amount=-1\nkerning first=114 second=103 amount=-1\nkerning first=114 second=113 amount=-1\nkerning first=114 second=231 amount=-1\nkerning first=114 second=232 amount=-1\nkerning first=114 second=233 amount=-1\nkerning first=114 second=234 amount=-1\nkerning first=114 second=235 amount=-1\nkerning first=114 second=97 amount=-3\nkerning first=114 second=224 amount=-3\nkerning first=114 second=225 amount=-3\nkerning first=114 second=226 amount=-3\nkerning first=114 second=227 amount=-3\nkerning first=114 second=228 amount=-3\nkerning first=114 second=229 amount=-3\nkerning first=118 second=34 amount=1\nkerning first=118 second=39 amount=1\nkerning first=118 second=111 amount=-1\nkerning first=118 second=242 amount=-1\nkerning first=118 second=243 amount=-1\nkerning first=118 second=244 amount=-1\nkerning first=118 second=245 amount=-1\nkerning first=118 second=246 amount=-1\nkerning first=118 second=44 amount=-8\nkerning first=118 second=46 amount=-8\nkerning first=118 second=99 amount=-1\nkerning first=118 second=100 amount=-1\nkerning first=118 second=101 amount=-1\nkerning first=118 second=103 amount=-1\nkerning first=118 second=113 amount=-1\nkerning first=118 second=231 amount=-1\nkerning first=118 second=232 amount=-1\nkerning first=118 second=233 amount=-1\nkerning first=118 second=234 amount=-1\nkerning first=118 second=235 amount=-1\nkerning first=118 second=97 amount=-1\nkerning first=118 second=224 amount=-1\nkerning first=118 second=225 amount=-1\nkerning first=118 second=226 amount=-1\nkerning first=118 second=227 amount=-1\nkerning first=118 second=228 amount=-1\nkerning first=118 second=229 amount=-1\nkerning first=120 second=111 amount=-2\nkerning first=120 second=242 amount=-2\nkerning first=120 second=243 amount=-2\nkerning first=120 second=244 amount=-2\nkerning first=120 second=245 amount=-2\nkerning first=120 second=246 amount=-2\nkerning first=120 second=99 amount=-2\nkerning first=120 second=100 amount=-2\nkerning first=120 second=101 amount=-2\nkerning first=120 second=103 amount=-2\nkerning first=120 second=113 amount=-2\nkerning first=120 second=231 amount=-2\nkerning first=120 second=232 amount=-2\nkerning first=120 second=233 amount=-2\nkerning first=120 second=234 amount=-2\nkerning first=120 second=235 amount=-2\nkerning first=121 second=34 amount=1\nkerning first=121 second=39 amount=1\nkerning first=121 second=111 amount=-1\nkerning first=121 second=242 amount=-1\nkerning first=121 second=243 amount=-1\nkerning first=121 second=244 amount=-1\nkerning first=121 second=245 amount=-1\nkerning first=121 second=246 amount=-1\nkerning first=121 second=44 amount=-8\nkerning first=121 second=46 amount=-8\nkerning first=121 second=99 amount=-1\nkerning first=121 second=100 amount=-1\nkerning first=121 second=101 amount=-1\nkerning first=121 second=103 amount=-1\nkerning first=121 second=113 amount=-1\nkerning first=121 second=231 amount=-1\nkerning first=121 second=232 amount=-1\nkerning first=121 second=233 amount=-1\nkerning first=121 second=234 amount=-1\nkerning first=121 second=235 amount=-1\nkerning first=121 second=97 amount=-1\nkerning first=121 second=224 amount=-1\nkerning first=121 second=225 amount=-1\nkerning first=121 second=226 amount=-1\nkerning first=121 second=227 amount=-1\nkerning first=121 second=228 amount=-1\nkerning first=121 second=229 amount=-1\nkerning first=122 second=111 amount=-1\nkerning first=122 second=242 amount=-1\nkerning first=122 second=243 amount=-1\nkerning first=122 second=244 amount=-1\nkerning first=122 second=245 amount=-1\nkerning first=122 second=246 amount=-1\nkerning first=122 second=99 amount=-1\nkerning first=122 second=100 amount=-1\nkerning first=122 second=101 amount=-1\nkerning first=122 second=103 amount=-1\nkerning first=122 second=113 amount=-1\nkerning first=122 second=231 amount=-1\nkerning first=122 second=232 amount=-1\nkerning first=122 second=233 amount=-1\nkerning first=122 second=234 amount=-1\nkerning first=122 second=235 amount=-1\nkerning first=254 second=118 amount=-1\nkerning first=254 second=121 amount=-1\nkerning first=254 second=253 amount=-1\nkerning first=254 second=255 amount=-1\nkerning first=254 second=34 amount=-2\nkerning first=254 second=39 amount=-2\nkerning first=254 second=122 amount=-1\nkerning first=254 second=120 amount=-1\nkerning first=208 second=84 amount=-2\nkerning first=208 second=86 amount=-2\nkerning first=208 second=89 amount=-3\nkerning first=208 second=221 amount=-3\nkerning first=208 second=65 amount=-2\nkerning first=208 second=192 amount=-2\nkerning first=208 second=193 amount=-2\nkerning first=208 second=194 amount=-2\nkerning first=208 second=195 amount=-2\nkerning first=208 second=196 amount=-2\nkerning first=208 second=197 amount=-2\nkerning first=208 second=88 amount=-2\nkerning first=208 second=44 amount=-8\nkerning first=208 second=46 amount=-8\nkerning first=208 second=90 amount=-2\nkerning first=192 second=118 amount=-4\nkerning first=192 second=121 amount=-4\nkerning first=192 second=253 amount=-4\nkerning first=192 second=255 amount=-4\nkerning first=192 second=67 amount=-1\nkerning first=192 second=71 amount=-1\nkerning first=192 second=79 amount=-1\nkerning first=192 second=81 amount=-1\nkerning first=192 second=216 amount=-1\nkerning first=192 second=199 amount=-1\nkerning first=192 second=210 amount=-1\nkerning first=192 second=211 amount=-1\nkerning first=192 second=212 amount=-1\nkerning first=192 second=213 amount=-1\nkerning first=192 second=214 amount=-1\nkerning first=192 second=85 amount=-1\nkerning first=192 second=217 amount=-1\nkerning first=192 second=218 amount=-1\nkerning first=192 second=219 amount=-1\nkerning first=192 second=220 amount=-1\nkerning first=192 second=34 amount=-9\nkerning first=192 second=39 amount=-9\nkerning first=192 second=111 amount=-1\nkerning first=192 second=242 amount=-1\nkerning first=192 second=243 amount=-1\nkerning first=192 second=244 amount=-1\nkerning first=192 second=245 amount=-1\nkerning first=192 second=246 amount=-1\nkerning first=192 second=87 amount=-5\nkerning first=192 second=84 amount=-10\nkerning first=192 second=117 amount=-1\nkerning first=192 second=249 amount=-1\nkerning first=192 second=250 amount=-1\nkerning first=192 second=251 amount=-1\nkerning first=192 second=252 amount=-1\nkerning first=192 second=122 amount=1\nkerning first=192 second=86 amount=-7\nkerning first=192 second=89 amount=-7\nkerning first=192 second=221 amount=-7\nkerning first=193 second=118 amount=-4\nkerning first=193 second=121 amount=-4\nkerning first=193 second=253 amount=-4\nkerning first=193 second=255 amount=-4\nkerning first=193 second=67 amount=-1\nkerning first=193 second=71 amount=-1\nkerning first=193 second=79 amount=-1\nkerning first=193 second=81 amount=-1\nkerning first=193 second=216 amount=-1\nkerning first=193 second=199 amount=-1\nkerning first=193 second=210 amount=-1\nkerning first=193 second=211 amount=-1\nkerning first=193 second=212 amount=-1\nkerning first=193 second=213 amount=-1\nkerning first=193 second=214 amount=-1\nkerning first=193 second=85 amount=-1\nkerning first=193 second=217 amount=-1\nkerning first=193 second=218 amount=-1\nkerning first=193 second=219 amount=-1\nkerning first=193 second=220 amount=-1\nkerning first=193 second=34 amount=-9\nkerning first=193 second=39 amount=-9\nkerning first=193 second=111 amount=-1\nkerning first=193 second=242 amount=-1\nkerning first=193 second=243 amount=-1\nkerning first=193 second=244 amount=-1\nkerning first=193 second=245 amount=-1\nkerning first=193 second=246 amount=-1\nkerning first=193 second=87 amount=-5\nkerning first=193 second=84 amount=-10\nkerning first=193 second=117 amount=-1\nkerning first=193 second=249 amount=-1\nkerning first=193 second=250 amount=-1\nkerning first=193 second=251 amount=-1\nkerning first=193 second=252 amount=-1\nkerning first=193 second=122 amount=1\nkerning first=193 second=86 amount=-7\nkerning first=193 second=89 amount=-7\nkerning first=193 second=221 amount=-7\nkerning first=194 second=118 amount=-4\nkerning first=194 second=121 amount=-4\nkerning first=194 second=253 amount=-4\nkerning first=194 second=255 amount=-4\nkerning first=194 second=67 amount=-1\nkerning first=194 second=71 amount=-1\nkerning first=194 second=79 amount=-1\nkerning first=194 second=81 amount=-1\nkerning first=194 second=216 amount=-1\nkerning first=194 second=199 amount=-1\nkerning first=194 second=210 amount=-1\nkerning first=194 second=211 amount=-1\nkerning first=194 second=212 amount=-1\nkerning first=194 second=213 amount=-1\nkerning first=194 second=214 amount=-1\nkerning first=194 second=85 amount=-1\nkerning first=194 second=217 amount=-1\nkerning first=194 second=218 amount=-1\nkerning first=194 second=219 amount=-1\nkerning first=194 second=220 amount=-1\nkerning first=194 second=34 amount=-9\nkerning first=194 second=39 amount=-9\nkerning first=194 second=111 amount=-1\nkerning first=194 second=242 amount=-1\nkerning first=194 second=243 amount=-1\nkerning first=194 second=244 amount=-1\nkerning first=194 second=245 amount=-1\nkerning first=194 second=246 amount=-1\nkerning first=194 second=87 amount=-5\nkerning first=194 second=84 amount=-10\nkerning first=194 second=117 amount=-1\nkerning first=194 second=249 amount=-1\nkerning first=194 second=250 amount=-1\nkerning first=194 second=251 amount=-1\nkerning first=194 second=252 amount=-1\nkerning first=194 second=122 amount=1\nkerning first=194 second=86 amount=-7\nkerning first=194 second=89 amount=-7\nkerning first=194 second=221 amount=-7\nkerning first=195 second=118 amount=-4\nkerning first=195 second=121 amount=-4\nkerning first=195 second=253 amount=-4\nkerning first=195 second=255 amount=-4\nkerning first=195 second=67 amount=-1\nkerning first=195 second=71 amount=-1\nkerning first=195 second=79 amount=-1\nkerning first=195 second=81 amount=-1\nkerning first=195 second=216 amount=-1\nkerning first=195 second=199 amount=-1\nkerning first=195 second=210 amount=-1\nkerning first=195 second=211 amount=-1\nkerning first=195 second=212 amount=-1\nkerning first=195 second=213 amount=-1\nkerning first=195 second=214 amount=-1\nkerning first=195 second=85 amount=-1\nkerning first=195 second=217 amount=-1\nkerning first=195 second=218 amount=-1\nkerning first=195 second=219 amount=-1\nkerning first=195 second=220 amount=-1\nkerning first=195 second=34 amount=-9\nkerning first=195 second=39 amount=-9\nkerning first=195 second=111 amount=-1\nkerning first=195 second=242 amount=-1\nkerning first=195 second=243 amount=-1\nkerning first=195 second=244 amount=-1\nkerning first=195 second=245 amount=-1\nkerning first=195 second=246 amount=-1\nkerning first=195 second=87 amount=-5\nkerning first=195 second=84 amount=-10\nkerning first=195 second=117 amount=-1\nkerning first=195 second=249 amount=-1\nkerning first=195 second=250 amount=-1\nkerning first=195 second=251 amount=-1\nkerning first=195 second=252 amount=-1\nkerning first=195 second=122 amount=1\nkerning first=195 second=86 amount=-7\nkerning first=195 second=89 amount=-7\nkerning first=195 second=221 amount=-7\nkerning first=196 second=118 amount=-4\nkerning first=196 second=121 amount=-4\nkerning first=196 second=253 amount=-4\nkerning first=196 second=255 amount=-4\nkerning first=196 second=67 amount=-1\nkerning first=196 second=71 amount=-1\nkerning first=196 second=79 amount=-1\nkerning first=196 second=81 amount=-1\nkerning first=196 second=216 amount=-1\nkerning first=196 second=199 amount=-1\nkerning first=196 second=210 amount=-1\nkerning first=196 second=211 amount=-1\nkerning first=196 second=212 amount=-1\nkerning first=196 second=213 amount=-1\nkerning first=196 second=214 amount=-1\nkerning first=196 second=85 amount=-1\nkerning first=196 second=217 amount=-1\nkerning first=196 second=218 amount=-1\nkerning first=196 second=219 amount=-1\nkerning first=196 second=220 amount=-1\nkerning first=196 second=34 amount=-9\nkerning first=196 second=39 amount=-9\nkerning first=196 second=111 amount=-1\nkerning first=196 second=242 amount=-1\nkerning first=196 second=243 amount=-1\nkerning first=196 second=244 amount=-1\nkerning first=196 second=245 amount=-1\nkerning first=196 second=246 amount=-1\nkerning first=196 second=87 amount=-5\nkerning first=196 second=84 amount=-10\nkerning first=196 second=117 amount=-1\nkerning first=196 second=249 amount=-1\nkerning first=196 second=250 amount=-1\nkerning first=196 second=251 amount=-1\nkerning first=196 second=252 amount=-1\nkerning first=196 second=122 amount=1\nkerning first=196 second=86 amount=-7\nkerning first=196 second=89 amount=-7\nkerning first=196 second=221 amount=-7\nkerning first=197 second=118 amount=-4\nkerning first=197 second=121 amount=-4\nkerning first=197 second=253 amount=-4\nkerning first=197 second=255 amount=-4\nkerning first=197 second=67 amount=-1\nkerning first=197 second=71 amount=-1\nkerning first=197 second=79 amount=-1\nkerning first=197 second=81 amount=-1\nkerning first=197 second=216 amount=-1\nkerning first=197 second=199 amount=-1\nkerning first=197 second=210 amount=-1\nkerning first=197 second=211 amount=-1\nkerning first=197 second=212 amount=-1\nkerning first=197 second=213 amount=-1\nkerning first=197 second=214 amount=-1\nkerning first=197 second=85 amount=-1\nkerning first=197 second=217 amount=-1\nkerning first=197 second=218 amount=-1\nkerning first=197 second=219 amount=-1\nkerning first=197 second=220 amount=-1\nkerning first=197 second=34 amount=-9\nkerning first=197 second=39 amount=-9\nkerning first=197 second=111 amount=-1\nkerning first=197 second=242 amount=-1\nkerning first=197 second=243 amount=-1\nkerning first=197 second=244 amount=-1\nkerning first=197 second=245 amount=-1\nkerning first=197 second=246 amount=-1\nkerning first=197 second=87 amount=-5\nkerning first=197 second=84 amount=-10\nkerning first=197 second=117 amount=-1\nkerning first=197 second=249 amount=-1\nkerning first=197 second=250 amount=-1\nkerning first=197 second=251 amount=-1\nkerning first=197 second=252 amount=-1\nkerning first=197 second=122 amount=1\nkerning first=197 second=86 amount=-7\nkerning first=197 second=89 amount=-7\nkerning first=197 second=221 amount=-7\nkerning first=199 second=84 amount=-2\nkerning first=200 second=118 amount=-2\nkerning first=200 second=121 amount=-2\nkerning first=200 second=253 amount=-2\nkerning first=200 second=255 amount=-2\nkerning first=200 second=111 amount=-1\nkerning first=200 second=242 amount=-1\nkerning first=200 second=243 amount=-1\nkerning first=200 second=244 amount=-1\nkerning first=200 second=245 amount=-1\nkerning first=200 second=246 amount=-1\nkerning first=200 second=84 amount=2\nkerning first=200 second=117 amount=-1\nkerning first=200 second=249 amount=-1\nkerning first=200 second=250 amount=-1\nkerning first=200 second=251 amount=-1\nkerning first=200 second=252 amount=-1\nkerning first=200 second=99 amount=-1\nkerning first=200 second=100 amount=-1\nkerning first=200 second=101 amount=-1\nkerning first=200 second=103 amount=-1\nkerning first=200 second=113 amount=-1\nkerning first=200 second=231 amount=-1\nkerning first=200 second=232 amount=-1\nkerning first=200 second=233 amount=-1\nkerning first=200 second=234 amount=-1\nkerning first=200 second=235 amount=-1\nkerning first=201 second=118 amount=-2\nkerning first=201 second=121 amount=-2\nkerning first=201 second=253 amount=-2\nkerning first=201 second=255 amount=-2\nkerning first=201 second=111 amount=-1\nkerning first=201 second=242 amount=-1\nkerning first=201 second=243 amount=-1\nkerning first=201 second=244 amount=-1\nkerning first=201 second=245 amount=-1\nkerning first=201 second=246 amount=-1\nkerning first=201 second=84 amount=2\nkerning first=201 second=117 amount=-1\nkerning first=201 second=249 amount=-1\nkerning first=201 second=250 amount=-1\nkerning first=201 second=251 amount=-1\nkerning first=201 second=252 amount=-1\nkerning first=201 second=99 amount=-1\nkerning first=201 second=100 amount=-1\nkerning first=201 second=101 amount=-1\nkerning first=201 second=103 amount=-1\nkerning first=201 second=113 amount=-1\nkerning first=201 second=231 amount=-1\nkerning first=201 second=232 amount=-1\nkerning first=201 second=233 amount=-1\nkerning first=201 second=234 amount=-1\nkerning first=201 second=235 amount=-1\nkerning first=202 second=118 amount=-2\nkerning first=202 second=121 amount=-2\nkerning first=202 second=253 amount=-2\nkerning first=202 second=255 amount=-2\nkerning first=202 second=111 amount=-1\nkerning first=202 second=242 amount=-1\nkerning first=202 second=243 amount=-1\nkerning first=202 second=244 amount=-1\nkerning first=202 second=245 amount=-1\nkerning first=202 second=246 amount=-1\nkerning first=202 second=84 amount=2\nkerning first=202 second=117 amount=-1\nkerning first=202 second=249 amount=-1\nkerning first=202 second=250 amount=-1\nkerning first=202 second=251 amount=-1\nkerning first=202 second=252 amount=-1\nkerning first=202 second=99 amount=-1\nkerning first=202 second=100 amount=-1\nkerning first=202 second=101 amount=-1\nkerning first=202 second=103 amount=-1\nkerning first=202 second=113 amount=-1\nkerning first=202 second=231 amount=-1\nkerning first=202 second=232 amount=-1\nkerning first=202 second=233 amount=-1\nkerning first=202 second=234 amount=-1\nkerning first=202 second=235 amount=-1\nkerning first=203 second=118 amount=-2\nkerning first=203 second=121 amount=-2\nkerning first=203 second=253 amount=-2\nkerning first=203 second=255 amount=-2\nkerning first=203 second=111 amount=-1\nkerning first=203 second=242 amount=-1\nkerning first=203 second=243 amount=-1\nkerning first=203 second=244 amount=-1\nkerning first=203 second=245 amount=-1\nkerning first=203 second=246 amount=-1\nkerning first=203 second=84 amount=2\nkerning first=203 second=117 amount=-1\nkerning first=203 second=249 amount=-1\nkerning first=203 second=250 amount=-1\nkerning first=203 second=251 amount=-1\nkerning first=203 second=252 amount=-1\nkerning first=203 second=99 amount=-1\nkerning first=203 second=100 amount=-1\nkerning first=203 second=101 amount=-1\nkerning first=203 second=103 amount=-1\nkerning first=203 second=113 amount=-1\nkerning first=203 second=231 amount=-1\nkerning first=203 second=232 amount=-1\nkerning first=203 second=233 amount=-1\nkerning first=203 second=234 amount=-1\nkerning first=203 second=235 amount=-1\nkerning first=204 second=84 amount=-2\nkerning first=204 second=89 amount=-2\nkerning first=204 second=221 amount=-2\nkerning first=204 second=65 amount=1\nkerning first=204 second=192 amount=1\nkerning first=204 second=193 amount=1\nkerning first=204 second=194 amount=1\nkerning first=204 second=195 amount=1\nkerning first=204 second=196 amount=1\nkerning first=204 second=197 amount=1\nkerning first=204 second=88 amount=1\nkerning first=205 second=84 amount=-2\nkerning first=205 second=89 amount=-2\nkerning first=205 second=221 amount=-2\nkerning first=205 second=65 amount=1\nkerning first=205 second=192 amount=1\nkerning first=205 second=193 amount=1\nkerning first=205 second=194 amount=1\nkerning first=205 second=195 amount=1\nkerning first=205 second=196 amount=1\nkerning first=205 second=197 amount=1\nkerning first=205 second=88 amount=1\nkerning first=206 second=84 amount=-2\nkerning first=206 second=89 amount=-2\nkerning first=206 second=221 amount=-2\nkerning first=206 second=65 amount=1\nkerning first=206 second=192 amount=1\nkerning first=206 second=193 amount=1\nkerning first=206 second=194 amount=1\nkerning first=206 second=195 amount=1\nkerning first=206 second=196 amount=1\nkerning first=206 second=197 amount=1\nkerning first=206 second=88 amount=1\nkerning first=207 second=84 amount=-2\nkerning first=207 second=89 amount=-2\nkerning first=207 second=221 amount=-2\nkerning first=207 second=65 amount=1\nkerning first=207 second=192 amount=1\nkerning first=207 second=193 amount=1\nkerning first=207 second=194 amount=1\nkerning first=207 second=195 amount=1\nkerning first=207 second=196 amount=1\nkerning first=207 second=197 amount=1\nkerning first=207 second=88 amount=1\nkerning first=209 second=84 amount=-2\nkerning first=209 second=89 amount=-2\nkerning first=209 second=221 amount=-2\nkerning first=209 second=65 amount=1\nkerning first=209 second=192 amount=1\nkerning first=209 second=193 amount=1\nkerning first=209 second=194 amount=1\nkerning first=209 second=195 amount=1\nkerning first=209 second=196 amount=1\nkerning first=209 second=197 amount=1\nkerning first=209 second=88 amount=1\nkerning first=210 second=84 amount=-2\nkerning first=210 second=86 amount=-2\nkerning first=210 second=89 amount=-3\nkerning first=210 second=221 amount=-3\nkerning first=210 second=65 amount=-2\nkerning first=210 second=192 amount=-2\nkerning first=210 second=193 amount=-2\nkerning first=210 second=194 amount=-2\nkerning first=210 second=195 amount=-2\nkerning first=210 second=196 amount=-2\nkerning first=210 second=197 amount=-2\nkerning first=210 second=88 amount=-2\nkerning first=210 second=44 amount=-8\nkerning first=210 second=46 amount=-8\nkerning first=210 second=90 amount=-2\nkerning first=211 second=84 amount=-2\nkerning first=211 second=86 amount=-2\nkerning first=211 second=89 amount=-3\nkerning first=211 second=221 amount=-3\nkerning first=211 second=65 amount=-2\nkerning first=211 second=192 amount=-2\nkerning first=211 second=193 amount=-2\nkerning first=211 second=194 amount=-2\nkerning first=211 second=195 amount=-2\nkerning first=211 second=196 amount=-2\nkerning first=211 second=197 amount=-2\nkerning first=211 second=88 amount=-2\nkerning first=211 second=44 amount=-8\nkerning first=211 second=46 amount=-8\nkerning first=211 second=90 amount=-2\nkerning first=212 second=84 amount=-2\nkerning first=212 second=86 amount=-2\nkerning first=212 second=89 amount=-3\nkerning first=212 second=221 amount=-3\nkerning first=212 second=65 amount=-2\nkerning first=212 second=192 amount=-2\nkerning first=212 second=193 amount=-2\nkerning first=212 second=194 amount=-2\nkerning first=212 second=195 amount=-2\nkerning first=212 second=196 amount=-2\nkerning first=212 second=197 amount=-2\nkerning first=212 second=88 amount=-2\nkerning first=212 second=44 amount=-8\nkerning first=212 second=46 amount=-8\nkerning first=212 second=90 amount=-2\nkerning first=213 second=84 amount=-2\nkerning first=213 second=86 amount=-2\nkerning first=213 second=89 amount=-3\nkerning first=213 second=221 amount=-3\nkerning first=213 second=65 amount=-2\nkerning first=213 second=192 amount=-2\nkerning first=213 second=193 amount=-2\nkerning first=213 second=194 amount=-2\nkerning first=213 second=195 amount=-2\nkerning first=213 second=196 amount=-2\nkerning first=213 second=197 amount=-2\nkerning first=213 second=88 amount=-2\nkerning first=213 second=44 amount=-8\nkerning first=213 second=46 amount=-8\nkerning first=213 second=90 amount=-2\nkerning first=214 second=84 amount=-2\nkerning first=214 second=86 amount=-2\nkerning first=214 second=89 amount=-3\nkerning first=214 second=221 amount=-3\nkerning first=214 second=65 amount=-2\nkerning first=214 second=192 amount=-2\nkerning first=214 second=193 amount=-2\nkerning first=214 second=194 amount=-2\nkerning first=214 second=195 amount=-2\nkerning first=214 second=196 amount=-2\nkerning first=214 second=197 amount=-2\nkerning first=214 second=88 amount=-2\nkerning first=214 second=44 amount=-8\nkerning first=214 second=46 amount=-8\nkerning first=214 second=90 amount=-2\nkerning first=217 second=65 amount=-2\nkerning first=217 second=192 amount=-2\nkerning first=217 second=193 amount=-2\nkerning first=217 second=194 amount=-2\nkerning first=217 second=195 amount=-2\nkerning first=217 second=196 amount=-2\nkerning first=217 second=197 amount=-2\nkerning first=218 second=65 amount=-2\nkerning first=218 second=192 amount=-2\nkerning first=218 second=193 amount=-2\nkerning first=218 second=194 amount=-2\nkerning first=218 second=195 amount=-2\nkerning first=218 second=196 amount=-2\nkerning first=218 second=197 amount=-2\nkerning first=219 second=65 amount=-2\nkerning first=219 second=192 amount=-2\nkerning first=219 second=193 amount=-2\nkerning first=219 second=194 amount=-2\nkerning first=219 second=195 amount=-2\nkerning first=219 second=196 amount=-2\nkerning first=219 second=197 amount=-2\nkerning first=220 second=65 amount=-2\nkerning first=220 second=192 amount=-2\nkerning first=220 second=193 amount=-2\nkerning first=220 second=194 amount=-2\nkerning first=220 second=195 amount=-2\nkerning first=220 second=196 amount=-2\nkerning first=220 second=197 amount=-2\nkerning first=221 second=118 amount=-2\nkerning first=221 second=121 amount=-2\nkerning first=221 second=253 amount=-2\nkerning first=221 second=255 amount=-2\nkerning first=221 second=67 amount=-2\nkerning first=221 second=71 amount=-2\nkerning first=221 second=79 amount=-2\nkerning first=221 second=81 amount=-2\nkerning first=221 second=216 amount=-2\nkerning first=221 second=199 amount=-2\nkerning first=221 second=210 amount=-2\nkerning first=221 second=211 amount=-2\nkerning first=221 second=212 amount=-2\nkerning first=221 second=213 amount=-2\nkerning first=221 second=214 amount=-2\nkerning first=221 second=85 amount=-7\nkerning first=221 second=217 amount=-7\nkerning first=221 second=218 amount=-7\nkerning first=221 second=219 amount=-7\nkerning first=221 second=220 amount=-7\nkerning first=221 second=111 amount=-5\nkerning first=221 second=242 amount=-5\nkerning first=221 second=243 amount=-5\nkerning first=221 second=244 amount=-5\nkerning first=221 second=245 amount=-5\nkerning first=221 second=246 amount=-5\nkerning first=221 second=87 amount=1\nkerning first=221 second=84 amount=1\nkerning first=221 second=117 amount=-3\nkerning first=221 second=249 amount=-3\nkerning first=221 second=250 amount=-3\nkerning first=221 second=251 amount=-3\nkerning first=221 second=252 amount=-3\nkerning first=221 second=122 amount=-2\nkerning first=221 second=86 amount=1\nkerning first=221 second=89 amount=1\nkerning first=221 second=221 amount=1\nkerning first=221 second=65 amount=-7\nkerning first=221 second=192 amount=-7\nkerning first=221 second=193 amount=-7\nkerning first=221 second=194 amount=-7\nkerning first=221 second=195 amount=-7\nkerning first=221 second=196 amount=-7\nkerning first=221 second=197 amount=-7\nkerning first=221 second=88 amount=1\nkerning first=221 second=44 amount=-16\nkerning first=221 second=46 amount=-16\nkerning first=221 second=99 amount=-5\nkerning first=221 second=100 amount=-5\nkerning first=221 second=101 amount=-5\nkerning first=221 second=103 amount=-5\nkerning first=221 second=113 amount=-5\nkerning first=221 second=231 amount=-5\nkerning first=221 second=232 amount=-5\nkerning first=221 second=233 amount=-5\nkerning first=221 second=234 amount=-5\nkerning first=221 second=235 amount=-5\nkerning first=221 second=120 amount=-2\nkerning first=221 second=45 amount=-4\nkerning first=221 second=173 amount=-4\nkerning first=221 second=109 amount=-3\nkerning first=221 second=110 amount=-3\nkerning first=221 second=112 amount=-3\nkerning first=221 second=241 amount=-3\nkerning first=221 second=83 amount=-1\nkerning first=221 second=97 amount=-6\nkerning first=221 second=224 amount=-6\nkerning first=221 second=225 amount=-6\nkerning first=221 second=226 amount=-6\nkerning first=221 second=227 amount=-6\nkerning first=221 second=228 amount=-6\nkerning first=221 second=229 amount=-6\nkerning first=221 second=115 amount=-5\nkerning first=221 second=74 amount=-7\nkerning first=224 second=118 amount=-1\nkerning first=224 second=121 amount=-1\nkerning first=224 second=253 amount=-1\nkerning first=224 second=255 amount=-1\nkerning first=224 second=34 amount=-5\nkerning first=224 second=39 amount=-5\nkerning first=225 second=118 amount=-1\nkerning first=225 second=121 amount=-1\nkerning first=225 second=253 amount=-1\nkerning first=225 second=255 amount=-1\nkerning first=225 second=34 amount=-5\nkerning first=225 second=39 amount=-5\nkerning first=226 second=118 amount=-1\nkerning first=226 second=121 amount=-1\nkerning first=226 second=253 amount=-1\nkerning first=226 second=255 amount=-1\nkerning first=226 second=34 amount=-5\nkerning first=226 second=39 amount=-5\nkerning first=227 second=118 amount=-1\nkerning first=227 second=121 amount=-1\nkerning first=227 second=253 amount=-1\nkerning first=227 second=255 amount=-1\nkerning first=227 second=34 amount=-5\nkerning first=227 second=39 amount=-5\nkerning first=228 second=118 amount=-1\nkerning first=228 second=121 amount=-1\nkerning first=228 second=253 amount=-1\nkerning first=228 second=255 amount=-1\nkerning first=228 second=34 amount=-5\nkerning first=228 second=39 amount=-5\nkerning first=229 second=118 amount=-1\nkerning first=229 second=121 amount=-1\nkerning first=229 second=253 amount=-1\nkerning first=229 second=255 amount=-1\nkerning first=229 second=34 amount=-5\nkerning first=229 second=39 amount=-5\nkerning first=231 second=34 amount=-1\nkerning first=231 second=39 amount=-1\nkerning first=232 second=118 amount=-1\nkerning first=232 second=121 amount=-1\nkerning first=232 second=253 amount=-1\nkerning first=232 second=255 amount=-1\nkerning first=232 second=34 amount=-1\nkerning first=232 second=39 amount=-1\nkerning first=233 second=118 amount=-1\nkerning first=233 second=121 amount=-1\nkerning first=233 second=253 amount=-1\nkerning first=233 second=255 amount=-1\nkerning first=233 second=34 amount=-1\nkerning first=233 second=39 amount=-1\nkerning first=234 second=118 amount=-1\nkerning first=234 second=121 amount=-1\nkerning first=234 second=253 amount=-1\nkerning first=234 second=255 amount=-1\nkerning first=234 second=34 amount=-1\nkerning first=234 second=39 amount=-1\nkerning first=235 second=118 amount=-1\nkerning first=235 second=121 amount=-1\nkerning first=235 second=253 amount=-1\nkerning first=235 second=255 amount=-1\nkerning first=235 second=34 amount=-1\nkerning first=235 second=39 amount=-1\nkerning first=241 second=34 amount=-8\nkerning first=241 second=39 amount=-8\nkerning first=242 second=118 amount=-1\nkerning first=242 second=121 amount=-1\nkerning first=242 second=253 amount=-1\nkerning first=242 second=255 amount=-1\nkerning first=242 second=34 amount=-11\nkerning first=242 second=39 amount=-11\nkerning first=242 second=122 amount=-1\nkerning first=242 second=120 amount=-2\nkerning first=243 second=118 amount=-1\nkerning first=243 second=121 amount=-1\nkerning first=243 second=253 amount=-1\nkerning first=243 second=255 amount=-1\nkerning first=243 second=34 amount=-11\nkerning first=243 second=39 amount=-11\nkerning first=243 second=122 amount=-1\nkerning first=243 second=120 amount=-2\nkerning first=244 second=118 amount=-1\nkerning first=244 second=121 amount=-1\nkerning first=244 second=253 amount=-1\nkerning first=244 second=255 amount=-1\nkerning first=244 second=34 amount=-11\nkerning first=244 second=39 amount=-11\nkerning first=244 second=122 amount=-1\nkerning first=244 second=120 amount=-2\nkerning first=245 second=118 amount=-1\nkerning first=245 second=121 amount=-1\nkerning first=245 second=253 amount=-1\nkerning first=245 second=255 amount=-1\nkerning first=245 second=34 amount=-11\nkerning first=245 second=39 amount=-11\nkerning first=245 second=122 amount=-1\nkerning first=245 second=120 amount=-2\nkerning first=246 second=118 amount=-1\nkerning first=246 second=121 amount=-1\nkerning first=246 second=253 amount=-1\nkerning first=246 second=255 amount=-1\nkerning first=246 second=34 amount=-11\nkerning first=246 second=39 amount=-11\nkerning first=246 second=122 amount=-1\nkerning first=246 second=120 amount=-2\nkerning first=253 second=34 amount=1\nkerning first=253 second=39 amount=1\nkerning first=253 second=111 amount=-1\nkerning first=253 second=242 amount=-1\nkerning first=253 second=243 amount=-1\nkerning first=253 second=244 amount=-1\nkerning first=253 second=245 amount=-1\nkerning first=253 second=246 amount=-1\nkerning first=253 second=44 amount=-8\nkerning first=253 second=46 amount=-8\nkerning first=253 second=99 amount=-1\nkerning first=253 second=100 amount=-1\nkerning first=253 second=101 amount=-1\nkerning first=253 second=103 amount=-1\nkerning first=253 second=113 amount=-1\nkerning first=253 second=231 amount=-1\nkerning first=253 second=232 amount=-1\nkerning first=253 second=233 amount=-1\nkerning first=253 second=234 amount=-1\nkerning first=253 second=235 amount=-1\nkerning first=253 second=97 amount=-1\nkerning first=253 second=224 amount=-1\nkerning first=253 second=225 amount=-1\nkerning first=253 second=226 amount=-1\nkerning first=253 second=227 amount=-1\nkerning first=253 second=228 amount=-1\nkerning first=253 second=229 amount=-1\nkerning first=255 second=34 amount=1\nkerning first=255 second=39 amount=1\nkerning first=255 second=111 amount=-1\nkerning first=255 second=242 amount=-1\nkerning first=255 second=243 amount=-1\nkerning first=255 second=244 amount=-1\nkerning first=255 second=245 amount=-1\nkerning first=255 second=246 amount=-1\nkerning first=255 second=44 amount=-8\nkerning first=255 second=46 amount=-8\nkerning first=255 second=99 amount=-1\nkerning first=255 second=100 amount=-1\nkerning first=255 second=101 amount=-1\nkerning first=255 second=103 amount=-1\nkerning first=255 second=113 amount=-1\nkerning first=255 second=231 amount=-1\nkerning first=255 second=232 amount=-1\nkerning first=255 second=233 amount=-1\nkerning first=255 second=234 amount=-1\nkerning first=255 second=235 amount=-1\nkerning first=255 second=97 amount=-1\nkerning first=255 second=224 amount=-1\nkerning first=255 second=225 amount=-1\nkerning first=255 second=226 amount=-1\nkerning first=255 second=227 amount=-1\nkerning first=255 second=228 amount=-1\nkerning first=255 second=229 amount=-1\n' }Object.defineProperty(c,"__esModule",{value:!0}),c.image=d,c.fnt=e},{}],8:[function(a,b,c){"use strict";function d(){function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAYAAACinX6EAAAACXBIWXMAAC4jAAAuIwF4pT92AAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image -;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i);var J=b.text?2184:16777215,K=b.text?273:13421772;j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?J:K),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8, -"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});return 0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1}),la.intersections}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder +;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i),b.hoverCol=b.text?2184:16777215,b.noHoverCol=b.text?273:13421772,j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?b.hoverCol:b.noHoverCol),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{ +"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});return 0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1}),la.intersections}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder ;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b { if (highlightLastPressed && lastPressed === obj) { material.color.setHex( lastPressedCol ); } - else material.color.setHex( interaction.hovering() ? hoverCol : noHoverCol ); + else material.color.setHex( interaction.hovering() ? obj.hoverCol : obj.noHoverCol ); if (subgroup.tipText) setVisibility(subgroup, subgroup.tipText, interaction.hovering()); if (obj.error) material.color.setHex( 0xAA3333); } From 9efe6aee0807c3f585fb27862634bac1fe5b79f4 Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Tue, 5 Apr 2022 15:30:07 +0100 Subject: [PATCH 14/24] do not update geometry for unchanged text (especially slider values) --- build/datguivr.js | 7 +++++-- build/datguivr.map | 2 +- build/datguivr.min.js | 4 ++-- modules/datguivr/sdftext.js | 5 ++++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index 0fdb162..aa93d70 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -4779,7 +4779,10 @@ function creator() { }; group.updateLabel = function (str) { - mesh.geometry.update(str); + if (mesh.userData.labelString !== str) { + mesh.geometry.update(str); + mesh.userData.labelString = str; + } }; return group; @@ -7586,4 +7589,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICogXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLiBcclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUiBcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1IgXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsIFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcbiAgICBcclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpOyBcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgLy9tb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICBpZiAoIXdpZGUpIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIGVsc2Uge1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMC43NTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueSA9IDAuMDE7IC8vWFhYIG1hZ2ljIG51bWJlclxyXG4gIH1cclxuXHJcbiAgdmFyIG1hdGVyaWFsO1xyXG4gIGlmIChpbWFnZS5pc01hdGVyaWFsKSB7XHJcbiAgICBtYXRlcmlhbCA9IGltYWdlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIG1hdGVyaWFsKTtcclxuICB9XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gIC8vYnV0dG9uIGxhYmVsIHJlbW92ZWQ7IG1pZ2h0IHdhbnQgb3B0aW9ucyBsaWtlIGEgaG92ZXIgbGFiZWwgaW4gZnV0dXJlLlxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBpZiAod2lkZSkgZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAvL1RPRE86IGRyYWcgYW5kIGhvdmVyXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnaG92ZXJpbmcnLCBoYW5kbGVIb3ZlciApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZVByZXNzaW5nICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGxldCBob3ZlckZ1bmMgPSB1bmRlZmluZWQ7XHJcbiAgLy8gSSBtaWdodCB5ZXQgZGVjaWRlIHRvIGNoYW5nZSB0aGlzIGludGVyZmFjZS5cclxuICAvLyBtaWdodCB1c2UgYSBkaWZmZXJlbnQgbmFtZSwgbWlnaHQgd2FudCB0byBhZGQgbGlzdGVuZXJzIHRvIGV2ZW50XHJcbiAgLy8gcmF0aGVyIHRoYW4ganVzdCBzZXQgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgZ3JvdXAub25Ib3ZlciA9IGYgPT4ge1xyXG4gICAgaG92ZXJGdW5jID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZ3JvdXAub25QcmVzc2luZyA9IGYgPT4ge1xyXG4gICAgcHJlc3NpbmcgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBmdW5jdGlvbiBoYW5kbGVIb3ZlciggcCApe1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAoaG92ZXJGdW5jKSBob3ZlckZ1bmMocCk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vaXQgc2hvdWxkIGJlIHRoYXQgdGhlIGNoZWNrcyBpbiBpbmRleC5qcyBtZWFuIHRoYXQgbWV0aG9kcyBkb24ndCBnZXQgY2FsbGVkIG9uIGludmlzaWJsZVxyXG4gICAgLy9vYmplY3RzLCByZW5kZXJpbmcgdGhlc2UgdGVzdHMgcmVkdW5kYW50Li4uIGhvd2V2ZXIsIHRoYXQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdGhlIGNhc2UuXHJcbiAgICAvL2V4cGVyaWVuY2VkIHNvbWUgYnVncyBwYXJ0aWN1bGFybHkgd2l0aCAnbW9kYWwgZWRpdG9yJyB0eXBlIHBhbmVscy5cclxuICAgIC8vVE9ETzogZWl0aGVyIG1ha2Ugc3VyZSBpbnZpc2libGUgb2JqZWN0cyBhcmVuJ3QgY2FsbGVkIGluIHRoZSBmaXJzdCBwbGFjZSxcclxuICAgIC8vb3IgbWFrZSBzdXJlIGFsbCB0eXBlcyBvZiBvYmplY3QgZG8gdGhpcyBtb3JlIHRob3JvdWdoIHZpc2liaWxpdHkgY2hlY2suLi5cclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKG9iamVjdCkgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXShwKTtcclxuICAgIGlmIChmdW5jKSBmdW5jKHApO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvL2NvbXB1dGUgeCAmIHkgYXMgbm9ybWFsaXNlZCBjb29yZGluYXRlcyBmcm9tIHAucG9pbnRcclxuICAvL2NvdWxkIGNvbnNpZGVyIG1vdmluZyB0aGlzIGNvbXB1dGF0aW9uIGludG8gaW50ZXJhY3Rpb24uanMgcGVyZm9ybVN0YXRlRXZlbnRzKClcclxuICBmdW5jdGlvbiBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwb2ludCkge1xyXG4gICAgY29uc3QgcCA9IGhpdHNjYW5Wb2x1bWUud29ybGRUb0xvY2FsKHBvaW50KTtcclxuICAgIHAueCAvPSBCVVRUT05fV0lEVEg7XHJcbiAgICBwLnkgLz0gQlVUVE9OX0hFSUdIVDtcclxuICAgIHAueSArPSAwLjU7XHJcbiAgICBwLnggPSBNYXRoLm1heChNYXRoLm1pbihwLngsIDEpLCAwKTtcclxuICAgIHAueSA9IE1hdGgubWF4KE1hdGgubWluKHAueSwgMSksIDApO1xyXG4gICAgcmV0dXJuIHA7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVQcmVzc2luZyggcCApIHtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIC8vY29uc29sZS5sb2coYHByZXNzaW5nIGF0ICgke3BvaW50Lnh9LCAke3BvaW50Lnl9KWApOyAvL2ZpcnN0IGluc3RhbmNlIG9mICdwcmVzc2luZycgaXMgYWx3YXlzIGF0ICgxLCAxKVxyXG4gICAgLy9uYiwgbGlrZWx5IHRvIG5lZWQgYSBkaWZmZXJlbnQgc3RyYXRlZ3kgZm9yIGR1YWwgd2llbGRpbmdcclxuICAgIGlmIChwcmVzc2luZykgcHJlc3NpbmcocCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmICghbWF0ZXJpYWwuY29sb3IpIHJldHVybjtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChjaGFuZ2VDb2xvck9uSG92ZXIpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhDQ0NDQ0MgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKiBcclxuICogR3JpZCBvZiBidXR0b25zIHdpdGggaW1hZ2VzIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgaW1hZ2VidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7Y3JlYXRlVGV4dExhYmVsLCBjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0cywgLy8gYXJyYXkgb2Yge2Z1bmMsIGltYWdlIHwgdGV4dCwgdGlwKG9wdGlvbmFsKSwgcmVsZWFzZShvcHRpb25hbCl9XHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgcm93SGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNvbHVtbnMgPSA0XHJcbn0gPSB7fSApe1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbWFyZ2luID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDM7XHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gKHdpZHRoIC0gbWFyZ2luKSAqICgxL2NvbHVtbnMpO1xyXG4gIC8vVE9ETzogYWRkIHNldFJvd0hlaWdodCBtZXRob2RcclxuICBsZXQgQlVUVE9OX0hFSUdIVCA9IHJvd0hlaWdodCA+IDAgPyByb3dIZWlnaHQgOiBCVVRUT05fV0lEVEg7XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvbmdyaWRcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtvYmplY3RzfV1gO1xyXG4gIFxyXG4gIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwob2JqZWN0cy5sZW5ndGggLyBjb2x1bW5zKTtcclxuICBsZXQgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGdyb3VwLnNldFJvd0hlaWdodCA9IGggPT4ge1xyXG4gICAgcm93SGVpZ2h0ID0gQlVUVE9OX0hFSUdIVCA9IGg7XHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG4gICAgbGF5b3V0QnV0dG9ucygpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGZhbHNlO1xyXG4gIGxldCBsYXN0UHJlc3NlZCA9IG51bGw7XHJcbiAgbGV0IGxhc3RQcmVzc2VkQ29sO1xyXG4gIGdyb3VwLmhpZ2hsaWdodExhc3RQcmVzc2VkID0gKGNvbCA9IDB4MzM1NUVFKSA9PiB7XHJcbiAgICAgIGhpZ2hsaWdodExhc3RQcmVzc2VkID0gY29sICE9PSBmYWxzZTtcclxuICAgICAgbGFzdFByZXNzZWRDb2wgPSBjb2w7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgXHJcbiAgbGV0IHBhbmVsLCBncmFiSW50ZXJhY3Rpb24sIGJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgbGF5b3V0QnV0dG9ucygpO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGluaXRQYW5lbCgpIHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIHBhbmVsLmFkZChjb250cm9sbGVySUQpO1xyXG4gICAgXHJcbiAgICBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+Z3JvdXAucmVtb3ZlKGIpKTtcclxuICAgIGJ1dHRvbnMgPSBbXTtcclxuICAgIGdyb3VwLmd1aUNoaWxkcmVuID0gYnV0dG9ucztcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gbGF5b3V0QnV0dG9ucygpIHtcclxuICAgIGluaXRQYW5lbCgpO1xyXG4gICAgLy9UT0RPOiBwYWRkaW5nXHJcbiAgICBjb25zdCBidXR0b25XUGFkZGVkID0gQlVUVE9OX1dJRFRIICogMC45OSwgYnV0dG9uSFBhZGRlZCA9IEJVVFRPTl9IRUlHSFQgKiAwLjk5O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBidXR0b25XUGFkZGVkLCBidXR0b25IUGFkZGVkLCAxLCAxICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggYnV0dG9uV1BhZGRlZCAvIDIsIC1idXR0b25IUGFkZGVkIC8gMiwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gICAgdmFyIGkgPSAwO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IHRvZ2dsZXMgcmF0aGVyIHRoYW4gdHJpZ2dlcnMuLi5cclxuICAgIG9iamVjdHMuZm9yRWFjaCgob2JqLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKCFvYmouaW1hZ2UgJiYgIW9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHN1Ymdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vbm90ZTogcmVkdWNpbmcgbmVzdGluZyBjb3VsZCBpbXByb3ZlIHBlcmZvcm1hbmNlLlxyXG4gICAgICAgIHN1Ymdyb3VwLmd1aVR5cGUgPSBcImltYWdlQnV0dG9uR3JpZEVsZW1lbnRcIjtcclxuICAgICAgICBncm91cC5hZGQoc3ViZ3JvdXApO1xyXG4gICAgICAgIGJ1dHRvbnMucHVzaChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbCA9IGkgJSBjb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IE1hdGguZmxvb3IoaSAvIGNvbHVtbnMpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi54ID0gKDIqTGF5b3V0LlBBTkVMX01BUkdJTikgKyBCVVRUT05fV0lEVEggKiBjb2w7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueSA9IChoZWlnaHQvMikgLUJVVFRPTl9IRUlHSFQgKiByb3c7XHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuXHJcbiAgICAgICAgLy8gIGhpdHNjYW4gdm9sdW1lLlxyXG4gICAgICAgIC8vIFRoaXMgbWF0ZXJpYWwgY291bGQgcHJvYmFibHkgYmUgcmV1c2VkLlxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICAgICAgaWYgKG9iai5pbWFnZSkgYXBwbHlJbWFnZVRvTWF0ZXJpYWwob2JqLmltYWdlLCBtYXRlcmlhbCk7XHJcbiAgICAgICAgaWYgKG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUob2JqLnRleHQpO1xyXG4gICAgICAgICAgICBjb25zdCBtYXJnaW4gPSAyKkxheW91dC5HUklEX0JVVFRPTl9NQVJHSU47XHJcbiAgICAgICAgICAgIGxldCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgaWYgKHcgPiBCVVRUT05fV0lEVEggLSBtYXJnaW4pIHtcclxuICAgICAgICAgICAgICAgIHRleHQuY29uc3RyYWluQm91bmRzKEJVVFRPTl9XSURUSCAtIG1hcmdpbiwgQlVUVE9OX0hFSUdIVCAtIG1hcmdpbik7IC8vPC0tXHJcbiAgICAgICAgICAgICAgICBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0ZXh0LmxheW91dC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB3ID0gdGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdWJncm91cC5hZGQodGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnggPSBvYmoudGV4dFggfHwgMC41ICogKEJVVFRPTl9XSURUSCAtIHcpO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnkgPSBvYmoudGV4dFkgfHwgLTAuNSAqIEJVVFRPTl9IRUlHSFQgLSBoO1xyXG4gICAgICAgICAgICB0ZXh0LnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICAgICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgICAgICAvL2J1dHRvbiBsYWJlbCAmIGRlc2NyaXB0b3IgbGFiZWwgcmVtb3ZlZC5cclxuICAgICAgICAvL1Rvb2x0aXAgdGV4dCBvcHRpb24gYWRkZWQuICBNaWdodCB3YW50IHRvIGJlIGFibGUgdG8gcGFzcyBpbiByaWNoZXIgdGhpbmdzLi4uXHJcbiAgICAgICAgLy9tYXliZSBhbiBhcmJpdHJhcnkgVEhSRUUgb2JqZWN0IHdvdWxkIHdvcmsgd2VsbC4uLlxyXG4gICAgICAgIGlmIChvYmoudGlwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpcFRleHQgPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCBvYmoudGlwLCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvL3N1Ymdyb3VwLmFkZCh0aXBUZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcFRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG4gICAgICAgIHN1Ymdyb3VwLmFkZCggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIHBhbmVsLmFkZChzdWJncm91cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgICAgICAgICBpZiggc3ViZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL1RPRE86IHN0YW5kYXJkaXNlIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gY2FsbGJhY2tzXHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZnVuYygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBvYmouZXJyb3IgPSBlIHx8ICd1bmRlZmluZWQgZXhjZXB0aW9uJztcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsYXN0UHJlc3NlZCA9IG9iajtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gICAgICAgICAgICBpZiAob2JqLnJlbGVhc2UpIG9iai5yZWxlYXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vcXVpY2sgY29sb3IgaGFjay4uLlxyXG4gICAgICAgIG9iai5ob3ZlckNvbCA9IG9iai50ZXh0ID8gMHg4ODggOiAweEZGRkZGRjtcclxuICAgICAgICBvYmoubm9Ib3ZlckNvbCA9IG9iai50ZXh0ID8gMHgxMTEgOiAweENDQ0NDQztcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3ID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaGlnaGxpZ2h0TGFzdFByZXNzZWQgJiYgbGFzdFByZXNzZWQgPT09IG9iaikge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBsYXN0UHJlc3NlZENvbCApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpID8gb2JqLmhvdmVyQ29sIDogb2JqLm5vSG92ZXJDb2wgKTtcclxuICAgICAgICAgICAgaWYgKHN1Ymdyb3VwLnRpcFRleHQpIHNldFZpc2liaWxpdHkoc3ViZ3JvdXAsIHN1Ymdyb3VwLnRpcFRleHQsIGludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgICBpZiAob2JqLmVycm9yKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4QUEzMzMzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldygpO1xyXG5cclxuICAgICAgICBzdWJncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIHN1Ymdyb3VwLmhpdHNjYW4gPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogbWFraW5nIHRoaXMgc2luZ2xlIGVsZW1lbnQgcmF0aGVyIHRoYW4gYXJyYXksXHJcbiAgICAgICAgLy90aGF0IG1lYW5zIHRoZXNlICdzdWJncm91cCcgYnV0dG9ucyBhcmVuJ3QgYWN0aW5nIGV4YWN0bHkgYXMgbm9ybWFsIGRhdC5HVUlWUiBjb250cm9sbGVyc1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IGJ1dHRvbnMubWFwKGI9PmIuaGl0c2Nhbik7Ly8ucHVzaChwYW5lbCk7XHJcbiAgICBncm91cC5oaXRzY2FuLnB1c2gocGFuZWwpO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKSB7XHJcbiAgICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5iLnVwZGF0ZVZpZXcoKSk7XHJcbiAgfVxyXG4gIFxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBidXR0b25zLmZvckVhY2goYj0+e1xyXG4gICAgICAgIGIuaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgLy9pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlU2xpZGVyIGZyb20gJy4vc2xpZGVyJztcclxuaW1wb3J0IGNyZWF0ZUNoZWNrYm94IGZyb20gJy4vY2hlY2tib3gnO1xyXG5pbXBvcnQgY3JlYXRlQnV0dG9uIGZyb20gJy4vYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUZvbGRlciBmcm9tICcuL2ZvbGRlcic7XHJcbmltcG9ydCBjcmVhdGVEcm9wZG93biBmcm9tICcuL2Ryb3Bkb3duJztcclxuLy9QSlQ6IEknZCByYXRoZXIgaW5qZWN0IGN1c3RvbSBleHRlbnNpb25zIGxpa2UgdGhpcywgYnV0IHdpbGwgd29yayB0aGF0IG91dCBsYXRlci5cclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUtleWJvYXJkIGZyb20gJy4va2V5Ym9hcmQnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dGJveCBmcm9tICcuL3RleHRib3gnO1xyXG5pbXBvcnQgY3JlYXRlQ29sb3JQaWNrZXIgZnJvbSAnLi9jb2xvcnBpY2tlcic7XHJcbmltcG9ydCAqIGFzIFNERlRleHQgZnJvbSAnLi9zZGZ0ZXh0JztcclxuaW1wb3J0IHsgaXNDb250cm9sbGVyVmlzaWJsZSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBnbG9iYWxFdmVudHMgfSBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmNvbnN0IEdVSVZSID0gKGZ1bmN0aW9uIERBVEdVSVZSKCl7XHJcblxyXG4gIC8qXHJcbiAgICBTREYgZm9udFxyXG4gICovXHJcbiAgY29uc3QgdGV4dENyZWF0b3IgPSBTREZUZXh0LmNyZWF0b3IoKTtcclxuXHJcblxyXG4gIC8qXHJcbiAgICBMaXN0cy5cclxuICAgIElucHV0T2JqZWN0cyBhcmUgdGhpbmdzIGxpa2UgVklWRSBjb250cm9sbGVycywgY2FyZGJvYXJkIGhlYWRzZXRzLCBldGMuXHJcbiAgICBDb250cm9sbGVycyBhcmUgdGhlIERBVCBHVUkgc2xpZGVycywgY2hlY2tib3hlcywgZXRjLlxyXG4gICovXHJcbiAgY29uc3QgaW5wdXRPYmplY3RzID0gW107XHJcbiAgY29uc3QgY29udHJvbGxlcnMgPSBbXTtcclxuXHJcbiAgLypcclxuICAgIEZ1bmN0aW9ucyBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGdpdmVuIGNvbnRyb2xsZXIgaXMgdmlzaWJsZSAoYnkgd2hpY2ggd2VcclxuICAgIG1lYW4gbm90IGhpZGRlbiwgbm90ICd2aXNpYmxlJyBpbiB0ZXJtcyBvZiB0aGUgY2FtZXJhIG9yaWVudGF0aW9uIGV0YyksIGFuZFxyXG4gICAgZm9yIHJldHJpZXZpbmcgdGhlIGxpc3Qgb2YgdmlzaWJsZSBoaXRzY2FuT2JqZWN0cyBkeW5hbWljYWxseS5cclxuICAgIFRoaXMgbWlnaHQgYmVuZWZpdCBmcm9tIHNvbWUgY2FjaGluZyBlc3BlY2lhbGx5IGluIGNhc2VzIHdpdGggbGFyZ2UgY29tcGxleCBHVUlzLlxyXG4gICAgSSBoYXZlbid0IG1lYXN1cmVkIHRoZSBpbXBhY3Qgb2YgZ2FyYmFnZSBjb2xsZWN0aW9uIGV0Yy5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVDb250cm9sbGVycygpIHtcclxuICAgIC8vIG5vdCB0ZXJyaWJseSBlZmZpY2llbnRcclxuICAgIHJldHVybiBjb250cm9sbGVycy5maWx0ZXIoIGlzQ29udHJvbGxlclZpc2libGUgKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkge1xyXG4gICAgLy9YWFggV0FSTklORzo6OlxyXG4gICAgLy90aGVyZSBjb3VsZCBleGlzdCBzaXR1YXRpb25zIGluIHdoaWNoIG1lbWJlcnMgb2YgaGl0c2NhbiBmb3IgYSB2aXNpYmxlIGNvbnRyb2xsZXIgYXJlIG5vdCB0aGVtc2VsdmVzIHZpc2libGUuXHJcbiAgICAvL3RoaXMgY2FuIGhhcHBlbiBmb3IgZWcgaWYgdGhlICd2aXNpYmxlJyBwcm9wZXJ0eSBvZiB0aGUgcGFydGljdWxhciBoaXRzY2FuIGlzIGluIGFuIGludmlzaWJsZSBtb2RhbCBlZGl0b3IuXHJcbiAgICAvL3dlIGNvdWxkIGNoZWNrIHRoYXQsIGFkZGluZyBhIG1vcmUgcm9idXN0IGZpbHRlciB0byBlYWNoIGhpdHNjYW4gYXJyYXkuLi4gZm9yIG5vdywgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mXHJcbiAgICAvL2NvbnRyb2xsZXJzIHRvIGVpdGhlciBvbmx5IHJldHVybiBoaXRzY2FuIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZSwgb3IgdG8gc2V0ICd2aXNpYmxlJyBleHBsaWNpdGx5LlxyXG4gICAgY29uc3QgdG1wID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkubWFwKCBvID0+IHsgcmV0dXJuIG8uaGl0c2Nhbi5maWx0ZXIoaCA9PiBoLnZpc2libGUpOyB9IClcclxuICAgIHJldHVybiB0bXAucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKTtcclxuICB9XHJcblxyXG4gIGxldCBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICBsZXQgbW91c2VSZW5kZXJlciA9IHVuZGVmaW5lZDtcclxuICBsZXQgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDsgLy9rZWVwIHRyYWNrIHNvIHRoYXQgd2UgZG9uJ3QgYXR0YWNoIG11bHRpcGxlIGV2ZW50cyAocGFydGljdWxhcmx5IHdoZW4gcmVzaXppbmcgd2luZG93KVxyXG4gIFxyXG4gIGxldCBhdXRvVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgZnVuY3Rpb24gZW5hYmxlTW91c2UoIGNhbWVyYSwgcmVuZGVyZXIgKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IHRydWU7XHJcbiAgICBtb3VzZVJlbmRlcmVyID0gcmVuZGVyZXI7XHJcbiAgICBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhID0gY2FtZXJhO1xyXG4gICAgaWYgKGNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkge1xyXG4gICAgICBpZiAoIW9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gZj0+Zi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLm9uKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQubGFzZXI7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGRpc2FibGVNb3VzZSgpe1xyXG4gICAgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICBtb3VzZUlucHV0LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIFRoZSBkZWZhdWx0IGxhc2VyIHBvaW50ZXIgY29taW5nIG91dCBvZiBlYWNoIElucHV0T2JqZWN0LlxyXG4gICovXHJcbiAgY29uc3QgbGFzZXJNYXRlcmlhbCA9IG5ldyBUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg1NWFhZmYsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9KTtcclxuICBmdW5jdGlvbiBjcmVhdGVMYXNlcigpe1xyXG4gICAgY29uc3QgZyA9IG5ldyBUSFJFRS5CdWZmZXJHZW9tZXRyeSgpO1xyXG4gICAgZy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KFswLDAsMCwwLDAsMF0pKSk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKCkgKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoMCwwLDApICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLkxpbmUoIGcsIGxhc2VyTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQSBcImN1cnNvclwiLCBlZyB0aGUgYmFsbCB0aGF0IGFwcGVhcnMgYXQgdGhlIGVuZCBvZiB5b3VyIGxhc2VyLlxyXG4gICovXHJcbiAgY29uc3QgY3Vyc29yTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NDQ0NDQ0LCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSApO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUN1cnNvcigpe1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuU3BoZXJlR2VvbWV0cnkoMC4wMDYsIDQsIDQgKSwgY3Vyc29yTWF0ZXJpYWwgKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZ2VuZXJpYyBJbnB1dCB0eXBlLlxyXG4gICAgVGFrZXMgYW55IFRIUkVFLk9iamVjdDNEIHR5cGUgb2JqZWN0IGFuZCB1c2VzIGl0cyBwb3NpdGlvblxyXG4gICAgYW5kIG9yaWVudGF0aW9uIGFzIGFuIGlucHV0IGRldmljZS5cclxuXHJcbiAgICBBIGxhc2VyIHBvaW50ZXIgaXMgaW5jbHVkZWQgYW5kIHdpbGwgYmUgdXBkYXRlZC5cclxuICAgIENvbnRhaW5zIHN0YXRlIGFib3V0IHdoaWNoIEludGVyYWN0aW9uIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkIG9yIGhvdmVyLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gY3JlYXRlSW5wdXQoIGlucHV0T2JqZWN0ID0gbmV3IFRIUkVFLkdyb3VwKCkgKXtcclxuICAgIGNvbnN0IGlucHV0ID0ge1xyXG4gICAgICByYXljYXN0OiBuZXcgVEhSRUUuUmF5Y2FzdGVyKCBuZXcgVEhSRUUuVmVjdG9yMygpLCBuZXcgVEhSRUUuVmVjdG9yMygpICksXHJcbiAgICAgIGxhc2VyOiBjcmVhdGVMYXNlcigpLFxyXG4gICAgICBjdXJzb3I6IGNyZWF0ZUN1cnNvcigpLFxyXG4gICAgICBvYmplY3Q6IGlucHV0T2JqZWN0LFxyXG4gICAgICBwcmVzc2VkOiBmYWxzZSxcclxuICAgICAgZ3JpcHBlZDogZmFsc2UsXHJcbiAgICAgIGV2ZW50czogbmV3IEVtaXR0ZXIoKSxcclxuICAgICAgaW50ZXJhY3Rpb246IHtcclxuICAgICAgICBncmlwOiB1bmRlZmluZWQsXHJcbiAgICAgICAgcHJlc3M6IHVuZGVmaW5lZCxcclxuICAgICAgICBob3ZlcjogdW5kZWZpbmVkXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuYWRkKCBpbnB1dC5jdXJzb3IgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIE1vdXNlSW5wdXQuXHJcbiAgICBBbGxvd3MgeW91IHRvIGNsaWNrIG9uIHRoZSBzY3JlZW4gd2hlbiBub3QgaW4gVlIgZm9yIGRlYnVnZ2luZy5cclxuICAqL1xyXG4gIGNvbnN0IG1vdXNlSW5wdXQgPSBjcmVhdGVNb3VzZUlucHV0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU1vdXNlSW5wdXQoKXtcclxuICAgIGNvbnN0IG1vdXNlID0gbmV3IFRIUkVFLlZlY3RvcjIoLTEsLTEpO1xyXG5cclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoKTtcclxuICAgIGlucHV0Lm1vdXNlID0gbW91c2U7XHJcbiAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZU9mZnNldCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgICBpbnB1dC5tb3VzZVBsYW5lID0gbmV3IFRIUkVFLlBsYW5lKCk7XHJcbiAgICBpbnB1dC5pbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgLy8gIHNldCBteSBlbmFibGVNb3VzZVxyXG4gICAgaW5wdXQubW91c2VDYW1lcmEgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZW1vdmUnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgLy8gaWYgYSBzcGVjaWZpYyByZW5kZXJlciBoYXMgYmVlbiBkZWZpbmVkXHJcbiAgICAgIGlmIChtb3VzZVJlbmRlcmVyKSB7XHJcbiAgICAgICAgY29uc3QgY2xpZW50UmVjdCA9IG1vdXNlUmVuZGVyZXIuZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBtb3VzZS54ID0gKCAoZXZlbnQuY2xpZW50WCAtIGNsaWVudFJlY3QubGVmdCkgLyBjbGllbnRSZWN0LndpZHRoKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggKGV2ZW50LmNsaWVudFkgLSBjbGllbnRSZWN0LnRvcCkgLyBjbGllbnRSZWN0LmhlaWdodCkgKiAyICsgMTtcclxuICAgICAgfVxyXG4gICAgICAvLyBkZWZhdWx0IHRvIGZ1bGxzY3JlZW5cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbW91c2UueCA9ICggZXZlbnQuY2xpZW50WCAvIHdpbmRvdy5pbm5lcldpZHRoICkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIGV2ZW50LmNsaWVudFkgLyB3aW5kb3cuaW5uZXJIZWlnaHQgKSAqIDIgKyAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpZiAoaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gcHJldmVudCBtb3VzZSBkb3duIGZyb20gdHJpZ2dlcmluZyBvdGhlciBsaXN0ZW5lcnMgKHBvbHlmaWxsLCBldGMpXHJcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7IC8vc29tZXRpbWVzIHdlIGNhcmUgYWJvdXQgdGhlIG1vdXNlIGJlaW5nIHByZXNzZWQsIGV2ZW4gb24gYmFja2dyb3VuZFxyXG4gICAgICAgLy93aWxsIGJlIHNldCBmYWxzZSBhdCBlbmQgb2YgZmlyc3QgdXBkYXRlLiBTaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHRvIGFkZCBhIG5ldyBwcm9wZXJ0eS4uLiBcclxuICAgICAgIC8vb25QcmVzc2VkIHNob3VsZCBiZSBhZGVxdWF0ZS5cclxuICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICB9LCB0cnVlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZXVwJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIGZ1bmN0aW9uIHVzZXJzIHJ1biB0byBnaXZlIERBVCBHVUkgYW4gaW5wdXQgZGV2aWNlLlxyXG4gICAgQXV0b21hdGljYWxseSBkZXRlY3RzIGZvciBWaXZlQ29udHJvbGxlciBhbmQgYmluZHMgYnV0dG9ucyArIGhhcHRpYyBmZWVkYmFjay5cclxuXHJcbiAgICBSZXR1cm5zIGEgbGFzZXIgcG9pbnRlciBzbyBpdCBjYW4gYmUgZGlyZWN0bHkgYWRkZWQgdG8gc2NlbmUuXHJcblxyXG4gICAgVGhlIGxhc2VyIHdpbGwgdGhlbiBoYXZlIHR3byBtZXRob2RzOlxyXG4gICAgbGFzZXIucHJlc3NlZCgpLCBsYXNlci5ncmlwcGVkKClcclxuXHJcbiAgICBUaGVzZSBjYW4gdGhlbiBiZSBib3VuZCB0byBhbnkgYnV0dG9uIHRoZSB1c2VyIHdhbnRzLiBVc2VmdWwgZm9yIGJpbmRpbmcgdG9cclxuICAgIGNhcmRib2FyZCBvciBhbHRlcm5hdGUgaW5wdXQgZGV2aWNlcy5cclxuXHJcbiAgICBGb3IgZXhhbXBsZS4uLlxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oKXsgbGFzZXIucHJlc3NlZCggdHJ1ZSApOyB9ICk7XHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbnB1dE9iamVjdCggb2JqZWN0ICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCBvYmplY3QgKTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5wcmVzc2VkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgY29uc3QgaGl0cyA9IGlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vIG9ubHkgcGF5IGF0dGVudGlvbiB0byBwcmVzc2VzIG92ZXIgdGhlIEdVSVxyXG4gICAgICBpZiAoZmxhZyAmJiBoaXRzICYmIChoaXRzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7XHJcbiAgICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmdyaXBwZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBpbnB1dC5ncmlwcGVkID0gZmxhZztcclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuY3Vyc29yID0gaW5wdXQuY3Vyc29yO1xyXG5cclxuICAgIGlmKCBUSFJFRS5WaXZlQ29udHJvbGxlciAmJiBvYmplY3QgaW5zdGFuY2VvZiBUSFJFRS5WaXZlQ29udHJvbGxlciApe1xyXG4gICAgICBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBvYmplY3QsIGlucHV0Lmxhc2VyLnByZXNzZWQsIGlucHV0Lmxhc2VyLmdyaXBwZWQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMucHVzaCggaW5wdXQgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQubGFzZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgSGVyZSBhcmUgdGhlIG1haW4gZGF0IGd1aSBjb250cm9sbGVyIHR5cGVzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG1pbiA9IDAuMCwgbWF4ID0gMTAwLjAgKXtcclxuICAgIGNvbnN0IHNsaWRlciA9IGNyZWF0ZVNsaWRlcigge1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG1pbiwgbWF4LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIHNsaWRlciApO1xyXG5cclxuICAgIHJldHVybiBzbGlkZXI7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGNoZWNrYm94ID0gY3JlYXRlQ2hlY2tib3goe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggY2hlY2tib3ggKTtcclxuXHJcbiAgICByZXR1cm4gY2hlY2tib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3RcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuYyB0byBjYWxsIGJhY2sgd2hlbiBidXR0b24gcHJlc3NlZFxyXG4gICAqIEBwYXJhbSB7Kn0gaW1hZ2UgY2FuIGJlIGZpbGVuYW1lLCBXZWJHTFJlbmRlclRhcmdldCBvciBNYXRlcmlhbFxyXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gd2lkZSB3aGV0aGVyIHRvIG1ha2UgYnV0dG9uIGZpbGwgZW50aXJlIHdpZHRoIG9mIHBhbmVsIChhcGkgc3ViamVjdCB0byBjaGFuZ2UpXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b24oZnVuYywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3Qgb2JqZWN0ID0geyBmOiBmdW5jIH07XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnZic7XHJcblxyXG5cclxuICAgIC8vc2VlIGFsc28gZm9sZGVyLmpzIHdoZXJlIHRoaXMgaXMgYWRkZWQgdG8gZ3JvdXAgb2JqZWN0Li4uXHJcbiAgICAvL2FzIHN1Y2ggdGhpcyBmdW5jdGlvbiBhbHNvIG5lZWRzIHRvIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBjcmVhdGVGb2xkZXIuXHJcbiAgICAvL3BlcmhhcHMgYWxsIG9mIHRoZXNlICdhZGRYJyBmdW5jdGlvbnMgY291bGQgYmUgaW5pdGlhbGx5IHB1dCBvbnRvIGFuIG9iamVjdCBzbyB0aGF0XHJcbiAgICAvL25ldyBhZGRpdGlvbnMgY291bGQgYmUgYWRkZWQgc2xpZ2h0bHkgbW9yZSBlYXNpbHkuXHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRYWUNvbnRyb2xsZXIocHJlc3NpbmcsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICcnO1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJlc3NpbmcsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJ1dHRvbik7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBUaGlzIGludGVyZmFjZSBtYXkgYmUgc3ViamVjdCB0byBjaGFuZ2UuICBBcmd1bWVudHMgYXJlIG9iamVjdHMgZGVzY3JpYmluZyBidXR0b25zXHJcbiAgRmlyc3Qgb2JqZWN0IG1heSBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b25QYW5lbChjb2xzLCAuLi5hcmdzKSB7XHJcbiAgICBsZXQgY29sdW1ucyA9IE51bWJlci5pc0ludGVnZXIoY29scykgPyBjb2xzIDogNDtcclxuICAgIGNvbnN0IG9iamVjdHMgPSBhcmdzO1xyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpKSBvYmplY3RzLnVuc2hpZnQoY29scylcclxuICAgIGNvbnN0IGdyaWQgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiBjb2x1bW5zfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGdyaWQpO1xyXG4gICAgcmV0dXJuIGdyaWQ7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRLZXlib2FyZCgga2V5TGlzdGVuZXIgKSB7XHJcbiAgICBpZiAoIWtleUxpc3RlbmVyKSBrZXlMaXN0ZW5lciA9IChrKSA9PiBjb25zb2xlLmxvZyhga2V5RG93biAke2t9YCk7XHJcbiAgICBjb25zdCBrYiA9IGNyZWF0ZUtleWJvYXJkKHtrZXlMaXN0ZW5lciwgdGV4dENyZWF0b3J9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goa2IpO1xyXG4gICAgcmV0dXJuIGtiO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVUZXh0Ym94KHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZUNvbG9yUGlja2VyKHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9wdGlvbnMgKXtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gY3JlYXRlRHJvcGRvd24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG9wdGlvbnNcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGRyb3Bkb3duICk7XHJcbiAgICByZXR1cm4gZHJvcGRvd247XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEFuIGltcGxpY2l0IEFkZCBmdW5jdGlvbiB3aGljaCBkZXRlY3RzIGZvciBwcm9wZXJ0eSB0eXBlXHJcbiAgICBhbmQgZ2l2ZXMgeW91IHRoZSBjb3JyZWN0IGNvbnRyb2xsZXIuXHJcblxyXG4gICAgRHJvcGRvd246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9iamVjdFR5cGUgKVxyXG5cclxuICAgIFNsaWRlcjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZOdW1iZXJUeXBlLCBtaW4sIG1heCApXHJcblxyXG4gICAgQ2hlY2tib3g6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mQm9vbGVhblR5cGUgKVxyXG5cclxuICAgIEJ1dHRvbjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZGdW5jdGlvblR5cGUgKVxyXG5cclxuICAgIE5vdCB1c2VkIGRpcmVjdGx5LiBVc2VkIGJ5IGZvbGRlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApe1xyXG5cclxuICAgIGlmKCBvYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG5cclxuICAgIGlmIChvYmplY3QuaXNGb2xkZXIpIHJldHVybiBvYmplY3Q7XHJcblxyXG4gICAgaWYoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBjb25zb2xlLndhcm4oICdubyBwcm9wZXJ0eSBuYW1lZCcsIHByb3BlcnR5TmFtZSwgJ29uIG9iamVjdCcsIG9iamVjdCApO1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzT2JqZWN0KCBhcmczICkgfHwgaXNBcnJheSggYXJnMyApICl7XHJcbiAgICAgIHJldHVybiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNOdW1iZXIoIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzQm9vbGVhbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Z1bmN0aW9uKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzU3RyaW5nKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc0NvbG9yKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBhZGQgY291bGRuJ3QgZmlndXJlIGl0IG91dCwgcGFzcyBpdCBiYWNrIHRvIGZvbGRlclxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZVNsaWRlciggbWluID0gMCwgbWF4ID0gMSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG51bWJlcjogbWluXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRTbGlkZXIoIHByb3h5LCAnbnVtYmVyJywgbWluLCBtYXggKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZURyb3Bkb3duKCBvcHRpb25zID0gW10gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBvcHRpb246ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGlmKCBvcHRpb25zICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgcHJveHkub3B0aW9uID0gaXNBcnJheSggb3B0aW9ucyApID8gb3B0aW9uc1sgMCBdIDogb3B0aW9uc1sgT2JqZWN0LmtleXMob3B0aW9ucylbMF0gXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWRkRHJvcGRvd24oIHByb3h5LCAnb3B0aW9uJywgb3B0aW9ucyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQ2hlY2tib3goIGRlZmF1bHRPcHRpb24gPSBmYWxzZSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGNoZWNrZWQ6IGRlZmF1bHRPcHRpb25cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZENoZWNrYm94KCBwcm94eSwgJ2NoZWNrZWQnICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVCdXR0b24oIGZuICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgYnV0dG9uOiAoZm4hPT11bmRlZmluZWQpID8gZm4gOiBmdW5jdGlvbigpe31cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZEJ1dHRvbiggcHJveHksICdidXR0b24nICk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIE5vdCB1c2VkIGRpcmVjdGx5OyB1c2VkIGJ5IGZvbGRlcnMuXHJcbiAgUmVtb3ZlIGNvbnRyb2xsZXJzIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBjb250cm9sbGVycyBrbm93biB0byBkYXQuR1VJVlIuXHJcbiAgQ2FsbHMgcmVtb3ZlVGVzdCBmaXJzdCB0byBjaGVjayBpbnB1dCBhcmd1bWVudHMuICByZXR1cm5zIGZhbHNlIGlmIHRoaXMgdGVzdCBmYWlscy5cclxuICByZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bC5cclxuXHJcbiAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVjdXJzaXZlbHkgcmVtb3ZlIGVsZW1lbnRzIGZyb20gZm9sZGVyczsgdGhhdCBpcyBkZWFsdCB3aXRoIGluIHRoZSBmb2xkZXIgY29kZSB3aGljaCBjYWxscyB0aGlzLlxyXG4gIFxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZSggLi4uYXJncyApe1xyXG4gICAgbGV0IGFyZ1NldCA9IFsgLi4ubmV3IFNldChhcmdzKSBdOyAvL2p1c3QgaW4gY2FzZSB0aGVyZSB3ZXJlIHJlcGVhdGVkIGVsZW1lbnRzIGluIGFyZ3MsIHR1cm4gaW50byBTZXQgdGhlbiBiYWNrIHRvIGFycmF5LlxyXG4gICAgaWYgKCAhcmVtb3ZlVGVzdCguLi5hcmdTZXQpICkgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJnU2V0LmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgdmFyIGkgPSBjb250cm9sbGVycy5pbmRleE9mKCBvYmogKTtcclxuICAgICAgaWYgKCBpID4gLTEpIGNvbnRyb2xsZXJzLnNwbGljZSggaSwgMSApO1xyXG4gICAgICBlbHNlIHsgLy8gSSBjYW4ndCBzZWUgaG93IHRoaXMnZCBoYXBwZW4gbm93IHdlIGd1YXJkIGFnYWluc3QgcmVwZWF0ZWQgZWxlbWVudHMuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJJbnRlcm5hbCBlcnJvciBpbiByZW1vdmUsIG5vdCBhbnRpY2lwYXRlZCBieSByZW1vdmVUZXN0LiBJbnRlcm5hbCBkYXQuR1VJVlIgc3RhdGUgbWF5IGJlIGluY29uc2lzdGVudC5cIik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBWZXJpZnkgdGhhdCBhbGwgb2YgdGhlIGl0ZW1zIGluIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZXhpc3RpbmcgY29udHJvbGxlcnMgdGhhdCBzaG91bGQgYmUgb2sgdG8gcmVtb3ZlLlxyXG5cclxuICBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGFyZSBhbnkgbWlzbWF0Y2hlcywgdHJ1ZSBpZiBiZWxpZXZlZCBvayB0byBjb250aW51ZSB3aXRoIGFjdHVhbCByZW1vdmUoKVxyXG5cclxuICBJZiBhbnkgb2YgdGhlIHByb3ZpZGVkIGFyZ3MgYXJlIGZvbGRlcnMgKGhhdmUgaXNGb2xkZXIgcHJvcGVydHkpIHRoaXMgaXMgY2FsbGVkIHJlY3Vyc2l2ZWx5LlxyXG4gIFRoaXMgd2lsbCByZXN1bHQgaW4gcmVkdW5kYW50IHdvcmsgYXMgZWFjaCBmb2xkZXIgd2lsbCBhbHNvIGNhbGwgaXQgYWdhaW4gYXMgaXQncyByZW1vdmVkLCBidXQgdGhpcyBpcyBjaGVhcFxyXG4gIGFuZCBpdCBtZWFucyB0aGF0IGFueSBlcnJvciBzaG91bGQgYmUgY2F1Z2h0IGFzIGVhcmx5IGFzIHBvc3NpYmxlIGFuZCB0aGUgd2hvbGUgcHJvY2VzcyBhYm9ydGVkLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlVGVzdCggLi4uYXJncyApIHtcclxuICAgIGZvciAodmFyIGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBvYmogPSBhcmdzW2ldO1xyXG4gICAgICBpZiAoY29udHJvbGxlcnMuaW5kZXhPZihvYmopID09PSAtMSB8fCAhb2JqLmZvbGRlci5oYXNDaGlsZChvYmopKSB7XHJcbiAgICAgICAgLy9UT0RPOiB0b1N0cmluZyBpbXBsZW1lbnRhdGlvbnMgZm9yIGNvbnRyb2xsZXJzXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJDYW4ndCByZW1vdmUgY29udHJvbGxlciBcIiArIG9iaik7IC8vbm90IHN1cmUgdGhlIHByZWZlcnJlZCB3YXkgb2YgcmVwb3J0aW5nIHByb2JsZW0gdG8gdXNlci5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGlmICghcmVtb3ZlVGVzdCggLi4ub2JqLmd1aUNoaWxkcmVuICkpIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wbGV0ZWx5IHJlbW92ZSBhbGwgR1VJIGVsZW1lbnRzIGZyb20gdGhlIHN5c3RlbSBnbG9iYWxseSwgXHJcbiAgICogaW5jbHVkaW5nIHJlbW92aW5nIGFueSBvYmplY3RzIGZyb20gdGhlIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKi9cclxuICBmdW5jdGlvbiBjbGVhckFsbCgpIHtcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMudmlzaWJsZSA9IGZhbHNlOyBpZiAoYy5wYXJlbnQgJiYgIWMucGFyZW50Lmd1aUNoaWxkcmVuKSBjLnBhcmVudC5yZW1vdmUoYyk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnNwbGljZSgwLCBjb250cm9sbGVycy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZm9sZGVyIHdpdGggdGhlIG5hbWUuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgVEhSRUUuR3JvdXAgdHlwZSBvYmplY3RzIGFuZCBjYW4gZG8gZ3JvdXAuYWRkKCkgZm9yIHNpYmxpbmdzLlxyXG4gICAgRm9sZGVycyB3aWxsIGF1dG9tYXRpY2FsbHkgYXR0ZW1wdCB0byBsYXkgaXRzIGNoaWxkcmVuIG91dCBpbiBzZXF1ZW5jZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBnaXZlbiB0aGUgYWRkKCkgZnVuY3Rpb25hbGl0eSBzbyB0aGF0IHRoZXkgY2FuIGRvXHJcbiAgICBmb2xkZXIuYWRkKCAuLi4gKSB0byBjcmVhdGUgY29udHJvbGxlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBuYW1lICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBjcmVhdGVGb2xkZXIoe1xyXG4gICAgICB0ZXh0Q3JlYXRvcixcclxuICAgICAgbmFtZSxcclxuICAgICAgZ3VpQWRkOiBhZGQsXHJcbiAgICAgIGd1aVJlbW92ZTogcmVtb3ZlLFxyXG4gICAgICBhZGRDb250cm9sbGVyRnVuY3M6IHtcclxuICAgICAgICBhZGRTbGlkZXI6IGFkZFNpbXBsZVNsaWRlcixcclxuICAgICAgICBhZGREcm9wZG93bjogYWRkU2ltcGxlRHJvcGRvd24sXHJcbiAgICAgICAgYWRkQ2hlY2tib3g6IGFkZFNpbXBsZUNoZWNrYm94LFxyXG4gICAgICAgIGFkZEJ1dHRvbjogYWRkU2ltcGxlQnV0dG9uLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uOiBhZGRJbWFnZUJ1dHRvbixcclxuICAgICAgICBhZGRYWUNvbnRyb2xsZXI6IGFkZFhZQ29udHJvbGxlcixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvblBhbmVsOiBhZGRJbWFnZUJ1dHRvblBhbmVsLFxyXG4gICAgICAgIGFkZEtleWJvYXJkOiBhZGRLZXlib2FyZCxcclxuICAgICAgICBhZGRUZXh0Ym94OiBhZGRUZXh0Ym94XHJcbiAgICAgIH0sXHJcbiAgICAgIGdsb2JhbENvbnRyb2xsZXJzOiBjb250cm9sbGVycyxcclxuICAgICAgLy8/Pz9cclxuICAgICAgYWRkSGVhZGVyRnVuY3M6IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZm9sZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUGVyZm9ybSB0aGUgbmVjZXNzYXJ5IHVwZGF0ZXMsIHJheWNhc3RzIG9uIGl0cyBvd24gUkFGLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgdERpcmVjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCAwLCAwLCAtMSApO1xyXG4gIGNvbnN0IHRNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoKSB7XHJcbiAgICBjb25zdCBpc09ydGhvZ3JhcGhpYyA9IG1vdXNlRW5hYmxlZCAmJiBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhO1xyXG4gICAgaWYgKGF1dG9VcGRhdGUpIHJlcXVlc3RBbmltYXRpb25GcmFtZSggdXBkYXRlICk7XHJcbiAgICBcclxuICAgIHZhciBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgY29uc3QgY29udHJvbGxlcnMgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKTtcclxuICAgIGNvbnN0IGZvbGRlcnMgPSBjb250cm9sbGVycy5maWx0ZXIoYyA9PiBjLmZvbGRlciA9PT0gYyk7IC8vYWxsIHRvcC1sZXZlbCBmb2xkZXJzXHJcbiAgICBmb2xkZXJzLmZvckVhY2goZiA9PiB7XHJcbiAgICAgIGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSBpc09ydGhvZ3JhcGhpYyA/IG1vdXNlSW5wdXQubW91c2VDYW1lcmEgOiBmYWxzZTtcclxuICAgICAgaWYgKGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAgIGYucmVxdWVzdExheW91dCgpO1xyXG4gICAgICAgIGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IGZhbHNlOyAvLyBwcm90ZWN0IGFueSBuZXdseS1kaXNwbGF5ZWQgbW9kYWxFZGl0b3IgZnJvbSBiZWluZyBjbGVhcmVkXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGYudXNlckRhdGEubGF5b3V0UGVuZGluZykgZi5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICB9KTsgXHJcblxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICAvL1RPRE86IGxvY2sgbW91c2Ugb24gaG92ZXI/P1xyXG4gICAgICBtb3VzZUlucHV0LmludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLGludGVyYWN0aW9ufSA9IHt9LCBpbmRleCApe1xyXG4gICAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICAgIG9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBcclxuICAgICAgdFBvc2l0aW9uLnNldCgwLDAsMCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgdE1hdHJpeC5pZGVudGl0eSgpLmV4dHJhY3RSb3RhdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIFxyXG4gICAgICB0RGlyZWN0aW9uLnNldCgwLDAsLTEpO1xyXG4gICAgICAvL2FsdGVyaW5nIGRpcmVjdGlvbiBlLmcuIHRvIHBvaW50IGluIGRpcmVjdGlvbiBvZiBleHRlbmRlZCB0cmlnZ2VyIGZpbmdlciwgcmF0aGVyIHRoYW4gJ21haW4gYXhpcycgb2YgVml2ZSBjb250cm9sbGVyLi4uXHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGQgYmUgaW4gdXNlckRhdGEuXHJcbiAgICAgIGlmIChvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcikgdERpcmVjdGlvbi5hcHBseVF1YXRlcm5pb24ob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpO1xyXG4gICAgICB0RGlyZWN0aW9uLmFwcGx5TWF0cml4NCggdE1hdHJpeCApLm5vcm1hbGl6ZSgpO1xyXG4gICAgICBcclxuICAgICAgcmF5Y2FzdC5zZXQoIHRQb3NpdGlvbiwgdERpcmVjdGlvbiApO1xyXG4gICAgICBcclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAwIF0uY29weSggdFBvc2l0aW9uICk7XHJcbiAgICAgIGNvbnN0IGEgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICAgIGFbMF0gPSB0UG9zaXRpb24ueDsgYVsxXSA9IHRQb3NpdGlvbi55OyBhWzJdID0gdFBvc2l0aW9uLno7XHJcbiAgICAgIFxyXG4gICAgICAvLyAgZGVidWcuLi5cclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggdFBvc2l0aW9uICkuYWRkKCB0RGlyZWN0aW9uLm11bHRpcGx5U2NhbGFyKCAxICkgKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbnMgPSByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgXHJcbiAgICAgIGlucHV0T2JqZWN0c1sgaW5kZXggXS5pbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy93YW50IHRvIGFkZCBpbmZvIChoaXQgZGlzY3RhbmNlKSB0byBvYmplY3QgZm9yIHVzZSBvdXRzaWRlLi4uIGp1c3QgYWRkaW5nIGVudGlyZXR5IG9mIGludGVyc2VjdGlvbnMgaW4gY2FzZSB1c2VmdWxcclxuICAgICAgaWYgKG9iamVjdC51c2VyRGF0YSkgb2JqZWN0LnVzZXJEYXRhLmd1aUludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0cyA9IGlucHV0T2JqZWN0cy5zbGljZSgpO1xyXG4gICAgXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIGlucHV0cy5wdXNoKCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goIGMgPT4gYy51cGRhdGVDb250cm9sKCBpbnB1dHMgKSk7XHJcbiAgICAvL25vdyBjaGVjayBpZiBhbnkgcHJlc3Mgb24gYW55IGlucHV0IGhpdCBhbnkgbm9uJ21vZGFsIGVkaXRvcicuLi4gaWYgc28sIHdlJ2xsIHJlbW92ZSBtb2RhbHMgZnJvbSBhbGwgZm9sZGVyc1xyXG4gICAgLy8odGhpcyBpc24ndCBwZXJmZWN0OyBpZiB5b3UgYXJlIGFjdGl2ZWx5IGludGVyYWN0aW5nIHdpdGggc29tZXRoaW5nIGFuZCBwcmVzcyBvdGhlciBidXR0b24gc29tZXdoZXJlIGVsc2UsIGl0J2xsIHJlbW92ZSB5b3VyIG9iamVjdClcclxuICAgIGxldCBoaXROb25Nb2RhbHMgPSBpbnB1dHMuZmlsdGVyKGlucHV0ID0+IGlucHV0LmhpdE5vbk1vZGFsKTtcclxuICAgIGlmIChoaXROb25Nb2RhbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgaGl0Tm9uTW9kYWxzLmZvckVhY2goaCA9PiBoLmhpdE5vbk1vZGFsID0gZmFsc2UpOyAvL3JlbW92ZSBmbGFncyBzbyB0aGV5IGRvbid0IHBlcnNpc3QgdG8gc3Vic2VxdWVudCB1cGRhdGVzXHJcbiAgICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IGYuY2xlYXJNb2RhbEVkaXRvcigpKTsgLy90aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIG5vdCBoaWRlIGl0ZW1zIG5ld2x5IGRpc3BsYXllZCBpbiB0aGlzIGZyYW1lXHJcbiAgICB9XHJcbiAgICBtb3VzZUlucHV0LmNsaWNrZWQgPSBmYWxzZTtcclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKG89Pm8uY2xpY2tlZCA9IGZhbHNlKTtcclxuICAgIHJldHVybiBtb3VzZUlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxuLy8gaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZvaWQgbWFpbigpIHsgXHJcbiAgdlV2ID0gdXY7XHJcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cclxufVxyXG5gO1xyXG5cclxuY29uc3QgbWVzaGJhc2ljX2ZyYWcgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG51bmlmb3JtIHZlYzMgY29sb3I7XHJcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLCBcclxuICAgIC8vIHNvIGFmd2lkdGggZGVwZW5kcyBvbiBzY2FsZSBvZiBndWlcclxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XHJcbn1cclxuLy8vL1xyXG5cclxudm9pZCBtYWluKCkge1xyXG5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxyXG5cclxuICAgIC8vL1xyXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xyXG4gICAgXHJcbiAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKG1hcCwgdlV2KTtcclxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcclxuICAgIGlmIChnbF9GcmFnQ29sb3IuYSA8IDAuMDAwMSkgZGlzY2FyZDtcclxuICAgIC8vL1xyXG5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XHJcbiAgICAvL1hYWDogYmlnIGNodW5rIHJlbW92ZWQgZnJvbSBvcmlnaW5hbCBtZXNoYmFzaWNfZnJhZyBoZXJlLlxyXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cclxufVxyXG5gO1xyXG5cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlU0RGU2hhZGVyIChvcHQpIHtcclxuICBvcHQgPSBvcHQgfHwge307XHJcbiAgdmFyIG9wYWNpdHkgPSB0eXBlb2Ygb3B0Lm9wYWNpdHkgPT09ICdudW1iZXInID8gb3B0Lm9wYWNpdHkgOiAxO1xyXG4gIC8vLy0tIGhhcmRjb2RlZCBpbiBzaGFkZXIgY29kZSwgZ3VpdnIgbmV2ZXIgcGFzc2VkIHRoZXNlIGluIG9wdCAtLVxyXG4gIC8vdmFyIGFscGhhVGVzdCA9IHR5cGVvZiBvcHQuYWxwaGFUZXN0ID09PSAnbnVtYmVyJyA/IG9wdC5hbHBoYVRlc3QgOiAwLjAwMDFcclxuICAvL3ZhciBwcmVjaXNpb24gPSBvcHQucHJlY2lzaW9uIHx8ICdoaWdocCdcclxuICB2YXIgY29sb3IgPSBvcHQuY29sb3I7XHJcbiAgdmFyIG1hcCA9IG9wdC5tYXA7XHJcbiAgXHJcbiAgb3B0LmV4dGVuc2lvbnMgPSBvcHQuZXh0ZW5zaW9ucyB8fCB7fTtcclxuICBvcHQuZXh0ZW5zaW9ucy5kZXJpdmF0aXZlcyA9IHRydWU7IC8vbmIsIGZhbHNlIGRlZmF1bHRzIGZvciBmcmFnRGVwdGgsIGRyYXdCdWZmZXJzLCBzaGFkZXJUZXh0dXJlTE9EIHdpbGwgbm8gbG9uZ2VyIGJlIHRoZXJlLlxyXG4gIG9wdC5uYW1lID0gXCJTREYgdGV4dCBtYXRlcmlhbFwiO1xyXG5cclxuICAvLyByZW1vdmUgdG8gc2F0aXNmeSByNzNcclxuICBkZWxldGUgb3B0Lm1hcDtcclxuICBkZWxldGUgb3B0LmNvbG9yO1xyXG4gIGRlbGV0ZSBvcHQucHJlY2lzaW9uO1xyXG4gIGRlbGV0ZSBvcHQub3BhY2l0eTtcclxuXHJcbiAgcmV0dXJuIGFzc2lnbih7XHJcbiAgICB1bmlmb3Jtczoge1xyXG4gICAgICBvcGFjaXR5OiB7IHR5cGU6ICdmJywgdmFsdWU6IG9wYWNpdHkgfSxcclxuICAgICAgbWFwOiB7IHR5cGU6ICd0JywgdmFsdWU6IG1hcCB8fCBuZXcgVEhSRUUuVGV4dHVyZSgpIH0sXHJcbiAgICAgIGNvbG9yOiB7IHR5cGU6ICdjJywgdmFsdWU6IG5ldyBUSFJFRS5Db2xvcihjb2xvcikgfVxyXG4gICAgfSxcclxuICAgIHZlcnRleFNoYWRlcjogbWVzaGJhc2ljX3ZlcnQsXHJcbiAgICBmcmFnbWVudFNoYWRlcjogbWVzaGJhc2ljX2ZyYWdcclxuICB9LCBvcHQpO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgU0RGU2hhZGVyIGZyb20gJy4vc2Rmc2hhZGVyX2xvZ2RlcHRoJztcclxuaW1wb3J0IGNyZWF0ZUdlb21ldHJ5IGZyb20gJ3RocmVlLWJtZm9udC10ZXh0JztcclxuaW1wb3J0IHBhcnNlQVNDSUkgZnJvbSAncGFyc2UtYm1mb250LWFzY2lpJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmltcG9ydCAqIGFzIEZvbnQgZnJvbSAnLi9mb250JztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXRlcmlhbCggY29sb3IgKXtcclxuXHJcbiAgY29uc3QgaW1hZ2UgPSBGb250LmltYWdlKCk7XHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKGltYWdlKTsgdGV4dHVyZS5uYW1lID0gJ3NkZkZvbnRUZXh0dXJlJ1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIC8vTkI6Ojogc29tZXdoYXQgZXhwZXJpbWVudGFsIHJlcGxhY2VtZW50IG9mIFJhd1NoYWRlciBjb2RlIGZyb20gYm1mb250IHdpdGggdmFyaWF0aW9uIG9mIE1lc2hCYXNpYyBzaGFkZXJcclxuICAvL3RoaXMgc2hvdWxkIGFsbG93IGZvciBsb2dkZXB0aCwgZm9nIGlzIGFsc28gYW50aWNpcGF0ZWQgdG8gd29yayByZWFzb25hYmx5IHdlbGwuLi4gXHJcbiAgLy90b25lbWFwcGluZyBldGMgbWF5IGNvbmNlaXZhYmx5IGJlIGltcHJvdmVkLi4uIFlNTVYuXHJcbiAgbGV0IG1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKFNERlNoYWRlcih7XHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBjb2xvcjogY29sb3IsXHJcbiAgICBtYXA6IHRleHR1cmUsXHJcbiAgICB0eXBlOiAnU0RGIFRleHQnXHJcbiAgfSkpO1xyXG4gIHJldHVybiBtYXRlcmlhbDtcclxufVxyXG5cclxuY29uc3QgdGV4dFNjYWxlID0gTGF5b3V0LlRFWFRfU0NBTEU7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRvcigpe1xyXG5cclxuICBjb25zdCBmb250ID0gcGFyc2VBU0NJSSggRm9udC5mbnQoKSApO1xyXG5cclxuICBjb25zdCBjb2xvck1hdGVyaWFscyA9IHt9O1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVUZXh0KCBzdHIsIGZvbnQsIGNvbG9yID0gMHhmZmZmZmYsIHNjYWxlID0gMS4wLCB3aWR0aCwgaGVpZ2h0ICl7XHJcblxyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBjcmVhdGVHZW9tZXRyeSh7XHJcbiAgICAgIHRleHQ6IHN0cixcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgd2lkdGg6IHdpZHRoLFxyXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcclxuICAgICAgZmxpcFk6IHRydWUsXHJcbiAgICAgIGZvbnRcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICBjb25zdCBsYXlvdXQgPSBnZW9tZXRyeS5sYXlvdXQ7XHJcblxyXG4gICAgbGV0IG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF07XHJcbiAgICBpZiggbWF0ZXJpYWwgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdID0gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseSggbmV3IFRIUkVFLlZlY3RvcjMoMSwtMSwxKSApO1xyXG5cclxuICAgIGNvbnN0IGZpbmFsU2NhbGUgPSBzY2FsZSAqIHRleHRTY2FsZTtcclxuXHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5U2NhbGFyKCBmaW5hbFNjYWxlICk7XHJcblxyXG4gICAgbWVzaC5wb3NpdGlvbi55ID0gbGF5b3V0LmhlaWdodCAqIDAuNSAqIGZpbmFsU2NhbGU7XHJcblxyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBzdHIsIHsgY29sb3I9MHhmZmZmZmYsIHNjYWxlPTEuMCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gICAgbGV0IG1lc2ggPSBjcmVhdGVUZXh0KCBzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSApO1xyXG4gICAgZ3JvdXAuYWRkKCBtZXNoICk7XHJcbiAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIGdyb3VwLmNvbXB1dGVXaWR0aCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC53aWR0aCAqIHNjYWxlICogTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICB9XHJcbiAgICBncm91cC5jb21wdXRlSGVpZ2h0ID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LmhlaWdodCAqIHNjYWxlICogTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuY29uc3RyYWluQm91bmRzID0gKHcsIGgpID0+IHtcclxuICAgICAgZ3JvdXAucmVtb3ZlKG1lc2gpO1xyXG4gICAgICBjb25zdCBzID0gTGF5b3V0LlRFWFRfU0NBTEU7XHJcbiAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIGNvbnN0IGhGYWN0b3IgPSBtZXNoLmdlb21ldHJ5LmxheW91dC5oZWlnaHQqcy9oO1xyXG4gICAgICBpZiAoaEZhY3RvciA+IDEpIHtcclxuICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIDAuOTUqIHN0ci5sZW5ndGgvaEZhY3RvcikgKyAnLi4uJztcclxuICAgICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICB9XHJcbiAgICAgIGdyb3VwLmFkZChtZXNoKTtcclxuICAgICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlTGFiZWwgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIG1lc2guZ2VvbWV0cnkudXBkYXRlKCBzdHIgKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiBUSFJFRS5WZXJ0ZXhDb2xvcnMgfSApO1xyXG5leHBvcnQgY29uc3QgTE9DQVRPUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG5leHBvcnQgY29uc3QgRk9MREVSID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDAwMDAwMCB9ICk7XHJcbmV4cG9ydCBjb25zdCBUT09MVElQID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDIwNTA4MCwgdHJhbnNwYXJlbnQ6IGZhbHNlLCBvcGFjaXR5OiAwLjggfSApO1xyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTbGlkZXIoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gMC4wLFxyXG4gIG1pbiA9IDAuMCwgbWF4ID0gMS4wLFxyXG4gIHN0ZXAgPSAwLjEsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaW5pdGlhbEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGFscGhhOiAxLjAsXHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgc3RlcDogc3RlcCxcclxuICAgIHVzZVN0ZXA6IHRydWUsXHJcbiAgICBwcmVjaXNpb246IDEsXHJcbiAgICBsaXN0ZW46IGZhbHNlLFxyXG4gICAgbWluOiBtaW4sXHJcbiAgICBtYXg6IG1heCxcclxuICAgIG9uQ2hhbmdlZENCOiB1bmRlZmluZWQsXHJcbiAgICBvbkZpbmlzaGVkQ2hhbmdlOiB1bmRlZmluZWQsXHJcbiAgICBwcmVzc2luZzogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIHN0YXRlLnN0ZXAgPSBnZXRJbXBsaWVkU3RlcCggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKTtcclxuICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInNsaWRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIGdyb3VwLnNldEhlaWdodCA9IGhlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZSggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgICBjb25zdCBTTElERVJfV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9ERVBUSCA9IGRlcHRoO1xyXG5cclxuICAgIC8vICBmaWxsZWQgdm9sdW1lXHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBTTElERVJfV0lEVEgsIFNMSURFUl9IRUlHSFQsIFNMSURFUl9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoU0xJREVSX1dJRFRIKjAuNSwwLDApO1xyXG4gICAgLy8gTGF5b3V0LmFsaWduTGVmdCggcmVjdCApO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5uYW1lID0gJ2hpdHNjYW5Wb2x1bWUnO1xyXG5cclxuICAgIC8vICBzbGlkZXJCRyB2b2x1bWVcclxuICAgIGNvbnN0IHNsaWRlckJHID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggc2xpZGVyQkcuZ2VvbWV0cnksIENvbG9ycy5TTElERVJfQkcgKTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEggKyBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG5cclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5ERUZBVUxUX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGZpbGxlZFZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgY29uc3QgZW5kTG9jYXRvciA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIDAuMDUsIDAuMDUsIDAuMDUsIDEsIDEsIDEgKSwgU2hhcmVkTWF0ZXJpYWxzLkxPQ0FUT1IgKTtcclxuICAgIGVuZExvY2F0b3IucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSDtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBlbmRMb2NhdG9yICk7XHJcbiAgICBlbmRMb2NhdG9yLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB2YWx1ZUxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gKyB3aWR0aCAqIDAuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoKjIuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzMjU7XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9TTElERVIgKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBwYW5lbC5uYW1lID0gJ3BhbmVsJztcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBzbGlkZXJCRywgdmFsdWVMYWJlbCwgY29udHJvbGxlcklEICk7XHJcblxyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApXHJcblxyXG4gICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgIHVwZGF0ZVNsaWRlcigpO1xyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbHVlTGFiZWwoIHZhbHVlICl7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggcm91bmRUb0RlY2ltYWwoIHN0YXRlLnZhbHVlLCBzdGF0ZS5wcmVjaXNpb24gKS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICAgIGlmKCBzdGF0ZS5wcmVzc2luZyApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLklOVEVSQUNUSU9OX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU2xpZGVyKCl7XHJcbiAgICAgIGZpbGxlZFZvbHVtZS5zY2FsZS54ID1cclxuICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgIE1hdGgubWF4KCBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICkgKiB3aWR0aCwgMC4wMDAwMDEgKSxcclxuICAgICAgICAgIHdpZHRoXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVPYmplY3QoIHZhbHVlICl7XHJcbiAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTdGF0ZUZyb21BbHBoYSggYWxwaGEgKXtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICk7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tQWxwaGEoIHN0YXRlLmFscGhhLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gZ2V0U3RlcHBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUuc3RlcCApO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0Q2xhbXBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKXtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21PYmplY3QoKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRnJvbU9iamVjdCgpe1xyXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICAgIHN0YXRlLm9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAuc3RlcCA9IGZ1bmN0aW9uKCBzdGVwICl7XHJcbiAgICAgIHN0YXRlLnN0ZXAgPSBzdGVwO1xyXG4gICAgICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApXHJcbiAgICAgIHN0YXRlLnVzZVN0ZXAgPSB0cnVlO1xyXG5cclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlUHJlc3MgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlSG9sZCApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZVJlbGVhc2UgKTtcclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVQcmVzcyggcCApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlSG9sZCggeyBwb2ludCB9ID0ge30gKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBmaWxsZWRWb2x1bWUudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgZW5kTG9jYXRvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG5cclxuICAgICAgY29uc3QgYSA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBmaWxsZWRWb2x1bWUubWF0cml4V29ybGQgKTtcclxuICAgICAgY29uc3QgYiA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBlbmRMb2NhdG9yLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHthLGJ9ICkgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICB1cGRhdGVPYmplY3QoIHN0YXRlLnZhbHVlICk7XHJcblxyXG4gICAgICBpZiggcHJldmlvdXNWYWx1ZSAhPT0gc3RhdGUudmFsdWUgJiYgc3RhdGUub25DaGFuZ2VkQ0IgKXtcclxuICAgICAgICBzdGF0ZS5vbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVJlbGVhc2UoKXtcclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgICB1cGRhdGVTbGlkZXIoKTtcclxuICAgICAgfVxyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWluID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWluID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWF4ID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWF4ID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfSAvLyAvc2V0SGVpZ2h0XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KCBpbml0aWFsSGVpZ2h0ICk7XHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCB0YSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRiID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdFRvQSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IGFUb0IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHNlZ21lbnQgKXtcclxuICB0YS5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG4gIHRiLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgY29uc3QgcHJvamVjdGVkID0gdGIucHJvamVjdE9uVmVjdG9yKCB0YSApO1xyXG5cclxuICB0VG9BLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgYVRvQi5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApLm5vcm1hbGl6ZSgpO1xyXG5cclxuICBjb25zdCBzaWRlID0gdFRvQS5ub3JtYWxpemUoKS5kb3QoIGFUb0IgKSA+PSAwID8gMSA6IC0xO1xyXG5cclxuICBjb25zdCBsZW5ndGggPSBzZWdtZW50LmEuZGlzdGFuY2VUbyggc2VnbWVudC5iICkgKiBzaWRlO1xyXG5cclxuICBsZXQgYWxwaGEgPSBwcm9qZWN0ZWQubGVuZ3RoKCkgLyBsZW5ndGg7XHJcbiAgaWYoIGFscGhhID4gMS4wICl7XHJcbiAgICBhbHBoYSA9IDEuMDtcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMC4wICl7XHJcbiAgICBhbHBoYSA9IDAuMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsZXJwKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIHJldHVybiAoMS12YWx1ZSkqbWluICsgdmFsdWUqbWF4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXBfcmFuZ2UodmFsdWUsIGxvdzEsIGhpZ2gxLCBsb3cyLCBoaWdoMikge1xyXG4gICAgcmV0dXJuIGxvdzIgKyAoaGlnaDIgLSBsb3cyKSAqICh2YWx1ZSAtIGxvdzEpIC8gKGhpZ2gxIC0gbG93MSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRBbHBoYSggYWxwaGEgKXtcclxuICBpZiggYWxwaGEgPiAxICl7XHJcbiAgICByZXR1cm4gMVxyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwICl7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIGlmKCB2YWx1ZSA8IG1pbiApe1xyXG4gICAgcmV0dXJuIG1pbjtcclxuICB9XHJcbiAgaWYoIHZhbHVlID4gbWF4ICl7XHJcbiAgICByZXR1cm4gbWF4O1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEltcGxpZWRTdGVwKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICAvL1BKVDogd2hhdCB3b3VsZCB3ZSBsaWtlIHN0ZXAgdG8gbG9vayBsaWtlP1xyXG4gIC8vU29tZXRoaW5nIHRoYXQgaGFzIGFib3V0IHRoZSBvcmRlciBvZiBtYWduaXR1ZGUsIGFuZCBsb29rcyBuaWNlIGluIGJhc2UgMTA/XHJcbiAgY29uc3QgciA9IG1heC1taW47XHJcbiAgbGV0IHN0ZXAgPSByLzEwMDsgLy93aGF0IGlzIHRoZSByYXRpbyBvZiBudW1iZXIgb2YgZGVjaW1hbHMgdG8gb3JkZXIgb2YgbWFnbml0dWRlP1xyXG4gIFxyXG4gIHJldHVybiBzdGVwO1xyXG5cclxuICAvLyBpZiggdmFsdWUgPT09IDAgKXtcclxuICAvLyAgIHJldHVybiAxOyAvLyBXaGF0IGFyZSB3ZSwgcHN5Y2hpY3M/IC8vPDw8PC0tLSBubywgc28gd2Ugc2hvdWxkIGJhc2UgaW1wbGllZFN0ZXAgb24gbWluL21heCwgbm90IHZhbHVlXHJcbiAgLy8gfSBlbHNlIHtcclxuICAvLyAgIC8vIEhleSBEb3VnLCBjaGVjayB0aGlzIG91dC5cclxuICAvLyAgIHJldHVybiBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihNYXRoLmxvZyhNYXRoLmFicyh2YWx1ZSkpL01hdGguTE4xMCkpLzEwO1xyXG4gIC8vIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tQWxwaGEoIGFscGhhLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIGFscGhhLCAwLjAsIDEuMCwgbWluLCBtYXggKVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBbHBoYUZyb21WYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggdmFsdWUsIG1pbiwgbWF4LCAwLjAsIDEuMCApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGVwcGVkVmFsdWUoIHZhbHVlLCBzdGVwICl7XHJcbiAgaWYoIHZhbHVlICUgc3RlcCAhPSAwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZCggdmFsdWUgLyBzdGVwICkgKiBzdGVwO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG51bURlY2ltYWxzKHgpIHtcclxuICB4ID0geC50b1N0cmluZygpO1xyXG4gIGlmICh4LmluZGV4T2YoJy4nKSA+IC0xKSB7XHJcbiAgICByZXR1cm4geC5sZW5ndGggLSB4LmluZGV4T2YoJy4nKSAtIDE7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcm91bmRUb0RlY2ltYWwodmFsdWUsIGRlY2ltYWxzKSB7XHJcbiAgaWYgKE1hdGguYWJzKHZhbHVlKSA8IDAuMDEgJiYgdmFsdWUgIT09IDApIHJldHVybiB2YWx1ZS50b0V4cG9uZW50aWFsKDMpO1xyXG4gIGNvbnN0IHRlblRvID0gTWF0aC5wb3coMTAsIGRlY2ltYWxzKTtcclxuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIHRlblRvKSAvIHRlblRvO1xyXG59IiwiLyoqXHJcbiAqIFdoZW4gdGhlIHRleHRib3ggaXMgZm9jdXNzZWQsICBhIGtleWJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLi4uXHJcbiAqIFRoZXJlIHNob3VsZCBhbHNvIGJlIGEgd2F5IG9mIGRpc21pc3NpbmcgaXQgbGF0ZXIuICBJdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRvXHJcbiAqIHByZXZlbnQgbXVsdGlwbGUga2V5Ym9hcmRzIGJlaW5nIG1hZGUgc2ltdWx0YW5lb3VzbHk/XHJcbiAqIFxyXG4gKiBJbiBvcmRlciB0byBtYWtlIGl0IGFwcGVhciwgaXQgY2FuIGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgdGhlIHRleGJveCBub2RlIGl0c2VsZi4uLlxyXG4gKiBUaGlzJ2xsIG1lYW4gdGhhdCBpdCBnZXRzIGRyYWdnZWQgYXJvdW5kIGJ5IHRoZSBwYXJlbnQgR1VJIGFzIGl0IG1vdmVzLi4uLlxyXG4gKiBNYWtlcyBmb3IgcmVsYXRpdmVseSBjbGVhbiwgc2ltcGxlIGltcGxlbWVudGF0aW9uIGF0IGxlYXN0LlxyXG4gKiBBdCB0aGUgbW9tZW50LCBrZXlib2FyZCBwb3NpdGlvbmluZyBpcyBtZXNzZWQgdXAgYnkgdGhpcyBhcnJhbmdlbWVudC5cclxuICogUmVtb3ZpbmcgZ3JhYmJlciBtYWtlcyBpdCBsZXNzIGxpa2VseSBhIHVzZXIgd2lsbCBkbyB0aGlzLCBidXQgbWlnaHQgYmUgd29ydGggZml4aW5nIHRoZSBiYXNpYyBidWcuXHJcbiAqIFxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIEdVSSBmcm9tICcuL2luZGV4JztcclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRCb3goe1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSkge1xyXG4gIC8vIGJpZyBvbGQgY29weSAvIHBhc3RlIGZyb20gYnV0dG9uLmpzLiBNaWdodCB0cnkgdG8gZmFjdG9yIG91dCBzb21lIG9mIHRoaXMgY29tbW9uIGNvZGUuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGJveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCIvKlxyXG4gKlx0QGF1dGhvciB6ejg1IC8gaHR0cDovL3R3aXR0ZXIuY29tL2JsdXJzcGxpbmUgLyBodHRwOi8vd3d3LmxhYjRnYW1lcy5uZXQveno4NS9ibG9nXHJcbiAqXHRAYXV0aG9yIGNlbnRlcmlvbndhcmUgLyBodHRwOi8vd3d3LmNlbnRlcmlvbndhcmUuY29tXHJcbiAqXHJcbiAqXHRTdWJkaXZpc2lvbiBHZW9tZXRyeSBNb2RpZmllclxyXG4gKlx0XHR1c2luZyBMb29wIFN1YmRpdmlzaW9uIFNjaGVtZVxyXG4gKlxyXG4gKlx0UmVmZXJlbmNlczpcclxuICpcdFx0aHR0cDovL2dyYXBoaWNzLnN0YW5mb3JkLmVkdS9+bWRmaXNoZXIvc3ViZGl2aXNpb24uaHRtbFxyXG4gKlx0XHRodHRwOi8vd3d3LmhvbG1lczNkLm5ldC9ncmFwaGljcy9zdWJkaXZpc2lvbi9cclxuICpcdFx0aHR0cDovL3d3dy5jcy5ydXRnZXJzLmVkdS9+ZGVjYXJsby9yZWFkaW5ncy9zdWJkaXYtc2cwMGMucGRmXHJcbiAqXHJcbiAqXHRLbm93biBJc3N1ZXM6XHJcbiAqXHRcdC0gY3VycmVudGx5IGRvZXNuJ3QgaGFuZGxlIFwiU2hhcnAgRWRnZXNcIlxyXG4gKi9cclxuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIgPSBmdW5jdGlvbiAoIHN1YmRpdmlzaW9ucyApIHtcclxuXHJcblx0dGhpcy5zdWJkaXZpc2lvbnMgPSAoIHN1YmRpdmlzaW9ucyA9PT0gdW5kZWZpbmVkICkgPyAxIDogc3ViZGl2aXNpb25zO1xyXG5cclxufTtcclxuXHJcbi8vIEFwcGxpZXMgdGhlIFwibW9kaWZ5XCIgcGF0dGVyblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5tb2RpZnkgPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkge1xyXG5cclxuXHR2YXIgcmVwZWF0cyA9IHRoaXMuc3ViZGl2aXNpb25zO1xyXG5cclxuXHR3aGlsZSAoIHJlcGVhdHMgLS0gPiAwICkge1xyXG5cclxuXHRcdHRoaXMuc21vb3RoKCBnZW9tZXRyeSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGdlb21ldHJ5LmNvbXB1dGVGYWNlTm9ybWFscygpO1xyXG5cdGdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XHJcblxyXG59O1xyXG5cclxuKCBmdW5jdGlvbigpIHtcclxuXHJcblx0Ly8gU29tZSBjb25zdGFudHNcclxuXHR2YXIgV0FSTklOR1MgPSAhIHRydWU7IC8vIFNldCB0byB0cnVlIGZvciBkZXZlbG9wbWVudFxyXG5cdHZhciBBQkMgPSBbICdhJywgJ2InLCAnYycgXTtcclxuXHJcblxyXG5cdGZ1bmN0aW9uIGdldEVkZ2UoIGEsIGIsIG1hcCApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHRyZXR1cm4gbWFwWyBrZXkgXTtcclxuXHJcblx0fVxyXG5cclxuXHJcblx0ZnVuY3Rpb24gcHJvY2Vzc0VkZ2UoIGEsIGIsIHZlcnRpY2VzLCBtYXAsIGZhY2UsIG1ldGFWZXJ0aWNlcyApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHR2YXIgZWRnZTtcclxuXHJcblx0XHRpZiAoIGtleSBpbiBtYXAgKSB7XHJcblxyXG5cdFx0XHRlZGdlID0gbWFwWyBrZXkgXTtcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0dmFyIHZlcnRleEEgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhBIF07XHJcblx0XHRcdHZhciB2ZXJ0ZXhCID0gdmVydGljZXNbIHZlcnRleEluZGV4QiBdO1xyXG5cclxuXHRcdFx0ZWRnZSA9IHtcclxuXHJcblx0XHRcdFx0YTogdmVydGV4QSwgLy8gcG9pbnRlciByZWZlcmVuY2VcclxuXHRcdFx0XHRiOiB2ZXJ0ZXhCLFxyXG5cdFx0XHRcdG5ld0VkZ2U6IG51bGwsXHJcblx0XHRcdFx0Ly8gYUluZGV4OiBhLCAvLyBudW1iZXJlZCByZWZlcmVuY2VcclxuXHRcdFx0XHQvLyBiSW5kZXg6IGIsXHJcblx0XHRcdFx0ZmFjZXM6IFtdIC8vIHBvaW50ZXJzIHRvIGZhY2VcclxuXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRtYXBbIGtleSBdID0gZWRnZTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0ZWRnZS5mYWNlcy5wdXNoKCBmYWNlICk7XHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzWyBhIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cdFx0bWV0YVZlcnRpY2VzWyBiIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBnZW5lcmF0ZUxvb2t1cHMoIHZlcnRpY2VzLCBmYWNlcywgbWV0YVZlcnRpY2VzLCBlZGdlcyApIHtcclxuXHJcblx0XHR2YXIgaSwgaWwsIGZhY2UsIGVkZ2U7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gdmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRtZXRhVmVydGljZXNbIGkgXSA9IHsgZWRnZXM6IFtdIH07XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IGZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IGZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5hLCBmYWNlLmIsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmIsIGZhY2UuYywgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYywgZmFjZS5hLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdGYWNlKCBuZXdGYWNlcywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdGYWNlcy5wdXNoKCBuZXcgVEhSRUUuRmFjZTMoIGEsIGIsIGMgKSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG1pZHBvaW50KCBhLCBiICkge1xyXG5cclxuXHRcdHJldHVybiAoIE1hdGguYWJzKCBiIC0gYSApIC8gMiApICsgTWF0aC5taW4oIGEsIGIgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdVdiggbmV3VXZzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld1V2cy5wdXNoKCBbIGEuY2xvbmUoKSwgYi5jbG9uZSgpLCBjLmNsb25lKCkgXSApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cdC8vIFBlcmZvcm1zIG9uZSBpdGVyYXRpb24gb2YgU3ViZGl2aXNpb25cclxuXHRUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5zbW9vdGggPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkgeyByZXR1cm47IC8vIHNqcHQgVEVNUCBUT0RPXHJcblxyXG5cdFx0dmFyIHRtcCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0dmFyIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgb2xkVXZzO1xyXG5cdFx0dmFyIG5ld1ZlcnRpY2VzLCBuZXdGYWNlcywgbmV3VVZzID0gW107XHJcblxyXG5cdFx0dmFyIG4sIGwsIGksIGlsLCBqLCBrO1xyXG5cdFx0dmFyIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXM7XHJcblxyXG5cdFx0Ly8gbmV3IHN0dWZmLlxyXG5cdFx0dmFyIHNvdXJjZUVkZ2VzLCBuZXdFZGdlVmVydGljZXMsIG5ld1NvdXJjZVZlcnRpY2VzO1xyXG5cclxuXHRcdG9sZFZlcnRpY2VzID0gZ2VvbWV0cnkudmVydGljZXM7IC8vIHsgeCwgeSwgen1cclxuXHRcdG9sZEZhY2VzID0gZ2VvbWV0cnkuZmFjZXM7IC8vIHsgYTogb2xkVmVydGV4MSwgYjogb2xkVmVydGV4MiwgYzogb2xkVmVydGV4MyB9XHJcblx0XHRvbGRVdnMgPSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF07XHJcblxyXG5cdFx0dmFyIGhhc1V2cyA9IG9sZFV2cyAhPT0gdW5kZWZpbmVkICYmIG9sZFV2cy5sZW5ndGggPiAwO1xyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKiBTdGVwIDA6IFByZXByb2Nlc3MgR2VvbWV0cnkgdG8gR2VuZXJhdGUgZWRnZXMgTG9va3VwXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzID0gbmV3IEFycmF5KCBvbGRWZXJ0aWNlcy5sZW5ndGggKTtcclxuXHRcdHNvdXJjZUVkZ2VzID0ge307IC8vIEVkZ2UgPT4geyBvbGRWZXJ0ZXgxLCBvbGRWZXJ0ZXgyLCBmYWNlc1tdICB9XHJcblxyXG5cdFx0Z2VuZXJhdGVMb29rdXBzKCBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXMgKTtcclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDEuXHJcblx0XHQgKlx0Rm9yIGVhY2ggZWRnZSwgY3JlYXRlIGEgbmV3IEVkZ2UgVmVydGV4LFxyXG5cdFx0ICpcdHRoZW4gcG9zaXRpb24gaXQuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3RWRnZVZlcnRpY2VzID0gW107XHJcblx0XHR2YXIgb3RoZXIsIGN1cnJlbnRFZGdlLCBuZXdFZGdlLCBmYWNlO1xyXG5cdFx0dmFyIGVkZ2VWZXJ0ZXhXZWlnaHQsIGFkamFjZW50VmVydGV4V2VpZ2h0LCBjb25uZWN0ZWRGYWNlcztcclxuXHJcblx0XHRmb3IgKCBpIGluIHNvdXJjZUVkZ2VzICkge1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UgPSBzb3VyY2VFZGdlc1sgaSBdO1xyXG5cdFx0XHRuZXdFZGdlID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAzIC8gODtcclxuXHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdGNvbm5lY3RlZEZhY2VzID0gY3VycmVudEVkZ2UuZmFjZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgaG93IG1hbnkgbGlua2VkIGZhY2VzLiAyIHNob3VsZCBiZSBjb3JyZWN0LlxyXG5cdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGlmIGxlbmd0aCBpcyBub3QgMiwgaGFuZGxlIGNvbmRpdGlvblxyXG5cdFx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAwLjU7XHJcblx0XHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ1N1YmRpdmlzaW9uIE1vZGlmaWVyOiBOdW1iZXIgb2YgY29ubmVjdGVkIGZhY2VzICE9IDIsIGlzOiAnLCBjb25uZWN0ZWRGYWNlcywgY3VycmVudEVkZ2UgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3RWRnZS5hZGRWZWN0b3JzKCBjdXJyZW50RWRnZS5hLCBjdXJyZW50RWRnZS5iICkubXVsdGlwbHlTY2FsYXIoIGVkZ2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgY29ubmVjdGVkRmFjZXM7IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGZhY2UgPSBjdXJyZW50RWRnZS5mYWNlc1sgaiBdO1xyXG5cclxuXHRcdFx0XHRmb3IgKCBrID0gMDsgayA8IDM7IGsgKysgKSB7XHJcblxyXG5cdFx0XHRcdFx0b3RoZXIgPSBvbGRWZXJ0aWNlc1sgZmFjZVsgQUJDWyBrIF0gXSBdO1xyXG5cdFx0XHRcdFx0aWYgKCBvdGhlciAhPT0gY3VycmVudEVkZ2UuYSAmJiBvdGhlciAhPT0gY3VycmVudEVkZ2UuYiApIGJyZWFrO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGFkamFjZW50VmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld0VkZ2UuYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlLm5ld0VkZ2UgPSBuZXdFZGdlVmVydGljZXMubGVuZ3RoO1xyXG5cdFx0XHRuZXdFZGdlVmVydGljZXMucHVzaCggbmV3RWRnZSApO1xyXG5cclxuXHRcdFx0Ly8gY29uc29sZS5sb2coY3VycmVudEVkZ2UsIG5ld0VkZ2UpO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMi5cclxuXHRcdCAqXHRSZXBvc2l0aW9uIGVhY2ggc291cmNlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdHZhciBiZXRhLCBzb3VyY2VWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQ7XHJcblx0XHR2YXIgY29ubmVjdGluZ0VkZ2UsIGNvbm5lY3RpbmdFZGdlcywgb2xkVmVydGV4LCBuZXdTb3VyY2VWZXJ0ZXg7XHJcblx0XHRuZXdTb3VyY2VWZXJ0aWNlcyA9IFtdO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZFZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0b2xkVmVydGV4ID0gb2xkVmVydGljZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgYWxsIGNvbm5lY3RpbmcgZWRnZXMgKHVzaW5nIGxvb2t1cFRhYmxlKVxyXG5cdFx0XHRjb25uZWN0aW5nRWRnZXMgPSBtZXRhVmVydGljZXNbIGkgXS5lZGdlcztcclxuXHRcdFx0biA9IGNvbm5lY3RpbmdFZGdlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIG4gPT0gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAxNjtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoIG4gPiAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvICggOCAqIG4gKTsgLy8gV2FycmVuJ3MgbW9kaWZpZWQgZm9ybXVsYVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTG9vcCdzIG9yaWdpbmFsIGJldGEgZm9ybXVsYVxyXG5cdFx0XHQvLyBiZXRhID0gMSAvIG4gKiAoIDUvOCAtIE1hdGgucG93KCAzLzggKyAxLzQgKiBNYXRoLmNvcyggMiAqIE1hdGguIFBJIC8gbiApLCAyKSApO1xyXG5cclxuXHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMSAtIG4gKiBiZXRhO1xyXG5cdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gYmV0YTtcclxuXHJcblx0XHRcdGlmICggbiA8PSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzXHJcblx0XHRcdFx0Ly8gY29uc29sZS53YXJuKCdjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzJyk7XHJcblxyXG5cdFx0XHRcdGlmICggbiA9PSAyICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcyIGNvbm5lY3RpbmcgZWRnZXMnLCBjb25uZWN0aW5nRWRnZXMgKTtcclxuXHRcdFx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDMgLyA0O1xyXG5cdFx0XHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0XHRcdC8vIHNvdXJjZVZlcnRleFdlaWdodCA9IDE7XHJcblx0XHRcdFx0XHQvLyBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdvbmx5IDEgY29ubmVjdGluZyBlZGdlJyApO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDAgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzAgY29ubmVjdGluZyBlZGdlcycgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGV4ID0gb2xkVmVydGV4LmNsb25lKCkubXVsdGlwbHlTY2FsYXIoIHNvdXJjZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBuOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRjb25uZWN0aW5nRWRnZSA9IGNvbm5lY3RpbmdFZGdlc1sgaiBdO1xyXG5cdFx0XHRcdG90aGVyID0gY29ubmVjdGluZ0VkZ2UuYSAhPT0gb2xkVmVydGV4ID8gY29ubmVjdGluZ0VkZ2UuYSA6IGNvbm5lY3RpbmdFZGdlLmI7XHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggY29ubmVjdGluZ1ZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXguYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRpY2VzLnB1c2goIG5ld1NvdXJjZVZlcnRleCApO1xyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDMuXHJcblx0XHQgKlx0R2VuZXJhdGUgRmFjZXMgYmV0d2VlbiBzb3VyY2UgdmVydGljZXNcclxuXHRcdCAqXHRhbmQgZWRnZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdWZXJ0aWNlcyA9IG5ld1NvdXJjZVZlcnRpY2VzLmNvbmNhdCggbmV3RWRnZVZlcnRpY2VzICk7XHJcblx0XHR2YXIgc2wgPSBuZXdTb3VyY2VWZXJ0aWNlcy5sZW5ndGgsIGVkZ2UxLCBlZGdlMiwgZWRnZTM7XHJcblx0XHRuZXdGYWNlcyA9IFtdO1xyXG5cclxuXHRcdHZhciB1diwgeDAsIHgxLCB4MjtcclxuXHRcdHZhciB4MyA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDQgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg1ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRGYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBvbGRGYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCB0aGUgMyBuZXcgZWRnZXMgdmVydGV4IG9mIGVhY2ggb2xkIGZhY2VcclxuXHJcblx0XHRcdGVkZ2UxID0gZ2V0RWRnZSggZmFjZS5hLCBmYWNlLmIsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMiA9IGdldEVkZ2UoIGZhY2UuYiwgZmFjZS5jLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTMgPSBnZXRFZGdlKCBmYWNlLmMsIGZhY2UuYSwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBmYWNlcy5cclxuXHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBlZGdlMSwgZWRnZTIsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmEsIGVkZ2UxLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5iLCBlZGdlMiwgZWRnZTEgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYywgZWRnZTMsIGVkZ2UyICk7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBuZXcgdXYnc1xyXG5cclxuXHRcdFx0aWYgKCBoYXNVdnMgKSB7XHJcblxyXG5cdFx0XHRcdHV2ID0gb2xkVXZzWyBpIF07XHJcblxyXG5cdFx0XHRcdHgwID0gdXZbIDAgXTtcclxuXHRcdFx0XHR4MSA9IHV2WyAxIF07XHJcblx0XHRcdFx0eDIgPSB1dlsgMiBdO1xyXG5cclxuXHRcdFx0XHR4My5zZXQoIG1pZHBvaW50KCB4MC54LCB4MS54ICksIG1pZHBvaW50KCB4MC55LCB4MS55ICkgKTtcclxuXHRcdFx0XHR4NC5zZXQoIG1pZHBvaW50KCB4MS54LCB4Mi54ICksIG1pZHBvaW50KCB4MS55LCB4Mi55ICkgKTtcclxuXHRcdFx0XHR4NS5zZXQoIG1pZHBvaW50KCB4MC54LCB4Mi54ICksIG1pZHBvaW50KCB4MC55LCB4Mi55ICkgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDMsIHg0LCB4NSApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgwLCB4MywgeDUgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDEsIHg0LCB4MyApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgyLCB4NSwgeDQgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3ZlcndyaXRlIG9sZCBhcnJheXNcclxuXHRcdGdlb21ldHJ5LnZlcnRpY2VzID0gbmV3VmVydGljZXM7XHJcblx0XHRnZW9tZXRyeS5mYWNlcyA9IG5ld0ZhY2VzO1xyXG5cdFx0aWYgKCBoYXNVdnMgKSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF0gPSBuZXdVVnM7XHJcblxyXG5cdFx0Ly8gY29uc29sZS5sb2coJ2RvbmUnKTtcclxuXHJcblx0fTtcclxuXHJcbn0gKSgpO1xyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgQmFzZS5jYWxsKHRoaXMpXG5cbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIHRoZXNlIGFzIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgc3Vic2VxdWVudFxuICAvLyBjYWxscyB0byB1cGRhdGUoKVxuICB0aGlzLl9vcHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX29wdCwgb3B0KVxuXG4gIGlmICghb3B0LmZvbnQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgYSB7IGZvbnQgfSBpbiBvcHRpb25zJylcbiAgfVxuXG4gIHRoaXMubGF5b3V0ID0gY3JlYXRlTGF5b3V0KG9wdClcblxuICAvLyBnZXQgdmVjMiB0ZXhjb29yZHNcbiAgdmFyIGZsaXBZID0gb3B0LmZsaXBZICE9PSBmYWxzZVxuXG4gIC8vIHRoZSBkZXNpcmVkIEJNRm9udCBkYXRhXG4gIHZhciBmb250ID0gb3B0LmZvbnRcblxuICAvLyBkZXRlcm1pbmUgdGV4dHVyZSBzaXplIGZyb20gZm9udCBmaWxlXG4gIHZhciB0ZXhXaWR0aCA9IGZvbnQuY29tbW9uLnNjYWxlV1xuICB2YXIgdGV4SGVpZ2h0ID0gZm9udC5jb21tb24uc2NhbGVIXG5cbiAgLy8gZ2V0IHZpc2libGUgZ2x5cGhzXG4gIHZhciBnbHlwaHMgPSB0aGlzLmxheW91dC5nbHlwaHMuZmlsdGVyKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgcmV0dXJuIGJpdG1hcC53aWR0aCAqIGJpdG1hcC5oZWlnaHQgPiAwXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB2aXNpYmxlIGdseXBocyBmb3IgY29udmVuaWVuY2VcbiAgdGhpcy52aXNpYmxlR2x5cGhzID0gZ2x5cGhzXG5cbiAgLy8gZ2V0IGNvbW1vbiB2ZXJ0ZXggZGF0YVxuICB2YXIgcG9zaXRpb25zID0gdmVydGljZXMucG9zaXRpb25zKGdseXBocylcbiAgdmFyIHV2cyA9IHZlcnRpY2VzLnV2cyhnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKVxuICB2YXIgaW5kaWNlcyA9IGNyZWF0ZUluZGljZXMoW10sIHtcbiAgICBjbG9ja3dpc2U6IHRydWUsXG4gICAgdHlwZTogJ3VpbnQxNicsXG4gICAgY291bnQ6IGdseXBocy5sZW5ndGhcbiAgfSlcblxuICAvLyB1cGRhdGUgdmVydGV4IGRhdGFcbiAgdGhpcy5zZXRJbmRleChpbmRpY2VzKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9ucywgMikpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSlcblxuICAvLyB1cGRhdGUgbXVsdGlwYWdlIGRhdGFcbiAgaWYgKCFvcHQubXVsdGlwYWdlICYmICdwYWdlJyBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAvLyBkaXNhYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGFnZScpXG4gIH0gZWxzZSBpZiAob3B0Lm11bHRpcGFnZSkge1xuICAgIC8vIGVuYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdmFyIHBhZ2VzID0gdmVydGljZXMucGFnZXMoZ2x5cGhzKVxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwYWdlJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwYWdlcywgMSkpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdTcGhlcmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nU3BoZXJlID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZSA9IG5ldyBUSFJFRS5TcGhlcmUoKVxuICB9XG5cbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMgPSAwXG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXIuc2V0KDAsIDAsIDApXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZVNwaGVyZShwb3NpdGlvbnMsIHRoaXMuYm91bmRpbmdTcGhlcmUpXG4gIGlmIChpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogJyArXG4gICAgICAnQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICcgK1xuICAgICAgJ1wicG9zaXRpb25cIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ0JveCA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpXG4gIH1cblxuICB2YXIgYmJveCA9IHRoaXMuYm91bmRpbmdCb3hcbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgYmJveC5tYWtlRW1wdHkoKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVCb3gocG9zaXRpb25zLCBiYm94KVxufVxuIiwidmFyIGl0ZW1TaXplID0gMlxudmFyIGJveCA9IHsgbWluOiBbMCwgMF0sIG1heDogWzAsIDBdIH1cblxuZnVuY3Rpb24gYm91bmRzIChwb3NpdGlvbnMpIHtcbiAgdmFyIGNvdW50ID0gcG9zaXRpb25zLmxlbmd0aCAvIGl0ZW1TaXplXG4gIGJveC5taW5bMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1pblsxXSA9IHBvc2l0aW9uc1sxXVxuICBib3gubWF4WzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5tYXhbMV0gPSBwb3NpdGlvbnNbMV1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICB2YXIgeCA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAwXVxuICAgIHZhciB5ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDFdXG4gICAgYm94Lm1pblswXSA9IE1hdGgubWluKHgsIGJveC5taW5bMF0pXG4gICAgYm94Lm1pblsxXSA9IE1hdGgubWluKHksIGJveC5taW5bMV0pXG4gICAgYm94Lm1heFswXSA9IE1hdGgubWF4KHgsIGJveC5tYXhbMF0pXG4gICAgYm94Lm1heFsxXSA9IE1hdGgubWF4KHksIGJveC5tYXhbMV0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZUJveCA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICBvdXRwdXQubWluLnNldChib3gubWluWzBdLCBib3gubWluWzFdLCAwKVxuICBvdXRwdXQubWF4LnNldChib3gubWF4WzBdLCBib3gubWF4WzFdLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlU3BoZXJlID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIHZhciBtaW5YID0gYm94Lm1pblswXVxuICB2YXIgbWluWSA9IGJveC5taW5bMV1cbiAgdmFyIG1heFggPSBib3gubWF4WzBdXG4gIHZhciBtYXhZID0gYm94Lm1heFsxXVxuICB2YXIgd2lkdGggPSBtYXhYIC0gbWluWFxuICB2YXIgaGVpZ2h0ID0gbWF4WSAtIG1pbllcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KVxuICBvdXRwdXQuY2VudGVyLnNldChtaW5YICsgd2lkdGggLyAyLCBtaW5ZICsgaGVpZ2h0IC8gMiwgMClcbiAgb3V0cHV0LnJhZGl1cyA9IGxlbmd0aCAvIDJcbn1cbiIsIm1vZHVsZS5leHBvcnRzLnBhZ2VzID0gZnVuY3Rpb24gcGFnZXMgKGdseXBocykge1xuICB2YXIgcGFnZXMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMSlcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBpZCA9IGdseXBoLmRhdGEucGFnZSB8fCAwXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gIH0pXG4gIHJldHVybiBwYWdlc1xufVxuXG5tb2R1bGUuZXhwb3J0cy51dnMgPSBmdW5jdGlvbiB1dnMgKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpIHtcbiAgdmFyIHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICB2YXIgYncgPSAoYml0bWFwLnggKyBiaXRtYXAud2lkdGgpXG4gICAgdmFyIGJoID0gKGJpdG1hcC55ICsgYml0bWFwLmhlaWdodClcblxuICAgIC8vIHRvcCBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHUwID0gYml0bWFwLnggLyB0ZXhXaWR0aFxuICAgIHZhciB2MSA9IGJpdG1hcC55IC8gdGV4SGVpZ2h0XG4gICAgdmFyIHUxID0gYncgLyB0ZXhXaWR0aFxuICAgIHZhciB2MCA9IGJoIC8gdGV4SGVpZ2h0XG5cbiAgICBpZiAoZmxpcFkpIHtcbiAgICAgIHYxID0gKHRleEhlaWdodCAtIGJpdG1hcC55KSAvIHRleEhlaWdodFxuICAgICAgdjAgPSAodGV4SGVpZ2h0IC0gYmgpIC8gdGV4SGVpZ2h0XG4gICAgfVxuXG4gICAgLy8gQkxcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MVxuICAgIC8vIFRMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBUUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gQlJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MVxuICB9KVxuICByZXR1cm4gdXZzXG59XG5cbm1vZHVsZS5leHBvcnRzLnBvc2l0aW9ucyA9IGZ1bmN0aW9uIHBvc2l0aW9ucyAoZ2x5cGhzKSB7XG4gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG5cbiAgICAvLyBib3R0b20gbGVmdCBwb3NpdGlvblxuICAgIHZhciB4ID0gZ2x5cGgucG9zaXRpb25bMF0gKyBiaXRtYXAueG9mZnNldFxuICAgIHZhciB5ID0gZ2x5cGgucG9zaXRpb25bMV0gKyBiaXRtYXAueW9mZnNldFxuXG4gICAgLy8gcXVhZCBzaXplXG4gICAgdmFyIHcgPSBiaXRtYXAud2lkdGhcbiAgICB2YXIgaCA9IGJpdG1hcC5oZWlnaHRcblxuICAgIC8vIEJMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gICAgLy8gVExcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gVFJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIEJSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICB9KVxuICByZXR1cm4gcG9zaXRpb25zXG59XG4iLCJ2YXIgbmV3bGluZSA9IC9cXG4vXG52YXIgbmV3bGluZUNoYXIgPSAnXFxuJ1xudmFyIHdoaXRlc3BhY2UgPSAvXFxzL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHRleHQsIG9wdCkge1xuICAgIHZhciBsaW5lcyA9IG1vZHVsZS5leHBvcnRzLmxpbmVzKHRleHQsIG9wdClcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKGxpbmUuc3RhcnQsIGxpbmUuZW5kKVxuICAgIH0pLmpvaW4oJ1xcbicpXG59XG5cbm1vZHVsZS5leHBvcnRzLmxpbmVzID0gZnVuY3Rpb24gd29yZHdyYXAodGV4dCwgb3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgLy96ZXJvIHdpZHRoIHJlc3VsdHMgaW4gbm90aGluZyB2aXNpYmxlXG4gICAgaWYgKG9wdC53aWR0aCA9PT0gMCAmJiBvcHQubW9kZSAhPT0gJ25vd3JhcCcpIFxuICAgICAgICByZXR1cm4gW11cblxuICAgIHRleHQgPSB0ZXh0fHwnJ1xuICAgIHZhciB3aWR0aCA9IHR5cGVvZiBvcHQud2lkdGggPT09ICdudW1iZXInID8gb3B0LndpZHRoIDogTnVtYmVyLk1BWF9WQUxVRVxuICAgIHZhciBzdGFydCA9IE1hdGgubWF4KDAsIG9wdC5zdGFydHx8MClcbiAgICB2YXIgZW5kID0gdHlwZW9mIG9wdC5lbmQgPT09ICdudW1iZXInID8gb3B0LmVuZCA6IHRleHQubGVuZ3RoXG4gICAgdmFyIG1vZGUgPSBvcHQubW9kZVxuXG4gICAgdmFyIG1lYXN1cmUgPSBvcHQubWVhc3VyZSB8fCBtb25vc3BhY2VcbiAgICBpZiAobW9kZSA9PT0gJ3ByZScpXG4gICAgICAgIHJldHVybiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpXG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKVxufVxuXG5mdW5jdGlvbiBpZHhPZih0ZXh0LCBjaHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKGNociwgc3RhcnQpXG4gICAgaWYgKGlkeCA9PT0gLTEgfHwgaWR4ID4gZW5kKVxuICAgICAgICByZXR1cm4gZW5kXG4gICAgcmV0dXJuIGlkeFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hyKSB7XG4gICAgcmV0dXJuIHdoaXRlc3BhY2UudGVzdChjaHIpXG59XG5cbmZ1bmN0aW9uIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBsaW5lcyA9IFtdXG4gICAgdmFyIGxpbmVTdGFydCA9IHN0YXJ0XG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQgJiYgaTx0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaHIgPSB0ZXh0LmNoYXJBdChpKVxuICAgICAgICB2YXIgaXNOZXdsaW5lID0gbmV3bGluZS50ZXN0KGNocilcblxuICAgICAgICAvL0lmIHdlJ3ZlIHJlYWNoZWQgYSBuZXdsaW5lLCB0aGVuIHN0ZXAgZG93biBhIGxpbmVcbiAgICAgICAgLy9PciBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBFT0ZcbiAgICAgICAgaWYgKGlzTmV3bGluZSB8fCBpPT09ZW5kLTEpIHtcbiAgICAgICAgICAgIHZhciBsaW5lRW5kID0gaXNOZXdsaW5lID8gaSA6IGkrMVxuICAgICAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBsaW5lU3RhcnQsIGxpbmVFbmQsIHdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChtZWFzdXJlZClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGluZVN0YXJ0ID0gaSsxXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSkge1xuICAgIC8vQSBncmVlZHkgd29yZCB3cmFwcGVyIGJhc2VkIG9uIExpYkdEWCBhbGdvcml0aG1cbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9saWJnZHgvbGliZ2R4L2Jsb2IvbWFzdGVyL2dkeC9zcmMvY29tL2JhZGxvZ2ljL2dkeC9ncmFwaGljcy9nMmQvQml0bWFwRm9udENhY2hlLmphdmFcbiAgICB2YXIgbGluZXMgPSBbXVxuXG4gICAgdmFyIHRlc3RXaWR0aCA9IHdpZHRoXG4gICAgLy9pZiAnbm93cmFwJyBpcyBzcGVjaWZpZWQsIHdlIG9ubHkgd3JhcCBvbiBuZXdsaW5lIGNoYXJzXG4gICAgaWYgKG1vZGUgPT09ICdub3dyYXAnKVxuICAgICAgICB0ZXN0V2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFXG5cbiAgICB3aGlsZSAoc3RhcnQgPCBlbmQgJiYgc3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAvL2dldCBuZXh0IG5ld2xpbmUgcG9zaXRpb25cbiAgICAgICAgdmFyIG5ld0xpbmUgPSBpZHhPZih0ZXh0LCBuZXdsaW5lQ2hhciwgc3RhcnQsIGVuZClcblxuICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IHN0YXJ0IG9mIGxpbmVcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbmV3TGluZSkge1xuICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UoIHRleHQuY2hhckF0KHN0YXJ0KSApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBzdGFydCsrXG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSB2aXNpYmxlICMgb2YgZ2x5cGhzIGZvciB0aGUgYXZhaWxhYmxlIHdpZHRoXG4gICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIG5ld0xpbmUsIHRlc3RXaWR0aClcblxuICAgICAgICB2YXIgbGluZUVuZCA9IHN0YXJ0ICsgKG1lYXN1cmVkLmVuZC1tZWFzdXJlZC5zdGFydClcbiAgICAgICAgdmFyIG5leHRTdGFydCA9IGxpbmVFbmQgKyBuZXdsaW5lQ2hhci5sZW5ndGhcblxuICAgICAgICAvL2lmIHdlIGhhZCB0byBjdXQgdGhlIGxpbmUgYmVmb3JlIHRoZSBuZXh0IG5ld2xpbmUuLi5cbiAgICAgICAgaWYgKGxpbmVFbmQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICAvL2ZpbmQgY2hhciB0byBicmVhayBvblxuICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmVFbmQgPT09IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGFydCA+IHN0YXJ0ICsgbmV3bGluZUNoYXIubGVuZ3RoKSBuZXh0U3RhcnQtLVxuICAgICAgICAgICAgICAgIGxpbmVFbmQgPSBuZXh0U3RhcnQgLy8gSWYgbm8gY2hhcmFjdGVycyB0byBicmVhaywgc2hvdyBhbGwuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IGxpbmVFbmRcbiAgICAgICAgICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kIC0gbmV3bGluZUNoYXIubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVFbmQgPj0gc3RhcnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBsaW5lRW5kLCB0ZXN0V2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IG5leHRTdGFydFxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuLy9kZXRlcm1pbmVzIHRoZSB2aXNpYmxlIG51bWJlciBvZiBnbHlwaHMgd2l0aGluIGEgZ2l2ZW4gd2lkdGhcbmZ1bmN0aW9uIG1vbm9zcGFjZSh0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBnbHlwaHMgPSBNYXRoLm1pbih3aWR0aCwgZW5kLXN0YXJ0KVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgZW5kOiBzdGFydCtnbHlwaHNcbiAgICB9XG59IiwibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqIFxyXG4gKiBGb3Igbm93LCBqdXN0IGdvaW5nIHdpdGggUkdCIHNsaWRlcnMgYXMgSSBzaG91bGRuJ3Qgc3BlbmQgdG9vIGxvbmcgb24gdGhpcyBBVE0sXHJcbiAqIGJ1dCB2ZXJ5IHRlbXB0ZWQgYnkgcHJvc3BlY3Qgb2YgYW4gSFMgc3F1YXJlIHdpdGggViBzbGlkZXIuLi4gXHJcbiAqIG9yIEggc2xpZGVyIGFuZCBTViBzcXVhcmUgd2hpY2ggc2VlbXMgdG8gYmUgd2hhdCBkYXQuZ3VpIHVzZXMuXHJcbiAqIE9yIHNvbWV0aGluZyBmYW5jaWVyIGxpa2UgYSBodWUgY2lyY2xlIGFyb3VuZCBhbiBTViB0cmlhbmdsZSBldGMgZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuLy9zbmlwcGV0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2h1Z2hzay9nbHNsLWhzdjJyZ2IvYmxvYi9tYXN0ZXIvaW5kZXguZ2xzbFxyXG4vLyhub3QgZ29pbmcgdG8gdGhlIGxlbmd0aHMgb2YgZ2xzbGlmeSwganVzdCBjb3B5aW5nIHRoZSBmdW5jdGlvbilcclxuY29uc3QgaHN2MnJnYiA9IGBcclxudmVjMyBoc3YycmdiKHZlYzMgYykge1xyXG4gICAgdmVjNCBLID0gdmVjNCgxLjAsIDIuMCAvIDMuMCwgMS4wIC8gMy4wLCAzLjApO1xyXG4gICAgdmVjMyBwID0gYWJzKGZyYWN0KGMueHh4ICsgSy54eXopICogNi4wIC0gSy53d3cpO1xyXG4gICAgcmV0dXJuIGMueiAqIG1peChLLnh4eCwgY2xhbXAocCAtIEsueHh4LCAwLjAsIDEuMCksIGMueSk7XHJcbn1gO1xyXG5cclxuY29uc3QgVmVydFNoYWRlciA9IGBcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZVdiA9IHV2O1xyXG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4pO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBTVkZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdmVjMyBoc3YgPSB2ZWMzKHNlbGVjdGVkSFNWLngsIHZVdik7XHJcblxyXG4gICAgLy8gZHJhdyBhIGJsYWNrIGNpcmNsZSBhcm91bmQgc2VsZWN0ZWQgU1YuXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIGxlc3MgaG91c2VrZWVwaW5nXHJcbiAgICAvLyBuZWVkIHRvIGtub3cgYXNwZWN0IHJhdGlvIGlmIEkgd2FudCBpdCB0byBiZSBhIHByb3BlciBjaXJjbGUsIHRob3VnaC5cclxuICAgIGZsb2F0IGQgPSBsZW5ndGgoc2VsZWN0ZWRIU1YueXogLSB2VXYpO1xyXG4gICAgaWYgKGQgPCAwLjAxNSAmJiBkID4gMC4wMSkgaHN2LnogPSAwLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKGhzdik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBcclxufVxyXG5gO1xyXG5cclxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNzI0MjE0NC9qYXZhc2NyaXB0LWNvbnZlcnQtaHNiLWhzdi1jb2xvci10by1yZ2ItYWNjdXJhdGVseVxyXG4vL3doeSBub3QgdXNlIFRIUkVFLkNvbG9yIG1ldGhvZHM/XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiBoICBPYmplY3QgPSB7aDp4LCBzOnksIHY6en1cclxuICogT1IgXHJcbiAqIGgsIHMsIHZcclxuKi9cclxuZnVuY3Rpb24gSFNWdG9SR0IoaCwgcywgdikge1xyXG4gICAgdmFyIHIsIGcsIGIsIGksIGYsIHAsIHEsIHQ7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIC8vaGFjayB0byB0YWtlIFRIUkVFLlZlY3RvcjMuLi5cclxuICAgICAgICBpZiAoaC54ICE9PSB1bmRlZmluZWQpIHMgPSBoLnksIHYgPSBoLnosIGggPSBoLng7XHJcbiAgICAgICAgZWxzZSBzID0gaC5zLCB2ID0gaC52LCBoID0gaC5oO1xyXG4gICAgfVxyXG4gICAgaSA9IE1hdGguZmxvb3IoaCAqIDYpO1xyXG4gICAgZiA9IGggKiA2IC0gaTtcclxuICAgIHAgPSB2ICogKDEgLSBzKTtcclxuICAgIHEgPSB2ICogKDEgLSBmICogcyk7XHJcbiAgICB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpO1xyXG4gICAgc3dpdGNoIChpICUgNikge1xyXG4gICAgICAgIGNhc2UgMDogciA9IHYsIGcgPSB0LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxOiByID0gcSwgZyA9IHYsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDI6IHIgPSBwLCBnID0gdiwgYiA9IHQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMzogciA9IHAsIGcgPSBxLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0OiByID0gdCwgZyA9IHAsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDU6IHIgPSB2LCBnID0gcCwgYiA9IHE7IGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByOiByLFxyXG4gICAgICAgIGc6IGcsXHJcbiAgICAgICAgYjogYlxyXG4gICAgfTtcclxufVxyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogciAgT2JqZWN0ID0ge3IsIGcsIGJ9XHJcbiAqIE9SIFxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LCBcclxuICAgICAgICB4OiBoLCB5OiBzLCB6OiB2IC8vc28gdGhhdCB3ZSBjYW4gZG8gVmVjdG9yMy5jb3B5KHRoaXMpXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDb2xvclBpY2tlcigge1xyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lLCAvL211c3QgYmUgYSBUSFJFRS5Db2xvciBmb3Igbm93Li4uIHNob3VsZCByZWZlciB0byBvcmlnaW5hbCBkYXQuZ3VpIHRvIHNlZSB3aGF0IGl0IHRha2VzXHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIIC8gMy5cclxufSA9IHt9KSB7XHJcbiAgICAvLyBtYWtlIHRoZSBtYWluIGdyb3VwIGJlICpkaXJlY3RseSogdGhlIG9uZSByZXR1cm5lZCBieSBjcmVhdGVJbWFnZUJ1dHRvbjtcclxuICAgIC8vIHdlJ2xsIHRha2UgY2FyZSBvZiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIGNoaWxkcmVuIGJhc2VkIG9uIGF0dGFjaGVkLi4uXHJcbiAgICAvLyB3aWxsIHdhbnQgdG8gdGhpbmsgYWJvdXQgbGlzdGVuZXIgZnVuY3Rpb25zIGV0Yy5cclxuICAgIGxldCBmdW5jID0gdG9nZ2xlRGV0YWlsUGFuZWw7XHJcbiAgICBsZXQgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTsgLy9mb3Igbm93LCB0aGlzJ2QgYmV0dGVyIGJlIGEgVEhSRUUuQ29sb3Igb3Igd2UnbGwgZnJlYWsgb3V0LlxyXG4gICAgY29uc3QgYyA9IFJHQnRvSFNWKGNvbG9yKTtcclxuICAgIGNvbnN0IHVuaWZvcm1zID0ge3NlbGVjdGVkSFNWOiB7dmFsdWU6IG5ldyBUSFJFRS5WZWN0b3IzKGMuaCwgYy5zLCBjLnYpfX07XHJcbiAgICBjb25zdCBpbWFnZSA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IGNvbG9yfSk7XHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgY29uc3QgY2hhbmdlQ29sb3JPbkhvdmVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICBsaXN0ZW46IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgLy9UT0RPIG1ha2Ugc3VyZSBjb2xvciBwYXRjaCBvY2N1cGllcyBmdWxsIHdpZHRoLiAgQWRkIHRleHQgbGFiZWwgd2l0aCBoZXggdmFsdWU/XHJcbiAgICBjb25zdCBncm91cCA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgICB0ZXh0Q3JlYXRvciwgZnVuYywgaW1hZ2UsIHByb3BlcnR5TmFtZSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGNoYW5nZUNvbG9yT25Ib3ZlclxyXG4gICAgfSk7XHJcbiAgICBncm91cC5ndWlUeXBlID0gXCJDb2xvclBpY2tlclwiO1xyXG4gICAgXHJcbiAgICB2YXIgcGFuZWw7XHJcblxyXG4gICAgZnVuY3Rpb24gY2hhbmdlRm4oKSB7XHJcbiAgICAgICAgaW1hZ2UuY29sb3Iuc2V0KGNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTsgXHJcbiAgICAgICAgICAgIHBhbmVsLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmIChmYW5jeVBhbmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBTVk1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBTVkZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0U1YgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnkgPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS56ID0gcC5sb2NhbFBvaW50Lnk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS5jb3B5KFJHQnRvSFNWKGNvbG9yKSk7XHJcbiAgICB9XHJcbiAgICBncm91cC5saXN0ZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xPUiA9IDB4MkZBMUQ2O1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0NPTE9SID0gMHg0M2I1ZWE7XHJcbmV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9DT0xPUiA9IDB4MDdBQkY3O1xyXG5leHBvcnQgY29uc3QgRU1JU1NJVkVfQ09MT1IgPSAweDIyMjIyMjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9FTUlTU0lWRV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgT1VUTElORV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQUNLID0gMHgwNjA2MDY7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPTERFUl9CQUNLID0gMHgxMDEwMTA7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQkFDSyA9IDB4MzEzMTMxO1xyXG5leHBvcnQgY29uc3QgSU5BQ1RJVkVfQ09MT1IgPSAweDE2MTgyOTtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfU0xJREVSID0gMHgyZmExZDY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0NIRUNLQk9YID0gMHg4MDY3ODc7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0JVVFRPTiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9URVhUID0gMHgxZWQzNmY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RST1BET1dOID0gMHhmZmYwMDA7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fRkdfQ09MT1IgPSAweDAwMDAwMDtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fQ09MT1IgPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ISUdITElHSFRfQ09MT1IgPSAweGZhMzE3MztcclxuZXhwb3J0IGNvbnN0IFNMSURFUl9CRyA9IDB4NDQ0NDQ0O1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9CRyA9IDB4RjBGMEYwO1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9ISUdITElHSFRfQkcgPSAweEZGRkZGRjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xvcml6ZUdlb21ldHJ5KCBnZW9tZXRyeSwgY29sb3IgKXtcclxuICBjb25zdCBjb2wgPSBuZXcgVEhSRUUuQ29sb3IoY29sb3IpOyBcclxuICBsZXQgYyA9IGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgnY29sb3InKTtcclxuICBsZXQgYTtcclxuICBpZiAoIWMpIHtcclxuICAgIGEgPSBuZXcgRmxvYXQzMkFycmF5KGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheS5sZW5ndGgpLmZpbGwoMC41KTtcclxuICAgIGMgPSBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoJ2NvbG9yJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShhLCAzKSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGEgPSBjLmFycmF5O1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKz0zKSB7XHJcbiAgICBhW2ldID0gY29sLnI7XHJcbiAgICBhW2krMV0gPSBjb2wuZztcclxuICAgIGFbaSsyXSA9IGNvbC5iO1xyXG4gIH1cclxuICBjLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgLy8gZ2VvbWV0cnkuZmFjZXMuZm9yRWFjaCggZnVuY3Rpb24oZmFjZSl7XHJcbiAgLy8gICBmYWNlLmNvbG9yLnNldEhleChjb2xvcik7XHJcbiAgLy8gfSk7XHJcbiAgLy8gZ2VvbWV0cnkuY29sb3JzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgcmV0dXJuIGdlb21ldHJ5O1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwsIHtjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZURyb3Bkb3duKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIG9wdGlvbnMgPSBbXSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBvcGVuOiBmYWxzZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG5cclxuICBjb25zdCBEUk9QRE9XTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0RFUFRIID0gZGVwdGg7XHJcbiAgY29uc3QgRFJPUERPV05fT1BUSU9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU4gKiAxLjI7XHJcbiAgY29uc3QgRFJPUERPV05fTUFSR0lOID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIC0wLjQ7XHJcbiAgY29uc3QgTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJkcm9wZG93blwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgLy9hbGxvdyBmb3IgcHJvZ3JhbW1hdGljIHNldC4gQVBJIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBzdGFibGUuXHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlT2JqZWN0ID0gb2JqZWN0O1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZVByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTtcclxuICBncm91cC51c2VyRGF0YS5zZXRWYWx1ZSA9IHYgPT4ge1xyXG4gICAgaWYgKG9wdGlvbnMuaW5kZXhPZih2KSA9PT0gLTEpIHtcclxuICAgICAgLy9JIGNvdWxkIGNvbnNpZGVyIGFubm90YXRpbmcgR1VJIGl0c2VsZiB3aXRoIGVycm9yIGxhYmVscy4uLlxyXG4gICAgICBjb25zb2xlLndhcm4oYGRhdC5HVUlWUjogVW5rbm93biBvcHRpb24gXCIke3Z9XCIgZm9yIGRyb3Bkb3duIFwiJHtwcm9wZXJ0eU5hbWV9XCIuXFxuVmFsaWQgb3B0aW9uczogWyR7b3B0aW9ucy5qb2luKCcsICcpfV1gKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSB2O1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihvYmplY3RbcHJvcGVydHlOYW1lXSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IG1vZGFsRHJvcGRvd24gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBtb2RhbERyb3Bkb3duLnZpc2libGUgPSBmYWxzZTtcclxuICBtb2RhbERyb3Bkb3duLmhpdHNjYW4gPSBbXTtcclxuICBjb25zdCBsYWJlbEludGVyYWN0aW9ucyA9IFtdO1xyXG4gIGNvbnN0IG9wdGlvbkxhYmVscyA9IFtdO1xyXG5cclxuICAvLyAgZmluZCBhY3R1YWxseSB3aGljaCBsYWJlbCBpcyBzZWxlY3RlZFxyXG4gIGNvbnN0IGluaXRpYWxMYWJlbCA9IGZpbmRMYWJlbEZyb21Qcm9wKCk7XHJcblxyXG5cclxuXHJcbiAgZnVuY3Rpb24gZmluZExhYmVsRnJvbVByb3AoKXtcclxuICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgcmV0dXJuIG9wdGlvbnMuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb3B0aW9uTmFtZSA9PT0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvYmplY3RbcHJvcGVydHlOYW1lXSA9PT0gb3B0aW9uc1sgb3B0aW9uTmFtZSBdO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9wdGlvbiggbGFiZWxUZXh0LCBpc09wdGlvbiApe1xyXG4gICAgLy9UT0RPOiB0cnVuY2F0ZSBsb25nIGxhYmVsVGV4dCwgbWF5YmUgc2hvdyBmdWxsIHZlcnNpb24gd2hlbiBob3ZlcmluZy5cclxuICAgIGNvbnN0IGxhYmVsID0gY3JlYXRlVGV4dExhYmVsKFxyXG4gICAgICB0ZXh0Q3JlYXRvciwgbGFiZWxUZXh0LFxyXG4gICAgICAvL2NoZWNrIHdpZHRoIHZhbHVlLi4uXHJcbiAgICAgIERST1BET1dOX1dJRFRILCBkZXB0aCxcclxuICAgICAgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SLCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IsXHJcbiAgICAgIDAuODY2XHJcbiAgICApO1xyXG4gICAgbGFiZWwuYmFjay5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG5cclxuICAgIGlmIChpc09wdGlvbikgbW9kYWxEcm9wZG93bi5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGVsc2UgZ3JvdXAuaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBjb25zdCBsYWJlbEludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGxhYmVsLmJhY2sgKTtcclxuICAgIGxhYmVsSW50ZXJhY3Rpb24uZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5wdXNoKCBsYWJlbEludGVyYWN0aW9uICk7XHJcbiAgICBvcHRpb25MYWJlbHMucHVzaCggbGFiZWwgKTtcclxuXHJcblxyXG4gICAgaWYoIGlzT3B0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBsYWJlbFRleHQgKTtcclxuXHJcbiAgICAgICAgbGV0IHByb3BlcnR5Q2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIG9uQ2hhbmdlZENCICYmIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgb25DaGFuZ2VkQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCBvbkNob29zZUNCICl7XHJcbiAgICAgICAgICBvbkNob29zZUNCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgaWYoIHN0YXRlLm9wZW4gPT09IGZhbHNlICl7XHJcbiAgICAgICAgICBvcGVuT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbGFiZWwuaXNPcHRpb24gPSBpc09wdGlvbjtcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNvbGxhcHNlT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLmNsZWFyTW9kYWxFZGl0b3IoKTsgLy9zaG91bGQgd2UgY2hlY2sgaWYgaXQgd2Fzbid0IHNldCB0byBzb21ldGhpbmcgZWxzZT8/XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcGVuT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IHRydWU7XHJcbiAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IobW9kYWxEcm9wZG93bik7XHJcbiAgICAvL3JldHVybjtcclxuICAgIC8vbGFiZWwuaXNPcHRpb24gc2VlbXMgbW9zdGx5IHJlZHVuZGFudC5cclxuICAgIC8vbGFiZWxzICYgYmFja3Mgc2hvdWxkIGJlIGFkZGVkIHRvIGEgZ3JvdXAgdG8gYmUgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgXHJcbiAgICAvL21ha2luZyBldmVyeXRoaW5nIHZpc2libGUgLyBpbnZpc2libGUgd2l0aCBvbmUgcHJvcGVydHlcclxuICAgIC8vKG5iLCBldmVuIHRob3VnaCB0aGV5IGFyZSBub3cgaW4gYSBncm91cCB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCB3ZSBzdGlsbCBuZWVkIHRvIHNldCB2aXNpYmxlLi4uXHJcbiAgICAvL3NlZSBjb21tZW50IGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpKVxyXG4gICAgb3B0aW9uTGFiZWxzLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbCApe1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBsYWJlbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBsYWJlbC5iYWNrLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICBiYXNlIG9wdGlvblxyXG4gIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSBjcmVhdGVPcHRpb24oIGluaXRpYWxMYWJlbCB8fCAnICcsIGZhbHNlICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IEdyYXBoaWMuZG93bkFycm93KCk7XHJcbiAgLy8gQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggRFJPUERPV05fV0lEVEggLSAwLjA0LCAwLCBkZXB0aCAqIDEuMDEgKTtcclxuICBzZWxlY3RlZExhYmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBsYWJlbCwgaW5kZXggKXtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnkgPSAtRFJPUERPV05fTUFSR0lOIC0gKGluZGV4JU1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKzEpICogKCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUICk7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi54ICs9IERST1BET1dOX1dJRFRIICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wdGlvblRvTGFiZWwoIG9wdGlvbk5hbWUsIGluZGV4ICl7XHJcbiAgICBjb25zdCBvcHRpb25MYWJlbCA9IGNyZWF0ZU9wdGlvbiggb3B0aW9uTmFtZSwgdHJ1ZSApO1xyXG4gICAgY29uZmlndXJlTGFiZWxQb3NpdGlvbiggb3B0aW9uTGFiZWwsIGluZGV4ICk7XHJcbiAgICByZXR1cm4gb3B0aW9uTGFiZWw7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZExhYmVsLmFkZChtb2RhbERyb3Bkb3duKTtcclxuICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCguLi5vcHRpb25zLm1hcChvcHRpb25Ub0xhYmVsKSk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCggLi4uT2JqZWN0LmtleXMob3B0aW9ucykubWFwKCBvcHRpb25Ub0xhYmVsICkgKTtcclxuICB9XHJcblxyXG5cclxuICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfRFJPUERPV04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuXHJcbiAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBEUk9QRE9XTl9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBEUk9QRE9XTl9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSwgRFJPUERPV05fREVQVEgsIHRydWUgKTtcclxuICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGNvbnRyb2xsZXJJRCwgc2VsZWN0ZWRMYWJlbCwgYm9yZGVyQm94ICk7XHJcblxyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggaW50ZXJhY3Rpb24sIGluZGV4ICl7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uTGFiZWxzWyBpbmRleCBdO1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7IC8vYXMgb2YgdGhpcyB3cml0aW5nLCB0aGlzIGlzIGJlbGlldmVkIHRvIGJlIHJlbGlhYmxlLCBidXQgYmV3YXJlIGRyYWdvbnMsIGZ1dHVyZSByZWFkZXIuXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEudGlwT2JqKSB7XHJcbiAgICAgIC8vIGlmIChsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKSB7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coZ3JvdXAudXNlckRhdGEudGlwKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBzZXRWaXNpYmlsaXR5KHBhbmVsLCBncm91cC51c2VyRGF0YS50aXBPYmosIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYoIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkgfHwgc3RhdGUub3BlbiApe1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG4gIGxldCBvbkNob29zZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLm9uQ2hvb3NlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNob29zZUNCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggZmluZExhYmVsRnJvbVByb3AoKSApO1xyXG4gICAgfVxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsSW50ZXJhY3Rpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgIGNvbnN0IG9iaiA9IGdyb3VwO1xyXG4gICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgLy9uYiwgb2JqLnNwYWNpbmcgbWF5IGJlIHVuZGVmaW5lZCwgYnV0IHNob3VsZCBub3cgaGF2ZSBzZW5zaWJsZSBkZWZhdWx0LlxyXG4gICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgLy8vLy0tLSBzZWUgbGFiZWxJbnRlcmFjdGlvbnNbMF0gYWJvdmUgZm9yIGhhbmRsaW5nIHVwZGF0ZS4uLlxyXG4gIH1cclxuICBncm91cC5nZXRUb29sVGlwID0gKCkgPT4gZ3JvdXAudXNlckRhdGEudGlwO1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgeyBjcmVhdGVUb29sVGlwIH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyLCBzZXRCb3hGcm9tT2JqZWN0LCBzZXRWaXNpYmlsaXR5IH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IEZPTERFUl9XSURUSCB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbi8vSWYgeW91J3JlIGxvb2tpbmcgZm9yIG1haW4gY3JlYXRlRm9sZGVyIGZ1bmN0aW9uLCBpdCdzIGZ1cnRoZXIgYmVsb3cuLi5cclxuXHJcbi8qKlxyXG4gKiBOb3QgZW50aXJlbHkgc3VyZSBhYm91dCBzdGFydGluZyB0byBhZGQgdGhpcyBraW5kIG9mIGdsb2JhbCBzdGF0ZSBtYW5hYWdlbWVudCBoZXJlLi4uXHJcbiAqIFRoaXMgaXMgZm9yIHotb3JkZXIgaW4gMmQgb3J0aG9ncmFwaGljIG1vZGUsIGFuZCBtYXliZSBzb21lIG90aGVyIHRoaW5ncyBvbmUgZGF5LlxyXG4gKi9cclxuY29uc3QgdG9wRm9sZGVyU3RhY2sgPSBbXTtcclxuXHJcbmNvbnN0IHNjcmF0Y2hGb2xkZXJCb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoQ2FtQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaFNpemUgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCkge1xyXG4gIGNvbnN0IGNhbSA9IHRvcEZvbGRlclN0YWNrWzBdLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gIGlmICghY2FtIHx8IHRvcEZvbGRlclN0YWNrLmxlbmd0aCA8PSAxKSByZXR1cm47XHJcbiAgLy9jYW1Cb3hTZXR1cChjYW0pO1xyXG4gIGNvbnN0IHRmcyA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcih4ID0+IHgudmlzaWJsZSk7XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdGZzLmxlbmd0aDtcclxuICBjb25zdCB6cyA9IHRmcy5tYXAoZiA9PiBmLnBvc2l0aW9uLnopLnNvcnQoKGEsYik9PmEtYik7XHJcbiAgenNbLTFdID0gLTk5OTk7IC8vIEkgc3VwcG9zZSB0aGlzIGlzIHRvIGRlYWwgd2l0aCBhY2Nlc3NpbmcgenNbaS0xXSBiZWxvdyDCr1xcXyjjg4QpXy/Cr1xyXG4gIHpzLmZvckVhY2goICh6LGkpID0+IHpzW2ldID0gTWF0aC5tYXgoenNbaV0sIHpzW2ktMV0gKyAxMCpMYXlvdXQuUEFORUxfREVQVEgpKTsgLy8gaW4gY2FzZSBvZiBlcXVhbHNcclxuICBcclxuICB0ZnMuZm9yRWFjaCgoZiwgaSkgPT4ge1xyXG4gICAgLy9sZXQgeiA9IC0wLjkqZmFyICsgaSoxMCpMYXlvdXQuUEFORUxfREVQVEg7XHJcbiAgICBjb25zdCB6ID0genNbaV07XHJcbiAgICBpZiAoeiAhPT0gZi5wb3NpdGlvbi56KSB7XHJcbiAgICAgIGYucG9zaXRpb24ueiA9IHo7XHJcbiAgICAgIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIGYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9KTtcclxuICBpZiAodGZzW24tMV0ucG9zaXRpb24ueiA+PSBuZWFyIC0gTGF5b3V0LlBBTkVMX0RFUFRIKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkdVSVZSIFdhcm5pbmc6IGxpa2VseSBwcm9ibGVtIHdpdGggei1vcmRlciBpbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXRcIik7XHJcbiAgfVxyXG4gIC8vY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUgKyAnXFx0OiAnICsgZi5wb3NpdGlvbi56KS5qb2luKCdcXG4nKX1dYCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbUJveFNldHVwKGNhbSkge1xyXG4gIGlmICghY2FtLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSByZXR1cm47XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdG9wRm9sZGVyU3RhY2subGVuZ3RoO1xyXG4gIGNvbnN0IGwgPSBjYW0ubGVmdCwgciA9IGNhbS5yaWdodCwgdCA9IGNhbS50b3AsIGIgPSBjYW0uYm90dG9tO1xyXG4gIGNvbnN0IHogPSBjYW0ucG9zaXRpb24uejsgLy9ub3Qgc3RyaWN0bHkgcmlnaHQuLi5cclxuICBzY3JhdGNoQ2FtQm94Lm1pbi5zZXQobCwgYiwgLWZhciArIHopO1xyXG4gIHNjcmF0Y2hDYW1Cb3gubWF4LnNldChyLCB0LCAtbmVhciArIHopO1xyXG4gIHJldHVybiBzY3JhdGNoQ2FtQm94O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVGb2xkZXIoe1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG5hbWUsXHJcbiAgZ3VpQWRkLFxyXG4gIGd1aVJlbW92ZSxcclxuICBhZGRDb250cm9sbGVyRnVuY3MsXHJcbiAgZ2xvYmFsQ29udHJvbGxlcnNcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IHdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICBjb25zdCBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSDtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBjb2xsYXBzZWQ6IGZhbHNlLFxyXG4gICAgcHJldmlvdXNQYXJlbnQ6IHVuZGVmaW5lZFxyXG4gIH07XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZm9sZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7bmFtZX1dYDtcclxuXHJcbiAgY29uc3QgY29sbGFwc2VHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmFkZCggY29sbGFwc2VHcm91cCApO1xyXG5cclxuICB2YXIgaXNBY2NvcmRpb24gPSBmYWxzZTtcclxuICAvKiogV2hlbiB0cnVlLCB3aWxsIGtlZXAgb25seSBvbmUgY2hpbGQgZm9sZGVyIG9mIHRoaXMgZm9sZGVyIG9wZW4gYXQgYSB0aW1lLlxyXG4gICAqIFNpYmxpbmdzIGF1dG9tYXRpY2FsbHkgY2xvc2UuXHJcbiAgICovXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2FjY29yZGlvbicsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNBY2NvcmRpb247XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAoIG5ld1ZhbHVlICYmICFpc0FjY29yZGlvbiApIGdyb3VwLmd1aUNoaWxkcmVuLmZpbHRlciggYz0+Yy5pc0ZvbGRlciApLm1hcCggYz0+Yy5jbG9zZSgpICk7XHJcbiAgICAgIGlzQWNjb3JkaW9uID0gbmV3VmFsdWU7XHJcbiAgICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy9mbGFnIHRoZSBuZWVkIGZvciBwZXJmb3JtaW5nIGxheW91dCBvZiB0aGUgZm9sZGVyIGhpZXJhcmNoeSBpbiB3aGljaCB0aGlzIGlzIGNvbnRhaW5lZC5cclxuICBncm91cC5yZXF1ZXN0TGF5b3V0ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGByZXF1ZXN0ZWQgbGF5b3V0IG9mIGZvbGRlciAke2dyb3VwLmZvbGRlck5hbWV9IHdoaWxlIGxheW91dCBhbHJlYWR5IGluIHByb2dyZXNzLi4uYCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90b3BGb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20gaW5kZXguanMgdXBkYXRlKD8pIGZvciBlYWNoIHRvcEZvbGRlciwgdGhlbiBmcm9tIHdpdGhpbiBwZXJmb3JtTGF5b3V0KCkgZm9yIGVhY2ggY2hpbGQgZm9sZGVyXHJcbiAgZ3JvdXAucGVyZm9ybUxheW91dCA9IHBlcmZvcm1MYXlvdXQ7XHJcblxyXG4gIGNvbnN0IHN0cmFpZ2h0Um90YXRpb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xyXG4gIC8vcHJvdmlkZSBhcmd1bWVudHMgZm9yIGhvdyBjb25zdHJhaW5lZCB0byBiZSwgYW5kIHJlLXVzZSBzYW1lIGZ1bmN0aW9uIGJvdGggb24gZGV0YWNoIGFuZCBlbHNld2hlcmU/XHJcbiAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24gPSBmdW5jdGlvbih0aHJlc2g9MC4wMSkge1xyXG4gICAgY29uc3QgZiA9IHRoaXM7XHJcbiAgICBpZiAoIWYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIHJldHVybjtcclxuICAgIC8vYWx3YXlzIGZvcmNlIHJvdGF0aW9uIHN0cmFpZ2h0IGZvcndhcmQuLi5cclxuICAgIGYuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbihzdHJhaWdodFJvdGF0aW9uKTtcclxuXHJcbiAgICAvL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuICAgIC8vbWF5YmUgSSBjb3VsZCB1c2UgYSBCb3gyIGFueXdheSBzaW5jZSAzZCBtaWdodCBqdXN0IGNvbmZ1c2UgdGhpbmdzLlxyXG4gICAgY29uc3QgYm94ID0gc2V0Qm94RnJvbU9iamVjdChzY3JhdGNoRm9sZGVyQm94LCBmKTtcclxuICAgIGNvbnN0IGJveFcgPSBib3gubWF4LnggLSBib3gubWluLngsIGJveEggPSBib3gubWF4LnktYm94Lm1heC55O1xyXG4gICAgXHJcbiAgICBjb25zdCBjYW0gPSBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gICAgY29uc3QgY2FtQm94ID0gY2FtQm94U2V0dXAoY2FtKTsgLy9iaXQgd2FzdGVmdWwgdG8gY2FsbCB0aGlzIGhlcmUsIGJ1dCBpbnNpZ25pZmljYW50LlxyXG4gICAgLy9yZWFsbHksIEkgd2FudCB0byBrbm93IGlmIGl0J3MgJ21vc3RseScgaW52aXNpYmxlLlxyXG4gICAgLy9Vc2luZyB0d28gYm94ZXMsIHJhdGhlciB0aGFuIGZydXN0dW0uc2V0RnJvbU1hdHJpeCggbWF0Lm11bHRpcGx5TWF0cmljZXMoIGNhbS5wcm9qZWN0aW9uTWF0cml4LCBjYW0ubWF0cml4V29ybGRJbnZlcnNlICkgKTtcclxuICAgIC8vKGZydXN0dW0gaXMgdW5uZWNlc3NhcnkgKmNvdWdoKmlmIHdlIGFzc3VtZSBvcnRob2dyYXBoaWMgcGVyc3BlY3RpdmUsIG5vIGNhbWVyYSB0cmFuc2Zvcm0gJiBhcmUgZ2VuZXJhbGx5IGxheCBhYm91dCB6KilcclxuICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IGJveC5pbnRlcnNlY3QoY2FtQm94KTsgLy9jYXJlZnVsIG9mIG9yZGVyOyBpbnRlcnNlY3QoKSBtdXRhdGVzXHJcbiAgICAvLyhYWFg6IHN0cmljdGx5IHNwZWFraW5nLCBpZGVhbGx5IEkgd291bGQgdGFrZSBjYW1lcmEgbWF0cml4V29ybGQgaW50byBhY2NvdW50IGlmIEkgd2FudCB0byBiZSBwcm9wZXIpXHJcbiAgICAvLyhtaWdodCBqdXN0IG1ha2UgbG9nIGEgd2FybmluZyBpZiBpdCdzIHNldCBob3cgSSBkb24ndCBleHBlY3QgaXQsIGJ1dCBwcmVmZXIgbm90IHRvIGxlYXZlIHRyYXBzLilcclxuICAgIFxyXG4gICAgLy9sb29rIGF0IGRpbWVuc2lvbnMgb2YgaW50ZXJzZWN0aW9uIGFuZCBmb3JjZSBpbndhcmRzIGlmIG5lY2Vzc2FyeS4uLlxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uU2l6ZSA9IGludGVyc2VjdGlvbi5nZXRTaXplKHNjcmF0Y2hTaXplKTtcclxuICAgIGNvbnN0IHNjcmVlblcgPSBjYW0ucmlnaHQgLSBjYW0ubGVmdCwgc2NyZWVuSCA9IGNhbS50b3AgLSBjYW0uYm90dG9tO1xyXG4gICAgLy93b3JrIGluIHVuaXRzIGFzIGZyYWN0aW9uIG9mIGJveCB3aWR0aCAoYWx0aG91Z2ggdGhhdCdzIG5vdCBhIGdyZWF0IGlkZWEgd2l0aCBtdWx0aS1jb2x1bW4gZm9sZGVycylcclxuICAgIGludGVyc2VjdGlvblNpemUueCAvPSBib3hXOyBpbnRlcnNlY3Rpb25TaXplLnkgLz0gYm94VztcclxuICAgIGxldCBuZWVkc1VwZGF0ZSA9IGZhbHNlO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgJHtmLmZvbGRlck5hbWV9OiAke0pTT04uc3RyaW5naWZ5KGludGVyc2VjdGlvblNpemUpfSwgdGhyZXNoOiAke3RocmVzaH1gKTtcclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnggPCB0aHJlc2gpIHsgLy9UT0RPOiBwYXJhbWF0ZXJpc2UgLyBub24tbWFnaWMtbnVtYmVyXHJcbiAgICAgIC8vVE9ETyB3b3JrIG91dCB3aGljaCBzaWRlIHdlJ3JlIG9uLCBtb3ZlIGJ5IG9iamVjdCB3aWR0aC4uLlxyXG4gICAgICBmLnBvc2l0aW9uLnggPSBjYW0ubGVmdCArIHNjcmVlblcvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueSA8IHRocmVzaCkge1xyXG4gICAgICBmLnBvc2l0aW9uLnkgPSBjYW0uYm90dG9tICsgc2NyZWVuSC8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmVlZHNVcGRhdGUpIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5pc0NvbGxhcHNlZCA9ICgpID0+IHsgcmV0dXJuIHN0YXRlLmNvbGxhcHNlZCB9XHJcbiAgXHJcbiAgLy91c2VmdWwgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhpcyBhcyB3ZWxsLiBVc2luZyBpbiByZW1vdmUgaW1wbGVtZW50YXRpb25cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdndWlDaGlsZHJlbicsIHtcclxuICAgIC8vcGVyaGFwcyBtb2RhbEVkaXRvciBzaG91bGQgYWxzbyBjb3VudCBhcyBhIG1lbWJlciBvZiB0aGlzLi4uXHJcbiAgICAvL2N1cnJlbnRseSBjYW4ndCBzZWUgYW55dGhpbmcgaW4gaW1wbGVtZW50YXRpb24gdGhhdCB3b3VsZCByZXF1aXJlIHRoYXRcclxuICAgIC8vLS0gYWRkaW5nIGhlYWRlckl0ZW1zIHRob3VnaCwgc28gdGhleSdsbCBnZXQgcGlja2VkIHVwIGJ5IHJlbW92ZSgpXHJcbiAgICAvLyAtIG1heWJlIHNhbWUgc2hvdWxkIGFwcGx5IHRvIG1vZGFsRWRpdG9yXHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIFsgLi4uY29sbGFwc2VHcm91cC5jaGlsZHJlbiwgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gXSB9XHJcbiAgfSk7XHJcbiAgLy8gcmV0dXJucyB0cnVlIGlmIGFsbCBvZiB0aGUgc3VwcGxpZWQgYXJncyBhcmUgbWVtYmVycyBvZiB0aGlzIGZvbGRlclxyXG4gIGdyb3VwLmhhc0NoaWxkID0gZnVuY3Rpb24gKCAuLi5hcmdzICl7XHJcbiAgICByZXR1cm4gIWFyZ3MuaW5jbHVkZXMoKG9iaikgPT4geyByZXR1cm4gZ3JvdXAuZ3VpQ2hpbGRyZW4uaW5kZXhPZihvYmopID09PSAtMX0pO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZm9sZGVyTmFtZSA9IG5hbWU7IC8vZm9yIGRlYnVnZ2luZ1xyXG4gIFxyXG4gIC8vICBZZWFoLiBHcm9zcy5cclxuICBjb25zdCBhZGRPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQ7XHJcbiAgLy9hcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIHRoaXMgdG8gYmVoYXZlIGxpa2UgYSByZWd1bGFyIFRIUkVFLkdyb3VwLCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIG9mIHJlbW92ZSBzaG91bGRuJ3QgaHVydFxyXG4gIGNvbnN0IHJlbW92ZU9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZTsgXHJcblxyXG4gIGZ1bmN0aW9uIGFkZEltcGwoIG8gKXtcclxuICAgIC8vIEkgY291bGQgY2hhbmdlIHRoaXMgZnVuY3Rpb24gYXMgcGFydCBvZiBhIHJlZmFjdG9yIHRvIHBsYWNlIGV2ZXJ5dGhpbmcgYXQgdG9wRm9sZGVyIGxldmVsLi4uXHJcbiAgICAvLyBpcyB0aGF0IGEgZ29vZCBpZGVhLCBvciBhIGJhZCBpZGVhP1xyXG4gICAgYWRkT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gcmVtb3ZlSW1wbCggbyApe1xyXG4gICAgcmVtb3ZlT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcblxyXG4gIC8vYWRkSW1wbCggY29sbGFwc2VHcm91cCApOyAvL3JlZHVuZGFudC5cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBhZGRJbXBsKCBwYW5lbCApO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDEuNTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuXHJcbiAgY29uc3QgZG93bkFycm93ID0gTGF5b3V0LmNyZWF0ZURvd25BcnJvdygpO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIDB4ZmZmZmZmICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggMC4wNSwgMCwgZGVwdGggICogMS4wMSApO1xyXG4gIHBhbmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG4gIGNvbnN0IGdyYWJiZXIgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0dSQUJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGdyYWJiZXIucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44NjsgLy9YWFg6IG1hZ2ljIG51bWJlclxyXG4gIGdyYWJiZXIubmFtZSA9ICdncmFiYmVyJztcclxuICBhZGRJbXBsKCBncmFiYmVyICk7XHJcblxyXG4gIGNvbnN0IGdyYWJCYXIgPSBHcmFwaGljLmdyYWJCYXIoKTtcclxuICBncmFiQmFyLnBvc2l0aW9uLnNldCggd2lkdGggKiAwLjUsIDAsIGRlcHRoICogMS4wMDEgKTtcclxuICBncmFiYmVyLmFkZCggZ3JhYkJhciApO1xyXG4gIGdyb3VwLmlzRm9sZGVyID0gdHJ1ZTtcclxuICBncm91cC5oaWRlR3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSBmYWxzZSB9O1xyXG4gIGdyb3VwLnNob3dHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IHRydWUgfTtcclxuICBncm91cC5oaWRlSGVhZGVyID0gZnVuY3Rpb24oKSB7IFxyXG4gICAgZ3JvdXAuaGlkZUdyYWJiZXIoKTtcclxuICAgIC8vZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICB9O1xyXG4gIGdyb3VwLnNob3dIZWFkZXIgPSAoKSA9PiB7XHJcbiAgICAvL2dyYWJiZXIudmlzaWJsZSA9IGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vVE9ETzogaW50ZXJmYWNlIGZvciBhZGRpbmcgdGhpbmdzIHRvIHRoaXMuLi4gTk9UICdzaG93SW5Gb2xkZXJIZWFkZXInIG1ldGhvZCAvIHByb3BlcnR5IG9uIGxpbmVhciBpdGVtcy4uLlxyXG4gIGNvbnN0IGhlYWRlckl0ZW1zID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcGFuZWwuYWRkKGhlYWRlckl0ZW1zKTtcclxuICAvL3RoaXMgZnVuY3Rpb24gd2lsbCBhdHRlbXB0IHRvIG1ha2Ugb2JqIGJlaGF2ZSBhcyBjb250cm9sbGVyIGxheWVkIG91dCBpbiBoZWFkZXJJdGVtcyxcclxuICAvL2Jhc2VkIG9uIHNvbWUgYXNzdW1wdGlvbnMgYWJvdXQgb2JqIHRoYXQgbWF5IGJlIHRydWUgYXQgdGltZSBvZiB3cml0aW5nLi4uXHJcbiAgLy9idXQgYXJlIHBlbmRpbmcgbW9yZSByaWdvcm91cyBzcGVjaWZpY2F0aW9uIC8gcmVmYWN0b3JpbmcgZXRjLlxyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0gPSBmdW5jdGlvbihvYmope1xyXG4gICAgaGVhZGVySXRlbXMuYWRkKG9iaik7XHJcbiAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBvYmouaXNIZWFkZXJPYmplY3QgPSB0cnVlO1xyXG5cclxuICAgIC8vYWxzbyBuZWVkIHRvIGFkZCB0byBnbG9iYWwgY29udHJvbGxlcnMgbGlzdCBldGMuIE5COjogbWFrZSBzdXJlIHRoYXQgdGhleSB3aWxsIGdldCByZW1vdmVkIGFzIHdlbGxcclxuICAgIC8vLS0tIHRoaXMgZ2VuZXJpYyBpbnRlcmFjdGlvbi51cGRhdGUgZG9lc24ndCBtYWtlIGxpc3RlbigpIHdvcmsgcHJvcGVybHkuXHJcbiAgICBpZiAoIW9iai51cGRhdGVDb250cm9sKSBvYmoudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiBvYmouaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICBvYmouaGl0c2NhbiA9IFsgb2JqIF07IC8vaGFja3kgaGFja3lcclxuICAgIGdsb2JhbENvbnRyb2xsZXJzLnB1c2gob2JqKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiAweDg4ODg4OCwgdHJhbnNwYXJlbnQ6IHRydWV9KTtcclxuICBjb25zdCBoID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uUmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggaCwgaCwgTGF5b3V0LkJVVFRPTl9ERVBUSCoyICk7XHJcbiAgLy9zb21ld2hhdCBiYWNrd2FyZHMgd2F5IG9mIGdldHRpbmcgdGV4dHVyZXMuLi4gVE9ETyBtYXliZSBjaGFuZ2UgKGFsb25nIHdpdGggb3RoZXIgc3R5bGUgY29uc2lzdGVuY3kgdHlwZSBzdHVmZilcclxuICBjb25zdCBkb2NrVGV4dHVyZSA9IEdyYXBoaWMuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBjb25zdCB1bmRvY2tUZXh0dXJlID0gR3JhcGhpYy51bmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICBjb25zdCBkZXRhY2hCdXR0b24gPSBuZXcgVEhSRUUuTWVzaCggIGRldGFjaEJ1dHRvblJlY3QsIGRldGFjaEJ1dHRvbk1hdGVyaWFsICk7XHJcbiAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBmYWxzZTtcclxuICBkZXRhY2hCdXR0b24ucG9zaXRpb24ueCA9IExheW91dC5GT0xERVJfV0lEVEggLSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICBjb25zdCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGRldGFjaEJ1dHRvbik7XHJcbiAgZGV0YWNoQnV0dG9uLmludGVyYWN0aW9uID0gZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb247XHJcbiAgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChncm91cC5kZXRhY2hlZFBhcmVudCkge1xyXG4gICAgICBncm91cC5yZWF0dGFjaCgpO1xyXG4gICAgfSBlbHNlIGdyb3VwLmRldGFjaCgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG4gIC8vaGVhZGVySXRlbXMuYWRkKGRldGFjaEJ1dHRvbik7XHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbShkZXRhY2hCdXR0b24pO1xyXG5cclxuICBsZXQgaXNEZXRhY2hhYmxlID0gZmFsc2U7XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2RldGFjaGFibGUnLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzRGV0YWNoYWJsZTtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gaXNEZXRhY2hhYmxlKSByZXR1cm47XHJcbiAgICAgIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gbmV3VmFsdWU7XHJcbiAgICAgIGlzRGV0YWNoYWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZ3JvdXAuYWRkID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGNvbnN0IG5ld0NvbnRyb2xsZXIgPSBndWlBZGQoIC4uLmFyZ3MgKTtcclxuXHJcbiAgICBpZiggbmV3Q29udHJvbGxlciApe1xyXG4gICAgICBncm91cC5hZGRDb250cm9sbGVyKCBuZXdDb250cm9sbGVyICk7XHJcbiAgICAgIHJldHVybiBuZXdDb250cm9sbGVyO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBTb21lIGNvbnRyb2xsZXJzIG1heSBicmluZyB1cCBzdWItR1VJcyB3aGljaCBoYXZlIHRoZSBwb3RlbnRpYWxcclxuICAgIHRvIG92ZXJsYXAgLyBjbGFzaC4gIFRoaXMgZW5zdXJlcyBvbmx5IG9uZSBpcyBwcmVzZW50IGF0IGEgdGltZS5cclxuICAqL1xyXG4gIGdyb3VwLnNldE1vZGFsRWRpdG9yID0gZnVuY3Rpb24oZSl7XHJcbiAgICAvL1RoaXMgY291bGQgZ28gd3JvbmcgaWYgZm9sZGVyIGhpZXJhcmNoeSBjaGFuZ2VzIHNpZ25pZmljYW50bHkuXHJcbiAgICAvL1Nob3VsZCBiZSBnb29kIGVub3VnaCBmb3Igcm9jayduJ3JvbGwgKGZhbW91cyBsYXN0IHdvcmRzKS5cclxuICAgIC8vSSBjb3VsZCBtYWtlIGl0IHNvIHRoYXQgb25seSBvbmUgb2YgdGhlc2UgdGhpbmdzIHdhcyBldmVyIHZpc2libGVcclxuICAgIC8vYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtLiAgVGhhdCBzaG91bGQgYmUgZWFzaWVyIHRvIG1ha2Ugcm9idXN0LCBhbnl3YXkuLi5cclxuICAgIC8vYW5kIHNhdmVzIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLlxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IGU7XHJcbiAgICBpZiAoIWUpIHJldHVybjtcclxuICAgIGUudmlzaWJsZSA9IHRydWU7XHJcbiAgICBpZiAoZS5wZXJmb3JtTGF5b3V0KSBlLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIGZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gdHJ1ZTtcclxuICAgIC8vYWRkIGEgZmxhZyB0byBhbGwgY2hpbGRyZW4gcmVjdXJzaXZlbHkgc28gdGhhdCBpbnRlcmFjdGlvbiBzeXN0ZW0gY2FuIGlkZW50aWZ5IHRoZW0gYXMgYmVsb25naW5nIHRvIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAvL1RPRE86IHNraXAgaWYgYWxyZWFkeSBkb25lLi4uXHJcbiAgICBmdW5jdGlvbiBkZWNvcmF0ZUNoaWxkcmVuKHBhcmVudCkge1xyXG4gICAgICBwYXJlbnQuY2hpbGRyZW4uZm9yRWFjaChjID0+IHtcclxuICAgICAgICBjLnVzZXJEYXRhLnBhcnRPZk1vZGFsID0gZTtcclxuICAgICAgICBkZWNvcmF0ZUNoaWxkcmVuKGMpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGRlY29yYXRlQ2hpbGRyZW4oZSk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgY3VycmVudCBtb2RhbCBlZGl0b3IgZnJvbSB0aGlzIGZvbGRlclxyXG4gICAqICoqYnV0IG5vdCBpZiBpdCB3YXMgYWRkZWQgZHVyaW5nIHRoZSBjdXJyZW50IGNvbnRyb2xsZXIgdXBkYXRlLFxyXG4gICAqIGFzIGluZGljYXRlZCBieSBhIGZsYWcgc2V0IGluIHNldE1vZGFsQ29udHJvbGxlciBhbmQgcmVzZXQgaW4gaW5kZXguanMgdXBkYXRlKipcclxuICAgKi9cclxuICBncm91cC5jbGVhck1vZGFsRWRpdG9yID0gZnVuY3Rpb24oKSB7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoIWZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgIC8vZm9sZGVyLnNldE1vZGFsRWRpdG9yKG51bGwpO1xyXG4gICAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSB7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qIFxyXG4gIFJlbW92ZXMgdGhlIGdpdmVuIGNvbnRyb2xsZXJzIGZyb20gdGhlIEdVSS4gID4+Pk9uY2UgcmVtb3ZlZCwgdGhlIGNvbnRyb2xsZXJzIHdpbGwgZWZmZWN0aXZlbHkgYmUgaW52YWxpZCBmb3IgdXNlPDw8XHJcbiAgPj4+IHNvIGRpc3Bvc2Ugb2YgdGhlbSBhcyB3ZWxsPyBOZWVkIHRvIGJlIGNhcmVmdWwgYWJvdXQgdGV4dHVyZXMgLyBhbnl0aGluZyBzaGFyZWQuLi4gPDw8XHJcbiAgYXMgdGhleSB3aWxsIGFsc28gYmUgcmVtb3ZlZCBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzLiAgVXNlICdkZXRhY2gnIGluc3RlYWQgaWYgaXQgaXNcclxuICBkZXNpcmVkIHRvIHJldXNlIEdVSSBlbGVtZW50cyBlbHNld2hlcmUuXHJcblxyXG4gIElmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQsIGl0IHdpbGwgYXR0ZW1wdCB0byBkZXRlY3QgdGhpcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLCBcclxuICBhYm9ydGluZyB0aGUgcHJvY2VzcyBhbmQgcmV0dXJuaW5nIGZhbHNlIGZyb20gdGhpcyBtZXRob2QuXHJcblxyXG4gIE5vdGU6IGFzIHdpdGggYWRkLCB0aGlzIG92ZXJ3cml0ZXMgYW4gZXhpc3RpbmcgcHJvcGVydHkgb2YgVEhSRUUuR3JvdXAuXHJcbiAgQXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyBmb2xkZXJzIHRvIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgVEhSRUUuR3JvdXBzLCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIuXHJcbiAgKi9cclxuICBncm91cC5yZW1vdmUgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgLy9ndWlSZW1vdmUgaXMgcGFzc2VkIGluIGZyb20gaW5kZXguanMgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBzYW5pdHkgY2hlY2tpbmcgJiByZW1vdmluZyBmcm9tIGdsb2JhbCBjb250cm9sbGVycyBsaXN0XHJcbiAgICBjb25zdCBvayA9IGd1aVJlbW92ZSggLi4uYXJncyApOyAvLyBhbnkgaW52YWxpZCBhcmd1bWVudHMgc2hvdWxkIGNhdXNlIHRoaXMgdG8gcmV0dXJuIGZhbHNlIHdpdGggbm8gc2lkZS1lZmZlY3RzXHJcbiAgICBpZiAoIW9rKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgY29uc29sZS5hc3NlcnQoZ3JvdXAuaGFzQ2hpbGQob2JqKSwgXCJpbnRlcm5hbCBwcm9ibGVtIHdpdGggaG91c2VrZWVwaW5nIGxvZ2ljIG9mIGRhdC5HVUlWUiBmb2xkZXIgbm90IGNhdWdodCBieSBzYW5pdHkgY2hlY2tcIik7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBvYmoucmVtb3ZlKCAuLi5vYmouZ3VpQ2hpbGRyZW4gKTtcclxuICAgICAgfVxyXG4gICAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShvYmopO1xyXG4gICAgfSk7XHJcbiAgICAvL1RPRE86IGRlZmVyIGFjdHVhbCBsYXlvdXQgcGVyZm9ybWFuY2U7IHNldCBhIGZsYWcgYW5kIG1ha2Ugc3VyZSBpdCBnZXRzIGRvbmUgYmVmb3JlIGFueSByZW5kZXJpbmcgb3IgaGl0LXRlc3RpbmcgaGFwcGVucy5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vcmF0aGVyIHRoYW4gbWV0aG9kLCBkZXRhY2hlZFBhcmVudCBiZSBhIHByb3BlcnR5IHRoYXQgZG9lcyB0aGlzIHN0dWZmIGluIHNldHRlci4uLlxyXG4gIC8vYW55d2F5LCBib3RoIGFyZSByZWFsbHkgbWVhbnQgZm9yIGludGVybmFsIHVzZSwgYXMgaGludGVkIGJ5IF8gaW4gbmFtZS5cclxuICBncm91cC5fc2V0RGV0YWNoZWRGcm9tID0gKHBhcmVudCkgPT4ge1xyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICBpZiAocGFyZW50ID09PSBudWxsKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbi5tYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gZG9ja1RleHR1cmU7XHJcbiAgICAgIGdyb3VwLnNob3dIZWFkZXIoKTtcclxuICAgICAgZ3JvdXAuc2hvd0dyYWJiZXIoKTtcclxuICAgICAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIERldGFjaCBhIGNoaWxkIGZvbGRlciBmcm9tIHRoaXMgZm9sZGVyIGhpZXJhcmNoeSwgc3VjaCB0aGF0IGl0IGNhbiBiZSB1c2VkIGVsc2V3aGVyZSBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICogXHJcbiAgICogKHdpbGwgbm90IGJlIHZpc2libGUgdW50aWwgZXhwbGljaXRseSBhZGRlZCBlbHNld2hlcmU7IFxyXG4gICAqIGNhbGxpbmcgZGV0YWNoKCkgaW5zdGVhZCB3aWxsIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYW5kIGlzIG1vcmUgaW50ZW5kZWQgZm9yIHVzZSBpbiBhcHBsaWNhdGlvbiBjb2RlXHJcbiAgICogd2hpbGUgdGhpcyBtZXRob2QgaXMgbW9yZSBvZiBhbiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuKVxyXG4gICAqL1xyXG4gIGdyb3VwLmRldGFjaENoaWxkID0gKGNoaWxkKSA9PiB7XHJcbiAgICBpZiAoIWNoaWxkLmlzRm9sZGVyIHx8IGNoaWxkLmZvbGRlciAhPT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIGNoaWxkLl9zZXREZXRhY2hlZEZyb20oZ3JvdXApO1xyXG4gICAgY29sbGFwc2VHcm91cC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgLy9USFJFRS5PYmplY3QzRC5wcm90b3R5cGUucmVtb3ZlLmNhbGwoZ3JvdXAsIGNoaWxkKTtcclxuICAgIHJlbW92ZUltcGwoY2hpbGQpO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwOyAvL29yIGNoaWxkP1xyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBEZXRhY2ggdGhpcyBvYmplY3QgZnJvbSBpdHMgcGFyZW50LCBhbmQgcmVhdHRhY2ggdG8gc2NlbmVncmFwaCBhcyBhIHNpYmxpbmcgb2YgdGhlICd0b3AgbGV2ZWwnIGZvbGRlciBpblxyXG4gICAgdGhlIGhpZXJhcmNoeSB0aGlzIHByZXZpb3VzbHkgd2FzIGEgbWVtYmVyIG9mLlxyXG4gICovXHJcbiAgZ3JvdXAuZGV0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciA9PT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIC8vYXV0b21hdGljYWxseSBhZGQgdG8gVEhSRUUgcGFyZW50IG9mIHRvcCBsZXZlbCBmb2xkZXIgYW5kIHRyeSB0byBzZXQgYXBwcm9wcmlhdGUgc2NhbGUgLyB0cmFuc2Zvcm0uLi5cclxuICAgIC8vaWYgdGhhdCBmb2xkZXIgYmVpbmdNb3ZlZCBhdCB0aGUgcHJlc2VudCB0aW1lLCB0aGVuIGl0IHdpbGwgaGF2ZSBhbiBvbGRQYXJlbnQgdG8gd2hpY2ggd2Ugc2hvdWxkIGF0dGFjaCBpbnN0ZWFkLlxyXG4gICAgLy8uLi5hbHRob3VnaCBpdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRoZSBkZXRhY2hlZCBmb2xkZXIgdG8gbW92ZSB3aXRoIHRoZSBjb250cm9sbGVyIHVudGlsIGJ1dHRvbiBpcyByZWxlYXNlZC4uLlxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgZ3JvdXAuZm9sZGVyLmRldGFjaENoaWxkKGdyb3VwKTtcclxuICAgIFxyXG4gICAgLy9hZGRpbmcgdG8gdG9wRm9sZGVyLnBhcmVudCBJRiBBVkFJTEFCTEUsIG5vdCBvbGRQYXJlbnQsIHBlbmRpbmcgd29ya2luZyBvdXQgdHJhbnNmb3JtIGxhdGVyIGlmIGJlaW5nTW92ZWQuLi5cclxuICAgIGNvbnN0IHBhciA9IHRvcEZvbGRlci5wYXJlbnQgfHwgZ3JvdXAucGFyZW50OyBcclxuICAgIGlmICghcGFyKSByZXR1cm47IC8vU0pQVCBjaGFuZ2UgZnJvbSBDU3ludGgsIG5vdCBjYXJlZnVsbHkgcmV2aWV3ZWQgYnV0IHByb2JhYmx5IHJpZ2h0LlxyXG4gICAgcGFyLmFkZChncm91cCk7XHJcbiAgICBjb25zdCBtID0gdG9wRm9sZGVyLm1hdHJpeC5jbG9uZSgpO1xyXG5cclxuICAgIGdyb3VwLmFwcGx5TWF0cml4NChtKTtcclxuICAgIG0uc2V0UG9zaXRpb24obmV3IFRIUkVFLlZlY3RvcjMoKSk7XHJcbiAgICBjb25zdCB0ID0gbmV3IFRIUkVFLlZlY3RvcjMoTGF5b3V0LkZPTERFUl9XSURUSCwgMCwgMCkuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgZ3JvdXAucG9zaXRpb24uYWRkKHQpO1xyXG4gICAgXHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9kZXRhY2ggdGhpcyBvYmplY3QgZnJvbSB0b3BGb2xkZXIucGFyZW50IHRoZW4gYXR0YWNoIHRvIHRvcEZvbGRlci5vbGRQYXJlbnQgd2hpbGUgbWFpbnRhaW5pbmcgbWF0cml4V29ybGRcclxuICAgICAgLy8uLi5hY3R1YWxseSwgKG1heWJlKSB3ZSB3YW50IHRvIGRvIHRoaXMgc2NlbmVTaGlmdCBidXNpbmVzcyB3aGVuIGJlaW5nTW92ZWQgZmluaXNoZXMuLi5cclxuICAgICAgLy8gcHV0IHRoaW5ncyBpbnRvIHNlbWlEZXRhY2hlZCwgc28gdGhhdCB3aGVuIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCB0aGV5IGNhbiBiZSBzaGlmdGVkLlxyXG4gICAgICAvL29yIG1heWJlIHdoYXQgd2UgcmVhbGx5IHdhbnQgaXMgdG8gaGF2ZSBhbiBvcHRpb24gdG8gJ3BpbicgcGFuZWxzIHRvZ2V0aGVyIGFuZCB1bnBpbiB0aGVtLCByYXRoZXIgdGhhbiBhc3N1bWVcclxuICAgICAgLy9hdHRhY2htZW50IGNoYW5nZXMgd2hlbiBidXR0b24gcmVsZWFzZWQuICBGb3Igbm93LCB0aGlzIGlzIG5vdCBxdWl0ZSB3b3JraW5nIHJpZ2h0LCBzby4uLlxyXG4gICAgICBjb25zdCBkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgLy93ZSBjb3VsZCBqdXN0IGRldGFjaCwgbGVhdmluZyB0aGUgb2JqZWN0IGFzIGRpcmVjdCBkZXNjZW5kZW50IG9mIHNjZW5lLCBidXQgdGhlcmUgbWF5IGJlIHJlYWwgcmVhc29ucyB0byBzaXR1YXRlXHJcbiAgICAgIC8vdGhlIEdVSSB3aXRoaW4gaGllcmFyY2h5IHNvbWVob3cgKGxpa2UgYXMgY2hpbGRyZW4gb2YgYSBjb250cm9sbGVyKVxyXG4gICAgICBcclxuICAgICAgaWYgKGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5wdXNoKGdyb3VwKTtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEub2xkUGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsvL1hYWDogaGFjayBiZWNhdXNlIHRvcEZvbGRlci5vbGRQYXJlbnQgd2FzIGJlaW5nIHVuZGVmaW5lZCBiZWZvcmUgYmVpbmdNb3ZlZCA9IGZhbHNlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGQgPSBncm91cDtcclxuICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSB0b3BGb2xkZXIucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICBcclxuICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IFxyXG4gICAgZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSB0b3BGb2xkZXIudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7IC8vVE9ETzogcmV2aXNlIGhvdyB0byBwYXNzIHRoaXMgaW5mb1xyXG4gICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oMC41KTtcclxuICAgIGdyb3VwLm9wZW4oKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICAvL2FsYSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2V4YW1wbGVzL3V0aWxzL1NjZW5lVXRpbHNcclxuICBmdW5jdGlvbiBzY2VuZURldGFjaChjaGlsZCwgcGFyZW50LCBzY2VuZSkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQocGFyZW50Lm1hdHJpeFdvcmxkKTtcclxuICAgIHBhcmVudC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgc2NlbmUuYWRkKGNoaWxkKVxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIHBhcmVudCkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkuZ2V0SW52ZXJzZShwYXJlbnQubWF0cml4V29ybGQpICk7XHJcblx0XHRzY2VuZS5yZW1vdmUoY2hpbGQpO1xyXG5cdFx0cGFyZW50LmFkZChjaGlsZCk7ICAgXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KSB7XHJcbiAgICBsZXQgbm9kZSA9IG9sZFBhcmVudDtcclxuICAgIHdoaWxlIChub2RlLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgY29uc3Qgc2NlbmUgPSBub2RlO1xyXG4gICAgXHJcbiAgICBzY2VuZURldGFjaChjaGlsZCwgb2xkUGFyZW50LCBzY2VuZSk7XHJcbiAgICBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIG5ld1BhcmVudCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5kZXRhY2hGcm9tUGFyZW50ID0gZ3JvdXAuZGV0YWNoO1xyXG4gIFxyXG4gIGdyb3VwLnJlYXR0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKCFncm91cC5kZXRhY2hlZFBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9UT0RPOiBjaGVjayBsYXlvdXQgd2l0aCB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiB3cmFwcGluZyBldGMuXHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudC5hZGRGb2xkZXIoZ3JvdXApOyAvLyB0aGlzIHdpbGwgYWxzbyBkZWFsIHdpdGggY29zbWV0aWNzIChoaWRlR3JhYmJlciBldGMpXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cC5kZXRhY2hlZFBhcmVudCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9tYXliZSB3ZSBjb3VsZCBkbyB0aGlzIGtpbmQgb2Ygc3R1ZmYgaW4gX3NldERldGFjaGVkRnJvbVxyXG4gICAgICAvL2luIGFueSBjYXNlLCBpdCdzIGlycmVsZXZhbnQgaWYgXHJcbiAgICAgIGxldCBzZW1pcyA9IHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQ7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VtaXMuaW5kZXhPZihncm91cCk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICAvL2dyb3VwLmRldGFjaGVkUGFyZW50ID0gbnVsbDtcclxuICAgIGdyb3VwLl9zZXREZXRhY2hlZEZyb20obnVsbCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmFkZENvbnRyb2xsZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBncm91cC5hZGRGb2xkZXIob2JqKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICB9XHJcbiAgICAgIC8vWFhYOiBoYWNraW5nIGluIHNvbWUgdW5pdmVyc2FsIHRvb2x0aXAgc3VwcG9ydFxyXG4gICAgICBpZiAob2JqLnNldFRvb2xUaXApIHJldHVybjsgLy9idXQgbm90IGlmIGEgbW9yZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBhbHJlYWR5IGV4aXN0cyAoc2VlIGRyb3Bkb3duLi4uKVxyXG4gICAgICBvYmouc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgICAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgICAgICBjb25zdCB0aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwT2JqID0gdGlwT2JqO1xyXG4gICAgICAgIC8vYXNzb2NpYXRlIGV2ZW50IHdpdGggaG92ZXIgb24gYXBwcm9wcmlhdGUgaGl0c2Nhbi4uLlxyXG5cclxuICAgICAgICBpZiAob2JqLmludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgICAvL1RPRE86IGV2ZW50cy5vZmYoKSBpZiByZXBsYWNpbmcgb2xkIHRvb2x0aXAgKG9yIG5vdCByZXBlYXRpbmcgb24oKSkuXHJcbiAgICAgICAgICBvYmouaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCd0aWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAvL2Rvbid0IGp1c3Qgc2V0IHZpc2liaWxpdHk7IGFkZC9yZW1vdmUgYXMgdGhlc2UgYXJlIGtpbGxpbmcgZnJhbWVyYXRlIGluIGxhcmdlIFZSIGd1aXMuXHJcbiAgICAgICAgICAgIC8vUkVWSUVXLi4uIGNvbnNpZGVyaW5nIG1ha2luZyB0b29sdGlwcyB3b3JrIHdoZW4gaG92ZXJpbmcgb24gbGFiZWwgYXMgd2VsbCxcclxuICAgICAgICAgICAgLy8gYnV0IG9mIGNvdXJzZSB0aGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgbW9yZSBhYm91dCB0aGUgaW50ZXJhY3Rpb24gc2V0dXAsXHJcbiAgICAgICAgICAgIC8vIGFuZCBoYXZpbmcgbW9yZSBvYmplY3RzIHRvIHRlc3QgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAgICAgICAgICAvLyBMZWF2aW5nIGZvciBub3csIGlmIHdvcmtpbmcgbW9yZSBvbiB0aGUgbGlicmFyeSwgaG9wZWZ1bGx5IGZpeCBob3ZlciBldmVudCBldGMuXHJcbiAgICAgICAgICAgIGlmIChvYmoudmlzaWJsZSkgc2V0VmlzaWJpbGl0eShvYmosIHRpcE9iaiwgb2JqLmludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYGNhbid0IGNyZWF0ZSB0b29sdGlwIGZvciAke29iai5ndWlUeXBlfSBiZWNhdXNlIHRoZXJlJ3Mgbm8gb2JqLmludGVyYWN0aW9uIHByb3BlcnR5Li4uYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBvYmouZ2V0VG9vbFRpcCA9ICgpID0+IG9iai51c2VyRGF0YS50aXA7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuYWRkRm9sZGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24gKG9iaikge1xyXG4gICAgICAvL1RPRE8gaWYgb2JqIGlzIHN0cmluZywgbWFrZSBhIG5ldyBndWkgYW5kIGFkZCAvIHJldHVybiBpdC4uLiBidXQgd2hhdCBhYm91dCB2YXJhcmdzP1xyXG4gICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgb2JqLm1hdHJpeC5pZGVudGl0eSgpO1xyXG4gICAgICBvYmouc2NhbGUuc2V0KDEsMSwxKTtcclxuICAgICAgb2JqLnBvc2l0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIG9iai5yb3RhdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBcclxuICAgICAgb2JqLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAgIG9iai5jbG9zZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnByb21vdGVaT3JkZXIgPSAoKSA9PiB7XHJcbiAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCB8fCAhdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGRuJ3QgYmUgYSAncHVibGljIG1ldGhvZCcgKGJ1dCBtYXliZSB0aGVyZSBzaG91bGQgYmUgYSB3ZWxsLWRlZmluZWQgcHVibGljIGludGVyZmFjZSkuXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IGluY29uc2lzdGVuY3kgaW4gZm9sZGVyIGhvdXNla2VlcGluZ2ApO1xyXG4gICAgfVxyXG4gICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYHByb21vdGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAvL3RoaXMgd2lsbCByZXN1bHQgaW4gdGhlIG9iamVjdCB6IGJlaW5nIGRpZmZlcmVudCBmcm9tIHdoZW4gbW91c2VJbnRlcnNlY3Rpb24gaGl0IGl0IGVhcmxpZXIgaW4gdXBkYXRlLlxyXG4gICAgLy9tb3VzZUludGVyc2VjdGlvbiB3aWxsIHRoZW4gbGF0ZXIgYmUgdXNlZCBpbiBoYW5kbGVUaWNrIG9mIGdyYWIgaW50ZXJhY3Rpb24sIHRvIGZ1cnRoZXIgbXV0YXRlIHBvc2l0aW9uXHJcbiAgICAvL3NlZW1zIG9rIHRob3VnaCAoYXMgb2YgMDQvMTIvMTgpXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIC8vZ3JvdXAudXNlckRhdGEub3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0ID0gIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dDtcclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUxheW91dCgpe1xyXG4gICAgcGVyZm9ybUhlYWRlckxheW91dCgpO1xyXG4gICAgXHJcbiAgICBjb25zdCB3cmFwTmVzdGVkID0gZmFsc2U7XHJcbiAgICBcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIC8vc3RhcnRpbmcgd2hvbGUgbmV3IGxheW91dCBvZiB0b3BGb2xkZXI/XHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBpZiAodG9wRm9sZGVyLm1vZGFsRWRpdG9yICYmIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KSB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICBcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbllPZmYgPSAtdG9wRm9sZGVyLnBvc2l0aW9uLnk7XHJcbiAgICAgIC8vSSBjb3VsZCB1bmRlZmluZSB0aGVzZSBhdCB0aGUgZW5kLCBidXQgdGhlcmUncyBubyBwb2ludC5cclxuXHJcbiAgICAgIGlmICghdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgYWRkaW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8va2VlcCBjb3VudGluZyBjb2x1bW5IZWlnaHQgKGN1cnJlbnQgeSkgJiBpbmRleCBmcm9tIHBhcmVudCBmb2xkZXIuXHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL1RPRE86IG1ha2Ugc3VyZSB0byB0ZXN0IHdpdGggZGVlcCBuZXN0aW5nLlxyXG4gICAgICBcclxuICAgICAgaWYgKHRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgcmVtb3ZpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIGNvbnN0IHNwYWNpbmdQZXJDb250cm9sbGVyID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgY29uc3QgZW1wdHlGb2xkZXJTcGFjZSA9IExheW91dC5GT0xERVJfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICB2YXIgdG90YWxTcGFjaW5nID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjKSA9PiB7IGMudmlzaWJsZSA9ICFzdGF0ZS5jb2xsYXBzZWQgfSApO1xyXG4gICAgLy9jaGlsZHJlbiBzaG91bGQgYmUgb3JkZXJlZCBieSBndWlJbmRleC5cclxuICAgIC8vaWYgdGhleSBkb24ndCBhbHJlYWR5IGhhdmUgb25lLCBpdCBjYW4gYmUgYWRkZWQgaGVyZTpcclxuICAgIC8vdGhpcyBzaG91bGQgYmUgdGhlIG9ubHkgcGxhY2UgdGhhdCB3ZSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgcHJvcGVydHlcclxuICAgIC8vaXQgYWxsb3dzIGZvciBkZXRhY2hpbmcgZWxlbWVudHMgYW5kIHJlYXR0YWNoaW5nIGluIHNpbWlsYXIgcGxhY2UsIGV2ZW4gaWYgc29tZSBzaWJsaW5ncyBhcmUgYWxzbyBkZXRhY2hlZC5cclxuICAgIGxldCBsYXN0R3VpSW5kZXggPSAwO1xyXG4gICAgLy90cnkgdG8gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGNsaWVudCBwcm9ncmFtIG1heSBhdHRlbXB0IHRvIHJlc3RvcmUgaXRlbXMgXHJcbiAgICAvL3JlbWVtYmVyaW5nIGRldGFjaGVkUGFyZW50IGJ1dCBub3QgZ3VpSW5kZXg/IE5vaXNlLi4uXHJcbiAgICAvL2NvbnN0IGRldGFjaGVkQ2hpbGRyZW4gPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoZiA9PiBmLmRldGFjaGVkUGFyZW50ID09PSB0aGlzKTtcclxuICAgIC8vY29sbGFwc2VHcm91cC5jaGlsZHJlbi5jb25jYXQoZGV0YWNoZWRDaGlsZHJlbikuZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgICAgICBpZiAoYy5ndWlJbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgYy5ndWlJbmRleCA9IGxhc3RHdWlJbmRleCs9MTtcclxuICAgICAgfSBlbHNlIGxhc3RHdWlJbmRleCA9IGMuZ3VpSW5kZXg7XHJcbiAgICB9KTtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4geyByZXR1cm4gYS5ndWlJbmRleCAtIGIuZ3VpSW5kZXggfSk7XHJcblxyXG4gICAgaWYgKCBzdGF0ZS5jb2xsYXBzZWQgKSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gTWF0aC5QSSAqIDAuNTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gMDtcclxuXHJcbiAgICAgIHZhciB5ID0gMCwgbGFzdEhlaWdodCA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIGZ1bmN0aW9uKCBjaGlsZCwgaW5kZXggKXtcclxuICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgIGNoaWxkLnVzZXJEYXRhLmNvbHVtbllPZmYgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmIC0geTsgLy9leGNlcHQgJ3knIHdpbGwgYmUgd3JvbmcuLi5cclxuICAgICAgICAgIGNoaWxkLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCAhd3JhcE5lc3RlZCApIHtcclxuICAgICAgICAgIC8vT3JpZ2luYWwgbGF5b3V0IGFsZ29yaXRobVxyXG4gICAgICAgICAgdmFyIGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgLy8gaG93IGZhciB0byBnZXQgZnJvbSB0aGUgbWlkZGxlIG9mIHByZXZpb3VzIHRvIG1pZGRsZSBvZiB0aGlzIGNoaWxkP1xyXG4gICAgICAgICAgLy8gaGFsZiBvZiB0aGUgaGVpZ2h0IG9mIHByZXZpb3VzIHBsdXMgaGFsZiBoZWlnaHQgb2YgdGhpcy5cclxuICAgICAgICAgIC8vIGlmIHdlJ3ZlIHdyYXBwZWQgdG8gYSBuZXcgY29sdW1uIHJlY2VudGx5LCBob3cgaXMgdGhpcyBhZmZlY3RlZD9cclxuICAgICAgICAgIC8vIHNwYWNpbmcgcHJvcGVydHkgc2hvdWxkIHRoZW4gYmUgc3BhY2luZyAqd2l0aGluIGN1cnJlbnQgY29sdW1uKiwgc28gdGhlIHdheSB3ZSB0cmFjayB0b3RhbFNwYWNpbmcgc2hvdWxkIHJlZmxlY3QgdGhhdC5cclxuICAgICAgICAgIHZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICBpZiAoaW5kZXggPCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTilcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoKGluZGV4KzEpICUgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPT09IDApIHkgPSAwO1xyXG4gIFxyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTik7XHJcblxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy9uZXcgbGF5b3V0IGFsZ29yaXRobSBXSVAsIHNob3VsZCBhbGxvdyBmb3IgbmVzdGVkIGZvbGRlcnMgdG8gd3JhcCB0byB0aGUgdG9wIG9mIGEgbmV3IGNvbHVtbiwgd2l0aCBhbGwgZm9sZGVyc1xyXG4gICAgICAgICAgLy9pbiBoaWVyYXJjaHkgdXNpbmcgc2FtZSBjb2x1bW4gbGF5b3V0XHJcbiAgICAgICAgICBjb25zdCBtYXhDb2xIZWlnaHQgPSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiAqIHNwYWNpbmdQZXJDb250cm9sbGVyOyAvL01BWF9GT0xERVJfSVRFTVMgaXMgc2xpZ2h0IG1pc25vbWVyXHJcbiAgICAgICAgICBjb25zdCBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIGNvbnN0IGNoaWxkRGlkV3JhcCA9IGNoaWxkLmlzRm9sZGVyICYmIGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vbW92ZSB0byBhIG5ldyBjb2x1bW4/XHJcbiAgICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID4gbWF4Q29sSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIC8vVE9ETzogbWF5YmUgYWRkIGFuIGV4dHJhIGhlYWRlciB0aGluZyB0byBhbGxvdyBmb2xkaW5nIG5lc3RlZCBmb2xkZXI/XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4Kys7IFxyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBoO1xyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgPSAwOyAvL2ggd2lsbCBiZSBhZGRlZCBsYXRlclxyXG4gICAgICAgICAgICBsYXN0SGVpZ2h0ID0gMDsgLy8/Pz8/IHdoYXQgc2hvdWxkIHRoaXMgYmU/ICBPcmlnaW5hbCBhbGdvcml0aG0gaXQncyAnZW1wdHlGb2xkZXJTcGFjZSdcclxuICAgICAgICAgICAgLy9jaGVjayBsb2dpYyBvZiB0aGlzIFdSVCBkZWVwZXIgbmVzdGluZyAoc2hvdWxkIGJlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRvcEZvbGRlciByYXRoZXIgdGhhbiBpbW1lZGlhdGUgcGFyZW50KVxyXG4gICAgICAgICAgICAvL3doYXQgSSBzaG91bGQgZG8gaXMgdXNlIGFjY3VtbXVsYXRpb24gb2YgYWxsIGZvbGRlciBsZXZlbHMgKyBvbmUgcGFyZW50IGFib3ZlLlxyXG4gICAgICAgICAgICAvL3kgPSAtZ3JvdXAucG9zaXRpb24ueTtcclxuICAgICAgICAgICAgeSA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmY7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgKz0gaDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvL3ZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICAgICAgICAgIGxldCBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuXHJcblxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLi4uLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICAvL1hYWDogdGhpcyBsb2dpYyBkb2Vzbid0IHdvcmsgZm9yIGNvbHVtbiB3cmFwcGluZywgKGJlY2F1c2Ugb2YgaG93IHNwYWNpbmcgaXMgY29tcHV0ZWQgYWJvdmU/KVxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcblxyXG4gICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vbmIgZm9yIG5lc3RlZCwgY29uc2lkZXIgZGlmZmVyZW5jZSBiZXR3ZWVuIGdyb3VwICYgcGFyZW50XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvL2lmIChjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4KSBsYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjaGlsZC51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSB0b3RhbFNwYWNpbmc7XHJcbiAgICBcclxuICAgIC8vIGlmIHdlJ3JlIGEgc3ViZm9sZGVyLCB1c2UgYSBzbWFsbGVyIHBhbmVsXHJcbiAgICBsZXQgcGFuZWxXaWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCkge1xyXG4gICAgICBwYW5lbFdpZHRoID0gTGF5b3V0LlNVQkZPTERFUl9XSURUSDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgTGF5b3V0LnJlc2l6ZVBhbmVsKHBhbmVsLCBwYW5lbFdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgpO1xyXG5cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1IZWFkZXJMYXlvdXQoKSB7XHJcbiAgICBsZXQgZHggPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgIGxldCB4ID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGhlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgaWYgKCFjLnZpc2libGUpIHJldHVybjtcclxuICAgICAgeCAtPSBkeCAqIDAuODtcclxuICAgICAgYy5wb3NpdGlvbi54ID0geDtcclxuICAgICAgeCAtPSBkeCAqIDAuMzsgLy9UT0RPOiBkZWhhY2tpZnlcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBncmFiSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE86IG1vcmUgY29uc2lzdGVudCBob3ZlciBzdHlsaW5nXHJcbiAgICBpZiAoIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHg4ODg4ODggKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIGdyb3VwLm9wZW4oKTtcclxuICAgIGVsc2UgZ3JvdXAuY2xvc2UoKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuXHJcbiAgZ3JvdXAub3BlbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKCFzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwICYmIGdyb3VwLmZvbGRlci5hY2NvcmRpb24pIHtcclxuICAgICAgZ3JvdXAuZm9sZGVyLmd1aUNoaWxkcmVuLmZpbHRlcihjPT5jLmlzRm9sZGVyICYmIGMgIT09IGdyb3VwKS5mb3JFYWNoKGM9PmMuY2xvc2UoKSk7XHJcbiAgICB9XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSBmYWxzZTtcclxuICAgIGFkZEltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuY2xvc2UgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IHRydWU7XHJcbiAgICByZW1vdmVJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWw6IGdyYWJiZXIgfSApO1xyXG4gIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIC8vbmI6IGlmIHRoZSBjb250cm9sIGlzIG5vdCB2aXNpYmxlIC8gYWN0aXZlLCB0aGVuIGl0IHdvbid0IGludGVyZmVyZS4uLiAgICBcclxuICAgIC8vYnV0IFwiaWYgKCFpc0RldGFjaGFibGUpXCIgaGVyZSBjYXVzZXMgcHJvYmxlbXMuXHJcbiAgICBcclxuICAgIC8vaGVhZGVySXRlbXMgc2hvdWxkIG5vdyBoYXZlIHRoZWlyIG93biB1cGRhdGVDb250cm9sIGFuZCBiZSBpbiBnbG9iYWxDb250cm9sbGVycyBsaXN0XHJcbiAgICAvL2hlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2gobyA9PiBvLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpKTtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICAvLydncmFiUmVsZWFzZWQnIGlzIGVtaXR0ZWQgb24gaW5wdXQuZXZlbnRzLi4uIHVzZWQgZm9yIG9ydGhvIG1vdXNlIGZpeEZvbGRlclBvc2l0aW9uXHJcbiAgXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IF9iZWluZ01vdmVkID0gZmFsc2U7XHJcbiAgLy9ncm91cC5oaXRzY2FuID0gWyBwYW5lbCwgZ3JhYmJlciwgZGV0YWNoQnV0dG9uIF07XHJcbiAgXHJcbiAgLy8vLy9FWFBFUklNRU5UQUwgRkVBVFVSRSwgQ1VSUkVOVExZIEhBUkRDT0RFRCBOT1QgVE8gSEFQUEVOXHJcbiAgLy9zdWItZm9sZGVycyB0aGF0IGFyZSBkZXRhY2hlZCB3aGlsZSBtb3ZpbmcgcmVtYWluIGF0dGFjaGVkIHRvIHBhcmVudCBvYmplY3QgKHRoZSBjb250cm9sbGVyIHRoYXQncyBtb3ZpbmcgdGhlbSlcclxuICAvLyYga2VwdCBpbiBzZW1pRGV0YWNoZWQgdW50aWwgYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIGF0IHdoaWNoIHBvaW50IHRoZXkgc2hpZnQgYXR0YWNobWVudCB0byBvbGRQYXJlbnRcclxuICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZ3JvdXAsIHtcclxuICAgIGhpdHNjYW46IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgLy9kb24ndCBuZWVkIHRvIGZpbHRlciB2aXNpYmxlIGhlcmUsIHRoaXMnbGwgYmUgZG9uZSBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKVxyXG4gICAgICAgIC8vKGltcGxlbWVudGF0aW9uIG5vdGUgMzEvNy8xOTsgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gaGVyZSBiZWluZyByZW1vdmVkIGFzIGVhY2ggaGVhZGVySXRlbVxyXG4gICAgICAgIC8vc2hvdWxkIG5vdyBiZSBjbG9zZXIgdG8gJ2Z1bGx5IGZsZWRnZWQnIGNvbnRyb2xsZXIpXHJcbiAgICAgICAgbGV0IGhpdHMgPSBbIHBhbmVsLCBncmFiYmVyIF07XHJcbiAgICAgICAgaWYgKGdyb3VwLm1vZGFsRWRpdG9yKSBoaXRzID0gaGl0cy5jb25jYXQoLi4uZ3JvdXAubW9kYWxFZGl0b3IuaGl0c2Nhbik7XHJcbiAgICAgICAgcmV0dXJuIGhpdHM7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBiZWluZ01vdmVkOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBfYmVpbmdNb3ZlZDtcclxuICAgICAgfSxcclxuICAgICAgc2V0OiAodmFsdWUpID0+IHtcclxuICAgICAgICBfYmVpbmdNb3ZlZCA9IHZhbHVlO1xyXG4gICAgICAgIGlmICghX2JlaW5nTW92ZWQpIHtcclxuICAgICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IGdyb3VwLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IGdyb3VwLnVzZXJEYXRhLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgLy9hc3NlcnRpb24uLi4gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIChhbmQgZG9lc24ndCBBRkFJQ1QpLlxyXG4gICAgICAgICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJIb3VzZWtlZXBpbmcgcHJvYmxlbSBpbiBkYXQuR1VJVlIuLi5cIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgLy9hcyB3ZWxsIGFzIHRoaXMgY3VycmVudGx5IGVuZGluZyB1cCB3aXRoIHdyb25nIHRyYW5zZm9ybSwgSSBhbHNvIGhhdmUgd3JvbmcgdHJhbnNmb3JtIGlmIEkgZHJhZyBmb2xkZXIgd2hpbGUgc2VtaURlYXRjaGVkLi4uXHJcbiAgICAgICAgICAgIC8vKiphbHRob3VnaCBpbiB0aGF0IGNhc2UsIGl0IHNoaWZ0cyBiYWNrIHRvIHdoZXJlIGl0IHNob3VsZCBiZSB3aGVuIGJ1dHRvbiBpcyByZWxlYXNlZCoqXHJcbiAgICAgICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBmb3IgKGxldCBrIGluIGFkZENvbnRyb2xsZXJGdW5jcykge1xyXG4gICAgZ3JvdXBba10gPSAoLi4uYXJncykgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sbGVyID0gYWRkQ29udHJvbGxlckZ1bmNzW2tdKC4uLmFyZ3MpO1xyXG4gICAgICBpZiAoIGNvbnRyb2xsZXIgKXtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sbGVyKCBjb250cm9sbGVyICk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXI7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbWFnZSgpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBZ0FBQUFFQUNBTUFBQUR5VGo1VkFBQUFqVkJNVkVWSGNFei8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyt1bUFjN0FBQUFMM1JTVGxNQVduSmZibnFEV0dSNGEyWmNZbkJSYWxSTGdINkVUblI4VUdoMlJvWkRYbGFIU1lvOFFIVTJMeVljRkF3Rm1tVVIxT0lBQUpGaFNVUkJWSGhldEwySldtdTdqalVLSVFra1FMcVp2Z01DWk8yelQvMzMvUi92U2tORGtqMlRyT2FyVmQ1VjZ4RFAzcEpsV2RLUTdxYVBiNit2cnc4dmorUFovdnZyeHovLy9QajYzcy9HNy9jUDJuMC9YWjZPcDZYOGZKSGZhRy8zajlxNVgvTEt0L3Qzdi9RZnVmUWsvWG91Ym9sei9EcTVMSDd5MW5MVmw5eGVINGIyOGppZG5jWnkvWk0wUCtXZmYvN3puLy84Kys5Ly9zRzVVenRhdjNIMWluSklYa2xlOFF2bjMrT1JPUDJvajVPUG16N2V2K201UERERnlYYW4vVXdld0JkODEyNFpEbjJvM2VUQkJtQ0tBelpRZmpZNzVXWC8vWSsvS2o2TG43Ny8vdUYzcjI0dkh5ZlA1YWU5Y1JSc2FINUkvNDh2ZVFxUDVLaDlYOXo4Nnd2bit3amhaZm1ZalR6bXlCZmxTT0J6NVYxbFhPOGVINTRtdzhueks4ZFRIc25QZXBidXB3ZnQxVnUrUHNsdmFaUHRzNzNGYVd4WGJwL2lVangvSTlTVWMzSExxWjJEaG50VlAwRVJmTjc5cTkxOCsvVDJ1RmxPOGV3OEJXK3F3NFJ6NVJaYk9UcDVmc0pqK2RUcUZaL2xsVEFxdUxjK0VtOGpBLzRkQS9TODljOTVraEVoOFpUWW04ZTNwKzBRVjl4UDVmNWZRalU4Vkx1ZUozaXRlOUNUOUxlem41SUQrS3A4dEIzRW1PZmRlZnNsNTgwUFkxV01Ea2FCTkZYcUg1VmplU1NHNUhqUmRUenErZUFNalArRUw4dkh5Q1N6RnpXNkxFOTZQcmp2N3VWcE11cDB1bHVNcDdJcHVXWGI3WFE2d3ljWnR0a1ViOTN0b0kyNjlySExLYThjYnAwVW5NMnZUeE05dC92ODhJaHplTjNrNlNWLzR0Ynlac2U5ZmQ0UWZkMkp2TzdtOGVHNVc1N3lEUmJBck1LNXVEdmVHQ1Q5UWI3SVYremFHTTcyeHhQdVBjTHBTczhqNTluenBCdWZNM3gyNG5IYXZ0b0RobklQNlNYVjhONjRhRFFrUFRsUnRuYjJzOTlFMzlSZmRSaWZycndrbmJ3N2JvL0poWGxMd2VsUG1jaVR4N1BUL2x2N1Q3UFo1aEhqbGtQeXRaZlJqNXVEUnJPVG5BOW12WDk0eGtCMGgzeXZ4ODFKQndJdnF2MTRVem4vK0swdmV5ZWpmZTROVnVDQURjWG1PejVyMTl0MTlmS3h2cG44SFBTMDdWWWorOWpITjdsU2ZuZmkwaCtjemNQT2VkQWJkSVNhNzI5UGNnN2F1ZnYwbGovdDFzdjlhYlpVM3B6SXc2U3Q5UHZHTWthZFFad2lBM0hrUFBuZTQ5eVJuanRZa2FSQ052QlF2dUpneHpFOFljQng3NEVOSGNZWnA2NzRPWU56aHh3ZDR1RnB1TktuajdZUGtBekhrNzRSSHJyUzk5cDFKdlpnT1FENnI3UVRCTVc4eFNKNlBQRlY0OU9YeGdDOHUxeWdoSk5SczFWd3RqSDY3M0Q2UktmVWNyYlgvdkYwS2greDdlNktVWk83Nnl5eG0yTWNwbE9jYjh3NnhFQ2NPenQ3V1E2RWRPc25EOERaT0IveTUwNUh1NWx6UEYxc3Zzb2NITXo3SU9JWVhIc2V6SnYrWXRIdk43MGRiaUVUZFR2YU5mMjhWSG5IMkg3WGEvcWc1cnN3eVc2K2tEYVhkMy9MbjQxOXluSThmWC9Yenp2MytvdW1ZQUQ1aVZQd3BpZVRsRElYeC9odU9kaHZRRkliMXBOTmtYTnYzdGRYbEsrUk1RUzlPZUQ5eFp4RFIvb0x6WnErZmM1NmNGYU9CdkgySmg2R3EvV2lQeGh0alM5T1N3d2VicktUSjloYnpuQTJKc3FnV2ZUWHUxR3NXSmpRR0VSOFZ2K1NBZVFDRWc3ZkJyNjdGL3B6R0RBYjc0VUYwQzlOUG5xbGQxcmpLOUNQZ1ZqM0Z4aUhCejFKK3ZmSG1USHJXaitzMTVPWEJRVlBlekpBbzRSUW1mSHk4bWlhR3hpZzF4emtQcmozN09oRUhNemxMZVhtOTNpV3Z2U0hqTmZpOElHUGxYZFhCdEE3TnNJQnloQ25ieFZBZVA2OGYraXZrd0hrc28rQ0FUNE8vYjVSVitmYjJ4dWUxbnpvbU9oOXlRQWZPT1ZOVlU1NVV4V3R5bCtRRHNLRTh5RHB0OHBEOEpDLzRvZU9JYjdtdE1TQXJ3OGZmTjVzekhuV2dQaU44clJ6TkliSmhKMWNJY3pmblVEU2dXZUVBUmFmL1lHODVnRWZSckg2Z0lteWFHU2tNYTd2MUEwd29mMnpkdlVTQURKL2NNQ25tNW56SFE0MGkvbEJCeFNhVlNqTklJY01xYnhvOUd1blRxYTV5aEpwVUtDVjQ4R3NCM0MzUEdVRUNlQ3lxaWZ2bzJPRDg0MWQ3eDR3L1E1enpxZ1RscGVKM3J0djBzNEd2VGtjbEtkazVIRUwrU0x3eFdDOU9BaFBnYzJPOGlVcTVGZjZmWHF0TU0rTC9oUldyQmhnQWNrbG42OUQrL1Q4aktmWlFJbE9XektBTktqcHk3MUpTaDZiNzRRSm5BRk03T0hqRm8zY2VkMHNEZzFGUHNlajZhL3hQQ291T3gyZ2VXOGdUYzkyamw3aVJoQVB3Z0R5aXJaT1kzbFJXc3Bqeit1K3lpblRySEJ6MEwrSDE1Y25ZQnBBTnhCTlRHZEN5Z2Fzcm5nQ1hzQUk5M0N2ZWdEMWFmMEVvVU1ERG9BYUU1cWVUSGFRZWppcyttM2N6dDFRb0lQakcva3c1ZTJ6dlJRVmEyYzlQWjhxMUE5VkFuSDdOV1RTZUFhK2hpeGE3NkR2UUhqZ3dsVkhsczY1VXB3SzNyWnJQSTdSbm1FRmVsQVNINVJIVks1UzU3bGdBQ3BHR0c5cGNvSU9sUHlsc3lnWlFKcnE5RkRvdnIrU0FZVE8vWkFBTHZibWg4TWNyeWl2dEZDQ3YrbU1oMndZREhiR0VQNXRNa0E3MWVsR25iTktPZ29NbjUrTlNKSERvbGxqblo1Q3FLMVdLMkdYaml5dWcvT3FneWY3WURjeXpMdDVJNU50YTJxZGI2TDRXUjBaYTJnVHdxcFVWanNxbzllckxqZGZNeXJIdTBidUlselF6SGRVaUYzNTB6dHBaNmZWcit1MFBEajZaL1pPdmZYNkRCM25QREpOSXhUclhkeElxQTJ1dkZNaUtCa2JJeU1tQ1RxNHVreU5BU0RFaDVNdVNBTUZDVi9aUGE4UEN3aEZiRGJHV0JmNklpekIzbE9WdU52SkpRUFlvSUJ3NTkxdXArTzZXOGtmcTY3Y09CZ0FQYTRVcTQ0SlhWWlhtTDVPUkZ0WnY2a1JVNnhpSWkzOEZYWHBnMFpwUXN2TzVCd2JkWVNxbmE3T0lya1FJdUNka3VUUTE1V2tUekhGSVJXZUdzckY4Z2RJdmVIU3NLUG1PZEFKQkxYdXRERWwra3l0V2I4QU9nWTFrRkJXengyN1pCbktzWTdBZVJjS2NmVHJBQTA2cTh0K1pjdGQ5RSs1eEsxMnZmVjhQb2NRZzdTaVlyM3VzYTE3U20yb3NuY1E1YWtuYmNBc1p4TUpXQU9UQVdUS1RHVFpkMllmbThLOE9EZ0R4QXpsa2p0ZFludCtsUUdFcUdRdGVkUGRTTnBBL29ETzR2Y1k2Q0ZSOTZuUXdmeGhPcTZRZ3dvRFZsQzc3ZUdnUXV4SkNkNC9VSCtkVVh6MTdmR21RNjR4NVhHWHRaQkhENE0vOVBBV041S242bHBuZkVFOThxQy9aS0FnQUpVQnFFNjQ1cmtlZEV5dG8wb2lyR0phODF6WE51Z1lwMXVYdUhMYzB4SHVka1VIdFVsVjlNc0FEVy8wajloUERsY1pOaGYrcFJCVFFUeDJ4VHBiTW9DK3JzOTQxOEZHL0duTHFGMzgyVjhQZEQ3cWpMV1ZoYU9iRExCdk1ZQnEwT3k1WkFCakxUMkdOVVRKUkozRjc5SDBEL29STHArUHRzdWxDSkJlREdxc083NFU2ZDVFS0ZzeGdPdWdKZzhhV2R5NktvVVhoNFZzWWtRRWNGSER1NXI4R2hWcm0vYnlsN0xIWW0yeVIvdWhUaHhNODV4VGp3N2RrRnJ6d2RYQTVjMUxpbkY1ZnRKTnlNSEd0SlNZMisydis2ZGM0aHA1YU5QZ0NUdW9kbU9uWWJSa2dOTTQxbTNjZy9MVXgrUjBzbm1CenhHaG9qelF0VGxaTVFDc2FadHB4UUNRQ2JjWllPWXpUb1VOcDdCZTVpKzcwSS80Q0lWdS81WFMvaFBUOERVWVlLc3NhM3NlRlJFcmFYcW5OZ05BeEtzQTZJeDBBalh6UnYrVysxRmJ6cmVYYVJTanl2SFJSeG9qUUwwZFUzTEtJRVB6MU9NMlpUQUlPbUNoTlpPSGIxNVNqc3ZMMDFWQ1B6Mzh1cC9FVXgwSUt1NWFuclNHdUlvdjYzbVRDVUlHMkZOdmNOMU9CZ2tyUUkvVGVrYTJiVDVVcUtqeWZPYVd0MkNBTHRUM3BWcUIvNEFCc1BaeHhSN2xqQ01EeUVmSVdnbUZqdm8xYUkzMTZlT1Q1OWFLaHkwZ3owTnF1Y21qZkx5UlVuOWd6UnZzZW1RQTQ1MWtnQkVrVXAram1pcUdYTVlWQU5ZUkcydVpFNTJ6YnJENG9rNW1VUTZoTmNkYWN2T1NXd3p3cC8xVERvL3U2VVlqbFRVNXB2eXlEaHVsbFREQWNSWkg4V1VjSkpjUk1MN2hlL3FReWJyVjRxNHBHQURxb2NvQUhmenU3elBBckpDdUhQaVNEUG9SNTE1dVpvL0h1S0JaSkZza0EwQTFVU2JVUnYyNlpnQ3NiaUxEUlFDb1pJSEJweVBYdXNXRHI2T0ttK2xkYnBraWY2cTRvdmFKWVVuTk0xNzBQazgvUTJ2R245QXhibDd5dHhnZ3gxTzA2UzEyUnJZZmVpOWtHeHRjQW52WkJuSUE1VExNb01mOGdWRzNTWWM3eVh3VW1mbUIyN3NPUUZLZFlRMTgxNm15MnExcDkvc2xBOFRxSXlSeHRiT3lBMno1T1RTK2dobUhtSVVZT3V1dEpjQWpuRVg0d1BzTENVQlZDT3ltVDRQQlIyWkt3emZDNjZqTVhnOEdLNTFEWGJuTHVGQ0xPVEQwV1BEVjVTU29GcHcwMUR0TmlYcDlsb2U0Y0wxMXlkOWpBUG5oMjdSWFhSdGlMdWFZSnYwaEFJUUJVb21pRGk2amlmSGQ2Z1FyMlVNTjZMSnkrWlFNN1VCTVJQZ08wN0dWT0pUUHYyQUFyajQ0R2twY1pRbk0wNFBVcHE3by8vTVp5UUI0ZjJ5UjNRdlNZZ0Q5QVhsdmlvRGVTcTBOemdCY1FxbnVETVRwQVI5aXNjMU0zUWdQZFkzZ2haUU5LZ1RSTVVWOE5HOWU4dGNZZ0kvR1RIS05Gbyt1bG9CMEVxa3BXRFFyNDB3eVFLM0dWUXdnRmltc1hHNWhsalVjQXlhNlJqS0FNa2lQUnFYanp4bmdXS3dCenJlUDQ1c01RQnRsaXhLbjFpNEFhckI3UWE0eHdNSkVlWCtnREtCUEdRMkNBZWdFVVVOUU9EMldabjNBQUswWGxPYkwzREhvU3pzVnpPUDFuQnFrWEpucXljMUwvaElEc0o5Y1Zhbkd0UktZVGlKaGdDL3NvMjh4d0I3RGk2ZXRkUU13ekJQSFZNblVydG9rQStqbWQwNGQ4MWNNY0VycEdpdkE4aVlEcUIwMVpERzNyZUNMVXJRK2dLTmNxN3ZOQUI4bSsvV0FFSVdhdld6VG4rRUdsUzI4T1QzQXgycDlzTTE1UG5WY0tVNHYrWlNhbWhCWlRvVmJsL3hsQm1CL0xkZnJiYUJUOFBoTENiQlA4NzVLeGQwcUYrVXhCZ0cvMVFOTFhVWldDU01GUENPL1lJQTA0czNubEl6VE5nT2tQa3FUYjYyTm1VbVdtNG1CU0xhdFd4UitMZ0gwREprZ0trZmtmSkFWMFF1d3JIVE9NQVQ1S3BQS1RzcWQydUxCcDF4K1pFMkYrcEsvendDL2V2VG5ncTNOQU8xVEIyN3UzY0NSaUcxdFg2V2k4TUM2SGwwajdnaGVBMWpBdXVqNXJWMkFxUFdoTXVPTWJXdG9KOE9TMzVhRmpvTmJjb0xHUXFLR2Q3SHdjczkrVFFjQUhXTUpPR01oR1lVaENBSkdiYXZpSkZnTmFKY1FoVDkxandXTkpjdWFBVzVQNTVzTThIOHZBZUN1djdVRURBb0dPRzM4VlBUR2tvOEYrVlM0K0xFeXduKzZxa1lYNHdUTFAzd2d2NzhOUE9iR1hob05iTHlDenFmZFdpYzJYcVhjTTNUSUdDU0czYVFQN1YzbWJqOE90UmtBekMzWHF6eWZpNUVCNmlkWVFvZnYzWll3SFlkSk4xOTZHVnZoejFnQjhKYXAzaFY2MzF0N0lVNzk5Tm9sZjVzQmJxc2ZWQUpYK0svVERTV1FOQXJGditKWmVKZ1JzUWNIUTlPSENXWUhNL3lsSlZDOW9LOS94QUJwMmpQL1VURzBuK0t4TTJNV1hibUZ4cWh0bmFhQWNHQi9MTXdDcXE5STRWQXhBRmZrK1E3bUdGa0t4Unc4bi9lNTJFOExaWEl5TEJqZ0ZPWnkwSXVibzNKOE9mQzNWWEh3OE0xTC9oWUQzTjZBSkYyR2FHNEdrRzBnM2RvaHQ1MkJmWmRsL2hlMHMvSkFMSTJ6dGk5QWxvdHhXNFA0K1RZUUVWcXZXKzFMcFQ3czFvYytEZWFtRzFBWkNVM21FTk54cGlKQWhKUkdBbnhBZjJkMHhtbFRNd0JtQ0hhQTZ2UFY4K0JZWEZQZFQ1dXZPazduUGoyWGNoZnUybkx2bVZzUCtmaUhWNWUyUDkyTTM3Z2tDYW9IWHArNkpPaWY5OTgyUVJSMGVVSmpBSWt3d01sMVhHcHVibXZoOU9JQ2dTQTVjNS83MW1XNXNVKzk3UTBjejRRQ054bmdYUTlyTExjOW5kdXJ3cUUwZDI4TjdvVTVCL29zMkRDU3VDWWlFZGV5bksvWFlheUdiYnBnZ1BSemlCOFYvdGdkL29jaG5VNDY5WG5JUWhMbVpzVFpob2NNKzF2Yk9wMFpEdk84eFlyQm96Zk5jVGN2TWZNN05KY0pydml3QmVSUCs2ZVhSa2lPYXlFQjJMYU00cnBEek1Rb2xlMTBEcHJCbDJhV2hRcXVMWnp0SEUwaEhtaFhNY0JqcmlacWFzTFlYV2NBT01MbFlVL1BwbDl4TmhkTVJIOHRYYVlrVHlveThtRFhHOFVpWVZib0hjSmczQUhQMVNzWWdQNWU1ZlZkSjZKOE95UEdmdEhySWF2T0FRS216MUNuTWVKc2xWNng2TVRhUmJ1eE9BOVQ4elJCNGdiNWN4cmtiMTZTbjNhVzk1SXJQa21NUCsySE1wUnVpTFc3SWE3NUFoamFlamQrdEx1NWY4M2Yzd1FWZm0vSlZTUFJqcytodUdCMHNWb3dHS0YyekNIbXlNYnVDZ04waDBwVklRaUhObGFBa2dIZzFSdHAwSVJKSXM0ZmZnUjFLN0FlMFFoZDRSbmVTcDJUWEwzYzBhVUdmSnI2MUVtdk45OE5OSzZBY2VFZVVhdXF6dWNpVmdZVmRJajdLRmFBTDFvbDVYMWM4OFJZNDJqTEphZnVMQnZhbTVkRVNKTXd0NFJ0NktVd2l2MXh2enk2ZEVUMlBhZ2x2WUZyL2dlYWdRRTBXcEFFaDJCZnBwd2NJVHlaQXk4WER5UVVBTzQ1eGdTcTFBMHhCZ1pZdWxJL3Q0bkxzYnRnQUFrQzBvZjUwSkxkYURtb3hkVWszRHJwbHRmV0RkRXEzQ0VjQU80WGlqWk83Rk9zWG02WW1DN0RWUzhzc0pZMmIvRHloZ3hoVEQyTUFCL3pYQm5zcmVjaVhIempxWmdBTUZOcW5vZEQyRC9IOTllZDhzdWJsMWhRNHdCQnJkUjd3SHQvMnIrOEZZcmdldFVpbWt2dHJ6dWhQd09DUnRTbzdza1IrblpRQ3NEUUloS2IrWndPK2dsZFo3dDBhWTVQaU0vbHlYMExNdVhZelZzTUlEMGgrbFk2NFlSb1pLS0tBUkM5Q3VoWkZmZUZLRmdxVjR4SDNWUDR6QnR3Y3VVa1dCem9uRURJSElOMUZ0QWxZTVBVT3dqOWlhb1JxU1kwUXZ5VE9aVElBT29INVRDZk5ENnhyWG5PWmJoTTgyeUY1ZlE5TEdkMjh4S0xJUkxUZ3hMdFlLRkNlUFlmOXMrdUJpTmxSRkRSa2dHTVpRNE5lVXZYMHd5Y2crU3k4Tis1K29MeDJ0Sk5xY0tRZU1yaGI0NEtlTFB5Y2tnckdVQmFVekRBQVVQTHhiV2xTTDY4M0NOMDJzMlZIcW5tRDI5WkZIWU5KSGZ0SnV6M2JhWmxlRFFtdWN4K2pUaVRJNHpaSlp6dlNaL1R6Slg5QUt3akF6VE4yaEFRMEowckRJenc4MW9QTW5oeFprZ2FCdVpKSEJVRDgwNDNMd0d3QVRibzNscWFCd3N1LzdpL0hZNjRBdjFWOG1HMmxxM2pTNENPNUR5QkNzQVdLQkVCRmpDMWtBOVRnZG5NaVNLYTBpd3o3NUcvaWZQRHlTdFJ4NHY5VFNNTkRKQS9Dd2FRd1ZnbnVNUVpJSVRFZUtQZ0NUS0F2em0xSFdscFVXQ1hqQWF4VytRSjZQbmNGakpnZDZqSUlEUnhiM2c0dndNMGJWbUMxSDQwcXJIbkRBeVVRVHFKZ294YmlUSUdZZ2E4UkVaaDFHRlVxOUFmRU0yYmx4QmpLQWRVN2NFVldQZit0UDhZQWNralUvUzZERWplUVBSVURXdVBNMERpR2lURUtrUll3L21GaCtrVzBJYU1PRUlmbDA0WEt5VWo5KzNOOUF2UHFwWDQySEZBaTU4cjVRZUx1UFo3QXNacTRRa3lmYWdtQ0ZjTEtvU0xTNzQ1QTZNanVoa25vTXQxK2oyQlpGM2lHY0dqSHJLdk1mTGRpRG9IOTBxVE5leGtRbFFhZ1R0SG14QjZ1cUlJRFUyQnRnOGNMRzhFbks0TW9FTlYvUUFsaVNBWWJsNWloSHN5d0NxdUFKMy91RCsvVDQ0QXVJc0hFSDlidFdkQ0srOHdqM3VKYklLQ2F6QWxxcGIyc0dMSVFpdmI2bThpcUk0VnNMamJCWGZqbkJIK3c0QzJmaHFrVDFwZ2ZhbGRvUk1iQlFBQ0FoWWFpSWI2MTRtcmo0d0k0TDVHT2V2Q2R6OWJYTGIwQ1dnSDZPQ25aN1FuNGs3MmNteXZEY0JJSElSTVJRL1dCV21CZy83bXVid1Zid1RZUEc4aVpCRHNqaDNSSndqOXIxOEMraE9RcndlMDRaMFVNQ0x0V3YvUHp2ZnZRM3NBbEoraUIzM1pIb2pvdmNPa1hISG5yS1A5SFFncHpNSEhKVjdpTFljTWNCYU9sUDQyU1VsNE1qZ0FlQi9ja0tQSkFhMS9JbjBBQm9NY3JHVDR4aElhSk1EQUhiOUtRRHlvb0ZJMmYrblQ5K3d5aXM0QWx5VlVubjBuYTdPbDVnZDRlWHVRWnNpenBmUXRaL0tQdEJrK1ZnNUI5MFFITElIYTgyS1pFTDZQZnVxU3Q1Sm11Z3I2bC9ydlJnL2d5TDFjaGU2TlB1VFV1bVFEOUt0TzNlWDBYUTVvd3p2Sm1adk5XSTdYL1dPOTRNcjVlRTg1dXBuaENYTGtYdHI3Vkg3TFVBamphVi9aeUVvLzdyQW9rZjZuSTRqSVJXem9jeEJjbFVObWdMWWpSd29vUm1uNldyaVkrUmN3NWt1T3BnOW8rVk1KdCtSZzNJczBzTEVUd0xoMzZoWG9Td0RsaS93SEtoQTJpVi95MmVEeXBYMmpxZzFqZzh0cTJnanRzaEZheXBrOEpQKzhXNXR1OU1CVU85RWw1MjJtUElJZTlMTUJVWXV4eHhIOWQ4cGJRVmZCMEQveTN2NFEvZmZSbjdhY3lkVit3UHFJNnowYVoyckRBTS80WXpyV2ZtdnY2QUJhbHVmN0FYMS9IQVdqQ3l0TWRYd2UzMjBzeHRiSHdaQ1JseGJvWUN4S1hJd3dCYjhpMzBMT1Fkd3loOHlnNnh3cFBjQnZNdzdRY1NoSElLNmIrU1h4NVNjT2hwTEVQMDZlSGtQSEMzWFlnNWlRYWc2Y0xubzRndmo5NkwyZ09xWU4yQ01QWVVadWxtUVNuVWRrT3BIV004eFd1VUI3ck4rNFhESDFrTDdXcC8rcWVEZHhjRHBSVXJ6b1ZORUQyby9GUUg2aTAwUUlNUEh5VU8zQmllOGc2UkhMTjlxOXJidjRHeEp1TnJNYm9VTmYwZFloN1IrSEhIamhQSk9qdUJwTEFPY0UreWcwd1NWNzVnZllUUFU3TUNReGtabHg1WTFpY0VPNWhnYVJSVXBMSHk3bmRNWCtDQytHazBQVVBVNTVIUzdod05vemVTcjY5T05BU25iQ1VVRFJzVTl4YnJ5cXR4cEhEK0Q5dWRJOUlJbU1LZGdpODdtVVlvSElXK3l0Z2RkZjlYd3NhQS8zNWNxdlBWaU80RHF4MllHQlJCOHY0RHAxV21JdThRcHFIWEV5OUFGR1lwb21nTXRUUjdBMTlYa3JEZk5PbEduOE1DUXliNFFPWm4zNWFtc0NPUDhKcXF2Y1NwVWZoZGErTVU5TTVnalpFbEhERENFMlg2Y2J6azBpMWlubTFNVTd6UW04TnhuQmREUnlWaXBJZUduVEJFMUg0bExPb2REMUhWdHQ0T000R2xDLy9WeDBjU0hTVG15WmN0Uk9Cak9VdHJYN0FZSm5LcDdDRUtXSHVxNm5jdGxTOFQ5S3cvNGZsejhqb1FzUGZadSt3M0daUU5FM215YXNncWJMNmdxSlFjT29NOWtLK3Z3QzZFN21OeDlxRjNZUmVBWk90cDhUVTJ2VGNMMTFyZHBJQ2pmb2MzZUVXR1RxeS9yMzFtMGF1SkgweEJPL25iMjRGNWpZVVhtc0dmTjBHNGloTUlOVzVBZ2hwdTZMT1lKTW81bHh1cjNvcStEbTFqMXp3Zk5HQlVpb3o0d3RwaXpFRm9rbUV1a0ZUUzFwQTc1d1FyOFRHR01XbXI5dndPMDcwSmVxaU00bmpxY0JLRE81Q29GMkRzR3pwQzF2OENQNmJuZllqZHdwK2x5bWNyQlVNVHhFcUJFUjRicWRIaWxPdFVPRE5QMElaOTM4WTY5TElLTFpLYmJXSnp2WXM0ZlhCbTVSRHVnbTltelB3TW40aWJ2RGd1YWZadnZxYzRkTVJMUTUwUWdJYzVPL2FkV2tmVVd3Q21GMjRiZzloelZnSkVlSmN2VmJxWWxnMUxFcklrZklxa3R6cHRMLzN6dVFwWmh1NUFDYnhwZzV6NjBaL285eURsUDI4S045MDU2c1krU0J3Y09zdFhzdURjaWNjaVlTR0FLUnRvTXpUaVVIV0lZTmppZGV5bE1OQUphaXdUNjBlMnVQM29uWWVNdUxzaHFnOTlWaCtYYnVEbVlpT1dRUkp0aE9FeEd1YmtjMVNUR1NESEVLQ2pLY2kxMVJVS3NZTk13QUdpU2tiN0E2OStRdy9jTkhqeDF1NW5wRjA0T1hBaWZiei9PNllheXNmUm90YTNONWNPR05YcTM3VldvTjkydHMzQnlydHcvZksrMkJBN2hOQnl1R05nVm9BYkh0OGh5N2dzRUM3dEN3ZEViLy92ZE9SVGt0VkpSb1JtallPdElzNGhsa3NHNlEvcDRIWnk3TjBmcWh3aGxBU283d25XWlVEcEU1eGZyQkdMcG5OdXRoWTRFY1dPSk50SFIwUEFkbVNUVm5lcjlQV01wVUZ3REVLdmJuaERBcy9aVDF1YlFTNjJlUURtb1VIcXdYSHE3Q0xTdlNuNmlEc0dFb2pibXhYd2xjWlZRRlZxSTZFQ0N4SURPVFdIa0ZETmxDMWN4UUF0KzhJempoZEJSWGdUVFkwbUc3bkY0SituRUdvT0c5UDI4OFFHcXZYNVVlQVhFdnlWZlFnYzJ6RVJzamgrMEtEMjVQbCtZUExBRkdTSjl1R093dzYrQnJNWTBwdldRSzRDb2s3UU43QkF6T29FRGZ1WW16dkNZTHVIbGVkUERLaERCTU5PTUljdEQvc0VDMDJaTXVRNURtU0lBQlh4ck14alpxN3JXd3RERDR6WVFONGJYUkJDS2ZDWUNXZC9KNDhqNjhaK1JXTEZNZWppRE91UVh5V2tBRk16dFR4UUEwT1hrUWZac0JvQUhBaFlJcjlCa1R2clg5eEJFTWZmaHM2VjNyMHhOMm13RVlmVmVuUmptRjMrV2piL2tNM0Z1MU1RWll5NzNsR1F2UHBXRjVWQXBRSFVUQUhSUDFjYnBSSENIYjFZOElHRzcwd01SemdURVZJak5TUlhvZmswdXArMDBpcndrVk9XcC9LaktzSDRoUzZIOWRPSi9jQTJtRHdUd2F4Z0h1ZnRaTHdUcUlva0Yyby9Bak1EeGNCTWxLQkVNNHFiL2lNeFp6OWREcEVlSmVxV25CRk40elA1S3BZTFE3RjB2QWlrYm5HMHNBdmNQU3RSYjh4RTRkUGFzMGZ1T25Ic0hKSHJXaGVQdWRSajFTcVAwT0F3eDZ3UUNleVlOUkFYTkVUOXBRNkNQZ0VXb1duekk1cWRtNFF6MUdoZ3h3UExXbUcyR2pLUUdVZWYzZWV6SUFNdllvMkRMUysyQnZrWWJjTGhHNEhWdEFpb1F3Wjh1UVF6VVE1NCtRYVFmL3dMZndHTkpjSmFVbHgvSkZnUXNkbDdtbTV4bnVUSlVjblFkc09xallIam9EYUZhSnlEQUhvcm1tQmJWQlZDaGM2OUhjT0pWS1lPRjJnb2JOdmtFb2dmNklzcDBKU0ZhK2tKL0NSQkQxVlJBNzhoU1FKRDlqQUxqemRIeWFQdkV6aVpSRytMUkd1cHVybklsaXRvamtsc0M1QlVOZVoxVWVBT2pmMkFiNkNnbEM2bURIQ21GQ25zbWxsRElVSEV6Ym1YNDc1a0Z5ckRaMVArZ0dndzUwWFhDNEo0UkIvODdWUUh3R2h0T1NyVkFUWnhLVUhZNkFBWmg0emJIdGo0a0JneCtCTzY2VnpBV045NlNYRW9HUFBqMGxHbHduYzZkYlMzTmt6Um5xSG9vcUdCa0FlZ1MyZ1NwM25BRzREUnlaeTl1M2dTNWtEdGtZaDVweFV4M0xKMG84SktnbDhqQUQzRzh6QU5Ra0tJRk5zL1lQTG1NUGtYbXNiNkU2eGkrbVVCNGFDQmdMWTFpMlVqOUFtb01CeXVuV0p4aUNpVDh4cTVoR3pPRmtzUWN3WGhaeWVwYXRZekFGQmhxcXcxa0czZFEwSm9USjFrc2NRdEh3L1hUdDZZR0JKOGprR0JQWFZQMVFEMmtFU2Vqb1U3ZXkzVHNYNktHRzRTTHl6ZlU1anZJblpIQ2sycWp4SEUrdmJUQ0xCOUY5QXBwaVNyTXpnRHpYVzBaTzVnMllZRE9pbVI0d2lSMkJjcE1CcU82ZkI1QTZaT0NNa0JrQlFMTVFyU0x3TUZpY2V6b05vSzNBcVpjb0hNWlo3NU1CY3JwbFhzc2ZxZ1JFWXIzMU9zRWsvMEFGQ0xCMjZwWGZzU3pJQkVEV0x3dU9XNWRncUdqOVpJQis5akxFRkZxWUhGQ0VDZzAzTllJcGYzQXpRWVhrY05Cb3I2WVBOWk83ZHhqcGlEL0lsMDBHc05pOFl2akxtN2ZSVEFGUU9lU0hsL0NxQVJ1MzhKdFdYaHlleUd0QlJDZmNUUVlnYjh0WHFXempFbGFBQUxBUU53RUNHSHR1MTU2MmlHNmVWZW1mekRZREJwaVYweTB6MjFvT1c0L0ZheXJWUVE0bFdQdHpFVExGRmNOZTMyYVZMMUtRNm1TQUpsb3lnSncrOTJZTW9LNjlTUHRnNmFsL3lnQWUzTHpRREhDck0zVXJHaWNzTmdTU1BKWGdnZ0Urc1gvNlBRYllaNWFLakJJK2x2aTZFWm9iOFpZdE1NU21obXdSdmZGekJnaDFmNkZyT3BYWUFvSFVoUWtnTUNkdTNKZ2pGVlZHUkpiWU9qME50S1FTK0lRRVdHQkxURGZMZTgyOFhIR0lxZ01ZSU1IYS9RVHFhaThKZ1RVREFvRERsQmdOTm9zWmlld08wVXRyU1J4ZzB0NzlUeGtnUDA3SUR0MHFvOFlyb2pIZXZWd0NGbVRYMzJJQUg1RUtLMXd4d0dUTEJ0MjB6UURqcTJpeFpJREY0cElCTWxYbjJrS0E2N3d5dWltUnpod041blk5SURTMDd3SW1NWTRwdVlRQlZKYkQ3S1Z6bWZxQkhlSTBydzhsYXlSWU95S0tUOTl1UTJWT1Vnb0FMRG5KQUJZVFFpTngwcm5MTmlRT0pBNlFpajlsQUJ5TVhIR2llWE9NUWJTQU9CL214ZGNuQXpCQSsvY1lnQ1BDTEJXRXM1UXZsOGdMTlp6OElRUDBwRjB5QUhoYmQ3eXJjd2o2dksrT3NvalRCUFFGd3lBWGxVZGd3aC9FWVVoYTNtRXVPeVRHOUFOM0ZkdzhCQlV3d2RyOXpObkZURzVPZUdxcGVGcUowbUlUV1ZOT2RPK0Z3Rzh6d1BmUEdTQWtLOGhMdlF0RFdhY1dLYjYrb0EzMGxOSHZNTUMra0tPWk1hb1NUMngwSDF4ZEFnWTNBTU0wcTE5bEFOMVlkbXhFV3d6UTZjRSttQXdBVGlLOE5qbEcxc25hRkdEUXNLOENvcXYvbDY2Q0g3Y1BRV3pFcHFKSmJZamVzaUVwYjRLWURvcGtnQ0VhZGxEalNnS2s3K2hQR1lDWUpLNkNMd1RNdVNzbE5XWitmWXMyUGRNWWZvTUJUblhHb0lDbTVNdlZ5SXRMQnZBVDhkdmZLNWVBcHJsY0FxQURybGFtMU5VTW9DKzhtNnU5SmNWS3NjK1lETXN4akpkUGtmMGxPa0JpTGhKMGo3VG5OdzlSQlNTSzlKeEFYUWJuaFlXQ0EvdFVwK3hiV1RQcmNxVURoTy9vanhuZ0VxNmRlS0NTYUdWbWlhUU5sTWRCNTljTVVBRlV5Zy8zbHp1MGtSZHRCdUJheFQwN1lKbDgwZHZid1BjM0F2U1I2NU5Ea3JzQVMzV2FYMTl1WXFzeExHZHQ1QXIyN1J4NncxV0FPT25iaHlEcFhacnd5VzU0eFZNNFJyWUpuZFFKdTlaczlsYnRYUURINlk4WjRIYjZqYVd0VnBHT3p2ZkZCUU53cy9vYkRGQ01DSWJjVmNvTE84Qk5Cb0Q1a1JEUkovalNmSzBpQTF5VkFJWlp4TjA1SkNuVjRBUUsxR2JGQUlScXVoNVZBVUVKRERtV3FVS1RwZUZHdlhVSWd2NHQ5SW55aGhRQjlCR3BVS0k1eGhuZzg4RFdyeGpnZzIzeGY4QUFtWWltU2tpNUxHaGpFTTdmWUlBVWZDcVQ4MTc1Y3Q0NjE1Y0E1SnZ4ZmZJUU96aXFWN2NaSUZETDVSSVFsc0E1Tm9hZHpHTDdub3NNTGd3bDBEZDFwY2krMit2aVREN2h2NXpMWHpjUGNYZmdpZUZkMm5vcEhVK1dhZ1pSb21sQ0F2UzkxUktnWWZ0Zk1VQ2RmaU1NcVpucVVGcCtmVUVieXlzeitDVUQrSWg4TWt0RmZIaStYSVc4dUdRQUtxUTBXTWk2M3VoNy9kd1paRExERW96dXlBQUoydXdyYmxjVHdic3ZJSFFBMGJib3VhYXZGbFNvUFVMSUR4Q3BCRWhSaHVyY1BsU3FWVEttWkE1b3lSUWNtVkpsYUlDVFhBSUdiTHRhQjJDamUrMXZLb0hUbUN0b3dja0ZiYnJZdUs1L3pRQWNFWWRaZnNTOThwSUNlYkU1dFJtQWZrUGJwY21NbnN2L2NwQnU2Z0NaczZQYnpWM0EySEdZQWdXR056QlFtdE93ME82WTFpOUJ6UmNlSWM4UGdOT1VhR2srT2Q0K1ZJQzFyWDNrSG9FaUFJc2I1aG9tUWpBQTVEQWFZcllLT3NNNllPbW1OcWUvdUExMHkwMHNNNS84K3BJMnlESFVYRExBc1BZRmNFUnlxZjl3bGJMVXZOZ1FZTnBtQUlmZUtZVDNzRkNVNkJ3WXdaOUxBRTdEbFNLcEMzdmZGalFnUmpoUW1oeDk3YUhoS0VITkZ4Nmh1Mkl1YXl2NFpYL3pVS3FBMmVJcHJJeVNYNDNJdkpJQnVsdHIrdEVsbmJVOUkwVHlKeExnencxQkVRclRzSVhjTG1oalM5YmNHU0ExZFFGWkZXbGcyMWtxVXFVc2VNYWJBWGJiREtCR1M1cjJ5VUp6WWhkL3BRTXMxTW14V0hDejV3NmZoVWNFQlVyVHpQSGtNTG1xQWpWSEZoR0s3THVZeXh5ZHpNNTl1bjBvV2NOYnZVZTQrR284K1JlR0lLVytSVFlMeTl4a2dEODNCU2Nicy9VOUkxWHhscWExSHVpTGdxWk9WN3N2cjNoTzdpYzdhRGtyTWdHUU4rUDlpNkdJV0Q2cjZxSnBzQnB6ZVA5cUYzRDRBQmlja2cwamgzSW5qaEZXK3JjcVZ2U0pIWStJWFNkcUtGdDNGM001ZGphejI0ZEt0UXF0TWdYOGtnSFlXcVpnYTEwNlVmNlFBYkRWdStvTUNqYm1neU9wNkZ1VnBoMjVZejQveVFCVWxSWUl0c2xVWldXV2lvbTA4T3ZtM21zZERVUzlaSURFVDQ1R3FPS2pkUVB3a2IreUE4d2JqWE5ZdTc4TUE2U0JKbzRSOXZLbHAyVUJFay9zK0RkRFBNTGdDRkxlZVE3ek9WdXhzN2w5aUFNRTVZQlZuMUt2L0NVRG9Mbk5wMUFDZC9LZk5IdkVIekxBYVhQTEhaeEVRM0FhTjZoWXNNcTN0QkJHWjRDc3ZHSExLOFBTTUNKMHA2R2NHejg4MytmajRLMjV3UUJmQWVGVm5NSndKSTloeW9XYlVjRUlocElnZE9qSVovckw4STVLK201Z2hJblNQUWFIc1RTcWw0aWpkNGVSL0taczNYblZqbDdNNVVpSWZmc1FkNU1IcnVmUWl6TFM2QmNNRUEwSHEyMWdaaEw0VXdiWUwyOEZoS1JsZkRUUmlzcEZERTZaRXM5TUY1NXZqUWg1THE5ZWU0ZUNqMUV6ekZKUmhxZzEvV3cxQXhSRldsaFg4QVgxcTFHbWJvQVlqOXU0QU11MUJWakl5R2dIWlorMU1haDBFZ0ZyY0pma01FQ0p2QzYwMmZDSkFMQWF5SGVNYnVrUEx1Ynk5UFlocWxYUWdCOGVVc1JpRGZnRkEzampRUWFFWktzWjRPT0NBUllsQTJUVzIrc2hZYkhYYXhxWDFQeVZtVFhYU0hadjY2dzBNRUNFVk9UeXlyMGVnOUlvSmpKRXpmUE1aclBZdlFnOERBRkovS1JoRlI4MDlZSWx3dm9KTWdnMTBBa1ZDOXB0RkJZRURGeUJLZGEyZHhBOGtkSEFMU1BOQXFLOGlBRWl2OXdWMUpOR3V0S2dkUE1RckM0ZUpHSVJVbEZNckdDQXBybGdnQ3I0S3hoZ1hqWm1aK1FCai9vdmtvU2t5QzJ5M21adUNxd2prYmdpMXp3UXJmNzE0Z1dHdGxsc0NPdEdKdm5nOGdxOEJKTlFlTUVWaUFuK2lrelQyVmhaaWFRa2FvdGVOa1hWTGNjS2lRVWVFRUw2SjloQUJhb1FWeDF3eTVuaU4wbDViVURBYmd3SnUwOE9VNzdBNFNYd1BzUTJvMGtYTW9TTUJwVGZiK21iUUxqbXp3NXRSMUUrREVzRmY0RlVsNXJHa2U1amRHVnpRcTdxWHVnQUd6K3dxbFB6NVlEekJ3K25ib1hSanNRVlJvQ1FtNW51Z3lLZE5kaGZIdk52S3pwYnB1QWdCcFJKS0x6Z2lvaUovS1UvUUxGc1Zpc3VTZmw2ejBBTDRpZFBRTVhjT3g3NE5qb1lVTmtwNGQ4RW8wK3piWURpMDV2WkthQXNPT3lkZ0doSENIOTlFZHRNSUxReUFHTTRMV01sZExzSTRyeDl5Q084d2VRWkNaN0pvbkxVbjBBZTIzODhTZXh0L21jSEFYcUxSdEtvZHlVT2JPMnVtU1NFQXg0L2NOaDFLMHBLRnQrbFNrejhLZ1RDZmY3QzJpb05BSVg0R3dFeFRQSlJwT0RZS0wyWWhFSTZ5Q1FQL2dzLzZ2WVMrWDg4UXdKeEZXQUJURWFkbko0UkFISWJUZWRyNWdjQWthWEhFa0FzMGFiRWhDTVhCcktQSElGenp1Y2U0L1c0RWtTYUlnNEhTNlpMN2VDY1orTnExajNlUGpSOUpDWVlVUzlnL3ZqbEVOcFMwOURtUU9Kc1cwOHhYbmN6YmFNZmdIZ014SFlNZi9WRHg1VzZsYTF2VEZ3aC9VeGs0Y0JYcm9EOHBRTkpLVm9PcWd6enljaVJLVGc0L0NsWGdYVjdqMStRdVhXYmNpYnlBT0xhQ0syemVFdTlIRTJ1UndvaFpCYnhIc3NRa20vRkJkNlIxOEdzS3RtWnR3N01iN0JvQXJkVlBobGlHdkxIZE9WaHpyTWphZ2Y3UEt0bjNmdnRRODVzV0l6QWVtLzhaU3ROanJxdFZtaVhjNFFweGltUzJDaWI5bkZBS09sSkNxWXhZTEtBZW82UXFTSFdNamNGWnhIR0gyeVJ1VGlVYXY0TGRTM3RoME1YcFRudHBBTVRsTXVyejhlbFo1dzRGY3VzWlFmQ0N2enU5SHJIV3F4VFRqNDdTQWdCWUJMQWxxeVNoNW5od0h1UTE4QkpqVmtCZERZQ05ZVTB1VnlwZHVlNWxkekV2aVJ3VzlmSVlSWUpJcVEyVjlyOVhTYmtzWVVuZjQxdkh5SlhrOG5qbDZmektFZGRwbzRuVWJtWUk5Qk1aampPbHRySk53NlFPcG1rZ0FxTmovdzd0UnRFc0RFM1JUbHB3QUZCQTBEY0FWN21vcG01S3BDNUkxbjB4VHBPTXl5dlBFQXBqb3dUSm1JOWJSR1R2U0ZGQ1AwQUwyQk1ScVFIQ1UvMnBrVGtJbU5Ecm1LR2llWjh4UnNVcEhaZjY1Y2oxRU5oUmVJS1Q1VG9UcllOODk0T2tCSTdpZ1FSVXB1Njl2Nk9XRTRtUWFsbVhYRm9WazNJSW1HSTdpNmdjUEJrYmptL2M1ekhkYUtRSFBRcDhoM2xtWFdlRUI2NFRGSWdMWlppTG5lR1dhWnVkVEZwa2dZWVZhUXY0S0taMlMzZzRrcEY3Z2tkMzBjN2VlWUhuZ3c5Znp4K015blZNOU94UGJnU3Azb2p1MEJDWWxKSVFrOTZKamQyZzIzcXNhQS9NeHl3RUhXUzJ2MHo4bXpmVVBtVzFWTFgwSFllYm5abXZvWXRPQ3BqNHBubTkvTE1BM2VSa0lkWmVueldiZXgzSk9rcFo2b21INHA4SVpGV3luT3BqUEdWSE9hVUhFYVBtU2NJOFFraFovcXAwenBQaUIrWVZVa0s1RUFxNDh4MllndXJhZGNYaythWU5OaDZGV3B0ZTh2Y1d1aVp5OWpLNmZqejdVeTU1SUZBejMvaGF1NENtWEJDMVN1NVgrUnVCQW1KU2dNSkxiSEZrZE9EK1ExeUo3dDNUTHoyZEFFNUlxa2RhTWhNTzYxS0hWemFTc3RaK29RWGlnMkFGY3d6Z2NQekRVaWx4UU5rbHA2d0RrU0NIOCtOUmtrNlk5b2U1dml5RlVrSG5RQWlEaVU1UUllWjVwbmNoVEVqUitvZ09oKzA4UjUxbmhCdDVTMFlXNUxiY1RrVmhLSnFyV2t0TGlaTlFRTkdBMy9USUFJRHhqbDNtb1lpTjFBUHA2dXYxVTliSEFqMFBQbHNwSmtvbUhDQ00zclhxN0xjSjJpVWlTMkVWc3loUUpUNFlrNEdpRlRDaHFuRms1elVFTml1eUZRTTRDUnFNd0RMeDRqdm9Ja3FQMHdaT3o4UXpxMWk1MDZrRVZYMFRPaHo0b1JtZGtSU3c2Uld5c3laNVF2SktiSUMzcE15NEllMGJ6ZlFCdDdEZkRibjBFR1ljZWlIMzZQTUV3SkNFYnlPVy9nMVlaRERaeFdiYTZnQXJVbWozMElhWUtDWkFJV3ZKdjFwYTFxNnBaYzRlNllYMmRERTJQUVRQYy9vZDFSU1lzSUp6bWhZajdQT3hUSks2eGtOb1BmWTlHSitBNTRwaWc1WUFsSTdVTnBWeFpOSXJWVXdRSkxvZ2dHZWtQbEVIR05nVVppM0hMbUpQQXlBTFh4cGhwRFNRekF4SEdrbU1ScHVTWTN5TE9KcjZWL3dLZEtiRzI2TmVRVHNDQkpDQk9LTDcrNDZ5TWFTQURvTUZVQms1QW5oMnhXM1NDL0IvaHFoc1A2ZlZPRjhyQ2JORWttcEFOeEZlQUJGT0JlQUxnTm5LQUYwMEpEVmd0UFZrejh4Z1VXQm5qOXQzTWw4Y0t0LzVuMkFrNS9SOE5DNlJwSFl3a1FzMVd2bU4raDBzUi9HQ3RJRkhIN2RaMTZOOTVJQk1yVldNb0NUU0RyYlN3QUUxR3BYZVFRTnVVa3p0VkgxVG1hT3c3d2NyVFZHTW9aUng0QmFrTWhtekF2N25wSTUwa2pJd0pGMndJUHhFS2k2TE9VY2dpUXJsbGFWUTBVaTVtUGtDYUY4aXVnaWpHRGVZdWxCVmRyRnl2eklRQVl0WHBlb0tpSjBpcVdhc0JsYnhKY25wVDl2Y3Vpdm1TYzVTYzNwYW1sNXlSWkNLcURuVFpBNTZQZHcwRUJOeUJvUDBZTUhtUVdqQVE5L2dseEhZZ3ZicE1jR0cza3NWbHdlc1VGWG9MUVdNb01SWFFheUhLNU1yWlVNY0FhSjBObVdBSkNuZzNrVkUyQVN3RmtXYStmZGZ3cVlWOU1RVzBiL3M5cnJlejdHU2d0Q0Y0eVpIeE1pd0hGckdxVlNJQVJPU0pLbEF0QzYyNlU4WVk2eFBSK3pJRm1lRUsrandDektsS0hrTFUvSEFwbzRvYUF5eXF4a1J0dUNBUXpkTFBFQjZxcnZNUVdPcGR2R3dnQ3ZJVmtjVmpMalpOYVJRSUxDU0VXeGMxK3Q1WGx5UXptVndQQTZud0hIWVlnMlpXYkhIQ01Vc1pGRFFlZWl1M2ZCWjJZTDUvOG9BK1Z3RmFtMWdnRjZTZ3p4VldGZ2FnYXdaQW9BbEI0aUtxaU9uVFpzWUFuellrbklhVVNnZkh4Z1BvWTZ6VXdTRUZCY0JHRDM5UUlESURYekNKZ3QwbzlRQnBVTVVCbHNHZVRNUENIdVE2Sm1rTlVMOUprcWNqaFYrNnJkNGhaTTFNaWMxc2tBdGh2cWVZa0cxZ2ZEYlpXQ3VoWjFxTnVmNkhVZDBkOG5pazdFUldtWDdxY1o3VzNwMXhtRTJtSFZ6RVRlVGpwOHRZUjdRYnk2aU9WS2pPaEkvU1BEME14SlBzU0x0UUxjUjd0SXJSVU0wS2h6RmNNbHZGSXhRTlN0VVVBcFZpVFlESzR5QUtkMkZrWGlMN2w0M2hEYldTRGpJVFl4UnpuellxL1NXNVY1QkN6anNFSnVvUnBnbmFzWUFCNnlyV1hNSndOZ21BZVJqNFU3UU54Y0l5ZE5mcnRhUGxvaFFValhVWmpZN1kyZ0xXWnBLeTcwVnFRbDRpTXpLRXZhaXJvOWQyR20ySWNhbjBVZXNKaGFyMm5Ud041N21ycHBnVVlDdzZBNzRWNlErRTNUTGlJTVFyWWprWVdRbHdpSGM4K0RYRUlDOUJlTkJqblRRMWN4UUZhdUVqMGdjamhjWTRBQzVyWGdXUjd2TlIrZ0VMQ2ozRUtuSDdDV1JKVGFRZTlxQnpQVWlsc29idXM0eWp0ZGZoOHFoS0IxbXpaNkltOTFMRXVNWldSU0lGNFYyMFJDWmIyTTlScU1BV0dFdFlJTDE3eFhGUXRGQVNkNVdvNkRsN1VvazhtTWFUdURZdDhQTmQ3M1p1aEZaRWlLVWhTWGd1V2xqdW1WUmNmelYyYnY5ZnJNdjgwQVowV3c4dkdPc1VHYXFaN0h3dGNNNEFzU0NuNUh0TVkxQmtpWUZ6bXBLSTNmWFZWbEFaRk9jaUtkaUtIZzl1REVaZFlETWM1TUdMV2tHcEtqL0ZUdWEzcHpkRE85bUZjYTBYdGs0ZlpXZENOdlVWYk1FWnA0clJOcTRYMlQ5YzRBbVpBSGdhTE1sUkFaRnlSMktOSzBSZFc0QlFzeG9UZVVlL1JTaEpBQkZzQUhYREtBMlozQXJuK05BWlQrdmcxTjYwQ255MWo0TmdQa2dyUU5kTkQyS2dNVU1DOENQOEFBaGlpckdNRFR5V0ZyTVJqNDltREpaZGFHYzRGZFhCUTJPck5iZGUwNlMwQWYzUTIxdUhHUkJDTUt0MDk5eVdFdkNSWDZJc3I3SGJnQ01tRFhGaTdOd2RncTVBdHAyelN0akF2ejlUeWlSeVBqelJxeHVpdytwV01ENVI2OW40VW9IY1FTRUF4Z2haUTF2dERCcjMrTEFRcjZsM2FBTHU1Nmd3RW9CbDhuN0w3QkFBbnpZcnhYTUlBczA1bE9ZbWFZUDZKVXJTSVZqRW1iV0dhYk5TckxzcmIwZTZnaEhPVXlUOGduNnJZMWg4Z2U0V2daNmMzaXo0U1lMWkFhUTNzUnk0dGVWRjFVUUl6SHFJUVdEckhZa0FFd3FvUXVic01BRmV2MVlLY0k5cXBvTHFwS2lyQUk2NXV2am1mRGoyWFFhQ2lCS1phSm9aYlJKUGoxcnpHQURnME5rWlVsOERjWWdOMDNHYUN0QW00S0JxRDBMSE1ob3BEOHdtclNRZllTZXFzcXcvazhFSUl3ZHB3UU9Pa1c5WGZ0NExGWXZub3k5c3dmaytGbjBGbHl4WW9nWEhpMEdNdkx1WVlianJqT09iUlNQaGxpOFJ5V2hoeFZYYnhZcXdibklyeTYwOG54OEZ4WlBaMiswa3NHOE5BejlMbzhuSXB1NmhQTGZPMUYxcmJSU0M3WHFPQy95QUFLcVdQVzVOTWZNb0E4N0djTWtFa2dQT1k3R1lEQnZzU0plT0ZWUmFtdTV3dEt6Z0ttN05DMWxKS1FrZHE5aTFSRjhXWkNDeDltaXpHelM2VU4zSG1ST0RidHpiVXU4Ym1ycUhPZHdoNmplcDBCdEpsNVpRSW5BRlI3SHc5NkdCZ0lHZ3lBMExNVmU1MEIxSXhRNXJCNlgvb29vdWg1cjJGUnk3L0VBSjhmQjVrcUZMbS95UUNPbFozOFFnZUlKQkFCN2tvR3NGc3dNV0ZVR2RmSnV4cEUvam5IdStzSE0rc2RLUDJTRzM1ZElpaFNTOWE4d3BrOXRFeWdRclpBNDJxa0h4b1FqS1JKS2V3TEJuaTd1Z1RFaHNIQy9tbk1EOTFTeXpHNkVoRVp0N1NUeUtFTDJNTFV3Vkk2TEZZVmxIYkx2OFFBaDhZVzBlM3ZMZ0VaME5udHdvN0swYjlrZ0VnQ0VmRE9OZ05FbmJqTWJERHNodXh0b3l0NkYva3VSQ202RHQwdjA2V1J0OWpZNjBLRXJRb2tqendESHhmalZ6QUFWVGhrUzZtVlFHS3RGdEpTQWlEaG9pRS8vUVpRa0FFUlFlOTFCaGpET0pFRk5zTVo5SmNZUUtoZ1NaZk0rZlViREJEeVNOVWNHY1BiZG9BRUROUGdjNnFYZ01XY0hBQVo1NWpiQkZTODFBeVFRMTl1aTY0elFJSHNjTlhRV3psUTJWc3hRRC9henhnZzFxZVY2bkRjQnJvV1lRV0VpL0wreE8yTEVBOGRnT2lZd3h5OU54bkF2UmtxVnc0b0FvQ1lncHNNd0hWTzdDUzlTeEVtZkhneFhOQjZhZEQ5TlFPUW03blJTUXZZRlFZZ3pDdnh3cWRLQ2RScm1ZKzdXaytKdi85Zk1jQTJHY0I3ZTk0RzVVeUozbUFBd0Z1amRXNHVBZTlaWnh2VnRKdGFYOUIwUllOa0FMNlFBa0tUQVp4WTZMM05BTzdQbEVsakNjbUYvZzVNdFh6em81cFU5aVFSR1RtT2hCcnFKdVJpdUxDaG90L3FOeGhnWEpnNjBnWitsUUdZOGlBU1FaWU1NQUowVVQ2K25YcW1oREZDeXByU1kyTEhGUHZTTkRyTUJEYVhPZ0N0NDF4dlZ2d1BUK1FXbHIwc0ZCcWtYbzJrZFhZclFHbEtZVi80QXR5VkJ6c09sOUg4RXFpdHlRQWNRR3dqbkFGaXlFYXdKTjFrQU9JU3RGeTVlSE54RmpOalVRSkJFanVwMHBNNFh4Q1A2TnNZc3VwVlV6RFZnSjh4Z0tmZWNReDZCWlBLc3J6SkFFeDVrTmpPWkFCNG9BQmV4YkViRXFEWUJRd2RTaytBTGJ2Qi9KZTdnQ0Z4bGdsQ3dRY3FUV2dLREppK2JobFErNFRiTlc0Wk8wci9lUThnMDRTSG03QW4vZEpxK0NuYUdTdmt2dk8rY2tQVlpyRzlMUEM5dXpRazVKc2htVG5zN2xlaGk4UWxzSVM5czhscEhLWm9VSlVNNE52Ymd5b1ZvVmZnVkxMcTRsSmdqblpRQTlKSGlMV1B1TU5nQUxjL2JHcDNCMHROMVdWNWpRRTRjSW51cmhoQW9Zc2thYkg5Z3ZTbTFFOC9xQXJVekg3dkNUVmw5YW5jRVdrSGdQakRjOE1PSU9SREZneVlBbzNVV0t1SitKNUhYbjBPcWxES2ZZZEs2UlQyWVFuY3ZOTnZnRHpPVmsxN2JPb3NNMmdzRHBSQ0NLTFNYcGdTb1JxbVYwWDBCZTA5ZUVMdVN3YjQraTVMMklPa2tWWFFUQ2NMbjZ1MG5acDd3UWdaOXVrNU90ZnVzeWVwNWFsVzh5Wk4ranVzZllZN2hJdElydzhMNUxMR1NURVNwbDJXVjNNRjEzNmc1YjVrQUkwcGgzakhFT2N1UUNWbnlEUERTREtKVlpyODFMVkNIY0lja211TXAwdUFoUm9UNEdzTXlGNWl1eEhwNGRZOUczMVFpcXpsRDF6NGhpc1RabkFHeWRSS2tDblMrMVBpSy8wTjNVNEw4MEpPSllQWHpnUU40a3Ayays5aWI4TUpsZ0kzR1lDZEpta3d3dlJRMEpuaDNrRHpudERCR0hoZ0U5bzdkSHJVVHBCYWpiNmRBWHNSWlVBWUtYR0hzRVVXUG9nbEN5STlFNVhHZ3BKMVdWNGtpNmJnaWN5QkpRT29ZMjZWSUY4TUc2YTZDSlo1WnVEd29DY1lDS3RNTldKRHMyNGk3Rk4va2N0bGtoMDgycURVV1JDL2dMTEY2TFhSMTE3VFJRRDREaDkvUnQrRnNPZTBJZ05nSmlTUUdDV3BlRitRWmQ0TERHdnBUb3dZd3JFRm4xaHZTdGhOSVhCWmdNZEQ4K0c0WktrQ21zL3B6c3lRcXlLaW1JU2tqOW9Mdnp1NE5FaTlCYW5acTdHWmhKRTZHT2grQ3JRd285ODNBSlVnekY2YllTUVFNWmxsZVdkV0w4RG1hZVlPTFJsZzNzd2hUdnVEY3FwelBrS2o5a3JlR0RpNkNLUTM0bjlIN0k0RU5vNFJYblAwR1crMHJCeTBhd2IvUktBdEhJM3ErZDFTQWJNSk5KLzdob3Y1TEhJR1pjazkwQ0NCeEZaTlBiM011MVZnV011QWdvd2lObzgwZTBQQ0xtdUJlMkplVFM5aHoxcVdyS3pvcVJveTZGSTV3REFGRXhJU3JPcDQxTW16ZzB0QmF2d0FkSmk5RzYvQmZPKzRRN1VQRVMyTUtDdXJPejBtb2hUMWZrOE9kSXBLdjJDQTlBUFpxbEF3Z0JZZW8zTXU0TkFvM0VXMzM1bmc5VWhnMGV1WnZwRUlnRWszWFB3bW1RSWp6TkZuMmZwVHJiTTRNR0xqb3cvaFI0dlV5ZVA4QUZWY2pXekRkWm9WTTZqSTEzOXNvWXFCa0xRNEU1emJUUXdydmQxb2lTUGdXaHFkakI1cENWekd3TllsN0szbWRhUnFRUE93NjZ6eHJpMndONnlKSHNpNUlQVUxvTVBzMWV2UnBvN0pBanFjRkI0VEpqejFJNGk5aFVDUTluaGY0ZFR1b0dSa3lZZGdnS1pwc0hSeDlzWlV6L2w0dGtpTUNLVXlxTHhucW1HUjJPMFEzYTZHRUNNc2paT0NFZUF0YkRlaFVhM2U0Zk1UQVZPY1FDQ0szQmk5KzNJR1piNytZd3RWSExWSzlRNUtsZ0lxdThreStaU2xEdmp4M3BTd0lYQXpDTHBWd2g2STFXTkI2NlNmOUFhME1lcUZINGxIMVJiSXVaclU3QlZzR292RjR6WUpZTFZ5cjRIeGlETDRlekM5d2RaUWFoZ2xPRXdIWUQxUlZ3RjlKVU1BNGpsbkx6My9pQmJtZlBUUWNuRDVtMG9xaktlVmNqNTZEWElPODdQaGt3czQxb1JuVzdYZ1dtZGhWaFB0ZlEvRTl6UFJWZzdpSStEbzFhdmFYcGxCWTRpME5wQVlPN2FBZHI4RldSaFdqTjh1U3hXWnRybm9WY2hnQ2x5RFFRQTZreVhzdmZZaWtaTVZWUTFOdDNINC9xTmZFSGhVbnErQzJrbTlTZHlwUW1xUlhZRGpRQWc3SUtxQjhjQXc2ajhRcFpDREpySzhlakpMd09rU2tJbE5kWENJa0VMajdPWHBKK0lGWWo0cThhSzIveHZIODU0NEV1a0cxTERzZHRTNnRMSjdoaFk2QzNvM0tKcHVlR24ydmlob0Y1MDZUZzQ1MURzWXVQcDBNWVBRRDdJVVFHTGdrSUlzTE8ydmdoTlY5b25YejlWU0Q0ekxYdnpHSWY3RVBWblFIdzhtV290aW9VUVJnOUE0UFNURDI1dUxERlRYUFdWeUYwTGNsZFFGN2pRNDNwY1hUMkxCdVVURW04cFJ6ekdEdUMwcUxicURBMnFLUllQdWlGQWwwa05iNHYyRmpYejJZcG9TTVJUek1VbXRZR0RuMnJIS3FLT05zblpyUHpsZm1ZV2poRzRRbW9qZlFtZUpZY2VCNkdVZnp3NU00NFpJVXVrSllwcDhQQ245ODlYa2VnRHNqMG91b0xtMThTaVBCNloxNHh5R2Z2WWE4K2tSSExMSnFKK1ZxSVRrMVNVSFlaUHJQYWJwNW1SNEV3SWNuNTRVdzA4a2pGWnhwczZBNnUva2k4U2RnbFNFRGxQQkxMTEU2ZG5NenFJYlJ2MFgyNmx3VnVyV1J2RkMyS1pheFJESHFBT1FqcFo0LzNwUysxUi9xYjhSMk1BbGhwR05wOGVTaGlOZ1ptTUEvaGJTampHY2VaRm13UWdvOTN2a2E1QmVFTFJPMlJBbzc3MnVJSUZtZklCUXNINWZGeDc0R2VPbHlOSVpwaUJtbTRzdU5KZWhpbnJOaGQ4Wm5ZaGllWDFWRkZyTEQraWNpWnh5ZG53N1JTZEt2RndKdndtUzFOQlJyZTlOSkF5ck9HUFhJSjBXTTYya0xuR25Jd1Nzby82SGJURVpIT3V4bUxROU5UM2RRQ01jM0ZQam42c2l0cGF4Nmc1THkvMjlma2prUHVBa2ZlZk1JYWxFZm1PMmNnSlR5akhWQllieDZiV0F5K2VTYkFOY0pDNkprOEJzWExZaFpVb285OHRyWnR6bGdsY25iWUUrY0tSWWdmN21jTVkzUjdSU002UjI4cElLbDY0RG9ieTBpUFB0aWZZTUxPZEwzYmZTR2E5ZndPYUloQVRsWW5uTTliR2dLRmRUNG9zdFpTdUErNkpXT3hKbW4wSG9ETHNFVGRGTDNHbnVleG5Gdkc3VTFFTGpVOWFsVXk5NUdPdWlOb0phTWdmMHE1TUJOcTV4S0dFejM0bTBXTG15bDdQVnAyWTV5QnhHYllUTG94ZWliT3MxbEl6Z1dIUUlBYWFHN21wSkNlWEdhY3k0ZStRTXk3Uk4wQWhEMlVpeWtDNDJBZDFGMThYZ3l6TDNac2hteTV1YjI1ZHlvd0xvYjI3K0lWdUpQeVNFV1F5TFBEUWFZbVBLNHVGUWtGTkRSbkI4VWxSYllCQk9NN3FrWllvQ2RkUXgwM0VHb1V1Yk82WVRXNmNMM0drWnhkeG5MS2JhR01LMkd4Q25US1dMd3NwV3lQNlZETUNjSkRKcDdqUC9FUlZpVHVvSDl1WnNMUk1URWhzNjVEQVNMdStHR1poRnVsRkRpV0FCbklRNUVraHZNeCtWVUc0YVdyQURwU1NkWk9LMklSZEltNVlreXhrV0J0RGxnUUltckVPQ3FsS21Jbk9vZGhBR2pCWnhpSFRvd05KRTRBR2V4RXFxZ0NUUUNFV1lMT2pzVzJTZ3RmQjltMWtKS3lnVE9pK0x3dkw5VHk4d1E4c3gweng3elBRbVRPSUxKcGZPUUZwRU1TTTRsaEdUSEVMVVF3YWVpY0RYZ0drRG9XUXNCQ1ZRQlpTMnA0Y3lBOW9wODE5azl2dllUelAvZ2cweXNhRWRtdUQ4bWY1RUhWbUY4Smhkemt2Ujlod0NISkdZUkdnbWxGc0JWcEZ4RjVLVXhHTHFSa2NFZlNPemhKT2xhWXd1SVdEb1lWR2toMFlMcWxwc0V6cWpuT1ZvRW9mVnBERGpFRElFS21DMFBPampqTGtvaDNCUFNDaWFTSEFGZytOdDhoSk54MmthRnZIbGRRbXdMUHdxNmZ4Z3VXSFVHMWZjS1Ixb0dkV1F3YkZwUGdWYkEzbUR4N2xKbW95TDZXWktvUFliaktYTWdiakVtTHBaamR0RW42MjEycW5Bd2l0dUxES2lEQzdnZnZUTkVVZmVCQVRZR0tCdkVFU2Ftd25sVm05eVpOemxETXZrclppWW1kbkZLMldDbG9GTzhRSVo0Z2syZkhaSG1kOXJQWVpsODVERWdjck1pR2JwYW9pTmUwMXNIQVBFR2tETkRLRCtYcVRvYjliQ2hSRXg2NkdpVnU0bGZXTGpVZ2NZOU9SOW9RT01HUnhydmxKUHYxdVVBRkhjcVlld1pmWGs0YVFzYVVDMkx1dk1JcFVmQkJFWUYvNGFHakR2VkxnWXVHR2JlVStaS3RWZ2NxZ29YSlgwaHQ1SktVZVJ3MWc2K1QrK1hoUnIxYjRGbzc4RFdoWVFZRHAyNUNvTVpSbDFVc2F1ZUlYN1B2QUVJbWQ1ZldSMlFXcG5qTEx3d1FFVGtMbk5MTnBsaDZCSFdUTG5sRVg3VTBCSmNOazhFWlN6akdnR05zNkJFVlhKL2dGaWYrbEVRL0prenRHekdLNmpXRllFaXl1aEVkck9JUGJVRFVyVVd4RkVNWXh5WXVXZ0RJc2lVRVg5OUpJQm5LMnRXQUNIbFJIZGZXWHAwQmNRRVhKbklEZmVXL21KZDNuRm1OcDhxakpZTC9yS1I0ZUFBSTNEWTc0dVExbm9VWkJPVUMyV0xVSUw1MWpnRUhObnZrU08vZzBHQUpQaDJRT01jSzhKMFR6emFhbnhBV2c5YUVCRlNRZ2RSL3k3Nm1WNWRFaG5lamVET1BqTUFzQllSb0h0cTVMOW91dWZQZGd5a3lldk5VVnRIUndmRkowTWl3cGhsNUJEZWxzaXJEWS8vd1lEaEVEV3d2ZTVCQlJzTGNnYmhtN2pQYmlJV0FnTW5aaXlCR3c5NlgwVUk4L3FzeWhVZG1nV1ZmU2Z6blBwTlRaeVNBNm1TeG5NNXY3U2dRbVlUa0VQVlVYaGE4RGxYRDNKZW0wR3lJaHRnUGxEK2d6bVhrVFpwK1ZpcnZlRUt6Y1A4cFhCQUJaWk9lZFYzQzlqbGhseE1obDZ3UUJ5QWttR1BFd1piRDE1WmxFY0hQUktZQXJlZWNieXdRTlp5MG9PNE5zekhUbDFBNjQrcnRldEdIY1dwSzR4UytjbzkwTFBFekorQ1BzdldnZ3BWUUtURVNPd1JEQ1NWUnlMdVlQQkVsSEpQdS9DOEpyUGlnRk03U1NzaXpBYkJua05rMlkwUFY2cGViL3pCZ2tBVmJ4cjhTMDNKUUFWWHFVL2RyMk4vdUZCVENSa014ajBMY0pqbmdkREFvenc3eHArN3pMMmxYVUVrUG8vcW0rbkpKYWxsSkFtTVN6TTJHODlXaGRMN3BjUnNBN0VlUzFLQUplem85dk5OTldjcHdsRXhPdFdDTk4yaUc4cWdjUndRaytuQU84ZlhMM01XTXlPY011NlpFVGdzYlhKTFpJQnNweENVVkl2MFZmdHVGWEtPYW9va2RuZVdLZU0vNzlhOHg2ZFhTWUJwNWw2R1prUmJqT0FuVUlyMW55dVNxTE1CR05BVGt2cEdmUVh2WjdKZno5WTZ3RENGNFNkTGs5WmFBNG5NaUxZOVNpR2w4MmROcmJublpibC9yblo2bm1jT2NjQVZ0eHVGQS9POVhFZ2RnT21TNnZuYVZHUzVqb0RVQUQyK2lxUHN4SUdyTlg0QnV3N0NCMlBHZ2hvZ2RKQVlNbEtON2FOdEpJQm92akwyZUhFV0FHeSt1elZBUENKaTR1bnQ3THFRazJ6eTVyM1NDRWNaUUNZZERScGZwc0JTT05WVDJrSllzcTlLK21HMG9ieUVpdjh5NFAzMVM2QUt3UDhsVXpCRjA5NGE5Y1pRenE5eFFJUlRwNlJjRnJXSTRSeGpuU0duZFdHYVRLcUNnZHlMMlF4Y0Qya1NWQjFyeGFiOGVRYkRPREJUb2Evbmp0Q0NDWWNiSllCcUxYUS82cUNhZUpiRXJXaXJWd0NPTm5sUEMrRkd6WFFHR1IvalFFcThBMTdhd2E0V3ZOK285N2QvREw0ZkgvRkFMd1phQ3lNSml3NmtzMlB2bTRWZnk2ZnI2VGZXVnJNM1p3ald0b0JMUEJwaUVUeXBhWUhHSGNaNTh3OXA2REJENDBTemFkejBBY2lXSTNGWkEyT2dWN2VQVmVsUThmM2pENWJ3RzdndGdaeURDS2xJYVA0TGRjWjRKM2hqb3RHU2UzMklVc3JDdy9CZVJmbEFiT0dNVnNOaU84M0ltc3JDVkFJb3hEcVRoT0FoWklCMnFUbTJCRVgwRnRWREhDMTV2MjRYUXRxdHY4dEJ1QWszNWsraDV5TkN0WE45VmVaUVJsQXhCdFNyRWtIYWVsR0ttZ05LRnpOR09tU0FYTGt5VFVPZy83UTNlYk9CZjIwUGlzejBoWU1FSFZqN0NTSXZDNHNNSDJOZ2FTZy9oV2FwbVlBb3BPQXZ4YTJKUDRhcmdCdHdnU2o4MFhKdzJqa0xJSU9MblNBMksrdmZRVmdka09lZG9zQjZxcm5MQ1ZSOUY2dGVULytnMnB3d3dzNDBkd1lnSDd1VG9zQlZpTXFnVXF6WUlEMEJleWdKL2JXYmdlckdhQ1NBQm1NakIzZndGVTlwdy9rWkptUmxoT2FEQUM4WWR3S0hncFk1dGFScGVpUEdJRFN0TVpmRXlGRkUwNkJ5WFNqVVphdmc0bVZFZ2RnbXBvQnNySXlORWI2RTVJbXYxNEM3Z3Q0K0Nwb1Z0VzgvMk1HQUVEcS9BY1NRQWZXbGNCbW9PVGo3cDJPcWk1TUFCcEp2R0Nta1NzNndNRXVpclFFUFZoMEVpZFk2UUJWUmxvU1RsOE9YeHhEeHR4dnFHVllvRFJMeGFrc2RWK2tHUUhORTlUTmwrQmxpWkZjcUppZVlCVWg3akdEOTVId2JHVktDaTdrc0dMNEp5d2ZuN1hWNTBid1ZNeHRoM1NWQWJiRWdIRjVJWXBVRVRVSDE5dnFtdmQveUFBeStOangvRVFIMk0yNWJyb1NPRElsMEhRQTF4Qm5jRlVEQmlDa2JFUWx3UzRoQ2g4eEZVRUFYeE5tQ0NaRTBwSmVHakxCK0VhV2x6SWo3WXNmR0VFcWM4aXEzRy9iQ2RNa1VOdkxzbXZkR2pkRlVzY2ZKYXEvdFBuNXVFRkxBVnRVSlE5aGs0VDdyOEtkaVF4c0hLRUVCZ2p6MWdLUEExV1dSRjh4QzlFRkE0Z25wbE5acWpGaGtMUHM0QXhRMTd6L1l3YjQ2Qk1nNWZramJ1d0NLTEJ4RUF6UTZlbS9zVWVjN1NORmVyK252SEdXb1dxQnZuUkZ3S2hkTEVNd2hpMGlUVTZZaUxHWE1LbGY2RmlZM3FqaVJ3WklYb0xsU04rQy9UL0xxb0hSd2JpVDhmTHVxMkwvemEzSElyMkJnOG9TYUJxakU0bEtvQTFyUEc0bURCQVpZajdWcW1XUXNUSVhoQTczUjhVQW1KMzVSQXhMNUpWc25HWlZ6ZnMvMXdFYXhaak0zYk5FSHIxdUJ3Z2pRVElBZm1aaUUvTlZySGU5aFV4M0lVN2NsQzRXTmV0bFBjblM4Z3JYbkp1OHZKSWlQRHBEcXluTWFSZHdUNWlDcTUxejRoaEhuVFFkT21vWnRkU1piSVBmWXQwWTl5cHZINU9QdUo4aGtoTkhQTUQ1TW5qLzBLZkIzbmREV0FMbmtmRjBMd3d3OCtMS3JLaExtNmQ4YWVEa2FnWlFaMXlUVDl3VW1XWG42MWhVcTVyM2Y4NEE4UHJDdC94TFM2QWRiTVRVMGpRd1p3bnI5K3M2MTFaalY0UjBzMHNHQ0M1WGlRWnJPbmZCU1UzVEhUL2xERmd5TndsV3RFTmh3TW42emdNRVU3dnRyTUF4RG16V3VQTUFkMElLTFdUalpBMXkzZ2Zkb1RHTzBjdjVLNS9Qa3gzZlJQK29ZMnpDeVUxY3NBVW1NQzdDUW9vaURId0dIZUE5NjRBU0hNQVUrNEdUYXkwQnVxRkJhVTVIOVdqRk5lYVdEZ2FvYTk3L09RT3NwRVYweVU5OUFXTVg4V3Rrbmp6dmtOTjNaM0hPSnMwTSs2UUxpT3FIWklCdzRkSzFCL2Q3Umxxa2wxQmtIcjJxa0tUdStLcEs5dU1GalhMMEIxTTA2THVGLzFndk5QZGhKdEdUbGlBYjNnZmRoNzdYL1haREVFak5RS0hFVFJVeGdSZkIreDRaRWFnWkJCV09pakR3TzFRdWdqOWdRUk16QVUySms3dlFBWHJyTXFvZ29zV2xwVnA5dGViOUgyMERoOE9JTDB0djRQelNHN2lNUFBzeXpURFBsUDZzVzM4a0F6VHc3UFVWcHQzblJNOHE2eUFPOGlDUW1xNi9tTk5MaEM1aDJWeE9LSFlQV2JJZjVTTmt2QWh1VEY4cHdHSUlWY0JjQ3BETnhpb3NEQkRDd3VBR2xDeXc4OUhkMjdIdWQ0YmNZQUxMeVFoYllJbVNPanlqSGJ6UDJDZ0wwR05Zc1VmNExIVWJhSldMWkNaazRBTkNWaUhWZDJoVU1KTUJySUJ4bHhpd1k5YVhxSzBEN1pyM2YxZ1UvT2twZ2tkblA0c0h5UHlGUXBWR3R4M2hYcDFad1Jpcnp6dEVNbjQ5VE5IQnBPTkdISVQzRUdYSXIvY3dybDdqc0d5L0JGNWNBaUVoTkMwa2FIUjIzNGRGU3hqcVZRbk5HRExwdGdzWUd4ZVlRNEpzb2hETkdkMWU5M3RHaUxOUjJtS2FtRW41RWhkQWNyVEtKOHJKRVZMcmtYK0FoOTZwaktxY2pCWkthWHBkYjNmbTVyVk9CK1dWSkJ3RHhKanNNdi9JMVpyM2YxWVYvaVZMc3Ywc0lzamxGVWRmam1VcC9lK012KzV1S2RMV25PZ00vYXdEL0N6ZStqRmlCUUdRemtyQVdaZ2Rod0lJaVhjQTVVenlja0xhK21peVZ4ZklxUEhPNkZoaURqUHkyUEYwN0dabEZnKzdIYUpOUEtwUnVpK1FRZElxaEFLd0pTZ3VPWXRxYWxuNVVPc0ZJTlc3aGc1a2hvQmplTXI2dHBXZ3E3bXdBMVMxWkw0SWlxbXFFVHhlclhtLzlEaVJDd1pnbW92S05UaVdCcFRKOFdjeGdjZFRqSDdVeDVpQUxsYmR5VVo2OHV6UVgxeEswUUVabWloVFlnOXh2d3psVGxoMnBGM284SkFESWZrT2NqUEdoV2ZFSkFPV0NXUjhMaTRBV08vWnNRYzFuZzVOaUJxb3QvY01pYmU0NXFPQmp0NnI0cFlBeENpY0xJUDN2Yndzd0dpRTFXZ2pQQmdNSU90L3hrUEpqYkVMaVBTLzRXb3VMWUZ2VVUzcUIyRnhyWG9rMTJ2ZXoxclY3Y0FBTE5XRXZVMmF6c0FmMGdEanVJd0tua1JVOEZlTy9vZ1Y4ekhNamxyQlNLdk0wK3VsNmVHY1dBRGN0SVA4Z1NaOGRyeEF3cktKR0tIWVZhZ0J5UmtFOVpPZHBBYUVTU1JKb0V6MGdFL1VETEVuOHVUbGpkMUtPSlo4RGxBTWtRMWFmZXg0cmJnbFNtTE9yTkpzQUJnSktRNnNEV0F6UUFjelZJVHVaTmI1WFRLRlJaVmlhRnlWQkhmNG05eUU1YnFnT0RDendhMmE5NmVxdmlVVlR1L1I1NGZ4SElkUm9RK0lqTnU0QURuTTBTZWlxa0t0ZlJHZHFUS1AwTjhFbVFvNUFibXJZRDdhQ0VLeDlrWmhTckhyU0svRVRMRXRDVzVNa3Fic2ZTU1dMQkZOSjNsS1lBNkJHR1RaU3dXNEVlTm0zVVFZZ3RUdkRocVdHK3NodlliRkxiTkdNWGdTNE5HRU1BdjM2dXFTV0J1aHM5SmZHTUNpUWdjUkV5MnpodGorVmtXRmRrbncwK21vTC9lUE5KVUN0Z3ptWkxsYTgzN2ZxbkI3L001eWpWRTZLWW9qelRBbnRBbkc2aW95NkNpSHk5RTNaREFuRkZDZ09rQUUyR0xDT2NpVXVETEkwRVNac2tUdGlZQk9ZS2JLU3NDQjlaUWpMNFMzVGNlR25ESjBZcFIvRHRuTE9RcUtCcDRmTDIvM2NxSWVJYVB4TnNwc2ltSkRYVTZ0Tis4WVk2K3JPZFlwRDFUaXQ1VjlPMmFWY2h0b09VRE55Y3VqQndhSFdCdlEvOTg3cXcvVkFkS0N0VTBOdXBvckdpRXpyWkxnK25SdHhnRVV4Rzg1V2E3VnZEL1ZOYTR4UWRoRDFoV0NFSk5KdUN3cHBjSzBYYzc1aENFa1VINVdvTEFwbkRodnhzVHc2dlZURy94RWx1STYvOXNoY1RpYlFGVFhtRFlPaEFPeTI1OVY0eUZMSWN1L2dMZ0tLUXpVWlJaZVBGV0RnYXVCZXNka2NiN0lMQVBLL1RhOThGWXMxSXpHNG1ZZ1Z3cnlTR01DS3dic0hxdkUyaWdEL1B1dnhnTUFFSUlTK2FCcXBqV0lyUVFPdFV1Q28rRjhvYi9EYzNPeUhFK3RtdmZzalNyM25DQ2NiZXpKeVlLemVRd1pUVndNSnNBUGgvT1JMT3lzT0crODE3RUVyUkpyajFiUCtobDVyRjBzRTZXYnN6NDhkQ2FSZFZIanVXNXZWUG05cWpmL2t2NmlSSDNncnFIZVUzWHhFYVhJbkF5eFhJSXpvdnl4VFVoZEhMSEE0cTI4SEwwMkZEZGp4ckJVNVNLUlVVVDFyMkJnWlpKQVpZRC8zc20zUkZLTERWY1c1QzlvcHhnNjFTWEJUekUxQWJVbFFEd3lKc1RtTUp0dlNLbVk0RmpXM1piSEplWVFOelp0ekFhQ2lIaGNISGt2S2lFREpkaEVzWkhmSWFOR0tWd0I3UXR3N2N0MW56cEdGc3NrNXVtNXRKcW9zR1BOU2ZSbnc0cFdBaDNqcjVlVXdqRGZSdzFVV20xRHBrSnBVcnNPRkdhbE56ZmFXQ2FwQWU5VXhRWm1DMklaRWh0TEJQMFVmWWEyY3dmc2VXNUJjLzlSTThBcGsxcU1JU294czdoamlMbUtBMlZKY0lMeE1haEZpb2dzMGZ4dE9nRWJwNFh2dlRKVkNiYS9KR3dMYy9qOW5WUEU4ckJnb1RNeGlBNHE2OXFnOThtSFVHcFMvVS9RS3E1d3VPNkY1cTlmVEhRdnU0bDVxdE5ubU1Mcm1MSnNickVPSVN1VGtIL0psUTUyWk1BZWJEeVo3b3dsNHVDemY0SUZ0NGN0czlBN2NrMFJTM3dHOWszSWg2ZVB1SlNEQWRLbGwrWWNsd285dXUwWXVoN2IvUzlqQUptNzR4ckd6K1ViVGJpQ2Y5YWwxOHNhNEtkajRxeXpSTFBocU5EQkJzdVlJUW1oeDArOGIwYXVvSUlmZTdpOUllQ1oxOUNMMW13ejcwVnVORlNEZ1dDTTdEeUVEQkswU3F3OUVNNzMxZDdmQ2xManpxMWltVk56aXBhZUV5eDJYZzZ6RjYzMFdVSElpazNkL3RJckRleFlwRG1XTmhpbDUxWisrc0V1RENjd3ZNdmZhcytDZDlZZEdnMVQyK1BwdTF6S3Y3TG93NmU3OU9TQU9jTEMyV3dlSDBkK3pJNWtBTnZaWWhWekdQK3NUS3JqaUdEYXBORGFOY0FMbkhXVWFDWlBycklGN0dwclNVcEc2SU53cGF2Q2pkcTA0aEdrU1RDclpXWWloZ0FkTmhGaGFrQTVOeFhMejJXaFcwSkd0UVZLRWp4VldQL0FTblhOc1RXaGhZd0NUdCtwTXNBM2hoVXU5NklwV2RxbDR4am13YkJrMkZLWmY0MXUzbmVHNGxScDhBOEw1aFlYZWx2bHVjM0pTM1k2OEE2K3I1VGtFRW9lMWhOaFhWdzVua1BzdjlLVkRWNUZlcGovS0FPWWJRdXJtTVA0TjJWYUxmN0pIRExmYU8wYTRJbXp6cnFCTlBDc28zRVUzNW1xWktkRUlGSnlPUzNyd0owZHVzbzF6T0hzU0NhSGNrRjlkR0M4NVNMTFdTWVhDUVZaeVVyRnh6SktQUURmeHZLYXRQT3Z3LzV2MWcvalZnWTFoQ2VuRGdKbExqaDhQSHk4bjVuSW5nd1EwWEdDdE5RekdOb1RjVWUwZzd1Y3B0VCtMQmhBMkE4U0FFVytXZFU2R0dEZGE3eklnRHZEbGRlTHlvK0hlWVQyejQ3c0Rpakw4TW9LOEYveEJsN0MrTXZFZWc1QVl5SlJHNE5XRGZERVdTUFRQeG1BUUY4Mkg4V0lRZFc2T2p3NVFOekFITHFiT2ZPV2UwWVRQRGVUMURMMlJWTXV3M011cjZBK0dNQzRLQlJaNmtHeDlnTk11ckY3K3JLU0pONkE5MElBUklBbkx4a0FZMDAzOHFKTVpHOExid1laVFREYWtNZnBhbmNHWU9qRkM2ZG5HZUtsbFFvc3VqeFFUTExmTVV5U2hBU0RBZkIwZXJRMktONmFSUjk2ODlLbUQ4SGd3VnNPaENNbGpRSCs1NDYrWmpnOUhNOVVwdFlrSXBna1lGSHd1Z1k0MTBUaXJNa0FtTDRJUUdWam1IYVp3SVFPb013VVhJYTJiQnk5bFNsdHNzQnNWRXJVSDZ3bU0xRmhZVUhRVUVFQ21ZQ1FKSkNnUmxrTnNneGNrUVlYMk40R2ZISEpBTlFBTFh3STZaU1p5ZDZvRWZtMFFVRXJmREZrajU1QWhtWkZvUWNHZnJJUWh0bElPOFlBSFVjeG1iR1Ird1ZqQUNFSW1BTytBaXBMSkhRejZDMDhHSW9sbVpQdWlOeU1sTEJDZnpBQUl2b0dEWnpwREtVbGtXd3lFNWVZRFBBUEdTRERnaTFjZ3pocjdFT3J1aE5sV1ljcG9md3ExVFVUcmNXcmVPQlU0OEZ0dkFYTDlxNE56K1gxUlNQdlJjUkY3OWJLQUJiNDZ3d3dTK20zWWlCc3A4RHdBQ1c1bXpQRXUwVFVsU0Y2YlFZSURSQjV6dUhUVEEyM3Fxb0RZdlhoWWgxRmRaMWdBSUp3U1J1T3JtVy9OQWJ3T2U2WkZHMDdSQVpRNWdDa2FHS1ZzTTEwejdwTThyQk0rMXF0QWZ4Zkh1TUs4UC91NFBhUlNRWkp5akNXMGllYkRxQzJCTWlpREVVMXFRNHRVWW05UTRsa3o0aU10WU1iSWRPNEswejRxaWdPUmoxeW9xcGhwUVFpNTNJNEhEdGEvdzNnOGhGV3pZNHRBZmJwSkliS1pZcW1LdDQ1UHlIQ3RDa3BvYjFkTWtDaEFYNDBkR3FqVlpXUiswWWwrWFNsMXloVmdKZ1RyR3hpNjBWa1k5ZGRLeG5BUXBqTTRZamRpMXFDeUFCa0RtMDYxSlIyV3hZa3dUckEyRTZvZ1R3aWZlZFlpbklGK0g5MzlPRnFnSk5IekY5bmdOc1NJSmIxWFNjVHVqTExBdWFBdEtGbFJDN1dqaTFLOXhXVkNPWktQVkRIVnhIVEl6M05jeUo2R3gxUFlxTkFJWUJCWXRXa1R6K3BGNGtVWGg4TGQ3UFArV1NBeTRwRE5RTndhOEd5R0Jib2hrYi9GNVZVUUtvMHhHcU5wY2t4R3cvSkFPd2hIb01NZ09BMk1vRE9jYVpwNWEyWHdRQmdqak8rcU5RUnlXZHkxTk80STkxVnh2c1Y0Rit6QWhrRDRIc1N4ai9VcWZhSEVpRFdIMjBlVnBHMXpiaTFCaWVYRnc1WC91bnBBNTVrSVRGWVNuTXRTZ1lndERRa2dDd1JqWEFBVjAwbU9kckFCa0RxRGVIdHdMY1Y3bVlBZ0NuemdnRVM5Wlk0aldDQTFBQjFRSGVzVzVUaElpYWhpcG1JT0R0aUFPVU9HUTFqc0RzVE9zRUFzMkFBb0ppUTVHWE9XTitDQVFhVzZxSmgwV0l1bGF5WE02ckkvRVgxRWM4c1Y0QmpyQUIzOU9Fai9NVURsdjZVQWJnRFdUZGxWaHB1aWhlOUl1cHRlcDBCMGdlcytvM3JBSkI2dzNKTnFDSUtVd2RZbmZVeExoZ3poMXEzWTJnZEVIOHl3WXFaanhMVk4wY2t5MDZpNGxDLy9MSmtnTkFBb1R3V0dGd3Z3clFFcUFpVXNCbWhzekZoNS9uNmM0VDhHOTdyZ2dINmEvdC8xWjhqanpzWm9Ha1FHNnZhYlVSVkZmWWVDekxQdlg3dUR4WTljRWdhQWJnQ01FWE12T2NGdW4raEE4RDlYak1Bc1ZrTG9wY2p0Skx5MDdmVzZMM0JBUFF5SVU0MlRCWE12TFgyaENhWERJQWZHbkd0WTRKVmMrQkpqb3o5ZW9yajRpN3RGUzZ0Y0RjL1U5bkwwSExhVER1cTRWMW5BR3FBcUpPTG1ub2ZCMnRrZ0FSVXpIZVF4SWkwSEFSTDUrc2JtMXZtem9JQkhwbXhTWlVaa1NENllYNE1tUjdWZk5sVFFTZmNudFZLV1BreEt1bFJqYVlwZ0FjVkYvVlJHd0YwRDBBR2tHTGVyQXlBOGZnSkE5QVFlQW1zUk9TUUN1TkRQYWtNV3ZEQjJqQTNHQUErWU9RYWF5SU5ubFZmMkdYUjZQSHlrZ0VzRFZWZnczWWJnRWNqeVJHNTh1TXo3VFFhQ0RQRG8rUlpDTzZWUzdLOENlUDNzUkdwR01DelJKbkxsVW1DT2xDdDFteGtBTk44UVhITTA3Tng1bVdob1FHV0NaQ2tHTjJOK1JpZ3pLaWlvc3Q5TUFDZWpaMUxNemlyaUFBRDBLZUVvWTVXTFBYSEZBK3NiUDFhcVlCa0FDM20zVXV3ejIwR09DM1JLZ1lJU3ZkMnhLbXo3am9NM1FZdUN0REZkUVpRdDIzVUQ2ZWQxOEw5ZTU0UkE0NkptZ0dZelE5THBRdzR4dVZ6VVRJQVFyZERSR3Q4aFhxSWFRMUd0RGV0amtVZEl1eUhEaFVEOENWVEExeXNJV3NKWDBnWGU2RUVJTW9hMWJpNHA2aHF6Wm1xQnBJVW93dUhCRTBBcXFqSXg2VU5CQlpiTXdFZ0l4WVlBQ3QyTFBQa3hsVDJTMU9BSU55aU9Dek53TWtBS09hZHFMUGJET0FKdWRzTTRCbXk5RW1seWVXOEU3c0F5dkJSanQ5Z0FCODVnS2hTaDBDV0RxeExUNGl5cXhtQUdYUlJxQVFtQUJrWHA1YjdjV3dKb0NhMW5Ga01lOUlmZVI1Vng4NDZSQnE4N3lTckdTQTB3TSt5bGkyYTV4aGRSdmxDOEJCS01tT3l0MEtpYmF1QWZXZkpBSGdMbWdCa3RtTTVwK1h1WkVac0NEcnBudytVQWJ4YzFyTmpNTkRLN1g1aER1NWJ2b2ZLQ0pCTHdJNFdxNTh6Z1BpTkdLNzQ2eFFoOFBxcHEyNFNGU0lucnpjWllQeVk4TXF0K25vamI0RytXdFQ3cUlQS0hSalJNY081Z24vN0JQalNrd3ZFTHIyMUZnbTluRksxUUlsQmZSYjhoNHpyTjl3UjdFcXhZSGxOcWJRQkh0aUk3MDhuOW42V05ubmxJVmhuYVptcFVURmdFaENxdFFSNEJTZEFnYkF4aDR6Q0NHMk5PWVRZRkZTNHp0alN6TDNTU0VmT2RUVUg4L2pucFJFZ0dZQUUrUlVEaUJSaUFNdmxFckNnYWFOQTlIb09uU0x1L3lZREpBUWFKWUFNc1VpWmxCVi9hZ2J3d2k5bUF0REJ3Wm9KQ2FLeEhHNlVVVStYeC9YSWZLRnFBV2lKeHluUW53bC9aQmpUb3NBUmZxUUd1R2JENjArc1dTQmtLQUZtbkZiRnNoOHFRTWtBZURObzVUbTZicm1IZ3dJSmxpeUZZVkdERWlhQTFacnlod3hRT255a3FVa3dWM3Q0N3N4VHpGaVJNQUw4T1FORVVPQ2tuZGJDNjhlWHlCRDYwaTNaeGU4eFFOT1FTV3VPeUpwZk5RTXdxSmVycGc2T01vQ2xueU1ETE1BQW1lK1l0Y3hZaHJXSVU0QkhFcVdNVE94a1FmbmR6anpaaFFhNFFrUEdqUTRhK0J4TG1mczZzT1JoVjgvMTVMM1NZUUVOMWpHNVpJQzUxMkE5Tk9sbm9wRkpIRzdJTFN0TnhSUkVlaXlleUYybXhzU3FJZ0RXQUxET3BSSGdUeGtBT3hFcmZuZXRRcmN1STZ2TWFoRGxxQ2JoRVBWZVMvVFNXZ0tLK3Y3VXAzbVpXdE1YMXdva2F6aGhZSC9scTRHL2JESkRTWWVwTXRnOE1wSmxlSGNacHhEaWQ2Y0JPYTF5bHZQR1RLdnZvUUdDYzh6SzFHUHpCTFJMT2hzKzVTeVd4M2FIMDZ4a0FCZ1QxRHhYTWdEREhWUXlJWk40ZXBwaFpBTDhTUlV0NXFEb203cnMrYlh0S2ZHTERNQm9NV0F4YWlQQTcwZ0E1RUhJVjNSYkJPMm96Z0JsenJ0QkpMdEFMd1J0cHhNTW1sV2lMZFZCTUFBOXdnUGlZZDBWM0lCUXUrQ2ZGZ1BRSW1HYU1WS1J5S2dsTnRHeUtucEwvNDUydCtJVVppejdPZ2RLbEFVY3VMaVJvOGxxTG1wQm9yNDMra1ZENVRLcVUvUU9MZzJaSERHb0NhVVNpTENrRVJMek5OYklBREJDQWtxR09qNklOeHFNRk12b0dmYVppckg2aFlqU3dHSjBKMjRHL3AwbEFMa01SSHJTRmxmMmE3SzFicnJTdUlVQ1p0b0hLRklrc25DN3A3Zmt5cTRvWFZHNVAvM1RmYmVLWkhmMCswU2ViYURUOUZHM0dFRG90bVBrajZZSnl0UlZmWGxDMEdoZFpPTDdQRVNyTVd1SUV1bXhJcDZyOUJHK29WeEdmd05tUURabkFJcHh5bHZQejVxK3JDMnpaT3BpUXVlSC9DNjNlaytxVDF3bVZDVTJDb0N4VjBZY2h0RXp3MDVoRkpqRUx4VEdTQ3dHOUJRZ2dzd085UDl1TUFDOW1peWFuNGtzSTk4RmNyK0JnOXQ1Ync5ZURiWk1rV2k0K0ZGWmZkU3NON0VFdUdrcFNNdXBaTWtSby9Mc3RQUUZNRlc4WWVRN3BpaENDVXhQN3FKc0JRUDBpMVl4Z0pVYldORUZGNFdXc00wSHplbFVldUV1TXh2ZDBCQmxJVy9kenM1alhHWkFVNUhtL0YvM2lRSjRaakhhYjZqN3hmOXNWOHh3NWplRkZOeXJ3aHFiejZ5eVkyN0Q4dGMrd1hHQnhUZ3B2b0dMd0EwR2lFUkRUVStUQ3NYOG0wYitpblZwODNPYkxYT0xlNllLZ3EvUkc4Z3pNSXVmS29Tb0dVQ2gyeVlCYUhidlZPaTB4L1FHRWxyS0dGTVpKZ1NrZG5vMm16dzhyMjZac3FOcXRrQ25wOW54MThzb3RaYmFBNTJ3dnNkWjVYK01SS3JsTGJGeXVKd3VhdE9pdDBEZHhQOFM4TzhRUUNFeDdkV0pJZGdibEF5d2xUSHdCMW5ETXFFbmpLLzNYNFlyU3l6R1ZCckJKbHdFYmpBQUJnUFJWR1dkaTZubnJJVjZrc1djcTl6M25ENEp2a1p2QUxiQkxIN3F3REpFVXdta1o0ZUtDcXR6MU9pMG9GSTRPd2ljRmwrek5LanNaMWZaSnpXRnFLZ3JXNDY4Wlp6Q0thc2xFbi9OR3NPUXA5dy9HRUFiVGlYd1hka1lpMWpMMjhES0thR0VnbmhabytsRDliOVdZQWhFUm9XMGQ4SzdIVVcwTE5vTUNDU0hZS0E1REsxQzJHd0FaU0lEOElLeWF1elBHSUFsR0FLTXovbEg4N3owVjlVb3JHSVNwa2RXZzAzd05ab0R0aTErbEtkcU04d280YWhRMWRQMW5tVmpXVzBycVVSMTVqdWdJbUlxeGpIT0pwS3Jha29TWk5YWVZzMEN3N05hSXZIWEpOaERRQjI4M0JrQ3NmVGw2Z2FaSWEyVXQ0bVZBd2xSaHBiQXQwZitMeUZLTEpxSHMzQ1Q5MXROWnpBb1dqZWhkNG14QStyT1FTUEVSeWM4STAwQllBQUc5MldBeHBRUjFRSEdKenJVOGxkWW1laGVlUDVSN2M0eDAxa05OaEpZVk1IK3hIb1VCWDZ4d0xHT29wNklXN0lZR2JTZVJLZVZWQ0oybFBBdlNEZmt4ZUJzU25KbDAzbU5tN1lhWnhpUlVNQ0xiWlpvbURrT2R2S0NoM3A0UEFhOGpQODVVQlJ0RS9KMm5NQTFiNEtXYTVFMlFZbzBzd04wRDNnMy9nTmVyV3d2eEJoZWZrU0pzb1g0Si8wNTVMV29Dbi93ZzlXU2dobjM3T3FJbGVHcXdQaXMvUHNZZGRheW1ITmRIZFBMVEg0RGZNMWVBamFrdFF0bks4S04zVzhGREErazNkVEZaTXVhbGdiekFUaDBDU0F0c1gwK1FrdVE2NlZGbzdHQmhMUFY1SEZvNkRpcE5DVzBGSVdNbzVhcGx5SmxxNUNpd0tpUkVTcGtIQm5KUDZIQWtSUGRYZUR1Q0lxV0lTUlhzNUcvU2VxV0dLUDJFZkRRSDhTeDBNalpLYzBldVFhOFJJQi9xWTRFcWtxYkEwY3pHeEJzbjU1UTRRZzZCSUxJeTB6cWVJM3IzaW4rUTJjQ3I2Y2JJanJaT3gyajVxdGRubVZqN2FRb3o1dWkwTWdFNFJLRWUzVHlzUlgwMFZyNjlzVHhKWUhBT3pIcEV0RVBKRHlxRTBzakI1TlhaN05BaXBLcENTME5ERncyREZnQ1JNdmtJTGJnRmVvQUVpTlFwY3hHQW1FbHZGQmt5a3dibk9TRStwdUdWcG85OXNFQUlUZnZDM1ZFQ2RvQzQyOU9Qbjk5VmhPeUNRQytZZkJqTHFDK0J1ak1pUUtpWjB1bWtJdmlpcnhBbUkyWFU3TG1TUXJpZkNsRklmOW04ZTJpZERwSXNVRUJ5NUpBb0hKa1Q2Z2JaR2MxNlpoN0J5RHRyKzhvclZ3azJxcVJvcHdYZERCZWFDSGNOSGR6anpjMExCUGQvYUhDQU9DTVV2NlEwTjRnb3BQVTJUSlRmRC9Ud0pvQXlKUlhoZGtqR1NCcUpITXNYUUsxd2ZnekZ2Q2RlVDFvNjhYY3A1U2tHS2ZBajNGWGxZUS8ybW9URC9BSy9vbmx2a0ptbHljRlhsU0pWZnlONkFld08zcndEeFFYVStXalNTY0FqVVFEMW0xQ0EwWk91c2krQllVYWtHTWNUOGpvcGthS1JtWTI3aUdyRmxsUG5aeVpUYW93czc5RytYRWF4T2RGSzB5eS9XeGxwdmlLQVk2elNIcjNxZTJTQWRweU02dGV1ektqS3BIU2xySVlZamdCbzlYZnFzaTVhOHloMVVDNGtnaVhpR29jNEJWK0FlaFdJclB4TjAvU0NneVJjdVl4L3M0Z1dHNEZvaHVFU1BvWTVGWm43aFVDMGRpVWsyNjF5a1JRUUdGNjZtRTNMV2NjRjV2blpoeWJTWEJkdGdMT3dqYVBHcU9GbWYwMVNuT0hSeVJhWmF2L09IaTd5UUFaRHZENS8wbTd3Z0M1YlVtZEJHWFgwZThLNXVhZEd4cWZ6cjZrVlg5SElUTWtNYUE3V0ZXU2R4TGhFbEd0QitoTTh3dXc1YXlRMmZFMzBUb3dubWtzbHp5dlNFQjFQRm1BdlBZZ0gxZ0IrZ242REZndlloblpFN0taWmJ1Y2RPdmVnS25naU1LTTFNTmhRaVNOdkRXb1dpbGN5LzVEdHRLZlJYb21EckdnWHBZZlQ1ZFl0SFV3UU9uUXVNVUFNaVVZTHdiNlgyTUFGNXFwazJBSnBrRWpGRXpOSTZJdHBqT1h0TWY4Vzg2Qy9ZaldITEdqWTl3Um81NUVxQkhWUEFCbkdpQnFIcjlmSWJPelBoT3pWU3BwMUY4RHV5NVQwRUUwWlFqSElBcTBvU3ZwNHhsT2FmeFAra1RtNzV4MENBL2krWkNMSGpya2xkU1NBUWdVUFVUZVYvWm4rK3hYSG0wd0dKQndMVERPU0pxckJ1a1VqOVpPcUp1Ni9TVURSSmFRNXVNbUExQm9VaVhwdXNaUC9UTVVURVgvYXZQcW51RmZ6YjhkZFdHT2tDZjR6alJhTDczQVZhUFhOdjBsaU5OMXIzV0Z6T2Jmb0UrbUxGZTZsTUFOYkxzSW94NllWeUFaWUVFQ2ZSd2MvVUlHeVBZWkRKQ1RqbDZNTkR0Tjcrbk1hRE1BZ2FKYUhJaVZnSmsxancyZThjcWZwZFFjUk1hT29KN2hETGlPSkFNRWlaUWJrOVNsSWZJcUEvQXpRZityREVCSGZPb2tRK3o1R2RuZ0NpWXMrTDdEd09MbUU1MlRrL0RHOUpnL2UvejhLdWhNRXBBVXlRRDBLNXZyaC9ibENwVmxmMWNCYUVvdDRiS1NBVXlyaDd4cmRuSlR5ellha2VnTjZXT3Z4RlUzQ2NRUXNhTFdvOUlIZmt6SFpod0xZRkJ6dUdBQXhCMElIaUJJQ2s4QTI4NVJ1Ky9wMEl6Y3lqcEZxbXBmTEQvKzhsZ3dRTXJvYXIwbzBxLzhsQUZ1U2dCN1JLR1RkSEtKQktRT2VHSURUL2NiM05zOHQ0eXBSaGJ2UmVNUlExNWFGVVZPd2Q0ak9GS2NUeXhNRTYzRkFJalRaSnpXeS9TWERNQWM3Z1VEVUt0WFNEcHFpbW0xem0xR29vTkFxNmliU20yZjlMRzZ2NVpDb0p4MGtSTCt5YjA1RmhUUUwrUk9ucTlQWDBYc0FyTG1XVk1weDZFbzQxb1JRRVVIYUtYWFFUVm92VXl4azF3bXFhLzNwZzdBSEFzL1dRSXFQZk9RZVpZeFFhSTZiczVzdkN0bnQvN1V2K3pBcTQycG40Z0RYcnM0bldlZ2RnZXR4Z21BL2w1VWZQd3JCdmd3TGlzWndMWDZRZDlpYlRWSU5ubk14ckNiMlFYR29lUnNoK1RWVG52U3lSSFA4MkhPZm43NllYNlZBWjZmSElZRkRuTlB3S3VEMERBVWxRUllwUVJJdlE3cDVpa3Y0dWF4azZ5Z1c5ZDd5UUNXem9BUmdiOWdBQ29sVFZhNGowclo0RndQaG1OMTBveU53UWdkNW5ZQWUxOG52RE1DNUVrNHowaHRYN2FTQVFnQjJiRWtlY2tBRHcrWERMQ3dGNXRVREVDdHZ0K0h0OXIzWFh3RUNMUXRzSWUremRHUHNZL0RNSllFVmF4S2xCYlVaWkhnaFg0dkdhQ1cwaVVEbUpNQzErQTRhMjJuRG9BYVN3Uk1sRFRkRFM0aXFLcWRaSkQ2ZWk4WlFHMkoyQVo2UHBPZk1RQmZhT0FWN2lOdEIwVUFidUhWRVJJZklTUkFXbzFJM2UrbFVDQ0VBYnl3ekR6dVBJc0ZIOHRXV2J4djV4QVFHc2FTQWJiU0xobkF3enFUQVVLck56bXFLbnl2WmdEUUowY0lobzU3c216ZmRQZWFvSjcvM0FuS3VoVXlSRmNaUUZvQmdkZ2c4U3VFbjh3VzF6ekc5UzVBaXdHMjRIZ3VwNEFvSjNWeUoxbVMraU42cnpHQXREMmg0L0R0d3hMMGNZTUJLSkk2UmFHYWtwZ2pGd0JRaDZFS3U0cUhlVzdNamJpMUI4OFZRSXpRTXc3TTREOHA0U1NXNmpJWlFCY1NCc0hUamtyYWp0QXVHY0JlcU0wQWpUUW84Sm9DcG1reGdIeGdBVDdWL0lUT3k3NEFpUFpiTVVBQU9mU0NRcjVsVWFCQ1lxQWx1RkZUYWRxSEpDNDMwVUVmYUo5Ui82T2dYaW1ubkRwc05ha1hWM3Y1eSt5MlNIWUkzejRRVkIrWEVzQ1NFakRYZ1JIY1pCSUhCMlNHUEkvQzIvZ3FYd1E4aHZhTlFXK2krWFpSaVIyeGRQRDNjNnhidFRxUmZUVzZlbzNSMzZJRzlza0FBN1lMQnFBRVNnYWdqUlU2b014UVJhdkRyaG9NQUxVK3dhZW5vMzhJZVlrQWpKb0JraGJVY0xDYSsxTmZDNTBCVTdycE14MlJCelVrY3RzR0x5UUF0NWtPbXkybzkyeUpJd2JKQUlUZWg2TW5UbTczSmdORTRuQ1dwa0JrenZxS0wwQVhaekxBVUN0aHBRU0R4Q01XSGlUMWVZN1BjclV3ZG5vS25uUWtoYjYvdm9sYjR6UVQ0NmtGS2RYZ3RPd1NlU2F5a0Fpcll6SkFQMXFiQVNpQmtnSG9xUllkY0cwNklEMHJ6Z0JvS21lY1B2S1Vpd1ZnMzJhQUhGSXZQMWV3SGQ2WGsvVEQycUZQd0JuVGRGRXRKbE9VMkFDMEszak1rRk1zR2txU3NHR3E1Y25YZW1GTnpzVGh5OGlYdUxyR0FGQ2R3UUN3aFhkUzR0R1BaS0hWRE92MUZKVFRRRzVpR21KbGlDQnRTR0JabnhwcDhid0xVUGx5WDNUcENzVWJzUWdJTmY4Qzh0cGlBTnMxcGpEbXJrNkd5K0R6bWl5aEtCSHJCT283K0hSMm5BVWY4OUhLbERlWGdIdU9oajdUMkk1aHViVzFkdDRUK2pPblhnb0FHb0ZxaEx1MHpFY1UxS3ZsVkw1TW1ZdW1JUFd0M3V6MkdoU1Q0VlVHTUk4Rm9hWG5icG1oSTlEUWgva2M4dHpteUxlN3hEcHFZdVlDb0dRTGVtcjdNRmhENWxlNlpJRHMraFM1cWZNWjV0MzNhZ21JZG1nekFDbm5IK1YySGJFQXdlN1dvMlRrSTB4RVl5M1doeER0ejVXTUN3QjhtbTBsTUhmcXBoSlI5Y2FyMVpQVTJzcFRwSGl1d2lCeXByNkw5RUw0bE1xUTczS0tJdU9YaHFEWFRMU2V2Wlc0T0ttMkN3VFZMUWJRS005UDJzSXJOWkpaSGFWSHFRTTZJejkxWVJLMWVmdEtMSG9hZkp4MkxCVjAvQVVESEV5WkNLV3hVQUxaTGhrQWo4OE5XVmgyc1d3QVBrbkpuVG9BWUN1czBBYnEwTlNCNXpKa3AySUFLbjNGanV5VFFnbU9ncG9Cd29FY2xVYzJZVGZ3NUkyL1lnQnRLRFRQTkJ1dG02Y1hOQW5saS8yeXBSbGtaQWd3OFM4L1k0QytJWjViREtBeWt1Z01LeHZFL0dKbHJxUVBWd0hHbnRQWUN0YUYvdGI1RFFhQUtGZFZQRlN4Y2h1SWRvVUJodEJQbXBvQkVLN01mOW9NUUx1TGNmS3l2UUNndmJhc3J6UUVwWmV3N3czcVNZc0JJb1FFOUs4RXdHcG9ZTjFmTGdIemVWSEJhdHAyQnRIeldURUExZjM5c3IwM0NEcXFiLzhtQThCajBhTlNzbUpTTzE2WU9neUVwQzFzOUluUkZrU3FJZTdaNmVrRHBPM1hTd0M3V0thWDFyanFmYVZkWlFDalhza0FPK0NOMUpZR1FOS2d4UUN4cS9VRUJKTklFMUdZVk10SlIxTnc3ZHhKQm5mSmtEckRBMHBkZ1A2V1VkZU5mWVRydDVUQUswazVkbVVGcTl4aWVMdmkrTVdHUDZwdkhhS2xTVkI1OFRMdmNXUUpvOTBCMGRlSjVKY0xLUUpZTWg5cGdXMEJLSXhFTUFOUWd5NFo0T1BqRHhtQXdwaHF3RzFUY0RJQUFXbmMyMXJPTU5NQnNSVWtvcnhnZ0dlM0JOTW15eHYwVnRFcWd0SXk1dmF2MHJsREV3VTB4NUlCRUt5SW1FYjdZS29OTkFKSnF1V0xiYUQ3bXBLbVpSNzdpNENRTXZRaktTd21QMmVBS2dBbEdJQjVNd3VSSEF3Z2xwdTBBekJ6RnBOVUl5cWtsaHpBbXFWSlZJWjV2VWhENEN5REx3STUrK3NsZ0YyWWphRUcvQTREMkFUMk1DZG1EWVFYRU80QTVwUW9HUUJHZWU1bkl5MVFlOFNLU2RjVXFKaGw0ZHlKQklTNlhsVU1nTGgrRk9TcTAzVGFCanE5Y3gvaGZOSDRoem94VjFTeVNOUjh0bVNBa3NLbzJVU1VhRFlqaTlFTVFLM0V3U1FEWUJ5Y0Fjb2xiNGxWN0dMcGlLZ29tRTk2aFJ2bG5WaXFMS0FmZ1hPL1pnQzZnMjFCK1ExMzhDSmRWTTRBNzZxWHdndG9ZbUJvV1dYNENGL1RYZWRMcGE0dE0yOTR4MlpSRWduNjlJSzZteS9URHVOR1BLOFFCQlRCdS9aZGhKeXlqTXVjTFpPamx3VVR2WmJOUGxIejJSeW4yQ2twL0lNQzUva3lDSFdKR0hzQXRSamZZeXM1OGFHbEtYZ1UzazhTK3lvRGNBR2dFekRkZ21VQXBsK1MxVlorZ3dHZVN6WGd0eGlBdGdpY0ZLbWE1VFFoRCsxbzAwaFlDUUtaV1g1UjJsaXFsZ3dRdTNyNng3RnRaSXk2d3c3VEY4RFFKNlp2UnlrMVNnQkEzZ2VSbnZQYkFhSnNXVXUweUdESi9XZ1I0emdxL3NQMEFLbVR3bWhXOUNSYkZtOUJ2TFFqWXFDaUpqNjBZQUJwZGZ6RFZRYlFsNEptU0NjZzYyOHpiTXJpZDNPR1pJM2FvSFpDcVZ0ZFJzNEY4ejBUM1pzTXdPdks0b1dteFlXMWlaTm92ZEtaeEVvRXREODZnZnpQMk5jUHZPVytxWnAwaVlvNUhzMjV3eHlVa1JSazQxSXZwbzE4TENCNVJTRXZIOUF2QWtTak9XWnFWaGRNUk9Fak9ic1ZzT2VoemlRMUtYeEMyeDhkSlpvTnk4Z3hJcmNmMFdwOGFESkFJODBMWXBOZnJ6R0F1NWQ4N2ZlTmxJRThFU1JjemhDcXhNa0FnNFJTdDd1QU8vVEQ1VTN3ZHg3STRvVTY5QzRXWXhLZE85clhzV2NRUU80RXlqL2ZHTEZUTi9abmpGeWlZcXdJb1RUQ0RvazF4STZvS0g4anlJRnZLR1hmWlNrL002RnJJMENVTFdxSm5sb0ZFNC9BUnJHd1hEYUNIVWhxUW8wSVJKcnRzNGhha0J2M1RzWm80ME9UQWJqaVJRd2s5UDFyREJEMjNqNmN0MHhkeDhoR0ZLaXRaNGpYcVAwcVNFRW9kYnRMNTJjY0xtK0N2L05BRmkvMHZ6SERZaElOOFk5WkxSeEFUZ0s5RkFCZktuVnNhVHV0SjEwV2UyVVYwejFoaDhRYW5oSkJDcnNyRzNnbGkza0MyQ2hOb1NzQWlIcnpJbWwxd2NRWm9IVW5oeWRtbzgwSHBDYUI4NDlsV2JteGVQSW1sNFpMZk9qZCtHWVVORXFJWmgya0lZbVdxcjRzQURsdDNlbXpiOCtRL2RGMG9pQkZRcWxiWGJvaGljUGxUZkMzSHlpTEYrSnZGNHN4aVo2SXZGYTVqZndZZ2VxdEFMNGNMYmIwbnNTa2kxMTl3TEt0amk5aGg0bzEzSXlKV3dxa2svVW80WWlDNHp3MEtUejJ5b2gxZTVUL3hzdnNWZ1Z3bjJoUmxCY0ZadEU1SURHdUwvbkh0S3pkK3BheUo1WERLL2pRdS9GdEhNUVAzOHFXbUVJNk9EeHhHOUxybGRwK2U0WlliY3R2S0NJa1JVS3A5MVdYdkg0ZUxtOHlMYStMNG9YbDMwQ1l6amlKckU0dmNHdGZlT3k3RTJpWmZ3cWxLQy9yNldVdGZsZGxSakV6QVpBa05Dci95SXZZZ3djQmlhaGNFZStRUlVTWElRc0M3Ym9zeXlRV2FGRjA1djh5NWJIWHRJNC93bFNoUkN5MGoycDcyTWFIM2kwdmtWRDNSZUhsc2hZaVlkdUp0WkpaQnVScEF1V3djaVdPZXF5Q1JMb2k4MEdTWW9sMWE3a3N1eEpKcWlmblRRcGd0Z0ZHMFloVDQ1UmhjZVVDY2IyMFF1Q2JBUDF1ZUJLeGlvNXZ5eGExMkRGbFM0UTRjYUpZQ3hJQWQzLy9GbndaMEJsRGlNcVB4RThXck05eW9tQllhZ01KK2kzTEpJNEx0Q2c2OGI4dTduSlhyMkc1L0NPTmxSYVU3ZmszS2dOUkd4OTZON3VCaFdUWjVxSWFhaFJyRDZDZmJiTTVHbzRVUjdIbUJGVmpEbUljYzdJWWhoNC9PTzBlSFZadGg0dVRIV2lNS2VhektxZVgzRHFyUUhQcXMvUW9iZUFzMFU2d0ZWNFA2MjBVbWtiNVdzb1BycFVzS09wS21JMFA2WllBT05FUG5oTGo1dEFaUFNTYmJaNWlqcUZjNlNpQ2RWOFIrNEZBWldlWlJCaXdBaTNxdU8zRXdZVmRUOE55TzFHeGdEdGJEWG5TU0paK21mbjNJaTBXR1dCL0RRMk5yU016Vm1ROTVLWFZPQTlzSURUOGxJZW9oNTIwdHpLMG1JTTYzY2cwYjFCeHZLUy8wMFovZ0lQUXlHSFdoWnZzQVV2MldmWG0xSHZqbkdRQ0pabGVxVmViR3FYemt1d2RGZjMzOUk5N3FYbWo5V3ljZ0hnM3hOcHNsek5aWmpUb05tRUJDdFRkRG96YkVETVJQVjBtVWVqU3BCKzZyb3BpZ3RQQ0loQnBvcW95aVFWYWROTEovNVdqUmE0cmh1VXlFeGwyc0F3c25JUUpzb2FTQ2tLbVpnQXZ6NHhtY2hLSkYwQm02SlpSUkJZMHp1TFBLc0x4eS9IZysrOWErZ05USHpXWldad1FKbU1pckorZE5rb056QldoejlIWEdIU1oxQUVsNVE1RW5wSjZrWXpFNjhFT1kyZWQzVnFRbERzRlpIN2FlMFZSVW9yUFBYbENHMkJFcmFEb3hzT3Bzc3lvRUFubUJwYWdzUnltRWJrQjZRdjFlR1ZwVkFZRGMrcWxMVUwxNlNyamxSci9hTmE0anpLSjZmSERFZkhHNVArQ2ZGREVhZFkrdzhXSmJTK1l4dUxQK0w5Z2l3U1RJOXk0Y2dmY3lhNE5lb2ZRaURNcXFLOWRTQ3lHOVkwMnBDcmwyRDUwTmZ4cTYzL0k4eEp6c091VFJiakVFTlpEcDQxT0Q4YUNmQmRhcHFjOGQwcktZcWU5WGJrTWh3R2ZzdENPb2g1c3A5VTlXcFZGYTJaUlVSU1VPak04QkNtcG1CUW5DNHBDUVZMRUlsMjBtTGtGREY4STJNSzRyZGVvdk5GaklpVzY5ZDNldGRhc1M0dFd6cnVtOGNxQnpLMXBVNVE1K1poejJxQVd4QmM1Q01MaWJnZE5ZRnJrT1I3R3JPVU1lRzZrazZqQzMwOWtBR1lmZkFLUk1LTllDRHdUN2l3SkRjVmNDVGdGNWpKM2F5ek0yOW9CTWsrUXo4SE9nSlBGRnIrekpoWWxiVVlyblNzNnVycFQ5bjBtSmdKa1BQT1FyVmhIYWNRYzhacWJ6YVBSb3g2c0VMWGRuVVZyUUdvajZ0eHJwSFFUUk03YWxRZ2IweS93a0dxV0dVV3F1eklhd3dpWURDRFR5NktoK3NnUnZJZ0FVUjV0RmlxRTIxa3ZGK0ozU2dab1dNY284bzZqQXRtblBpWmpSY2NackRYUWZ4alNyRUtGWEpKUWhNZ2RSTituOFFxcmgvOTdwMk1Fd2VtYXlOajBwaWVoSkhzd2pzSkNrR1lCcU5JblJySUVNMkF1Sy9NTjdWdFJrM2szNTByRnRMRE5YTEYzbHBweDBFQXc0UjZzUmtBTkJqcUpseVp0TUtzNHZUSWxvUnoyZXJEd3I5WGRjeTlhUTFRREs0b2laaVJDUkNNdHBkdzNDNHA2ellJc003cDkvUmtES01VQlNwRWF2dmdEdEJiWjdBRFZCbmtYR1poT0JwQlhvQTRRWlJJN2hiZXlzUXBrSHlRcVFTb2I1dUU4OUN0Y0JzdUZ5MVB0WDNpaEliVEIzd3poUi9TR1d3SXhzcUpaSUNzMjZNWTBRTEpHbmkxZkJYU1QzY0NrbVlmZU9TbVJMQUZjaFIxQlljQ054Q2MrQjBGU1E4Nno4RTVqdE9uUDlRZnVhQm55c2s2RGJaQzU1UFdGdkF0MTJqVUgrNE0wTmIrN1VvOGU5dXp1b0J1WUowNUdSenlCVko0RHM2eGRPVWhzaFBZaWVYaFJadlQrcHd6UURNNG9VOGxzcWtRVjVkR3lNbUpVMXV5VXFYODZ5RlBCMm0yWXpTZ1RvN0hPcTNWa0hpOEttQjdLZ0l5czRKWTFaRStNOEVlQXQ4ZGNxUUFBQTJDTUdwRWhRaVFENERPOGVpVVMxWkFWSmxjTTlNMjNaalFVM2RXT0RZVWlocmVrcTl4bTdvQno4RURVbWVqRTVzblhOTEtXbnZuZ1ZKdGFqa3huQUNhRUEyTUx0VmpZaG45a3JJNGVCdGt5MEZySngrNm1GOUdBU1dwUWFOZldsRkd0TVdFL1dRV3VxL3ozU3daQXp2eGhseVZhcGFOOVZLWVliNGhueHZXWi9HdHJOcGVpN05wYW8rWG1RRHNvVVFsVVRaODhpSXBKWGRZUWhyQmdzUkVWRnlYK2pUdDlMQUhLQUJpNnpJcjlZcWtBVldFcFg1U0puZm1qWkFBL0JEdFVGU3dUYzVBMW1ZMVZ3UmJXTFZNTEFMblBQdVcySjMweEJ2Q1VrSkc5R29WdEVFRXUxSnRUeUFGeDdVVnJWQ3hTN2hyamdyVzZpZkJDcjhGY2hvSGF2Zy9WSG9XNUZpVUQ2UDBHOGp5TE1mc3BBK0E2dmVUWFIyc0dNRUVIbGRxOUNwak5Yb0VNUmFFSE9yVlpDS0tJeWtvQjRBRThSYVdpTjZheEtoUUF1ejlEQXNnQWN2TU1Ya2U1YU0xZG9XUXBpalQzcnpKQWxuTy9oeUNPY0RsdVFHSU9yaGNoV1QxVUNoUVRsakhGSjdJUjc3U2hGS0FuaGFXalZ3U05nY1NzUUdBclhsZDdXUTB3Z1pWUnZMakUyamo0UVFXRVo5Wlh0a2N1dGJrMFp3RHB4ZjFFVFZQZXNIM0ovd2tEbUpVS3htRjY2NWptMzJvTE5RaDA3L1VkdFhYeXFDeVVuY2l3M0Z3RGxHRk1XSUJWUWdFSXE2NXZBOVYwQUwwanNtSmozZFBrS0xGV1FXZURGNzFkc2tFUFVUMGdIYXFBMlVlSFZwMlJDdDdWa3JLaXNRQTJBeVQ5aWlQTWxMOVk0SDl3SDQrVzhJQmpaaGk0ckVMeERPclczUTFib3UyY2Rlam1jQ0MrRElRcEpSRmtwTDFRTGhHcDNjdGR3TjluQUZRME04Y2l6UnRMTGxhaThxQW90S0x0ZkZtUEZVRDNIY1VhRUZuMis0MVhDQ0k4MFZTWmpyWFNFUFNtQW4rbEk4dXMySXk0V1BkQ1dZa2FCSmNaKzNYM0RPOURodE5lQzVrZmFBVzllWVFiWW1KQlJna1I0RStNUjRFQmpBakE4dGg5V09OZWdQTUdFZ3VyRmgrVFlVWGwyem5vaE8yU0FjTE44Ukt5Q3BqU3hpV0FiWEpVR2NKVHJZcjUveEVEN0dGalY3T2o1Wm1iR2VGVW5GdkNnME16WjM1Mm1OSUMxRFl2dE1DTVExeXdRTVBTZzBVdFI4cTZ0ODdZSlRBQW5EMU0wd1A3RitwQXFvVWtxQUpPOUJERWk3Sk5NQkZFUVAzQVFUUDExRlFCMEl2THlsTE5sdlNRZGJySUFITnB5ckRhWEFLZ2lCS0IzeDhMYno5bkFIWkhhek1BN2JOUmloNkZMQUF1U3NDeG1XT1pMQWJ6Ny8rS0FSZ3NCSE1aekNoakYrY0xGS09PV1oyWkNrRDdYckVQekJwaFVUbU9ES0NhRTF0VE1ZQ3EwRGw4UWtidTVRdUlDQmVGYTFWN1lPaURIOTF0S1NWc0xpa2pBZ0JGZEdzR0dEQWZXS3RTd2JuVUFWenNXRzNLT1ZGWjBYYVhTMEI3WldpSzJodGJzNWU3RGpBTWUxUG9DNkpsWkxYWSswaWwzZEVwYUwwSlQ0VnUrZGNZNExUSnRSYkJ2cjRSQkcwNkF6VXRjVmJQTWl4M0VMczdUUGVvRVJZcmdETkFQMXJOQUswcW9PT3cwN2NaNE9NYUE1aU53WnhxekkxYUFHZnoxb09HTmt0Y1Z0MFFTbWN3d09VdWdJc0x5MXM2U0t6RGhsVTU5YnJoSkZONlJEZnVJK3FwNWUrTHJkMUtPbU52bDR1VmdrR2NBYkpYQzdvR0F6eHhIeWxzT2ovOFBRWmc4WGxmNkdlK0VmeWtPZGlVY3E4dzZhaG1xbmNVRGI0R3FMZ2pCdHFkRjluT0pRTmN4T3JTVS9kN0RKQVp5bjA5R0JiUStRVFpxQURJcWZsT21sdjFIWm1SdkR2anRHbzdRSVhXR21HYkNacnFqbk9IRERTUTFOeFV3TTdDaWNJSnBEditqcG9SYmUwTDY4QmdWOWdCN2xtbGNHMEp3NWd4VHYzckF5NE1QUWR4WmQwVXpmRHhGeG1BbnhudU9xcjB0dlNBc2IyS05nUE9wWW13RU9KeXFhUXBvQ3ljTVNPOGExU242S1FTZUpVQnpNSDM4SHNNTUswTXc2Z1RWQ2JQZUhSb25BcUFjOC9sVXBxNWxjVHl1cDYyZzB5VURHQ1JYMWxDN254V3E0RlFSS20zNjFVV0gxU3RLc0JXVTlhenN3cFZjK2MrRzFWRmhLRWFWVkV2Kzd5bUxiSHZNc1N4bllmS1FHekpkMmxnN2g5K253RVdQRnJhVjBJaUV3UmdGcmNzTTZjS09Vc1FOZzAzZ1p6bTlBMVBFTVBzbFZhWUVTVEwwQndad0pDTlB0bmpEUWFBVC8veE54a2dNcFRqOGUwUTBpei9LbU9IRmNDbVptQW1ZUWVnN1libVd3WkptQy9BNHozTnp3MUR1NmJWVVR2dVhQMXV0UGpZSG03TjBzK0hoaXFSTFpSS3Y0VjFuOE1UNGRXb0RoNEV6YTFTSDE0ZlVidVRXZVFPVGUwaWd0WkU4N1lxdlVsaVFQY0M0R0hPM25ZVlRVamp0RDU2TElmT3ZNZXd1WnV4cHdBTHlEUXBxaXJPaW96SnIwWnVWbG9Cdll2Q0dlS1RqeENtYlBDTG80TDBGUVpBVU5mdk1nRDFDLzZxR2VBeEMwQ3JhVklOK0hPYm1rR0MvaHB5V01zeHIrM2pBamFoSTBNd0xNc2o2OVEvb0VyOW9BSDFsRlN3QkpJa0lGUlVmVlBBUEN2Y0FDd2UzZHhUMXRXbzNOMjBodDlYVFlKa2NITUhyMHNuc2J4a09wbTlkTGp5SU5NV0R3bndrS2Q0ZkhyVzBhVTBWcTVvbGZQYno5THJodmc2ZExESUZNbU1kNDI2SzU3bS82a3NMYld2QzJld3lrT2RyTDhNQzc5a2dLL3ZQMldBajJzTThQb1dKZUNCRk0wcVU3b3lnUDdhTlllUEhKdnNNRFBNczRWQkJrc2RhYWJVZ3krM3h5bFIxa1RJc2xWUjRhWW5MYnF4aGZKcVZEc1BnamJYOFFpMTNGSzdaSVVVaStQcGRCa21ndEZuS0VPVURnZXIxSlUzR1BERlNzWjBrK3VWUkMyMnl2a0pvZEx2RG14QUFSWjRlZk40UUV4enI1cVFhZjZ6dEpRSFI1YWxOTEwyQWd0dkdQMnZNOENQUDJLQTdYVUdJTUtGbVNQN05nY2gyN2lrdzVQSm1keTNEQ1JwWjJxQllhT0dFZEE3blJHcEo3WUtUb21xS29wWGZkdnZnMzdhdXQ0OUs2dFIwZkZ5UXNoSnhCUTVkR0FHNmNseU83cDBJbEJNSGhlQlppd3o4WTVIVlpVM0JPRkg0c0ZSSDRFeUdVSlp4OVl3N2lVaWJ4UlpVT3l5aGN3ZS91d0JXNnd3eEQrTTVJK0loa1hoakFqeHdmdnlvY1FSN1ZrODh2Y1k0UEVtQXdqQncvUmE2UUJuMjNON2dna3ozYkxLMU1adDArdWR5K0VCYW45R0p0MG1HN1VKaitLU0p2UUI5ZkFuNnlPVmRaR2k2dHUzVjdqWmVqV3JsNnFhbFUwK0JrRXpmTkJvR05BQkMwWDBnbHN5L0ZNbFRCbHF5bkRKVFZtOEpBcUQyUitJOFViQU1TWWhoVEVtWTVTWFlwa2NoeDlPbzBJSHFVdE1BTURuUkFCRnBMcmgvcFRhQ092eXdrVE9oZ3cybnBqWUFmOThLMzZSNVdOL2l3SHlSODBBMUpJOTltd0pHQW0ySzJ1enVubWh4eDVGcUNYUE1ZdlhTdVp5VkFYc0RKZ2lySzZuRVZuR0dNZkpPbU5PdldmU05LTjN0YkhxbXpTakZCVWdHS3U4bWxVVWJucmhlc2dBWXFPaFV4VU5FYkRXSTlOTjdnbktSTEM1TmlkUlhhOUl6K0hmWHV3SUhFQ0VTQzdMR1ZOck96QStLODZIWUM4ay9TeC9RSFJBcENVaWhuRmJ1UldRSHhhOXlod3ZpbDUxK3Y4dkdTQ0RWc3FOcXloclpmSksxRytBVUdXc3JiNndSck5MSjJleWlHbEdYTEtpVHY0SEdVOC9tWVBqb3BhWTFXY1NnWWRJOUt4d3N3R05ObHFNYXhNanJUVGFNRm84UVhTc2tJTHFpazVMTkJDVUxhZmJIdkZ5SUQzb0lqOFQwVlVVQkFPaExMb2xYTDBwaG1jVXltenNaa1UxU2h0SUhoN1lVK2tqZVhWNngveWVHYndLMUo1QTUzQi82NWtoUGhaTzArdGhFMk1HSUpBZkJjVC9BZ1BNR1dhR2VFc1luZWFlVnh4MkFtcEVUMTVsU21lZ29TYWZZazdyRDQyNWhoM3lFZ3lMdldtaVd3UFNNN1dwNWMzK0VzcnpPRWpHRXppZmdCZGhiRHNtRzRHU1dDN2NGVHZUQnJIYUJtVmFNUzMrcERvUXNqWUxncEZRaUc1aFRJdHZ4cTNVSG9SeTJaNHRNaFVuVWQ4b0lxTm5tTVMrMnd1RmsxcnQrTjVOUDZNcXByelhNQUUrQzJsN1lXNkFBcEVjUU9qLyt3eHdLT01CNk8xanZYc20yVHZ0R1hDNVk1TE9ISktuQjR5K0lVWEJBWmdhTG9meFErbVBPWEE1N2tJdzFuZ0w2WXpVU0lsOHpiVjR4Z1U2aVhUS0FvYnN3aUtnWGREZ0dFb0JCQ1YvRzRqM2toTlpUcy9kWDdQY2tPc0l2SWY0c29yUFRqVWFHcUl5S2tLY0lKU2ptZUVDZ3J2REhjZnpNQTVzb0V5SHZRZlRHeitRbjQzeGpHTG5PUGNZVzBuNjBhQnBtbG1VM0lZQjRMLy9CZjJEQWViekZnT0VPU09oUmNrQTd1MkxldmRFUm1NQ200WUc3Z3locUFBLzNYMncvdDRzd0FoRTVEbWtlVXcwYkEyRzlXVU9qVm8zSWJoRXZtYS9selpNSXJuU1Z5QjEwQ01uUVRPeU92UXN1ODdmOUxlM0V6T0FvYmY0UHBXMFZIdTU3YWM1c2FqNXptTnBhbFFRTFZrRGtJSm9BNW83MUt6bjBBRVYyenpBR0dDMytEckZHRVJqTTF3TnhZT21URHJIclJXaDlnMDIyaVlCV0R4ZTZYOEhDL1FvclV4Z2dEcGZSU1lrb1RlODQ3WHJNYkpibUJhdHBBclZibW5vbXdGMlFtRnN1WE4wL3B0MnBOVG1XbDNXSVZ1aWhVWm02bEVVNGN1cTZZWTZJdkkxKzcyNEtRdnZFSmpGSXNiY3lpOEIzRWZnNHlvQ0xQQ1IrUnRDOUVJYlRRbG5oTVJwT1ZPbzhxNGJNKzh5dW9WcEpyRWZYZytLcUlwc2RJVWlPcWRSYXhhaTIzcCtJRkVBOUhKbGVqUGQya1lDaloxNmttQ0dMd3ZmbXhWRk45QjZ4SnhBc3Y0TCtjRUFtOEtFY2MrMEFIVytDZ3l5UjA3d0IwZWIwTUEzMXFXM2xaUnluU0FUdDA0ay9jZHBxZkpxbElrMlJFMi9ZcWR0ZSs4b3dtYzBRbXBpeXUxbjBDMHNjbTc4Z2NVQUpqVTV5Y3VZTzkzUUE1Z0I4eUY1VHRlMXAvUGhJdGplajRhT3c0U3pteXMya2tWdmZTZ1lvSXFOMGZRMHhabHNqS2wwTDVQNUhRWXJjYUhSL2NlMHJDeGY5TzR4bFlqeGRpVlBxQzBCazR3cDV3ZXVBTFl3c2V5SlNvb0VZV2hDN0RSaENFV1F6S1BPVnhFSlNmUUg2MjJ5ZGoyc2pOemJqRlZXaDVac0dFTkFUS21IalFFdE5LUnNQZzlrZkl4NjB0THB0alp5SUlTMkI1djBoRWF3M3I5QnRqUHlYL3ZjSmorTkF1Zk5uRm1iRWRadVFKQTU1b3dGdlNnb2dZV29jdi9pWVJSa2dMWkZ5Z3RHaUVhRkU4ZFhHS0IvbFFHc3V1QzZuNXBVTEFGekFvTWlvbmVnZFNTYUFrREFpajFySnUvQUpHVGU4aTRqYVVGdDBCeGtwdW5SQk42VVBsdW44RDhsQTN5ZllsZUp5WWU4QU5DNWNuZmppcGIrd0JIOGVNZEdLeXNFUTg3SFBua0RhTEJoZzNFSnl0RXhhZWsyN05wTGt0SHdKRmF5Q3BhTHNNdEM3NFgxbU1HUnVwWlphdjhOalAyWUtOcWRheTF3T1o3Q2t0N2loWkFOMlhBaklFSE9jTlYzYVpIbFZsRUt5b3RSSTFzWkN0RDBLSndqdTF1YkFlWUZBMWdZbk9WUmQ2RnVTUTFYK005VFhuRUYwZUpHWjZ3RGtZRFAzd1YrQzBEUk1jRUhycmpKVDh5ZjdkWk5tQ2h2eisxa3d2bUsxRERKQUxZQmZtY2I0d1REZEVhbkpqbVlvbTFtdEZYUmxBSFRDT2FyN1ZqZndRSjdGcXRBVmdqbG5udThqTXh0WXgvNGUrQTJnVTV1T1pzQnFuVFhETVlIbmhtdW1SNEN0NWl6K01iVytJU0pwZGFEaHZDb2REU3VxUU81OUZWekpDT0RQZTV4M25jR2dJdFhLZUZaZlYwTHFsSzA4am94ZE9vL3VkWmlwZ0l6bEF5UTJuYzZoTlZiUlJFRGtxRjFhd1lBVVJXNUJvaWhpWGkrQ3dZbkFGZm1hZ0lYdWlZTWk2WEpVSituMEtCY0V5TjVRd0NnaWNESHFweEYyWFVSVUZHOXJBekswa1NOOHl3MDk2ci9rYWRzQmdPVXF6S0NkWSsvdjRMOHFoWlNhZGhBL09NN2tRU1dWaXNBOE5SZlFDcTZ4LzF3OEt6Wm9EWG11c25wWVRoMmxmWUQ1WXJNQzZvc0FmZHprOVlLVkExZDAwQ0ZnQnI1N1F3UThaY0pwMEZQMmJvUkhhbHBhSnRGTDdUdGdPR1NBZVF4YTRqbUN3YkFzcVMvc3VJNGM1NXhDU0JSWFdWWldRVWwxOGk4bkFKTmFhbTRiY3lHb1JaTFN0ckU2Wi8yUm9pTldjRytRZ0FrQStTZUYwc3J5aVRyN0MwTXluQk9IT21HaEx1S3Bwd0hPbjFOZk1NTWE4b0FuanAyOG5jN3BxTFpwd3hIcU9yQWVxTUdhVVdtZElkME1HQ2trVm5NbnFKZUUrUUFkU091aE91RkI4WWFBeWc3WUdsT2E0VTVFTWtBakhzTUJraEFUWiswdEo3ZU92NHJBWnNhWGxBb2MzTW9CSEkwR0lBWmNtMFhnRWQ0VWpxNmxERXh0SlU1ejNKdGZMSk55NGc0WjlmSU1MbGh0MjRwVWlkU08ybitmVlFmUVdqZVIwaGxwR3NTK3BzQVlJdk1uMjZ4c0ZTSGtSNkczWnJwMnJYdTdrZyt3b3k1ZUVFYksvam0xRkJ2TEVEeVB5ZzJlS1RpUEVKc09yc1ZjcmwyT3RoWStxVHQ5M1FiVzhoTzZUbDdUeFlrUTJMNWZnMmdYdmM5S25KempRRVlBclJJQnJDNHgxRXdBTlJzUEF0MjdhemhzNGlHSnpMRVJEMVltZUZYVkc4aXJybTdsOG1ic1dNdXBnR2JpcTJwazZ6S2VaWkU5ZndWaEd0RG5vZVc5c1d0VkhUQlBRaHFrK1plNjE3bkxQSlc2azlwNlFNcUdFQ3VqVDB2YSttb3RVYTdkVmhnVUFiVHlvMGRwYXViS1hQbmdBTzRZMXJEVXp1eHhHb2I3dTBBTWxXbFBEQThNbU5VK0M0MFdRS29Gam5tcFRjWFR4WGF1MVhQZTZ5NkMzNWp6aWNENk9MZVJOa0tSK0pYREVEeDNvc2xZS3p2dGswR2VHZGRqeDcrZ1JyWURxWGxOdERWRllMTkxaQjd4V2xOKzU3RUZhTWo3TGRiQmpzV3hpa2xtYlJsbWZOc0dVVDFERFpFOFlWR2hza3RCS1V4SmJ0SWJmeHIwMXhPUXBNL3BTa1AvTURmYmZvalF3Z3BhQ3VtWmVWQnR3NXdyMkY4cVhUVDdyWFdUYkRTbjBwSzVLbWZLM2FmNVllNXR3UElWQ090WW1PRUpEWVNCQ0s5Rk8rV1hXWFhxSXBrejJLNWNHREdyQ2RydGxvVjNwRURWcUFVZWxlVWl0YVEzWjRoNlRJZ1R4R2laQUFaNjVJQndKZmdJblFSL2xHSDB1STFJQlFwbldIaFovRnNYUk0zYnVHbnlWK1psbnRwd041TEh3SVNTVXFqdzU4S2VoS1ZlVmU0bDZaR2hyeEhjT1FyQjFSZHBIYlFIRVJIQThuLzh3OWIrb0NpWVF0WHhQWEFHamM3YmJMYjVpQ3l2dmljVXc3SVZBYXNHUTJzcjB3Tjd1V1lYR1VBOHN1UjNCaUpKSlltLzdEVEpzcE82SStDUzlpbksrOW9IVjZpY2N5VWJzUnVIT05NN0hHRFZjR3hFUTQ3Yk9aNk1jTHRtRGFqMzNoQlRoRm5OUU5Fa0dybTRHaUYwbkpPazYxRE9pTmZYNlJzVlNLbmR5KzlnUmhSdXZveHYwZ3ltOGk1LzBxaU1oaGdFelArdU5kMmhCQVhjc3JWeDZLTDFQNG5TSzVOenNOZlFuTDdpYjlKLzJ6bWZ3d0d3TWVZN1ljcXFxbTQ2Rll5TUtQelFMVXZDRjdzam9tZlFybjF3VG1ENUFZOTYxd1BNc3MxMGtJY1BxVnpiZkdRQklNZ2JOQllncVh1bE1OMmx0ckZ0NEZyZVNGaW5MRU41T1p3ME1TbW55QWlCQTh5RTd2dEtSYlNzVERsUFJpZ0h3eEFtR2dua21MV29iU2MwMXpZUWpydnFZQXJpYXZnTzI2L3B0eEd5MEVRZGJQeFdTdzBLeWV5ZGlkUnFiUlJiUk82NXV3Mm1yYTdTRzM4QzFjZmlCNGsxNS9TOGE4MCtvQ3lNZEV0R1dBWW1qbTdWekFvZTlZWHN5cURBMWpqaDhCSzFmT0YyaEFEemJyYytFSXNXUENXKzhjNlNqT1pzbWZMTEVJNG1Obys1MXdwdURFOEtLcllrbFN3WUxWQnBjK1cxNGNSME9qcU5jUkc2TXN3cTAvYnFpQmY0am0rWnhzcWJDd1lIakRSYmlSU2pGRGFuTk94cFhZS003Umd5bW1OakdqVzBKR1NHejdRME1RUmp1Y1RlVyt0RnVSY0liNXJlWTYvYlVhemgxMVYreGRTL2w5di8wWDdGLytaQzVEMFovT3NuMkFBbDNXUEdETnJVWHhnUXJtT0tNOEZLMzNESlBmK3dxMmVpb0ZGSzJYR1duSFZvUmpjdjNJcGJ5eDYyMzBabWpGY2JKOVpNWmNid3lqL3liMDhNUHlzTGtmblkyZkhmbHpLa0Uvc3AwZWxYVkUvSkhOOFUySGp6OHlHbVVreGw5ZGlkblJxcG5UbUJrdjlISmpXWHo1eFp5UTBKYmVhUkZNUjV5eU9pWnpkU1ZRbzdoNjVrMnM0L2ZpVTZWVlgyWlRPUm5lUy9ILys1My9ROHo5Qi9td2NXS3YwcXZ2ZHRGVnpCNHpHbVdNZVN3WFVmSkQraklNQS9ia01GQXdndnlnQU1LcUFpbkFwNzN1UWVDQTFGTGZZZ3c1QTJ4MGFyYXhrVktWWkpEa3hQOFl3KzVtQzdOVXkreUVoSXowTHBHemtyNHFRRElUa1JqYk10MHlLcVNic3FtR1NmNVhTK2Y4bjcyeGI0Z2lDSUJ3U0FTRVNDTDdsSUJ3WUR3SW45Ly8vWHFiN3FicWEyZnNVUkJDdGpYdHVhUUNzN2RsK205NFNxQjN3UFdaTjhMWHZyeUpLUk5SRjA4VVRQeTZHREkyaytTYnJ1U0dUaGdrVlJIUGhOQ1EvRGZSM3lMOGdmMnJ0SGsxV0VucUpnOGxCMXZQL21UZTkxbCs0YTZSNUF0eE5nL01HMVM1QWhRZTEybnVtVEwrTFZBNFpDYjNhKzMzckYrbGk3d0szU2F1S2hEVHk5cXFLdHVGVDYvZG96OVFXQlNiWXpaMnlES250K2dZZkttUU9TODRSeFEvTDZ1eDFlNDYyRGdpOXFMdTE0Z0tHSEQ2cXlvZEQzNnpuZW9hM2VTL1VDblErYlFYUDl4YzNRT1A1dnM1TDMwK1FpUW5lMC9Ia080QndzWTMvQ1hjdm96UDdGaUE4Y0lLdG50QjMvZHBIN1lKbFJCOTdndkg0ZHRqN0kwYzZEd1k4OXB1YUJhbkpvc0xUN2VOS0ZoVklCQzZGYnpUQk9BNGI1UXdYTy9wTThNVnoySEFyclZablZHMzkrSllMZkxzNkRVVGNhRm9ma1RHR0RHMFVMN2N0Ni9sUnhvMDVYMURCbC85QzJXa2VBUmljKzM0Q3VjYVUzL0gvZkFjNEVYUmZyODFWUHBDYXBaT0FkL1V6N1lEVHlJWEhVZThZcDFiYlF6b0x1SnA2QndOZ0UwVmFSbTZ5c1lVN1lQQTM0ZTJYTVU2NnJnODRaMGpyQ2Nad3JPeE1SdTNXVWo1SXBzbWNjMWh4Wk1hVUhXNGwydEtCZ2h0MWl4dVFaaVdpK2FhQlBwczVUczl3WU9OZXFWZWdGTjA0Z1U3WlBpNUk2cVgxMS92ZTA0Q1dKTUMxeG1lN0RGRHQvNTVLSUgvaGFnenowYUJQdDJ5UkVLUFBHOEtnWXpZRDkxdlh0c1pvQzQvaFR2RjB1MTg0WjYyc0poaUxLOWhiMi9OS0NENFRxT1hJS28zQzhjZldhTXVIRUhIcjU4aHJHYkZqcytpcGMyR2NvM2doVWkvVTYxRHgzb0RDUVBlaHV1K0hqT3hYWEdQWDBYc1NYM21DeTF0UGt3YWsxMTQ5K2RkRWlMOTBBNmpCLy92SU1YZ3c2ZFNuMzdzb3ZJb0hQNU03NWZTYm9oWmgxSWJITDNOb2haRE9qRGNnNGV5dEpRQkxNczFLK3hSM0cvUEdaR0ZpdnNLZ1dibFJ0M1ZGVWpTMWlCWWRxU2UwMmFQdjIwSVpIeWVDY0l2Yzk5TnlWejVOcmpHdndicXRtVzRkQzFDQ1lZdHdDZ0c4V1dIdlZvQXViWTJ0UXZSZTZkVW9ZOVMrUnhNZldMU2RFRXQwYlRqZERSRHQvQURXazlwOC9MSUlXVXdvWWl0eGY3ZUowem5jMXVHVFpjYldiYk9yNS8waWxmczYyaUp1SFBHZ1dMNmdBNjdmSHJWeFlrNEZFL0RTVHpDbmd0czFWcGFsOU84Mk5BYjhha2hBU29HZCtFZ3pVTmNFcmp6R2lNS0cya0x4NVZpMGs5cUdPRVArOTRXQk9vemE4bXZlcEJDQjY0RDBvOXlYalNXNEJpODVvU3FXYlp2RmhqRnJybXk3SWxBM3FyNDNERHZkYlBMZVBhaWZRSzFvMmwxUWFqbkxVa1hBYnFMdEVkOGFFekkxQXhBRXV3R2NuWGdhQjYvMEdIcXpTVkc1N3F6YVRVendTdTVEQ25VWU5kUHdjOTRrVVRUYTFrZTRYRjdtMG80MlpaL3F3SUlsc1ZXOXRHcSszajFTRG5ibFM2K003V2F1ZW9hVHVhL1pPcFNEMVlsQ0pQNk5nV2JaNVpwMklFeVJrRm0zUUMvNFhRWkRiQVNYczdVa3hFeHNEVDZIZEhVK0pMeTBoUVg4R2t3NFFtdWt0dnNXeE5xeFpaMFdRLzQ0T0J3eVJPWkhkY3crdVA2ay9VamE0N0VieHF0T0ZQeUJ1UXJtL2tDdDFwZ29NcW96cUYvYWt6SVlLYkxMTmR2L2RiWDNaRWxpb1lta1F5ZFBadGlBUTlRL2NiQmNya0I5MnpLbmp3cVVwdkpWaHMzdTBYS3R0Q1BSZXp3d1dweUQ4Z2RjQlNNeFRzY1pYdmk4RXJPOC84bUNYMXhBYldQSmh5VzZYZzBiOGViSE1XRlVhUFBiSkFseEZUQUpWelNXdmdMNVB3ZTZkMHlWTC9iS2x4SGpoTTN0eE9PYUJ6ZlZMNHdlWVAxWis5SEx1czdWYk1wZ1FYNDFjRHdkQXZVRmJGb0tsWEJiUG43WlM1S2lpN1JOSnREaUVqaC8rb213dnBCTFFkYzVERXNUdzI0T3kzUnJCTFFUVy82c3hMb0ZzdUJqM29HVVRjb2tCSVp0YnJWU2FZU09LMjhXL0d2dkRGWWJpR0VnYWdodG9hZWtsM2FocDF3S1lmdi92MWRrV1g2YVFDK0Z3SnJxT1JmN2FsdnhXcU54QzZKdkRlaitXMHg4cEZ4Q0VJU2pFSmZwSTFYaUIzL0FkMnpNcVlmWUNBTVM4QU5pTmpjbWtkalFmK1c1bCtPWFlmUXZVMW5Zb1U3YUtRUkIzdmNVaTFtUDVaZG4vZE1memxRZDNzaFlzQVJTd0dleXAwQ0JDekh1VElUSFJlWENhOGhnM2dTZjgwT3pwb1o5WllDWHlCeXRPNDVJekJJSVNGMHl0YjljaUxIWkh6cjNoZXR2MWFvQVFaQVJNdDJjRlZMUnREZ1AzUGE5QlNOdktRR2Z5KzRqYk95aUsvQS9hS1BnaGVKVjVEMHBMNnhsRTNmV0UzdURiMUpleHVFK3I0cXUzQU1wZERmRUNkZGdBVHhOTUoveENBQjhneUZJT3hxMUFKNGhMNEJPRnZnWmxMMGgyWGwzVzAyc0o0Qi9lS01kanNJZjZRUXJVM3pCd2taZnhqV2k1cDVUWWRocWZtSTlzUVlGc25Bd2tWYzJzVUxnTitpdUcwanhzTlhFZTJRRkNncERCTnZNMk5qSjYvaU9sYnE1am5ZMnl3UDYvSysyQUFxdmROTE52RzNaeURJRWZxZkE4cnJJTEpOb2h5UEFDaFFVaDRKdlpuR1lENEhmNUxLNVJBODhEN2hXQUNoUUJBbGQwNUZIWGVEM0ZpT2JGMFhkaWVheG50amJTaFMybGFWZGg3blhOZnBENEdjaldoU1YrVXJXRXd0Ui9BQnR3elltK0l4U2x3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuICByZXR1cm4gaW1hZ2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmbnQoKXtcclxuICByZXR1cm4gYGluZm8gZmFjZT1cIlJvYm90b1wiIHNpemU9MTkyIGJvbGQ9MCBpdGFsaWM9MCBjaGFyc2V0PVwiXCIgdW5pY29kZT0xIHN0cmV0Y2hIPTEwMCBzbW9vdGg9MSBhYT0xIHBhZGRpbmc9MjQsMjQsMjQsMjQgc3BhY2luZz0xMiwxMiBvdXRsaW5lPTBcclxuY29tbW9uIGxpbmVIZWlnaHQ9MTkyIGJhc2U9MTUyIHNjYWxlVz0zMDcyIHNjYWxlSD0xNTM2IHBhZ2VzPTEgcGFja2VkPTAgYWxwaGFDaG5sPTAgcmVkQ2hubD00IGdyZWVuQ2hubD00IGJsdWVDaG5sPTRcclxucGFnZSBpZD0wIGZpbGU9XCJyb2JvdG9fMC5wbmdcIlxyXG5jaGFycyBjb3VudD0xOTRcclxuY2hhciBpZD0wICAgIHg9NjM2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIgICAgeD01NzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTMgICB4PTQ1MCAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMiAgIHg9Mjk4NyAgeT0xMjQyICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMzICAgeD0xNzE0ICB5PTc2OSAgIHdpZHRoPTY2ICAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzQgICB4PTE5OTkgIHk9MTI2MyAgd2lkdGg9ODEgICAgaGVpZ2h0PTg3ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNSAgIHg9MTIxNCAgeT05NTEgICB3aWR0aD0xMzYgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM2ICAgeD0xNjEwICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzcgICB4PTEzNDEgIHk9NTk1ICAgd2lkdGg9MTUyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOCAgIHg9MTY1OCAgeT01OTIgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM5ICAgeD0yMDkyICB5PTEyNjMgIHdpZHRoPTYyICAgIGhlaWdodD04NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MjggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDAgICB4PTEwMyAgIHk9MCAgICAgd2lkdGg9OTAgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MSAgIHg9MCAgICAgeT0wICAgICB3aWR0aD05MSAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQyICAgeD02NjQgICB5PTEyOTQgIHdpZHRoPTExNCAgIGhlaWdodD0xMTQgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDMgICB4PTAgICAgIHk9MTMxNyAgd2lkdGg9MTI4ICAgaGVpZ2h0PTEyOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NCAgIHg9MTkxNiAgeT0xMjY0ICB3aWR0aD03MSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTExMSAgIHhhZHZhbmNlPTMxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ1ICAgeD0yMzMgICB5PTE0NTcgIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDYgICB4PTI4MjggIHk9MTI0NSAgd2lkdGg9NjggICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMTIgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NyAgIHg9MCAgICAgeT00MjkgICB3aWR0aD0xMDkgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ4ICAgeD0yMzkyICB5PTU4MyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDkgICB4PTExMiAgIHk9MTE0MyAgd2lkdGg9OTMgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MCAgIHg9MTQ0MyAgeT03NzIgICB3aWR0aD0xMjYgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUxICAgeD0yNjYwICB5PTU3NSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTIgICB4PTE3OTQgIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MyAgIHg9NTM5ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU0ICAgeD00MDYgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTUgICB4PTIwODIgIHk9OTQxICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NiAgIHg9MjUyNiAgeT01ODEgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU3ICAgeD0xNTgxICB5PTc3MSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTggICB4PTIzODMgIHk9MTExMyAgd2lkdGg9NjcgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OSAgIHg9MzcyICAgeT0xMTQwICB3aWR0aD03MyAgICBoZWlnaHQ9MTU2ICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYwICAgeD01MzkgICB5PTEzMDcgIHdpZHRoPTExMyAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjEgICB4PTE2ODggIHk9MTI2OSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTkzICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD01MSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MiAgIHg9NDExICAgeT0xMzA4ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYzICAgeD04MDAgICB5PTc3OSAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjQgICB4PTE0MjEgIHk9MCAgICAgd2lkdGg9MTc3ICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xNiAgICB4YWR2YW5jZT0xNDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NSAgIHg9MjcwOCAgeT03NTIgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY2ICAgeD0yMjIxICB5PTkzOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjcgICB4PTE4MTEgIHk9NTkyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OCAgIHg9MTY1MCAgeT05NDYgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY5ICAgeD0yNDk2ICB5PTkzNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzAgICB4PTI2MzAgIHk9OTMyICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MSAgIHg9MTk2MCAgeT01OTAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcyICAgeD05MTYgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzMgICB4PTI5NiAgIHk9MTE0MiAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NCAgIHg9MjcyICAgeT03OTAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc1ICAgeD03NjcgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzYgICB4PTI3NjIgIHk9OTI2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NyAgIHg9MjE5NyAgeT03NjUgICB3aWR0aD0xNjMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc4ICAgeD0xMDY1ICB5PTk1MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzkgICB4PTE1MDUgIHk9NTk0ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MCAgIHg9MTkzOCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgxICAgeD0yMjIyICB5PTIwNyAgIHdpZHRoPTE0MSAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODIgICB4PTEzNjIgIHk9OTQ5ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MyAgIHg9MjEwOSAgeT01ODggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg0ICAgeD02MTcgICB5PTk1NSAgIHdpZHRoPTEzOCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODUgICB4PTEyOCAgIHk9NzkyICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NiAgIHg9Mjg3MCAgeT03NDkgICB3aWR0aD0xNDcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg3ICAgeD0yMDAyICB5PTc2NyAgIHdpZHRoPTE4MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODggICB4PTMxMiAgIHk9OTY2ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OSAgIHg9MTU3ICAgeT05NjggICB3aWR0aD0xNDMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkwICAgeD0xNTA2ICB5PTk0NyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTEgICB4PTY1OCAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MiAgIHg9Mjk0NSAgeT0yMDQgICB3aWR0aD0xMTEgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkzICAgeD01NjcgICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTQgICB4PTE1NzAgIHk9MTI3MSAgd2lkdGg9MTA2ICAgaGVpZ2h0PTEwNSAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NSAgIHg9MCAgICAgeT0xNDU4ICB3aWR0aD0xMjEgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTcyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk2ICAgeD0yNjIyICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NDkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTcgICB4PTE1ODUgIHk9MTEyMSAgd2lkdGg9MTE5ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OCAgIHg9Njc3ICAgeT00MTggICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk5ICAgeD0xNDUzICB5PTExMjMgIHdpZHRoPTEyMCAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAwICB4PTEyMDkgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDEgIHg9MTMyMCAgeT0xMTI1ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMiAgeD0xODY2ICB5PTQwOCAgIHdpZHRoPTEwMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9NiAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAzICB4PTEzNCAgIHk9NjEyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDQgIHg9MjYyNyAgeT0zOTUgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNSAgeD0xMDUwICB5PTc3NiAgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA2ICB4PTEzMjcgIHk9MCAgICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDcgIHg9MjQ5NSAgeT00MDEgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOCAgeD0yNzU1ICB5PTM5MiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA5ICB4PTE5NzMgIHk9MTExNyAgd2lkdGg9MTY4ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTAgIHg9MjE1MyAgeT0xMTE1ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMSAgeD0xMTgxICB5PTExMjYgIHdpZHRoPTEyNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEyICB4PTI2NyAgIHk9NjExICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTMgIHg9NDAwICAgeT02MDAgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNCAgeD0yMjgxICB5PTExMTMgIHdpZHRoPTkwICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE1ICB4PTE3MTYgIHk9MTEyMCAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTYgIHg9NDU3ICAgeT0xMTQwICB3aWR0aD05NSAgICBoZWlnaHQ9MTU1ICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTIzICAgIHhhZHZhbmNlPTUyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNyAgeD0xODQ1ICB5PTExMTcgIHdpZHRoPTExNiAgIGhlaWdodD0xMzUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE4ICB4PTI3NzIgIHk9MTEwMCAgd2lkdGg9MTIyICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTkgIHg9MjQ2MiAgeT0xMTEzICB3aWR0aD0xNjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTEyMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMCAgeD0yNjM3ICB5PTExMDYgIHdpZHRoPTEyMyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIxICB4PTAgICAgIHk9NjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjIgIHg9MjkwNiAgeT0xMDk3ICB3aWR0aD0xMTcgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMyAgeD00NTggICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI0ICB4PTI0NTEgIHk9MjA2ICAgd2lkdGg9NjEgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjUgIHg9MzQ5ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNiAgeD0yMzc4ICB5PTEyNTkgIHdpZHRoPTEzOCAgIGhlaWdodD03OSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYwICB4PTUxMyAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjEgIHg9MjE3ICAgeT0xMTQyICB3aWR0aD02NyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MiAgeD0xMzQxICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MjUgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYzICB4PTEzMDAgIHk9Nzc0ICAgd2lkdGg9MTMxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjQgIHg9NzAyICAgeT0xMTI5ICB3aWR0aD0xNDkgICBoZWlnaHQ9MTQ5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTMwICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NSAgeD00NjUgICB5PTk1NSAgIHdpZHRoPTE0MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY2ICB4PTIzNzUgIHk9MjA2ICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjcgIHg9MjA1ICAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OCAgeD0yNzE2ICB5PTEyNTEgIHdpZHRoPTEwMCAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY5ICB4PTk5NSAgIHk9NTk5ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzAgIHg9MTM2OCAgeT0xMjczICB3aWR0aD05OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTcxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MSAgeD0xMTMxICB5PTEyNzcgIHdpZHRoPTExMCAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcyICB4PTIyNTEgIHk9MTI2MSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTgxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT04OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzMgIHg9MTMzICAgeT0xNDU4ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NCAgeD0xMTY4ICB5PTU5NyAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc1ICB4PTMzMyAgIHk9MTQ0OCAgd2lkdGg9MTA1ICAgaGVpZ2h0PTU5ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzYgIHg9MTgxNSAgeT0xMjY4ICB3aWR0aD04OSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTYwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NyAgeD04NjMgICB5PTExMjkgIHdpZHRoPTEyMSAgIGhlaWdodD0xNDcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MjkgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc4ICB4PTg5OSAgIHk9MTI4OCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzkgIHg9NzkwICAgeT0xMjkwICB3aWR0aD05NyAgICBoZWlnaHQ9MTEyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MCAgeD0yNTI4ICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgxICB4PTg2NiAgIHk9NTk5ICAgd2lkdGg9MTE3ICAgaGVpZ2h0PTE2NiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODIgIHg9Mjg5MyAgeT05MjMgICB3aWR0aD0xMTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MyAgeD0yOTA4ICB5PTEyNDIgIHdpZHRoPTY3ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NjIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg0ICB4PTIxNjYgIHk9MTI2MSAgd2lkdGg9NzMgICAgaGVpZ2h0PTgyICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODUgIHg9MTQ3OSAgeT0xMjcxICB3aWR0aD03OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NiAgeD0xMjUzICB5PTEyNzQgIHdpZHRoPTEwMyAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg3ICB4PTEwMDggIHk9MTI3NyAgd2lkdGg9MTExICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODggIHg9MjU0MiAgeT03NTggICB3aWR0aD0xNTQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OSAgeD0yMzcyICB5PTc2MCAgIHdpZHRoPTE1OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkwICB4PTExMjkgIHk9Nzc2ICAgd2lkdGg9MTU5ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTEgIHg9OTI1ICAgeT03NzcgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MiAgeD0xNjIgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkzICB4PTMyNCAgIHk9MjE0ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTQgIHg9MCAgICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NSAgeD0xMzU5ICB5PTIxMCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk2ICB4PTE4MTQgIHk9MjA4ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTcgIHg9MTAxNiAgeT0wICAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTk5ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0yMyAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OCAgeD0xNzkyICB5PTc2OSAgIHdpZHRoPTE5OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTUwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk5ICB4PTExNzggIHk9MCAgICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDAgIHg9MjkyMiAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMSAgeD02NDEgICB5PTIxNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAyICB4PTc3NSAgIHk9MjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDMgIHg9MTk3NiAgeT0yMDcgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNCAgeD0xMDE4ICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA1ICB4PTExMTIgIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDYgIHg9OTA5ICAgeT0yMTMgICB3aWR0aD05NyAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNyAgeD0yMTEwICB5PTIwNyAgIHdpZHRoPTEwMCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yOCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA4ICB4PTAgICAgIHk9OTY5ICAgd2lkdGg9MTQ1ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDkgIHg9MTUyMSAgeT0yMDggICB3aWR0aD0xMzcgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMCAgeD0yMTg0ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjExICB4PTIwMzEgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTIgIHg9MTg3OCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMyAgeD0yNzY5ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE1ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE0ICB4PTEyMDYgIHk9MjEwICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTMgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTUgIHg9Mjc5ICAgeT0xMzE2ICB3aWR0aD0xMjAgICBoZWlnaHQ9MTIwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQwICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNiAgeD0yNjU1ICB5PTIwNiAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNzQgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTAgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE3ICB4PTI2MjUgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTggIHg9MjQ4MSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOSAgeD0yMzM3ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIwICB4PTE2NzAgIHk9MjA4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjEgIHg9NDg2ICAgeT0yMTQgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMiAgeD0yMzYwICB5PTkzOSAgIHdpZHRoPTEyNCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIzICB4PTEyMSAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD03ICAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjQgIHg9MTYwNCAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNSAgeD0xNDczICB5PTQxMiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI2ICB4PTE3MzUgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjcgIHg9NTMyICAgeT02MDAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOCAgeD0yOTI2ICB5PTU2OSAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI5ICB4PTI1MjQgIHk9MjA2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzAgIHg9OTk2ICAgeT0xMTI5ICB3aWR0aD0xNzMgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTEzNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMSAgeD0xOTc5ICB5PTQwNyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMyICB4PTEwNzYgIHk9NDE1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzMgIHg9OTQzICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNCAgeD04MTAgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM1ICB4PTI3OTMgIHk9NTcyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzYgIHg9NzcyICAgeT02MDAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNyAgeD0yOTcwICB5PTM4OCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM4ICB4PTY2MyAgIHk9NjAwICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzkgIHg9MCAgICAgeT0xMTQzICB3aWR0aD0xMDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MCAgeD0yODEwICB5PTIwNSAgIHdpZHRoPTEyMyAgIGhlaWdodD0xNzMgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NSAgICAgeGFkdmFuY2U9OTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQxICB4PTAgICAgIHk9NzkyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDIgIHg9MjYwICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MyAgeD01MzggICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ0ICB4PTM5OSAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDUgIHg9MjgzMSAgeT0zOTAgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NiAgeD0yMjUzICB5PTU4MyAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ3ICB4PTE0MCAgIHk9MTMxNyAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEyOCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDggIHg9NTY0ICAgeT0xMTI5ICB3aWR0aD0xMjYgICBoZWlnaHQ9MTUzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OSAgeD0yMTExICB5PTQwNyAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUwICB4PTIyMzkgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTEgIHg9MjM2NyAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MiAgeD02NzIgICB5PTc3OSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUzICB4PTc0OSAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTQgIHg9ODgzICAgeT0wICAgICB3aWR0aD0xMjEgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NSAgeD0xNzQ0ICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmtlcm5pbmdzIGNvdW50PTE2ODZcclxua2VybmluZyBmaXJzdD0zMiAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg2ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04OSAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTIyMSBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD02NSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NzQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTQgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTcgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODQgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODYgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9NzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9NzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9ODUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTggYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTUgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk5IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIwIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NyAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTE0XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04OSAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIxIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTIgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTUgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NCAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDYgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjEgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDYgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05OSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NSAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTczIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk3ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDIgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE3MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NjUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQge2dldFRvcExldmVsRm9sZGVyfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAndGljaycsIGhhbmRsZVRpY2sgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIGNvbnN0IHRlbXBNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVUaWNrKCB7IGlucHV0IH0gPSB7fSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICB8fCBmb2xkZXIuZ3JhYkRpc2FibGVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LnByZXNzZWQgJiYgaW5wdXQuc2VsZWN0ZWQgJiYgaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICBpZiggaW5wdXQuaW50ZXJhY3Rpb24ucHJlc3MgPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgICAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbi5zdWIoIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTsgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQud29ybGRUb0xvY2FsKGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9OT1RFOjogaW4gb3J0aG9ncmFwaGljIG1vZGUsIHdlJ3ZlIGFscmVhZHkgbXV0YXRlZCB0aGUgcG9zaXRpb24gb2YgZm9sZGVycyxcclxuICAgICAgICAgIC8vbWVhbmluZyB0aGVyZSBjb3VsZCBiZSBzb21lIGluY29uc2lzdGVuY3kgd2l0aCB0aGUgbW91c2VJbnRlcnNlY3Rpb24gcG9pbnQgbm8gbG9uZ2VyIGJlaW5nIHJpZ2h0Li4uXHJcbiAgICAgICAgICAvL0kgdGhvdWdodCB0aGlzIHdhcyBwbGF5aW5nIGEgcm9sZSBpbiBhIGJ1ZyB3aXRoIG9ydGhvZ3JhcGhpYyBmb2xkZXIgbGF5b3V0LCBhcHBlYXJzIG9rIGZvciBub3cuXHJcbiAgICAgICAgICBmb2xkZXIucG9zaXRpb24uY29weShpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcblxyXG4gICAgICAgICAgZm9sZGVyLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgIGlmKCBoaXRPYmplY3QgPT09IHBhbmVsICl7XHJcbiAgICAgICAgICBoaXRPYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGhpdE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlUGxhbmUuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoIGlucHV0Lm1vdXNlQ2FtZXJhLmdldFdvcmxkRGlyZWN0aW9uKCBpbnB1dC5tb3VzZVBsYW5lLm5vcm1hbCApLCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZVBsYW5lICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICAgIGlmKCBoaXRPYmplY3QgIT09IHBhbmVsICl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZCA9IGZvbGRlcjtcclxuXHJcbiAgICAgICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5zZWxlY3RlZC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlT2Zmc2V0LmNvcHkoIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkuc3ViKCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgICBcclxuICAgICAgdGVtcE1hdHJpeC5nZXRJbnZlcnNlKCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggdGVtcE1hdHJpeCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcblxyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICBpbnB1dE9iamVjdC5hZGQoIGZvbGRlciApOyBcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYmJlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaW5wdXQuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG5cclxuICAgICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJSZWxlYXNlZCcsIGZvbGRlciApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiZXhwb3J0IGNvbnN0IGdyYWJCYXIgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQWdDQVlBQUFDaW5YNkVBQUFBQ1hCSVdYTUFBQzRqQUFBdUl3RjRwVDkyQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBRHNrYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QZ284ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMall0WXpFek1pQTNPUzR4TlRreU9EUXNJREl3TVRZdk1EUXZNVGt0TVRNNk1UTTZOREFnSUNBZ0lDQWdJQ0krQ2lBZ0lEeHlaR1k2VWtSR0lIaHRiRzV6T25Ka1pqMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M4d01pOHlNaTF5WkdZdGMzbHVkR0Y0TFc1ekl5SStDaUFnSUNBZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB3YUc5MGIzTm9iM0E5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmNHaHZkRzl6YUc5d0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRVYyZEQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sUlhabGJuUWpJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenAwYVdabVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM1JwWm1Zdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WlhocFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzlsZUdsbUx6RXVNQzhpUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMGIzSlViMjlzUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5NGJYQTZRM0psWVhSdmNsUnZiMncrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZRM0psWVhSbFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qSTFPak15TFRBM09qQXdQQzk0YlhBNlEzSmxZWFJsUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTmIyUnBabmxFWVhSbFBqSXdNVFl0TURrdE1qaFVNVFk2TXpjNk1qTXRNRGM2TURBOEwzaHRjRHBOYjJScFpubEVZWFJsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPak0zT2pJekxUQTNPakF3UEM5NGJYQTZUV1YwWVdSaGRHRkVZWFJsUGdvZ0lDQWdJQ0FnSUNBOFpHTTZabTl5YldGMFBtbHRZV2RsTDNCdVp6d3ZaR002Wm05eWJXRjBQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0elBDOXdhRzkwYjNOb2IzQTZRMjlzYjNKTmIyUmxQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tsRFExQnliMlpwYkdVK2MxSkhRaUJKUlVNMk1UazJOaTB5TGpFOEwzQm9iM1J2YzJodmNEcEpRME5RY205bWFXeGxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa1J2WTNWdFpXNTBTVVErWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qZGxOemRtWW1aakxUZzFaRFF0TVRGbE5pMWhZemhtTFdGak56VTBaV1ExT0RNM1pqd3ZlRzF3VFUwNlJHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09tTTFabU0wWkdZeUxUa3hZMk10WlRJME1TMDRZMlZqTFRNek9ESXlZMlExWldGbE9Ud3ZlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwVFpYRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrZ2NtUm1PbkJoY25ObFZIbHdaVDBpVW1WemIzVnlZMlVpUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WVdOMGFXOXVQbU55WldGMFpXUThMM04wUlhaME9tRmpkR2x2Ymo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21sdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRwak5XWmpOR1JtTWkwNU1XTmpMV1V5TkRFdE9HTmxZeTB6TXpneU1tTmtOV1ZoWlRrOEwzTjBSWFowT21sdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwM2FHVnVQakl3TVRZdE1Ea3RNamhVTVRZNk1qVTZNekl0TURjNk1EQThMM04wUlhaME9uZG9aVzQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOXpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZMjl1ZG1WeWRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwd1lYSmhiV1YwWlhKelBtWnliMjBnWVhCd2JHbGpZWFJwYjI0dmRtNWtMbUZrYjJKbExuQm9iM1J2YzJodmNDQjBieUJwYldGblpTOXdibWM4TDNOMFJYWjBPbkJoY21GdFpYUmxjbk0rQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajV6WVhabFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4Tmkwd09TMHlPRlF4Tmpvek56b3lNeTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGphR0Z1WjJWa1BpODhMM04wUlhaME9tTm9ZVzVuWldRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0eFBDOWxlR2xtT2tOdmJHOXlVM0JoWTJVK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajQyTkR3dlpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0ek1qd3ZaWGhwWmpwUWFYaGxiRmxFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQZ29nSUNBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBbzhQM2h3WVdOclpYUWdaVzVrUFNKM0lqOCtPaEY3UndBQUFDQmpTRkpOQUFCNkpRQUFnSU1BQVBuL0FBQ0E2UUFBZFRBQUFPcGdBQUE2bUFBQUYyK1NYOFZHQUFBQWxFbEVRVlI0MnV6WnNRM0FJQXhFVVR1VFpKUnNrdDVMUkZtQ2RUTGFwVUtDQmlqby9GMGhuMlNrSnhJS1hKSmxyc09TRndBQUFBQkE2dktJNk83QlVvclhkWnUxL1ZFV0VaZVpmYk41bS9aYW1qZksrQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0JmdWFTbmE3aS9kZDFtYlgrVVNUck43SjdOMjdUWDByeFJ4Z25nWllpZklBQUFBSkM0ZmdBQUFQLy9Bd0F1TVZQdzIwaHhDd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDEnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIC8vIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuNTtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAsIGltYWdlLmhlaWdodCAvIDEwMDAsIDEsIDEgKTtcclxuXHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxufSgpKTtcclxuXHJcbmV4cG9ydCBjb25zdCBkb3duQXJyb3cgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qRTRPakkxTFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRveE9Eb3lOUzB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvek1EUXlZakkwWlMxaU16YzJMV0kwTkdJdE9HSTRZeTFsWlRGalkySXpZV1UxTURVOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pNd05ESmlNalJsTFdJek56WXRZalEwWWkwNFlqaGpMV1ZsTVdOallqTmhaVFV3TlR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NVVpbHowQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFKZFNVUkJWSGphN04zTGNjSkFFSVRoUnVXN25jVWVUUWhrUUFpSURNZ0loVUlJY0ZRV0pnSjg4Rktsb3Z3QXJOMmQ2WjQ1Y1pHQS9UOXZpWWZ0eGVWeVFZenVkTEVFQVNBbUFNUUVnQmpKZVdsMXh5bWxOd0FIQU1keEhIdkZ4VThwRFFDV0FGYmpPSDdJN0FDVCtPOEFObmtoRk9Odjhob2M4cHJ3QTdpSmZ4MHBCSlA0MTJtR29ETVFYd3JCTi9HYkl1aU14SmRBOEV2OFpnZzZRL0dwRWR3UnZ3bUN6bGg4U2dRUHhLK09vTVlPTUR3WW53ckJFL0duQ0FiWEFQS1RYLy9qRkp1VVV1ODRmdjlrL091c1MvOFFkQWJsMzg3ZUk0TDhtUGN6bktyb1RsaHlCMWpPZUM1WENHYU1YMkl0cXdGWUFUaXBJU2dRLzVUWDBoZUEvTjYyRklKUzhVdCtUbEQwSWxBSmdjZjRWVjRHS2lEd0dyL1crd0RVQ0R6SHJ3YUFGWUgzK0ZVQnNDRmdpRjhkQUFzQ2x2aE5BSGhId0JTL0dRQ3ZDTmppTndYZ0RRRmovT1lBdkNCZ2pXOENnSFVFelBITkFMQ0tnRDIrS1FEV0VDakVOd2ZBQ2dLVitDWUJUQkQwQU02MUVSU0lmd2JRVzR4dkZrQkdjTXc3UVRVRWhlS3Y4bk5CQURDTVFERytlUUMxRUtqR0I0Q0ZsNzhSbEZKYTR1c1hURjduakpSdnozNWVEL0ZkQVNpSUFLcngzUUVvaEFDcThWMWNBMVM2SnBDTTd4S0FRUVJ1NDdzRllBaUI2L2l1QVJoQTRENitld0FORVZERXB3RFFBQUZOZkJvQUZSRlF4YWNDVUFFQlhYdzZBQVVSVU1hbkJGQUFBVzE4V2dBeklxQ09UdzFnQmdUMDhla0JUQkRzbmpoMHh4NWZBa0JHTUFEWVBuRElOaCtEQUtDSFFDYStGSUE3RVVqRmx3UHdCd0s1K0pJQWZrQWdHUjl3K0pXd09lZjZ6V0RWK1BJQVl1TGZ4Z1dBV0lJQUVCTUFZZ0pBak9SOERnRCs2T3pndjR1eTlnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBoID0gMC4zO1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAtMC4wMDUsIC0wLjAwNCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja21hcmsgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qTXpPalV6TFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRvek16bzFNeTB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvMk9EY3hZVGs1WXkwek5qRTVMVGxrTkdFdE9EZGtOaTB3WVdFNVlUUmlOV1U0TWpjOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pZNE56RmhPVGxqTFRNMk1Ua3RPV1EwWVMwNE4yUTJMVEJoWVRsaE5HSTFaVGd5Tnp3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NXo5UlQzQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFUdFNVUkJWSGphN0p6YmI1UkZHTVovMnhiQ3ZWaEFTRXhVaUkxNDR3MGhRdEhFR3JIZ0lTcWdONktndE5ZV0FiMHcwV28xWHFyYlBiU2xva1lTeGZNaGVtWC9BYTd3R0FWcThYVHAzMERYaTVtSm0wYTJ1OXYzL2I2WjJYbHVkck9IZHcvUE16UFArNzR6WDZGV3F5R0ZnWUVCRWxwR0QvQWVjQ3R3Qi9EYmNtK1ltNXNUKy9DdTlQL25pbTZnQ0R3Q1hBdDhEVnlYNVJkSUFzZ1BCYUFFak5ROWRpUHdGYkE1Q1NCK1RBRlAvYy9qVzRIUGdMNGtnSGd4Q3d3MWVQNW00R043bXdRUUVib3MrVTgwOGRxdHdFZjJOZ2tnRXJjLzB5VDVEbjEyT2RpU0JCQSsrYVVXeVhmWUFud0RYSjhFRUc2cU53a01yeURHWnBzaTNwQUVFQjZxVjNEN3JhSVArTkttaWtrQWdlQXQ0SWhndkp2c1RKQUU0RGtLd0NuZ3NFTHNzMGtBL3EvNXM4QWhoZGpUd0VGcGQ1b2dTMzVWYWVUUEFrOERpMGtBL3BKZkVsN3pIVTdTdUhLWWxnQVAxdnl5a050Zmloa3Q4cE1BWkVrYVZvaGJWWXFiQkNDSVU4Q1RDbkZMd0pqMmwwOENXTm1hLzdhUzI2OEN4NlFOWHhLQXJIbWVCaDVYV2s3R3NpQS9Ud0dNWWZhL2hVcCttZllhTzgyNC9lR3N5TTlMQUM5Z21pUHZBenNESTcvTHJzMURTaU4vS0k4ZmxDWEdnVmZ0L1Y3Z0RMQXJJQUZNaCtyMmZSREFTOERFa3NjMkFoOEMvUjNzOXN2QWFKNVRXbGJrdjN5RjU5WmpkcjFzOTNqYTEzTDdGZXYyYXpFTFlMd0IrUTVyTWIzdWJSNGF2cE5LYm44YWVBYTRuTGU2dFEzZlJKT3Y3UVcrOEdnbTZMRWpWS094TTRNNUQzQTU3eCtwS1lBWDZ3eGZzOWdBZkFMczhJQjhyY2FPS3h2WGZGQzVsZ0RHZ1ZmYWZLOHpocnR5L0UrMFhIa2xMN2VmcFFBbVdwajJseFBCYlRuOEo3UG8xZlpIOFF6U0Fuak5qbjRKck1lY2pzbXFXRlFBM2xWeSt5WHI5b2xkQUhjS3g3c2ErRHdEWTloajgveURpcW5lWWljSTRGSGdSK0dZYTVXekE4M0d6aFJ3MUZmeU5RVHdDM0NQdlpYRU91QlR6RVVVSkxFcWcxVFBXL0sxVE9DZndDQndVVGp1TmNpV2pic3haVmlOVkMrMzJyNHZhZUFmd0YzQWduRGNUVllFdHd1TlVBM3l5NWpkdTNTeUFBQitCM1lyTEFjYkJPb0U3eWhOKzVOMnpTY0p3R0FlZUFENFRqaHVMNmFCMUtvbjZMYmtQNlkwOG8valNZWFBGd0VBbkFjZVZoREJWUzFtQjY2eG8wSCtGS2F4czBoZ3lLb2RmQUY0RVBoSnFVNnczRXl3eWhxelEwcmtqNFJJZnBZQ0FMZ0U3TEV6Z2lSY3hiQy93Y2l2b0ZQZWRlUUhpNnkzaFAxbGplRzhVb3E0TkRzb1lJbzhXanQ1Z2lZL0R3SFVwNGkvS21RSForcEVVTURzNU5GdyswVXlPTFFScXdEY2NuQXY4TDF3M0hYQWFac2l2cTVrK0lyQUNTSkJucWVENTRFRHdBZkFMWUp4TndIZktwbXlzaVYvTVJZQjVIMHk2QUt3SC9oQk9PNXFZSTJDNFRzYUUvaytDQURNMWJIM0lsOHhsRVRWR3I0YWtjR1hzNEYvQTNmYkdjRTNWQWlvdGgrcUFNQjBFWGQ3Sm9KSlBOekdGYXNBd0RTUUJwSGZWTkt1Mno5RzVQRHhlUGdDOEJCd0x1ZVJmeUxHTlQ4RUFZRFpUSElBK1FaU3Mydis4ZGpjZm1nQ2NIV0MrNUZ2SUMzbjlrYzdoWHpmQmVDTTRSN2t5OFlkNS9aREZRRDgxMEM2cVBnWjBidjlrQVZRbnlKcUZJdmV4R3ptSUFuQWIxd0M3aE0yaGtYZ1dUb1lvVjBsekRXUUpGTEU2Qm83blNBQWx5THVZMlVOcEFvWlhvb3RDVUFlQzVnRzBzOXRrajlLUXRBQ0FOTkFHcVMxUFlhbFJINDhBbkFwWXJQYnk0b0VkbWdqQ2FENUZIRXZqYmVYdllFcDd5WkVLQURuQ2ZaYkVmd0RQSTg1TCtESWY0NE9hT3kwZzM4SEFNL2U3Z3VJUng5NEFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFRVNVUkJWR2lCN2RoQkRvTXdERVJSN2pUaUpDUHVmNVd1bXBoVnhYeWtWSkd6SXBKNWNnc2tkbzRManFPQnJRQTlIQTAwME1EK3dQVmp2QVdjRkJqekVCZ0pwTUNjWjhCTUlBVEtQQUpLQWhsUTV3bndUY0FwTUM1RFlDU1FBdmVyNThCTUlBVEtEUkZRRXNpQUdrOEFVMEFRTUFVRUFWTkFFREFGQkFGVFFCQXdCUVFCVTBBUU1BVUVBVk5BRURBRkJBRlRRQkR3Y2dEL0JQNG40c2ZJWHlUOEt2T1BDWC9PZkVIQlN4cGZWUEd5empjV3ZMWHh6UlZ2Nzd6QXdDVU9MN0p3bWNjTFRWenE4bUk3TC9mUGtrSUU0SmFITjEyNDdlT05KMjU5ZWZOOWkxbHpBRkdERmgzQ2xLaFZCMUV6Yk5saDNJajd3eFBOQmhwb1lEV1FqZ2EyQUQ1Uy9DeUl2Ym1xN2dBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ0J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgdW5kb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVQU1VSQlZHaUI3ZGd4Q3NRd0RBVEEvRW5vSlVMLy84cFZzV1dsT0x3TFVUQnlGZmJFc05jNGRpNG4xOVhBVVlCc3JnWWFhT0I4d1A4c0dqQVdjQm93Rm5BYU1CWndHakFXY0JqUVVBRUNKQXhqUUtpQUFmSjgyZ1JtQlJDWUZWQmdWRUNCeCsvYmdLWnNHOGdEKzBDcXNBK2tDUUJZS3dEQU9vSUFTd1VFV0dZZ0lGYUFnRGlFQWFFQ0JvUXBFSmdWUUdDT29jQ29nQUx3anZTb0FBUDNJQTRvQ3dnTktBc0lEV2c1d1A0RlpRRW5BV1VCSndGbGdUc3IyMUJHVnJXcHpxem94Ukt5bXBkcnpFb09HRXRXY2NoYXM0S0Rac3JlUDJ6bjdQVUx4M2dFZ1ZHZzZ0bzNDeFJkZlVPQm91dC9LRkQ2Q2NSWVFFakFXRUJJd0ZnZ3ozM3dpMllERFRSUURhQ3JnU09BSDhIOEtxZ2dZcEFVQUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDUnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuIiwiLyoqIFxyXG4gKiBCaWcgYnV0dG9uIHdpdGggYW4gaW1hZ2Ugb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBBbHNvIHVzYWJsZSBhcyBhbiAneHkgY29udHJvbGxlcicgdmlhIGFkZFhZQ29udHJvbGxlciBtZXRob2QuXHJcbiAqIFxyXG4gKiBBUEkgc3ViamVjdCB0byBjaGFuZ2UuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtpc0NvbnRyb2xsZXJWaXNpYmxlfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGZ1bmMgPSB1bmRlZmluZWQsXHJcbiAgcHJlc3NpbmcgPSB1bmRlZmluZWQsXHJcbiAgaW1hZ2UgPSBcInRleHR1cmVzL3Nwb3RsaWdodC5qcGdcIiwgLy9UT0RPIGJldHRlciBkZWZhdWx0XHJcbiAgd2lkZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjaGFuZ2VDb2xvck9uSG92ZXIgPSB0cnVlLCAvL3F1aWNrIGhhY2s6IGNvbG9yIHBpY2tlciB3YW50cyB0aGlzIHRvIGJlIGZhbHNlXHJcbiAgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gICAvL1hYWCBtYWdpYyBudW1iZXJzLi4uXHJcbiAgaWYgKCFoZWlnaHQpIGhlaWdodCA9IExheW91dC5QQU5FTF9XSURUSCAgKiAod2lkZSA/IDAuOTQgOiAwLjI1KTtcclxuICBcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqICh3aWRlID8gMC45NCA6IDAuMjUpIC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBidXR0b25EZXB0aDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCAxLCAxICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIC8vbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBvYmouaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgb2JqLm5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IG9iai5ob3ZlckNvbCA6IG9iai5ub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygpICk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwwKSApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlOyAvL3NvbWV0aW1lcyB3ZSBjYXJlIGFib3V0IHRoZSBtb3VzZSBiZWluZyBwcmVzc2VkLCBldmVuIG9uIGJhY2tncm91bmRcclxuICAgICAgIC8vd2lsbCBiZSBzZXQgZmFsc2UgYXQgZW5kIG9mIGZpcnN0IHVwZGF0ZS4gU2hvdWxkbid0IGJlIG5lY2Vzc2FyeSB0byBhZGQgYSBuZXcgcHJvcGVydHkuLi4gXHJcbiAgICAgICAvL29uUHJlc3NlZCBzaG91bGQgYmUgYWRlcXVhdGUuXHJcbiAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgfSwgdHJ1ZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2V1cCcsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBmdW5jdGlvbiB1c2VycyBydW4gdG8gZ2l2ZSBEQVQgR1VJIGFuIGlucHV0IGRldmljZS5cclxuICAgIEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBmb3IgVml2ZUNvbnRyb2xsZXIgYW5kIGJpbmRzIGJ1dHRvbnMgKyBoYXB0aWMgZmVlZGJhY2suXHJcblxyXG4gICAgUmV0dXJucyBhIGxhc2VyIHBvaW50ZXIgc28gaXQgY2FuIGJlIGRpcmVjdGx5IGFkZGVkIHRvIHNjZW5lLlxyXG5cclxuICAgIFRoZSBsYXNlciB3aWxsIHRoZW4gaGF2ZSB0d28gbWV0aG9kczpcclxuICAgIGxhc2VyLnByZXNzZWQoKSwgbGFzZXIuZ3JpcHBlZCgpXHJcblxyXG4gICAgVGhlc2UgY2FuIHRoZW4gYmUgYm91bmQgdG8gYW55IGJ1dHRvbiB0aGUgdXNlciB3YW50cy4gVXNlZnVsIGZvciBiaW5kaW5nIHRvXHJcbiAgICBjYXJkYm9hcmQgb3IgYWx0ZXJuYXRlIGlucHV0IGRldmljZXMuXHJcblxyXG4gICAgRm9yIGV4YW1wbGUuLi5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCl7IGxhc2VyLnByZXNzZWQoIHRydWUgKTsgfSApO1xyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW5wdXRPYmplY3QoIG9iamVjdCApe1xyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCggb2JqZWN0ICk7XHJcblxyXG4gICAgaW5wdXQubGFzZXIucHJlc3NlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGNvbnN0IGhpdHMgPSBpbnB1dC5pbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvLyBvbmx5IHBheSBhdHRlbnRpb24gdG8gcHJlc3NlcyBvdmVyIHRoZSBHVUlcclxuICAgICAgaWYgKGZsYWcgJiYgaGl0cyAmJiAoaGl0cy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5ncmlwcGVkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgaW5wdXQuZ3JpcHBlZCA9IGZsYWc7XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmN1cnNvciA9IGlucHV0LmN1cnNvcjtcclxuXHJcbiAgICBpZiggVEhSRUUuVml2ZUNvbnRyb2xsZXIgJiYgb2JqZWN0IGluc3RhbmNlb2YgVEhSRUUuVml2ZUNvbnRyb2xsZXIgKXtcclxuICAgICAgYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgb2JqZWN0LCBpbnB1dC5sYXNlci5wcmVzc2VkLCBpbnB1dC5sYXNlci5ncmlwcGVkICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLnB1c2goIGlucHV0ICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0Lmxhc2VyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEhlcmUgYXJlIHRoZSBtYWluIGRhdCBndWkgY29udHJvbGxlciB0eXBlcy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBtaW4gPSAwLjAsIG1heCA9IDEwMC4wICl7XHJcbiAgICBjb25zdCBzbGlkZXIgPSBjcmVhdGVTbGlkZXIoIHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBtaW4sIG1heCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBzbGlkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gc2xpZGVyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBjaGVja2JveCA9IGNyZWF0ZUNoZWNrYm94KHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGNoZWNrYm94ICk7XHJcblxyXG4gICAgcmV0dXJuIGNoZWNrYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmMgdG8gY2FsbCBiYWNrIHdoZW4gYnV0dG9uIHByZXNzZWRcclxuICAgKiBAcGFyYW0geyp9IGltYWdlIGNhbiBiZSBmaWxlbmFtZSwgV2ViR0xSZW5kZXJUYXJnZXQgb3IgTWF0ZXJpYWxcclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHdpZGUgd2hldGhlciB0byBtYWtlIGJ1dHRvbiBmaWxsIGVudGlyZSB3aWR0aCBvZiBwYW5lbCAoYXBpIHN1YmplY3QgdG8gY2hhbmdlKVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uKGZ1bmMsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IG9iamVjdCA9IHsgZjogZnVuYyB9O1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJ2YnO1xyXG5cclxuXHJcbiAgICAvL3NlZSBhbHNvIGZvbGRlci5qcyB3aGVyZSB0aGlzIGlzIGFkZGVkIHRvIGdyb3VwIG9iamVjdC4uLlxyXG4gICAgLy9hcyBzdWNoIHRoaXMgZnVuY3Rpb24gYWxzbyBuZWVkcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gY3JlYXRlRm9sZGVyLlxyXG4gICAgLy9wZXJoYXBzIGFsbCBvZiB0aGVzZSAnYWRkWCcgZnVuY3Rpb25zIGNvdWxkIGJlIGluaXRpYWxseSBwdXQgb250byBhbiBvYmplY3Qgc28gdGhhdFxyXG4gICAgLy9uZXcgYWRkaXRpb25zIGNvdWxkIGJlIGFkZGVkIHNsaWdodGx5IG1vcmUgZWFzaWx5LlxyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkWFlDb250cm9sbGVyKHByZXNzaW5nLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnJztcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByZXNzaW5nLCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChidXR0b24pO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVGhpcyBpbnRlcmZhY2UgbWF5IGJlIHN1YmplY3QgdG8gY2hhbmdlLiAgQXJndW1lbnRzIGFyZSBvYmplY3RzIGRlc2NyaWJpbmcgYnV0dG9uc1xyXG4gIEZpcnN0IG9iamVjdCBtYXkgYmUgYW4gaW50ZWdlciBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uUGFuZWwoY29scywgLi4uYXJncykge1xyXG4gICAgbGV0IGNvbHVtbnMgPSBOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpID8gY29scyA6IDQ7XHJcbiAgICBjb25zdCBvYmplY3RzID0gYXJncztcclxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihjb2xzKSkgb2JqZWN0cy51bnNoaWZ0KGNvbHMpXHJcbiAgICBjb25zdCBncmlkID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogY29sdW1uc30pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChncmlkKTtcclxuICAgIHJldHVybiBncmlkO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkS2V5Ym9hcmQoIGtleUxpc3RlbmVyICkge1xyXG4gICAgaWYgKCFrZXlMaXN0ZW5lcikga2V5TGlzdGVuZXIgPSAoaykgPT4gY29uc29sZS5sb2coYGtleURvd24gJHtrfWApO1xyXG4gICAgY29uc3Qga2IgPSBjcmVhdGVLZXlib2FyZCh7a2V5TGlzdGVuZXIsIHRleHRDcmVhdG9yfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGtiKTtcclxuICAgIHJldHVybiBrYjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlVGV4dGJveCh7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVDb2xvclBpY2tlcih7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvcHRpb25zICl7XHJcbiAgICBjb25zdCBkcm9wZG93biA9IGNyZWF0ZURyb3Bkb3duKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBvcHRpb25zXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBkcm9wZG93biApO1xyXG4gICAgcmV0dXJuIGRyb3Bkb3duO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBbiBpbXBsaWNpdCBBZGQgZnVuY3Rpb24gd2hpY2ggZGV0ZWN0cyBmb3IgcHJvcGVydHkgdHlwZVxyXG4gICAgYW5kIGdpdmVzIHlvdSB0aGUgY29ycmVjdCBjb250cm9sbGVyLlxyXG5cclxuICAgIERyb3Bkb3duOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvYmplY3RUeXBlIClcclxuXHJcbiAgICBTbGlkZXI6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mTnVtYmVyVHlwZSwgbWluLCBtYXggKVxyXG5cclxuICAgIENoZWNrYm94OlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkJvb2xlYW5UeXBlIClcclxuXHJcbiAgICBCdXR0b246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mRnVuY3Rpb25UeXBlIClcclxuXHJcbiAgICBOb3QgdXNlZCBkaXJlY3RseS4gVXNlZCBieSBmb2xkZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKXtcclxuXHJcbiAgICBpZiggb2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2VcclxuXHJcbiAgICBpZiAob2JqZWN0LmlzRm9sZGVyKSByZXR1cm4gb2JqZWN0O1xyXG5cclxuICAgIGlmKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgY29uc29sZS53YXJuKCAnbm8gcHJvcGVydHkgbmFtZWQnLCBwcm9wZXJ0eU5hbWUsICdvbiBvYmplY3QnLCBvYmplY3QgKTtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc09iamVjdCggYXJnMyApIHx8IGlzQXJyYXkoIGFyZzMgKSApe1xyXG4gICAgICByZXR1cm4gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzTnVtYmVyKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Jvb2xlYW4oIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNGdW5jdGlvbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc1N0cmluZyggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNDb2xvciggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYWRkIGNvdWxkbid0IGZpZ3VyZSBpdCBvdXQsIHBhc3MgaXQgYmFjayB0byBmb2xkZXJcclxuICAgIHJldHVybiB1bmRlZmluZWRcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVTbGlkZXIoIG1pbiA9IDAsIG1heCA9IDEgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBudW1iZXI6IG1pblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkU2xpZGVyKCBwcm94eSwgJ251bWJlcicsIG1pbiwgbWF4ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVEcm9wZG93biggb3B0aW9ucyA9IFtdICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgb3B0aW9uOiAnJ1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiggb3B0aW9ucyAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHByb3h5Lm9wdGlvbiA9IGlzQXJyYXkoIG9wdGlvbnMgKSA/IG9wdGlvbnNbIDAgXSA6IG9wdGlvbnNbIE9iamVjdC5rZXlzKG9wdGlvbnMpWzBdIF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFkZERyb3Bkb3duKCBwcm94eSwgJ29wdGlvbicsIG9wdGlvbnMgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUNoZWNrYm94KCBkZWZhdWx0T3B0aW9uID0gZmFsc2UgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBjaGVja2VkOiBkZWZhdWx0T3B0aW9uXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRDaGVja2JveCggcHJveHksICdjaGVja2VkJyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQnV0dG9uKCBmbiApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGJ1dHRvbjogKGZuIT09dW5kZWZpbmVkKSA/IGZuIDogZnVuY3Rpb24oKXt9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRCdXR0b24oIHByb3h5LCAnYnV0dG9uJyApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBOb3QgdXNlZCBkaXJlY3RseTsgdXNlZCBieSBmb2xkZXJzLlxyXG4gIFJlbW92ZSBjb250cm9sbGVycyBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgY29udHJvbGxlcnMga25vd24gdG8gZGF0LkdVSVZSLlxyXG4gIENhbGxzIHJlbW92ZVRlc3QgZmlyc3QgdG8gY2hlY2sgaW5wdXQgYXJndW1lbnRzLiAgcmV0dXJucyBmYWxzZSBpZiB0aGlzIHRlc3QgZmFpbHMuXHJcbiAgcmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuXHJcblxyXG4gIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlY3Vyc2l2ZWx5IHJlbW92ZSBlbGVtZW50cyBmcm9tIGZvbGRlcnM7IHRoYXQgaXMgZGVhbHQgd2l0aCBpbiB0aGUgZm9sZGVyIGNvZGUgd2hpY2ggY2FsbHMgdGhpcy5cclxuICBcclxuICAgKi9cclxuICBmdW5jdGlvbiByZW1vdmUoIC4uLmFyZ3MgKXtcclxuICAgIGxldCBhcmdTZXQgPSBbIC4uLm5ldyBTZXQoYXJncykgXTsgLy9qdXN0IGluIGNhc2UgdGhlcmUgd2VyZSByZXBlYXRlZCBlbGVtZW50cyBpbiBhcmdzLCB0dXJuIGludG8gU2V0IHRoZW4gYmFjayB0byBhcnJheS5cclxuICAgIGlmICggIXJlbW92ZVRlc3QoLi4uYXJnU2V0KSApIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ1NldC5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIHZhciBpID0gY29udHJvbGxlcnMuaW5kZXhPZiggb2JqICk7XHJcbiAgICAgIGlmICggaSA+IC0xKSBjb250cm9sbGVycy5zcGxpY2UoIGksIDEgKTtcclxuICAgICAgZWxzZSB7IC8vIEkgY2FuJ3Qgc2VlIGhvdyB0aGlzJ2QgaGFwcGVuIG5vdyB3ZSBndWFyZCBhZ2FpbnN0IHJlcGVhdGVkIGVsZW1lbnRzLlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW50ZXJuYWwgZXJyb3IgaW4gcmVtb3ZlLCBub3QgYW50aWNpcGF0ZWQgYnkgcmVtb3ZlVGVzdC4gSW50ZXJuYWwgZGF0LkdVSVZSIHN0YXRlIG1heSBiZSBpbmNvbnNpc3RlbnQuXCIpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVmVyaWZ5IHRoYXQgYWxsIG9mIHRoZSBpdGVtcyBpbiBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGV4aXN0aW5nIGNvbnRyb2xsZXJzIHRoYXQgc2hvdWxkIGJlIG9rIHRvIHJlbW92ZS5cclxuXHJcbiAgUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBhcmUgYW55IG1pc21hdGNoZXMsIHRydWUgaWYgYmVsaWV2ZWQgb2sgdG8gY29udGludWUgd2l0aCBhY3R1YWwgcmVtb3ZlKClcclxuXHJcbiAgSWYgYW55IG9mIHRoZSBwcm92aWRlZCBhcmdzIGFyZSBmb2xkZXJzIChoYXZlIGlzRm9sZGVyIHByb3BlcnR5KSB0aGlzIGlzIGNhbGxlZCByZWN1cnNpdmVseS5cclxuICBUaGlzIHdpbGwgcmVzdWx0IGluIHJlZHVuZGFudCB3b3JrIGFzIGVhY2ggZm9sZGVyIHdpbGwgYWxzbyBjYWxsIGl0IGFnYWluIGFzIGl0J3MgcmVtb3ZlZCwgYnV0IHRoaXMgaXMgY2hlYXBcclxuICBhbmQgaXQgbWVhbnMgdGhhdCBhbnkgZXJyb3Igc2hvdWxkIGJlIGNhdWdodCBhcyBlYXJseSBhcyBwb3NzaWJsZSBhbmQgdGhlIHdob2xlIHByb2Nlc3MgYWJvcnRlZC5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZVRlc3QoIC4uLmFyZ3MgKSB7XHJcbiAgICBmb3IgKHZhciBpPTA7IGk8YXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgb2JqID0gYXJnc1tpXTtcclxuICAgICAgaWYgKGNvbnRyb2xsZXJzLmluZGV4T2Yob2JqKSA9PT0gLTEgfHwgIW9iai5mb2xkZXIuaGFzQ2hpbGQob2JqKSkge1xyXG4gICAgICAgIC8vVE9ETzogdG9TdHJpbmcgaW1wbGVtZW50YXRpb25zIGZvciBjb250cm9sbGVyc1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2FuJ3QgcmVtb3ZlIGNvbnRyb2xsZXIgXCIgKyBvYmopOyAvL25vdCBzdXJlIHRoZSBwcmVmZXJyZWQgd2F5IG9mIHJlcG9ydGluZyBwcm9ibGVtIHRvIHVzZXIuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBpZiAoIXJlbW92ZVRlc3QoIC4uLm9iai5ndWlDaGlsZHJlbiApKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGxldGVseSByZW1vdmUgYWxsIEdVSSBlbGVtZW50cyBmcm9tIHRoZSBzeXN0ZW0gZ2xvYmFsbHksIFxyXG4gICAqIGluY2x1ZGluZyByZW1vdmluZyBhbnkgb2JqZWN0cyBmcm9tIHRoZSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY2xlYXJBbGwoKSB7XHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBjLnZpc2libGUgPSBmYWxzZTsgaWYgKGMucGFyZW50ICYmICFjLnBhcmVudC5ndWlDaGlsZHJlbikgYy5wYXJlbnQucmVtb3ZlKGMpO1xyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5zcGxpY2UoMCwgY29udHJvbGxlcnMubGVuZ3RoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGZvbGRlciB3aXRoIHRoZSBuYW1lLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIFRIUkVFLkdyb3VwIHR5cGUgb2JqZWN0cyBhbmQgY2FuIGRvIGdyb3VwLmFkZCgpIGZvciBzaWJsaW5ncy5cclxuICAgIEZvbGRlcnMgd2lsbCBhdXRvbWF0aWNhbGx5IGF0dGVtcHQgdG8gbGF5IGl0cyBjaGlsZHJlbiBvdXQgaW4gc2VxdWVuY2UuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgZ2l2ZW4gdGhlIGFkZCgpIGZ1bmN0aW9uYWxpdHkgc28gdGhhdCB0aGV5IGNhbiBkb1xyXG4gICAgZm9sZGVyLmFkZCggLi4uICkgdG8gY3JlYXRlIGNvbnRyb2xsZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggbmFtZSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gY3JlYXRlRm9sZGVyKHtcclxuICAgICAgdGV4dENyZWF0b3IsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGd1aUFkZDogYWRkLFxyXG4gICAgICBndWlSZW1vdmU6IHJlbW92ZSxcclxuICAgICAgYWRkQ29udHJvbGxlckZ1bmNzOiB7XHJcbiAgICAgICAgYWRkU2xpZGVyOiBhZGRTaW1wbGVTbGlkZXIsXHJcbiAgICAgICAgYWRkRHJvcGRvd246IGFkZFNpbXBsZURyb3Bkb3duLFxyXG4gICAgICAgIGFkZENoZWNrYm94OiBhZGRTaW1wbGVDaGVja2JveCxcclxuICAgICAgICBhZGRCdXR0b246IGFkZFNpbXBsZUJ1dHRvbixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvbjogYWRkSW1hZ2VCdXR0b24sXHJcbiAgICAgICAgYWRkWFlDb250cm9sbGVyOiBhZGRYWUNvbnRyb2xsZXIsXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b25QYW5lbDogYWRkSW1hZ2VCdXR0b25QYW5lbCxcclxuICAgICAgICBhZGRLZXlib2FyZDogYWRkS2V5Ym9hcmQsXHJcbiAgICAgICAgYWRkVGV4dGJveDogYWRkVGV4dGJveFxyXG4gICAgICB9LFxyXG4gICAgICBnbG9iYWxDb250cm9sbGVyczogY29udHJvbGxlcnMsXHJcbiAgICAgIC8vPz8/XHJcbiAgICAgIGFkZEhlYWRlckZ1bmNzOiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGZvbGRlciApO1xyXG5cclxuICAgIHJldHVybiBmb2xkZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFBlcmZvcm0gdGhlIG5lY2Vzc2FyeSB1cGRhdGVzLCByYXljYXN0cyBvbiBpdHMgb3duIFJBRi5cclxuICAqL1xyXG5cclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IHREaXJlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMyggMCwgMCwgLTEgKTtcclxuICBjb25zdCB0TWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCkge1xyXG4gICAgY29uc3QgaXNPcnRob2dyYXBoaWMgPSBtb3VzZUVuYWJsZWQgJiYgbW91c2VJbnB1dC5tb3VzZUNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYTtcclxuICAgIGlmIChhdXRvVXBkYXRlKSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoIHVwZGF0ZSApO1xyXG4gICAgXHJcbiAgICB2YXIgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCk7XHJcbiAgICBjb25zdCBmb2xkZXJzID0gY29udHJvbGxlcnMuZmlsdGVyKGMgPT4gYy5mb2xkZXIgPT09IGMpOyAvL2FsbCB0b3AtbGV2ZWwgZm9sZGVyc1xyXG4gICAgZm9sZGVycy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gaXNPcnRob2dyYXBoaWMgPyBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhIDogZmFsc2U7XHJcbiAgICAgIGlmIChmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgICBmLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgICBmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSBmYWxzZTsgLy8gcHJvdGVjdCBhbnkgbmV3bHktZGlzcGxheWVkIG1vZGFsRWRpdG9yIGZyb20gYmVpbmcgY2xlYXJlZFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChmLnVzZXJEYXRhLmxheW91dFBlbmRpbmcpIGYucGVyZm9ybUxheW91dCgpO1xyXG4gICAgfSk7IFxyXG5cclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgLy9UT0RPOiBsb2NrIG1vdXNlIG9uIGhvdmVyPz9cclxuICAgICAgbW91c2VJbnB1dC5pbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixpbnRlcmFjdGlvbn0gPSB7fSwgaW5kZXggKXtcclxuICAgICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgICBvYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgXHJcbiAgICAgIHRQb3NpdGlvbi5zZXQoMCwwLDApLnNldEZyb21NYXRyaXhQb3NpdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIHRNYXRyaXguaWRlbnRpdHkoKS5leHRyYWN0Um90YXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBcclxuICAgICAgdERpcmVjdGlvbi5zZXQoMCwwLC0xKTtcclxuICAgICAgLy9hbHRlcmluZyBkaXJlY3Rpb24gZS5nLiB0byBwb2ludCBpbiBkaXJlY3Rpb24gb2YgZXh0ZW5kZWQgdHJpZ2dlciBmaW5nZXIsIHJhdGhlciB0aGFuICdtYWluIGF4aXMnIG9mIFZpdmUgY29udHJvbGxlci4uLlxyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkIGJlIGluIHVzZXJEYXRhLlxyXG4gICAgICBpZiAob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpIHREaXJlY3Rpb24uYXBwbHlRdWF0ZXJuaW9uKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKTtcclxuICAgICAgdERpcmVjdGlvbi5hcHBseU1hdHJpeDQoIHRNYXRyaXggKS5ub3JtYWxpemUoKTtcclxuICAgICAgXHJcbiAgICAgIHJheWNhc3Quc2V0KCB0UG9zaXRpb24sIHREaXJlY3Rpb24gKTtcclxuICAgICAgXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMCBdLmNvcHkoIHRQb3NpdGlvbiApO1xyXG4gICAgICBjb25zdCBhID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgICBhWzBdID0gdFBvc2l0aW9uLng7IGFbMV0gPSB0UG9zaXRpb24ueTsgYVsyXSA9IHRQb3NpdGlvbi56O1xyXG4gICAgICBcclxuICAgICAgLy8gIGRlYnVnLi4uXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHRQb3NpdGlvbiApLmFkZCggdERpcmVjdGlvbi5tdWx0aXBseVNjYWxhciggMSApICk7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIFxyXG4gICAgICBpbnB1dE9iamVjdHNbIGluZGV4IF0uaW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vd2FudCB0byBhZGQgaW5mbyAoaGl0IGRpc2N0YW5jZSkgdG8gb2JqZWN0IGZvciB1c2Ugb3V0c2lkZS4uLiBqdXN0IGFkZGluZyBlbnRpcmV0eSBvZiBpbnRlcnNlY3Rpb25zIGluIGNhc2UgdXNlZnVsXHJcbiAgICAgIGlmIChvYmplY3QudXNlckRhdGEpIG9iamVjdC51c2VyRGF0YS5ndWlJbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICBjb25zdCBpbnB1dHMgPSBpbnB1dE9iamVjdHMuc2xpY2UoKTtcclxuICAgIFxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICBpbnB1dHMucHVzaCggbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKCBjID0+IGMudXBkYXRlQ29udHJvbCggaW5wdXRzICkpO1xyXG4gICAgLy9ub3cgY2hlY2sgaWYgYW55IHByZXNzIG9uIGFueSBpbnB1dCBoaXQgYW55IG5vbidtb2RhbCBlZGl0b3InLi4uIGlmIHNvLCB3ZSdsbCByZW1vdmUgbW9kYWxzIGZyb20gYWxsIGZvbGRlcnNcclxuICAgIC8vKHRoaXMgaXNuJ3QgcGVyZmVjdDsgaWYgeW91IGFyZSBhY3RpdmVseSBpbnRlcmFjdGluZyB3aXRoIHNvbWV0aGluZyBhbmQgcHJlc3Mgb3RoZXIgYnV0dG9uIHNvbWV3aGVyZSBlbHNlLCBpdCdsbCByZW1vdmUgeW91ciBvYmplY3QpXHJcbiAgICBsZXQgaGl0Tm9uTW9kYWxzID0gaW5wdXRzLmZpbHRlcihpbnB1dCA9PiBpbnB1dC5oaXROb25Nb2RhbCk7XHJcbiAgICBpZiAoaGl0Tm9uTW9kYWxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGhpdE5vbk1vZGFscy5mb3JFYWNoKGggPT4gaC5oaXROb25Nb2RhbCA9IGZhbHNlKTsgLy9yZW1vdmUgZmxhZ3Mgc28gdGhleSBkb24ndCBwZXJzaXN0IHRvIHN1YnNlcXVlbnQgdXBkYXRlc1xyXG4gICAgICBmb2xkZXJzLmZvckVhY2goZiA9PiBmLmNsZWFyTW9kYWxFZGl0b3IoKSk7IC8vdGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBub3QgaGlkZSBpdGVtcyBuZXdseSBkaXNwbGF5ZWQgaW4gdGhpcyBmcmFtZVxyXG4gICAgfVxyXG4gICAgbW91c2VJbnB1dC5jbGlja2VkID0gZmFsc2U7XHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaChvPT5vLmNsaWNrZWQgPSBmYWxzZSk7XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5pbnRlcnNlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgLy9pZiBhbnkgaW5wdXQuaW50ZXJhY3Rpb25zIGhhdmUgaGl0Vm9sdW1lIHRoYXQgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIG5vdCBjdXJyZW50bHkgaW4gaGl0c2Nhbk9iamVjdHMsXHJcbiAgLy90aGF0IGludGVyYWN0aW9uIHNob3VsZCBiZSBjYW5jZWxsZWQuIEVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgd2l0aCBlLmcuIHByZXNzaW5nICdyZWF0dGFjaCcgd2hlbiB0aGUgcGFyZW50IGlzIGNsb3NlZC5cclxuICBmdW5jdGlvbiBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb25zLCBoaXRzY2FuT2JqZWN0cyApIHtcclxuICAgIFsncHJlc3MnLCAnZ3JpcCcsICdob3ZlciddLmZvckVhY2goIGludGVyYWN0aW9uTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV07XHJcbiAgICAgIGlmIChpbnRlcmFjdGlvbiAmJiBoaXRzY2FuT2JqZWN0cy5pbmRleE9mKGludGVyYWN0aW9uLmhpdFZvbHVtZSkgPCAwKSB7XHJcbiAgICAgICAgaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV0gPSB1bmRlZmluZWQ7IFxyXG4gICAgICAgIC8vb25seSBiZSBwb2xpdGUgdG8gaW5mb3JtIHRoZSBpbnRlcmFjdGlvbiBhcyB3ZWxsOyB1cGRhdGUgd2l0aCBlbXB0eSBpbnB1dE9iamVjdHMgYXJnIHNob3VsZCBkbyB0aGUgdHJpY2suXHJcbiAgICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBbXSApO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVMYXNlciggbGFzZXIsIHBvaW50ICl7XHJcbiAgICBjb25zdCBwcCA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgIHBwWzNdID0gcG9pbnQueDtcclxuICAgIHBwWzRdID0gcG9pbnQueTtcclxuICAgIHBwWzVdID0gcG9pbnQuejtcclxuICAgIHBwLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggcG9pbnQgKTtcclxuICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydGljZXNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgaWYoIGludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBjb25zdCBmaXJzdEhpdCA9IGludGVyc2VjdGlvbnNbIDAgXTtcclxuICAgICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IucG9zaXRpb24uY29weSggZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBjdXJzb3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlTW91c2VJbnRlcnNlY3Rpb24oIGludGVyc2VjdGlvbiwgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGludGVyc2VjdGlvbiApO1xyXG4gICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBjdXJzb3IucG9zaXRpb24gKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIGNhbWVyYSApe1xyXG4gICAgcmF5Y2FzdC5zZXRGcm9tQ2FtZXJhKCBtb3VzZSwgY2FtZXJhICk7XHJcbiAgICBjb25zdCBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgcmV0dXJuIHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtb3VzZUludGVyc2VjdHNQbGFuZSggcmF5Y2FzdCwgdiwgcGxhbmUgKXtcclxuICAgIHJldHVybiByYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggcGxhbmUsIHYgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsbW91c2UsbW91c2VDYW1lcmEsIGludGVyYWN0aW9ufSA9IHt9ICl7XHJcbiAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICBsZXQgaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIGlmIChtb3VzZUNhbWVyYSkge1xyXG4gICAgICBpbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgbW91c2VDYW1lcmEgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoKTtcclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBtZXRob2RzLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHB1YmxpY0ludGVyZmFjZSA9IHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGFkZElucHV0T2JqZWN0LFxyXG4gICAgZW5hYmxlTW91c2UsXHJcbiAgICBkaXNhYmxlTW91c2UsXHJcbiAgICB0ZXh0Q3JlYXRvciwgLy9jaGVhcCB3YXkgb2YgZXhwb3NpbmcgdGhpcyBzbyBpdCBjYW4gYmUgdXNlZCBieSBob3N0IGFwcGxpY2F0aW9uLlxyXG4gICAgZ2xvYmFsRXZlbnRzLFxyXG4gICAgY2xlYXJBbGwsXHJcbiAgICB1cGRhdGVcclxuICB9O1xyXG4gIC8vIGFsbG93IHVzZXIgdG8gY2FsbCBcImRhdC5HVUlWUi5hdXRvVXBkYXRlID0gZmFsc2VcIiBhbmQgdGhlbiB1cGRhdGUgbWFudWFsbHkgd2l0aFxyXG4gIC8vIFwiZGF0LkdVSVZSLnVwZGF0ZSgpXCJcclxuICAvLyBleHBvc2UgYXV0b1VwZGF0ZSBhcyBwcm9wZXJ0eSBzbyB0aGF0IHRoZSByZWZlcmVuY2Ugd2lsbCBiZSBwcm9wZXJseSBlZmZlY3RlZFxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggcHVibGljSW50ZXJmYWNlLCAnYXV0b1VwZGF0ZScsIHsgZ2V0OiAoKT0+IGF1dG9VcGRhdGUsIHNldDogdiA9PiBhdXRvVXBkYXRlID0gdiB9ICk7XHJcbiAgcmV0dXJuIHB1YmxpY0ludGVyZmFjZTtcclxuXHJcbn0oKSk7XHJcblxyXG5pZiggd2luZG93ICl7XHJcbiAgaWYoIHdpbmRvdy5kYXQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgd2luZG93LmRhdCA9IHt9O1xyXG4gIH1cclxuXHJcbiAgd2luZG93LmRhdC5HVUlWUiA9IEdVSVZSO1xyXG59XHJcblxyXG5pZiggbW9kdWxlICl7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBkYXQ6IEdVSVZSXHJcbiAgfTtcclxufVxyXG5cclxuaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XHJcbiAgZGVmaW5lKFtdLCBHVUlWUik7XHJcbn1cclxuXHJcbi8qXHJcbiAgQnVuY2ggb2Ygc3RhdGUtbGVzcyB1dGlsaXR5IGZ1bmN0aW9ucy5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGlzTnVtYmVyKG4pIHtcclxuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Jvb2xlYW4obil7XHJcbiAgcmV0dXJuIHR5cGVvZiBuID09PSAnYm9vbGVhbic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuY3Rpb25Ub0NoZWNrKSB7XHJcbiAgY29uc3QgZ2V0VHlwZSA9IHt9O1xyXG4gIHJldHVybiBmdW5jdGlvblRvQ2hlY2sgJiYgZ2V0VHlwZS50b1N0cmluZy5jYWxsKGZ1bmN0aW9uVG9DaGVjaykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XHJcbn1cclxuXHJcbi8vICBvbmx5IHt9IG9iamVjdHMgbm90IGFycmF5c1xyXG4vLyAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHRlY2huaWNhbGx5IG9iamVjdHMgYnV0IHlvdSdyZSBqdXN0IGJlaW5nIHBlZGFudGljXHJcbmZ1bmN0aW9uIGlzT2JqZWN0IChpdGVtKSB7XHJcbiAgcmV0dXJuICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQXJyYXkoIG8gKXtcclxuICByZXR1cm4gQXJyYXkuaXNBcnJheSggbyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1N0cmluZyggbyApe1xyXG4gIHJldHVybiB0eXBlb2YgbyA9PT0gJ3N0cmluZyc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQ29sb3IoIG8gKXtcclxuICBpZiAodHlwZW9mIG8gIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIG8uaXNDb2xvciA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5cclxuXHJcblxyXG4vKlxyXG4gIENvbnRyb2xsZXItc3BlY2lmaWMgc3VwcG9ydC5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIGNvbnRyb2xsZXIsIHByZXNzZWQsIGdyaXBwZWQgKXtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VyZG93bicsICgpPT5wcmVzc2VkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VydXAnLCAoKT0+cHJlc3NlZCggZmFsc2UgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzZG93bicsICgpPT5ncmlwcGVkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc3VwJywgKCk9PmdyaXBwZWQoIGZhbHNlICkgKTtcclxuXHJcbiAgY29uc3QgZ2FtZXBhZCA9IGNvbnRyb2xsZXIuZ2V0R2FtZXBhZCgpO1xyXG4gIGZ1bmN0aW9uIHZpYnJhdGUoIHQsIGEgKXtcclxuICAgIGlmKCBnYW1lcGFkICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnNbIDAgXS5wdWxzZSggdCwgYSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc1RhcCgpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSgxLWEsIDAuNSksIDEwLCAyMCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc0VjaG8oKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoNCwgMS4wICogKDEtYSkpLCAxMDAsIDQgKTtcclxuICB9XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ29uQ29udHJvbGxlckhlbGQnLCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgIHZpYnJhdGUoIDAuMywgMC4zICk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJiZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGlubmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGluUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gc2V0SW50ZXJ2YWxUaW1lcyggY2IsIGRlbGF5LCB0aW1lcyApe1xyXG4gIGxldCB4ID0gMDtcclxuICBsZXQgaWQgPSBzZXRJbnRlcnZhbCggZnVuY3Rpb24oKXtcclxuICAgIGNiKCB4LCB0aW1lcywgeC90aW1lcyApO1xyXG4gICAgeCsrO1xyXG4gICAgaWYoIHg+PXRpbWVzICl7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwoIGlkICk7XHJcbiAgICB9XHJcbiAgfSwgZGVsYXkgKTtcclxuICByZXR1cm4gaWQ7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdsb2JhbEV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbnRlcmFjdGlvbiggaGl0Vm9sdW1lICl7XHJcbiAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbiAgbGV0IGFueUhvdmVyID0gZmFsc2U7XHJcbiAgbGV0IGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgbGV0IGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCB0VmVjdG9yID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCBhdmFpbGFibGVJbnB1dHMgPSBbXTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCBpbnB1dE9iamVjdHMgKXtcclxuXHJcbiAgICBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gICAgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuXHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuaW5kZXhPZiggaW5wdXQgKSA8IDAgKXtcclxuICAgICAgICBhdmFpbGFibGVJbnB1dHMucHVzaCggaW5wdXQgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgeyBoaXRPYmplY3QsIGhpdFBvaW50IH0gPSBleHRyYWN0SGl0KCBpbnB1dCApO1xyXG5cclxuICAgICAgdmFyIGhvdmVyID0gaGl0Vm9sdW1lID09PSBoaXRPYmplY3Q7XHJcbiAgICAgIGFueUhvdmVyID0gYW55SG92ZXIgfHwgaG92ZXI7XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAncHJlc3NlZCcsXHJcbiAgICAgICAgYnV0dG9uQ2xpY2tOYW1lOiAnY2xpY2tlZCcsIC8vbWF5YmUgbm90IHN0YWJsZSBwYXJ0IG9mIEFQSS4uLlxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ3ByZXNzJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uUHJlc3NlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdwcmVzc2luZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlZCcsXHJcbiAgICAgICAgIC8vaW52ZW50aW5nIGEgJ2hvdmVyaW5nJyBldmVudCB0aGF0IG9ubHkgYXBwbGllcyB0byAncHJlc3NlZCcgYnV0dG9uLi4uXHJcbiAgICAgICAgIC8vdGhpcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYSBzdGFibGUgaW50ZXJmYWNlLCBidXQgSSB3YW50cyBpdCBtb3JlIHRoYW4gSVxyXG4gICAgICAgICAvL3dhbnQgdG8gbWFrZSBzb21ldGhpbmcgdG90YWxseSBjb2hlcmVudCBhbmQgcm9idXN0IGp1c3Qgbm93LlxyXG4gICAgICAgIGhvdmVyTmFtZTogJ2hvdmVyaW5nJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAnZ3JpcHBlZCcsXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAnZ3JpcCcsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvbkdyaXBwZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAnZ3JpcHBpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZUdyaXAnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoICd0aWNrJywge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0gKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBleHRyYWN0SGl0KCBpbnB1dCApe1xyXG4gICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoIDw9IDAgKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogdFZlY3Rvci5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LmN1cnNvci5tYXRyaXhXb3JsZCApLmNsb25lKCksIC8veHh4OiBnYXJiYWdlP1xyXG4gICAgICAgIGhpdE9iamVjdDogdW5kZWZpbmVkLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLnBvaW50LFxyXG4gICAgICAgIGhpdE9iamVjdDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgIGlucHV0LCBob3ZlcixcclxuICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICBidXR0b25OYW1lLCBidXR0b25DbGlja05hbWUsIGludGVyYWN0aW9uTmFtZSwgZG93bk5hbWUsIGhvbGROYW1lLCB1cE5hbWUsIGhvdmVyTmFtZVxyXG4gIH0gPSB7fSApe1xyXG5cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGhpdE9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIC8vY2xpY2tlZCBhbmQgZGlkbid0IGhpdCBhbnkgR1VJIG9iamVjdC5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBob3ZlcmluZyBhbmQgYnV0dG9uIE5PVCBkb3duXHJcbiAgICBpZiggaG92ZXJOYW1lICYmIGhvdmVyICYmIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob3Zlck5hbWUsIHBheWxvYWQgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgaG92ZXJpbmcgYW5kIGJ1dHRvbiBkb3duIGJ1dCBubyBpbnRlcmFjdGlvbnMgYWN0aXZlIHlldFxyXG4gICAgLy8tLS0+IHNob3VsZCBiZSBeIGJ1dHRvbiAnY2xpY2tlZCcuLi4gaWUgb25seSBpZiBpdCBjYW1lIGRvd24gc2luY2UgdGhlIGxhc3QgdXBkYXRlLlxyXG4gICAgLy9zbywgc2hvdWxkIHdlIHBhc3MgJ2J1dHRvbkNsaWNrTmFtZScgYXMgYW4gYXJndW1lbnQgKGFuZCB1c2UgYnV0dG9uTmFtZSBpZiBub3QgcHJvdmlkZWQpP1xyXG4gICAgLy8tLS0+Pj4+IFhYWDogaXMgdGhpcyBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcLy8vLy8vLy8vLy8vIHdvcmtpbmcgd2l0aCBWaXZlIGNvbnRyb2xsZXJzPyBcclxuICAgIGlmKCBob3ZlciAmJiBpbnB1dFsgYnV0dG9uQ2xpY2tOYW1lIHx8IGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG5cclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpZiAoIWhpdE9iamVjdC51c2VyRGF0YS5wYXJ0T2ZNb2RhbCkgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG5cclxuICAgICAgcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpO1xyXG4gICAgICBcclxuICAgICAgLy9lbWl0IGdsb2JhbCBjbGljayBldmVudCBhcyB3ZWxsLi4uXHJcbiAgICAgIGdsb2JhbEV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgICBldmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGlmKCBwYXlsb2FkLmxvY2tlZCApe1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gaW50ZXJhY3Rpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgYW55QWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIHN0aWxsIGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggaG9sZE5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnb25Db250cm9sbGVySGVsZCcgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIG5vdCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IHVuZGVmaW5lZDtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCB1cE5hbWUsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpIHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGhpdE9iamVjdCk7XHJcbiAgICB0b3BGb2xkZXIucHJvbW90ZVpPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaXNNYWluSG92ZXIoKXtcclxuXHJcbiAgICBsZXQgbm9NYWluSG92ZXIgPSB0cnVlO1xyXG4gICAgZm9yKCBsZXQgaT0wOyBpPGF2YWlsYWJsZUlucHV0cy5sZW5ndGg7IGkrKyApe1xyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzWyBpIF0uaW50ZXJhY3Rpb24uaG92ZXIgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIG5vTWFpbkhvdmVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggbm9NYWluSG92ZXIgKXtcclxuICAgICAgcmV0dXJuIGFueUhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuZmlsdGVyKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgICAgcmV0dXJuIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID09PSBpbnRlcmFjdGlvbjtcclxuICAgIH0pLmxlbmd0aCA+IDAgKXtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0ge1xyXG4gICAgaG92ZXJpbmc6IGlzTWFpbkhvdmVyLFxyXG4gICAgcHJlc3Npbmc6ICgpPT5hbnlQcmVzc2luZyxcclxuICAgIHVwZGF0ZSxcclxuICAgIGV2ZW50cyxcclxuICAgIGhpdFZvbHVtZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufVxyXG5cclxuIiwiLyoqXHJcbiAqIFxyXG4gKiBUT0RPOiBjdXJzb3JzLi4uXHJcbiAqIE1heWJlIHNvbWV0aGluZyBsaWtlIG1vYmlsZSBpbnB1dCB3aGVyZSB5b3Ugc3dpdGNoIGJldHdlZW4gbGV0dGVycyAmIG51bWJlcnMgLyBzeW1ib2xzXHJcbiAqIFxyXG4gKiBTb21ldGhpbmcgbGlrZSBhIHNwbGl0IGtleWJvYXJkIGFsYSBodHRwczovL21lZGl1bS5jb20vYWFyb25uL3ZyLXRleHQtaW5wdXQtc3BsaXQta2V5Ym9hcmQtZTViZjNmZDg3YTRjXHJcbiAqIG1pZ2h0IGJlIGJldHRlci5cclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZCggeyBcclxuICAgIGtleUxpc3RlbmVyLFxyXG4gICAgdGV4dENyZWF0b3JcclxufSA9IHt9KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0VHJhbnNmb3JtID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBncm91cC5hZGQob2Zmc2V0VHJhbnNmb3JtKTtcclxuXHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgZXZlbnRzLm9uKCdrZXlEb3duJywga2V5TGlzdGVuZXIpO1xyXG4gICAgXHJcbiAgICBjb25zdCBsb3dlckNoYXJzID0gXCIxMjM0NTY3ODkwLT1xd2VydHl1aW9wW11hc2RmZ2hqa2w7JyNcXFxcenhjdmJubSwuLyBcIi5zcGxpdCgnJyk7XHJcbiAgICBsZXQgb2JqZWN0cyA9IGxvd2VyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG93ZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQobG93ZXJLZXlzKTtcclxuXHJcbiAgICBjb25zdCB1cHBlckNoYXJzID0gXCIhXFxcIsKjJCVeJiooKV8rUVdFUlRZVUlPUHt9QVNERkdISktMOkB+fFpYQ1ZCTk08Pj8gXCIuc3BsaXQoJycpO1xyXG4gICAgb2JqZWN0cyA9IHVwcGVyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBwZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIHVwcGVyS2V5cy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHVwcGVyS2V5cyk7XHJcblxyXG4gICAgbGV0IHNoaWZ0ID0gZmFsc2U7XHJcbiAgICBmdW5jdGlvbiBzaGlmdFRvZ2dsZSgpIHtcclxuICAgICAgICBzaGlmdCA9ICFzaGlmdDtcclxuICAgICAgICBsb3dlcktleXMudmlzaWJsZSA9ICFzaGlmdDtcclxuICAgICAgICB1cHBlcktleXMudmlzaWJsZSA9IHNoaWZ0O1xyXG4gICB9XHJcblxyXG4gICBjb25zdCBzcGFjZUJhciA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7IHRleHRDcmVhdG9yLCBjb2x1bW5zOiAxLCByb3dIZWlnaHQ6IDAuMSwgb2JqZWN0czogW1xyXG4gICAgICAge2Z1bmM6ICgpPT5ldmVudHMuZW1pdCgna2V5RG93bicsICcgJyksIHRleHQ6ICdzcGFjZSd9XHJcbiAgICBdfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwYWNlQmFyKTtcclxuICAgIHZhciB5ID0gc3BhY2VCYXIucG9zaXRpb24ueSA9IC0wLjUgKiAobG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nKTtcclxuICAgIFxyXG4gICAgb2JqZWN0cyA9IFtcclxuICAgICAgICB7IHRleHQ6IFwic2hpZnRcIiwgZnVuYzogc2hpZnRUb2dnbGUgfSxcclxuICAgICAgICB7IHRleHQ6IFwiYmFja3NwYWNlXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcYicpIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImVudGVyXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcbicpIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBzcGVjaWFsS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDMsIHJvd0hlaWdodDogMC4xfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwZWNpYWxLZXlzKTtcclxuICAgIHNwZWNpYWxLZXlzLnBvc2l0aW9uLnkgPSB5LTAuNSAqIChzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZyk7XHJcbiAgICBncm91cC5zcGFjaW5nID0gbG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZztcclxuICAgIC8vdGhpcyBsb29rcyByaWdodCwgbXVzdCBhZG1pdCBJIGhhdmVuJ3QgdGhvdWdodCB0aHJvdWdoIGV4YWN0bHkgd2h5IGl0IHNob3VsZCBiZS5cclxuICAgIG9mZnNldFRyYW5zZm9ybS5wb3NpdGlvbi55ID0gc3BlY2lhbEtleXMuc3BhY2luZztcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdoaXRzY2FuJywge1xyXG4gICAgICAgIGdldDogKCkgPT4gW1xyXG4gICAgICAgICAgICBzcGVjaWFsS2V5cy5oaXRzY2FuLCBzcGFjZUJhci5oaXRzY2FuLCBzaGlmdCA/IHVwcGVyS2V5cy5oaXRzY2FuIDogbG93ZXJLZXlzLmhpdHNjYW5cclxuICAgICAgICBdLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSlcclxuICAgIH0pO1xyXG5cclxuICAgIHNwYWNlQmFyLmZvbGRlciA9IHVwcGVyS2V5cy5mb2xkZXIgPSBsb3dlcktleXMuZm9sZGVyID0gc3BlY2lhbEtleXMuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gKGlucHV0cykgPT4ge1xyXG4gICAgICAgIHNwZWNpYWxLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBsb3dlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHNwYWNlQmFyLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICB1cHBlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWxpZ25MZWZ0KCBvYmogKXtcclxuICBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuTWVzaCApe1xyXG4gICAgb2JqLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4LnggLSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmouZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZWxzZSBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkgKXtcclxuICAgIG9iai5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gIGNvbnN0IG1hdGVyaWFsID0gdW5pcXVlTWF0ZXJpYWwgPyBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4ZmZmZmZmfSkgOiBTaGFyZWRNYXRlcmlhbHMuUEFORUw7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApLCBtYXRlcmlhbCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgaWYoIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuXHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxuXHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiByZXNpemVQYW5lbChwYW5lbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgpIHtcclxuICBwYW5lbC5nZW9tZXRyeS5zY2FsZSh3aWR0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGgsIGhlaWdodC9wYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0LCBkZXB0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGgpO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgY29sb3IgKXtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENPTlRST0xMRVJfSURfV0lEVEgsIGhlaWdodCwgQ09OVFJPTExFUl9JRF9ERVBUSCApLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIENPTlRST0xMRVJfSURfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIGNvbG9yICk7XHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRG93bkFycm93KCl7XHJcbiAgY29uc3QgdyA9IDAuMDA5NjtcclxuICBjb25zdCBoID0gMC4wMTY7XHJcbiAgY29uc3Qgc2ggPSBuZXcgVEhSRUUuU2hhcGUoKTtcclxuICBzaC5tb3ZlVG8oMCwwKTtcclxuICBzaC5saW5lVG8oLXcsaCk7XHJcbiAgc2gubGluZVRvKHcsaCk7XHJcbiAgc2gubGluZVRvKDAsMCk7XHJcblxyXG4gIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KCBzaCApO1xyXG4gIGdlby50cmFuc2xhdGUoIDAsIC1oICogMC41LCAwICk7XHJcblxyXG4gIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgUEFORUxfSEVJR0hUID0gMC4wODtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1NQQUNJTkcgPSAwOy8vLjAwMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX01BUkdJTiA9IDAuMDE1O1xyXG5leHBvcnQgY29uc3QgUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gPSAwLjA2O1xyXG5leHBvcnQgY29uc3QgUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9XSURUSCA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RFUFRIID0gMC4wMDE7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX1dJRFRIID0gMS4wMjY7XHJcbmV4cG9ydCBjb25zdCBTVUJGT0xERVJfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfSEVJR0hUID0gMC4wOTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9HUkFCX0hFSUdIVCA9IDAuMDUxMjtcclxuZXhwb3J0IGNvbnN0IEJPUkRFUl9USElDS05FU1MgPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfU0laRSA9IDAuMDU7XHJcbmV4cG9ydCBjb25zdCBURVhUX1NDQUxFID0gMC4wMDAyNDtcclxuZXhwb3J0IGNvbnN0IEdSSURfQlVUVE9OX01BUkdJTiA9IDAuMDE7IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvbkdyaXBwZWQnLCBoYW5kbGVPbkdyaXAgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VHcmlwJywgaGFuZGxlT25HcmlwUmVsZWFzZSApO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgbGV0IG9sZFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBsZXQgb2xkUm90YXRpb24gPSBuZXcgVEhSRUUuRXVsZXIoKTtcclxuXHJcbiAgY29uc3Qgcm90YXRpb25Hcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHJvdGF0aW9uR3JvdXAuc2NhbGUuc2V0KCAwLjMsIDAuMywgMC4zICk7XHJcbiAgcm90YXRpb25Hcm91cC5wb3NpdGlvbi5zZXQoIC0wLjAxNSwgMC4wMTUsIDAuMCApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwKCBwICl7XHJcblxyXG4gICAgY29uc3QgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9sZFBvc2l0aW9uLmNvcHkoIGZvbGRlci5wb3NpdGlvbiApO1xyXG4gICAgb2xkUm90YXRpb24uY29weSggZm9sZGVyLnJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24ueCA9IC1NYXRoLlBJICogMC41O1xyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG5cclxuICAgIHJvdGF0aW9uR3JvdXAuYWRkKCBmb2xkZXIgKTtcclxuXHJcbiAgICBpbnB1dE9iamVjdC5hZGQoIHJvdGF0aW9uR3JvdXAgKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGlubmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcFJlbGVhc2UoIHsgaW5wdXRPYmplY3QsIGlucHV0IH09e30gKXtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoIG9sZFBvc2l0aW9uICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uY29weSggb2xkUm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGluUmVsZWFzZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiLyoqXHJcbiAqIFBKVDogVGhpcyBpcyBhIHZhcmlhdGlvbiBvbiBzZGZzaGFkZXIgZnJvbSBibWZvbnQsIHdoaWNoIHNob3VsZCBKdXN0IFdvcmsgd2l0aCBsb2dhcml0aG1pYyBkZXB0aCBidWZmZXJzLlxyXG4gKiBJdCBzaG91bGQgYWxzbyBhbGxvdyBzb21lIG90aGVyIGFzcGVjdHMgb2YgVEhSRUUgcmVuZGVyaW5nIHRvIGJlIGluY29ycG9yYXRlZCwgbGlrZSBmb2csIGNsaXBwaW5nIHBsYW5lcy4uLlxyXG4gKiBFbnZpcm9ubWVudCBtYXBzIGFuZCB2YXJpb3VzIG90aGVyIGJpdHMgZnJvbSBNZXNoQmFzaWNNYXRlcmlhbCBhcmUgcmVtb3ZlZC5cclxuICogQXQgdGltZSBvZiB3cml0aW5nLCB0aGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MsIGFuZCBzb21ld2hhdCBtb3JlIGJsb2F0ZWQgdGhhbiBpdCBuZWVkcyB0byBiZS5cclxuICogVGhlIHNoYWRlciBjb2RlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBTaGFkZXJNYXRlcmlhbCByYXRoZXIgdGhhbiBSYXdTaGFkZXJNYXRlcmlhbC5cclxuICovXHJcbi8vIGltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XHJcblxyXG4vKipcclxuICogc3RhcnRpbmcgZnJvbSBUSFJFRSBtZXNoYmFzaWMgc2hhZGVycywgcHJ1bmluZyAvIG1vZGlmeWluZy4uLlxyXG4gKi9cclxuY29uc3QgbWVzaGJhc2ljX3ZlcnQgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XHJcblxyXG52b2lkIG1haW4oKSB7IFxyXG4gIHZVdiA9IHV2O1xyXG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IG1lc2hiYXNpY19mcmFnID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxudW5pZm9ybSB2ZWMzIGNvbG9yO1xyXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XHJcblxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XHJcblxyXG4vLy8vL1xyXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcclxuICAgIC8vIFdlIG5vdyBhc3N1bWUgV2ViR0wyIGFuZCBzbyB0aGUgZGVyaXZhdGl2ZXMgYXJlIGF2YWlsYWJsZSwgXHJcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXHJcbiAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBpZiAobWVzaC51c2VyRGF0YS5sYWJlbFN0cmluZyAhPT0gc3RyKSB7XHJcbiAgICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgICAgIG1lc2gudXNlckRhdGEubGFiZWxTdHJpbmcgPSBzdHI7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiBUSFJFRS5WZXJ0ZXhDb2xvcnMgfSApO1xyXG5leHBvcnQgY29uc3QgTE9DQVRPUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG5leHBvcnQgY29uc3QgRk9MREVSID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDAwMDAwMCB9ICk7XHJcbmV4cG9ydCBjb25zdCBUT09MVElQID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDIwNTA4MCwgdHJhbnNwYXJlbnQ6IGZhbHNlLCBvcGFjaXR5OiAwLjggfSApO1xyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTbGlkZXIoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gMC4wLFxyXG4gIG1pbiA9IDAuMCwgbWF4ID0gMS4wLFxyXG4gIHN0ZXAgPSAwLjEsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaW5pdGlhbEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGFscGhhOiAxLjAsXHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgc3RlcDogc3RlcCxcclxuICAgIHVzZVN0ZXA6IHRydWUsXHJcbiAgICBwcmVjaXNpb246IDEsXHJcbiAgICBsaXN0ZW46IGZhbHNlLFxyXG4gICAgbWluOiBtaW4sXHJcbiAgICBtYXg6IG1heCxcclxuICAgIG9uQ2hhbmdlZENCOiB1bmRlZmluZWQsXHJcbiAgICBvbkZpbmlzaGVkQ2hhbmdlOiB1bmRlZmluZWQsXHJcbiAgICBwcmVzc2luZzogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIHN0YXRlLnN0ZXAgPSBnZXRJbXBsaWVkU3RlcCggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKTtcclxuICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInNsaWRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIGdyb3VwLnNldEhlaWdodCA9IGhlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZSggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgICBjb25zdCBTTElERVJfV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9ERVBUSCA9IGRlcHRoO1xyXG5cclxuICAgIC8vICBmaWxsZWQgdm9sdW1lXHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBTTElERVJfV0lEVEgsIFNMSURFUl9IRUlHSFQsIFNMSURFUl9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoU0xJREVSX1dJRFRIKjAuNSwwLDApO1xyXG4gICAgLy8gTGF5b3V0LmFsaWduTGVmdCggcmVjdCApO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5uYW1lID0gJ2hpdHNjYW5Wb2x1bWUnO1xyXG5cclxuICAgIC8vICBzbGlkZXJCRyB2b2x1bWVcclxuICAgIGNvbnN0IHNsaWRlckJHID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggc2xpZGVyQkcuZ2VvbWV0cnksIENvbG9ycy5TTElERVJfQkcgKTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEggKyBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG5cclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5ERUZBVUxUX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGZpbGxlZFZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgY29uc3QgZW5kTG9jYXRvciA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIDAuMDUsIDAuMDUsIDAuMDUsIDEsIDEsIDEgKSwgU2hhcmVkTWF0ZXJpYWxzLkxPQ0FUT1IgKTtcclxuICAgIGVuZExvY2F0b3IucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSDtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBlbmRMb2NhdG9yICk7XHJcbiAgICBlbmRMb2NhdG9yLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB2YWx1ZUxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gKyB3aWR0aCAqIDAuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoKjIuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzMjU7XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9TTElERVIgKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBwYW5lbC5uYW1lID0gJ3BhbmVsJztcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBzbGlkZXJCRywgdmFsdWVMYWJlbCwgY29udHJvbGxlcklEICk7XHJcblxyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApXHJcblxyXG4gICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgIHVwZGF0ZVNsaWRlcigpO1xyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbHVlTGFiZWwoIHZhbHVlICl7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggcm91bmRUb0RlY2ltYWwoIHN0YXRlLnZhbHVlLCBzdGF0ZS5wcmVjaXNpb24gKS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICAgIGlmKCBzdGF0ZS5wcmVzc2luZyApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLklOVEVSQUNUSU9OX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU2xpZGVyKCl7XHJcbiAgICAgIGZpbGxlZFZvbHVtZS5zY2FsZS54ID1cclxuICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgIE1hdGgubWF4KCBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICkgKiB3aWR0aCwgMC4wMDAwMDEgKSxcclxuICAgICAgICAgIHdpZHRoXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVPYmplY3QoIHZhbHVlICl7XHJcbiAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTdGF0ZUZyb21BbHBoYSggYWxwaGEgKXtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICk7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tQWxwaGEoIHN0YXRlLmFscGhhLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gZ2V0U3RlcHBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUuc3RlcCApO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0Q2xhbXBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKXtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21PYmplY3QoKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRnJvbU9iamVjdCgpe1xyXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICAgIHN0YXRlLm9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAuc3RlcCA9IGZ1bmN0aW9uKCBzdGVwICl7XHJcbiAgICAgIHN0YXRlLnN0ZXAgPSBzdGVwO1xyXG4gICAgICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApXHJcbiAgICAgIHN0YXRlLnVzZVN0ZXAgPSB0cnVlO1xyXG5cclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlUHJlc3MgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlSG9sZCApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZVJlbGVhc2UgKTtcclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVQcmVzcyggcCApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlSG9sZCggeyBwb2ludCB9ID0ge30gKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBmaWxsZWRWb2x1bWUudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgZW5kTG9jYXRvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG5cclxuICAgICAgY29uc3QgYSA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBmaWxsZWRWb2x1bWUubWF0cml4V29ybGQgKTtcclxuICAgICAgY29uc3QgYiA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBlbmRMb2NhdG9yLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHthLGJ9ICkgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICB1cGRhdGVPYmplY3QoIHN0YXRlLnZhbHVlICk7XHJcblxyXG4gICAgICBpZiggcHJldmlvdXNWYWx1ZSAhPT0gc3RhdGUudmFsdWUgJiYgc3RhdGUub25DaGFuZ2VkQ0IgKXtcclxuICAgICAgICBzdGF0ZS5vbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVJlbGVhc2UoKXtcclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgICB1cGRhdGVTbGlkZXIoKTtcclxuICAgICAgfVxyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWluID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWluID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWF4ID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWF4ID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfSAvLyAvc2V0SGVpZ2h0XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KCBpbml0aWFsSGVpZ2h0ICk7XHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCB0YSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRiID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdFRvQSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IGFUb0IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHNlZ21lbnQgKXtcclxuICB0YS5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG4gIHRiLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgY29uc3QgcHJvamVjdGVkID0gdGIucHJvamVjdE9uVmVjdG9yKCB0YSApO1xyXG5cclxuICB0VG9BLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgYVRvQi5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApLm5vcm1hbGl6ZSgpO1xyXG5cclxuICBjb25zdCBzaWRlID0gdFRvQS5ub3JtYWxpemUoKS5kb3QoIGFUb0IgKSA+PSAwID8gMSA6IC0xO1xyXG5cclxuICBjb25zdCBsZW5ndGggPSBzZWdtZW50LmEuZGlzdGFuY2VUbyggc2VnbWVudC5iICkgKiBzaWRlO1xyXG5cclxuICBsZXQgYWxwaGEgPSBwcm9qZWN0ZWQubGVuZ3RoKCkgLyBsZW5ndGg7XHJcbiAgaWYoIGFscGhhID4gMS4wICl7XHJcbiAgICBhbHBoYSA9IDEuMDtcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMC4wICl7XHJcbiAgICBhbHBoYSA9IDAuMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsZXJwKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIHJldHVybiAoMS12YWx1ZSkqbWluICsgdmFsdWUqbWF4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXBfcmFuZ2UodmFsdWUsIGxvdzEsIGhpZ2gxLCBsb3cyLCBoaWdoMikge1xyXG4gICAgcmV0dXJuIGxvdzIgKyAoaGlnaDIgLSBsb3cyKSAqICh2YWx1ZSAtIGxvdzEpIC8gKGhpZ2gxIC0gbG93MSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRBbHBoYSggYWxwaGEgKXtcclxuICBpZiggYWxwaGEgPiAxICl7XHJcbiAgICByZXR1cm4gMVxyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwICl7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIGlmKCB2YWx1ZSA8IG1pbiApe1xyXG4gICAgcmV0dXJuIG1pbjtcclxuICB9XHJcbiAgaWYoIHZhbHVlID4gbWF4ICl7XHJcbiAgICByZXR1cm4gbWF4O1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEltcGxpZWRTdGVwKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICAvL1BKVDogd2hhdCB3b3VsZCB3ZSBsaWtlIHN0ZXAgdG8gbG9vayBsaWtlP1xyXG4gIC8vU29tZXRoaW5nIHRoYXQgaGFzIGFib3V0IHRoZSBvcmRlciBvZiBtYWduaXR1ZGUsIGFuZCBsb29rcyBuaWNlIGluIGJhc2UgMTA/XHJcbiAgY29uc3QgciA9IG1heC1taW47XHJcbiAgbGV0IHN0ZXAgPSByLzEwMDsgLy93aGF0IGlzIHRoZSByYXRpbyBvZiBudW1iZXIgb2YgZGVjaW1hbHMgdG8gb3JkZXIgb2YgbWFnbml0dWRlP1xyXG4gIFxyXG4gIHJldHVybiBzdGVwO1xyXG5cclxuICAvLyBpZiggdmFsdWUgPT09IDAgKXtcclxuICAvLyAgIHJldHVybiAxOyAvLyBXaGF0IGFyZSB3ZSwgcHN5Y2hpY3M/IC8vPDw8PC0tLSBubywgc28gd2Ugc2hvdWxkIGJhc2UgaW1wbGllZFN0ZXAgb24gbWluL21heCwgbm90IHZhbHVlXHJcbiAgLy8gfSBlbHNlIHtcclxuICAvLyAgIC8vIEhleSBEb3VnLCBjaGVjayB0aGlzIG91dC5cclxuICAvLyAgIHJldHVybiBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihNYXRoLmxvZyhNYXRoLmFicyh2YWx1ZSkpL01hdGguTE4xMCkpLzEwO1xyXG4gIC8vIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tQWxwaGEoIGFscGhhLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIGFscGhhLCAwLjAsIDEuMCwgbWluLCBtYXggKVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBbHBoYUZyb21WYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggdmFsdWUsIG1pbiwgbWF4LCAwLjAsIDEuMCApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGVwcGVkVmFsdWUoIHZhbHVlLCBzdGVwICl7XHJcbiAgaWYoIHZhbHVlICUgc3RlcCAhPSAwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZCggdmFsdWUgLyBzdGVwICkgKiBzdGVwO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG51bURlY2ltYWxzKHgpIHtcclxuICB4ID0geC50b1N0cmluZygpO1xyXG4gIGlmICh4LmluZGV4T2YoJy4nKSA+IC0xKSB7XHJcbiAgICByZXR1cm4geC5sZW5ndGggLSB4LmluZGV4T2YoJy4nKSAtIDE7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcm91bmRUb0RlY2ltYWwodmFsdWUsIGRlY2ltYWxzKSB7XHJcbiAgaWYgKE1hdGguYWJzKHZhbHVlKSA8IDAuMDEgJiYgdmFsdWUgIT09IDApIHJldHVybiB2YWx1ZS50b0V4cG9uZW50aWFsKDMpO1xyXG4gIGNvbnN0IHRlblRvID0gTWF0aC5wb3coMTAsIGRlY2ltYWxzKTtcclxuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIHRlblRvKSAvIHRlblRvO1xyXG59IiwiLyoqXHJcbiAqIFdoZW4gdGhlIHRleHRib3ggaXMgZm9jdXNzZWQsICBhIGtleWJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLi4uXHJcbiAqIFRoZXJlIHNob3VsZCBhbHNvIGJlIGEgd2F5IG9mIGRpc21pc3NpbmcgaXQgbGF0ZXIuICBJdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRvXHJcbiAqIHByZXZlbnQgbXVsdGlwbGUga2V5Ym9hcmRzIGJlaW5nIG1hZGUgc2ltdWx0YW5lb3VzbHk/XHJcbiAqIFxyXG4gKiBJbiBvcmRlciB0byBtYWtlIGl0IGFwcGVhciwgaXQgY2FuIGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgdGhlIHRleGJveCBub2RlIGl0c2VsZi4uLlxyXG4gKiBUaGlzJ2xsIG1lYW4gdGhhdCBpdCBnZXRzIGRyYWdnZWQgYXJvdW5kIGJ5IHRoZSBwYXJlbnQgR1VJIGFzIGl0IG1vdmVzLi4uLlxyXG4gKiBNYWtlcyBmb3IgcmVsYXRpdmVseSBjbGVhbiwgc2ltcGxlIGltcGxlbWVudGF0aW9uIGF0IGxlYXN0LlxyXG4gKiBBdCB0aGUgbW9tZW50LCBrZXlib2FyZCBwb3NpdGlvbmluZyBpcyBtZXNzZWQgdXAgYnkgdGhpcyBhcnJhbmdlbWVudC5cclxuICogUmVtb3ZpbmcgZ3JhYmJlciBtYWtlcyBpdCBsZXNzIGxpa2VseSBhIHVzZXIgd2lsbCBkbyB0aGlzLCBidXQgbWlnaHQgYmUgd29ydGggZml4aW5nIHRoZSBiYXNpYyBidWcuXHJcbiAqIFxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIEdVSSBmcm9tICcuL2luZGV4JztcclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRCb3goe1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSkge1xyXG4gIC8vIGJpZyBvbGQgY29weSAvIHBhc3RlIGZyb20gYnV0dG9uLmpzLiBNaWdodCB0cnkgdG8gZmFjdG9yIG91dCBzb21lIG9mIHRoaXMgY29tbW9uIGNvZGUuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGJveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCIvKlxyXG4gKlx0QGF1dGhvciB6ejg1IC8gaHR0cDovL3R3aXR0ZXIuY29tL2JsdXJzcGxpbmUgLyBodHRwOi8vd3d3LmxhYjRnYW1lcy5uZXQveno4NS9ibG9nXHJcbiAqXHRAYXV0aG9yIGNlbnRlcmlvbndhcmUgLyBodHRwOi8vd3d3LmNlbnRlcmlvbndhcmUuY29tXHJcbiAqXHJcbiAqXHRTdWJkaXZpc2lvbiBHZW9tZXRyeSBNb2RpZmllclxyXG4gKlx0XHR1c2luZyBMb29wIFN1YmRpdmlzaW9uIFNjaGVtZVxyXG4gKlxyXG4gKlx0UmVmZXJlbmNlczpcclxuICpcdFx0aHR0cDovL2dyYXBoaWNzLnN0YW5mb3JkLmVkdS9+bWRmaXNoZXIvc3ViZGl2aXNpb24uaHRtbFxyXG4gKlx0XHRodHRwOi8vd3d3LmhvbG1lczNkLm5ldC9ncmFwaGljcy9zdWJkaXZpc2lvbi9cclxuICpcdFx0aHR0cDovL3d3dy5jcy5ydXRnZXJzLmVkdS9+ZGVjYXJsby9yZWFkaW5ncy9zdWJkaXYtc2cwMGMucGRmXHJcbiAqXHJcbiAqXHRLbm93biBJc3N1ZXM6XHJcbiAqXHRcdC0gY3VycmVudGx5IGRvZXNuJ3QgaGFuZGxlIFwiU2hhcnAgRWRnZXNcIlxyXG4gKi9cclxuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIgPSBmdW5jdGlvbiAoIHN1YmRpdmlzaW9ucyApIHtcclxuXHJcblx0dGhpcy5zdWJkaXZpc2lvbnMgPSAoIHN1YmRpdmlzaW9ucyA9PT0gdW5kZWZpbmVkICkgPyAxIDogc3ViZGl2aXNpb25zO1xyXG5cclxufTtcclxuXHJcbi8vIEFwcGxpZXMgdGhlIFwibW9kaWZ5XCIgcGF0dGVyblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5tb2RpZnkgPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkge1xyXG5cclxuXHR2YXIgcmVwZWF0cyA9IHRoaXMuc3ViZGl2aXNpb25zO1xyXG5cclxuXHR3aGlsZSAoIHJlcGVhdHMgLS0gPiAwICkge1xyXG5cclxuXHRcdHRoaXMuc21vb3RoKCBnZW9tZXRyeSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGdlb21ldHJ5LmNvbXB1dGVGYWNlTm9ybWFscygpO1xyXG5cdGdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XHJcblxyXG59O1xyXG5cclxuKCBmdW5jdGlvbigpIHtcclxuXHJcblx0Ly8gU29tZSBjb25zdGFudHNcclxuXHR2YXIgV0FSTklOR1MgPSAhIHRydWU7IC8vIFNldCB0byB0cnVlIGZvciBkZXZlbG9wbWVudFxyXG5cdHZhciBBQkMgPSBbICdhJywgJ2InLCAnYycgXTtcclxuXHJcblxyXG5cdGZ1bmN0aW9uIGdldEVkZ2UoIGEsIGIsIG1hcCApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHRyZXR1cm4gbWFwWyBrZXkgXTtcclxuXHJcblx0fVxyXG5cclxuXHJcblx0ZnVuY3Rpb24gcHJvY2Vzc0VkZ2UoIGEsIGIsIHZlcnRpY2VzLCBtYXAsIGZhY2UsIG1ldGFWZXJ0aWNlcyApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHR2YXIgZWRnZTtcclxuXHJcblx0XHRpZiAoIGtleSBpbiBtYXAgKSB7XHJcblxyXG5cdFx0XHRlZGdlID0gbWFwWyBrZXkgXTtcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0dmFyIHZlcnRleEEgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhBIF07XHJcblx0XHRcdHZhciB2ZXJ0ZXhCID0gdmVydGljZXNbIHZlcnRleEluZGV4QiBdO1xyXG5cclxuXHRcdFx0ZWRnZSA9IHtcclxuXHJcblx0XHRcdFx0YTogdmVydGV4QSwgLy8gcG9pbnRlciByZWZlcmVuY2VcclxuXHRcdFx0XHRiOiB2ZXJ0ZXhCLFxyXG5cdFx0XHRcdG5ld0VkZ2U6IG51bGwsXHJcblx0XHRcdFx0Ly8gYUluZGV4OiBhLCAvLyBudW1iZXJlZCByZWZlcmVuY2VcclxuXHRcdFx0XHQvLyBiSW5kZXg6IGIsXHJcblx0XHRcdFx0ZmFjZXM6IFtdIC8vIHBvaW50ZXJzIHRvIGZhY2VcclxuXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRtYXBbIGtleSBdID0gZWRnZTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0ZWRnZS5mYWNlcy5wdXNoKCBmYWNlICk7XHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzWyBhIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cdFx0bWV0YVZlcnRpY2VzWyBiIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBnZW5lcmF0ZUxvb2t1cHMoIHZlcnRpY2VzLCBmYWNlcywgbWV0YVZlcnRpY2VzLCBlZGdlcyApIHtcclxuXHJcblx0XHR2YXIgaSwgaWwsIGZhY2UsIGVkZ2U7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gdmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRtZXRhVmVydGljZXNbIGkgXSA9IHsgZWRnZXM6IFtdIH07XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IGZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IGZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5hLCBmYWNlLmIsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmIsIGZhY2UuYywgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYywgZmFjZS5hLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdGYWNlKCBuZXdGYWNlcywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdGYWNlcy5wdXNoKCBuZXcgVEhSRUUuRmFjZTMoIGEsIGIsIGMgKSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG1pZHBvaW50KCBhLCBiICkge1xyXG5cclxuXHRcdHJldHVybiAoIE1hdGguYWJzKCBiIC0gYSApIC8gMiApICsgTWF0aC5taW4oIGEsIGIgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdVdiggbmV3VXZzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld1V2cy5wdXNoKCBbIGEuY2xvbmUoKSwgYi5jbG9uZSgpLCBjLmNsb25lKCkgXSApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cdC8vIFBlcmZvcm1zIG9uZSBpdGVyYXRpb24gb2YgU3ViZGl2aXNpb25cclxuXHRUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5zbW9vdGggPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkgeyByZXR1cm47IC8vIHNqcHQgVEVNUCBUT0RPXHJcblxyXG5cdFx0dmFyIHRtcCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0dmFyIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgb2xkVXZzO1xyXG5cdFx0dmFyIG5ld1ZlcnRpY2VzLCBuZXdGYWNlcywgbmV3VVZzID0gW107XHJcblxyXG5cdFx0dmFyIG4sIGwsIGksIGlsLCBqLCBrO1xyXG5cdFx0dmFyIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXM7XHJcblxyXG5cdFx0Ly8gbmV3IHN0dWZmLlxyXG5cdFx0dmFyIHNvdXJjZUVkZ2VzLCBuZXdFZGdlVmVydGljZXMsIG5ld1NvdXJjZVZlcnRpY2VzO1xyXG5cclxuXHRcdG9sZFZlcnRpY2VzID0gZ2VvbWV0cnkudmVydGljZXM7IC8vIHsgeCwgeSwgen1cclxuXHRcdG9sZEZhY2VzID0gZ2VvbWV0cnkuZmFjZXM7IC8vIHsgYTogb2xkVmVydGV4MSwgYjogb2xkVmVydGV4MiwgYzogb2xkVmVydGV4MyB9XHJcblx0XHRvbGRVdnMgPSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF07XHJcblxyXG5cdFx0dmFyIGhhc1V2cyA9IG9sZFV2cyAhPT0gdW5kZWZpbmVkICYmIG9sZFV2cy5sZW5ndGggPiAwO1xyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKiBTdGVwIDA6IFByZXByb2Nlc3MgR2VvbWV0cnkgdG8gR2VuZXJhdGUgZWRnZXMgTG9va3VwXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzID0gbmV3IEFycmF5KCBvbGRWZXJ0aWNlcy5sZW5ndGggKTtcclxuXHRcdHNvdXJjZUVkZ2VzID0ge307IC8vIEVkZ2UgPT4geyBvbGRWZXJ0ZXgxLCBvbGRWZXJ0ZXgyLCBmYWNlc1tdICB9XHJcblxyXG5cdFx0Z2VuZXJhdGVMb29rdXBzKCBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXMgKTtcclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDEuXHJcblx0XHQgKlx0Rm9yIGVhY2ggZWRnZSwgY3JlYXRlIGEgbmV3IEVkZ2UgVmVydGV4LFxyXG5cdFx0ICpcdHRoZW4gcG9zaXRpb24gaXQuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3RWRnZVZlcnRpY2VzID0gW107XHJcblx0XHR2YXIgb3RoZXIsIGN1cnJlbnRFZGdlLCBuZXdFZGdlLCBmYWNlO1xyXG5cdFx0dmFyIGVkZ2VWZXJ0ZXhXZWlnaHQsIGFkamFjZW50VmVydGV4V2VpZ2h0LCBjb25uZWN0ZWRGYWNlcztcclxuXHJcblx0XHRmb3IgKCBpIGluIHNvdXJjZUVkZ2VzICkge1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UgPSBzb3VyY2VFZGdlc1sgaSBdO1xyXG5cdFx0XHRuZXdFZGdlID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAzIC8gODtcclxuXHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdGNvbm5lY3RlZEZhY2VzID0gY3VycmVudEVkZ2UuZmFjZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgaG93IG1hbnkgbGlua2VkIGZhY2VzLiAyIHNob3VsZCBiZSBjb3JyZWN0LlxyXG5cdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGlmIGxlbmd0aCBpcyBub3QgMiwgaGFuZGxlIGNvbmRpdGlvblxyXG5cdFx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAwLjU7XHJcblx0XHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ1N1YmRpdmlzaW9uIE1vZGlmaWVyOiBOdW1iZXIgb2YgY29ubmVjdGVkIGZhY2VzICE9IDIsIGlzOiAnLCBjb25uZWN0ZWRGYWNlcywgY3VycmVudEVkZ2UgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3RWRnZS5hZGRWZWN0b3JzKCBjdXJyZW50RWRnZS5hLCBjdXJyZW50RWRnZS5iICkubXVsdGlwbHlTY2FsYXIoIGVkZ2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgY29ubmVjdGVkRmFjZXM7IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGZhY2UgPSBjdXJyZW50RWRnZS5mYWNlc1sgaiBdO1xyXG5cclxuXHRcdFx0XHRmb3IgKCBrID0gMDsgayA8IDM7IGsgKysgKSB7XHJcblxyXG5cdFx0XHRcdFx0b3RoZXIgPSBvbGRWZXJ0aWNlc1sgZmFjZVsgQUJDWyBrIF0gXSBdO1xyXG5cdFx0XHRcdFx0aWYgKCBvdGhlciAhPT0gY3VycmVudEVkZ2UuYSAmJiBvdGhlciAhPT0gY3VycmVudEVkZ2UuYiApIGJyZWFrO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGFkamFjZW50VmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld0VkZ2UuYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlLm5ld0VkZ2UgPSBuZXdFZGdlVmVydGljZXMubGVuZ3RoO1xyXG5cdFx0XHRuZXdFZGdlVmVydGljZXMucHVzaCggbmV3RWRnZSApO1xyXG5cclxuXHRcdFx0Ly8gY29uc29sZS5sb2coY3VycmVudEVkZ2UsIG5ld0VkZ2UpO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMi5cclxuXHRcdCAqXHRSZXBvc2l0aW9uIGVhY2ggc291cmNlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdHZhciBiZXRhLCBzb3VyY2VWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQ7XHJcblx0XHR2YXIgY29ubmVjdGluZ0VkZ2UsIGNvbm5lY3RpbmdFZGdlcywgb2xkVmVydGV4LCBuZXdTb3VyY2VWZXJ0ZXg7XHJcblx0XHRuZXdTb3VyY2VWZXJ0aWNlcyA9IFtdO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZFZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0b2xkVmVydGV4ID0gb2xkVmVydGljZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgYWxsIGNvbm5lY3RpbmcgZWRnZXMgKHVzaW5nIGxvb2t1cFRhYmxlKVxyXG5cdFx0XHRjb25uZWN0aW5nRWRnZXMgPSBtZXRhVmVydGljZXNbIGkgXS5lZGdlcztcclxuXHRcdFx0biA9IGNvbm5lY3RpbmdFZGdlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIG4gPT0gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAxNjtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoIG4gPiAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvICggOCAqIG4gKTsgLy8gV2FycmVuJ3MgbW9kaWZpZWQgZm9ybXVsYVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTG9vcCdzIG9yaWdpbmFsIGJldGEgZm9ybXVsYVxyXG5cdFx0XHQvLyBiZXRhID0gMSAvIG4gKiAoIDUvOCAtIE1hdGgucG93KCAzLzggKyAxLzQgKiBNYXRoLmNvcyggMiAqIE1hdGguIFBJIC8gbiApLCAyKSApO1xyXG5cclxuXHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMSAtIG4gKiBiZXRhO1xyXG5cdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gYmV0YTtcclxuXHJcblx0XHRcdGlmICggbiA8PSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzXHJcblx0XHRcdFx0Ly8gY29uc29sZS53YXJuKCdjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzJyk7XHJcblxyXG5cdFx0XHRcdGlmICggbiA9PSAyICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcyIGNvbm5lY3RpbmcgZWRnZXMnLCBjb25uZWN0aW5nRWRnZXMgKTtcclxuXHRcdFx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDMgLyA0O1xyXG5cdFx0XHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0XHRcdC8vIHNvdXJjZVZlcnRleFdlaWdodCA9IDE7XHJcblx0XHRcdFx0XHQvLyBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdvbmx5IDEgY29ubmVjdGluZyBlZGdlJyApO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDAgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzAgY29ubmVjdGluZyBlZGdlcycgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGV4ID0gb2xkVmVydGV4LmNsb25lKCkubXVsdGlwbHlTY2FsYXIoIHNvdXJjZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBuOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRjb25uZWN0aW5nRWRnZSA9IGNvbm5lY3RpbmdFZGdlc1sgaiBdO1xyXG5cdFx0XHRcdG90aGVyID0gY29ubmVjdGluZ0VkZ2UuYSAhPT0gb2xkVmVydGV4ID8gY29ubmVjdGluZ0VkZ2UuYSA6IGNvbm5lY3RpbmdFZGdlLmI7XHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggY29ubmVjdGluZ1ZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXguYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRpY2VzLnB1c2goIG5ld1NvdXJjZVZlcnRleCApO1xyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDMuXHJcblx0XHQgKlx0R2VuZXJhdGUgRmFjZXMgYmV0d2VlbiBzb3VyY2UgdmVydGljZXNcclxuXHRcdCAqXHRhbmQgZWRnZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdWZXJ0aWNlcyA9IG5ld1NvdXJjZVZlcnRpY2VzLmNvbmNhdCggbmV3RWRnZVZlcnRpY2VzICk7XHJcblx0XHR2YXIgc2wgPSBuZXdTb3VyY2VWZXJ0aWNlcy5sZW5ndGgsIGVkZ2UxLCBlZGdlMiwgZWRnZTM7XHJcblx0XHRuZXdGYWNlcyA9IFtdO1xyXG5cclxuXHRcdHZhciB1diwgeDAsIHgxLCB4MjtcclxuXHRcdHZhciB4MyA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDQgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg1ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRGYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBvbGRGYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCB0aGUgMyBuZXcgZWRnZXMgdmVydGV4IG9mIGVhY2ggb2xkIGZhY2VcclxuXHJcblx0XHRcdGVkZ2UxID0gZ2V0RWRnZSggZmFjZS5hLCBmYWNlLmIsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMiA9IGdldEVkZ2UoIGZhY2UuYiwgZmFjZS5jLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTMgPSBnZXRFZGdlKCBmYWNlLmMsIGZhY2UuYSwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBmYWNlcy5cclxuXHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBlZGdlMSwgZWRnZTIsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmEsIGVkZ2UxLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5iLCBlZGdlMiwgZWRnZTEgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYywgZWRnZTMsIGVkZ2UyICk7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBuZXcgdXYnc1xyXG5cclxuXHRcdFx0aWYgKCBoYXNVdnMgKSB7XHJcblxyXG5cdFx0XHRcdHV2ID0gb2xkVXZzWyBpIF07XHJcblxyXG5cdFx0XHRcdHgwID0gdXZbIDAgXTtcclxuXHRcdFx0XHR4MSA9IHV2WyAxIF07XHJcblx0XHRcdFx0eDIgPSB1dlsgMiBdO1xyXG5cclxuXHRcdFx0XHR4My5zZXQoIG1pZHBvaW50KCB4MC54LCB4MS54ICksIG1pZHBvaW50KCB4MC55LCB4MS55ICkgKTtcclxuXHRcdFx0XHR4NC5zZXQoIG1pZHBvaW50KCB4MS54LCB4Mi54ICksIG1pZHBvaW50KCB4MS55LCB4Mi55ICkgKTtcclxuXHRcdFx0XHR4NS5zZXQoIG1pZHBvaW50KCB4MC54LCB4Mi54ICksIG1pZHBvaW50KCB4MC55LCB4Mi55ICkgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDMsIHg0LCB4NSApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgwLCB4MywgeDUgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDEsIHg0LCB4MyApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgyLCB4NSwgeDQgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3ZlcndyaXRlIG9sZCBhcnJheXNcclxuXHRcdGdlb21ldHJ5LnZlcnRpY2VzID0gbmV3VmVydGljZXM7XHJcblx0XHRnZW9tZXRyeS5mYWNlcyA9IG5ld0ZhY2VzO1xyXG5cdFx0aWYgKCBoYXNVdnMgKSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF0gPSBuZXdVVnM7XHJcblxyXG5cdFx0Ly8gY29uc29sZS5sb2coJ2RvbmUnKTtcclxuXHJcblx0fTtcclxuXHJcbn0gKSgpO1xyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgQmFzZS5jYWxsKHRoaXMpXG5cbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIHRoZXNlIGFzIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgc3Vic2VxdWVudFxuICAvLyBjYWxscyB0byB1cGRhdGUoKVxuICB0aGlzLl9vcHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX29wdCwgb3B0KVxuXG4gIGlmICghb3B0LmZvbnQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgYSB7IGZvbnQgfSBpbiBvcHRpb25zJylcbiAgfVxuXG4gIHRoaXMubGF5b3V0ID0gY3JlYXRlTGF5b3V0KG9wdClcblxuICAvLyBnZXQgdmVjMiB0ZXhjb29yZHNcbiAgdmFyIGZsaXBZID0gb3B0LmZsaXBZICE9PSBmYWxzZVxuXG4gIC8vIHRoZSBkZXNpcmVkIEJNRm9udCBkYXRhXG4gIHZhciBmb250ID0gb3B0LmZvbnRcblxuICAvLyBkZXRlcm1pbmUgdGV4dHVyZSBzaXplIGZyb20gZm9udCBmaWxlXG4gIHZhciB0ZXhXaWR0aCA9IGZvbnQuY29tbW9uLnNjYWxlV1xuICB2YXIgdGV4SGVpZ2h0ID0gZm9udC5jb21tb24uc2NhbGVIXG5cbiAgLy8gZ2V0IHZpc2libGUgZ2x5cGhzXG4gIHZhciBnbHlwaHMgPSB0aGlzLmxheW91dC5nbHlwaHMuZmlsdGVyKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgcmV0dXJuIGJpdG1hcC53aWR0aCAqIGJpdG1hcC5oZWlnaHQgPiAwXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB2aXNpYmxlIGdseXBocyBmb3IgY29udmVuaWVuY2VcbiAgdGhpcy52aXNpYmxlR2x5cGhzID0gZ2x5cGhzXG5cbiAgLy8gZ2V0IGNvbW1vbiB2ZXJ0ZXggZGF0YVxuICB2YXIgcG9zaXRpb25zID0gdmVydGljZXMucG9zaXRpb25zKGdseXBocylcbiAgdmFyIHV2cyA9IHZlcnRpY2VzLnV2cyhnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKVxuICB2YXIgaW5kaWNlcyA9IGNyZWF0ZUluZGljZXMoW10sIHtcbiAgICBjbG9ja3dpc2U6IHRydWUsXG4gICAgdHlwZTogJ3VpbnQxNicsXG4gICAgY291bnQ6IGdseXBocy5sZW5ndGhcbiAgfSlcblxuICAvLyB1cGRhdGUgdmVydGV4IGRhdGFcbiAgdGhpcy5zZXRJbmRleChpbmRpY2VzKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9ucywgMikpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSlcblxuICAvLyB1cGRhdGUgbXVsdGlwYWdlIGRhdGFcbiAgaWYgKCFvcHQubXVsdGlwYWdlICYmICdwYWdlJyBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAvLyBkaXNhYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGFnZScpXG4gIH0gZWxzZSBpZiAob3B0Lm11bHRpcGFnZSkge1xuICAgIC8vIGVuYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdmFyIHBhZ2VzID0gdmVydGljZXMucGFnZXMoZ2x5cGhzKVxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwYWdlJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwYWdlcywgMSkpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdTcGhlcmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nU3BoZXJlID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZSA9IG5ldyBUSFJFRS5TcGhlcmUoKVxuICB9XG5cbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMgPSAwXG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXIuc2V0KDAsIDAsIDApXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZVNwaGVyZShwb3NpdGlvbnMsIHRoaXMuYm91bmRpbmdTcGhlcmUpXG4gIGlmIChpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogJyArXG4gICAgICAnQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICcgK1xuICAgICAgJ1wicG9zaXRpb25cIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ0JveCA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpXG4gIH1cblxuICB2YXIgYmJveCA9IHRoaXMuYm91bmRpbmdCb3hcbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgYmJveC5tYWtlRW1wdHkoKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVCb3gocG9zaXRpb25zLCBiYm94KVxufVxuIiwidmFyIGl0ZW1TaXplID0gMlxudmFyIGJveCA9IHsgbWluOiBbMCwgMF0sIG1heDogWzAsIDBdIH1cblxuZnVuY3Rpb24gYm91bmRzIChwb3NpdGlvbnMpIHtcbiAgdmFyIGNvdW50ID0gcG9zaXRpb25zLmxlbmd0aCAvIGl0ZW1TaXplXG4gIGJveC5taW5bMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1pblsxXSA9IHBvc2l0aW9uc1sxXVxuICBib3gubWF4WzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5tYXhbMV0gPSBwb3NpdGlvbnNbMV1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICB2YXIgeCA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAwXVxuICAgIHZhciB5ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDFdXG4gICAgYm94Lm1pblswXSA9IE1hdGgubWluKHgsIGJveC5taW5bMF0pXG4gICAgYm94Lm1pblsxXSA9IE1hdGgubWluKHksIGJveC5taW5bMV0pXG4gICAgYm94Lm1heFswXSA9IE1hdGgubWF4KHgsIGJveC5tYXhbMF0pXG4gICAgYm94Lm1heFsxXSA9IE1hdGgubWF4KHksIGJveC5tYXhbMV0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZUJveCA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICBvdXRwdXQubWluLnNldChib3gubWluWzBdLCBib3gubWluWzFdLCAwKVxuICBvdXRwdXQubWF4LnNldChib3gubWF4WzBdLCBib3gubWF4WzFdLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlU3BoZXJlID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIHZhciBtaW5YID0gYm94Lm1pblswXVxuICB2YXIgbWluWSA9IGJveC5taW5bMV1cbiAgdmFyIG1heFggPSBib3gubWF4WzBdXG4gIHZhciBtYXhZID0gYm94Lm1heFsxXVxuICB2YXIgd2lkdGggPSBtYXhYIC0gbWluWFxuICB2YXIgaGVpZ2h0ID0gbWF4WSAtIG1pbllcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KVxuICBvdXRwdXQuY2VudGVyLnNldChtaW5YICsgd2lkdGggLyAyLCBtaW5ZICsgaGVpZ2h0IC8gMiwgMClcbiAgb3V0cHV0LnJhZGl1cyA9IGxlbmd0aCAvIDJcbn1cbiIsIm1vZHVsZS5leHBvcnRzLnBhZ2VzID0gZnVuY3Rpb24gcGFnZXMgKGdseXBocykge1xuICB2YXIgcGFnZXMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMSlcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBpZCA9IGdseXBoLmRhdGEucGFnZSB8fCAwXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gIH0pXG4gIHJldHVybiBwYWdlc1xufVxuXG5tb2R1bGUuZXhwb3J0cy51dnMgPSBmdW5jdGlvbiB1dnMgKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpIHtcbiAgdmFyIHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICB2YXIgYncgPSAoYml0bWFwLnggKyBiaXRtYXAud2lkdGgpXG4gICAgdmFyIGJoID0gKGJpdG1hcC55ICsgYml0bWFwLmhlaWdodClcblxuICAgIC8vIHRvcCBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHUwID0gYml0bWFwLnggLyB0ZXhXaWR0aFxuICAgIHZhciB2MSA9IGJpdG1hcC55IC8gdGV4SGVpZ2h0XG4gICAgdmFyIHUxID0gYncgLyB0ZXhXaWR0aFxuICAgIHZhciB2MCA9IGJoIC8gdGV4SGVpZ2h0XG5cbiAgICBpZiAoZmxpcFkpIHtcbiAgICAgIHYxID0gKHRleEhlaWdodCAtIGJpdG1hcC55KSAvIHRleEhlaWdodFxuICAgICAgdjAgPSAodGV4SGVpZ2h0IC0gYmgpIC8gdGV4SGVpZ2h0XG4gICAgfVxuXG4gICAgLy8gQkxcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MVxuICAgIC8vIFRMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBUUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gQlJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MVxuICB9KVxuICByZXR1cm4gdXZzXG59XG5cbm1vZHVsZS5leHBvcnRzLnBvc2l0aW9ucyA9IGZ1bmN0aW9uIHBvc2l0aW9ucyAoZ2x5cGhzKSB7XG4gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG5cbiAgICAvLyBib3R0b20gbGVmdCBwb3NpdGlvblxuICAgIHZhciB4ID0gZ2x5cGgucG9zaXRpb25bMF0gKyBiaXRtYXAueG9mZnNldFxuICAgIHZhciB5ID0gZ2x5cGgucG9zaXRpb25bMV0gKyBiaXRtYXAueW9mZnNldFxuXG4gICAgLy8gcXVhZCBzaXplXG4gICAgdmFyIHcgPSBiaXRtYXAud2lkdGhcbiAgICB2YXIgaCA9IGJpdG1hcC5oZWlnaHRcblxuICAgIC8vIEJMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gICAgLy8gVExcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gVFJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIEJSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICB9KVxuICByZXR1cm4gcG9zaXRpb25zXG59XG4iLCJ2YXIgbmV3bGluZSA9IC9cXG4vXG52YXIgbmV3bGluZUNoYXIgPSAnXFxuJ1xudmFyIHdoaXRlc3BhY2UgPSAvXFxzL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHRleHQsIG9wdCkge1xuICAgIHZhciBsaW5lcyA9IG1vZHVsZS5leHBvcnRzLmxpbmVzKHRleHQsIG9wdClcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKGxpbmUuc3RhcnQsIGxpbmUuZW5kKVxuICAgIH0pLmpvaW4oJ1xcbicpXG59XG5cbm1vZHVsZS5leHBvcnRzLmxpbmVzID0gZnVuY3Rpb24gd29yZHdyYXAodGV4dCwgb3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgLy96ZXJvIHdpZHRoIHJlc3VsdHMgaW4gbm90aGluZyB2aXNpYmxlXG4gICAgaWYgKG9wdC53aWR0aCA9PT0gMCAmJiBvcHQubW9kZSAhPT0gJ25vd3JhcCcpIFxuICAgICAgICByZXR1cm4gW11cblxuICAgIHRleHQgPSB0ZXh0fHwnJ1xuICAgIHZhciB3aWR0aCA9IHR5cGVvZiBvcHQud2lkdGggPT09ICdudW1iZXInID8gb3B0LndpZHRoIDogTnVtYmVyLk1BWF9WQUxVRVxuICAgIHZhciBzdGFydCA9IE1hdGgubWF4KDAsIG9wdC5zdGFydHx8MClcbiAgICB2YXIgZW5kID0gdHlwZW9mIG9wdC5lbmQgPT09ICdudW1iZXInID8gb3B0LmVuZCA6IHRleHQubGVuZ3RoXG4gICAgdmFyIG1vZGUgPSBvcHQubW9kZVxuXG4gICAgdmFyIG1lYXN1cmUgPSBvcHQubWVhc3VyZSB8fCBtb25vc3BhY2VcbiAgICBpZiAobW9kZSA9PT0gJ3ByZScpXG4gICAgICAgIHJldHVybiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpXG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKVxufVxuXG5mdW5jdGlvbiBpZHhPZih0ZXh0LCBjaHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKGNociwgc3RhcnQpXG4gICAgaWYgKGlkeCA9PT0gLTEgfHwgaWR4ID4gZW5kKVxuICAgICAgICByZXR1cm4gZW5kXG4gICAgcmV0dXJuIGlkeFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hyKSB7XG4gICAgcmV0dXJuIHdoaXRlc3BhY2UudGVzdChjaHIpXG59XG5cbmZ1bmN0aW9uIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBsaW5lcyA9IFtdXG4gICAgdmFyIGxpbmVTdGFydCA9IHN0YXJ0XG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQgJiYgaTx0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaHIgPSB0ZXh0LmNoYXJBdChpKVxuICAgICAgICB2YXIgaXNOZXdsaW5lID0gbmV3bGluZS50ZXN0KGNocilcblxuICAgICAgICAvL0lmIHdlJ3ZlIHJlYWNoZWQgYSBuZXdsaW5lLCB0aGVuIHN0ZXAgZG93biBhIGxpbmVcbiAgICAgICAgLy9PciBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBFT0ZcbiAgICAgICAgaWYgKGlzTmV3bGluZSB8fCBpPT09ZW5kLTEpIHtcbiAgICAgICAgICAgIHZhciBsaW5lRW5kID0gaXNOZXdsaW5lID8gaSA6IGkrMVxuICAgICAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBsaW5lU3RhcnQsIGxpbmVFbmQsIHdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChtZWFzdXJlZClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGluZVN0YXJ0ID0gaSsxXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSkge1xuICAgIC8vQSBncmVlZHkgd29yZCB3cmFwcGVyIGJhc2VkIG9uIExpYkdEWCBhbGdvcml0aG1cbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9saWJnZHgvbGliZ2R4L2Jsb2IvbWFzdGVyL2dkeC9zcmMvY29tL2JhZGxvZ2ljL2dkeC9ncmFwaGljcy9nMmQvQml0bWFwRm9udENhY2hlLmphdmFcbiAgICB2YXIgbGluZXMgPSBbXVxuXG4gICAgdmFyIHRlc3RXaWR0aCA9IHdpZHRoXG4gICAgLy9pZiAnbm93cmFwJyBpcyBzcGVjaWZpZWQsIHdlIG9ubHkgd3JhcCBvbiBuZXdsaW5lIGNoYXJzXG4gICAgaWYgKG1vZGUgPT09ICdub3dyYXAnKVxuICAgICAgICB0ZXN0V2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFXG5cbiAgICB3aGlsZSAoc3RhcnQgPCBlbmQgJiYgc3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAvL2dldCBuZXh0IG5ld2xpbmUgcG9zaXRpb25cbiAgICAgICAgdmFyIG5ld0xpbmUgPSBpZHhPZih0ZXh0LCBuZXdsaW5lQ2hhciwgc3RhcnQsIGVuZClcblxuICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IHN0YXJ0IG9mIGxpbmVcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbmV3TGluZSkge1xuICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UoIHRleHQuY2hhckF0KHN0YXJ0KSApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBzdGFydCsrXG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSB2aXNpYmxlICMgb2YgZ2x5cGhzIGZvciB0aGUgYXZhaWxhYmxlIHdpZHRoXG4gICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIG5ld0xpbmUsIHRlc3RXaWR0aClcblxuICAgICAgICB2YXIgbGluZUVuZCA9IHN0YXJ0ICsgKG1lYXN1cmVkLmVuZC1tZWFzdXJlZC5zdGFydClcbiAgICAgICAgdmFyIG5leHRTdGFydCA9IGxpbmVFbmQgKyBuZXdsaW5lQ2hhci5sZW5ndGhcblxuICAgICAgICAvL2lmIHdlIGhhZCB0byBjdXQgdGhlIGxpbmUgYmVmb3JlIHRoZSBuZXh0IG5ld2xpbmUuLi5cbiAgICAgICAgaWYgKGxpbmVFbmQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICAvL2ZpbmQgY2hhciB0byBicmVhayBvblxuICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmVFbmQgPT09IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGFydCA+IHN0YXJ0ICsgbmV3bGluZUNoYXIubGVuZ3RoKSBuZXh0U3RhcnQtLVxuICAgICAgICAgICAgICAgIGxpbmVFbmQgPSBuZXh0U3RhcnQgLy8gSWYgbm8gY2hhcmFjdGVycyB0byBicmVhaywgc2hvdyBhbGwuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IGxpbmVFbmRcbiAgICAgICAgICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kIC0gbmV3bGluZUNoYXIubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVFbmQgPj0gc3RhcnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBsaW5lRW5kLCB0ZXN0V2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IG5leHRTdGFydFxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuLy9kZXRlcm1pbmVzIHRoZSB2aXNpYmxlIG51bWJlciBvZiBnbHlwaHMgd2l0aGluIGEgZ2l2ZW4gd2lkdGhcbmZ1bmN0aW9uIG1vbm9zcGFjZSh0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBnbHlwaHMgPSBNYXRoLm1pbih3aWR0aCwgZW5kLXN0YXJ0KVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgZW5kOiBzdGFydCtnbHlwaHNcbiAgICB9XG59IiwibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiJdfQ== diff --git a/build/datguivr.map b/build/datguivr.map index e7db2e9..a4a21b3 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","labelString","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index 8bd4426..e2bf87e 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -5,6 +5,6 @@ return'info face="Roboto" size=192 bold=0 italic=0 charset="" unicode=1 stretchH }Object.defineProperty(c,"__esModule",{value:!0}),c.image=d,c.fnt=e},{}],8:[function(a,b,c){"use strict";function d(){function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i),b.hoverCol=b.text?2184:16777215,b.noHoverCol=b.text?273:13421772,j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?b.hoverCol:b.noHoverCol),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{ -"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});return 0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1}),la.intersections}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.geometry.update(a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder -;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});return 0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1}),la.intersections}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.userData.labelString!==a&&(j.geometry.update(a),j.userData.labelString=a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}], +23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b Date: Thu, 28 Apr 2022 14:16:06 +0100 Subject: [PATCH 15/24] comment out stopImmediatePropagation for window mousedown --- modules/datguivr/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/datguivr/index.js b/modules/datguivr/index.js index d760ada..7a3564f 100644 --- a/modules/datguivr/index.js +++ b/modules/datguivr/index.js @@ -200,7 +200,8 @@ const GUIVR = (function DATGUIVR(){ window.addEventListener( 'mousedown', function( event ){ if (input.intersections.length > 0) { // prevent mouse down from triggering other listeners (polyfill, etc) - event.stopImmediatePropagation(); + // commented out 28 April 2022, generally pretty bad practice + // event.stopImmediatePropagation(); } input.pressed = true; //sometimes we care about the mouse being pressed, even on background //will be set false at end of first update. Shouldn't be necessary to add a new property... From d8f82b3cecf74389cd9b651dade097f2209b3e95 Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Wed, 24 Jan 2024 14:52:16 +0000 Subject: [PATCH 16/24] make sure w value set for colorpicker shaders --- modules/datguivr/colorpicker.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/modules/datguivr/colorpicker.js b/modules/datguivr/colorpicker.js index b34d4a8..3bb6f44 100644 --- a/modules/datguivr/colorpicker.js +++ b/modules/datguivr/colorpicker.js @@ -1,13 +1,13 @@ /** * This should look like an imagebutton with a solid color MeshBasicMaterial * When pressed it could bring up some kind of picker depending on configuration. - * + * * For now, just going with RGB sliders as I shouldn't spend too long on this ATM, - * but very tempted by prospect of an HS square with V slider... + * but very tempted by prospect of an HS square with V slider... * or H slider and SV square which seems to be what dat.gui uses. * Or something fancier like a hue circle around an SV triangle etc etc. - * - * + * + * * Peter Todd 2017 */ @@ -50,6 +50,7 @@ void main() { float d = length(selectedHSV.yz - vUv); if (d < 0.015 && d > 0.01) hsv.z = 0.; gl_FragColor.rgb = hsv2rgb(hsv); + gl_FragColor.w = 1.; } `; @@ -65,7 +66,7 @@ void main() { bool indicator = dist < 0.01 && dist > 0.005; float v = indicator ? 0. : 1.; gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v)); - + gl_FragColor.w = 1.; } `; @@ -73,7 +74,7 @@ void main() { //why not use THREE.Color methods? /* accepts parameters * h Object = {h:x, s:y, v:z} - * OR + * OR * h, s, v */ function HSVtoRGB(h, s, v) { @@ -104,7 +105,7 @@ function HSVtoRGB(h, s, v) { } /* accepts parameters * r Object = {r, g, b} - * OR + * OR * r, g, b */ function RGBtoHSV(r, g, b) { @@ -127,7 +128,7 @@ function RGBtoHSV(r, g, b) { return { h: h, s: s, - v: v, + v: v, x: h, y: s, z: v //so that we can do Vector3.copy(this) }; } @@ -158,7 +159,7 @@ export default function createColorPicker( { textCreator, func, image, propertyName, width, height, depth, changeColorOnHover }); group.guiType = "ColorPicker"; - + var panel; function changeFn() { @@ -181,9 +182,9 @@ export default function createColorPicker( { return; } else { // would be handy to have a way to make narrower panel - panel = dat.GUIVR.create("Color Chooser"); + panel = dat.GUIVR.create("Color Chooser"); panel.hideHeader(); - + if (fancyPanel) { const SVMaterial = new THREE.ShaderMaterial({ uniforms: uniforms, @@ -193,7 +194,7 @@ export default function createColorPicker( { const setSV = (p) => { uniforms.selectedHSV.value.y = p.localPoint.x; uniforms.selectedHSV.value.z = p.localPoint.y; - + const c = HSVtoRGB(uniforms.selectedHSV.value); color.setRGB(c.r, c.g, c.b); changeFn(); From afa68a02a9ced6e8283f8a5e8510977cede115e9 Mon Sep 17 00:00:00 2001 From: "WINDOWS-4PQGKTN\\Organic" Date: Wed, 24 Jan 2024 15:08:06 +0000 Subject: [PATCH 17/24] change after npm update --- package-lock.json | 6727 +++++---------------------------------------- 1 file changed, 737 insertions(+), 5990 deletions(-) diff --git a/package-lock.json b/package-lock.json index dedcbe9..669287b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "datguivr", "version": "0.1.1", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -58,13 +58,13 @@ "dev": true }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" @@ -105,7 +105,7 @@ "node_modules/align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", "dev": true, "dependencies": { "kind-of": "^3.0.2", @@ -119,7 +119,7 @@ "node_modules/align-text/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -131,12 +131,12 @@ "node_modules/an-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/an-array/-/an-array-1.0.0.tgz", - "integrity": "sha1-wSWlu4JXd4419LT2qpx9D6nkJmU=" + "integrity": "sha512-M175GYI7RmsYu24Ok383yZQa3eveDfNnmhTe3OQ3bm70bEovz2gWenH+ST/n32M8lrwLWk74hcPds5CDRPe2wg==" }, "node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -145,16 +145,16 @@ "node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -185,7 +185,7 @@ "node_modules/array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -194,7 +194,7 @@ "node_modules/array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -203,13 +203,13 @@ "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, "node_modules/array-shuffle": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-1.0.1.tgz", - "integrity": "sha1-fqSIKjVrS8pfVF4LblLq9tlxVXo=", + "integrity": "sha512-PBqgo1Y2XWSksBzq3GFPEb798ZrW2snAcmr4drbVeF/6MT/5aBlkGJEvu5A/CzXHf4EjbHOj/ZowatjlIiVidA==", "engines": { "node": ">=0.10.0" } @@ -244,7 +244,7 @@ "node_modules/as-number": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/as-number/-/as-number-1.0.0.tgz", - "integrity": "sha1-rLJ+NPj52KsNqeN287iVmGD4CmY=" + "integrity": "sha512-HkI/zLo2AbSRO4fqVkmyf3hms0bJDs3iboHqTrNuwTiCRvdYXM7HFhfhB6Dk51anV2LM/IMB83mtK9mHw4FlAg==" }, "node_modules/asn1.js": { "version": "5.4.1", @@ -265,34 +265,34 @@ "dev": true }, "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", "dev": true, "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "object.assign": "^4.1.4", + "util": "^0.10.4" } }, "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, "dependencies": { - "inherits": "2.0.1" + "inherits": "2.0.3" } }, "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "dependencies": { "lodash": "^4.17.14" @@ -313,7 +313,7 @@ "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", "dev": true, "dependencies": { "chalk": "^1.1.3", @@ -367,7 +367,7 @@ "node_modules/babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==", "dev": true, "dependencies": { "babel-helper-hoist-variables": "^6.24.1", @@ -379,7 +379,7 @@ "node_modules/babel-helper-define-map": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "integrity": "sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==", "dev": true, "dependencies": { "babel-helper-function-name": "^6.24.1", @@ -391,7 +391,7 @@ "node_modules/babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", "dev": true, "dependencies": { "babel-helper-get-function-arity": "^6.24.1", @@ -404,7 +404,7 @@ "node_modules/babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", @@ -414,7 +414,7 @@ "node_modules/babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", @@ -424,7 +424,7 @@ "node_modules/babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "integrity": "sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", @@ -434,7 +434,7 @@ "node_modules/babel-helper-regex": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "integrity": "sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", @@ -445,7 +445,7 @@ "node_modules/babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==", "dev": true, "dependencies": { "babel-helper-optimise-call-expression": "^6.24.1", @@ -459,7 +459,7 @@ "node_modules/babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", @@ -469,7 +469,7 @@ "node_modules/babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -478,7 +478,7 @@ "node_modules/babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -487,7 +487,7 @@ "node_modules/babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "integrity": "sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -496,7 +496,7 @@ "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "integrity": "sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -505,7 +505,7 @@ "node_modules/babel-plugin-transform-es2015-block-scoping": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "integrity": "sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", @@ -518,7 +518,7 @@ "node_modules/babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==", "dev": true, "dependencies": { "babel-helper-define-map": "^6.24.1", @@ -535,7 +535,7 @@ "node_modules/babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", @@ -545,7 +545,7 @@ "node_modules/babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -554,7 +554,7 @@ "node_modules/babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "integrity": "sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", @@ -564,7 +564,7 @@ "node_modules/babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "integrity": "sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -573,7 +573,7 @@ "node_modules/babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==", "dev": true, "dependencies": { "babel-helper-function-name": "^6.24.1", @@ -584,7 +584,7 @@ "node_modules/babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "integrity": "sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -593,7 +593,7 @@ "node_modules/babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "integrity": "sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==", "dev": true, "dependencies": { "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", @@ -616,7 +616,7 @@ "node_modules/babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "integrity": "sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==", "dev": true, "dependencies": { "babel-helper-hoist-variables": "^6.24.1", @@ -627,7 +627,7 @@ "node_modules/babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "integrity": "sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==", "dev": true, "dependencies": { "babel-plugin-transform-es2015-modules-amd": "^6.24.1", @@ -638,7 +638,7 @@ "node_modules/babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "integrity": "sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==", "dev": true, "dependencies": { "babel-helper-replace-supers": "^6.24.1", @@ -648,7 +648,7 @@ "node_modules/babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==", "dev": true, "dependencies": { "babel-helper-call-delegate": "^6.24.1", @@ -662,7 +662,7 @@ "node_modules/babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "integrity": "sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", @@ -672,7 +672,7 @@ "node_modules/babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -681,7 +681,7 @@ "node_modules/babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "integrity": "sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==", "dev": true, "dependencies": { "babel-helper-regex": "^6.24.1", @@ -692,7 +692,7 @@ "node_modules/babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "integrity": "sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -701,7 +701,7 @@ "node_modules/babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "integrity": "sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0" @@ -710,7 +710,7 @@ "node_modules/babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "integrity": "sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==", "dev": true, "dependencies": { "babel-helper-regex": "^6.24.1", @@ -721,7 +721,7 @@ "node_modules/babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "integrity": "sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==", "dev": true, "dependencies": { "regenerator-transform": "^0.10.0" @@ -730,7 +730,7 @@ "node_modules/babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==", "dev": true, "dependencies": { "babel-runtime": "^6.22.0", @@ -740,7 +740,7 @@ "node_modules/babel-preset-es2015": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "integrity": "sha512-XfwUqG1Ry6R43m4Wfob+vHbIVBIqTg/TJY4Snku1iIzeH7mUnwHA8Vagmv+ZQbPwhS8HgsdQvy28Py3k5zpoFQ==", "deprecated": "🙌 Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update!", "dev": true, "dependencies": { @@ -773,7 +773,7 @@ "node_modules/babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", "dev": true, "dependencies": { "babel-core": "^6.26.0", @@ -788,7 +788,7 @@ "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", "dev": true, "dependencies": { "core-js": "^2.4.0", @@ -798,7 +798,7 @@ "node_modules/babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", @@ -811,7 +811,7 @@ "node_modules/babel-traverse": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", "dev": true, "dependencies": { "babel-code-frame": "^6.26.0", @@ -828,7 +828,7 @@ "node_modules/babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", @@ -840,7 +840,7 @@ "node_modules/babelify": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", - "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", + "integrity": "sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA==", "dev": true, "dependencies": { "babel-core": "^6.0.14", @@ -892,15 +892,15 @@ } }, "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, "node_modules/body": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", - "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "integrity": "sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==", "dev": true, "dependencies": { "continuable-cache": "^0.3.1", @@ -910,36 +910,39 @@ } }, "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "dependencies": { - "bytes": "3.1.1", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body/node_modules/bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", - "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==", "dev": true }, "node_modules/body/node_modules/raw-body": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", - "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==", "dev": true, "dependencies": { "bytes": "1", @@ -952,7 +955,7 @@ "node_modules/body/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "node_modules/brace-expansion": { @@ -980,7 +983,7 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, "node_modules/browser-pack": { @@ -1086,22 +1089,16 @@ } }, "node_modules/browserify-cache-api": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", - "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.2.tgz", + "integrity": "sha512-14YNbboSgSHY5QNZSLwlGYB7OuBuXS7gMyR2gfBjdS4JYcWB9BqyKhraQG/VW2W5ZhjkC/C8LZ38sP3bmbmeNA==", "dev": true, "dependencies": { - "async": "^1.5.2", + "async": "^2.6.4", "through2": "^2.0.0", "xtend": "^4.0.0" } }, - "node_modules/browserify-cache-api/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, "node_modules/browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", @@ -1128,7 +1125,7 @@ "node_modules/browserify-incremental": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", - "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", + "integrity": "sha512-PrFwOzLEdy27VRXK2uGjmjLq1aROBG7QoQq3eKanmm6Q8vuzT0ZNFCORHh3yJgNQQooXA9tOizGv4vCOmhrvRQ==", "dev": true, "dependencies": { "browserify-cache-api": "^3.0.0", @@ -1146,7 +1143,7 @@ "node_modules/browserify-incremental/node_modules/jsonparse": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", - "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", + "integrity": "sha512-fw7Q/8gFR8iSekUi9I+HqWIap6mywuoe7hQIg3buTVjuZgALKj4HAmm0X6f+TaL4c9NJbvyFQdaI2ppr5p6dnQ==", "dev": true, "engines": [ "node >= 0.2.0" @@ -1155,7 +1152,7 @@ "node_modules/browserify-incremental/node_modules/JSONStream": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", - "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", + "integrity": "sha512-8XbSFFd43EG+1thjLNFIzCBlwXti0yKa7L+ak/f0T/pkC+31b7G41DXL/JzYpAoYWZ2eCPiu4IIqzijM8N0a/w==", "dev": true, "dependencies": { "jsonparse": "0.0.5", @@ -1179,26 +1176,29 @@ } }, "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", "dev": true, "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.4", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 4" } }, "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -1209,26 +1209,6 @@ "node": ">= 6" } }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", @@ -1257,19 +1237,19 @@ "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "engines": { "node": ">= 0.8" @@ -1330,13 +1310,14 @@ "dev": true }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1345,7 +1326,7 @@ "node_modules/camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1354,7 +1335,7 @@ "node_modules/camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", "dev": true, "dependencies": { "camelcase": "^2.0.0", @@ -1367,7 +1348,7 @@ "node_modules/center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", "dev": true, "dependencies": { "align-text": "^0.1.3", @@ -1380,7 +1361,7 @@ "node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, "dependencies": { "ansi-styles": "^2.2.1", @@ -1433,7 +1414,7 @@ "node_modules/cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", "dev": true, "dependencies": { "center-align": "^0.1.1", @@ -1442,11 +1423,14 @@ } }, "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", "dependencies": { "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/color-convert": { @@ -1470,7 +1454,7 @@ "node_modules/colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==", "dev": true, "engines": { "node": ">=0.1.90" @@ -1479,7 +1463,7 @@ "node_modules/combine-source-map": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", "dev": true, "dependencies": { "convert-source-map": "~1.1.0", @@ -1491,13 +1475,13 @@ "node_modules/combine-source-map/node_modules/convert-source-map": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/concat-stream": { @@ -1524,7 +1508,7 @@ "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, "node_modules/content-disposition": { @@ -1539,30 +1523,10 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, "engines": { "node": ">= 0.6" @@ -1571,22 +1535,19 @@ "node_modules/continuable-cache": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", - "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", + "integrity": "sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==", "dev": true }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, "engines": { "node": ">= 0.6" @@ -1595,14 +1556,14 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, "node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", "dev": true, "hasInstallScript": true }, @@ -1680,7 +1641,7 @@ "node_modules/currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", "dev": true, "dependencies": { "array-find-index": "^1.0.1" @@ -1696,9 +1657,9 @@ "dev": true }, "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", "dev": true, "engines": { "node": "*" @@ -1716,7 +1677,7 @@ "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1725,7 +1686,7 @@ "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", "dependencies": { "mimic-response": "^1.0.0" }, @@ -1738,31 +1699,53 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { - "object-keys": "^1.0.12" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/deps-sort": { @@ -1781,9 +1764,9 @@ } }, "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, "dependencies": { "inherits": "^2.0.1", @@ -1791,15 +1774,19 @@ } }, "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, "node_modules/detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1808,7 +1795,7 @@ "node_modules/detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", "dev": true, "dependencies": { "repeating": "^2.0.0" @@ -1818,14 +1805,14 @@ } }, "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", "dev": true, "dependencies": { - "acorn-node": "^1.6.1", + "acorn-node": "^1.8.2", "defined": "^1.0.0", - "minimist": "^1.1.1" + "minimist": "^1.2.6" }, "bin": { "detective": "bin/detective.js" @@ -1864,7 +1851,7 @@ "node_modules/dtype": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=", + "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", "engines": { "node": ">= 0.8.0" } @@ -1872,16 +1859,16 @@ "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", "dev": true, "dependencies": { "readable-stream": "^2.0.2" } }, "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" }, "node_modules/duplexify": { "version": "3.7.1", @@ -1898,7 +1885,7 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "node_modules/elliptic": { @@ -1925,7 +1912,7 @@ "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "engines": { "node": ">= 0.8" @@ -1957,67 +1944,16 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -2048,7 +1984,7 @@ "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "engines": { "node": ">= 0.6" @@ -2057,7 +1993,7 @@ "node_modules/eventemitter2": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==", "dev": true }, "node_modules/events": { @@ -2082,7 +2018,7 @@ "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -2091,7 +2027,7 @@ "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, "dependencies": { "homedir-polyfill": "^1.0.1" @@ -2101,38 +2037,39 @@ } }, "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "dependencies": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.1", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.1", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.6", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -2141,26 +2078,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -2176,7 +2093,7 @@ "node_modules/faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", "dev": true, "dependencies": { "websocket-driver": ">=0.5.1" @@ -2188,7 +2105,7 @@ "node_modules/figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5", @@ -2201,7 +2118,7 @@ "node_modules/file-sync-cmp": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", + "integrity": "sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA==", "dev": true }, "node_modules/fill-range": { @@ -2217,17 +2134,17 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -2247,31 +2164,18 @@ } }, "node_modules/findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", - "dev": true, - "dependencies": { - "glob": "~5.0.0" - }, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/findup-sync/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" }, "engines": { - "node": "*" + "node": ">= 10.13.0" } }, "node_modules/fined": { @@ -2299,10 +2203,19 @@ "node": ">= 0.10" } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2311,7 +2224,7 @@ "node_modules/for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", "dev": true, "dependencies": { "for-in": "^1.0.1" @@ -2320,12 +2233,6 @@ "node": ">=0.10.0" } }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -2338,7 +2245,7 @@ "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, "engines": { "node": ">= 0.6" @@ -2347,13 +2254,13 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -2365,10 +2272,13 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gaze": { "version": "1.1.3", @@ -2389,14 +2299,15 @@ "dev": true }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2405,7 +2316,7 @@ "node_modules/get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2431,22 +2342,6 @@ "once": "^1.3.1" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/getobject": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", @@ -2505,7 +2400,7 @@ "node_modules/global-prefix": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "dev": true, "dependencies": { "expand-tilde": "^2.0.2", @@ -2540,19 +2435,43 @@ } }, "node_modules/globule": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", - "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", "dev": true, "dependencies": { "glob": "~7.1.1", - "lodash": "~4.17.10", + "lodash": "^4.17.21", "minimatch": "~3.0.2" }, "engines": { "node": ">= 0.10" } }, + "node_modules/globule/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -2575,38 +2494,36 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/grunt": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.1.tgz", - "integrity": "sha512-ZXIYXTsAVrA7sM+jZxjQdrBOAg7DyMUplOMhTaspMRExei+fD0BTwdWXnn0W5SXqhb/Q/nlkzXclSi3IH55PIA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz", + "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==", "dev": true, "dependencies": { - "dateformat": "~3.0.3", + "dateformat": "~4.6.2", "eventemitter2": "~0.4.13", "exit": "~0.1.2", - "findup-sync": "~0.3.0", + "findup-sync": "~5.0.0", "glob": "~7.1.6", - "grunt-cli": "~1.4.2", + "grunt-cli": "~1.4.3", "grunt-known-options": "~2.0.0", "grunt-legacy-log": "~3.0.0", "grunt-legacy-util": "~2.0.1", - "iconv-lite": "~0.4.13", + "iconv-lite": "~0.6.3", "js-yaml": "~3.14.0", "minimatch": "~3.0.4", - "mkdirp": "~1.0.4", - "nopt": "~3.0.6", - "rimraf": "~3.0.2" + "nopt": "~3.0.6" }, "bin": { "grunt": "bin/grunt" }, "engines": { - "node": ">=8" + "node": ">=16" } }, "node_modules/grunt-browserify": { @@ -2678,15 +2595,15 @@ } }, "node_modules/grunt-concurrent/node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, "node_modules/grunt-contrib-copy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", - "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", + "integrity": "sha512-gFRFUB0ZbLcjKb67Magz1yOHGBkyU6uL29hiEW1tdQ9gQt72NuMKIy/kS6dsCbV0cZ0maNCb0s6y+uT1FKU7jA==", "dev": true, "dependencies": { "chalk": "^1.1.1", @@ -2699,7 +2616,7 @@ "node_modules/grunt-contrib-uglify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz", - "integrity": "sha1-s9AmDr3WzvoS/y+Onh4ln33kIW8=", + "integrity": "sha512-hdV6W7OwRCcYb6MJoSK8OE/D3dFJ02ykp+UMoGNBGusKxiX0TBreQ0JD/PHMsBUfCmp8vOYEbL9np90qO4bJJQ==", "dev": true, "dependencies": { "chalk": "^1.0.0", @@ -2838,27 +2755,39 @@ } }, "node_modules/grunt-legacy-util/node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, - "node_modules/grunt/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/grunt/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" + } + }, + "node_modules/grunt/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/gzip-size": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", - "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", + "integrity": "sha512-mu66twX6zg8WB6IPfUtrquS7fjwGnDJ7kdVcggd5rpjwBItQKjHtvhu6VcQMkqPYAR7DjWpEaN3xiBSNmxvzPg==", "dev": true, "dependencies": { "browserify-zlib": "^0.1.4", @@ -2874,7 +2803,7 @@ "node_modules/gzip-size/node_modules/browserify-zlib": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", "dev": true, "dependencies": { "pako": "~0.2.0" @@ -2883,17 +2812,14 @@ "node_modules/gzip-size/node_modules/pako": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", "dev": true }, "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -2901,7 +2827,7 @@ "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -2910,15 +2836,6 @@ "node": ">=0.10.0" } }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2928,10 +2845,22 @@ "node": ">=8" } }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, "engines": { "node": ">= 0.4" @@ -2940,8 +2869,20 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, @@ -2970,9 +2911,9 @@ } }, "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -2983,26 +2924,6 @@ "node": ">= 6" } }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -3013,10 +2934,22 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, "dependencies": { "hash.js": "^1.0.3", @@ -3027,7 +2960,7 @@ "node_modules/home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", "dev": true, "dependencies": { "os-homedir": "^1.0.0", @@ -3052,7 +2985,7 @@ "node_modules/hooker": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==", "dev": true, "engines": { "node": "*" @@ -3067,43 +3000,43 @@ "node_modules/htmlescape": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", "dev": true, "engines": { "node": ">=0.10" } }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true }, "node_modules/iconv-lite": { @@ -3150,7 +3083,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -3171,7 +3104,7 @@ "node_modules/inline-source-map": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", "dev": true, "dependencies": { "source-map": "~0.5.3" @@ -3198,24 +3131,10 @@ "insert-module-globals": "bin/cmd.js" } }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/interpret": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==", "dev": true }, "node_modules/invariant": { @@ -3268,21 +3187,9 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -3295,31 +3202,15 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { "node": ">= 0.4" @@ -3329,27 +3220,12 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3358,7 +3234,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3403,18 +3279,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -3424,21 +3288,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -3451,22 +3300,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -3479,56 +3312,13 @@ "node": ">=0.10.0" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -3552,21 +3342,9 @@ "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "dev": true }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -3579,19 +3357,19 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3600,7 +3378,7 @@ "node_modules/js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", "dev": true }, "node_modules/js-yaml": { @@ -3619,7 +3397,7 @@ "node_modules/jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -3628,12 +3406,12 @@ "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" }, "node_modules/json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", "dev": true, "bin": { "json5": "lib/cli.js" @@ -3642,7 +3420,7 @@ "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" @@ -3694,7 +3472,7 @@ "node_modules/layout-bmfont-text": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/layout-bmfont-text/-/layout-bmfont-text-1.3.4.tgz", - "integrity": "sha1-8g8sVGR3T0jabOipl/vObUaUW4E=", + "integrity": "sha512-mceomHZ8W7pSKQhTdLvOe1Im4n37u8xa5Gr0J3KPCHRMO/9o7+goWIOzZcUUd+Xgzy3+22bvoIQ0OaN3LRtgaw==", "dependencies": { "as-number": "^1.0.0", "word-wrapper": "^1.0.7", @@ -3704,7 +3482,7 @@ "node_modules/lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3771,7 +3549,7 @@ "node_modules/load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -3806,13 +3584,13 @@ "node_modules/lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", "dev": true }, "node_modules/longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3833,7 +3611,7 @@ "node_modules/loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", "dev": true, "dependencies": { "currently-unhandled": "^0.4.1", @@ -3866,7 +3644,7 @@ "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3875,7 +3653,7 @@ "node_modules/map-limit": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", "dependencies": { "once": "~1.3.0" } @@ -3883,7 +3661,7 @@ "node_modules/map-limit/node_modules/once": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", "dependencies": { "wrappy": "1" } @@ -3891,7 +3669,7 @@ "node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3900,7 +3678,7 @@ "node_modules/maxmin": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", - "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", + "integrity": "sha512-jypoV6wTPuz/ngkc2sDZnFvpvx14QICNKS/jK9RbkmiQQJZ4JWstIszA8iT/z9tPSF/vXQ5qtG0h65N9tiLIKA==", "dev": true, "dependencies": { "chalk": "^1.0.0", @@ -3926,7 +3704,7 @@ "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, "engines": { "node": ">= 0.6" @@ -3935,7 +3713,7 @@ "node_modules/meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", "dev": true, "dependencies": { "camelcase-keys": "^2.0.0", @@ -3956,26 +3734,26 @@ "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -4013,21 +3791,21 @@ } }, "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "dependencies": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -4050,13 +3828,13 @@ "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -4066,17 +3844,20 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -4120,7 +3901,7 @@ "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/multimatch": { @@ -4140,9 +3921,9 @@ } }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "engines": { "node": ">= 0.6" @@ -4151,7 +3932,7 @@ "node_modules/new-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz", - "integrity": "sha1-XbxjnZYerH8an7wacUbsEvKST78=" + "integrity": "sha512-K5AyFYbuHZ4e/ti52y7k18q8UHsS78FlRd85w2Fmsd6AkuLipDihPflKC0p3PN5i8II7+uHxo+CtkLiJDfmS5A==" }, "node_modules/nice-color-palettes": { "version": "3.0.0", @@ -4170,7 +3951,7 @@ "node_modules/nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", "dev": true, "dependencies": { "abbrev": "1" @@ -4211,15 +3992,15 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4235,14 +4016,14 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -4255,7 +4036,7 @@ "node_modules/object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", "dev": true, "dependencies": { "array-each": "^1.0.1", @@ -4270,7 +4051,7 @@ "node_modules/object.map": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", "dev": true, "dependencies": { "for-own": "^1.0.0", @@ -4283,7 +4064,7 @@ "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, "dependencies": { "isobject": "^3.0.1" @@ -4293,9 +4074,9 @@ } }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "dependencies": { "ee-first": "1.1.1" @@ -4307,7 +4088,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } @@ -4315,13 +4096,13 @@ "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, "node_modules/os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4330,7 +4111,7 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4349,7 +4130,7 @@ "node_modules/outpipe": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "integrity": "sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA==", "dev": true, "dependencies": { "shell-quote": "^1.4.2" @@ -4402,7 +4183,7 @@ "node_modules/pad-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-2.0.0.tgz", - "integrity": "sha1-O+vzTNpJWXISpmny/kF9ZGp8ulY=", + "integrity": "sha512-3QeQw19K48BQzUGZ9dEf/slX5Jbfy5ZeBTma2XICketO7kFNK7omF00riVcecOKN+DSiJZcK2em1eYKaVOeXKg==", "dev": true, "dependencies": { "pumpify": "^1.3.3", @@ -4422,7 +4203,7 @@ "node_modules/parents": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", "dev": true, "dependencies": { "path-platform": "~0.11.15" @@ -4444,12 +4225,12 @@ "node_modules/parse-bmfont-ascii": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", - "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==" }, "node_modules/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "dev": true, "dependencies": { "is-absolute": "^1.0.0", @@ -4463,7 +4244,7 @@ "node_modules/parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "dev": true, "dependencies": { "error-ex": "^1.2.0" @@ -4475,7 +4256,7 @@ "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4499,7 +4280,7 @@ "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, "engines": { "node": ">=4" @@ -4508,7 +4289,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4523,7 +4304,7 @@ "node_modules/path-platform": { "version": "0.11.15", "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -4532,7 +4313,7 @@ "node_modules/path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "dev": true, "dependencies": { "path-root-regex": "^0.1.0" @@ -4544,7 +4325,7 @@ "node_modules/path-root-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4553,13 +4334,13 @@ "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, "node_modules/path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -4601,7 +4382,7 @@ "node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4610,7 +4391,7 @@ "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4619,7 +4400,7 @@ "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, "dependencies": { "pinkie": "^2.0.0" @@ -4643,7 +4424,7 @@ "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", "engines": { "node": ">=4" } @@ -4651,7 +4432,7 @@ "node_modules/pretty-bytes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "integrity": "sha512-LNisJvAjy+hruxp3GV4IkZZscTI34+ISfeM1hesB9V6ezIDfXYrBi9TIXVjjMcEB4QFN7tL+dFDEk4s8jMBMyA==", "dev": true, "dependencies": { "get-stdin": "^4.0.1", @@ -4676,7 +4457,7 @@ "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -4745,14 +4526,17 @@ "node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, "node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -4763,27 +4547,17 @@ "node_modules/quad-indices": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/quad-indices/-/quad-indices-2.0.1.tgz", - "integrity": "sha1-ppQdiaE9Y+7WwdSlpiGgRjYXqBQ=", + "integrity": "sha512-6jtmCsEbGAh5npThXrBaubbTjPcF0rMbn57XCJVI7LkW8PUT56V+uIrRCCWCn85PSgJC9v8Pm5tnJDwmOBewvA==", "dependencies": { "an-array": "^1.0.0", "dtype": "^2.0.0", "is-buffer": "^1.0.2" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true, "engines": { "node": ">=0.4.x" @@ -4818,13 +4592,13 @@ } }, "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "dependencies": { - "bytes": "3.1.1", - "http-errors": "1.8.1", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -4835,7 +4609,7 @@ "node_modules/read-only-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", "dev": true, "dependencies": { "readable-stream": "^2.0.2" @@ -4844,7 +4618,7 @@ "node_modules/read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", "dev": true, "dependencies": { "load-json-file": "^1.0.0", @@ -4858,7 +4632,7 @@ "node_modules/read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", "dev": true, "dependencies": { "find-up": "^1.0.0", @@ -4871,7 +4645,7 @@ "node_modules/read-pkg-up/node_modules/find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", "dev": true, "dependencies": { "path-exists": "^2.0.0", @@ -4884,7 +4658,7 @@ "node_modules/read-pkg-up/node_modules/path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", "dev": true, "dependencies": { "pinkie-promise": "^2.0.0" @@ -4894,9 +4668,9 @@ } }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -4908,6 +4682,12 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/readable-stream/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -4944,7 +4724,7 @@ "node_modules/redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", "dev": true, "dependencies": { "indent-string": "^2.1.0", @@ -4957,7 +4737,7 @@ "node_modules/redent/node_modules/indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", "dev": true, "dependencies": { "repeating": "^2.0.0" @@ -4992,7 +4772,7 @@ "node_modules/regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "integrity": "sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==", "dev": true, "dependencies": { "regenerate": "^1.2.1", @@ -5003,13 +4783,13 @@ "node_modules/regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "integrity": "sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==", "dev": true }, "node_modules/regjsparser": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "integrity": "sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -5021,7 +4801,7 @@ "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -5030,7 +4810,7 @@ "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, "engines": { "node": ">=0.10" @@ -5039,7 +4819,7 @@ "node_modules/repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", "dev": true, "dependencies": { "is-finite": "^1.0.0" @@ -5049,12 +4829,12 @@ } }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -5068,7 +4848,7 @@ "node_modules/resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, "dependencies": { "expand-tilde": "^2.0.0", @@ -5102,7 +4882,7 @@ "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", "dependencies": { "lowercase-keys": "^1.0.0" } @@ -5110,7 +4890,7 @@ "node_modules/right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", "dev": true, "dependencies": { "align-text": "^0.1.1" @@ -5119,21 +4899,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -5145,15 +4910,29 @@ } }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/safe-json-parse": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", - "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "integrity": "sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==", "dev": true }, "node_modules/safer-buffer": { @@ -5163,33 +4942,33 @@ "dev": true }, "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" @@ -5202,20 +4981,36 @@ "dev": true }, "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -5245,10 +5040,13 @@ } }, "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/side-channel": { "version": "1.0.4", @@ -5265,9 +5063,9 @@ } }, "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/simple-concat": { @@ -5293,7 +5091,7 @@ "node_modules/slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5302,7 +5100,7 @@ "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5318,9 +5116,9 @@ } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -5344,9 +5142,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/split2": { @@ -5361,16 +5159,16 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/stream-browserify": { @@ -5384,9 +5182,9 @@ } }, "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -5400,7 +5198,7 @@ "node_modules/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, "dependencies": { "duplexer2": "~0.1.0", @@ -5420,9 +5218,9 @@ } }, "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -5434,9 +5232,9 @@ } }, "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", "dev": true }, "node_modules/stream-splicer": { @@ -5458,62 +5256,16 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", - "dev": true - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", + "dev": true + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -5525,7 +5277,7 @@ "node_modules/strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, "dependencies": { "is-utf8": "^0.2.0" @@ -5537,7 +5289,7 @@ "node_modules/strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", "dev": true, "dependencies": { "get-stdin": "^4.0.1" @@ -5552,7 +5304,7 @@ "node_modules/subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", "dev": true, "dependencies": { "minimist": "^1.1.0" @@ -5561,7 +5313,7 @@ "node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, "engines": { "node": ">=0.8.0" @@ -5604,7 +5356,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/through2": { @@ -5620,7 +5372,7 @@ "node_modules/timers-browserify": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", "dev": true, "dependencies": { "process": "~0.11.0" @@ -5661,7 +5413,7 @@ "node_modules/to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5699,7 +5451,7 @@ "node_modules/trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5708,7 +5460,7 @@ "node_modules/trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5736,13 +5488,13 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "node_modules/uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", "dev": true, "dependencies": { "source-map": "~0.5.1", @@ -5761,7 +5513,7 @@ "node_modules/uglify-to-browserify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", "dev": true, "optional": true }, @@ -5774,25 +5526,10 @@ "umd": "bin/cli.js" } }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -5828,15 +5565,15 @@ } }, "node_modules/underscore.string/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "engines": { "node": ">= 0.8" @@ -5845,26 +5582,26 @@ "node_modules/uri-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", - "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", + "integrity": "sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dev": true, "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "punycode": "^1.4.1", + "qs": "^6.11.2" } }, "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", "dependencies": { "prepend-http": "^2.0.0" }, @@ -5872,36 +5609,44 @@ "node": ">=4" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true + "node_modules/url/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", "which-typed-array": "^1.1.2" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, "engines": { "node": ">= 0.4.0" @@ -5932,7 +5677,7 @@ "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, "engines": { "node": ">= 0.8" @@ -5966,9 +5711,9 @@ } }, "node_modules/watchify/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -6026,34 +5771,17 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6065,7 +5793,7 @@ "node_modules/window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -6074,12 +5802,12 @@ "node_modules/word-wrapper": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/word-wrapper/-/word-wrapper-1.0.7.tgz", - "integrity": "sha1-HxSv6/Zt/fD+9V79NxhO+9CMKLY=" + "integrity": "sha512-VOPBFCm9b6FyYKQYfn9AVn2dQvdR/YOVFV6IBRA1TBMJWKffvhEX1af6FMGrttILs2Q9ikCRhLqkbY2weW6dOQ==" }, "node_modules/wordwrap": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==", "dev": true, "engines": { "node": ">=0.4.0" @@ -6088,7 +5816,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/xtend": { "version": "4.0.2", @@ -6101,7 +5829,7 @@ "node_modules/yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", "dev": true, "dependencies": { "camelcase": "^1.0.2", @@ -6113,4992 +5841,11 @@ "node_modules/yargs/node_modules/camelcase": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==", "dev": true, "engines": { "node": ">=0.10.0" } } - }, - "dependencies": { - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "an-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/an-array/-/an-array-1.0.0.tgz", - "integrity": "sha1-wSWlu4JXd4419LT2qpx9D6nkJmU=" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "array-shuffle": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-1.0.1.tgz", - "integrity": "sha1-fqSIKjVrS8pfVF4LblLq9tlxVXo=" - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - }, - "as-number": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/as-number/-/as-number-1.0.0.tgz", - "integrity": "sha1-rLJ+NPj52KsNqeN287iVmGD4CmY=" - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babelify": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", - "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", - "dev": true, - "requires": { - "babel-core": "^6.0.14", - "object-assign": "^4.0.0" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "body": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", - "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", - "dev": true, - "requires": { - "continuable-cache": "^0.3.1", - "error": "^7.0.0", - "raw-body": "~1.1.0", - "safe-json-parse": "~1.0.1" - }, - "dependencies": { - "bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", - "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", - "dev": true - }, - "raw-body": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", - "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", - "dev": true, - "requires": { - "bytes": "1", - "string_decoder": "0.10" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "dev": true, - "requires": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "requires": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - } - }, - "browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "requires": { - "resolve": "^1.17.0" - } - }, - "browserify": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", - "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", - "dev": true, - "requires": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.1", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^3.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.2.1", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "^1.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum-object": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^3.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.12.0", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cache-api": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz", - "integrity": "sha1-liR+hT8Gj9bg1FzHPwuyzZd47wI=", - "dev": true, - "requires": { - "async": "^1.5.2", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-incremental": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz", - "integrity": "sha1-BxPLdYckemMqnwjPG9FpuHi2Koo=", - "dev": true, - "requires": { - "browserify-cache-api": "^3.0.0", - "JSONStream": "^0.10.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "jsonparse": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz", - "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", - "dev": true - }, - "JSONStream": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz", - "integrity": "sha1-dDSdDYlSK3HzDwoD/5vSDKbxKsA=", - "dev": true, - "requires": { - "jsonparse": "0.0.5", - "through": ">=2.2.7 <3" - } - } - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "cached-path-relative": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "continuable-cache": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", - "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - } - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dev": true, - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "dtype": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=" - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", - "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", - "dev": true, - "requires": { - "string-template": "~0.2.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "file-sync-cmp": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", - "dev": true, - "requires": { - "glob": "~5.0.0" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - }, - "dependencies": { - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getobject": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz", - "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==", - "dev": true - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "globule": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz", - "integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true - }, - "grunt": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.1.tgz", - "integrity": "sha512-ZXIYXTsAVrA7sM+jZxjQdrBOAg7DyMUplOMhTaspMRExei+fD0BTwdWXnn0W5SXqhb/Q/nlkzXclSi3IH55PIA==", - "dev": true, - "requires": { - "dateformat": "~3.0.3", - "eventemitter2": "~0.4.13", - "exit": "~0.1.2", - "findup-sync": "~0.3.0", - "glob": "~7.1.6", - "grunt-cli": "~1.4.2", - "grunt-known-options": "~2.0.0", - "grunt-legacy-log": "~3.0.0", - "grunt-legacy-util": "~2.0.1", - "iconv-lite": "~0.4.13", - "js-yaml": "~3.14.0", - "minimatch": "~3.0.4", - "mkdirp": "~1.0.4", - "nopt": "~3.0.6", - "rimraf": "~3.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - } - } - }, - "grunt-browserify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/grunt-browserify/-/grunt-browserify-6.0.0.tgz", - "integrity": "sha512-m130pTVFEsxQZ+dJQd287TrnUI5VvEKJ+MmPjMF/7bVJBTBRWhJlYVFgBOYLZMUykfk1RWXfQ2sAQu5NuXumvg==", - "dev": true, - "requires": { - "async": "^2.5.0", - "browserify": "^17.0.0", - "browserify-incremental": "^3.1.1", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "resolve": "^1.1.6", - "watchify": "^4.0.0" - } - }, - "grunt-cli": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", - "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==", - "dev": true, - "requires": { - "grunt-known-options": "~2.0.0", - "interpret": "~1.1.0", - "liftup": "~3.0.1", - "nopt": "~4.0.1", - "v8flags": "~3.2.0" - }, - "dependencies": { - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - } - } - }, - "grunt-concurrent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-3.0.0.tgz", - "integrity": "sha512-AgXtjUJESHEGeGX8neL3nmXBTHSj1QC48ABQ3ng2/vjuSBpDD8gKcVHSlXP71pFkIR8TQHf+eomOx6OSYSgfrA==", - "dev": true, - "requires": { - "arrify": "^2.0.1", - "async": "^3.1.0", - "indent-string": "^4.0.0", - "pad-stream": "^2.0.0" - }, - "dependencies": { - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", - "dev": true - } - } - }, - "grunt-contrib-copy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", - "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "file-sync-cmp": "^0.1.0" - } - }, - "grunt-contrib-uglify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz", - "integrity": "sha1-s9AmDr3WzvoS/y+Onh4ln33kIW8=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "maxmin": "^1.1.0", - "object.assign": "^4.0.4", - "uglify-js": "~2.8.21", - "uri-path": "^1.0.0" - } - }, - "grunt-contrib-watch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", - "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", - "dev": true, - "requires": { - "async": "^2.6.0", - "gaze": "^1.1.0", - "lodash": "^4.17.10", - "tiny-lr": "^1.1.1" - } - }, - "grunt-express-server": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/grunt-express-server/-/grunt-express-server-0.5.4.tgz", - "integrity": "sha512-Q9sTDOwxC46uviL1/LSXFflTMv+/WnwANtzxD7hwnEXaej79LS1AUZlWc/O5P+CWjKG69/1xJFn+CVP94fOQ6Q==", - "dev": true, - "requires": {} - }, - "grunt-known-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz", - "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==", - "dev": true - }, - "grunt-legacy-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", - "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", - "dev": true, - "requires": { - "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.1.0", - "hooker": "~0.2.3", - "lodash": "~4.17.19" - } - }, - "grunt-legacy-log-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", - "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", - "dev": true, - "requires": { - "chalk": "~4.1.0", - "lodash": "~4.17.19" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "grunt-legacy-util": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", - "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", - "dev": true, - "requires": { - "async": "~3.2.0", - "exit": "~0.1.2", - "getobject": "~1.0.0", - "hooker": "~0.2.3", - "lodash": "~4.17.21", - "underscore.string": "~3.3.5", - "which": "~2.0.2" - }, - "dependencies": { - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", - "dev": true - } - } - }, - "gzip-size": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", - "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", - "dev": true, - "requires": { - "browserify-zlib": "^0.1.4", - "concat-stream": "^1.4.1" - }, - "dependencies": { - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true, - "requires": { - "pako": "~0.2.0" - } - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "~0.5.3" - } - }, - "insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", - "dev": true, - "requires": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - } - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" - } - }, - "layout-bmfont-text": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/layout-bmfont-text/-/layout-bmfont-text-1.3.4.tgz", - "integrity": "sha1-8g8sVGR3T0jabOipl/vObUaUW4E=", - "requires": { - "as-number": "^1.0.0", - "word-wrapper": "^1.0.7", - "xtend": "^4.0.0" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "liftup": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", - "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", - "dev": true, - "requires": { - "extend": "^3.0.2", - "findup-sync": "^4.0.0", - "fined": "^1.2.0", - "flagged-respawn": "^1.0.1", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.1", - "rechoir": "^0.7.0", - "resolve": "^1.19.0" - }, - "dependencies": { - "findup-sync": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" - } - } - } - }, - "livereload-js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", - "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", - "dev": true - }, - "load-grunt-tasks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-5.1.0.tgz", - "integrity": "sha512-oNj0Jlka1TsfDe+9He0kcA1cRln+TMoTsEByW7ij6kyktNLxBKJtslCFEvFrLC2Dj0S19IWJh3fOCIjLby2Xrg==", - "dev": true, - "requires": { - "arrify": "^2.0.1", - "multimatch": "^4.0.0", - "pkg-up": "^3.1.0", - "resolve-pkg": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", - "requires": { - "once": "~1.3.0" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1" - } - } - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "maxmin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", - "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "figures": "^1.0.1", - "gzip-size": "^1.0.0", - "pretty-bytes": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", - "dev": true, - "requires": { - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "new-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/new-array/-/new-array-1.0.0.tgz", - "integrity": "sha1-XbxjnZYerH8an7wacUbsEvKST78=" - }, - "nice-color-palettes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-3.0.0.tgz", - "integrity": "sha512-lL4AjabAAFi313tjrtmgm/bxCRzp4l3vCshojfV/ij3IPdtnRqv6Chcw+SqJUhbe7g3o3BecaqCJYUNLswGBhQ==", - "requires": { - "got": "^9.2.2", - "map-limit": "0.0.1", - "minimist": "^1.2.0", - "new-array": "^1.0.0" - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "outpipe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", - "dev": true, - "requires": { - "shell-quote": "^1.4.2" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pad-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-2.0.0.tgz", - "integrity": "sha1-O+vzTNpJWXISpmny/kF9ZGp8ulY=", - "dev": true, - "requires": { - "pumpify": "^1.3.3", - "split2": "^2.1.1", - "through2": "^2.0.0" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "requires": { - "path-platform": "~0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-bmfont-ascii": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", - "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true - }, - "quad-indices": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/quad-indices/-/quad-indices-2.0.1.tgz", - "integrity": "sha1-ppQdiaE9Y+7WwdSlpiGgRjYXqBQ=", - "requires": { - "an-array": "^1.0.0", - "dtype": "^2.0.0", - "is-buffer": "^1.0.2" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "dev": true, - "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "dependencies": { - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - } - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-2.0.0.tgz", - "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-json-parse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", - "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", - "dev": true, - "requires": { - "fast-safe-stringify": "^2.0.7" - } - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", - "dev": true - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "split2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", - "dev": true, - "requires": { - "through2": "^2.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "requires": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", - "dev": true - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "requires": { - "minimist": "^1.1.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "requires": { - "acorn-node": "^1.2.0" - } - }, - "three-bmfont-text": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/three-bmfont-text/-/three-bmfont-text-3.0.1.tgz", - "integrity": "sha512-4hZwlXS5fltuvOGGXWReXatykhuU7CXociiMugqR2l/KieaqF2XHvleO3A2iCVQDrvt3NJtsFht+tr//+r7KNQ==", - "requires": { - "array-shuffle": "^1.0.1", - "inherits": "^2.0.1", - "layout-bmfont-text": "^1.2.0", - "nice-color-palettes": "^3.0.0", - "object-assign": "^4.0.1", - "quad-indices": "^2.0.1" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "requires": { - "process": "~0.11.0" - } - }, - "tiny-lr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", - "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", - "dev": true, - "requires": { - "body": "^5.1.0", - "debug": "^3.1.0", - "faye-websocket": "~0.10.0", - "livereload-js": "^2.3.0", - "object-assign": "^4.1.0", - "qs": "^6.4.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "requires": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "underscore.string": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", - "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", - "dev": true, - "requires": { - "sprintf-js": "^1.1.1", - "util-deprecate": "^1.0.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true - } - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "uri-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", - "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "watchify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", - "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", - "dev": true, - "requires": { - "anymatch": "^3.1.0", - "browserify": "^17.0.0", - "chokidar": "^3.4.0", - "defined": "^1.0.0", - "outpipe": "^1.1.0", - "through2": "^4.0.2", - "xtend": "^4.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - } - } - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "word-wrapper": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/word-wrapper/-/word-wrapper-1.0.7.tgz", - "integrity": "sha1-HxSv6/Zt/fD+9V79NxhO+9CMKLY=" - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - } - } - } } } From 67a7b21a914387ab0031cadbe605ea71fbdf4d09 Mon Sep 17 00:00:00 2001 From: sjpt Date: Tue, 30 Jan 2024 09:57:11 +0000 Subject: [PATCH 18/24] fix colourpicker bug --- modules/datguivr/colorpicker.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/datguivr/colorpicker.js b/modules/datguivr/colorpicker.js index 3bb6f44..42ca7de 100644 --- a/modules/datguivr/colorpicker.js +++ b/modules/datguivr/colorpicker.js @@ -50,7 +50,7 @@ void main() { float d = length(selectedHSV.yz - vUv); if (d < 0.015 && d > 0.01) hsv.z = 0.; gl_FragColor.rgb = hsv2rgb(hsv); - gl_FragColor.w = 1.; + gl_FragColor.w = 1.0; // sjpt } `; @@ -66,7 +66,7 @@ void main() { bool indicator = dist < 0.01 && dist > 0.005; float v = indicator ? 0. : 1.; gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v)); - gl_FragColor.w = 1.; + gl_FragColor.w = 1.0; // sjpt } `; From e621374f282fd3eef95ee7786b404eb7d43fa3da Mon Sep 17 00:00:00 2001 From: sjpt Date: Fri, 2 Feb 2024 20:20:26 +0000 Subject: [PATCH 19/24] windows buils built to match Organic changes, three revision 151 SubdivisionModifier used more consistently --- build/datguivr.js | 78 +++++++++++++---------- build/datguivr.map | 2 +- build/datguivr.min.js | 8 +-- modules/datguivr/imagebutton.js | 2 +- modules/datguivr/sdfshader_logdepth.js | 7 +- modules/datguivr/sharedmaterials.js | 3 +- modules/thirdparty/SubdivisionModifier.js | 2 +- package.json | 3 +- 8 files changed, 63 insertions(+), 42 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index aa93d70..82028f1 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -511,13 +511,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de /** * This should look like an imagebutton with a solid color MeshBasicMaterial * When pressed it could bring up some kind of picker depending on configuration. - * + * * For now, just going with RGB sliders as I shouldn't spend too long on this ATM, - * but very tempted by prospect of an HS square with V slider... + * but very tempted by prospect of an HS square with V slider... * or H slider and SV square which seems to be what dat.gui uses. * Or something fancier like a hue circle around an SV triangle etc etc. - * - * + * + * * Peter Todd 2017 */ @@ -525,15 +525,15 @@ var hsv2rgb = '\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / var VertShader = '\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n'; -var SVFragShader = '\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n' + hsv2rgb + '\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n}\n'; +var SVFragShader = '\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n' + hsv2rgb + '\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n gl_FragColor.w = 1.0; // sjpt\n}\n'; -var HSliderFragShader = '\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n' + hsv2rgb + '\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n \n}\n'; +var HSliderFragShader = '\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n' + hsv2rgb + '\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n gl_FragColor.w = 1.0; // sjpt\n}\n'; // http://stackoverflow.com/questions/17242144/javascript-convert-hsb-hsv-color-to-rgb-accurately //why not use THREE.Color methods? /* accepts parameters * h Object = {h:x, s:y, v:z} - * OR + * OR * h, s, v */ function HSVtoRGB(h, s, v) { @@ -569,7 +569,7 @@ function HSVtoRGB(h, s, v) { } /* accepts parameters * r Object = {r, g, b} - * OR + * OR * r, g, b */ function RGBtoHSV(r, g, b) { @@ -2619,7 +2619,7 @@ function createImageButton() { var aspectRatio = BUTTON_WIDTH / BUTTON_HEIGHT; var rect = new THREE.PlaneGeometry(BUTTON_WIDTH, BUTTON_HEIGHT, 1, 1); var modifier = new THREE.SubdivisionModifier(1); - //modifier.modify( rect ); + modifier.modify(rect); // reallowed sjpt rect.translate(BUTTON_WIDTH * 0.5, 0, BUTTON_DEPTH); // hitscan volume @@ -3295,7 +3295,8 @@ var GUIVR = function DATGUIVR() { window.addEventListener('mousedown', function (event) { if (input.intersections.length > 0) { // prevent mouse down from triggering other listeners (polyfill, etc) - event.stopImmediatePropagation(); + // commented out 28 April 2022, generally pretty bad practice + // event.stopImmediatePropagation(); } input.pressed = true; //sometimes we care about the mouse being pressed, even on background //will be set false at end of first update. Shouldn't be necessary to add a new property... @@ -4600,7 +4601,13 @@ var assign = require('object-assign'); */ var meshbasic_vert = '\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n'; -var meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; +var /*sjpt was const */meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; + +if (+THREE.REVISION > 151 || searchValues.threever === 'three157') { + // sjpt patch + meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; + console.warn('colorspace_fragment used'); +} module.exports = function createSDFShader(opt) { opt = opt || {}; @@ -4810,24 +4817,25 @@ var Colors = _interopRequireWildcard(_colors); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } -var PANEL = exports.PANEL = new THREE.MeshBasicMaterial({ color: 0xffffff, vertexColors: THREE.VertexColors }); /** - * dat-guiVR Javascript Controller Library for VR - * https://github.com/dataarts/dat.guiVR - * - * Copyright 2016 Data Arts Team, Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// sjpt export const PANEL = new THREE.MeshBasicMaterial( { color: 0xffffff, vertexColors: THREE.VertexColors } ); +var PANEL = exports.PANEL = new THREE.MeshBasicMaterial({ color: 0xffffff, vertexColors: true }); /** + * dat-guiVR Javascript Controller Library for VR + * https://github.com/dataarts/dat.guiVR + * + * Copyright 2016 Data Arts Team, Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ var LOCATOR = exports.LOCATOR = new THREE.MeshBasicMaterial(); var FOLDER = exports.FOLDER = new THREE.MeshBasicMaterial({ color: 0x000000 }); @@ -5728,7 +5736,7 @@ THREE.SubdivisionModifier.prototype.modify = function (geometry) { this.smooth(geometry); } - geometry.computeFaceNormals(); + //sjpt, no longer there ... geometry.computeFaceNormals(); geometry.computeVertexNormals(); }; @@ -7211,7 +7219,13 @@ module.exports = function createTextGeometry (opt) { } function TextGeometry (opt) { - Base.call(this) + //// sjpt patch for three142, THREE.BufferGeometry is a class + if (+THREE.REVISION < 142) { + Base.call(this); + } else { + const zzz = new Base(); //PJT: classic sjpt variable naming � + Object.assign(this, zzz); + } if (typeof opt === 'string') { opt = { text: opt } @@ -7589,4 +7603,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqIFxyXG4gKiBGb3Igbm93LCBqdXN0IGdvaW5nIHdpdGggUkdCIHNsaWRlcnMgYXMgSSBzaG91bGRuJ3Qgc3BlbmQgdG9vIGxvbmcgb24gdGhpcyBBVE0sXHJcbiAqIGJ1dCB2ZXJ5IHRlbXB0ZWQgYnkgcHJvc3BlY3Qgb2YgYW4gSFMgc3F1YXJlIHdpdGggViBzbGlkZXIuLi4gXHJcbiAqIG9yIEggc2xpZGVyIGFuZCBTViBzcXVhcmUgd2hpY2ggc2VlbXMgdG8gYmUgd2hhdCBkYXQuZ3VpIHVzZXMuXHJcbiAqIE9yIHNvbWV0aGluZyBmYW5jaWVyIGxpa2UgYSBodWUgY2lyY2xlIGFyb3VuZCBhbiBTViB0cmlhbmdsZSBldGMgZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuLy9zbmlwcGV0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2h1Z2hzay9nbHNsLWhzdjJyZ2IvYmxvYi9tYXN0ZXIvaW5kZXguZ2xzbFxyXG4vLyhub3QgZ29pbmcgdG8gdGhlIGxlbmd0aHMgb2YgZ2xzbGlmeSwganVzdCBjb3B5aW5nIHRoZSBmdW5jdGlvbilcclxuY29uc3QgaHN2MnJnYiA9IGBcclxudmVjMyBoc3YycmdiKHZlYzMgYykge1xyXG4gICAgdmVjNCBLID0gdmVjNCgxLjAsIDIuMCAvIDMuMCwgMS4wIC8gMy4wLCAzLjApO1xyXG4gICAgdmVjMyBwID0gYWJzKGZyYWN0KGMueHh4ICsgSy54eXopICogNi4wIC0gSy53d3cpO1xyXG4gICAgcmV0dXJuIGMueiAqIG1peChLLnh4eCwgY2xhbXAocCAtIEsueHh4LCAwLjAsIDEuMCksIGMueSk7XHJcbn1gO1xyXG5cclxuY29uc3QgVmVydFNoYWRlciA9IGBcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZVdiA9IHV2O1xyXG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4pO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBTVkZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdmVjMyBoc3YgPSB2ZWMzKHNlbGVjdGVkSFNWLngsIHZVdik7XHJcblxyXG4gICAgLy8gZHJhdyBhIGJsYWNrIGNpcmNsZSBhcm91bmQgc2VsZWN0ZWQgU1YuXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIGxlc3MgaG91c2VrZWVwaW5nXHJcbiAgICAvLyBuZWVkIHRvIGtub3cgYXNwZWN0IHJhdGlvIGlmIEkgd2FudCBpdCB0byBiZSBhIHByb3BlciBjaXJjbGUsIHRob3VnaC5cclxuICAgIGZsb2F0IGQgPSBsZW5ndGgoc2VsZWN0ZWRIU1YueXogLSB2VXYpO1xyXG4gICAgaWYgKGQgPCAwLjAxNSAmJiBkID4gMC4wMSkgaHN2LnogPSAwLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKGhzdik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBcclxufVxyXG5gO1xyXG5cclxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNzI0MjE0NC9qYXZhc2NyaXB0LWNvbnZlcnQtaHNiLWhzdi1jb2xvci10by1yZ2ItYWNjdXJhdGVseVxyXG4vL3doeSBub3QgdXNlIFRIUkVFLkNvbG9yIG1ldGhvZHM/XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiBoICBPYmplY3QgPSB7aDp4LCBzOnksIHY6en1cclxuICogT1IgXHJcbiAqIGgsIHMsIHZcclxuKi9cclxuZnVuY3Rpb24gSFNWdG9SR0IoaCwgcywgdikge1xyXG4gICAgdmFyIHIsIGcsIGIsIGksIGYsIHAsIHEsIHQ7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIC8vaGFjayB0byB0YWtlIFRIUkVFLlZlY3RvcjMuLi5cclxuICAgICAgICBpZiAoaC54ICE9PSB1bmRlZmluZWQpIHMgPSBoLnksIHYgPSBoLnosIGggPSBoLng7XHJcbiAgICAgICAgZWxzZSBzID0gaC5zLCB2ID0gaC52LCBoID0gaC5oO1xyXG4gICAgfVxyXG4gICAgaSA9IE1hdGguZmxvb3IoaCAqIDYpO1xyXG4gICAgZiA9IGggKiA2IC0gaTtcclxuICAgIHAgPSB2ICogKDEgLSBzKTtcclxuICAgIHEgPSB2ICogKDEgLSBmICogcyk7XHJcbiAgICB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpO1xyXG4gICAgc3dpdGNoIChpICUgNikge1xyXG4gICAgICAgIGNhc2UgMDogciA9IHYsIGcgPSB0LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxOiByID0gcSwgZyA9IHYsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDI6IHIgPSBwLCBnID0gdiwgYiA9IHQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMzogciA9IHAsIGcgPSBxLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0OiByID0gdCwgZyA9IHAsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDU6IHIgPSB2LCBnID0gcCwgYiA9IHE7IGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByOiByLFxyXG4gICAgICAgIGc6IGcsXHJcbiAgICAgICAgYjogYlxyXG4gICAgfTtcclxufVxyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogciAgT2JqZWN0ID0ge3IsIGcsIGJ9XHJcbiAqIE9SIFxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LCBcclxuICAgICAgICB4OiBoLCB5OiBzLCB6OiB2IC8vc28gdGhhdCB3ZSBjYW4gZG8gVmVjdG9yMy5jb3B5KHRoaXMpXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDb2xvclBpY2tlcigge1xyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lLCAvL211c3QgYmUgYSBUSFJFRS5Db2xvciBmb3Igbm93Li4uIHNob3VsZCByZWZlciB0byBvcmlnaW5hbCBkYXQuZ3VpIHRvIHNlZSB3aGF0IGl0IHRha2VzXHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIIC8gMy5cclxufSA9IHt9KSB7XHJcbiAgICAvLyBtYWtlIHRoZSBtYWluIGdyb3VwIGJlICpkaXJlY3RseSogdGhlIG9uZSByZXR1cm5lZCBieSBjcmVhdGVJbWFnZUJ1dHRvbjtcclxuICAgIC8vIHdlJ2xsIHRha2UgY2FyZSBvZiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIGNoaWxkcmVuIGJhc2VkIG9uIGF0dGFjaGVkLi4uXHJcbiAgICAvLyB3aWxsIHdhbnQgdG8gdGhpbmsgYWJvdXQgbGlzdGVuZXIgZnVuY3Rpb25zIGV0Yy5cclxuICAgIGxldCBmdW5jID0gdG9nZ2xlRGV0YWlsUGFuZWw7XHJcbiAgICBsZXQgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTsgLy9mb3Igbm93LCB0aGlzJ2QgYmV0dGVyIGJlIGEgVEhSRUUuQ29sb3Igb3Igd2UnbGwgZnJlYWsgb3V0LlxyXG4gICAgY29uc3QgYyA9IFJHQnRvSFNWKGNvbG9yKTtcclxuICAgIGNvbnN0IHVuaWZvcm1zID0ge3NlbGVjdGVkSFNWOiB7dmFsdWU6IG5ldyBUSFJFRS5WZWN0b3IzKGMuaCwgYy5zLCBjLnYpfX07XHJcbiAgICBjb25zdCBpbWFnZSA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IGNvbG9yfSk7XHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgY29uc3QgY2hhbmdlQ29sb3JPbkhvdmVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICBsaXN0ZW46IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgLy9UT0RPIG1ha2Ugc3VyZSBjb2xvciBwYXRjaCBvY2N1cGllcyBmdWxsIHdpZHRoLiAgQWRkIHRleHQgbGFiZWwgd2l0aCBoZXggdmFsdWU/XHJcbiAgICBjb25zdCBncm91cCA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgICB0ZXh0Q3JlYXRvciwgZnVuYywgaW1hZ2UsIHByb3BlcnR5TmFtZSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGNoYW5nZUNvbG9yT25Ib3ZlclxyXG4gICAgfSk7XHJcbiAgICBncm91cC5ndWlUeXBlID0gXCJDb2xvclBpY2tlclwiO1xyXG4gICAgXHJcbiAgICB2YXIgcGFuZWw7XHJcblxyXG4gICAgZnVuY3Rpb24gY2hhbmdlRm4oKSB7XHJcbiAgICAgICAgaW1hZ2UuY29sb3Iuc2V0KGNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTsgXHJcbiAgICAgICAgICAgIHBhbmVsLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmIChmYW5jeVBhbmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBTVk1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBTVkZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0U1YgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnkgPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS56ID0gcC5sb2NhbFBvaW50Lnk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS5jb3B5KFJHQnRvSFNWKGNvbG9yKSk7XHJcbiAgICB9XHJcbiAgICBncm91cC5saXN0ZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xPUiA9IDB4MkZBMUQ2O1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0NPTE9SID0gMHg0M2I1ZWE7XHJcbmV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9DT0xPUiA9IDB4MDdBQkY3O1xyXG5leHBvcnQgY29uc3QgRU1JU1NJVkVfQ09MT1IgPSAweDIyMjIyMjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9FTUlTU0lWRV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgT1VUTElORV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQUNLID0gMHgwNjA2MDY7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPTERFUl9CQUNLID0gMHgxMDEwMTA7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQkFDSyA9IDB4MzEzMTMxO1xyXG5leHBvcnQgY29uc3QgSU5BQ1RJVkVfQ09MT1IgPSAweDE2MTgyOTtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfU0xJREVSID0gMHgyZmExZDY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0NIRUNLQk9YID0gMHg4MDY3ODc7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0JVVFRPTiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9URVhUID0gMHgxZWQzNmY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RST1BET1dOID0gMHhmZmYwMDA7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fRkdfQ09MT1IgPSAweDAwMDAwMDtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fQ09MT1IgPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ISUdITElHSFRfQ09MT1IgPSAweGZhMzE3MztcclxuZXhwb3J0IGNvbnN0IFNMSURFUl9CRyA9IDB4NDQ0NDQ0O1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9CRyA9IDB4RjBGMEYwO1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9ISUdITElHSFRfQkcgPSAweEZGRkZGRjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xvcml6ZUdlb21ldHJ5KCBnZW9tZXRyeSwgY29sb3IgKXtcclxuICBjb25zdCBjb2wgPSBuZXcgVEhSRUUuQ29sb3IoY29sb3IpOyBcclxuICBsZXQgYyA9IGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgnY29sb3InKTtcclxuICBsZXQgYTtcclxuICBpZiAoIWMpIHtcclxuICAgIGEgPSBuZXcgRmxvYXQzMkFycmF5KGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheS5sZW5ndGgpLmZpbGwoMC41KTtcclxuICAgIGMgPSBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoJ2NvbG9yJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShhLCAzKSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGEgPSBjLmFycmF5O1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKz0zKSB7XHJcbiAgICBhW2ldID0gY29sLnI7XHJcbiAgICBhW2krMV0gPSBjb2wuZztcclxuICAgIGFbaSsyXSA9IGNvbC5iO1xyXG4gIH1cclxuICBjLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgLy8gZ2VvbWV0cnkuZmFjZXMuZm9yRWFjaCggZnVuY3Rpb24oZmFjZSl7XHJcbiAgLy8gICBmYWNlLmNvbG9yLnNldEhleChjb2xvcik7XHJcbiAgLy8gfSk7XHJcbiAgLy8gZ2VvbWV0cnkuY29sb3JzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgcmV0dXJuIGdlb21ldHJ5O1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwsIHtjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZURyb3Bkb3duKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIG9wdGlvbnMgPSBbXSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBvcGVuOiBmYWxzZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG5cclxuICBjb25zdCBEUk9QRE9XTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0RFUFRIID0gZGVwdGg7XHJcbiAgY29uc3QgRFJPUERPV05fT1BUSU9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU4gKiAxLjI7XHJcbiAgY29uc3QgRFJPUERPV05fTUFSR0lOID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIC0wLjQ7XHJcbiAgY29uc3QgTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJkcm9wZG93blwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgLy9hbGxvdyBmb3IgcHJvZ3JhbW1hdGljIHNldC4gQVBJIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBzdGFibGUuXHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlT2JqZWN0ID0gb2JqZWN0O1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZVByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTtcclxuICBncm91cC51c2VyRGF0YS5zZXRWYWx1ZSA9IHYgPT4ge1xyXG4gICAgaWYgKG9wdGlvbnMuaW5kZXhPZih2KSA9PT0gLTEpIHtcclxuICAgICAgLy9JIGNvdWxkIGNvbnNpZGVyIGFubm90YXRpbmcgR1VJIGl0c2VsZiB3aXRoIGVycm9yIGxhYmVscy4uLlxyXG4gICAgICBjb25zb2xlLndhcm4oYGRhdC5HVUlWUjogVW5rbm93biBvcHRpb24gXCIke3Z9XCIgZm9yIGRyb3Bkb3duIFwiJHtwcm9wZXJ0eU5hbWV9XCIuXFxuVmFsaWQgb3B0aW9uczogWyR7b3B0aW9ucy5qb2luKCcsICcpfV1gKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSB2O1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihvYmplY3RbcHJvcGVydHlOYW1lXSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IG1vZGFsRHJvcGRvd24gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBtb2RhbERyb3Bkb3duLnZpc2libGUgPSBmYWxzZTtcclxuICBtb2RhbERyb3Bkb3duLmhpdHNjYW4gPSBbXTtcclxuICBjb25zdCBsYWJlbEludGVyYWN0aW9ucyA9IFtdO1xyXG4gIGNvbnN0IG9wdGlvbkxhYmVscyA9IFtdO1xyXG5cclxuICAvLyAgZmluZCBhY3R1YWxseSB3aGljaCBsYWJlbCBpcyBzZWxlY3RlZFxyXG4gIGNvbnN0IGluaXRpYWxMYWJlbCA9IGZpbmRMYWJlbEZyb21Qcm9wKCk7XHJcblxyXG5cclxuXHJcbiAgZnVuY3Rpb24gZmluZExhYmVsRnJvbVByb3AoKXtcclxuICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgcmV0dXJuIG9wdGlvbnMuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb3B0aW9uTmFtZSA9PT0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvYmplY3RbcHJvcGVydHlOYW1lXSA9PT0gb3B0aW9uc1sgb3B0aW9uTmFtZSBdO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9wdGlvbiggbGFiZWxUZXh0LCBpc09wdGlvbiApe1xyXG4gICAgLy9UT0RPOiB0cnVuY2F0ZSBsb25nIGxhYmVsVGV4dCwgbWF5YmUgc2hvdyBmdWxsIHZlcnNpb24gd2hlbiBob3ZlcmluZy5cclxuICAgIGNvbnN0IGxhYmVsID0gY3JlYXRlVGV4dExhYmVsKFxyXG4gICAgICB0ZXh0Q3JlYXRvciwgbGFiZWxUZXh0LFxyXG4gICAgICAvL2NoZWNrIHdpZHRoIHZhbHVlLi4uXHJcbiAgICAgIERST1BET1dOX1dJRFRILCBkZXB0aCxcclxuICAgICAgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SLCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IsXHJcbiAgICAgIDAuODY2XHJcbiAgICApO1xyXG4gICAgbGFiZWwuYmFjay5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG5cclxuICAgIGlmIChpc09wdGlvbikgbW9kYWxEcm9wZG93bi5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGVsc2UgZ3JvdXAuaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBjb25zdCBsYWJlbEludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGxhYmVsLmJhY2sgKTtcclxuICAgIGxhYmVsSW50ZXJhY3Rpb24uZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5wdXNoKCBsYWJlbEludGVyYWN0aW9uICk7XHJcbiAgICBvcHRpb25MYWJlbHMucHVzaCggbGFiZWwgKTtcclxuXHJcblxyXG4gICAgaWYoIGlzT3B0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBsYWJlbFRleHQgKTtcclxuXHJcbiAgICAgICAgbGV0IHByb3BlcnR5Q2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIG9uQ2hhbmdlZENCICYmIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgb25DaGFuZ2VkQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCBvbkNob29zZUNCICl7XHJcbiAgICAgICAgICBvbkNob29zZUNCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgaWYoIHN0YXRlLm9wZW4gPT09IGZhbHNlICl7XHJcbiAgICAgICAgICBvcGVuT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbGFiZWwuaXNPcHRpb24gPSBpc09wdGlvbjtcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNvbGxhcHNlT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLmNsZWFyTW9kYWxFZGl0b3IoKTsgLy9zaG91bGQgd2UgY2hlY2sgaWYgaXQgd2Fzbid0IHNldCB0byBzb21ldGhpbmcgZWxzZT8/XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcGVuT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IHRydWU7XHJcbiAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IobW9kYWxEcm9wZG93bik7XHJcbiAgICAvL3JldHVybjtcclxuICAgIC8vbGFiZWwuaXNPcHRpb24gc2VlbXMgbW9zdGx5IHJlZHVuZGFudC5cclxuICAgIC8vbGFiZWxzICYgYmFja3Mgc2hvdWxkIGJlIGFkZGVkIHRvIGEgZ3JvdXAgdG8gYmUgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgXHJcbiAgICAvL21ha2luZyBldmVyeXRoaW5nIHZpc2libGUgLyBpbnZpc2libGUgd2l0aCBvbmUgcHJvcGVydHlcclxuICAgIC8vKG5iLCBldmVuIHRob3VnaCB0aGV5IGFyZSBub3cgaW4gYSBncm91cCB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCB3ZSBzdGlsbCBuZWVkIHRvIHNldCB2aXNpYmxlLi4uXHJcbiAgICAvL3NlZSBjb21tZW50IGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpKVxyXG4gICAgb3B0aW9uTGFiZWxzLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbCApe1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBsYWJlbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBsYWJlbC5iYWNrLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICBiYXNlIG9wdGlvblxyXG4gIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSBjcmVhdGVPcHRpb24oIGluaXRpYWxMYWJlbCB8fCAnICcsIGZhbHNlICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IEdyYXBoaWMuZG93bkFycm93KCk7XHJcbiAgLy8gQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggRFJPUERPV05fV0lEVEggLSAwLjA0LCAwLCBkZXB0aCAqIDEuMDEgKTtcclxuICBzZWxlY3RlZExhYmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBsYWJlbCwgaW5kZXggKXtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnkgPSAtRFJPUERPV05fTUFSR0lOIC0gKGluZGV4JU1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKzEpICogKCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUICk7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi54ICs9IERST1BET1dOX1dJRFRIICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wdGlvblRvTGFiZWwoIG9wdGlvbk5hbWUsIGluZGV4ICl7XHJcbiAgICBjb25zdCBvcHRpb25MYWJlbCA9IGNyZWF0ZU9wdGlvbiggb3B0aW9uTmFtZSwgdHJ1ZSApO1xyXG4gICAgY29uZmlndXJlTGFiZWxQb3NpdGlvbiggb3B0aW9uTGFiZWwsIGluZGV4ICk7XHJcbiAgICByZXR1cm4gb3B0aW9uTGFiZWw7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZExhYmVsLmFkZChtb2RhbERyb3Bkb3duKTtcclxuICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCguLi5vcHRpb25zLm1hcChvcHRpb25Ub0xhYmVsKSk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCggLi4uT2JqZWN0LmtleXMob3B0aW9ucykubWFwKCBvcHRpb25Ub0xhYmVsICkgKTtcclxuICB9XHJcblxyXG5cclxuICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfRFJPUERPV04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuXHJcbiAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBEUk9QRE9XTl9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBEUk9QRE9XTl9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSwgRFJPUERPV05fREVQVEgsIHRydWUgKTtcclxuICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGNvbnRyb2xsZXJJRCwgc2VsZWN0ZWRMYWJlbCwgYm9yZGVyQm94ICk7XHJcblxyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggaW50ZXJhY3Rpb24sIGluZGV4ICl7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uTGFiZWxzWyBpbmRleCBdO1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7IC8vYXMgb2YgdGhpcyB3cml0aW5nLCB0aGlzIGlzIGJlbGlldmVkIHRvIGJlIHJlbGlhYmxlLCBidXQgYmV3YXJlIGRyYWdvbnMsIGZ1dHVyZSByZWFkZXIuXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEudGlwT2JqKSB7XHJcbiAgICAgIC8vIGlmIChsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKSB7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coZ3JvdXAudXNlckRhdGEudGlwKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBzZXRWaXNpYmlsaXR5KHBhbmVsLCBncm91cC51c2VyRGF0YS50aXBPYmosIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYoIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkgfHwgc3RhdGUub3BlbiApe1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG4gIGxldCBvbkNob29zZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLm9uQ2hvb3NlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNob29zZUNCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggZmluZExhYmVsRnJvbVByb3AoKSApO1xyXG4gICAgfVxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsSW50ZXJhY3Rpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgIGNvbnN0IG9iaiA9IGdyb3VwO1xyXG4gICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgLy9uYiwgb2JqLnNwYWNpbmcgbWF5IGJlIHVuZGVmaW5lZCwgYnV0IHNob3VsZCBub3cgaGF2ZSBzZW5zaWJsZSBkZWZhdWx0LlxyXG4gICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgLy8vLy0tLSBzZWUgbGFiZWxJbnRlcmFjdGlvbnNbMF0gYWJvdmUgZm9yIGhhbmRsaW5nIHVwZGF0ZS4uLlxyXG4gIH1cclxuICBncm91cC5nZXRUb29sVGlwID0gKCkgPT4gZ3JvdXAudXNlckRhdGEudGlwO1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgeyBjcmVhdGVUb29sVGlwIH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyLCBzZXRCb3hGcm9tT2JqZWN0LCBzZXRWaXNpYmlsaXR5IH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IEZPTERFUl9XSURUSCB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbi8vSWYgeW91J3JlIGxvb2tpbmcgZm9yIG1haW4gY3JlYXRlRm9sZGVyIGZ1bmN0aW9uLCBpdCdzIGZ1cnRoZXIgYmVsb3cuLi5cclxuXHJcbi8qKlxyXG4gKiBOb3QgZW50aXJlbHkgc3VyZSBhYm91dCBzdGFydGluZyB0byBhZGQgdGhpcyBraW5kIG9mIGdsb2JhbCBzdGF0ZSBtYW5hYWdlbWVudCBoZXJlLi4uXHJcbiAqIFRoaXMgaXMgZm9yIHotb3JkZXIgaW4gMmQgb3J0aG9ncmFwaGljIG1vZGUsIGFuZCBtYXliZSBzb21lIG90aGVyIHRoaW5ncyBvbmUgZGF5LlxyXG4gKi9cclxuY29uc3QgdG9wRm9sZGVyU3RhY2sgPSBbXTtcclxuXHJcbmNvbnN0IHNjcmF0Y2hGb2xkZXJCb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoQ2FtQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaFNpemUgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCkge1xyXG4gIGNvbnN0IGNhbSA9IHRvcEZvbGRlclN0YWNrWzBdLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gIGlmICghY2FtIHx8IHRvcEZvbGRlclN0YWNrLmxlbmd0aCA8PSAxKSByZXR1cm47XHJcbiAgLy9jYW1Cb3hTZXR1cChjYW0pO1xyXG4gIGNvbnN0IHRmcyA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcih4ID0+IHgudmlzaWJsZSk7XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdGZzLmxlbmd0aDtcclxuICBjb25zdCB6cyA9IHRmcy5tYXAoZiA9PiBmLnBvc2l0aW9uLnopLnNvcnQoKGEsYik9PmEtYik7XHJcbiAgenNbLTFdID0gLTk5OTk7IC8vIEkgc3VwcG9zZSB0aGlzIGlzIHRvIGRlYWwgd2l0aCBhY2Nlc3NpbmcgenNbaS0xXSBiZWxvdyDCr1xcXyjjg4QpXy/Cr1xyXG4gIHpzLmZvckVhY2goICh6LGkpID0+IHpzW2ldID0gTWF0aC5tYXgoenNbaV0sIHpzW2ktMV0gKyAxMCpMYXlvdXQuUEFORUxfREVQVEgpKTsgLy8gaW4gY2FzZSBvZiBlcXVhbHNcclxuICBcclxuICB0ZnMuZm9yRWFjaCgoZiwgaSkgPT4ge1xyXG4gICAgLy9sZXQgeiA9IC0wLjkqZmFyICsgaSoxMCpMYXlvdXQuUEFORUxfREVQVEg7XHJcbiAgICBjb25zdCB6ID0genNbaV07XHJcbiAgICBpZiAoeiAhPT0gZi5wb3NpdGlvbi56KSB7XHJcbiAgICAgIGYucG9zaXRpb24ueiA9IHo7XHJcbiAgICAgIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIGYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9KTtcclxuICBpZiAodGZzW24tMV0ucG9zaXRpb24ueiA+PSBuZWFyIC0gTGF5b3V0LlBBTkVMX0RFUFRIKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkdVSVZSIFdhcm5pbmc6IGxpa2VseSBwcm9ibGVtIHdpdGggei1vcmRlciBpbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXRcIik7XHJcbiAgfVxyXG4gIC8vY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUgKyAnXFx0OiAnICsgZi5wb3NpdGlvbi56KS5qb2luKCdcXG4nKX1dYCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbUJveFNldHVwKGNhbSkge1xyXG4gIGlmICghY2FtLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSByZXR1cm47XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdG9wRm9sZGVyU3RhY2subGVuZ3RoO1xyXG4gIGNvbnN0IGwgPSBjYW0ubGVmdCwgciA9IGNhbS5yaWdodCwgdCA9IGNhbS50b3AsIGIgPSBjYW0uYm90dG9tO1xyXG4gIGNvbnN0IHogPSBjYW0ucG9zaXRpb24uejsgLy9ub3Qgc3RyaWN0bHkgcmlnaHQuLi5cclxuICBzY3JhdGNoQ2FtQm94Lm1pbi5zZXQobCwgYiwgLWZhciArIHopO1xyXG4gIHNjcmF0Y2hDYW1Cb3gubWF4LnNldChyLCB0LCAtbmVhciArIHopO1xyXG4gIHJldHVybiBzY3JhdGNoQ2FtQm94O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVGb2xkZXIoe1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG5hbWUsXHJcbiAgZ3VpQWRkLFxyXG4gIGd1aVJlbW92ZSxcclxuICBhZGRDb250cm9sbGVyRnVuY3MsXHJcbiAgZ2xvYmFsQ29udHJvbGxlcnNcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IHdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICBjb25zdCBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSDtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBjb2xsYXBzZWQ6IGZhbHNlLFxyXG4gICAgcHJldmlvdXNQYXJlbnQ6IHVuZGVmaW5lZFxyXG4gIH07XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZm9sZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7bmFtZX1dYDtcclxuXHJcbiAgY29uc3QgY29sbGFwc2VHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmFkZCggY29sbGFwc2VHcm91cCApO1xyXG5cclxuICB2YXIgaXNBY2NvcmRpb24gPSBmYWxzZTtcclxuICAvKiogV2hlbiB0cnVlLCB3aWxsIGtlZXAgb25seSBvbmUgY2hpbGQgZm9sZGVyIG9mIHRoaXMgZm9sZGVyIG9wZW4gYXQgYSB0aW1lLlxyXG4gICAqIFNpYmxpbmdzIGF1dG9tYXRpY2FsbHkgY2xvc2UuXHJcbiAgICovXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2FjY29yZGlvbicsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNBY2NvcmRpb247XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAoIG5ld1ZhbHVlICYmICFpc0FjY29yZGlvbiApIGdyb3VwLmd1aUNoaWxkcmVuLmZpbHRlciggYz0+Yy5pc0ZvbGRlciApLm1hcCggYz0+Yy5jbG9zZSgpICk7XHJcbiAgICAgIGlzQWNjb3JkaW9uID0gbmV3VmFsdWU7XHJcbiAgICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy9mbGFnIHRoZSBuZWVkIGZvciBwZXJmb3JtaW5nIGxheW91dCBvZiB0aGUgZm9sZGVyIGhpZXJhcmNoeSBpbiB3aGljaCB0aGlzIGlzIGNvbnRhaW5lZC5cclxuICBncm91cC5yZXF1ZXN0TGF5b3V0ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGByZXF1ZXN0ZWQgbGF5b3V0IG9mIGZvbGRlciAke2dyb3VwLmZvbGRlck5hbWV9IHdoaWxlIGxheW91dCBhbHJlYWR5IGluIHByb2dyZXNzLi4uYCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90b3BGb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20gaW5kZXguanMgdXBkYXRlKD8pIGZvciBlYWNoIHRvcEZvbGRlciwgdGhlbiBmcm9tIHdpdGhpbiBwZXJmb3JtTGF5b3V0KCkgZm9yIGVhY2ggY2hpbGQgZm9sZGVyXHJcbiAgZ3JvdXAucGVyZm9ybUxheW91dCA9IHBlcmZvcm1MYXlvdXQ7XHJcblxyXG4gIGNvbnN0IHN0cmFpZ2h0Um90YXRpb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xyXG4gIC8vcHJvdmlkZSBhcmd1bWVudHMgZm9yIGhvdyBjb25zdHJhaW5lZCB0byBiZSwgYW5kIHJlLXVzZSBzYW1lIGZ1bmN0aW9uIGJvdGggb24gZGV0YWNoIGFuZCBlbHNld2hlcmU/XHJcbiAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24gPSBmdW5jdGlvbih0aHJlc2g9MC4wMSkge1xyXG4gICAgY29uc3QgZiA9IHRoaXM7XHJcbiAgICBpZiAoIWYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIHJldHVybjtcclxuICAgIC8vYWx3YXlzIGZvcmNlIHJvdGF0aW9uIHN0cmFpZ2h0IGZvcndhcmQuLi5cclxuICAgIGYuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbihzdHJhaWdodFJvdGF0aW9uKTtcclxuXHJcbiAgICAvL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuICAgIC8vbWF5YmUgSSBjb3VsZCB1c2UgYSBCb3gyIGFueXdheSBzaW5jZSAzZCBtaWdodCBqdXN0IGNvbmZ1c2UgdGhpbmdzLlxyXG4gICAgY29uc3QgYm94ID0gc2V0Qm94RnJvbU9iamVjdChzY3JhdGNoRm9sZGVyQm94LCBmKTtcclxuICAgIGNvbnN0IGJveFcgPSBib3gubWF4LnggLSBib3gubWluLngsIGJveEggPSBib3gubWF4LnktYm94Lm1heC55O1xyXG4gICAgXHJcbiAgICBjb25zdCBjYW0gPSBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gICAgY29uc3QgY2FtQm94ID0gY2FtQm94U2V0dXAoY2FtKTsgLy9iaXQgd2FzdGVmdWwgdG8gY2FsbCB0aGlzIGhlcmUsIGJ1dCBpbnNpZ25pZmljYW50LlxyXG4gICAgLy9yZWFsbHksIEkgd2FudCB0byBrbm93IGlmIGl0J3MgJ21vc3RseScgaW52aXNpYmxlLlxyXG4gICAgLy9Vc2luZyB0d28gYm94ZXMsIHJhdGhlciB0aGFuIGZydXN0dW0uc2V0RnJvbU1hdHJpeCggbWF0Lm11bHRpcGx5TWF0cmljZXMoIGNhbS5wcm9qZWN0aW9uTWF0cml4LCBjYW0ubWF0cml4V29ybGRJbnZlcnNlICkgKTtcclxuICAgIC8vKGZydXN0dW0gaXMgdW5uZWNlc3NhcnkgKmNvdWdoKmlmIHdlIGFzc3VtZSBvcnRob2dyYXBoaWMgcGVyc3BlY3RpdmUsIG5vIGNhbWVyYSB0cmFuc2Zvcm0gJiBhcmUgZ2VuZXJhbGx5IGxheCBhYm91dCB6KilcclxuICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IGJveC5pbnRlcnNlY3QoY2FtQm94KTsgLy9jYXJlZnVsIG9mIG9yZGVyOyBpbnRlcnNlY3QoKSBtdXRhdGVzXHJcbiAgICAvLyhYWFg6IHN0cmljdGx5IHNwZWFraW5nLCBpZGVhbGx5IEkgd291bGQgdGFrZSBjYW1lcmEgbWF0cml4V29ybGQgaW50byBhY2NvdW50IGlmIEkgd2FudCB0byBiZSBwcm9wZXIpXHJcbiAgICAvLyhtaWdodCBqdXN0IG1ha2UgbG9nIGEgd2FybmluZyBpZiBpdCdzIHNldCBob3cgSSBkb24ndCBleHBlY3QgaXQsIGJ1dCBwcmVmZXIgbm90IHRvIGxlYXZlIHRyYXBzLilcclxuICAgIFxyXG4gICAgLy9sb29rIGF0IGRpbWVuc2lvbnMgb2YgaW50ZXJzZWN0aW9uIGFuZCBmb3JjZSBpbndhcmRzIGlmIG5lY2Vzc2FyeS4uLlxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uU2l6ZSA9IGludGVyc2VjdGlvbi5nZXRTaXplKHNjcmF0Y2hTaXplKTtcclxuICAgIGNvbnN0IHNjcmVlblcgPSBjYW0ucmlnaHQgLSBjYW0ubGVmdCwgc2NyZWVuSCA9IGNhbS50b3AgLSBjYW0uYm90dG9tO1xyXG4gICAgLy93b3JrIGluIHVuaXRzIGFzIGZyYWN0aW9uIG9mIGJveCB3aWR0aCAoYWx0aG91Z2ggdGhhdCdzIG5vdCBhIGdyZWF0IGlkZWEgd2l0aCBtdWx0aS1jb2x1bW4gZm9sZGVycylcclxuICAgIGludGVyc2VjdGlvblNpemUueCAvPSBib3hXOyBpbnRlcnNlY3Rpb25TaXplLnkgLz0gYm94VztcclxuICAgIGxldCBuZWVkc1VwZGF0ZSA9IGZhbHNlO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgJHtmLmZvbGRlck5hbWV9OiAke0pTT04uc3RyaW5naWZ5KGludGVyc2VjdGlvblNpemUpfSwgdGhyZXNoOiAke3RocmVzaH1gKTtcclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnggPCB0aHJlc2gpIHsgLy9UT0RPOiBwYXJhbWF0ZXJpc2UgLyBub24tbWFnaWMtbnVtYmVyXHJcbiAgICAgIC8vVE9ETyB3b3JrIG91dCB3aGljaCBzaWRlIHdlJ3JlIG9uLCBtb3ZlIGJ5IG9iamVjdCB3aWR0aC4uLlxyXG4gICAgICBmLnBvc2l0aW9uLnggPSBjYW0ubGVmdCArIHNjcmVlblcvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueSA8IHRocmVzaCkge1xyXG4gICAgICBmLnBvc2l0aW9uLnkgPSBjYW0uYm90dG9tICsgc2NyZWVuSC8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmVlZHNVcGRhdGUpIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5pc0NvbGxhcHNlZCA9ICgpID0+IHsgcmV0dXJuIHN0YXRlLmNvbGxhcHNlZCB9XHJcbiAgXHJcbiAgLy91c2VmdWwgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhpcyBhcyB3ZWxsLiBVc2luZyBpbiByZW1vdmUgaW1wbGVtZW50YXRpb25cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdndWlDaGlsZHJlbicsIHtcclxuICAgIC8vcGVyaGFwcyBtb2RhbEVkaXRvciBzaG91bGQgYWxzbyBjb3VudCBhcyBhIG1lbWJlciBvZiB0aGlzLi4uXHJcbiAgICAvL2N1cnJlbnRseSBjYW4ndCBzZWUgYW55dGhpbmcgaW4gaW1wbGVtZW50YXRpb24gdGhhdCB3b3VsZCByZXF1aXJlIHRoYXRcclxuICAgIC8vLS0gYWRkaW5nIGhlYWRlckl0ZW1zIHRob3VnaCwgc28gdGhleSdsbCBnZXQgcGlja2VkIHVwIGJ5IHJlbW92ZSgpXHJcbiAgICAvLyAtIG1heWJlIHNhbWUgc2hvdWxkIGFwcGx5IHRvIG1vZGFsRWRpdG9yXHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIFsgLi4uY29sbGFwc2VHcm91cC5jaGlsZHJlbiwgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gXSB9XHJcbiAgfSk7XHJcbiAgLy8gcmV0dXJucyB0cnVlIGlmIGFsbCBvZiB0aGUgc3VwcGxpZWQgYXJncyBhcmUgbWVtYmVycyBvZiB0aGlzIGZvbGRlclxyXG4gIGdyb3VwLmhhc0NoaWxkID0gZnVuY3Rpb24gKCAuLi5hcmdzICl7XHJcbiAgICByZXR1cm4gIWFyZ3MuaW5jbHVkZXMoKG9iaikgPT4geyByZXR1cm4gZ3JvdXAuZ3VpQ2hpbGRyZW4uaW5kZXhPZihvYmopID09PSAtMX0pO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZm9sZGVyTmFtZSA9IG5hbWU7IC8vZm9yIGRlYnVnZ2luZ1xyXG4gIFxyXG4gIC8vICBZZWFoLiBHcm9zcy5cclxuICBjb25zdCBhZGRPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQ7XHJcbiAgLy9hcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIHRoaXMgdG8gYmVoYXZlIGxpa2UgYSByZWd1bGFyIFRIUkVFLkdyb3VwLCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIG9mIHJlbW92ZSBzaG91bGRuJ3QgaHVydFxyXG4gIGNvbnN0IHJlbW92ZU9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZTsgXHJcblxyXG4gIGZ1bmN0aW9uIGFkZEltcGwoIG8gKXtcclxuICAgIC8vIEkgY291bGQgY2hhbmdlIHRoaXMgZnVuY3Rpb24gYXMgcGFydCBvZiBhIHJlZmFjdG9yIHRvIHBsYWNlIGV2ZXJ5dGhpbmcgYXQgdG9wRm9sZGVyIGxldmVsLi4uXHJcbiAgICAvLyBpcyB0aGF0IGEgZ29vZCBpZGVhLCBvciBhIGJhZCBpZGVhP1xyXG4gICAgYWRkT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gcmVtb3ZlSW1wbCggbyApe1xyXG4gICAgcmVtb3ZlT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcblxyXG4gIC8vYWRkSW1wbCggY29sbGFwc2VHcm91cCApOyAvL3JlZHVuZGFudC5cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBhZGRJbXBsKCBwYW5lbCApO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDEuNTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuXHJcbiAgY29uc3QgZG93bkFycm93ID0gTGF5b3V0LmNyZWF0ZURvd25BcnJvdygpO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIDB4ZmZmZmZmICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggMC4wNSwgMCwgZGVwdGggICogMS4wMSApO1xyXG4gIHBhbmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG4gIGNvbnN0IGdyYWJiZXIgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0dSQUJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGdyYWJiZXIucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44NjsgLy9YWFg6IG1hZ2ljIG51bWJlclxyXG4gIGdyYWJiZXIubmFtZSA9ICdncmFiYmVyJztcclxuICBhZGRJbXBsKCBncmFiYmVyICk7XHJcblxyXG4gIGNvbnN0IGdyYWJCYXIgPSBHcmFwaGljLmdyYWJCYXIoKTtcclxuICBncmFiQmFyLnBvc2l0aW9uLnNldCggd2lkdGggKiAwLjUsIDAsIGRlcHRoICogMS4wMDEgKTtcclxuICBncmFiYmVyLmFkZCggZ3JhYkJhciApO1xyXG4gIGdyb3VwLmlzRm9sZGVyID0gdHJ1ZTtcclxuICBncm91cC5oaWRlR3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSBmYWxzZSB9O1xyXG4gIGdyb3VwLnNob3dHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IHRydWUgfTtcclxuICBncm91cC5oaWRlSGVhZGVyID0gZnVuY3Rpb24oKSB7IFxyXG4gICAgZ3JvdXAuaGlkZUdyYWJiZXIoKTtcclxuICAgIC8vZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICB9O1xyXG4gIGdyb3VwLnNob3dIZWFkZXIgPSAoKSA9PiB7XHJcbiAgICAvL2dyYWJiZXIudmlzaWJsZSA9IGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vVE9ETzogaW50ZXJmYWNlIGZvciBhZGRpbmcgdGhpbmdzIHRvIHRoaXMuLi4gTk9UICdzaG93SW5Gb2xkZXJIZWFkZXInIG1ldGhvZCAvIHByb3BlcnR5IG9uIGxpbmVhciBpdGVtcy4uLlxyXG4gIGNvbnN0IGhlYWRlckl0ZW1zID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcGFuZWwuYWRkKGhlYWRlckl0ZW1zKTtcclxuICAvL3RoaXMgZnVuY3Rpb24gd2lsbCBhdHRlbXB0IHRvIG1ha2Ugb2JqIGJlaGF2ZSBhcyBjb250cm9sbGVyIGxheWVkIG91dCBpbiBoZWFkZXJJdGVtcyxcclxuICAvL2Jhc2VkIG9uIHNvbWUgYXNzdW1wdGlvbnMgYWJvdXQgb2JqIHRoYXQgbWF5IGJlIHRydWUgYXQgdGltZSBvZiB3cml0aW5nLi4uXHJcbiAgLy9idXQgYXJlIHBlbmRpbmcgbW9yZSByaWdvcm91cyBzcGVjaWZpY2F0aW9uIC8gcmVmYWN0b3JpbmcgZXRjLlxyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0gPSBmdW5jdGlvbihvYmope1xyXG4gICAgaGVhZGVySXRlbXMuYWRkKG9iaik7XHJcbiAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBvYmouaXNIZWFkZXJPYmplY3QgPSB0cnVlO1xyXG5cclxuICAgIC8vYWxzbyBuZWVkIHRvIGFkZCB0byBnbG9iYWwgY29udHJvbGxlcnMgbGlzdCBldGMuIE5COjogbWFrZSBzdXJlIHRoYXQgdGhleSB3aWxsIGdldCByZW1vdmVkIGFzIHdlbGxcclxuICAgIC8vLS0tIHRoaXMgZ2VuZXJpYyBpbnRlcmFjdGlvbi51cGRhdGUgZG9lc24ndCBtYWtlIGxpc3RlbigpIHdvcmsgcHJvcGVybHkuXHJcbiAgICBpZiAoIW9iai51cGRhdGVDb250cm9sKSBvYmoudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiBvYmouaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICBvYmouaGl0c2NhbiA9IFsgb2JqIF07IC8vaGFja3kgaGFja3lcclxuICAgIGdsb2JhbENvbnRyb2xsZXJzLnB1c2gob2JqKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiAweDg4ODg4OCwgdHJhbnNwYXJlbnQ6IHRydWV9KTtcclxuICBjb25zdCBoID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uUmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggaCwgaCwgTGF5b3V0LkJVVFRPTl9ERVBUSCoyICk7XHJcbiAgLy9zb21ld2hhdCBiYWNrd2FyZHMgd2F5IG9mIGdldHRpbmcgdGV4dHVyZXMuLi4gVE9ETyBtYXliZSBjaGFuZ2UgKGFsb25nIHdpdGggb3RoZXIgc3R5bGUgY29uc2lzdGVuY3kgdHlwZSBzdHVmZilcclxuICBjb25zdCBkb2NrVGV4dHVyZSA9IEdyYXBoaWMuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBjb25zdCB1bmRvY2tUZXh0dXJlID0gR3JhcGhpYy51bmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICBjb25zdCBkZXRhY2hCdXR0b24gPSBuZXcgVEhSRUUuTWVzaCggIGRldGFjaEJ1dHRvblJlY3QsIGRldGFjaEJ1dHRvbk1hdGVyaWFsICk7XHJcbiAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBmYWxzZTtcclxuICBkZXRhY2hCdXR0b24ucG9zaXRpb24ueCA9IExheW91dC5GT0xERVJfV0lEVEggLSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICBjb25zdCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGRldGFjaEJ1dHRvbik7XHJcbiAgZGV0YWNoQnV0dG9uLmludGVyYWN0aW9uID0gZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb247XHJcbiAgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChncm91cC5kZXRhY2hlZFBhcmVudCkge1xyXG4gICAgICBncm91cC5yZWF0dGFjaCgpO1xyXG4gICAgfSBlbHNlIGdyb3VwLmRldGFjaCgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG4gIC8vaGVhZGVySXRlbXMuYWRkKGRldGFjaEJ1dHRvbik7XHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbShkZXRhY2hCdXR0b24pO1xyXG5cclxuICBsZXQgaXNEZXRhY2hhYmxlID0gZmFsc2U7XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2RldGFjaGFibGUnLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzRGV0YWNoYWJsZTtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gaXNEZXRhY2hhYmxlKSByZXR1cm47XHJcbiAgICAgIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gbmV3VmFsdWU7XHJcbiAgICAgIGlzRGV0YWNoYWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZ3JvdXAuYWRkID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGNvbnN0IG5ld0NvbnRyb2xsZXIgPSBndWlBZGQoIC4uLmFyZ3MgKTtcclxuXHJcbiAgICBpZiggbmV3Q29udHJvbGxlciApe1xyXG4gICAgICBncm91cC5hZGRDb250cm9sbGVyKCBuZXdDb250cm9sbGVyICk7XHJcbiAgICAgIHJldHVybiBuZXdDb250cm9sbGVyO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBTb21lIGNvbnRyb2xsZXJzIG1heSBicmluZyB1cCBzdWItR1VJcyB3aGljaCBoYXZlIHRoZSBwb3RlbnRpYWxcclxuICAgIHRvIG92ZXJsYXAgLyBjbGFzaC4gIFRoaXMgZW5zdXJlcyBvbmx5IG9uZSBpcyBwcmVzZW50IGF0IGEgdGltZS5cclxuICAqL1xyXG4gIGdyb3VwLnNldE1vZGFsRWRpdG9yID0gZnVuY3Rpb24oZSl7XHJcbiAgICAvL1RoaXMgY291bGQgZ28gd3JvbmcgaWYgZm9sZGVyIGhpZXJhcmNoeSBjaGFuZ2VzIHNpZ25pZmljYW50bHkuXHJcbiAgICAvL1Nob3VsZCBiZSBnb29kIGVub3VnaCBmb3Igcm9jayduJ3JvbGwgKGZhbW91cyBsYXN0IHdvcmRzKS5cclxuICAgIC8vSSBjb3VsZCBtYWtlIGl0IHNvIHRoYXQgb25seSBvbmUgb2YgdGhlc2UgdGhpbmdzIHdhcyBldmVyIHZpc2libGVcclxuICAgIC8vYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtLiAgVGhhdCBzaG91bGQgYmUgZWFzaWVyIHRvIG1ha2Ugcm9idXN0LCBhbnl3YXkuLi5cclxuICAgIC8vYW5kIHNhdmVzIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLlxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IGU7XHJcbiAgICBpZiAoIWUpIHJldHVybjtcclxuICAgIGUudmlzaWJsZSA9IHRydWU7XHJcbiAgICBpZiAoZS5wZXJmb3JtTGF5b3V0KSBlLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIGZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gdHJ1ZTtcclxuICAgIC8vYWRkIGEgZmxhZyB0byBhbGwgY2hpbGRyZW4gcmVjdXJzaXZlbHkgc28gdGhhdCBpbnRlcmFjdGlvbiBzeXN0ZW0gY2FuIGlkZW50aWZ5IHRoZW0gYXMgYmVsb25naW5nIHRvIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAvL1RPRE86IHNraXAgaWYgYWxyZWFkeSBkb25lLi4uXHJcbiAgICBmdW5jdGlvbiBkZWNvcmF0ZUNoaWxkcmVuKHBhcmVudCkge1xyXG4gICAgICBwYXJlbnQuY2hpbGRyZW4uZm9yRWFjaChjID0+IHtcclxuICAgICAgICBjLnVzZXJEYXRhLnBhcnRPZk1vZGFsID0gZTtcclxuICAgICAgICBkZWNvcmF0ZUNoaWxkcmVuKGMpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGRlY29yYXRlQ2hpbGRyZW4oZSk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgY3VycmVudCBtb2RhbCBlZGl0b3IgZnJvbSB0aGlzIGZvbGRlclxyXG4gICAqICoqYnV0IG5vdCBpZiBpdCB3YXMgYWRkZWQgZHVyaW5nIHRoZSBjdXJyZW50IGNvbnRyb2xsZXIgdXBkYXRlLFxyXG4gICAqIGFzIGluZGljYXRlZCBieSBhIGZsYWcgc2V0IGluIHNldE1vZGFsQ29udHJvbGxlciBhbmQgcmVzZXQgaW4gaW5kZXguanMgdXBkYXRlKipcclxuICAgKi9cclxuICBncm91cC5jbGVhck1vZGFsRWRpdG9yID0gZnVuY3Rpb24oKSB7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoIWZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgIC8vZm9sZGVyLnNldE1vZGFsRWRpdG9yKG51bGwpO1xyXG4gICAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSB7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qIFxyXG4gIFJlbW92ZXMgdGhlIGdpdmVuIGNvbnRyb2xsZXJzIGZyb20gdGhlIEdVSS4gID4+Pk9uY2UgcmVtb3ZlZCwgdGhlIGNvbnRyb2xsZXJzIHdpbGwgZWZmZWN0aXZlbHkgYmUgaW52YWxpZCBmb3IgdXNlPDw8XHJcbiAgPj4+IHNvIGRpc3Bvc2Ugb2YgdGhlbSBhcyB3ZWxsPyBOZWVkIHRvIGJlIGNhcmVmdWwgYWJvdXQgdGV4dHVyZXMgLyBhbnl0aGluZyBzaGFyZWQuLi4gPDw8XHJcbiAgYXMgdGhleSB3aWxsIGFsc28gYmUgcmVtb3ZlZCBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzLiAgVXNlICdkZXRhY2gnIGluc3RlYWQgaWYgaXQgaXNcclxuICBkZXNpcmVkIHRvIHJldXNlIEdVSSBlbGVtZW50cyBlbHNld2hlcmUuXHJcblxyXG4gIElmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQsIGl0IHdpbGwgYXR0ZW1wdCB0byBkZXRlY3QgdGhpcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLCBcclxuICBhYm9ydGluZyB0aGUgcHJvY2VzcyBhbmQgcmV0dXJuaW5nIGZhbHNlIGZyb20gdGhpcyBtZXRob2QuXHJcblxyXG4gIE5vdGU6IGFzIHdpdGggYWRkLCB0aGlzIG92ZXJ3cml0ZXMgYW4gZXhpc3RpbmcgcHJvcGVydHkgb2YgVEhSRUUuR3JvdXAuXHJcbiAgQXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyBmb2xkZXJzIHRvIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgVEhSRUUuR3JvdXBzLCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIuXHJcbiAgKi9cclxuICBncm91cC5yZW1vdmUgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgLy9ndWlSZW1vdmUgaXMgcGFzc2VkIGluIGZyb20gaW5kZXguanMgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBzYW5pdHkgY2hlY2tpbmcgJiByZW1vdmluZyBmcm9tIGdsb2JhbCBjb250cm9sbGVycyBsaXN0XHJcbiAgICBjb25zdCBvayA9IGd1aVJlbW92ZSggLi4uYXJncyApOyAvLyBhbnkgaW52YWxpZCBhcmd1bWVudHMgc2hvdWxkIGNhdXNlIHRoaXMgdG8gcmV0dXJuIGZhbHNlIHdpdGggbm8gc2lkZS1lZmZlY3RzXHJcbiAgICBpZiAoIW9rKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgY29uc29sZS5hc3NlcnQoZ3JvdXAuaGFzQ2hpbGQob2JqKSwgXCJpbnRlcm5hbCBwcm9ibGVtIHdpdGggaG91c2VrZWVwaW5nIGxvZ2ljIG9mIGRhdC5HVUlWUiBmb2xkZXIgbm90IGNhdWdodCBieSBzYW5pdHkgY2hlY2tcIik7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBvYmoucmVtb3ZlKCAuLi5vYmouZ3VpQ2hpbGRyZW4gKTtcclxuICAgICAgfVxyXG4gICAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShvYmopO1xyXG4gICAgfSk7XHJcbiAgICAvL1RPRE86IGRlZmVyIGFjdHVhbCBsYXlvdXQgcGVyZm9ybWFuY2U7IHNldCBhIGZsYWcgYW5kIG1ha2Ugc3VyZSBpdCBnZXRzIGRvbmUgYmVmb3JlIGFueSByZW5kZXJpbmcgb3IgaGl0LXRlc3RpbmcgaGFwcGVucy5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vcmF0aGVyIHRoYW4gbWV0aG9kLCBkZXRhY2hlZFBhcmVudCBiZSBhIHByb3BlcnR5IHRoYXQgZG9lcyB0aGlzIHN0dWZmIGluIHNldHRlci4uLlxyXG4gIC8vYW55d2F5LCBib3RoIGFyZSByZWFsbHkgbWVhbnQgZm9yIGludGVybmFsIHVzZSwgYXMgaGludGVkIGJ5IF8gaW4gbmFtZS5cclxuICBncm91cC5fc2V0RGV0YWNoZWRGcm9tID0gKHBhcmVudCkgPT4ge1xyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICBpZiAocGFyZW50ID09PSBudWxsKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbi5tYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gZG9ja1RleHR1cmU7XHJcbiAgICAgIGdyb3VwLnNob3dIZWFkZXIoKTtcclxuICAgICAgZ3JvdXAuc2hvd0dyYWJiZXIoKTtcclxuICAgICAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIERldGFjaCBhIGNoaWxkIGZvbGRlciBmcm9tIHRoaXMgZm9sZGVyIGhpZXJhcmNoeSwgc3VjaCB0aGF0IGl0IGNhbiBiZSB1c2VkIGVsc2V3aGVyZSBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICogXHJcbiAgICogKHdpbGwgbm90IGJlIHZpc2libGUgdW50aWwgZXhwbGljaXRseSBhZGRlZCBlbHNld2hlcmU7IFxyXG4gICAqIGNhbGxpbmcgZGV0YWNoKCkgaW5zdGVhZCB3aWxsIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYW5kIGlzIG1vcmUgaW50ZW5kZWQgZm9yIHVzZSBpbiBhcHBsaWNhdGlvbiBjb2RlXHJcbiAgICogd2hpbGUgdGhpcyBtZXRob2QgaXMgbW9yZSBvZiBhbiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuKVxyXG4gICAqL1xyXG4gIGdyb3VwLmRldGFjaENoaWxkID0gKGNoaWxkKSA9PiB7XHJcbiAgICBpZiAoIWNoaWxkLmlzRm9sZGVyIHx8IGNoaWxkLmZvbGRlciAhPT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIGNoaWxkLl9zZXREZXRhY2hlZEZyb20oZ3JvdXApO1xyXG4gICAgY29sbGFwc2VHcm91cC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgLy9USFJFRS5PYmplY3QzRC5wcm90b3R5cGUucmVtb3ZlLmNhbGwoZ3JvdXAsIGNoaWxkKTtcclxuICAgIHJlbW92ZUltcGwoY2hpbGQpO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwOyAvL29yIGNoaWxkP1xyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBEZXRhY2ggdGhpcyBvYmplY3QgZnJvbSBpdHMgcGFyZW50LCBhbmQgcmVhdHRhY2ggdG8gc2NlbmVncmFwaCBhcyBhIHNpYmxpbmcgb2YgdGhlICd0b3AgbGV2ZWwnIGZvbGRlciBpblxyXG4gICAgdGhlIGhpZXJhcmNoeSB0aGlzIHByZXZpb3VzbHkgd2FzIGEgbWVtYmVyIG9mLlxyXG4gICovXHJcbiAgZ3JvdXAuZGV0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciA9PT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIC8vYXV0b21hdGljYWxseSBhZGQgdG8gVEhSRUUgcGFyZW50IG9mIHRvcCBsZXZlbCBmb2xkZXIgYW5kIHRyeSB0byBzZXQgYXBwcm9wcmlhdGUgc2NhbGUgLyB0cmFuc2Zvcm0uLi5cclxuICAgIC8vaWYgdGhhdCBmb2xkZXIgYmVpbmdNb3ZlZCBhdCB0aGUgcHJlc2VudCB0aW1lLCB0aGVuIGl0IHdpbGwgaGF2ZSBhbiBvbGRQYXJlbnQgdG8gd2hpY2ggd2Ugc2hvdWxkIGF0dGFjaCBpbnN0ZWFkLlxyXG4gICAgLy8uLi5hbHRob3VnaCBpdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRoZSBkZXRhY2hlZCBmb2xkZXIgdG8gbW92ZSB3aXRoIHRoZSBjb250cm9sbGVyIHVudGlsIGJ1dHRvbiBpcyByZWxlYXNlZC4uLlxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgZ3JvdXAuZm9sZGVyLmRldGFjaENoaWxkKGdyb3VwKTtcclxuICAgIFxyXG4gICAgLy9hZGRpbmcgdG8gdG9wRm9sZGVyLnBhcmVudCBJRiBBVkFJTEFCTEUsIG5vdCBvbGRQYXJlbnQsIHBlbmRpbmcgd29ya2luZyBvdXQgdHJhbnNmb3JtIGxhdGVyIGlmIGJlaW5nTW92ZWQuLi5cclxuICAgIGNvbnN0IHBhciA9IHRvcEZvbGRlci5wYXJlbnQgfHwgZ3JvdXAucGFyZW50OyBcclxuICAgIGlmICghcGFyKSByZXR1cm47IC8vU0pQVCBjaGFuZ2UgZnJvbSBDU3ludGgsIG5vdCBjYXJlZnVsbHkgcmV2aWV3ZWQgYnV0IHByb2JhYmx5IHJpZ2h0LlxyXG4gICAgcGFyLmFkZChncm91cCk7XHJcbiAgICBjb25zdCBtID0gdG9wRm9sZGVyLm1hdHJpeC5jbG9uZSgpO1xyXG5cclxuICAgIGdyb3VwLmFwcGx5TWF0cml4NChtKTtcclxuICAgIG0uc2V0UG9zaXRpb24obmV3IFRIUkVFLlZlY3RvcjMoKSk7XHJcbiAgICBjb25zdCB0ID0gbmV3IFRIUkVFLlZlY3RvcjMoTGF5b3V0LkZPTERFUl9XSURUSCwgMCwgMCkuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgZ3JvdXAucG9zaXRpb24uYWRkKHQpO1xyXG4gICAgXHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9kZXRhY2ggdGhpcyBvYmplY3QgZnJvbSB0b3BGb2xkZXIucGFyZW50IHRoZW4gYXR0YWNoIHRvIHRvcEZvbGRlci5vbGRQYXJlbnQgd2hpbGUgbWFpbnRhaW5pbmcgbWF0cml4V29ybGRcclxuICAgICAgLy8uLi5hY3R1YWxseSwgKG1heWJlKSB3ZSB3YW50IHRvIGRvIHRoaXMgc2NlbmVTaGlmdCBidXNpbmVzcyB3aGVuIGJlaW5nTW92ZWQgZmluaXNoZXMuLi5cclxuICAgICAgLy8gcHV0IHRoaW5ncyBpbnRvIHNlbWlEZXRhY2hlZCwgc28gdGhhdCB3aGVuIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCB0aGV5IGNhbiBiZSBzaGlmdGVkLlxyXG4gICAgICAvL29yIG1heWJlIHdoYXQgd2UgcmVhbGx5IHdhbnQgaXMgdG8gaGF2ZSBhbiBvcHRpb24gdG8gJ3BpbicgcGFuZWxzIHRvZ2V0aGVyIGFuZCB1bnBpbiB0aGVtLCByYXRoZXIgdGhhbiBhc3N1bWVcclxuICAgICAgLy9hdHRhY2htZW50IGNoYW5nZXMgd2hlbiBidXR0b24gcmVsZWFzZWQuICBGb3Igbm93LCB0aGlzIGlzIG5vdCBxdWl0ZSB3b3JraW5nIHJpZ2h0LCBzby4uLlxyXG4gICAgICBjb25zdCBkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgLy93ZSBjb3VsZCBqdXN0IGRldGFjaCwgbGVhdmluZyB0aGUgb2JqZWN0IGFzIGRpcmVjdCBkZXNjZW5kZW50IG9mIHNjZW5lLCBidXQgdGhlcmUgbWF5IGJlIHJlYWwgcmVhc29ucyB0byBzaXR1YXRlXHJcbiAgICAgIC8vdGhlIEdVSSB3aXRoaW4gaGllcmFyY2h5IHNvbWVob3cgKGxpa2UgYXMgY2hpbGRyZW4gb2YgYSBjb250cm9sbGVyKVxyXG4gICAgICBcclxuICAgICAgaWYgKGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5wdXNoKGdyb3VwKTtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEub2xkUGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsvL1hYWDogaGFjayBiZWNhdXNlIHRvcEZvbGRlci5vbGRQYXJlbnQgd2FzIGJlaW5nIHVuZGVmaW5lZCBiZWZvcmUgYmVpbmdNb3ZlZCA9IGZhbHNlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGQgPSBncm91cDtcclxuICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSB0b3BGb2xkZXIucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICBcclxuICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IFxyXG4gICAgZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSB0b3BGb2xkZXIudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7IC8vVE9ETzogcmV2aXNlIGhvdyB0byBwYXNzIHRoaXMgaW5mb1xyXG4gICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oMC41KTtcclxuICAgIGdyb3VwLm9wZW4oKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICAvL2FsYSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2V4YW1wbGVzL3V0aWxzL1NjZW5lVXRpbHNcclxuICBmdW5jdGlvbiBzY2VuZURldGFjaChjaGlsZCwgcGFyZW50LCBzY2VuZSkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQocGFyZW50Lm1hdHJpeFdvcmxkKTtcclxuICAgIHBhcmVudC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgc2NlbmUuYWRkKGNoaWxkKVxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIHBhcmVudCkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkuZ2V0SW52ZXJzZShwYXJlbnQubWF0cml4V29ybGQpICk7XHJcblx0XHRzY2VuZS5yZW1vdmUoY2hpbGQpO1xyXG5cdFx0cGFyZW50LmFkZChjaGlsZCk7ICAgXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KSB7XHJcbiAgICBsZXQgbm9kZSA9IG9sZFBhcmVudDtcclxuICAgIHdoaWxlIChub2RlLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgY29uc3Qgc2NlbmUgPSBub2RlO1xyXG4gICAgXHJcbiAgICBzY2VuZURldGFjaChjaGlsZCwgb2xkUGFyZW50LCBzY2VuZSk7XHJcbiAgICBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIG5ld1BhcmVudCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5kZXRhY2hGcm9tUGFyZW50ID0gZ3JvdXAuZGV0YWNoO1xyXG4gIFxyXG4gIGdyb3VwLnJlYXR0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKCFncm91cC5kZXRhY2hlZFBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9UT0RPOiBjaGVjayBsYXlvdXQgd2l0aCB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiB3cmFwcGluZyBldGMuXHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudC5hZGRGb2xkZXIoZ3JvdXApOyAvLyB0aGlzIHdpbGwgYWxzbyBkZWFsIHdpdGggY29zbWV0aWNzIChoaWRlR3JhYmJlciBldGMpXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cC5kZXRhY2hlZFBhcmVudCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9tYXliZSB3ZSBjb3VsZCBkbyB0aGlzIGtpbmQgb2Ygc3R1ZmYgaW4gX3NldERldGFjaGVkRnJvbVxyXG4gICAgICAvL2luIGFueSBjYXNlLCBpdCdzIGlycmVsZXZhbnQgaWYgXHJcbiAgICAgIGxldCBzZW1pcyA9IHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQ7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VtaXMuaW5kZXhPZihncm91cCk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICAvL2dyb3VwLmRldGFjaGVkUGFyZW50ID0gbnVsbDtcclxuICAgIGdyb3VwLl9zZXREZXRhY2hlZEZyb20obnVsbCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmFkZENvbnRyb2xsZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBncm91cC5hZGRGb2xkZXIob2JqKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICB9XHJcbiAgICAgIC8vWFhYOiBoYWNraW5nIGluIHNvbWUgdW5pdmVyc2FsIHRvb2x0aXAgc3VwcG9ydFxyXG4gICAgICBpZiAob2JqLnNldFRvb2xUaXApIHJldHVybjsgLy9idXQgbm90IGlmIGEgbW9yZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBhbHJlYWR5IGV4aXN0cyAoc2VlIGRyb3Bkb3duLi4uKVxyXG4gICAgICBvYmouc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgICAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgICAgICBjb25zdCB0aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwT2JqID0gdGlwT2JqO1xyXG4gICAgICAgIC8vYXNzb2NpYXRlIGV2ZW50IHdpdGggaG92ZXIgb24gYXBwcm9wcmlhdGUgaGl0c2Nhbi4uLlxyXG5cclxuICAgICAgICBpZiAob2JqLmludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgICAvL1RPRE86IGV2ZW50cy5vZmYoKSBpZiByZXBsYWNpbmcgb2xkIHRvb2x0aXAgKG9yIG5vdCByZXBlYXRpbmcgb24oKSkuXHJcbiAgICAgICAgICBvYmouaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCd0aWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAvL2Rvbid0IGp1c3Qgc2V0IHZpc2liaWxpdHk7IGFkZC9yZW1vdmUgYXMgdGhlc2UgYXJlIGtpbGxpbmcgZnJhbWVyYXRlIGluIGxhcmdlIFZSIGd1aXMuXHJcbiAgICAgICAgICAgIC8vUkVWSUVXLi4uIGNvbnNpZGVyaW5nIG1ha2luZyB0b29sdGlwcyB3b3JrIHdoZW4gaG92ZXJpbmcgb24gbGFiZWwgYXMgd2VsbCxcclxuICAgICAgICAgICAgLy8gYnV0IG9mIGNvdXJzZSB0aGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgbW9yZSBhYm91dCB0aGUgaW50ZXJhY3Rpb24gc2V0dXAsXHJcbiAgICAgICAgICAgIC8vIGFuZCBoYXZpbmcgbW9yZSBvYmplY3RzIHRvIHRlc3QgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAgICAgICAgICAvLyBMZWF2aW5nIGZvciBub3csIGlmIHdvcmtpbmcgbW9yZSBvbiB0aGUgbGlicmFyeSwgaG9wZWZ1bGx5IGZpeCBob3ZlciBldmVudCBldGMuXHJcbiAgICAgICAgICAgIGlmIChvYmoudmlzaWJsZSkgc2V0VmlzaWJpbGl0eShvYmosIHRpcE9iaiwgb2JqLmludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYGNhbid0IGNyZWF0ZSB0b29sdGlwIGZvciAke29iai5ndWlUeXBlfSBiZWNhdXNlIHRoZXJlJ3Mgbm8gb2JqLmludGVyYWN0aW9uIHByb3BlcnR5Li4uYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBvYmouZ2V0VG9vbFRpcCA9ICgpID0+IG9iai51c2VyRGF0YS50aXA7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuYWRkRm9sZGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24gKG9iaikge1xyXG4gICAgICAvL1RPRE8gaWYgb2JqIGlzIHN0cmluZywgbWFrZSBhIG5ldyBndWkgYW5kIGFkZCAvIHJldHVybiBpdC4uLiBidXQgd2hhdCBhYm91dCB2YXJhcmdzP1xyXG4gICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgb2JqLm1hdHJpeC5pZGVudGl0eSgpO1xyXG4gICAgICBvYmouc2NhbGUuc2V0KDEsMSwxKTtcclxuICAgICAgb2JqLnBvc2l0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIG9iai5yb3RhdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBcclxuICAgICAgb2JqLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAgIG9iai5jbG9zZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnByb21vdGVaT3JkZXIgPSAoKSA9PiB7XHJcbiAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCB8fCAhdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGRuJ3QgYmUgYSAncHVibGljIG1ldGhvZCcgKGJ1dCBtYXliZSB0aGVyZSBzaG91bGQgYmUgYSB3ZWxsLWRlZmluZWQgcHVibGljIGludGVyZmFjZSkuXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IGluY29uc2lzdGVuY3kgaW4gZm9sZGVyIGhvdXNla2VlcGluZ2ApO1xyXG4gICAgfVxyXG4gICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYHByb21vdGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAvL3RoaXMgd2lsbCByZXN1bHQgaW4gdGhlIG9iamVjdCB6IGJlaW5nIGRpZmZlcmVudCBmcm9tIHdoZW4gbW91c2VJbnRlcnNlY3Rpb24gaGl0IGl0IGVhcmxpZXIgaW4gdXBkYXRlLlxyXG4gICAgLy9tb3VzZUludGVyc2VjdGlvbiB3aWxsIHRoZW4gbGF0ZXIgYmUgdXNlZCBpbiBoYW5kbGVUaWNrIG9mIGdyYWIgaW50ZXJhY3Rpb24sIHRvIGZ1cnRoZXIgbXV0YXRlIHBvc2l0aW9uXHJcbiAgICAvL3NlZW1zIG9rIHRob3VnaCAoYXMgb2YgMDQvMTIvMTgpXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIC8vZ3JvdXAudXNlckRhdGEub3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0ID0gIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dDtcclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUxheW91dCgpe1xyXG4gICAgcGVyZm9ybUhlYWRlckxheW91dCgpO1xyXG4gICAgXHJcbiAgICBjb25zdCB3cmFwTmVzdGVkID0gZmFsc2U7XHJcbiAgICBcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIC8vc3RhcnRpbmcgd2hvbGUgbmV3IGxheW91dCBvZiB0b3BGb2xkZXI/XHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBpZiAodG9wRm9sZGVyLm1vZGFsRWRpdG9yICYmIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KSB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICBcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbllPZmYgPSAtdG9wRm9sZGVyLnBvc2l0aW9uLnk7XHJcbiAgICAgIC8vSSBjb3VsZCB1bmRlZmluZSB0aGVzZSBhdCB0aGUgZW5kLCBidXQgdGhlcmUncyBubyBwb2ludC5cclxuXHJcbiAgICAgIGlmICghdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgYWRkaW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8va2VlcCBjb3VudGluZyBjb2x1bW5IZWlnaHQgKGN1cnJlbnQgeSkgJiBpbmRleCBmcm9tIHBhcmVudCBmb2xkZXIuXHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL1RPRE86IG1ha2Ugc3VyZSB0byB0ZXN0IHdpdGggZGVlcCBuZXN0aW5nLlxyXG4gICAgICBcclxuICAgICAgaWYgKHRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgcmVtb3ZpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIGNvbnN0IHNwYWNpbmdQZXJDb250cm9sbGVyID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgY29uc3QgZW1wdHlGb2xkZXJTcGFjZSA9IExheW91dC5GT0xERVJfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICB2YXIgdG90YWxTcGFjaW5nID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjKSA9PiB7IGMudmlzaWJsZSA9ICFzdGF0ZS5jb2xsYXBzZWQgfSApO1xyXG4gICAgLy9jaGlsZHJlbiBzaG91bGQgYmUgb3JkZXJlZCBieSBndWlJbmRleC5cclxuICAgIC8vaWYgdGhleSBkb24ndCBhbHJlYWR5IGhhdmUgb25lLCBpdCBjYW4gYmUgYWRkZWQgaGVyZTpcclxuICAgIC8vdGhpcyBzaG91bGQgYmUgdGhlIG9ubHkgcGxhY2UgdGhhdCB3ZSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgcHJvcGVydHlcclxuICAgIC8vaXQgYWxsb3dzIGZvciBkZXRhY2hpbmcgZWxlbWVudHMgYW5kIHJlYXR0YWNoaW5nIGluIHNpbWlsYXIgcGxhY2UsIGV2ZW4gaWYgc29tZSBzaWJsaW5ncyBhcmUgYWxzbyBkZXRhY2hlZC5cclxuICAgIGxldCBsYXN0R3VpSW5kZXggPSAwO1xyXG4gICAgLy90cnkgdG8gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGNsaWVudCBwcm9ncmFtIG1heSBhdHRlbXB0IHRvIHJlc3RvcmUgaXRlbXMgXHJcbiAgICAvL3JlbWVtYmVyaW5nIGRldGFjaGVkUGFyZW50IGJ1dCBub3QgZ3VpSW5kZXg/IE5vaXNlLi4uXHJcbiAgICAvL2NvbnN0IGRldGFjaGVkQ2hpbGRyZW4gPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoZiA9PiBmLmRldGFjaGVkUGFyZW50ID09PSB0aGlzKTtcclxuICAgIC8vY29sbGFwc2VHcm91cC5jaGlsZHJlbi5jb25jYXQoZGV0YWNoZWRDaGlsZHJlbikuZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgICAgICBpZiAoYy5ndWlJbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgYy5ndWlJbmRleCA9IGxhc3RHdWlJbmRleCs9MTtcclxuICAgICAgfSBlbHNlIGxhc3RHdWlJbmRleCA9IGMuZ3VpSW5kZXg7XHJcbiAgICB9KTtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4geyByZXR1cm4gYS5ndWlJbmRleCAtIGIuZ3VpSW5kZXggfSk7XHJcblxyXG4gICAgaWYgKCBzdGF0ZS5jb2xsYXBzZWQgKSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gTWF0aC5QSSAqIDAuNTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gMDtcclxuXHJcbiAgICAgIHZhciB5ID0gMCwgbGFzdEhlaWdodCA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIGZ1bmN0aW9uKCBjaGlsZCwgaW5kZXggKXtcclxuICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgIGNoaWxkLnVzZXJEYXRhLmNvbHVtbllPZmYgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmIC0geTsgLy9leGNlcHQgJ3knIHdpbGwgYmUgd3JvbmcuLi5cclxuICAgICAgICAgIGNoaWxkLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCAhd3JhcE5lc3RlZCApIHtcclxuICAgICAgICAgIC8vT3JpZ2luYWwgbGF5b3V0IGFsZ29yaXRobVxyXG4gICAgICAgICAgdmFyIGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgLy8gaG93IGZhciB0byBnZXQgZnJvbSB0aGUgbWlkZGxlIG9mIHByZXZpb3VzIHRvIG1pZGRsZSBvZiB0aGlzIGNoaWxkP1xyXG4gICAgICAgICAgLy8gaGFsZiBvZiB0aGUgaGVpZ2h0IG9mIHByZXZpb3VzIHBsdXMgaGFsZiBoZWlnaHQgb2YgdGhpcy5cclxuICAgICAgICAgIC8vIGlmIHdlJ3ZlIHdyYXBwZWQgdG8gYSBuZXcgY29sdW1uIHJlY2VudGx5LCBob3cgaXMgdGhpcyBhZmZlY3RlZD9cclxuICAgICAgICAgIC8vIHNwYWNpbmcgcHJvcGVydHkgc2hvdWxkIHRoZW4gYmUgc3BhY2luZyAqd2l0aGluIGN1cnJlbnQgY29sdW1uKiwgc28gdGhlIHdheSB3ZSB0cmFjayB0b3RhbFNwYWNpbmcgc2hvdWxkIHJlZmxlY3QgdGhhdC5cclxuICAgICAgICAgIHZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICBpZiAoaW5kZXggPCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTilcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoKGluZGV4KzEpICUgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPT09IDApIHkgPSAwO1xyXG4gIFxyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTik7XHJcblxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy9uZXcgbGF5b3V0IGFsZ29yaXRobSBXSVAsIHNob3VsZCBhbGxvdyBmb3IgbmVzdGVkIGZvbGRlcnMgdG8gd3JhcCB0byB0aGUgdG9wIG9mIGEgbmV3IGNvbHVtbiwgd2l0aCBhbGwgZm9sZGVyc1xyXG4gICAgICAgICAgLy9pbiBoaWVyYXJjaHkgdXNpbmcgc2FtZSBjb2x1bW4gbGF5b3V0XHJcbiAgICAgICAgICBjb25zdCBtYXhDb2xIZWlnaHQgPSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiAqIHNwYWNpbmdQZXJDb250cm9sbGVyOyAvL01BWF9GT0xERVJfSVRFTVMgaXMgc2xpZ2h0IG1pc25vbWVyXHJcbiAgICAgICAgICBjb25zdCBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIGNvbnN0IGNoaWxkRGlkV3JhcCA9IGNoaWxkLmlzRm9sZGVyICYmIGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vbW92ZSB0byBhIG5ldyBjb2x1bW4/XHJcbiAgICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID4gbWF4Q29sSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIC8vVE9ETzogbWF5YmUgYWRkIGFuIGV4dHJhIGhlYWRlciB0aGluZyB0byBhbGxvdyBmb2xkaW5nIG5lc3RlZCBmb2xkZXI/XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4Kys7IFxyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBoO1xyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgPSAwOyAvL2ggd2lsbCBiZSBhZGRlZCBsYXRlclxyXG4gICAgICAgICAgICBsYXN0SGVpZ2h0ID0gMDsgLy8/Pz8/IHdoYXQgc2hvdWxkIHRoaXMgYmU/ICBPcmlnaW5hbCBhbGdvcml0aG0gaXQncyAnZW1wdHlGb2xkZXJTcGFjZSdcclxuICAgICAgICAgICAgLy9jaGVjayBsb2dpYyBvZiB0aGlzIFdSVCBkZWVwZXIgbmVzdGluZyAoc2hvdWxkIGJlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRvcEZvbGRlciByYXRoZXIgdGhhbiBpbW1lZGlhdGUgcGFyZW50KVxyXG4gICAgICAgICAgICAvL3doYXQgSSBzaG91bGQgZG8gaXMgdXNlIGFjY3VtbXVsYXRpb24gb2YgYWxsIGZvbGRlciBsZXZlbHMgKyBvbmUgcGFyZW50IGFib3ZlLlxyXG4gICAgICAgICAgICAvL3kgPSAtZ3JvdXAucG9zaXRpb24ueTtcclxuICAgICAgICAgICAgeSA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmY7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgKz0gaDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvL3ZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICAgICAgICAgIGxldCBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuXHJcblxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLi4uLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICAvL1hYWDogdGhpcyBsb2dpYyBkb2Vzbid0IHdvcmsgZm9yIGNvbHVtbiB3cmFwcGluZywgKGJlY2F1c2Ugb2YgaG93IHNwYWNpbmcgaXMgY29tcHV0ZWQgYWJvdmU/KVxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcblxyXG4gICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vbmIgZm9yIG5lc3RlZCwgY29uc2lkZXIgZGlmZmVyZW5jZSBiZXR3ZWVuIGdyb3VwICYgcGFyZW50XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvL2lmIChjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4KSBsYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjaGlsZC51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSB0b3RhbFNwYWNpbmc7XHJcbiAgICBcclxuICAgIC8vIGlmIHdlJ3JlIGEgc3ViZm9sZGVyLCB1c2UgYSBzbWFsbGVyIHBhbmVsXHJcbiAgICBsZXQgcGFuZWxXaWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCkge1xyXG4gICAgICBwYW5lbFdpZHRoID0gTGF5b3V0LlNVQkZPTERFUl9XSURUSDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgTGF5b3V0LnJlc2l6ZVBhbmVsKHBhbmVsLCBwYW5lbFdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgpO1xyXG5cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1IZWFkZXJMYXlvdXQoKSB7XHJcbiAgICBsZXQgZHggPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgIGxldCB4ID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGhlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgaWYgKCFjLnZpc2libGUpIHJldHVybjtcclxuICAgICAgeCAtPSBkeCAqIDAuODtcclxuICAgICAgYy5wb3NpdGlvbi54ID0geDtcclxuICAgICAgeCAtPSBkeCAqIDAuMzsgLy9UT0RPOiBkZWhhY2tpZnlcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBncmFiSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE86IG1vcmUgY29uc2lzdGVudCBob3ZlciBzdHlsaW5nXHJcbiAgICBpZiAoIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHg4ODg4ODggKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIGdyb3VwLm9wZW4oKTtcclxuICAgIGVsc2UgZ3JvdXAuY2xvc2UoKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuXHJcbiAgZ3JvdXAub3BlbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKCFzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwICYmIGdyb3VwLmZvbGRlci5hY2NvcmRpb24pIHtcclxuICAgICAgZ3JvdXAuZm9sZGVyLmd1aUNoaWxkcmVuLmZpbHRlcihjPT5jLmlzRm9sZGVyICYmIGMgIT09IGdyb3VwKS5mb3JFYWNoKGM9PmMuY2xvc2UoKSk7XHJcbiAgICB9XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSBmYWxzZTtcclxuICAgIGFkZEltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuY2xvc2UgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IHRydWU7XHJcbiAgICByZW1vdmVJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWw6IGdyYWJiZXIgfSApO1xyXG4gIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIC8vbmI6IGlmIHRoZSBjb250cm9sIGlzIG5vdCB2aXNpYmxlIC8gYWN0aXZlLCB0aGVuIGl0IHdvbid0IGludGVyZmVyZS4uLiAgICBcclxuICAgIC8vYnV0IFwiaWYgKCFpc0RldGFjaGFibGUpXCIgaGVyZSBjYXVzZXMgcHJvYmxlbXMuXHJcbiAgICBcclxuICAgIC8vaGVhZGVySXRlbXMgc2hvdWxkIG5vdyBoYXZlIHRoZWlyIG93biB1cGRhdGVDb250cm9sIGFuZCBiZSBpbiBnbG9iYWxDb250cm9sbGVycyBsaXN0XHJcbiAgICAvL2hlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2gobyA9PiBvLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpKTtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICAvLydncmFiUmVsZWFzZWQnIGlzIGVtaXR0ZWQgb24gaW5wdXQuZXZlbnRzLi4uIHVzZWQgZm9yIG9ydGhvIG1vdXNlIGZpeEZvbGRlclBvc2l0aW9uXHJcbiAgXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IF9iZWluZ01vdmVkID0gZmFsc2U7XHJcbiAgLy9ncm91cC5oaXRzY2FuID0gWyBwYW5lbCwgZ3JhYmJlciwgZGV0YWNoQnV0dG9uIF07XHJcbiAgXHJcbiAgLy8vLy9FWFBFUklNRU5UQUwgRkVBVFVSRSwgQ1VSUkVOVExZIEhBUkRDT0RFRCBOT1QgVE8gSEFQUEVOXHJcbiAgLy9zdWItZm9sZGVycyB0aGF0IGFyZSBkZXRhY2hlZCB3aGlsZSBtb3ZpbmcgcmVtYWluIGF0dGFjaGVkIHRvIHBhcmVudCBvYmplY3QgKHRoZSBjb250cm9sbGVyIHRoYXQncyBtb3ZpbmcgdGhlbSlcclxuICAvLyYga2VwdCBpbiBzZW1pRGV0YWNoZWQgdW50aWwgYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIGF0IHdoaWNoIHBvaW50IHRoZXkgc2hpZnQgYXR0YWNobWVudCB0byBvbGRQYXJlbnRcclxuICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZ3JvdXAsIHtcclxuICAgIGhpdHNjYW46IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgLy9kb24ndCBuZWVkIHRvIGZpbHRlciB2aXNpYmxlIGhlcmUsIHRoaXMnbGwgYmUgZG9uZSBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKVxyXG4gICAgICAgIC8vKGltcGxlbWVudGF0aW9uIG5vdGUgMzEvNy8xOTsgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gaGVyZSBiZWluZyByZW1vdmVkIGFzIGVhY2ggaGVhZGVySXRlbVxyXG4gICAgICAgIC8vc2hvdWxkIG5vdyBiZSBjbG9zZXIgdG8gJ2Z1bGx5IGZsZWRnZWQnIGNvbnRyb2xsZXIpXHJcbiAgICAgICAgbGV0IGhpdHMgPSBbIHBhbmVsLCBncmFiYmVyIF07XHJcbiAgICAgICAgaWYgKGdyb3VwLm1vZGFsRWRpdG9yKSBoaXRzID0gaGl0cy5jb25jYXQoLi4uZ3JvdXAubW9kYWxFZGl0b3IuaGl0c2Nhbik7XHJcbiAgICAgICAgcmV0dXJuIGhpdHM7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBiZWluZ01vdmVkOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBfYmVpbmdNb3ZlZDtcclxuICAgICAgfSxcclxuICAgICAgc2V0OiAodmFsdWUpID0+IHtcclxuICAgICAgICBfYmVpbmdNb3ZlZCA9IHZhbHVlO1xyXG4gICAgICAgIGlmICghX2JlaW5nTW92ZWQpIHtcclxuICAgICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IGdyb3VwLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IGdyb3VwLnVzZXJEYXRhLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgLy9hc3NlcnRpb24uLi4gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIChhbmQgZG9lc24ndCBBRkFJQ1QpLlxyXG4gICAgICAgICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJIb3VzZWtlZXBpbmcgcHJvYmxlbSBpbiBkYXQuR1VJVlIuLi5cIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgLy9hcyB3ZWxsIGFzIHRoaXMgY3VycmVudGx5IGVuZGluZyB1cCB3aXRoIHdyb25nIHRyYW5zZm9ybSwgSSBhbHNvIGhhdmUgd3JvbmcgdHJhbnNmb3JtIGlmIEkgZHJhZyBmb2xkZXIgd2hpbGUgc2VtaURlYXRjaGVkLi4uXHJcbiAgICAgICAgICAgIC8vKiphbHRob3VnaCBpbiB0aGF0IGNhc2UsIGl0IHNoaWZ0cyBiYWNrIHRvIHdoZXJlIGl0IHNob3VsZCBiZSB3aGVuIGJ1dHRvbiBpcyByZWxlYXNlZCoqXHJcbiAgICAgICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBmb3IgKGxldCBrIGluIGFkZENvbnRyb2xsZXJGdW5jcykge1xyXG4gICAgZ3JvdXBba10gPSAoLi4uYXJncykgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sbGVyID0gYWRkQ29udHJvbGxlckZ1bmNzW2tdKC4uLmFyZ3MpO1xyXG4gICAgICBpZiAoIGNvbnRyb2xsZXIgKXtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sbGVyKCBjb250cm9sbGVyICk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXI7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbWFnZSgpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBZ0FBQUFFQUNBTUFBQUR5VGo1VkFBQUFqVkJNVkVWSGNFei8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyt1bUFjN0FBQUFMM1JTVGxNQVduSmZibnFEV0dSNGEyWmNZbkJSYWxSTGdINkVUblI4VUdoMlJvWkRYbGFIU1lvOFFIVTJMeVljRkF3Rm1tVVIxT0lBQUpGaFNVUkJWSGhldEwySldtdTdqalVLSVFra1FMcVp2Z01DWk8yelQvMzMvUi92U2tORGtqMlRyT2FyVmQ1VjZ4RFAzcEpsV2RLUTdxYVBiNit2cnc4dmorUFovdnZyeHovLy9QajYzcy9HNy9jUDJuMC9YWjZPcDZYOGZKSGZhRy8zajlxNVgvTEt0L3Qzdi9RZnVmUWsvWG91Ym9sei9EcTVMSDd5MW5MVmw5eGVINGIyOGppZG5jWnkvWk0wUCtXZmYvN3puLy84Kys5Ly9zRzVVenRhdjNIMWluSklYa2xlOFF2bjMrT1JPUDJvajVPUG16N2V2K201UERERnlYYW4vVXdld0JkODEyNFpEbjJvM2VUQkJtQ0tBelpRZmpZNzVXWC8vWSsvS2o2TG43Ny8vdUYzcjI0dkh5ZlA1YWU5Y1JSc2FINUkvNDh2ZVFxUDVLaDlYOXo4Nnd2bit3amhaZm1ZalR6bXlCZmxTT0J6NVYxbFhPOGVINTRtdzhueks4ZFRIc25QZXBidXB3ZnQxVnUrUHNsdmFaUHRzNzNGYVd4WGJwL2lVangvSTlTVWMzSExxWjJEaG50VlAwRVJmTjc5cTkxOCsvVDJ1RmxPOGV3OEJXK3F3NFJ6NVJaYk9UcDVmc0pqK2RUcUZaL2xsVEFxdUxjK0VtOGpBLzRkQS9TODljOTVraEVoOFpUWW04ZTNwKzBRVjl4UDVmNWZRalU4Vkx1ZUozaXRlOUNUOUxlem41SUQrS3A4dEIzRW1PZmRlZnNsNTgwUFkxV01Ea2FCTkZYcUg1VmplU1NHNUhqUmRUenErZUFNalArRUw4dkh5Q1N6RnpXNkxFOTZQcmp2N3VWcE11cDB1bHVNcDdJcHVXWGI3WFE2d3ljWnR0a1ViOTN0b0kyNjlySExLYThjYnAwVW5NMnZUeE05dC92ODhJaHplTjNrNlNWLzR0Ynlac2U5ZmQ0UWZkMkp2TzdtOGVHNVc1N3lEUmJBck1LNXVEdmVHQ1Q5UWI3SVYremFHTTcyeHhQdVBjTHBTczhqNTluenBCdWZNM3gyNG5IYXZ0b0RobklQNlNYVjhONjRhRFFrUFRsUnRuYjJzOTlFMzlSZmRSaWZycndrbmJ3N2JvL0poWGxMd2VsUG1jaVR4N1BUL2x2N1Q3UFo1aEhqbGtQeXRaZlJqNXVEUnJPVG5BOW12WDk0eGtCMGgzeXZ4ODFKQndJdnF2MTRVem4vK0swdmV5ZWpmZTROVnVDQURjWG1PejVyMTl0MTlmS3h2cG44SFBTMDdWWWorOWpITjdsU2ZuZmkwaCtjemNQT2VkQWJkSVNhNzI5UGNnN2F1ZnYwbGovdDFzdjlhYlpVM3B6SXc2U3Q5UHZHTWthZFFad2lBM0hrUFBuZTQ5eVJuanRZa2FSQ052QlF2dUpneHpFOFljQng3NEVOSGNZWnA2NzRPWU56aHh3ZDR1RnB1TktuajdZUGtBekhrNzRSSHJyUzk5cDFKdlpnT1FENnI3UVRCTVc4eFNKNlBQRlY0OU9YeGdDOHUxeWdoSk5SczFWd3RqSDY3M0Q2UktmVWNyYlgvdkYwS2greDdlNktVWk83Nnl5eG0yTWNwbE9jYjh3NnhFQ2NPenQ3V1E2RWRPc25EOERaT0IveTUwNUh1NWx6UEYxc3Zzb2NITXo3SU9JWVhIc2V6SnYrWXRIdk43MGRiaUVUZFR2YU5mMjhWSG5IMkg3WGEvcWc1cnN3eVc2K2tEYVhkMy9MbjQxOXluSThmWC9Yenp2MytvdW1ZQUQ1aVZQd3BpZVRsRElYeC9odU9kaHZRRkliMXBOTmtYTnYzdGRYbEsrUk1RUzlPZUQ5eFp4RFIvb0x6WnErZmM1NmNGYU9CdkgySmg2R3EvV2lQeGh0alM5T1N3d2VicktUSjloYnpuQTJKc3FnV2ZUWHUxR3NXSmpRR0VSOFZ2K1NBZVFDRWc3ZkJyNjdGL3B6R0RBYjc0VUYwQzlOUG5xbGQxcmpLOUNQZ1ZqM0Z4aUhCejFKK3ZmSG1USHJXaitzMTVPWEJRVlBlekpBbzRSUW1mSHk4bWlhR3hpZzF4emtQcmozN09oRUhNemxMZVhtOTNpV3Z2U0hqTmZpOElHUGxYZFhCdEE3TnNJQnloQ25ieFZBZVA2OGYraXZrd0hrc28rQ0FUNE8vYjVSVitmYjJ4dWUxbnpvbU9oOXlRQWZPT1ZOVlU1NVV4V3R5bCtRRHNLRTh5RHB0OHBEOEpDLzRvZU9JYjdtdE1TQXJ3OGZmTjVzekhuV2dQaU44clJ6TkliSmhKMWNJY3pmblVEU2dXZUVBUmFmL1lHODVnRWZSckg2Z0lteWFHU2tNYTd2MUEwd29mMnpkdlVTQURKL2NNQ25tNW56SFE0MGkvbEJCeFNhVlNqTklJY01xYnhvOUd1blRxYTV5aEpwVUtDVjQ4R3NCM0MzUEdVRUNlQ3lxaWZ2bzJPRDg0MWQ3eDR3L1E1enpxZ1RscGVKM3J0djBzNEd2VGtjbEtkazVIRUwrU0x3eFdDOU9BaFBnYzJPOGlVcTVGZjZmWHF0TU0rTC9oUldyQmhnQWNrbG42OUQrL1Q4aktmWlFJbE9XektBTktqcHk3MUpTaDZiNzRRSm5BRk03T0hqRm8zY2VkMHNEZzFGUHNlajZhL3hQQ291T3gyZ2VXOGdUYzkyamw3aVJoQVB3Z0R5aXJaT1kzbFJXc3Bqeit1K3lpblRySEJ6MEwrSDE1Y25ZQnBBTnhCTlRHZEN5Z2Fzcm5nQ1hzQUk5M0N2ZWdEMWFmMEVvVU1ERG9BYUU1cWVUSGFRZWppcyttM2N6dDFRb0lQakcva3c1ZTJ6dlJRVmEyYzlQWjhxMUE5VkFuSDdOV1RTZUFhK2hpeGE3NkR2UUhqZ3dsVkhsczY1VXB3SzNyWnJQSTdSbm1FRmVsQVNINVJIVks1UzU3bGdBQ3BHR0c5cGNvSU9sUHlsc3lnWlFKcnE5RkRvdnIrU0FZVE8vWkFBTHZibWg4TWNyeWl2dEZDQ3YrbU1oMndZREhiR0VQNXRNa0E3MWVsR25iTktPZ29NbjUrTlNKSERvbGxqblo1Q3FLMVdLMkdYaml5dWcvT3FneWY3WURjeXpMdDVJNU50YTJxZGI2TDRXUjBaYTJnVHdxcFVWanNxbzllckxqZGZNeXJIdTBidUlselF6SGRVaUYzNTB6dHBaNmZWcit1MFBEajZaL1pPdmZYNkRCM25QREpOSXhUclhkeElxQTJ1dkZNaUtCa2JJeU1tQ1RxNHVreU5BU0RFaDVNdVNBTUZDVi9aUGE4UEN3aEZiRGJHV0JmNklpekIzbE9WdU52SkpRUFlvSUJ3NTkxdXArTzZXOGtmcTY3Y09CZ0FQYTRVcTQ0SlhWWlhtTDVPUkZ0WnY2a1JVNnhpSWkzOEZYWHBnMFpwUXN2TzVCd2JkWVNxbmE3T0lya1FJdUNka3VUUTE1V2tUekhGSVJXZUdzckY4Z2RJdmVIU3NLUG1PZEFKQkxYdXRERWwra3l0V2I4QU9nWTFrRkJXengyN1pCbktzWTdBZVJjS2NmVHJBQTA2cTh0K1pjdGQ5RSs1eEsxMnZmVjhQb2NRZzdTaVlyM3VzYTE3U20yb3NuY1E1YWtuYmNBc1p4TUpXQU9UQVdUS1RHVFpkMllmbThLOE9EZ0R4QXpsa2p0ZFludCtsUUdFcUdRdGVkUGRTTnBBL29ETzR2Y1k2Q0ZSOTZuUXdmeGhPcTZRZ3dvRFZsQzc3ZUdnUXV4SkNkNC9VSCtkVVh6MTdmR21RNjR4NVhHWHRaQkhENE0vOVBBV041S242bHBuZkVFOThxQy9aS0FnQUpVQnFFNjQ1cmtlZEV5dG8wb2lyR0phODF6WE51Z1lwMXVYdUhMYzB4SHVka1VIdFVsVjlNc0FEVy8wajloUERsY1pOaGYrcFJCVFFUeDJ4VHBiTW9DK3JzOTQxOEZHL0duTHFGMzgyVjhQZEQ3cWpMV1ZoYU9iRExCdk1ZQnEwT3k1WkFCakxUMkdOVVRKUkozRjc5SDBEL29STHArUHRzdWxDSkJlREdxc083NFU2ZDVFS0ZzeGdPdWdKZzhhV2R5NktvVVhoNFZzWWtRRWNGSER1NXI4R2hWcm0vYnlsN0xIWW0yeVIvdWhUaHhNODV4VGp3N2RrRnJ6d2RYQTVjMUxpbkY1ZnRKTnlNSEd0SlNZMisydis2ZGM0aHA1YU5QZ0NUdW9kbU9uWWJSa2dOTTQxbTNjZy9MVXgrUjBzbm1CenhHaG9qelF0VGxaTVFDc2FadHB4UUNRQ2JjWllPWXpUb1VOcDdCZTVpKzcwSS80Q0lWdS81WFMvaFBUOERVWVlLc3NhM3NlRlJFcmFYcW5OZ05BeEtzQTZJeDBBalh6UnYrVysxRmJ6cmVYYVJTanl2SFJSeG9qUUwwZFUzTEtJRVB6MU9NMlpUQUlPbUNoTlpPSGIxNVNqc3ZMMDFWQ1B6Mzh1cC9FVXgwSUt1NWFuclNHdUlvdjYzbVRDVUlHMkZOdmNOMU9CZ2tyUUkvVGVrYTJiVDVVcUtqeWZPYVd0MkNBTHRUM3BWcUIvNEFCc1BaeHhSN2xqQ01EeUVmSVdnbUZqdm8xYUkzMTZlT1Q1OWFLaHkwZ3owTnF1Y21qZkx5UlVuOWd6UnZzZW1RQTQ1MWtnQkVrVXAram1pcUdYTVlWQU5ZUkcydVpFNTJ6YnJENG9rNW1VUTZoTmNkYWN2T1NXd3p3cC8xVERvL3U2VVlqbFRVNXB2eXlEaHVsbFREQWNSWkg4V1VjSkpjUk1MN2hlL3FReWJyVjRxNHBHQURxb2NvQUhmenU3elBBckpDdUhQaVNEUG9SNTE1dVpvL0h1S0JaSkZza0EwQTFVU2JVUnYyNlpnQ3NiaUxEUlFDb1pJSEJweVBYdXNXRHI2T0ttK2xkYnBraWY2cTRvdmFKWVVuTk0xNzBQazgvUTJ2R245QXhibDd5dHhnZ3gxTzA2UzEyUnJZZmVpOWtHeHRjQW52WkJuSUE1VExNb01mOGdWRzNTWWM3eVh3VW1mbUIyN3NPUUZLZFlRMTgxNm15MnExcDkvc2xBOFRxSXlSeHRiT3lBMno1T1RTK2dobUhtSVVZT3V1dEpjQWpuRVg0d1BzTENVQlZDT3ltVDRQQlIyWkt3emZDNjZqTVhnOEdLNTFEWGJuTHVGQ0xPVEQwV1BEVjVTU29GcHcwMUR0TmlYcDlsb2U0Y0wxMXlkOWpBUG5oMjdSWFhSdGlMdWFZSnYwaEFJUUJVb21pRGk2amlmSGQ2Z1FyMlVNTjZMSnkrWlFNN1VCTVJQZ08wN0dWT0pUUHYyQUFyajQ0R2twY1pRbk0wNFBVcHE3by8vTVp5UUI0ZjJ5UjNRdlNZZ0Q5QVhsdmlvRGVTcTBOemdCY1FxbnVETVRwQVI5aXNjMU0zUWdQZFkzZ2haUU5LZ1RSTVVWOE5HOWU4dGNZZ0kvR1RIS05Gbyt1bG9CMEVxa3BXRFFyNDB3eVFLM0dWUXdnRmltc1hHNWhsalVjQXlhNlJqS0FNa2lQUnFYanp4bmdXS3dCenJlUDQ1c01RQnRsaXhLbjFpNEFhckI3UWE0eHdNSkVlWCtnREtCUEdRMkNBZWdFVVVOUU9EMldabjNBQUswWGxPYkwzREhvU3pzVnpPUDFuQnFrWEpucXljMUwvaElEc0o5Y1Zhbkd0UktZVGlKaGdDL3NvMjh4d0I3RGk2ZXRkUU13ekJQSFZNblVydG9rQStqbWQwNGQ4MWNNY0VycEdpdkE4aVlEcUIwMVpERzNyZUNMVXJRK2dLTmNxN3ZOQUI4bSsvV0FFSVdhdld6VG4rRUdsUzI4T1QzQXgycDlzTTE1UG5WY0tVNHYrWlNhbWhCWlRvVmJsL3hsQm1CL0xkZnJiYUJUOFBoTENiQlA4NzVLeGQwcUYrVXhCZ0cvMVFOTFhVWldDU01GUENPL1lJQTA0czNubEl6VE5nT2tQa3FUYjYyTm1VbVdtNG1CU0xhdFd4UitMZ0gwREprZ0trZmtmSkFWMFF1d3JIVE9NQVQ1S3BQS1RzcWQydUxCcDF4K1pFMkYrcEsvendDL2V2VG5ncTNOQU8xVEIyN3UzY0NSaUcxdFg2V2k4TUM2SGwwajdnaGVBMWpBdXVqNXJWMkFxUFdoTXVPTWJXdG9KOE9TMzVhRmpvTmJjb0xHUXFLR2Q3SHdjczkrVFFjQUhXTUpPR01oR1lVaENBSkdiYXZpSkZnTmFKY1FoVDkxandXTkpjdWFBVzVQNTVzTThIOHZBZUN1djdVRURBb0dPRzM4VlBUR2tvOEYrVlM0K0xFeXduKzZxa1lYNHdUTFAzd2d2NzhOUE9iR1hob05iTHlDenFmZFdpYzJYcVhjTTNUSUdDU0czYVFQN1YzbWJqOE90UmtBekMzWHF6eWZpNUVCNmlkWVFvZnYzWll3SFlkSk4xOTZHVnZoejFnQjhKYXAzaFY2MzF0N0lVNzk5Tm9sZjVzQmJxc2ZWQUpYK0svVERTV1FOQXJGditKWmVKZ1JzUWNIUTlPSENXWUhNL3lsSlZDOW9LOS94QUJwMmpQL1VURzBuK0t4TTJNV1hibUZ4cWh0bmFhQWNHQi9MTXdDcXE5STRWQXhBRmZrK1E3bUdGa0t4Unc4bi9lNTJFOExaWEl5TEJqZ0ZPWnkwSXVibzNKOE9mQzNWWEh3OE0xTC9oWUQzTjZBSkYyR2FHNEdrRzBnM2RvaHQ1MkJmWmRsL2hlMHMvSkFMSTJ6dGk5QWxvdHhXNFA0K1RZUUVWcXZXKzFMcFQ3czFvYytEZWFtRzFBWkNVM21FTk54cGlKQWhKUkdBbnhBZjJkMHhtbFRNd0JtQ0hhQTZ2UFY4K0JZWEZQZFQ1dXZPazduUGoyWGNoZnUybkx2bVZzUCtmaUhWNWUyUDkyTTM3Z2tDYW9IWHArNkpPaWY5OTgyUVJSMGVVSmpBSWt3d01sMVhHcHVibXZoOU9JQ2dTQTVjNS83MW1XNXNVKzk3UTBjejRRQ054bmdYUTlyTExjOW5kdXJ3cUUwZDI4TjdvVTVCL29zMkRDU3VDWWlFZGV5bksvWFlheUdiYnBnZ1BSemlCOFYvdGdkL29jaG5VNDY5WG5JUWhMbVpzVFpob2NNKzF2Yk9wMFpEdk84eFlyQm96Zk5jVGN2TWZNN05KY0pydml3QmVSUCs2ZVhSa2lPYXlFQjJMYU00cnBEek1Rb2xlMTBEcHJCbDJhV2hRcXVMWnp0SEUwaEhtaFhNY0JqcmlacWFzTFlYV2NBT01MbFlVL1BwbDl4TmhkTVJIOHRYYVlrVHlveThtRFhHOFVpWVZib0hjSmczQUhQMVNzWWdQNWU1ZlZkSjZKOE95UEdmdEhySWF2T0FRS216MUNuTWVKc2xWNng2TVRhUmJ1eE9BOVQ4elJCNGdiNWN4cmtiMTZTbjNhVzk1SXJQa21NUCsySE1wUnVpTFc3SWE3NUFoamFlamQrdEx1NWY4M2Yzd1FWZm0vSlZTUFJqcytodUdCMHNWb3dHS0YyekNIbXlNYnVDZ04waDBwVklRaUhObGFBa2dIZzFSdHAwSVJKSXM0ZmZnUjFLN0FlMFFoZDRSbmVTcDJUWEwzYzBhVUdmSnI2MUVtdk45OE5OSzZBY2VFZVVhdXF6dWNpVmdZVmRJajdLRmFBTDFvbDVYMWM4OFJZNDJqTEphZnVMQnZhbTVkRVNKTXd0NFJ0NktVd2l2MXh2enk2ZEVUMlBhZ2x2WUZyL2dlYWdRRTBXcEFFaDJCZnBwd2NJVHlaQXk4WER5UVVBTzQ1eGdTcTFBMHhCZ1pZdWxJL3Q0bkxzYnRnQUFrQzBvZjUwSkxkYURtb3hkVWszRHJwbHRmV0RkRXEzQ0VjQU80WGlqWk83Rk9zWG02WW1DN0RWUzhzc0pZMmIvRHloZ3hoVEQyTUFCL3pYQm5zcmVjaVhIempxWmdBTUZOcW5vZEQyRC9IOTllZDhzdWJsMWhRNHdCQnJkUjd3SHQvMnIrOEZZcmdldFVpbWt2dHJ6dWhQd09DUnRTbzdza1IrblpRQ3NEUUloS2IrWndPK2dsZFo3dDBhWTVQaU0vbHlYMExNdVhZelZzTUlEMGgrbFk2NFlSb1pLS0tBUkM5Q3VoWkZmZUZLRmdxVjR4SDNWUDR6QnR3Y3VVa1dCem9uRURJSElOMUZ0QWxZTVBVT3dqOWlhb1JxU1kwUXZ5VE9aVElBT29INVRDZk5ENnhyWG5PWmJoTTgyeUY1ZlE5TEdkMjh4S0xJUkxUZ3hMdFlLRkNlUFlmOXMrdUJpTmxSRkRSa2dHTVpRNE5lVXZYMHd5Y2crU3k4Tis1K29MeDJ0Sk5xY0tRZU1yaGI0NEtlTFB5Y2tnckdVQmFVekRBQVVQTHhiV2xTTDY4M0NOMDJzMlZIcW5tRDI5WkZIWU5KSGZ0SnV6M2JhWmxlRFFtdWN4K2pUaVRJNHpaSlp6dlNaL1R6Slg5QUt3akF6VE4yaEFRMEowckRJenc4MW9QTW5oeFprZ2FCdVpKSEJVRDgwNDNMd0d3QVRibzNscWFCd3N1LzdpL0hZNjRBdjFWOG1HMmxxM2pTNENPNUR5QkNzQVdLQkVCRmpDMWtBOVRnZG5NaVNLYTBpd3o3NUcvaWZQRHlTdFJ4NHY5VFNNTkRKQS9Dd2FRd1ZnbnVNUVpJSVRFZUtQZ0NUS0F2em0xSFdscFVXQ1hqQWF4VytRSjZQbmNGakpnZDZqSUlEUnhiM2c0dndNMGJWbUMxSDQwcXJIbkRBeVVRVHFKZ294YmlUSUdZZ2E4UkVaaDFHRlVxOUFmRU0yYmx4QmpLQWRVN2NFVldQZit0UDhZQWNralUvUzZERWplUVBSVURXdVBNMERpR2lURUtrUll3L21GaCtrVzBJYU1PRUlmbDA0WEt5VWo5KzNOOUF2UHFwWDQySEZBaTU4cjVRZUx1UFo3QXNacTRRa3lmYWdtQ0ZjTEtvU0xTNzQ1QTZNanVoa25vTXQxK2oyQlpGM2lHY0dqSHJLdk1mTGRpRG9IOTBxVE5leGtRbFFhZ1R0SG14QjZ1cUlJRFUyQnRnOGNMRzhFbks0TW9FTlYvUUFsaVNBWWJsNWloSHN5d0NxdUFKMy91RCsvVDQ0QXVJc0hFSDlidFdkQ0srOHdqM3VKYklLQ2F6QWxxcGIyc0dMSVFpdmI2bThpcUk0VnNMamJCWGZqbkJIK3c0QzJmaHFrVDFwZ2ZhbGRvUk1iQlFBQ0FoWWFpSWI2MTRtcmo0d0k0TDVHT2V2Q2R6OWJYTGIwQ1dnSDZPQ25aN1FuNGs3MmNteXZEY0JJSElSTVJRL1dCV21CZy83bXVid1Zid1RZUEc4aVpCRHNqaDNSSndqOXIxOEMraE9RcndlMDRaMFVNQ0x0V3YvUHp2ZnZRM3NBbEoraUIzM1pIb2pvdmNPa1hISG5yS1A5SFFncHpNSEhKVjdpTFljTWNCYU9sUDQyU1VsNE1qZ0FlQi9ja0tQSkFhMS9JbjBBQm9NY3JHVDR4aElhSk1EQUhiOUtRRHlvb0ZJMmYrblQ5K3d5aXM0QWx5VlVubjBuYTdPbDVnZDRlWHVRWnNpenBmUXRaL0tQdEJrK1ZnNUI5MFFITElIYTgyS1pFTDZQZnVxU3Q1Sm11Z3I2bC9ydlJnL2d5TDFjaGU2TlB1VFV1bVFEOUt0TzNlWDBYUTVvd3p2Sm1adk5XSTdYL1dPOTRNcjVlRTg1dXBuaENYTGtYdHI3Vkg3TFVBamphVi9aeUVvLzdyQW9rZjZuSTRqSVJXem9jeEJjbFVObWdMWWpSd29vUm1uNldyaVkrUmN3NWt1T3BnOW8rVk1KdCtSZzNJczBzTEVUd0xoMzZoWG9Td0RsaS93SEtoQTJpVi95MmVEeXBYMmpxZzFqZzh0cTJnanRzaEZheXBrOEpQKzhXNXR1OU1CVU85RWw1MjJtUElJZTlMTUJVWXV4eHhIOWQ4cGJRVmZCMEQveTN2NFEvZmZSbjdhY3lkVit3UHFJNnowYVoyckRBTS80WXpyV2ZtdnY2QUJhbHVmN0FYMS9IQVdqQ3l0TWRYd2UzMjBzeHRiSHdaQ1JseGJvWUN4S1hJd3dCYjhpMzBMT1Fkd3loOHlnNnh3cFBjQnZNdzdRY1NoSElLNmIrU1h4NVNjT2hwTEVQMDZlSGtQSEMzWFlnNWlRYWc2Y0xubzRndmo5NkwyZ09xWU4yQ01QWVVadWxtUVNuVWRrT3BIV004eFd1VUI3ck4rNFhESDFrTDdXcC8rcWVEZHhjRHBSVXJ6b1ZORUQyby9GUUg2aTAwUUlNUEh5VU8zQmllOGc2UkhMTjlxOXJidjRHeEp1TnJNYm9VTmYwZFloN1IrSEhIamhQSk9qdUJwTEFPY0UreWcwd1NWNzVnZllUUFU3TUNReGtabHg1WTFpY0VPNWhnYVJSVXBMSHk3bmRNWCtDQytHazBQVVBVNTVIUzdod05vemVTcjY5T05BU25iQ1VVRFJzVTl4YnJ5cXR4cEhEK0Q5dWRJOUlJbU1LZGdpODdtVVlvSElXK3l0Z2RkZjlYd3NhQS8zNWNxdlBWaU80RHF4MllHQlJCOHY0RHAxV21JdThRcHFIWEV5OUFGR1lwb21nTXRUUjdBMTlYa3JEZk5PbEduOE1DUXliNFFPWm4zNWFtc0NPUDhKcXF2Y1NwVWZoZGErTVU5TTVnalpFbEhERENFMlg2Y2J6azBpMWlubTFNVTd6UW04TnhuQmREUnlWaXBJZUduVEJFMUg0bExPb2REMUhWdHQ0T000R2xDLy9WeDBjU0hTVG15WmN0Uk9Cak9VdHJYN0FZSm5LcDdDRUtXSHVxNm5jdGxTOFQ5S3cvNGZsejhqb1FzUGZadSt3M0daUU5FM215YXNncWJMNmdxSlFjT29NOWtLK3Z3QzZFN21OeDlxRjNZUmVBWk90cDhUVTJ2VGNMMTFyZHBJQ2pmb2MzZUVXR1RxeS9yMzFtMGF1SkgweEJPL25iMjRGNWpZVVhtc0dmTjBHNGloTUlOVzVBZ2hwdTZMT1lKTW81bHh1cjNvcStEbTFqMXp3Zk5HQlVpb3o0d3RwaXpFRm9rbUV1a0ZUUzFwQTc1d1FyOFRHR01XbXI5dndPMDcwSmVxaU00bmpxY0JLRE81Q29GMkRzR3pwQzF2OENQNmJuZllqZHdwK2x5bWNyQlVNVHhFcUJFUjRicWRIaWxPdFVPRE5QMElaOTM4WTY5TElLTFpLYmJXSnp2WXM0ZlhCbTVSRHVnbTltelB3TW40aWJ2RGd1YWZadnZxYzRkTVJMUTUwUWdJYzVPL2FkV2tmVVd3Q21GMjRiZzloelZnSkVlSmN2VmJxWWxnMUxFcklrZklxa3R6cHRMLzN6dVFwWmh1NUFDYnhwZzV6NjBaL285eURsUDI4S045MDU2c1krU0J3Y09zdFhzdURjaWNjaVlTR0FLUnRvTXpUaVVIV0lZTmppZGV5bE1OQUphaXdUNjBlMnVQM29uWWVNdUxzaHFnOTlWaCtYYnVEbVlpT1dRUkp0aE9FeEd1YmtjMVNUR1NESEVLQ2pLY2kxMVJVS3NZTk13QUdpU2tiN0E2OStRdy9jTkhqeDF1NW5wRjA0T1hBaWZiei9PNllheXNmUm90YTNONWNPR05YcTM3VldvTjkydHMzQnlydHcvZksrMkJBN2hOQnl1R05nVm9BYkh0OGh5N2dzRUM3dEN3ZEViLy92ZE9SVGt0VkpSb1JtallPdElzNGhsa3NHNlEvcDRIWnk3TjBmcWh3aGxBU283d25XWlVEcEU1eGZyQkdMcG5OdXRoWTRFY1dPSk50SFIwUEFkbVNUVm5lcjlQV01wVUZ3REVLdmJuaERBcy9aVDF1YlFTNjJlUURtb1VIcXdYSHE3Q0xTdlNuNmlEc0dFb2pibXhYd2xjWlZRRlZxSTZFQ0N4SURPVFdIa0ZETmxDMWN4UUF0KzhJempoZEJSWGdUVFkwbUc3bkY0SituRUdvT0c5UDI4OFFHcXZYNVVlQVhFdnlWZlFnYzJ6RVJzamgrMEtEMjVQbCtZUExBRkdTSjl1R093dzYrQnJNWTBwdldRSzRDb2s3UU43QkF6T29FRGZ1WW16dkNZTHVIbGVkUERLaERCTU5PTUljdEQvc0VDMDJaTXVRNURtU0lBQlh4ck14alpxN3JXd3RERDR6WVFONGJYUkJDS2ZDWUNXZC9KNDhqNjhaK1JXTEZNZWppRE91UVh5V2tBRk16dFR4UUEwT1hrUWZac0JvQUhBaFlJcjlCa1R2clg5eEJFTWZmaHM2VjNyMHhOMm13RVlmVmVuUmptRjMrV2piL2tNM0Z1MU1RWll5NzNsR1F2UHBXRjVWQXBRSFVUQUhSUDFjYnBSSENIYjFZOElHRzcwd01SemdURVZJak5TUlhvZmswdXArMDBpcndrVk9XcC9LaktzSDRoUzZIOWRPSi9jQTJtRHdUd2F4Z0h1ZnRaTHdUcUlva0Yyby9Bak1EeGNCTWxLQkVNNHFiL2lNeFp6OWREcEVlSmVxV25CRk40elA1S3BZTFE3RjB2QWlrYm5HMHNBdmNQU3RSYjh4RTRkUGFzMGZ1T25Ic0hKSHJXaGVQdWRSajFTcVAwT0F3eDZ3UUNleVlOUkFYTkVUOXBRNkNQZ0VXb1duekk1cWRtNFF6MUdoZ3h3UExXbUcyR2pLUUdVZWYzZWV6SUFNdllvMkRMUysyQnZrWWJjTGhHNEhWdEFpb1F3Wjh1UVF6VVE1NCtRYVFmL3dMZndHTkpjSmFVbHgvSkZnUXNkbDdtbTV4bnVUSlVjblFkc09xallIam9EYUZhSnlEQUhvcm1tQmJWQlZDaGM2OUhjT0pWS1lPRjJnb2JOdmtFb2dmNklzcDBKU0ZhK2tKL0NSQkQxVlJBNzhoU1FKRDlqQUxqemRIeWFQdkV6aVpSRytMUkd1cHVybklsaXRvamtsc0M1QlVOZVoxVWVBT2pmMkFiNkNnbEM2bURIQ21GQ25zbWxsRElVSEV6Ym1YNDc1a0Z5ckRaMVArZ0dndzUwWFhDNEo0UkIvODdWUUh3R2h0T1NyVkFUWnhLVUhZNkFBWmg0emJIdGo0a0JneCtCTzY2VnpBV045NlNYRW9HUFBqMGxHbHduYzZkYlMzTmt6Um5xSG9vcUdCa0FlZ1MyZ1NwM25BRzREUnlaeTl1M2dTNWtEdGtZaDVweFV4M0xKMG84SktnbDhqQUQzRzh6QU5Ra0tJRk5zL1lQTG1NUGtYbXNiNkU2eGkrbVVCNGFDQmdMWTFpMlVqOUFtb01CeXVuV0p4aUNpVDh4cTVoR3pPRmtzUWN3WGhaeWVwYXRZekFGQmhxcXcxa0czZFEwSm9USjFrc2NRdEh3L1hUdDZZR0JKOGprR0JQWFZQMVFEMmtFU2Vqb1U3ZXkzVHNYNktHRzRTTHl6ZlU1anZJblpIQ2sycWp4SEUrdmJUQ0xCOUY5QXBwaVNyTXpnRHpYVzBaTzVnMllZRE9pbVI0d2lSMkJjcE1CcU82ZkI1QTZaT0NNa0JrQlFMTVFyU0x3TUZpY2V6b05vSzNBcVpjb0hNWlo3NU1CY3JwbFhzc2ZxZ1JFWXIzMU9zRWsvMEFGQ0xCMjZwWGZzU3pJQkVEV0x3dU9XNWRncUdqOVpJQis5akxFRkZxWUhGQ0VDZzAzTllJcGYzQXpRWVhrY05Cb3I2WVBOWk83ZHhqcGlEL0lsMDBHc05pOFl2akxtN2ZSVEFGUU9lU0hsL0NxQVJ1MzhKdFdYaHlleUd0QlJDZmNUUVlnYjh0WHFXempFbGFBQUxBUU53RUNHSHR1MTU2MmlHNmVWZW1mekRZREJwaVYweTB6MjFvT1c0L0ZheXJWUVE0bFdQdHpFVExGRmNOZTMyYVZMMUtRNm1TQUpsb3lnSncrOTJZTW9LNjlTUHRnNmFsL3lnQWUzTHpRREhDck0zVXJHaWNzTmdTU1BKWGdnZ0Urc1gvNlBRYllaNWFLakJJK2x2aTZFWm9iOFpZdE1NU21obXdSdmZGekJnaDFmNkZyT3BYWUFvSFVoUWtnTUNkdTNKZ2pGVlZHUkpiWU9qME50S1FTK0lRRVdHQkxURGZMZTgyOFhIR0lxZ01ZSU1IYS9RVHFhaThKZ1RVREFvRERsQmdOTm9zWmlld08wVXRyU1J4ZzB0NzlUeGtnUDA3SUR0MHFvOFlyb2pIZXZWd0NGbVRYMzJJQUg1RUtLMXd4d0dUTEJ0MjB6UURqcTJpeFpJREY0cElCTWxYbjJrS0E2N3d5dWltUnpod041blk5SURTMDd3SW1NWTRwdVlRQlZKYkQ3S1Z6bWZxQkhlSTBydzhsYXlSWU95S0tUOTl1UTJWT1Vnb0FMRG5KQUJZVFFpTngwcm5MTmlRT0pBNlFpajlsQUJ5TVhIR2llWE9NUWJTQU9CL214ZGNuQXpCQSsvY1lnQ1BDTEJXRXM1UXZsOGdMTlp6OElRUDBwRjB5QUhoYmQ3eXJjd2o2dksrT3NvalRCUFFGd3lBWGxVZGd3aC9FWVVoYTNtRXVPeVRHOUFOM0ZkdzhCQlV3d2RyOXpObkZURzVPZUdxcGVGcUowbUlUV1ZOT2RPK0Z3Rzh6d1BmUEdTQWtLOGhMdlF0RFdhY1dLYjYrb0EzMGxOSHZNTUMra0tPWk1hb1NUMngwSDF4ZEFnWTNBTU0wcTE5bEFOMVlkbXhFV3d6UTZjRSttQXdBVGlLOE5qbEcxc25hRkdEUXNLOENvcXYvbDY2Q0g3Y1BRV3pFcHFKSmJZamVzaUVwYjRLWURvcGtnQ0VhZGxEalNnS2s3K2hQR1lDWUpLNkNMd1RNdVNzbE5XWitmWXMyUGRNWWZvTUJUblhHb0lDbTVNdlZ5SXRMQnZBVDhkdmZLNWVBcHJsY0FxQURybGFtMU5VTW9DKzhtNnU5SmNWS3NjK1lETXN4akpkUGtmMGxPa0JpTGhKMGo3VG5OdzlSQlNTSzlKeEFYUWJuaFlXQ0EvdFVwK3hiV1RQcmNxVURoTy9vanhuZ0VxNmRlS0NTYUdWbWlhUU5sTWRCNTljTVVBRlV5Zy8zbHp1MGtSZHRCdUJheFQwN1lKbDgwZHZid1BjM0F2U1I2NU5Ea3JzQVMzV2FYMTl1WXFzeExHZHQ1QXIyN1J4NncxV0FPT25iaHlEcFhacnd5VzU0eFZNNFJyWUpuZFFKdTlaczlsYnRYUURINlk4WjRIYjZqYVd0VnBHT3p2ZkZCUU53cy9vYkRGQ01DSWJjVmNvTE84Qk5Cb0Q1a1JEUkovalNmSzBpQTF5VkFJWlp4TjA1SkNuVjRBUUsxR2JGQUlScXVoNVZBVUVKRERtV3FVS1RwZUZHdlhVSWd2NHQ5SW55aGhRQjlCR3BVS0k1eGhuZzg4RFdyeGpnZzIzeGY4QUFtWWltU2tpNUxHaGpFTTdmWUlBVWZDcVQ4MTc1Y3Q0NjE1Y0E1SnZ4ZmZJUU96aXFWN2NaSUZETDVSSVFsc0E1Tm9hZHpHTDdub3NNTGd3bDBEZDFwY2krMit2aVREN2h2NXpMWHpjUGNYZmdpZUZkMm5vcEhVK1dhZ1pSb21sQ0F2UzkxUktnWWZ0Zk1VQ2RmaU1NcVpucVVGcCtmVUVieXlzeitDVUQrSWg4TWt0RmZIaStYSVc4dUdRQUtxUTBXTWk2M3VoNy9kd1paRExERW96dXlBQUoydXdyYmxjVHdic3ZJSFFBMGJib3VhYXZGbFNvUFVMSUR4Q3BCRWhSaHVyY1BsU3FWVEttWkE1b3lSUWNtVkpsYUlDVFhBSUdiTHRhQjJDamUrMXZLb0hUbUN0b3dja0ZiYnJZdUs1L3pRQWNFWWRaZnNTOThwSUNlYkU1dFJtQWZrUGJwY21NbnN2L2NwQnU2Z0NaczZQYnpWM0EySEdZQWdXR056QlFtdE93ME82WTFpOUJ6UmNlSWM4UGdOT1VhR2srT2Q0K1ZJQzFyWDNrSG9FaUFJc2I1aG9tUWpBQTVEQWFZcllLT3NNNllPbW1OcWUvdUExMHkwMHNNNS84K3BJMnlESFVYRExBc1BZRmNFUnlxZjl3bGJMVXZOZ1FZTnBtQUlmZUtZVDNzRkNVNkJ3WXdaOUxBRTdEbFNLcEMzdmZGalFnUmpoUW1oeDk3YUhoS0VITkZ4Nmh1Mkl1YXl2NFpYL3pVS3FBMmVJcHJJeVNYNDNJdkpJQnVsdHIrdEVsbmJVOUkwVHlKeExnencxQkVRclRzSVhjTG1oalM5YmNHU0ExZFFGWkZXbGcyMWtxVXFVc2VNYWJBWGJiREtCR1M1cjJ5VUp6WWhkL3BRTXMxTW14V0hDejV3NmZoVWNFQlVyVHpQSGtNTG1xQWpWSEZoR0s3THVZeXh5ZHpNNTl1bjBvV2NOYnZVZTQrR284K1JlR0lLVytSVFlMeTl4a2dEODNCU2Nicy9VOUkxWHhscWExSHVpTGdxWk9WN3N2cjNoTzdpYzdhRGtyTWdHUU4rUDlpNkdJV0Q2cjZxSnBzQnB6ZVA5cUYzRDRBQmlja2cwamgzSW5qaEZXK3JjcVZ2U0pIWStJWFNkcUtGdDNGM001ZGphejI0ZEt0UXF0TWdYOGtnSFlXcVpnYTEwNlVmNlFBYkRWdStvTUNqYm1neU9wNkZ1VnBoMjVZejQveVFCVWxSWUl0c2xVWldXV2lvbTA4T3ZtM21zZERVUzlaSURFVDQ1R3FPS2pkUVB3a2IreUE4d2JqWE5ZdTc4TUE2U0JKbzRSOXZLbHAyVUJFay9zK0RkRFBNTGdDRkxlZVE3ek9WdXhzN2w5aUFNRTVZQlZuMUt2L0NVRG9Mbk5wMUFDZC9LZk5IdkVIekxBYVhQTEhaeEVRM0FhTjZoWXNNcTN0QkJHWjRDc3ZHSExLOFBTTUNKMHA2R2NHejg4MytmajRLMjV3UUJmQWVGVm5NSndKSTloeW9XYlVjRUlocElnZE9qSVovckw4STVLK201Z2hJblNQUWFIc1RTcWw0aWpkNGVSL0taczNYblZqbDdNNVVpSWZmc1FkNU1IcnVmUWl6TFM2QmNNRUEwSHEyMWdaaEw0VXdiWUwyOEZoS1JsZkRUUmlzcEZERTZaRXM5TUY1NXZqUWg1THE5ZWU0ZUNqMUV6ekZKUmhxZzEvV3cxQXhSRldsaFg4QVgxcTFHbWJvQVlqOXU0QU11MUJWakl5R2dIWlorMU1haDBFZ0ZyY0pma01FQ0p2QzYwMmZDSkFMQWF5SGVNYnVrUEx1Ynk5UFlocWxYUWdCOGVVc1JpRGZnRkEzampRUWFFWktzWjRPT0NBUllsQTJUVzIrc2hZYkhYYXhxWDFQeVZtVFhYU0hadjY2dzBNRUNFVk9UeXlyMGVnOUlvSmpKRXpmUE1aclBZdlFnOERBRkovS1JoRlI4MDlZSWx3dm9KTWdnMTBBa1ZDOXB0RkJZRURGeUJLZGEyZHhBOGtkSEFMU1BOQXFLOGlBRWl2OXdWMUpOR3V0S2dkUE1RckM0ZUpHSVJVbEZNckdDQXBybGdnQ3I0S3hoZ1hqWm1aK1FCai9vdmtvU2t5QzJ5M21adUNxd2prYmdpMXp3UXJmNzE0Z1dHdGxsc0NPdEdKdm5nOGdxOEJKTlFlTUVWaUFuK2lrelQyVmhaaWFRa2FvdGVOa1hWTGNjS2lRVWVFRUw2SjloQUJhb1FWeDF3eTVuaU4wbDViVURBYmd3SnUwOE9VNzdBNFNYd1BzUTJvMGtYTW9TTUJwVGZiK21iUUxqbXp3NXRSMUUrREVzRmY0RlVsNXJHa2U1amRHVnpRcTdxWHVnQUd6K3dxbFB6NVlEekJ3K25ib1hSanNRVlJvQ1FtNW51Z3lLZE5kaGZIdk52S3pwYnB1QWdCcFJKS0x6Z2lvaUovS1UvUUxGc1Zpc3VTZmw2ejBBTDRpZFBRTVhjT3g3NE5qb1lVTmtwNGQ4RW8wK3piWURpMDV2WkthQXNPT3lkZ0doSENIOTlFZHRNSUxReUFHTTRMV01sZExzSTRyeDl5Q084d2VRWkNaN0pvbkxVbjBBZTIzODhTZXh0L21jSEFYcUxSdEtvZHlVT2JPMnVtU1NFQXg0L2NOaDFLMHBLRnQrbFNrejhLZ1RDZmY3QzJpb05BSVg0R3dFeFRQSlJwT0RZS0wyWWhFSTZ5Q1FQL2dzLzZ2WVMrWDg4UXdKeEZXQUJURWFkbko0UkFISWJUZWRyNWdjQWthWEhFa0FzMGFiRWhDTVhCcktQSElGenp1Y2U0L1c0RWtTYUlnNEhTNlpMN2VDY1orTnExajNlUGpSOUpDWVlVUzlnL3ZqbEVOcFMwOURtUU9Kc1cwOHhYbmN6YmFNZmdIZ014SFlNZi9WRHg1VzZsYTF2VEZ3aC9VeGs0Y0JYcm9EOHBRTkpLVm9PcWd6enljaVJLVGc0L0NsWGdYVjdqMStRdVhXYmNpYnlBT0xhQ0syemVFdTlIRTJ1UndvaFpCYnhIc3NRa20vRkJkNlIxOEdzS3RtWnR3N01iN0JvQXJkVlBobGlHdkxIZE9WaHpyTWphZ2Y3UEt0bjNmdnRRODVzV0l6QWVtLzhaU3ROanJxdFZtaVhjNFFweGltUzJDaWI5bkZBS09sSkNxWXhZTEtBZW82UXFTSFdNamNGWnhIR0gyeVJ1VGlVYXY0TGRTM3RoME1YcFRudHBBTVRsTXVyejhlbFo1dzRGY3VzWlFmQ0N2enU5SHJIV3F4VFRqNDdTQWdCWUJMQWxxeVNoNW5od0h1UTE4QkpqVmtCZERZQ05ZVTB1VnlwZHVlNWxkekV2aVJ3VzlmSVlSWUpJcVEyVjlyOVhTYmtzWVVuZjQxdkh5SlhrOG5qbDZmektFZGRwbzRuVWJtWUk5Qk1aampPbHRySk53NlFPcG1rZ0FxTmovdzd0UnRFc0RFM1JUbHB3QUZCQTBEY0FWN21vcG01S3BDNUkxbjB4VHBPTXl5dlBFQXBqb3dUSm1JOWJSR1R2U0ZGQ1AwQUwyQk1ScVFIQ1UvMnBrVGtJbU5Ecm1LR2llWjh4UnNVcEhaZjY1Y2oxRU5oUmVJS1Q1VG9UcllOODk0T2tCSTdpZ1FSVXB1Njl2Nk9XRTRtUWFsbVhYRm9WazNJSW1HSTdpNmdjUEJrYmptL2M1ekhkYUtRSFBRcDhoM2xtWFdlRUI2NFRGSWdMWlppTG5lR1dhWnVkVEZwa2dZWVZhUXY0S0taMlMzZzRrcEY3Z2tkMzBjN2VlWUhuZ3c5Znp4K015blZNOU94UGJnU3Azb2p1MEJDWWxKSVFrOTZKamQyZzIzcXNhQS9NeHl3RUhXUzJ2MHo4bXpmVVBtVzFWTFgwSFllYm5abXZvWXRPQ3BqNHBubTkvTE1BM2VSa0lkWmVueldiZXgzSk9rcFo2b21INHA4SVpGV3luT3BqUEdWSE9hVUhFYVBtU2NJOFFraFovcXAwenBQaUIrWVZVa0s1RUFxNDh4MllndXJhZGNYaythWU5OaDZGV3B0ZTh2Y1d1aVp5OWpLNmZqejdVeTU1SUZBejMvaGF1NENtWEJDMVN1NVgrUnVCQW1KU2dNSkxiSEZrZE9EK1ExeUo3dDNUTHoyZEFFNUlxa2RhTWhNTzYxS0hWemFTc3RaK29RWGlnMkFGY3d6Z2NQekRVaWx4UU5rbHA2d0RrU0NIOCtOUmtrNlk5b2U1dml5RlVrSG5RQWlEaVU1UUllWjVwbmNoVEVqUitvZ09oKzA4UjUxbmhCdDVTMFlXNUxiY1RrVmhLSnFyV2t0TGlaTlFRTkdBMy9USUFJRHhqbDNtb1lpTjFBUHA2dXYxVTliSEFqMFBQbHNwSmtvbUhDQ00zclhxN0xjSjJpVWlTMkVWc3loUUpUNFlrNEdpRlRDaHFuRms1elVFTml1eUZRTTRDUnFNd0RMeDRqdm9Ja3FQMHdaT3o4UXpxMWk1MDZrRVZYMFRPaHo0b1JtZGtSU3c2Uld5c3laNVF2SktiSUMzcE15NEllMGJ6ZlFCdDdEZkRibjBFR1ljZWlIMzZQTUV3SkNFYnlPVy9nMVlaRERaeFdiYTZnQXJVbWozMElhWUtDWkFJV3ZKdjFwYTFxNnBaYzRlNllYMmRERTJQUVRQYy9vZDFSU1lzSUp6bWhZajdQT3hUSks2eGtOb1BmWTlHSitBNTRwaWc1WUFsSTdVTnBWeFpOSXJWVXdRSkxvZ2dHZWtQbEVIR05nVVppM0hMbUpQQXlBTFh4cGhwRFNRekF4SEdrbU1ScHVTWTN5TE9KcjZWL3dLZEtiRzI2TmVRVHNDQkpDQk9LTDcrNDZ5TWFTQURvTUZVQms1QW5oMnhXM1NDL0IvaHFoc1A2ZlZPRjhyQ2JORWttcEFOeEZlQUJGT0JlQUxnTm5LQUYwMEpEVmd0UFZrejh4Z1VXQm5qOXQzTWw4Y0t0LzVuMkFrNS9SOE5DNlJwSFl3a1FzMVd2bU4raDBzUi9HQ3RJRkhIN2RaMTZOOTVJQk1yVldNb0NUU0RyYlN3QUUxR3BYZVFRTnVVa3p0VkgxVG1hT3c3d2NyVFZHTW9aUng0QmFrTWhtekF2N25wSTUwa2pJd0pGMndJUHhFS2k2TE9VY2dpUXJsbGFWUTBVaTVtUGtDYUY4aXVnaWpHRGVZdWxCVmRyRnl2eklRQVl0WHBlb0tpSjBpcVdhc0JsYnhKY25wVDl2Y3Vpdm1TYzVTYzNwYW1sNXlSWkNLcURuVFpBNTZQZHcwRUJOeUJvUDBZTUhtUVdqQVE5L2dseEhZZ3ZicE1jR0cza3NWbHdlc1VGWG9MUVdNb01SWFFheUhLNU1yWlVNY0FhSjBObVdBSkNuZzNrVkUyQVN3RmtXYStmZGZ3cVlWOU1RVzBiL3M5cnJlejdHU2d0Q0Y0eVpIeE1pd0hGckdxVlNJQVJPU0pLbEF0QzYyNlU4WVk2eFBSK3pJRm1lRUsrandDektsS0hrTFUvSEFwbzRvYUF5eXF4a1J0dUNBUXpkTFBFQjZxcnZNUVdPcGR2R3dnQ3ZJVmtjVmpMalpOYVJRSUxDU0VXeGMxK3Q1WGx5UXptVndQQTZud0hIWVlnMlpXYkhIQ01Vc1pGRFFlZWl1M2ZCWjJZTDUvOG9BK1Z3RmFtMWdnRjZTZ3p4VldGZ2FnYXdaQW9BbEI0aUtxaU9uVFpzWUFuellrbklhVVNnZkh4Z1BvWTZ6VXdTRUZCY0JHRDM5UUlESURYekNKZ3QwbzlRQnBVTVVCbHNHZVRNUENIdVE2Sm1rTlVMOUprcWNqaFYrNnJkNGhaTTFNaWMxc2tBdGh2cWVZa0cxZ2ZEYlpXQ3VoWjFxTnVmNkhVZDBkOG5pazdFUldtWDdxY1o3VzNwMXhtRTJtSFZ6RVRlVGpwOHRZUjdRYnk2aU9WS2pPaEkvU1BEME14SlBzU0x0UUxjUjd0SXJSVU0wS2h6RmNNbHZGSXhRTlN0VVVBcFZpVFlESzR5QUtkMkZrWGlMN2w0M2hEYldTRGpJVFl4UnpuellxL1NXNVY1QkN6anNFSnVvUnBnbmFzWUFCNnlyV1hNSndOZ21BZVJqNFU3UU54Y0l5ZE5mcnRhUGxvaFFValhVWmpZN1kyZ0xXWnBLeTcwVnFRbDRpTXpLRXZhaXJvOWQyR20ySWNhbjBVZXNKaGFyMm5Ud041N21ycHBnVVlDdzZBNzRWNlErRTNUTGlJTVFyWWprWVdRbHdpSGM4K0RYRUlDOUJlTkJqblRRMWN4UUZhdUVqMGdjamhjWTRBQzVyWGdXUjd2TlIrZ0VMQ2ozRUtuSDdDV1JKVGFRZTlxQnpQVWlsc29idXM0eWp0ZGZoOHFoS0IxbXpaNkltOTFMRXVNWldSU0lGNFYyMFJDWmIyTTlScU1BV0dFdFlJTDE3eFhGUXRGQVNkNVdvNkRsN1VvazhtTWFUdURZdDhQTmQ3M1p1aEZaRWlLVWhTWGd1V2xqdW1WUmNmelYyYnY5ZnJNdjgwQVowV3c4dkdPc1VHYXFaN0h3dGNNNEFzU0NuNUh0TVkxQmtpWUZ6bXBLSTNmWFZWbEFaRk9jaUtkaUtIZzl1REVaZFlETWM1TUdMV2tHcEtqL0ZUdWEzcHpkRE85bUZjYTBYdGs0ZlpXZENOdlVWYk1FWnA0clJOcTRYMlQ5YzRBbVpBSGdhTE1sUkFaRnlSMktOSzBSZFc0QlFzeG9UZVVlL1JTaEpBQkZzQUhYREtBMlozQXJuK05BWlQrdmcxTjYwQ255MWo0TmdQa2dyUU5kTkQyS2dNVU1DOENQOEFBaGlpckdNRFR5V0ZyTVJqNDltREpaZGFHYzRGZFhCUTJPck5iZGUwNlMwQWYzUTIxdUhHUkJDTUt0MDk5eVdFdkNSWDZJc3I3SGJnQ01tRFhGaTdOd2RncTVBdHAyelN0akF2ejlUeWlSeVBqelJxeHVpdytwV01ENVI2OW40VW9IY1FTRUF4Z2haUTF2dERCcjMrTEFRcjZsM2FBTHU1Nmd3RW9CbDhuN0w3QkFBbnpZcnhYTUlBczA1bE9ZbWFZUDZKVXJTSVZqRW1iV0dhYk5TckxzcmIwZTZnaEhPVXlUOGduNnJZMWg4Z2U0V2daNmMzaXo0U1lMWkFhUTNzUnk0dGVWRjFVUUl6SHFJUVdEckhZa0FFd3FvUXVic01BRmV2MVlLY0k5cXBvTHFwS2lyQUk2NXV2am1mRGoyWFFhQ2lCS1phSm9aYlJKUGoxcnpHQURnME5rWlVsOERjWWdOMDNHYUN0QW00S0JxRDBMSE1ob3BEOHdtclNRZllTZXFzcXcvazhFSUl3ZHB3UU9Pa1c5WGZ0NExGWXZub3k5c3dmaytGbjBGbHl4WW9nWEhpMEdNdkx1WVlianJqT09iUlNQaGxpOFJ5V2hoeFZYYnhZcXdibklyeTYwOG54OEZ4WlBaMiswa3NHOE5BejlMbzhuSXB1NmhQTGZPMUYxcmJSU0M3WHFPQy95QUFLcVdQVzVOTWZNb0E4N0djTWtFa2dQT1k3R1lEQnZzU0plT0ZWUmFtdTV3dEt6Z0ttN05DMWxKS1FrZHE5aTFSRjhXWkNDeDltaXpHelM2VU4zSG1ST0RidHpiVXU4Ym1ycUhPZHdoNmplcDBCdEpsNVpRSW5BRlI3SHc5NkdCZ0lHZ3lBMExNVmU1MEIxSXhRNXJCNlgvb29vdWg1cjJGUnk3L0VBSjhmQjVrcUZMbS95UUNPbFozOFFnZUlKQkFCN2tvR3NGc3dNV0ZVR2RmSnV4cEUvam5IdStzSE0rc2RLUDJTRzM1ZElpaFNTOWE4d3BrOXRFeWdRclpBNDJxa0h4b1FqS1JKS2V3TEJuaTd1Z1RFaHNIQy9tbk1EOTFTeXpHNkVoRVp0N1NUeUtFTDJNTFV3Vkk2TEZZVmxIYkx2OFFBaDhZVzBlM3ZMZ0VaME5udHdvN0swYjlrZ0VnQ0VmRE9OZ05FbmJqTWJERHNodXh0b3l0NkYva3VSQ202RHQwdjA2V1J0OWpZNjBLRXJRb2tqendESHhmalZ6QUFWVGhrUzZtVlFHS3RGdEpTQWlEaG9pRS8vUVpRa0FFUlFlOTFCaGpET0pFRk5zTVo5SmNZUUtoZ1NaZk0rZlViREJEeVNOVWNHY1BiZG9BRUROUGdjNnFYZ01XY0hBQVo1NWpiQkZTODFBeVFRMTl1aTY0elFJSHNjTlhRV3psUTJWc3hRRC9henhnZzFxZVY2bkRjQnJvV1lRV0VpL0wreE8yTEVBOGRnT2lZd3h5OU54bkF2UmtxVnc0b0FvQ1lncHNNd0hWTzdDUzlTeEVtZkhneFhOQjZhZEQ5TlFPUW03blJTUXZZRlFZZ3pDdnh3cWRLQ2RScm1ZKzdXaytKdi85Zk1jQTJHY0I3ZTk0RzVVeUozbUFBd0Z1amRXNHVBZTlaWnh2VnRKdGFYOUIwUllOa0FMNlFBa0tUQVp4WTZMM05BTzdQbEVsakNjbUYvZzVNdFh6em81cFU5aVFSR1RtT2hCcnFKdVJpdUxDaG90L3FOeGhnWEpnNjBnWitsUUdZOGlBU1FaWU1NQUowVVQ2K25YcW1oREZDeXByU1kyTEhGUHZTTkRyTUJEYVhPZ0N0NDF4dlZ2d1BUK1FXbHIwc0ZCcWtYbzJrZFhZclFHbEtZVi80QXR5VkJ6c09sOUg4RXFpdHlRQWNRR3dqbkFGaXlFYXdKTjFrQU9JU3RGeTVlSE54RmpOalVRSkJFanVwMHBNNFh4Q1A2TnNZc3VwVlV6RFZnSjh4Z0tmZWNReDZCWlBLc3J6SkFFeDVrTmpPWkFCNG9BQmV4YkViRXFEWUJRd2RTaytBTGJ2Qi9KZTdnQ0Z4bGdsQ3dRY3FUV2dLREppK2JobFErNFRiTlc0Wk8wci9lUThnMDRTSG03QW4vZEpxK0NuYUdTdmt2dk8rY2tQVlpyRzlMUEM5dXpRazVKc2htVG5zN2xlaGk4UWxzSVM5czhscEhLWm9VSlVNNE52Ymd5b1ZvVmZnVkxMcTRsSmdqblpRQTlKSGlMV1B1TU5nQUxjL2JHcDNCMHROMVdWNWpRRTRjSW51cmhoQW9Zc2thYkg5Z3ZTbTFFOC9xQXJVekg3dkNUVmw5YW5jRVdrSGdQakRjOE1PSU9SREZneVlBbzNVV0t1SitKNUhYbjBPcWxES2ZZZEs2UlQyWVFuY3ZOTnZnRHpPVmsxN2JPb3NNMmdzRHBSQ0NLTFNYcGdTb1JxbVYwWDBCZTA5ZUVMdVN3YjQraTVMMklPa2tWWFFUQ2NMbjZ1MG5acDd3UWdaOXVrNU90ZnVzeWVwNWFsVzh5Wk4ranVzZllZN2hJdElydzhMNUxMR1NURVNwbDJXVjNNRjEzNmc1YjVrQUkwcGgzakhFT2N1UUNWbnlEUERTREtKVlpyODFMVkNIY0lja211TXAwdUFoUm9UNEdzTXlGNWl1eEhwNGRZOUczMVFpcXpsRDF6NGhpc1RabkFHeWRSS2tDblMrMVBpSy8wTjNVNEw4MEpPSllQWHpnUU40a3Ayays5aWI4TUpsZ0kzR1lDZEpta3d3dlJRMEpuaDNrRHpudERCR0hoZ0U5bzdkSHJVVHBCYWpiNmRBWHNSWlVBWUtYR0hzRVVXUG9nbEN5STlFNVhHZ3BKMVdWNGtpNmJnaWN5QkpRT29ZMjZWSUY4TUc2YTZDSlo1WnVEd29DY1lDS3RNTldKRHMyNGk3Rk4va2N0bGtoMDgycURVV1JDL2dMTEY2TFhSMTE3VFJRRDREaDkvUnQrRnNPZTBJZ05nSmlTUUdDV3BlRitRWmQ0TERHdnBUb3dZd3JFRm4xaHZTdGhOSVhCWmdNZEQ4K0c0WktrQ21zL3B6c3lRcXlLaW1JU2tqOW9Mdnp1NE5FaTlCYW5acTdHWmhKRTZHT2grQ3JRd285ODNBSlVnekY2YllTUVFNWmxsZVdkV0w4RG1hZVlPTFJsZzNzd2hUdnVEY3FwelBrS2o5a3JlR0RpNkNLUTM0bjlIN0k0RU5vNFJYblAwR1crMHJCeTBhd2IvUktBdEhJM3ErZDFTQWJNSk5KLzdob3Y1TEhJR1pjazkwQ0NCeEZaTlBiM011MVZnV011QWdvd2lObzgwZTBQQ0xtdUJlMkplVFM5aHoxcVdyS3pvcVJveTZGSTV3REFGRXhJU3JPcDQxTW16ZzB0QmF2d0FkSmk5RzYvQmZPKzRRN1VQRVMyTUtDdXJPejBtb2hUMWZrOE9kSXBLdjJDQTlBUFpxbEF3Z0JZZW8zTXU0TkFvM0VXMzM1bmc5VWhnMGV1WnZwRUlnRWszWFB3bW1RSWp6TkZuMmZwVHJiTTRNR0xqb3cvaFI0dlV5ZVA4QUZWY2pXekRkWm9WTTZqSTEzOXNvWXFCa0xRNEU1emJUUXdydmQxb2lTUGdXaHFkakI1cENWekd3TllsN0szbWRhUnFRUE93NjZ6eHJpMndONnlKSHNpNUlQVUxvTVBzMWV2UnBvN0pBanFjRkI0VEpqejFJNGk5aFVDUTluaGY0ZFR1b0dSa3lZZGdnS1pwc0hSeDlzWlV6L2w0dGtpTUNLVXlxTHhucW1HUjJPMFEzYTZHRUNNc2paT0NFZUF0YkRlaFVhM2U0Zk1UQVZPY1FDQ0szQmk5KzNJR1piNytZd3RWSExWSzlRNUtsZ0lxdThreStaU2xEdmp4M3BTd0lYQXpDTHBWd2g2STFXTkI2NlNmOUFhME1lcUZINGxIMVJiSXVaclU3QlZzR292RjR6WUpZTFZ5cjRIeGlETDRlekM5d2RaUWFoZ2xPRXdIWUQxUlZ3RjlKVU1BNGpsbkx6My9pQmJtZlBUUWNuRDVtMG9xaktlVmNqNTZEWElPODdQaGt3czQxb1JuVzdYZ1dtZGhWaFB0ZlEvRTl6UFJWZzdpSStEbzFhdmFYcGxCWTRpME5wQVlPN2FBZHI4RldSaFdqTjh1U3hXWnRybm9WY2hnQ2x5RFFRQTZreVhzdmZZaWtaTVZWUTFOdDNINC9xTmZFSGhVbnErQzJrbTlTZHlwUW1xUlhZRGpRQWc3SUtxQjhjQXc2ajhRcFpDREpySzhlakpMd09rU2tJbE5kWENJa0VMajdPWHBKK0lGWWo0cThhSzIveHZIODU0NEV1a0cxTERzZHRTNnRMSjdoaFk2QzNvM0tKcHVlR24ydmlob0Y1MDZUZzQ1MURzWXVQcDBNWVBRRDdJVVFHTGdrSUlzTE8ydmdoTlY5b25YejlWU0Q0ekxYdnpHSWY3RVBWblFIdzhtV290aW9VUVJnOUE0UFNURDI1dUxERlRYUFdWeUYwTGNsZFFGN2pRNDNwY1hUMkxCdVVURW04cFJ6ekdEdUMwcUxicURBMnFLUllQdWlGQWwwa05iNHYyRmpYejJZcG9TTVJUek1VbXRZR0RuMnJIS3FLT05zblpyUHpsZm1ZV2poRzRRbW9qZlFtZUpZY2VCNkdVZnp3NU00NFpJVXVrSllwcDhQQ245ODlYa2VnRHNqMG91b0xtMThTaVBCNloxNHh5R2Z2WWE4K2tSSExMSnFKK1ZxSVRrMVNVSFlaUHJQYWJwNW1SNEV3SWNuNTRVdzA4a2pGWnhwczZBNnUva2k4U2RnbFNFRGxQQkxMTEU2ZG5NenFJYlJ2MFgyNmx3VnVyV1J2RkMyS1pheFJESHFBT1FqcFo0LzNwUysxUi9xYjhSMk1BbGhwR05wOGVTaGlOZ1ptTUEvaGJTampHY2VaRm13UWdvOTN2a2E1QmVFTFJPMlJBbzc3MnVJSUZtZklCUXNINWZGeDc0R2VPbHlOSVpwaUJtbTRzdU5KZWhpbnJOaGQ4Wm5ZaGllWDFWRkZyTEQraWNpWnh5ZG53N1JTZEt2RndKdndtUzFOQlJyZTlOSkF5ck9HUFhJSjBXTTYya0xuR25Jd1Nzby82SGJURVpIT3V4bUxROU5UM2RRQ01jM0ZQam42c2l0cGF4Nmc1THkvMjlma2prUHVBa2ZlZk1JYWxFZm1PMmNnSlR5akhWQllieDZiV0F5K2VTYkFOY0pDNkprOEJzWExZaFpVb285OHRyWnR6bGdsY25iWUUrY0tSWWdmN21jTVkzUjdSU002UjI4cElLbDY0RG9ieTBpUFB0aWZZTUxPZEwzYmZTR2E5ZndPYUloQVRsWW5uTTliR2dLRmRUNG9zdFpTdUErNkpXT3hKbW4wSG9ETHNFVGRGTDNHbnVleG5Gdkc3VTFFTGpVOWFsVXk5NUdPdWlOb0phTWdmMHE1TUJOcTV4S0dFejM0bTBXTG15bDdQVnAyWTV5QnhHYllUTG94ZWliT3MxbEl6Z1dIUUlBYWFHN21wSkNlWEdhY3k0ZStRTXk3Uk4wQWhEMlVpeWtDNDJBZDFGMThYZ3l6TDNac2hteTV1YjI1ZHlvd0xvYjI3K0lWdUpQeVNFV1F5TFBEUWFZbVBLNHVGUWtGTkRSbkI4VWxSYllCQk9NN3FrWllvQ2RkUXgwM0VHb1V1Yk82WVRXNmNMM0drWnhkeG5MS2JhR01LMkd4Q25US1dMd3NwV3lQNlZETUNjSkRKcDdqUC9FUlZpVHVvSDl1WnNMUk1URWhzNjVEQVNMdStHR1poRnVsRkRpV0FCbklRNUVraHZNeCtWVUc0YVdyQURwU1NkWk9LMklSZEltNVlreXhrV0J0RGxnUUltckVPQ3FsS21Jbk9vZGhBR2pCWnhpSFRvd05KRTRBR2V4RXFxZ0NUUUNFV1lMT2pzVzJTZ3RmQjltMWtKS3lnVE9pK0x3dkw5VHk4d1E4c3gweng3elBRbVRPSUxKcGZPUUZwRU1TTTRsaEdUSEVMVVF3YWVpY0RYZ0drRG9XUXNCQ1ZRQlpTMnA0Y3lBOW9wODE5azl2dllUelAvZ2cweXNhRWRtdUQ4bWY1RUhWbUY4Smhkemt2Ujlod0NISkdZUkdnbWxGc0JWcEZ4RjVLVXhHTHFSa2NFZlNPemhKT2xhWXd1SVdEb1lWR2toMFlMcWxwc0V6cWpuT1ZvRW9mVnBERGpFRElFS21DMFBPampqTGtvaDNCUFNDaWFTSEFGZytOdDhoSk54MmthRnZIbGRRbXdMUHdxNmZ4Z3VXSFVHMWZjS1Ixb0dkV1F3YkZwUGdWYkEzbUR4N2xKbW95TDZXWktvUFliaktYTWdiakVtTHBaamR0RW42MjEycW5Bd2l0dUxES2lEQzdnZnZUTkVVZmVCQVRZR0tCdkVFU2Ftd25sVm05eVpOemxETXZrclppWW1kbkZLMldDbG9GTzhRSVo0Z2syZkhaSG1kOXJQWVpsODVERWdjck1pR2JwYW9pTmUwMXNIQVBFR2tETkRLRCtYcVRvYjliQ2hSRXg2NkdpVnU0bGZXTGpVZ2NZOU9SOW9RT01HUnhydmxKUHYxdVVBRkhjcVlld1pmWGs0YVFzYVVDMkx1dk1JcFVmQkJFWUYvNGFHakR2VkxnWXVHR2JlVStaS3RWZ2NxZ29YSlgwaHQ1SktVZVJ3MWc2K1QrK1hoUnIxYjRGbzc4RFdoWVFZRHAyNUNvTVpSbDFVc2F1ZUlYN1B2QUVJbWQ1ZldSMlFXcG5qTEx3d1FFVGtMbk5MTnBsaDZCSFdUTG5sRVg3VTBCSmNOazhFWlN6akdnR05zNkJFVlhKL2dGaWYrbEVRL0prenRHekdLNmpXRllFaXl1aEVkck9JUGJVRFVyVVd4RkVNWXh5WXVXZ0RJc2lVRVg5OUpJQm5LMnRXQUNIbFJIZGZXWHAwQmNRRVhKbklEZmVXL21KZDNuRm1OcDhxakpZTC9yS1I0ZUFBSTNEWTc0dVExbm9VWkJPVUMyV0xVSUw1MWpnRUhObnZrU08vZzBHQUpQaDJRT01jSzhKMFR6emFhbnhBV2c5YUVCRlNRZ2RSL3k3Nm1WNWRFaG5lamVET1BqTUFzQllSb0h0cTVMOW91dWZQZGd5a3lldk5VVnRIUndmRkowTWl3cGhsNUJEZWxzaXJEWS8vd1lEaEVEV3d2ZTVCQlJzTGNnYmhtN2pQYmlJV0FnTW5aaXlCR3c5NlgwVUk4L3FzeWhVZG1nV1ZmU2Z6blBwTlRaeVNBNm1TeG5NNXY3U2dRbVlUa0VQVlVYaGE4RGxYRDNKZW0wR3lJaHRnUGxEK2d6bVhrVFpwK1ZpcnZlRUt6Y1A4cFhCQUJaWk9lZFYzQzlqbGhseE1obDZ3UUJ5QWttR1BFd1piRDE1WmxFY0hQUktZQXJlZWNieXdRTlp5MG9PNE5zekhUbDFBNjQrcnRldEdIY1dwSzR4UytjbzkwTFBFekorQ1BzdldnZ3BWUUtURVNPd1JEQ1NWUnlMdVlQQkVsSEpQdS9DOEpyUGlnRk03U1NzaXpBYkJua05rMlkwUFY2cGViL3pCZ2tBVmJ4cjhTMDNKUUFWWHFVL2RyMk4vdUZCVENSa014ajBMY0pqbmdkREFvenc3eHArN3pMMmxYVUVrUG8vcW0rbkpKYWxsSkFtTVN6TTJHODlXaGRMN3BjUnNBN0VlUzFLQUplem85dk5OTldjcHdsRXhPdFdDTk4yaUc4cWdjUndRaytuQU84ZlhMM01XTXlPY011NlpFVGdzYlhKTFpJQnNweENVVkl2MFZmdHVGWEtPYW9va2RuZVdLZU0vNzlhOHg2ZFhTWUJwNWw2R1prUmJqT0FuVUlyMW55dVNxTE1CR05BVGt2cEdmUVh2WjdKZno5WTZ3RENGNFNkTGs5WmFBNG5NaUxZOVNpR2w4MmROcmJublpibC9yblo2bm1jT2NjQVZ0eHVGQS9POVhFZ2RnT21TNnZuYVZHUzVqb0RVQUQyK2lxUHN4SUdyTlg0QnV3N0NCMlBHZ2hvZ2RKQVlNbEtON2FOdEpJQm92akwyZUhFV0FHeSt1elZBUENKaTR1bnQ3THFRazJ6eTVyM1NDRWNaUUNZZERScGZwc0JTT05WVDJrSllzcTlLK21HMG9ieUVpdjh5NFAzMVM2QUt3UDhsVXpCRjA5NGE5Y1pRenE5eFFJUlRwNlJjRnJXSTRSeGpuU0duZFdHYVRLcUNnZHlMMlF4Y0Qya1NWQjFyeGFiOGVRYkRPREJUb2Evbmp0Q0NDWWNiSllCcUxYUS82cUNhZUpiRXJXaXJWd0NPTm5sUEMrRkd6WFFHR1IvalFFcThBMTdhd2E0V3ZOK285N2QvREw0ZkgvRkFMd1phQ3lNSml3NmtzMlB2bTRWZnk2ZnI2VGZXVnJNM1p3ald0b0JMUEJwaUVUeXBhWUhHSGNaNTh3OXA2REJENDBTemFkejBBY2lXSTNGWkEyT2dWN2VQVmVsUThmM2pENWJ3RzdndGdaeURDS2xJYVA0TGRjWjRKM2hqb3RHU2UzMklVc3JDdy9CZVJmbEFiT0dNVnNOaU84M0ltc3JDVkFJb3hEcVRoT0FoWklCMnFUbTJCRVgwRnRWREhDMTV2MjRYUXRxdHY4dEJ1QWszNWsraDV5TkN0WE45VmVaUVJsQXhCdFNyRWtIYWVsR0ttZ05LRnpOR09tU0FYTGt5VFVPZy83UTNlYk9CZjIwUGlzejBoWU1FSFZqN0NTSXZDNHNNSDJOZ2FTZy9oV2FwbVlBb3BPQXZ4YTJKUDRhcmdCdHdnU2o4MFhKdzJqa0xJSU9MblNBMksrdmZRVmdka09lZG9zQjZxcm5MQ1ZSOUY2dGVULytnMnB3d3dzNDBkd1lnSDd1VG9zQlZpTXFnVXF6WUlEMEJleWdKL2JXYmdlckdhQ1NBQm1NakIzZndGVTlwdy9rWkptUmxoT2FEQUM4WWR3S0hncFk1dGFScGVpUEdJRFN0TVpmRXlGRkUwNkJ5WFNqVVphdmc0bVZFZ2RnbXBvQnNySXlORWI2RTVJbXYxNEM3Z3Q0K0Nwb1Z0VzgvMk1HQUVEcS9BY1NRQWZXbGNCbW9PVGo3cDJPcWk1TUFCcEp2R0Nta1NzNndNRXVpclFFUFZoMEVpZFk2UUJWUmxvU1RsOE9YeHhEeHR4dnFHVllvRFJMeGFrc2RWK2tHUUhORTlUTmwrQmxpWkZjcUppZVlCVWg3akdEOTVId2JHVktDaTdrc0dMNEp5d2ZuN1hWNTBid1ZNeHRoM1NWQWJiRWdIRjVJWXBVRVRVSDE5dnFtdmQveUFBeStOangvRVFIMk0yNWJyb1NPRElsMEhRQTF4Qm5jRlVEQmlDa2JFUWx3UzRoQ2g4eEZVRUFYeE5tQ0NaRTBwSmVHakxCK0VhV2x6SWo3WXNmR0VFcWM4aXEzRy9iQ2RNa1VOdkxzbXZkR2pkRlVzY2ZKYXEvdFBuNXVFRkxBVnRVSlE5aGs0VDdyOEtkaVF4c0hLRUVCZ2p6MWdLUEExV1dSRjh4QzlFRkE0Z25wbE5acWpGaGtMUHM0QXhRMTd6L1l3YjQ2Qk1nNWZramJ1d0NLTEJ4RUF6UTZlbS9zVWVjN1NORmVyK252SEdXb1dxQnZuUkZ3S2hkTEVNd2hpMGlUVTZZaUxHWE1LbGY2RmlZM3FqaVJ3WklYb0xsU04rQy9UL0xxb0hSd2JpVDhmTHVxMkwvemEzSElyMkJnOG9TYUJxakU0bEtvQTFyUEc0bURCQVpZajdWcW1XUXNUSVhoQTczUjhVQW1KMzVSQXhMNUpWc25HWlZ6ZnMvMXdFYXhaak0zYk5FSHIxdUJ3Z2pRVElBZm1aaUUvTlZySGU5aFV4M0lVN2NsQzRXTmV0bFBjblM4Z3JYbkp1OHZKSWlQRHBEcXluTWFSZHdUNWlDcTUxejRoaEhuVFFkT21vWnRkU1piSVBmWXQwWTl5cHZINU9QdUo4aGtoTkhQTUQ1TW5qLzBLZkIzbmREV0FMbmtmRjBMd3d3OCtMS3JLaExtNmQ4YWVEa2FnWlFaMXlUVDl3VW1XWG42MWhVcTVyM2Y4NEE4UHJDdC94TFM2QWRiTVRVMGpRd1p3bnI5K3M2MTFaalY0UjBzMHNHQ0M1WGlRWnJPbmZCU1UzVEhUL2xERmd5TndsV3RFTmh3TW42emdNRVU3dnRyTUF4RG16V3VQTUFkMElLTFdUalpBMXkzZ2Zkb1RHTzBjdjVLNS9Qa3gzZlJQK29ZMnpDeVUxY3NBVW1NQzdDUW9vaURId0dIZUE5NjRBU0hNQVUrNEdUYXkwQnVxRkJhVTVIOVdqRk5lYVdEZ2FvYTk3L09RT3NwRVYweVU5OUFXTVg4V3Rrbmp6dmtOTjNaM0hPSnMwTSs2UUxpT3FIWklCdzRkSzFCL2Q3Umxxa2wxQmtIcjJxa0tUdStLcEs5dU1GalhMMEIxTTA2THVGLzFndk5QZGhKdEdUbGlBYjNnZmRoNzdYL1haREVFak5RS0hFVFJVeGdSZkIreDRaRWFnWkJCV09pakR3TzFRdWdqOWdRUk16QVUySms3dlFBWHJyTXFvZ29zV2xwVnA5dGViOUgyMERoOE9JTDB0djRQelNHN2lNUFBzeXpURFBsUDZzVzM4a0F6VHc3UFVWcHQzblJNOHE2eUFPOGlDUW1xNi9tTk5MaEM1aDJWeE9LSFlQV2JJZjVTTmt2QWh1VEY4cHdHSUlWY0JjQ3BETnhpb3NEQkRDd3VBR2xDeXc4OUhkMjdIdWQ0YmNZQUxMeVFoYllJbVNPanlqSGJ6UDJDZ0wwR05Zc1VmNExIVWJhSldMWkNaazRBTkNWaUhWZDJoVU1KTUJySUJ4bHhpd1k5YVhxSzBEN1pyM2YxZ1UvT2twZ2tkblA0c0h5UHlGUXBWR3R4M2hYcDFad1Jpcnp6dEVNbjQ5VE5IQnBPTkdISVQzRUdYSXIvY3dybDdqc0d5L0JGNWNBaUVoTkMwa2FIUjIzNGRGU3hqcVZRbk5HRExwdGdzWUd4ZVlRNEpzb2hETkdkMWU5M3RHaUxOUjJtS2FtRW41RWhkQWNyVEtKOHJKRVZMcmtYK0FoOTZwaktxY2pCWkthWHBkYjNmbTVyVk9CK1dWSkJ3RHhKanNNdi9JMVpyM2YxWVYvaVZMc3Ywc0lzamxGVWRmam1VcC9lK012KzV1S2RMV25PZ00vYXdEL0N6ZStqRmlCUUdRemtyQVdaZ2Rod0lJaVhjQTVVenlja0xhK21peVZ4ZklxUEhPNkZoaURqUHkyUEYwN0dabEZnKzdIYUpOUEtwUnVpK1FRZElxaEFLd0pTZ3VPWXRxYWxuNVVPc0ZJTlc3aGc1a2hvQmplTXI2dHBXZ3E3bXdBMVMxWkw0SWlxbXFFVHhlclhtLzlEaVJDd1pnbW92S05UaVdCcFRKOFdjeGdjZFRqSDdVeDVpQUxsYmR5VVo2OHV6UVgxeEswUUVabWloVFlnOXh2d3psVGxoMnBGM284SkFESWZrT2NqUEdoV2ZFSkFPV0NXUjhMaTRBV08vWnNRYzFuZzVOaUJxb3QvY01pYmU0NXFPQmp0NnI0cFlBeENpY0xJUDN2Yndzd0dpRTFXZ2pQQmdNSU90L3hrUEpqYkVMaVBTLzRXb3VMWUZ2VVUzcUIyRnhyWG9rMTJ2ZXoxclY3Y0FBTE5XRXZVMmF6c0FmMGdEanVJd0tua1JVOEZlTy9vZ1Y4ekhNamxyQlNLdk0wK3VsNmVHY1dBRGN0SVA4Z1NaOGRyeEF3cktKR0tIWVZhZ0J5UmtFOVpPZHBBYUVTU1JKb0V6MGdFL1VETEVuOHVUbGpkMUtPSlo4RGxBTWtRMWFmZXg0cmJnbFNtTE9yTkpzQUJnSktRNnNEV0F6UUFjelZJVHVaTmI1WFRLRlJaVmlhRnlWQkhmNG05eUU1YnFnT0RDendhMmE5NmVxdmlVVlR1L1I1NGZ4SElkUm9RK0lqTnU0QURuTTBTZWlxa0t0ZlJHZHFUS1AwTjhFbVFvNUFibXJZRDdhQ0VLeDlrWmhTckhyU0svRVRMRXRDVzVNa3Fic2ZTU1dMQkZOSjNsS1lBNkJHR1RaU3dXNEVlTm0zVVFZZ3RUdkRocVdHK3NodlliRkxiTkdNWGdTNE5HRU1BdjM2dXFTV0J1aHM5SmZHTUNpUWdjUkV5MnpodGorVmtXRmRrbncwK21vTC9lUE5KVUN0Z3ptWkxsYTgzN2ZxbkI3L001eWpWRTZLWW9qelRBbnRBbkc2aW95NkNpSHk5RTNaREFuRkZDZ09rQUUyR0xDT2NpVXVETEkwRVNac2tUdGlZQk9ZS2JLU3NDQjlaUWpMNFMzVGNlR25ESjBZcFIvRHRuTE9RcUtCcDRmTDIvM2NxSWVJYVB4TnNwc2ltSkRYVTZ0Tis4WVk2K3JPZFlwRDFUaXQ1VjlPMmFWY2h0b09VRE55Y3VqQndhSFdCdlEvOTg3cXcvVkFkS0N0VTBOdXBvckdpRXpyWkxnK25SdHhnRVV4Rzg1V2E3VnZEL1ZOYTR4UWRoRDFoV0NFSk5KdUN3cHBjSzBYYzc1aENFa1VINVdvTEFwbkRodnhzVHc2dlZURy94RWx1STYvOXNoY1RpYlFGVFhtRFlPaEFPeTI1OVY0eUZMSWN1L2dMZ0tLUXpVWlJaZVBGV0RnYXVCZXNka2NiN0lMQVBLL1RhOThGWXMxSXpHNG1ZZ1Z3cnlTR01DS3dic0hxdkUyaWdEL1B1dnhnTUFFSUlTK2FCcXBqV0lyUVFPdFV1Q28rRjhvYi9EYzNPeUhFK3RtdmZzalNyM25DQ2NiZXpKeVlLemVRd1pUVndNSnNBUGgvT1JMT3lzT0crODE3RUVyUkpyajFiUCtobDVyRjBzRTZXYnN6NDhkQ2FSZFZIanVXNXZWUG05cWpmL2t2NmlSSDNncnFIZVUzWHhFYVhJbkF5eFhJSXpvdnl4VFVoZEhMSEE0cTI4SEwwMkZEZGp4ckJVNVNLUlVVVDFyMkJnWlpKQVpZRC8zc20zUkZLTERWY1c1QzlvcHhnNjFTWEJUekUxQWJVbFFEd3lKc1RtTUp0dlNLbVk0RmpXM1piSEplWVFOelp0ekFhQ2lIaGNISGt2S2lFREpkaEVzWkhmSWFOR0tWd0I3UXR3N2N0MW56cEdGc3NrNXVtNXRKcW9zR1BOU2ZSbnc0cFdBaDNqcjVlVXdqRGZSdzFVV20xRHBrSnBVcnNPRkdhbE56ZmFXQ2FwQWU5VXhRWm1DMklaRWh0TEJQMFVmWWEyY3dmc2VXNUJjLzlSTThBcGsxcU1JU294czdoamlMbUtBMlZKY0lMeE1haEZpb2dzMGZ4dE9nRWJwNFh2dlRKVkNiYS9KR3dMYy9qOW5WUEU4ckJnb1RNeGlBNHE2OXFnOThtSFVHcFMvVS9RS3E1d3VPNkY1cTlmVEhRdnU0bDVxdE5ubU1Mcm1MSnNickVPSVN1VGtIL0psUTUyWk1BZWJEeVo3b3dsNHVDemY0SUZ0NGN0czlBN2NrMFJTM3dHOWszSWg2ZVB1SlNEQWRLbGwrWWNsd285dXUwWXVoN2IvUzlqQUptNzR4ckd6K1ViVGJpQ2Y5YWwxOHNhNEtkajRxeXpSTFBocU5EQkJzdVlJUW1oeDArOGIwYXVvSUlmZTdpOUllQ1oxOUNMMW13ejcwVnVORlNEZ1dDTTdEeUVEQkswU3F3OUVNNzMxZDdmQ2xManpxMWltVk56aXBhZUV5eDJYZzZ6RjYzMFdVSElpazNkL3RJckRleFlwRG1XTmhpbDUxWisrc0V1RENjd3ZNdmZhcytDZDlZZEdnMVQyK1BwdTF6S3Y3TG93NmU3OU9TQU9jTEMyV3dlSDBkK3pJNWtBTnZaWWhWekdQK3NUS3JqaUdEYXBORGFOY0FMbkhXVWFDWlBycklGN0dwclNVcEc2SU53cGF2Q2pkcTA0aEdrU1RDclpXWWloZ0FkTmhGaGFrQTVOeFhMejJXaFcwSkd0UVZLRWp4VldQL0FTblhOc1RXaGhZd0NUdCtwTXNBM2hoVXU5NklwV2RxbDR4am13YkJrMkZLWmY0MXUzbmVHNGxScDhBOEw1aFlYZWx2bHVjM0pTM1k2OEE2K3I1VGtFRW9lMWhOaFhWdzVua1BzdjlLVkRWNUZlcGovS0FPWWJRdXJtTVA0TjJWYUxmN0pIRExmYU8wYTRJbXp6cnFCTlBDc28zRVUzNW1xWktkRUlGSnlPUzNyd0owZHVzbzF6T0hzU0NhSGNrRjlkR0M4NVNMTFdTWVhDUVZaeVVyRnh6SktQUURmeHZLYXRQT3Z3LzV2MWcvalZnWTFoQ2VuRGdKbExqaDhQSHk4bjVuSW5nd1EwWEdDdE5RekdOb1RjVWUwZzd1Y3B0VCtMQmhBMkE4U0FFVytXZFU2R0dEZGE3eklnRHZEbGRlTHlvK0hlWVQyejQ3c0Rpakw4TW9LOEYveEJsN0MrTXZFZWc1QVl5SlJHNE5XRGZERVdTUFRQeG1BUUY4Mkg4V0lRZFc2T2p3NVFOekFITHFiT2ZPV2UwWVRQRGVUMURMMlJWTXV3M011cjZBK0dNQzRLQlJaNmtHeDlnTk11ckY3K3JLU0pONkE5MElBUklBbkx4a0FZMDAzOHFKTVpHOExid1laVFREYWtNZnBhbmNHWU9qRkM2ZG5HZUtsbFFvc3VqeFFUTExmTVV5U2hBU0RBZkIwZXJRMktONmFSUjk2ODlLbUQ4SGd3VnNPaENNbGpRSCs1NDYrWmpnOUhNOVVwdFlrSXBna1lGSHd1Z1k0MTBUaXJNa0FtTDRJUUdWam1IYVp3SVFPb013VVhJYTJiQnk5bFNsdHNzQnNWRXJVSDZ3bU0xRmhZVUhRVUVFQ21ZQ1FKSkNnUmxrTnNneGNrUVlYMk40R2ZISEpBTlFBTFh3STZaU1p5ZDZvRWZtMFFVRXJmREZrajU1QWhtWkZvUWNHZnJJUWh0bElPOFlBSFVjeG1iR1Ird1ZqQUNFSW1BTytBaXBMSkhRejZDMDhHSW9sbVpQdWlOeU1sTEJDZnpBQUl2b0dEWnpwREtVbGtXd3lFNWVZRFBBUEdTRERnaTFjZ3pocjdFT3J1aE5sV1ljcG9md3ExVFVUcmNXcmVPQlU0OEZ0dkFYTDlxNE56K1gxUlNQdlJjUkY3OWJLQUJiNDZ3d3dTK20zWWlCc3A4RHdBQ1c1bXpQRXUwVFVsU0Y2YlFZSURSQjV6dUhUVEEyM3Fxb0RZdlhoWWgxRmRaMWdBSUp3U1J1T3JtVy9OQWJ3T2U2WkZHMDdSQVpRNWdDa2FHS1ZzTTEwejdwTThyQk0rMXF0QWZ4Zkh1TUs4UC91NFBhUlNRWkp5akNXMGllYkRxQzJCTWlpREVVMXFRNHRVWW05UTRsa3o0aU10WU1iSWRPNEswejRxaWdPUmoxeW9xcGhwUVFpNTNJNEhEdGEvdzNnOGhGV3pZNHRBZmJwSkliS1pZcW1LdDQ1UHlIQ3RDa3BvYjFkTWtDaEFYNDBkR3FqVlpXUiswWWwrWFNsMXloVmdKZ1RyR3hpNjBWa1k5ZGRLeG5BUXBqTTRZamRpMXFDeUFCa0RtMDYxSlIyV3hZa3dUckEyRTZvZ1R3aWZlZFlpbklGK0g5MzlPRnFnSk5IekY5bmdOc1NJSmIxWFNjVHVqTExBdWFBdEtGbFJDN1dqaTFLOXhXVkNPWktQVkRIVnhIVEl6M05jeUo2R3gxUFlxTkFJWUJCWXRXa1R6K3BGNGtVWGg4TGQ3UFArV1NBeTRwRE5RTndhOEd5R0Jib2hrYi9GNVZVUUtvMHhHcU5wY2t4R3cvSkFPd2hIb01NZ09BMk1vRE9jYVpwNWEyWHdRQmdqak8rcU5RUnlXZHkxTk80STkxVnh2c1Y0Rit6QWhrRDRIc1N4ai9VcWZhSEVpRFdIMjBlVnBHMXpiaTFCaWVYRnc1WC91bnBBNTVrSVRGWVNuTXRTZ1lndERRa2dDd1JqWEFBVjAwbU9kckFCa0RxRGVIdHdMY1Y3bVlBZ0NuemdnRVM5Wlk0aldDQTFBQjFRSGVzVzVUaElpYWhpcG1JT0R0aUFPVU9HUTFqc0RzVE9zRUFzMkFBb0ppUTVHWE9XTitDQVFhVzZxSmgwV0l1bGF5WE02ckkvRVgxRWM4c1Y0QmpyQUIzOU9Fai9NVURsdjZVQWJnRFdUZGxWaHB1aWhlOUl1cHRlcDBCMGdlcytvM3JBSkI2dzNKTnFDSUtVd2RZbmZVeExoZ3poMXEzWTJnZEVIOHl3WXFaanhMVk4wY2t5MDZpNGxDLy9MSmtnTkFBb1R3V0dGd3Z3clFFcUFpVXNCbWhzekZoNS9uNmM0VDhHOTdyZ2dINmEvdC8xWjhqanpzWm9Ha1FHNnZhYlVSVkZmWWVDekxQdlg3dUR4WTljRWdhQWJnQ01FWE12T2NGdW4raEE4RDlYak1Bc1ZrTG9wY2p0Skx5MDdmVzZMM0JBUFF5SVU0MlRCWE12TFgyaENhWERJQWZHbkd0WTRKVmMrQkpqb3o5ZW9yajRpN3RGUzZ0Y0RjL1U5bkwwSExhVER1cTRWMW5BR3FBcUpPTG1ub2ZCMnRrZ0FSVXpIZVF4SWkwSEFSTDUrc2JtMXZtem9JQkhwbXhTWlVaa1NENllYNE1tUjdWZk5sVFFTZmNudFZLV1BreEt1bFJqYVlwZ0FjVkYvVlJHd0YwRDBBR2tHTGVyQXlBOGZnSkE5QVFlQW1zUk9TUUN1TkRQYWtNV3ZEQjJqQTNHQUErWU9RYWF5SU5ubFZmMkdYUjZQSHlrZ0VzRFZWZnczWWJnRWNqeVJHNTh1TXo3VFFhQ0RQRG8rUlpDTzZWUzdLOENlUDNzUkdwR01DelJKbkxsVW1DT2xDdDFteGtBTk44UVhITTA3Tng1bVdob1FHV0NaQ2tHTjJOK1JpZ3pLaWlvc3Q5TUFDZWpaMUxNemlyaUFBRDBLZUVvWTVXTFBYSEZBK3NiUDFhcVlCa0FDM20zVXV3ejIwR09DM1JLZ1lJU3ZkMnhLbXo3am9NM1FZdUN0REZkUVpRdDIzVUQ2ZWQxOEw5ZTU0UkE0NkptZ0dZelE5THBRdzR4dVZ6VVRJQVFyZERSR3Q4aFhxSWFRMUd0RGV0amtVZEl1eUhEaFVEOENWVEExeXNJV3NKWDBnWGU2RUVJTW9hMWJpNHA2aHF6Wm1xQnBJVW93dUhCRTBBcXFqSXg2VU5CQlpiTXdFZ0l4WVlBQ3QyTFBQa3hsVDJTMU9BSU55aU9Dek53TWtBS09hZHFMUGJET0FKdWRzTTRCbXk5RW1seWVXOEU3c0F5dkJSanQ5Z0FCODVnS2hTaDBDV0RxeExUNGl5cXhtQUdYUlJxQVFtQUJrWHA1YjdjV3dKb0NhMW5Ga01lOUlmZVI1Vng4NDZSQnE4N3lTckdTQTB3TSt5bGkyYTV4aGRSdmxDOEJCS01tT3l0MEtpYmF1QWZXZkpBSGdMbWdCa3RtTTVwK1h1WkVac0NEcnBudytVQWJ4YzFyTmpNTkRLN1g1aER1NWJ2b2ZLQ0pCTHdJNFdxNTh6Z1BpTkdLNzQ2eFFoOFBxcHEyNFNGU0lucnpjWllQeVk4TXF0K25vamI0RytXdFQ3cUlQS0hSalJNY081Z24vN0JQalNrd3ZFTHIyMUZnbTluRksxUUlsQmZSYjhoNHpyTjl3UjdFcXhZSGxOcWJRQkh0aUk3MDhuOW42V05ubmxJVmhuYVptcFVURmdFaENxdFFSNEJTZEFnYkF4aDR6Q0NHMk5PWVRZRkZTNHp0alN6TDNTU0VmT2RUVUg4L2pucFJFZ0dZQUUrUlVEaUJSaUFNdmxFckNnYWFOQTlIb09uU0x1L3lZREpBUWFKWUFNc1VpWmxCVi9hZ2J3d2k5bUF0REJ3Wm9KQ2FLeEhHNlVVVStYeC9YSWZLRnFBV2lKeHluUW53bC9aQmpUb3NBUmZxUUd1R2JENjArc1dTQmtLQUZtbkZiRnNoOHFRTWtBZURObzVUbTZicm1IZ3dJSmxpeUZZVkdERWlhQTFacnlod3hRT255a3FVa3dWM3Q0N3N4VHpGaVJNQUw4T1FORVVPQ2tuZGJDNjhlWHlCRDYwaTNaeGU4eFFOT1FTV3VPeUpwZk5RTXdxSmVycGc2T01vQ2xueU1ETE1BQW1lK1l0Y3hZaHJXSVU0QkhFcVdNVE94a1FmbmR6anpaaFFhNFFrUEdqUTRhK0J4TG1mczZzT1JoVjgvMTVMM1NZUUVOMWpHNVpJQzUxMkE5Tk9sbm9wRkpIRzdJTFN0TnhSUkVlaXlleUYybXhzU3FJZ0RXQUxET3BSSGdUeGtBT3hFcmZuZXRRcmN1STZ2TWFoRGxxQ2JoRVBWZVMvVFNXZ0tLK3Y3VXAzbVpXdE1YMXdva2F6aGhZSC9scTRHL2JESkRTWWVwTXRnOE1wSmxlSGNacHhEaWQ2Y0JPYTF5bHZQR1RLdnZvUUdDYzh6SzFHUHpCTFJMT2hzKzVTeVd4M2FIMDZ4a0FCZ1QxRHhYTWdEREhWUXlJWk40ZXBwaFpBTDhTUlV0NXFEb203cnMrYlh0S2ZHTERNQm9NV0F4YWlQQTcwZ0E1RUhJVjNSYkJPMm96Z0JsenJ0QkpMdEFMd1J0cHhNTW1sV2lMZFZCTUFBOXdnUGlZZDBWM0lCUXUrQ2ZGZ1BRSW1HYU1WS1J5S2dsTnRHeUtucEwvNDUydCtJVVppejdPZ2RLbEFVY3VMaVJvOGxxTG1wQm9yNDMra1ZENVRLcVUvUU9MZzJaSERHb0NhVVNpTENrRVJMek5OYklBREJDQWtxR09qNklOeHFNRk12b0dmYVppckg2aFlqU3dHSjBKMjRHL3AwbEFMa01SSHJTRmxmMmE3SzFicnJTdUlVQ1p0b0hLRklrc25DN3A3Zmt5cTRvWFZHNVAvM1RmYmVLWkhmMCswU2ViYURUOUZHM0dFRG90bVBrajZZSnl0UlZmWGxDMEdoZFpPTDdQRVNyTVd1SUV1bXhJcDZyOUJHK29WeEdmd05tUURabkFJcHh5bHZQejVxK3JDMnpaT3BpUXVlSC9DNjNlaytxVDF3bVZDVTJDb0N4VjBZY2h0RXp3MDVoRkpqRUx4VEdTQ3dHOUJRZ2dzd085UDl1TUFDOW1peWFuNGtzSTk4RmNyK0JnOXQ1Ync5ZURiWk1rV2k0K0ZGWmZkU3NON0VFdUdrcFNNdXBaTWtSby9Mc3RQUUZNRlc4WWVRN3BpaENDVXhQN3FKc0JRUDBpMVl4Z0pVYldORUZGNFdXc00wSHplbFVldUV1TXh2ZDBCQmxJVy9kenM1alhHWkFVNUhtL0YvM2lRSjRaakhhYjZqN3hmOXNWOHh3NWplRkZOeXJ3aHFiejZ5eVkyN0Q4dGMrd1hHQnhUZ3B2b0dMd0EwR2lFUkRUVStUQ3NYOG0wYitpblZwODNPYkxYT0xlNllLZ3EvUkc4Z3pNSXVmS29Tb0dVQ2gyeVlCYUhidlZPaTB4L1FHRWxyS0dGTVpKZ1NrZG5vMm16dzhyMjZac3FOcXRrQ25wOW54MThzb3RaYmFBNTJ3dnNkWjVYK01SS3JsTGJGeXVKd3VhdE9pdDBEZHhQOFM4TzhRUUNFeDdkV0pJZGdibEF5d2xUSHdCMW5ETXFFbmpLLzNYNFlyU3l6R1ZCckJKbHdFYmpBQUJnUFJWR1dkaTZubnJJVjZrc1djcTl6M25ENEp2a1p2QUxiQkxIN3F3REpFVXdta1o0ZUtDcXR6MU9pMG9GSTRPd2ljRmwrek5LanNaMWZaSnpXRnFLZ3JXNDY4Wlp6Q0thc2xFbi9OR3NPUXA5dy9HRUFiVGlYd1hka1lpMWpMMjhES0thR0VnbmhabytsRDliOVdZQWhFUm9XMGQ4SzdIVVcwTE5vTUNDU0hZS0E1REsxQzJHd0FaU0lEOElLeWF1elBHSUFsR0FLTXovbEg4N3owVjlVb3JHSVNwa2RXZzAzd05ab0R0aTErbEtkcU04d280YWhRMWRQMW5tVmpXVzBycVVSMTVqdWdJbUlxeGpIT0pwS3Jha29TWk5YWVZzMEN3N05hSXZIWEpOaERRQjI4M0JrQ3NmVGw2Z2FaSWEyVXQ0bVZBd2xSaHBiQXQwZitMeUZLTEpxSHMzQ1Q5MXROWnpBb1dqZWhkNG14QStyT1FTUEVSeWM4STAwQllBQUc5MldBeHBRUjFRSEdKenJVOGxkWW1laGVlUDVSN2M0eDAxa05OaEpZVk1IK3hIb1VCWDZ4d0xHT29wNklXN0lZR2JTZVJLZVZWQ0oybFBBdlNEZmt4ZUJzU25KbDAzbU5tN1lhWnhpUlVNQ0xiWlpvbURrT2R2S0NoM3A0UEFhOGpQODVVQlJ0RS9KMm5NQTFiNEtXYTVFMlFZbzBzd04wRDNnMy9nTmVyV3d2eEJoZWZrU0pzb1g0Si8wNTVMV29Dbi93ZzlXU2dobjM3T3FJbGVHcXdQaXMvUHNZZGRheW1ITmRIZFBMVEg0RGZNMWVBamFrdFF0bks4S04zVzhGREErazNkVEZaTXVhbGdiekFUaDBDU0F0c1gwK1FrdVE2NlZGbzdHQmhMUFY1SEZvNkRpcE5DVzBGSVdNbzVhcGx5SmxxNUNpd0tpUkVTcGtIQm5KUDZIQWtSUGRYZUR1Q0lxV0lTUlhzNUcvU2VxV0dLUDJFZkRRSDhTeDBNalpLYzBldVFhOFJJQi9xWTRFcWtxYkEwY3pHeEJzbjU1UTRRZzZCSUxJeTB6cWVJM3IzaW4rUTJjQ3I2Y2JJanJaT3gyajVxdGRubVZqN2FRb3o1dWkwTWdFNFJLRWUzVHlzUlgwMFZyNjlzVHhKWUhBT3pIcEV0RVBKRHlxRTBzakI1TlhaN05BaXBLcENTME5ERncyREZnQ1JNdmtJTGJnRmVvQUVpTlFwY3hHQW1FbHZGQmt5a3dibk9TRStwdUdWcG85OXNFQUlUZnZDM1ZFQ2RvQzQyOU9Qbjk5VmhPeUNRQytZZkJqTHFDK0J1ak1pUUtpWjB1bWtJdmlpcnhBbUkyWFU3TG1TUXJpZkNsRklmOW04ZTJpZERwSXNVRUJ5NUpBb0hKa1Q2Z2JaR2MxNlpoN0J5RHRyKzhvclZ3azJxcVJvcHdYZERCZWFDSGNOSGR6anpjMExCUGQvYUhDQU9DTVV2NlEwTjRnb3BQVTJUSlRmRC9Ud0pvQXlKUlhoZGtqR1NCcUpITXNYUUsxd2ZnekZ2Q2RlVDFvNjhYY3A1U2tHS2ZBajNGWGxZUS8ybW9URC9BSy9vbmx2a0ptbHljRlhsU0pWZnlONkFld08zcndEeFFYVStXalNTY0FqVVFEMW0xQ0EwWk91c2krQllVYWtHTWNUOGpvcGthS1JtWTI3aUdyRmxsUG5aeVpUYW93czc5RytYRWF4T2RGSzB5eS9XeGxwdmlLQVk2elNIcjNxZTJTQWRweU02dGV1ektqS3BIU2xySVlZamdCbzlYZnFzaTVhOHloMVVDNGtnaVhpR29jNEJWK0FlaFdJclB4TjAvU0NneVJjdVl4L3M0Z1dHNEZvaHVFU1BvWTVGWm43aFVDMGRpVWsyNjF5a1JRUUdGNjZtRTNMV2NjRjV2blpoeWJTWEJkdGdMT3dqYVBHcU9GbWYwMVNuT0hSeVJhWmF2L09IaTd5UUFaRHZENS8wbTd3Z0M1YlVtZEJHWFgwZThLNXVhZEd4cWZ6cjZrVlg5SElUTWtNYUE3V0ZXU2R4TGhFbEd0QitoTTh3dXc1YXlRMmZFMzBUb3dubWtzbHp5dlNFQjFQRm1BdlBZZ0gxZ0IrZ242REZndlloblpFN0taWmJ1Y2RPdmVnS25naU1LTTFNTmhRaVNOdkRXb1dpbGN5LzVEdHRLZlJYb21EckdnWHBZZlQ1ZFl0SFV3UU9uUXVNVUFNaVVZTHdiNlgyTUFGNXFwazJBSnBrRWpGRXpOSTZJdHBqT1h0TWY4Vzg2Qy9ZaldITEdqWTl3Um81NUVxQkhWUEFCbkdpQnFIcjlmSWJPelBoT3pWU3BwMUY4RHV5NVQwRUUwWlFqSElBcTBvU3ZwNHhsT2FmeFAra1RtNzV4MENBL2krWkNMSGpya2xkU1NBUWdVUFVUZVYvWm4rK3hYSG0wd0dKQndMVERPU0pxckJ1a1VqOVpPcUp1Ni9TVURSSmFRNXVNbUExQm9VaVhwdXNaUC9UTVVURVgvYXZQcW51RmZ6YjhkZFdHT2tDZjR6alJhTDczQVZhUFhOdjBsaU5OMXIzV0Z6T2Jmb0UrbUxGZTZsTUFOYkxzSW94NllWeUFaWUVFQ2ZSd2MvVUlHeVBZWkRKQ1RqbDZNTkR0Tjcrbk1hRE1BZ2FKYUhJaVZnSmsxancyZThjcWZwZFFjUk1hT29KN2hETGlPSkFNRWlaUWJrOVNsSWZJcUEvQXpRZityREVCSGZPb2tRK3o1R2RuZ0NpWXMrTDdEd09MbUU1MlRrL0RHOUpnL2UvejhLdWhNRXBBVXlRRDBLNXZyaC9ibENwVmxmMWNCYUVvdDRiS1NBVXlyaDd4cmRuSlR5ellha2VnTjZXT3Z4RlUzQ2NRUXNhTFdvOUlIZmt6SFpod0xZRkJ6dUdBQXhCMElIaUJJQ2s4QTI4NVJ1Ky9wMEl6Y3lqcEZxbXBmTEQvKzhsZ3dRTXJvYXIwbzBxLzhsQUZ1U2dCN1JLR1RkSEtKQktRT2VHSURUL2NiM05zOHQ0eXBSaGJ2UmVNUlExNWFGVVZPd2Q0ak9GS2NUeXhNRTYzRkFJalRaSnpXeS9TWERNQWM3Z1VEVUt0WFNEcHFpbW0xem0xR29vTkFxNmliU20yZjlMRzZ2NVpDb0p4MGtSTCt5YjA1RmhUUUwrUk9ucTlQWDBYc0FyTG1XVk1weDZFbzQxb1JRRVVIYUtYWFFUVm92VXl4azF3bXFhLzNwZzdBSEFzL1dRSXFQZk9RZVpZeFFhSTZiczVzdkN0bnQvN1V2K3pBcTQycG40Z0RYcnM0bldlZ2RnZXR4Z21BL2w1VWZQd3JCdmd3TGlzWndMWDZRZDlpYlRWSU5ubk14ckNiMlFYR29lUnNoK1RWVG52U3lSSFA4MkhPZm43NllYNlZBWjZmSElZRkRuTlB3S3VEMERBVWxRUllwUVJJdlE3cDVpa3Y0dWF4azZ5Z1c5ZDd5UUNXem9BUmdiOWdBQ29sVFZhNGowclo0RndQaG1OMTBveU53UWdkNW5ZQWUxOG52RE1DNUVrNHowaHRYN2FTQVFnQjJiRWtlY2tBRHcrWERMQ3dGNXRVREVDdHZ0K0h0OXIzWFh3RUNMUXRzSWUremRHUHNZL0RNSllFVmF4S2xCYlVaWkhnaFg0dkdhQ1cwaVVEbUpNQzErQTRhMjJuRG9BYVN3Uk1sRFRkRFM0aXFLcWRaSkQ2ZWk4WlFHMkoyQVo2UHBPZk1RQmZhT0FWN2lOdEIwVUFidUhWRVJJZklTUkFXbzFJM2UrbFVDQ0VBYnl3ekR6dVBJc0ZIOHRXV2J4djV4QVFHc2FTQWJiU0xobkF3enFUQVVLck56bXFLbnl2WmdEUUowY0lobzU3c216ZmRQZWFvSjcvM0FuS3VoVXlSRmNaUUZvQmdkZ2c4U3VFbjh3VzF6ekc5UzVBaXdHMjRIZ3VwNEFvSjNWeUoxbVMraU42cnpHQXREMmg0L0R0d3hMMGNZTUJLSkk2UmFHYWtwZ2pGd0JRaDZFS3U0cUhlVzdNamJpMUI4OFZRSXpRTXc3TTREOHA0U1NXNmpJWlFCY1NCc0hUamtyYWp0QXVHY0JlcU0wQWpUUW84Sm9DcG1reGdIeGdBVDdWL0lUT3k3NEFpUFpiTVVBQU9mU0NRcjVsVWFCQ1lxQWx1RkZUYWRxSEpDNDMwVUVmYUo5Ui82T2dYaW1ubkRwc05ha1hWM3Y1eSt5MlNIWUkzejRRVkIrWEVzQ1NFakRYZ1JIY1pCSUhCMlNHUEkvQzIvZ3FYd1E4aHZhTlFXK2krWFpSaVIyeGRQRDNjNnhidFRxUmZUVzZlbzNSMzZJRzlza0FBN1lMQnFBRVNnYWdqUlU2b014UVJhdkRyaG9NQUxVK3dhZW5vMzhJZVlrQWpKb0JraGJVY0xDYSsxTmZDNTBCVTdycE14MlJCelVrY3RzR0x5UUF0NWtPbXkybzkyeUpJd2JKQUlUZWg2TW5UbTczSmdORTRuQ1dwa0JrenZxS0wwQVhaekxBVUN0aHBRU0R4Q01XSGlUMWVZN1BjclV3ZG5vS25uUWtoYjYvdm9sYjR6UVQ0NmtGS2RYZ3RPd1NlU2F5a0Fpcll6SkFQMXFiQVNpQmtnSG9xUllkY0cwNklEMHJ6Z0JvS21lY1B2S1Vpd1ZnMzJhQUhGSXZQMWV3SGQ2WGsvVEQycUZQd0JuVGRGRXRKbE9VMkFDMEszak1rRk1zR2txU3NHR3E1Y25YZW1GTnpzVGh5OGlYdUxyR0FGQ2R3UUN3aFhkUzR0R1BaS0hWRE92MUZKVFRRRzVpR21KbGlDQnRTR0JabnhwcDhid0xVUGx5WDNUcENzVWJzUWdJTmY4Qzh0cGlBTnMxcGpEbXJrNkd5K0R6bWl5aEtCSHJCT283K0hSMm5BVWY4OUhLbERlWGdIdU9oajdUMkk1aHViVzFkdDRUK2pPblhnb0FHb0ZxaEx1MHpFY1UxS3ZsVkw1TW1ZdW1JUFd0M3V6MkdoU1Q0VlVHTUk4Rm9hWG5icG1oSTlEUWgva2M4dHpteUxlN3hEcHFZdVlDb0dRTGVtcjdNRmhENWxlNlpJRHMraFM1cWZNWjV0MzNhZ21JZG1nekFDbm5IK1YySGJFQXdlN1dvMlRrSTB4RVl5M1doeER0ejVXTUN3QjhtbTBsTUhmcXBoSlI5Y2FyMVpQVTJzcFRwSGl1d2lCeXByNkw5RUw0bE1xUTczS0tJdU9YaHFEWFRMU2V2Wlc0T0ttMkN3VFZMUWJRS005UDJzSXJOWkpaSGFWSHFRTTZJejkxWVJLMWVmdEtMSG9hZkp4MkxCVjAvQVVESEV5WkNLV3hVQUxaTGhrQWo4OE5XVmgyc1d3QVBrbkpuVG9BWUN1czBBYnEwTlNCNXpKa3AySUFLbjNGanV5VFFnbU9ncG9Cd29FY2xVYzJZVGZ3NUkyL1lnQnRLRFRQTkJ1dG02Y1hOQW5saS8yeXBSbGtaQWd3OFM4L1k0QytJWjViREtBeWt1Z01LeHZFL0dKbHJxUVBWd0hHbnRQWUN0YUYvdGI1RFFhQUtGZFZQRlN4Y2h1SWRvVUJodEJQbXBvQkVLN01mOW9NUUx1TGNmS3l2UUNndmJhc3J6UUVwWmV3N3czcVNZc0JJb1FFOUs4RXdHcG9ZTjFmTGdIemVWSEJhdHAyQnRIeldURUExZjM5c3IwM0NEcXFiLzhtQThCajBhTlNzbUpTTzE2WU9neUVwQzFzOUluUkZrU3FJZTdaNmVrRHBPM1hTd0M3V0thWDFyanFmYVZkWlFDalhza0FPK0NOMUpZR1FOS2d4UUN4cS9VRUJKTklFMUdZVk10SlIxTnc3ZHhKQm5mSmtEckRBMHBkZ1A2V1VkZU5mWVRydDVUQUswazVkbVVGcTl4aWVMdmkrTVdHUDZwdkhhS2xTVkI1OFRMdmNXUUpvOTBCMGRlSjVKY0xLUUpZTWg5cGdXMEJLSXhFTUFOUWd5NFo0T1BqRHhtQXdwaHF3RzFUY0RJQUFXbmMyMXJPTU5NQnNSVWtvcnhnZ0dlM0JOTW15eHYwVnRFcWd0SXk1dmF2MHJsREV3VTB4NUlCRUt5SW1FYjdZS29OTkFKSnF1V0xiYUQ3bXBLbVpSNzdpNENRTXZRaktTd21QMmVBS2dBbEdJQjVNd3VSSEF3Z2xwdTBBekJ6RnBOVUl5cWtsaHpBbXFWSlZJWjV2VWhENEN5REx3STUrK3NsZ0YyWWphRUcvQTREMkFUMk1DZG1EWVFYRU80QTVwUW9HUUJHZWU1bkl5MVFlOFNLU2RjVXFKaGw0ZHlKQklTNlhsVU1nTGgrRk9TcTAzVGFCanE5Y3gvaGZOSDRoem94VjFTeVNOUjh0bVNBa3NLbzJVU1VhRFlqaTlFTVFLM0V3U1FEWUJ5Y0Fjb2xiNGxWN0dMcGlLZ29tRTk2aFJ2bG5WaXFMS0FmZ1hPL1pnQzZnMjFCK1ExMzhDSmRWTTRBNzZxWHdndG9ZbUJvV1dYNENGL1RYZWRMcGE0dE0yOTR4MlpSRWduNjlJSzZteS9URHVOR1BLOFFCQlRCdS9aZGhKeXlqTXVjTFpPamx3VVR2WmJOUGxIejJSeW4yQ2twL0lNQzUva3lDSFdKR0hzQXRSamZZeXM1OGFHbEtYZ1UzazhTK3lvRGNBR2dFekRkZ21VQXBsK1MxVlorZ3dHZVN6WGd0eGlBdGdpY0ZLbWE1VFFoRCsxbzAwaFlDUUtaV1g1UjJsaXFsZ3dRdTNyNng3RnRaSXk2d3c3VEY4RFFKNlp2UnlrMVNnQkEzZ2VSbnZQYkFhSnNXVXUweUdESi9XZ1I0emdxL3NQMEFLbVR3bWhXOUNSYkZtOUJ2TFFqWXFDaUpqNjBZQUJwZGZ6RFZRYlFsNEptU0NjZzYyOHpiTXJpZDNPR1pJM2FvSFpDcVZ0ZFJzNEY4ejBUM1pzTXdPdks0b1dteFlXMWlaTm92ZEtaeEVvRXREODZnZnpQMk5jUHZPVytxWnAwaVlvNUhzMjV3eHlVa1JSazQxSXZwbzE4TENCNVJTRXZIOUF2QWtTak9XWnFWaGRNUk9Fak9ic1ZzT2VoemlRMUtYeEMyeDhkSlpvTnk4Z3hJcmNmMFdwOGFESkFJODBMWXBOZnJ6R0F1NWQ4N2ZlTmxJRThFU1JjemhDcXhNa0FnNFJTdDd1QU8vVEQ1VTN3ZHg3STRvVTY5QzRXWXhLZE85clhzV2NRUU80RXlqL2ZHTEZUTi9abmpGeWlZcXdJb1RUQ0RvazF4STZvS0g4anlJRnZLR1hmWlNrL002RnJJMENVTFdxSm5sb0ZFNC9BUnJHd1hEYUNIVWhxUW8wSVJKcnRzNGhha0J2M1RzWm80ME9UQWJqaVJRd2s5UDFyREJEMjNqNmN0MHhkeDhoR0ZLaXRaNGpYcVAwcVNFRW9kYnRMNTJjY0xtK0N2L05BRmkvMHZ6SERZaElOOFk5WkxSeEFUZ0s5RkFCZktuVnNhVHV0SjEwV2UyVVYwejFoaDhRYW5oSkJDcnNyRzNnbGkza0MyQ2hOb1NzQWlIcnpJbWwxd2NRWm9IVW5oeWRtbzgwSHBDYUI4NDlsV2JteGVQSW1sNFpMZk9qZCtHWVVORXFJWmgya0lZbVdxcjRzQURsdDNlbXpiOCtRL2RGMG9pQkZRcWxiWGJvaGljUGxUZkMzSHlpTEYrSnZGNHN4aVo2SXZGYTVqZndZZ2VxdEFMNGNMYmIwbnNTa2kxMTl3TEt0amk5aGg0bzEzSXlKV3dxa2svVW80WWlDNHp3MEtUejJ5b2gxZTVUL3hzdnNWZ1Z3bjJoUmxCY0ZadEU1SURHdUwvbkh0S3pkK3BheUo1WERLL2pRdS9GdEhNUVAzOHFXbUVJNk9EeHhHOUxybGRwK2U0WlliY3R2S0NJa1JVS3A5MVdYdkg0ZUxtOHlMYStMNG9YbDMwQ1l6amlKckU0dmNHdGZlT3k3RTJpWmZ3cWxLQy9yNldVdGZsZGxSakV6QVpBa05Dci95SXZZZ3djQmlhaGNFZStRUlVTWElRc0M3Ym9zeXlRV2FGRjA1djh5NWJIWHRJNC93bFNoUkN5MGoycDcyTWFIM2kwdmtWRDNSZUhsc2hZaVlkdUp0WkpaQnVScEF1V3djaVdPZXF5Q1JMb2k4MEdTWW9sMWE3a3N1eEpKcWlmblRRcGd0Z0ZHMFloVDQ1UmhjZVVDY2IyMFF1Q2JBUDF1ZUJLeGlvNXZ5eGExMkRGbFM0UTRjYUpZQ3hJQWQzLy9GbndaMEJsRGlNcVB4RThXck05eW9tQllhZ01KK2kzTEpJNEx0Q2c2OGI4dTduSlhyMkc1L0NPTmxSYVU3ZmszS2dOUkd4OTZON3VCaFdUWjVxSWFhaFJyRDZDZmJiTTVHbzRVUjdIbUJGVmpEbUljYzdJWWhoNC9PTzBlSFZadGg0dVRIV2lNS2VhektxZVgzRHFyUUhQcXMvUW9iZUFzMFU2d0ZWNFA2MjBVbWtiNVdzb1BycFVzS09wS21JMFA2WllBT05FUG5oTGo1dEFaUFNTYmJaNWlqcUZjNlNpQ2RWOFIrNEZBWldlWlJCaXdBaTNxdU8zRXdZVmRUOE55TzFHeGdEdGJEWG5TU0paK21mbjNJaTBXR1dCL0RRMk5yU016Vm1ROTVLWFZPQTlzSURUOGxJZW9oNTIwdHpLMG1JTTYzY2cwYjFCeHZLUy8wMFovZ0lQUXlHSFdoWnZzQVV2MldmWG0xSHZqbkdRQ0pabGVxVmViR3FYemt1d2RGZjMzOUk5N3FYbWo5V3ljZ0hnM3hOcHNsek5aWmpUb05tRUJDdFRkRG96YkVETVJQVjBtVWVqU3BCKzZyb3BpZ3RQQ0loQnBvcW95aVFWYWROTEovNVdqUmE0cmh1VXlFeGwyc0F3c25JUUpzb2FTQ2tLbVpnQXZ6NHhtY2hLSkYwQm02SlpSUkJZMHp1TFBLc0x4eS9IZysrOWErZ05USHpXWldad1FKbU1pckorZE5rb056QldoejlIWEdIU1oxQUVsNVE1RW5wSjZrWXpFNjhFT1kyZWQzVnFRbERzRlpIN2FlMFZSVW9yUFBYbENHMkJFcmFEb3hzT3Bzc3lvRUFubUJwYWdzUnltRWJrQjZRdjFlR1ZwVkFZRGMrcWxMVUwxNlNyamxSci9hTmE0anpLSjZmSERFZkhHNVArQ2ZGREVhZFkrdzhXSmJTK1l4dUxQK0w5Z2l3U1RJOXk0Y2dmY3lhNE5lb2ZRaURNcXFLOWRTQ3lHOVkwMnBDcmwyRDUwTmZ4cTYzL0k4eEp6c091VFJiakVFTlpEcDQxT0Q4YUNmQmRhcHFjOGQwcktZcWU5WGJrTWh3R2ZzdENPb2g1c3A5VTlXcFZGYTJaUlVSU1VPak04QkNtcG1CUW5DNHBDUVZMRUlsMjBtTGtGREY4STJNSzRyZGVvdk5GaklpVzY5ZDNldGRhc1M0dFd6cnVtOGNxQnpLMXBVNVE1K1poejJxQVd4QmM1Q01MaWJnZE5ZRnJrT1I3R3JPVU1lRzZrazZqQzMwOWtBR1lmZkFLUk1LTllDRHdUN2l3SkRjVmNDVGdGNWpKM2F5ek0yOW9CTWsrUXo4SE9nSlBGRnIrekpoWWxiVVlyblNzNnVycFQ5bjBtSmdKa1BQT1FyVmhIYWNRYzhacWJ6YVBSb3g2c0VMWGRuVVZyUUdvajZ0eHJwSFFUUk03YWxRZ2IweS93a0dxV0dVV3F1eklhd3dpWURDRFR5NktoK3NnUnZJZ0FVUjV0RmlxRTIxa3ZGK0ozU2dab1dNY284bzZqQXRtblBpWmpSY2NackRYUWZ4alNyRUtGWEpKUWhNZ2RSTituOFFxcmgvOTdwMk1Fd2VtYXlOajBwaWVoSkhzd2pzSkNrR1lCcU5JblJySUVNMkF1Sy9NTjdWdFJrM2szNTByRnRMRE5YTEYzbHBweDBFQXc0UjZzUmtBTkJqcUpseVp0TUtzNHZUSWxvUnoyZXJEd3I5WGRjeTlhUTFRREs0b2laaVJDUkNNdHBkdzNDNHA2ellJc003cDkvUmtES01VQlNwRWF2dmdEdEJiWjdBRFZCbmtYR1poT0JwQlhvQTRRWlJJN2hiZXlzUXBrSHlRcVFTb2I1dUU4OUN0Y0JzdUZ5MVB0WDNpaEliVEIzd3poUi9TR1d3SXhzcUpaSUNzMjZNWTBRTEpHbmkxZkJYU1QzY0NrbVlmZU9TbVJMQUZjaFIxQlljQ054Q2MrQjBGU1E4Nno4RTVqdE9uUDlRZnVhQm55c2s2RGJaQzU1UFdGdkF0MTJqVUgrNE0wTmIrN1VvOGU5dXp1b0J1WUowNUdSenlCVko0RHM2eGRPVWhzaFBZaWVYaFJadlQrcHd6UURNNG9VOGxzcWtRVjVkR3lNbUpVMXV5VXFYODZ5RlBCMm0yWXpTZ1RvN0hPcTNWa0hpOEttQjdLZ0l5czRKWTFaRStNOEVlQXQ4ZGNxUUFBQTJDTUdwRWhRaVFENERPOGVpVVMxWkFWSmxjTTlNMjNaalFVM2RXT0RZVWlocmVrcTl4bTdvQno4RURVbWVqRTVzblhOTEtXbnZuZ1ZKdGFqa3huQUNhRUEyTUx0VmpZaG45a3JJNGVCdGt5MEZySngrNm1GOUdBU1dwUWFOZldsRkd0TVdFL1dRV3VxL3ozU3daQXp2eGhseVZhcGFOOVZLWVliNGhueHZXWi9HdHJOcGVpN05wYW8rWG1RRHNvVVFsVVRaODhpSXBKWGRZUWhyQmdzUkVWRnlYK2pUdDlMQUhLQUJpNnpJcjlZcWtBVldFcFg1U0puZm1qWkFBL0JEdFVGU3dUYzVBMW1ZMVZ3UmJXTFZNTEFMblBQdVcySjMweEJ2Q1VrSkc5R29WdEVFRXUxSnRUeUFGeDdVVnJWQ3hTN2hyamdyVzZpZkJDcjhGY2hvSGF2Zy9WSG9XNUZpVUQ2UDBHOGp5TE1mc3BBK0E2dmVUWFIyc0dNRUVIbGRxOUNwak5Yb0VNUmFFSE9yVlpDS0tJeWtvQjRBRThSYVdpTjZheEtoUUF1ejlEQXNnQWN2TU1Ya2U1YU0xZG9XUXBpalQzcnpKQWxuTy9oeUNPY0RsdVFHSU9yaGNoV1QxVUNoUVRsakhGSjdJUjc3U2hGS0FuaGFXalZ3U05nY1NzUUdBclhsZDdXUTB3Z1pWUnZMakUyamo0UVFXRVo5Wlh0a2N1dGJrMFp3RHB4ZjFFVFZQZXNIM0ovd2tEbUpVS3htRjY2NWptMzJvTE5RaDA3L1VkdFhYeXFDeVVuY2l3M0Z3RGxHRk1XSUJWUWdFSXE2NXZBOVYwQUwwanNtSmozZFBrS0xGV1FXZURGNzFkc2tFUFVUMGdIYXFBMlVlSFZwMlJDdDdWa3JLaXNRQTJBeVQ5aWlQTWxMOVk0SDl3SDQrVzhJQmpaaGk0ckVMeERPclczUTFib3UyY2Rlam1jQ0MrRElRcEpSRmtwTDFRTGhHcDNjdGR3TjluQUZRME04Y2l6UnRMTGxhaThxQW90S0x0ZkZtUEZVRDNIY1VhRUZuMis0MVhDQ0k4MFZTWmpyWFNFUFNtQW4rbEk4dXMySXk0V1BkQ1dZa2FCSmNaKzNYM0RPOURodE5lQzVrZmFBVzllWVFiWW1KQlJna1I0RStNUjRFQmpBakE4dGg5V09OZWdQTUdFZ3VyRmgrVFlVWGwyem5vaE8yU0FjTE44Ukt5Q3BqU3hpV0FiWEpVR2NKVHJZcjUveEVEN0dGalY3T2o1Wm1iR2VGVW5GdkNnME16WjM1Mm1OSUMxRFl2dE1DTVExeXdRTVBTZzBVdFI4cTZ0ODdZSlRBQW5EMU0wd1A3RitwQXFvVWtxQUpPOUJERWk3Sk5NQkZFUVAzQVFUUDExRlFCMEl2THlsTE5sdlNRZGJySUFITnB5ckRhWEFLZ2lCS0IzeDhMYno5bkFIWkhhek1BN2JOUmloNkZMQUF1U3NDeG1XT1pMQWJ6Ny8rS0FSZ3NCSE1aekNoakYrY0xGS09PV1oyWkNrRDdYckVQekJwaFVUbU9ES0NhRTF0VE1ZQ3EwRGw4UWtidTVRdUlDQmVGYTFWN1lPaURIOTF0S1NWc0xpa2pBZ0JGZEdzR0dEQWZXS3RTd2JuVUFWenNXRzNLT1ZGWjBYYVhTMEI3WldpSzJodGJzNWU3RGpBTWUxUG9DNkpsWkxYWSswaWwzZEVwYUwwSlQ0VnUrZGNZNExUSnRSYkJ2cjRSQkcwNkF6VXRjVmJQTWl4M0VMczdUUGVvRVJZcmdETkFQMXJOQUswcW9PT3cwN2NaNE9NYUE1aU53WnhxekkxYUFHZnoxb09HTmt0Y1Z0MFFTbWN3d09VdWdJc0x5MXM2U0t6RGhsVTU5YnJoSkZONlJEZnVJK3FwNWUrTHJkMUtPbU52bDR1VmdrR2NBYkpYQzdvR0F6eHhIeWxzT2ovOFBRWmc4WGxmNkdlK0VmeWtPZGlVY3E4dzZhaG1xbmNVRGI0R3FMZ2pCdHFkRjluT0pRTmN4T3JTVS9kN0RKQVp5bjA5R0JiUStRVFpxQURJcWZsT21sdjFIWm1SdkR2anRHbzdRSVhXR21HYkNacnFqbk9IRERTUTFOeFV3TTdDaWNJSnBEditqcG9SYmUwTDY4QmdWOWdCN2xtbGNHMEp3NWd4VHYzckF5NE1QUWR4WmQwVXpmRHhGeG1BbnhudU9xcjB0dlNBc2IyS05nUE9wWW13RU9KeXFhUXBvQ3ljTVNPOGExU242S1FTZUpVQnpNSDM4SHNNTUswTXc2Z1RWQ2JQZUhSb25BcUFjOC9sVXBxNWxjVHl1cDYyZzB5VURHQ1JYMWxDN254V3E0RlFSS20zNjFVV0gxU3RLc0JXVTlhenN3cFZjK2MrRzFWRmhLRWFWVkV2Kzd5bUxiSHZNc1N4bllmS1FHekpkMmxnN2g5K253RVdQRnJhVjBJaUV3UmdGcmNzTTZjS09Vc1FOZzAzZ1p6bTlBMVBFTVBzbFZhWUVTVEwwQndad0pDTlB0bmpEUWFBVC8veE54a2dNcFRqOGUwUTBpei9LbU9IRmNDbVptQW1ZUWVnN1libVd3WkptQy9BNHozTnp3MUR1NmJWVVR2dVhQMXV0UGpZSG03TjBzK0hoaXFSTFpSS3Y0VjFuOE1UNGRXb0RoNEV6YTFTSDE0ZlVidVRXZVFPVGUwaWd0WkU4N1lxdlVsaVFQY0M0R0hPM25ZVlRVamp0RDU2TElmT3ZNZXd1WnV4cHdBTHlEUXBxaXJPaW96SnIwWnVWbG9Cdll2Q0dlS1RqeENtYlBDTG80TDBGUVpBVU5mdk1nRDFDLzZxR2VBeEMwQ3JhVklOK0hPYm1rR0MvaHB5V01zeHIrM2pBamFoSTBNd0xNc2o2OVEvb0VyOW9BSDFsRlN3QkpJa0lGUlVmVlBBUEN2Y0FDd2UzZHhUMXRXbzNOMjBodDlYVFlKa2NITUhyMHNuc2J4a09wbTlkTGp5SU5NV0R3bndrS2Q0ZkhyVzBhVTBWcTVvbGZQYno5THJodmc2ZExESUZNbU1kNDI2SzU3bS82a3NMYld2QzJld3lrT2RyTDhNQzc5a2dLL3ZQMldBajJzTThQb1dKZUNCRk0wcVU3b3lnUDdhTlllUEhKdnNNRFBNczRWQkJrc2RhYWJVZ3krM3h5bFIxa1RJc2xWUjRhWW5MYnF4aGZKcVZEc1BnamJYOFFpMTNGSzdaSVVVaStQcGRCa21ndEZuS0VPVURnZXIxSlUzR1BERlNzWjBrK3VWUkMyMnl2a0pvZEx2RG14QUFSWjRlZk40UUV4enI1cVFhZjZ6dEpRSFI1YWxOTEwyQWd0dkdQMnZNOENQUDJLQTdYVUdJTUtGbVNQN05nY2gyN2lrdzVQSm1keTNEQ1JwWjJxQllhT0dFZEE3blJHcEo3WUtUb21xS29wWGZkdnZnMzdhdXQ0OUs2dFIwZkZ5UXNoSnhCUTVkR0FHNmNseU83cDBJbEJNSGhlQlppd3o4WTVIVlpVM0JPRkg0c0ZSSDRFeUdVSlp4OVl3N2lVaWJ4UlpVT3l5aGN3ZS91d0JXNnd3eEQrTTVJK0loa1hoakFqeHdmdnlvY1FSN1ZrODh2Y1k0UEVtQXdqQncvUmE2UUJuMjNON2dna3ozYkxLMU1adDArdWR5K0VCYW45R0p0MG1HN1VKaitLU0p2UUI5ZkFuNnlPVmRaR2k2dHUzVjdqWmVqV3JsNnFhbFUwK0JrRXpmTkJvR05BQkMwWDBnbHN5L0ZNbFRCbHF5bkRKVFZtOEpBcUQyUitJOFViQU1TWWhoVEVtWTVTWFlwa2NoeDlPbzBJSHFVdE1BTURuUkFCRnBMcmgvcFRhQ092eXdrVE9oZ3cybnBqWUFmOThLMzZSNVdOL2l3SHlSODBBMUpJOTltd0pHQW0ySzJ1enVubWh4eDVGcUNYUE1ZdlhTdVp5VkFYc0RKZ2lySzZuRVZuR0dNZkpPbU5PdldmU05LTjN0YkhxbXpTakZCVWdHS3U4bWxVVWJucmhlc2dBWXFPaFV4VU5FYkRXSTlOTjdnbktSTEM1TmlkUlhhOUl6K0hmWHV3SUhFQ0VTQzdMR1ZOck96QStLODZIWUM4ay9TeC9RSFJBcENVaWhuRmJ1UldRSHhhOXlod3ZpbDUxK3Y4dkdTQ0RWc3FOcXloclpmSksxRytBVUdXc3JiNndSck5MSjJleWlHbEdYTEtpVHY0SEdVOC9tWVBqb3BhWTFXY1NnWWRJOUt4d3N3R05ObHFNYXhNanJUVGFNRm84UVhTc2tJTHFpazVMTkJDVUxhZmJIdkZ5SUQzb0lqOFQwVlVVQkFPaExMb2xYTDBwaG1jVXltenNaa1UxU2h0SUhoN1lVK2tqZVhWNngveWVHYndLMUo1QTUzQi82NWtoUGhaTzArdGhFMk1HSUpBZkJjVC9BZ1BNR1dhR2VFc1luZWFlVnh4MkFtcEVUMTVsU21lZ29TYWZZazdyRDQyNWhoM3lFZ3lMdldtaVd3UFNNN1dwNWMzK0VzcnpPRWpHRXppZmdCZGhiRHNtRzRHU1dDN2NGVHZUQnJIYUJtVmFNUzMrcERvUXNqWUxncEZRaUc1aFRJdHZ4cTNVSG9SeTJaNHRNaFVuVWQ4b0lxTm5tTVMrMnd1RmsxcnQrTjVOUDZNcXByelhNQUUrQzJsN1lXNkFBcEVjUU9qLyt3eHdLT01CNk8xanZYc20yVHZ0R1hDNVk1TE9ISktuQjR5K0lVWEJBWmdhTG9meFErbVBPWEE1N2tJdzFuZ0w2WXpVU0lsOHpiVjR4Z1U2aVhUS0FvYnN3aUtnWGREZ0dFb0JCQ1YvRzRqM2toTlpUcy9kWDdQY2tPc0l2SWY0c29yUFRqVWFHcUl5S2tLY0lKU2ptZUVDZ3J2REhjZnpNQTVzb0V5SHZRZlRHeitRbjQzeGpHTG5PUGNZVzBuNjBhQnBtbG1VM0lZQjRMLy9CZjJEQWViekZnT0VPU09oUmNrQTd1MkxldmRFUm1NQ200WUc3Z3locUFBLzNYMncvdDRzd0FoRTVEbWtlVXcwYkEyRzlXVU9qVm8zSWJoRXZtYS9selpNSXJuU1Z5QjEwQ01uUVRPeU92UXN1ODdmOUxlM0V6T0FvYmY0UHBXMFZIdTU3YWM1c2FqNXptTnBhbFFRTFZrRGtJSm9BNW83MUt6bjBBRVYyenpBR0dDMytEckZHRVJqTTF3TnhZT21URHJIclJXaDlnMDIyaVlCV0R4ZTZYOEhDL1FvclV4Z2dEcGZSU1lrb1RlODQ3WHJNYkpibUJhdHBBclZibW5vbXdGMlFtRnN1WE4wL3B0MnBOVG1XbDNXSVZ1aWhVWm02bEVVNGN1cTZZWTZJdkkxKzcyNEtRdnZFSmpGSXNiY3lpOEIzRWZnNHlvQ0xQQ1IrUnRDOUVJYlRRbG5oTVJwT1ZPbzhxNGJNKzh5dW9WcEpyRWZYZytLcUlwc2RJVWlPcWRSYXhhaTIzcCtJRkVBOUhKbGVqUGQya1lDaloxNmttQ0dMd3ZmbXhWRk45QjZ4SnhBc3Y0TCtjRUFtOEtFY2MrMEFIVytDZ3l5UjA3d0IwZWIwTUEzMXFXM2xaUnluU0FUdDA0ay9jZHBxZkpxbElrMlJFMi9ZcWR0ZSs4b3dtYzBRbXBpeXUxbjBDMHNjbTc4Z2NVQUpqVTV5Y3VZTzkzUUE1Z0I4eUY1VHRlMXAvUGhJdGplajRhT3c0U3pteXMya2tWdmZTZ1lvSXFOMGZRMHhabHNqS2wwTDVQNUhRWXJjYUhSL2NlMHJDeGY5TzR4bFlqeGRpVlBxQzBCazR3cDV3ZXVBTFl3c2V5SlNvb0VZV2hDN0RSaENFV1F6S1BPVnhFSlNmUUg2MjJ5ZGoyc2pOemJqRlZXaDVac0dFTkFUS21IalFFdE5LUnNQZzlrZkl4NjB0THB0alp5SUlTMkI1djBoRWF3M3I5QnRqUHlYL3ZjSmorTkF1Zk5uRm1iRWRadVFKQTU1b3dGdlNnb2dZV29jdi9pWVJSa2dMWkZ5Z3RHaUVhRkU4ZFhHS0IvbFFHc3V1QzZuNXBVTEFGekFvTWlvbmVnZFNTYUFrREFpajFySnUvQUpHVGU4aTRqYVVGdDBCeGtwdW5SQk42VVBsdW44RDhsQTN5ZllsZUp5WWU4QU5DNWNuZmppcGIrd0JIOGVNZEdLeXNFUTg3SFBua0RhTEJoZzNFSnl0RXhhZWsyN05wTGt0SHdKRmF5Q3BhTHNNdEM3NFgxbU1HUnVwWlphdjhOalAyWUtOcWRheTF3T1o3Q2t0N2loWkFOMlhBaklFSE9jTlYzYVpIbFZsRUt5b3RSSTFzWkN0RDBLSndqdTF1YkFlWUZBMWdZbk9WUmQ2RnVTUTFYK005VFhuRUYwZUpHWjZ3RGtZRFAzd1YrQzBEUk1jRUhycmpKVDh5ZjdkWk5tQ2h2eisxa3d2bUsxRERKQUxZQmZtY2I0d1REZEVhbkpqbVlvbTFtdEZYUmxBSFRDT2FyN1ZqZndRSjdGcXRBVmdqbG5udThqTXh0WXgvNGUrQTJnVTV1T1pzQnFuVFhETVlIbmhtdW1SNEN0NWl6K01iVytJU0pwZGFEaHZDb2REU3VxUU81OUZWekpDT0RQZTV4M25jR2dJdFhLZUZaZlYwTHFsSzA4am94ZE9vL3VkWmlwZ0l6bEF5UTJuYzZoTlZiUlJFRGtxRjFhd1lBVVJXNUJvaWhpWGkrQ3dZbkFGZm1hZ0lYdWlZTWk2WEpVSituMEtCY0V5TjVRd0NnaWNESHFweEYyWFVSVUZHOXJBekswa1NOOHl3MDk2ci9rYWRzQmdPVXF6S0NkWSsvdjRMOHFoWlNhZGhBL09NN2tRU1dWaXNBOE5SZlFDcTZ4LzF3OEt6Wm9EWG11c25wWVRoMmxmWUQ1WXJNQzZvc0FmZHprOVlLVkExZDAwQ0ZnQnI1N1F3UThaY0pwMEZQMmJvUkhhbHBhSnRGTDdUdGdPR1NBZVF4YTRqbUN3YkFzcVMvc3VJNGM1NXhDU0JSWFdWWldRVWwxOGk4bkFKTmFhbTRiY3lHb1JaTFN0ckU2Wi8yUm9pTldjRytRZ0FrQStTZUYwc3J5aVRyN0MwTXluQk9IT21HaEx1S3Bwd0hPbjFOZk1NTWE4b0FuanAyOG5jN3BxTFpwd3hIcU9yQWVxTUdhVVdtZElkME1HQ2trVm5NbnFKZUUrUUFkU091aE91RkI4WWFBeWc3WUdsT2E0VTVFTWtBakhzTUJraEFUWiswdEo3ZU92NHJBWnNhWGxBb2MzTW9CSEkwR0lBWmNtMFhnRWQ0VWpxNmxERXh0SlU1ejNKdGZMSk55NGc0WjlmSU1MbGh0MjRwVWlkU08ybitmVlFmUVdqZVIwaGxwR3NTK3BzQVlJdk1uMjZ4c0ZTSGtSNkczWnJwMnJYdTdrZyt3b3k1ZUVFYksvam0xRkJ2TEVEeVB5ZzJlS1RpUEVKc09yc1ZjcmwyT3RoWStxVHQ5M1FiVzhoTzZUbDdUeFlrUTJMNWZnMmdYdmM5S25KempRRVlBclJJQnJDNHgxRXdBTlJzUEF0MjdhemhzNGlHSnpMRVJEMVltZUZYVkc4aXJybTdsOG1ic1dNdXBnR2JpcTJwazZ6S2VaWkU5ZndWaEd0RG5vZVc5c1d0VkhUQlBRaHFrK1plNjE3bkxQSlc2azlwNlFNcUdFQ3VqVDB2YSttb3RVYTdkVmhnVUFiVHlvMGRwYXViS1hQbmdBTzRZMXJEVXp1eHhHb2I3dTBBTWxXbFBEQThNbU5VK0M0MFdRS29Gam5tcFRjWFR4WGF1MVhQZTZ5NkMzNWp6aWNENk9MZVJOa0tSK0pYREVEeDNvc2xZS3p2dGswR2VHZGRqeDcrZ1JyWURxWGxOdERWRllMTkxaQjd4V2xOKzU3RUZhTWo3TGRiQmpzV3hpa2xtYlJsbWZOc0dVVDFERFpFOFlWR2hza3RCS1V4SmJ0SWJmeHIwMXhPUXBNL3BTa1AvTURmYmZvalF3Z3BhQ3VtWmVWQnR3NXdyMkY4cVhUVDdyWFdUYkRTbjBwSzVLbWZLM2FmNVllNXR3UElWQ090WW1PRUpEWVNCQ0s5Rk8rV1hXWFhxSXBrejJLNWNHREdyQ2RydGxvVjNwRURWcUFVZWxlVWl0YVEzWjRoNlRJZ1R4R2laQUFaNjVJQndKZmdJblFSL2xHSDB1STFJQlFwbldIaFovRnNYUk0zYnVHbnlWK1psbnRwd041TEh3SVNTVXFqdzU4S2VoS1ZlVmU0bDZaR2hyeEhjT1FyQjFSZHBIYlFIRVJIQThuLzh3OWIrb0NpWVF0WHhQWEFHamM3YmJMYjVpQ3l2dmljVXc3SVZBYXNHUTJzcjB3Tjd1V1lYR1VBOHN1UjNCaUpKSlltLzdEVEpzcE82SStDUzlpbksrOW9IVjZpY2N5VWJzUnVIT05NN0hHRFZjR3hFUTQ3Yk9aNk1jTHRtRGFqMzNoQlRoRm5OUU5Fa0dybTRHaUYwbkpPazYxRE9pTmZYNlJzVlNLbmR5KzlnUmhSdXZveHYwZ3ltOGk1LzBxaU1oaGdFelArdU5kMmhCQVhjc3JWeDZLTDFQNG5TSzVOenNOZlFuTDdpYjlKLzJ6bWZ3d0d3TWVZN1ljcXFxbTQ2Rll5TUtQelFMVXZDRjdzam9tZlFybjF3VG1ENUFZOTYxd1BNc3MxMGtJY1BxVnpiZkdRQklNZ2JOQllncVh1bE1OMmx0ckZ0NEZyZVNGaW5MRU41T1p3ME1TbW55QWlCQTh5RTd2dEtSYlNzVERsUFJpZ0h3eEFtR2dua21MV29iU2MwMXpZUWpydnFZQXJpYXZnTzI2L3B0eEd5MEVRZGJQeFdTdzBLeWV5ZGlkUnFiUlJiUk82NXV3Mm1yYTdTRzM4QzFjZmlCNGsxNS9TOGE4MCtvQ3lNZEV0R1dBWW1qbTdWekFvZTlZWHN5cURBMWpqaDhCSzFmT0YyaEFEemJyYytFSXNXUENXKzhjNlNqT1pzbWZMTEVJNG1Obys1MXdwdURFOEtLcllrbFN3WUxWQnBjK1cxNGNSME9qcU5jUkc2TXN3cTAvYnFpQmY0am0rWnhzcWJDd1lIakRSYmlSU2pGRGFuTk94cFhZS003Umd5bW1OakdqVzBKR1NHejdRME1RUmp1Y1RlVyt0RnVSY0liNXJlWTYvYlVhemgxMVYreGRTL2w5di8wWDdGLytaQzVEMFovT3NuMkFBbDNXUEdETnJVWHhnUXJtT0tNOEZLMzNESlBmK3dxMmVpb0ZGSzJYR1duSFZvUmpjdjNJcGJ5eDYyMzBabWpGY2JKOVpNWmNid3lqL3liMDhNUHlzTGtmblkyZkhmbHpLa0Uvc3AwZWxYVkUvSkhOOFUySGp6OHlHbVVreGw5ZGlkblJxcG5UbUJrdjlISmpXWHo1eFp5UTBKYmVhUkZNUjV5eU9pWnpkU1ZRbzdoNjVrMnM0L2ZpVTZWVlgyWlRPUm5lUy9ILys1My9ROHo5Qi9td2NXS3YwcXZ2ZHRGVnpCNHpHbVdNZVN3WFVmSkQraklNQS9ia01GQXdndnlnQU1LcUFpbkFwNzN1UWVDQTFGTGZZZ3c1QTJ4MGFyYXhrVktWWkpEa3hQOFl3KzVtQzdOVXkreUVoSXowTHBHemtyNHFRRElUa1JqYk10MHlLcVNic3FtR1NmNVhTK2Y4bjcyeGI0Z2lDSUJ3U0FTRVNDTDdsSUJ3WUR3SW45Ly8vWHFiN3FicWEyZnNVUkJDdGpYdHVhUUNzN2RsK205NFNxQjN3UFdaTjhMWHZyeUpLUk5SRjA4VVRQeTZHREkyaytTYnJ1U0dUaGdrVlJIUGhOQ1EvRGZSM3lMOGdmMnJ0SGsxV0VucUpnOGxCMXZQL21UZTkxbCs0YTZSNUF0eE5nL01HMVM1QWhRZTEybnVtVEwrTFZBNFpDYjNhKzMzckYrbGk3d0szU2F1S2hEVHk5cXFLdHVGVDYvZG96OVFXQlNiWXpaMnlES250K2dZZkttUU9TODRSeFEvTDZ1eDFlNDYyRGdpOXFMdTE0Z0tHSEQ2cXlvZEQzNnpuZW9hM2VTL1VDblErYlFYUDl4YzNRT1A1dnM1TDMwK1FpUW5lMC9Ia080QndzWTMvQ1hjdm96UDdGaUE4Y0lLdG50QjMvZHBIN1lKbFJCOTdndkg0ZHRqN0kwYzZEd1k4OXB1YUJhbkpvc0xUN2VOS0ZoVklCQzZGYnpUQk9BNGI1UXdYTy9wTThNVnoySEFyclZablZHMzkrSllMZkxzNkRVVGNhRm9ma1RHR0RHMFVMN2N0Ni9sUnhvMDVYMURCbC85QzJXa2VBUmljKzM0Q3VjYVUzL0gvZkFjNEVYUmZyODFWUHBDYXBaT0FkL1V6N1lEVHlJWEhVZThZcDFiYlF6b0x1SnA2QndOZ0UwVmFSbTZ5c1lVN1lQQTM0ZTJYTVU2NnJnODRaMGpyQ2Nad3JPeE1SdTNXVWo1SXBzbWNjMWh4Wk1hVUhXNGwydEtCZ2h0MWl4dVFaaVdpK2FhQlBwczVUczl3WU9OZXFWZWdGTjA0Z1U3WlBpNUk2cVgxMS92ZTA0Q1dKTUMxeG1lN0RGRHQvNTVLSUgvaGFnenowYUJQdDJ5UkVLUFBHOEtnWXpZRDkxdlh0c1pvQzQvaFR2RjB1MTg0WjYyc0poaUxLOWhiMi9OS0NENFRxT1hJS28zQzhjZldhTXVIRUhIcjU4aHJHYkZqcytpcGMyR2NvM2doVWkvVTYxRHgzb0RDUVBlaHV1K0hqT3hYWEdQWDBYc1NYM21DeTF0UGt3YWsxMTQ5K2RkRWlMOTBBNmpCLy92SU1YZ3c2ZFNuMzdzb3ZJb0hQNU03NWZTYm9oWmgxSWJITDNOb2haRE9qRGNnNGV5dEpRQkxNczFLK3hSM0cvUEdaR0ZpdnNLZ1dibFJ0M1ZGVWpTMWlCWWRxU2UwMmFQdjIwSVpIeWVDY0l2Yzk5TnlWejVOcmpHdndicXRtVzRkQzFDQ1lZdHdDZ0c4V1dIdlZvQXViWTJ0UXZSZTZkVW9ZOVMrUnhNZldMU2RFRXQwYlRqZERSRHQvQURXazlwOC9MSUlXVXdvWWl0eGY3ZUowem5jMXVHVFpjYldiYk9yNS8waWxmczYyaUp1SFBHZ1dMNmdBNjdmSHJWeFlrNEZFL0RTVHpDbmd0czFWcGFsOU84Mk5BYjhha2hBU29HZCtFZ3pVTmNFcmp6R2lNS0cya0x4NVZpMGs5cUdPRVArOTRXQk9vemE4bXZlcEJDQjY0RDBvOXlYalNXNEJpODVvU3FXYlp2RmhqRnJybXk3SWxBM3FyNDNERHZkYlBMZVBhaWZRSzFvMmwxUWFqbkxVa1hBYnFMdEVkOGFFekkxQXhBRXV3R2NuWGdhQjYvMEdIcXpTVkc1N3F6YVRVendTdTVEQ25VWU5kUHdjOTRrVVRUYTFrZTRYRjdtMG80MlpaL3F3SUlsc1ZXOXRHcSszajFTRG5ibFM2K003V2F1ZW9hVHVhL1pPcFNEMVlsQ0pQNk5nV2JaNVpwMklFeVJrRm0zUUMvNFhRWkRiQVNYczdVa3hFeHNEVDZIZEhVK0pMeTBoUVg4R2t3NFFtdWt0dnNXeE5xeFpaMFdRLzQ0T0J3eVJPWkhkY3crdVA2ay9VamE0N0VieHF0T0ZQeUJ1UXJtL2tDdDFwZ29NcW96cUYvYWt6SVlLYkxMTmR2L2RiWDNaRWxpb1lta1F5ZFBadGlBUTlRL2NiQmNya0I5MnpLbmp3cVVwdkpWaHMzdTBYS3R0Q1BSZXp3d1dweUQ4Z2RjQlNNeFRzY1pYdmk4RXJPOC84bUNYMXhBYldQSmh5VzZYZzBiOGViSE1XRlVhUFBiSkFseEZUQUpWelNXdmdMNVB3ZTZkMHlWTC9iS2x4SGpoTTN0eE9PYUJ6ZlZMNHdlWVAxWis5SEx1czdWYk1wZ1FYNDFjRHdkQXZVRmJGb0tsWEJiUG43WlM1S2lpN1JOSnREaUVqaC8rb213dnBCTFFkYzVERXNUdzI0T3kzUnJCTFFUVy82c3hMb0ZzdUJqM29HVVRjb2tCSVp0YnJWU2FZU09LMjhXL0d2dkRGWWJpR0VnYWdodG9hZWtsM2FocDF3S1lmdi92MWRrV1g2YVFDK0Z3SnJxT1JmN2FsdnhXcU54QzZKdkRlaitXMHg4cEZ4Q0VJU2pFSmZwSTFYaUIzL0FkMnpNcVlmWUNBTVM4QU5pTmpjbWtkalFmK1c1bCtPWFlmUXZVMW5Zb1U3YUtRUkIzdmNVaTFtUDVaZG4vZE1memxRZDNzaFlzQVJTd0dleXAwQ0JDekh1VElUSFJlWENhOGhnM2dTZjgwT3pwb1o5WllDWHlCeXRPNDVJekJJSVNGMHl0YjljaUxIWkh6cjNoZXR2MWFvQVFaQVJNdDJjRlZMUnREZ1AzUGE5QlNOdktRR2Z5KzRqYk95aUsvQS9hS1BnaGVKVjVEMHBMNnhsRTNmV0UzdURiMUpleHVFK3I0cXUzQU1wZERmRUNkZGdBVHhOTUoveENBQjhneUZJT3hxMUFKNGhMNEJPRnZnWmxMMGgyWGwzVzAyc0o0Qi9lS01kanNJZjZRUXJVM3pCd2taZnhqV2k1cDVUWWRocWZtSTlzUVlGc25Bd2tWYzJzVUxnTitpdUcwanhzTlhFZTJRRkNncERCTnZNMk5qSjYvaU9sYnE1am5ZMnl3UDYvSysyQUFxdmROTE52RzNaeURJRWZxZkE4cnJJTEpOb2h5UEFDaFFVaDRKdlpuR1lENEhmNUxLNVJBODhEN2hXQUNoUUJBbGQwNUZIWGVEM0ZpT2JGMFhkaWVheG50amJTaFMybGFWZGg3blhOZnBENEdjaldoU1YrVXJXRXd0Ui9BQnR3elltK0l4U2x3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuICByZXR1cm4gaW1hZ2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmbnQoKXtcclxuICByZXR1cm4gYGluZm8gZmFjZT1cIlJvYm90b1wiIHNpemU9MTkyIGJvbGQ9MCBpdGFsaWM9MCBjaGFyc2V0PVwiXCIgdW5pY29kZT0xIHN0cmV0Y2hIPTEwMCBzbW9vdGg9MSBhYT0xIHBhZGRpbmc9MjQsMjQsMjQsMjQgc3BhY2luZz0xMiwxMiBvdXRsaW5lPTBcclxuY29tbW9uIGxpbmVIZWlnaHQ9MTkyIGJhc2U9MTUyIHNjYWxlVz0zMDcyIHNjYWxlSD0xNTM2IHBhZ2VzPTEgcGFja2VkPTAgYWxwaGFDaG5sPTAgcmVkQ2hubD00IGdyZWVuQ2hubD00IGJsdWVDaG5sPTRcclxucGFnZSBpZD0wIGZpbGU9XCJyb2JvdG9fMC5wbmdcIlxyXG5jaGFycyBjb3VudD0xOTRcclxuY2hhciBpZD0wICAgIHg9NjM2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIgICAgeD01NzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTMgICB4PTQ1MCAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMiAgIHg9Mjk4NyAgeT0xMjQyICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMzICAgeD0xNzE0ICB5PTc2OSAgIHdpZHRoPTY2ICAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzQgICB4PTE5OTkgIHk9MTI2MyAgd2lkdGg9ODEgICAgaGVpZ2h0PTg3ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNSAgIHg9MTIxNCAgeT05NTEgICB3aWR0aD0xMzYgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM2ICAgeD0xNjEwICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzcgICB4PTEzNDEgIHk9NTk1ICAgd2lkdGg9MTUyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOCAgIHg9MTY1OCAgeT01OTIgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM5ICAgeD0yMDkyICB5PTEyNjMgIHdpZHRoPTYyICAgIGhlaWdodD04NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MjggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDAgICB4PTEwMyAgIHk9MCAgICAgd2lkdGg9OTAgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MSAgIHg9MCAgICAgeT0wICAgICB3aWR0aD05MSAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQyICAgeD02NjQgICB5PTEyOTQgIHdpZHRoPTExNCAgIGhlaWdodD0xMTQgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDMgICB4PTAgICAgIHk9MTMxNyAgd2lkdGg9MTI4ICAgaGVpZ2h0PTEyOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NCAgIHg9MTkxNiAgeT0xMjY0ICB3aWR0aD03MSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTExMSAgIHhhZHZhbmNlPTMxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ1ICAgeD0yMzMgICB5PTE0NTcgIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDYgICB4PTI4MjggIHk9MTI0NSAgd2lkdGg9NjggICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMTIgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NyAgIHg9MCAgICAgeT00MjkgICB3aWR0aD0xMDkgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ4ICAgeD0yMzkyICB5PTU4MyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDkgICB4PTExMiAgIHk9MTE0MyAgd2lkdGg9OTMgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MCAgIHg9MTQ0MyAgeT03NzIgICB3aWR0aD0xMjYgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUxICAgeD0yNjYwICB5PTU3NSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTIgICB4PTE3OTQgIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MyAgIHg9NTM5ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU0ICAgeD00MDYgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTUgICB4PTIwODIgIHk9OTQxICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NiAgIHg9MjUyNiAgeT01ODEgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU3ICAgeD0xNTgxICB5PTc3MSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTggICB4PTIzODMgIHk9MTExMyAgd2lkdGg9NjcgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OSAgIHg9MzcyICAgeT0xMTQwICB3aWR0aD03MyAgICBoZWlnaHQ9MTU2ICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYwICAgeD01MzkgICB5PTEzMDcgIHdpZHRoPTExMyAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjEgICB4PTE2ODggIHk9MTI2OSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTkzICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD01MSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MiAgIHg9NDExICAgeT0xMzA4ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYzICAgeD04MDAgICB5PTc3OSAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjQgICB4PTE0MjEgIHk9MCAgICAgd2lkdGg9MTc3ICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xNiAgICB4YWR2YW5jZT0xNDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NSAgIHg9MjcwOCAgeT03NTIgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY2ICAgeD0yMjIxICB5PTkzOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjcgICB4PTE4MTEgIHk9NTkyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OCAgIHg9MTY1MCAgeT05NDYgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY5ICAgeD0yNDk2ICB5PTkzNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzAgICB4PTI2MzAgIHk9OTMyICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MSAgIHg9MTk2MCAgeT01OTAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcyICAgeD05MTYgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzMgICB4PTI5NiAgIHk9MTE0MiAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NCAgIHg9MjcyICAgeT03OTAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc1ICAgeD03NjcgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzYgICB4PTI3NjIgIHk9OTI2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NyAgIHg9MjE5NyAgeT03NjUgICB3aWR0aD0xNjMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc4ICAgeD0xMDY1ICB5PTk1MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzkgICB4PTE1MDUgIHk9NTk0ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MCAgIHg9MTkzOCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgxICAgeD0yMjIyICB5PTIwNyAgIHdpZHRoPTE0MSAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODIgICB4PTEzNjIgIHk9OTQ5ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MyAgIHg9MjEwOSAgeT01ODggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg0ICAgeD02MTcgICB5PTk1NSAgIHdpZHRoPTEzOCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODUgICB4PTEyOCAgIHk9NzkyICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NiAgIHg9Mjg3MCAgeT03NDkgICB3aWR0aD0xNDcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg3ICAgeD0yMDAyICB5PTc2NyAgIHdpZHRoPTE4MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODggICB4PTMxMiAgIHk9OTY2ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OSAgIHg9MTU3ICAgeT05NjggICB3aWR0aD0xNDMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkwICAgeD0xNTA2ICB5PTk0NyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTEgICB4PTY1OCAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MiAgIHg9Mjk0NSAgeT0yMDQgICB3aWR0aD0xMTEgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkzICAgeD01NjcgICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTQgICB4PTE1NzAgIHk9MTI3MSAgd2lkdGg9MTA2ICAgaGVpZ2h0PTEwNSAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NSAgIHg9MCAgICAgeT0xNDU4ICB3aWR0aD0xMjEgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTcyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk2ICAgeD0yNjIyICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NDkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTcgICB4PTE1ODUgIHk9MTEyMSAgd2lkdGg9MTE5ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OCAgIHg9Njc3ICAgeT00MTggICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk5ICAgeD0xNDUzICB5PTExMjMgIHdpZHRoPTEyMCAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAwICB4PTEyMDkgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDEgIHg9MTMyMCAgeT0xMTI1ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMiAgeD0xODY2ICB5PTQwOCAgIHdpZHRoPTEwMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9NiAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAzICB4PTEzNCAgIHk9NjEyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDQgIHg9MjYyNyAgeT0zOTUgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNSAgeD0xMDUwICB5PTc3NiAgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA2ICB4PTEzMjcgIHk9MCAgICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDcgIHg9MjQ5NSAgeT00MDEgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOCAgeD0yNzU1ICB5PTM5MiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA5ICB4PTE5NzMgIHk9MTExNyAgd2lkdGg9MTY4ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTAgIHg9MjE1MyAgeT0xMTE1ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMSAgeD0xMTgxICB5PTExMjYgIHdpZHRoPTEyNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEyICB4PTI2NyAgIHk9NjExICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTMgIHg9NDAwICAgeT02MDAgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNCAgeD0yMjgxICB5PTExMTMgIHdpZHRoPTkwICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE1ICB4PTE3MTYgIHk9MTEyMCAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTYgIHg9NDU3ICAgeT0xMTQwICB3aWR0aD05NSAgICBoZWlnaHQ9MTU1ICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTIzICAgIHhhZHZhbmNlPTUyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNyAgeD0xODQ1ICB5PTExMTcgIHdpZHRoPTExNiAgIGhlaWdodD0xMzUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE4ICB4PTI3NzIgIHk9MTEwMCAgd2lkdGg9MTIyICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTkgIHg9MjQ2MiAgeT0xMTEzICB3aWR0aD0xNjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTEyMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMCAgeD0yNjM3ICB5PTExMDYgIHdpZHRoPTEyMyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIxICB4PTAgICAgIHk9NjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjIgIHg9MjkwNiAgeT0xMDk3ICB3aWR0aD0xMTcgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMyAgeD00NTggICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI0ICB4PTI0NTEgIHk9MjA2ICAgd2lkdGg9NjEgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjUgIHg9MzQ5ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNiAgeD0yMzc4ICB5PTEyNTkgIHdpZHRoPTEzOCAgIGhlaWdodD03OSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYwICB4PTUxMyAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjEgIHg9MjE3ICAgeT0xMTQyICB3aWR0aD02NyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MiAgeD0xMzQxICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MjUgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYzICB4PTEzMDAgIHk9Nzc0ICAgd2lkdGg9MTMxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjQgIHg9NzAyICAgeT0xMTI5ICB3aWR0aD0xNDkgICBoZWlnaHQ9MTQ5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTMwICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NSAgeD00NjUgICB5PTk1NSAgIHdpZHRoPTE0MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY2ICB4PTIzNzUgIHk9MjA2ICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjcgIHg9MjA1ICAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OCAgeD0yNzE2ICB5PTEyNTEgIHdpZHRoPTEwMCAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY5ICB4PTk5NSAgIHk9NTk5ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzAgIHg9MTM2OCAgeT0xMjczICB3aWR0aD05OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTcxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MSAgeD0xMTMxICB5PTEyNzcgIHdpZHRoPTExMCAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcyICB4PTIyNTEgIHk9MTI2MSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTgxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT04OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzMgIHg9MTMzICAgeT0xNDU4ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NCAgeD0xMTY4ICB5PTU5NyAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc1ICB4PTMzMyAgIHk9MTQ0OCAgd2lkdGg9MTA1ICAgaGVpZ2h0PTU5ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzYgIHg9MTgxNSAgeT0xMjY4ICB3aWR0aD04OSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTYwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NyAgeD04NjMgICB5PTExMjkgIHdpZHRoPTEyMSAgIGhlaWdodD0xNDcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MjkgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc4ICB4PTg5OSAgIHk9MTI4OCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzkgIHg9NzkwICAgeT0xMjkwICB3aWR0aD05NyAgICBoZWlnaHQ9MTEyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MCAgeD0yNTI4ICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgxICB4PTg2NiAgIHk9NTk5ICAgd2lkdGg9MTE3ICAgaGVpZ2h0PTE2NiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODIgIHg9Mjg5MyAgeT05MjMgICB3aWR0aD0xMTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MyAgeD0yOTA4ICB5PTEyNDIgIHdpZHRoPTY3ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NjIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg0ICB4PTIxNjYgIHk9MTI2MSAgd2lkdGg9NzMgICAgaGVpZ2h0PTgyICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODUgIHg9MTQ3OSAgeT0xMjcxICB3aWR0aD03OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NiAgeD0xMjUzICB5PTEyNzQgIHdpZHRoPTEwMyAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg3ICB4PTEwMDggIHk9MTI3NyAgd2lkdGg9MTExICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODggIHg9MjU0MiAgeT03NTggICB3aWR0aD0xNTQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OSAgeD0yMzcyICB5PTc2MCAgIHdpZHRoPTE1OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkwICB4PTExMjkgIHk9Nzc2ICAgd2lkdGg9MTU5ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTEgIHg9OTI1ICAgeT03NzcgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MiAgeD0xNjIgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkzICB4PTMyNCAgIHk9MjE0ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTQgIHg9MCAgICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NSAgeD0xMzU5ICB5PTIxMCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk2ICB4PTE4MTQgIHk9MjA4ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTcgIHg9MTAxNiAgeT0wICAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTk5ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0yMyAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OCAgeD0xNzkyICB5PTc2OSAgIHdpZHRoPTE5OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTUwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk5ICB4PTExNzggIHk9MCAgICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDAgIHg9MjkyMiAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMSAgeD02NDEgICB5PTIxNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAyICB4PTc3NSAgIHk9MjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDMgIHg9MTk3NiAgeT0yMDcgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNCAgeD0xMDE4ICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA1ICB4PTExMTIgIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDYgIHg9OTA5ICAgeT0yMTMgICB3aWR0aD05NyAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNyAgeD0yMTEwICB5PTIwNyAgIHdpZHRoPTEwMCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yOCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA4ICB4PTAgICAgIHk9OTY5ICAgd2lkdGg9MTQ1ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDkgIHg9MTUyMSAgeT0yMDggICB3aWR0aD0xMzcgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMCAgeD0yMTg0ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjExICB4PTIwMzEgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTIgIHg9MTg3OCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMyAgeD0yNzY5ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE1ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE0ICB4PTEyMDYgIHk9MjEwICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTMgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTUgIHg9Mjc5ICAgeT0xMzE2ICB3aWR0aD0xMjAgICBoZWlnaHQ9MTIwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQwICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNiAgeD0yNjU1ICB5PTIwNiAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNzQgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTAgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE3ICB4PTI2MjUgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTggIHg9MjQ4MSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOSAgeD0yMzM3ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIwICB4PTE2NzAgIHk9MjA4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjEgIHg9NDg2ICAgeT0yMTQgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMiAgeD0yMzYwICB5PTkzOSAgIHdpZHRoPTEyNCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIzICB4PTEyMSAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD03ICAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjQgIHg9MTYwNCAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNSAgeD0xNDczICB5PTQxMiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI2ICB4PTE3MzUgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjcgIHg9NTMyICAgeT02MDAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOCAgeD0yOTI2ICB5PTU2OSAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI5ICB4PTI1MjQgIHk9MjA2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzAgIHg9OTk2ICAgeT0xMTI5ICB3aWR0aD0xNzMgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTEzNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMSAgeD0xOTc5ICB5PTQwNyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMyICB4PTEwNzYgIHk9NDE1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzMgIHg9OTQzICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNCAgeD04MTAgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM1ICB4PTI3OTMgIHk9NTcyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzYgIHg9NzcyICAgeT02MDAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNyAgeD0yOTcwICB5PTM4OCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM4ICB4PTY2MyAgIHk9NjAwICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzkgIHg9MCAgICAgeT0xMTQzICB3aWR0aD0xMDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MCAgeD0yODEwICB5PTIwNSAgIHdpZHRoPTEyMyAgIGhlaWdodD0xNzMgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NSAgICAgeGFkdmFuY2U9OTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQxICB4PTAgICAgIHk9NzkyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDIgIHg9MjYwICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MyAgeD01MzggICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ0ICB4PTM5OSAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDUgIHg9MjgzMSAgeT0zOTAgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NiAgeD0yMjUzICB5PTU4MyAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ3ICB4PTE0MCAgIHk9MTMxNyAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEyOCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDggIHg9NTY0ICAgeT0xMTI5ICB3aWR0aD0xMjYgICBoZWlnaHQ9MTUzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OSAgeD0yMTExICB5PTQwNyAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUwICB4PTIyMzkgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTEgIHg9MjM2NyAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MiAgeD02NzIgICB5PTc3OSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUzICB4PTc0OSAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTQgIHg9ODgzICAgeT0wICAgICB3aWR0aD0xMjEgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NSAgeD0xNzQ0ICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmtlcm5pbmdzIGNvdW50PTE2ODZcclxua2VybmluZyBmaXJzdD0zMiAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg2ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04OSAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTIyMSBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD02NSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NzQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTQgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTcgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODQgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODYgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9NzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9NzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9ODUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTggYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTUgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk5IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIwIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NyAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTE0XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04OSAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIxIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTIgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTUgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NCAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDYgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjEgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDYgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05OSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NSAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTczIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk3ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDIgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE3MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NjUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQge2dldFRvcExldmVsRm9sZGVyfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAndGljaycsIGhhbmRsZVRpY2sgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIGNvbnN0IHRlbXBNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVUaWNrKCB7IGlucHV0IH0gPSB7fSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICB8fCBmb2xkZXIuZ3JhYkRpc2FibGVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LnByZXNzZWQgJiYgaW5wdXQuc2VsZWN0ZWQgJiYgaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICBpZiggaW5wdXQuaW50ZXJhY3Rpb24ucHJlc3MgPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgICAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbi5zdWIoIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTsgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQud29ybGRUb0xvY2FsKGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9OT1RFOjogaW4gb3J0aG9ncmFwaGljIG1vZGUsIHdlJ3ZlIGFscmVhZHkgbXV0YXRlZCB0aGUgcG9zaXRpb24gb2YgZm9sZGVycyxcclxuICAgICAgICAgIC8vbWVhbmluZyB0aGVyZSBjb3VsZCBiZSBzb21lIGluY29uc2lzdGVuY3kgd2l0aCB0aGUgbW91c2VJbnRlcnNlY3Rpb24gcG9pbnQgbm8gbG9uZ2VyIGJlaW5nIHJpZ2h0Li4uXHJcbiAgICAgICAgICAvL0kgdGhvdWdodCB0aGlzIHdhcyBwbGF5aW5nIGEgcm9sZSBpbiBhIGJ1ZyB3aXRoIG9ydGhvZ3JhcGhpYyBmb2xkZXIgbGF5b3V0LCBhcHBlYXJzIG9rIGZvciBub3cuXHJcbiAgICAgICAgICBmb2xkZXIucG9zaXRpb24uY29weShpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcblxyXG4gICAgICAgICAgZm9sZGVyLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgIGlmKCBoaXRPYmplY3QgPT09IHBhbmVsICl7XHJcbiAgICAgICAgICBoaXRPYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGhpdE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlUGxhbmUuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoIGlucHV0Lm1vdXNlQ2FtZXJhLmdldFdvcmxkRGlyZWN0aW9uKCBpbnB1dC5tb3VzZVBsYW5lLm5vcm1hbCApLCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZVBsYW5lICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICAgIGlmKCBoaXRPYmplY3QgIT09IHBhbmVsICl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZCA9IGZvbGRlcjtcclxuXHJcbiAgICAgICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5zZWxlY3RlZC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlT2Zmc2V0LmNvcHkoIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkuc3ViKCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgICBcclxuICAgICAgdGVtcE1hdHJpeC5nZXRJbnZlcnNlKCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggdGVtcE1hdHJpeCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcblxyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICBpbnB1dE9iamVjdC5hZGQoIGZvbGRlciApOyBcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYmJlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaW5wdXQuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG5cclxuICAgICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJSZWxlYXNlZCcsIGZvbGRlciApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiZXhwb3J0IGNvbnN0IGdyYWJCYXIgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQWdDQVlBQUFDaW5YNkVBQUFBQ1hCSVdYTUFBQzRqQUFBdUl3RjRwVDkyQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBRHNrYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QZ284ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMall0WXpFek1pQTNPUzR4TlRreU9EUXNJREl3TVRZdk1EUXZNVGt0TVRNNk1UTTZOREFnSUNBZ0lDQWdJQ0krQ2lBZ0lEeHlaR1k2VWtSR0lIaHRiRzV6T25Ka1pqMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M4d01pOHlNaTF5WkdZdGMzbHVkR0Y0TFc1ekl5SStDaUFnSUNBZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB3YUc5MGIzTm9iM0E5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmNHaHZkRzl6YUc5d0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRVYyZEQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sUlhabGJuUWpJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenAwYVdabVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM1JwWm1Zdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WlhocFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzlsZUdsbUx6RXVNQzhpUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMGIzSlViMjlzUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5NGJYQTZRM0psWVhSdmNsUnZiMncrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZRM0psWVhSbFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qSTFPak15TFRBM09qQXdQQzk0YlhBNlEzSmxZWFJsUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTmIyUnBabmxFWVhSbFBqSXdNVFl0TURrdE1qaFVNVFk2TXpjNk1qTXRNRGM2TURBOEwzaHRjRHBOYjJScFpubEVZWFJsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPak0zT2pJekxUQTNPakF3UEM5NGJYQTZUV1YwWVdSaGRHRkVZWFJsUGdvZ0lDQWdJQ0FnSUNBOFpHTTZabTl5YldGMFBtbHRZV2RsTDNCdVp6d3ZaR002Wm05eWJXRjBQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0elBDOXdhRzkwYjNOb2IzQTZRMjlzYjNKTmIyUmxQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tsRFExQnliMlpwYkdVK2MxSkhRaUJKUlVNMk1UazJOaTB5TGpFOEwzQm9iM1J2YzJodmNEcEpRME5RY205bWFXeGxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa1J2WTNWdFpXNTBTVVErWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qZGxOemRtWW1aakxUZzFaRFF0TVRGbE5pMWhZemhtTFdGak56VTBaV1ExT0RNM1pqd3ZlRzF3VFUwNlJHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09tTTFabU0wWkdZeUxUa3hZMk10WlRJME1TMDRZMlZqTFRNek9ESXlZMlExWldGbE9Ud3ZlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwVFpYRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrZ2NtUm1PbkJoY25ObFZIbHdaVDBpVW1WemIzVnlZMlVpUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WVdOMGFXOXVQbU55WldGMFpXUThMM04wUlhaME9tRmpkR2x2Ymo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21sdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRwak5XWmpOR1JtTWkwNU1XTmpMV1V5TkRFdE9HTmxZeTB6TXpneU1tTmtOV1ZoWlRrOEwzTjBSWFowT21sdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwM2FHVnVQakl3TVRZdE1Ea3RNamhVTVRZNk1qVTZNekl0TURjNk1EQThMM04wUlhaME9uZG9aVzQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOXpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZMjl1ZG1WeWRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwd1lYSmhiV1YwWlhKelBtWnliMjBnWVhCd2JHbGpZWFJwYjI0dmRtNWtMbUZrYjJKbExuQm9iM1J2YzJodmNDQjBieUJwYldGblpTOXdibWM4TDNOMFJYWjBPbkJoY21GdFpYUmxjbk0rQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajV6WVhabFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4Tmkwd09TMHlPRlF4Tmpvek56b3lNeTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGphR0Z1WjJWa1BpODhMM04wUlhaME9tTm9ZVzVuWldRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0eFBDOWxlR2xtT2tOdmJHOXlVM0JoWTJVK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajQyTkR3dlpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0ek1qd3ZaWGhwWmpwUWFYaGxiRmxFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQZ29nSUNBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBbzhQM2h3WVdOclpYUWdaVzVrUFNKM0lqOCtPaEY3UndBQUFDQmpTRkpOQUFCNkpRQUFnSU1BQVBuL0FBQ0E2UUFBZFRBQUFPcGdBQUE2bUFBQUYyK1NYOFZHQUFBQWxFbEVRVlI0MnV6WnNRM0FJQXhFVVR1VFpKUnNrdDVMUkZtQ2RUTGFwVUtDQmlqby9GMGhuMlNrSnhJS1hKSmxyc09TRndBQUFBQkE2dktJNk83QlVvclhkWnUxL1ZFV0VaZVpmYk41bS9aYW1qZksrQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0JmdWFTbmE3aS9kZDFtYlgrVVNUck43SjdOMjdUWDByeFJ4Z25nWllpZklBQUFBSkM0ZmdBQUFQLy9Bd0F1TVZQdzIwaHhDd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDEnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIC8vIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuNTtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAsIGltYWdlLmhlaWdodCAvIDEwMDAsIDEsIDEgKTtcclxuXHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxufSgpKTtcclxuXHJcbmV4cG9ydCBjb25zdCBkb3duQXJyb3cgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qRTRPakkxTFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRveE9Eb3lOUzB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvek1EUXlZakkwWlMxaU16YzJMV0kwTkdJdE9HSTRZeTFsWlRGalkySXpZV1UxTURVOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pNd05ESmlNalJsTFdJek56WXRZalEwWWkwNFlqaGpMV1ZsTVdOallqTmhaVFV3TlR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NVVpbHowQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFKZFNVUkJWSGphN04zTGNjSkFFSVRoUnVXN25jVWVUUWhrUUFpSURNZ0loVUlJY0ZRV0pnSjg4Rktsb3Z3QXJOMmQ2WjQ1Y1pHQS9UOXZpWWZ0eGVWeVFZenVkTEVFQVNBbUFNUUVnQmpKZVdsMXh5bWxOd0FIQU1keEhIdkZ4VThwRFFDV0FGYmpPSDdJN0FDVCtPOEFObmtoRk9Odjhob2M4cHJ3QTdpSmZ4MHBCSlA0MTJtR29ETVFYd3JCTi9HYkl1aU14SmRBOEV2OFpnZzZRL0dwRWR3UnZ3bUN6bGg4U2dRUHhLK09vTVlPTUR3WW53ckJFL0duQ0FiWEFQS1RYLy9qRkp1VVV1ODRmdjlrL091c1MvOFFkQWJsMzg3ZUk0TDhtUGN6bktyb1RsaHlCMWpPZUM1WENHYU1YMkl0cXdGWUFUaXBJU2dRLzVUWDBoZUEvTjYyRklKUzhVdCtUbEQwSWxBSmdjZjRWVjRHS2lEd0dyL1crd0RVQ0R6SHJ3YUFGWUgzK0ZVQnNDRmdpRjhkQUFzQ2x2aE5BSGhId0JTL0dRQ3ZDTmppTndYZ0RRRmovT1lBdkNCZ2pXOENnSFVFelBITkFMQ0tnRDIrS1FEV0VDakVOd2ZBQ2dLVitDWUJUQkQwQU02MUVSU0lmd2JRVzR4dkZrQkdjTXc3UVRVRWhlS3Y4bk5CQURDTVFERytlUUMxRUtqR0I0Q0ZsNzhSbEZKYTR1c1hURjduakpSdnozNWVEL0ZkQVNpSUFLcngzUUVvaEFDcThWMWNBMVM2SnBDTTd4S0FRUVJ1NDdzRllBaUI2L2l1QVJoQTRENitld0FORVZERXB3RFFBQUZOZkJvQUZSRlF4YWNDVUFFQlhYdzZBQVVSVU1hbkJGQUFBVzE4V2dBeklxQ09UdzFnQmdUMDhla0JUQkRzbmpoMHh4NWZBa0JHTUFEWVBuRElOaCtEQUtDSFFDYStGSUE3RVVqRmx3UHdCd0s1K0pJQWZrQWdHUjl3K0pXd09lZjZ6V0RWK1BJQVl1TGZ4Z1dBV0lJQUVCTUFZZ0pBak9SOERnRCs2T3pndjR1eTlnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBoID0gMC4zO1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAtMC4wMDUsIC0wLjAwNCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja21hcmsgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qTXpPalV6TFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRvek16bzFNeTB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvMk9EY3hZVGs1WXkwek5qRTVMVGxrTkdFdE9EZGtOaTB3WVdFNVlUUmlOV1U0TWpjOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pZNE56RmhPVGxqTFRNMk1Ua3RPV1EwWVMwNE4yUTJMVEJoWVRsaE5HSTFaVGd5Tnp3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NXo5UlQzQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFUdFNVUkJWSGphN0p6YmI1UkZHTVovMnhiQ3ZWaEFTRXhVaUkxNDR3MGhRdEhFR3JIZ0lTcWdONktndE5ZV0FiMHcwV28xWHFyYlBiU2xva1lTeGZNaGVtWC9BYTd3R0FWcThYVHAzMERYaTVtSm0wYTJ1OXYzL2I2WjJYbHVkck9IZHcvUE16UFArNzR6WDZGV3F5R0ZnWUVCRWxwR0QvQWVjQ3R3Qi9EYmNtK1ltNXNUKy9DdTlQL25pbTZnQ0R3Q1hBdDhEVnlYNVJkSUFzZ1BCYUFFak5ROWRpUHdGYkE1Q1NCK1RBRlAvYy9qVzRIUGdMNGtnSGd4Q3d3MWVQNW00R043bXdRUUVib3MrVTgwOGRxdHdFZjJOZ2tnRXJjLzB5VDVEbjEyT2RpU0JCQSsrYVVXeVhmWUFud0RYSjhFRUc2cU53a01yeURHWnBzaTNwQUVFQjZxVjNEN3JhSVArTkttaWtrQWdlQXQ0SWhndkp2c1RKQUU0RGtLd0NuZ3NFTHNzMGtBL3EvNXM4QWhoZGpUd0VGcGQ1b2dTMzVWYWVUUEFrOERpMGtBL3BKZkVsN3pIVTdTdUhLWWxnQVAxdnl5a050Zmloa3Q4cE1BWkVrYVZvaGJWWXFiQkNDSVU4Q1RDbkZMd0pqMmwwOENXTm1hLzdhUzI2OEN4NlFOWHhLQXJIbWVCaDVYV2s3R3NpQS9Ud0dNWWZhL2hVcCttZllhTzgyNC9lR3N5TTlMQUM5Z21pUHZBenNESTcvTHJzMURTaU4vS0k4ZmxDWEdnVmZ0L1Y3Z0RMQXJJQUZNaCtyMmZSREFTOERFa3NjMkFoOEMvUjNzOXN2QWFKNVRXbGJrdjN5RjU5WmpkcjFzOTNqYTEzTDdGZXYyYXpFTFlMd0IrUTVyTWIzdWJSNGF2cE5LYm44YWVBYTRuTGU2dFEzZlJKT3Y3UVcrOEdnbTZMRWpWS094TTRNNUQzQTU3eCtwS1lBWDZ3eGZzOWdBZkFMczhJQjhyY2FPS3h2WGZGQzVsZ0RHZ1ZmYWZLOHpocnR5L0UrMFhIa2xMN2VmcFFBbVdwajJseFBCYlRuOEo3UG8xZlpIOFF6U0Fuak5qbjRKck1lY2pzbXFXRlFBM2xWeSt5WHI5b2xkQUhjS3g3c2ErRHdEWTloajgveURpcW5lWWljSTRGSGdSK0dZYTVXekE4M0d6aFJ3MUZmeU5RVHdDM0NQdlpYRU91QlR6RVVVSkxFcWcxVFBXL0sxVE9DZndDQndVVGp1TmNpV2pic3haVmlOVkMrMzJyNHZhZUFmd0YzQWduRGNUVllFdHd1TlVBM3l5NWpkdTNTeUFBQitCM1lyTEFjYkJPb0U3eWhOKzVOMnpTY0p3R0FlZUFENFRqaHVMNmFCMUtvbjZMYmtQNlkwOG8valNZWFBGd0VBbkFjZVZoREJWUzFtQjY2eG8wSCtGS2F4czBoZ3lLb2RmQUY0RVBoSnFVNnczRXl3eWhxelEwcmtqNFJJZnBZQ0FMZ0U3TEV6Z2lSY3hiQy93Y2l2b0ZQZWRlUUhpNnkzaFAxbGplRzhVb3E0TkRzb1lJbzhXanQ1Z2lZL0R3SFVwNGkvS21RSForcEVVTURzNU5GdyswVXlPTFFScXdEY2NuQXY4TDF3M0hYQWFac2l2cTVrK0lyQUNTSkJucWVENTRFRHdBZkFMWUp4TndIZktwbXlzaVYvTVJZQjVIMHk2QUt3SC9oQk9PNXFZSTJDNFRzYUUvaytDQURNMWJIM0lsOHhsRVRWR3I0YWtjR1hzNEYvQTNmYkdjRTNWQWlvdGgrcUFNQjBFWGQ3Sm9KSlBOekdGYXNBd0RTUUJwSGZWTkt1Mno5RzVQRHhlUGdDOEJCd0x1ZVJmeUxHTlQ4RUFZRFpUSElBK1FaU3Mydis4ZGpjZm1nQ2NIV0MrNUZ2SUMzbjlrYzdoWHpmQmVDTTRSN2t5OFlkNS9aREZRRDgxMEM2cVBnWjBidjlrQVZRbnlKcUZJdmV4R3ptSUFuQWIxd0M3aE0yaGtYZ1dUb1lvVjBsekRXUUpGTEU2Qm83blNBQWx5THVZMlVOcEFvWlhvb3RDVUFlQzVnRzBzOXRrajlLUXRBQ0FOTkFHcVMxUFlhbFJINDhBbkFwWXJQYnk0b0VkbWdqQ2FENUZIRXZqYmVYdllFcDd5WkVLQURuQ2ZaYkVmd0RQSTg1TCtESWY0NE9hT3kwZzM4SEFNL2U3Z3VJUng5NEFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFRVNVUkJWR2lCN2RoQkRvTXdERVJSN2pUaUpDUHVmNVd1bXBoVnhYeWtWSkd6SXBKNWNnc2tkbzRManFPQnJRQTlIQTAwME1EK3dQVmp2QVdjRkJqekVCZ0pwTUNjWjhCTUlBVEtQQUpLQWhsUTV3bndUY0FwTUM1RFlDU1FBdmVyNThCTUlBVEtEUkZRRXNpQUdrOEFVMEFRTUFVRUFWTkFFREFGQkFGVFFCQXdCUVFCVTBBUU1BVUVBVk5BRURBRkJBRlRRQkR3Y2dEL0JQNG40c2ZJWHlUOEt2T1BDWC9PZkVIQlN4cGZWUEd5empjV3ZMWHh6UlZ2Nzd6QXdDVU9MN0p3bWNjTFRWenE4bUk3TC9mUGtrSUU0SmFITjEyNDdlT05KMjU5ZWZOOWkxbHpBRkdERmgzQ2xLaFZCMUV6Yk5saDNJajd3eFBOQmhwb1lEV1FqZ2EyQUQ1Uy9DeUl2Ym1xN2dBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ0J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgdW5kb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVQU1VSQlZHaUI3ZGd4Q3NRd0RBVEEvRW5vSlVMLy84cFZzV1dsT0x3TFVUQnlGZmJFc05jNGRpNG4xOVhBVVlCc3JnWWFhT0I4d1A4c0dqQVdjQm93Rm5BYU1CWndHakFXY0JqUVVBRUNKQXhqUUtpQUFmSjgyZ1JtQlJDWUZWQmdWRUNCeCsvYmdLWnNHOGdEKzBDcXNBK2tDUUJZS3dEQU9vSUFTd1VFV0dZZ0lGYUFnRGlFQWFFQ0JvUXBFSmdWUUdDT29jQ29nQUx3anZTb0FBUDNJQTRvQ3dnTktBc0lEV2c1d1A0RlpRRW5BV1VCSndGbGdUc3IyMUJHVnJXcHpxem94Ukt5bXBkcnpFb09HRXRXY2NoYXM0S0Rac3JlUDJ6bjdQVUx4M2dFZ1ZHZzZ0bzNDeFJkZlVPQm91dC9LRkQ2Q2NSWVFFakFXRUJJd0ZnZ3ozM3dpMllERFRSUURhQ3JnU09BSDhIOEtxZ2dZcEFVQUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDUnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuIiwiLyoqIFxyXG4gKiBCaWcgYnV0dG9uIHdpdGggYW4gaW1hZ2Ugb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBBbHNvIHVzYWJsZSBhcyBhbiAneHkgY29udHJvbGxlcicgdmlhIGFkZFhZQ29udHJvbGxlciBtZXRob2QuXHJcbiAqIFxyXG4gKiBBUEkgc3ViamVjdCB0byBjaGFuZ2UuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtpc0NvbnRyb2xsZXJWaXNpYmxlfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGZ1bmMgPSB1bmRlZmluZWQsXHJcbiAgcHJlc3NpbmcgPSB1bmRlZmluZWQsXHJcbiAgaW1hZ2UgPSBcInRleHR1cmVzL3Nwb3RsaWdodC5qcGdcIiwgLy9UT0RPIGJldHRlciBkZWZhdWx0XHJcbiAgd2lkZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjaGFuZ2VDb2xvck9uSG92ZXIgPSB0cnVlLCAvL3F1aWNrIGhhY2s6IGNvbG9yIHBpY2tlciB3YW50cyB0aGlzIHRvIGJlIGZhbHNlXHJcbiAgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gICAvL1hYWCBtYWdpYyBudW1iZXJzLi4uXHJcbiAgaWYgKCFoZWlnaHQpIGhlaWdodCA9IExheW91dC5QQU5FTF9XSURUSCAgKiAod2lkZSA/IDAuOTQgOiAwLjI1KTtcclxuICBcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqICh3aWRlID8gMC45NCA6IDAuMjUpIC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBidXR0b25EZXB0aDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJpbWFnZWJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCAxLCAxICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIC8vbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBvYmouaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgb2JqLm5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IG9iai5ob3ZlckNvbCA6IG9iai5ub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygpICk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwwKSApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlOyAvL3NvbWV0aW1lcyB3ZSBjYXJlIGFib3V0IHRoZSBtb3VzZSBiZWluZyBwcmVzc2VkLCBldmVuIG9uIGJhY2tncm91bmRcclxuICAgICAgIC8vd2lsbCBiZSBzZXQgZmFsc2UgYXQgZW5kIG9mIGZpcnN0IHVwZGF0ZS4gU2hvdWxkbid0IGJlIG5lY2Vzc2FyeSB0byBhZGQgYSBuZXcgcHJvcGVydHkuLi4gXHJcbiAgICAgICAvL29uUHJlc3NlZCBzaG91bGQgYmUgYWRlcXVhdGUuXHJcbiAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgfSwgdHJ1ZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2V1cCcsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuXHJcbiAgICByZXR1cm4gaW5wdXQ7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBmdW5jdGlvbiB1c2VycyBydW4gdG8gZ2l2ZSBEQVQgR1VJIGFuIGlucHV0IGRldmljZS5cclxuICAgIEF1dG9tYXRpY2FsbHkgZGV0ZWN0cyBmb3IgVml2ZUNvbnRyb2xsZXIgYW5kIGJpbmRzIGJ1dHRvbnMgKyBoYXB0aWMgZmVlZGJhY2suXHJcblxyXG4gICAgUmV0dXJucyBhIGxhc2VyIHBvaW50ZXIgc28gaXQgY2FuIGJlIGRpcmVjdGx5IGFkZGVkIHRvIHNjZW5lLlxyXG5cclxuICAgIFRoZSBsYXNlciB3aWxsIHRoZW4gaGF2ZSB0d28gbWV0aG9kczpcclxuICAgIGxhc2VyLnByZXNzZWQoKSwgbGFzZXIuZ3JpcHBlZCgpXHJcblxyXG4gICAgVGhlc2UgY2FuIHRoZW4gYmUgYm91bmQgdG8gYW55IGJ1dHRvbiB0aGUgdXNlciB3YW50cy4gVXNlZnVsIGZvciBiaW5kaW5nIHRvXHJcbiAgICBjYXJkYm9hcmQgb3IgYWx0ZXJuYXRlIGlucHV0IGRldmljZXMuXHJcblxyXG4gICAgRm9yIGV4YW1wbGUuLi5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlZG93bicsIGZ1bmN0aW9uKCl7IGxhc2VyLnByZXNzZWQoIHRydWUgKTsgfSApO1xyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW5wdXRPYmplY3QoIG9iamVjdCApe1xyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCggb2JqZWN0ICk7XHJcblxyXG4gICAgaW5wdXQubGFzZXIucHJlc3NlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGNvbnN0IGhpdHMgPSBpbnB1dC5pbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvLyBvbmx5IHBheSBhdHRlbnRpb24gdG8gcHJlc3NlcyBvdmVyIHRoZSBHVUlcclxuICAgICAgaWYgKGZsYWcgJiYgaGl0cyAmJiAoaGl0cy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSB0cnVlO1xyXG4gICAgICAgIGlucHV0LmNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5ncmlwcGVkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgaW5wdXQuZ3JpcHBlZCA9IGZsYWc7XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmN1cnNvciA9IGlucHV0LmN1cnNvcjtcclxuXHJcbiAgICBpZiggVEhSRUUuVml2ZUNvbnRyb2xsZXIgJiYgb2JqZWN0IGluc3RhbmNlb2YgVEhSRUUuVml2ZUNvbnRyb2xsZXIgKXtcclxuICAgICAgYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgb2JqZWN0LCBpbnB1dC5sYXNlci5wcmVzc2VkLCBpbnB1dC5sYXNlci5ncmlwcGVkICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLnB1c2goIGlucHV0ICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0Lmxhc2VyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEhlcmUgYXJlIHRoZSBtYWluIGRhdCBndWkgY29udHJvbGxlciB0eXBlcy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBtaW4gPSAwLjAsIG1heCA9IDEwMC4wICl7XHJcbiAgICBjb25zdCBzbGlkZXIgPSBjcmVhdGVTbGlkZXIoIHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBtaW4sIG1heCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBzbGlkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gc2xpZGVyO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBjaGVja2JveCA9IGNyZWF0ZUNoZWNrYm94KHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGNoZWNrYm94ICk7XHJcblxyXG4gICAgcmV0dXJuIGNoZWNrYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmMgdG8gY2FsbCBiYWNrIHdoZW4gYnV0dG9uIHByZXNzZWRcclxuICAgKiBAcGFyYW0geyp9IGltYWdlIGNhbiBiZSBmaWxlbmFtZSwgV2ViR0xSZW5kZXJUYXJnZXQgb3IgTWF0ZXJpYWxcclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHdpZGUgd2hldGhlciB0byBtYWtlIGJ1dHRvbiBmaWxsIGVudGlyZSB3aWR0aCBvZiBwYW5lbCAoYXBpIHN1YmplY3QgdG8gY2hhbmdlKVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uKGZ1bmMsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IG9iamVjdCA9IHsgZjogZnVuYyB9O1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJ2YnO1xyXG5cclxuXHJcbiAgICAvL3NlZSBhbHNvIGZvbGRlci5qcyB3aGVyZSB0aGlzIGlzIGFkZGVkIHRvIGdyb3VwIG9iamVjdC4uLlxyXG4gICAgLy9hcyBzdWNoIHRoaXMgZnVuY3Rpb24gYWxzbyBuZWVkcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gY3JlYXRlRm9sZGVyLlxyXG4gICAgLy9wZXJoYXBzIGFsbCBvZiB0aGVzZSAnYWRkWCcgZnVuY3Rpb25zIGNvdWxkIGJlIGluaXRpYWxseSBwdXQgb250byBhbiBvYmplY3Qgc28gdGhhdFxyXG4gICAgLy9uZXcgYWRkaXRpb25zIGNvdWxkIGJlIGFkZGVkIHNsaWdodGx5IG1vcmUgZWFzaWx5LlxyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkWFlDb250cm9sbGVyKHByZXNzaW5nLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnJztcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByZXNzaW5nLCBwcm9wZXJ0eU5hbWUsIGltYWdlLCB3aWRlLCBoZWlnaHRcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChidXR0b24pO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVGhpcyBpbnRlcmZhY2UgbWF5IGJlIHN1YmplY3QgdG8gY2hhbmdlLiAgQXJndW1lbnRzIGFyZSBvYmplY3RzIGRlc2NyaWJpbmcgYnV0dG9uc1xyXG4gIEZpcnN0IG9iamVjdCBtYXkgYmUgYW4gaW50ZWdlciBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZEltYWdlQnV0dG9uUGFuZWwoY29scywgLi4uYXJncykge1xyXG4gICAgbGV0IGNvbHVtbnMgPSBOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpID8gY29scyA6IDQ7XHJcbiAgICBjb25zdCBvYmplY3RzID0gYXJncztcclxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihjb2xzKSkgb2JqZWN0cy51bnNoaWZ0KGNvbHMpXHJcbiAgICBjb25zdCBncmlkID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogY29sdW1uc30pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChncmlkKTtcclxuICAgIHJldHVybiBncmlkO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkS2V5Ym9hcmQoIGtleUxpc3RlbmVyICkge1xyXG4gICAgaWYgKCFrZXlMaXN0ZW5lcikga2V5TGlzdGVuZXIgPSAoaykgPT4gY29uc29sZS5sb2coYGtleURvd24gJHtrfWApO1xyXG4gICAgY29uc3Qga2IgPSBjcmVhdGVLZXlib2FyZCh7a2V5TGlzdGVuZXIsIHRleHRDcmVhdG9yfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGtiKTtcclxuICAgIHJldHVybiBrYjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlVGV4dGJveCh7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVDb2xvclBpY2tlcih7dGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJveCk7XHJcbiAgICByZXR1cm4gYm94O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvcHRpb25zICl7XHJcbiAgICBjb25zdCBkcm9wZG93biA9IGNyZWF0ZURyb3Bkb3duKHtcclxuICAgICAgdGV4dENyZWF0b3IsIHByb3BlcnR5TmFtZSwgb2JqZWN0LCBvcHRpb25zXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBkcm9wZG93biApO1xyXG4gICAgcmV0dXJuIGRyb3Bkb3duO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBbiBpbXBsaWNpdCBBZGQgZnVuY3Rpb24gd2hpY2ggZGV0ZWN0cyBmb3IgcHJvcGVydHkgdHlwZVxyXG4gICAgYW5kIGdpdmVzIHlvdSB0aGUgY29ycmVjdCBjb250cm9sbGVyLlxyXG5cclxuICAgIERyb3Bkb3duOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBvYmplY3RUeXBlIClcclxuXHJcbiAgICBTbGlkZXI6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mTnVtYmVyVHlwZSwgbWluLCBtYXggKVxyXG5cclxuICAgIENoZWNrYm94OlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkJvb2xlYW5UeXBlIClcclxuXHJcbiAgICBCdXR0b246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mRnVuY3Rpb25UeXBlIClcclxuXHJcbiAgICBOb3QgdXNlZCBkaXJlY3RseS4gVXNlZCBieSBmb2xkZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKXtcclxuXHJcbiAgICBpZiggb2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2VcclxuXHJcbiAgICBpZiAob2JqZWN0LmlzRm9sZGVyKSByZXR1cm4gb2JqZWN0O1xyXG5cclxuICAgIGlmKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgY29uc29sZS53YXJuKCAnbm8gcHJvcGVydHkgbmFtZWQnLCBwcm9wZXJ0eU5hbWUsICdvbiBvYmplY3QnLCBvYmplY3QgKTtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc09iamVjdCggYXJnMyApIHx8IGlzQXJyYXkoIGFyZzMgKSApe1xyXG4gICAgICByZXR1cm4gYWRkRHJvcGRvd24oIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzTnVtYmVyKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Jvb2xlYW4oIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNGdW5jdGlvbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc1N0cmluZyggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNDb2xvciggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRDb2xvclBpY2tlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYWRkIGNvdWxkbid0IGZpZ3VyZSBpdCBvdXQsIHBhc3MgaXQgYmFjayB0byBmb2xkZXJcclxuICAgIHJldHVybiB1bmRlZmluZWRcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVTbGlkZXIoIG1pbiA9IDAsIG1heCA9IDEgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBudW1iZXI6IG1pblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkU2xpZGVyKCBwcm94eSwgJ251bWJlcicsIG1pbiwgbWF4ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVEcm9wZG93biggb3B0aW9ucyA9IFtdICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgb3B0aW9uOiAnJ1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiggb3B0aW9ucyAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHByb3h5Lm9wdGlvbiA9IGlzQXJyYXkoIG9wdGlvbnMgKSA/IG9wdGlvbnNbIDAgXSA6IG9wdGlvbnNbIE9iamVjdC5rZXlzKG9wdGlvbnMpWzBdIF07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFkZERyb3Bkb3duKCBwcm94eSwgJ29wdGlvbicsIG9wdGlvbnMgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUNoZWNrYm94KCBkZWZhdWx0T3B0aW9uID0gZmFsc2UgKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBjaGVja2VkOiBkZWZhdWx0T3B0aW9uXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRDaGVja2JveCggcHJveHksICdjaGVja2VkJyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQnV0dG9uKCBmbiApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGJ1dHRvbjogKGZuIT09dW5kZWZpbmVkKSA/IGZuIDogZnVuY3Rpb24oKXt9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRCdXR0b24oIHByb3h5LCAnYnV0dG9uJyApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBOb3QgdXNlZCBkaXJlY3RseTsgdXNlZCBieSBmb2xkZXJzLlxyXG4gIFJlbW92ZSBjb250cm9sbGVycyBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgY29udHJvbGxlcnMga25vd24gdG8gZGF0LkdVSVZSLlxyXG4gIENhbGxzIHJlbW92ZVRlc3QgZmlyc3QgdG8gY2hlY2sgaW5wdXQgYXJndW1lbnRzLiAgcmV0dXJucyBmYWxzZSBpZiB0aGlzIHRlc3QgZmFpbHMuXHJcbiAgcmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuXHJcblxyXG4gIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlY3Vyc2l2ZWx5IHJlbW92ZSBlbGVtZW50cyBmcm9tIGZvbGRlcnM7IHRoYXQgaXMgZGVhbHQgd2l0aCBpbiB0aGUgZm9sZGVyIGNvZGUgd2hpY2ggY2FsbHMgdGhpcy5cclxuICBcclxuICAgKi9cclxuICBmdW5jdGlvbiByZW1vdmUoIC4uLmFyZ3MgKXtcclxuICAgIGxldCBhcmdTZXQgPSBbIC4uLm5ldyBTZXQoYXJncykgXTsgLy9qdXN0IGluIGNhc2UgdGhlcmUgd2VyZSByZXBlYXRlZCBlbGVtZW50cyBpbiBhcmdzLCB0dXJuIGludG8gU2V0IHRoZW4gYmFjayB0byBhcnJheS5cclxuICAgIGlmICggIXJlbW92ZVRlc3QoLi4uYXJnU2V0KSApIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ1NldC5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIHZhciBpID0gY29udHJvbGxlcnMuaW5kZXhPZiggb2JqICk7XHJcbiAgICAgIGlmICggaSA+IC0xKSBjb250cm9sbGVycy5zcGxpY2UoIGksIDEgKTtcclxuICAgICAgZWxzZSB7IC8vIEkgY2FuJ3Qgc2VlIGhvdyB0aGlzJ2QgaGFwcGVuIG5vdyB3ZSBndWFyZCBhZ2FpbnN0IHJlcGVhdGVkIGVsZW1lbnRzLlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW50ZXJuYWwgZXJyb3IgaW4gcmVtb3ZlLCBub3QgYW50aWNpcGF0ZWQgYnkgcmVtb3ZlVGVzdC4gSW50ZXJuYWwgZGF0LkdVSVZSIHN0YXRlIG1heSBiZSBpbmNvbnNpc3RlbnQuXCIpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgVmVyaWZ5IHRoYXQgYWxsIG9mIHRoZSBpdGVtcyBpbiBwcm92aWRlZCBhcmd1bWVudHMgYXJlIGV4aXN0aW5nIGNvbnRyb2xsZXJzIHRoYXQgc2hvdWxkIGJlIG9rIHRvIHJlbW92ZS5cclxuXHJcbiAgUmV0dXJucyBmYWxzZSBpZiB0aGVyZSBhcmUgYW55IG1pc21hdGNoZXMsIHRydWUgaWYgYmVsaWV2ZWQgb2sgdG8gY29udGludWUgd2l0aCBhY3R1YWwgcmVtb3ZlKClcclxuXHJcbiAgSWYgYW55IG9mIHRoZSBwcm92aWRlZCBhcmdzIGFyZSBmb2xkZXJzIChoYXZlIGlzRm9sZGVyIHByb3BlcnR5KSB0aGlzIGlzIGNhbGxlZCByZWN1cnNpdmVseS5cclxuICBUaGlzIHdpbGwgcmVzdWx0IGluIHJlZHVuZGFudCB3b3JrIGFzIGVhY2ggZm9sZGVyIHdpbGwgYWxzbyBjYWxsIGl0IGFnYWluIGFzIGl0J3MgcmVtb3ZlZCwgYnV0IHRoaXMgaXMgY2hlYXBcclxuICBhbmQgaXQgbWVhbnMgdGhhdCBhbnkgZXJyb3Igc2hvdWxkIGJlIGNhdWdodCBhcyBlYXJseSBhcyBwb3NzaWJsZSBhbmQgdGhlIHdob2xlIHByb2Nlc3MgYWJvcnRlZC5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZVRlc3QoIC4uLmFyZ3MgKSB7XHJcbiAgICBmb3IgKHZhciBpPTA7IGk8YXJncy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgb2JqID0gYXJnc1tpXTtcclxuICAgICAgaWYgKGNvbnRyb2xsZXJzLmluZGV4T2Yob2JqKSA9PT0gLTEgfHwgIW9iai5mb2xkZXIuaGFzQ2hpbGQob2JqKSkge1xyXG4gICAgICAgIC8vVE9ETzogdG9TdHJpbmcgaW1wbGVtZW50YXRpb25zIGZvciBjb250cm9sbGVyc1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiQ2FuJ3QgcmVtb3ZlIGNvbnRyb2xsZXIgXCIgKyBvYmopOyAvL25vdCBzdXJlIHRoZSBwcmVmZXJyZWQgd2F5IG9mIHJlcG9ydGluZyBwcm9ibGVtIHRvIHVzZXIuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBpZiAoIXJlbW92ZVRlc3QoIC4uLm9iai5ndWlDaGlsZHJlbiApKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGxldGVseSByZW1vdmUgYWxsIEdVSSBlbGVtZW50cyBmcm9tIHRoZSBzeXN0ZW0gZ2xvYmFsbHksIFxyXG4gICAqIGluY2x1ZGluZyByZW1vdmluZyBhbnkgb2JqZWN0cyBmcm9tIHRoZSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gY2xlYXJBbGwoKSB7XHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBjLnZpc2libGUgPSBmYWxzZTsgaWYgKGMucGFyZW50ICYmICFjLnBhcmVudC5ndWlDaGlsZHJlbikgYy5wYXJlbnQucmVtb3ZlKGMpO1xyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5zcGxpY2UoMCwgY29udHJvbGxlcnMubGVuZ3RoKTtcclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGZvbGRlciB3aXRoIHRoZSBuYW1lLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIFRIUkVFLkdyb3VwIHR5cGUgb2JqZWN0cyBhbmQgY2FuIGRvIGdyb3VwLmFkZCgpIGZvciBzaWJsaW5ncy5cclxuICAgIEZvbGRlcnMgd2lsbCBhdXRvbWF0aWNhbGx5IGF0dGVtcHQgdG8gbGF5IGl0cyBjaGlsZHJlbiBvdXQgaW4gc2VxdWVuY2UuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgZ2l2ZW4gdGhlIGFkZCgpIGZ1bmN0aW9uYWxpdHkgc28gdGhhdCB0aGV5IGNhbiBkb1xyXG4gICAgZm9sZGVyLmFkZCggLi4uICkgdG8gY3JlYXRlIGNvbnRyb2xsZXJzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggbmFtZSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gY3JlYXRlRm9sZGVyKHtcclxuICAgICAgdGV4dENyZWF0b3IsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGd1aUFkZDogYWRkLFxyXG4gICAgICBndWlSZW1vdmU6IHJlbW92ZSxcclxuICAgICAgYWRkQ29udHJvbGxlckZ1bmNzOiB7XHJcbiAgICAgICAgYWRkU2xpZGVyOiBhZGRTaW1wbGVTbGlkZXIsXHJcbiAgICAgICAgYWRkRHJvcGRvd246IGFkZFNpbXBsZURyb3Bkb3duLFxyXG4gICAgICAgIGFkZENoZWNrYm94OiBhZGRTaW1wbGVDaGVja2JveCxcclxuICAgICAgICBhZGRCdXR0b246IGFkZFNpbXBsZUJ1dHRvbixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvbjogYWRkSW1hZ2VCdXR0b24sXHJcbiAgICAgICAgYWRkWFlDb250cm9sbGVyOiBhZGRYWUNvbnRyb2xsZXIsXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b25QYW5lbDogYWRkSW1hZ2VCdXR0b25QYW5lbCxcclxuICAgICAgICBhZGRLZXlib2FyZDogYWRkS2V5Ym9hcmQsXHJcbiAgICAgICAgYWRkVGV4dGJveDogYWRkVGV4dGJveFxyXG4gICAgICB9LFxyXG4gICAgICBnbG9iYWxDb250cm9sbGVyczogY29udHJvbGxlcnMsXHJcbiAgICAgIC8vPz8/XHJcbiAgICAgIGFkZEhlYWRlckZ1bmNzOiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGZvbGRlciApO1xyXG5cclxuICAgIHJldHVybiBmb2xkZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFBlcmZvcm0gdGhlIG5lY2Vzc2FyeSB1cGRhdGVzLCByYXljYXN0cyBvbiBpdHMgb3duIFJBRi5cclxuICAqL1xyXG5cclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IHREaXJlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMyggMCwgMCwgLTEgKTtcclxuICBjb25zdCB0TWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCkge1xyXG4gICAgY29uc3QgaXNPcnRob2dyYXBoaWMgPSBtb3VzZUVuYWJsZWQgJiYgbW91c2VJbnB1dC5tb3VzZUNhbWVyYS5pc09ydGhvZ3JhcGhpY0NhbWVyYTtcclxuICAgIGlmIChhdXRvVXBkYXRlKSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoIHVwZGF0ZSApO1xyXG4gICAgXHJcbiAgICB2YXIgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCk7XHJcbiAgICBjb25zdCBmb2xkZXJzID0gY29udHJvbGxlcnMuZmlsdGVyKGMgPT4gYy5mb2xkZXIgPT09IGMpOyAvL2FsbCB0b3AtbGV2ZWwgZm9sZGVyc1xyXG4gICAgZm9sZGVycy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gaXNPcnRob2dyYXBoaWMgPyBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhIDogZmFsc2U7XHJcbiAgICAgIGlmIChmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgICBmLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgICBmLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSBmYWxzZTsgLy8gcHJvdGVjdCBhbnkgbmV3bHktZGlzcGxheWVkIG1vZGFsRWRpdG9yIGZyb20gYmVpbmcgY2xlYXJlZFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChmLnVzZXJEYXRhLmxheW91dFBlbmRpbmcpIGYucGVyZm9ybUxheW91dCgpO1xyXG4gICAgfSk7IFxyXG5cclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgLy9UT0RPOiBsb2NrIG1vdXNlIG9uIGhvdmVyPz9cclxuICAgICAgbW91c2VJbnB1dC5pbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixpbnRlcmFjdGlvbn0gPSB7fSwgaW5kZXggKXtcclxuICAgICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgICBvYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgXHJcbiAgICAgIHRQb3NpdGlvbi5zZXQoMCwwLDApLnNldEZyb21NYXRyaXhQb3NpdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIHRNYXRyaXguaWRlbnRpdHkoKS5leHRyYWN0Um90YXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBcclxuICAgICAgdERpcmVjdGlvbi5zZXQoMCwwLC0xKTtcclxuICAgICAgLy9hbHRlcmluZyBkaXJlY3Rpb24gZS5nLiB0byBwb2ludCBpbiBkaXJlY3Rpb24gb2YgZXh0ZW5kZWQgdHJpZ2dlciBmaW5nZXIsIHJhdGhlciB0aGFuICdtYWluIGF4aXMnIG9mIFZpdmUgY29udHJvbGxlci4uLlxyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkIGJlIGluIHVzZXJEYXRhLlxyXG4gICAgICBpZiAob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpIHREaXJlY3Rpb24uYXBwbHlRdWF0ZXJuaW9uKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKTtcclxuICAgICAgdERpcmVjdGlvbi5hcHBseU1hdHJpeDQoIHRNYXRyaXggKS5ub3JtYWxpemUoKTtcclxuICAgICAgXHJcbiAgICAgIHJheWNhc3Quc2V0KCB0UG9zaXRpb24sIHREaXJlY3Rpb24gKTtcclxuICAgICAgXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMCBdLmNvcHkoIHRQb3NpdGlvbiApO1xyXG4gICAgICBjb25zdCBhID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgICBhWzBdID0gdFBvc2l0aW9uLng7IGFbMV0gPSB0UG9zaXRpb24ueTsgYVsyXSA9IHRQb3NpdGlvbi56O1xyXG4gICAgICBcclxuICAgICAgLy8gIGRlYnVnLi4uXHJcbiAgICAgIC8vIGxhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHRQb3NpdGlvbiApLmFkZCggdERpcmVjdGlvbi5tdWx0aXBseVNjYWxhciggMSApICk7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIFxyXG4gICAgICBpbnB1dE9iamVjdHNbIGluZGV4IF0uaW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vd2FudCB0byBhZGQgaW5mbyAoaGl0IGRpc2N0YW5jZSkgdG8gb2JqZWN0IGZvciB1c2Ugb3V0c2lkZS4uLiBqdXN0IGFkZGluZyBlbnRpcmV0eSBvZiBpbnRlcnNlY3Rpb25zIGluIGNhc2UgdXNlZnVsXHJcbiAgICAgIGlmIChvYmplY3QudXNlckRhdGEpIG9iamVjdC51c2VyRGF0YS5ndWlJbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICBjb25zdCBpbnB1dHMgPSBpbnB1dE9iamVjdHMuc2xpY2UoKTtcclxuICAgIFxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICBpbnB1dHMucHVzaCggbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb250cm9sbGVycy5mb3JFYWNoKCBjID0+IGMudXBkYXRlQ29udHJvbCggaW5wdXRzICkpO1xyXG4gICAgLy9ub3cgY2hlY2sgaWYgYW55IHByZXNzIG9uIGFueSBpbnB1dCBoaXQgYW55IG5vbidtb2RhbCBlZGl0b3InLi4uIGlmIHNvLCB3ZSdsbCByZW1vdmUgbW9kYWxzIGZyb20gYWxsIGZvbGRlcnNcclxuICAgIC8vKHRoaXMgaXNuJ3QgcGVyZmVjdDsgaWYgeW91IGFyZSBhY3RpdmVseSBpbnRlcmFjdGluZyB3aXRoIHNvbWV0aGluZyBhbmQgcHJlc3Mgb3RoZXIgYnV0dG9uIHNvbWV3aGVyZSBlbHNlLCBpdCdsbCByZW1vdmUgeW91ciBvYmplY3QpXHJcbiAgICBsZXQgaGl0Tm9uTW9kYWxzID0gaW5wdXRzLmZpbHRlcihpbnB1dCA9PiBpbnB1dC5oaXROb25Nb2RhbCk7XHJcbiAgICBpZiAoaGl0Tm9uTW9kYWxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGhpdE5vbk1vZGFscy5mb3JFYWNoKGggPT4gaC5oaXROb25Nb2RhbCA9IGZhbHNlKTsgLy9yZW1vdmUgZmxhZ3Mgc28gdGhleSBkb24ndCBwZXJzaXN0IHRvIHN1YnNlcXVlbnQgdXBkYXRlc1xyXG4gICAgICBmb2xkZXJzLmZvckVhY2goZiA9PiBmLmNsZWFyTW9kYWxFZGl0b3IoKSk7IC8vdGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBub3QgaGlkZSBpdGVtcyBuZXdseSBkaXNwbGF5ZWQgaW4gdGhpcyBmcmFtZVxyXG4gICAgfVxyXG4gICAgbW91c2VJbnB1dC5jbGlja2VkID0gZmFsc2U7XHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaChvPT5vLmNsaWNrZWQgPSBmYWxzZSk7XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5pbnRlcnNlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgLy9pZiBhbnkgaW5wdXQuaW50ZXJhY3Rpb25zIGhhdmUgaGl0Vm9sdW1lIHRoYXQgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIG5vdCBjdXJyZW50bHkgaW4gaGl0c2Nhbk9iamVjdHMsXHJcbiAgLy90aGF0IGludGVyYWN0aW9uIHNob3VsZCBiZSBjYW5jZWxsZWQuIEVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgd2l0aCBlLmcuIHByZXNzaW5nICdyZWF0dGFjaCcgd2hlbiB0aGUgcGFyZW50IGlzIGNsb3NlZC5cclxuICBmdW5jdGlvbiBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb25zLCBoaXRzY2FuT2JqZWN0cyApIHtcclxuICAgIFsncHJlc3MnLCAnZ3JpcCcsICdob3ZlciddLmZvckVhY2goIGludGVyYWN0aW9uTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV07XHJcbiAgICAgIGlmIChpbnRlcmFjdGlvbiAmJiBoaXRzY2FuT2JqZWN0cy5pbmRleE9mKGludGVyYWN0aW9uLmhpdFZvbHVtZSkgPCAwKSB7XHJcbiAgICAgICAgaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV0gPSB1bmRlZmluZWQ7IFxyXG4gICAgICAgIC8vb25seSBiZSBwb2xpdGUgdG8gaW5mb3JtIHRoZSBpbnRlcmFjdGlvbiBhcyB3ZWxsOyB1cGRhdGUgd2l0aCBlbXB0eSBpbnB1dE9iamVjdHMgYXJnIHNob3VsZCBkbyB0aGUgdHJpY2suXHJcbiAgICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBbXSApO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVMYXNlciggbGFzZXIsIHBvaW50ICl7XHJcbiAgICBjb25zdCBwcCA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgIHBwWzNdID0gcG9pbnQueDtcclxuICAgIHBwWzRdID0gcG9pbnQueTtcclxuICAgIHBwWzVdID0gcG9pbnQuejtcclxuICAgIHBwLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggcG9pbnQgKTtcclxuICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydGljZXNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgaWYoIGludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBjb25zdCBmaXJzdEhpdCA9IGludGVyc2VjdGlvbnNbIDAgXTtcclxuICAgICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IucG9zaXRpb24uY29weSggZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBjdXJzb3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlTW91c2VJbnRlcnNlY3Rpb24oIGludGVyc2VjdGlvbiwgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGludGVyc2VjdGlvbiApO1xyXG4gICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBjdXJzb3IucG9zaXRpb24gKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIGNhbWVyYSApe1xyXG4gICAgcmF5Y2FzdC5zZXRGcm9tQ2FtZXJhKCBtb3VzZSwgY2FtZXJhICk7XHJcbiAgICBjb25zdCBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgcmV0dXJuIHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtb3VzZUludGVyc2VjdHNQbGFuZSggcmF5Y2FzdCwgdiwgcGxhbmUgKXtcclxuICAgIHJldHVybiByYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggcGxhbmUsIHYgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsbW91c2UsbW91c2VDYW1lcmEsIGludGVyYWN0aW9ufSA9IHt9ICl7XHJcbiAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICBsZXQgaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIGlmIChtb3VzZUNhbWVyYSkge1xyXG4gICAgICBpbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgbW91c2VDYW1lcmEgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoKTtcclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBtZXRob2RzLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHB1YmxpY0ludGVyZmFjZSA9IHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGFkZElucHV0T2JqZWN0LFxyXG4gICAgZW5hYmxlTW91c2UsXHJcbiAgICBkaXNhYmxlTW91c2UsXHJcbiAgICB0ZXh0Q3JlYXRvciwgLy9jaGVhcCB3YXkgb2YgZXhwb3NpbmcgdGhpcyBzbyBpdCBjYW4gYmUgdXNlZCBieSBob3N0IGFwcGxpY2F0aW9uLlxyXG4gICAgZ2xvYmFsRXZlbnRzLFxyXG4gICAgY2xlYXJBbGwsXHJcbiAgICB1cGRhdGVcclxuICB9O1xyXG4gIC8vIGFsbG93IHVzZXIgdG8gY2FsbCBcImRhdC5HVUlWUi5hdXRvVXBkYXRlID0gZmFsc2VcIiBhbmQgdGhlbiB1cGRhdGUgbWFudWFsbHkgd2l0aFxyXG4gIC8vIFwiZGF0LkdVSVZSLnVwZGF0ZSgpXCJcclxuICAvLyBleHBvc2UgYXV0b1VwZGF0ZSBhcyBwcm9wZXJ0eSBzbyB0aGF0IHRoZSByZWZlcmVuY2Ugd2lsbCBiZSBwcm9wZXJseSBlZmZlY3RlZFxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggcHVibGljSW50ZXJmYWNlLCAnYXV0b1VwZGF0ZScsIHsgZ2V0OiAoKT0+IGF1dG9VcGRhdGUsIHNldDogdiA9PiBhdXRvVXBkYXRlID0gdiB9ICk7XHJcbiAgcmV0dXJuIHB1YmxpY0ludGVyZmFjZTtcclxuXHJcbn0oKSk7XHJcblxyXG5pZiggd2luZG93ICl7XHJcbiAgaWYoIHdpbmRvdy5kYXQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgd2luZG93LmRhdCA9IHt9O1xyXG4gIH1cclxuXHJcbiAgd2luZG93LmRhdC5HVUlWUiA9IEdVSVZSO1xyXG59XHJcblxyXG5pZiggbW9kdWxlICl7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBkYXQ6IEdVSVZSXHJcbiAgfTtcclxufVxyXG5cclxuaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XHJcbiAgZGVmaW5lKFtdLCBHVUlWUik7XHJcbn1cclxuXHJcbi8qXHJcbiAgQnVuY2ggb2Ygc3RhdGUtbGVzcyB1dGlsaXR5IGZ1bmN0aW9ucy5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGlzTnVtYmVyKG4pIHtcclxuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Jvb2xlYW4obil7XHJcbiAgcmV0dXJuIHR5cGVvZiBuID09PSAnYm9vbGVhbic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuY3Rpb25Ub0NoZWNrKSB7XHJcbiAgY29uc3QgZ2V0VHlwZSA9IHt9O1xyXG4gIHJldHVybiBmdW5jdGlvblRvQ2hlY2sgJiYgZ2V0VHlwZS50b1N0cmluZy5jYWxsKGZ1bmN0aW9uVG9DaGVjaykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XHJcbn1cclxuXHJcbi8vICBvbmx5IHt9IG9iamVjdHMgbm90IGFycmF5c1xyXG4vLyAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHRlY2huaWNhbGx5IG9iamVjdHMgYnV0IHlvdSdyZSBqdXN0IGJlaW5nIHBlZGFudGljXHJcbmZ1bmN0aW9uIGlzT2JqZWN0IChpdGVtKSB7XHJcbiAgcmV0dXJuICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQXJyYXkoIG8gKXtcclxuICByZXR1cm4gQXJyYXkuaXNBcnJheSggbyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1N0cmluZyggbyApe1xyXG4gIHJldHVybiB0eXBlb2YgbyA9PT0gJ3N0cmluZyc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQ29sb3IoIG8gKXtcclxuICBpZiAodHlwZW9mIG8gIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIG8uaXNDb2xvciA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5cclxuXHJcblxyXG4vKlxyXG4gIENvbnRyb2xsZXItc3BlY2lmaWMgc3VwcG9ydC5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIGNvbnRyb2xsZXIsIHByZXNzZWQsIGdyaXBwZWQgKXtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VyZG93bicsICgpPT5wcmVzc2VkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VydXAnLCAoKT0+cHJlc3NlZCggZmFsc2UgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzZG93bicsICgpPT5ncmlwcGVkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc3VwJywgKCk9PmdyaXBwZWQoIGZhbHNlICkgKTtcclxuXHJcbiAgY29uc3QgZ2FtZXBhZCA9IGNvbnRyb2xsZXIuZ2V0R2FtZXBhZCgpO1xyXG4gIGZ1bmN0aW9uIHZpYnJhdGUoIHQsIGEgKXtcclxuICAgIGlmKCBnYW1lcGFkICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnNbIDAgXS5wdWxzZSggdCwgYSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc1RhcCgpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSgxLWEsIDAuNSksIDEwLCAyMCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc0VjaG8oKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoNCwgMS4wICogKDEtYSkpLCAxMDAsIDQgKTtcclxuICB9XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ29uQ29udHJvbGxlckhlbGQnLCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgIHZpYnJhdGUoIDAuMywgMC4zICk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJiZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGlubmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGluUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gc2V0SW50ZXJ2YWxUaW1lcyggY2IsIGRlbGF5LCB0aW1lcyApe1xyXG4gIGxldCB4ID0gMDtcclxuICBsZXQgaWQgPSBzZXRJbnRlcnZhbCggZnVuY3Rpb24oKXtcclxuICAgIGNiKCB4LCB0aW1lcywgeC90aW1lcyApO1xyXG4gICAgeCsrO1xyXG4gICAgaWYoIHg+PXRpbWVzICl7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwoIGlkICk7XHJcbiAgICB9XHJcbiAgfSwgZGVsYXkgKTtcclxuICByZXR1cm4gaWQ7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdsb2JhbEV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbnRlcmFjdGlvbiggaGl0Vm9sdW1lICl7XHJcbiAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbiAgbGV0IGFueUhvdmVyID0gZmFsc2U7XHJcbiAgbGV0IGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgbGV0IGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCB0VmVjdG9yID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCBhdmFpbGFibGVJbnB1dHMgPSBbXTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCBpbnB1dE9iamVjdHMgKXtcclxuXHJcbiAgICBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gICAgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuXHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuaW5kZXhPZiggaW5wdXQgKSA8IDAgKXtcclxuICAgICAgICBhdmFpbGFibGVJbnB1dHMucHVzaCggaW5wdXQgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgeyBoaXRPYmplY3QsIGhpdFBvaW50IH0gPSBleHRyYWN0SGl0KCBpbnB1dCApO1xyXG5cclxuICAgICAgdmFyIGhvdmVyID0gaGl0Vm9sdW1lID09PSBoaXRPYmplY3Q7XHJcbiAgICAgIGFueUhvdmVyID0gYW55SG92ZXIgfHwgaG92ZXI7XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAncHJlc3NlZCcsXHJcbiAgICAgICAgYnV0dG9uQ2xpY2tOYW1lOiAnY2xpY2tlZCcsIC8vbWF5YmUgbm90IHN0YWJsZSBwYXJ0IG9mIEFQSS4uLlxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ3ByZXNzJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uUHJlc3NlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdwcmVzc2luZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlZCcsXHJcbiAgICAgICAgIC8vaW52ZW50aW5nIGEgJ2hvdmVyaW5nJyBldmVudCB0aGF0IG9ubHkgYXBwbGllcyB0byAncHJlc3NlZCcgYnV0dG9uLi4uXHJcbiAgICAgICAgIC8vdGhpcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYSBzdGFibGUgaW50ZXJmYWNlLCBidXQgSSB3YW50cyBpdCBtb3JlIHRoYW4gSVxyXG4gICAgICAgICAvL3dhbnQgdG8gbWFrZSBzb21ldGhpbmcgdG90YWxseSBjb2hlcmVudCBhbmQgcm9idXN0IGp1c3Qgbm93LlxyXG4gICAgICAgIGhvdmVyTmFtZTogJ2hvdmVyaW5nJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAnZ3JpcHBlZCcsXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAnZ3JpcCcsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvbkdyaXBwZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAnZ3JpcHBpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZUdyaXAnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoICd0aWNrJywge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0gKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBleHRyYWN0SGl0KCBpbnB1dCApe1xyXG4gICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoIDw9IDAgKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogdFZlY3Rvci5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LmN1cnNvci5tYXRyaXhXb3JsZCApLmNsb25lKCksIC8veHh4OiBnYXJiYWdlP1xyXG4gICAgICAgIGhpdE9iamVjdDogdW5kZWZpbmVkLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLnBvaW50LFxyXG4gICAgICAgIGhpdE9iamVjdDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgIGlucHV0LCBob3ZlcixcclxuICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICBidXR0b25OYW1lLCBidXR0b25DbGlja05hbWUsIGludGVyYWN0aW9uTmFtZSwgZG93bk5hbWUsIGhvbGROYW1lLCB1cE5hbWUsIGhvdmVyTmFtZVxyXG4gIH0gPSB7fSApe1xyXG5cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGhpdE9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIC8vY2xpY2tlZCBhbmQgZGlkbid0IGhpdCBhbnkgR1VJIG9iamVjdC5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBob3ZlcmluZyBhbmQgYnV0dG9uIE5PVCBkb3duXHJcbiAgICBpZiggaG92ZXJOYW1lICYmIGhvdmVyICYmIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob3Zlck5hbWUsIHBheWxvYWQgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgaG92ZXJpbmcgYW5kIGJ1dHRvbiBkb3duIGJ1dCBubyBpbnRlcmFjdGlvbnMgYWN0aXZlIHlldFxyXG4gICAgLy8tLS0+IHNob3VsZCBiZSBeIGJ1dHRvbiAnY2xpY2tlZCcuLi4gaWUgb25seSBpZiBpdCBjYW1lIGRvd24gc2luY2UgdGhlIGxhc3QgdXBkYXRlLlxyXG4gICAgLy9zbywgc2hvdWxkIHdlIHBhc3MgJ2J1dHRvbkNsaWNrTmFtZScgYXMgYW4gYXJndW1lbnQgKGFuZCB1c2UgYnV0dG9uTmFtZSBpZiBub3QgcHJvdmlkZWQpP1xyXG4gICAgLy8tLS0+Pj4+IFhYWDogaXMgdGhpcyBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcLy8vLy8vLy8vLy8vIHdvcmtpbmcgd2l0aCBWaXZlIGNvbnRyb2xsZXJzPyBcclxuICAgIGlmKCBob3ZlciAmJiBpbnB1dFsgYnV0dG9uQ2xpY2tOYW1lIHx8IGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG5cclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpZiAoIWhpdE9iamVjdC51c2VyRGF0YS5wYXJ0T2ZNb2RhbCkgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG5cclxuICAgICAgcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpO1xyXG4gICAgICBcclxuICAgICAgLy9lbWl0IGdsb2JhbCBjbGljayBldmVudCBhcyB3ZWxsLi4uXHJcbiAgICAgIGdsb2JhbEV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgICBldmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGlmKCBwYXlsb2FkLmxvY2tlZCApe1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gaW50ZXJhY3Rpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgYW55QWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIHN0aWxsIGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggaG9sZE5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnb25Db250cm9sbGVySGVsZCcgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIG5vdCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IHVuZGVmaW5lZDtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCB1cE5hbWUsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpIHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGhpdE9iamVjdCk7XHJcbiAgICB0b3BGb2xkZXIucHJvbW90ZVpPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaXNNYWluSG92ZXIoKXtcclxuXHJcbiAgICBsZXQgbm9NYWluSG92ZXIgPSB0cnVlO1xyXG4gICAgZm9yKCBsZXQgaT0wOyBpPGF2YWlsYWJsZUlucHV0cy5sZW5ndGg7IGkrKyApe1xyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzWyBpIF0uaW50ZXJhY3Rpb24uaG92ZXIgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIG5vTWFpbkhvdmVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggbm9NYWluSG92ZXIgKXtcclxuICAgICAgcmV0dXJuIGFueUhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuZmlsdGVyKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgICAgcmV0dXJuIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID09PSBpbnRlcmFjdGlvbjtcclxuICAgIH0pLmxlbmd0aCA+IDAgKXtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0ge1xyXG4gICAgaG92ZXJpbmc6IGlzTWFpbkhvdmVyLFxyXG4gICAgcHJlc3Npbmc6ICgpPT5hbnlQcmVzc2luZyxcclxuICAgIHVwZGF0ZSxcclxuICAgIGV2ZW50cyxcclxuICAgIGhpdFZvbHVtZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufVxyXG5cclxuIiwiLyoqXHJcbiAqIFxyXG4gKiBUT0RPOiBjdXJzb3JzLi4uXHJcbiAqIE1heWJlIHNvbWV0aGluZyBsaWtlIG1vYmlsZSBpbnB1dCB3aGVyZSB5b3Ugc3dpdGNoIGJldHdlZW4gbGV0dGVycyAmIG51bWJlcnMgLyBzeW1ib2xzXHJcbiAqIFxyXG4gKiBTb21ldGhpbmcgbGlrZSBhIHNwbGl0IGtleWJvYXJkIGFsYSBodHRwczovL21lZGl1bS5jb20vYWFyb25uL3ZyLXRleHQtaW5wdXQtc3BsaXQta2V5Ym9hcmQtZTViZjNmZDg3YTRjXHJcbiAqIG1pZ2h0IGJlIGJldHRlci5cclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZCggeyBcclxuICAgIGtleUxpc3RlbmVyLFxyXG4gICAgdGV4dENyZWF0b3JcclxufSA9IHt9KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0VHJhbnNmb3JtID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBncm91cC5hZGQob2Zmc2V0VHJhbnNmb3JtKTtcclxuXHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgZXZlbnRzLm9uKCdrZXlEb3duJywga2V5TGlzdGVuZXIpO1xyXG4gICAgXHJcbiAgICBjb25zdCBsb3dlckNoYXJzID0gXCIxMjM0NTY3ODkwLT1xd2VydHl1aW9wW11hc2RmZ2hqa2w7JyNcXFxcenhjdmJubSwuLyBcIi5zcGxpdCgnJyk7XHJcbiAgICBsZXQgb2JqZWN0cyA9IGxvd2VyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG93ZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQobG93ZXJLZXlzKTtcclxuXHJcbiAgICBjb25zdCB1cHBlckNoYXJzID0gXCIhXFxcIsKjJCVeJiooKV8rUVdFUlRZVUlPUHt9QVNERkdISktMOkB+fFpYQ1ZCTk08Pj8gXCIuc3BsaXQoJycpO1xyXG4gICAgb2JqZWN0cyA9IHVwcGVyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBwZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIHVwcGVyS2V5cy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHVwcGVyS2V5cyk7XHJcblxyXG4gICAgbGV0IHNoaWZ0ID0gZmFsc2U7XHJcbiAgICBmdW5jdGlvbiBzaGlmdFRvZ2dsZSgpIHtcclxuICAgICAgICBzaGlmdCA9ICFzaGlmdDtcclxuICAgICAgICBsb3dlcktleXMudmlzaWJsZSA9ICFzaGlmdDtcclxuICAgICAgICB1cHBlcktleXMudmlzaWJsZSA9IHNoaWZ0O1xyXG4gICB9XHJcblxyXG4gICBjb25zdCBzcGFjZUJhciA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7IHRleHRDcmVhdG9yLCBjb2x1bW5zOiAxLCByb3dIZWlnaHQ6IDAuMSwgb2JqZWN0czogW1xyXG4gICAgICAge2Z1bmM6ICgpPT5ldmVudHMuZW1pdCgna2V5RG93bicsICcgJyksIHRleHQ6ICdzcGFjZSd9XHJcbiAgICBdfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwYWNlQmFyKTtcclxuICAgIHZhciB5ID0gc3BhY2VCYXIucG9zaXRpb24ueSA9IC0wLjUgKiAobG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nKTtcclxuICAgIFxyXG4gICAgb2JqZWN0cyA9IFtcclxuICAgICAgICB7IHRleHQ6IFwic2hpZnRcIiwgZnVuYzogc2hpZnRUb2dnbGUgfSxcclxuICAgICAgICB7IHRleHQ6IFwiYmFja3NwYWNlXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcYicpIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImVudGVyXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcbicpIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBzcGVjaWFsS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDMsIHJvd0hlaWdodDogMC4xfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwZWNpYWxLZXlzKTtcclxuICAgIHNwZWNpYWxLZXlzLnBvc2l0aW9uLnkgPSB5LTAuNSAqIChzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZyk7XHJcbiAgICBncm91cC5zcGFjaW5nID0gbG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZztcclxuICAgIC8vdGhpcyBsb29rcyByaWdodCwgbXVzdCBhZG1pdCBJIGhhdmVuJ3QgdGhvdWdodCB0aHJvdWdoIGV4YWN0bHkgd2h5IGl0IHNob3VsZCBiZS5cclxuICAgIG9mZnNldFRyYW5zZm9ybS5wb3NpdGlvbi55ID0gc3BlY2lhbEtleXMuc3BhY2luZztcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdoaXRzY2FuJywge1xyXG4gICAgICAgIGdldDogKCkgPT4gW1xyXG4gICAgICAgICAgICBzcGVjaWFsS2V5cy5oaXRzY2FuLCBzcGFjZUJhci5oaXRzY2FuLCBzaGlmdCA/IHVwcGVyS2V5cy5oaXRzY2FuIDogbG93ZXJLZXlzLmhpdHNjYW5cclxuICAgICAgICBdLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSlcclxuICAgIH0pO1xyXG5cclxuICAgIHNwYWNlQmFyLmZvbGRlciA9IHVwcGVyS2V5cy5mb2xkZXIgPSBsb3dlcktleXMuZm9sZGVyID0gc3BlY2lhbEtleXMuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gKGlucHV0cykgPT4ge1xyXG4gICAgICAgIHNwZWNpYWxLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBsb3dlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHNwYWNlQmFyLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICB1cHBlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWxpZ25MZWZ0KCBvYmogKXtcclxuICBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuTWVzaCApe1xyXG4gICAgb2JqLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4LnggLSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmouZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZWxzZSBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkgKXtcclxuICAgIG9iai5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gIGNvbnN0IG1hdGVyaWFsID0gdW5pcXVlTWF0ZXJpYWwgPyBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4ZmZmZmZmfSkgOiBTaGFyZWRNYXRlcmlhbHMuUEFORUw7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApLCBtYXRlcmlhbCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgaWYoIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuXHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxuXHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiByZXNpemVQYW5lbChwYW5lbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgpIHtcclxuICBwYW5lbC5nZW9tZXRyeS5zY2FsZSh3aWR0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGgsIGhlaWdodC9wYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0LCBkZXB0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGgpO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgY29sb3IgKXtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENPTlRST0xMRVJfSURfV0lEVEgsIGhlaWdodCwgQ09OVFJPTExFUl9JRF9ERVBUSCApLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIENPTlRST0xMRVJfSURfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIGNvbG9yICk7XHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRG93bkFycm93KCl7XHJcbiAgY29uc3QgdyA9IDAuMDA5NjtcclxuICBjb25zdCBoID0gMC4wMTY7XHJcbiAgY29uc3Qgc2ggPSBuZXcgVEhSRUUuU2hhcGUoKTtcclxuICBzaC5tb3ZlVG8oMCwwKTtcclxuICBzaC5saW5lVG8oLXcsaCk7XHJcbiAgc2gubGluZVRvKHcsaCk7XHJcbiAgc2gubGluZVRvKDAsMCk7XHJcblxyXG4gIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KCBzaCApO1xyXG4gIGdlby50cmFuc2xhdGUoIDAsIC1oICogMC41LCAwICk7XHJcblxyXG4gIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgUEFORUxfSEVJR0hUID0gMC4wODtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1NQQUNJTkcgPSAwOy8vLjAwMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX01BUkdJTiA9IDAuMDE1O1xyXG5leHBvcnQgY29uc3QgUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gPSAwLjA2O1xyXG5leHBvcnQgY29uc3QgUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9XSURUSCA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RFUFRIID0gMC4wMDE7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX1dJRFRIID0gMS4wMjY7XHJcbmV4cG9ydCBjb25zdCBTVUJGT0xERVJfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfSEVJR0hUID0gMC4wOTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9HUkFCX0hFSUdIVCA9IDAuMDUxMjtcclxuZXhwb3J0IGNvbnN0IEJPUkRFUl9USElDS05FU1MgPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfU0laRSA9IDAuMDU7XHJcbmV4cG9ydCBjb25zdCBURVhUX1NDQUxFID0gMC4wMDAyNDtcclxuZXhwb3J0IGNvbnN0IEdSSURfQlVUVE9OX01BUkdJTiA9IDAuMDE7IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvbkdyaXBwZWQnLCBoYW5kbGVPbkdyaXAgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VHcmlwJywgaGFuZGxlT25HcmlwUmVsZWFzZSApO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgbGV0IG9sZFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBsZXQgb2xkUm90YXRpb24gPSBuZXcgVEhSRUUuRXVsZXIoKTtcclxuXHJcbiAgY29uc3Qgcm90YXRpb25Hcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHJvdGF0aW9uR3JvdXAuc2NhbGUuc2V0KCAwLjMsIDAuMywgMC4zICk7XHJcbiAgcm90YXRpb25Hcm91cC5wb3NpdGlvbi5zZXQoIC0wLjAxNSwgMC4wMTUsIDAuMCApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwKCBwICl7XHJcblxyXG4gICAgY29uc3QgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9sZFBvc2l0aW9uLmNvcHkoIGZvbGRlci5wb3NpdGlvbiApO1xyXG4gICAgb2xkUm90YXRpb24uY29weSggZm9sZGVyLnJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24ueCA9IC1NYXRoLlBJICogMC41O1xyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG5cclxuICAgIHJvdGF0aW9uR3JvdXAuYWRkKCBmb2xkZXIgKTtcclxuXHJcbiAgICBpbnB1dE9iamVjdC5hZGQoIHJvdGF0aW9uR3JvdXAgKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGlubmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcFJlbGVhc2UoIHsgaW5wdXRPYmplY3QsIGlucHV0IH09e30gKXtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoIG9sZFBvc2l0aW9uICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uY29weSggb2xkUm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGluUmVsZWFzZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiLyoqXHJcbiAqIFBKVDogVGhpcyBpcyBhIHZhcmlhdGlvbiBvbiBzZGZzaGFkZXIgZnJvbSBibWZvbnQsIHdoaWNoIHNob3VsZCBKdXN0IFdvcmsgd2l0aCBsb2dhcml0aG1pYyBkZXB0aCBidWZmZXJzLlxyXG4gKiBJdCBzaG91bGQgYWxzbyBhbGxvdyBzb21lIG90aGVyIGFzcGVjdHMgb2YgVEhSRUUgcmVuZGVyaW5nIHRvIGJlIGluY29ycG9yYXRlZCwgbGlrZSBmb2csIGNsaXBwaW5nIHBsYW5lcy4uLlxyXG4gKiBFbnZpcm9ubWVudCBtYXBzIGFuZCB2YXJpb3VzIG90aGVyIGJpdHMgZnJvbSBNZXNoQmFzaWNNYXRlcmlhbCBhcmUgcmVtb3ZlZC5cclxuICogQXQgdGltZSBvZiB3cml0aW5nLCB0aGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MsIGFuZCBzb21ld2hhdCBtb3JlIGJsb2F0ZWQgdGhhbiBpdCBuZWVkcyB0byBiZS5cclxuICogVGhlIHNoYWRlciBjb2RlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBTaGFkZXJNYXRlcmlhbCByYXRoZXIgdGhhbiBSYXdTaGFkZXJNYXRlcmlhbC5cclxuICovXHJcbi8vIGltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XHJcblxyXG4vKipcclxuICogc3RhcnRpbmcgZnJvbSBUSFJFRSBtZXNoYmFzaWMgc2hhZGVycywgcHJ1bmluZyAvIG1vZGlmeWluZy4uLlxyXG4gKi9cclxuY29uc3QgbWVzaGJhc2ljX3ZlcnQgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XHJcblxyXG52b2lkIG1haW4oKSB7IFxyXG4gIHZVdiA9IHV2O1xyXG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IG1lc2hiYXNpY19mcmFnID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxudW5pZm9ybSB2ZWMzIGNvbG9yO1xyXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XHJcblxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XHJcblxyXG4vLy8vL1xyXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcclxuICAgIC8vIFdlIG5vdyBhc3N1bWUgV2ViR0wyIGFuZCBzbyB0aGUgZGVyaXZhdGl2ZXMgYXJlIGF2YWlsYWJsZSwgXHJcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXHJcbiAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBpZiAobWVzaC51c2VyRGF0YS5sYWJlbFN0cmluZyAhPT0gc3RyKSB7XHJcbiAgICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgICAgIG1lc2gudXNlckRhdGEubGFiZWxTdHJpbmcgPSBzdHI7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiBUSFJFRS5WZXJ0ZXhDb2xvcnMgfSApO1xyXG5leHBvcnQgY29uc3QgTE9DQVRPUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG5leHBvcnQgY29uc3QgRk9MREVSID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDAwMDAwMCB9ICk7XHJcbmV4cG9ydCBjb25zdCBUT09MVElQID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDIwNTA4MCwgdHJhbnNwYXJlbnQ6IGZhbHNlLCBvcGFjaXR5OiAwLjggfSApO1xyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTbGlkZXIoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gMC4wLFxyXG4gIG1pbiA9IDAuMCwgbWF4ID0gMS4wLFxyXG4gIHN0ZXAgPSAwLjEsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaW5pdGlhbEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGFscGhhOiAxLjAsXHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgc3RlcDogc3RlcCxcclxuICAgIHVzZVN0ZXA6IHRydWUsXHJcbiAgICBwcmVjaXNpb246IDEsXHJcbiAgICBsaXN0ZW46IGZhbHNlLFxyXG4gICAgbWluOiBtaW4sXHJcbiAgICBtYXg6IG1heCxcclxuICAgIG9uQ2hhbmdlZENCOiB1bmRlZmluZWQsXHJcbiAgICBvbkZpbmlzaGVkQ2hhbmdlOiB1bmRlZmluZWQsXHJcbiAgICBwcmVzc2luZzogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIHN0YXRlLnN0ZXAgPSBnZXRJbXBsaWVkU3RlcCggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKTtcclxuICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInNsaWRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIGdyb3VwLnNldEhlaWdodCA9IGhlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZSggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgICBjb25zdCBTTElERVJfV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9ERVBUSCA9IGRlcHRoO1xyXG5cclxuICAgIC8vICBmaWxsZWQgdm9sdW1lXHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBTTElERVJfV0lEVEgsIFNMSURFUl9IRUlHSFQsIFNMSURFUl9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoU0xJREVSX1dJRFRIKjAuNSwwLDApO1xyXG4gICAgLy8gTGF5b3V0LmFsaWduTGVmdCggcmVjdCApO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5uYW1lID0gJ2hpdHNjYW5Wb2x1bWUnO1xyXG5cclxuICAgIC8vICBzbGlkZXJCRyB2b2x1bWVcclxuICAgIGNvbnN0IHNsaWRlckJHID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggc2xpZGVyQkcuZ2VvbWV0cnksIENvbG9ycy5TTElERVJfQkcgKTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEggKyBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG5cclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5ERUZBVUxUX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGZpbGxlZFZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgY29uc3QgZW5kTG9jYXRvciA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIDAuMDUsIDAuMDUsIDAuMDUsIDEsIDEsIDEgKSwgU2hhcmVkTWF0ZXJpYWxzLkxPQ0FUT1IgKTtcclxuICAgIGVuZExvY2F0b3IucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSDtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBlbmRMb2NhdG9yICk7XHJcbiAgICBlbmRMb2NhdG9yLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB2YWx1ZUxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gKyB3aWR0aCAqIDAuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoKjIuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzMjU7XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9TTElERVIgKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBwYW5lbC5uYW1lID0gJ3BhbmVsJztcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBzbGlkZXJCRywgdmFsdWVMYWJlbCwgY29udHJvbGxlcklEICk7XHJcblxyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApXHJcblxyXG4gICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgIHVwZGF0ZVNsaWRlcigpO1xyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbHVlTGFiZWwoIHZhbHVlICl7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggcm91bmRUb0RlY2ltYWwoIHN0YXRlLnZhbHVlLCBzdGF0ZS5wcmVjaXNpb24gKS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICAgIGlmKCBzdGF0ZS5wcmVzc2luZyApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLklOVEVSQUNUSU9OX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU2xpZGVyKCl7XHJcbiAgICAgIGZpbGxlZFZvbHVtZS5zY2FsZS54ID1cclxuICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgIE1hdGgubWF4KCBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICkgKiB3aWR0aCwgMC4wMDAwMDEgKSxcclxuICAgICAgICAgIHdpZHRoXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVPYmplY3QoIHZhbHVlICl7XHJcbiAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTdGF0ZUZyb21BbHBoYSggYWxwaGEgKXtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICk7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tQWxwaGEoIHN0YXRlLmFscGhhLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gZ2V0U3RlcHBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUuc3RlcCApO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0Q2xhbXBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKXtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21PYmplY3QoKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRnJvbU9iamVjdCgpe1xyXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICAgIHN0YXRlLm9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAuc3RlcCA9IGZ1bmN0aW9uKCBzdGVwICl7XHJcbiAgICAgIHN0YXRlLnN0ZXAgPSBzdGVwO1xyXG4gICAgICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApXHJcbiAgICAgIHN0YXRlLnVzZVN0ZXAgPSB0cnVlO1xyXG5cclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlUHJlc3MgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlSG9sZCApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZVJlbGVhc2UgKTtcclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVQcmVzcyggcCApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlSG9sZCggeyBwb2ludCB9ID0ge30gKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBmaWxsZWRWb2x1bWUudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgZW5kTG9jYXRvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG5cclxuICAgICAgY29uc3QgYSA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBmaWxsZWRWb2x1bWUubWF0cml4V29ybGQgKTtcclxuICAgICAgY29uc3QgYiA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBlbmRMb2NhdG9yLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHthLGJ9ICkgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICB1cGRhdGVPYmplY3QoIHN0YXRlLnZhbHVlICk7XHJcblxyXG4gICAgICBpZiggcHJldmlvdXNWYWx1ZSAhPT0gc3RhdGUudmFsdWUgJiYgc3RhdGUub25DaGFuZ2VkQ0IgKXtcclxuICAgICAgICBzdGF0ZS5vbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVJlbGVhc2UoKXtcclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgICB1cGRhdGVTbGlkZXIoKTtcclxuICAgICAgfVxyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWluID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWluID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWF4ID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWF4ID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfSAvLyAvc2V0SGVpZ2h0XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KCBpbml0aWFsSGVpZ2h0ICk7XHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCB0YSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRiID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdFRvQSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IGFUb0IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHNlZ21lbnQgKXtcclxuICB0YS5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG4gIHRiLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgY29uc3QgcHJvamVjdGVkID0gdGIucHJvamVjdE9uVmVjdG9yKCB0YSApO1xyXG5cclxuICB0VG9BLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgYVRvQi5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApLm5vcm1hbGl6ZSgpO1xyXG5cclxuICBjb25zdCBzaWRlID0gdFRvQS5ub3JtYWxpemUoKS5kb3QoIGFUb0IgKSA+PSAwID8gMSA6IC0xO1xyXG5cclxuICBjb25zdCBsZW5ndGggPSBzZWdtZW50LmEuZGlzdGFuY2VUbyggc2VnbWVudC5iICkgKiBzaWRlO1xyXG5cclxuICBsZXQgYWxwaGEgPSBwcm9qZWN0ZWQubGVuZ3RoKCkgLyBsZW5ndGg7XHJcbiAgaWYoIGFscGhhID4gMS4wICl7XHJcbiAgICBhbHBoYSA9IDEuMDtcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMC4wICl7XHJcbiAgICBhbHBoYSA9IDAuMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsZXJwKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIHJldHVybiAoMS12YWx1ZSkqbWluICsgdmFsdWUqbWF4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXBfcmFuZ2UodmFsdWUsIGxvdzEsIGhpZ2gxLCBsb3cyLCBoaWdoMikge1xyXG4gICAgcmV0dXJuIGxvdzIgKyAoaGlnaDIgLSBsb3cyKSAqICh2YWx1ZSAtIGxvdzEpIC8gKGhpZ2gxIC0gbG93MSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRBbHBoYSggYWxwaGEgKXtcclxuICBpZiggYWxwaGEgPiAxICl7XHJcbiAgICByZXR1cm4gMVxyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwICl7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIGlmKCB2YWx1ZSA8IG1pbiApe1xyXG4gICAgcmV0dXJuIG1pbjtcclxuICB9XHJcbiAgaWYoIHZhbHVlID4gbWF4ICl7XHJcbiAgICByZXR1cm4gbWF4O1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEltcGxpZWRTdGVwKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICAvL1BKVDogd2hhdCB3b3VsZCB3ZSBsaWtlIHN0ZXAgdG8gbG9vayBsaWtlP1xyXG4gIC8vU29tZXRoaW5nIHRoYXQgaGFzIGFib3V0IHRoZSBvcmRlciBvZiBtYWduaXR1ZGUsIGFuZCBsb29rcyBuaWNlIGluIGJhc2UgMTA/XHJcbiAgY29uc3QgciA9IG1heC1taW47XHJcbiAgbGV0IHN0ZXAgPSByLzEwMDsgLy93aGF0IGlzIHRoZSByYXRpbyBvZiBudW1iZXIgb2YgZGVjaW1hbHMgdG8gb3JkZXIgb2YgbWFnbml0dWRlP1xyXG4gIFxyXG4gIHJldHVybiBzdGVwO1xyXG5cclxuICAvLyBpZiggdmFsdWUgPT09IDAgKXtcclxuICAvLyAgIHJldHVybiAxOyAvLyBXaGF0IGFyZSB3ZSwgcHN5Y2hpY3M/IC8vPDw8PC0tLSBubywgc28gd2Ugc2hvdWxkIGJhc2UgaW1wbGllZFN0ZXAgb24gbWluL21heCwgbm90IHZhbHVlXHJcbiAgLy8gfSBlbHNlIHtcclxuICAvLyAgIC8vIEhleSBEb3VnLCBjaGVjayB0aGlzIG91dC5cclxuICAvLyAgIHJldHVybiBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihNYXRoLmxvZyhNYXRoLmFicyh2YWx1ZSkpL01hdGguTE4xMCkpLzEwO1xyXG4gIC8vIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tQWxwaGEoIGFscGhhLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIGFscGhhLCAwLjAsIDEuMCwgbWluLCBtYXggKVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBbHBoYUZyb21WYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggdmFsdWUsIG1pbiwgbWF4LCAwLjAsIDEuMCApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGVwcGVkVmFsdWUoIHZhbHVlLCBzdGVwICl7XHJcbiAgaWYoIHZhbHVlICUgc3RlcCAhPSAwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZCggdmFsdWUgLyBzdGVwICkgKiBzdGVwO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG51bURlY2ltYWxzKHgpIHtcclxuICB4ID0geC50b1N0cmluZygpO1xyXG4gIGlmICh4LmluZGV4T2YoJy4nKSA+IC0xKSB7XHJcbiAgICByZXR1cm4geC5sZW5ndGggLSB4LmluZGV4T2YoJy4nKSAtIDE7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcm91bmRUb0RlY2ltYWwodmFsdWUsIGRlY2ltYWxzKSB7XHJcbiAgaWYgKE1hdGguYWJzKHZhbHVlKSA8IDAuMDEgJiYgdmFsdWUgIT09IDApIHJldHVybiB2YWx1ZS50b0V4cG9uZW50aWFsKDMpO1xyXG4gIGNvbnN0IHRlblRvID0gTWF0aC5wb3coMTAsIGRlY2ltYWxzKTtcclxuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIHRlblRvKSAvIHRlblRvO1xyXG59IiwiLyoqXHJcbiAqIFdoZW4gdGhlIHRleHRib3ggaXMgZm9jdXNzZWQsICBhIGtleWJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLi4uXHJcbiAqIFRoZXJlIHNob3VsZCBhbHNvIGJlIGEgd2F5IG9mIGRpc21pc3NpbmcgaXQgbGF0ZXIuICBJdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRvXHJcbiAqIHByZXZlbnQgbXVsdGlwbGUga2V5Ym9hcmRzIGJlaW5nIG1hZGUgc2ltdWx0YW5lb3VzbHk/XHJcbiAqIFxyXG4gKiBJbiBvcmRlciB0byBtYWtlIGl0IGFwcGVhciwgaXQgY2FuIGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgdGhlIHRleGJveCBub2RlIGl0c2VsZi4uLlxyXG4gKiBUaGlzJ2xsIG1lYW4gdGhhdCBpdCBnZXRzIGRyYWdnZWQgYXJvdW5kIGJ5IHRoZSBwYXJlbnQgR1VJIGFzIGl0IG1vdmVzLi4uLlxyXG4gKiBNYWtlcyBmb3IgcmVsYXRpdmVseSBjbGVhbiwgc2ltcGxlIGltcGxlbWVudGF0aW9uIGF0IGxlYXN0LlxyXG4gKiBBdCB0aGUgbW9tZW50LCBrZXlib2FyZCBwb3NpdGlvbmluZyBpcyBtZXNzZWQgdXAgYnkgdGhpcyBhcnJhbmdlbWVudC5cclxuICogUmVtb3ZpbmcgZ3JhYmJlciBtYWtlcyBpdCBsZXNzIGxpa2VseSBhIHVzZXIgd2lsbCBkbyB0aGlzLCBidXQgbWlnaHQgYmUgd29ydGggZml4aW5nIHRoZSBiYXNpYyBidWcuXHJcbiAqIFxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIEdVSSBmcm9tICcuL2luZGV4JztcclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRCb3goe1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSkge1xyXG4gIC8vIGJpZyBvbGQgY29weSAvIHBhc3RlIGZyb20gYnV0dG9uLmpzLiBNaWdodCB0cnkgdG8gZmFjdG9yIG91dCBzb21lIG9mIHRoaXMgY29tbW9uIGNvZGUuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGJveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCIvKlxyXG4gKlx0QGF1dGhvciB6ejg1IC8gaHR0cDovL3R3aXR0ZXIuY29tL2JsdXJzcGxpbmUgLyBodHRwOi8vd3d3LmxhYjRnYW1lcy5uZXQveno4NS9ibG9nXHJcbiAqXHRAYXV0aG9yIGNlbnRlcmlvbndhcmUgLyBodHRwOi8vd3d3LmNlbnRlcmlvbndhcmUuY29tXHJcbiAqXHJcbiAqXHRTdWJkaXZpc2lvbiBHZW9tZXRyeSBNb2RpZmllclxyXG4gKlx0XHR1c2luZyBMb29wIFN1YmRpdmlzaW9uIFNjaGVtZVxyXG4gKlxyXG4gKlx0UmVmZXJlbmNlczpcclxuICpcdFx0aHR0cDovL2dyYXBoaWNzLnN0YW5mb3JkLmVkdS9+bWRmaXNoZXIvc3ViZGl2aXNpb24uaHRtbFxyXG4gKlx0XHRodHRwOi8vd3d3LmhvbG1lczNkLm5ldC9ncmFwaGljcy9zdWJkaXZpc2lvbi9cclxuICpcdFx0aHR0cDovL3d3dy5jcy5ydXRnZXJzLmVkdS9+ZGVjYXJsby9yZWFkaW5ncy9zdWJkaXYtc2cwMGMucGRmXHJcbiAqXHJcbiAqXHRLbm93biBJc3N1ZXM6XHJcbiAqXHRcdC0gY3VycmVudGx5IGRvZXNuJ3QgaGFuZGxlIFwiU2hhcnAgRWRnZXNcIlxyXG4gKi9cclxuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIgPSBmdW5jdGlvbiAoIHN1YmRpdmlzaW9ucyApIHtcclxuXHJcblx0dGhpcy5zdWJkaXZpc2lvbnMgPSAoIHN1YmRpdmlzaW9ucyA9PT0gdW5kZWZpbmVkICkgPyAxIDogc3ViZGl2aXNpb25zO1xyXG5cclxufTtcclxuXHJcbi8vIEFwcGxpZXMgdGhlIFwibW9kaWZ5XCIgcGF0dGVyblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5tb2RpZnkgPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkge1xyXG5cclxuXHR2YXIgcmVwZWF0cyA9IHRoaXMuc3ViZGl2aXNpb25zO1xyXG5cclxuXHR3aGlsZSAoIHJlcGVhdHMgLS0gPiAwICkge1xyXG5cclxuXHRcdHRoaXMuc21vb3RoKCBnZW9tZXRyeSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGdlb21ldHJ5LmNvbXB1dGVGYWNlTm9ybWFscygpO1xyXG5cdGdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XHJcblxyXG59O1xyXG5cclxuKCBmdW5jdGlvbigpIHtcclxuXHJcblx0Ly8gU29tZSBjb25zdGFudHNcclxuXHR2YXIgV0FSTklOR1MgPSAhIHRydWU7IC8vIFNldCB0byB0cnVlIGZvciBkZXZlbG9wbWVudFxyXG5cdHZhciBBQkMgPSBbICdhJywgJ2InLCAnYycgXTtcclxuXHJcblxyXG5cdGZ1bmN0aW9uIGdldEVkZ2UoIGEsIGIsIG1hcCApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHRyZXR1cm4gbWFwWyBrZXkgXTtcclxuXHJcblx0fVxyXG5cclxuXHJcblx0ZnVuY3Rpb24gcHJvY2Vzc0VkZ2UoIGEsIGIsIHZlcnRpY2VzLCBtYXAsIGZhY2UsIG1ldGFWZXJ0aWNlcyApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHR2YXIgZWRnZTtcclxuXHJcblx0XHRpZiAoIGtleSBpbiBtYXAgKSB7XHJcblxyXG5cdFx0XHRlZGdlID0gbWFwWyBrZXkgXTtcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0dmFyIHZlcnRleEEgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhBIF07XHJcblx0XHRcdHZhciB2ZXJ0ZXhCID0gdmVydGljZXNbIHZlcnRleEluZGV4QiBdO1xyXG5cclxuXHRcdFx0ZWRnZSA9IHtcclxuXHJcblx0XHRcdFx0YTogdmVydGV4QSwgLy8gcG9pbnRlciByZWZlcmVuY2VcclxuXHRcdFx0XHRiOiB2ZXJ0ZXhCLFxyXG5cdFx0XHRcdG5ld0VkZ2U6IG51bGwsXHJcblx0XHRcdFx0Ly8gYUluZGV4OiBhLCAvLyBudW1iZXJlZCByZWZlcmVuY2VcclxuXHRcdFx0XHQvLyBiSW5kZXg6IGIsXHJcblx0XHRcdFx0ZmFjZXM6IFtdIC8vIHBvaW50ZXJzIHRvIGZhY2VcclxuXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRtYXBbIGtleSBdID0gZWRnZTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0ZWRnZS5mYWNlcy5wdXNoKCBmYWNlICk7XHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzWyBhIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cdFx0bWV0YVZlcnRpY2VzWyBiIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBnZW5lcmF0ZUxvb2t1cHMoIHZlcnRpY2VzLCBmYWNlcywgbWV0YVZlcnRpY2VzLCBlZGdlcyApIHtcclxuXHJcblx0XHR2YXIgaSwgaWwsIGZhY2UsIGVkZ2U7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gdmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRtZXRhVmVydGljZXNbIGkgXSA9IHsgZWRnZXM6IFtdIH07XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IGZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IGZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5hLCBmYWNlLmIsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmIsIGZhY2UuYywgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYywgZmFjZS5hLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdGYWNlKCBuZXdGYWNlcywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdGYWNlcy5wdXNoKCBuZXcgVEhSRUUuRmFjZTMoIGEsIGIsIGMgKSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG1pZHBvaW50KCBhLCBiICkge1xyXG5cclxuXHRcdHJldHVybiAoIE1hdGguYWJzKCBiIC0gYSApIC8gMiApICsgTWF0aC5taW4oIGEsIGIgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdVdiggbmV3VXZzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld1V2cy5wdXNoKCBbIGEuY2xvbmUoKSwgYi5jbG9uZSgpLCBjLmNsb25lKCkgXSApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cdC8vIFBlcmZvcm1zIG9uZSBpdGVyYXRpb24gb2YgU3ViZGl2aXNpb25cclxuXHRUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5zbW9vdGggPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkgeyByZXR1cm47IC8vIHNqcHQgVEVNUCBUT0RPXHJcblxyXG5cdFx0dmFyIHRtcCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0dmFyIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgb2xkVXZzO1xyXG5cdFx0dmFyIG5ld1ZlcnRpY2VzLCBuZXdGYWNlcywgbmV3VVZzID0gW107XHJcblxyXG5cdFx0dmFyIG4sIGwsIGksIGlsLCBqLCBrO1xyXG5cdFx0dmFyIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXM7XHJcblxyXG5cdFx0Ly8gbmV3IHN0dWZmLlxyXG5cdFx0dmFyIHNvdXJjZUVkZ2VzLCBuZXdFZGdlVmVydGljZXMsIG5ld1NvdXJjZVZlcnRpY2VzO1xyXG5cclxuXHRcdG9sZFZlcnRpY2VzID0gZ2VvbWV0cnkudmVydGljZXM7IC8vIHsgeCwgeSwgen1cclxuXHRcdG9sZEZhY2VzID0gZ2VvbWV0cnkuZmFjZXM7IC8vIHsgYTogb2xkVmVydGV4MSwgYjogb2xkVmVydGV4MiwgYzogb2xkVmVydGV4MyB9XHJcblx0XHRvbGRVdnMgPSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF07XHJcblxyXG5cdFx0dmFyIGhhc1V2cyA9IG9sZFV2cyAhPT0gdW5kZWZpbmVkICYmIG9sZFV2cy5sZW5ndGggPiAwO1xyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKiBTdGVwIDA6IFByZXByb2Nlc3MgR2VvbWV0cnkgdG8gR2VuZXJhdGUgZWRnZXMgTG9va3VwXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzID0gbmV3IEFycmF5KCBvbGRWZXJ0aWNlcy5sZW5ndGggKTtcclxuXHRcdHNvdXJjZUVkZ2VzID0ge307IC8vIEVkZ2UgPT4geyBvbGRWZXJ0ZXgxLCBvbGRWZXJ0ZXgyLCBmYWNlc1tdICB9XHJcblxyXG5cdFx0Z2VuZXJhdGVMb29rdXBzKCBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXMgKTtcclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDEuXHJcblx0XHQgKlx0Rm9yIGVhY2ggZWRnZSwgY3JlYXRlIGEgbmV3IEVkZ2UgVmVydGV4LFxyXG5cdFx0ICpcdHRoZW4gcG9zaXRpb24gaXQuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3RWRnZVZlcnRpY2VzID0gW107XHJcblx0XHR2YXIgb3RoZXIsIGN1cnJlbnRFZGdlLCBuZXdFZGdlLCBmYWNlO1xyXG5cdFx0dmFyIGVkZ2VWZXJ0ZXhXZWlnaHQsIGFkamFjZW50VmVydGV4V2VpZ2h0LCBjb25uZWN0ZWRGYWNlcztcclxuXHJcblx0XHRmb3IgKCBpIGluIHNvdXJjZUVkZ2VzICkge1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UgPSBzb3VyY2VFZGdlc1sgaSBdO1xyXG5cdFx0XHRuZXdFZGdlID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAzIC8gODtcclxuXHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdGNvbm5lY3RlZEZhY2VzID0gY3VycmVudEVkZ2UuZmFjZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgaG93IG1hbnkgbGlua2VkIGZhY2VzLiAyIHNob3VsZCBiZSBjb3JyZWN0LlxyXG5cdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGlmIGxlbmd0aCBpcyBub3QgMiwgaGFuZGxlIGNvbmRpdGlvblxyXG5cdFx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAwLjU7XHJcblx0XHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ1N1YmRpdmlzaW9uIE1vZGlmaWVyOiBOdW1iZXIgb2YgY29ubmVjdGVkIGZhY2VzICE9IDIsIGlzOiAnLCBjb25uZWN0ZWRGYWNlcywgY3VycmVudEVkZ2UgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3RWRnZS5hZGRWZWN0b3JzKCBjdXJyZW50RWRnZS5hLCBjdXJyZW50RWRnZS5iICkubXVsdGlwbHlTY2FsYXIoIGVkZ2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgY29ubmVjdGVkRmFjZXM7IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGZhY2UgPSBjdXJyZW50RWRnZS5mYWNlc1sgaiBdO1xyXG5cclxuXHRcdFx0XHRmb3IgKCBrID0gMDsgayA8IDM7IGsgKysgKSB7XHJcblxyXG5cdFx0XHRcdFx0b3RoZXIgPSBvbGRWZXJ0aWNlc1sgZmFjZVsgQUJDWyBrIF0gXSBdO1xyXG5cdFx0XHRcdFx0aWYgKCBvdGhlciAhPT0gY3VycmVudEVkZ2UuYSAmJiBvdGhlciAhPT0gY3VycmVudEVkZ2UuYiApIGJyZWFrO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGFkamFjZW50VmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld0VkZ2UuYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlLm5ld0VkZ2UgPSBuZXdFZGdlVmVydGljZXMubGVuZ3RoO1xyXG5cdFx0XHRuZXdFZGdlVmVydGljZXMucHVzaCggbmV3RWRnZSApO1xyXG5cclxuXHRcdFx0Ly8gY29uc29sZS5sb2coY3VycmVudEVkZ2UsIG5ld0VkZ2UpO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMi5cclxuXHRcdCAqXHRSZXBvc2l0aW9uIGVhY2ggc291cmNlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdHZhciBiZXRhLCBzb3VyY2VWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQ7XHJcblx0XHR2YXIgY29ubmVjdGluZ0VkZ2UsIGNvbm5lY3RpbmdFZGdlcywgb2xkVmVydGV4LCBuZXdTb3VyY2VWZXJ0ZXg7XHJcblx0XHRuZXdTb3VyY2VWZXJ0aWNlcyA9IFtdO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZFZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0b2xkVmVydGV4ID0gb2xkVmVydGljZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgYWxsIGNvbm5lY3RpbmcgZWRnZXMgKHVzaW5nIGxvb2t1cFRhYmxlKVxyXG5cdFx0XHRjb25uZWN0aW5nRWRnZXMgPSBtZXRhVmVydGljZXNbIGkgXS5lZGdlcztcclxuXHRcdFx0biA9IGNvbm5lY3RpbmdFZGdlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIG4gPT0gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAxNjtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoIG4gPiAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvICggOCAqIG4gKTsgLy8gV2FycmVuJ3MgbW9kaWZpZWQgZm9ybXVsYVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTG9vcCdzIG9yaWdpbmFsIGJldGEgZm9ybXVsYVxyXG5cdFx0XHQvLyBiZXRhID0gMSAvIG4gKiAoIDUvOCAtIE1hdGgucG93KCAzLzggKyAxLzQgKiBNYXRoLmNvcyggMiAqIE1hdGguIFBJIC8gbiApLCAyKSApO1xyXG5cclxuXHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMSAtIG4gKiBiZXRhO1xyXG5cdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gYmV0YTtcclxuXHJcblx0XHRcdGlmICggbiA8PSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzXHJcblx0XHRcdFx0Ly8gY29uc29sZS53YXJuKCdjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzJyk7XHJcblxyXG5cdFx0XHRcdGlmICggbiA9PSAyICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcyIGNvbm5lY3RpbmcgZWRnZXMnLCBjb25uZWN0aW5nRWRnZXMgKTtcclxuXHRcdFx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDMgLyA0O1xyXG5cdFx0XHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0XHRcdC8vIHNvdXJjZVZlcnRleFdlaWdodCA9IDE7XHJcblx0XHRcdFx0XHQvLyBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdvbmx5IDEgY29ubmVjdGluZyBlZGdlJyApO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDAgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzAgY29ubmVjdGluZyBlZGdlcycgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGV4ID0gb2xkVmVydGV4LmNsb25lKCkubXVsdGlwbHlTY2FsYXIoIHNvdXJjZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBuOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRjb25uZWN0aW5nRWRnZSA9IGNvbm5lY3RpbmdFZGdlc1sgaiBdO1xyXG5cdFx0XHRcdG90aGVyID0gY29ubmVjdGluZ0VkZ2UuYSAhPT0gb2xkVmVydGV4ID8gY29ubmVjdGluZ0VkZ2UuYSA6IGNvbm5lY3RpbmdFZGdlLmI7XHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggY29ubmVjdGluZ1ZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXguYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRpY2VzLnB1c2goIG5ld1NvdXJjZVZlcnRleCApO1xyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDMuXHJcblx0XHQgKlx0R2VuZXJhdGUgRmFjZXMgYmV0d2VlbiBzb3VyY2UgdmVydGljZXNcclxuXHRcdCAqXHRhbmQgZWRnZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdWZXJ0aWNlcyA9IG5ld1NvdXJjZVZlcnRpY2VzLmNvbmNhdCggbmV3RWRnZVZlcnRpY2VzICk7XHJcblx0XHR2YXIgc2wgPSBuZXdTb3VyY2VWZXJ0aWNlcy5sZW5ndGgsIGVkZ2UxLCBlZGdlMiwgZWRnZTM7XHJcblx0XHRuZXdGYWNlcyA9IFtdO1xyXG5cclxuXHRcdHZhciB1diwgeDAsIHgxLCB4MjtcclxuXHRcdHZhciB4MyA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDQgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg1ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRGYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBvbGRGYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCB0aGUgMyBuZXcgZWRnZXMgdmVydGV4IG9mIGVhY2ggb2xkIGZhY2VcclxuXHJcblx0XHRcdGVkZ2UxID0gZ2V0RWRnZSggZmFjZS5hLCBmYWNlLmIsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMiA9IGdldEVkZ2UoIGZhY2UuYiwgZmFjZS5jLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTMgPSBnZXRFZGdlKCBmYWNlLmMsIGZhY2UuYSwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBmYWNlcy5cclxuXHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBlZGdlMSwgZWRnZTIsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmEsIGVkZ2UxLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5iLCBlZGdlMiwgZWRnZTEgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYywgZWRnZTMsIGVkZ2UyICk7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBuZXcgdXYnc1xyXG5cclxuXHRcdFx0aWYgKCBoYXNVdnMgKSB7XHJcblxyXG5cdFx0XHRcdHV2ID0gb2xkVXZzWyBpIF07XHJcblxyXG5cdFx0XHRcdHgwID0gdXZbIDAgXTtcclxuXHRcdFx0XHR4MSA9IHV2WyAxIF07XHJcblx0XHRcdFx0eDIgPSB1dlsgMiBdO1xyXG5cclxuXHRcdFx0XHR4My5zZXQoIG1pZHBvaW50KCB4MC54LCB4MS54ICksIG1pZHBvaW50KCB4MC55LCB4MS55ICkgKTtcclxuXHRcdFx0XHR4NC5zZXQoIG1pZHBvaW50KCB4MS54LCB4Mi54ICksIG1pZHBvaW50KCB4MS55LCB4Mi55ICkgKTtcclxuXHRcdFx0XHR4NS5zZXQoIG1pZHBvaW50KCB4MC54LCB4Mi54ICksIG1pZHBvaW50KCB4MC55LCB4Mi55ICkgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDMsIHg0LCB4NSApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgwLCB4MywgeDUgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDEsIHg0LCB4MyApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgyLCB4NSwgeDQgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3ZlcndyaXRlIG9sZCBhcnJheXNcclxuXHRcdGdlb21ldHJ5LnZlcnRpY2VzID0gbmV3VmVydGljZXM7XHJcblx0XHRnZW9tZXRyeS5mYWNlcyA9IG5ld0ZhY2VzO1xyXG5cdFx0aWYgKCBoYXNVdnMgKSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF0gPSBuZXdVVnM7XHJcblxyXG5cdFx0Ly8gY29uc29sZS5sb2coJ2RvbmUnKTtcclxuXHJcblx0fTtcclxuXHJcbn0gKSgpO1xyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgQmFzZS5jYWxsKHRoaXMpXG5cbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIHRoZXNlIGFzIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgc3Vic2VxdWVudFxuICAvLyBjYWxscyB0byB1cGRhdGUoKVxuICB0aGlzLl9vcHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX29wdCwgb3B0KVxuXG4gIGlmICghb3B0LmZvbnQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgYSB7IGZvbnQgfSBpbiBvcHRpb25zJylcbiAgfVxuXG4gIHRoaXMubGF5b3V0ID0gY3JlYXRlTGF5b3V0KG9wdClcblxuICAvLyBnZXQgdmVjMiB0ZXhjb29yZHNcbiAgdmFyIGZsaXBZID0gb3B0LmZsaXBZICE9PSBmYWxzZVxuXG4gIC8vIHRoZSBkZXNpcmVkIEJNRm9udCBkYXRhXG4gIHZhciBmb250ID0gb3B0LmZvbnRcblxuICAvLyBkZXRlcm1pbmUgdGV4dHVyZSBzaXplIGZyb20gZm9udCBmaWxlXG4gIHZhciB0ZXhXaWR0aCA9IGZvbnQuY29tbW9uLnNjYWxlV1xuICB2YXIgdGV4SGVpZ2h0ID0gZm9udC5jb21tb24uc2NhbGVIXG5cbiAgLy8gZ2V0IHZpc2libGUgZ2x5cGhzXG4gIHZhciBnbHlwaHMgPSB0aGlzLmxheW91dC5nbHlwaHMuZmlsdGVyKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgcmV0dXJuIGJpdG1hcC53aWR0aCAqIGJpdG1hcC5oZWlnaHQgPiAwXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB2aXNpYmxlIGdseXBocyBmb3IgY29udmVuaWVuY2VcbiAgdGhpcy52aXNpYmxlR2x5cGhzID0gZ2x5cGhzXG5cbiAgLy8gZ2V0IGNvbW1vbiB2ZXJ0ZXggZGF0YVxuICB2YXIgcG9zaXRpb25zID0gdmVydGljZXMucG9zaXRpb25zKGdseXBocylcbiAgdmFyIHV2cyA9IHZlcnRpY2VzLnV2cyhnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKVxuICB2YXIgaW5kaWNlcyA9IGNyZWF0ZUluZGljZXMoW10sIHtcbiAgICBjbG9ja3dpc2U6IHRydWUsXG4gICAgdHlwZTogJ3VpbnQxNicsXG4gICAgY291bnQ6IGdseXBocy5sZW5ndGhcbiAgfSlcblxuICAvLyB1cGRhdGUgdmVydGV4IGRhdGFcbiAgdGhpcy5zZXRJbmRleChpbmRpY2VzKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9ucywgMikpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSlcblxuICAvLyB1cGRhdGUgbXVsdGlwYWdlIGRhdGFcbiAgaWYgKCFvcHQubXVsdGlwYWdlICYmICdwYWdlJyBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAvLyBkaXNhYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGFnZScpXG4gIH0gZWxzZSBpZiAob3B0Lm11bHRpcGFnZSkge1xuICAgIC8vIGVuYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdmFyIHBhZ2VzID0gdmVydGljZXMucGFnZXMoZ2x5cGhzKVxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwYWdlJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwYWdlcywgMSkpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdTcGhlcmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nU3BoZXJlID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZSA9IG5ldyBUSFJFRS5TcGhlcmUoKVxuICB9XG5cbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMgPSAwXG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXIuc2V0KDAsIDAsIDApXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZVNwaGVyZShwb3NpdGlvbnMsIHRoaXMuYm91bmRpbmdTcGhlcmUpXG4gIGlmIChpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogJyArXG4gICAgICAnQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICcgK1xuICAgICAgJ1wicG9zaXRpb25cIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ0JveCA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpXG4gIH1cblxuICB2YXIgYmJveCA9IHRoaXMuYm91bmRpbmdCb3hcbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgYmJveC5tYWtlRW1wdHkoKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVCb3gocG9zaXRpb25zLCBiYm94KVxufVxuIiwidmFyIGl0ZW1TaXplID0gMlxudmFyIGJveCA9IHsgbWluOiBbMCwgMF0sIG1heDogWzAsIDBdIH1cblxuZnVuY3Rpb24gYm91bmRzIChwb3NpdGlvbnMpIHtcbiAgdmFyIGNvdW50ID0gcG9zaXRpb25zLmxlbmd0aCAvIGl0ZW1TaXplXG4gIGJveC5taW5bMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1pblsxXSA9IHBvc2l0aW9uc1sxXVxuICBib3gubWF4WzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5tYXhbMV0gPSBwb3NpdGlvbnNbMV1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICB2YXIgeCA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAwXVxuICAgIHZhciB5ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDFdXG4gICAgYm94Lm1pblswXSA9IE1hdGgubWluKHgsIGJveC5taW5bMF0pXG4gICAgYm94Lm1pblsxXSA9IE1hdGgubWluKHksIGJveC5taW5bMV0pXG4gICAgYm94Lm1heFswXSA9IE1hdGgubWF4KHgsIGJveC5tYXhbMF0pXG4gICAgYm94Lm1heFsxXSA9IE1hdGgubWF4KHksIGJveC5tYXhbMV0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZUJveCA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICBvdXRwdXQubWluLnNldChib3gubWluWzBdLCBib3gubWluWzFdLCAwKVxuICBvdXRwdXQubWF4LnNldChib3gubWF4WzBdLCBib3gubWF4WzFdLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlU3BoZXJlID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIHZhciBtaW5YID0gYm94Lm1pblswXVxuICB2YXIgbWluWSA9IGJveC5taW5bMV1cbiAgdmFyIG1heFggPSBib3gubWF4WzBdXG4gIHZhciBtYXhZID0gYm94Lm1heFsxXVxuICB2YXIgd2lkdGggPSBtYXhYIC0gbWluWFxuICB2YXIgaGVpZ2h0ID0gbWF4WSAtIG1pbllcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KVxuICBvdXRwdXQuY2VudGVyLnNldChtaW5YICsgd2lkdGggLyAyLCBtaW5ZICsgaGVpZ2h0IC8gMiwgMClcbiAgb3V0cHV0LnJhZGl1cyA9IGxlbmd0aCAvIDJcbn1cbiIsIm1vZHVsZS5leHBvcnRzLnBhZ2VzID0gZnVuY3Rpb24gcGFnZXMgKGdseXBocykge1xuICB2YXIgcGFnZXMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMSlcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBpZCA9IGdseXBoLmRhdGEucGFnZSB8fCAwXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gIH0pXG4gIHJldHVybiBwYWdlc1xufVxuXG5tb2R1bGUuZXhwb3J0cy51dnMgPSBmdW5jdGlvbiB1dnMgKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpIHtcbiAgdmFyIHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICB2YXIgYncgPSAoYml0bWFwLnggKyBiaXRtYXAud2lkdGgpXG4gICAgdmFyIGJoID0gKGJpdG1hcC55ICsgYml0bWFwLmhlaWdodClcblxuICAgIC8vIHRvcCBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHUwID0gYml0bWFwLnggLyB0ZXhXaWR0aFxuICAgIHZhciB2MSA9IGJpdG1hcC55IC8gdGV4SGVpZ2h0XG4gICAgdmFyIHUxID0gYncgLyB0ZXhXaWR0aFxuICAgIHZhciB2MCA9IGJoIC8gdGV4SGVpZ2h0XG5cbiAgICBpZiAoZmxpcFkpIHtcbiAgICAgIHYxID0gKHRleEhlaWdodCAtIGJpdG1hcC55KSAvIHRleEhlaWdodFxuICAgICAgdjAgPSAodGV4SGVpZ2h0IC0gYmgpIC8gdGV4SGVpZ2h0XG4gICAgfVxuXG4gICAgLy8gQkxcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MVxuICAgIC8vIFRMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBUUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gQlJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MVxuICB9KVxuICByZXR1cm4gdXZzXG59XG5cbm1vZHVsZS5leHBvcnRzLnBvc2l0aW9ucyA9IGZ1bmN0aW9uIHBvc2l0aW9ucyAoZ2x5cGhzKSB7XG4gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG5cbiAgICAvLyBib3R0b20gbGVmdCBwb3NpdGlvblxuICAgIHZhciB4ID0gZ2x5cGgucG9zaXRpb25bMF0gKyBiaXRtYXAueG9mZnNldFxuICAgIHZhciB5ID0gZ2x5cGgucG9zaXRpb25bMV0gKyBiaXRtYXAueW9mZnNldFxuXG4gICAgLy8gcXVhZCBzaXplXG4gICAgdmFyIHcgPSBiaXRtYXAud2lkdGhcbiAgICB2YXIgaCA9IGJpdG1hcC5oZWlnaHRcblxuICAgIC8vIEJMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gICAgLy8gVExcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gVFJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIEJSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICB9KVxuICByZXR1cm4gcG9zaXRpb25zXG59XG4iLCJ2YXIgbmV3bGluZSA9IC9cXG4vXG52YXIgbmV3bGluZUNoYXIgPSAnXFxuJ1xudmFyIHdoaXRlc3BhY2UgPSAvXFxzL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHRleHQsIG9wdCkge1xuICAgIHZhciBsaW5lcyA9IG1vZHVsZS5leHBvcnRzLmxpbmVzKHRleHQsIG9wdClcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKGxpbmUuc3RhcnQsIGxpbmUuZW5kKVxuICAgIH0pLmpvaW4oJ1xcbicpXG59XG5cbm1vZHVsZS5leHBvcnRzLmxpbmVzID0gZnVuY3Rpb24gd29yZHdyYXAodGV4dCwgb3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgLy96ZXJvIHdpZHRoIHJlc3VsdHMgaW4gbm90aGluZyB2aXNpYmxlXG4gICAgaWYgKG9wdC53aWR0aCA9PT0gMCAmJiBvcHQubW9kZSAhPT0gJ25vd3JhcCcpIFxuICAgICAgICByZXR1cm4gW11cblxuICAgIHRleHQgPSB0ZXh0fHwnJ1xuICAgIHZhciB3aWR0aCA9IHR5cGVvZiBvcHQud2lkdGggPT09ICdudW1iZXInID8gb3B0LndpZHRoIDogTnVtYmVyLk1BWF9WQUxVRVxuICAgIHZhciBzdGFydCA9IE1hdGgubWF4KDAsIG9wdC5zdGFydHx8MClcbiAgICB2YXIgZW5kID0gdHlwZW9mIG9wdC5lbmQgPT09ICdudW1iZXInID8gb3B0LmVuZCA6IHRleHQubGVuZ3RoXG4gICAgdmFyIG1vZGUgPSBvcHQubW9kZVxuXG4gICAgdmFyIG1lYXN1cmUgPSBvcHQubWVhc3VyZSB8fCBtb25vc3BhY2VcbiAgICBpZiAobW9kZSA9PT0gJ3ByZScpXG4gICAgICAgIHJldHVybiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpXG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKVxufVxuXG5mdW5jdGlvbiBpZHhPZih0ZXh0LCBjaHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKGNociwgc3RhcnQpXG4gICAgaWYgKGlkeCA9PT0gLTEgfHwgaWR4ID4gZW5kKVxuICAgICAgICByZXR1cm4gZW5kXG4gICAgcmV0dXJuIGlkeFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hyKSB7XG4gICAgcmV0dXJuIHdoaXRlc3BhY2UudGVzdChjaHIpXG59XG5cbmZ1bmN0aW9uIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBsaW5lcyA9IFtdXG4gICAgdmFyIGxpbmVTdGFydCA9IHN0YXJ0XG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQgJiYgaTx0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaHIgPSB0ZXh0LmNoYXJBdChpKVxuICAgICAgICB2YXIgaXNOZXdsaW5lID0gbmV3bGluZS50ZXN0KGNocilcblxuICAgICAgICAvL0lmIHdlJ3ZlIHJlYWNoZWQgYSBuZXdsaW5lLCB0aGVuIHN0ZXAgZG93biBhIGxpbmVcbiAgICAgICAgLy9PciBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBFT0ZcbiAgICAgICAgaWYgKGlzTmV3bGluZSB8fCBpPT09ZW5kLTEpIHtcbiAgICAgICAgICAgIHZhciBsaW5lRW5kID0gaXNOZXdsaW5lID8gaSA6IGkrMVxuICAgICAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBsaW5lU3RhcnQsIGxpbmVFbmQsIHdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChtZWFzdXJlZClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGluZVN0YXJ0ID0gaSsxXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSkge1xuICAgIC8vQSBncmVlZHkgd29yZCB3cmFwcGVyIGJhc2VkIG9uIExpYkdEWCBhbGdvcml0aG1cbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9saWJnZHgvbGliZ2R4L2Jsb2IvbWFzdGVyL2dkeC9zcmMvY29tL2JhZGxvZ2ljL2dkeC9ncmFwaGljcy9nMmQvQml0bWFwRm9udENhY2hlLmphdmFcbiAgICB2YXIgbGluZXMgPSBbXVxuXG4gICAgdmFyIHRlc3RXaWR0aCA9IHdpZHRoXG4gICAgLy9pZiAnbm93cmFwJyBpcyBzcGVjaWZpZWQsIHdlIG9ubHkgd3JhcCBvbiBuZXdsaW5lIGNoYXJzXG4gICAgaWYgKG1vZGUgPT09ICdub3dyYXAnKVxuICAgICAgICB0ZXN0V2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFXG5cbiAgICB3aGlsZSAoc3RhcnQgPCBlbmQgJiYgc3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAvL2dldCBuZXh0IG5ld2xpbmUgcG9zaXRpb25cbiAgICAgICAgdmFyIG5ld0xpbmUgPSBpZHhPZih0ZXh0LCBuZXdsaW5lQ2hhciwgc3RhcnQsIGVuZClcblxuICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IHN0YXJ0IG9mIGxpbmVcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbmV3TGluZSkge1xuICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UoIHRleHQuY2hhckF0KHN0YXJ0KSApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBzdGFydCsrXG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSB2aXNpYmxlICMgb2YgZ2x5cGhzIGZvciB0aGUgYXZhaWxhYmxlIHdpZHRoXG4gICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIG5ld0xpbmUsIHRlc3RXaWR0aClcblxuICAgICAgICB2YXIgbGluZUVuZCA9IHN0YXJ0ICsgKG1lYXN1cmVkLmVuZC1tZWFzdXJlZC5zdGFydClcbiAgICAgICAgdmFyIG5leHRTdGFydCA9IGxpbmVFbmQgKyBuZXdsaW5lQ2hhci5sZW5ndGhcblxuICAgICAgICAvL2lmIHdlIGhhZCB0byBjdXQgdGhlIGxpbmUgYmVmb3JlIHRoZSBuZXh0IG5ld2xpbmUuLi5cbiAgICAgICAgaWYgKGxpbmVFbmQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICAvL2ZpbmQgY2hhciB0byBicmVhayBvblxuICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmVFbmQgPT09IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGFydCA+IHN0YXJ0ICsgbmV3bGluZUNoYXIubGVuZ3RoKSBuZXh0U3RhcnQtLVxuICAgICAgICAgICAgICAgIGxpbmVFbmQgPSBuZXh0U3RhcnQgLy8gSWYgbm8gY2hhcmFjdGVycyB0byBicmVhaywgc2hvdyBhbGwuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IGxpbmVFbmRcbiAgICAgICAgICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kIC0gbmV3bGluZUNoYXIubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVFbmQgPj0gc3RhcnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBsaW5lRW5kLCB0ZXN0V2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IG5leHRTdGFydFxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuLy9kZXRlcm1pbmVzIHRoZSB2aXNpYmxlIG51bWJlciBvZiBnbHlwaHMgd2l0aGluIGEgZ2l2ZW4gd2lkdGhcbmZ1bmN0aW9uIG1vbm9zcGFjZSh0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBnbHlwaHMgPSBNYXRoLm1pbih3aWR0aCwgZW5kLXN0YXJ0KVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgZW5kOiBzdGFydCtnbHlwaHNcbiAgICB9XG59IiwibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxPQUFPLFdBQ1Q7O0FBRU4sTUFBTSxlQUFlLFFBQVEsR0FBUixHQUFjLE9BQU8sWUFBMUM7QUFDQSxNQUFNLGdCQUFnQixTQUFTLE9BQU8sWUFBdEM7QUFDQSxNQUFNLGVBQWUsT0FBTyxZQUE1Qjs7QUFFQSxNQUFNLFFBQVEsSUFBSSxNQUFNLEtBQVYsRUFBZDtBQUNBLFFBQU0sT0FBTixHQUFnQixRQUFoQjtBQUNBLFFBQU0sUUFBTixHQUFpQjtBQUFBLGlCQUFVLE1BQU0sT0FBaEIsVUFBNEIsWUFBNUI7QUFBQSxHQUFqQjs7QUFFQSxNQUFNLFFBQVEsT0FBTyxXQUFQLENBQW9CLEtBQXBCLEVBQTJCLE1BQTNCLEVBQW1DLEtBQW5DLENBQWQ7QUFDQSxRQUFNLEdBQU4sQ0FBVyxLQUFYOztBQUVBO0FBQ0EsTUFBTSxZQUFZLENBQWxCO0FBQ0EsTUFBTSxjQUFjLGVBQWUsYUFBbkM7QUFDQSxNQUFNLE9BQU8sSUFBSSxNQUFNLFdBQVYsQ0FBdUIsWUFBdkIsRUFBcUMsYUFBckMsRUFBb0QsWUFBcEQsRUFBa0UsS0FBSyxLQUFMLENBQVksWUFBWSxXQUF4QixDQUFsRSxFQUF5RyxTQUF6RyxFQUFvSCxTQUFwSCxDQUFiO0FBQ0EsTUFBTSxXQUFXLElBQUksTUFBTSxtQkFBVixDQUErQixDQUEvQixDQUFqQjtBQUNBLFdBQVMsTUFBVCxDQUFpQixJQUFqQjtBQUNBLE9BQUssU0FBTCxDQUFnQixlQUFlLEdBQS9CLEVBQW9DLENBQXBDLEVBQXVDLENBQXZDOztBQUVBO0FBQ0EsTUFBTSxrQkFBa0IsSUFBSSxNQUFNLGlCQUFWLEVBQXhCO0FBQ0Esa0JBQWdCLE9BQWhCLEdBQTBCLEtBQTFCOztBQUVBLE1BQU0sZ0JBQWdCLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixlQUE5QixDQUF0QjtBQUNBLGdCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsZUFBZSxHQUExQztBQUNBLGdCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsUUFBUSxHQUFuQzs7QUFFQSxNQUFNLFdBQVcsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUUsT0FBTyxPQUFPLFlBQWhCLEVBQTVCLENBQWpCO0FBQ0EsTUFBTSxlQUFlLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixRQUE5QixDQUFyQjtBQUNBLGdCQUFjLEdBQWQsQ0FBbUIsWUFBbkI7O0FBR0EsTUFBTSxjQUFjLFlBQVksTUFBWixDQUFvQixZQUFwQixFQUFrQyxFQUFFLE9BQU8sS0FBVCxFQUFsQyxDQUFwQjs7QUFFQTtBQUNBO0FBQ0EsY0FBWSxRQUFaLENBQXFCLENBQXJCLEdBQXlCLGVBQWUsR0FBZixHQUFxQixZQUFZLE1BQVosQ0FBbUIsS0FBbkIsR0FBMkIsUUFBM0IsR0FBc0MsR0FBcEY7QUFDQSxjQUFZLFFBQVosQ0FBcUIsQ0FBckIsR0FBeUIsZUFBZSxHQUF4QztBQUNBLGNBQVksUUFBWixDQUFxQixDQUFyQixHQUF5QixDQUFDLEtBQTFCO0FBQ0EsZUFBYSxHQUFiLENBQWtCLFdBQWxCOztBQUdBLE1BQU0sa0JBQWtCLFlBQVksTUFBWixDQUFvQixZQUFwQixDQUF4QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixPQUFPLHVCQUFwQztBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixLQUE3QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixDQUFDLElBQTlCOztBQUVBLE1BQU0sZUFBZSxPQUFPLHFCQUFQLENBQThCLE1BQTlCLEVBQXNDLE9BQU8sb0JBQTdDLENBQXJCO0FBQ0EsZUFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLEtBQTFCOztBQUVBLFFBQU0sR0FBTixDQUFXLGVBQVgsRUFBNEIsYUFBNUIsRUFBMkMsWUFBM0M7O0FBRUEsTUFBTSxjQUFjLDJCQUFtQixhQUFuQixDQUFwQjtBQUNBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxhQUFwQztBQUNBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixZQUF2QixFQUFxQyxlQUFyQzs7QUFFQTs7QUFFQSxXQUFTLGFBQVQsQ0FBd0IsQ0FBeEIsRUFBMkI7QUFDekIsUUFBSSxNQUFNLE9BQU4sS0FBa0IsS0FBdEIsRUFBNkI7QUFDM0I7QUFDRDs7QUFFRCxXQUFRLFlBQVI7O0FBRUEsa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixlQUFlLEdBQTFDOztBQUVBLE1BQUUsTUFBRixHQUFXLElBQVg7QUFDRDs7QUFFRCxXQUFTLGVBQVQsR0FBMEI7QUFDeEIsa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixlQUFlLEdBQTFDO0FBQ0Q7O0FBRUQsV0FBUyxVQUFULEdBQXFCOztBQUVuQixRQUFJLFlBQVksUUFBWixFQUFKLEVBQTRCO0FBQzFCLGVBQVMsS0FBVCxDQUFlLE1BQWYsQ0FBdUIsT0FBTyxzQkFBOUI7QUFDRCxLQUZELE1BR0k7QUFDRixlQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8sWUFBOUI7QUFDRDtBQUVGOztBQUVELFFBQU0sV0FBTixHQUFvQixXQUFwQjtBQUNBLFFBQU0sT0FBTixHQUFnQixDQUFFLGFBQUYsRUFBaUIsS0FBakIsQ0FBaEI7O0FBRUEsTUFBTSxrQkFBa0IsS0FBSyxNQUFMLENBQWEsRUFBRSxZQUFGLEVBQVMsWUFBVCxFQUFiLENBQXhCOztBQUVBLFFBQU0sYUFBTixHQUFzQixVQUFVLFlBQVYsRUFBd0I7QUFDNUMsZ0JBQVksTUFBWixDQUFvQixZQUFwQjtBQUNBLG9CQUFnQixNQUFoQixDQUF3QixZQUF4QjtBQUNBO0FBQ0QsR0FKRDs7QUFNQSxRQUFNLElBQU4sR0FBYSxVQUFVLEdBQVYsRUFBZTtBQUMxQixvQkFBZ0IsV0FBaEIsQ0FBNkIsR0FBN0I7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEO0FBSUEsUUFBTSxXQUFOLEdBQW9CLFVBQVUsR0FBVixFQUFlO0FBQ2pDLGdCQUFZLFdBQVosQ0FBeUIsR0FBekI7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEOztBQUtBLFNBQU8sS0FBUDtBQUNELEMsQ0EvSUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JDNEJ3QixjOztBQVR4Qjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLE87O0FBQ1o7O0lBQVksZTs7QUFDWjs7SUFBWSxJOzs7Ozs7QUF6Qlo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QmUsU0FBUyxjQUFULEdBUVA7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFQTixXQU9NLFFBUE4sV0FPTTtBQUFBLE1BTk4sTUFNTSxRQU5OLE1BTU07QUFBQSwrQkFMTixZQUtNO0FBQUEsTUFMTixZQUtNLHFDQUxTLFdBS1Q7QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLEtBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxPQUFPLFdBQ1Q7O0FBRU4sTUFBTSxRQUFRO0FBQ1osV0FBTyxZQURLO0FBRVosWUFBUTtBQUZJLEdBQWQ7O0FBS0EsTUFBTSxlQUFlLE9BQU8sWUFBUCxHQUFzQixPQUFPLGFBQWxEOztBQUVBLE1BQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLFVBQWhCO0FBQ0EsUUFBTSxRQUFOLEdBQWlCO0FBQUEsaUJBQVUsTUFBTSxPQUFoQixVQUE0QixZQUE1QjtBQUFBLEdBQWpCOztBQUVBLE1BQU0sa0JBQWtCLFlBQVksTUFBWixDQUFvQixZQUFwQixDQUF4QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixPQUFPLHVCQUFwQztBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixLQUE3QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixDQUFDLElBQTlCOztBQUVBLE1BQUksb0JBQUo7QUFDQSxNQUFJLHlCQUFKOztBQUVBLFFBQU0sUUFBTixHQUFpQixVQUFVLFFBQVYsRUFBb0I7QUFDbkMsa0JBQWMsUUFBZDtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBS0EsUUFBTSxNQUFOLEdBQWUsWUFBVTtBQUN2QixVQUFNLE1BQU4sR0FBZSxJQUFmO0FBQ0EsV0FBTyxLQUFQO0FBQ0QsR0FIRDs7QUFLQSxRQUFNLElBQU4sR0FBYSxVQUFVLEdBQVYsRUFBZTtBQUMxQixvQkFBZ0IsV0FBaEIsQ0FBNkIsR0FBN0I7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEOztBQUtBLE1BQUksa0JBQUo7QUFBQSxNQUFlLGtCQUFmO0FBQUEsTUFBMEIsb0JBQTFCOztBQUVBLFdBQVMsYUFBVCxDQUF3QixDQUF4QixFQUEyQjtBQUN6QixRQUFJLE1BQU0sT0FBTixLQUFrQixLQUF0QixFQUE2QjtBQUMzQjtBQUNEOztBQUVELFVBQU0sS0FBTixHQUFjLENBQUMsTUFBTSxLQUFyQjs7QUFFQSxXQUFRLFlBQVIsSUFBeUIsTUFBTSxLQUEvQjs7QUFFQSxRQUFJLFdBQUosRUFBaUI7QUFDZixrQkFBYSxNQUFNLEtBQW5CO0FBQ0Q7O0FBRUQsTUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNEOztBQUVELFdBQVMsVUFBVCxHQUFxQjtBQUNuQixjQUFVLE9BQVYsR0FBb0IsTUFBTSxLQUExQjtBQUNBLGNBQVUsT0FBVixHQUFvQixZQUFZLFFBQVosRUFBcEI7QUFDQSxRQUFJLE9BQUosRUFBYTtBQUNYLGNBQVEsU0FBUixDQUFrQixPQUFsQixHQUE0QixNQUFNLEtBQWxDO0FBQ0EsY0FBUSxTQUFSLENBQWtCLE9BQWxCLEdBQTRCLFFBQVEsV0FBUixDQUFvQixRQUFwQixFQUE1QjtBQUNEO0FBQ0Y7O0FBR0QsTUFBSSx3QkFBd0IsS0FBNUI7QUFDQSxRQUFNLGtCQUFOLEdBQTJCLFlBQWdCO0FBQUEsUUFBZixLQUFlLHVFQUFULElBQVM7O0FBQ3pDLFFBQUksVUFBVSxxQkFBZCxFQUFxQztBQUNuQyw4QkFBd0IsS0FBeEI7QUFDQTtBQUNBO0FBQ0EsZ0JBQVUsdUJBQVY7QUFDQSxVQUFJLEtBQUosRUFBVyxNQUFNLE1BQU4sQ0FBYSxhQUFiLENBQTJCLE9BQTNCLEVBQVgsS0FDSyxRQUFRLE9BQVIsR0FBa0IsS0FBbEI7QUFDTjtBQUNELFdBQU8sS0FBUDtBQUNELEdBVkQ7QUFXQSxTQUFPLGNBQVAsQ0FBc0IsS0FBdEIsRUFBNkIsdUJBQTdCLEVBQXNEO0FBQ3BELFNBQUssZUFBTTtBQUFFLGFBQU8scUJBQVA7QUFBOEIsS0FEUztBQUVwRCxTQUFLLE1BQU07QUFGeUMsR0FBdEQ7QUFJQSxNQUFJLGdCQUFKO0FBQ0EsV0FBUyxxQkFBVCxHQUFpQztBQUMvQixRQUFJLE9BQUosRUFBYSxPQUFPLE9BQVA7QUFDYixRQUFJLE9BQU8sT0FBTyxZQUFQLEdBQXNCLEdBQWpDO0FBQ0EsUUFBTSxPQUFPLElBQUksTUFBTSxXQUFWLENBQXNCLElBQXRCLEVBQTRCLElBQTVCLEVBQWtDLEtBQWxDLENBQWI7QUFDQSxTQUFLLFNBQUwsQ0FBZSxPQUFLLEdBQXBCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCO0FBQ0EsUUFBTSxrQkFBa0IsSUFBSSxNQUFNLGlCQUFWLEVBQXhCO0FBQ0Esb0JBQWdCLE9BQWhCLEdBQTBCLElBQTFCO0FBQ0EsUUFBTSxnQkFBZ0IsSUFBSSxNQUFNLElBQVYsQ0FBZSxLQUFLLEtBQUwsRUFBZixFQUE2QixlQUE3QixDQUF0QjtBQUNBLGNBQVUsYUFBVixDQVIrQixDQVFOO0FBQ3pCO0FBQ0Esa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixLQUEzQjs7QUFFQTtBQUNBLFFBQU0sWUFBWSxPQUFPLFdBQVAsQ0FBbUIsT0FBTyxPQUFPLGdCQUFqQyxFQUFtRCxPQUFPLE9BQU8sZ0JBQWpFLEVBQW1GLEtBQW5GLEVBQTBGLElBQTFGLENBQWxCO0FBQ0EsWUFBUSxTQUFSLEdBQW9CLFNBQXBCO0FBQ0EsY0FBVSxRQUFWLENBQW1CLEtBQW5CLENBQXlCLE1BQXpCLENBQWlDLFFBQWpDO0FBQ0EsY0FBVSxRQUFWLENBQW1CLENBQW5CLEdBQXVCLENBQUMsT0FBTyxnQkFBUixHQUEyQixHQUEzQixHQUFpQyxRQUFRLEdBQWhFO0FBQ0EsY0FBVSxRQUFWLENBQW1CLENBQW5CLEdBQXVCLFFBQVEsR0FBL0I7O0FBRUEsUUFBTSxZQUFZLFFBQVEsU0FBUixDQUFrQixNQUFNLElBQU4sR0FBYSxPQUFPLGFBQXRDLENBQWxCO0FBQ0EsWUFBUSxTQUFSLEdBQW9CLFNBQXBCO0FBQ0EsY0FBVSxPQUFWLEdBQW9CLE1BQU0sS0FBMUI7QUFDQSxjQUFVLFFBQVYsQ0FBbUIsQ0FBbkIsR0FBdUIsUUFBUSxJQUEvQjtBQUNBLGtCQUFjLEdBQWQsQ0FBa0IsU0FBbEI7O0FBRUEsUUFBTSxjQUFjLDJCQUFrQixhQUFsQixDQUFwQjtBQUNBLGdCQUFZLE1BQVosQ0FBbUIsRUFBbkIsQ0FBc0IsV0FBdEIsRUFBbUMsaUJBQW5DO0FBQ0EsWUFBUSxXQUFSLEdBQXNCLFdBQXRCOztBQUVBO0FBQ0EsWUFBUSxhQUFSLEdBQXdCLHdCQUFnQjtBQUN0QyxVQUFJLE1BQU0sTUFBVixFQUFrQjtBQUNoQixjQUFNLEtBQU4sR0FBYyxPQUFPLFlBQVAsQ0FBZDtBQUNEO0FBQ0Q7QUFDQTtBQUNBLGtCQUFZLE1BQVosQ0FBbUIsWUFBbkI7QUFDQTtBQUNELEtBUkQ7O0FBVUEsV0FBTyxPQUFQO0FBQ0Q7O0FBRUQ7QUFDQSxXQUFTLGlCQUFULENBQTJCLENBQTNCLEVBQTZCO0FBQzNCLFFBQUksTUFBTSxNQUFOLENBQWEsT0FBYixLQUF5QixLQUF6QixJQUFrQyxRQUFRLE9BQVIsS0FBb0IsS0FBMUQsRUFBaUU7QUFDakUsVUFBTSxLQUFOLEdBQWMsQ0FBQyxNQUFNLEtBQXJCO0FBQ0EsV0FBTyxZQUFQLElBQXVCLE1BQU0sS0FBN0I7QUFDQSxRQUFJLFdBQUosRUFBaUIsWUFBWSxNQUFNLEtBQWxCO0FBQ2pCLE1BQUUsTUFBRixHQUFXLElBQVg7O0FBRUE7QUFDQSxZQUFRLFNBQVIsQ0FBa0IsT0FBbEIsR0FBNEIsTUFBTSxLQUFsQztBQUNEOztBQUVELE1BQUksY0FBSjtBQUNBO0FBQ0E7QUFDQSxRQUFNLFNBQU4sR0FBa0IscUJBQWE7QUFDN0IsUUFBSSxLQUFKLEVBQVcsTUFBTSxNQUFOLENBQWEsS0FBYjs7QUFFWCxVQUFNLE9BQU4sR0FBZ0IsU0FBaEI7O0FBRUEsUUFBTSxpQkFBaUIsWUFBWSxZQUFuQztBQUNBLFFBQU0sa0JBQWtCLGNBQXhCO0FBQ0EsUUFBTSxpQkFBaUIsS0FBdkI7QUFDQSxRQUFNLGlCQUFpQixNQUFNLGNBQU4sR0FBdUIsT0FBTyxhQUFyRDs7QUFFQSxZQUFRLE9BQU8sV0FBUCxDQUFvQixLQUFwQixFQUEyQixTQUEzQixFQUFzQyxLQUF0QyxDQUFSO0FBQ0EsVUFBTSxHQUFOLENBQVcsS0FBWDs7QUFFQTtBQUNBLFFBQU0sT0FBTyxJQUFJLE1BQU0sV0FBVixDQUF1QixjQUF2QixFQUF1QyxlQUF2QyxFQUF3RCxjQUF4RCxDQUFiO0FBQ0EsU0FBSyxTQUFMLENBQWdCLGlCQUFpQixHQUFqQyxFQUFzQyxDQUF0QyxFQUF5QyxDQUF6Qzs7QUFHQTtBQUNBLFFBQU0sa0JBQWtCLElBQUksTUFBTSxpQkFBVixFQUF4QjtBQUNBLG9CQUFnQixPQUFoQixHQUEwQixLQUExQjs7QUFFQSxRQUFNLGdCQUFnQixJQUFJLE1BQU0sSUFBVixDQUFnQixLQUFLLEtBQUwsRUFBaEIsRUFBOEIsZUFBOUIsQ0FBdEI7QUFDQSxrQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLEtBQTNCO0FBQ0Esa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixRQUFRLEdBQW5DOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQU0sV0FBVyxJQUFJLE1BQU0saUJBQVYsQ0FBNEIsRUFBRSxPQUFPLE9BQU8saUJBQWhCLEVBQTVCLENBQWpCO0FBQ0EsUUFBTSxlQUFlLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixRQUE5QixDQUFyQjtBQUNBLGtCQUFjLEdBQWQsQ0FBbUIsWUFBbkI7O0FBR0EsUUFBTSxlQUFlLE9BQU8scUJBQVAsQ0FBOEIsU0FBOUIsRUFBeUMsT0FBTyxzQkFBaEQsQ0FBckI7QUFDQSxpQkFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLEtBQTFCOztBQUVBLGdCQUFZLE9BQU8sV0FBUCxDQUFvQixpQkFBaUIsT0FBTyxnQkFBNUMsRUFBOEQsa0JBQWtCLE9BQU8sZ0JBQXZGLEVBQXlHLGNBQXpHLEVBQXlILElBQXpILENBQVo7QUFDQSxjQUFVLFFBQVYsQ0FBbUIsS0FBbkIsQ0FBeUIsTUFBekIsQ0FBaUMsUUFBakM7QUFDQSxjQUFVLFFBQVYsQ0FBbUIsQ0FBbkIsR0FBdUIsQ0FBQyxPQUFPLGdCQUFSLEdBQTJCLEdBQTNCLEdBQWlDLFFBQVEsR0FBaEU7QUFDQSxjQUFVLFFBQVYsQ0FBbUIsQ0FBbkIsR0FBdUIsUUFBUSxHQUEvQjs7QUFFQSxnQkFBWSxRQUFRLFNBQVIsQ0FBbUIsY0FBbkIsQ0FBWjtBQUNBLGNBQVUsUUFBVixDQUFtQixDQUFuQixHQUF1QixRQUFRLElBQS9CO0FBQ0Esa0JBQWMsR0FBZCxDQUFtQixTQUFuQjs7QUFFQSxVQUFNLEdBQU4sQ0FBVyxlQUFYLEVBQTRCLGFBQTVCLEVBQTJDLFlBQTNDLEVBQXlELFNBQXpEOztBQUVBOztBQUVBLGtCQUFjLDJCQUFtQixhQUFuQixDQUFkO0FBQ0EsZ0JBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxhQUFwQzs7QUFFQTs7QUFHQSxVQUFNLFdBQU4sR0FBb0IsV0FBcEI7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsQ0FBRSxhQUFGLEVBQWlCLEtBQWpCLENBQWhCOztBQUVBLFFBQU0sa0JBQWtCLEtBQUssTUFBTCxDQUFhLEVBQUUsWUFBRixFQUFTLFlBQVQsRUFBYixDQUF4Qjs7QUFFQSxVQUFNLGFBQU4sR0FBc0IsVUFBVSxZQUFWLEVBQXdCO0FBQzVDLFVBQUksTUFBTSxNQUFWLEVBQWtCO0FBQ2hCLGNBQU0sS0FBTixHQUFjLE9BQVEsWUFBUixDQUFkO0FBQ0Q7QUFDRCxrQkFBWSxNQUFaLENBQW9CLFlBQXBCO0FBQ0Esc0JBQWdCLE1BQWhCLENBQXdCLFlBQXhCO0FBQ0E7QUFDRCxLQVBEOztBQVNBLFFBQUcsTUFBTSxNQUFULEVBQWlCLE1BQU0sTUFBTixDQUFhLGFBQWI7O0FBRWpCLFdBQU8sS0FBUDtBQUNELEdBM0VEOztBQTZFQSxRQUFNLFNBQU4sQ0FBZ0IsTUFBaEI7O0FBRUEsU0FBTyxLQUFQO0FBQ0Q7Ozs7Ozs7O2tCQ3hIdUIsaUI7O0FBMUh4Qjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRVo7QUFDQTtBQXJCQTs7Ozs7Ozs7Ozs7OztBQXNCQSxJQUFNLGlOQUFOOztBQU9BLElBQU0sbUpBQU47O0FBU0EsSUFBTSxvRUFHSixPQUhJLDRiQUFOOztBQWtCQSxJQUFNLHlFQUdKLE9BSEksMFhBQU47O0FBZ0JBO0FBQ0E7QUFDQTs7Ozs7QUFLQSxTQUFTLFFBQVQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEIsRUFBMkI7QUFDdkIsUUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCLENBQXpCO0FBQ0EsUUFBSSxVQUFVLE1BQVYsS0FBcUIsQ0FBekIsRUFBNEI7QUFDeEI7QUFDQSxZQUFJLEVBQUUsQ0FBRixLQUFRLFNBQVosRUFBdUIsSUFBSSxFQUFFLENBQU4sRUFBUyxJQUFJLEVBQUUsQ0FBZixFQUFrQixJQUFJLEVBQUUsQ0FBeEIsQ0FBdkIsS0FDSyxJQUFJLEVBQUUsQ0FBTixFQUFTLElBQUksRUFBRSxDQUFmLEVBQWtCLElBQUksRUFBRSxDQUF4QjtBQUNSO0FBQ0QsUUFBSSxLQUFLLEtBQUwsQ0FBVyxJQUFJLENBQWYsQ0FBSjtBQUNBLFFBQUksSUFBSSxDQUFKLEdBQVEsQ0FBWjtBQUNBLFFBQUksS0FBSyxJQUFJLENBQVQsQ0FBSjtBQUNBLFFBQUksS0FBSyxJQUFJLElBQUksQ0FBYixDQUFKO0FBQ0EsUUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUwsSUFBVSxDQUFuQixDQUFKO0FBQ0EsWUFBUSxJQUFJLENBQVo7QUFDSSxhQUFLLENBQUw7QUFBUSxnQkFBSSxDQUFKLEVBQU8sSUFBSSxDQUFYLEVBQWMsSUFBSSxDQUFsQixDQUFxQjtBQUM3QixhQUFLLENBQUw7QUFBUSxnQkFBSSxDQUFKLEVBQU8sSUFBSSxDQUFYLEVBQWMsSUFBSSxDQUFsQixDQUFxQjtBQUM3QixhQUFLLENBQUw7QUFBUSxnQkFBSSxDQUFKLEVBQU8sSUFBSSxDQUFYLEVBQWMsSUFBSSxDQUFsQixDQUFxQjtBQUM3QixhQUFLLENBQUw7QUFBUSxnQkFBSSxDQUFKLEVBQU8sSUFBSSxDQUFYLEVBQWMsSUFBSSxDQUFsQixDQUFxQjtBQUM3QixhQUFLLENBQUw7QUFBUSxnQkFBSSxDQUFKLEVBQU8sSUFBSSxDQUFYLEVBQWMsSUFBSSxDQUFsQixDQUFxQjtBQUM3QixhQUFLLENBQUw7QUFBUSxnQkFBSSxDQUFKLEVBQU8sSUFBSSxDQUFYLEVBQWMsSUFBSSxDQUFsQixDQUFxQjtBQU5qQztBQVFBLFdBQU87QUFDSCxXQUFHLENBREE7QUFFSCxXQUFHLENBRkE7QUFHSCxXQUFHO0FBSEEsS0FBUDtBQUtIO0FBQ0Q7Ozs7O0FBS0EsU0FBUyxRQUFULENBQWtCLENBQWxCLEVBQXFCLENBQXJCLEVBQXdCLENBQXhCLEVBQTJCO0FBQ3ZCLFFBQUksVUFBVSxNQUFWLEtBQXFCLENBQXpCLEVBQTRCO0FBQ3hCLFlBQUksRUFBRSxDQUFOLEVBQVMsSUFBSSxFQUFFLENBQWYsRUFBa0IsSUFBSSxFQUFFLENBQXhCO0FBQ0g7QUFDRCxRQUFJLE1BQU0sS0FBSyxHQUFMLENBQVMsQ0FBVCxFQUFZLENBQVosRUFBZSxDQUFmLENBQVY7QUFBQSxRQUE2QixNQUFNLEtBQUssR0FBTCxDQUFTLENBQVQsRUFBWSxDQUFaLEVBQWUsQ0FBZixDQUFuQztBQUFBLFFBQ0ksSUFBSSxNQUFNLEdBRGQ7QUFBQSxRQUVJLENBRko7QUFBQSxRQUdJLElBQUssUUFBUSxDQUFSLEdBQVksQ0FBWixHQUFnQixJQUFJLEdBSDdCO0FBQUEsUUFJSSxJQUFJLEdBSlI7O0FBTUEsWUFBUSxHQUFSO0FBQ0ksYUFBSyxHQUFMO0FBQVUsZ0JBQUksQ0FBSixDQUFPO0FBQ2pCLGFBQUssQ0FBTDtBQUFRLGdCQUFLLElBQUksQ0FBTCxHQUFVLEtBQUssSUFBSSxDQUFKLEdBQVEsQ0FBUixHQUFXLENBQWhCLENBQWQsQ0FBa0MsS0FBSyxJQUFJLENBQVQsQ0FBWTtBQUN0RCxhQUFLLENBQUw7QUFBUSxnQkFBSyxJQUFJLENBQUwsR0FBVSxJQUFJLENBQWxCLENBQXFCLEtBQUssSUFBSSxDQUFULENBQVk7QUFDekMsYUFBSyxDQUFMO0FBQVEsZ0JBQUssSUFBSSxDQUFMLEdBQVUsSUFBSSxDQUFsQixDQUFxQixLQUFLLElBQUksQ0FBVCxDQUFZO0FBSjdDOztBQU9BLFdBQU87QUFDSCxXQUFHLENBREE7QUFFSCxXQUFHLENBRkE7QUFHSCxXQUFHLENBSEE7QUFJSCxXQUFHLENBSkEsRUFJRyxHQUFHLENBSk4sRUFJUyxHQUFHLENBSlosQ0FJYztBQUpkLEtBQVA7QUFNSDs7QUFFYyxTQUFTLGlCQUFULEdBT1A7QUFBQSxtRkFBSixFQUFJO0FBQUEsUUFOSixNQU1JLFFBTkosTUFNSTtBQUFBLFFBTEosWUFLSSxRQUxKLFlBS0k7QUFBQSxRQUpKLFdBSUksUUFKSixXQUlJO0FBQUEsMEJBSEosS0FHSTtBQUFBLFFBSEosS0FHSSw4QkFISSxPQUFPLFdBR1g7QUFBQSwyQkFGSixNQUVJO0FBQUEsUUFGSixNQUVJLCtCQUZLLE9BQU8sWUFFWjtBQUFBLDBCQURKLEtBQ0k7QUFBQSxRQURKLEtBQ0ksOEJBREksT0FBTyxXQUFQLEdBQXFCLEVBQ3pCOztBQUNKO0FBQ0E7QUFDQTtBQUNBLFFBQUksT0FBTyxpQkFBWDtBQUNBLFFBQUksUUFBUSxPQUFPLFlBQVAsQ0FBWixDQUxJLENBSzhCO0FBQ2xDLFFBQU0sSUFBSSxTQUFTLEtBQVQsQ0FBVjtBQUNBLFFBQU0sV0FBVyxFQUFDLGFBQWEsRUFBQyxPQUFPLElBQUksTUFBTSxPQUFWLENBQWtCLEVBQUUsQ0FBcEIsRUFBdUIsRUFBRSxDQUF6QixFQUE0QixFQUFFLENBQTlCLENBQVIsRUFBZCxFQUFqQjtBQUNBLFFBQU0sUUFBUSxJQUFJLE1BQU0saUJBQVYsQ0FBNEIsRUFBQyxPQUFPLEtBQVIsRUFBNUIsQ0FBZDtBQUNBLFFBQU0sU0FBUyxJQUFJLGdCQUFKLEVBQWY7QUFDQSxRQUFNLHFCQUFxQixLQUEzQjtBQUNBLFFBQU0sUUFBUTtBQUNWLGdCQUFRO0FBREUsS0FBZDtBQUdBO0FBQ0EsUUFBTSxRQUFRLDJCQUFrQjtBQUM1QixnQ0FENEIsRUFDZixVQURlLEVBQ1QsWUFEUyxFQUNGLDBCQURFLEVBQ1ksWUFEWixFQUNtQixjQURuQixFQUMyQixZQUQzQixFQUNrQztBQURsQyxLQUFsQixDQUFkO0FBR0EsVUFBTSxPQUFOLEdBQWdCLGFBQWhCOztBQUVBLFFBQUksS0FBSjs7QUFFQSxhQUFTLFFBQVQsR0FBb0I7QUFDaEIsY0FBTSxLQUFOLENBQVksR0FBWixDQUFnQixLQUFoQjtBQUNBLGVBQU8sSUFBUCxDQUFZLFVBQVosRUFBd0IsS0FBeEI7QUFDSDs7QUFFRCxRQUFNLGFBQWEsSUFBbkI7O0FBRUEsYUFBUyxnQkFBVCxHQUE0QjtBQUN4QixZQUFJLENBQUMsS0FBTCxFQUFZO0FBQ1osY0FBTSxRQUFOLENBQWUsR0FBZixDQUFtQixDQUFuQixFQUFzQixDQUF0QixFQUF5QixJQUFFLEtBQTNCO0FBQ0g7O0FBRUQsYUFBUyxpQkFBVCxHQUE2QjtBQUN6QixZQUFJLEtBQUosRUFBVztBQUNQLGtCQUFNLE9BQU4sR0FBZ0IsQ0FBQyxNQUFNLE9BQXZCO0FBQ0EsZ0JBQUksTUFBTSxPQUFWLEVBQW1CLE1BQU0sTUFBTixDQUFhLGNBQWIsQ0FBNEIsS0FBNUI7QUFDbkI7QUFDQTtBQUNILFNBTEQsTUFLTztBQUNIO0FBQ0Esb0JBQVEsSUFBSSxLQUFKLENBQVUsTUFBVixDQUFpQixlQUFqQixDQUFSO0FBQ0Esa0JBQU0sVUFBTjs7QUFFQSxnQkFBSSxVQUFKLEVBQWdCO0FBQUEsb0JBc0JILElBdEJHLEdBc0JaLFNBQVMsSUFBVCxDQUFjLENBQWQsRUFBaUI7QUFDYiw2QkFBUyxXQUFULENBQXFCLEtBQXJCLENBQTJCLENBQTNCLEdBQStCLEVBQUUsVUFBRixDQUFhLENBQTVDO0FBQ0Esd0JBQU0sSUFBSSxTQUFTLFNBQVMsV0FBVCxDQUFxQixLQUE5QixDQUFWO0FBQ0EsMEJBQU0sTUFBTixDQUFhLEVBQUUsQ0FBZixFQUFrQixFQUFFLENBQXBCLEVBQXVCLEVBQUUsQ0FBekI7QUFDQTtBQUNBLDhCQUFVLFdBQVYsR0FBd0IsSUFBeEI7QUFDSCxpQkE1Qlc7O0FBQ1osb0JBQU0sYUFBYSxJQUFJLE1BQU0sY0FBVixDQUF5QjtBQUN4Qyw4QkFBVSxRQUQ4QjtBQUV4QyxrQ0FBYyxVQUYwQjtBQUd4QyxvQ0FBZ0I7QUFId0IsaUJBQXpCLENBQW5CO0FBS0Esb0JBQU0sUUFBUSxTQUFSLEtBQVEsQ0FBQyxDQUFELEVBQU87QUFDakIsNkJBQVMsV0FBVCxDQUFxQixLQUFyQixDQUEyQixDQUEzQixHQUErQixFQUFFLFVBQUYsQ0FBYSxDQUE1QztBQUNBLDZCQUFTLFdBQVQsQ0FBcUIsS0FBckIsQ0FBMkIsQ0FBM0IsR0FBK0IsRUFBRSxVQUFGLENBQWEsQ0FBNUM7O0FBRUEsd0JBQU0sSUFBSSxTQUFTLFNBQVMsV0FBVCxDQUFxQixLQUE5QixDQUFWO0FBQ0EsMEJBQU0sTUFBTixDQUFhLEVBQUUsQ0FBZixFQUFrQixFQUFFLENBQXBCLEVBQXVCLEVBQUUsQ0FBekI7QUFDQTtBQUNBLDhCQUFVLFdBQVYsR0FBd0IsSUFBeEI7QUFDSCxpQkFSRDtBQVNBLG9CQUFJLE9BQU8sSUFBWDtBQUFBLG9CQUFpQixjQUFjLE9BQU8sWUFBUCxHQUFvQixFQUFuRDtBQUNBLHNCQUFNLGVBQU4sQ0FBc0IsS0FBdEIsRUFBNkIsVUFBN0IsRUFBeUMsSUFBekMsRUFBK0MsT0FBTyxXQUFQLEdBQXFCLENBQXBFLEVBQXVFLEtBQXZFLEVBQThFLFdBQTlFO0FBQ0Esb0JBQU0sWUFBWSxJQUFJLE1BQU0sY0FBVixDQUF5QjtBQUN2Qyw4QkFBVSxRQUQ2QjtBQUV2QyxrQ0FBYyxVQUZ5QjtBQUd2QyxvQ0FBZ0I7QUFIdUIsaUJBQXpCLENBQWxCO0FBV0M7QUFDRDtBQUNBLHNCQUFNLGVBQU4sQ0FBc0IsSUFBdEIsRUFBNEIsU0FBNUIsRUFBdUMsSUFBdkMsRUFBNkMsT0FBTyxZQUFwRCxFQUFrRSxLQUFsRSxFQUF5RSxXQUF6RTtBQUNILGFBL0JELE1BK0JPO0FBQ0gsc0JBQU0sR0FBTixDQUFVLEtBQVYsRUFBaUIsR0FBakIsRUFBc0IsQ0FBdEIsRUFBeUIsQ0FBekIsRUFBNEIsUUFBNUIsQ0FBcUMsUUFBckM7QUFDQSxzQkFBTSxHQUFOLENBQVUsS0FBVixFQUFpQixHQUFqQixFQUFzQixDQUF0QixFQUF5QixDQUF6QixFQUE0QixRQUE1QixDQUFxQyxRQUFyQztBQUNBLHNCQUFNLEdBQU4sQ0FBVSxLQUFWLEVBQWlCLEdBQWpCLEVBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLFFBQTVCLENBQXFDLFFBQXJDO0FBQ0g7QUFDRCxrQkFBTSxHQUFOLENBQVUsS0FBVjtBQUNBLGtCQUFNLE1BQU4sQ0FBYSxjQUFiLENBQTRCLEtBQTVCO0FBQ0E7QUFDQSxrQkFBTSxNQUFOLEdBQWUsTUFBTSxNQUFyQixDQTVDRyxDQTRDMEI7QUFDaEM7QUFDSjs7QUFFRCxVQUFNLFFBQU4sR0FBaUIsVUFBQyxRQUFELEVBQWM7QUFDM0IsZUFBTyxFQUFQLENBQVUsVUFBVixFQUFzQixRQUF0QjtBQUNBLGVBQU8sS0FBUDtBQUNILEtBSEQ7O0FBS0EsUUFBTSx3QkFBd0IsTUFBTSxhQUFwQztBQUNBLFVBQU0sYUFBTixHQUFzQixVQUFVLFlBQVYsRUFBeUI7QUFDM0MsWUFBSSxNQUFNLE1BQVYsRUFBa0I7QUFDbEIsOEJBQXNCLFlBQXRCO0FBQ0gsS0FIRDs7QUFLQSxhQUFTLFlBQVQsR0FBd0I7QUFDcEI7QUFDQTtBQUNBLGdCQUFRLE9BQU8sWUFBUCxDQUFSO0FBQ0EsY0FBTSxLQUFOLENBQVksSUFBWixDQUFpQixLQUFqQjtBQUNBLGlCQUFTLFdBQVQsQ0FBcUIsS0FBckIsQ0FBMkIsSUFBM0IsQ0FBZ0MsU0FBUyxLQUFULENBQWhDO0FBQ0g7QUFDRCxVQUFNLE1BQU4sR0FBZSxZQUFNO0FBQ2pCLGNBQU0sTUFBTixHQUFlLElBQWY7QUFDQSxlQUFPLEtBQVA7QUFDSCxLQUhEOztBQUtBLFdBQU8sS0FBUDtBQUNIOzs7Ozs7OztRQ25OZSxnQixHQUFBLGdCO0FBM0NoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CTyxJQUFNLHdDQUFnQixRQUF0QjtBQUNBLElBQU0sNENBQWtCLFFBQXhCO0FBQ0EsSUFBTSxnREFBb0IsUUFBMUI7QUFDQSxJQUFNLDBDQUFpQixRQUF2QjtBQUNBLElBQU0sOERBQTJCLFFBQWpDO0FBQ0EsSUFBTSx3Q0FBZ0IsUUFBdEI7QUFDQSxJQUFNLHNDQUFlLFFBQXJCO0FBQ0EsSUFBTSxvREFBc0IsUUFBNUI7QUFDQSxJQUFNLDBDQUFpQixRQUF2QjtBQUNBLElBQU0sMENBQWlCLFFBQXZCO0FBQ0EsSUFBTSxzREFBdUIsUUFBN0I7QUFDQSxJQUFNLDBEQUF5QixRQUEvQjtBQUNBLElBQU0sc0RBQXVCLFFBQTdCO0FBQ0EsSUFBTSxrREFBcUIsUUFBM0I7QUFDQSxJQUFNLDBEQUF5QixRQUEvQjtBQUNBLElBQU0sZ0RBQW9CLFFBQTFCO0FBQ0EsSUFBTSxnREFBb0IsUUFBMUI7QUFDQSxJQUFNLGdEQUFvQixRQUExQjtBQUNBLElBQU0sc0NBQWUsUUFBckI7QUFDQSxJQUFNLDBEQUF5QixRQUEvQjtBQUNBLElBQU0sZ0NBQVksUUFBbEI7QUFDQSxJQUFNLGtDQUFhLFFBQW5CO0FBQ0EsSUFBTSxzREFBdUIsUUFBN0I7O0FBRUEsU0FBUyxnQkFBVCxDQUEyQixRQUEzQixFQUFxQyxLQUFyQyxFQUE0QztBQUNqRCxNQUFNLE1BQU0sSUFBSSxNQUFNLEtBQVYsQ0FBZ0IsS0FBaEIsQ0FBWjtBQUNBLE1BQUksSUFBSSxTQUFTLFlBQVQsQ0FBc0IsT0FBdEIsQ0FBUjtBQUNBLE1BQUksVUFBSjtBQUNBLE1BQUksQ0FBQyxDQUFMLEVBQVE7QUFDTixRQUFJLElBQUksWUFBSixDQUFpQixTQUFTLFlBQVQsQ0FBc0IsVUFBdEIsRUFBa0MsS0FBbEMsQ0FBd0MsTUFBekQsRUFBaUUsSUFBakUsQ0FBc0UsR0FBdEUsQ0FBSjtBQUNBLFFBQUksU0FBUyxZQUFULENBQXNCLE9BQXRCLEVBQStCLElBQUksTUFBTSxlQUFWLENBQTBCLENBQTFCLEVBQTZCLENBQTdCLENBQS9CLENBQUo7QUFDRCxHQUhELE1BR087QUFDTCxRQUFJLEVBQUUsS0FBTjtBQUNEO0FBQ0QsT0FBSyxJQUFJLElBQUksQ0FBYixFQUFnQixJQUFJLEVBQUUsTUFBdEIsRUFBOEIsS0FBRyxDQUFqQyxFQUFvQztBQUNsQyxNQUFFLENBQUYsSUFBTyxJQUFJLENBQVg7QUFDQSxNQUFFLElBQUUsQ0FBSixJQUFTLElBQUksQ0FBYjtBQUNBLE1BQUUsSUFBRSxDQUFKLElBQVMsSUFBSSxDQUFiO0FBQ0Q7QUFDRCxJQUFFLFdBQUYsR0FBZ0IsSUFBaEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFPLFFBQVA7QUFDRDs7Ozs7Ozs7a0JDdEN1QixjOztBQVJ4Qjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLE87O0FBQ1o7O0lBQVksSTs7QUFDWjs7Ozs7O29NQXpCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJCZSxTQUFTLGNBQVQsR0FTUDtBQUFBLGlGQUFKLEVBQUk7QUFBQSxNQVJOLFdBUU0sUUFSTixXQVFNO0FBQUEsTUFQTixNQU9NLFFBUE4sTUFPTTtBQUFBLCtCQU5OLFlBTU07QUFBQSxNQU5OLFlBTU0scUNBTlMsV0FNVDtBQUFBLCtCQUxOLFlBS007QUFBQSxNQUxOLFlBS00scUNBTFMsS0FLVDtBQUFBLDBCQUpOLE9BSU07QUFBQSxNQUpOLE9BSU0sZ0NBSkksRUFJSjtBQUFBLHdCQUhOLEtBR007QUFBQSxNQUhOLEtBR00sOEJBSEUsT0FBTyxXQUdUO0FBQUEseUJBRk4sTUFFTTtBQUFBLE1BRk4sTUFFTSwrQkFGRyxPQUFPLFlBRVY7QUFBQSx3QkFETixLQUNNO0FBQUEsTUFETixLQUNNLDhCQURFLE9BQU8sV0FDVDs7QUFHTixNQUFNLFFBQVE7QUFDWixVQUFNLEtBRE07QUFFWixZQUFRO0FBRkksR0FBZDs7QUFLQSxNQUFNLGlCQUFpQixRQUFRLEdBQVIsR0FBYyxPQUFPLFlBQTVDO0FBQ0EsTUFBTSxrQkFBa0IsU0FBUyxPQUFPLFlBQXhDO0FBQ0EsTUFBTSxpQkFBaUIsS0FBdkI7QUFDQSxNQUFNLHlCQUF5QixTQUFTLE9BQU8sWUFBUCxHQUFzQixHQUE5RDtBQUNBLE1BQU0sa0JBQWtCLE9BQU8sWUFBUCxHQUFzQixDQUFDLEdBQS9DO0FBQ0EsTUFBTSxnQ0FBZ0MsRUFBdEM7O0FBRUEsTUFBTSxRQUFRLElBQUksTUFBTSxLQUFWLEVBQWQ7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsVUFBaEI7QUFDQSxRQUFNLFFBQU4sR0FBaUI7QUFBQSxpQkFBVSxNQUFNLE9BQWhCLFVBQTRCLFlBQTVCO0FBQUEsR0FBakI7O0FBRUE7QUFDQSxRQUFNLFFBQU4sQ0FBZSxZQUFmLEdBQThCLE1BQTlCO0FBQ0EsUUFBTSxRQUFOLENBQWUsa0JBQWYsR0FBb0MsWUFBcEM7QUFDQSxRQUFNLFFBQU4sQ0FBZSxRQUFmLEdBQTBCLGFBQUs7QUFDN0IsUUFBSSxRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsTUFBdUIsQ0FBQyxDQUE1QixFQUErQjtBQUM3QjtBQUNBLGNBQVEsSUFBUixpQ0FBMkMsQ0FBM0Msd0JBQStELFlBQS9ELDRCQUFrRyxRQUFRLElBQVIsQ0FBYSxJQUFiLENBQWxHO0FBQ0E7QUFDRDtBQUNELFdBQU8sWUFBUCxJQUF1QixDQUF2QjtBQUNBLFFBQUksV0FBSixFQUFpQixZQUFZLE9BQU8sWUFBUCxDQUFaO0FBQ2xCLEdBUkQ7O0FBVUEsTUFBTSxRQUFRLE9BQU8sV0FBUCxDQUFvQixLQUFwQixFQUEyQixNQUEzQixFQUFtQyxLQUFuQyxDQUFkO0FBQ0EsUUFBTSxHQUFOLENBQVcsS0FBWDs7QUFFQSxRQUFNLE9BQU4sR0FBZ0IsQ0FBRSxLQUFGLENBQWhCOztBQUVBLE1BQU0sZ0JBQWdCLElBQUksTUFBTSxLQUFWLEVBQXRCO0FBQ0EsZ0JBQWMsT0FBZCxHQUF3QixLQUF4QjtBQUNBLGdCQUFjLE9BQWQsR0FBd0IsRUFBeEI7QUFDQSxNQUFNLG9CQUFvQixFQUExQjtBQUNBLE1BQU0sZUFBZSxFQUFyQjs7QUFFQTtBQUNBLE1BQU0sZUFBZSxtQkFBckI7O0FBSUEsV0FBUyxpQkFBVCxHQUE0QjtBQUMxQixRQUFJLE1BQU0sT0FBTixDQUFlLE9BQWYsQ0FBSixFQUE4QjtBQUM1QixhQUFPLFFBQVEsSUFBUixDQUFjLFVBQVUsVUFBVixFQUFzQjtBQUN6QyxlQUFPLGVBQWUsT0FBUSxZQUFSLENBQXRCO0FBQ0QsT0FGTSxDQUFQO0FBR0QsS0FKRCxNQUtJO0FBQ0YsYUFBTyxPQUFPLElBQVAsQ0FBWSxPQUFaLEVBQXFCLElBQXJCLENBQTJCLFVBQVUsVUFBVixFQUFzQjtBQUN0RCxlQUFPLE9BQU8sWUFBUCxNQUF5QixRQUFTLFVBQVQsQ0FBaEM7QUFDRCxPQUZNLENBQVA7QUFHRDtBQUNGOztBQUVELFdBQVMsWUFBVCxDQUF1QixTQUF2QixFQUFrQyxRQUFsQyxFQUE0QztBQUMxQztBQUNBLFFBQU0sUUFBUSx5QkFDWixXQURZLEVBQ0MsU0FERDtBQUVaO0FBQ0Esa0JBSFksRUFHSSxLQUhKLEVBSVosT0FBTyxpQkFKSyxFQUljLE9BQU8saUJBSnJCLEVBS1osS0FMWSxDQUFkO0FBT0EsVUFBTSxJQUFOLENBQVcsT0FBWCxHQUFxQixnQkFBckI7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsZ0JBQWhCOztBQUVBLFFBQUksUUFBSixFQUFjLGNBQWMsT0FBZCxDQUFzQixJQUF0QixDQUE0QixNQUFNLElBQWxDLEVBQWQsS0FDSyxNQUFNLE9BQU4sQ0FBYyxJQUFkLENBQW9CLE1BQU0sSUFBMUI7QUFDTCxRQUFNLG1CQUFtQiwyQkFBbUIsTUFBTSxJQUF6QixDQUF6QjtBQUNBLHFCQUFpQixPQUFqQixHQUEyQixnQkFBM0I7QUFDQSxzQkFBa0IsSUFBbEIsQ0FBd0IsZ0JBQXhCO0FBQ0EsaUJBQWEsSUFBYixDQUFtQixLQUFuQjs7QUFHQSxRQUFJLFFBQUosRUFBYztBQUNaLHVCQUFpQixNQUFqQixDQUF3QixFQUF4QixDQUE0QixXQUE1QixFQUF5QyxVQUFVLENBQVYsRUFBYTtBQUNwRCxjQUFNLElBQU4sR0FBYSxjQUFjLE9BQTNCO0FBQ0Esc0JBQWMsU0FBZCxDQUF5QixTQUF6Qjs7QUFFQSxZQUFJLGtCQUFrQixLQUF0Qjs7QUFFQSxZQUFJLE1BQU0sT0FBTixDQUFlLE9BQWYsQ0FBSixFQUE4QjtBQUM1Qiw0QkFBa0IsT0FBUSxZQUFSLE1BQTJCLFNBQTdDO0FBQ0EsY0FBSSxlQUFKLEVBQXFCO0FBQ25CLG1CQUFRLFlBQVIsSUFBeUIsU0FBekI7QUFDRDtBQUNGLFNBTEQsTUFNSTtBQUNGLDRCQUFrQixPQUFRLFlBQVIsTUFBMkIsUUFBUyxTQUFULENBQTdDO0FBQ0EsY0FBSSxlQUFKLEVBQXFCO0FBQ25CLG1CQUFRLFlBQVIsSUFBeUIsUUFBUyxTQUFULENBQXpCO0FBQ0Q7QUFDRjs7QUFHRDtBQUNBLGNBQU0sSUFBTixHQUFhLEtBQWI7O0FBRUEsWUFBSSxlQUFlLGVBQW5CLEVBQW9DO0FBQ2xDLHNCQUFhLE9BQVEsWUFBUixDQUFiO0FBQ0Q7QUFDRCxZQUFLLFVBQUwsRUFBaUI7QUFDZixxQkFBWSxPQUFRLFlBQVIsQ0FBWjtBQUNEOztBQUVELFVBQUUsTUFBRixHQUFXLElBQVg7QUFFRCxPQWhDRDtBQWlDRCxLQWxDRCxNQW1DSTtBQUNGLHVCQUFpQixNQUFqQixDQUF3QixFQUF4QixDQUE0QixXQUE1QixFQUF5QyxVQUFVLENBQVYsRUFBYTtBQUNwRCxjQUFNLElBQU4sR0FBYSxjQUFjLE9BQTNCO0FBQ0EsWUFBSSxNQUFNLElBQU4sS0FBZSxLQUFuQixFQUEwQjtBQUN4QjtBQUNELFNBRkQsTUFHSTtBQUNGO0FBQ0Q7O0FBRUQsVUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNELE9BVkQ7QUFXRDtBQUNELFVBQU0sUUFBTixHQUFpQixRQUFqQjtBQUNBLFdBQU8sS0FBUDtBQUNEOztBQUVELFdBQVMsZUFBVCxHQUEwQjtBQUN4QixVQUFNLElBQU4sR0FBYSxLQUFiO0FBQ0EsUUFBSSxNQUFNLE1BQVYsRUFBa0IsTUFBTSxNQUFOLENBQWEsZ0JBQWIsR0FGTSxDQUUyQjtBQUNwRDs7QUFFRCxXQUFTLFdBQVQsR0FBc0I7QUFDcEIsVUFBTSxJQUFOLEdBQWEsSUFBYjtBQUNBLFVBQU0sTUFBTixDQUFhLGNBQWIsQ0FBNEIsYUFBNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBYSxPQUFiLENBQXNCLFVBQVUsS0FBVixFQUFpQjtBQUNyQyxVQUFJLE1BQU0sUUFBVixFQUFvQjtBQUNsQixjQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDQSxjQUFNLElBQU4sQ0FBVyxPQUFYLEdBQXFCLElBQXJCO0FBQ0Q7QUFDRixLQUxEO0FBTUQ7O0FBRUQ7QUFDQSxNQUFNLGdCQUFnQixhQUFjLGdCQUFnQixHQUE5QixFQUFtQyxLQUFuQyxDQUF0QjtBQUNBLGdCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsT0FBTyxZQUFQLEdBQXNCLEdBQXRCLEdBQTRCLFFBQVEsR0FBL0Q7QUFDQSxnQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLEtBQTNCOztBQUVBLE1BQU0sWUFBWSxRQUFRLFNBQVIsRUFBbEI7QUFDQTtBQUNBLFlBQVUsUUFBVixDQUFtQixHQUFuQixDQUF3QixpQkFBaUIsSUFBekMsRUFBK0MsQ0FBL0MsRUFBa0QsUUFBUSxJQUExRDtBQUNBLGdCQUFjLEdBQWQsQ0FBbUIsU0FBbkI7O0FBR0EsV0FBUyxzQkFBVCxDQUFpQyxLQUFqQyxFQUF3QyxLQUF4QyxFQUErQztBQUM3QyxVQUFNLFFBQU4sQ0FBZSxDQUFmLEdBQW1CLENBQUMsZUFBRCxHQUFtQixDQUFDLFFBQU0sNkJBQU4sR0FBb0MsQ0FBckMsSUFBNEMsc0JBQWxGO0FBQ0EsVUFBTSxRQUFOLENBQWUsQ0FBZixHQUFtQixLQUFuQjtBQUNBLFVBQU0sUUFBTixDQUFlLENBQWYsSUFBb0IsaUJBQWlCLEtBQUssS0FBTCxDQUFXLFFBQVEsNkJBQW5CLENBQXJDO0FBQ0Q7O0FBRUQsV0FBUyxhQUFULENBQXdCLFVBQXhCLEVBQW9DLEtBQXBDLEVBQTJDO0FBQ3pDLFFBQU0sY0FBYyxhQUFjLFVBQWQsRUFBMEIsSUFBMUIsQ0FBcEI7QUFDQSwyQkFBd0IsV0FBeEIsRUFBcUMsS0FBckM7QUFDQSxXQUFPLFdBQVA7QUFDRDs7QUFFRCxnQkFBYyxHQUFkLENBQWtCLGFBQWxCO0FBQ0EsTUFBSSxNQUFNLE9BQU4sQ0FBZSxPQUFmLENBQUosRUFBOEI7QUFDNUIsa0JBQWMsR0FBZCx5Q0FBcUIsUUFBUSxHQUFSLENBQVksYUFBWixDQUFyQjtBQUNELEdBRkQsTUFHSTtBQUNGLGtCQUFjLEdBQWQseUNBQXNCLE9BQU8sSUFBUCxDQUFZLE9BQVosRUFBcUIsR0FBckIsQ0FBMEIsYUFBMUIsQ0FBdEI7QUFDRDs7QUFHRDs7QUFFQSxNQUFNLGtCQUFrQixZQUFZLE1BQVosQ0FBb0IsWUFBcEIsQ0FBeEI7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsT0FBTyx1QkFBcEM7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsS0FBN0I7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsQ0FBQyxJQUE5Qjs7QUFFQSxNQUFNLGVBQWUsT0FBTyxxQkFBUCxDQUE4QixNQUE5QixFQUFzQyxPQUFPLHNCQUE3QyxDQUFyQjtBQUNBLGVBQWEsUUFBYixDQUFzQixDQUF0QixHQUEwQixLQUExQjs7QUFHQSxNQUFNLFlBQVksT0FBTyxXQUFQLENBQW9CLGlCQUFpQixPQUFPLGdCQUE1QyxFQUE4RCxrQkFBa0IsT0FBTyxnQkFBUCxHQUEwQixHQUExRyxFQUErRyxjQUEvRyxFQUErSCxJQUEvSCxDQUFsQjtBQUNBLFlBQVUsUUFBVixDQUFtQixLQUFuQixDQUF5QixNQUF6QixDQUFpQyxRQUFqQztBQUNBLFlBQVUsUUFBVixDQUFtQixDQUFuQixHQUF1QixDQUFDLE9BQU8sZ0JBQVIsR0FBMkIsR0FBM0IsR0FBaUMsUUFBUSxHQUFoRTtBQUNBLFlBQVUsUUFBVixDQUFtQixDQUFuQixHQUF1QixRQUFRLEdBQS9COztBQUVBLFFBQU0sR0FBTixDQUFXLGVBQVgsRUFBNEIsWUFBNUIsRUFBMEMsYUFBMUMsRUFBeUQsU0FBekQ7O0FBR0E7O0FBRUEsV0FBUyxVQUFULEdBQXFCOztBQUVuQixzQkFBa0IsT0FBbEIsQ0FBMkIsVUFBVSxXQUFWLEVBQXVCLEtBQXZCLEVBQThCO0FBQ3ZELFVBQU0sUUFBUSxhQUFjLEtBQWQsQ0FBZDtBQUNBLFVBQUksTUFBTSxRQUFWLEVBQW9CO0FBQ2xCLFlBQUksWUFBWSxRQUFaLEVBQUosRUFBNEI7QUFDMUIsaUJBQU8sZ0JBQVAsQ0FBeUIsTUFBTSxJQUFOLENBQVcsUUFBcEMsRUFBOEMsT0FBTyxlQUFyRDtBQUNELFNBRkQsTUFHSTtBQUNGLGlCQUFPLGdCQUFQLENBQXlCLE1BQU0sSUFBTixDQUFXLFFBQXBDLEVBQThDLE9BQU8saUJBQXJEO0FBQ0Q7QUFDRjtBQUNGLEtBVkQ7O0FBWUEsVUFBTSxJQUFOLEdBQWEsY0FBYyxPQUEzQixDQWRtQixDQWNpQjtBQUNwQyxRQUFJLE1BQU0sUUFBTixDQUFlLE1BQW5CLEVBQTJCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLGdDQUFjLEtBQWQsRUFBcUIsTUFBTSxRQUFOLENBQWUsTUFBcEMsRUFBNEMsa0JBQWtCLENBQWxCLEVBQXFCLFFBQXJCLEVBQTVDO0FBQ0Q7QUFDRCxRQUFJLGtCQUFrQixDQUFsQixFQUFxQixRQUFyQixNQUFtQyxNQUFNLElBQTdDLEVBQW1EO0FBQ2pELGdCQUFVLE9BQVYsR0FBb0IsSUFBcEI7QUFDRCxLQUZELE1BR0k7QUFDRixnQkFBVSxPQUFWLEdBQW9CLEtBQXBCO0FBQ0Q7QUFDRjs7QUFFRCxNQUFJLG9CQUFKO0FBQ0EsTUFBSSx5QkFBSjtBQUNBLE1BQUksbUJBQUo7O0FBRUEsUUFBTSxRQUFOLEdBQWlCLFVBQVUsUUFBVixFQUFvQjtBQUNuQyxrQkFBYyxRQUFkO0FBQ0EsV0FBTyxLQUFQO0FBQ0QsR0FIRDtBQUlBLFFBQU0sUUFBTixHQUFpQixVQUFVLFFBQVYsRUFBb0I7QUFDbkMsaUJBQWEsUUFBYjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBS0EsTUFBTSxrQkFBa0IsS0FBSyxNQUFMLENBQWEsRUFBRSxZQUFGLEVBQVMsWUFBVCxFQUFiLENBQXhCOztBQUVBLFFBQU0sTUFBTixHQUFlLFlBQVU7QUFDdkIsVUFBTSxNQUFOLEdBQWUsSUFBZjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBS0EsUUFBTSxhQUFOLEdBQXNCLFVBQVUsWUFBVixFQUF3QjtBQUM1QyxRQUFJLE1BQU0sTUFBVixFQUFrQjtBQUNoQixvQkFBYyxTQUFkLENBQXlCLG1CQUF6QjtBQUNEO0FBQ0Qsc0JBQWtCLE9BQWxCLENBQTJCLFVBQVUsZ0JBQVYsRUFBNEI7QUFDckQsdUJBQWlCLE1BQWpCLENBQXlCLFlBQXpCO0FBQ0QsS0FGRDtBQUdBLG9CQUFnQixNQUFoQixDQUF3QixZQUF4QjtBQUNBO0FBQ0QsR0FURDs7QUFXQSxRQUFNLElBQU4sR0FBYSxVQUFVLEdBQVYsRUFBZTtBQUMxQixvQkFBZ0IsV0FBaEIsQ0FBNkIsR0FBN0I7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEOztBQUtBLFFBQU0sVUFBTixHQUFtQixlQUFPO0FBQ3hCLFFBQU0sTUFBTSxLQUFaO0FBQ0EsUUFBSSxRQUFKLENBQWEsR0FBYixHQUFtQixHQUFuQjtBQUNBO0FBQ0E7QUFDQSxRQUFJLFFBQUosQ0FBYSxNQUFiLEdBQXNCLDhCQUFjLFdBQWQsRUFBMkIsR0FBM0IsRUFBZ0MsT0FBTyxZQUF2QyxFQUFxRCxJQUFJLE9BQXpELEVBQWtFLE9BQU8sWUFBekUsQ0FBdEI7QUFDQTtBQUNELEdBUEQ7QUFRQSxRQUFNLFVBQU4sR0FBbUI7QUFBQSxXQUFNLE1BQU0sUUFBTixDQUFlLEdBQXJCO0FBQUEsR0FBbkI7O0FBR0EsU0FBTyxLQUFQO0FBQ0Q7Ozs7Ozs7O2tCQ3RQdUIsWTs7QUF4RHhCOztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLE87O0FBQ1o7O0lBQVksZTs7QUFDWjs7SUFBWSxJOztBQUNaOztJQUFZLE87O0FBQ1o7Ozs7OztvTUEzQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkE7O0FBRUE7Ozs7QUFJQSxJQUFNLGlCQUFpQixFQUF2Qjs7QUFFQSxJQUFNLG1CQUFtQixJQUFJLE1BQU0sSUFBVixFQUF6QjtBQUFBLElBQTJDLGdCQUFnQixJQUFJLE1BQU0sSUFBVixFQUEzRDtBQUFBLElBQTZFLGNBQWMsSUFBSSxNQUFNLE9BQVYsRUFBM0Y7O0FBRUEsU0FBUyx3QkFBVCxHQUFvQztBQUNsQyxNQUFNLE1BQU0sZUFBZSxDQUFmLEVBQWtCLFFBQWxCLENBQTJCLGNBQXZDO0FBQ0EsTUFBSSxDQUFDLEdBQUQsSUFBUSxlQUFlLE1BQWYsSUFBeUIsQ0FBckMsRUFBd0M7QUFDeEM7QUFDQSxNQUFNLE1BQU0sZUFBZSxNQUFmLENBQXNCO0FBQUEsV0FBSyxFQUFFLE9BQVA7QUFBQSxHQUF0QixDQUFaO0FBQ0EsTUFBTSxPQUFPLElBQUksSUFBakI7QUFBQSxNQUF1QixNQUFNLElBQUksR0FBakM7QUFBQSxNQUFzQyxJQUFJLElBQUksTUFBOUM7QUFDQSxNQUFNLEtBQUssSUFBSSxHQUFKLENBQVE7QUFBQSxXQUFLLEVBQUUsUUFBRixDQUFXLENBQWhCO0FBQUEsR0FBUixFQUEyQixJQUEzQixDQUFnQyxVQUFDLENBQUQsRUFBRyxDQUFIO0FBQUEsV0FBTyxJQUFFLENBQVQ7QUFBQSxHQUFoQyxDQUFYO0FBQ0EsS0FBRyxDQUFDLENBQUosSUFBUyxDQUFDLElBQVYsQ0FQa0MsQ0FPbEI7QUFDaEIsS0FBRyxPQUFILENBQVksVUFBQyxDQUFELEVBQUcsQ0FBSDtBQUFBLFdBQVMsR0FBRyxDQUFILElBQVEsS0FBSyxHQUFMLENBQVMsR0FBRyxDQUFILENBQVQsRUFBZ0IsR0FBRyxJQUFFLENBQUwsSUFBVSxLQUFHLE9BQU8sV0FBcEMsQ0FBakI7QUFBQSxHQUFaLEVBUmtDLENBUThDOztBQUVoRixNQUFJLE9BQUosQ0FBWSxVQUFDLENBQUQsRUFBSSxDQUFKLEVBQVU7QUFDcEI7QUFDQSxRQUFNLElBQUksR0FBRyxDQUFILENBQVY7QUFDQSxRQUFJLE1BQU0sRUFBRSxRQUFGLENBQVcsQ0FBckIsRUFBd0I7QUFDdEIsUUFBRSxRQUFGLENBQVcsQ0FBWCxHQUFlLENBQWY7QUFDQSxRQUFFLFlBQUY7QUFDQSxRQUFFLGlCQUFGO0FBQ0Q7QUFDRixHQVJEO0FBU0EsTUFBSSxJQUFJLElBQUUsQ0FBTixFQUFTLFFBQVQsQ0FBa0IsQ0FBbEIsSUFBdUIsT0FBTyxPQUFPLFdBQXpDLEVBQXNEO0FBQ3BELFlBQVEsR0FBUixDQUFZLHdFQUFaO0FBQ0Q7QUFDRDtBQUNEOztBQUVELFNBQVMsV0FBVCxDQUFxQixHQUFyQixFQUEwQjtBQUN4QixNQUFJLENBQUMsSUFBSSxvQkFBVCxFQUErQjtBQUMvQixNQUFNLE9BQU8sSUFBSSxJQUFqQjtBQUFBLE1BQXVCLE1BQU0sSUFBSSxHQUFqQztBQUFBLE1BQXNDLElBQUksZUFBZSxNQUF6RDtBQUNBLE1BQU0sSUFBSSxJQUFJLElBQWQ7QUFBQSxNQUFvQixJQUFJLElBQUksS0FBNUI7QUFBQSxNQUFtQyxJQUFJLElBQUksR0FBM0M7QUFBQSxNQUFnRCxJQUFJLElBQUksTUFBeEQ7QUFDQSxNQUFNLElBQUksSUFBSSxRQUFKLENBQWEsQ0FBdkIsQ0FKd0IsQ0FJRTtBQUMxQixnQkFBYyxHQUFkLENBQWtCLEdBQWxCLENBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQUMsR0FBRCxHQUFPLENBQW5DO0FBQ0EsZ0JBQWMsR0FBZCxDQUFrQixHQUFsQixDQUFzQixDQUF0QixFQUF5QixDQUF6QixFQUE0QixDQUFDLElBQUQsR0FBUSxDQUFwQztBQUNBLFNBQU8sYUFBUDtBQUNEOztBQUVjLFNBQVMsWUFBVCxHQU9QO0FBQUEsaUZBQUosRUFBSTtBQUFBLE1BTk4sV0FNTSxRQU5OLFdBTU07QUFBQSxNQUxOLElBS00sUUFMTixJQUtNO0FBQUEsTUFKTixNQUlNLFFBSk4sTUFJTTtBQUFBLE1BSE4sU0FHTSxRQUhOLFNBR007QUFBQSxNQUZOLGtCQUVNLFFBRk4sa0JBRU07QUFBQSxNQUROLGlCQUNNLFFBRE4saUJBQ007O0FBRU4sTUFBTSw2QkFBNkIsRUFBbkM7O0FBRUEsTUFBTSxRQUFRLE9BQU8sWUFBckI7QUFDQSxNQUFNLFFBQVEsT0FBTyxXQUFyQjs7QUFFQSxNQUFNLFFBQVE7QUFDWixlQUFXLEtBREM7QUFFWixvQkFBZ0I7QUFGSixHQUFkOztBQUtBLE1BQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLFFBQWhCO0FBQ0EsUUFBTSxRQUFOLEdBQWlCO0FBQUEsaUJBQVUsTUFBTSxPQUFoQixVQUE0QixJQUE1QjtBQUFBLEdBQWpCOztBQUVBLE1BQU0sZ0JBQWdCLElBQUksTUFBTSxLQUFWLEVBQXRCO0FBQ0EsUUFBTSxHQUFOLENBQVcsYUFBWDs7QUFFQSxNQUFJLGNBQWMsS0FBbEI7QUFDQTs7O0FBR0EsU0FBTyxjQUFQLENBQXVCLEtBQXZCLEVBQThCLFdBQTlCLEVBQTJDO0FBQ3pDLFNBQUssZUFBTTtBQUNULGFBQU8sV0FBUDtBQUNELEtBSHdDO0FBSXpDLFNBQUssYUFBRSxRQUFGLEVBQWdCO0FBQ25CLFVBQUssWUFBWSxDQUFDLFdBQWxCLEVBQWdDLE1BQU0sV0FBTixDQUFrQixNQUFsQixDQUEwQjtBQUFBLGVBQUcsRUFBRSxRQUFMO0FBQUEsT0FBMUIsRUFBMEMsR0FBMUMsQ0FBK0M7QUFBQSxlQUFHLEVBQUUsS0FBRixFQUFIO0FBQUEsT0FBL0M7QUFDaEMsb0JBQWMsUUFBZDtBQUNBLFlBQU0sYUFBTjtBQUNEO0FBUndDLEdBQTNDOztBQVdBO0FBQ0EsUUFBTSxhQUFOLEdBQXNCLFlBQU07QUFDMUIsUUFBTSxZQUFZLDhCQUFrQixLQUFsQixDQUFsQjtBQUNBLFFBQUksVUFBVSxRQUFWLENBQW1CLGdCQUF2QixFQUF5QztBQUN2QyxjQUFRLEdBQVIsaUNBQTBDLE1BQU0sVUFBaEQ7QUFDRCxLQUZELE1BR0s7QUFDSDtBQUNBLGdCQUFVLFFBQVYsQ0FBbUIsYUFBbkIsR0FBbUMsSUFBbkM7QUFDRDtBQUNGLEdBVEQ7QUFVQTtBQUNBLFFBQU0sYUFBTixHQUFzQixhQUF0Qjs7QUFFQSxNQUFNLG1CQUFtQixJQUFJLE1BQU0sVUFBVixFQUF6QjtBQUNBO0FBQ0EsUUFBTSxpQkFBTixHQUEwQixZQUFzQjtBQUFBLFFBQWIsTUFBYSx1RUFBTixJQUFNOztBQUM5QyxRQUFNLElBQUksSUFBVjtBQUNBLFFBQUksQ0FBQyxFQUFFLFFBQUYsQ0FBVyxjQUFoQixFQUFnQztBQUNoQztBQUNBLE1BQUUseUJBQUYsQ0FBNEIsZ0JBQTVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQU0sTUFBTSw2QkFBaUIsZ0JBQWpCLEVBQW1DLENBQW5DLENBQVo7QUFDQSxRQUFNLE9BQU8sSUFBSSxHQUFKLENBQVEsQ0FBUixHQUFZLElBQUksR0FBSixDQUFRLENBQWpDO0FBQUEsUUFBb0MsT0FBTyxJQUFJLEdBQUosQ0FBUSxDQUFSLEdBQVUsSUFBSSxHQUFKLENBQVEsQ0FBN0Q7O0FBRUEsUUFBTSxNQUFNLEVBQUUsUUFBRixDQUFXLGNBQXZCO0FBQ0EsUUFBTSxTQUFTLFlBQVksR0FBWixDQUFmLENBYjhDLENBYWI7QUFDakM7QUFDQTtBQUNBO0FBQ0EsUUFBTSxlQUFlLElBQUksU0FBSixDQUFjLE1BQWQsQ0FBckIsQ0FqQjhDLENBaUJGO0FBQzVDO0FBQ0E7O0FBRUE7QUFDQSxRQUFNLG1CQUFtQixhQUFhLE9BQWIsQ0FBcUIsV0FBckIsQ0FBekI7QUFDQSxRQUFNLFVBQVUsSUFBSSxLQUFKLEdBQVksSUFBSSxJQUFoQztBQUFBLFFBQXNDLFVBQVUsSUFBSSxHQUFKLEdBQVUsSUFBSSxNQUE5RDtBQUNBO0FBQ0EscUJBQWlCLENBQWpCLElBQXNCLElBQXRCLENBQTRCLGlCQUFpQixDQUFqQixJQUFzQixJQUF0QjtBQUM1QixRQUFJLGNBQWMsS0FBbEI7QUFDQTtBQUNBLFFBQUksaUJBQWlCLENBQWpCLEdBQXFCLE1BQXpCLEVBQWlDO0FBQUU7QUFDakM7QUFDQSxRQUFFLFFBQUYsQ0FBVyxDQUFYLEdBQWUsSUFBSSxJQUFKLEdBQVcsVUFBUSxDQUFsQztBQUNBLG9CQUFjLElBQWQ7QUFDRDtBQUNELFFBQUksaUJBQWlCLENBQWpCLEdBQXFCLE1BQXpCLEVBQWlDO0FBQy9CLFFBQUUsUUFBRixDQUFXLENBQVgsR0FBZSxJQUFJLE1BQUosR0FBYSxVQUFRLENBQXBDO0FBQ0Esb0JBQWMsSUFBZDtBQUNEO0FBQ0QsUUFBSSxXQUFKLEVBQWlCLEVBQUUsWUFBRjtBQUNsQixHQXRDRDs7QUF3Q0EsUUFBTSxXQUFOLEdBQW9CLFlBQU07QUFBRSxXQUFPLE1BQU0sU0FBYjtBQUF3QixHQUFwRDs7QUFFQTtBQUNBLFNBQU8sY0FBUCxDQUFzQixLQUF0QixFQUE2QixhQUE3QixFQUE0QztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUssZUFBTTtBQUFFLDBDQUFZLGNBQWMsUUFBMUIsc0JBQXVDLFlBQVksUUFBbkQ7QUFBK0Q7QUFMbEMsR0FBNUM7QUFPQTtBQUNBLFFBQU0sUUFBTixHQUFpQixZQUFvQjtBQUFBLHNDQUFOLElBQU07QUFBTixVQUFNO0FBQUE7O0FBQ25DLFdBQU8sQ0FBQyxLQUFLLFFBQUwsQ0FBYyxVQUFDLEdBQUQsRUFBUztBQUFFLGFBQU8sTUFBTSxXQUFOLENBQWtCLE9BQWxCLENBQTBCLEdBQTFCLE1BQW1DLENBQUMsQ0FBM0M7QUFBNkMsS0FBdEUsQ0FBUjtBQUNELEdBRkQ7O0FBSUEsUUFBTSxVQUFOLEdBQW1CLElBQW5CLENBekdNLENBeUdtQjs7QUFFekI7QUFDQSxNQUFNLGNBQWMsTUFBTSxLQUFOLENBQVksU0FBWixDQUFzQixHQUExQztBQUNBO0FBQ0EsTUFBTSxpQkFBaUIsTUFBTSxLQUFOLENBQVksU0FBWixDQUFzQixNQUE3Qzs7QUFFQSxXQUFTLE9BQVQsQ0FBa0IsQ0FBbEIsRUFBcUI7QUFDbkI7QUFDQTtBQUNBLGdCQUFZLElBQVosQ0FBa0IsS0FBbEIsRUFBeUIsQ0FBekI7QUFDRDtBQUNELFdBQVMsVUFBVCxDQUFxQixDQUFyQixFQUF3QjtBQUN0QixtQkFBZSxJQUFmLENBQXFCLEtBQXJCLEVBQTRCLENBQTVCO0FBQ0Q7O0FBRUQ7O0FBRUEsTUFBTSxRQUFRLE9BQU8sV0FBUCxDQUFvQixLQUFwQixFQUEyQixPQUFPLGFBQWxDLEVBQWlELEtBQWpELEVBQXdELElBQXhELENBQWQ7QUFDQSxVQUFTLEtBQVQ7O0FBRUEsTUFBTSxrQkFBa0IsWUFBWSxNQUFaLENBQW9CLElBQXBCLENBQXhCO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLE9BQU8sdUJBQVAsR0FBaUMsR0FBOUQ7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsQ0FBQyxJQUE5QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixLQUE3QjtBQUNBLFFBQU0sR0FBTixDQUFXLGVBQVg7O0FBRUEsTUFBTSxZQUFZLE9BQU8sZUFBUCxFQUFsQjtBQUNBLFNBQU8sZ0JBQVAsQ0FBeUIsVUFBVSxRQUFuQyxFQUE2QyxRQUE3QztBQUNBLFlBQVUsUUFBVixDQUFtQixHQUFuQixDQUF3QixJQUF4QixFQUE4QixDQUE5QixFQUFpQyxRQUFTLElBQTFDO0FBQ0EsUUFBTSxHQUFOLENBQVcsU0FBWDs7QUFFQSxNQUFNLFVBQVUsT0FBTyxXQUFQLENBQW9CLEtBQXBCLEVBQTJCLE9BQU8sa0JBQWxDLEVBQXNELEtBQXRELEVBQTZELElBQTdELENBQWhCO0FBQ0EsVUFBUSxRQUFSLENBQWlCLENBQWpCLEdBQXFCLE9BQU8sYUFBUCxHQUF1QixJQUE1QyxDQTFJTSxDQTBJNEM7QUFDbEQsVUFBUSxJQUFSLEdBQWUsU0FBZjtBQUNBLFVBQVMsT0FBVDs7QUFFQSxNQUFNLFVBQVUsUUFBUSxPQUFSLEVBQWhCO0FBQ0EsVUFBUSxRQUFSLENBQWlCLEdBQWpCLENBQXNCLFFBQVEsR0FBOUIsRUFBbUMsQ0FBbkMsRUFBc0MsUUFBUSxLQUE5QztBQUNBLFVBQVEsR0FBUixDQUFhLE9BQWI7QUFDQSxRQUFNLFFBQU4sR0FBaUIsSUFBakI7QUFDQSxRQUFNLFdBQU4sR0FBb0IsWUFBVztBQUFFLFlBQVEsT0FBUixHQUFrQixLQUFsQjtBQUF5QixHQUExRDtBQUNBLFFBQU0sV0FBTixHQUFvQixZQUFXO0FBQUUsWUFBUSxPQUFSLEdBQWtCLElBQWxCO0FBQXdCLEdBQXpEO0FBQ0EsUUFBTSxVQUFOLEdBQW1CLFlBQVc7QUFDNUIsVUFBTSxXQUFOO0FBQ0E7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsS0FBaEI7QUFDRCxHQUpEO0FBS0EsUUFBTSxVQUFOLEdBQW1CLFlBQU07QUFDdkI7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDRCxHQUhEOztBQUtBO0FBQ0EsTUFBTSxjQUFjLElBQUksTUFBTSxLQUFWLEVBQXBCO0FBQ0EsUUFBTSxHQUFOLENBQVUsV0FBVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU0sYUFBTixHQUFzQixVQUFTLEdBQVQsRUFBYTtBQUNqQyxnQkFBWSxHQUFaLENBQWdCLEdBQWhCO0FBQ0EsUUFBSSxNQUFKLEdBQWEsS0FBYjtBQUNBLFFBQUksY0FBSixHQUFxQixJQUFyQjs7QUFFQTtBQUNBO0FBQ0EsUUFBSSxDQUFDLElBQUksYUFBVCxFQUF3QixJQUFJLGFBQUosR0FBb0I7QUFBQSxhQUFnQixJQUFJLFdBQUosQ0FBZ0IsTUFBaEIsQ0FBdUIsWUFBdkIsQ0FBaEI7QUFBQSxLQUFwQjtBQUN4QixRQUFJLE9BQUosR0FBYyxDQUFFLEdBQUYsQ0FBZCxDQVJpQyxDQVFWO0FBQ3ZCLHNCQUFrQixJQUFsQixDQUF1QixHQUF2QjtBQUNELEdBVkQ7O0FBY0EsTUFBTSx1QkFBdUIsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUMsT0FBTyxRQUFSLEVBQWtCLGFBQWEsSUFBL0IsRUFBNUIsQ0FBN0I7QUFDQSxNQUFNLElBQUksT0FBTyxhQUFQLEdBQXVCLEdBQWpDO0FBQ0EsTUFBTSxtQkFBbUIsSUFBSSxNQUFNLFdBQVYsQ0FBdUIsQ0FBdkIsRUFBMEIsQ0FBMUIsRUFBNkIsT0FBTyxZQUFQLEdBQW9CLENBQWpELENBQXpCO0FBQ0E7QUFDQSxNQUFNLGNBQWMsUUFBUSxJQUFSLEdBQWUsUUFBZixDQUF3QixHQUE1QztBQUNBLE1BQU0sZ0JBQWdCLFFBQVEsTUFBUixHQUFpQixRQUFqQixDQUEwQixHQUFoRDtBQUNBLHVCQUFxQixHQUFyQixHQUEyQixhQUEzQjtBQUNBLE1BQU0sZUFBZSxJQUFJLE1BQU0sSUFBVixDQUFpQixnQkFBakIsRUFBbUMsb0JBQW5DLENBQXJCO0FBQ0EsZUFBYSxPQUFiLEdBQXVCLEtBQXZCO0FBQ0EsZUFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLE9BQU8sWUFBUCxHQUFzQixPQUFPLGFBQXZEO0FBQ0EsTUFBTSwwQkFBMEIsMkJBQWtCLFlBQWxCLENBQWhDO0FBQ0EsZUFBYSxXQUFiLEdBQTJCLHVCQUEzQjtBQUNBLDBCQUF3QixNQUF4QixDQUErQixFQUEvQixDQUFtQyxXQUFuQyxFQUFnRCxVQUFVLENBQVYsRUFBYTtBQUMzRCxRQUFJLE1BQU0sY0FBVixFQUEwQjtBQUN4QixZQUFNLFFBQU47QUFDRCxLQUZELE1BRU8sTUFBTSxNQUFOO0FBQ1AsTUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNELEdBTEQ7QUFNQTtBQUNBLFFBQU0sYUFBTixDQUFvQixZQUFwQjs7QUFFQSxNQUFJLGVBQWUsS0FBbkI7QUFDQSxTQUFPLGNBQVAsQ0FBdUIsS0FBdkIsRUFBOEIsWUFBOUIsRUFBNEM7QUFDMUMsU0FBSyxlQUFNO0FBQ1QsYUFBTyxZQUFQO0FBQ0QsS0FIeUM7QUFJMUMsU0FBSyxhQUFFLFFBQUYsRUFBZ0I7QUFDbkIsVUFBSSxhQUFhLFlBQWpCLEVBQStCO0FBQy9CLG1CQUFhLE9BQWIsR0FBdUIsUUFBdkI7QUFDQSxxQkFBZSxRQUFmO0FBQ0Q7QUFSeUMsR0FBNUM7O0FBWUEsUUFBTSxHQUFOLEdBQVksWUFBbUI7QUFDN0IsUUFBTSxnQkFBZ0Isa0NBQXRCOztBQUVBLFFBQUksYUFBSixFQUFtQjtBQUNqQixZQUFNLGFBQU4sQ0FBcUIsYUFBckI7QUFDQSxhQUFPLGFBQVA7QUFDRCxLQUhELE1BSUk7QUFDRixhQUFPLElBQUksTUFBTSxLQUFWLEVBQVA7QUFDRDtBQUNGLEdBVkQ7O0FBWUE7Ozs7QUFJQSxRQUFNLGNBQU4sR0FBdUIsVUFBUyxDQUFULEVBQVc7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU0sU0FBUyw4QkFBa0IsS0FBbEIsQ0FBZjtBQUNBLFFBQUksT0FBTyxXQUFYLEVBQXdCLE9BQU8sV0FBUCxDQUFtQixPQUFuQixHQUE2QixLQUE3QjtBQUN4QixXQUFPLFdBQVAsR0FBcUIsQ0FBckI7QUFDQSxRQUFJLENBQUMsQ0FBTCxFQUFRO0FBQ1IsTUFBRSxPQUFGLEdBQVksSUFBWjtBQUNBLFFBQUksRUFBRSxhQUFOLEVBQXFCLEVBQUUsYUFBRjtBQUNyQixXQUFPLHlCQUFQLEdBQW1DLElBQW5DO0FBQ0E7QUFDQTtBQUNBLGFBQVMsZ0JBQVQsQ0FBMEIsTUFBMUIsRUFBa0M7QUFDaEMsYUFBTyxRQUFQLENBQWdCLE9BQWhCLENBQXdCLGFBQUs7QUFDM0IsVUFBRSxRQUFGLENBQVcsV0FBWCxHQUF5QixDQUF6QjtBQUNBLHlCQUFpQixDQUFqQjtBQUNELE9BSEQ7QUFJRDtBQUNELHFCQUFpQixDQUFqQjtBQUNELEdBdEJEOztBQXdCQTs7Ozs7QUFLQSxRQUFNLGdCQUFOLEdBQXlCLFlBQVc7QUFDbEMsUUFBTSxTQUFTLDhCQUFrQixLQUFsQixDQUFmO0FBQ0EsUUFBSSxDQUFDLE9BQU8seUJBQVosRUFBdUM7QUFDckM7QUFDQSxVQUFJLE9BQU8sV0FBWCxFQUF3QjtBQUN0QixlQUFPLFdBQVAsQ0FBbUIsT0FBbkIsR0FBNkIsS0FBN0I7QUFDQSxlQUFPLFdBQVAsR0FBcUIsSUFBckI7QUFDRDtBQUNGO0FBQ0YsR0FURDs7QUFZQTs7Ozs7Ozs7OztBQVlBLFFBQU0sTUFBTixHQUFlLFlBQW1CO0FBQUEsdUNBQU4sSUFBTTtBQUFOLFVBQU07QUFBQTs7QUFDaEM7QUFDQSxRQUFNLEtBQUssMkJBQWMsSUFBZCxDQUFYLENBRmdDLENBRUM7QUFDakMsUUFBSSxDQUFDLEVBQUwsRUFBUyxPQUFPLEtBQVA7QUFDVCxTQUFLLE9BQUwsQ0FBYyxVQUFVLEdBQVYsRUFBZTtBQUMzQixjQUFRLE1BQVIsQ0FBZSxNQUFNLFFBQU4sQ0FBZSxHQUFmLENBQWYsRUFBb0MseUZBQXBDO0FBQ0EsVUFBSSxJQUFJLFFBQVIsRUFBa0I7QUFDaEIsWUFBSSxNQUFKLCtCQUFlLElBQUksV0FBbkI7QUFDRDtBQUNELG9CQUFjLE1BQWQsQ0FBcUIsR0FBckI7QUFDRCxLQU5EO0FBT0E7QUFDQSxVQUFNLGFBQU47QUFDQSxXQUFPLElBQVA7QUFDRCxHQWREOztBQWdCQTtBQUNBO0FBQ0EsUUFBTSxnQkFBTixHQUF5QixVQUFDLE1BQUQsRUFBWTtBQUNuQyxVQUFNLGNBQU4sR0FBdUIsTUFBdkI7QUFDQSxRQUFJLFdBQVcsSUFBZixFQUFxQjtBQUNuQixtQkFBYSxRQUFiLENBQXNCLEdBQXRCLEdBQTRCLGFBQTVCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsMkJBQXFCLEdBQXJCLEdBQTJCLFdBQTNCO0FBQ0EsWUFBTSxVQUFOO0FBQ0EsWUFBTSxXQUFOO0FBQ0EsWUFBTSxNQUFOLEdBQWUsS0FBZjtBQUNEO0FBQ0YsR0FWRDs7QUFZQTs7Ozs7OztBQU9BLFFBQU0sV0FBTixHQUFvQixVQUFDLEtBQUQsRUFBVztBQUM3QixRQUFJLENBQUMsTUFBTSxRQUFQLElBQW1CLE1BQU0sTUFBTixLQUFpQixLQUF4QyxFQUErQyxPQUFPLEtBQVA7QUFDL0MsVUFBTSxnQkFBTixDQUF1QixLQUF2QjtBQUNBLGtCQUFjLE1BQWQsQ0FBcUIsS0FBckI7QUFDQTtBQUNBLGVBQVcsS0FBWDtBQUNBLFVBQU0sYUFBTjtBQUNBLFdBQU8sS0FBUCxDQVA2QixDQU9mO0FBQ2YsR0FSRDs7QUFVQTs7OztBQUlBLFFBQU0sTUFBTixHQUFlLFlBQU07QUFDbkIsUUFBSSxNQUFNLE1BQU4sS0FBaUIsS0FBckIsRUFBNEIsT0FBTyxLQUFQO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLFFBQU0sWUFBWSw4QkFBa0IsS0FBbEIsQ0FBbEI7QUFDQSxVQUFNLE1BQU4sQ0FBYSxXQUFiLENBQXlCLEtBQXpCOztBQUVBO0FBQ0EsUUFBTSxNQUFNLFVBQVUsTUFBVixJQUFvQixNQUFNLE1BQXRDO0FBQ0EsUUFBSSxDQUFDLEdBQUwsRUFBVSxPQVZTLENBVUQ7QUFDbEIsUUFBSSxHQUFKLENBQVEsS0FBUjtBQUNBLFFBQU0sSUFBSSxVQUFVLE1BQVYsQ0FBaUIsS0FBakIsRUFBVjs7QUFFQSxVQUFNLFlBQU4sQ0FBbUIsQ0FBbkI7QUFDQSxNQUFFLFdBQUYsQ0FBYyxJQUFJLE1BQU0sT0FBVixFQUFkO0FBQ0EsUUFBTSxJQUFJLElBQUksTUFBTSxPQUFWLENBQWtCLE9BQU8sWUFBekIsRUFBdUMsQ0FBdkMsRUFBMEMsQ0FBMUMsRUFBNkMsWUFBN0MsQ0FBMEQsQ0FBMUQsQ0FBVjtBQUNBLFVBQU0sUUFBTixDQUFlLEdBQWYsQ0FBbUIsQ0FBbkI7O0FBRUEsUUFBSSxVQUFVLFVBQWQsRUFBMEI7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQU0sNkJBQTZCLEtBQW5DOztBQUVBO0FBQ0E7O0FBRUEsVUFBSSwwQkFBSixFQUFnQztBQUM5QixrQkFBVSxRQUFWLENBQW1CLFlBQW5CLENBQWdDLElBQWhDLENBQXFDLEtBQXJDO0FBQ0Esa0JBQVUsUUFBVixDQUFtQixTQUFuQixHQUErQixVQUFVLFNBQXpDLENBRjhCLENBRXFCO0FBQ3BELE9BSEQsTUFHTztBQUNMLFlBQU0sUUFBUSxLQUFkO0FBQ0EsWUFBTSxZQUFZLFVBQVUsTUFBNUIsQ0FGSyxDQUUrQjtBQUNwQyxZQUFNLFlBQVksVUFBVSxTQUE1QixDQUhLLENBR2tDOztBQUV2QyxtQkFBVyxLQUFYLEVBQWtCLFNBQWxCLEVBQTZCLFNBQTdCO0FBQ0Q7QUFFRjtBQUNELFVBQU0sUUFBTixDQUFlLGNBQWYsR0FBZ0MsVUFBVSxRQUFWLENBQW1CLGNBQW5ELENBMUNtQixDQTBDZ0Q7QUFDbkUsVUFBTSxpQkFBTixDQUF3QixHQUF4QjtBQUNBLFVBQU0sSUFBTjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBOUNEOztBQWdEQTtBQUNBLFdBQVMsV0FBVCxDQUFxQixLQUFyQixFQUE0QixNQUE1QixFQUFvQyxLQUFwQyxFQUEyQztBQUN6QyxXQUFPLGlCQUFQO0FBQ0EsVUFBTSxZQUFOLENBQW1CLE9BQU8sV0FBMUI7QUFDQSxXQUFPLE1BQVAsQ0FBYyxLQUFkO0FBQ0EsVUFBTSxHQUFOLENBQVUsS0FBVjtBQUNEO0FBQ0QsV0FBUyxXQUFULENBQXFCLEtBQXJCLEVBQTRCLEtBQTVCLEVBQW1DLE1BQW5DLEVBQTJDO0FBQ3pDLFdBQU8saUJBQVA7QUFDQSxVQUFNLFlBQU4sQ0FBb0IsSUFBSSxNQUFNLE9BQVYsR0FBb0IsVUFBcEIsQ0FBK0IsT0FBTyxXQUF0QyxDQUFwQjtBQUNGLFVBQU0sTUFBTixDQUFhLEtBQWI7QUFDQSxXQUFPLEdBQVAsQ0FBVyxLQUFYO0FBQ0M7QUFDRCxXQUFTLFVBQVQsQ0FBb0IsS0FBcEIsRUFBMkIsU0FBM0IsRUFBc0MsU0FBdEMsRUFBaUQ7QUFDL0MsUUFBSSxPQUFPLFNBQVg7QUFDQSxXQUFPLEtBQUssTUFBWjtBQUFvQixhQUFPLEtBQUssTUFBWjtBQUFwQixLQUNBLElBQU0sUUFBUSxJQUFkOztBQUVBLGdCQUFZLEtBQVosRUFBbUIsU0FBbkIsRUFBOEIsS0FBOUI7QUFDQSxnQkFBWSxLQUFaLEVBQW1CLEtBQW5CLEVBQTBCLFNBQTFCO0FBQ0Q7O0FBRUQsUUFBTSxnQkFBTixHQUF5QixNQUFNLE1BQS9COztBQUVBLFFBQU0sUUFBTixHQUFpQixZQUFNO0FBQ3JCLFFBQUksQ0FBQyxNQUFNLGNBQVgsRUFBMkIsT0FBTyxLQUFQO0FBQzNCO0FBQ0EsVUFBTSxjQUFOLENBQXFCLFNBQXJCLENBQStCLEtBQS9CLEVBSHFCLENBR2tCO0FBQ3ZDLFFBQU0sWUFBWSw4QkFBa0IsTUFBTSxjQUF4QixDQUFsQjtBQUNBLFFBQUksVUFBVSxVQUFkLEVBQTBCO0FBQ3hCO0FBQ0E7QUFDQSxVQUFJLFFBQVEsVUFBVSxRQUFWLENBQW1CLFlBQS9CO0FBQ0EsVUFBTSxRQUFRLE1BQU0sT0FBTixDQUFjLEtBQWQsQ0FBZDtBQUNBLFVBQUksUUFBUSxDQUFDLENBQWIsRUFBZ0IsVUFBVSxRQUFWLENBQW1CLFlBQW5CLENBQWdDLE1BQWhDLENBQXVDLEtBQXZDLEVBQThDLENBQTlDO0FBQ2pCO0FBQ0Q7QUFDQSxVQUFNLGdCQUFOLENBQXVCLElBQXZCO0FBQ0EsV0FBTyxJQUFQO0FBQ0QsR0FmRDs7QUFpQkEsUUFBTSxhQUFOLEdBQXNCLFlBQW1CO0FBQUEsdUNBQU4sSUFBTTtBQUFOLFVBQU07QUFBQTs7QUFDdkMsU0FBSyxPQUFMLENBQWMsVUFBVSxHQUFWLEVBQWU7QUFDM0IsVUFBSSxJQUFJLFFBQVIsRUFBa0I7QUFDaEIsY0FBTSxTQUFOLENBQWdCLEdBQWhCO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsc0JBQWMsR0FBZCxDQUFtQixHQUFuQjtBQUNBLFlBQUksTUFBSixHQUFhLEtBQWI7QUFDRDtBQUNEO0FBQ0EsVUFBSSxJQUFJLFVBQVIsRUFBb0IsT0FSTyxDQVFDO0FBQzVCLFVBQUksVUFBSixHQUFpQixlQUFPO0FBQ3RCLFlBQUksUUFBSixDQUFhLEdBQWIsR0FBbUIsR0FBbkI7QUFDQTtBQUNBLFlBQU0sU0FBUyw4QkFBYyxXQUFkLEVBQTJCLEdBQTNCLEVBQWdDLE9BQU8sWUFBdkMsRUFBcUQsSUFBSSxPQUF6RCxFQUFrRSxPQUFPLFlBQXpFLENBQWY7QUFDQSxZQUFJLFFBQUosQ0FBYSxNQUFiLEdBQXNCLE1BQXRCO0FBQ0E7O0FBRUEsWUFBSSxJQUFJLFdBQVIsRUFBcUI7QUFDbkI7QUFDQSxjQUFJLFdBQUosQ0FBZ0IsTUFBaEIsQ0FBdUIsRUFBdkIsQ0FBMEIsTUFBMUIsRUFBa0MsWUFBTTtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQUksSUFBSSxPQUFSLEVBQWlCLDBCQUFjLEdBQWQsRUFBbUIsTUFBbkIsRUFBMkIsSUFBSSxXQUFKLENBQWdCLFFBQWhCLEVBQTNCO0FBQ2xCLFdBUEQ7QUFRRCxTQVZELE1BVU87QUFDTCxrQkFBUSxLQUFSLGdDQUEwQyxJQUFJLE9BQTlDO0FBQ0Q7QUFDRixPQXBCRDs7QUFzQkEsVUFBSSxVQUFKLEdBQWlCO0FBQUEsZUFBTSxJQUFJLFFBQUosQ0FBYSxHQUFuQjtBQUFBLE9BQWpCO0FBQ0QsS0FoQ0Q7O0FBa0NBLFVBQU0sYUFBTjtBQUNELEdBcENEOztBQXNDQSxRQUFNLFNBQU4sR0FBa0IsWUFBbUI7QUFBQSx1Q0FBTixJQUFNO0FBQU4sVUFBTTtBQUFBOztBQUNuQyxTQUFLLE9BQUwsQ0FBYyxVQUFVLEdBQVYsRUFBZTtBQUMzQjtBQUNBLG9CQUFjLEdBQWQsQ0FBbUIsR0FBbkI7QUFDQSxVQUFJLE1BQUosR0FBYSxLQUFiO0FBQ0EsVUFBSSxNQUFKLENBQVcsUUFBWDtBQUNBLFVBQUksS0FBSixDQUFVLEdBQVYsQ0FBYyxDQUFkLEVBQWdCLENBQWhCLEVBQWtCLENBQWxCO0FBQ0EsVUFBSSxRQUFKLENBQWEsR0FBYixDQUFpQixDQUFqQixFQUFtQixDQUFuQixFQUFxQixDQUFyQjtBQUNBLFVBQUksUUFBSixDQUFhLEdBQWIsQ0FBaUIsQ0FBakIsRUFBbUIsQ0FBbkIsRUFBcUIsQ0FBckI7O0FBRUEsVUFBSSxXQUFKO0FBQ0EsVUFBSSxLQUFKO0FBQ0QsS0FYRDs7QUFhQSxVQUFNLGFBQU47QUFDRCxHQWZEOztBQWlCQSxRQUFNLGFBQU4sR0FBc0IsWUFBTTtBQUMxQixRQUFJLDhCQUFrQixLQUFsQixNQUE2QixLQUE3QixJQUFzQyxDQUFDLGVBQWUsUUFBZixDQUF3QixLQUF4QixDQUEzQyxFQUEyRTtBQUN6RTtBQUNBLGNBQVEsS0FBUjtBQUNEO0FBQ0QsbUJBQWUsTUFBZixDQUFzQixlQUFlLE9BQWYsQ0FBdUIsS0FBdkIsQ0FBdEIsRUFBcUQsQ0FBckQ7QUFDQSxtQkFBZSxJQUFmLENBQW9CLEtBQXBCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQUksTUFBTSxRQUFOLENBQWUsY0FBbkIsRUFBbUM7QUFDcEMsR0FiRDs7QUFlQTs7QUFFQSxXQUFTLGFBQVQsR0FBd0I7QUFDdEI7O0FBRUEsUUFBTSxhQUFhLEtBQW5COztBQUVBLFFBQU0sWUFBWSw4QkFBa0IsS0FBbEIsQ0FBbEI7QUFDQTtBQUNBLFFBQUksY0FBYyxLQUFsQixFQUF5QjtBQUN2QixVQUFJLFVBQVUsV0FBVixJQUF5QixVQUFVLFdBQVYsQ0FBc0IsYUFBbkQsRUFBa0UsVUFBVSxXQUFWLENBQXNCLGFBQXRCOztBQUVsRSxnQkFBVSxRQUFWLENBQW1CLGdCQUFuQixHQUFzQyxJQUF0QztBQUNBLGdCQUFVLFFBQVYsQ0FBbUIsWUFBbkIsR0FBa0MsQ0FBbEM7QUFDQSxnQkFBVSxRQUFWLENBQW1CLFdBQW5CLEdBQWlDLENBQWpDO0FBQ0EsZ0JBQVUsUUFBVixDQUFtQixVQUFuQixHQUFnQyxDQUFDLFVBQVUsUUFBVixDQUFtQixDQUFwRDtBQUNBOztBQUVBLFVBQUksQ0FBQyxlQUFlLFFBQWYsQ0FBd0IsS0FBeEIsQ0FBTCxFQUFxQztBQUNuQyx1QkFBZSxJQUFmLENBQW9CLEtBQXBCO0FBQ0EsWUFBSSxNQUFNLFFBQU4sQ0FBZSxjQUFuQixFQUFtQztBQUNuQztBQUNBO0FBQ0Q7QUFDRixLQWZELE1BZU87QUFDTDtBQUNBLFlBQU0sUUFBTixDQUFlLFlBQWYsR0FBOEIsTUFBTSxNQUFOLENBQWEsUUFBYixDQUFzQixZQUFwRDtBQUNBLFlBQU0sUUFBTixDQUFlLFdBQWYsR0FBNkIsTUFBTSxNQUFOLENBQWEsUUFBYixDQUFzQixXQUFuRCxDQUhLLENBRzJEOztBQUVoRSxVQUFJLGVBQWUsUUFBZixDQUF3QixLQUF4QixDQUFKLEVBQW9DO0FBQ2xDLHVCQUFlLE1BQWYsQ0FBc0IsZUFBZSxPQUFmLENBQXVCLEtBQXZCLENBQXRCLEVBQXFELENBQXJEO0FBQ0EsWUFBSSxNQUFNLFFBQU4sQ0FBZSxjQUFuQixFQUFtQztBQUNuQztBQUNBO0FBQ0Q7QUFDRjs7QUFHRCxRQUFNLHVCQUF1QixPQUFPLFlBQVAsR0FBc0IsT0FBTyxhQUExRDtBQUNBLFFBQU0sbUJBQW1CLE9BQU8sYUFBUCxHQUF1QixPQUFPLGFBQXZEO0FBQ0EsUUFBSSxlQUFlLGdCQUFuQjs7QUFFQSxrQkFBYyxRQUFkLENBQXVCLE9BQXZCLENBQWdDLFVBQUMsQ0FBRCxFQUFPO0FBQUUsUUFBRSxPQUFGLEdBQVksQ0FBQyxNQUFNLFNBQW5CO0FBQThCLEtBQXZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFJLGVBQWUsQ0FBbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFjLFFBQWQsQ0FBdUIsT0FBdkIsQ0FBZ0MsVUFBQyxDQUFELEVBQUksQ0FBSixFQUFVO0FBQ3RDLFVBQUksRUFBRSxRQUFGLEtBQWUsU0FBbkIsRUFBOEI7QUFDOUIsVUFBRSxRQUFGLEdBQWEsZ0JBQWMsQ0FBM0I7QUFDRCxPQUZDLE1BRUssZUFBZSxFQUFFLFFBQWpCO0FBQ1IsS0FKRDtBQUtBLGtCQUFjLFFBQWQsQ0FBdUIsSUFBdkIsQ0FBNEIsVUFBQyxDQUFELEVBQUksQ0FBSixFQUFVO0FBQUUsYUFBTyxFQUFFLFFBQUYsR0FBYSxFQUFFLFFBQXRCO0FBQWdDLEtBQXhFOztBQUVBLFFBQUssTUFBTSxTQUFYLEVBQXVCO0FBQ3JCLGdCQUFVLFFBQVYsQ0FBbUIsQ0FBbkIsR0FBdUIsS0FBSyxFQUFMLEdBQVUsR0FBakM7QUFDRCxLQUZELE1BRU87QUFDTCxnQkFBVSxRQUFWLENBQW1CLENBQW5CLEdBQXVCLENBQXZCOztBQUVBLFVBQUksSUFBSSxDQUFSO0FBQUEsVUFBVyxhQUFhLGdCQUF4Qjs7QUFFQSxvQkFBYyxRQUFkLENBQXVCLE9BQXZCLENBQWdDLFVBQVUsS0FBVixFQUFpQixLQUFqQixFQUF3QjtBQUN0RCxZQUFJLE1BQU0sUUFBVixFQUFvQjtBQUNsQixnQkFBTSxRQUFOLENBQWUsVUFBZixHQUE0QixNQUFNLFFBQU4sQ0FBZSxVQUFmLEdBQTRCLENBQXhELENBRGtCLENBQ3lDO0FBQzNELGdCQUFNLGFBQU47QUFDRDtBQUNELFlBQUssQ0FBQyxVQUFOLEVBQW1CO0FBQ2pCO0FBQ0EsY0FBSSxJQUFJLE1BQU0sT0FBTixHQUFnQixNQUFNLE9BQXRCLEdBQWdDLG9CQUF4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBSSxVQUFVLE9BQU8sYUFBYSxDQUFwQixDQUFkOztBQUVBLGNBQUksTUFBTSxRQUFWLEVBQW9CO0FBQ2xCO0FBQ0E7QUFDQSxnQkFBSSxTQUFTLE9BQU8sYUFBYSxnQkFBcEIsQ0FBYjtBQUNBLGtCQUFNLFFBQU4sQ0FBZSxDQUFmLEdBQW1CLElBQUksTUFBdkI7QUFDRCxXQUxELE1BS087QUFDTCxrQkFBTSxRQUFOLENBQWUsQ0FBZixHQUFtQixJQUFJLE9BQXZCO0FBQ0Q7QUFDRDtBQUNBLGVBQUssT0FBTDtBQUNBLHVCQUFhLENBQWI7O0FBR0EsY0FBSSxRQUFRLDBCQUFaLEVBQ0UsZ0JBQWdCLENBQWhCO0FBQ0YsZ0JBQU0sUUFBTixDQUFlLENBQWYsR0FBbUIsS0FBbkI7O0FBRUEsY0FBSSxDQUFDLFFBQU0sQ0FBUCxJQUFZLDBCQUFaLEtBQTJDLENBQS9DLEVBQWtELElBQUksQ0FBSjs7QUFFbEQsZ0JBQU0sUUFBTixDQUFlLENBQWYsSUFBb0IsUUFBUSxLQUFLLEtBQUwsQ0FBVyxRQUFRLDBCQUFuQixDQUE1QjtBQUdELFNBL0JELE1BK0JPO0FBQ0w7QUFDQTtBQUNBLGNBQU0sZUFBZSw2QkFBNkIsb0JBQWxELENBSEssQ0FHbUU7QUFDeEUsY0FBTSxLQUFJLE1BQU0sT0FBTixHQUFnQixNQUFNLE9BQXRCLEdBQWdDLG9CQUExQztBQUNBLGNBQU0sZUFBZSxNQUFNLFFBQU4sSUFBa0IsTUFBTSxRQUFOLENBQWUsV0FBZixHQUE2QixNQUFNLFFBQU4sQ0FBZSxXQUFuRjs7QUFFQTtBQUNBLGNBQUksTUFBTSxRQUFOLENBQWUsWUFBZixHQUE4QixZQUFsQyxFQUFnRDtBQUM5QztBQUNBLGtCQUFNLFFBQU4sQ0FBZSxXQUFmO0FBQ0Esa0JBQU0sUUFBTixDQUFlLFlBQWYsR0FBOEIsRUFBOUI7QUFDQSwyQkFBZSxDQUFmLENBSjhDLENBSTVCO0FBQ2xCLHlCQUFhLENBQWIsQ0FMOEMsQ0FLOUI7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsZ0JBQUksTUFBTSxRQUFOLENBQWUsVUFBbkI7QUFDRCxXQVZELE1BVU87QUFDTCxrQkFBTSxRQUFOLENBQWUsWUFBZixJQUErQixFQUEvQjtBQUNEOztBQUVEO0FBQ0EsY0FBSSxXQUFVLE9BQU8sYUFBYSxFQUFwQixDQUFkOztBQUdBLGNBQUksTUFBTSxRQUFWLEVBQW9CO0FBQ2xCO0FBQ0E7QUFDQSxnQkFBSSxTQUFTLE9BQU8sYUFBYSxnQkFBcEIsQ0FBYjtBQUNBLGtCQUFNLFFBQU4sQ0FBZSxDQUFmLEdBQW1CLElBQUksTUFBdkI7QUFDRCxXQUxELE1BS087QUFDTCxrQkFBTSxRQUFOLENBQWUsQ0FBZixHQUFtQixJQUFJLFFBQXZCO0FBQ0Q7QUFDRDtBQUNBO0FBQ0EsZUFBSyxRQUFMO0FBQ0EsdUJBQWEsRUFBYjs7QUFFQSwwQkFBZ0IsRUFBaEI7QUFDQSxnQkFBTSxRQUFOLENBQWUsQ0FBZixHQUFtQixLQUFuQjtBQUNBLGdCQUFNLFFBQU4sQ0FBZSxDQUFmLElBQW9CLFFBQVEsTUFBTSxRQUFOLENBQWUsV0FBM0MsQ0F6Q0ssQ0F5Q21EOztBQUV4RCxjQUFJLE1BQU0sUUFBVixFQUFvQjtBQUNsQjtBQUNBLGtCQUFNLFFBQU4sQ0FBZSxZQUFmLEdBQThCLE1BQU0sUUFBTixDQUFlLFlBQTdDO0FBQ0Esa0JBQU0sUUFBTixDQUFlLFdBQWYsR0FBNkIsTUFBTSxRQUFOLENBQWUsV0FBNUM7QUFDRDtBQUNGO0FBQ0QsY0FBTSxZQUFOO0FBQ0QsT0F0RkQ7QUF1RkQ7O0FBRUQsVUFBTSxPQUFOLEdBQWdCLFlBQWhCOztBQUVBO0FBQ0EsUUFBSSxhQUFhLE9BQU8sWUFBeEI7QUFDQSxRQUFJLE1BQU0sTUFBTixLQUFpQixLQUFyQixFQUE0QjtBQUMxQixtQkFBYSxPQUFPLGVBQXBCO0FBQ0Q7O0FBRUQsV0FBTyxXQUFQLENBQW1CLEtBQW5CLEVBQTBCLFVBQTFCLEVBQXNDLE9BQU8sYUFBN0MsRUFBNEQsS0FBNUQ7O0FBRUEsUUFBSSxjQUFjLEtBQWxCLEVBQXlCO0FBQ3ZCLFlBQU0sUUFBTixDQUFlLGdCQUFmLEdBQWtDLEtBQWxDO0FBQ0EsWUFBTSxRQUFOLENBQWUsYUFBZixHQUErQixLQUEvQjtBQUNBLFlBQU0saUJBQU47QUFDRDtBQUNGOztBQUdELFdBQVMsbUJBQVQsR0FBK0I7QUFDN0IsUUFBSSxLQUFLLE9BQU8sYUFBaEI7QUFDQSxRQUFJLElBQUksT0FBTyxZQUFmO0FBQ0EsZ0JBQVksUUFBWixDQUFxQixPQUFyQixDQUE2QixVQUFDLENBQUQsRUFBTztBQUNsQyxVQUFJLENBQUMsRUFBRSxPQUFQLEVBQWdCO0FBQ2hCLFdBQUssS0FBSyxHQUFWO0FBQ0EsUUFBRSxRQUFGLENBQVcsQ0FBWCxHQUFlLENBQWY7QUFDQSxXQUFLLEtBQUssR0FBVixDQUprQyxDQUluQjtBQUNoQixLQUxEO0FBTUQ7O0FBRUQsV0FBUyxVQUFULEdBQXFCO0FBQ25CLFFBQUksWUFBWSxRQUFaLEVBQUosRUFBNEI7QUFDMUIsWUFBTSxRQUFOLENBQWUsS0FBZixDQUFxQixNQUFyQixDQUE2QixPQUFPLGNBQXBDO0FBQ0QsS0FGRCxNQUdJO0FBQ0YsWUFBTSxRQUFOLENBQWUsS0FBZixDQUFxQixNQUFyQixDQUE2QixPQUFPLG1CQUFwQztBQUNEOztBQUVELFFBQUksZ0JBQWdCLFFBQWhCLEVBQUosRUFBZ0M7QUFDOUIsY0FBUSxRQUFSLENBQWlCLEtBQWpCLENBQXVCLE1BQXZCLENBQStCLE9BQU8sY0FBdEM7QUFDRCxLQUZELE1BR0k7QUFDRixjQUFRLFFBQVIsQ0FBaUIsS0FBakIsQ0FBdUIsTUFBdkIsQ0FBK0IsT0FBTyxtQkFBdEM7QUFDRDs7QUFFRDtBQUNBLFFBQUssd0JBQXdCLFFBQXhCLEVBQUwsRUFBMEM7QUFDeEMsMkJBQXFCLEtBQXJCLENBQTJCLE1BQTNCLENBQW1DLFFBQW5DO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsMkJBQXFCLEtBQXJCLENBQTJCLE1BQTNCLENBQW1DLFFBQW5DO0FBQ0Q7QUFDRjs7QUFFRCxNQUFNLGNBQWMsMkJBQW1CLEtBQW5CLENBQXBCO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFdBQXZCLEVBQW9DLFVBQVUsQ0FBVixFQUFhO0FBQy9DLFFBQUksTUFBTSxTQUFWLEVBQXFCLE1BQU0sSUFBTixHQUFyQixLQUNLLE1BQU0sS0FBTjtBQUNMLE1BQUUsTUFBRixHQUFXLElBQVg7QUFDRCxHQUpEOztBQU1BLFFBQU0sSUFBTixHQUFhLFlBQVc7QUFDdEIsUUFBSSxDQUFDLE1BQU0sU0FBWCxFQUFzQjtBQUN0QixRQUFJLE1BQU0sTUFBTixLQUFpQixLQUFqQixJQUEwQixNQUFNLE1BQU4sQ0FBYSxTQUEzQyxFQUFzRDtBQUNwRCxZQUFNLE1BQU4sQ0FBYSxXQUFiLENBQXlCLE1BQXpCLENBQWdDO0FBQUEsZUFBRyxFQUFFLFFBQUYsSUFBYyxNQUFNLEtBQXZCO0FBQUEsT0FBaEMsRUFBOEQsT0FBOUQsQ0FBc0U7QUFBQSxlQUFHLEVBQUUsS0FBRixFQUFIO0FBQUEsT0FBdEU7QUFDRDtBQUNELFVBQU0sU0FBTixHQUFrQixLQUFsQjtBQUNBLFlBQVEsYUFBUjtBQUNBLFVBQU0sYUFBTjtBQUNELEdBUkQ7O0FBVUEsUUFBTSxLQUFOLEdBQWMsWUFBVztBQUN2QixRQUFJLE1BQU0sU0FBVixFQUFxQjtBQUNyQixVQUFNLFNBQU4sR0FBa0IsSUFBbEI7QUFDQSxlQUFXLGFBQVg7QUFDQSxVQUFNLGFBQU47QUFDRCxHQUxEOztBQU9BLFFBQU0sTUFBTixHQUFlLEtBQWY7O0FBRUEsTUFBTSxrQkFBa0IsS0FBSyxNQUFMLENBQWEsRUFBRSxZQUFGLEVBQVMsT0FBTyxPQUFoQixFQUFiLENBQXhCO0FBQ0EsTUFBTSxxQkFBcUIsUUFBUSxNQUFSLENBQWdCLEVBQUUsWUFBRixFQUFTLFlBQVQsRUFBaEIsQ0FBM0I7QUFDQSxRQUFNLGFBQU4sR0FBc0IsVUFBVSxZQUFWLEVBQXdCO0FBQzVDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdCQUFZLE1BQVosQ0FBb0IsWUFBcEI7QUFDQSxvQkFBZ0IsTUFBaEIsQ0FBd0IsWUFBeEI7QUFDQSx1QkFBbUIsTUFBbkIsQ0FBMkIsWUFBM0I7O0FBRUE7QUFDRCxHQVhEOztBQWFBOztBQUVBLFFBQU0sSUFBTixHQUFhLFVBQVUsR0FBVixFQUFlO0FBQzFCLG9CQUFnQixXQUFoQixDQUE2QixHQUE3QjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBS0EsTUFBSSxjQUFjLEtBQWxCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBTSxRQUFOLENBQWUsWUFBZixHQUE4QixFQUE5Qjs7QUFFQSxTQUFPLGdCQUFQLENBQXdCLEtBQXhCLEVBQStCO0FBQzdCLGFBQVM7QUFDUCxXQUFLLGVBQU07QUFBQTs7QUFDVDtBQUNBO0FBQ0E7QUFDQSxZQUFJLE9BQU8sQ0FBRSxLQUFGLEVBQVMsT0FBVCxDQUFYO0FBQ0EsWUFBSSxNQUFNLFdBQVYsRUFBdUIsT0FBTyxlQUFLLE1BQUwsaUNBQWUsTUFBTSxXQUFOLENBQWtCLE9BQWpDLEVBQVA7QUFDdkIsZUFBTyxJQUFQO0FBQ0Q7QUFSTSxLQURvQjtBQVc3QixnQkFBWTtBQUNWLFdBQUssZUFBTTtBQUNULGVBQU8sV0FBUDtBQUNELE9BSFM7QUFJVixXQUFLLGFBQUMsS0FBRCxFQUFXO0FBQ2Qsc0JBQWMsS0FBZDtBQUNBLFlBQUksQ0FBQyxXQUFMLEVBQWtCO0FBQ2hCLGNBQU0sWUFBWSxNQUFNLE1BQXhCLENBRGdCLENBQ2dCO0FBQ2hDLGNBQU0sWUFBWSxNQUFNLFFBQU4sQ0FBZSxTQUFqQyxDQUZnQixDQUU0QjtBQUM1QztBQUNBLGNBQUksOEJBQWtCLEtBQWxCLE1BQTZCLEtBQWpDLEVBQXdDO0FBQ3RDLG9CQUFRLEdBQVIsQ0FBWSxzQ0FBWjtBQUNEOztBQUVELGdCQUFNLFFBQU4sQ0FBZSxZQUFmLENBQTRCLE9BQTVCLENBQW9DLGlCQUFTO0FBQzNDO0FBQ0E7QUFDQSx1QkFBVyxLQUFYLEVBQWtCLFNBQWxCLEVBQTZCLFNBQTdCO0FBQ0QsV0FKRDtBQUtBLGdCQUFNLFFBQU4sQ0FBZSxZQUFmLEdBQThCLEVBQTlCO0FBQ0Q7QUFDRjtBQXJCUztBQVhpQixHQUEvQjs7QUFsdkJNLDZCQXV4QkcsQ0F2eEJIO0FBd3hCSixVQUFNLENBQU4sSUFBVyxZQUFhO0FBQ3RCLFVBQU0sYUFBYSxtQkFBbUIsQ0FBbkIsc0NBQW5CO0FBQ0EsVUFBSyxVQUFMLEVBQWlCO0FBQ2YsY0FBTSxhQUFOLENBQXFCLFVBQXJCO0FBQ0EsZUFBTyxVQUFQO0FBQ0QsT0FIRCxNQUlLO0FBQ0gsZUFBTyxJQUFJLE1BQU0sS0FBVixFQUFQO0FBQ0Q7QUFDRixLQVREO0FBeHhCSTs7QUF1eEJOLE9BQUssSUFBSSxDQUFULElBQWMsa0JBQWQsRUFBa0M7QUFBQSxVQUF6QixDQUF5QjtBQVdqQzs7QUFFRCxTQUFPLEtBQVA7QUFDRDs7Ozs7Ozs7UUNwMkJlLEssR0FBQSxLO1FBTUEsRyxHQUFBLEc7QUF6QmhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJPLFNBQVMsS0FBVCxHQUFnQjtBQUNyQixNQUFNLFFBQVEsSUFBSSxLQUFKLEVBQWQ7QUFDQSxRQUFNLEdBQU47QUFDQSxTQUFPLEtBQVA7QUFDRDs7QUFFTSxTQUFTLEdBQVQsR0FBYztBQUNuQjtBQTgxREQ7Ozs7Ozs7O1FDbDJEZSxNLEdBQUEsTTs7QUFIaEI7Ozs7QUFDQTs7OztBQXBCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCTyxTQUFTLE1BQVQsR0FBd0M7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFBckIsS0FBcUIsUUFBckIsS0FBcUI7QUFBQSxNQUFkLEtBQWMsUUFBZCxLQUFjOztBQUU3QyxNQUFNLGNBQWMsMkJBQW1CLEtBQW5CLENBQXBCOztBQUVBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxhQUFwQztBQUNBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixNQUF2QixFQUErQixVQUEvQjtBQUNBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixZQUF2QixFQUFxQyxlQUFyQzs7QUFFQSxNQUFNLGFBQWEsSUFBSSxNQUFNLE9BQVYsRUFBbkI7QUFDQSxNQUFNLFlBQVksSUFBSSxNQUFNLE9BQVYsRUFBbEI7O0FBRUE7O0FBRUEsV0FBUyxVQUFULEdBQXFDO0FBQUEsb0ZBQUosRUFBSTtBQUFBLFFBQWQsS0FBYyxTQUFkLEtBQWM7O0FBQ25DLFFBQU0sU0FBUyw4QkFBa0IsS0FBbEIsQ0FBZjtBQUNBLFFBQUksV0FBVyxTQUFYLElBQXlCLE9BQU8sWUFBcEMsRUFBa0Q7QUFDaEQ7QUFDRDs7QUFFRCxRQUFJLE1BQU0sS0FBVixFQUFpQjtBQUNmLFVBQUksTUFBTSxPQUFOLElBQWlCLE1BQU0sUUFBdkIsSUFBbUMsTUFBTSxPQUFOLENBQWMsR0FBZCxDQUFrQixjQUFsQixDQUFrQyxNQUFNLFVBQXhDLEVBQW9ELE1BQU0saUJBQTFELENBQXZDLEVBQXNIO0FBQ3BILFlBQUksTUFBTSxXQUFOLENBQWtCLEtBQWxCLEtBQTRCLFdBQWhDLEVBQTZDO0FBQzNDLGdCQUFNLGlCQUFOLENBQXdCLEdBQXhCLENBQTZCLE1BQU0sV0FBbkM7O0FBRUEsZ0JBQU0sUUFBTixDQUFlLE1BQWYsQ0FBc0IsaUJBQXRCO0FBQ0EsZ0JBQU0sUUFBTixDQUFlLE1BQWYsQ0FBc0IsWUFBdEIsQ0FBbUMsTUFBTSxpQkFBekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUJBQU8sUUFBUCxDQUFnQixJQUFoQixDQUFxQixNQUFNLGlCQUEzQjs7QUFFQSxpQkFBTyxZQUFQO0FBQ0E7QUFDRDtBQUNGLE9BZkQsTUFnQkssSUFBSSxNQUFNLGFBQU4sQ0FBb0IsTUFBcEIsR0FBNkIsQ0FBakMsRUFBb0M7QUFDdkMsWUFBTSxZQUFZLE1BQU0sYUFBTixDQUFxQixDQUFyQixFQUF5QixNQUEzQztBQUNBLFlBQUksY0FBYyxLQUFsQixFQUF5QjtBQUN2QixvQkFBVSxpQkFBVjtBQUNBO0FBQ0Esb0JBQVUscUJBQVYsQ0FBaUMsVUFBVSxXQUEzQzs7QUFFQSxnQkFBTSxVQUFOLENBQWlCLDZCQUFqQixDQUFnRCxNQUFNLFdBQU4sQ0FBa0IsaUJBQWxCLENBQXFDLE1BQU0sVUFBTixDQUFpQixNQUF0RCxDQUFoRCxFQUFnSCxTQUFoSDtBQUNBO0FBQ0Q7QUFDRjtBQUNGO0FBSUY7O0FBRUQsV0FBUyxhQUFULENBQXdCLENBQXhCLEVBQTJCO0FBQUEsUUFFbkIsV0FGbUIsR0FFSSxDQUZKLENBRW5CLFdBRm1CO0FBQUEsUUFFTixLQUZNLEdBRUksQ0FGSixDQUVOLEtBRk07OztBQUl6QixRQUFNLFNBQVMsOEJBQWtCLEtBQWxCLENBQWY7QUFDQSxRQUFJLFdBQVcsU0FBZixFQUEwQjtBQUN4QjtBQUNEOztBQUVELFFBQUksT0FBTyxVQUFQLEtBQXNCLElBQTFCLEVBQWdDO0FBQzlCO0FBQ0Q7O0FBRUQsUUFBSSxNQUFNLEtBQVYsRUFBaUI7QUFDZixVQUFJLE1BQU0sYUFBTixDQUFvQixNQUFwQixHQUE2QixDQUFqQyxFQUFvQztBQUNsQyxZQUFJLE1BQU0sT0FBTixDQUFjLEdBQWQsQ0FBa0IsY0FBbEIsQ0FBa0MsTUFBTSxVQUF4QyxFQUFvRCxNQUFNLGlCQUExRCxDQUFKLEVBQW1GO0FBQ2pGLGNBQU0sWUFBWSxNQUFNLGFBQU4sQ0FBcUIsQ0FBckIsRUFBeUIsTUFBM0M7QUFDQSxjQUFJLGNBQWMsS0FBbEIsRUFBeUI7QUFDdkI7QUFDRDs7QUFFRCxnQkFBTSxRQUFOLEdBQWlCLE1BQWpCOztBQUVBLGNBQUksT0FBTyxZQUFYLEVBQXlCOztBQUV6QixnQkFBTSxRQUFOLENBQWUsaUJBQWY7QUFDQSxvQkFBVSxxQkFBVixDQUFpQyxNQUFNLFFBQU4sQ0FBZSxXQUFoRDs7QUFFQSxnQkFBTSxXQUFOLENBQWtCLElBQWxCLENBQXdCLE1BQU0saUJBQTlCLEVBQWtELEdBQWxELENBQXVELFNBQXZEO0FBQ0E7QUFFRDtBQUNGO0FBQ0YsS0FwQkQsTUFzQkk7QUFDRixVQUFJLE9BQU8sWUFBWCxFQUF5Qjs7QUFFekIsaUJBQVcsVUFBWCxDQUF1QixZQUFZLFdBQW5DOztBQUVBLGFBQU8sTUFBUCxDQUFjLFdBQWQsQ0FBMkIsVUFBM0I7QUFDQSxhQUFPLE1BQVAsQ0FBYyxTQUFkLENBQXlCLE9BQU8sUUFBaEMsRUFBMEMsT0FBTyxVQUFqRCxFQUE2RCxPQUFPLEtBQXBFOztBQUVBLGFBQU8sU0FBUCxHQUFtQixPQUFPLE1BQTFCO0FBQ0E7QUFDQSxrQkFBWSxHQUFaLENBQWlCLE1BQWpCO0FBQ0Q7O0FBRUQsTUFBRSxNQUFGLEdBQVcsSUFBWDs7QUFFQSxXQUFPLFVBQVAsR0FBb0IsSUFBcEI7O0FBRUEsVUFBTSxNQUFOLENBQWEsSUFBYixDQUFtQixTQUFuQixFQUE4QixLQUE5QjtBQUNEOztBQUVELFdBQVMsZUFBVCxDQUEwQixDQUExQixFQUE2QjtBQUFBLFFBRXJCLFdBRnFCLEdBRUUsQ0FGRixDQUVyQixXQUZxQjtBQUFBLFFBRVIsS0FGUSxHQUVFLENBRkYsQ0FFUixLQUZROzs7QUFJM0IsUUFBTSxTQUFTLDhCQUFrQixLQUFsQixDQUFmO0FBQ0EsUUFBSSxXQUFXLFNBQWYsRUFBMEI7QUFDeEI7QUFDRDs7QUFFRCxRQUFJLE9BQU8sVUFBUCxLQUFzQixLQUExQixFQUFpQztBQUMvQjtBQUNEOztBQUVELFFBQUksTUFBTSxLQUFWLEVBQWlCO0FBQ2YsWUFBTSxRQUFOLEdBQWlCLFNBQWpCO0FBQ0QsS0FGRCxNQUdJOztBQUVGLFVBQUksT0FBTyxTQUFQLEtBQXFCLFNBQXpCLEVBQW9DO0FBQ2xDO0FBQ0Q7O0FBRUQsYUFBTyxNQUFQLENBQWMsV0FBZCxDQUEyQixZQUFZLFdBQXZDO0FBQ0EsYUFBTyxNQUFQLENBQWMsU0FBZCxDQUF5QixPQUFPLFFBQWhDLEVBQTBDLE9BQU8sVUFBakQsRUFBNkQsT0FBTyxLQUFwRTtBQUNBLGFBQU8sU0FBUCxDQUFpQixHQUFqQixDQUFzQixNQUF0QjtBQUNBLGFBQU8sU0FBUCxHQUFtQixTQUFuQjtBQUNEOztBQUVELFdBQU8sVUFBUCxHQUFvQixLQUFwQjs7QUFFQSxVQUFNLE1BQU4sQ0FBYSxJQUFiLENBQW1CLGNBQW5CLEVBQW1DLE1BQW5DO0FBQ0Q7O0FBRUQsU0FBTyxXQUFQO0FBQ0Q7Ozs7Ozs7O0FDcEtNLElBQU0sNEJBQVcsWUFBVTtBQUNoQyxNQUFNLFFBQVEsSUFBSSxLQUFKLEVBQWQ7QUFDQSxRQUFNLEdBQU47O0FBRUEsTUFBTSxVQUFVLElBQUksTUFBTSxPQUFWLEVBQWhCLENBQXFDLFFBQVEsSUFBUixHQUFlLE9BQWY7QUFDckMsVUFBUSxLQUFSLEdBQWdCLEtBQWhCO0FBQ0EsVUFBUSxXQUFSLEdBQXNCLElBQXRCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU0sV0FBVyxJQUFJLE1BQU0saUJBQVYsQ0FBNEI7QUFDM0M7QUFDQSxVQUFNLE1BQU0sVUFGK0I7QUFHM0MsaUJBQWEsSUFIOEI7QUFJM0MsU0FBSztBQUpzQyxHQUE1QixDQUFqQjtBQU1BLFdBQVMsU0FBVCxHQUFxQixHQUFyQjs7QUFFQSxTQUFPLFlBQVU7QUFDZixRQUFNLFdBQVcsSUFBSSxNQUFNLGFBQVYsQ0FBeUIsTUFBTSxLQUFOLEdBQWMsSUFBdkMsRUFBNkMsTUFBTSxNQUFOLEdBQWUsSUFBNUQsRUFBa0UsQ0FBbEUsRUFBcUUsQ0FBckUsQ0FBakI7O0FBRUEsUUFBTSxPQUFPLElBQUksTUFBTSxJQUFWLENBQWdCLFFBQWhCLEVBQTBCLFFBQTFCLENBQWI7QUFDQSxXQUFPLElBQVA7QUFDRCxHQUxEO0FBT0QsQ0ExQnVCLEVBQWpCOztBQTRCQSxJQUFNLGdDQUFhLFlBQVU7QUFDbEMsTUFBTSxRQUFRLElBQUksS0FBSixFQUFkO0FBQ0EsUUFBTSxHQUFOLEdBQVksd3RuQkFBWjs7QUFFQSxNQUFNLFVBQVUsSUFBSSxNQUFNLE9BQVYsRUFBaEIsQ0FBcUMsUUFBUSxJQUFSLEdBQWUsT0FBZjtBQUNyQyxVQUFRLEtBQVIsR0FBZ0IsS0FBaEI7QUFDQSxVQUFRLFdBQVIsR0FBc0IsSUFBdEI7QUFDQSxVQUFRLFNBQVIsR0FBb0IsTUFBTSx3QkFBMUI7QUFDQSxVQUFRLFNBQVIsR0FBb0IsTUFBTSxZQUExQjtBQUNBO0FBQ0E7O0FBRUEsTUFBTSxXQUFXLElBQUksTUFBTSxpQkFBVixDQUE0QjtBQUMzQztBQUNBLFVBQU0sTUFBTSxVQUYrQjtBQUczQyxpQkFBYSxJQUg4QjtBQUkzQyxTQUFLO0FBSnNDLEdBQTVCLENBQWpCO0FBTUEsV0FBUyxTQUFULEdBQXFCLEdBQXJCOztBQUVBLFNBQU8sWUFBVTtBQUNmLFFBQU0sSUFBSSxHQUFWO0FBQ0EsUUFBTSxNQUFNLElBQUksTUFBTSxhQUFWLENBQXlCLE1BQU0sS0FBTixHQUFjLElBQWQsR0FBcUIsQ0FBOUMsRUFBaUQsTUFBTSxNQUFOLEdBQWUsSUFBZixHQUFzQixDQUF2RSxFQUEwRSxDQUExRSxFQUE2RSxDQUE3RSxDQUFaO0FBQ0EsUUFBSSxTQUFKLENBQWUsQ0FBQyxLQUFoQixFQUF1QixDQUFDLEtBQXhCLEVBQStCLENBQS9CO0FBQ0EsV0FBTyxJQUFJLE1BQU0sSUFBVixDQUFnQixHQUFoQixFQUFxQixRQUFyQixDQUFQO0FBQ0QsR0FMRDtBQU1ELENBMUJ5QixFQUFuQjs7QUE2QkEsSUFBTSxnQ0FBYSxZQUFVO0FBQ2xDLE1BQU0sUUFBUSxJQUFJLEtBQUosRUFBZDtBQUNBLFFBQU0sR0FBTixHQUFZLGdrcEJBQVo7O0FBRUEsTUFBTSxVQUFVLElBQUksTUFBTSxPQUFWLEVBQWhCLENBQXFDLFFBQVEsSUFBUixHQUFlLE9BQWY7QUFDckMsVUFBUSxLQUFSLEdBQWdCLEtBQWhCO0FBQ0EsVUFBUSxXQUFSLEdBQXNCLElBQXRCO0FBQ0EsVUFBUSxTQUFSLEdBQW9CLE1BQU0sd0JBQTFCO0FBQ0EsVUFBUSxTQUFSLEdBQW9CLE1BQU0sWUFBMUI7QUFDQTtBQUNBOztBQUVBLE1BQU0sV0FBVyxJQUFJLE1BQU0saUJBQVYsQ0FBNEI7QUFDM0M7QUFDQSxVQUFNLE1BQU0sVUFGK0I7QUFHM0MsaUJBQWEsSUFIOEI7QUFJM0MsU0FBSztBQUpzQyxHQUE1QixDQUFqQjtBQU1BLFdBQVMsU0FBVCxHQUFxQixHQUFyQjs7QUFFQSxTQUFPLFlBQWlCO0FBQUEsUUFBUixDQUFRLHVFQUFKLEdBQUk7O0FBQ3RCO0FBQ0EsUUFBTSxNQUFNLElBQUksTUFBTSxhQUFWLENBQXlCLE1BQU0sS0FBTixHQUFjLElBQWQsR0FBcUIsQ0FBOUMsRUFBaUQsTUFBTSxNQUFOLEdBQWUsSUFBZixHQUFzQixDQUF2RSxFQUEwRSxDQUExRSxFQUE2RSxDQUE3RSxDQUFaO0FBQ0EsUUFBSSxTQUFKLENBQWUsUUFBUSxDQUFSLEdBQVUsR0FBekIsRUFBOEIsQ0FBOUIsRUFBaUMsQ0FBakM7QUFDQSxXQUFPLElBQUksTUFBTSxJQUFWLENBQWdCLEdBQWhCLEVBQXFCLFFBQXJCLENBQVA7QUFDRCxHQUxEO0FBTUQsQ0ExQnlCLEVBQW5COztBQTZCQSxJQUFNLHNCQUFRLFlBQVU7QUFDN0IsTUFBTSxRQUFRLElBQUksS0FBSixFQUFkO0FBQ0EsUUFBTSxHQUFOLEdBQVksdzdDQUFaOztBQUVBLE1BQU0sVUFBVSxJQUFJLE1BQU0sT0FBVixFQUFoQixDQUFxQyxRQUFRLElBQVIsR0FBZSxPQUFmO0FBQ3JDLFVBQVEsS0FBUixHQUFnQixLQUFoQjtBQUNBLFVBQVEsV0FBUixHQUFzQixJQUF0QjtBQUNBLFVBQVEsU0FBUixHQUFvQixNQUFNLHdCQUExQjtBQUNBLFVBQVEsU0FBUixHQUFvQixNQUFNLFlBQTFCO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLFdBQVcsSUFBSSxNQUFNLGlCQUFWLENBQTRCO0FBQzNDO0FBQ0EsVUFBTSxNQUFNLFVBRitCO0FBRzNDLGlCQUFhLElBSDhCO0FBSTNDLFNBQUs7QUFKc0MsR0FBNUIsQ0FBakI7QUFNQSxXQUFTLFNBQVQsR0FBcUIsR0FBckI7O0FBRUEsU0FBTyxZQUFpQjtBQUFBLFFBQVIsQ0FBUSx1RUFBSixHQUFJOztBQUN0QjtBQUNBLFFBQU0sTUFBTSxJQUFJLE1BQU0sYUFBVixDQUF5QixNQUFNLEtBQU4sR0FBYyxJQUFkLEdBQXFCLENBQTlDLEVBQWlELE1BQU0sTUFBTixHQUFlLElBQWYsR0FBc0IsQ0FBdkUsRUFBMEUsQ0FBMUUsRUFBNkUsQ0FBN0UsQ0FBWjtBQUNBLFFBQUksU0FBSixDQUFlLFFBQVEsQ0FBUixHQUFVLEdBQXpCLEVBQThCLENBQTlCLEVBQWlDLENBQWpDO0FBQ0EsV0FBTyxJQUFJLE1BQU0sSUFBVixDQUFnQixHQUFoQixFQUFxQixRQUFyQixDQUFQO0FBQ0QsR0FMRDtBQU1ELENBMUJvQixFQUFkOztBQTZCQSxJQUFNLDBCQUFVLFlBQVU7QUFDL0IsTUFBTSxRQUFRLElBQUksS0FBSixFQUFkO0FBQ0EsUUFBTSxHQUFOLEdBQVksbzhDQUFaOztBQUVBLE1BQU0sVUFBVSxJQUFJLE1BQU0sT0FBVixFQUFoQixDQUFxQyxRQUFRLElBQVIsR0FBZSxPQUFmO0FBQ3JDLFVBQVEsS0FBUixHQUFnQixLQUFoQjtBQUNBLFVBQVEsV0FBUixHQUFzQixJQUF0QjtBQUNBLFVBQVEsU0FBUixHQUFvQixNQUFNLHdCQUExQjtBQUNBLFVBQVEsU0FBUixHQUFvQixNQUFNLFlBQTFCO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLFdBQVcsSUFBSSxNQUFNLGlCQUFWLENBQTRCO0FBQzNDO0FBQ0EsVUFBTSxNQUFNLFVBRitCO0FBRzNDLGlCQUFhLElBSDhCO0FBSTNDLFNBQUs7QUFKc0MsR0FBNUIsQ0FBakI7QUFNQSxXQUFTLFNBQVQsR0FBcUIsR0FBckI7O0FBRUEsU0FBTyxZQUFpQjtBQUFBLFFBQVIsQ0FBUSx1RUFBSixHQUFJOztBQUN0QjtBQUNBLFFBQU0sTUFBTSxJQUFJLE1BQU0sYUFBVixDQUF5QixNQUFNLEtBQU4sR0FBYyxJQUFkLEdBQXFCLENBQTlDLEVBQWlELE1BQU0sTUFBTixHQUFlLElBQWYsR0FBc0IsQ0FBdkUsRUFBMEUsQ0FBMUUsRUFBNkUsQ0FBN0UsQ0FBWjtBQUNBLFFBQUksU0FBSixDQUFlLFFBQVEsQ0FBUixHQUFVLEdBQXpCLEVBQThCLENBQTlCLEVBQWlDLENBQWpDO0FBQ0EsV0FBTyxJQUFJLE1BQU0sSUFBVixDQUFnQixHQUFoQixFQUFxQixRQUFyQixDQUFQO0FBQ0QsR0FMRDtBQU1ELENBMUJzQixFQUFoQjs7Ozs7Ozs7a0JDM0VpQixpQjs7QUFWeEI7O0lBQVksbUI7O0FBRVo7Ozs7QUFDQTs7OztBQUNBOztJQUFZLE07O0FBQ1o7O0lBQVksTTs7QUFDWjs7SUFBWSxlOztBQUNaOztJQUFZLEk7O0FBQ1o7Ozs7OztBQXRDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0NlLFNBQVMsaUJBQVQsR0FhUDtBQUFBLGlGQUFKLEVBQUk7QUFBQSxNQVpOLFdBWU0sUUFaTixXQVlNO0FBQUEsTUFYTixNQVdNLFFBWE4sTUFXTTtBQUFBLCtCQVZOLFlBVU07QUFBQSxNQVZOLFlBVU0scUNBVlMsV0FVVDtBQUFBLHVCQVROLElBU007QUFBQSxNQVROLElBU00sNkJBVEMsU0FTRDtBQUFBLDJCQVJOLFFBUU07QUFBQSxNQVJOLFFBUU0saUNBUkssU0FRTDtBQUFBLHdCQVBOLEtBT007QUFBQSxNQVBOLEtBT00sOEJBUEUsd0JBT0Y7QUFBQSx1QkFOTixJQU1NO0FBQUEsTUFOTixJQU1NLDZCQU5DLEtBTUQ7QUFBQSx3QkFMTixLQUtNO0FBQUEsTUFMTixLQUtNLDhCQUxFLE9BQU8sV0FLVDtBQUFBLE1BSk4sTUFJTSxRQUpOLE1BSU07QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLG1DQUZOLGtCQUVNO0FBQUEsTUFGTixrQkFFTSx5Q0FGZSxJQUVmO0FBQUEsOEJBRE4sV0FDTTtBQUFBLE1BRE4sV0FDTSxvQ0FEUSxPQUFPLFlBQ2Y7O0FBRU4sV0FBUyxvQkFBVCxDQUE4QixLQUE5QixFQUFxQyxjQUFyQyxFQUFxRDtBQUNqRCxRQUFJLE9BQU8sS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QjtBQUNBLFVBQUksTUFBTSxhQUFWLEdBQTBCLElBQTFCLENBQStCLEtBQS9CLEVBQXNDLFVBQUMsT0FBRCxFQUFhO0FBQy9DLGdCQUFRLEtBQVIsR0FBZ0IsUUFBUSxLQUFSLEdBQWdCLE1BQU0sbUJBQXRDO0FBQ0EsdUJBQWUsR0FBZixHQUFxQixPQUFyQjtBQUNBLHVCQUFlLFdBQWYsR0FBNkIsSUFBN0I7QUFDSCxPQUpEO0FBS0QsS0FQRCxNQU9PLElBQUksTUFBTSxTQUFWLEVBQXFCO0FBQ3hCLHFCQUFlLEdBQWYsR0FBcUIsS0FBckI7QUFDSCxLQUZNLE1BRUEsSUFBSSxNQUFNLG1CQUFWLEVBQStCO0FBQ2xDLHFCQUFlLEdBQWYsR0FBcUIsTUFBTSxPQUEzQjtBQUNILEtBRk0sTUFFQSxNQUFNLHFDQUFxQyxLQUEzQztBQUNQLG1CQUFlLFdBQWYsR0FBNkIsSUFBN0I7QUFDSDs7QUFFQTtBQUNELE1BQUksQ0FBQyxNQUFMLEVBQWEsU0FBUyxPQUFPLFdBQVAsSUFBdUIsT0FBTyxJQUFQLEdBQWMsSUFBckMsQ0FBVDs7QUFFYixNQUFNLGVBQWUsU0FBUyxPQUFPLElBQVAsR0FBYyxJQUF2QixJQUErQixPQUFPLFlBQTNEO0FBQ0EsTUFBTSxnQkFBZ0IsU0FBUyxPQUFPLFlBQXRDO0FBQ0EsTUFBTSxlQUFlLFdBQXJCOztBQUVBLE1BQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLGFBQWhCO0FBQ0EsUUFBTSxRQUFOLEdBQWlCO0FBQUEsaUJBQVUsTUFBTSxPQUFoQixVQUE0QixZQUE1QjtBQUFBLEdBQWpCO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLE1BQWhCOztBQUVBLE1BQU0sUUFBUSxPQUFPLFdBQVAsQ0FBb0IsS0FBcEIsRUFBMkIsTUFBM0IsRUFBbUMsS0FBbkMsQ0FBZDtBQUNBLFFBQU0sR0FBTixDQUFXLEtBQVg7O0FBRUE7QUFDQSxNQUFNLGNBQWMsZUFBZSxhQUFuQztBQUNBLE1BQU0sT0FBTyxJQUFJLE1BQU0sYUFBVixDQUF5QixZQUF6QixFQUF1QyxhQUF2QyxFQUFzRCxDQUF0RCxFQUF5RCxDQUF6RCxDQUFiO0FBQ0EsTUFBTSxXQUFXLElBQUksTUFBTSxtQkFBVixDQUErQixDQUEvQixDQUFqQjtBQUNBLFdBQVMsTUFBVCxDQUFpQixJQUFqQixFQXJDTSxDQXFDb0I7QUFDMUIsT0FBSyxTQUFMLENBQWdCLGVBQWUsR0FBL0IsRUFBb0MsQ0FBcEMsRUFBdUMsWUFBdkM7O0FBRUE7QUFDQSxNQUFNLGtCQUFrQixJQUFJLE1BQU0saUJBQVYsRUFBeEI7QUFDQSxrQkFBZ0IsT0FBaEIsR0FBMEIsS0FBMUI7O0FBRUEsTUFBTSxnQkFBZ0IsSUFBSSxNQUFNLElBQVYsQ0FBZ0IsS0FBSyxLQUFMLEVBQWhCLEVBQThCLGVBQTlCLENBQXRCO0FBQ0EsZ0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixZQUEzQjtBQUNBLE1BQUksQ0FBQyxJQUFMLEVBQVcsY0FBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLFFBQVEsR0FBbkMsQ0FBWCxLQUNLO0FBQ0gsa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixPQUFPLHVCQUFQLEdBQWlDLElBQTVEO0FBQ0Esa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixJQUEzQixDQUZHLENBRThCO0FBQ2xDOztBQUVELE1BQUksUUFBSjtBQUNBLE1BQUksTUFBTSxVQUFWLEVBQXNCO0FBQ3BCLGVBQVcsS0FBWDtBQUNELEdBRkQsTUFFTztBQUNMLGVBQVcsSUFBSSxNQUFNLGlCQUFWLEVBQVg7QUFDQSxhQUFTLFdBQVQsR0FBdUIsSUFBdkI7QUFDQSx5QkFBcUIsS0FBckIsRUFBNEIsUUFBNUI7QUFDRDtBQUNELE1BQU0sZUFBZSxJQUFJLE1BQU0sSUFBVixDQUFnQixLQUFLLEtBQUwsRUFBaEIsRUFBOEIsUUFBOUIsQ0FBckI7QUFDQSxnQkFBYyxHQUFkLENBQW1CLFlBQW5COztBQUVBOztBQUVBLE1BQU0sa0JBQWtCLFlBQVksTUFBWixDQUFvQixZQUFwQixDQUF4QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixPQUFPLHVCQUFwQztBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixLQUE3QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixDQUFDLElBQTlCO0FBQ0EsTUFBSSxJQUFKLEVBQVUsZ0JBQWdCLE9BQWhCLEdBQTBCLEtBQTFCOztBQUVWLE1BQU0sZUFBZSxPQUFPLHFCQUFQLENBQThCLE1BQTlCLEVBQXNDLE9BQU8sb0JBQTdDLENBQXJCO0FBQ0EsZUFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLEtBQTFCOztBQUVBLFFBQU0sR0FBTixDQUFXLGVBQVgsRUFBNEIsYUFBNUIsRUFBMkMsWUFBM0M7O0FBRUEsTUFBTSxjQUFjLDJCQUFtQixhQUFuQixDQUFwQjtBQUNBO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFVBQXZCLEVBQW1DLFdBQW5DO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFdBQXZCLEVBQW9DLGFBQXBDO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFVBQXZCLEVBQW1DLGNBQW5DO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFlBQXZCLEVBQXFDLGVBQXJDOztBQUVBOztBQUVBLE1BQUksWUFBWSxTQUFoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU0sT0FBTixHQUFnQixhQUFLO0FBQ25CLGdCQUFZLENBQVo7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEO0FBSUEsUUFBTSxVQUFOLEdBQW1CLGFBQUs7QUFDdEIsZUFBVyxDQUFYO0FBQ0EsV0FBTyxLQUFQO0FBQ0QsR0FIRDtBQUlBLFdBQVMsV0FBVCxDQUFzQixDQUF0QixFQUF5QjtBQUN2QixRQUFJLENBQUMsZ0NBQW9CLEtBQXBCLENBQUwsRUFBaUM7QUFDL0I7QUFDRDs7QUFFRCxNQUFFLFVBQUYsR0FBZSw4QkFBOEIsRUFBRSxLQUFoQyxDQUFmO0FBQ0EsUUFBSSxTQUFKLEVBQWUsVUFBVSxDQUFWO0FBQ2hCOztBQUVELFdBQVMsYUFBVCxDQUF3QixDQUF4QixFQUEyQjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBSSxDQUFDLGdDQUFvQixLQUFwQixDQUFMLEVBQWlDO0FBQy9CO0FBQ0Q7O0FBRUQsTUFBRSxVQUFGLEdBQWUsOEJBQThCLEVBQUUsS0FBaEMsQ0FBZjtBQUNBLFFBQUksTUFBSixFQUFZLE9BQVEsWUFBUixFQUF1QixDQUF2QjtBQUNaLFFBQUksSUFBSixFQUFVLEtBQUssQ0FBTDs7QUFFVixrQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLGVBQWUsR0FBMUM7O0FBRUEsTUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxXQUFTLDZCQUFULENBQXVDLEtBQXZDLEVBQThDO0FBQzVDLFFBQU0sSUFBSSxjQUFjLFlBQWQsQ0FBMkIsS0FBM0IsQ0FBVjtBQUNBLE1BQUUsQ0FBRixJQUFPLFlBQVA7QUFDQSxNQUFFLENBQUYsSUFBTyxhQUFQO0FBQ0EsTUFBRSxDQUFGLElBQU8sR0FBUDtBQUNBLE1BQUUsQ0FBRixHQUFNLEtBQUssR0FBTCxDQUFTLEtBQUssR0FBTCxDQUFTLEVBQUUsQ0FBWCxFQUFjLENBQWQsQ0FBVCxFQUEyQixDQUEzQixDQUFOO0FBQ0EsTUFBRSxDQUFGLEdBQU0sS0FBSyxHQUFMLENBQVMsS0FBSyxHQUFMLENBQVMsRUFBRSxDQUFYLEVBQWMsQ0FBZCxDQUFULEVBQTJCLENBQTNCLENBQU47QUFDQSxXQUFPLENBQVA7QUFDRDs7QUFFRCxXQUFTLGNBQVQsQ0FBeUIsQ0FBekIsRUFBNkI7QUFDM0IsUUFBSSxDQUFDLGdDQUFvQixLQUFwQixDQUFMLEVBQWlDO0FBQy9CO0FBQ0Q7O0FBRUQsTUFBRSxVQUFGLEdBQWUsOEJBQThCLEVBQUUsS0FBaEMsQ0FBZjtBQUNBO0FBQ0E7QUFDQSxRQUFJLFFBQUosRUFBYyxTQUFTLENBQVQ7QUFDZjs7QUFFRCxXQUFTLGVBQVQsR0FBMEI7QUFDeEIsa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixlQUFlLEdBQTFDO0FBQ0Q7O0FBRUQsV0FBUyxVQUFULEdBQXFCO0FBQ25CLFFBQUksQ0FBQyxTQUFTLEtBQWQsRUFBcUI7QUFDckIsUUFBSSxZQUFZLFFBQVosRUFBSixFQUE0QjtBQUMxQixVQUFJLGtCQUFKLEVBQXdCLFNBQVMsS0FBVCxDQUFlLE1BQWYsQ0FBdUIsUUFBdkI7QUFDekIsS0FGRCxNQUdJO0FBQ0YsVUFBSSxrQkFBSixFQUF3QixTQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLFFBQXZCO0FBQ3pCO0FBRUY7O0FBRUQsUUFBTSxXQUFOLEdBQW9CLFdBQXBCO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLENBQUUsYUFBRixFQUFpQixLQUFqQixDQUFoQjs7QUFFQSxNQUFNLGtCQUFrQixLQUFLLE1BQUwsQ0FBYSxFQUFFLFlBQUYsRUFBUyxZQUFULEVBQWIsQ0FBeEI7O0FBRUEsUUFBTSxhQUFOLEdBQXNCLFVBQVUsWUFBVixFQUF3QjtBQUM1QyxnQkFBWSxNQUFaLENBQW9CLFlBQXBCO0FBQ0Esb0JBQWdCLE1BQWhCLENBQXdCLFlBQXhCO0FBQ0E7QUFDRCxHQUpEOztBQU1BLFFBQU0sSUFBTixHQUFhLFVBQVUsR0FBVixFQUFlO0FBQzFCLG9CQUFnQixXQUFoQixDQUE2QixHQUE3QjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBTUEsU0FBTyxLQUFQO0FBQ0Q7Ozs7Ozs7O2tCQ3hNdUIscUI7O0FBUnhCOztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7QUFDWjs7Ozs7O0FBRWUsU0FBUyxxQkFBVCxHQU9QO0FBQUEsbUZBQUosRUFBSTtBQUFBLFFBTk4sV0FNTSxRQU5OLFdBTU07QUFBQSxRQUxOLE9BS00sUUFMTixPQUtNO0FBQUEsMEJBSk4sS0FJTTtBQUFBLFFBSk4sS0FJTSw4QkFKRSxPQUFPLFdBSVQ7QUFBQSxRQUhOLFNBR00sUUFITixTQUdNO0FBQUEsMEJBRk4sS0FFTTtBQUFBLFFBRk4sS0FFTSw4QkFGRSxPQUFPLFdBRVQ7QUFBQSw0QkFETixPQUNNO0FBQUEsUUFETixPQUNNLGdDQURJLENBQ0o7O0FBRU4sYUFBUyxvQkFBVCxDQUE4QixLQUE5QixFQUFxQyxjQUFyQyxFQUFxRDtBQUNqRCxZQUFJLE9BQU8sS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QjtBQUNBLGdCQUFJLE1BQU0sYUFBVixHQUEwQixJQUExQixDQUErQixLQUEvQixFQUFzQyxVQUFDLE9BQUQsRUFBYTtBQUMvQyx3QkFBUSxLQUFSLEdBQWdCLFFBQVEsS0FBUixHQUFnQixNQUFNLG1CQUF0QztBQUNBLCtCQUFlLEdBQWYsR0FBcUIsT0FBckI7QUFDQSwrQkFBZSxXQUFmLEdBQTZCLElBQTdCO0FBQ0gsYUFKRDtBQUtELFNBUEQsTUFPTyxJQUFJLE1BQU0sU0FBVixFQUFxQjtBQUN4QiwyQkFBZSxHQUFmLEdBQXFCLEtBQXJCO0FBQ0gsU0FGTSxNQUVBLElBQUksTUFBTSxtQkFBVixFQUErQjtBQUNsQywyQkFBZSxHQUFmLEdBQXFCLE1BQU0sT0FBM0I7QUFDSCxTQUZNLE1BRUEsTUFBTSxxQ0FBcUMsS0FBM0M7QUFDUCx1QkFBZSxXQUFmLEdBQTZCLElBQTdCO0FBQ0g7O0FBRUQsUUFBTSxTQUFTLE9BQU8sWUFBUCxHQUFzQixDQUFyQztBQUNBLFFBQU0sZUFBZSxDQUFDLFFBQVEsTUFBVCxLQUFvQixJQUFFLE9BQXRCLENBQXJCO0FBQ0E7QUFDQSxRQUFJLGdCQUFnQixZQUFZLENBQVosR0FBZ0IsU0FBaEIsR0FBNEIsWUFBaEQ7QUFDQSxRQUFNLGVBQWUsT0FBTyxZQUE1Qjs7QUFFQSxRQUFNLFFBQVEsSUFBSSxNQUFNLEtBQVYsRUFBZDtBQUNBLFVBQU0sT0FBTixHQUFnQixpQkFBaEI7QUFDQSxVQUFNLFFBQU4sR0FBaUI7QUFBQSxxQkFBVSxNQUFNLE9BQWhCLFVBQTRCLE9BQTVCO0FBQUEsS0FBakI7O0FBRUEsUUFBTSxPQUFPLEtBQUssSUFBTCxDQUFVLFFBQVEsTUFBUixHQUFpQixPQUEzQixDQUFiO0FBQ0EsUUFBSSxTQUFTLE9BQU8sWUFBUCxHQUFzQixnQkFBZ0IsSUFBbkQ7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsTUFBaEI7O0FBRUEsVUFBTSxZQUFOLEdBQXFCLGFBQUs7QUFDeEIsb0JBQVksZ0JBQWdCLENBQTVCO0FBQ0EsaUJBQVMsT0FBTyxZQUFQLEdBQXNCLGdCQUFnQixJQUEvQztBQUNBLGNBQU0sT0FBTixHQUFnQixNQUFoQjtBQUNBO0FBQ0EsZUFBTyxLQUFQO0FBQ0QsS0FORDs7QUFRQSxRQUFJLHVCQUF1QixLQUEzQjtBQUNBLFFBQUksY0FBYyxJQUFsQjtBQUNBLFFBQUksdUJBQUo7QUFDQSxVQUFNLG9CQUFOLEdBQTZCLFlBQW9CO0FBQUEsWUFBbkIsR0FBbUIsdUVBQWIsUUFBYTs7QUFDN0MsK0JBQXVCLFFBQVEsS0FBL0I7QUFDQSx5QkFBaUIsR0FBakI7QUFDQSxlQUFPLEtBQVA7QUFDSCxLQUpEOztBQU1BLFFBQUksY0FBSjtBQUFBLFFBQVcsd0JBQVg7QUFBQSxRQUE0QixVQUFVLEVBQXRDOztBQUVBOztBQUVBLGFBQVMsU0FBVCxHQUFxQjtBQUNuQixZQUFJLEtBQUosRUFBVyxNQUFNLE1BQU4sQ0FBYSxLQUFiO0FBQ1gsZ0JBQVEsT0FBTyxXQUFQLENBQW9CLEtBQXBCLEVBQTJCLE1BQTNCLEVBQW1DLEtBQW5DLENBQVI7QUFDQSxjQUFNLEdBQU4sQ0FBVyxLQUFYOztBQUVBLFlBQU0sZUFBZSxPQUFPLHFCQUFQLENBQThCLE1BQTlCLEVBQXNDLE9BQU8sb0JBQTdDLENBQXJCO0FBQ0EscUJBQWEsUUFBYixDQUFzQixDQUF0QixHQUEwQixLQUExQjtBQUNBLGNBQU0sR0FBTixDQUFVLFlBQVY7O0FBRUEsMEJBQWtCLEtBQUssTUFBTCxDQUFhLEVBQUUsWUFBRixFQUFTLFlBQVQsRUFBYixDQUFsQjs7QUFFQSxnQkFBUSxPQUFSLENBQWdCO0FBQUEsbUJBQUcsTUFBTSxNQUFOLENBQWEsQ0FBYixDQUFIO0FBQUEsU0FBaEI7QUFDQSxrQkFBVSxFQUFWO0FBQ0EsY0FBTSxXQUFOLEdBQW9CLE9BQXBCO0FBQ0Q7O0FBRUQsYUFBUyxhQUFULEdBQXlCO0FBQ3ZCO0FBQ0E7QUFDQSxZQUFNLGdCQUFnQixlQUFlLElBQXJDO0FBQUEsWUFBMkMsZ0JBQWdCLGdCQUFnQixJQUEzRTtBQUNBLFlBQU0sT0FBTyxJQUFJLE1BQU0sYUFBVixDQUF5QixhQUF6QixFQUF3QyxhQUF4QyxFQUF1RCxDQUF2RCxFQUEwRCxDQUExRCxDQUFiO0FBQ0EsYUFBSyxTQUFMLENBQWdCLGdCQUFnQixDQUFoQyxFQUFtQyxDQUFDLGFBQUQsR0FBaUIsQ0FBcEQsRUFBdUQsWUFBdkQ7O0FBRUEsWUFBSSxJQUFJLENBQVI7O0FBRUE7QUFDQSxnQkFBUSxPQUFSLENBQWdCLFVBQUMsR0FBRCxFQUFNLENBQU4sRUFBWTtBQUN4QixnQkFBSSxDQUFDLElBQUksS0FBTCxJQUFjLENBQUMsSUFBSSxJQUF2QixFQUE2QjtBQUN6QjtBQUNIO0FBQ0QsZ0JBQUksV0FBVyxJQUFJLE1BQU0sS0FBVixFQUFmLENBSndCLENBSVU7QUFDbEMscUJBQVMsT0FBVCxHQUFtQix3QkFBbkI7QUFDQSxrQkFBTSxHQUFOLENBQVUsUUFBVjtBQUNBLG9CQUFRLElBQVIsQ0FBYSxRQUFiOztBQUVBLGdCQUFNLE1BQU0sSUFBSSxPQUFoQjtBQUNBLGdCQUFNLE1BQU0sS0FBSyxLQUFMLENBQVcsSUFBSSxPQUFmLENBQVo7O0FBRUEscUJBQVMsUUFBVCxDQUFrQixDQUFsQixHQUF1QixJQUFFLE9BQU8sWUFBVixHQUEwQixlQUFlLEdBQS9EO0FBQ0EscUJBQVMsUUFBVCxDQUFrQixDQUFsQixHQUF1QixTQUFPLENBQVIsR0FBWSxnQkFBZ0IsR0FBbEQ7QUFDQSxxQkFBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLFlBQXRCOztBQUVBO0FBQ0E7QUFDQSxnQkFBTSxrQkFBa0IsSUFBSSxNQUFNLGlCQUFWLEVBQXhCO0FBQ0EsNEJBQWdCLE9BQWhCLEdBQTBCLEtBQTFCOztBQUVBLGdCQUFNLGdCQUFnQixJQUFJLE1BQU0sSUFBVixDQUFnQixLQUFLLEtBQUwsRUFBaEIsRUFBOEIsZUFBOUIsQ0FBdEI7O0FBRUEsZ0JBQU0sV0FBVyxJQUFJLE1BQU0saUJBQVYsRUFBakI7QUFDQSxxQkFBUyxXQUFULEdBQXVCLElBQXZCO0FBQ0EsZ0JBQUksSUFBSSxLQUFSLEVBQWUscUJBQXFCLElBQUksS0FBekIsRUFBZ0MsUUFBaEM7QUFDZixnQkFBSSxJQUFJLElBQVIsRUFBYztBQUNWLG9CQUFNLE9BQU8sWUFBWSxNQUFaLENBQW1CLElBQUksSUFBdkIsQ0FBYjtBQUNBLG9CQUFNLFVBQVMsSUFBRSxPQUFPLGtCQUF4QjtBQUNBLG9CQUFJLElBQUksT0FBTyxVQUFQLEdBQW9CLEtBQUssTUFBTCxDQUFZLE1BQXhDO0FBQ0Esb0JBQUksSUFBSSxLQUFLLFlBQUwsRUFBUjtBQUNBLG9CQUFJLElBQUksZUFBZSxPQUF2QixFQUErQjtBQUMzQix5QkFBSyxlQUFMLENBQXFCLGVBQWUsT0FBcEMsRUFBNEMsZ0JBQWdCLE9BQTVELEVBRDJCLENBQzBDO0FBQ3JFLHdCQUFJLE9BQU8sVUFBUCxHQUFvQixLQUFLLE1BQUwsQ0FBWSxNQUFwQztBQUNBLHdCQUFJLEtBQUssWUFBTCxFQUFKO0FBQ0g7QUFDRCx5QkFBUyxHQUFULENBQWEsSUFBYjtBQUNBLHlCQUFTLElBQVQsR0FBZ0IsSUFBaEI7QUFDQSxxQkFBSyxRQUFMLENBQWMsQ0FBZCxHQUFrQixJQUFJLEtBQUosSUFBYSxPQUFPLGVBQWUsQ0FBdEIsQ0FBL0I7QUFDQSxxQkFBSyxRQUFMLENBQWMsQ0FBZCxHQUFrQixJQUFJLEtBQUosSUFBYSxDQUFDLEdBQUQsR0FBTyxhQUFQLEdBQXVCLENBQXREO0FBQ0EscUJBQUssUUFBTCxDQUFjLENBQWQsR0FBa0IsZUFBZSxHQUFqQztBQUNIO0FBQ0QsZ0JBQU0sZUFBZSxJQUFJLE1BQU0sSUFBVixDQUFnQixLQUFLLEtBQUwsRUFBaEIsRUFBOEIsUUFBOUIsQ0FBckI7QUFDQSwwQkFBYyxHQUFkLENBQW1CLFlBQW5COztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFJLElBQUksR0FBUixFQUFhO0FBQ1Qsb0JBQU0sVUFBVSw4QkFBYyxXQUFkLEVBQTJCLElBQUksR0FBL0IsRUFBb0MsWUFBcEMsRUFBa0QsYUFBbEQsRUFBaUUsWUFBakUsQ0FBaEI7O0FBRUE7QUFDQSx5QkFBUyxPQUFULEdBQW1CLE9BQW5CO0FBQ0g7O0FBRUQ7QUFDQSxxQkFBUyxHQUFULENBQWMsYUFBZDtBQUNBLGtCQUFNLEdBQU4sQ0FBVSxRQUFWOztBQUVBLGdCQUFNLGNBQWMsMkJBQW1CLGFBQW5CLENBQXBCO0FBQ0Esd0JBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxhQUFwQztBQUNBLHdCQUFZLE1BQVosQ0FBbUIsRUFBbkIsQ0FBdUIsWUFBdkIsRUFBcUMsZUFBckM7O0FBR0EscUJBQVMsYUFBVCxDQUF3QixDQUF4QixFQUEyQjtBQUN2QixvQkFBSSxTQUFTLE9BQVQsS0FBcUIsS0FBekIsRUFBZ0M7QUFDNUI7QUFDSDs7QUFFRCxrQkFBRSxNQUFGLEdBQVcsSUFBWDtBQUNBO0FBQ0Esb0JBQUk7QUFDQSx3QkFBSSxJQUFKO0FBQ0gsaUJBRkQsQ0FFRSxPQUFPLENBQVAsRUFBVTtBQUNSLHdCQUFJLEtBQUosR0FBWSxLQUFLLHFCQUFqQjtBQUNBO0FBQ0g7QUFDRCw4QkFBYyxHQUFkO0FBQ0EseUJBQVMsUUFBVCxDQUFrQixDQUFsQixHQUFzQixlQUFlLEdBQXJDO0FBQ0g7O0FBRUQscUJBQVMsZUFBVCxHQUEwQjtBQUN0Qix5QkFBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLFlBQXRCO0FBQ0Esb0JBQUksSUFBSSxPQUFSLEVBQWlCLElBQUksT0FBSjtBQUNwQjtBQUNEO0FBQ0EsZ0JBQUksUUFBSixHQUFlLElBQUksSUFBSixHQUFXLEtBQVgsR0FBbUIsUUFBbEM7QUFDQSxnQkFBSSxVQUFKLEdBQWlCLElBQUksSUFBSixHQUFXLEtBQVgsR0FBbUIsUUFBcEM7QUFDQSxxQkFBUyxVQUFULEdBQXNCLFlBQU07QUFDeEIsb0JBQUksd0JBQXdCLGdCQUFnQixHQUE1QyxFQUFpRDtBQUM3Qyw2QkFBUyxLQUFULENBQWUsTUFBZixDQUF1QixjQUF2QjtBQUNILGlCQUZELE1BR0ssU0FBUyxLQUFULENBQWUsTUFBZixDQUF1QixZQUFZLFFBQVosS0FBeUIsSUFBSSxRQUE3QixHQUF3QyxJQUFJLFVBQW5FO0FBQ0wsb0JBQUksU0FBUyxPQUFiLEVBQXNCLDBCQUFjLFFBQWQsRUFBd0IsU0FBUyxPQUFqQyxFQUEwQyxZQUFZLFFBQVosRUFBMUM7QUFDdEIsb0JBQUksSUFBSSxLQUFSLEVBQWUsU0FBUyxLQUFULENBQWUsTUFBZixDQUF1QixRQUF2QjtBQUNsQixhQVBEOztBQVNBLHFCQUFTLFVBQVQ7O0FBRUEscUJBQVMsV0FBVCxHQUF1QixXQUF2QjtBQUNBLHFCQUFTLE9BQVQsR0FBbUIsYUFBbkIsQ0FwR3dCLENBb0dVO0FBQ2xDO0FBQ0gsU0F0R0Q7O0FBd0dBLGNBQU0sT0FBTixHQUFnQixRQUFRLEdBQVIsQ0FBWTtBQUFBLG1CQUFHLEVBQUUsT0FBTDtBQUFBLFNBQVosQ0FBaEIsQ0FsSHVCLENBa0htQjtBQUMxQyxjQUFNLE9BQU4sQ0FBYyxJQUFkLENBQW1CLEtBQW5CO0FBQ0Q7O0FBR0QsYUFBUyxVQUFULEdBQXNCO0FBQ2xCLGdCQUFRLE9BQVIsQ0FBZ0I7QUFBQSxtQkFBRyxFQUFFLFVBQUYsRUFBSDtBQUFBLFNBQWhCO0FBQ0g7O0FBRUQsVUFBTSxhQUFOLEdBQXNCLFVBQVUsWUFBVixFQUF3QjtBQUM1QyxnQkFBUSxPQUFSLENBQWdCLGFBQUc7QUFDZixjQUFFLFdBQUYsQ0FBYyxNQUFkLENBQXNCLFlBQXRCO0FBQ0gsU0FGRDtBQUdBO0FBQ0Esd0JBQWdCLE1BQWhCLENBQXdCLFlBQXhCO0FBQ0E7QUFDRCxLQVBEOztBQVNBLFVBQU0sSUFBTixHQUFhLFVBQVUsR0FBVixFQUFlO0FBQzFCLHdCQUFnQixXQUFoQixDQUE2QixHQUE3QjtBQUNBLGVBQU8sS0FBUDtBQUNELEtBSEQ7O0FBTUEsV0FBTyxLQUFQO0FBQ0QsQyxDQXpQRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ21CQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTzs7QUFDWjs7QUFDQTs7Ozs7O29NQWpDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQTs7O0FBVUEsSUFBTSxRQUFTLFNBQVMsUUFBVCxHQUFtQjs7QUFFaEM7OztBQUdBLE1BQU0sY0FBYyxRQUFRLE9BQVIsRUFBcEI7O0FBR0E7Ozs7O0FBS0EsTUFBTSxlQUFlLEVBQXJCO0FBQ0EsTUFBTSxjQUFjLEVBQXBCOztBQUVBOzs7Ozs7O0FBT0EsV0FBUyxxQkFBVCxHQUFpQztBQUMvQjtBQUNBLFdBQU8sWUFBWSxNQUFaLENBQW9CLDBCQUFwQixDQUFQO0FBQ0Q7QUFDRCxXQUFTLHdCQUFULEdBQW9DO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFNLE1BQU0sd0JBQXdCLEdBQXhCLENBQTZCLGFBQUs7QUFBRSxhQUFPLEVBQUUsT0FBRixDQUFVLE1BQVYsQ0FBaUI7QUFBQSxlQUFLLEVBQUUsT0FBUDtBQUFBLE9BQWpCLENBQVA7QUFBMEMsS0FBOUUsQ0FBWjtBQUNBLFdBQU8sSUFBSSxNQUFKLENBQVcsVUFBQyxDQUFELEVBQUksQ0FBSixFQUFVO0FBQUUsYUFBTyxFQUFFLE1BQUYsQ0FBUyxDQUFULENBQVA7QUFBbUIsS0FBMUMsRUFBNEMsRUFBNUMsQ0FBUDtBQUNEOztBQUVELE1BQUksZUFBZSxLQUFuQjtBQUNBLE1BQUksZ0JBQWdCLFNBQXBCO0FBQ0EsTUFBSSxzQkFBc0IsU0FBMUIsQ0F2Q2dDLENBdUNLOztBQUVyQyxNQUFJLGFBQWEsSUFBakI7O0FBRUEsV0FBUyxXQUFULENBQXNCLE1BQXRCLEVBQThCLFFBQTlCLEVBQXdDO0FBQ3RDLG1CQUFlLElBQWY7QUFDQSxvQkFBZ0IsUUFBaEI7QUFDQSxlQUFXLFdBQVgsR0FBeUIsTUFBekI7QUFDQSxRQUFJLE9BQU8sb0JBQVgsRUFBaUM7QUFDL0IsVUFBSSxDQUFDLG1CQUFMLEVBQTBCO0FBQ3hCLDhCQUFzQjtBQUFBLGlCQUFHLEVBQUUsaUJBQUYsRUFBSDtBQUFBLFNBQXRCO0FBQ0EsbUJBQVcsTUFBWCxDQUFrQixFQUFsQixDQUFxQixjQUFyQixFQUFxQyxtQkFBckM7QUFDRDtBQUNGLEtBTEQsTUFLTztBQUNMLFVBQUksbUJBQUosRUFBeUI7QUFDdkIsbUJBQVcsTUFBWCxDQUFrQixjQUFsQixDQUFpQyxjQUFqQyxFQUFpRCxtQkFBakQ7QUFDQSw4QkFBc0IsU0FBdEI7QUFDRDtBQUNGO0FBQ0QsV0FBTyxXQUFXLEtBQWxCO0FBQ0Q7O0FBRUQsV0FBUyxZQUFULEdBQXVCO0FBQ3JCLG1CQUFlLEtBQWY7QUFDQSxRQUFJLG1CQUFKLEVBQXlCO0FBQ3ZCLGlCQUFXLE1BQVgsQ0FBa0IsY0FBbEIsQ0FBaUMsY0FBakMsRUFBaUQsbUJBQWpEO0FBQ0EsNEJBQXNCLFNBQXRCO0FBQ0Q7QUFDRjs7QUFHRDs7O0FBR0EsTUFBTSxnQkFBZ0IsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUMsT0FBTSxRQUFQLEVBQWlCLGFBQWEsSUFBOUIsRUFBb0MsVUFBVSxNQUFNLGdCQUFwRCxFQUE1QixDQUF0QjtBQUNBLFdBQVMsV0FBVCxHQUFzQjtBQUNwQixRQUFNLElBQUksSUFBSSxNQUFNLGNBQVYsRUFBVjtBQUNBLE1BQUUsWUFBRixDQUFlLFVBQWYsRUFBMkIsSUFBSSxNQUFNLGVBQVYsQ0FBMEIsSUFBSSxZQUFKLENBQWlCLENBQUMsQ0FBRCxFQUFHLENBQUgsRUFBSyxDQUFMLEVBQU8sQ0FBUCxFQUFTLENBQVQsRUFBVyxDQUFYLENBQWpCLENBQTFCLENBQTNCO0FBQ0E7QUFDQTtBQUNBLFdBQU8sSUFBSSxNQUFNLElBQVYsQ0FBZ0IsQ0FBaEIsRUFBbUIsYUFBbkIsQ0FBUDtBQUNEOztBQU1EOzs7QUFHQSxNQUFNLGlCQUFpQixJQUFJLE1BQU0saUJBQVYsQ0FBNEIsRUFBQyxPQUFNLFFBQVAsRUFBaUIsYUFBYSxJQUE5QixFQUFvQyxVQUFVLE1BQU0sZ0JBQXBELEVBQTVCLENBQXZCO0FBQ0EsV0FBUyxZQUFULEdBQXVCO0FBQ3JCLFdBQU8sSUFBSSxNQUFNLElBQVYsQ0FBZ0IsSUFBSSxNQUFNLGNBQVYsQ0FBeUIsS0FBekIsRUFBZ0MsQ0FBaEMsRUFBbUMsQ0FBbkMsQ0FBaEIsRUFBd0QsY0FBeEQsQ0FBUDtBQUNEOztBQUtEOzs7Ozs7O0FBUUEsV0FBUyxXQUFULEdBQXVEO0FBQUEsUUFBakMsV0FBaUMsdUVBQW5CLElBQUksTUFBTSxLQUFWLEVBQW1COztBQUNyRCxRQUFNLFFBQVE7QUFDWixlQUFTLElBQUksTUFBTSxTQUFWLENBQXFCLElBQUksTUFBTSxPQUFWLEVBQXJCLEVBQTBDLElBQUksTUFBTSxPQUFWLEVBQTFDLENBREc7QUFFWixhQUFPLGFBRks7QUFHWixjQUFRLGNBSEk7QUFJWixjQUFRLFdBSkk7QUFLWixlQUFTLEtBTEc7QUFNWixlQUFTLEtBTkc7QUFPWixjQUFRLElBQUksZ0JBQUosRUFQSTtBQVFaLG1CQUFhO0FBQ1gsY0FBTSxTQURLO0FBRVgsZUFBTyxTQUZJO0FBR1gsZUFBTztBQUhJO0FBUkQsS0FBZDs7QUFlQSxVQUFNLEtBQU4sQ0FBWSxHQUFaLENBQWlCLE1BQU0sTUFBdkI7O0FBRUEsV0FBTyxLQUFQO0FBQ0Q7O0FBTUQ7Ozs7QUFJQSxNQUFNLGFBQWEsa0JBQW5COztBQUVBLFdBQVMsZ0JBQVQsR0FBMkI7QUFDekIsUUFBTSxRQUFRLElBQUksTUFBTSxPQUFWLENBQWtCLENBQUMsQ0FBbkIsRUFBcUIsQ0FBQyxDQUF0QixDQUFkOztBQUVBLFFBQU0sUUFBUSxhQUFkO0FBQ0EsVUFBTSxLQUFOLEdBQWMsS0FBZDtBQUNBLFVBQU0saUJBQU4sR0FBMEIsSUFBSSxNQUFNLE9BQVYsRUFBMUI7QUFDQSxVQUFNLFdBQU4sR0FBb0IsSUFBSSxNQUFNLE9BQVYsRUFBcEI7QUFDQSxVQUFNLFVBQU4sR0FBbUIsSUFBSSxNQUFNLEtBQVYsRUFBbkI7QUFDQSxVQUFNLGFBQU4sR0FBc0IsRUFBdEI7O0FBRUE7QUFDQSxVQUFNLFdBQU4sR0FBb0IsU0FBcEI7O0FBRUEsV0FBTyxnQkFBUCxDQUF5QixXQUF6QixFQUFzQyxVQUFVLEtBQVYsRUFBaUI7QUFDckQ7QUFDQSxVQUFJLGFBQUosRUFBbUI7QUFDakIsWUFBTSxhQUFhLGNBQWMsVUFBZCxDQUF5QixxQkFBekIsRUFBbkI7QUFDQSxjQUFNLENBQU4sR0FBWSxDQUFDLE1BQU0sT0FBTixHQUFnQixXQUFXLElBQTVCLElBQW9DLFdBQVcsS0FBakQsR0FBMEQsQ0FBMUQsR0FBOEQsQ0FBeEU7QUFDQSxjQUFNLENBQU4sR0FBVSxFQUFJLENBQUMsTUFBTSxPQUFOLEdBQWdCLFdBQVcsR0FBNUIsSUFBbUMsV0FBVyxNQUFsRCxJQUE0RCxDQUE1RCxHQUFnRSxDQUExRTtBQUNEO0FBQ0Q7QUFMQSxXQU1LO0FBQ0gsZ0JBQU0sQ0FBTixHQUFZLE1BQU0sT0FBTixHQUFnQixPQUFPLFVBQXpCLEdBQXdDLENBQXhDLEdBQTRDLENBQXREO0FBQ0EsZ0JBQU0sQ0FBTixHQUFVLEVBQUksTUFBTSxPQUFOLEdBQWdCLE9BQU8sV0FBM0IsSUFBMkMsQ0FBM0MsR0FBK0MsQ0FBekQ7QUFDRDtBQUVGLEtBYkQsRUFhRyxLQWJIOztBQWVBLFdBQU8sZ0JBQVAsQ0FBeUIsV0FBekIsRUFBc0MsVUFBVSxLQUFWLEVBQWlCO0FBQ3JELFVBQUksTUFBTSxhQUFOLENBQW9CLE1BQXBCLEdBQTZCLENBQWpDLEVBQW9DO0FBQ2xDO0FBQ0E7QUFDQTtBQUNEO0FBQ0QsWUFBTSxPQUFOLEdBQWdCLElBQWhCLENBTnFELENBTS9CO0FBQ3JCO0FBQ0E7QUFDRCxZQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDRCxLQVZELEVBVUcsSUFWSDs7QUFZQSxXQUFPLGdCQUFQLENBQXlCLFNBQXpCLEVBQW9DLFVBQVUsS0FBVixFQUFpQjtBQUNuRCxZQUFNLE9BQU4sR0FBZ0IsS0FBaEI7QUFDRCxLQUZELEVBRUcsS0FGSDs7QUFLQSxXQUFPLEtBQVA7QUFDRDs7QUFNRDs7Ozs7Ozs7Ozs7QUFlQSxXQUFTLGNBQVQsQ0FBeUIsTUFBekIsRUFBaUM7QUFDL0IsUUFBTSxRQUFRLFlBQWEsTUFBYixDQUFkOztBQUVBLFVBQU0sS0FBTixDQUFZLE9BQVosR0FBc0IsVUFBVSxJQUFWLEVBQWdCO0FBQ3BDLFVBQU0sT0FBTyxNQUFNLGFBQW5CO0FBQ0E7QUFDQSxVQUFJLFFBQVEsSUFBUixJQUFpQixLQUFLLE1BQUwsR0FBYyxDQUFuQyxFQUF1QztBQUNyQyxjQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDQSxjQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDRCxPQUhELE1BR087QUFDTCxjQUFNLE9BQU4sR0FBZ0IsS0FBaEI7QUFDRDtBQUNGLEtBVEQ7O0FBV0EsVUFBTSxLQUFOLENBQVksT0FBWixHQUFzQixVQUFVLElBQVYsRUFBZ0I7QUFDcEMsWUFBTSxPQUFOLEdBQWdCLElBQWhCO0FBQ0QsS0FGRDs7QUFJQSxVQUFNLEtBQU4sQ0FBWSxNQUFaLEdBQXFCLE1BQU0sTUFBM0I7O0FBRUEsUUFBSSxNQUFNLGNBQU4sSUFBd0Isa0JBQWtCLE1BQU0sY0FBcEQsRUFBb0U7QUFDbEUseUJBQW9CLEtBQXBCLEVBQTJCLE1BQTNCLEVBQW1DLE1BQU0sS0FBTixDQUFZLE9BQS9DLEVBQXdELE1BQU0sS0FBTixDQUFZLE9BQXBFO0FBQ0Q7O0FBRUQsaUJBQWEsSUFBYixDQUFtQixLQUFuQjs7QUFFQSxXQUFPLE1BQU0sS0FBYjtBQUNEOztBQUtEOzs7O0FBSUEsV0FBUyxTQUFULENBQW9CLE1BQXBCLEVBQTRCLFlBQTVCLEVBQWtFO0FBQUEsUUFBeEIsR0FBd0IsdUVBQWxCLEdBQWtCO0FBQUEsUUFBYixHQUFhLHVFQUFQLEtBQU87O0FBQ2hFLFFBQU0sU0FBUyxzQkFBYztBQUMzQiw4QkFEMkIsRUFDZCwwQkFEYyxFQUNBLGNBREEsRUFDUSxRQURSLEVBQ2EsUUFEYjtBQUUzQixvQkFBYyxPQUFRLFlBQVI7QUFGYSxLQUFkLENBQWY7O0FBS0EsZ0JBQVksSUFBWixDQUFrQixNQUFsQjs7QUFFQSxXQUFPLE1BQVA7QUFDRDs7QUFFRCxXQUFTLFdBQVQsQ0FBc0IsTUFBdEIsRUFBOEIsWUFBOUIsRUFBNEM7QUFDMUMsUUFBTSxXQUFXLHdCQUFlO0FBQzlCLDhCQUQ4QixFQUNqQiwwQkFEaUIsRUFDSCxjQURHO0FBRTlCLG9CQUFjLE9BQVEsWUFBUjtBQUZnQixLQUFmLENBQWpCOztBQUtBLGdCQUFZLElBQVosQ0FBa0IsUUFBbEI7O0FBRUEsV0FBTyxRQUFQO0FBQ0Q7O0FBRUQsV0FBUyxTQUFULENBQW9CLE1BQXBCLEVBQTRCLFlBQTVCLEVBQTBDO0FBQ3hDLFFBQU0sU0FBUyxzQkFBYTtBQUMxQiw4QkFEMEIsRUFDYiwwQkFEYSxFQUNDO0FBREQsS0FBYixDQUFmOztBQUlBLGdCQUFZLElBQVosQ0FBa0IsTUFBbEI7QUFDQSxXQUFPLE1BQVA7QUFDRDs7QUFFRDs7Ozs7O0FBTUEsV0FBUyxjQUFULENBQXdCLElBQXhCLEVBQThCLEtBQTlCLEVBQXFDLElBQXJDLEVBQTJDLE1BQTNDLEVBQW1EO0FBQ2pELFFBQU0sU0FBUyxFQUFFLEdBQUcsSUFBTCxFQUFmO0FBQ0EsUUFBTSxlQUFlLEdBQXJCOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBTSxTQUFTLDJCQUFrQjtBQUMvQiw4QkFEK0IsRUFDbEIsY0FEa0IsRUFDViwwQkFEVSxFQUNJLFlBREosRUFDVyxVQURYLEVBQ2lCO0FBRGpCLEtBQWxCLENBQWY7QUFHQSxnQkFBWSxJQUFaLENBQWtCLE1BQWxCO0FBQ0EsV0FBTyxNQUFQO0FBQ0Q7O0FBRUQsV0FBUyxlQUFULENBQXlCLFFBQXpCLEVBQW1DLEtBQW5DLEVBQTBDLElBQTFDLEVBQWdELE1BQWhELEVBQXdEO0FBQ3RELFFBQU0sZUFBZSxFQUFyQjtBQUNBLFFBQU0sU0FBUywyQkFBa0I7QUFDL0IsOEJBRCtCLEVBQ2xCLGtCQURrQixFQUNSLDBCQURRLEVBQ00sWUFETixFQUNhLFVBRGIsRUFDbUI7QUFEbkIsS0FBbEIsQ0FBZjtBQUdBLGdCQUFZLElBQVosQ0FBaUIsTUFBakI7QUFDQSxXQUFPLE1BQVA7QUFDRDs7QUFFRDs7OztBQUlBLFdBQVMsbUJBQVQsQ0FBNkIsSUFBN0IsRUFBNEM7QUFDMUMsUUFBSSxVQUFVLE9BQU8sU0FBUCxDQUFpQixJQUFqQixJQUF5QixJQUF6QixHQUFnQyxDQUE5Qzs7QUFEMEMsc0NBQU4sSUFBTTtBQUFOLFVBQU07QUFBQTs7QUFFMUMsUUFBTSxVQUFVLElBQWhCO0FBQ0EsUUFBSSxDQUFDLE9BQU8sU0FBUCxDQUFpQixJQUFqQixDQUFMLEVBQTZCLFFBQVEsT0FBUixDQUFnQixJQUFoQjtBQUM3QixRQUFNLE9BQU8sK0JBQXNCLEVBQUMsd0JBQUQsRUFBYyxnQkFBZCxFQUF1QixTQUFTLE9BQWhDLEVBQXRCLENBQWI7QUFDQSxnQkFBWSxJQUFaLENBQWlCLElBQWpCO0FBQ0EsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsV0FBUyxXQUFULENBQXNCLFdBQXRCLEVBQW9DO0FBQ2xDLFFBQUksQ0FBQyxXQUFMLEVBQWtCLGNBQWMscUJBQUMsQ0FBRDtBQUFBLGFBQU8sUUFBUSxHQUFSLGNBQXVCLENBQXZCLENBQVA7QUFBQSxLQUFkO0FBQ2xCLFFBQU0sS0FBSyx3QkFBZSxFQUFDLHdCQUFELEVBQWMsd0JBQWQsRUFBZixDQUFYO0FBQ0EsZ0JBQVksSUFBWixDQUFpQixFQUFqQjtBQUNBLFdBQU8sRUFBUDtBQUNEOztBQUVELFdBQVMsVUFBVCxDQUFxQixNQUFyQixFQUE2QixZQUE3QixFQUE0QztBQUMxQyxRQUFNLE1BQU0sdUJBQWMsRUFBQyx3QkFBRCxFQUFjLGNBQWQsRUFBc0IsMEJBQXRCLEVBQWQsQ0FBWjtBQUNBLGdCQUFZLElBQVosQ0FBaUIsR0FBakI7QUFDQSxXQUFPLEdBQVA7QUFDRDs7QUFFRCxXQUFTLGNBQVQsQ0FBeUIsTUFBekIsRUFBaUMsWUFBakMsRUFBZ0Q7QUFDOUMsUUFBTSxNQUFNLDJCQUFrQixFQUFDLHdCQUFELEVBQWMsY0FBZCxFQUFzQiwwQkFBdEIsRUFBbEIsQ0FBWjtBQUNBLGdCQUFZLElBQVosQ0FBaUIsR0FBakI7QUFDQSxXQUFPLEdBQVA7QUFDRDs7QUFFRCxXQUFTLFdBQVQsQ0FBc0IsTUFBdEIsRUFBOEIsWUFBOUIsRUFBNEMsT0FBNUMsRUFBcUQ7QUFDbkQsUUFBTSxXQUFXLHdCQUFlO0FBQzlCLDhCQUQ4QixFQUNqQiwwQkFEaUIsRUFDSCxjQURHLEVBQ0s7QUFETCxLQUFmLENBQWpCOztBQUlBLGdCQUFZLElBQVosQ0FBa0IsUUFBbEI7QUFDQSxXQUFPLFFBQVA7QUFDRDs7QUFNRDs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsV0FBUyxHQUFULENBQWMsTUFBZCxFQUFzQixZQUF0QixFQUFvQyxJQUFwQyxFQUEwQyxJQUExQyxFQUFnRDs7QUFFOUMsUUFBSSxXQUFXLFNBQWYsRUFBMEI7QUFDeEIsYUFBTyxTQUFQO0FBQ0QsS0FGRCxNQUtBLElBQUksT0FBTyxRQUFYLEVBQXFCLE9BQU8sTUFBUDs7QUFFckIsUUFBSSxPQUFRLFlBQVIsTUFBMkIsU0FBL0IsRUFBMEM7QUFDeEMsY0FBUSxJQUFSLENBQWMsbUJBQWQsRUFBbUMsWUFBbkMsRUFBaUQsV0FBakQsRUFBOEQsTUFBOUQ7QUFDQSxhQUFPLElBQUksTUFBTSxLQUFWLEVBQVA7QUFDRDs7QUFFRCxRQUFJLFNBQVUsSUFBVixLQUFvQixRQUFTLElBQVQsQ0FBeEIsRUFBeUM7QUFDdkMsYUFBTyxZQUFhLE1BQWIsRUFBcUIsWUFBckIsRUFBbUMsSUFBbkMsQ0FBUDtBQUNEOztBQUVELFFBQUksU0FBVSxPQUFRLFlBQVIsQ0FBVixDQUFKLEVBQXVDO0FBQ3JDLGFBQU8sVUFBVyxNQUFYLEVBQW1CLFlBQW5CLEVBQWlDLElBQWpDLEVBQXVDLElBQXZDLENBQVA7QUFDRDs7QUFFRCxRQUFJLFVBQVcsT0FBUSxZQUFSLENBQVgsQ0FBSixFQUF3QztBQUN0QyxhQUFPLFlBQWEsTUFBYixFQUFxQixZQUFyQixDQUFQO0FBQ0Q7O0FBRUQsUUFBSSxXQUFZLE9BQVEsWUFBUixDQUFaLENBQUosRUFBMEM7QUFDeEMsYUFBTyxVQUFXLE1BQVgsRUFBbUIsWUFBbkIsQ0FBUDtBQUNEOztBQUVELFFBQUssU0FBVSxPQUFRLFlBQVIsQ0FBVixDQUFMLEVBQXlDO0FBQ3ZDLGFBQU8sV0FBWSxNQUFaLEVBQW9CLFlBQXBCLENBQVA7QUFDRDs7QUFFRCxRQUFLLFFBQVMsT0FBUSxZQUFSLENBQVQsQ0FBTCxFQUF3QztBQUN0QyxhQUFPLGVBQWdCLE1BQWhCLEVBQXdCLFlBQXhCLENBQVA7QUFDRDs7QUFFRDtBQUNBLFdBQU8sU0FBUDtBQUNEOztBQUdELFdBQVMsZUFBVCxHQUE0QztBQUFBLFFBQWxCLEdBQWtCLHVFQUFaLENBQVk7QUFBQSxRQUFULEdBQVMsdUVBQUgsQ0FBRzs7QUFDMUMsUUFBTSxRQUFRO0FBQ1osY0FBUTtBQURJLEtBQWQ7O0FBSUEsV0FBTyxVQUFXLEtBQVgsRUFBa0IsUUFBbEIsRUFBNEIsR0FBNUIsRUFBaUMsR0FBakMsQ0FBUDtBQUNEOztBQUVELFdBQVMsaUJBQVQsR0FBMEM7QUFBQSxRQUFkLE9BQWMsdUVBQUosRUFBSTs7QUFDeEMsUUFBTSxRQUFRO0FBQ1osY0FBUTtBQURJLEtBQWQ7O0FBSUEsUUFBSSxZQUFZLFNBQWhCLEVBQTJCO0FBQ3pCLFlBQU0sTUFBTixHQUFlLFFBQVMsT0FBVCxJQUFxQixRQUFTLENBQVQsQ0FBckIsR0FBb0MsUUFBUyxPQUFPLElBQVAsQ0FBWSxPQUFaLEVBQXFCLENBQXJCLENBQVQsQ0FBbkQ7QUFDRDs7QUFFRCxXQUFPLFlBQWEsS0FBYixFQUFvQixRQUFwQixFQUE4QixPQUE5QixDQUFQO0FBQ0Q7O0FBRUQsV0FBUyxpQkFBVCxHQUFtRDtBQUFBLFFBQXZCLGFBQXVCLHVFQUFQLEtBQU87O0FBQ2pELFFBQU0sUUFBUTtBQUNaLGVBQVM7QUFERyxLQUFkOztBQUlBLFdBQU8sWUFBYSxLQUFiLEVBQW9CLFNBQXBCLENBQVA7QUFDRDs7QUFFRCxXQUFTLGVBQVQsQ0FBMEIsRUFBMUIsRUFBOEI7QUFDNUIsUUFBTSxRQUFRO0FBQ1osY0FBUyxPQUFLLFNBQU4sR0FBbUIsRUFBbkIsR0FBd0IsWUFBVSxDQUFFO0FBRGhDLEtBQWQ7O0FBSUEsV0FBTyxVQUFXLEtBQVgsRUFBa0IsUUFBbEIsQ0FBUDtBQUNEOztBQUVEOzs7Ozs7OztBQVNBLFdBQVMsTUFBVCxHQUEwQjtBQUFBLHVDQUFOLElBQU07QUFBTixVQUFNO0FBQUE7O0FBQ3hCLFFBQUksc0NBQWMsSUFBSSxHQUFKLENBQVEsSUFBUixDQUFkLEVBQUosQ0FEd0IsQ0FDVztBQUNuQyxRQUFLLENBQUMsK0NBQWMsTUFBZCxFQUFOLEVBQThCLE9BQU8sS0FBUDtBQUM5QixXQUFPLE9BQVAsQ0FBZ0IsVUFBVSxHQUFWLEVBQWU7QUFDN0IsVUFBSSxJQUFJLFlBQVksT0FBWixDQUFxQixHQUFyQixDQUFSO0FBQ0EsVUFBSyxJQUFJLENBQUMsQ0FBVixFQUFhLFlBQVksTUFBWixDQUFvQixDQUFwQixFQUF1QixDQUF2QixFQUFiLEtBQ0s7QUFBRTtBQUNMLGdCQUFRLEdBQVIsQ0FBWSx3R0FBWjtBQUNBLGVBQU8sS0FBUDtBQUNEO0FBQ0YsS0FQRDtBQVFBLFdBQU8sSUFBUDtBQUNEOztBQUVEOzs7Ozs7O0FBU0EsV0FBUyxVQUFULEdBQStCO0FBQUEsdUNBQVAsSUFBTztBQUFQLFVBQU87QUFBQTs7QUFDN0IsU0FBSyxJQUFJLElBQUUsQ0FBWCxFQUFjLElBQUUsS0FBSyxNQUFyQixFQUE2QixHQUE3QixFQUFrQztBQUNoQyxVQUFJLE1BQU0sS0FBSyxDQUFMLENBQVY7QUFDQSxVQUFJLFlBQVksT0FBWixDQUFvQixHQUFwQixNQUE2QixDQUFDLENBQTlCLElBQW1DLENBQUMsSUFBSSxNQUFKLENBQVcsUUFBWCxDQUFvQixHQUFwQixDQUF4QyxFQUFrRTtBQUNoRTtBQUNBLGdCQUFRLEdBQVIsQ0FBWSw2QkFBNkIsR0FBekMsRUFGZ0UsQ0FFakI7QUFDL0MsZUFBTyxLQUFQO0FBQ0Q7QUFDRCxVQUFJLElBQUksUUFBUixFQUFrQjtBQUNoQixZQUFJLENBQUMsK0NBQWUsSUFBSSxXQUFuQixFQUFMLEVBQXVDLE9BQU8sS0FBUDtBQUN4QztBQUNGO0FBQ0QsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQ7Ozs7QUFJQSxXQUFTLFFBQVQsR0FBb0I7QUFDbEIsZ0JBQVksT0FBWixDQUFvQixhQUFLO0FBQ3ZCLFFBQUUsT0FBRixHQUFZLEtBQVosQ0FBbUIsSUFBSSxFQUFFLE1BQUYsSUFBWSxDQUFDLEVBQUUsTUFBRixDQUFTLFdBQTFCLEVBQXVDLEVBQUUsTUFBRixDQUFTLE1BQVQsQ0FBZ0IsQ0FBaEI7QUFDM0QsS0FGRDtBQUdBLGdCQUFZLE1BQVosQ0FBbUIsQ0FBbkIsRUFBc0IsWUFBWSxNQUFsQztBQUNEOztBQUdEOzs7Ozs7OztBQVVBLFdBQVMsTUFBVCxDQUFpQixJQUFqQixFQUF1QjtBQUNyQixRQUFNLFNBQVMsc0JBQWE7QUFDMUIsOEJBRDBCO0FBRTFCLGdCQUYwQjtBQUcxQixjQUFRLEdBSGtCO0FBSTFCLGlCQUFXLE1BSmU7QUFLMUIsMEJBQW9CO0FBQ2xCLG1CQUFXLGVBRE87QUFFbEIscUJBQWEsaUJBRks7QUFHbEIscUJBQWEsaUJBSEs7QUFJbEIsbUJBQVcsZUFKTztBQUtsQix3QkFBZ0IsY0FMRTtBQU1sQix5QkFBaUIsZUFOQztBQU9sQiw2QkFBcUIsbUJBUEg7QUFRbEIscUJBQWEsV0FSSztBQVNsQixvQkFBWTtBQVRNLE9BTE07QUFnQjFCLHlCQUFtQixXQWhCTztBQWlCMUI7QUFDQSxzQkFBZ0I7QUFsQlUsS0FBYixDQUFmOztBQXVCQSxnQkFBWSxJQUFaLENBQWtCLE1BQWxCOztBQUVBLFdBQU8sTUFBUDtBQUNEOztBQU1EOzs7O0FBSUEsTUFBTSxZQUFZLElBQUksTUFBTSxPQUFWLEVBQWxCO0FBQ0EsTUFBTSxhQUFhLElBQUksTUFBTSxPQUFWLENBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCLENBQUMsQ0FBMUIsQ0FBbkI7QUFDQSxNQUFNLFVBQVUsSUFBSSxNQUFNLE9BQVYsRUFBaEI7O0FBRUEsV0FBUyxNQUFULEdBQWtCO0FBQ2hCLFFBQU0saUJBQWlCLGdCQUFnQixXQUFXLFdBQVgsQ0FBdUIsb0JBQTlEO0FBQ0EsUUFBSSxVQUFKLEVBQWdCLHNCQUF1QixNQUF2Qjs7QUFFaEIsUUFBSSxpQkFBaUIsMEJBQXJCO0FBQ0EsUUFBTSxjQUFjLHVCQUFwQjtBQUNBLFFBQU0sVUFBVSxZQUFZLE1BQVosQ0FBbUI7QUFBQSxhQUFLLEVBQUUsTUFBRixLQUFhLENBQWxCO0FBQUEsS0FBbkIsQ0FBaEIsQ0FOZ0IsQ0FNeUM7QUFDekQsWUFBUSxPQUFSLENBQWdCLGFBQUs7QUFDbkIsUUFBRSxRQUFGLENBQVcsY0FBWCxHQUE0QixpQkFBaUIsV0FBVyxXQUE1QixHQUEwQyxLQUF0RTtBQUNBLFVBQUksRUFBRSx5QkFBTixFQUFpQztBQUMvQixVQUFFLGFBQUY7QUFDQSxVQUFFLHlCQUFGLEdBQThCLEtBQTlCLENBRitCLENBRU07QUFDdEM7QUFDRCxVQUFJLEVBQUUsUUFBRixDQUFXLGFBQWYsRUFBOEIsRUFBRSxhQUFGO0FBQy9CLEtBUEQ7O0FBU0EsUUFBSSxZQUFKLEVBQWtCO0FBQ2hCO0FBQ0EsaUJBQVcsYUFBWCxHQUEyQixrQkFBbUIsY0FBbkIsRUFBbUMsVUFBbkMsQ0FBM0I7QUFDRDs7QUFFRCxpQkFBYSxPQUFiLENBQXNCLFlBQXFFO0FBQUEscUZBQVgsRUFBVztBQUFBLFVBQTFELEdBQTBELFFBQTFELEdBQTBEO0FBQUEsVUFBdEQsTUFBc0QsUUFBdEQsTUFBc0Q7QUFBQSxVQUEvQyxPQUErQyxRQUEvQyxPQUErQztBQUFBLFVBQXZDLEtBQXVDLFFBQXZDLEtBQXVDO0FBQUEsVUFBakMsTUFBaUMsUUFBakMsTUFBaUM7QUFBQSxVQUExQixXQUEwQixRQUExQixXQUEwQjs7QUFBQSxVQUFQLEtBQU87O0FBQ3pGLGlDQUE0QixXQUE1QixFQUF5QyxjQUF6QztBQUNBLGFBQU8saUJBQVA7O0FBRUEsZ0JBQVUsR0FBVixDQUFjLENBQWQsRUFBZ0IsQ0FBaEIsRUFBa0IsQ0FBbEIsRUFBcUIscUJBQXJCLENBQTRDLE9BQU8sV0FBbkQ7QUFDQSxjQUFRLFFBQVIsR0FBbUIsZUFBbkIsQ0FBb0MsT0FBTyxXQUEzQzs7QUFFQSxpQkFBVyxHQUFYLENBQWUsQ0FBZixFQUFpQixDQUFqQixFQUFtQixDQUFDLENBQXBCO0FBQ0E7QUFDQTtBQUNBLFVBQUksT0FBTyxtQkFBWCxFQUFnQyxXQUFXLGVBQVgsQ0FBMkIsT0FBTyxtQkFBbEM7QUFDaEMsaUJBQVcsWUFBWCxDQUF5QixPQUF6QixFQUFtQyxTQUFuQzs7QUFFQSxjQUFRLEdBQVIsQ0FBYSxTQUFiLEVBQXdCLFVBQXhCOztBQUVBO0FBQ0EsVUFBTSxJQUFJLE1BQU0sUUFBTixDQUFlLFlBQWYsQ0FBNEIsVUFBNUIsRUFBd0MsS0FBbEQ7QUFDQSxRQUFFLENBQUYsSUFBTyxVQUFVLENBQWpCLENBQW9CLEVBQUUsQ0FBRixJQUFPLFVBQVUsQ0FBakIsQ0FBb0IsRUFBRSxDQUFGLElBQU8sVUFBVSxDQUFqQjs7QUFFeEM7QUFDQTs7QUFFQSxVQUFNLGdCQUFnQixRQUFRLGdCQUFSLENBQTBCLGNBQTFCLEVBQTBDLEtBQTFDLENBQXRCO0FBQ0EseUJBQW9CLGFBQXBCLEVBQW1DLEtBQW5DLEVBQTBDLE1BQTFDOztBQUVBLG1CQUFjLEtBQWQsRUFBc0IsYUFBdEIsR0FBc0MsYUFBdEM7QUFDQTtBQUNBLFVBQUksT0FBTyxRQUFYLEVBQXFCLE9BQU8sUUFBUCxDQUFnQixnQkFBaEIsR0FBbUMsYUFBbkM7QUFDdEIsS0E1QkQ7O0FBOEJBLFFBQU0sU0FBUyxhQUFhLEtBQWIsRUFBZjs7QUFFQSxRQUFJLFlBQUosRUFBa0I7QUFDaEIsYUFBTyxJQUFQLENBQWEsVUFBYjtBQUNEOztBQUVELGdCQUFZLE9BQVosQ0FBcUI7QUFBQSxhQUFLLEVBQUUsYUFBRixDQUFpQixNQUFqQixDQUFMO0FBQUEsS0FBckI7QUFDQTtBQUNBO0FBQ0EsUUFBSSxlQUFlLE9BQU8sTUFBUCxDQUFjO0FBQUEsYUFBUyxNQUFNLFdBQWY7QUFBQSxLQUFkLENBQW5CO0FBQ0EsUUFBSSxhQUFhLE1BQWIsSUFBdUIsQ0FBM0IsRUFBOEI7QUFDNUIsbUJBQWEsT0FBYixDQUFxQjtBQUFBLGVBQUssRUFBRSxXQUFGLEdBQWdCLEtBQXJCO0FBQUEsT0FBckIsRUFENEIsQ0FDc0I7QUFDbEQsY0FBUSxPQUFSLENBQWdCO0FBQUEsZUFBSyxFQUFFLGdCQUFGLEVBQUw7QUFBQSxPQUFoQixFQUY0QixDQUVnQjtBQUM3QztBQUNELGVBQVcsT0FBWCxHQUFxQixLQUFyQjtBQUNBLGlCQUFhLE9BQWIsQ0FBcUI7QUFBQSxhQUFHLEVBQUUsT0FBRixHQUFZLEtBQWY7QUFBQSxLQUFyQjtBQUNBLFdBQU8sV0FBVyxhQUFsQjtBQUNEOztBQUVEO0FBQ0E7QUFDQSxXQUFTLDBCQUFULENBQXFDLFlBQXJDLEVBQW1ELGNBQW5ELEVBQW9FO0FBQ2xFLEtBQUMsT0FBRCxFQUFVLE1BQVYsRUFBa0IsT0FBbEIsRUFBMkIsT0FBM0IsQ0FBb0MsMkJBQW1CO0FBQ3JELFVBQU0sY0FBYyxhQUFhLGVBQWIsQ0FBcEI7QUFDQSxVQUFJLGVBQWUsZUFBZSxPQUFmLENBQXVCLFlBQVksU0FBbkMsSUFBZ0QsQ0FBbkUsRUFBc0U7QUFDcEUscUJBQWEsZUFBYixJQUFnQyxTQUFoQztBQUNBO0FBQ0Esb0JBQVksTUFBWixDQUFvQixFQUFwQjtBQUNEO0FBQ0YsS0FQRDtBQVFEOztBQUVELFdBQVMsV0FBVCxDQUFzQixLQUF0QixFQUE2QixLQUE3QixFQUFvQztBQUNsQyxRQUFNLEtBQUssTUFBTSxRQUFOLENBQWUsWUFBZixDQUE0QixVQUE1QixFQUF3QyxLQUFuRDtBQUNBLE9BQUcsQ0FBSCxJQUFRLE1BQU0sQ0FBZDtBQUNBLE9BQUcsQ0FBSCxJQUFRLE1BQU0sQ0FBZDtBQUNBLE9BQUcsQ0FBSCxJQUFRLE1BQU0sQ0FBZDtBQUNBLE9BQUcsV0FBSCxHQUFpQixJQUFqQjtBQUNBO0FBQ0EsVUFBTSxPQUFOLEdBQWdCLElBQWhCO0FBQ0EsVUFBTSxRQUFOLENBQWUscUJBQWY7QUFDQSxVQUFNLFFBQU4sQ0FBZSxrQkFBZjtBQUNBO0FBQ0Q7O0FBRUQsV0FBUyxrQkFBVCxDQUE2QixhQUE3QixFQUE0QyxLQUE1QyxFQUFtRCxNQUFuRCxFQUEyRDtBQUN6RCxRQUFJLGNBQWMsTUFBZCxHQUF1QixDQUEzQixFQUE4QjtBQUM1QixVQUFNLFdBQVcsY0FBZSxDQUFmLENBQWpCO0FBQ0Esa0JBQWEsS0FBYixFQUFvQixTQUFTLEtBQTdCO0FBQ0EsYUFBTyxRQUFQLENBQWdCLElBQWhCLENBQXNCLFNBQVMsS0FBL0I7QUFDQSxhQUFPLE9BQVAsR0FBaUIsSUFBakI7QUFDQSxhQUFPLGlCQUFQO0FBQ0QsS0FORCxNQU9JO0FBQ0YsWUFBTSxPQUFOLEdBQWdCLEtBQWhCO0FBQ0EsYUFBTyxPQUFQLEdBQWlCLEtBQWpCO0FBQ0Q7QUFDRjs7QUFFRCxXQUFTLHNCQUFULENBQWlDLFlBQWpDLEVBQStDLEtBQS9DLEVBQXNELE1BQXRELEVBQThEO0FBQzVELFdBQU8sUUFBUCxDQUFnQixJQUFoQixDQUFzQixZQUF0QjtBQUNBLGdCQUFhLEtBQWIsRUFBb0IsT0FBTyxRQUEzQjtBQUNEOztBQUVELFdBQVMsd0JBQVQsQ0FBbUMsT0FBbkMsRUFBNEMsS0FBNUMsRUFBbUQsTUFBbkQsRUFBMkQ7QUFDekQsWUFBUSxhQUFSLENBQXVCLEtBQXZCLEVBQThCLE1BQTlCO0FBQ0EsUUFBTSxpQkFBaUIsMEJBQXZCO0FBQ0EsV0FBTyxRQUFRLGdCQUFSLENBQTBCLGNBQTFCLEVBQTBDLEtBQTFDLENBQVA7QUFDRDs7QUFFRCxXQUFTLG9CQUFULENBQStCLE9BQS9CLEVBQXdDLENBQXhDLEVBQTJDLEtBQTNDLEVBQWtEO0FBQ2hELFdBQU8sUUFBUSxHQUFSLENBQVksY0FBWixDQUE0QixLQUE1QixFQUFtQyxDQUFuQyxDQUFQO0FBQ0Q7O0FBRUQsV0FBUyxpQkFBVCxDQUE0QixjQUE1QixFQUFtSDtBQUFBLG9GQUFKLEVBQUk7QUFBQSxRQUF0RSxHQUFzRSxTQUF0RSxHQUFzRTtBQUFBLFFBQWxFLE1BQWtFLFNBQWxFLE1BQWtFO0FBQUEsUUFBM0QsT0FBMkQsU0FBM0QsT0FBMkQ7QUFBQSxRQUFuRCxLQUFtRCxTQUFuRCxLQUFtRDtBQUFBLFFBQTdDLE1BQTZDLFNBQTdDLE1BQTZDO0FBQUEsUUFBdEMsS0FBc0MsU0FBdEMsS0FBc0M7QUFBQSxRQUFoQyxXQUFnQyxTQUFoQyxXQUFnQztBQUFBLFFBQW5CLFdBQW1CLFNBQW5CLFdBQW1COztBQUNqSCwrQkFBNEIsV0FBNUIsRUFBeUMsY0FBekM7QUFDQSxRQUFJLGdCQUFnQixFQUFwQjs7QUFFQSxRQUFJLFdBQUosRUFBaUI7QUFDZixzQkFBZ0IseUJBQTBCLE9BQTFCLEVBQW1DLEtBQW5DLEVBQTBDLFdBQTFDLENBQWhCO0FBQ0EseUJBQW9CLGFBQXBCLEVBQW1DLEtBQW5DLEVBQTBDLE1BQTFDO0FBQ0EsYUFBTyxPQUFQLEdBQWlCLElBQWpCO0FBQ0EsWUFBTSxPQUFOLEdBQWdCLElBQWhCO0FBQ0Q7O0FBRUQsV0FBTyxhQUFQO0FBQ0Q7O0FBRUQ7O0FBS0E7Ozs7QUFJQSxNQUFNLGtCQUFrQjtBQUN0QixrQkFEc0I7QUFFdEIsa0NBRnNCO0FBR3RCLDRCQUhzQjtBQUl0Qiw4QkFKc0I7QUFLdEIsNEJBTHNCLEVBS1Q7QUFDYiwyQ0FOc0I7QUFPdEIsc0JBUHNCO0FBUXRCO0FBUnNCLEdBQXhCO0FBVUE7QUFDQTtBQUNBO0FBQ0EsU0FBTyxjQUFQLENBQXVCLGVBQXZCLEVBQXdDLFlBQXhDLEVBQXNELEVBQUUsS0FBSztBQUFBLGFBQUssVUFBTDtBQUFBLEtBQVAsRUFBd0IsS0FBSztBQUFBLGFBQUssYUFBYSxDQUFsQjtBQUFBLEtBQTdCLEVBQXREO0FBQ0EsU0FBTyxlQUFQO0FBRUQsQ0E5c0JjLEVBQWY7O0FBZ3RCQSxJQUFJLE1BQUosRUFBWTtBQUNWLE1BQUksT0FBTyxHQUFQLEtBQWUsU0FBbkIsRUFBOEI7QUFDNUIsV0FBTyxHQUFQLEdBQWEsRUFBYjtBQUNEOztBQUVELFNBQU8sR0FBUCxDQUFXLEtBQVgsR0FBbUIsS0FBbkI7QUFDRDs7QUFFRCxJQUFJLE1BQUosRUFBWTtBQUNWLFNBQU8sT0FBUCxHQUFpQjtBQUNmLFNBQUs7QUFEVSxHQUFqQjtBQUdEOztBQUVELElBQUcsT0FBTyxNQUFQLEtBQWtCLFVBQWxCLElBQWdDLE9BQU8sR0FBMUMsRUFBK0M7QUFDN0MsU0FBTyxFQUFQLEVBQVcsS0FBWDtBQUNEOztBQUVEOzs7O0FBSUEsU0FBUyxRQUFULENBQWtCLENBQWxCLEVBQXFCO0FBQ25CLFNBQU8sQ0FBQyxNQUFNLFdBQVcsQ0FBWCxDQUFOLENBQUQsSUFBeUIsU0FBUyxDQUFULENBQWhDO0FBQ0Q7O0FBRUQsU0FBUyxTQUFULENBQW1CLENBQW5CLEVBQXFCO0FBQ25CLFNBQU8sT0FBTyxDQUFQLEtBQWEsU0FBcEI7QUFDRDs7QUFFRCxTQUFTLFVBQVQsQ0FBb0IsZUFBcEIsRUFBcUM7QUFDbkMsTUFBTSxVQUFVLEVBQWhCO0FBQ0EsU0FBTyxtQkFBbUIsUUFBUSxRQUFSLENBQWlCLElBQWpCLENBQXNCLGVBQXRCLE1BQTJDLG1CQUFyRTtBQUNEOztBQUVEO0FBQ0E7QUFDQSxTQUFTLFFBQVQsQ0FBbUIsSUFBbkIsRUFBeUI7QUFDdkIsU0FBUSxRQUFPLElBQVAseUNBQU8sSUFBUCxPQUFnQixRQUFoQixJQUE0QixDQUFDLE1BQU0sT0FBTixDQUFjLElBQWQsQ0FBN0IsSUFBb0QsU0FBUyxJQUFyRTtBQUNEOztBQUVELFNBQVMsT0FBVCxDQUFrQixDQUFsQixFQUFxQjtBQUNuQixTQUFPLE1BQU0sT0FBTixDQUFlLENBQWYsQ0FBUDtBQUNEOztBQUVELFNBQVMsUUFBVCxDQUFtQixDQUFuQixFQUFzQjtBQUNwQixTQUFPLE9BQU8sQ0FBUCxLQUFhLFFBQXBCO0FBQ0Q7O0FBRUQsU0FBUyxPQUFULENBQWtCLENBQWxCLEVBQXFCO0FBQ25CLE1BQUksUUFBTyxDQUFQLHlDQUFPLENBQVAsT0FBYSxRQUFqQixFQUEyQixPQUFPLEtBQVA7QUFDM0IsU0FBTyxFQUFFLE9BQUYsR0FBWSxJQUFaLEdBQW1CLEtBQTFCO0FBQ0Q7O0FBSUQ7Ozs7QUFJQSxTQUFTLGtCQUFULENBQTZCLEtBQTdCLEVBQW9DLFVBQXBDLEVBQWdELE9BQWhELEVBQXlELE9BQXpELEVBQWtFO0FBQ2hFLGFBQVcsZ0JBQVgsQ0FBNkIsYUFBN0IsRUFBNEM7QUFBQSxXQUFJLFFBQVMsSUFBVCxDQUFKO0FBQUEsR0FBNUM7QUFDQSxhQUFXLGdCQUFYLENBQTZCLFdBQTdCLEVBQTBDO0FBQUEsV0FBSSxRQUFTLEtBQVQsQ0FBSjtBQUFBLEdBQTFDO0FBQ0EsYUFBVyxnQkFBWCxDQUE2QixXQUE3QixFQUEwQztBQUFBLFdBQUksUUFBUyxJQUFULENBQUo7QUFBQSxHQUExQztBQUNBLGFBQVcsZ0JBQVgsQ0FBNkIsU0FBN0IsRUFBd0M7QUFBQSxXQUFJLFFBQVMsS0FBVCxDQUFKO0FBQUEsR0FBeEM7O0FBRUEsTUFBTSxVQUFVLFdBQVcsVUFBWCxFQUFoQjtBQUNBLFdBQVMsT0FBVCxDQUFrQixDQUFsQixFQUFxQixDQUFyQixFQUF3QjtBQUN0QixRQUFJLFdBQVcsUUFBUSxlQUFuQixJQUFzQyxRQUFRLGVBQVIsQ0FBd0IsTUFBeEIsR0FBaUMsQ0FBM0UsRUFBOEU7QUFDNUUsY0FBUSxlQUFSLENBQXlCLENBQXpCLEVBQTZCLEtBQTdCLENBQW9DLENBQXBDLEVBQXVDLENBQXZDO0FBQ0Q7QUFDRjs7QUFFRCxXQUFTLFVBQVQsR0FBcUI7QUFDbkIscUJBQWtCLFVBQUMsQ0FBRCxFQUFHLENBQUgsRUFBSyxDQUFMO0FBQUEsYUFBUyxRQUFRLElBQUUsQ0FBVixFQUFhLEdBQWIsQ0FBVDtBQUFBLEtBQWxCLEVBQThDLEVBQTlDLEVBQWtELEVBQWxEO0FBQ0Q7O0FBRUQsV0FBUyxXQUFULEdBQXNCO0FBQ3BCLHFCQUFrQixVQUFDLENBQUQsRUFBRyxDQUFILEVBQUssQ0FBTDtBQUFBLGFBQVMsUUFBUSxDQUFSLEVBQVcsT0FBTyxJQUFFLENBQVQsQ0FBWCxDQUFUO0FBQUEsS0FBbEIsRUFBb0QsR0FBcEQsRUFBeUQsQ0FBekQ7QUFDRDs7QUFFRCxRQUFNLE1BQU4sQ0FBYSxFQUFiLENBQWlCLGtCQUFqQixFQUFxQyxVQUFVLEtBQVYsRUFBaUI7QUFDcEQsWUFBUyxHQUFULEVBQWMsR0FBZDtBQUNELEdBRkQ7O0FBSUEsUUFBTSxNQUFOLENBQWEsRUFBYixDQUFpQixTQUFqQixFQUE0QixZQUFVO0FBQ3BDO0FBQ0QsR0FGRDs7QUFJQSxRQUFNLE1BQU4sQ0FBYSxFQUFiLENBQWlCLGNBQWpCLEVBQWlDLFlBQVU7QUFDekM7QUFDRCxHQUZEOztBQUlBLFFBQU0sTUFBTixDQUFhLEVBQWIsQ0FBaUIsUUFBakIsRUFBMkIsWUFBVTtBQUNuQztBQUNELEdBRkQ7O0FBSUEsUUFBTSxNQUFOLENBQWEsRUFBYixDQUFpQixhQUFqQixFQUFnQyxZQUFVO0FBQ3hDO0FBQ0QsR0FGRDtBQU1EOztBQUVELFNBQVMsZ0JBQVQsQ0FBMkIsRUFBM0IsRUFBK0IsS0FBL0IsRUFBc0MsS0FBdEMsRUFBNkM7QUFDM0MsTUFBSSxJQUFJLENBQVI7QUFDQSxNQUFJLEtBQUssWUFBYSxZQUFVO0FBQzlCLE9BQUksQ0FBSixFQUFPLEtBQVAsRUFBYyxJQUFFLEtBQWhCO0FBQ0E7QUFDQSxRQUFJLEtBQUcsS0FBUCxFQUFjO0FBQ1osb0JBQWUsRUFBZjtBQUNEO0FBQ0YsR0FOUSxFQU1OLEtBTk0sQ0FBVDtBQU9BLFNBQU8sRUFBUDtBQUNEOzs7Ozs7Ozs7a0JDLzBCdUIsaUI7O0FBTHhCOzs7O0FBQ0E7Ozs7QUFuQkE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCTyxJQUFNLHNDQUFlLElBQUksZ0JBQUosRUFBckI7O0FBRVEsU0FBUyxpQkFBVCxDQUE0QixTQUE1QixFQUF1QztBQUNwRCxNQUFNLFNBQVMsSUFBSSxnQkFBSixFQUFmOztBQUVBLE1BQUksV0FBVyxLQUFmO0FBQ0EsTUFBSSxjQUFjLEtBQWxCO0FBQ0EsTUFBSSxZQUFZLEtBQWhCOztBQUVBLE1BQU0sVUFBVSxJQUFJLE1BQU0sT0FBVixFQUFoQjtBQUNBLE1BQU0sa0JBQWtCLEVBQXhCOztBQUVBLFdBQVMsTUFBVCxDQUFpQixZQUFqQixFQUErQjs7QUFFN0IsZUFBVyxLQUFYO0FBQ0Esa0JBQWMsS0FBZDtBQUNBLGdCQUFZLEtBQVo7O0FBRUEsaUJBQWEsT0FBYixDQUFzQixVQUFVLEtBQVYsRUFBaUI7O0FBRXJDLFVBQUksZ0JBQWdCLE9BQWhCLENBQXlCLEtBQXpCLElBQW1DLENBQXZDLEVBQTBDO0FBQ3hDLHdCQUFnQixJQUFoQixDQUFzQixLQUF0QjtBQUNEOztBQUpvQyx3QkFNTCxXQUFZLEtBQVosQ0FOSztBQUFBLFVBTTdCLFNBTjZCLGVBTTdCLFNBTjZCO0FBQUEsVUFNbEIsUUFOa0IsZUFNbEIsUUFOa0I7O0FBUXJDLFVBQUksUUFBUSxjQUFjLFNBQTFCO0FBQ0EsaUJBQVcsWUFBWSxLQUF2Qjs7QUFJQSx5QkFBbUI7QUFDakIsb0JBRGlCO0FBRWpCLG9CQUZpQjtBQUdqQiw0QkFIaUIsRUFHTixrQkFITTtBQUlqQixvQkFBWSxTQUpLO0FBS2pCLHlCQUFpQixTQUxBLEVBS1c7QUFDNUIseUJBQWlCLE9BTkE7QUFPakIsa0JBQVUsV0FQTztBQVFqQixrQkFBVSxVQVJPO0FBU2pCLGdCQUFRLFlBVFM7QUFVaEI7QUFDQTtBQUNBO0FBQ0QsbUJBQVc7QUFiTSxPQUFuQjs7QUFnQkEseUJBQW1CO0FBQ2pCLG9CQURpQjtBQUVqQixvQkFGaUI7QUFHakIsNEJBSGlCLEVBR04sa0JBSE07QUFJakIsb0JBQVksU0FKSztBQUtqQix5QkFBaUIsTUFMQTtBQU1qQixrQkFBVSxXQU5PO0FBT2pCLGtCQUFVLFVBUE87QUFRakIsZ0JBQVE7QUFSUyxPQUFuQjs7QUFXQSxhQUFPLElBQVAsQ0FBYSxNQUFiLEVBQXFCO0FBQ25CLG9CQURtQjtBQUVuQiw0QkFGbUI7QUFHbkIscUJBQWEsTUFBTTtBQUhBLE9BQXJCO0FBTUQsS0E5Q0Q7QUFnREQ7O0FBRUQsV0FBUyxVQUFULENBQXFCLEtBQXJCLEVBQTRCO0FBQzFCLFFBQUksTUFBTSxhQUFOLENBQW9CLE1BQXBCLElBQThCLENBQWxDLEVBQXFDO0FBQ25DLGFBQU87QUFDTCxrQkFBVSxRQUFRLHFCQUFSLENBQStCLE1BQU0sTUFBTixDQUFhLFdBQTVDLEVBQTBELEtBQTFELEVBREwsRUFDd0U7QUFDN0UsbUJBQVc7QUFGTixPQUFQO0FBSUQsS0FMRCxNQU1JO0FBQ0YsYUFBTztBQUNMLGtCQUFVLE1BQU0sYUFBTixDQUFxQixDQUFyQixFQUF5QixLQUQ5QjtBQUVMLG1CQUFXLE1BQU0sYUFBTixDQUFxQixDQUFyQixFQUF5QjtBQUYvQixPQUFQO0FBSUQ7QUFDRjs7QUFFRCxXQUFTLGtCQUFULEdBSVE7QUFBQSxtRkFBSixFQUFJO0FBQUEsUUFITixLQUdNLFFBSE4sS0FHTTtBQUFBLFFBSEMsS0FHRCxRQUhDLEtBR0Q7QUFBQSxRQUZOLFNBRU0sUUFGTixTQUVNO0FBQUEsUUFGSyxRQUVMLFFBRkssUUFFTDtBQUFBLFFBRE4sVUFDTSxRQUROLFVBQ007QUFBQSxRQURNLGVBQ04sUUFETSxlQUNOO0FBQUEsUUFEdUIsZUFDdkIsUUFEdUIsZUFDdkI7QUFBQSxRQUR3QyxRQUN4QyxRQUR3QyxRQUN4QztBQUFBLFFBRGtELFFBQ2xELFFBRGtELFFBQ2xEO0FBQUEsUUFENEQsTUFDNUQsUUFENEQsTUFDNUQ7QUFBQSxRQURvRSxTQUNwRSxRQURvRSxTQUNwRTs7QUFFTixRQUFJLE1BQU8sVUFBUCxNQUF3QixJQUF4QixJQUFnQyxjQUFjLFNBQWxELEVBQTZEO0FBQzNEO0FBQ0E7QUFDQSxZQUFNLFdBQU4sR0FBb0IsSUFBcEI7QUFDQTtBQUNEOztBQUVEO0FBQ0EsUUFBSSxhQUFhLEtBQWIsSUFBc0IsTUFBTyxVQUFQLE1BQXdCLEtBQWxELEVBQTBEO0FBQ3hELFVBQU0sVUFBVTtBQUNkLG9CQURjO0FBRWQsNEJBRmM7QUFHZCxlQUFPLFFBSE87QUFJZCxxQkFBYSxNQUFNLE1BSkw7QUFLZCxnQkFBUTtBQUxNLE9BQWhCO0FBT0EsYUFBTyxJQUFQLENBQWEsU0FBYixFQUF3QixPQUF4QjtBQUNEOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBSSxTQUFTLE1BQU8sbUJBQW1CLFVBQTFCLE1BQTJDLElBQXBELElBQTRELE1BQU0sV0FBTixDQUFtQixlQUFuQixNQUF5QyxTQUF6RyxFQUFvSDs7QUFFbEgsVUFBTSxXQUFVO0FBQ2Qsb0JBRGM7QUFFZCw0QkFGYztBQUdkLGVBQU8sUUFITztBQUlkLHFCQUFhLE1BQU0sTUFKTDtBQUtkLGdCQUFRO0FBTE0sT0FBaEI7O0FBUUE7QUFDQSxVQUFJLENBQUMsVUFBVSxRQUFWLENBQW1CLFdBQXhCLEVBQXFDLE1BQU0sV0FBTixHQUFvQixJQUFwQjs7QUFFckMsb0JBQWMsU0FBZDs7QUFFQTtBQUNBLG1CQUFhLElBQWIsQ0FBbUIsUUFBbkIsRUFBNkIsUUFBN0I7QUFDQSxhQUFPLElBQVAsQ0FBYSxRQUFiLEVBQXVCLFFBQXZCOztBQUVBLFVBQUksU0FBUSxNQUFaLEVBQW9CO0FBQ2xCLGNBQU0sV0FBTixDQUFtQixlQUFuQixJQUF1QyxXQUF2QztBQUNBLGNBQU0sV0FBTixDQUFrQixLQUFsQixHQUEwQixXQUExQjtBQUNEOztBQUVELG9CQUFjLElBQWQ7QUFDQSxrQkFBWSxJQUFaO0FBQ0Q7O0FBRUQ7QUFDQSxRQUFJLE1BQU8sVUFBUCxLQUF1QixNQUFNLFdBQU4sQ0FBbUIsZUFBbkIsTUFBeUMsV0FBcEUsRUFBaUY7QUFDL0UsVUFBTSxZQUFVO0FBQ2Qsb0JBRGM7QUFFZCw0QkFGYztBQUdkLGVBQU8sUUFITztBQUlkLHFCQUFhLE1BQU0sTUFKTDtBQUtkLGdCQUFRO0FBTE0sT0FBaEI7O0FBUUEsYUFBTyxJQUFQLENBQWEsUUFBYixFQUF1QixTQUF2Qjs7QUFFQSxvQkFBYyxJQUFkOztBQUVBLFlBQU0sTUFBTixDQUFhLElBQWIsQ0FBbUIsa0JBQW5CO0FBQ0Q7O0FBRUQ7QUFDQSxRQUFJLE1BQU8sVUFBUCxNQUF3QixLQUF4QixJQUFpQyxNQUFNLFdBQU4sQ0FBbUIsZUFBbkIsTUFBeUMsV0FBOUUsRUFBMkY7QUFDekYsWUFBTSxXQUFOLENBQW1CLGVBQW5CLElBQXVDLFNBQXZDO0FBQ0EsWUFBTSxXQUFOLENBQWtCLEtBQWxCLEdBQTBCLFNBQTFCO0FBQ0EsYUFBTyxJQUFQLENBQWEsTUFBYixFQUFxQjtBQUNuQixvQkFEbUI7QUFFbkIsNEJBRm1CO0FBR25CLGVBQU8sUUFIWTtBQUluQixxQkFBYSxNQUFNO0FBSkEsT0FBckI7QUFNRDtBQUVGOztBQUVELFdBQVMsYUFBVCxDQUF1QixTQUF2QixFQUFrQztBQUNoQyxRQUFNLFlBQVksOEJBQWtCLFNBQWxCLENBQWxCO0FBQ0EsY0FBVSxhQUFWO0FBQ0Q7O0FBRUQsV0FBUyxXQUFULEdBQXNCOztBQUVwQixRQUFJLGNBQWMsSUFBbEI7QUFDQSxTQUFLLElBQUksSUFBRSxDQUFYLEVBQWMsSUFBRSxnQkFBZ0IsTUFBaEMsRUFBd0MsR0FBeEMsRUFBNkM7QUFDM0MsVUFBSSxnQkFBaUIsQ0FBakIsRUFBcUIsV0FBckIsQ0FBaUMsS0FBakMsS0FBMkMsU0FBL0MsRUFBMEQ7QUFDeEQsc0JBQWMsS0FBZDtBQUNBO0FBQ0Q7QUFDRjs7QUFFRCxRQUFJLFdBQUosRUFBaUI7QUFDZixhQUFPLFFBQVA7QUFDRDs7QUFFRCxRQUFJLGdCQUFnQixNQUFoQixDQUF3QixVQUFVLEtBQVYsRUFBaUI7QUFDM0MsYUFBTyxNQUFNLFdBQU4sQ0FBa0IsS0FBbEIsS0FBNEIsV0FBbkM7QUFDRCxLQUZHLEVBRUQsTUFGQyxHQUVRLENBRlosRUFFZTtBQUNiLGFBQU8sSUFBUDtBQUNEOztBQUVELFdBQU8sS0FBUDtBQUNEOztBQUdELE1BQU0sY0FBYztBQUNsQixjQUFVLFdBRFE7QUFFbEIsY0FBVTtBQUFBLGFBQUksV0FBSjtBQUFBLEtBRlE7QUFHbEIsa0JBSGtCO0FBSWxCLGtCQUprQjtBQUtsQjtBQUxrQixHQUFwQjs7QUFRQSxTQUFPLFdBQVA7QUFDRDs7Ozs7Ozs7a0JDdk51QixjOztBQUp4Qjs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVlLFNBQVMsY0FBVCxHQUdQO0FBQUEsbUZBQUosRUFBSTtBQUFBLFFBRkosV0FFSSxRQUZKLFdBRUk7QUFBQSxRQURKLFdBQ0ksUUFESixXQUNJOztBQUNKLFFBQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkO0FBQ0EsUUFBTSxrQkFBa0IsSUFBSSxNQUFNLEtBQVYsRUFBeEI7QUFDQSxVQUFNLEdBQU4sQ0FBVSxlQUFWOztBQUVBLFFBQU0sU0FBUyxJQUFJLGdCQUFKLEVBQWY7QUFDQSxXQUFPLEVBQVAsQ0FBVSxTQUFWLEVBQXFCLFdBQXJCOztBQUVBLFFBQU0sYUFBYSxvREFBb0QsS0FBcEQsQ0FBMEQsRUFBMUQsQ0FBbkI7QUFDQSxRQUFJLFVBQVUsV0FBVyxHQUFYLENBQWUsYUFBSztBQUM5QixlQUFPLEVBQUUsTUFBTTtBQUFBLHVCQUFNLE9BQU8sSUFBUCxDQUFZLFNBQVosRUFBdUIsQ0FBdkIsQ0FBTjtBQUFBLGFBQVIsRUFBeUMsTUFBTSxDQUEvQyxFQUFQO0FBQ0gsS0FGYSxDQUFkO0FBR0EsUUFBTSxZQUFZLCtCQUFzQixFQUFDLHdCQUFELEVBQWMsZ0JBQWQsRUFBdUIsU0FBUyxFQUFoQyxFQUF0QixDQUFsQjtBQUNBLG9CQUFnQixHQUFoQixDQUFvQixTQUFwQjs7QUFFQSxRQUFNLGFBQWEsb0RBQW9ELEtBQXBELENBQTBELEVBQTFELENBQW5CO0FBQ0EsY0FBVSxXQUFXLEdBQVgsQ0FBZSxhQUFLO0FBQzFCLGVBQU8sRUFBRSxNQUFNO0FBQUEsdUJBQU0sT0FBTyxJQUFQLENBQVksU0FBWixFQUF1QixDQUF2QixDQUFOO0FBQUEsYUFBUixFQUF5QyxNQUFNLENBQS9DLEVBQVA7QUFDSCxLQUZTLENBQVY7QUFHQSxRQUFNLFlBQVksK0JBQXNCLEVBQUMsd0JBQUQsRUFBYyxnQkFBZCxFQUF1QixTQUFTLEVBQWhDLEVBQXRCLENBQWxCO0FBQ0EsY0FBVSxPQUFWLEdBQW9CLEtBQXBCO0FBQ0Esb0JBQWdCLEdBQWhCLENBQW9CLFNBQXBCOztBQUVBLFFBQUksUUFBUSxLQUFaO0FBQ0EsYUFBUyxXQUFULEdBQXVCO0FBQ25CLGdCQUFRLENBQUMsS0FBVDtBQUNBLGtCQUFVLE9BQVYsR0FBb0IsQ0FBQyxLQUFyQjtBQUNBLGtCQUFVLE9BQVYsR0FBb0IsS0FBcEI7QUFDSjs7QUFFRCxRQUFNLFdBQVcsK0JBQXNCLEVBQUUsd0JBQUYsRUFBZSxTQUFTLENBQXhCLEVBQTJCLFdBQVcsR0FBdEMsRUFBMkMsU0FBUyxDQUN2RixFQUFDLE1BQU07QUFBQSx1QkFBSSxPQUFPLElBQVAsQ0FBWSxTQUFaLEVBQXVCLEdBQXZCLENBQUo7QUFBQSxhQUFQLEVBQXdDLE1BQU0sT0FBOUMsRUFEdUYsQ0FBcEQsRUFBdEIsQ0FBakI7QUFHQyxvQkFBZ0IsR0FBaEIsQ0FBb0IsUUFBcEI7QUFDQSxRQUFJLElBQUksU0FBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLENBQUMsR0FBRCxJQUFRLFVBQVUsT0FBVixHQUFvQixTQUFTLE9BQXJDLENBQTlCOztBQUVBLGNBQVUsQ0FDTixFQUFFLE1BQU0sT0FBUixFQUFpQixNQUFNLFdBQXZCLEVBRE0sRUFFTixFQUFFLE1BQU0sV0FBUixFQUFxQixNQUFNO0FBQUEsbUJBQU0sT0FBTyxJQUFQLENBQVksU0FBWixFQUF1QixJQUF2QixDQUFOO0FBQUEsU0FBM0IsRUFGTSxFQUdOLEVBQUUsTUFBTSxPQUFSLEVBQWlCLE1BQU07QUFBQSxtQkFBTSxPQUFPLElBQVAsQ0FBWSxTQUFaLEVBQXVCLElBQXZCLENBQU47QUFBQSxTQUF2QixFQUhNLENBQVY7QUFLQSxRQUFNLGNBQWMsK0JBQXNCLEVBQUMsd0JBQUQsRUFBYyxnQkFBZCxFQUF1QixTQUFTLENBQWhDLEVBQW1DLFdBQVcsR0FBOUMsRUFBdEIsQ0FBcEI7QUFDQSxvQkFBZ0IsR0FBaEIsQ0FBb0IsV0FBcEI7QUFDQSxnQkFBWSxRQUFaLENBQXFCLENBQXJCLEdBQXlCLElBQUUsT0FBTyxTQUFTLE9BQVQsR0FBbUIsWUFBWSxPQUF0QyxDQUEzQjtBQUNBLFVBQU0sT0FBTixHQUFnQixVQUFVLE9BQVYsR0FBb0IsU0FBUyxPQUE3QixHQUF1QyxZQUFZLE9BQW5FO0FBQ0E7QUFDQSxvQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsWUFBWSxPQUF6Qzs7QUFFQSxXQUFPLGNBQVAsQ0FBc0IsS0FBdEIsRUFBNkIsU0FBN0IsRUFBd0M7QUFDcEMsYUFBSztBQUFBLG1CQUFNLENBQ1AsWUFBWSxPQURMLEVBQ2MsU0FBUyxPQUR2QixFQUNnQyxRQUFRLFVBQVUsT0FBbEIsR0FBNEIsVUFBVSxPQUR0RSxFQUVULE1BRlMsQ0FFRixVQUFDLENBQUQsRUFBSSxDQUFKLEVBQVU7QUFBRSx1QkFBTyxFQUFFLE1BQUYsQ0FBUyxDQUFULENBQVA7QUFBbUIsYUFGN0IsRUFFK0IsRUFGL0IsQ0FBTjtBQUFBO0FBRCtCLEtBQXhDOztBQU1BLGFBQVMsTUFBVCxHQUFrQixVQUFVLE1BQVYsR0FBbUIsVUFBVSxNQUFWLEdBQW1CLFlBQVksTUFBWixHQUFxQixLQUE3RTtBQUNBLFVBQU0sYUFBTixHQUFzQixVQUFDLE1BQUQsRUFBWTtBQUM5QixvQkFBWSxhQUFaLENBQTBCLE1BQTFCO0FBQ0Esa0JBQVUsYUFBVixDQUF3QixNQUF4QjtBQUNBLGlCQUFTLGFBQVQsQ0FBdUIsTUFBdkI7QUFDQSxrQkFBVSxhQUFWLENBQXdCLE1BQXhCO0FBQ0gsS0FMRDs7QUFPQSxXQUFPLEtBQVA7QUFDSCxDLENBakZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7UUNzQmdCLFMsR0FBQSxTO1FBZUEsVyxHQUFBLFc7UUFrQkEsVyxHQUFBLFc7UUFPQSxxQixHQUFBLHFCO1FBT0EsZSxHQUFBLGU7O0FBbERoQjs7SUFBWSxlOztBQUNaOztJQUFZLE07Ozs7QUFwQlo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQk8sU0FBUyxTQUFULENBQW9CLEdBQXBCLEVBQXlCO0FBQzlCLE1BQUksZUFBZSxNQUFNLElBQXpCLEVBQStCO0FBQzdCLFFBQUksUUFBSixDQUFhLGtCQUFiO0FBQ0EsUUFBTSxRQUFRLElBQUksUUFBSixDQUFhLFdBQWIsQ0FBeUIsR0FBekIsQ0FBNkIsQ0FBN0IsR0FBaUMsSUFBSSxRQUFKLENBQWEsV0FBYixDQUF5QixHQUF6QixDQUE2QixDQUE1RTtBQUNBLFFBQUksUUFBSixDQUFhLFNBQWIsQ0FBd0IsS0FBeEIsRUFBK0IsQ0FBL0IsRUFBa0MsQ0FBbEM7QUFDQSxXQUFPLEdBQVA7QUFDRCxHQUxELE1BTUssSUFBSSxlQUFlLE1BQU0sY0FBekIsRUFBeUM7QUFDNUMsUUFBSSxrQkFBSjtBQUNBLFFBQU0sU0FBUSxJQUFJLFdBQUosQ0FBZ0IsR0FBaEIsQ0FBb0IsQ0FBcEIsR0FBd0IsSUFBSSxXQUFKLENBQWdCLEdBQWhCLENBQW9CLENBQTFEO0FBQ0EsUUFBSSxTQUFKLENBQWUsTUFBZixFQUFzQixDQUF0QixFQUF5QixDQUF6QjtBQUNBLFdBQU8sR0FBUDtBQUNEO0FBQ0Y7O0FBRU0sU0FBUyxXQUFULENBQXNCLEtBQXRCLEVBQTZCLE1BQTdCLEVBQXFDLEtBQXJDLEVBQTRDLGNBQTVDLEVBQTREO0FBQ2pFLE1BQU0sV0FBVyxpQkFBaUIsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUMsT0FBTSxRQUFQLEVBQTVCLENBQWpCLEdBQWlFLGdCQUFnQixLQUFsRztBQUNBLE1BQU0sUUFBUSxJQUFJLE1BQU0sSUFBVixDQUFnQixJQUFJLE1BQU0sV0FBVixDQUF1QixLQUF2QixFQUE4QixNQUE5QixFQUFzQyxLQUF0QyxDQUFoQixFQUErRCxRQUEvRCxDQUFkO0FBQ0EsUUFBTSxRQUFOLENBQWUsU0FBZixDQUEwQixRQUFRLEdBQWxDLEVBQXVDLENBQXZDLEVBQTBDLENBQTFDOztBQUVBLE1BQUksY0FBSixFQUFvQjtBQUNsQixhQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8sWUFBOUI7QUFDRCxHQUZELE1BR0k7QUFDRixXQUFPLGdCQUFQLENBQXlCLE1BQU0sUUFBL0IsRUFBeUMsT0FBTyxZQUFoRDtBQUNEOztBQUVELFFBQU0sUUFBTixDQUFlLFlBQWYsR0FBOEIsS0FBOUI7QUFDQSxRQUFNLFFBQU4sQ0FBZSxhQUFmLEdBQStCLE1BQS9CO0FBQ0EsUUFBTSxRQUFOLENBQWUsWUFBZixHQUE4QixLQUE5Qjs7QUFFQSxTQUFPLEtBQVA7QUFDRDtBQUNNLFNBQVMsV0FBVCxDQUFxQixLQUFyQixFQUE0QixLQUE1QixFQUFtQyxNQUFuQyxFQUEyQyxLQUEzQyxFQUFrRDtBQUN2RCxRQUFNLFFBQU4sQ0FBZSxLQUFmLENBQXFCLFFBQU0sTUFBTSxRQUFOLENBQWUsWUFBMUMsRUFBd0QsU0FBTyxNQUFNLFFBQU4sQ0FBZSxhQUE5RSxFQUE2RixRQUFNLE1BQU0sUUFBTixDQUFlLFlBQWxIO0FBQ0EsUUFBTSxRQUFOLENBQWUsWUFBZixHQUE4QixLQUE5QjtBQUNBLFFBQU0sUUFBTixDQUFlLGFBQWYsR0FBK0IsTUFBL0I7QUFDQSxRQUFNLFFBQU4sQ0FBZSxZQUFmLEdBQThCLEtBQTlCO0FBQ0Q7O0FBRU0sU0FBUyxxQkFBVCxDQUFnQyxNQUFoQyxFQUF3QyxLQUF4QyxFQUErQztBQUNwRCxNQUFNLFFBQVEsSUFBSSxNQUFNLElBQVYsQ0FBZ0IsSUFBSSxNQUFNLFdBQVYsQ0FBdUIsbUJBQXZCLEVBQTRDLE1BQTVDLEVBQW9ELG1CQUFwRCxDQUFoQixFQUEyRixnQkFBZ0IsS0FBM0csQ0FBZDtBQUNBLFFBQU0sUUFBTixDQUFlLFNBQWYsQ0FBMEIsc0JBQXNCLEdBQWhELEVBQXFELENBQXJELEVBQXdELENBQXhEO0FBQ0EsU0FBTyxnQkFBUCxDQUF5QixNQUFNLFFBQS9CLEVBQXlDLEtBQXpDO0FBQ0EsU0FBTyxLQUFQO0FBQ0Q7O0FBRU0sU0FBUyxlQUFULEdBQTBCO0FBQy9CLE1BQU0sSUFBSSxNQUFWO0FBQ0EsTUFBTSxJQUFJLEtBQVY7QUFDQSxNQUFNLEtBQUssSUFBSSxNQUFNLEtBQVYsRUFBWDtBQUNBLEtBQUcsTUFBSCxDQUFVLENBQVYsRUFBWSxDQUFaO0FBQ0EsS0FBRyxNQUFILENBQVUsQ0FBQyxDQUFYLEVBQWEsQ0FBYjtBQUNBLEtBQUcsTUFBSCxDQUFVLENBQVYsRUFBWSxDQUFaO0FBQ0EsS0FBRyxNQUFILENBQVUsQ0FBVixFQUFZLENBQVo7O0FBRUEsTUFBTSxNQUFNLElBQUksTUFBTSxhQUFWLENBQXlCLEVBQXpCLENBQVo7QUFDQSxNQUFJLFNBQUosQ0FBZSxDQUFmLEVBQWtCLENBQUMsQ0FBRCxHQUFLLEdBQXZCLEVBQTRCLENBQTVCOztBQUVBLFNBQU8sSUFBSSxNQUFNLElBQVYsQ0FBZ0IsR0FBaEIsRUFBcUIsZ0JBQWdCLEtBQXJDLENBQVA7QUFDRDs7QUFFTSxJQUFNLG9DQUFjLEdBQXBCO0FBQ0EsSUFBTSxzQ0FBZSxJQUFyQjtBQUNBLElBQU0sb0NBQWMsSUFBcEI7QUFDQSxJQUFNLHdDQUFnQixDQUF0QixDLENBQXdCO0FBQ3hCLElBQU0sc0NBQWUsS0FBckI7QUFDQSxJQUFNLDREQUEwQixJQUFoQztBQUNBLElBQU0sNERBQTBCLElBQWhDO0FBQ0EsSUFBTSxvREFBc0IsSUFBNUI7QUFDQSxJQUFNLG9EQUFzQixLQUE1QjtBQUNBLElBQU0sc0NBQWUsSUFBckI7QUFDQSxJQUFNLHNDQUFlLEtBQXJCO0FBQ0EsSUFBTSw0Q0FBa0IsR0FBeEI7QUFDQSxJQUFNLHdDQUFnQixJQUF0QjtBQUNBLElBQU0sa0RBQXFCLE1BQTNCO0FBQ0EsSUFBTSw4Q0FBbUIsSUFBekI7QUFDQSxJQUFNLHdDQUFnQixJQUF0QjtBQUNBLElBQU0sa0NBQWEsT0FBbkI7QUFDQSxJQUFNLGtEQUFxQixJQUEzQjs7Ozs7Ozs7UUNoRlMsTSxHQUFBLE07O0FBRmhCOzs7Ozs7QUFFTyxTQUFTLE1BQVQsR0FBd0M7QUFBQSxtRkFBSixFQUFJO0FBQUEsUUFBckIsS0FBcUIsUUFBckIsS0FBcUI7QUFBQSxRQUFkLEtBQWMsUUFBZCxLQUFjOztBQUU3QyxRQUFNLGNBQWMsMkJBQW1CLEtBQW5CLENBQXBCOztBQUVBLGdCQUFZLE1BQVosQ0FBbUIsRUFBbkIsQ0FBdUIsV0FBdkIsRUFBb0MsWUFBcEM7QUFDQSxnQkFBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLGVBQXZCLEVBQXdDLG1CQUF4Qzs7QUFFQTtBQUNBLFFBQUksY0FBYyxJQUFJLE1BQU0sT0FBVixFQUFsQjtBQUNBLFFBQUksY0FBYyxJQUFJLE1BQU0sS0FBVixFQUFsQjs7QUFFQSxRQUFNLGdCQUFnQixJQUFJLE1BQU0sS0FBVixFQUF0QjtBQUNBLGtCQUFjLEtBQWQsQ0FBb0IsR0FBcEIsQ0FBeUIsR0FBekIsRUFBOEIsR0FBOUIsRUFBbUMsR0FBbkM7QUFDQSxrQkFBYyxRQUFkLENBQXVCLEdBQXZCLENBQTRCLENBQUMsS0FBN0IsRUFBb0MsS0FBcEMsRUFBMkMsR0FBM0M7O0FBR0EsYUFBUyxZQUFULENBQXVCLENBQXZCLEVBQTBCO0FBQUEsWUFFaEIsV0FGZ0IsR0FFTyxDQUZQLENBRWhCLFdBRmdCO0FBQUEsWUFFSCxLQUZHLEdBRU8sQ0FGUCxDQUVILEtBRkc7OztBQUl4QixZQUFNLFNBQVMsTUFBTSxNQUFyQjtBQUNBLFlBQUksV0FBVyxTQUFmLEVBQTBCO0FBQ3hCO0FBQ0Q7O0FBRUQsWUFBSSxPQUFPLFVBQVAsS0FBc0IsSUFBMUIsRUFBZ0M7QUFDOUI7QUFDRDs7QUFFRCxvQkFBWSxJQUFaLENBQWtCLE9BQU8sUUFBekI7QUFDQSxvQkFBWSxJQUFaLENBQWtCLE9BQU8sUUFBekI7O0FBRUEsZUFBTyxRQUFQLENBQWdCLEdBQWhCLENBQXFCLENBQXJCLEVBQXVCLENBQXZCLEVBQXlCLENBQXpCO0FBQ0EsZUFBTyxRQUFQLENBQWdCLEdBQWhCLENBQXFCLENBQXJCLEVBQXVCLENBQXZCLEVBQXlCLENBQXpCO0FBQ0EsZUFBTyxRQUFQLENBQWdCLENBQWhCLEdBQW9CLENBQUMsS0FBSyxFQUFOLEdBQVcsR0FBL0I7O0FBRUEsZUFBTyxTQUFQLEdBQW1CLE9BQU8sTUFBMUI7O0FBRUEsc0JBQWMsR0FBZCxDQUFtQixNQUFuQjs7QUFFQSxvQkFBWSxHQUFaLENBQWlCLGFBQWpCOztBQUVBLFVBQUUsTUFBRixHQUFXLElBQVg7O0FBRUEsZUFBTyxVQUFQLEdBQW9CLElBQXBCOztBQUVBLGNBQU0sTUFBTixDQUFhLElBQWIsQ0FBbUIsUUFBbkIsRUFBNkIsS0FBN0I7QUFDRDs7QUFFRCxhQUFTLG1CQUFULEdBQXlEO0FBQUEsd0ZBQUosRUFBSTtBQUFBLFlBQXpCLFdBQXlCLFNBQXpCLFdBQXlCO0FBQUEsWUFBWixLQUFZLFNBQVosS0FBWTs7QUFFdkQsWUFBTSxTQUFTLE1BQU0sTUFBckI7QUFDQSxZQUFJLFdBQVcsU0FBZixFQUEwQjtBQUN4QjtBQUNEOztBQUVELFlBQUksT0FBTyxTQUFQLEtBQXFCLFNBQXpCLEVBQW9DO0FBQ2xDO0FBQ0Q7O0FBRUQsWUFBSSxPQUFPLFVBQVAsS0FBc0IsS0FBMUIsRUFBaUM7QUFDL0I7QUFDRDs7QUFFRCxlQUFPLFNBQVAsQ0FBaUIsR0FBakIsQ0FBc0IsTUFBdEI7QUFDQSxlQUFPLFNBQVAsR0FBbUIsU0FBbkI7O0FBRUEsZUFBTyxRQUFQLENBQWdCLElBQWhCLENBQXNCLFdBQXRCO0FBQ0EsZUFBTyxRQUFQLENBQWdCLElBQWhCLENBQXNCLFdBQXRCOztBQUVBLGVBQU8sVUFBUCxHQUFvQixLQUFwQjs7QUFFQSxjQUFNLE1BQU4sQ0FBYSxJQUFiLENBQW1CLGFBQW5CLEVBQWtDLEtBQWxDO0FBQ0Q7O0FBRUQsV0FBTyxXQUFQO0FBQ0QsQyxDQWpHRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBOzs7Ozs7O0FBT0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxlQUFSLENBQWI7O0FBRUE7OztBQUdBLElBQU0sa2VBQU47O0FBd0JBLElBQUksbUJBQW9CLDhtQ0FBeEI7O0FBNENBLElBQUksQ0FBQyxNQUFNLFFBQVAsR0FBa0IsR0FBbEIsSUFBeUIsYUFBYSxRQUFiLEtBQTBCLFVBQXZELEVBQW1FO0FBQUU7QUFDbkUsbUJBQWlCLDhsQ0FBakI7QUFDQSxVQUFRLElBQVIsQ0FBYSwwQkFBYjtBQUNDOztBQUdILE9BQU8sT0FBUCxHQUFpQixTQUFTLGVBQVQsQ0FBMEIsR0FBMUIsRUFBK0I7QUFDOUMsUUFBTSxPQUFPLEVBQWI7QUFDQSxNQUFJLFVBQVUsT0FBTyxJQUFJLE9BQVgsS0FBdUIsUUFBdkIsR0FBa0MsSUFBSSxPQUF0QyxHQUFnRCxDQUE5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUksUUFBUSxJQUFJLEtBQWhCO0FBQ0EsTUFBSSxNQUFNLElBQUksR0FBZDs7QUFFQSxNQUFJLFVBQUosR0FBaUIsSUFBSSxVQUFKLElBQWtCLEVBQW5DO0FBQ0EsTUFBSSxVQUFKLENBQWUsV0FBZixHQUE2QixJQUE3QixDQVY4QyxDQVVYO0FBQ25DLE1BQUksSUFBSixHQUFXLG1CQUFYOztBQUVBO0FBQ0EsU0FBTyxJQUFJLEdBQVg7QUFDQSxTQUFPLElBQUksS0FBWDtBQUNBLFNBQU8sSUFBSSxTQUFYO0FBQ0EsU0FBTyxJQUFJLE9BQVg7O0FBRUEsU0FBTyxPQUFPO0FBQ1osY0FBVTtBQUNSLGVBQVMsRUFBRSxNQUFNLEdBQVIsRUFBYSxPQUFPLE9BQXBCLEVBREQ7QUFFUixXQUFLLEVBQUUsTUFBTSxHQUFSLEVBQWEsT0FBTyxPQUFPLElBQUksTUFBTSxPQUFWLEVBQTNCLEVBRkc7QUFHUixhQUFPLEVBQUUsTUFBTSxHQUFSLEVBQWEsT0FBTyxJQUFJLE1BQU0sS0FBVixDQUFnQixLQUFoQixDQUFwQjtBQUhDLEtBREU7QUFNWixrQkFBYyxjQU5GO0FBT1osb0JBQWdCO0FBUEosR0FBUCxFQVFKLEdBUkksQ0FBUDtBQVNELENBNUJEOzs7Ozs7OztRQzdEZ0IsYyxHQUFBLGM7UUF3QkEsTyxHQUFBLE87O0FBL0JoQjs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7SUFBWSxNOztBQUVaOztJQUFZLEk7Ozs7OztBQUVMLFNBQVMsY0FBVCxDQUF5QixLQUF6QixFQUFnQzs7QUFFckMsTUFBTSxRQUFRLEtBQUssS0FBTCxFQUFkO0FBQ0EsTUFBTSxVQUFVLElBQUksTUFBTSxPQUFWLENBQWtCLEtBQWxCLENBQWhCLENBQTBDLFFBQVEsSUFBUixHQUFlLGdCQUFmO0FBQzFDLFVBQVEsV0FBUixHQUFzQixJQUF0QjtBQUNBLFVBQVEsU0FBUixHQUFvQixNQUFNLFlBQTFCO0FBQ0EsVUFBUSxTQUFSLEdBQW9CLE1BQU0sWUFBMUI7QUFDQSxVQUFRLGVBQVIsR0FBMEIsS0FBMUI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBSSxXQUFXLElBQUksTUFBTSxjQUFWLENBQXlCLGtDQUFVO0FBQ2hELFVBQU0sTUFBTSxVQURvQztBQUVoRCxpQkFBYSxJQUZtQztBQUdoRCxXQUFPLEtBSHlDO0FBSWhELFNBQUssT0FKMkM7QUFLaEQsVUFBTTtBQUwwQyxHQUFWLENBQXpCLENBQWY7QUFPQSxTQUFPLFFBQVA7QUFDRCxDLENBOUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0RBLElBQU0sWUFBWSxPQUFPLFVBQXpCOztBQUVPLFNBQVMsT0FBVCxHQUFrQjs7QUFFdkIsTUFBTSxPQUFPLGdDQUFZLEtBQUssR0FBTCxFQUFaLENBQWI7O0FBRUEsTUFBTSxpQkFBaUIsRUFBdkI7O0FBRUEsV0FBUyxVQUFULENBQXFCLEdBQXJCLEVBQTBCLElBQTFCLEVBQThFO0FBQUEsUUFBOUMsS0FBOEMsdUVBQXRDLFFBQXNDO0FBQUEsUUFBNUIsS0FBNEIsdUVBQXBCLEdBQW9CO0FBQUEsUUFBZixLQUFlO0FBQUEsUUFBUixNQUFROzs7QUFFNUUsUUFBTSxXQUFXLCtCQUFlO0FBQzlCLFlBQU0sR0FEd0I7QUFFOUIsYUFBTyxNQUZ1QjtBQUc5QixhQUFPLEtBSHVCO0FBSTlCLGNBQVEsTUFKc0I7QUFLOUIsYUFBTyxJQUx1QjtBQU05QjtBQU44QixLQUFmLENBQWpCOztBQVVBLFFBQU0sU0FBUyxTQUFTLE1BQXhCOztBQUVBLFFBQUksV0FBVyxlQUFnQixLQUFoQixDQUFmO0FBQ0EsUUFBSSxhQUFhLFNBQWpCLEVBQTRCO0FBQzFCLGlCQUFXLGVBQWdCLEtBQWhCLElBQTBCLGVBQWdCLEtBQWhCLENBQXJDO0FBQ0Q7QUFDRCxRQUFNLE9BQU8sSUFBSSxNQUFNLElBQVYsQ0FBZ0IsUUFBaEIsRUFBMEIsUUFBMUIsQ0FBYjtBQUNBLFNBQUssS0FBTCxDQUFXLFFBQVgsQ0FBcUIsSUFBSSxNQUFNLE9BQVYsQ0FBa0IsQ0FBbEIsRUFBb0IsQ0FBQyxDQUFyQixFQUF1QixDQUF2QixDQUFyQjs7QUFFQSxRQUFNLGFBQWEsUUFBUSxTQUEzQjs7QUFFQSxTQUFLLEtBQUwsQ0FBVyxjQUFYLENBQTJCLFVBQTNCOztBQUVBLFNBQUssUUFBTCxDQUFjLENBQWQsR0FBa0IsT0FBTyxNQUFQLEdBQWdCLEdBQWhCLEdBQXNCLFVBQXhDOztBQUVBLFdBQU8sSUFBUDtBQUNEOztBQUdELFdBQVMsTUFBVCxDQUFpQixHQUFqQixFQUEwRDtBQUFBLG1GQUFKLEVBQUk7QUFBQSwwQkFBbEMsS0FBa0M7QUFBQSxRQUFsQyxLQUFrQyw4QkFBNUIsUUFBNEI7QUFBQSwwQkFBbEIsS0FBa0I7QUFBQSxRQUFsQixLQUFrQiw4QkFBWixHQUFZOztBQUN4RCxRQUFNLFFBQVEsSUFBSSxNQUFNLEtBQVYsRUFBZDs7QUFFQSxRQUFJLE9BQU8sV0FBWSxHQUFaLEVBQWlCLElBQWpCLEVBQXVCLEtBQXZCLEVBQThCLEtBQTlCLENBQVg7QUFDQSxVQUFNLEdBQU4sQ0FBVyxJQUFYO0FBQ0EsVUFBTSxNQUFOLEdBQWUsS0FBSyxRQUFMLENBQWMsTUFBN0I7QUFDQSxVQUFNLFlBQU4sR0FBcUIsWUFBTTtBQUN6QixhQUFPLE1BQU0sTUFBTixDQUFhLEtBQWIsR0FBcUIsS0FBckIsR0FBNkIsT0FBTyxVQUEzQztBQUNELEtBRkQ7QUFHQSxVQUFNLGFBQU4sR0FBc0IsWUFBTTtBQUMxQixhQUFPLE1BQU0sTUFBTixDQUFhLE1BQWIsR0FBc0IsS0FBdEIsR0FBOEIsT0FBTyxVQUE1QztBQUNELEtBRkQ7O0FBSUEsVUFBTSxlQUFOLEdBQXdCLFVBQUMsQ0FBRCxFQUFJLENBQUosRUFBVTtBQUNoQyxZQUFNLE1BQU4sQ0FBYSxJQUFiO0FBQ0EsVUFBTSxJQUFJLE9BQU8sVUFBakI7QUFDQSxhQUFPLFdBQVcsR0FBWCxFQUFnQixJQUFoQixFQUFzQixLQUF0QixFQUE2QixLQUE3QixFQUFvQyxJQUFFLENBQXRDLEVBQXlDLElBQUUsQ0FBM0MsQ0FBUDtBQUNBLFVBQU0sVUFBVSxLQUFLLFFBQUwsQ0FBYyxNQUFkLENBQXFCLE1BQXJCLEdBQTRCLENBQTVCLEdBQThCLENBQTlDO0FBQ0EsVUFBSSxVQUFVLENBQWQsRUFBaUI7QUFDZixjQUFNLElBQUksU0FBSixDQUFjLENBQWQsRUFBaUIsT0FBTSxJQUFJLE1BQVYsR0FBaUIsT0FBbEMsSUFBNkMsS0FBbkQ7QUFDQSxlQUFPLFdBQVcsR0FBWCxFQUFnQixJQUFoQixFQUFzQixLQUF0QixFQUE2QixLQUE3QixFQUFvQyxJQUFFLENBQXRDLEVBQXlDLElBQUUsQ0FBM0MsQ0FBUDtBQUNEO0FBQ0QsWUFBTSxHQUFOLENBQVUsSUFBVjtBQUNBLFlBQU0sTUFBTixHQUFlLEtBQUssUUFBTCxDQUFjLE1BQTdCO0FBQ0QsS0FYRDs7QUFhQSxVQUFNLFdBQU4sR0FBb0IsVUFBVSxHQUFWLEVBQWU7QUFDakMsVUFBSSxLQUFLLFFBQUwsQ0FBYyxXQUFkLEtBQThCLEdBQWxDLEVBQXVDO0FBQ3JDLGFBQUssUUFBTCxDQUFjLE1BQWQsQ0FBc0IsR0FBdEI7QUFDQSxhQUFLLFFBQUwsQ0FBYyxXQUFkLEdBQTRCLEdBQTVCO0FBQ0Q7QUFDRixLQUxEOztBQU9BLFdBQU8sS0FBUDtBQUNEOztBQUVELFNBQU87QUFDTCxrQkFESztBQUVMLGlCQUFhO0FBQUEsYUFBSyxRQUFMO0FBQUEsS0FGUixDQUVzQjtBQUZ0QixHQUFQO0FBS0Q7Ozs7Ozs7Ozs7QUM3R0Q7O0lBQVksTTs7OztBQUVaO0FBQ08sSUFBTSx3QkFBUSxJQUFJLE1BQU0saUJBQVYsQ0FBNkIsRUFBRSxPQUFPLFFBQVQsRUFBbUIsY0FBYyxJQUFqQyxFQUE3QixDQUFkLEMsQ0F0QlA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Qk8sSUFBTSw0QkFBVSxJQUFJLE1BQU0saUJBQVYsRUFBaEI7QUFDQSxJQUFNLDBCQUFTLElBQUksTUFBTSxpQkFBVixDQUE2QixFQUFFLE9BQU8sUUFBVCxFQUE3QixDQUFmO0FBQ0EsSUFBTSw0QkFBVSxJQUFJLE1BQU0saUJBQVYsQ0FBNkIsRUFBRSxPQUFPLFFBQVQsRUFBbUIsYUFBYSxLQUFoQyxFQUF1QyxTQUFTLEdBQWhELEVBQTdCLENBQWhCOzs7Ozs7OztrQkNFaUIsWTs7QUFSeEI7Ozs7QUFDQTs7OztBQUNBOztJQUFZLE07O0FBQ1o7O0lBQVksTTs7QUFDWjs7SUFBWSxlOztBQUNaOztJQUFZLEk7O0FBQ1o7O0lBQVksTzs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBVVA7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFUTixXQVNNLFFBVE4sV0FTTTtBQUFBLE1BUk4sTUFRTSxRQVJOLE1BUU07QUFBQSwrQkFQTixZQU9NO0FBQUEsTUFQTixZQU9NLHFDQVBTLFdBT1Q7QUFBQSwrQkFOTixZQU1NO0FBQUEsTUFOTixZQU1NLHFDQU5TLEdBTVQ7QUFBQSxzQkFMTixHQUtNO0FBQUEsTUFMTixHQUtNLDRCQUxBLEdBS0E7QUFBQSxzQkFMSyxHQUtMO0FBQUEsTUFMSyxHQUtMLDRCQUxXLEdBS1g7QUFBQSx1QkFKTixJQUlNO0FBQUEsTUFKTixJQUlNLDZCQUpDLEdBSUQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLGdDQUZOLGFBRU07QUFBQSxNQUZOLGFBRU0sc0NBRlUsT0FBTyxZQUVqQjtBQUFBLHdCQUROLEtBQ007QUFBQSxNQUROLEtBQ00sOEJBREUsT0FBTyxXQUNUOztBQUdOLE1BQU0sUUFBUTtBQUNaLFdBQU8sR0FESztBQUVaLFdBQU8sWUFGSztBQUdaLFVBQU0sSUFITTtBQUlaLGFBQVMsSUFKRztBQUtaLGVBQVcsQ0FMQztBQU1aLFlBQVEsS0FOSTtBQU9aLFNBQUssR0FQTztBQVFaLFNBQUssR0FSTztBQVNaLGlCQUFhLFNBVEQ7QUFVWixzQkFBa0IsU0FWTjtBQVdaLGNBQVU7QUFYRSxHQUFkOztBQWNBLFFBQU0sSUFBTixHQUFhLGVBQWdCLE1BQU0sS0FBdEIsRUFBNkIsTUFBTSxHQUFuQyxFQUF3QyxNQUFNLEdBQTlDLENBQWI7QUFDQSxRQUFNLFNBQU4sR0FBa0IsWUFBYSxNQUFNLElBQW5CLENBQWxCO0FBQ0EsUUFBTSxLQUFOLEdBQWMsa0JBQW1CLE1BQU0sS0FBekIsRUFBZ0MsTUFBTSxHQUF0QyxFQUEyQyxNQUFNLEdBQWpELENBQWQ7O0FBRUEsTUFBTSxRQUFRLElBQUksTUFBTSxLQUFWLEVBQWQ7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsUUFBaEI7QUFDQSxRQUFNLFFBQU4sR0FBaUI7QUFBQSxpQkFBVSxNQUFNLE9BQWhCLFVBQTRCLFlBQTVCO0FBQUEsR0FBakI7O0FBRUEsTUFBTSxrQkFBa0IsWUFBWSxNQUFaLENBQW9CLFlBQXBCLENBQXhCO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLE9BQU8sdUJBQXBDO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLEtBQTdCO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLENBQUMsSUFBOUI7O0FBRUEsTUFBSSxjQUFKO0FBQ0EsUUFBTSxTQUFOLEdBQWtCLGtCQUFVO0FBQzFCLFFBQUksS0FBSixFQUFXLE1BQU0sTUFBTixDQUFjLEtBQWQ7O0FBRVgsVUFBTSxPQUFOLEdBQWdCLE1BQWhCOztBQUVBLFFBQU0sZUFBZSxRQUFRLEdBQVIsR0FBYyxPQUFPLFlBQTFDO0FBQ0EsUUFBTSxnQkFBZ0IsU0FBUyxPQUFPLFlBQXRDO0FBQ0EsUUFBTSxlQUFlLEtBQXJCOztBQUVBO0FBQ0EsUUFBTSxPQUFPLElBQUksTUFBTSxXQUFWLENBQXVCLFlBQXZCLEVBQXFDLGFBQXJDLEVBQW9ELFlBQXBELENBQWI7QUFDQSxTQUFLLFNBQUwsQ0FBZSxlQUFhLEdBQTVCLEVBQWdDLENBQWhDLEVBQWtDLENBQWxDO0FBQ0E7O0FBRUEsUUFBTSxrQkFBa0IsSUFBSSxNQUFNLGlCQUFWLEVBQXhCO0FBQ0Esb0JBQWdCLE9BQWhCLEdBQTBCLEtBQTFCOztBQUVBLFFBQU0sZ0JBQWdCLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixlQUE5QixDQUF0QjtBQUNBLGtCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsS0FBM0I7QUFDQSxrQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLFFBQVEsR0FBbkM7QUFDQSxrQkFBYyxJQUFkLEdBQXFCLGVBQXJCOztBQUVBO0FBQ0EsUUFBTSxXQUFXLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixnQkFBZ0IsS0FBOUMsQ0FBakI7QUFDQSxXQUFPLGdCQUFQLENBQXlCLFNBQVMsUUFBbEMsRUFBNEMsT0FBTyxTQUFuRDtBQUNBLGFBQVMsUUFBVCxDQUFrQixDQUFsQixHQUFzQixRQUFRLEdBQTlCO0FBQ0EsYUFBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLGVBQWUsT0FBTyxZQUE1Qzs7QUFFQSxRQUFNLFdBQVcsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUUsT0FBTyxPQUFPLGFBQWhCLEVBQTVCLENBQWpCO0FBQ0EsUUFBTSxlQUFlLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixRQUE5QixDQUFyQjtBQUNBLGlCQUFhLFFBQWIsQ0FBc0IsQ0FBdEIsR0FBMEIsUUFBUSxHQUFsQztBQUNBLGtCQUFjLEdBQWQsQ0FBbUIsWUFBbkI7O0FBRUEsUUFBTSxhQUFhLElBQUksTUFBTSxJQUFWLENBQWdCLElBQUksTUFBTSxXQUFWLENBQXVCLElBQXZCLEVBQTZCLElBQTdCLEVBQW1DLElBQW5DLEVBQXlDLENBQXpDLEVBQTRDLENBQTVDLEVBQStDLENBQS9DLENBQWhCLEVBQW9FLGdCQUFnQixPQUFwRixDQUFuQjtBQUNBLGVBQVcsUUFBWCxDQUFvQixDQUFwQixHQUF3QixZQUF4QjtBQUNBLGtCQUFjLEdBQWQsQ0FBbUIsVUFBbkI7QUFDQSxlQUFXLE9BQVgsR0FBcUIsS0FBckI7O0FBRUEsUUFBTSxhQUFhLFlBQVksTUFBWixDQUFvQixNQUFNLEtBQU4sQ0FBWSxRQUFaLEVBQXBCLENBQW5CO0FBQ0EsZUFBVyxRQUFYLENBQW9CLENBQXBCLEdBQXdCLE9BQU8sdUJBQVAsR0FBaUMsUUFBUSxHQUFqRTtBQUNBLGVBQVcsUUFBWCxDQUFvQixDQUFwQixHQUF3QixRQUFNLEdBQTlCO0FBQ0EsZUFBVyxRQUFYLENBQW9CLENBQXBCLEdBQXdCLENBQUMsTUFBekI7O0FBRUEsUUFBTSxlQUFlLE9BQU8scUJBQVAsQ0FBOEIsTUFBOUIsRUFBc0MsT0FBTyxvQkFBN0MsQ0FBckI7QUFDQSxpQkFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLEtBQTFCOztBQUVBLFlBQVEsT0FBTyxXQUFQLENBQW9CLEtBQXBCLEVBQTJCLE1BQTNCLEVBQW1DLEtBQW5DLENBQVI7QUFDQSxVQUFNLElBQU4sR0FBYSxPQUFiO0FBQ0EsVUFBTSxHQUFOLENBQVcsZUFBWCxFQUE0QixhQUE1QixFQUEyQyxRQUEzQyxFQUFxRCxVQUFyRCxFQUFpRSxZQUFqRTs7QUFFQSxVQUFNLEdBQU4sQ0FBVyxLQUFYOztBQUVBLHFCQUFrQixNQUFNLEtBQXhCO0FBQ0E7O0FBRUEsYUFBUyxnQkFBVCxDQUEyQixLQUEzQixFQUFrQztBQUNoQyxVQUFJLE1BQU0sT0FBVixFQUFtQjtBQUNqQixtQkFBVyxXQUFYLENBQXdCLGVBQWdCLE1BQU0sS0FBdEIsRUFBNkIsTUFBTSxTQUFuQyxFQUErQyxRQUEvQyxFQUF4QjtBQUNELE9BRkQsTUFHSTtBQUNGLG1CQUFXLFdBQVgsQ0FBd0IsTUFBTSxLQUFOLENBQVksUUFBWixFQUF4QjtBQUNEO0FBQ0Y7O0FBRUQsYUFBUyxVQUFULEdBQXFCO0FBQ25CLFVBQUksTUFBTSxRQUFWLEVBQW9CO0FBQ2xCLGlCQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8saUJBQTlCO0FBQ0QsT0FGRCxNQUlBLElBQUksWUFBWSxRQUFaLEVBQUosRUFBNEI7QUFDMUIsaUJBQVMsS0FBVCxDQUFlLE1BQWYsQ0FBdUIsT0FBTyxlQUE5QjtBQUNELE9BRkQsTUFHSTtBQUNGLGlCQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8sYUFBOUI7QUFDRDtBQUNGOztBQUVELGFBQVMsWUFBVCxHQUF1QjtBQUNyQixtQkFBYSxLQUFiLENBQW1CLENBQW5CLEdBQ0UsS0FBSyxHQUFMLENBQ0UsS0FBSyxHQUFMLENBQVUsa0JBQW1CLE1BQU0sS0FBekIsRUFBZ0MsTUFBTSxHQUF0QyxFQUEyQyxNQUFNLEdBQWpELElBQXlELEtBQW5FLEVBQTBFLFFBQTFFLENBREYsRUFFRSxLQUZGLENBREY7QUFLRDs7QUFFRCxhQUFTLFlBQVQsQ0FBdUIsS0FBdkIsRUFBOEI7QUFDNUIsYUFBUSxZQUFSLElBQXlCLEtBQXpCO0FBQ0Q7O0FBRUQsYUFBUyxvQkFBVCxDQUErQixLQUEvQixFQUFzQztBQUNwQyxZQUFNLEtBQU4sR0FBYyxnQkFBaUIsS0FBakIsQ0FBZDtBQUNBLFlBQU0sS0FBTixHQUFjLGtCQUFtQixNQUFNLEtBQXpCLEVBQWdDLE1BQU0sR0FBdEMsRUFBMkMsTUFBTSxHQUFqRCxDQUFkO0FBQ0EsVUFBSSxNQUFNLE9BQVYsRUFBbUI7QUFDakIsY0FBTSxLQUFOLEdBQWMsZ0JBQWlCLE1BQU0sS0FBdkIsRUFBOEIsTUFBTSxJQUFwQyxDQUFkO0FBQ0Q7QUFDRCxZQUFNLEtBQU4sR0FBYyxnQkFBaUIsTUFBTSxLQUF2QixFQUE4QixNQUFNLEdBQXBDLEVBQXlDLE1BQU0sR0FBL0MsQ0FBZDtBQUNEOztBQUVELGFBQVMsWUFBVCxHQUF1QjtBQUNyQixZQUFNLEtBQU4sR0FBYyxvQkFBZDtBQUNBLFlBQU0sS0FBTixHQUFjLGtCQUFtQixNQUFNLEtBQXpCLEVBQWdDLE1BQU0sR0FBdEMsRUFBMkMsTUFBTSxHQUFqRCxDQUFkO0FBQ0EsWUFBTSxLQUFOLEdBQWMsZ0JBQWlCLE1BQU0sS0FBdkIsQ0FBZDtBQUNEOztBQUVELGFBQVMsa0JBQVQsR0FBNkI7QUFDM0IsYUFBTyxXQUFZLE9BQVEsWUFBUixDQUFaLENBQVA7QUFDRDs7QUFFRCxVQUFNLFFBQU4sR0FBaUIsVUFBVSxRQUFWLEVBQW9CO0FBQ25DLFlBQU0sV0FBTixHQUFvQixRQUFwQjtBQUNBLGFBQU8sS0FBUDtBQUNELEtBSEQ7O0FBS0EsVUFBTSxJQUFOLEdBQWEsVUFBVSxJQUFWLEVBQWdCO0FBQzNCLFlBQU0sSUFBTixHQUFhLElBQWI7QUFDQSxZQUFNLFNBQU4sR0FBa0IsWUFBYSxNQUFNLElBQW5CLENBQWxCO0FBQ0EsWUFBTSxPQUFOLEdBQWdCLElBQWhCOztBQUVBLFlBQU0sS0FBTixHQUFjLGtCQUFtQixNQUFNLEtBQXpCLEVBQWdDLE1BQU0sR0FBdEMsRUFBMkMsTUFBTSxHQUFqRCxDQUFkOztBQUVBLDJCQUFzQixNQUFNLEtBQTVCO0FBQ0EsdUJBQWtCLE1BQU0sS0FBeEI7QUFDQTtBQUNBLGFBQU8sS0FBUDtBQUNELEtBWEQ7O0FBYUEsVUFBTSxNQUFOLEdBQWUsWUFBVTtBQUN2QixZQUFNLE1BQU4sR0FBZSxJQUFmO0FBQ0EsYUFBTyxLQUFQO0FBQ0QsS0FIRDs7QUFLQSxRQUFNLGNBQWMsMkJBQW1CLGFBQW5CLENBQXBCO0FBQ0EsZ0JBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxXQUFwQztBQUNBLGdCQUFZLE1BQVosQ0FBbUIsRUFBbkIsQ0FBdUIsVUFBdkIsRUFBbUMsVUFBbkM7QUFDQSxnQkFBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFlBQXZCLEVBQXFDLGFBQXJDOztBQUVBLGFBQVMsV0FBVCxDQUFzQixDQUF0QixFQUF5QjtBQUN2QixVQUFJLE1BQU0sT0FBTixLQUFrQixLQUF0QixFQUE2QjtBQUMzQjtBQUNEO0FBQ0QsWUFBTSxRQUFOLEdBQWlCLElBQWpCO0FBQ0EsUUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNEOztBQUVELGFBQVMsVUFBVCxHQUFxQztBQUFBLHNGQUFKLEVBQUk7QUFBQSxVQUFkLEtBQWMsU0FBZCxLQUFjOztBQUNuQyxVQUFJLE1BQU0sT0FBTixLQUFrQixLQUF0QixFQUE2QjtBQUMzQjtBQUNEOztBQUVELFlBQU0sUUFBTixHQUFpQixJQUFqQjs7QUFFQSxtQkFBYSxpQkFBYjtBQUNBLGlCQUFXLGlCQUFYOztBQUVBLFVBQU0sSUFBSSxJQUFJLE1BQU0sT0FBVixHQUFvQixxQkFBcEIsQ0FBMkMsYUFBYSxXQUF4RCxDQUFWO0FBQ0EsVUFBTSxJQUFJLElBQUksTUFBTSxPQUFWLEdBQW9CLHFCQUFwQixDQUEyQyxXQUFXLFdBQXRELENBQVY7O0FBRUEsVUFBTSxnQkFBZ0IsTUFBTSxLQUE1Qjs7QUFFQSwyQkFBc0IsY0FBZSxLQUFmLEVBQXNCLEVBQUMsSUFBRCxFQUFHLElBQUgsRUFBdEIsQ0FBdEI7QUFDQSx1QkFBa0IsTUFBTSxLQUF4QjtBQUNBO0FBQ0EsbUJBQWMsTUFBTSxLQUFwQjs7QUFFQSxVQUFJLGtCQUFrQixNQUFNLEtBQXhCLElBQWlDLE1BQU0sV0FBM0MsRUFBd0Q7QUFDdEQsY0FBTSxXQUFOLENBQW1CLE1BQU0sS0FBekI7QUFDRDtBQUNGOztBQUVELGFBQVMsYUFBVCxHQUF3QjtBQUN0QixZQUFNLFFBQU4sR0FBaUIsS0FBakI7QUFDRDs7QUFFRCxVQUFNLFdBQU4sR0FBb0IsV0FBcEI7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsQ0FBRSxhQUFGLEVBQWlCLEtBQWpCLENBQWhCOztBQUVBLFFBQU0sa0JBQWtCLEtBQUssTUFBTCxDQUFhLEVBQUUsWUFBRixFQUFTLFlBQVQsRUFBYixDQUF4QjtBQUNBLFFBQU0scUJBQXFCLFFBQVEsTUFBUixDQUFnQixFQUFFLFlBQUYsRUFBUyxZQUFULEVBQWhCLENBQTNCOztBQUVBLFVBQU0sYUFBTixHQUFzQixVQUFVLFlBQVYsRUFBd0I7QUFDNUMsa0JBQVksTUFBWixDQUFvQixZQUFwQjtBQUNBLHNCQUFnQixNQUFoQixDQUF3QixZQUF4QjtBQUNBLHlCQUFtQixNQUFuQixDQUEyQixZQUEzQjs7QUFFQSxVQUFJLE1BQU0sTUFBVixFQUFrQjtBQUNoQjtBQUNBLHlCQUFrQixNQUFNLEtBQXhCO0FBQ0E7QUFDRDtBQUNEO0FBQ0QsS0FYRDs7QUFhQSxVQUFNLElBQU4sR0FBYSxVQUFVLEdBQVYsRUFBZTtBQUMxQixzQkFBZ0IsV0FBaEIsQ0FBNkIsR0FBN0I7QUFDQSxhQUFPLEtBQVA7QUFDRCxLQUhEOztBQUtBLFVBQU0sR0FBTixHQUFZLFVBQVUsQ0FBVixFQUFhO0FBQ3ZCLFlBQU0sR0FBTixHQUFZLENBQVo7QUFDQSxZQUFNLEtBQU4sR0FBYyxrQkFBbUIsTUFBTSxLQUF6QixFQUFnQyxNQUFNLEdBQXRDLEVBQTJDLE1BQU0sR0FBakQsQ0FBZDtBQUNBLDJCQUFzQixNQUFNLEtBQTVCO0FBQ0EsdUJBQWtCLE1BQU0sS0FBeEI7QUFDQTtBQUNBLGFBQU8sS0FBUDtBQUNELEtBUEQ7O0FBU0EsVUFBTSxHQUFOLEdBQVksVUFBVSxDQUFWLEVBQWE7QUFDdkIsWUFBTSxHQUFOLEdBQVksQ0FBWjtBQUNBLFlBQU0sS0FBTixHQUFjLGtCQUFtQixNQUFNLEtBQXpCLEVBQWdDLE1BQU0sR0FBdEMsRUFBMkMsTUFBTSxHQUFqRCxDQUFkO0FBQ0EsMkJBQXNCLE1BQU0sS0FBNUI7QUFDQSx1QkFBa0IsTUFBTSxLQUF4QjtBQUNBO0FBQ0EsYUFBTyxLQUFQO0FBQ0QsS0FQRDtBQVFBLFFBQUcsTUFBTSxNQUFULEVBQWlCLE1BQU0sTUFBTixDQUFhLGFBQWI7QUFDakIsV0FBTyxLQUFQO0FBQ0QsR0F4TkQsQ0EvQk0sQ0F1UEo7QUFDRixRQUFNLFNBQU4sQ0FBaUIsYUFBakI7QUFDQSxTQUFPLEtBQVA7QUFDRCxDLENBL1JEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaVNBLElBQU0sS0FBSyxJQUFJLE1BQU0sT0FBVixFQUFYO0FBQ0EsSUFBTSxLQUFLLElBQUksTUFBTSxPQUFWLEVBQVg7QUFDQSxJQUFNLE9BQU8sSUFBSSxNQUFNLE9BQVYsRUFBYjtBQUNBLElBQU0sT0FBTyxJQUFJLE1BQU0sT0FBVixFQUFiOztBQUVBLFNBQVMsYUFBVCxDQUF3QixLQUF4QixFQUErQixPQUEvQixFQUF3QztBQUN0QyxLQUFHLElBQUgsQ0FBUyxRQUFRLENBQWpCLEVBQXFCLEdBQXJCLENBQTBCLFFBQVEsQ0FBbEM7QUFDQSxLQUFHLElBQUgsQ0FBUyxLQUFULEVBQWlCLEdBQWpCLENBQXNCLFFBQVEsQ0FBOUI7O0FBRUEsTUFBTSxZQUFZLEdBQUcsZUFBSCxDQUFvQixFQUFwQixDQUFsQjs7QUFFQSxPQUFLLElBQUwsQ0FBVyxLQUFYLEVBQW1CLEdBQW5CLENBQXdCLFFBQVEsQ0FBaEM7O0FBRUEsT0FBSyxJQUFMLENBQVcsUUFBUSxDQUFuQixFQUF1QixHQUF2QixDQUE0QixRQUFRLENBQXBDLEVBQXdDLFNBQXhDOztBQUVBLE1BQU0sT0FBTyxLQUFLLFNBQUwsR0FBaUIsR0FBakIsQ0FBc0IsSUFBdEIsS0FBZ0MsQ0FBaEMsR0FBb0MsQ0FBcEMsR0FBd0MsQ0FBQyxDQUF0RDs7QUFFQSxNQUFNLFNBQVMsUUFBUSxDQUFSLENBQVUsVUFBVixDQUFzQixRQUFRLENBQTlCLElBQW9DLElBQW5EOztBQUVBLE1BQUksUUFBUSxVQUFVLE1BQVYsS0FBcUIsTUFBakM7QUFDQSxNQUFJLFFBQVEsR0FBWixFQUFpQjtBQUNmLFlBQVEsR0FBUjtBQUNEO0FBQ0QsTUFBSSxRQUFRLEdBQVosRUFBaUI7QUFDZixZQUFRLEdBQVI7QUFDRDtBQUNELFNBQU8sS0FBUDtBQUNEOztBQUVELFNBQVMsSUFBVCxDQUFjLEdBQWQsRUFBbUIsR0FBbkIsRUFBd0IsS0FBeEIsRUFBK0I7QUFDN0IsU0FBTyxDQUFDLElBQUUsS0FBSCxJQUFVLEdBQVYsR0FBZ0IsUUFBTSxHQUE3QjtBQUNEOztBQUVELFNBQVMsU0FBVCxDQUFtQixLQUFuQixFQUEwQixJQUExQixFQUFnQyxLQUFoQyxFQUF1QyxJQUF2QyxFQUE2QyxLQUE3QyxFQUFvRDtBQUNoRCxTQUFPLE9BQU8sQ0FBQyxRQUFRLElBQVQsS0FBa0IsUUFBUSxJQUExQixLQUFtQyxRQUFRLElBQTNDLENBQWQ7QUFDSDs7QUFFRCxTQUFTLGVBQVQsQ0FBMEIsS0FBMUIsRUFBaUM7QUFDL0IsTUFBSSxRQUFRLENBQVosRUFBZTtBQUNiLFdBQU8sQ0FBUDtBQUNEO0FBQ0QsTUFBSSxRQUFRLENBQVosRUFBZTtBQUNiLFdBQU8sQ0FBUDtBQUNEO0FBQ0QsU0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBUyxlQUFULENBQTBCLEtBQTFCLEVBQWlDLEdBQWpDLEVBQXNDLEdBQXRDLEVBQTJDO0FBQ3pDLE1BQUksUUFBUSxHQUFaLEVBQWlCO0FBQ2YsV0FBTyxHQUFQO0FBQ0Q7QUFDRCxNQUFJLFFBQVEsR0FBWixFQUFpQjtBQUNmLFdBQU8sR0FBUDtBQUNEO0FBQ0QsU0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBUyxjQUFULENBQXlCLEtBQXpCLEVBQWdDLEdBQWhDLEVBQXFDLEdBQXJDLEVBQTBDO0FBQ3hDO0FBQ0E7QUFDQSxNQUFNLElBQUksTUFBSSxHQUFkO0FBQ0EsTUFBSSxPQUFPLElBQUUsR0FBYixDQUp3QyxDQUl0Qjs7QUFFbEIsU0FBTyxJQUFQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNEOztBQUVELFNBQVMsaUJBQVQsQ0FBNEIsS0FBNUIsRUFBbUMsR0FBbkMsRUFBd0MsR0FBeEMsRUFBNkM7QUFDM0MsU0FBTyxVQUFXLEtBQVgsRUFBa0IsR0FBbEIsRUFBdUIsR0FBdkIsRUFBNEIsR0FBNUIsRUFBaUMsR0FBakMsQ0FBUDtBQUNEOztBQUVELFNBQVMsaUJBQVQsQ0FBNEIsS0FBNUIsRUFBbUMsR0FBbkMsRUFBd0MsR0FBeEMsRUFBNkM7QUFDM0MsU0FBTyxVQUFXLEtBQVgsRUFBa0IsR0FBbEIsRUFBdUIsR0FBdkIsRUFBNEIsR0FBNUIsRUFBaUMsR0FBakMsQ0FBUDtBQUNEOztBQUVELFNBQVMsZUFBVCxDQUEwQixLQUExQixFQUFpQyxJQUFqQyxFQUF1QztBQUNyQyxNQUFJLFFBQVEsSUFBUixJQUFnQixDQUFwQixFQUF1QjtBQUNyQixXQUFPLEtBQUssS0FBTCxDQUFZLFFBQVEsSUFBcEIsSUFBNkIsSUFBcEM7QUFDRDtBQUNELFNBQU8sS0FBUDtBQUNEOztBQUVELFNBQVMsV0FBVCxDQUFxQixDQUFyQixFQUF3QjtBQUN0QixNQUFJLEVBQUUsUUFBRixFQUFKO0FBQ0EsTUFBSSxFQUFFLE9BQUYsQ0FBVSxHQUFWLElBQWlCLENBQUMsQ0FBdEIsRUFBeUI7QUFDdkIsV0FBTyxFQUFFLE1BQUYsR0FBVyxFQUFFLE9BQUYsQ0FBVSxHQUFWLENBQVgsR0FBNEIsQ0FBbkM7QUFDRCxHQUZELE1BRU87QUFDTCxXQUFPLENBQVA7QUFDRDtBQUNGOztBQUVELFNBQVMsY0FBVCxDQUF3QixLQUF4QixFQUErQixRQUEvQixFQUF5QztBQUN2QyxNQUFJLEtBQUssR0FBTCxDQUFTLEtBQVQsSUFBa0IsSUFBbEIsSUFBMEIsVUFBVSxDQUF4QyxFQUEyQyxPQUFPLE1BQU0sYUFBTixDQUFvQixDQUFwQixDQUFQO0FBQzNDLE1BQU0sUUFBUSxLQUFLLEdBQUwsQ0FBUyxFQUFULEVBQWEsUUFBYixDQUFkO0FBQ0EsU0FBTyxLQUFLLEtBQUwsQ0FBVyxRQUFRLEtBQW5CLElBQTRCLEtBQW5DO0FBQ0Q7Ozs7Ozs7O2tCQ2hYdUIsYTs7QUFUeEI7O0lBQVksRzs7QUFDWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBR0csU0FBUyxhQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOSixXQU1JLFFBTkosV0FNSTtBQUFBLE1BTEosTUFLSSxRQUxKLE1BS0k7QUFBQSwrQkFKSixZQUlJO0FBQUEsTUFKSixZQUlJLHFDQUpXLFdBSVg7QUFBQSx3QkFISixLQUdJO0FBQUEsTUFISixLQUdJLDhCQUhJLE9BQU8sV0FHWDtBQUFBLHlCQUZKLE1BRUk7QUFBQSxNQUZKLE1BRUksK0JBRkssT0FBTyxZQUVaO0FBQUEsd0JBREosS0FDSTtBQUFBLE1BREosS0FDSSw4QkFESSxPQUFPLFdBQ1g7O0FBQ047QUFDQSxNQUFNLGVBQWUsUUFBUSxHQUFSLEdBQWMsT0FBTyxZQUExQztBQUNBLE1BQU0sZ0JBQWdCLFNBQVMsT0FBTyxZQUF0QztBQUNBLE1BQU0sZUFBZSxPQUFPLFlBQTVCOztBQUVBLE1BQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLFNBQWhCO0FBQ0EsUUFBTSxRQUFOLEdBQWlCO0FBQUEsaUJBQVUsTUFBTSxPQUFoQixVQUE0QixZQUE1QjtBQUFBLEdBQWpCOztBQUVBLE1BQU0sUUFBUSxPQUFPLFdBQVAsQ0FBb0IsS0FBcEIsRUFBMkIsTUFBM0IsRUFBbUMsS0FBbkMsQ0FBZDtBQUNBLFFBQU0sR0FBTixDQUFXLEtBQVg7O0FBRUE7QUFDQSxNQUFNLFlBQVksQ0FBbEI7QUFDQSxNQUFNLGNBQWMsZUFBZSxhQUFuQztBQUNBLE1BQU0sT0FBTyxJQUFJLE1BQU0sV0FBVixDQUF1QixZQUF2QixFQUFxQyxhQUFyQyxFQUFvRCxZQUFwRCxFQUFrRSxLQUFLLEtBQUwsQ0FBWSxZQUFZLFdBQXhCLENBQWxFLEVBQXlHLFNBQXpHLEVBQW9ILFNBQXBILENBQWI7QUFDQSxNQUFNLFdBQVcsSUFBSSxNQUFNLG1CQUFWLENBQStCLENBQS9CLENBQWpCO0FBQ0EsV0FBUyxNQUFULENBQWlCLElBQWpCO0FBQ0EsT0FBSyxTQUFMLENBQWdCLGVBQWUsR0FBL0IsRUFBb0MsQ0FBcEMsRUFBdUMsQ0FBdkM7O0FBRUE7QUFDQSxNQUFNLGtCQUFrQixJQUFJLE1BQU0saUJBQVYsRUFBeEI7QUFDQSxrQkFBZ0IsT0FBaEIsR0FBMEIsS0FBMUI7O0FBRUEsTUFBTSxnQkFBZ0IsSUFBSSxNQUFNLElBQVYsQ0FBZ0IsS0FBSyxLQUFMLEVBQWhCLEVBQThCLGVBQTlCLENBQXRCO0FBQ0EsZ0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixlQUFlLEdBQTFDO0FBQ0EsZ0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixRQUFRLEdBQW5DOztBQUVBLE1BQU0sV0FBVyxJQUFJLE1BQU0saUJBQVYsQ0FBNEIsRUFBRSxPQUFPLFFBQVQsRUFBNUIsQ0FBakI7QUFDQSxNQUFNLGVBQWUsSUFBSSxNQUFNLElBQVYsQ0FBZ0IsS0FBSyxLQUFMLEVBQWhCLEVBQThCLFFBQTlCLENBQXJCO0FBQ0EsZ0JBQWMsR0FBZCxDQUFtQixZQUFuQjs7QUFHQTtBQUNBLE1BQU0sY0FBYyxZQUFZLE1BQVosQ0FBb0IsT0FBTyxZQUFQLENBQXBCLEVBQTBDLEVBQUUsT0FBTyxTQUFULEVBQW9CLE9BQU8sS0FBM0IsRUFBMUMsQ0FBcEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsY0FBWSxRQUFaLENBQXFCLENBQXJCLEdBQXlCLEtBQXpCO0FBQ0EsY0FBWSxRQUFaLENBQXFCLENBQXJCLEdBQXlCLGVBQWUsR0FBeEM7QUFDQSxjQUFZLFFBQVosQ0FBcUIsQ0FBckIsR0FBeUIsQ0FBQyxLQUExQjtBQUNBLGVBQWEsR0FBYixDQUFrQixXQUFsQjs7QUFHQSxNQUFNLGtCQUFrQixZQUFZLE1BQVosQ0FBb0IsWUFBcEIsQ0FBeEI7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsT0FBTyx1QkFBcEM7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsS0FBN0I7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsQ0FBQyxJQUE5Qjs7QUFFQSxNQUFNLGVBQWUsT0FBTyxxQkFBUCxDQUE4QixNQUE5QixFQUFzQyxPQUFPLG9CQUE3QyxDQUFyQjtBQUNBLGVBQWEsUUFBYixDQUFzQixDQUF0QixHQUEwQixLQUExQjs7QUFFQSxRQUFNLEdBQU4sQ0FBVyxlQUFYLEVBQTRCLGFBQTVCLEVBQTJDLFlBQTNDOztBQUVBLE1BQU0sY0FBYywyQkFBbUIsYUFBbkIsQ0FBcEI7QUFDQSxjQUFZLE1BQVosQ0FBbUIsRUFBbkIsQ0FBdUIsV0FBdkIsRUFBb0MsYUFBcEM7O0FBRUE7O0FBRUEsV0FBUyxZQUFULENBQXNCLEdBQXRCLEVBQTJCO0FBQ3ZCLFdBQU8sWUFBUCxJQUF1QixHQUF2QjtBQUNBLGdCQUFZLFdBQVosQ0FBd0IsR0FBeEI7QUFDSDtBQUNELE1BQUksUUFBSjtBQUNBLFdBQVMsY0FBVCxHQUEwQjtBQUN4QixRQUFJLFFBQUosRUFBYztBQUNWLGVBQVMsT0FBVCxHQUFtQixDQUFDLFNBQVMsT0FBN0I7QUFDQSxVQUFJLFNBQVMsT0FBYixFQUFzQixNQUFNLE1BQU4sQ0FBYSxjQUFiLENBQTRCLFFBQTVCO0FBQ3RCO0FBQ0gsS0FKRCxNQUlPO0FBQ0gsaUJBQVcsSUFBSSxLQUFKLENBQVUsTUFBVixDQUFpQixVQUFqQixDQUFYO0FBQ0EsWUFBTSxHQUFOLENBQVUsUUFBVjtBQUNBLGVBQVMsTUFBVCxHQUFrQixNQUFNLE1BQXhCO0FBQ0EsWUFBTSxNQUFOLENBQWEsY0FBYixDQUE0QixRQUE1QjtBQUNBLGVBQVMsUUFBVCxDQUFrQixDQUFsQixHQUFzQixLQUF0QjtBQUNBLGVBQVMsUUFBVCxDQUFrQixDQUFsQixHQUFzQixPQUFPLGFBQTdCO0FBQ0EsZUFBUyxVQUFUO0FBQ0EsZUFBUyxXQUFULENBQXNCLFVBQUMsQ0FBRCxFQUFPO0FBQ3pCLFlBQUksTUFBTSxPQUFPLFlBQVAsQ0FBVjtBQUNBLGdCQUFRLENBQVI7QUFDSSxlQUFLLElBQUw7QUFDSTtBQUNBO0FBQ0E7QUFDQSx1QkFBVyxjQUFYLEVBQTJCLEdBQTNCO0FBQ0E7QUFDSixlQUFLLElBQUw7QUFDSSxrQkFBTSxJQUFJLFNBQUosQ0FBYyxDQUFkLEVBQWlCLElBQUksTUFBSixHQUFXLENBQTVCLENBQU47QUFDQSx5QkFBYSxHQUFiO0FBQ0E7QUFDSjtBQUNJLG1CQUFPLENBQVA7QUFDQSx5QkFBYSxHQUFiO0FBYlI7QUFlSCxPQWpCRDtBQWtCSDtBQUNGOztBQUVELFdBQVMsYUFBVCxDQUF3QixDQUF4QixFQUEyQjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsTUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNEOztBQUdELFdBQVMsVUFBVCxHQUFxQjs7QUFFbkIsUUFBSSxZQUFZLFFBQVosRUFBSixFQUE0QjtBQUMxQixlQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8sb0JBQTlCO0FBQ0QsS0FGRCxNQUdJO0FBQ0YsZUFBUyxLQUFULENBQWUsTUFBZixDQUF1QixPQUFPLFVBQTlCO0FBQ0Q7QUFFRjs7QUFFRCxRQUFNLFdBQU4sR0FBb0IsV0FBcEI7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsQ0FBRSxhQUFGLEVBQWlCLEtBQWpCLENBQWhCOztBQUVBLE1BQU0sa0JBQWtCLEtBQUssTUFBTCxDQUFhLEVBQUUsWUFBRixFQUFTLFlBQVQsRUFBYixDQUF4Qjs7QUFFQSxRQUFNLGFBQU4sR0FBc0IsVUFBVSxZQUFWLEVBQXdCO0FBQzVDLGdCQUFZLE1BQVosQ0FBb0IsWUFBcEI7QUFDQSxvQkFBZ0IsTUFBaEIsQ0FBd0IsWUFBeEI7QUFDQTtBQUNELEdBSkQ7O0FBTUEsUUFBTSxJQUFOLEdBQWEsVUFBVSxHQUFWLEVBQWU7QUFDMUIsb0JBQWdCLFdBQWhCLENBQTZCLEdBQTdCO0FBQ0EsV0FBTyxLQUFQO0FBQ0QsR0FIRDs7QUFNQSxTQUFPLEtBQVA7QUFDRCxDLENBaExEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQ3VCd0IsZTtRQWdEUixhLEdBQUEsYTs7QUFwRGhCOztJQUFZLE07O0FBQ1o7O0lBQVksZTs7QUFDWjs7SUFBWSxNOzs7O0FBRUcsU0FBUyxlQUFULENBQTBCLFdBQTFCLEVBQXVDLEdBQXZDLEVBQXdJO0FBQUEsTUFBNUYsS0FBNEYsdUVBQXBGLEdBQW9GO0FBQUEsTUFBL0UsS0FBK0UsdUVBQXZFLEtBQXVFO0FBQUEsTUFBaEUsT0FBZ0UsdUVBQXRELFFBQXNEO0FBQUEsTUFBNUMsT0FBNEMsdUVBQWxDLE9BQU8sWUFBMkI7QUFBQSxNQUFiLEtBQWEsdUVBQUwsR0FBSzs7O0FBRXJKLE1BQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLFdBQWhCO0FBQ0EsUUFBTSxRQUFOLEdBQWlCO0FBQUEsaUJBQVUsTUFBTSxPQUFoQixVQUE0QixHQUE1QjtBQUFBLEdBQWpCOztBQUVBLE1BQU0sc0JBQXNCLElBQUksTUFBTSxLQUFWLEVBQTVCLENBTnFKLENBTXRHO0FBQy9DLFFBQU0sR0FBTixDQUFXLG1CQUFYOztBQUVBLE1BQU0sT0FBTyxZQUFZLE1BQVosQ0FBb0IsSUFBSSxRQUFKLEVBQXBCLEVBQW9DLEVBQUUsT0FBTyxPQUFULEVBQWtCLFlBQWxCLEVBQXBDLENBQWI7QUFDQSxzQkFBb0IsR0FBcEIsQ0FBeUIsSUFBekI7QUFDQSxRQUFNLFFBQU4sQ0FBZSxJQUFmLEdBQXNCLElBQXRCOztBQUVBLFFBQU0sU0FBTixHQUFrQixVQUFVLEdBQVYsRUFBZTtBQUMvQixRQUFJLFFBQVEsU0FBWixFQUF1QixNQUFNLGFBQU47QUFDdkIsU0FBSyxXQUFMLENBQWtCLElBQUksUUFBSixFQUFsQjtBQUNBO0FBQ0QsR0FKRDs7QUFNQSxRQUFNLFNBQU4sR0FBa0IsVUFBVSxHQUFWLEVBQWU7QUFDL0IsU0FBSyxXQUFMLENBQWtCLElBQUksT0FBSixDQUFZLENBQVosQ0FBbEI7QUFDRCxHQUZEOztBQUlBLE9BQUssUUFBTCxDQUFjLENBQWQsR0FBa0IsS0FBbEI7O0FBRUEsTUFBTSxhQUFhLElBQW5CO0FBQ0EsTUFBTSxTQUFTLElBQWY7QUFDQSxNQUFNLGFBQWEsS0FBbkI7QUFDQSxNQUFNLGNBQWMsT0FBTyxTQUFTLENBQXBDOztBQUVBOztBQUVBLE1BQU0sb0JBQW9CLElBQUksTUFBTSxXQUFWLENBQXVCLFVBQXZCLEVBQW1DLFdBQW5DLEVBQWdELEtBQWhELEVBQXVELENBQXZELEVBQTBELENBQTFELEVBQTZELENBQTdELENBQTFCO0FBQ0Esb0JBQWtCLFlBQWxCLENBQWdDLElBQUksTUFBTSxPQUFWLEdBQW9CLGVBQXBCLENBQXFDLGFBQWEsR0FBYixHQUFtQixNQUF4RCxFQUFnRSxDQUFoRSxFQUFtRSxDQUFuRSxDQUFoQzs7QUFFQSxNQUFNLGdCQUFnQixJQUFJLE1BQU0sSUFBVixDQUFnQixpQkFBaEIsRUFBbUMsZ0JBQWdCLEtBQW5ELENBQXRCO0FBQ0EsU0FBTyxnQkFBUCxDQUF5QixjQUFjLFFBQXZDLEVBQWlELE9BQWpEOztBQUVBLGdCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsSUFBM0I7QUFDQSxzQkFBb0IsR0FBcEIsQ0FBeUIsYUFBekI7QUFDQSxzQkFBb0IsUUFBcEIsQ0FBNkIsQ0FBN0IsR0FBaUMsQ0FBQyxXQUFELEdBQWUsR0FBaEQ7O0FBRUEsUUFBTSxJQUFOLEdBQWEsYUFBYjs7QUFFQSxTQUFPLEtBQVA7QUFDRCxDLENBcEVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0VBLElBQU0sc0JBQXNCLE9BQU8sWUFBUCxHQUFzQixPQUFPLGFBQXpEO0FBQ08sU0FBUyxhQUFULENBQXdCLFdBQXhCLEVBQXFDLEdBQXJDLEVBQTBDLFdBQTFDLEVBQXlHO0FBQUEsTUFBbEQsWUFBa0QsdUVBQW5DLG1CQUFtQztBQUFBLE1BQWQsV0FBYzs7QUFDOUcsTUFBTSxVQUFVLFlBQVksTUFBWixDQUFtQixHQUFuQixDQUFoQjs7QUFFQSxNQUFNLFdBQVcsSUFBSSxNQUFNLEtBQVYsRUFBakI7O0FBRUEsTUFBTSxJQUFJLFFBQVEsWUFBUixFQUFWO0FBQ0EsTUFBTSxJQUFJLE9BQU8sVUFBUCxHQUFvQixRQUFRLE1BQVIsQ0FBZSxNQUE3Qzs7QUFFQSxXQUFTLFFBQVQsQ0FBa0IsQ0FBbEIsR0FBdUIsTUFBTSxXQUE3QjtBQUNBLFdBQVMsUUFBVCxDQUFrQixDQUFsQixHQUFzQixDQUFDLElBQUQsR0FBUSxZQUFSLEdBQXVCLENBQTdDO0FBQ0EsV0FBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLGNBQWMsQ0FBcEM7QUFDQSxXQUFTLE9BQVQsR0FBbUIsS0FBbkI7O0FBRUY7QUFDRSxXQUFTLEdBQVQsQ0FBYSxPQUFiO0FBQ0Y7O0FBRUUsTUFBTSxVQUFVLElBQUksSUFBcEI7QUFBQSxNQUEwQixVQUFVLElBQUksSUFBeEM7QUFDQSxNQUFNLFVBQVUsSUFBSSxNQUFNLGFBQVYsQ0FBd0IsT0FBeEIsRUFBaUMsT0FBakMsRUFBMEMsQ0FBMUMsRUFBNkMsQ0FBN0MsQ0FBaEI7QUFDQSxNQUFNLGdCQUFnQixJQUFJLE1BQU0sSUFBVixDQUFlLE9BQWYsRUFBd0IsZ0JBQWdCLE9BQXhDLENBQXRCO0FBQ0EsZ0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixDQUEzQixDQXBCOEcsQ0FvQmhGO0FBQzlCLGdCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsSUFBSSxDQUEvQjtBQUNBLGdCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsQ0FBQyxXQUFELEdBQWUsR0FBMUM7QUFDQSxXQUFTLEdBQVQsQ0FBYSxhQUFiOztBQUVBLFVBQVEsUUFBUixDQUFpQixDQUFqQixHQUFxQixDQUFDLEdBQUQsR0FBTyxDQUE1QjtBQUNBLFVBQVEsUUFBUixDQUFpQixDQUFqQixHQUFxQixDQUFDLEdBQUQsR0FBTyxDQUFQLEdBQVcsTUFBaEM7O0FBRUEsV0FBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLENBQXRCO0FBQ0EsV0FBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLENBQXRCOztBQUVBLFNBQU8sUUFBUDtBQUNEOzs7Ozs7OztRQ3JHZSxtQixHQUFBLG1CO1FBK0JBLGEsR0FBQSxhO1FBZ0JBLGlCLEdBQUEsaUI7UUFNQSxTLEdBQUEsUztRQVNBLGdCLEdBQUEsZ0I7QUFoRWhCOztBQUVPLFNBQVMsbUJBQVQsQ0FBNkIsT0FBN0IsRUFBc0M7QUFDM0MsTUFBSSxTQUFTLFFBQVEsTUFBckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFJLFFBQVEsY0FBWixFQUE0QixPQUFPLG9CQUFvQixNQUFwQixDQUFQOztBQUU1Qjs7QUFFQSxNQUFJLENBQUMsUUFBUSxPQUFiLEVBQXNCLE9BQU8sS0FBUDs7QUFFdEIsU0FBTyxPQUFPLE1BQVAsS0FBa0IsTUFBekIsRUFBZ0M7QUFDOUIsUUFBSSxPQUFPLFdBQVAsTUFBd0IsQ0FBQyxPQUFPLE9BQXBDLEVBQTZDLE9BQU8sS0FBUDtBQUM3QyxhQUFTLE9BQU8sTUFBaEI7QUFDRDtBQUNELE1BQUksQ0FBQyxPQUFPLE1BQVosRUFBb0IsT0FBTyxLQUFQO0FBQ3BCLFNBQU8sT0FBTyxPQUFkO0FBQ0Q7O0FBRUQ7Ozs7Ozs7QUFPTyxTQUFTLGFBQVQsQ0FBdUIsTUFBdkIsRUFBK0IsS0FBL0IsRUFBc0MsT0FBdEMsRUFBK0M7QUFDbEQsTUFBTSxVQUFVLE9BQU8sUUFBUCxDQUFnQixRQUFoQixDQUF5QixLQUF6QixDQUFoQjtBQUNBLFFBQU0sT0FBTixHQUFnQixPQUFoQjtBQUNBO0FBQ0EsTUFBSSxXQUFXLENBQUMsT0FBaEIsRUFBeUIsTUFBTSxLQUFOLENBQVksU0FBWixDQUFzQixHQUF0QixDQUEwQixJQUExQixDQUErQixNQUEvQixFQUF1QyxLQUF2QztBQUN6QixNQUFJLENBQUMsT0FBRCxJQUFZLE9BQWhCLEVBQXlCLE1BQU0sS0FBTixDQUFZLFNBQVosQ0FBc0IsTUFBdEIsQ0FBNkIsSUFBN0IsQ0FBa0MsTUFBbEMsRUFBMEMsS0FBMUM7QUFDekIsTUFBSSxDQUFDLE9BQU8sT0FBWixFQUFxQixRQUFRLElBQVIsb0NBQThDLEtBQTlDLDZCQUEyRSxNQUEzRTtBQUN4Qjs7QUFFRDs7Ozs7OztBQU9PLFNBQVMsaUJBQVQsQ0FBMkIsS0FBM0IsRUFBa0M7QUFDckMsTUFBSSxTQUFTLFVBQVUsS0FBVixDQUFiO0FBQ0EsU0FBTyxPQUFPLE1BQVAsS0FBa0IsTUFBekI7QUFBaUMsYUFBUyxPQUFPLE1BQWhCO0FBQWpDLEdBQ0EsT0FBTyxNQUFQO0FBQ0g7O0FBRU0sU0FBUyxTQUFULENBQW1CLEtBQW5CLEVBQTBCO0FBQzdCLE1BQUksTUFBTSxNQUFWLEVBQWtCLE9BQU8sTUFBTSxNQUFiO0FBQ2xCLE1BQUksT0FBTyxNQUFNLE1BQWpCO0FBQ0EsU0FBTyxDQUFDLEtBQUssTUFBTixJQUFnQixNQUFNLE1BQTdCO0FBQXFDLFdBQU8sS0FBSyxNQUFaO0FBQXJDLEdBQ0EsT0FBTyxLQUFLLE1BQVo7QUFDSDs7QUFFRDtBQUNBO0FBQ08sU0FBUyxnQkFBVCxDQUEwQixHQUExQixFQUErQixHQUEvQixFQUFvQztBQUN6QyxNQUFNLFlBQVksRUFBbEI7QUFDQSxNQUFJLFFBQUosQ0FBYSxhQUFLO0FBQ2hCLFFBQUksRUFBRSxRQUFGLElBQWMsRUFBRSxRQUFGLENBQVcsZ0JBQXpCLElBQTZDLEVBQUUsUUFBRixDQUFXLFVBQVgsQ0FBc0IsUUFBdEIsQ0FBK0IsUUFBL0IsS0FBNEMsQ0FBN0YsRUFBZ0c7QUFDOUYsUUFBRSxRQUFGLENBQVcsZ0JBQVgsR0FBOEIsS0FBOUI7QUFDQSxnQkFBVSxJQUFWLENBQWUsRUFBRSxRQUFqQjtBQUNEO0FBQ0YsR0FMRDtBQU1BLE1BQUksYUFBSixDQUFrQixHQUFsQjtBQUNBLFlBQVUsT0FBVixDQUFrQjtBQUFBLFdBQUssRUFBRSxnQkFBRixHQUFxQixJQUExQjtBQUFBLEdBQWxCO0FBQ0EsU0FBTyxHQUFQO0FBQ0Q7Ozs7O0FDM0VEOzs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLE1BQU0sbUJBQU4sR0FBNEIsVUFBVyxZQUFYLEVBQTBCOztBQUVyRCxPQUFLLFlBQUwsR0FBc0IsaUJBQWlCLFNBQW5CLEdBQWlDLENBQWpDLEdBQXFDLFlBQXpEO0FBRUEsQ0FKRDs7QUFNQTtBQUNBLE1BQU0sbUJBQU4sQ0FBMEIsU0FBMUIsQ0FBb0MsTUFBcEMsR0FBNkMsVUFBVyxRQUFYLEVBQXNCOztBQUVsRSxNQUFJLFVBQVUsS0FBSyxZQUFuQjs7QUFFQSxTQUFRLFlBQWEsQ0FBckIsRUFBeUI7O0FBRXhCLFNBQUssTUFBTCxDQUFhLFFBQWI7QUFFQTs7QUFFRDtBQUNBLFdBQVMsb0JBQVQ7QUFFQSxDQWJEOztBQWVBLENBQUUsWUFBVzs7QUFFWjtBQUNBLE1BQUksV0FBVyxDQUFFLElBQWpCLENBSFksQ0FHVztBQUN2QixNQUFJLE1BQU0sQ0FBRSxHQUFGLEVBQU8sR0FBUCxFQUFZLEdBQVosQ0FBVjs7QUFHQSxXQUFTLE9BQVQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsR0FBeEIsRUFBOEI7O0FBRTdCLFFBQUksZUFBZSxLQUFLLEdBQUwsQ0FBVSxDQUFWLEVBQWEsQ0FBYixDQUFuQjtBQUNBLFFBQUksZUFBZSxLQUFLLEdBQUwsQ0FBVSxDQUFWLEVBQWEsQ0FBYixDQUFuQjs7QUFFQSxRQUFJLE1BQU0sZUFBZSxHQUFmLEdBQXFCLFlBQS9COztBQUVBLFdBQU8sSUFBSyxHQUFMLENBQVA7QUFFQTs7QUFHRCxXQUFTLFdBQVQsQ0FBc0IsQ0FBdEIsRUFBeUIsQ0FBekIsRUFBNEIsUUFBNUIsRUFBc0MsR0FBdEMsRUFBMkMsSUFBM0MsRUFBaUQsWUFBakQsRUFBZ0U7O0FBRS9ELFFBQUksZUFBZSxLQUFLLEdBQUwsQ0FBVSxDQUFWLEVBQWEsQ0FBYixDQUFuQjtBQUNBLFFBQUksZUFBZSxLQUFLLEdBQUwsQ0FBVSxDQUFWLEVBQWEsQ0FBYixDQUFuQjs7QUFFQSxRQUFJLE1BQU0sZUFBZSxHQUFmLEdBQXFCLFlBQS9COztBQUVBLFFBQUksSUFBSjs7QUFFQSxRQUFLLE9BQU8sR0FBWixFQUFrQjs7QUFFakIsYUFBTyxJQUFLLEdBQUwsQ0FBUDtBQUVBLEtBSkQsTUFJTzs7QUFFTixVQUFJLFVBQVUsU0FBVSxZQUFWLENBQWQ7QUFDQSxVQUFJLFVBQVUsU0FBVSxZQUFWLENBQWQ7O0FBRUEsYUFBTzs7QUFFTixXQUFHLE9BRkcsRUFFTTtBQUNaLFdBQUcsT0FIRztBQUlOLGlCQUFTLElBSkg7QUFLTjtBQUNBO0FBQ0EsZUFBTyxFQVBELENBT0k7O0FBUEosT0FBUDs7QUFXQSxVQUFLLEdBQUwsSUFBYSxJQUFiO0FBRUE7O0FBRUQsU0FBSyxLQUFMLENBQVcsSUFBWCxDQUFpQixJQUFqQjs7QUFFQSxpQkFBYyxDQUFkLEVBQWtCLEtBQWxCLENBQXdCLElBQXhCLENBQThCLElBQTlCO0FBQ0EsaUJBQWMsQ0FBZCxFQUFrQixLQUFsQixDQUF3QixJQUF4QixDQUE4QixJQUE5QjtBQUdBOztBQUVELFdBQVMsZUFBVCxDQUEwQixRQUExQixFQUFvQyxLQUFwQyxFQUEyQyxZQUEzQyxFQUF5RCxLQUF6RCxFQUFpRTs7QUFFaEUsUUFBSSxDQUFKLEVBQU8sRUFBUCxFQUFXLElBQVgsRUFBaUIsSUFBakI7O0FBRUEsU0FBTSxJQUFJLENBQUosRUFBTyxLQUFLLFNBQVMsTUFBM0IsRUFBbUMsSUFBSSxFQUF2QyxFQUEyQyxHQUEzQyxFQUFrRDs7QUFFakQsbUJBQWMsQ0FBZCxJQUFvQixFQUFFLE9BQU8sRUFBVCxFQUFwQjtBQUVBOztBQUVELFNBQU0sSUFBSSxDQUFKLEVBQU8sS0FBSyxNQUFNLE1BQXhCLEVBQWdDLElBQUksRUFBcEMsRUFBd0MsR0FBeEMsRUFBK0M7O0FBRTlDLGFBQU8sTUFBTyxDQUFQLENBQVA7O0FBRUEsa0JBQWEsS0FBSyxDQUFsQixFQUFxQixLQUFLLENBQTFCLEVBQTZCLFFBQTdCLEVBQXVDLEtBQXZDLEVBQThDLElBQTlDLEVBQW9ELFlBQXBEO0FBQ0Esa0JBQWEsS0FBSyxDQUFsQixFQUFxQixLQUFLLENBQTFCLEVBQTZCLFFBQTdCLEVBQXVDLEtBQXZDLEVBQThDLElBQTlDLEVBQW9ELFlBQXBEO0FBQ0Esa0JBQWEsS0FBSyxDQUFsQixFQUFxQixLQUFLLENBQTFCLEVBQTZCLFFBQTdCLEVBQXVDLEtBQXZDLEVBQThDLElBQTlDLEVBQW9ELFlBQXBEO0FBRUE7QUFFRDs7QUFFRCxXQUFTLE9BQVQsQ0FBa0IsUUFBbEIsRUFBNEIsQ0FBNUIsRUFBK0IsQ0FBL0IsRUFBa0MsQ0FBbEMsRUFBc0M7O0FBRXJDLGFBQVMsSUFBVCxDQUFlLElBQUksTUFBTSxLQUFWLENBQWlCLENBQWpCLEVBQW9CLENBQXBCLEVBQXVCLENBQXZCLENBQWY7QUFFQTs7QUFFRCxXQUFTLFFBQVQsQ0FBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsRUFBMEI7O0FBRXpCLFdBQVMsS0FBSyxHQUFMLENBQVUsSUFBSSxDQUFkLElBQW9CLENBQXRCLEdBQTRCLEtBQUssR0FBTCxDQUFVLENBQVYsRUFBYSxDQUFiLENBQW5DO0FBRUE7O0FBRUQsV0FBUyxLQUFULENBQWdCLE1BQWhCLEVBQXdCLENBQXhCLEVBQTJCLENBQTNCLEVBQThCLENBQTlCLEVBQWtDOztBQUVqQyxXQUFPLElBQVAsQ0FBYSxDQUFFLEVBQUUsS0FBRixFQUFGLEVBQWEsRUFBRSxLQUFGLEVBQWIsRUFBd0IsRUFBRSxLQUFGLEVBQXhCLENBQWI7QUFFQTs7QUFFRDs7QUFFQTtBQUNBLFFBQU0sbUJBQU4sQ0FBMEIsU0FBMUIsQ0FBb0MsTUFBcEMsR0FBNkMsVUFBVyxRQUFYLEVBQXNCO0FBQUUsV0FBRixDQUFVOztBQUU1RSxRQUFJLE1BQU0sSUFBSSxNQUFNLE9BQVYsRUFBVjs7QUFFQSxRQUFJLFdBQUosRUFBaUIsUUFBakIsRUFBMkIsTUFBM0I7QUFDQSxRQUFJLFdBQUo7QUFBQSxRQUFpQixRQUFqQjtBQUFBLFFBQTJCLFNBQVMsRUFBcEM7O0FBRUEsUUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxFQUFiLEVBQWlCLENBQWpCLEVBQW9CLENBQXBCO0FBQ0EsUUFBSSxZQUFKLEVBQWtCLFdBQWxCOztBQUVBO0FBQ0EsUUFBSSxXQUFKLEVBQWlCLGVBQWpCLEVBQWtDLGlCQUFsQzs7QUFFQSxrQkFBYyxTQUFTLFFBQXZCLENBYmtFLENBYWpDO0FBQ2pDLGVBQVcsU0FBUyxLQUFwQixDQWRrRSxDQWN2QztBQUMzQixhQUFTLFNBQVMsYUFBVCxDQUF3QixDQUF4QixDQUFUOztBQUVBLFFBQUksU0FBUyxXQUFXLFNBQVgsSUFBd0IsT0FBTyxNQUFQLEdBQWdCLENBQXJEOztBQUVBOzs7Ozs7QUFNQSxtQkFBZSxJQUFJLEtBQUosQ0FBVyxZQUFZLE1BQXZCLENBQWY7QUFDQSxrQkFBYyxFQUFkLENBMUJrRSxDQTBCaEQ7O0FBRWxCLG9CQUFpQixXQUFqQixFQUE4QixRQUE5QixFQUF3QyxZQUF4QyxFQUFzRCxXQUF0RDs7QUFHQTs7Ozs7Ozs7QUFRQSxzQkFBa0IsRUFBbEI7QUFDQSxRQUFJLEtBQUosRUFBVyxXQUFYLEVBQXdCLE9BQXhCLEVBQWlDLElBQWpDO0FBQ0EsUUFBSSxnQkFBSixFQUFzQixvQkFBdEIsRUFBNEMsY0FBNUM7O0FBRUEsU0FBTSxDQUFOLElBQVcsV0FBWCxFQUF5Qjs7QUFFeEIsb0JBQWMsWUFBYSxDQUFiLENBQWQ7QUFDQSxnQkFBVSxJQUFJLE1BQU0sT0FBVixFQUFWOztBQUVBLHlCQUFtQixJQUFJLENBQXZCO0FBQ0EsNkJBQXVCLElBQUksQ0FBM0I7O0FBRUEsdUJBQWlCLFlBQVksS0FBWixDQUFrQixNQUFuQzs7QUFFQTtBQUNBLFVBQUssa0JBQWtCLENBQXZCLEVBQTJCOztBQUUxQjtBQUNBLDJCQUFtQixHQUFuQjtBQUNBLCtCQUF1QixDQUF2Qjs7QUFFQSxZQUFLLGtCQUFrQixDQUF2QixFQUEyQjs7QUFFMUIsY0FBSyxRQUFMLEVBQWdCLFFBQVEsSUFBUixDQUFjLDREQUFkLEVBQTRFLGNBQTVFLEVBQTRGLFdBQTVGO0FBRWhCO0FBRUQ7O0FBRUQsY0FBUSxVQUFSLENBQW9CLFlBQVksQ0FBaEMsRUFBbUMsWUFBWSxDQUEvQyxFQUFtRCxjQUFuRCxDQUFtRSxnQkFBbkU7O0FBRUEsVUFBSSxHQUFKLENBQVMsQ0FBVCxFQUFZLENBQVosRUFBZSxDQUFmOztBQUVBLFdBQU0sSUFBSSxDQUFWLEVBQWEsSUFBSSxjQUFqQixFQUFpQyxHQUFqQyxFQUF3Qzs7QUFFdkMsZUFBTyxZQUFZLEtBQVosQ0FBbUIsQ0FBbkIsQ0FBUDs7QUFFQSxhQUFNLElBQUksQ0FBVixFQUFhLElBQUksQ0FBakIsRUFBb0IsR0FBcEIsRUFBMkI7O0FBRTFCLGtCQUFRLFlBQWEsS0FBTSxJQUFLLENBQUwsQ0FBTixDQUFiLENBQVI7QUFDQSxjQUFLLFVBQVUsWUFBWSxDQUF0QixJQUEyQixVQUFVLFlBQVksQ0FBdEQsRUFBMEQ7QUFFMUQ7O0FBRUQsWUFBSSxHQUFKLENBQVMsS0FBVDtBQUVBOztBQUVELFVBQUksY0FBSixDQUFvQixvQkFBcEI7QUFDQSxjQUFRLEdBQVIsQ0FBYSxHQUFiOztBQUVBLGtCQUFZLE9BQVosR0FBc0IsZ0JBQWdCLE1BQXRDO0FBQ0Esc0JBQWdCLElBQWhCLENBQXNCLE9BQXRCOztBQUVBO0FBRUE7O0FBRUQ7Ozs7Ozs7QUFPQSxRQUFJLElBQUosRUFBVSxrQkFBVixFQUE4QixzQkFBOUI7QUFDQSxRQUFJLGNBQUosRUFBb0IsZUFBcEIsRUFBcUMsU0FBckMsRUFBZ0QsZUFBaEQ7QUFDQSx3QkFBb0IsRUFBcEI7O0FBRUEsU0FBTSxJQUFJLENBQUosRUFBTyxLQUFLLFlBQVksTUFBOUIsRUFBc0MsSUFBSSxFQUExQyxFQUE4QyxHQUE5QyxFQUFxRDs7QUFFcEQsa0JBQVksWUFBYSxDQUFiLENBQVo7O0FBRUE7QUFDQSx3QkFBa0IsYUFBYyxDQUFkLEVBQWtCLEtBQXBDO0FBQ0EsVUFBSSxnQkFBZ0IsTUFBcEI7O0FBRUEsVUFBSyxLQUFLLENBQVYsRUFBYzs7QUFFYixlQUFPLElBQUksRUFBWDtBQUVBLE9BSkQsTUFJTyxJQUFLLElBQUksQ0FBVCxFQUFhOztBQUVuQixlQUFPLEtBQU0sSUFBSSxDQUFWLENBQVAsQ0FGbUIsQ0FFRztBQUV0Qjs7QUFFRDtBQUNBOztBQUVBLDJCQUFxQixJQUFJLElBQUksSUFBN0I7QUFDQSwrQkFBeUIsSUFBekI7O0FBRUEsVUFBSyxLQUFLLENBQVYsRUFBYzs7QUFFYjtBQUNBOztBQUVBLFlBQUssS0FBSyxDQUFWLEVBQWM7O0FBRWIsY0FBSyxRQUFMLEVBQWdCLFFBQVEsSUFBUixDQUFjLG9CQUFkLEVBQW9DLGVBQXBDO0FBQ2hCLCtCQUFxQixJQUFJLENBQXpCO0FBQ0EsbUNBQXlCLElBQUksQ0FBN0I7O0FBRUE7QUFDQTtBQUVBLFNBVEQsTUFTTyxJQUFLLEtBQUssQ0FBVixFQUFjOztBQUVwQixjQUFLLFFBQUwsRUFBZ0IsUUFBUSxJQUFSLENBQWMsd0JBQWQ7QUFFaEIsU0FKTSxNQUlBLElBQUssS0FBSyxDQUFWLEVBQWM7O0FBRXBCLGNBQUssUUFBTCxFQUFnQixRQUFRLElBQVIsQ0FBYyxvQkFBZDtBQUVoQjtBQUVEOztBQUVELHdCQUFrQixVQUFVLEtBQVYsR0FBa0IsY0FBbEIsQ0FBa0Msa0JBQWxDLENBQWxCOztBQUVBLFVBQUksR0FBSixDQUFTLENBQVQsRUFBWSxDQUFaLEVBQWUsQ0FBZjs7QUFFQSxXQUFNLElBQUksQ0FBVixFQUFhLElBQUksQ0FBakIsRUFBb0IsR0FBcEIsRUFBMkI7O0FBRTFCLHlCQUFpQixnQkFBaUIsQ0FBakIsQ0FBakI7QUFDQSxnQkFBUSxlQUFlLENBQWYsS0FBcUIsU0FBckIsR0FBaUMsZUFBZSxDQUFoRCxHQUFvRCxlQUFlLENBQTNFO0FBQ0EsWUFBSSxHQUFKLENBQVMsS0FBVDtBQUVBOztBQUVELFVBQUksY0FBSixDQUFvQixzQkFBcEI7QUFDQSxzQkFBZ0IsR0FBaEIsQ0FBcUIsR0FBckI7O0FBRUEsd0JBQWtCLElBQWxCLENBQXdCLGVBQXhCO0FBRUE7O0FBR0Q7Ozs7Ozs7O0FBUUEsa0JBQWMsa0JBQWtCLE1BQWxCLENBQTBCLGVBQTFCLENBQWQ7QUFDQSxRQUFJLEtBQUssa0JBQWtCLE1BQTNCO0FBQUEsUUFBbUMsS0FBbkM7QUFBQSxRQUEwQyxLQUExQztBQUFBLFFBQWlELEtBQWpEO0FBQ0EsZUFBVyxFQUFYOztBQUVBLFFBQUksRUFBSixFQUFRLEVBQVIsRUFBWSxFQUFaLEVBQWdCLEVBQWhCO0FBQ0EsUUFBSSxLQUFLLElBQUksTUFBTSxPQUFWLEVBQVQ7QUFDQSxRQUFJLEtBQUssSUFBSSxNQUFNLE9BQVYsRUFBVDtBQUNBLFFBQUksS0FBSyxJQUFJLE1BQU0sT0FBVixFQUFUOztBQUVBLFNBQU0sSUFBSSxDQUFKLEVBQU8sS0FBSyxTQUFTLE1BQTNCLEVBQW1DLElBQUksRUFBdkMsRUFBMkMsR0FBM0MsRUFBa0Q7O0FBRWpELGFBQU8sU0FBVSxDQUFWLENBQVA7O0FBRUE7O0FBRUEsY0FBUSxRQUFTLEtBQUssQ0FBZCxFQUFpQixLQUFLLENBQXRCLEVBQXlCLFdBQXpCLEVBQXVDLE9BQXZDLEdBQWlELEVBQXpEO0FBQ0EsY0FBUSxRQUFTLEtBQUssQ0FBZCxFQUFpQixLQUFLLENBQXRCLEVBQXlCLFdBQXpCLEVBQXVDLE9BQXZDLEdBQWlELEVBQXpEO0FBQ0EsY0FBUSxRQUFTLEtBQUssQ0FBZCxFQUFpQixLQUFLLENBQXRCLEVBQXlCLFdBQXpCLEVBQXVDLE9BQXZDLEdBQWlELEVBQXpEOztBQUVBOztBQUVBLGNBQVMsUUFBVCxFQUFtQixLQUFuQixFQUEwQixLQUExQixFQUFpQyxLQUFqQztBQUNBLGNBQVMsUUFBVCxFQUFtQixLQUFLLENBQXhCLEVBQTJCLEtBQTNCLEVBQWtDLEtBQWxDO0FBQ0EsY0FBUyxRQUFULEVBQW1CLEtBQUssQ0FBeEIsRUFBMkIsS0FBM0IsRUFBa0MsS0FBbEM7QUFDQSxjQUFTLFFBQVQsRUFBbUIsS0FBSyxDQUF4QixFQUEyQixLQUEzQixFQUFrQyxLQUFsQzs7QUFFQTs7QUFFQSxVQUFLLE1BQUwsRUFBYzs7QUFFYixhQUFLLE9BQVEsQ0FBUixDQUFMOztBQUVBLGFBQUssR0FBSSxDQUFKLENBQUw7QUFDQSxhQUFLLEdBQUksQ0FBSixDQUFMO0FBQ0EsYUFBSyxHQUFJLENBQUosQ0FBTDs7QUFFQSxXQUFHLEdBQUgsQ0FBUSxTQUFVLEdBQUcsQ0FBYixFQUFnQixHQUFHLENBQW5CLENBQVIsRUFBZ0MsU0FBVSxHQUFHLENBQWIsRUFBZ0IsR0FBRyxDQUFuQixDQUFoQztBQUNBLFdBQUcsR0FBSCxDQUFRLFNBQVUsR0FBRyxDQUFiLEVBQWdCLEdBQUcsQ0FBbkIsQ0FBUixFQUFnQyxTQUFVLEdBQUcsQ0FBYixFQUFnQixHQUFHLENBQW5CLENBQWhDO0FBQ0EsV0FBRyxHQUFILENBQVEsU0FBVSxHQUFHLENBQWIsRUFBZ0IsR0FBRyxDQUFuQixDQUFSLEVBQWdDLFNBQVUsR0FBRyxDQUFiLEVBQWdCLEdBQUcsQ0FBbkIsQ0FBaEM7O0FBRUEsY0FBTyxNQUFQLEVBQWUsRUFBZixFQUFtQixFQUFuQixFQUF1QixFQUF2QjtBQUNBLGNBQU8sTUFBUCxFQUFlLEVBQWYsRUFBbUIsRUFBbkIsRUFBdUIsRUFBdkI7O0FBRUEsY0FBTyxNQUFQLEVBQWUsRUFBZixFQUFtQixFQUFuQixFQUF1QixFQUF2QjtBQUNBLGNBQU8sTUFBUCxFQUFlLEVBQWYsRUFBbUIsRUFBbkIsRUFBdUIsRUFBdkI7QUFFQTtBQUVEOztBQUVEO0FBQ0EsYUFBUyxRQUFULEdBQW9CLFdBQXBCO0FBQ0EsYUFBUyxLQUFULEdBQWlCLFFBQWpCO0FBQ0EsUUFBSyxNQUFMLEVBQWMsU0FBUyxhQUFULENBQXdCLENBQXhCLElBQThCLE1BQTlCOztBQUVkO0FBRUEsR0FuUEQ7QUFxUEEsQ0E1VkQ7OztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLlxyXG4gKiBvciBIIHNsaWRlciBhbmQgU1Ygc3F1YXJlIHdoaWNoIHNlZW1zIHRvIGJlIHdoYXQgZGF0Lmd1aSB1c2VzLlxyXG4gKiBPciBzb21ldGhpbmcgZmFuY2llciBsaWtlIGEgaHVlIGNpcmNsZSBhcm91bmQgYW4gU1YgdHJpYW5nbGUgZXRjIGV0Yy5cclxuICpcclxuICpcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxuICAgIGdsX0ZyYWdDb2xvci53ID0gMS4wOyAvLyBzanB0XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBnbF9GcmFnQ29sb3IudyA9IDEuMDsgLy8gc2pwdFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUlxyXG4gKiBoLCBzLCB2XHJcbiovXHJcbmZ1bmN0aW9uIEhTVnRvUkdCKGgsIHMsIHYpIHtcclxuICAgIHZhciByLCBnLCBiLCBpLCBmLCBwLCBxLCB0O1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAvL2hhY2sgdG8gdGFrZSBUSFJFRS5WZWN0b3IzLi4uXHJcbiAgICAgICAgaWYgKGgueCAhPT0gdW5kZWZpbmVkKSBzID0gaC55LCB2ID0gaC56LCBoID0gaC54O1xyXG4gICAgICAgIGVsc2UgcyA9IGgucywgdiA9IGgudiwgaCA9IGguaDtcclxuICAgIH1cclxuICAgIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIGYgPSBoICogNiAtIGk7XHJcbiAgICBwID0gdiAqICgxIC0gcyk7XHJcbiAgICBxID0gdiAqICgxIC0gZiAqIHMpO1xyXG4gICAgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcclxuICAgIHN3aXRjaCAoaSAlIDYpIHtcclxuICAgICAgICBjYXNlIDA6IHIgPSB2LCBnID0gdCwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTogciA9IHEsIGcgPSB2LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyOiByID0gcCwgZyA9IHYsIGIgPSB0OyBicmVhaztcclxuICAgICAgICBjYXNlIDM6IHIgPSBwLCBnID0gcSwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDogciA9IHQsIGcgPSBwLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA1OiByID0gdiwgZyA9IHAsIGIgPSBxOyBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcjogcixcclxuICAgICAgICBnOiBnLFxyXG4gICAgICAgIGI6IGJcclxuICAgIH07XHJcbn1cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIHIgIE9iamVjdCA9IHtyLCBnLCBifVxyXG4gKiBPUlxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcblxyXG4gICAgdmFyIHBhbmVsO1xyXG5cclxuICAgIGZ1bmN0aW9uIGNoYW5nZUZuKCkge1xyXG4gICAgICAgIGltYWdlLmNvbG9yLnNldChjb2xvcik7XHJcbiAgICAgICAgZXZlbnRzLmVtaXQoJ29uQ2hhbmdlJywgY29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhbmN5UGFuZWwgPSB0cnVlO1xyXG5cclxuICAgIGZ1bmN0aW9uIHNldFBhbmVsUG9zaXRpb24oKSB7XHJcbiAgICAgICAgaWYgKCFwYW5lbCkgcmV0dXJuO1xyXG4gICAgICAgIHBhbmVsLnBvc2l0aW9uLnNldCgwLCAwLCA1KmRlcHRoKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB0b2dnbGVEZXRhaWxQYW5lbCgpIHtcclxuICAgICAgICBpZiAocGFuZWwpIHtcclxuICAgICAgICAgICAgcGFuZWwudmlzaWJsZSA9ICFwYW5lbC52aXNpYmxlO1xyXG4gICAgICAgICAgICBpZiAocGFuZWwudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gd291bGQgYmUgaGFuZHkgdG8gaGF2ZSBhIHdheSB0byBtYWtlIG5hcnJvd2VyIHBhbmVsXHJcbiAgICAgICAgICAgIHBhbmVsID0gZGF0LkdVSVZSLmNyZWF0ZShcIkNvbG9yIENob29zZXJcIik7XHJcbiAgICAgICAgICAgIHBhbmVsLmhpZGVIZWFkZXIoKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChmYW5jeVBhbmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBTVk1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBTVkZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0U1YgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnkgPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS56ID0gcC5sb2NhbFBvaW50Lnk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBsZXQgd2lkZSA9IHRydWUsIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSC8xMDtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRTViwgU1ZNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX1dJRFRIIC8gMiwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IEhNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogSFNsaWRlckZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0SChwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueCA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAvL1RPRE86IGNoZWNrIGxheW91dFxyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldEgsIEhNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX0hFSUdIVCwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ3InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdnJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnYicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncm91cC5hZGQocGFuZWwpO1xyXG4gICAgICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHBhbmVsLmZvbGRlciA9IGdyb3VwLmZvbGRlcjsgLy9taWdodCBzdGlsbCB3YW50IHRvIGRvdWJsZSBjaGVjayBmb2xkZXIgaGllcmFyY2h5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgZXZlbnRzLm9uKCdvbkNoYW5nZScsIGNhbGxiYWNrKTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3JpZ2luYWxVcGRhdGVDb250cm9sID0gZ3JvdXAudXBkYXRlQ29udHJvbDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICkge1xyXG4gICAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIG9yaWdpbmFsVXBkYXRlQ29udHJvbChpbnB1dE9iamVjdHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKSB7XHJcbiAgICAgICAgLy9vYmplY3QgcmVmIG1pZ2h0IGhhdmUgY2hhbmdlZCwgYXMgd2VsbCBhcyB2YWx1ZS5cclxuICAgICAgICAvL2V2ZW4gaWYgcmVmIGhhc24ndCBjaGFuZ2VkLCB2YWx1ZSBzdGlsbCBtaWdodCd2ZSwgYW5kIHdlJ3JlIG5vdCBjdXJyZW50bHkgcmVmbGVjdGluZyB0aGF0LlxyXG4gICAgICAgIGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgaW1hZ2UuY29sb3IuY29weShjb2xvcik7XHJcbiAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUuY29weShSR0J0b0hTVihjb2xvcikpO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAubGlzdGVuID0gKCkgPT4ge1xyXG4gICAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1IgPSAweDJGQTFENjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9DT0xPUiA9IDB4NDNiNWVhO1xyXG5leHBvcnQgY29uc3QgSU5URVJBQ1RJT05fQ09MT1IgPSAweDA3QUJGNztcclxuZXhwb3J0IGNvbnN0IEVNSVNTSVZFX0NPTE9SID0gMHgyMjIyMjI7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfRU1JU1NJVkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IE9VVExJTkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDSyA9IDB4MDYwNjA2O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT0xERVJfQkFDSyA9IDB4MTAxMDEwO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0JBQ0sgPSAweDMxMzEzMTtcclxuZXhwb3J0IGNvbnN0IElOQUNUSVZFX0NPTE9SID0gMHgxNjE4Mjk7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1NMSURFUiA9IDB4MmZhMWQ2O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9DSEVDS0JPWCA9IDB4ODA2Nzg3O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9CVVRUT04gPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfVEVYVCA9IDB4MWVkMzZmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9EUk9QRE9XTiA9IDB4ZmZmMDAwO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0ZHX0NPTE9SID0gMHgwMDAwMDA7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0NPTE9SID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fSElHSExJR0hUX0NPTE9SID0gMHhmYTMxNzM7XHJcbmV4cG9ydCBjb25zdCBTTElERVJfQkcgPSAweDQ0NDQ0NDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfQkcgPSAweEYwRjBGMDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfSElHSExJR0hUX0JHID0gMHhGRkZGRkY7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sb3JpemVHZW9tZXRyeSggZ2VvbWV0cnksIGNvbG9yICl7XHJcbiAgY29uc3QgY29sID0gbmV3IFRIUkVFLkNvbG9yKGNvbG9yKTsgXHJcbiAgbGV0IGMgPSBnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ2NvbG9yJyk7XHJcbiAgbGV0IGE7XHJcbiAgaWYgKCFjKSB7XHJcbiAgICBhID0gbmV3IEZsb2F0MzJBcnJheShnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXkubGVuZ3RoKS5maWxsKDAuNSk7XHJcbiAgICBjID0gZ2VvbWV0cnkuc2V0QXR0cmlidXRlKCdjb2xvcicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoYSwgMykpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBhID0gYy5hcnJheTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSs9Mykge1xyXG4gICAgYVtpXSA9IGNvbC5yO1xyXG4gICAgYVtpKzFdID0gY29sLmc7XHJcbiAgICBhW2krMl0gPSBjb2wuYjtcclxuICB9XHJcbiAgYy5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIC8vIGdlb21ldHJ5LmZhY2VzLmZvckVhY2goIGZ1bmN0aW9uKGZhY2Upe1xyXG4gIC8vICAgZmFjZS5jb2xvci5zZXRIZXgoY29sb3IpO1xyXG4gIC8vIH0pO1xyXG4gIC8vIGdlb21ldHJ5LmNvbG9yc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIHJldHVybiBnZW9tZXRyeTtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsLCB7Y3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gXCIuL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVEcm9wZG93bigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICBvcHRpb25zID0gW10sXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgb3BlbjogZmFsc2UsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgRFJPUERPV05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9ERVBUSCA9IGRlcHRoO1xyXG4gIGNvbnN0IERST1BET1dOX09QVElPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOICogMS4yO1xyXG4gIGNvbnN0IERST1BET1dOX01BUkdJTiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAtMC40O1xyXG4gIGNvbnN0IE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZHJvcGRvd25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIC8vYWxsb3cgZm9yIHByb2dyYW1tYXRpYyBzZXQuIEFQSSBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgc3RhYmxlLlxyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZU9iamVjdCA9IG9iamVjdDtcclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VQcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7XHJcbiAgZ3JvdXAudXNlckRhdGEuc2V0VmFsdWUgPSB2ID0+IHtcclxuICAgIGlmIChvcHRpb25zLmluZGV4T2YodikgPT09IC0xKSB7XHJcbiAgICAgIC8vSSBjb3VsZCBjb25zaWRlciBhbm5vdGF0aW5nIEdVSSBpdHNlbGYgd2l0aCBlcnJvciBsYWJlbHMuLi5cclxuICAgICAgY29uc29sZS53YXJuKGBkYXQuR1VJVlI6IFVua25vd24gb3B0aW9uIFwiJHt2fVwiIGZvciBkcm9wZG93biBcIiR7cHJvcGVydHlOYW1lfVwiLlxcblZhbGlkIG9wdGlvbnM6IFske29wdGlvbnMuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gdjtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Iob2JqZWN0W3Byb3BlcnR5TmFtZV0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICBncm91cC5oaXRzY2FuID0gWyBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBtb2RhbERyb3Bkb3duID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgbW9kYWxEcm9wZG93bi52aXNpYmxlID0gZmFsc2U7XHJcbiAgbW9kYWxEcm9wZG93bi5oaXRzY2FuID0gW107XHJcbiAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbnMgPSBbXTtcclxuICBjb25zdCBvcHRpb25MYWJlbHMgPSBbXTtcclxuXHJcbiAgLy8gIGZpbmQgYWN0dWFsbHkgd2hpY2ggbGFiZWwgaXMgc2VsZWN0ZWRcclxuICBjb25zdCBpbml0aWFsTGFiZWwgPSBmaW5kTGFiZWxGcm9tUHJvcCgpO1xyXG5cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGZpbmRMYWJlbEZyb21Qcm9wKCl7XHJcbiAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgIHJldHVybiBvcHRpb25zLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbk5hbWUgPT09IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMob3B0aW9ucykuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb2JqZWN0W3Byb3BlcnR5TmFtZV0gPT09IG9wdGlvbnNbIG9wdGlvbk5hbWUgXTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVPcHRpb24oIGxhYmVsVGV4dCwgaXNPcHRpb24gKXtcclxuICAgIC8vVE9ETzogdHJ1bmNhdGUgbG9uZyBsYWJlbFRleHQsIG1heWJlIHNob3cgZnVsbCB2ZXJzaW9uIHdoZW4gaG92ZXJpbmcuXHJcbiAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZVRleHRMYWJlbChcclxuICAgICAgdGV4dENyZWF0b3IsIGxhYmVsVGV4dCxcclxuICAgICAgLy9jaGVjayB3aWR0aCB2YWx1ZS4uLlxyXG4gICAgICBEUk9QRE9XTl9XSURUSCwgZGVwdGgsXHJcbiAgICAgIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SLFxyXG4gICAgICAwLjg2NlxyXG4gICAgKTtcclxuICAgIGxhYmVsLmJhY2suZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbC5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuXHJcbiAgICBpZiAoaXNPcHRpb24pIG1vZGFsRHJvcGRvd24uaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBlbHNlIGdyb3VwLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBsYWJlbC5iYWNrICk7XHJcbiAgICBsYWJlbEludGVyYWN0aW9uLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMucHVzaCggbGFiZWxJbnRlcmFjdGlvbiApO1xyXG4gICAgb3B0aW9uTGFiZWxzLnB1c2goIGxhYmVsICk7XHJcblxyXG5cclxuICAgIGlmKCBpc09wdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggbGFiZWxUZXh0ICk7XHJcblxyXG4gICAgICAgIGxldCBwcm9wZXJ0eUNoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBvbkNoYW5nZWRDQiAmJiBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgIG9uQ2hhbmdlZENCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggb25DaG9vc2VDQiApe1xyXG4gICAgICAgICAgb25DaG9vc2VDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIGlmKCBzdGF0ZS5vcGVuID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgb3Blbk9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGxhYmVsLmlzT3B0aW9uID0gaXNPcHRpb247XHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjb2xsYXBzZU9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5jbGVhck1vZGFsRWRpdG9yKCk7IC8vc2hvdWxkIHdlIGNoZWNrIGlmIGl0IHdhc24ndCBzZXQgdG8gc29tZXRoaW5nIGVsc2U/P1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3Blbk9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSB0cnVlO1xyXG4gICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKG1vZGFsRHJvcGRvd24pO1xyXG4gICAgLy9yZXR1cm47XHJcbiAgICAvL2xhYmVsLmlzT3B0aW9uIHNlZW1zIG1vc3RseSByZWR1bmRhbnQuXHJcbiAgICAvL2xhYmVscyAmIGJhY2tzIHNob3VsZCBiZSBhZGRlZCB0byBhIGdyb3VwIHRvIGJlIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIFxyXG4gICAgLy9tYWtpbmcgZXZlcnl0aGluZyB2aXNpYmxlIC8gaW52aXNpYmxlIHdpdGggb25lIHByb3BlcnR5XHJcbiAgICAvLyhuYiwgZXZlbiB0aG91Z2ggdGhleSBhcmUgbm93IGluIGEgZ3JvdXAgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgd2Ugc3RpbGwgbmVlZCB0byBzZXQgdmlzaWJsZS4uLlxyXG4gICAgLy9zZWUgY29tbWVudCBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSlcclxuICAgIG9wdGlvbkxhYmVscy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWwgKXtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgbGFiZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgbGFiZWwuYmFjay52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAgYmFzZSBvcHRpb25cclxuICBjb25zdCBzZWxlY3RlZExhYmVsID0gY3JlYXRlT3B0aW9uKCBpbml0aWFsTGFiZWwgfHwgJyAnLCBmYWxzZSApO1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICBjb25zdCBkb3duQXJyb3cgPSBHcmFwaGljLmRvd25BcnJvdygpO1xyXG4gIC8vIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIERST1BET1dOX1dJRFRIIC0gMC4wNCwgMCwgZGVwdGggKiAxLjAxICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gY29uZmlndXJlTGFiZWxQb3NpdGlvbiggbGFiZWwsIGluZGV4ICl7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi55ID0gLURST1BET1dOX01BUkdJTiAtIChpbmRleCVNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTisxKSAqICggRFJPUERPV05fT1BUSU9OX0hFSUdIVCApO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueCArPSBEUk9QRE9XTl9XSURUSCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTik7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcHRpb25Ub0xhYmVsKCBvcHRpb25OYW1lLCBpbmRleCApe1xyXG4gICAgY29uc3Qgb3B0aW9uTGFiZWwgPSBjcmVhdGVPcHRpb24oIG9wdGlvbk5hbWUsIHRydWUgKTtcclxuICAgIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIG9wdGlvbkxhYmVsLCBpbmRleCApO1xyXG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQobW9kYWxEcm9wZG93bik7XHJcbiAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoLi4ub3B0aW9ucy5tYXAob3B0aW9uVG9MYWJlbCkpO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoIC4uLk9iamVjdC5rZXlzKG9wdGlvbnMpLm1hcCggb3B0aW9uVG9MYWJlbCApICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29sbGFwc2VPcHRpb25zKCk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0RST1BET1dOICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcblxyXG4gIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggRFJPUERPV05fV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgRFJPUERPV05fSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUsIERST1BET1dOX0RFUFRILCB0cnVlICk7XHJcbiAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBjb250cm9sbGVySUQsIHNlbGVjdGVkTGFiZWwsIGJvcmRlckJveCApO1xyXG5cclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGludGVyYWN0aW9uLCBpbmRleCApe1xyXG4gICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbkxhYmVsc1sgaW5kZXggXTtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlOyAvL2FzIG9mIHRoaXMgd3JpdGluZywgdGhpcyBpcyBiZWxpZXZlZCB0byBiZSByZWxpYWJsZSwgYnV0IGJld2FyZSBkcmFnb25zLCBmdXR1cmUgcmVhZGVyLlxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLnRpcE9iaikge1xyXG4gICAgICAvLyBpZiAobGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSkge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGdyb3VwLnVzZXJEYXRhLnRpcCk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgc2V0VmlzaWJpbGl0eShwYW5lbCwgZ3JvdXAudXNlckRhdGEudGlwT2JqLCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKTtcclxuICAgIH1cclxuICAgIGlmKCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpIHx8IHN0YXRlLm9wZW4gKXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuICBsZXQgb25DaG9vc2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5vbkNob29zZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaG9vc2VDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGZpbmRMYWJlbEZyb21Qcm9wKCkgKTtcclxuICAgIH1cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbEludGVyYWN0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICBjb25zdCBvYmogPSBncm91cDtcclxuICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgIC8vbmIsIG9iai5zcGFjaW5nIG1heSBiZSB1bmRlZmluZWQsIGJ1dCBzaG91bGQgbm93IGhhdmUgc2Vuc2libGUgZGVmYXVsdC5cclxuICAgIG9iai51c2VyRGF0YS50aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgIC8vLy8tLS0gc2VlIGxhYmVsSW50ZXJhY3Rpb25zWzBdIGFib3ZlIGZvciBoYW5kbGluZyB1cGRhdGUuLi5cclxuICB9XHJcbiAgZ3JvdXAuZ2V0VG9vbFRpcCA9ICgpID0+IGdyb3VwLnVzZXJEYXRhLnRpcDtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlVG9vbFRpcCB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciwgc2V0Qm94RnJvbU9iamVjdCwgc2V0VmlzaWJpbGl0eSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBGT0xERVJfV0lEVEggfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG4vL0lmIHlvdSdyZSBsb29raW5nIGZvciBtYWluIGNyZWF0ZUZvbGRlciBmdW5jdGlvbiwgaXQncyBmdXJ0aGVyIGJlbG93Li4uXHJcblxyXG4vKipcclxuICogTm90IGVudGlyZWx5IHN1cmUgYWJvdXQgc3RhcnRpbmcgdG8gYWRkIHRoaXMga2luZCBvZiBnbG9iYWwgc3RhdGUgbWFuYWFnZW1lbnQgaGVyZS4uLlxyXG4gKiBUaGlzIGlzIGZvciB6LW9yZGVyIGluIDJkIG9ydGhvZ3JhcGhpYyBtb2RlLCBhbmQgbWF5YmUgc29tZSBvdGhlciB0aGluZ3Mgb25lIGRheS5cclxuICovXHJcbmNvbnN0IHRvcEZvbGRlclN0YWNrID0gW107XHJcblxyXG5jb25zdCBzY3JhdGNoRm9sZGVyQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaENhbUJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hTaXplID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpIHtcclxuICBjb25zdCBjYW0gPSB0b3BGb2xkZXJTdGFja1swXS51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICBpZiAoIWNhbSB8fCB0b3BGb2xkZXJTdGFjay5sZW5ndGggPD0gMSkgcmV0dXJuO1xyXG4gIC8vY2FtQm94U2V0dXAoY2FtKTtcclxuICBjb25zdCB0ZnMgPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoeCA9PiB4LnZpc2libGUpO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRmcy5sZW5ndGg7XHJcbiAgY29uc3QgenMgPSB0ZnMubWFwKGYgPT4gZi5wb3NpdGlvbi56KS5zb3J0KChhLGIpPT5hLWIpO1xyXG4gIHpzWy0xXSA9IC05OTk5OyAvLyBJIHN1cHBvc2UgdGhpcyBpcyB0byBkZWFsIHdpdGggYWNjZXNzaW5nIHpzW2ktMV0gYmVsb3cgwq9cXF8o44OEKV8vwq9cclxuICB6cy5mb3JFYWNoKCAoeixpKSA9PiB6c1tpXSA9IE1hdGgubWF4KHpzW2ldLCB6c1tpLTFdICsgMTAqTGF5b3V0LlBBTkVMX0RFUFRIKSk7IC8vIGluIGNhc2Ugb2YgZXF1YWxzXHJcbiAgXHJcbiAgdGZzLmZvckVhY2goKGYsIGkpID0+IHtcclxuICAgIC8vbGV0IHogPSAtMC45KmZhciArIGkqMTAqTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG4gICAgY29uc3QgeiA9IHpzW2ldO1xyXG4gICAgaWYgKHogIT09IGYucG9zaXRpb24ueikge1xyXG4gICAgICBmLnBvc2l0aW9uLnogPSB6O1xyXG4gICAgICBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICBmLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKHRmc1tuLTFdLnBvc2l0aW9uLnogPj0gbmVhciAtIExheW91dC5QQU5FTF9ERVBUSCkge1xyXG4gICAgY29uc29sZS5sb2coXCJHVUlWUiBXYXJuaW5nOiBsaWtlbHkgcHJvYmxlbSB3aXRoIHotb3JkZXIgaW4gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0XCIpO1xyXG4gIH1cclxuICAvL2NvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lICsgJ1xcdDogJyArIGYucG9zaXRpb24ueikuam9pbignXFxuJyl9XWApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYW1Cb3hTZXR1cChjYW0pIHtcclxuICBpZiAoIWNhbS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkgcmV0dXJuO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRvcEZvbGRlclN0YWNrLmxlbmd0aDtcclxuICBjb25zdCBsID0gY2FtLmxlZnQsIHIgPSBjYW0ucmlnaHQsIHQgPSBjYW0udG9wLCBiID0gY2FtLmJvdHRvbTtcclxuICBjb25zdCB6ID0gY2FtLnBvc2l0aW9uLno7IC8vbm90IHN0cmljdGx5IHJpZ2h0Li4uXHJcbiAgc2NyYXRjaENhbUJveC5taW4uc2V0KGwsIGIsIC1mYXIgKyB6KTtcclxuICBzY3JhdGNoQ2FtQm94Lm1heC5zZXQociwgdCwgLW5lYXIgKyB6KTtcclxuICByZXR1cm4gc2NyYXRjaENhbUJveDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRm9sZGVyKHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBuYW1lLFxyXG4gIGd1aUFkZCxcclxuICBndWlSZW1vdmUsXHJcbiAgYWRkQ29udHJvbGxlckZ1bmNzLFxyXG4gIGdsb2JhbENvbnRyb2xsZXJzXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCB3aWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgY29uc3QgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEg7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgY29sbGFwc2VkOiBmYWxzZSxcclxuICAgIHByZXZpb3VzUGFyZW50OiB1bmRlZmluZWRcclxuICB9O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImZvbGRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke25hbWV9XWA7XHJcblxyXG4gIGNvbnN0IGNvbGxhcHNlR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5hZGQoIGNvbGxhcHNlR3JvdXAgKTtcclxuXHJcbiAgdmFyIGlzQWNjb3JkaW9uID0gZmFsc2U7XHJcbiAgLyoqIFdoZW4gdHJ1ZSwgd2lsbCBrZWVwIG9ubHkgb25lIGNoaWxkIGZvbGRlciBvZiB0aGlzIGZvbGRlciBvcGVuIGF0IGEgdGltZS5cclxuICAgKiBTaWJsaW5ncyBhdXRvbWF0aWNhbGx5IGNsb3NlLlxyXG4gICAqL1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdhY2NvcmRpb24nLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzQWNjb3JkaW9uO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKCBuZXdWYWx1ZSAmJiAhaXNBY2NvcmRpb24gKSBncm91cC5ndWlDaGlsZHJlbi5maWx0ZXIoIGM9PmMuaXNGb2xkZXIgKS5tYXAoIGM9PmMuY2xvc2UoKSApO1xyXG4gICAgICBpc0FjY29yZGlvbiA9IG5ld1ZhbHVlO1xyXG4gICAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIC8vZmxhZyB0aGUgbmVlZCBmb3IgcGVyZm9ybWluZyBsYXlvdXQgb2YgdGhlIGZvbGRlciBoaWVyYXJjaHkgaW4gd2hpY2ggdGhpcyBpcyBjb250YWluZWQuXHJcbiAgZ3JvdXAucmVxdWVzdExheW91dCA9ICgpID0+IHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICh0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcykge1xyXG4gICAgICBjb25zb2xlLmxvZyhgcmVxdWVzdGVkIGxheW91dCBvZiBmb2xkZXIgJHtncm91cC5mb2xkZXJOYW1lfSB3aGlsZSBsYXlvdXQgYWxyZWFkeSBpbiBwcm9ncmVzcy4uLmApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vdG9wRm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL3Nob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIGluZGV4LmpzIHVwZGF0ZSg/KSBmb3IgZWFjaCB0b3BGb2xkZXIsIHRoZW4gZnJvbSB3aXRoaW4gcGVyZm9ybUxheW91dCgpIGZvciBlYWNoIGNoaWxkIGZvbGRlclxyXG4gIGdyb3VwLnBlcmZvcm1MYXlvdXQgPSBwZXJmb3JtTGF5b3V0O1xyXG5cclxuICBjb25zdCBzdHJhaWdodFJvdGF0aW9uID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcclxuICAvL3Byb3ZpZGUgYXJndW1lbnRzIGZvciBob3cgY29uc3RyYWluZWQgdG8gYmUsIGFuZCByZS11c2Ugc2FtZSBmdW5jdGlvbiBib3RoIG9uIGRldGFjaCBhbmQgZWxzZXdoZXJlP1xyXG4gIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uID0gZnVuY3Rpb24odGhyZXNoPTAuMDEpIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzO1xyXG4gICAgaWYgKCFmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSByZXR1cm47XHJcbiAgICAvL2Fsd2F5cyBmb3JjZSByb3RhdGlvbiBzdHJhaWdodCBmb3J3YXJkLi4uXHJcbiAgICBmLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oc3RyYWlnaHRSb3RhdGlvbik7XHJcblxyXG4gICAgLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbiAgICAvL21heWJlIEkgY291bGQgdXNlIGEgQm94MiBhbnl3YXkgc2luY2UgM2QgbWlnaHQganVzdCBjb25mdXNlIHRoaW5ncy5cclxuICAgIGNvbnN0IGJveCA9IHNldEJveEZyb21PYmplY3Qoc2NyYXRjaEZvbGRlckJveCwgZik7XHJcbiAgICBjb25zdCBib3hXID0gYm94Lm1heC54IC0gYm94Lm1pbi54LCBib3hIID0gYm94Lm1heC55LWJveC5tYXgueTtcclxuICAgIFxyXG4gICAgY29uc3QgY2FtID0gZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICAgIGNvbnN0IGNhbUJveCA9IGNhbUJveFNldHVwKGNhbSk7IC8vYml0IHdhc3RlZnVsIHRvIGNhbGwgdGhpcyBoZXJlLCBidXQgaW5zaWduaWZpY2FudC5cclxuICAgIC8vcmVhbGx5LCBJIHdhbnQgdG8ga25vdyBpZiBpdCdzICdtb3N0bHknIGludmlzaWJsZS5cclxuICAgIC8vVXNpbmcgdHdvIGJveGVzLCByYXRoZXIgdGhhbiBmcnVzdHVtLnNldEZyb21NYXRyaXgoIG1hdC5tdWx0aXBseU1hdHJpY2VzKCBjYW0ucHJvamVjdGlvbk1hdHJpeCwgY2FtLm1hdHJpeFdvcmxkSW52ZXJzZSApICk7XHJcbiAgICAvLyhmcnVzdHVtIGlzIHVubmVjZXNzYXJ5ICpjb3VnaCppZiB3ZSBhc3N1bWUgb3J0aG9ncmFwaGljIHBlcnNwZWN0aXZlLCBubyBjYW1lcmEgdHJhbnNmb3JtICYgYXJlIGdlbmVyYWxseSBsYXggYWJvdXQgeiopXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSBib3guaW50ZXJzZWN0KGNhbUJveCk7IC8vY2FyZWZ1bCBvZiBvcmRlcjsgaW50ZXJzZWN0KCkgbXV0YXRlc1xyXG4gICAgLy8oWFhYOiBzdHJpY3RseSBzcGVha2luZywgaWRlYWxseSBJIHdvdWxkIHRha2UgY2FtZXJhIG1hdHJpeFdvcmxkIGludG8gYWNjb3VudCBpZiBJIHdhbnQgdG8gYmUgcHJvcGVyKVxyXG4gICAgLy8obWlnaHQganVzdCBtYWtlIGxvZyBhIHdhcm5pbmcgaWYgaXQncyBzZXQgaG93IEkgZG9uJ3QgZXhwZWN0IGl0LCBidXQgcHJlZmVyIG5vdCB0byBsZWF2ZSB0cmFwcy4pXHJcbiAgICBcclxuICAgIC8vbG9vayBhdCBkaW1lbnNpb25zIG9mIGludGVyc2VjdGlvbiBhbmQgZm9yY2UgaW53YXJkcyBpZiBuZWNlc3NhcnkuLi5cclxuICAgIGNvbnN0IGludGVyc2VjdGlvblNpemUgPSBpbnRlcnNlY3Rpb24uZ2V0U2l6ZShzY3JhdGNoU2l6ZSk7XHJcbiAgICBjb25zdCBzY3JlZW5XID0gY2FtLnJpZ2h0IC0gY2FtLmxlZnQsIHNjcmVlbkggPSBjYW0udG9wIC0gY2FtLmJvdHRvbTtcclxuICAgIC8vd29yayBpbiB1bml0cyBhcyBmcmFjdGlvbiBvZiBib3ggd2lkdGggKGFsdGhvdWdoIHRoYXQncyBub3QgYSBncmVhdCBpZGVhIHdpdGggbXVsdGktY29sdW1uIGZvbGRlcnMpXHJcbiAgICBpbnRlcnNlY3Rpb25TaXplLnggLz0gYm94VzsgaW50ZXJzZWN0aW9uU2l6ZS55IC89IGJveFc7XHJcbiAgICBsZXQgbmVlZHNVcGRhdGUgPSBmYWxzZTtcclxuICAgIC8vY29uc29sZS5sb2coYCR7Zi5mb2xkZXJOYW1lfTogJHtKU09OLnN0cmluZ2lmeShpbnRlcnNlY3Rpb25TaXplKX0sIHRocmVzaDogJHt0aHJlc2h9YCk7XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS54IDwgdGhyZXNoKSB7IC8vVE9ETzogcGFyYW1hdGVyaXNlIC8gbm9uLW1hZ2ljLW51bWJlclxyXG4gICAgICAvL1RPRE8gd29yayBvdXQgd2hpY2ggc2lkZSB3ZSdyZSBvbiwgbW92ZSBieSBvYmplY3Qgd2lkdGguLi5cclxuICAgICAgZi5wb3NpdGlvbi54ID0gY2FtLmxlZnQgKyBzY3JlZW5XLzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnkgPCB0aHJlc2gpIHtcclxuICAgICAgZi5wb3NpdGlvbi55ID0gY2FtLmJvdHRvbSArIHNjcmVlbkgvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKG5lZWRzVXBkYXRlKSBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaXNDb2xsYXBzZWQgPSAoKSA9PiB7IHJldHVybiBzdGF0ZS5jb2xsYXBzZWQgfVxyXG4gIFxyXG4gIC8vdXNlZnVsIHRvIGhhdmUgYWNjZXNzIHRvIHRoaXMgYXMgd2VsbC4gVXNpbmcgaW4gcmVtb3ZlIGltcGxlbWVudGF0aW9uXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnZ3VpQ2hpbGRyZW4nLCB7XHJcbiAgICAvL3BlcmhhcHMgbW9kYWxFZGl0b3Igc2hvdWxkIGFsc28gY291bnQgYXMgYSBtZW1iZXIgb2YgdGhpcy4uLlxyXG4gICAgLy9jdXJyZW50bHkgY2FuJ3Qgc2VlIGFueXRoaW5nIGluIGltcGxlbWVudGF0aW9uIHRoYXQgd291bGQgcmVxdWlyZSB0aGF0XHJcbiAgICAvLy0tIGFkZGluZyBoZWFkZXJJdGVtcyB0aG91Z2gsIHNvIHRoZXknbGwgZ2V0IHBpY2tlZCB1cCBieSByZW1vdmUoKVxyXG4gICAgLy8gLSBtYXliZSBzYW1lIHNob3VsZCBhcHBseSB0byBtb2RhbEVkaXRvclxyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBbIC4uLmNvbGxhcHNlR3JvdXAuY2hpbGRyZW4sIC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIF0gfVxyXG4gIH0pO1xyXG4gIC8vIHJldHVybnMgdHJ1ZSBpZiBhbGwgb2YgdGhlIHN1cHBsaWVkIGFyZ3MgYXJlIG1lbWJlcnMgb2YgdGhpcyBmb2xkZXJcclxuICBncm91cC5oYXNDaGlsZCA9IGZ1bmN0aW9uICggLi4uYXJncyApe1xyXG4gICAgcmV0dXJuICFhcmdzLmluY2x1ZGVzKChvYmopID0+IHsgcmV0dXJuIGdyb3VwLmd1aUNoaWxkcmVuLmluZGV4T2Yob2JqKSA9PT0gLTF9KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmZvbGRlck5hbWUgPSBuYW1lOyAvL2ZvciBkZWJ1Z2dpbmdcclxuICBcclxuICAvLyAgWWVhaC4gR3Jvc3MuXHJcbiAgY29uc3QgYWRkT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkO1xyXG4gIC8vYXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyB0aGlzIHRvIGJlaGF2ZSBsaWtlIGEgcmVndWxhciBUSFJFRS5Hcm91cCwgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBvZiByZW1vdmUgc2hvdWxkbid0IGh1cnRcclxuICBjb25zdCByZW1vdmVPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmU7IFxyXG5cclxuICBmdW5jdGlvbiBhZGRJbXBsKCBvICl7XHJcbiAgICAvLyBJIGNvdWxkIGNoYW5nZSB0aGlzIGZ1bmN0aW9uIGFzIHBhcnQgb2YgYSByZWZhY3RvciB0byBwbGFjZSBldmVyeXRoaW5nIGF0IHRvcEZvbGRlciBsZXZlbC4uLlxyXG4gICAgLy8gaXMgdGhhdCBhIGdvb2QgaWRlYSwgb3IgYSBiYWQgaWRlYT9cclxuICAgIGFkZE9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHJlbW92ZUltcGwoIG8gKXtcclxuICAgIHJlbW92ZU9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG5cclxuICAvL2FkZEltcGwoIGNvbGxhcHNlR3JvdXAgKTsgLy9yZWR1bmRhbnQuXHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgYWRkSW1wbCggcGFuZWwgKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBuYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAxLjU7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsICk7XHJcblxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IExheW91dC5jcmVhdGVEb3duQXJyb3coKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCAweGZmZmZmZiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIDAuMDUsIDAsIGRlcHRoICAqIDEuMDEgKTtcclxuICBwYW5lbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuICBjb25zdCBncmFiYmVyID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9HUkFCX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBncmFiYmVyLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODY7IC8vWFhYOiBtYWdpYyBudW1iZXJcclxuICBncmFiYmVyLm5hbWUgPSAnZ3JhYmJlcic7XHJcbiAgYWRkSW1wbCggZ3JhYmJlciApO1xyXG5cclxuICBjb25zdCBncmFiQmFyID0gR3JhcGhpYy5ncmFiQmFyKCk7XHJcbiAgZ3JhYkJhci5wb3NpdGlvbi5zZXQoIHdpZHRoICogMC41LCAwLCBkZXB0aCAqIDEuMDAxICk7XHJcbiAgZ3JhYmJlci5hZGQoIGdyYWJCYXIgKTtcclxuICBncm91cC5pc0ZvbGRlciA9IHRydWU7XHJcbiAgZ3JvdXAuaGlkZUdyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gZmFsc2UgfTtcclxuICBncm91cC5zaG93R3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSB0cnVlIH07XHJcbiAgZ3JvdXAuaGlkZUhlYWRlciA9IGZ1bmN0aW9uKCkgeyBcclxuICAgIGdyb3VwLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAvL2Rlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgfTtcclxuICBncm91cC5zaG93SGVhZGVyID0gKCkgPT4ge1xyXG4gICAgLy9ncmFiYmVyLnZpc2libGUgPSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL1RPRE86IGludGVyZmFjZSBmb3IgYWRkaW5nIHRoaW5ncyB0byB0aGlzLi4uIE5PVCAnc2hvd0luRm9sZGVySGVhZGVyJyBtZXRob2QgLyBwcm9wZXJ0eSBvbiBsaW5lYXIgaXRlbXMuLi5cclxuICBjb25zdCBoZWFkZXJJdGVtcyA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHBhbmVsLmFkZChoZWFkZXJJdGVtcyk7XHJcbiAgLy90aGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byBtYWtlIG9iaiBiZWhhdmUgYXMgY29udHJvbGxlciBsYXllZCBvdXQgaW4gaGVhZGVySXRlbXMsXHJcbiAgLy9iYXNlZCBvbiBzb21lIGFzc3VtcHRpb25zIGFib3V0IG9iaiB0aGF0IG1heSBiZSB0cnVlIGF0IHRpbWUgb2Ygd3JpdGluZy4uLlxyXG4gIC8vYnV0IGFyZSBwZW5kaW5nIG1vcmUgcmlnb3JvdXMgc3BlY2lmaWNhdGlvbiAvIHJlZmFjdG9yaW5nIGV0Yy5cclxuICBncm91cC5hZGRIZWFkZXJJdGVtID0gZnVuY3Rpb24ob2JqKXtcclxuICAgIGhlYWRlckl0ZW1zLmFkZChvYmopO1xyXG4gICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgb2JqLmlzSGVhZGVyT2JqZWN0ID0gdHJ1ZTtcclxuXHJcbiAgICAvL2Fsc28gbmVlZCB0byBhZGQgdG8gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3QgZXRjLiBOQjo6IG1ha2Ugc3VyZSB0aGF0IHRoZXkgd2lsbCBnZXQgcmVtb3ZlZCBhcyB3ZWxsXHJcbiAgICAvLy0tLSB0aGlzIGdlbmVyaWMgaW50ZXJhY3Rpb24udXBkYXRlIGRvZXNuJ3QgbWFrZSBsaXN0ZW4oKSB3b3JrIHByb3Blcmx5LlxyXG4gICAgaWYgKCFvYmoudXBkYXRlQ29udHJvbCkgb2JqLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4gb2JqLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgb2JqLmhpdHNjYW4gPSBbIG9iaiBdOyAvL2hhY2t5IGhhY2t5XHJcbiAgICBnbG9iYWxDb250cm9sbGVycy5wdXNoKG9iaik7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogMHg4ODg4ODgsIHRyYW5zcGFyZW50OiB0cnVlfSk7XHJcbiAgY29uc3QgaCA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44O1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvblJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIGgsIGgsIExheW91dC5CVVRUT05fREVQVEgqMiApO1xyXG4gIC8vc29tZXdoYXQgYmFja3dhcmRzIHdheSBvZiBnZXR0aW5nIHRleHR1cmVzLi4uIFRPRE8gbWF5YmUgY2hhbmdlIChhbG9uZyB3aXRoIG90aGVyIHN0eWxlIGNvbnNpc3RlbmN5IHR5cGUgc3R1ZmYpXHJcbiAgY29uc3QgZG9ja1RleHR1cmUgPSBHcmFwaGljLmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgY29uc3QgdW5kb2NrVGV4dHVyZSA9IEdyYXBoaWMudW5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uID0gbmV3IFRIUkVFLk1lc2goICBkZXRhY2hCdXR0b25SZWN0LCBkZXRhY2hCdXR0b25NYXRlcmlhbCApO1xyXG4gIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gZmFsc2U7XHJcbiAgZGV0YWNoQnV0dG9uLnBvc2l0aW9uLnggPSBMYXlvdXQuRk9MREVSX1dJRFRIIC0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihkZXRhY2hCdXR0b24pO1xyXG4gIGRldGFjaEJ1dHRvbi5pbnRlcmFjdGlvbiA9IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uO1xyXG4gIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHtcclxuICAgICAgZ3JvdXAucmVhdHRhY2goKTtcclxuICAgIH0gZWxzZSBncm91cC5kZXRhY2goKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuICAvL2hlYWRlckl0ZW1zLmFkZChkZXRhY2hCdXR0b24pO1xyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0oZGV0YWNoQnV0dG9uKTtcclxuXHJcbiAgbGV0IGlzRGV0YWNoYWJsZSA9IGZhbHNlO1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdkZXRhY2hhYmxlJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0RldGFjaGFibGU7XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAobmV3VmFsdWUgPT09IGlzRGV0YWNoYWJsZSkgcmV0dXJuO1xyXG4gICAgICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgICBpc0RldGFjaGFibGUgPSBuZXdWYWx1ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGdyb3VwLmFkZCA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBjb25zdCBuZXdDb250cm9sbGVyID0gZ3VpQWRkKCAuLi5hcmdzICk7XHJcblxyXG4gICAgaWYoIG5ld0NvbnRyb2xsZXIgKXtcclxuICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggbmV3Q29udHJvbGxlciApO1xyXG4gICAgICByZXR1cm4gbmV3Q29udHJvbGxlcjtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgU29tZSBjb250cm9sbGVycyBtYXkgYnJpbmcgdXAgc3ViLUdVSXMgd2hpY2ggaGF2ZSB0aGUgcG90ZW50aWFsXHJcbiAgICB0byBvdmVybGFwIC8gY2xhc2guICBUaGlzIGVuc3VyZXMgb25seSBvbmUgaXMgcHJlc2VudCBhdCBhIHRpbWUuXHJcbiAgKi9cclxuICBncm91cC5zZXRNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKGUpe1xyXG4gICAgLy9UaGlzIGNvdWxkIGdvIHdyb25nIGlmIGZvbGRlciBoaWVyYXJjaHkgY2hhbmdlcyBzaWduaWZpY2FudGx5LlxyXG4gICAgLy9TaG91bGQgYmUgZ29vZCBlbm91Z2ggZm9yIHJvY2snbidyb2xsIChmYW1vdXMgbGFzdCB3b3JkcykuXHJcbiAgICAvL0kgY291bGQgbWFrZSBpdCBzbyB0aGF0IG9ubHkgb25lIG9mIHRoZXNlIHRoaW5ncyB3YXMgZXZlciB2aXNpYmxlXHJcbiAgICAvL2Fjcm9zcyB0aGUgZW50aXJlIHN5c3RlbS4gIFRoYXQgc2hvdWxkIGJlIGVhc2llciB0byBtYWtlIHJvYnVzdCwgYW55d2F5Li4uXHJcbiAgICAvL2FuZCBzYXZlcyBoZWFkYWNoZXMgZG93biB0aGUgbGluZS5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBlO1xyXG4gICAgaWYgKCFlKSByZXR1cm47XHJcbiAgICBlLnZpc2libGUgPSB0cnVlO1xyXG4gICAgaWYgKGUucGVyZm9ybUxheW91dCkgZS5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICBmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IHRydWU7XHJcbiAgICAvL2FkZCBhIGZsYWcgdG8gYWxsIGNoaWxkcmVuIHJlY3Vyc2l2ZWx5IHNvIHRoYXQgaW50ZXJhY3Rpb24gc3lzdGVtIGNhbiBpZGVudGlmeSB0aGVtIGFzIGJlbG9uZ2luZyB0byBhIG1vZGFsIGVkaXRvclxyXG4gICAgLy9UT0RPOiBza2lwIGlmIGFscmVhZHkgZG9uZS4uLlxyXG4gICAgZnVuY3Rpb24gZGVjb3JhdGVDaGlsZHJlbihwYXJlbnQpIHtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgYy51c2VyRGF0YS5wYXJ0T2ZNb2RhbCA9IGU7XHJcbiAgICAgICAgZGVjb3JhdGVDaGlsZHJlbihjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkZWNvcmF0ZUNoaWxkcmVuKGUpO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIGN1cnJlbnQgbW9kYWwgZWRpdG9yIGZyb20gdGhpcyBmb2xkZXJcclxuICAgKiAqKmJ1dCBub3QgaWYgaXQgd2FzIGFkZGVkIGR1cmluZyB0aGUgY3VycmVudCBjb250cm9sbGVyIHVwZGF0ZSxcclxuICAgKiBhcyBpbmRpY2F0ZWQgYnkgYSBmbGFnIHNldCBpbiBzZXRNb2RhbENvbnRyb2xsZXIgYW5kIHJlc2V0IGluIGluZGV4LmpzIHVwZGF0ZSoqXHJcbiAgICovXHJcbiAgZ3JvdXAuY2xlYXJNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKCFmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAvL2ZvbGRlci5zZXRNb2RhbEVkaXRvcihudWxsKTtcclxuICAgICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikge1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG5cclxuICAvKiBcclxuICBSZW1vdmVzIHRoZSBnaXZlbiBjb250cm9sbGVycyBmcm9tIHRoZSBHVUkuICA+Pj5PbmNlIHJlbW92ZWQsIHRoZSBjb250cm9sbGVycyB3aWxsIGVmZmVjdGl2ZWx5IGJlIGludmFsaWQgZm9yIHVzZTw8PFxyXG4gID4+PiBzbyBkaXNwb3NlIG9mIHRoZW0gYXMgd2VsbD8gTmVlZCB0byBiZSBjYXJlZnVsIGFib3V0IHRleHR1cmVzIC8gYW55dGhpbmcgc2hhcmVkLi4uIDw8PFxyXG4gIGFzIHRoZXkgd2lsbCBhbHNvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGRhdC5HVUlWUiBjb250cm9sbGVycy4gIFVzZSAnZGV0YWNoJyBpbnN0ZWFkIGlmIGl0IGlzXHJcbiAgZGVzaXJlZCB0byByZXVzZSBHVUkgZWxlbWVudHMgZWxzZXdoZXJlLlxyXG5cclxuICBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbnZhbGlkLCBpdCB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoaXMgYmVmb3JlIG1ha2luZyBhbnkgY2hhbmdlcywgXHJcbiAgYWJvcnRpbmcgdGhlIHByb2Nlc3MgYW5kIHJldHVybmluZyBmYWxzZSBmcm9tIHRoaXMgbWV0aG9kLlxyXG5cclxuICBOb3RlOiBhcyB3aXRoIGFkZCwgdGhpcyBvdmVyd3JpdGVzIGFuIGV4aXN0aW5nIHByb3BlcnR5IG9mIFRIUkVFLkdyb3VwLlxyXG4gIEFzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgZm9sZGVycyB0byBiZWhhdmUgbGlrZSByZWd1bGFyIFRIUkVFLkdyb3VwcywgdGhhdCBzaG91bGRuJ3QgbWF0dGVyLlxyXG4gICovXHJcbiAgZ3JvdXAucmVtb3ZlID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIC8vZ3VpUmVtb3ZlIGlzIHBhc3NlZCBpbiBmcm9tIGluZGV4LmpzIGFuZCBpcyByZXNwb25zaWJsZSBmb3Igc2FuaXR5IGNoZWNraW5nICYgcmVtb3ZpbmcgZnJvbSBnbG9iYWwgY29udHJvbGxlcnMgbGlzdFxyXG4gICAgY29uc3Qgb2sgPSBndWlSZW1vdmUoIC4uLmFyZ3MgKTsgLy8gYW55IGludmFsaWQgYXJndW1lbnRzIHNob3VsZCBjYXVzZSB0aGlzIHRvIHJldHVybiBmYWxzZSB3aXRoIG5vIHNpZGUtZWZmZWN0c1xyXG4gICAgaWYgKCFvaykgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGNvbnNvbGUuYXNzZXJ0KGdyb3VwLmhhc0NoaWxkKG9iaiksIFwiaW50ZXJuYWwgcHJvYmxlbSB3aXRoIGhvdXNla2VlcGluZyBsb2dpYyBvZiBkYXQuR1VJVlIgZm9sZGVyIG5vdCBjYXVnaHQgYnkgc2FuaXR5IGNoZWNrXCIpO1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgb2JqLnJlbW92ZSggLi4ub2JqLmd1aUNoaWxkcmVuICk7XHJcbiAgICAgIH1cclxuICAgICAgY29sbGFwc2VHcm91cC5yZW1vdmUob2JqKTtcclxuICAgIH0pO1xyXG4gICAgLy9UT0RPOiBkZWZlciBhY3R1YWwgbGF5b3V0IHBlcmZvcm1hbmNlOyBzZXQgYSBmbGFnIGFuZCBtYWtlIHN1cmUgaXQgZ2V0cyBkb25lIGJlZm9yZSBhbnkgcmVuZGVyaW5nIG9yIGhpdC10ZXN0aW5nIGhhcHBlbnMuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL3JhdGhlciB0aGFuIG1ldGhvZCwgZGV0YWNoZWRQYXJlbnQgYmUgYSBwcm9wZXJ0eSB0aGF0IGRvZXMgdGhpcyBzdHVmZiBpbiBzZXR0ZXIuLi5cclxuICAvL2FueXdheSwgYm90aCBhcmUgcmVhbGx5IG1lYW50IGZvciBpbnRlcm5hbCB1c2UsIGFzIGhpbnRlZCBieSBfIGluIG5hbWUuXHJcbiAgZ3JvdXAuX3NldERldGFjaGVkRnJvbSA9IChwYXJlbnQpID0+IHtcclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50ID0gcGFyZW50O1xyXG4gICAgaWYgKHBhcmVudCA9PT0gbnVsbCkge1xyXG4gICAgICBkZXRhY2hCdXR0b24ubWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IGRvY2tUZXh0dXJlO1xyXG4gICAgICBncm91cC5zaG93SGVhZGVyKCk7XHJcbiAgICAgIGdyb3VwLnNob3dHcmFiYmVyKCk7XHJcbiAgICAgIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBEZXRhY2ggYSBjaGlsZCBmb2xkZXIgZnJvbSB0aGlzIGZvbGRlciBoaWVyYXJjaHksIHN1Y2ggdGhhdCBpdCBjYW4gYmUgdXNlZCBlbHNld2hlcmUgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqIFxyXG4gICAqICh3aWxsIG5vdCBiZSB2aXNpYmxlIHVudGlsIGV4cGxpY2l0bHkgYWRkZWQgZWxzZXdoZXJlOyBcclxuICAgKiBjYWxsaW5nIGRldGFjaCgpIGluc3RlYWQgd2lsbCBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGFuZCBpcyBtb3JlIGludGVuZGVkIGZvciB1c2UgaW4gYXBwbGljYXRpb24gY29kZVxyXG4gICAqIHdoaWxlIHRoaXMgbWV0aG9kIGlzIG1vcmUgb2YgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLilcclxuICAgKi9cclxuICBncm91cC5kZXRhY2hDaGlsZCA9IChjaGlsZCkgPT4ge1xyXG4gICAgaWYgKCFjaGlsZC5pc0ZvbGRlciB8fCBjaGlsZC5mb2xkZXIgIT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjaGlsZC5fc2V0RGV0YWNoZWRGcm9tKGdyb3VwKTtcclxuICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKGNoaWxkKTtcclxuICAgIC8vVEhSRUUuT2JqZWN0M0QucHJvdG90eXBlLnJlbW92ZS5jYWxsKGdyb3VwLCBjaGlsZCk7XHJcbiAgICByZW1vdmVJbXBsKGNoaWxkKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDsgLy9vciBjaGlsZD9cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgRGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gaXRzIHBhcmVudCwgYW5kIHJlYXR0YWNoIHRvIHNjZW5lZ3JhcGggYXMgYSBzaWJsaW5nIG9mIHRoZSAndG9wIGxldmVsJyBmb2xkZXIgaW5cclxuICAgIHRoZSBoaWVyYXJjaHkgdGhpcyBwcmV2aW91c2x5IHdhcyBhIG1lbWJlciBvZi5cclxuICAqL1xyXG4gIGdyb3VwLmRldGFjaCA9ICgpID0+IHtcclxuICAgIGlmIChncm91cC5mb2xkZXIgPT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL2F1dG9tYXRpY2FsbHkgYWRkIHRvIFRIUkVFIHBhcmVudCBvZiB0b3AgbGV2ZWwgZm9sZGVyIGFuZCB0cnkgdG8gc2V0IGFwcHJvcHJpYXRlIHNjYWxlIC8gdHJhbnNmb3JtLi4uXHJcbiAgICAvL2lmIHRoYXQgZm9sZGVyIGJlaW5nTW92ZWQgYXQgdGhlIHByZXNlbnQgdGltZSwgdGhlbiBpdCB3aWxsIGhhdmUgYW4gb2xkUGFyZW50IHRvIHdoaWNoIHdlIHNob3VsZCBhdHRhY2ggaW5zdGVhZC5cclxuICAgIC8vLi4uYWx0aG91Z2ggaXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0aGUgZGV0YWNoZWQgZm9sZGVyIHRvIG1vdmUgd2l0aCB0aGUgY29udHJvbGxlciB1bnRpbCBidXR0b24gaXMgcmVsZWFzZWQuLi5cclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGdyb3VwLmZvbGRlci5kZXRhY2hDaGlsZChncm91cCk7XHJcbiAgICBcclxuICAgIC8vYWRkaW5nIHRvIHRvcEZvbGRlci5wYXJlbnQgSUYgQVZBSUxBQkxFLCBub3Qgb2xkUGFyZW50LCBwZW5kaW5nIHdvcmtpbmcgb3V0IHRyYW5zZm9ybSBsYXRlciBpZiBiZWluZ01vdmVkLi4uXHJcbiAgICBjb25zdCBwYXIgPSB0b3BGb2xkZXIucGFyZW50IHx8IGdyb3VwLnBhcmVudDsgXHJcbiAgICBpZiAoIXBhcikgcmV0dXJuOyAvL1NKUFQgY2hhbmdlIGZyb20gQ1N5bnRoLCBub3QgY2FyZWZ1bGx5IHJldmlld2VkIGJ1dCBwcm9iYWJseSByaWdodC5cclxuICAgIHBhci5hZGQoZ3JvdXApO1xyXG4gICAgY29uc3QgbSA9IHRvcEZvbGRlci5tYXRyaXguY2xvbmUoKTtcclxuXHJcbiAgICBncm91cC5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBtLnNldFBvc2l0aW9uKG5ldyBUSFJFRS5WZWN0b3IzKCkpO1xyXG4gICAgY29uc3QgdCA9IG5ldyBUSFJFRS5WZWN0b3IzKExheW91dC5GT0xERVJfV0lEVEgsIDAsIDApLmFwcGx5TWF0cml4NChtKTtcclxuICAgIGdyb3VwLnBvc2l0aW9uLmFkZCh0KTtcclxuICAgIFxyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vZGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gdG9wRm9sZGVyLnBhcmVudCB0aGVuIGF0dGFjaCB0byB0b3BGb2xkZXIub2xkUGFyZW50IHdoaWxlIG1haW50YWluaW5nIG1hdHJpeFdvcmxkXHJcbiAgICAgIC8vLi4uYWN0dWFsbHksIChtYXliZSkgd2Ugd2FudCB0byBkbyB0aGlzIHNjZW5lU2hpZnQgYnVzaW5lc3Mgd2hlbiBiZWluZ01vdmVkIGZpbmlzaGVzLi4uXHJcbiAgICAgIC8vIHB1dCB0aGluZ3MgaW50byBzZW1pRGV0YWNoZWQsIHNvIHRoYXQgd2hlbiBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgdGhleSBjYW4gYmUgc2hpZnRlZC5cclxuICAgICAgLy9vciBtYXliZSB3aGF0IHdlIHJlYWxseSB3YW50IGlzIHRvIGhhdmUgYW4gb3B0aW9uIHRvICdwaW4nIHBhbmVscyB0b2dldGhlciBhbmQgdW5waW4gdGhlbSwgcmF0aGVyIHRoYW4gYXNzdW1lXHJcbiAgICAgIC8vYXR0YWNobWVudCBjaGFuZ2VzIHdoZW4gYnV0dG9uIHJlbGVhc2VkLiAgRm9yIG5vdywgdGhpcyBpcyBub3QgcXVpdGUgd29ya2luZyByaWdodCwgc28uLi5cclxuICAgICAgY29uc3QgZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vd2UgY291bGQganVzdCBkZXRhY2gsIGxlYXZpbmcgdGhlIG9iamVjdCBhcyBkaXJlY3QgZGVzY2VuZGVudCBvZiBzY2VuZSwgYnV0IHRoZXJlIG1heSBiZSByZWFsIHJlYXNvbnMgdG8gc2l0dWF0ZVxyXG4gICAgICAvL3RoZSBHVUkgd2l0aGluIGhpZXJhcmNoeSBzb21laG93IChsaWtlIGFzIGNoaWxkcmVuIG9mIGEgY29udHJvbGxlcilcclxuICAgICAgXHJcbiAgICAgIGlmIChkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZykge1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLm9sZFBhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7Ly9YWFg6IGhhY2sgYmVjYXVzZSB0b3BGb2xkZXIub2xkUGFyZW50IHdhcyBiZWluZyB1bmRlZmluZWQgYmVmb3JlIGJlaW5nTW92ZWQgPSBmYWxzZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkID0gZ3JvdXA7XHJcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gdG9wRm9sZGVyLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgXHJcbiAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBcclxuICAgIGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gdG9wRm9sZGVyLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljOyAvL1RPRE86IHJldmlzZSBob3cgdG8gcGFzcyB0aGlzIGluZm9cclxuICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKDAuNSk7XHJcbiAgICBncm91cC5vcGVuKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgLy9hbGEgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNleGFtcGxlcy91dGlscy9TY2VuZVV0aWxzXHJcbiAgZnVuY3Rpb24gc2NlbmVEZXRhY2goY2hpbGQsIHBhcmVudCwgc2NlbmUpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KHBhcmVudC5tYXRyaXhXb3JsZCk7XHJcbiAgICBwYXJlbnQucmVtb3ZlKGNoaWxkKTtcclxuICAgIHNjZW5lLmFkZChjaGlsZClcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBwYXJlbnQpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLmdldEludmVyc2UocGFyZW50Lm1hdHJpeFdvcmxkKSApO1xyXG5cdFx0c2NlbmUucmVtb3ZlKGNoaWxkKTtcclxuXHRcdHBhcmVudC5hZGQoY2hpbGQpOyAgIFxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCkge1xyXG4gICAgbGV0IG5vZGUgPSBvbGRQYXJlbnQ7XHJcbiAgICB3aGlsZSAobm9kZS5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIGNvbnN0IHNjZW5lID0gbm9kZTtcclxuICAgIFxyXG4gICAgc2NlbmVEZXRhY2goY2hpbGQsIG9sZFBhcmVudCwgc2NlbmUpO1xyXG4gICAgc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBuZXdQYXJlbnQpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZGV0YWNoRnJvbVBhcmVudCA9IGdyb3VwLmRldGFjaDtcclxuICBcclxuICBncm91cC5yZWF0dGFjaCA9ICgpID0+IHtcclxuICAgIGlmICghZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0IHdpdGggdmFyaW91cyBjb21iaW5hdGlvbnMgb2Ygd3JhcHBpbmcgZXRjLlxyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQuYWRkRm9sZGVyKGdyb3VwKTsgLy8gdGhpcyB3aWxsIGFsc28gZGVhbCB3aXRoIGNvc21ldGljcyAoaGlkZUdyYWJiZXIgZXRjKVxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpO1xyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vbWF5YmUgd2UgY291bGQgZG8gdGhpcyBraW5kIG9mIHN0dWZmIGluIF9zZXREZXRhY2hlZEZyb21cclxuICAgICAgLy9pbiBhbnkgY2FzZSwgaXQncyBpcnJlbGV2YW50IGlmIFxyXG4gICAgICBsZXQgc2VtaXMgPSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHNlbWlzLmluZGV4T2YoZ3JvdXApO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgLy9ncm91cC5kZXRhY2hlZFBhcmVudCA9IG51bGw7XHJcbiAgICBncm91cC5fc2V0RGV0YWNoZWRGcm9tKG51bGwpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBncm91cC5hZGRDb250cm9sbGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgZ3JvdXAuYWRkRm9sZGVyKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgfVxyXG4gICAgICAvL1hYWDogaGFja2luZyBpbiBzb21lIHVuaXZlcnNhbCB0b29sdGlwIHN1cHBvcnRcclxuICAgICAgaWYgKG9iai5zZXRUb29sVGlwKSByZXR1cm47IC8vYnV0IG5vdCBpZiBhIG1vcmUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gYWxyZWFkeSBleGlzdHMgKHNlZSBkcm9wZG93bi4uLilcclxuICAgICAgb2JqLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAgICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAgICAgY29uc3QgdGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IHRpcE9iajtcclxuICAgICAgICAvL2Fzc29jaWF0ZSBldmVudCB3aXRoIGhvdmVyIG9uIGFwcHJvcHJpYXRlIGhpdHNjYW4uLi5cclxuXHJcbiAgICAgICAgaWYgKG9iai5pbnRlcmFjdGlvbikge1xyXG4gICAgICAgICAgLy9UT0RPOiBldmVudHMub2ZmKCkgaWYgcmVwbGFjaW5nIG9sZCB0b29sdGlwIChvciBub3QgcmVwZWF0aW5nIG9uKCkpLlxyXG4gICAgICAgICAgb2JqLmludGVyYWN0aW9uLmV2ZW50cy5vbigndGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgLy9kb24ndCBqdXN0IHNldCB2aXNpYmlsaXR5OyBhZGQvcmVtb3ZlIGFzIHRoZXNlIGFyZSBraWxsaW5nIGZyYW1lcmF0ZSBpbiBsYXJnZSBWUiBndWlzLlxyXG4gICAgICAgICAgICAvL1JFVklFVy4uLiBjb25zaWRlcmluZyBtYWtpbmcgdG9vbHRpcHMgd29yayB3aGVuIGhvdmVyaW5nIG9uIGxhYmVsIGFzIHdlbGwsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBvZiBjb3Vyc2UgdGhpcyB3b3VsZCBtZWFuIGNoYW5naW5nIG1vcmUgYWJvdXQgdGhlIGludGVyYWN0aW9uIHNldHVwLFxyXG4gICAgICAgICAgICAvLyBhbmQgaGF2aW5nIG1vcmUgb2JqZWN0cyB0byB0ZXN0IGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgICAgICAgICAgLy8gTGVhdmluZyBmb3Igbm93LCBpZiB3b3JraW5nIG1vcmUgb24gdGhlIGxpYnJhcnksIGhvcGVmdWxseSBmaXggaG92ZXIgZXZlbnQgZXRjLlxyXG4gICAgICAgICAgICBpZiAob2JqLnZpc2libGUpIHNldFZpc2liaWxpdHkob2JqLCB0aXBPYmosIG9iai5pbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBjYW4ndCBjcmVhdGUgdG9vbHRpcCBmb3IgJHtvYmouZ3VpVHlwZX0gYmVjYXVzZSB0aGVyZSdzIG5vIG9iai5pbnRlcmFjdGlvbiBwcm9wZXJ0eS4uLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgb2JqLmdldFRvb2xUaXAgPSAoKSA9PiBvYmoudXNlckRhdGEudGlwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmFkZEZvbGRlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uIChvYmopIHtcclxuICAgICAgLy9UT0RPIGlmIG9iaiBpcyBzdHJpbmcsIG1ha2UgYSBuZXcgZ3VpIGFuZCBhZGQgLyByZXR1cm4gaXQuLi4gYnV0IHdoYXQgYWJvdXQgdmFyYXJncz9cclxuICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIG9iai5tYXRyaXguaWRlbnRpdHkoKTtcclxuICAgICAgb2JqLnNjYWxlLnNldCgxLDEsMSk7XHJcbiAgICAgIG9iai5wb3NpdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBvYmoucm90YXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgXHJcbiAgICAgIG9iai5oaWRlR3JhYmJlcigpO1xyXG4gICAgICBvYmouY2xvc2UoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5wcm9tb3RlWk9yZGVyID0gKCkgPT4ge1xyXG4gICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXAgfHwgIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkbid0IGJlIGEgJ3B1YmxpYyBtZXRob2QnIChidXQgbWF5YmUgdGhlcmUgc2hvdWxkIGJlIGEgd2VsbC1kZWZpbmVkIHB1YmxpYyBpbnRlcmZhY2UpLlxyXG4gICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiBpbmNvbnNpc3RlbmN5IGluIGZvbGRlciBob3VzZWtlZXBpbmdgKTtcclxuICAgIH1cclxuICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBwcm9tb3RpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgLy90aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBvYmplY3QgeiBiZWluZyBkaWZmZXJlbnQgZnJvbSB3aGVuIG1vdXNlSW50ZXJzZWN0aW9uIGhpdCBpdCBlYXJsaWVyIGluIHVwZGF0ZS5cclxuICAgIC8vbW91c2VJbnRlcnNlY3Rpb24gd2lsbCB0aGVuIGxhdGVyIGJlIHVzZWQgaW4gaGFuZGxlVGljayBvZiBncmFiIGludGVyYWN0aW9uLCB0byBmdXJ0aGVyIG11dGF0ZSBwb3NpdGlvblxyXG4gICAgLy9zZWVtcyBvayB0aG91Z2ggKGFzIG9mIDA0LzEyLzE4KVxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICAvL2dyb3VwLnVzZXJEYXRhLm9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCA9ICBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQ7XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1MYXlvdXQoKXtcclxuICAgIHBlcmZvcm1IZWFkZXJMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgY29uc3Qgd3JhcE5lc3RlZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICAvL3N0YXJ0aW5nIHdob2xlIG5ldyBsYXlvdXQgb2YgdG9wRm9sZGVyP1xyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgaWYgKHRvcEZvbGRlci5tb2RhbEVkaXRvciAmJiB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCkgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgXHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gLXRvcEZvbGRlci5wb3NpdGlvbi55O1xyXG4gICAgICAvL0kgY291bGQgdW5kZWZpbmUgdGhlc2UgYXQgdGhlIGVuZCwgYnV0IHRoZXJlJ3Mgbm8gcG9pbnQuXHJcblxyXG4gICAgICBpZiAoIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYGFkZGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2tlZXAgY291bnRpbmcgY29sdW1uSGVpZ2h0IChjdXJyZW50IHkpICYgaW5kZXggZnJvbSBwYXJlbnQgZm9sZGVyLlxyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9UT0RPOiBtYWtlIHN1cmUgdG8gdGVzdCB3aXRoIGRlZXAgbmVzdGluZy5cclxuICAgICAgXHJcbiAgICAgIGlmICh0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHJlbW92aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBjb25zdCBzcGFjaW5nUGVyQ29udHJvbGxlciA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIGNvbnN0IGVtcHR5Rm9sZGVyU3BhY2UgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgdmFyIHRvdGFsU3BhY2luZyA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYykgPT4geyBjLnZpc2libGUgPSAhc3RhdGUuY29sbGFwc2VkIH0gKTtcclxuICAgIC8vY2hpbGRyZW4gc2hvdWxkIGJlIG9yZGVyZWQgYnkgZ3VpSW5kZXguXHJcbiAgICAvL2lmIHRoZXkgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSwgaXQgY2FuIGJlIGFkZGVkIGhlcmU6XHJcbiAgICAvL3RoaXMgc2hvdWxkIGJlIHRoZSBvbmx5IHBsYWNlIHRoYXQgd2UgbmVlZCB0byBjb25zaWRlciB0aGF0IHByb3BlcnR5XHJcbiAgICAvL2l0IGFsbG93cyBmb3IgZGV0YWNoaW5nIGVsZW1lbnRzIGFuZCByZWF0dGFjaGluZyBpbiBzaW1pbGFyIHBsYWNlLCBldmVuIGlmIHNvbWUgc2libGluZ3MgYXJlIGFsc28gZGV0YWNoZWQuXHJcbiAgICBsZXQgbGFzdEd1aUluZGV4ID0gMDtcclxuICAgIC8vdHJ5IHRvIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgdGhhdCBjbGllbnQgcHJvZ3JhbSBtYXkgYXR0ZW1wdCB0byByZXN0b3JlIGl0ZW1zIFxyXG4gICAgLy9yZW1lbWJlcmluZyBkZXRhY2hlZFBhcmVudCBidXQgbm90IGd1aUluZGV4PyBOb2lzZS4uLlxyXG4gICAgLy9jb25zdCBkZXRhY2hlZENoaWxkcmVuID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKGYgPT4gZi5kZXRhY2hlZFBhcmVudCA9PT0gdGhpcyk7XHJcbiAgICAvL2NvbGxhcHNlR3JvdXAuY2hpbGRyZW4uY29uY2F0KGRldGFjaGVkQ2hpbGRyZW4pLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKGMuZ3VpSW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGMuZ3VpSW5kZXggPSBsYXN0R3VpSW5kZXgrPTE7XHJcbiAgICAgIH0gZWxzZSBsYXN0R3VpSW5kZXggPSBjLmd1aUluZGV4O1xyXG4gICAgfSk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLnNvcnQoKGEsIGIpID0+IHsgcmV0dXJuIGEuZ3VpSW5kZXggLSBiLmd1aUluZGV4IH0pO1xyXG5cclxuICAgIGlmICggc3RhdGUuY29sbGFwc2VkICkge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IE1hdGguUEkgKiAwLjU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IDA7XHJcblxyXG4gICAgICB2YXIgeSA9IDAsIGxhc3RIZWlnaHQgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCBmdW5jdGlvbiggY2hpbGQsIGluZGV4ICl7XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICBjaGlsZC51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZiAtIHk7IC8vZXhjZXB0ICd5JyB3aWxsIGJlIHdyb25nLi4uXHJcbiAgICAgICAgICBjaGlsZC5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggIXdyYXBOZXN0ZWQgKSB7XHJcbiAgICAgICAgICAvL09yaWdpbmFsIGxheW91dCBhbGdvcml0aG1cclxuICAgICAgICAgIHZhciBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIC8vIGhvdyBmYXIgdG8gZ2V0IGZyb20gdGhlIG1pZGRsZSBvZiBwcmV2aW91cyB0byBtaWRkbGUgb2YgdGhpcyBjaGlsZD9cclxuICAgICAgICAgIC8vIGhhbGYgb2YgdGhlIGhlaWdodCBvZiBwcmV2aW91cyBwbHVzIGhhbGYgaGVpZ2h0IG9mIHRoaXMuXHJcbiAgICAgICAgICAvLyBpZiB3ZSd2ZSB3cmFwcGVkIHRvIGEgbmV3IGNvbHVtbiByZWNlbnRseSwgaG93IGlzIHRoaXMgYWZmZWN0ZWQ/XHJcbiAgICAgICAgICAvLyBzcGFjaW5nIHByb3BlcnR5IHNob3VsZCB0aGVuIGJlIHNwYWNpbmcgKndpdGhpbiBjdXJyZW50IGNvbHVtbiosIHNvIHRoZSB3YXkgd2UgdHJhY2sgdG90YWxTcGFjaW5nIHNob3VsZCByZWZsZWN0IHRoYXQuXHJcbiAgICAgICAgICB2YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgaWYgKGluZGV4IDwgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pXHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gIFxyXG4gICAgICAgICAgaWYgKChpbmRleCsxKSAlIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID09PSAwKSB5ID0gMDtcclxuICBcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vbmV3IGxheW91dCBhbGdvcml0aG0gV0lQLCBzaG91bGQgYWxsb3cgZm9yIG5lc3RlZCBmb2xkZXJzIHRvIHdyYXAgdG8gdGhlIHRvcCBvZiBhIG5ldyBjb2x1bW4sIHdpdGggYWxsIGZvbGRlcnNcclxuICAgICAgICAgIC8vaW4gaGllcmFyY2h5IHVzaW5nIHNhbWUgY29sdW1uIGxheW91dFxyXG4gICAgICAgICAgY29uc3QgbWF4Q29sSGVpZ2h0ID0gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gKiBzcGFjaW5nUGVyQ29udHJvbGxlcjsgLy9NQVhfRk9MREVSX0lURU1TIGlzIHNsaWdodCBtaXNub21lclxyXG4gICAgICAgICAgY29uc3QgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBjb25zdCBjaGlsZERpZFdyYXAgPSBjaGlsZC5pc0ZvbGRlciAmJiBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL21vdmUgdG8gYSBuZXcgY29sdW1uP1xyXG4gICAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA+IG1heENvbEhlaWdodCkge1xyXG4gICAgICAgICAgICAvL1RPRE86IG1heWJlIGFkZCBhbiBleHRyYSBoZWFkZXIgdGhpbmcgdG8gYWxsb3cgZm9sZGluZyBuZXN0ZWQgZm9sZGVyP1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCsrOyBcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gaDtcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nID0gMDsgLy9oIHdpbGwgYmUgYWRkZWQgbGF0ZXJcclxuICAgICAgICAgICAgbGFzdEhlaWdodCA9IDA7IC8vPz8/PyB3aGF0IHNob3VsZCB0aGlzIGJlPyAgT3JpZ2luYWwgYWxnb3JpdGhtIGl0J3MgJ2VtcHR5Rm9sZGVyU3BhY2UnXHJcbiAgICAgICAgICAgIC8vY2hlY2sgbG9naWMgb2YgdGhpcyBXUlQgZGVlcGVyIG5lc3RpbmcgKHNob3VsZCBiZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0b3BGb2xkZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlIHBhcmVudClcclxuICAgICAgICAgICAgLy93aGF0IEkgc2hvdWxkIGRvIGlzIHVzZSBhY2N1bW11bGF0aW9uIG9mIGFsbCBmb2xkZXIgbGV2ZWxzICsgb25lIHBhcmVudCBhYm92ZS5cclxuICAgICAgICAgICAgLy95ID0gLWdyb3VwLnBvc2l0aW9uLnk7XHJcbiAgICAgICAgICAgIHkgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ICs9IGg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy92YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgICAgICAgICBsZXQgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcblxyXG5cclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC4uLi5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgLy9YWFg6IHRoaXMgbG9naWMgZG9lc24ndCB3b3JrIGZvciBjb2x1bW4gd3JhcHBpbmcsIChiZWNhdXNlIG9mIGhvdyBzcGFjaW5nIGlzIGNvbXB1dGVkIGFib3ZlPylcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG5cclxuICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL25iIGZvciBuZXN0ZWQsIGNvbnNpZGVyIGRpZmZlcmVuY2UgYmV0d2VlbiBncm91cCAmIHBhcmVudFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy9pZiAoY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCkgbGFzdEhlaWdodCA9IDA7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2hpbGQudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gdG90YWxTcGFjaW5nO1xyXG4gICAgXHJcbiAgICAvLyBpZiB3ZSdyZSBhIHN1YmZvbGRlciwgdXNlIGEgc21hbGxlciBwYW5lbFxyXG4gICAgbGV0IHBhbmVsV2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXApIHtcclxuICAgICAgcGFuZWxXaWR0aCA9IExheW91dC5TVUJGT0xERVJfV0lEVEg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIExheW91dC5yZXNpemVQYW5lbChwYW5lbCwgcGFuZWxXaWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoKTtcclxuXHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtSGVhZGVyTGF5b3V0KCkge1xyXG4gICAgbGV0IGR4ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICBsZXQgeCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBoZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGlmICghYy52aXNpYmxlKSByZXR1cm47XHJcbiAgICAgIHggLT0gZHggKiAwLjg7XHJcbiAgICAgIGMucG9zaXRpb24ueCA9IHg7XHJcbiAgICAgIHggLT0gZHggKiAwLjM7IC8vVE9ETzogZGVoYWNraWZ5XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZ3JhYkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9UT0RPOiBtb3JlIGNvbnNpc3RlbnQgaG92ZXIgc3R5bGluZ1xyXG4gICAgaWYgKCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ob3ZlcmluZygpICkge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4ODg4ODg4ICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSBncm91cC5vcGVuKCk7XHJcbiAgICBlbHNlIGdyb3VwLmNsb3NlKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcblxyXG4gIGdyb3VwLm9wZW4gPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICghc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCAmJiBncm91cC5mb2xkZXIuYWNjb3JkaW9uKSB7XHJcbiAgICAgIGdyb3VwLmZvbGRlci5ndWlDaGlsZHJlbi5maWx0ZXIoYz0+Yy5pc0ZvbGRlciAmJiBjICE9PSBncm91cCkuZm9yRWFjaChjPT5jLmNsb3NlKCkpO1xyXG4gICAgfVxyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICBhZGRJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmNsb3NlID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSB0cnVlO1xyXG4gICAgcmVtb3ZlSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsOiBncmFiYmVyIH0gKTtcclxuICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAvL25iOiBpZiB0aGUgY29udHJvbCBpcyBub3QgdmlzaWJsZSAvIGFjdGl2ZSwgdGhlbiBpdCB3b24ndCBpbnRlcmZlcmUuLi4gICAgXHJcbiAgICAvL2J1dCBcImlmICghaXNEZXRhY2hhYmxlKVwiIGhlcmUgY2F1c2VzIHByb2JsZW1zLlxyXG4gICAgXHJcbiAgICAvL2hlYWRlckl0ZW1zIHNob3VsZCBub3cgaGF2ZSB0aGVpciBvd24gdXBkYXRlQ29udHJvbCBhbmQgYmUgaW4gZ2xvYmFsQ29udHJvbGxlcnMgbGlzdFxyXG4gICAgLy9oZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKG8gPT4gby5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKSk7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgLy8nZ3JhYlJlbGVhc2VkJyBpcyBlbWl0dGVkIG9uIGlucHV0LmV2ZW50cy4uLiB1c2VkIGZvciBvcnRobyBtb3VzZSBmaXhGb2xkZXJQb3NpdGlvblxyXG4gIFxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBfYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG4gIC8vZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwsIGdyYWJiZXIsIGRldGFjaEJ1dHRvbiBdO1xyXG4gIFxyXG4gIC8vLy8vRVhQRVJJTUVOVEFMIEZFQVRVUkUsIENVUlJFTlRMWSBIQVJEQ09ERUQgTk9UIFRPIEhBUFBFTlxyXG4gIC8vc3ViLWZvbGRlcnMgdGhhdCBhcmUgZGV0YWNoZWQgd2hpbGUgbW92aW5nIHJlbWFpbiBhdHRhY2hlZCB0byBwYXJlbnQgb2JqZWN0ICh0aGUgY29udHJvbGxlciB0aGF0J3MgbW92aW5nIHRoZW0pXHJcbiAgLy8mIGtlcHQgaW4gc2VtaURldGFjaGVkIHVudGlsIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCBhdCB3aGljaCBwb2ludCB0aGV5IHNoaWZ0IGF0dGFjaG1lbnQgdG8gb2xkUGFyZW50XHJcbiAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGdyb3VwLCB7XHJcbiAgICBoaXRzY2FuOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIC8vZG9uJ3QgbmVlZCB0byBmaWx0ZXIgdmlzaWJsZSBoZXJlLCB0aGlzJ2xsIGJlIGRvbmUgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKClcclxuICAgICAgICAvLyhpbXBsZW1lbnRhdGlvbiBub3RlIDMxLzcvMTk7IC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIGhlcmUgYmVpbmcgcmVtb3ZlZCBhcyBlYWNoIGhlYWRlckl0ZW1cclxuICAgICAgICAvL3Nob3VsZCBub3cgYmUgY2xvc2VyIHRvICdmdWxseSBmbGVkZ2VkJyBjb250cm9sbGVyKVxyXG4gICAgICAgIGxldCBoaXRzID0gWyBwYW5lbCwgZ3JhYmJlciBdO1xyXG4gICAgICAgIGlmIChncm91cC5tb2RhbEVkaXRvcikgaGl0cyA9IGhpdHMuY29uY2F0KC4uLmdyb3VwLm1vZGFsRWRpdG9yLmhpdHNjYW4pO1xyXG4gICAgICAgIHJldHVybiBoaXRzO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYmVpbmdNb3ZlZDoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gX2JlaW5nTW92ZWQ7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldDogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgX2JlaW5nTW92ZWQgPSB2YWx1ZTtcclxuICAgICAgICBpZiAoIV9iZWluZ01vdmVkKSB7XHJcbiAgICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSBncm91cC5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBncm91cC51c2VyRGF0YS5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICAgICAgICAgIC8vYXNzZXJ0aW9uLi4uIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAoYW5kIGRvZXNuJ3QgQUZBSUNUKS5cclxuICAgICAgICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSG91c2VrZWVwaW5nIHByb2JsZW0gaW4gZGF0LkdVSVZSLi4uXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQuZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIC8vYXMgd2VsbCBhcyB0aGlzIGN1cnJlbnRseSBlbmRpbmcgdXAgd2l0aCB3cm9uZyB0cmFuc2Zvcm0sIEkgYWxzbyBoYXZlIHdyb25nIHRyYW5zZm9ybSBpZiBJIGRyYWcgZm9sZGVyIHdoaWxlIHNlbWlEZWF0Y2hlZC4uLlxyXG4gICAgICAgICAgICAvLyoqYWx0aG91Z2ggaW4gdGhhdCBjYXNlLCBpdCBzaGlmdHMgYmFjayB0byB3aGVyZSBpdCBzaG91bGQgYmUgd2hlbiBidXR0b24gaXMgcmVsZWFzZWQqKlxyXG4gICAgICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZm9yIChsZXQgayBpbiBhZGRDb250cm9sbGVyRnVuY3MpIHtcclxuICAgIGdyb3VwW2tdID0gKC4uLmFyZ3MpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbGxlciA9IGFkZENvbnRyb2xsZXJGdW5jc1trXSguLi5hcmdzKTtcclxuICAgICAgaWYgKCBjb250cm9sbGVyICl7XHJcbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggY29udHJvbGxlciApO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sbGVyO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2UoKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBRUFDQU1BQUFEeVRqNVZBQUFBalZCTVZFVkhjRXovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8rdW1BYzdBQUFBTDNSU1RsTUFXbkpmYm5xRFdHUjRhMlpjWW5CUmFsUkxnSDZFVG5SOFVHaDJSb1pEWGxhSFNZbzhRSFUyTHlZY0ZBd0ZtbVVSMU9JQUFKRmhTVVJCVkhoZXRMMkpXbXU3ampVS0lRa2tRTHFadmdNQ1pPMnpULzMzL1IvdlNrTkRrajJUck9hclZkNVY2eERQM3BKbFdkS1E3cWFQYjYrdnJ3OHZqK1BaL3Z2cnh6Ly8vUGo2M3MvRzcvY1AybjAvWFo2T3A2WDhmSkhmYUcvM2o5cTVYL0xLdC90M3YvUWZ1ZlFrL1hvdWJvbHovRHE1TEg3eTFuTFZsOXhlSDRiMjhqaWRuY1p5L1pNMFArV2ZmLzd6bi8vOCsrOS8vc0c1VXp0YXYzSDFpbkpJWGtsZThRdm4zK09ST1Ayb2o1T1BtejdldittNVBEREZ5WGFuL1V3ZXdCZDgxMjRaRG4ybzNlVEJCbUNLQXpaUWZqWTc1V1gvL1krL0tqNkxuNzcvL3VGM3IyNHZIeWZQNWFlOWNSUnNhSDVJLzQ4dmVRcVA1S2g5WDl6ODZ3dm4rd2poWmZtWWpUem15QmZsU09CejVWMWxYTzhlSDU0bXc4bnpLOGRUSHNuUGVwYnVwd2Z0MVZ1K1BzbHZhWlB0czczRmFXeFhicC9pVWp4L0k5U1VjM0hMcVoyRGhudFZQMEVSZk43OXE5MTgrL1QydUZsTzhldzhCVytxdzRSejVSWmJPVHA1ZnNKaitkVHFGWi9sbFRBcXVMYytFbThqQS80ZEEvUzg5Yzk1a2hFaDhaVFltOGUzcCswUVY5eFA1ZjVmUWpVOFZMdWVKM2l0ZTlDVDlMZXpuNUlEK0twOHRCM0VtT2ZkZWZzbDU4MFBZMVdNRGthQk5GWHFINVZqZVNTRzVIalJkVHpxK2VBTWpQK0VMOHZIeUNTekZ6VzZMRTk2UHJqdjd1VnBNdXAwdWx1TXA3SXB1V1hiN1hRNnd5Y1p0dGtVYjkzdG9JMjY5ckhMS2E4Y2JwMFVuTTJ2VHhNOXQvdjg4SWh6ZU4zazZTVi80dGJ5WnNlOWZkNFFmZDJKdk83bThlRzVXNTd5RFJiQXJNSzV1RHZlR0NUOVFiN0lWK3phR003Mnh4UHVQY0xwU3M4ajU5bnpwQnVmTTN4MjRuSGF2dG9EaG5JUDZTWFY4TjY0YURRa1BUbFJ0bmIyczk5RTM5UmZkUmlmcnJ3a25idzdiby9KaFhsTHdlbFBtY2lUeDdQVC9sdjdUN1BaNWhIamxrUHl0WmZSajV1RFJyT1RuQTltdlg5NHhrQjBoM3l2eDgxSkJ3SXZxdjE0VXpuLytLMHZleWVqZmU0TlZ1Q0FEY1htT3o1cjE5dDE5Zkt4dnBuOEhQUzA3VllqKzlqSE43bFNmbmZpMGgrY3pjUE9lZEFiZElTYTcyOVBjZzdhdWZ2MGxqL3Qxc3Y5YWJaVTNwekl3NlN0OVB2R01rYWRRWndpQTNIa1BQbmU0OXlSbmp0WWthUkNOdkJRdnVKZ3h6RThZY0J4NzRFTkhjWVpwNjc0T1lOemh4d2Q0dUZwdU5Lbmo3WVBrQXpIazc0UkhyclM5OXAxSnZaZ09RRDZyN1FUQk1XOHhTSjZQUEZWNDlPWHhnQzh1MXlnaEpOUnMxVnd0akg2NzNENlJLZlVjcmJYL3ZGMEtoK3g3ZTZLVVpPNzZ5eXhtMk1jcGxPY2I4dzZ4RUNjT3p0N1dRNkVkT3NuRDhEWk9CL3k1MDVIdTVselBGMXN2c29jSE16N0lPSVlYSHNlekp2K1l0SHZONzBkYmlFVGRUdmFOZjI4VkhuSDJIN1hhL3FnNXJzd3lXNitrRGFYZDMvTG40MTl5bkk4ZlgvWHp6djMrb3VtWUFENWlWUHdwaWVUbERJWHgvaHVPZGh2UUZJYjFwTk5rWE52M3RkWGxLK1JNUVM5T2VEOXhaeERSL29MelpxK2ZjNTZjRmFPQnZIMkpoNkdxL1dpUHhodGpTOU9Td3dlYnJLVEo5aGJ6bkEySnNxZ1dmVFh1MUdzV0pqUUdFUjhWditTQWVRQ0VnN2ZCcjY3Ri9wekdEQWI3NFVGMEM5TlBucWxkMXJqSzlDUGdWajNGeGlIQnoxSit2ZkhtVEhyV2orczE1T1hCUVZQZXpKQW80UlFtZkh5OG1pYUd4aWcxeHprUHJqMzdPaEVITXpsTGVYbTkzaVd2dlNIak5maThJR1BsWGRYQnRBN05zSUJ5aENuYnhWQWVQNjhmK2l2a3dIa3NvK0NBVDRPL2I1UlYrZmIyeHVlMW56b21PaDl5UUFmT09WTlZVNTVVeFd0eWwrUURzS0U4eURwdDhwRDhKQy80b2VPSWI3bXRNU0FydzhmZk41c3pIbldnUGlOOHJSek5JYkpoSjFjSWN6Zm5VRFNnV2VFQVJhZi9ZRzg1Z0VmUnJINmdJbXlhR1NrTWE3djFBMHdvZjJ6ZHZVU0FESi9jTUNubTVuekhRNDBpL2xCQnhTYVZTak5JSWNNcWJ4bzlHdW5UcWE1eWhKcFVLQ1Y0OEdzQjNDM1BHVUVDZUN5cWlmdm8yT0Q4NDFkN3g0dy9RNXp6cWdUbHBlSjNydHYwczRHdlRrY2xLZGs1SEVMK1NMd3hXQzlPQWhQZ2MyTzhpVXE1RmY2ZlhxdE1NK0wvaFJXckJoZ0Fja2xuNjlEKy9UOGpLZlpRSWxPV3pLQU5LanB5NzFKU2g2Yjc0UUpuQUZNN09IakZvM2NlZDBzRGcxRlBzZWo2YS94UENvdU94MmdlVzhnVGM5MmpsN2lSaEFQd2dEeWlyWk9ZM2xSV3NwanordSt5aW5UckhCejBMK0gxNWNuWUJwQU54Qk5UR2RDeWdhc3JuZ0NYc0FJOTNDdmVnRDFhZjBFb1VNRERvQWFFNXFlVEhhUWVqaXMrbTNjenQxUW9JUGpHL2t3NWUyenZSUVZhMmM5UFo4cTFBOVZBbkg3TldUU2VBYStoaXhhNzZEdlFIamd3bFZIbHM2NVVwd0szclpyUEk3Um5tRUZlbEFTSDVSSFZLNVM1N2xnQUNwR0dHOXBjb0lPbFB5bHN5Z1pRSnJxOUZEb3ZyK1NBWVRPL1pBQUx2Ym1oOE1jcnlpdnRGQ0N2K21NaDJ3WURIYkdFUDV0TWtBNzFlbEduYk5LT2dvTW41K05TSkhEb2xsam5aNUNxSzFXSzJHWGppeXVnL09xZ3lmN1lEY3l6THQ1STVOdGEycWRiNkw0V1IwWmEyZ1R3cXBVVmpzcW85ZXJMamRmTXlySHUwYnVJbHpRekhkVWlGMzUwenRwWjZmVnIrdTBQRGo2Wi9aT3ZmWDZEQjNuUERKTkl4VHJYZHhJcUEydXZGTWlLQmtiSXlNbUNUcTR1a3lOQVNERWg1TXVTQU1GQ1YvWlBhOFBDd2hGYkRiR1dCZjZJaXpCM2xPVnVOdkpKUVBZb0lCdzU5MXVwK082VzhrZnE2N2NPQmdBUGE0VXE0NEpYVlpYbUw1T1JGdFp2NmtSVTZ4aUlpMzhGWFhwZzBacFFzdk81QndiZFlTcW5hN09JcmtRSXVDZGt1VFExNVdrVHpIRklSV2VHc3JGOGdkSXZlSFNzS1BtT2RBSkJMWHV0REVsK2t5dFdiOEFPZ1kxa0ZCV3p4MjdaQm5Lc1k3QWVSY0tjZlRyQUEwNnE4dCtaY3RkOUUrNXhLMTJ2ZlY4UG9jUWc3U2lZcjN1c2ExN1NtMm9zbmNRNWFrbmJjQXNaeE1KV0FPVEFXVEtUR1RaZDJZZm04SzhPRGdEeEF6bGtqdGRZbnQrbFFHRXFHUXRlZFBkU05wQS9vRE80dmNZNkNGUjk2blF3ZnhoT3E2UWd3b0RWbEM3N2VHZ1F1eEpDZDQvVUgrZFVYejE3ZkdtUTY0eDVYR1h0WkJIRDRNLzlQQVdONUtuNmxwbmZFRTk4cUMvWktBZ0FKVUJxRTY0NXJrZWRFeXRvMG9pckdKYTgxelhOdWdZcDF1WHVITGMweEh1ZGtVSHRVbFY5TXNBRFcvMGo5aFBEbGNaTmhmK3BSQlRRVHgyeFRwYk1vQytyczk0MThGRy9HbkxxRjM4MlY4UGREN3FqTFdWaGFPYkRMQnZNWUJxME95NVpBQmpMVDJHTlVUSlJKM0Y3OUgwRC9vUkxwK1B0c3VsQ0pCZURHcXNPNzRVNmQ1RUtGc3hnT3VnSmc4YVdkeTZLb1VYaDRWc1lrUUVjRkhEdTVyOEdoVnJtL2J5bDdMSFltMnlSL3VoVGh4TTg1eFRqdzdka0ZyendkWEE1YzFMaW5GNWZ0Sk55TUhHdEpTWTIrMnYrNmRjNGhwNWFOUGdDVHVvZG1PblliUmtnTk00MW0zY2cvTFV4K1Iwc25tQnp4R2hvanpRdFRsWk1RQ3NhWnRweFFDUUNiY1pZT1l6VG9VTnA3QmU1aSs3MEkvNENJVnUvNVhTL2hQVDhEVVlZS3NzYTNzZUZSRXJhWHFuTmdOQXhLc0E2SXgwQWpYelJ2K1crMUZienJlWGFSU2p5dkhSUnhvalFMMGRVM0xLSUVQejFPTTJaVEFJT21DaE5aT0hiMTVTanN2TDAxVkNQejM4dXAvRVV4MElLdTVhbnJTR3VJb3Y2M21UQ1VJRzJGTnZjTjFPQmdrclFJL1Rla2EyYlQ1VXFLanlmT2FXdDJDQUx0VDNwVnFCLzRBQnNQWnh4UjdsakNNRHlFZklXZ21GanZvMWFJMzE2ZU9UNTlhS2h5MGd6ME5xdWNtamZMeVJVbjlnelJ2c2VtUUE0NTFrZ0JFa1VwK2ptaXFHWE1ZVkFOWVJHMnVaRTUyemJyRDRvazVtVVE2aE5jZGFjdk9TV3d6d3AvMVREby91NlVZamxUVTVwdnl5RGh1bGxUREFjUlpIOFdVY0pKY1JNTDdoZS9xUXliclY0cTRwR0FEcW9jb0FIZnp1N3pQQXJKQ3VIUGlTRFBvUjUxNXVaby9IdUtCWkpGc2tBMEExVVNiVVJ2MjZaZ0NzYmlMRFJRQ29aSUhCcHlQWHVzV0RyNk9LbStsZGJwa2lmNnE0b3ZhSllVbk5NMTcwUGs4L1EydkduOUF4Ymw3eXR4Z2d4MU8wNlMxMlJyWWZlaTlrR3h0Y0FudlpCbklBNVRMTW9NZjhnVkczU1ljN3lYd1VtZm1CMjdzT1FGS2RZUTE4MTZteTJxMXA5L3NsQThUcUl5Unh0Yk95QTJ6NU9UUytnaG1IbUlVWU91dXRKY0FqbkVYNHdQc0xDVUJWQ095bVQ0UEJSMlpLd3pmQzY2ak1YZzhHSzUxRFhibkx1RkNMT1REMFdQRFY1U1NvRnB3MDFEdE5pWHA5bG9lNGNMMTF5ZDlqQVBuaDI3UlhYUnRpTHVhWUp2MGhBSVFCVW9taURpNmppZkhkNmdRcjJVTU42TEp5K1pRTTdVQk1SUGdPMDdHVk9KVFB2MkFBcmo0NEdrcGNaUW5NMDRQVXBxN28vL01aeVFCNGYyeVIzUXZTWWdEOUFYbHZpb0RlU3EwTnpnQmNRcW51RE1UcEFSOWlzYzFNM1FnUGRZM2doWlFOS2dUUk1VVjhORzllOHRjWWdJL0dUSEtORm8rdWxvQjBFcWtwV0RRcjQwd3lRSzNHVlF3Z0ZpbXNYRzVobGpVY0F5YTZSaktBTWtpUFJxWGp6eG5nV0t3QnpyZVA0NXNNUUJ0bGl4S24xaTRBYXJCN1FhNHh3TUpFZVgrZ0RLQlBHUTJDQWVnRVVVTlFPRDJXWm4zQUFLMFhsT2JMM0RIb1N6c1Z6T1AxbkJxa1hKbnF5YzFML2hJRHNKOWNWYW5HdFJLWVRpSmhnQy9zbzI4eHdCN0RpNmV0ZFFNd3pCUEhWTW5VcnRva0Eram1kMDRkODFjTWNFcnBHaXZBOGlZRHFCMDFaREczcmVDTFVyUStnS05jcTd2TkFCOG0rL1dBRUlXYXZXelRuK0VHbFMyOE9UM0F4MnA5c00xNVBuVmNLVTR2K1pTYW1oQlpUb1ZibC94bEJtQi9MZGZyYmFCVDhQaExDYkJQODc1S3hkMHFGK1V4QmdHLzFRTkxYVVpXQ1NNRlBDTy9ZSUEwNHMzbmxJelROZ09rUGtxVGI2Mk5tVW1XbTRtQlNMYXRXeFIrTGdIMERKa2dLa2ZrZkpBVjBRdXdySFRPTUFUNUtwUEtUc3FkMnVMQnAxeCtaRTJGK3BLL3p3Qy9ldlRuZ3EzTkFPMVRCMjd1M2NDUmlHMXRYNldpOE1DNkhsMGo3Z2hlQTFqQXV1ajVyVjJBcVBXaE11T01iV3RvSjhPUzM1YUZqb05iY29MR1FxS0dkN0h3Y3M5K1RRY0FIV01KT0dNaEdZVWhDQUpHYmF2aUpGZ05hSmNRaFQ5MWp3V05KY3VhQVc1UDU1c004SDh2QWVDdXY3VUVEQW9HT0czOFZQVEdrbzhGK1ZTNCtMRXl3bis2cWtZWDR3VExQM3dndjc4TlBPYkdYaG9OYkx5Q3pxZmRXaWMyWHFYY00zVElHQ1NHM2FRUDdWM21iajhPdFJrQXpDM1hxenlmaTVFQjZpZFlRb2Z2M1pZd0hZZEpOMTk2R1Z2aHoxZ0I4SmFwM2hWNjMxdDdJVTc5OU5vbGY1c0JicXNmVkFKWCtLL1REU1dRTkFyRnYrSlplSmdSc1FjSFE5T0hDV1lITS95bEpWQzlvSzkveEFCcDJqUC9VVEcwbitLeE0yTVdYYm1GeHFodG5hYUFjR0IvTE13Q3FxOUk0VkF4QUZmaytRN21HRmtLeFJ3OG4vZTUyRThMWlhJeUxCamdGT1p5MEl1Ym8zSjhPZkMzVlhIdzhNMUwvaFlEM042QUpGMkdhRzRHa0cwZzNkb2h0NTJCZlpkbC9oZTBzL0pBTEkyenRpOUFsb3R4VzRQNCtUWVFFVnF2VysxTHBUN3Mxb2MrRGVhbUcxQVpDVTNtRU5OeHBpSkFoSlJHQW54QWYyZDB4bWxUTXdCbUNIYUE2dlBWOCtCWVhGUGRUNXV2T2s3blBqMlhjaGZ1Mm5Mdm1Wc1ArZmlIVjVlMlA5Mk0zN2drQ2FvSFhwKzZKT2lmOTk4MlFSUjBlVUpqQUlrd3dNbDFYR3B1Ym12aDlPSUNnU0E1YzUvNzFtVzVzVSs5N1EwY3o0UUNOeG5nWFE5ckxMYzluZHVyd3FFMGQyOE43b1U1Qi9vczJEQ1N1Q1lpRWRleW5LL1hZYXlHYmJwZ2dQUnppQjhWL3RnZC9vY2huVTQ2OVhuSVFoTG1ac1RaaG9jTSsxdmJPcDBaRHZPOHhZckJvemZOY1Rjdk1mTTdOSmNKcnZpd0JlUlArNmVYUmtpT2F5RUIyTGFNNHJwRHpNUW9sZTEwRHByQmwyYVdoUXF1TFp6dEhFMGhIbWhYTWNCanJpWnFhc0xZWFdjQU9NTGxZVS9QcGw5eE5oZE1SSDh0WGFZa1R5b3k4bURYRzhVaVlWYm9IY0pnM0FIUDFTc1lnUDVlNWZWZEo2SjhPeVBHZnRIcklhdk9BUUttejFDbk1lSnNsVjZ4Nk1UYVJidXhPQTlUOHpSQjRnYjVjeHJrYjE2U24zYVc5NUlyUGttTVArMkhNcFJ1aUxXN0lhNzVBaGphZWpkK3RMdTVmODNmM3dRVmZtL0pWU1BSanMraHVHQjBzVm93R0tGMnpDSG15TWJ1Q2dOMGgwcFZJUWlITmxhQWtnSGcxUnRwMElSSklzNGZmZ1IxSzdBZTBRaGQ0Um5lU3AyVFhMM2MwYVVHZkpyNjFFbXZOOThOTks2QWNlRWVVYXVxenVjaVZnWVZkSWo3S0ZhQUwxb2w1WDFjODhSWTQyakxKYWZ1TEJ2YW01ZEVTSk13dDRSdDZLVXdpdjF4dnp5NmRFVDJQYWdsdllGci9nZWFnUUUwV3BBRWgyQmZwcHdjSVR5WkF5OFhEeVFVQU80NXhnU3ExQTB4QmdaWXVsSS90NG5Mc2J0Z0FBa0Mwb2Y1MEpMZGFEbW94ZFVrM0RycGx0ZldEZEVxM0NFY0FPNFhpalpPN0ZPc1htNlltQzdEVlM4c3NKWTJiL0R5aGd4aFREMk1BQi96WEJuc3JlY2lYSHpqcVpnQU1GTnFub2REMkQvSDk5ZWQ4c3VibDFoUTR3QkJyZFI3d0h0LzJyKzhGWXJnZXRVaW1rdnRyenVoUHdPQ1J0U283c2tSK25aUUNzRFFJaEtiK1p3TytnbGRaN3QwYVk1UGlNL2x5WDBMTXVYWXpWc01JRDBoK2xZNjRZUm9aS0tLQVJDOUN1aFpGZmVGS0ZncVY0eEgzVlA0ekJ0d2N1VWtXQnpvbkVESUhJTjFGdEFsWU1QVU93ajlpYW9ScVNZMFF2eVRPWlRJQU9vSDVUQ2ZORDZ4clhuT1piaE04MnlGNWZROUxHZDI4eEtMSVJMVGd4THRZS0ZDZVBZZjlzK3VCaU5sUkZEUmtnR01aUTROZVV2WDB3eWNnK1N5OE4rNStvTHgydEpOcWNLUWVNcmhiNDRLZUxQeWNrZ3JHVUJhVXpEQUFVUEx4YldsU0w2ODNDTjAyczJWSHFubUQyOVpGSFlOSkhmdEp1ejNiYVpsZURRbXVjeCtqVGlUSTR6WkpaenZTWi9UekpYOUFLd2pBelROMmhBUTBKMHJESXp3ODFvUE1uaHhaa2dhQnVaSkhCVUQ4MDQzTHdHd0FUYm8zbHFhQndzdS83aS9IWTY0QXYxVjhtRzJscTNqUzRDTzVEeUJDc0FXS0JFQkZqQzFrQTlUZ2RuTWlTS2EwaXd6NzVHL2lmUER5U3RSeDR2OVRTTU5ESkEvQ3dhUXdWZ251TVFaSUlURWVLUGdDVEtBdnptMUhXbHBVV0NYakFheFcrUUo2UG5jRmpKZ2Q2aklJRFJ4YjNnNHZ3TTBiVm1DMUg0MHFySG5EQXlVUVRxSmdveGJpVElHWWdhOFJFWmgxR0ZVcTlBZkVNMmJseEJqS0FkVTdjRVZXUGYrdFA4WUFja2pVL1M2REVqZVFQUlVEV3VQTTBEaUdpVEVLa1JZdy9tRmgra1cwSWFNT0VJZmwwNFhLeVVqOSszTjlBdlBxcFg0MkhGQWk1OHI1UWVMdVBaN0FzWnE0UWt5ZmFnbUNGY0xLb1NMUzc0NUE2TWp1aGtub010MStqMkJaRjNpR2NHakhyS3ZNZkxkaURvSDkwcVROZXhrUWxRYWdUdEhteEI2dXFJSURVMkJ0ZzhjTEc4RW5LNE1vRU5WL1FBbGlTQVlibDVpaEhzeXdDcXVBSjMvdUQrL1Q0NEF1SXNIRUg5YnRXZENLKzh3ajN1SmJJS0NhekFscXBiMnNHTElRaXZiNm04aXFJNFZzTGpiQlhmam5CSCt3NEMyZmhxa1QxcGdmYWxkb1JNYkJRQUNBaFlhaUliNjE0bXJqNHdJNEw1R09ldkNkejliWExiMENXZ0g2T0NuWjdRbjRrNzJjbXl2RGNCSUhJUk1SUS9XQldtQmcvN211YndWYndUWVBHOGlaQkRzamgzUkp3ajlyMThDK2hPUXJ3ZTA0WjBVTUNMdFd2L1B6dmZ2UTNzQWxKK2lCMzNaSG9qb3ZjT2tYSEhucktQOUhRZ3B6TUhISlY3aUxZY01jQmFPbFA0MlNVbDRNamdBZUIvY2tLUEpBYTEvSW4wQUJvTWNyR1Q0eGhJYUpNREFIYjlLUUR5b29GSTJmK25UOSt3eWlzNEFseVZVbm4wbmE3T2w1Z2Q0ZVh1UVpzaXpwZlF0Wi9LUHRCaytWZzVCOTBRSExJSGE4MktaRUw2UGZ1cVN0NUptdWdyNmwvcnZSZy9neUwxY2hlNk5QdVRVdW1RRDlLdE8zZVgwWFE1b3d6dkptWnZOV0k3WC9XTzk0TXI1ZUU4NXVwbmhDWExrWHRyN1ZIN0xVQWpqYVYvWnlFby83ckFva2Y2bkk0aklSV3pvY3hCY2xVTm1nTFlqUndvb1JtbjZXcmlZK1JjdzVrdU9wZzlvK1ZNSnQrUmczSXMwc0xFVHdMaDM2aFhvU3dEbGkvd0hLaEEyaVYveTJlRHlwWDJqcWcxamc4dHEyZ2p0c2hGYXlwazhKUCs4VzV0dTlNQlVPOUVsNTIybVBJSWU5TE1CVVl1eHh4SDlkOHBiUVZmQjBEL3kzdjRRL2ZmUm43YWN5ZFYrd1BxSTZ6MGFaMnJEQU0vNFl6cldmbXZ2NkFCYWx1ZjdBWDEvSEFXakN5dE1kWHdlMzIwc3h0Ykh3WkNSbHhib1lDeEtYSXd3QmI4aTMwTE9RZHd5aDh5ZzZ4d3BQY0J2TXc3UWNTaEhJSzZiK1NYeDVTY09ocExFUDA2ZUhrUEhDM1hZZzVpUWFnNmNMbm80Z3ZqOTZMMmdPcVlOMkNNUFlVWnVsbVFTblVka09wSFdNOHhXdVVCN3JOKzRYREgxa0w3V3AvK3FlRGR4Y0RwUlVyem9WTkVEMm8vRlFINmkwMFFJTVBIeVVPM0JpZThnNlJITE45cTlyYnY0R3hKdU5yTWJvVU5mMGRZaDdSK0hISGpoUEpPanVCcExBT2NFK3lnMHdTVjc1Z2ZZVFBVN01DUXhrWmx4NVkxaWNFTzVoZ2FSUlVwTEh5N25kTVgrQ0MrR2swUFVQVTU1SFM3aHdOb3plU3I2OU9OQVNuYkNVVURSc1U5eGJyeXF0eHBIRCtEOXVkSTlJSW1NS2RnaTg3bVVZb0hJVyt5dGdkZGY5WHdzYUEvMzVjcXZQVmlPNERxeDJZR0JSQjh2NERwMVdtSXU4UXBxSFhFeTlBRkdZcG9tZ010VFI3QTE5WGtyRGZOT2xHbjhNQ1F5YjRRT1puMzVhbXNDT1A4SnFxdmNTcFVmaGRhK01VOU01Z2paRWxIRERDRTJYNmNiemswaTFpbm0xTVU3elFtOE54bkJkRFJ5VmlwSWVHblRCRTFINGxMT29kRDFIVnR0NE9NNEdsQy8vVngwY1NIU1RteVpjdFJPQmpPVXRyWDdBWUpuS3A3Q0VLV0h1cTZuY3RsUzhUOUt3LzRmbHo4am9Rc1BmWnUrdzNHWlFORTNteWFzZ3FiTDZncUpRY09vTTlrSyt2d0M2RTdtTng5cUYzWVJlQVpPdHA4VFUydlRjTDExcmRwSUNqZm9jM2VFV0dUcXkvcjMxbTBhdUpIMHhCTy9uYjI0RjVqWVVYbXNHZk4wRzRpaE1JTlc1QWdocHU2TE9ZSk1vNWx4dXIzb3ErRG0xajF6d2ZOR0JVaW96NHd0cGl6RUZva21FdWtGVFMxcEE3NXdRcjhUR0dNV21yOXZ3TzA3MEplcWlNNG5qcWNCS0RPNUNvRjJEc0d6cEMxdjhDUDZibmZZamR3cCtseW1jckJVTVR4RXFCRVI0YnFkSGlsT3RVT0ROUDBJWjkzOFk2OUxJS0xaS2JiV0p6dllzNGZYQm01UkR1Z205bXpQd01uNGlidkRndWFmWnZ2cWM0ZE1STFE1MFFnSWM1Ty9hZFdrZlVXd0NtRjI0Ymc5aHpWZ0pFZUpjdlZicVlsZzFMRXJJa2ZJcWt0enB0TC8zenVRcFpodTVBQ2J4cGc1ejYwWi9vOXlEbFAyOEtOOTA1NnNZK1NCd2NPc3RYc3VEY2ljY2lZU0dBS1J0b016VGlVSFdJWU5qaWRleWxNTkFKYWl3VDYwZTJ1UDNvblllTXVMc2hxZzk5VmgrWGJ1RG1ZaU9XUVJKdGhPRXhHdWJrYzFTVEdTREhFS0NqS2NpMTFSVUtzWU5Nd0FHaVNrYjdBNjkrUXcvY05IangxdTVucEYwNE9YQWlmYnovTzZZYXlzZlJvdGEzTjVjT0dOWHEzN1ZXb045MnRzM0J5cnR3L2ZLKzJCQTdoTkJ5dUdOZ1ZvQWJIdDhoeTdnc0VDN3RDd2RFYi8vdmRPUlRrdFZKUm9SbWpZT3RJczRobGtzRzZRL3A0SFp5N04wZnFod2hsQVNvN3duV1pVRHBFNXhmckJHTHBuTnV0aFk0RWNXT0pOdEhSMFBBZG1TVFZuZXI5UFdNcFVGd0RFS3ZibmhEQXMvWlQxdWJRUzYyZVFEbW9VSHF3WEhxN0NMU3ZTbjZpRHNHRW9qYm14WHdsY1pWUUZWcUk2RUNDeElET1RXSGtGRE5sQzFjeFFBdCs4SXpqaGRCUlhnVFRZMG1HN25GNEorbkVHb09HOVAyODhRR3F2WDVVZUFYRXZ5VmZRZ2MyekVSc2poKzBLRDI1UGwrWVBMQUZHU0o5dUdPd3c2K0JyTVkwcHZXUUs0Q29rN1FON0JBek9vRURmdVltenZDWUx1SGxlZFBES2hEQk1OT01JY3REL3NFQzAyWk11UTVEbVNJQUJYeHJNeGpacTdyV3d0REQ0ellRTjRiWFJCQ0tmQ1lDV2QvSjQ4ajY4WitSV0xGTWVqaURPdVFYeVdrQUZNenRUeFFBME9Ya1FmWnNCb0FIQWhZSXI5QmtUdnJYOXhCRU1mZmhzNlYzcjB4TjJtd0VZZlZlblJqbUYzK1dqYi9rTTNGdTFNUVpZeTczbEdRdlBwV0Y1VkFwUUhVVEFIUlAxY2JwUkhDSGIxWThJR0c3MHdNUnpnVEVWSWpOU1JYb2ZrMHVwKzAwaXJ3a1ZPV3AvS2pLc0g0aFM2SDlkT0ovY0EybUR3VHdheGdIdWZ0Wkx3VHFJb2tGMm8vQWpNRHhjQk1sS0JFTTRxYi9pTXhaejlkRHBFZUplcVduQkZONHpQNUtwWUxRN0YwdkFpa2JuRzBzQXZjUFN0UmI4eEU0ZFBhczBmdU9uSHNISkhyV2hlUHVkUmoxU3FQME9Bd3g2d1FDZXlZTlJBWE5FVDlwUTZDUGdFV29XbnpJNXFkbTRRejFHaGd4d1BMV21HMkdqS1FHVWVmM2VleklBTXZZbzJETFMrMkJ2a1liY0xoRzRIVnRBaW9Rd1o4dVFRelVRNTQrUWFRZi93TGZ3R05KY0phVWx4L0pGZ1FzZGw3bW01eG51VEpVY25RZHNPcWpZSGpvRGFGYUp5REFIb3JtbUJiVkJWQ2hjNjlIY09KVktZT0YyZ29iTnZrRW9nZjZJc3AwSlNGYStrSi9DUkJEMVZSQTc4aFNRSkQ5akFManpkSHlhUHZFemlaUkcrTFJHdXB1cm5JbGl0b2prbHNDNUJVTmVaMVVlQU9qZjJBYjZDZ2xDNm1ESENtRkNuc21sbERJVUhFemJtWDQ3NWtGeXJEWjFQK2dHZ3c1MFhYQzRKNFJCLzg3VlFId0dodE9TclZBVFp4S1VIWTZBQVpoNHpiSHRqNGtCZ3grQk82NlZ6QVdOOTZTWEVvR1BQajBsR2x3bmM2ZGJTM05relJucUhvb3FHQmtBZWdTMmdTcDNuQUc0RFJ5Wnk5dTNnUzVrRHRrWWg1cHhVeDNMSjBvOEpLZ2w4akFEM0c4ekFOUWtLSUZOcy9ZUExtTVBrWG1zYjZFNnhpK21VQjRhQ0JnTFkxaTJVajlBbW9NQnl1bldKeGlDaVQ4eHE1aEd6T0Zrc1Fjd1hoWnllcGF0WXpBRkJocXF3MWtHM2RRMEpvVEoxa3NjUXRIdy9YVHQ2WUdCSjhqa0dCUFhWUDFRRDJrRVNlam9VN2V5M1RzWDZLR0c0U0x5emZVNWp2SW5aSENrMnFqeEhFK3ZiVENMQjlGOUFwcGlTck16Z0R6WFcwWk81ZzJZWURPaW1SNHdpUjJCY3BNQnFPNmZCNUE2Wk9DTWtCa0JRTE1RclNMd01GaWNlem9Ob0szQXFaY29ITVpaNzVNQmNycGxYc3NmcWdSRVlyMzFPc0VrLzBBRkNMQjI2cFhmc1N6SUJFRFdMd3VPVzVkZ3FHajlaSUIrOWpMRUZGcVlIRkNFQ2cwM05ZSXBmM0F6UVlYa2NOQm9yNllQTlpPN2R4anBpRC9JbDAwR3NOaThZdmpMbTdmUlRBRlFPZVNIbC9DcUFSdTM4SnRXWGh5ZXlHdEJSQ2ZjVFFZZ2I4dFhxV3pqRWxhQUFMQVFOd0VDR0h0dTE1NjJpRzZlVmVtZnpEWURCcGlWMHkwejIxb09XNC9GYXlyVlFRNGxXUHR6RVRMRkZjTmUzMmFWTDFLUTZtU0FKbG95Z0p3KzkyWU1vSzY5U1B0ZzZhbC95Z0FlM0x6UURIQ3JNM1VyR2ljc05nU1NQSlhnZ2dFK3NYLzZQUWJZWjVhS2pCSStsdmk2RVpvYjhaWXRNTVNtaG13UnZmRnpCZ2gxZjZGck9wWFlBb0hVaFFrZ01DZHUzSmdqRlZWR1JKYllPajBOdEtRUytJUUVXR0JMVERmTGU4MjhYSEdJcWdNWUlNSGEvUVRxYWk4SmdUVURBb0REbEJnTk5vc1ppZXdPMFV0clNSeGcwdDc5VHhrZ1AwN0lEdDBxbzhZcm9qSGV2VndDRm1UWDMySUFINUVLSzF3eHdHVExCdDIwelFEanEyaXhaSURGNHBJQk1sWG4ya0tBNjd3eXVpbVJ6aHdONW5ZOUlEUzA3d0ltTVk0cHVZUUJWSmJEN0tWem1mcUJIZUkwcnc4bGF5UllPeUtLVDk5dVEyVk9VZ29BTERuSkFCWVRRaU54MHJuTE5pUU9KQTZRaWo5bEFCeU1YSEdpZVhPTVFiU0FPQi9teGRjbkF6QkErL2NZZ0NQQ0xCV0VzNVF2bDhnTE5aejhJUVAwcEYweUFIaGJkN3lyY3dqNnZLK09zb2pUQlBRRnd5QVhsVWRnd2gvRVlVaGEzbUV1T3lURzlBTjNGZHc4QkJVd3dkcjl6Tm5GVEc1T2VHcXBlRnFKMG1JVFdWTk9kTytGd0c4endQZlBHU0FrSzhoTHZRdERXYWNXS2I2K29BMzBsTkh2TU1DK2tLT1pNYW9TVDJ4MEgxeGRBZ1kzQU1NMHExOWxBTjFZZG14RVd3elE2Y0UrbUF3QVRpSzhOamxHMXNuYUZHRFFzSzhDb3F2L2w2NkNIN2NQUVd6RXBxSkpiWWplc2lFcGI0S1lEb3BrZ0NFYWRsRGpTZ0trNytoUEdZQ1lKSzZDTHdUTXVTc2xOV1orZllzMlBkTVlmb01CVG5YR29JQ201TXZWeUl0TEJ2QVQ4ZHZmSzVlQXBybGNBcUFEcmxhbTFOVU1vQys4bTZ1OUpjVktzYytZRE1zeGpKZFBrZjBsT2tCaUxoSjBqN1RuTnc5UkJTU0s5SnhBWFFibmhZV0NBL3RVcCt4YldUUHJjcVVEaE8vb2p4bmdFcTZkZUtDU2FHVm1pYVFObE1kQjU5Y01VQUZVeWcvM2x6dTBrUmR0QnVCYXhUMDdZSmw4MGR2YndQYzNBdlNSNjVORGtyc0FTM1dhWDE5dVlxc3hMR2R0NUFyMjdSeDZ3MVdBT09uYmh5RHBYWnJ3eVc1NHhWTTRScllKbmRRSnU5WnM5bGJ0WFFESDZZOFo0SGI2amFXdFZwR096dmZGQlFOd3Mvb2JERkNNQ0liY1Zjb0xPOEJOQm9ENWtSRFJKL2pTZkswaUExeVZBSVpaeE4wNUpDblY0QVFLMUdiRkFJUnF1aDVWQVVFSkREbVdxVUtUcGVGR3ZYVUlndjR0OUlueWhoUUI5QkdwVUtJNXhobmc4OERXcnhqZ2cyM3hmOEFBbVlpbVNraTVMR2hqRU03ZllJQVVmQ3FUODE3NWN0NDYxNWNBNUp2eGZmSVFPemlxVjdjWklGREw1UklRbHNBNU5vYWR6R0w3bm9zTUxnd2wwRGQxcGNpKzIrdmlURDdodjV6TFh6Y1BjWGZnaWVGZDJub3BIVStXYWdaUm9tbENBdlM5MVJLZ1lmdGZNVUNkZmlNTXFabnFVRnArZlVFYnl5c3orQ1VEK0loOE1rdEZmSGkrWElXOHVHUUFLcVEwV01pNjN1aDcvZHdaWkRMREVvenV5QUFKMnV3cmJsY1R3YnN2SUhRQTBiYm91YWF2RmxTb1BVTElEeENwQkVoUmh1cmNQbFNxVlRLbVpBNW95UlFjbVZKbGFJQ1RYQUlHYkx0YUIyQ2plKzF2S29IVG1DdG93Y2tGYmJyWXVLNS96UUFjRVlkWmZzUzk4cElDZWJFNXRSbUFma1BicGNtTW5zdi9jcEJ1NmdDWnM2UGJ6VjNBMkhHWUFnV0dOekJRbXRPdzBPNlkxaTlCelJjZUljOFBnTk9VYUdrK09kNCtWSUMxclgza0hvRWlBSXNiNWhvbVFqQUE1REFhWXJZS09zTTZZT21tTnFlL3VBMTB5MDBzTTUvOCtwSTJ5REhVWERMQXNQWUZjRVJ5cWY5d2xiTFV2TmdRWU5wbUFJZmVLWVQzc0ZDVTZCd1l3WjlMQUU3RGxTS3BDM3ZmRmpRZ1JqaFFtaHg5N2FIaEtFSE5GeDZodTJJdWF5djRaWC96VUtxQTJlSXBySXlTWDQzSXZKSUJ1bHRyK3RFbG5iVTlJMFR5SnhMZ3p3MUJFUXJUc0lYY0xtaGpTOWJjR1NBMWRRRlpGV2xnMjFrcVVxVXNlTWFiQVhiYkRLQkdTNXIyeVVKelloZC9wUU1zMU1teFdIQ3o1dzZmaFVjRUJVclR6UEhrTUxtcUFqVkhGaEdLN0x1WXl4eWR6TTU5dW4wb1djTmJ2VWU0K0dvOCtSZUdJS1crUlRZTHk5eGtnRDgzQlNjYnMvVTlJMVh4bHFhMUh1aUxncVpPVjdzdnIzaE83aWM3YURrck1nR1FOK1A5aTZHSVdENnI2cUpwc0JwemVQOXFGM0Q0QUJpY2tnMGpoM0luamhGVytyY3FWdlNKSFkrSVhTZHFLRnQzRjNNNWRqYXoyNGRLdFFxdE1nWDhrZ0hZV3FaZ2ExMDZVZjZRQWJEVnUrb01DamJtZ3lPcDZGdVZwaDI1WXo0L3lRQlVsUllJdHNsVVpXV1dpb20wOE92bTNtc2REVVM5WklERVQ0NUdxT0tqZFFQd2tiK3lBOHdialhOWXU3OE1BNlNCSm80Ujl2S2xwMlVCRWsvcytEZERQTUxnQ0ZMZWVRN3pPVnV4czdsOWlBTUU1WUJWbjFLdi9DVURvTG5OcDFBQ2QvS2ZOSHZFSHpMQWFYUExIWnhFUTNBYU42aFlzTXEzdEJCR1o0Q3N2R0hMSzhQU01DSjBwNkdjR3o4ODMrZmo0SzI1d1FCZkFlRlZuTUp3Skk5aHlvV2JVY0VJaHBJZ2RPaklaL3JMOEk1SyttNWdoSW5TUFFhSHNUU3FsNGlqZDRlUi9LWnMzWG5Wamw3TTVVaUlmZnNRZDVNSHJ1ZlFpekxTNkJjTUVBMEhxMjFnWmhMNFV3YllMMjhGaEtSbGZEVFJpc3BGREU2WkVzOU1GNTV2alFoNUxxOWVlNGVDajFFenpGSlJocWcxL1d3MUF4UkZXbGhYOEFYMXExR21ib0FZajl1NEFNdTFCVmpJeUdnSFpaKzFNYWgwRWdGcmNKZmtNRUNKdkM2MDJmQ0pBTEFheUhlTWJ1a1BMdWJ5OVBZaHFsWFFnQjhlVXNSaURmZ0ZBM2pqUVFhRVpLc1o0T09DQVJZbEEyVFcyK3NoWWJIWGF4cVgxUHlWbVRYWFNIWnY2NncwTUVDRVZPVHl5cjBlZzlJb0pqSkV6ZlBNWnJQWXZRZzhEQUZKL0tSaEZSODA5WUlsd3ZvSk1nZzEwQWtWQzlwdEZCWUVERnlCS2RhMmR4QThrZEhBTFNQTkFxSzhpQUVpdjl3VjFKTkd1dEtnZFBNUXJDNGVKR0lSVWxGTXJHQ0FwcmxnZ0NyNEt4aGdYalptWitRQmovb3Zrb1NreUMyeTNtWnVDcXdqa2JnaTF6d1FyZjcxNGdXR3RsbHNDT3RHSnZuZzhncThCSk5RZU1FVmlBbitpa3pUMlZoWmlhUWthb3RlTmtYVkxjY0tpUVVlRUVMNko5aEFCYW9RVngxd3k1bmlOMGw1YlVEQWJnd0p1MDhPVTc3QTRTWHdQc1EybzBrWE1vU01CcFRmYittYlFMam16dzV0UjFFK0RFc0ZmNEZVbDVyR2tlNWpkR1Z6UXE3cVh1Z0FHeit3cWxQejVZRHpCdytuYm9YUmpzUVZSb0NRbTVudWd5S2ROZGhmSHZOdkt6cGJwdUFnQnBSSktMemdpb2lKL0tVL1FMRnNWaXN1U2ZsNnowQUw0aWRQUU1YY094NzROam9ZVU5rcDRkOEVvMCt6YllEaTA1dlpLYUFzT095ZGdHaEhDSDk5RWR0TUlMUXlBR000TFdNbGRMc0k0cng5eUNPOHdlUVpDWjdKb25MVW4wQWUyMzg4U2V4dC9tY0hBWHFMUnRLb2R5VU9iTzJ1bVNTRUF4NC9jTmgxSzBwS0Z0K2xTa3o4S2dUQ2ZmN0MyaW9OQUlYNEd3RXhUUEpScE9EWUtMMlloRUk2eUNRUC9ncy82dllTK1g4OFF3SnhGV0FCVEVhZG5KNFJBSEliVGVkcjVnY0FrYVhIRWtBczBhYkVoQ01YQnJLUEhJRnp6dWNlNC9XNEVrU2FJZzRIUzZaTDdlQ2NaK05xMWozZVBqUjlKQ1lZVVM5Zy92amxFTnBTMDlEbVFPSnNXMDh4WG5jemJhTWZnSGdNeEhZTWYvVkR4NVc2bGExdlRGd2gvVXhrNGNCWHJvRDhwUU5KS1ZvT3Fnenp5Y2lSS1RnNC9DbFhnWFY3ajErUXVYV2JjaWJ5QU9MYUNLMnplRXU5SEUydVJ3b2haQmJ4SHNzUWttL0ZCZDZSMThHc0t0bVp0dzdNYjdCb0FyZFZQaGxpR3ZMSGRPVmh6ck1qYWdmN1BLdG4zZnZ0UTg1c1dJekFlbS84WlN0TmpycXRWbWlYYzRRcHhpbVMyQ2liOW5GQUtPbEpDcVl4WUxLQWVvNlFxU0hXTWpjRlp4SEdIMnlSdVRpVWF2NExkUzN0aDBNWHBUbnRwQU1UbE11cno4ZWxaNXc0RmN1c1pRZkNDdnp1OUhySFdxeFRUajQ3U0FnQllCTEFscXlTaDVuaHdIdVExOEJKalZrQmREWUNOWVUwdVZ5cGR1ZTVsZHpFdmlSd1c5ZklZUllKSXFRMlY5cjlYU2Jrc1lVbmY0MXZIeUpYazhuamw2ZnpLRWRkcG80blVibVlJOUJNWmpqT2x0ckpOdzZRT3Bta2dBcU5qL3c3dFJ0RXNERTNSVGxwd0FGQkEwRGNBVjdtb3BtNUtwQzVJMW4weFRwT015eXZQRUFwam93VEptSTliUkdUdlNGRkNQMEFMMkJNUnFRSENVLzJwa1RrSW1ORHJtS0dpZVo4eFJzVXBIWmY2NWNqMUVOaFJlSUtUNVRvVHJZTjg5NE9rQkk3aWdRUlVwdTY5djZPV0U0bVFhbG1YWEZvVmszSUltR0k3aTZnY1BCa2JqbS9jNXpIZGFLUUhQUXA4aDNsbVhXZUVCNjRURklnTFpaaUxuZUdXYVp1ZFRGcGtnWVlWYVF2NEtLWjJTM2c0a3BGN2drZDMwYzdlZVlIbmd3OWZ6eCtNeW5WTTlPeFBiZ1NwM29qdTBCQ1lsSklRazk2SmpkMmcyM3FzYUEvTXh5d0VIV1MydjB6OG16ZlVQbVcxVkxYMEhZZWJuWm12b1l0T0NwajRwbm05L0xNQTNlUmtJZFplbnpXYmV4M0pPa3BaNm9tSDRwOElaRld5bk9walBHVkhPYVVIRWFQbVNjSThRa2haL3FwMHpwUGlCK1lWVWtLNUVBcTQ4eDJZZ3VyYWRjWGsrYVlOTmg2RldwdGU4dmNXdWlaeTlqSzZmano3VXk1NUlGQXozL2hhdTRDbVhCQzFTdTVYK1J1QkFtSlNnTUpMYkhGa2RPRCtRMXlKN3QzVEx6MmRBRTVJcWtkYU1oTU82MUtIVnphU3N0WitvUVhpZzJBRmN3emdjUHpEVWlseFFOa2xwNndEa1NDSDgrTlJrazZZOW9lNXZpeUZVa0huUUFpRGlVNVFJZVo1cG5jaFRFalIrb2dPaCswOFI1MW5oQnQ1UzBZVzVMYmNUa1ZoS0pxcldrdExpWk5RUU5HQTMvVElBSUR4amwzbW9ZaU4xQVBwNnV2MVU5YkhBajBQUGxzcEprb21IQ0NNM3JYcTdMY0oyaVVpUzJFVnN5aFFKVDRZazRHaUZUQ2hxbkZrNXpVRU5pdXlGUU00Q1JxTXdETHg0anZvSWtxUDB3Wk96OFF6cTFpNTA2a0VWWDBUT2h6NG9SbWRrUlN3NlJXeXN5WjVRdkpLYklDM3BNeTRJZTBiemZRQnQ3RGZEYm4wRUdZY2VpSDM2UE1Fd0pDRWJ5T1cvZzFZWkREWnhXYmE2Z0FyVW1qMzBJYVlLQ1pBSVd2SnYxcGExcTZwWmM0ZTZZWDJkREUyUFFUUGMvb2QxUlNZc0lKem1oWWo3UE94VEpLNnhrTm9QZlk5R0orQTU0cGlnNVlBbEk3VU5wVnhaTklyVlV3UUpMb2dnR2VrUGxFSEdOZ1VaaTNITG1KUEF5QUxYeHBocERTUXpBeEhHa21NUnB1U1kzeUxPSnI2Vi93S2RLYkcyNk5lUVRzQ0JKQ0JPS0w3KzQ2eU1hU0FEb01GVUJrNUFuaDJ4VzNTQy9CL2hxaHNQNmZWT0Y4ckNiTkVrbXBBTnhGZUFCRk9CZUFMZ05uS0FGMDBKRFZndFBWa3o4eGdVV0Juajl0M01sOGNLdC81bjJBazUvUjhOQzZScEhZd2tRczFXdm1OK2gwc1IvR0N0SUZISDdkWjE2Tjk1SUJNclZXTW9DVFNEcmJTd0FFMUdwWGVRUU51VWt6dFZIMVRtYU93N3djclRWR01vWlJ4NEJha01obXpBdjducEk1MGtqSXdKRjJ3SVB4RUtpNkxPVWNnaVFybGxhVlEwVWk1bVBrQ2FGOGl1Z2lqR0RlWXVsQlZkckZ5dnpJUUFZdFhwZW9LaUowaXFXYXNCbGJ4SmNucFQ5dmN1aXZtU2M1U2MzcGFtbDV5UlpDS3FEblRaQTU2UGR3MEVCTnlCb1AwWU1IbVFXakFROS9nbHhIWWd2YnBNY0dHM2tzVmx3ZXNVRlhvTFFXTW9NUlhRYXlISzVNclpVTWNBYUowTm1XQUpDbmcza1ZFMkFTd0ZrV2ErZmRmd3FZVjlNUVcwYi9zOXJyZXo3R1NndENGNHlaSHhNaXdIRnJHcVZTSUFST1NKS2xBdEM2MjZVOFlZNnhQUit6SUZtZUVLK2p3Q3pLbEtIa0xVL0hBcG80b2FBeXlxeGtSdHVDQVF6ZExQRUI2cXJ2TVFXT3Bkdkd3Z0N2SVZrY1ZqTGpaTmFSUUlMQ1NFV3hjMSt0NVhseVF6bVZ3UEE2bndISFlZZzJaV2JISENNVXNaRkRRZWVpdTNmQloyWUw1LzhvQStWd0ZhbTFnZ0Y2U2d6eFZXRmdhZ2F3WkFvQWxCNGlLcWlPblRac1lBbnpZa25JYVVTZ2ZIeGdQb1k2elV3U0VGQmNCR0QzOVFJRElEWHpDSmd0MG85UUJwVU1VQmxzR2VUTVBDSHVRNkpta05VTDlKa3FjamhWKzZyZDRoWk0xTWljMXNrQXRodnFlWWtHMWdmRGJaV0N1aFoxcU51ZjZIVWQwZDhuaWs3RVJXbVg3cWNaN1czcDF4bUUybUhWekVUZVRqcDh0WVI3UWJ5NmlPVktqT2hJL1NQRDBNeEpQc1NMdFFMY1I3dElyUlVNMEtoekZjTWx2Rkl4UU5TdFVVQXBWaVRZREs0eUFLZDJGa1hpTDdsNDNoRGJXU0RqSVRZeFJ6bnpZcS9TVzVWNUJDempzRUp1b1JwZ25hc1lBQjZ5cldYTUp3TmdtQWVSajRVN1FOeGNJeWROZnJ0YVBsb2hRVWpYVVpqWTdZMmdMV1pwS3k3MFZxUWw0aU16S0V2YWlybzlkMkdtMkljYW4wVWVzSmhhcjJuVHdONTdtcnBwZ1VZQ3c2QTc0VjZRK0UzVExpSU1Rcllqa1lXUWx3aUhjOCtEWEVJQzlCZU5Cam5UUTFjeFFGYXVFajBnY2poY1k0QUM1clhnV1I3dk5SK2dFTENqM0VLbkg3Q1dSSlRhUWU5cUJ6UFVpbHNvYnVzNHlqdGRmaDhxaEtCMW16WjZJbTkxTEV1TVpXUlNJRjRWMjBSQ1piMk05UnFNQVdHRXRZSUwxN3hYRlF0RkFTZDVXbzZEbDdVb2s4bU1hVHVEWXQ4UE5kNzNadWhGWkVpS1VoU1hndVdsanVtVlJjZnpWMmJ2OWZyTXY4MEFaMFd3OHZHT3NVR2FxWjdId3RjTTRBc1NDbjVIdE1ZMUJraVlGem1wS0kzZlhWVmxBWkZPY2lLZGlLSGc5dURFWmRZRE1jNU1HTFdrR3BLai9GVHVhM3B6ZERPOW1GY2EwWHRrNGZaV2RDTnZVVmJNRVpwNHJSTnE0WDJUOWM0QW1aQUhnYUxNbFJBWkZ5UjJLTkswUmRXNEJRc3hvVGVVZS9SU2hKQUJGc0FIWERLQTJaM0FybitOQVpUK3ZnMU42MENueTFqNE5nUGtnclFOZE5EMktnTVVNQzhDUDhBQWhpaXJHTURUeVdGck1SajQ5bURKWmRhR2M0RmRYQlEyT3JOYmRlMDZTMEFmM1EyMXVIR1JCQ01LdDA5OXlXRXZDUlg2SXNyN0hiZ0NNbURYRmk3TndkZ3E1QXRwMnpTdGpBdno5VHlpUnlQanpScXh1aXcrcFdNRDVSNjluNFVvSGNRU0VBeGdoWlExdnREQnIzK0xBUXI2bDNhQUx1NTZnd0VvQmw4bjdMN0JBQW56WXJ4WE1JQXMwNWxPWW1hWVA2SlVyU0lWakVtYldHYWJOU3JMc3JiMGU2Z2hIT1V5VDhnbjZyWTFoOGdlNFdnWjZjM2l6NFNZTFpBYVEzc1J5NHRlVkYxVVFJekhxSVFXRHJIWWtBRXdxb1F1YnNNQUZldjFZS2NJOXFwb0xxcEtpckFJNjV1dmptZkRqMlhRYUNpQktaYUpvWmJSSlBqMXJ6R0FEZzBOa1pVbDhEY1lnTjAzR2FDdEFtNEtCcUQwTEhNaG9wRDh3bXJTUWZZU2Vxc3F3L2s4RUlJd2Rwd1FPT2tXOVhmdDRMRll2bm95OXN3ZmsrRm4wRmx5eFlvZ1hIaTBHTXZMdVlZYmpyak9PYlJTUGhsaThSeVdoaHhWWGJ4WXF3Ym5Jcnk2MDhueDhGeFpQWjIrMGtzRzhOQXo5TG84bklwdTZoUExmTzFGMXJiUlNDN1hxT0MveUFBS3FXUFc1Tk1mTW9BODdHY01rRWtnUE9ZN0dZREJ2c1NKZU9GVlJhbXU1d3RLemdLbTdOQzFsSktRa2RxOWkxUkY4V1pDQ3g5bWl6R3pTNlVOM0htUk9EYnR6YlV1OGJtcnFIT2R3aDZqZXAwQnRKbDVaUUluQUZSN0h3OTZHQmdJR2d5QTBMTVZlNTBCMUl4UTVyQjZYL29vb3VoNXIyRlJ5Ny9FQUo4ZkI1a3FGTG0veVFDT2xaMzhRZ2VJSkJBQjdrb0dzRnN3TVdGVUdkZkp1eHBFL2puSHUrc0hNK3NkS1AyU0czNWRJaWhTUzlhOHdwazl0RXlnUXJaQTQycWtIeG9RaktSSktld0xCbmk3dWdURWhzSEMvbW5NRDkxU3l6RzZFaEVadDdTVHlLRUwyTUxVd1ZJNkxGWVZsSGJMdjhRQWg4WVcwZTN2TGdFWjBObnR3bzdLMGI5a2dFZ0NFZkRPTmdORW5iak1iRERzaHV4dG95dDZGL2t1UkNtNkR0MHYwNldSdDlqWTYwS0VyUW9ranp3REh4ZmpWekFBVlRoa1M2bVZRR0t0RnRKU0FpRGhvaUUvL1FaUWtBRVJRZTkxQmhqRE9KRUZOc01aOUpjWVFLaGdTWmZNK2ZVYkRCRHlTTlVjR2NQYmRvQUVETlBnYzZxWGdNV2NIQUFaNTVqYkJGUzgxQXlRUTE5dWk2NHpRSUhzY05YUVd6bFEyVnN4UUQvYXp4Z2cxcWVWNm5EY0Jyb1dZUVdFaS9MK3hPMkxFQThkZ09pWXd4eTlOeG5BdlJrcVZ3NG9Bb0NZZ3BzTXdIVk83Q1M5U3hFbWZIZ3hYTkI2YWREOU5RT1FtN25SU1F2WUZRWWd6Q3Z4d3FkS0NkUnJtWSs3V2srSnYvOWZNY0EyR2NCN2U5NEc1VXlKM21BQXdGdWpkVzR1QWU5Wlp4dlZ0SnRhWDlCMFJZTmtBTDZRQWtLVEFaeFk2TDNOQU83UGxFbGpDY21GL2c1TXRYenpvNXBVOWlRUkdUbU9oQnJxSnVSaXVMQ2hvdC9xTnhoZ1hKZzYwZ1orbFFHWThpQVNRWllNTUFKMFVUNituWHFtaERGQ3lwclNZMkxIRlB2U05Eck1CRGFYT2dDdDQxeHZWdndQVCtRV2xyMHNGQnFrWG8ya2RYWXJRR2xLWVYvNEF0eVZCenNPbDlIOEVxaXR5UUFjUUd3am5BRml5RWF3Sk4xa0FPSVN0Rnk1ZUhOeEZqTmpVUUpCRWp1cDBwTTRYeENQNk5zWXN1cFZVekRWZ0o4eGdLZmVjUXg2QlpQS3NyekpBRXg1a05qT1pBQjRvQUJleGJFYkVxRFlCUXdkU2srQUxidkIvSmU3Z0NGeGxnbEN3UWNxVFdnS0RKaStiaGxRKzRUYk5XNFpPMHIvZVE4ZzA0U0htN0FuL2RKcStDbmFHU3ZrdnZPK2NrUFZackc5TFBDOXV6UWs1SnNobVRuczdsZWhpOFFsc0lTOXM4bHBIS1pvVUpVTTROdmJneW9Wb1ZmZ1ZMTHE0bEpnam5aUUE5SkhpTFdQdU1OZ0FMYy9iR3AzQjB0TjFXVjVqUUU0Y0ludXJoaEFvWXNrYWJIOWd2U20xRTgvcUFyVXpIN3ZDVFZsOWFuY0VXa0hnUGpEYzhNT0lPUkRGZ3lZQW8zVVdLdUorSjVIWG4wT3FsREtmWWRLNlJUMllRbmN2Tk52Z0R6T1ZrMTdiT29zTTJnc0RwUkNDS0xTWHBnU29ScW1WMFgwQmUwOWVFTHVTd2I0K2k1TDJJT2trVlhRVENjTG42dTBuWnA3d1FnWjl1azVPdGZ1c3llcDVhbFc4eVpOK2p1c2ZZWTdoSXRJcnc4TDVMTEdTVEVTcGwyV1YzTUYxMzZnNWI1a0FJMHBoM2pIRU9jdVFDVm55RFBEU0RLSlZacjgxTFZDSGNJY2ttdU1wMHVBaFJvVDRHc015RjVpdXhIcDRkWTlHMzFRaXF6bEQxejRoaXNUWm5BR3lkUktrQ25TKzFQaUsvME4zVTRMODBKT0pZUFh6Z1FONGtwMmsrOWliOE1KbGdJM0dZQ2RKbWt3d3ZSUTBKbmgza0R6bnREQkdIaGdFOW83ZEhyVVRwQmFqYjZkQVhzUlpVQVlLWEdIc0VVV1BvZ2xDeUk5RTVYR2dwSjFXVjRraTZiZ2ljeUJKUU9vWTI2VklGOE1HNmE2Q0paNVp1RHdvQ2NZQ0t0TU5XSkRzMjRpN0ZOL2tjdGxraDA4MnFEVVdSQy9nTExGNkxYUjExN1RSUUQ0RGg5L1J0K0ZzT2UwSWdOZ0ppU1FHQ1dwZUYrUVpkNExER3ZwVG93WXdyRUZuMWh2U3RoTklYQlpnTWREOCtHNFpLa0Ntcy9wenN5UXF5S2ltSVNrajlvTHZ6dTRORWk5QmFuWnE3R1poSkU2R09oK0NyUXdvOTgzQUpVZ3pGNmJZU1FRTVpsbGVXZFdMOERtYWVZT0xSbGczc3doVHZ1RGNxcHpQa0tqOWtyZUdEaTZDS1EzNG45SDdJNEVObzRSWG5QMEdXKzByQnkwYXdiL1JLQXRISTNxK2QxU0FiTUpOSi83aG92NUxISUdaY2s5MENDQnhGWk5QYjNNdTFWZ1dNdUFnb3dpTm84MGUwUENMbXVCZTJKZVRTOWh6MXFXckt6b3FSb3k2Rkk1d0RBRkV4SVNyT3A0MU1temcwdEJhdndBZEppOUc2L0JmTys0UTdVUEVTMk1LQ3VyT3owbW9oVDFmazhPZElwS3YyQ0E5QVBacWxBd2dCWWVvM011NE5BbzNFVzMzNW5nOVVoZzBldVp2cEVJZ0VrM1hQd21tUUlqek5GbjJmcFRyYk00TUdMam93L2hSNHZVeWVQOEFGVmNqV3pEZFpvVk02akkxMzlzb1lxQmtMUTRFNXpiVFF3cnZkMW9pU1BnV2hxZGpCNXBDVnpHd05ZbDdLM21kYVJxUVBPdzY2enhyaTJ3TjZ5SkhzaTVJUFVMb01QczFldlJwbzdKQWpxY0ZCNFRKanoxSTRpOWhVQ1E5bmhmNGRUdW9HUmt5WWRnZ0tacHNIUng5c1pVei9sNHRraU1DS1V5cUx4bnFtR1IyTzBRM2E2R0VDTXNqWk9DRWVBdGJEZWhVYTNlNGZNVEFWT2NRQ0NLM0JpOSszSUdaYjcrWXd0VkhMVks5UTVLbGdJcXU4a3krWlNsRHZqeDNwU3dJWEF6Q0xwVndoNkkxV05CNjZTZjlBYTBNZXFGSDRsSDFSYkl1WnJVN0JWc0dvdkY0ellKWUxWeXI0SHhpREw0ZXpDOXdkWlFhaGdsT0V3SFlEMVJWd0Y5SlVNQTRqbG5MejMvaUJibWZQVFFjbkQ1bTBvcWpLZVZjajU2RFhJTzg3UGhrd3M0MW9Sblc3WGdXbWRoVmhQdGZRL0U5elBSVmc3aUkrRG8xYXZhWHBsQlk0aTBOcEFZTzdhQWRyOEZXUmhXak44dVN4V1p0cm5vVmNoZ0NseURRUUE2a3lYc3ZmWWlrWk1WVlExTnQzSDQvcU5mRUhoVW5xK0Mya205U2R5cFFtcVJYWURqUUFnN0lLcUI4Y0F3Nmo4UXBaQ0RKcks4ZWpKTHdPa1NrSWxOZFhDSWtFTGo3T1hwSitJRllqNHE4YUsyL3h2SDg1NDRFdWtHMUxEc2R0UzZ0TEo3aGhZNkMzbzNLSnB1ZUduMnZpaG9GNTA2VGc0NTFEc1l1UHAwTVlQUUQ3SVVRR0xna0lJc0xPMnZnaE5WOW9uWHo5VlNENHpMWHZ6R0lmN0VQVm5RSHc4bVdvdGlvVVFSZzlBNFBTVEQyNXVMREZUWFBXVnlGMExjbGRRRjdqUTQzcGNYVDJMQnVVVEVtOHBSenpHRHVDMHFMYnFEQTJxS1JZUHVpRkFsMGtOYjR2MkZqWHoyWXBvU01SVHpNVW10WUdEbjJySEtxS09Oc25aclB6bGZtWVdqaEc0UW1vamZRbWVKWWNlQjZHVWZ6dzVNNDRaSVV1a0pZcHA4UENuOTg5WGtlZ0RzajBvdW9MbTE4U2lQQjZaMTR4eUdmdllhOCtrUkhMTEpxSitWcUlUazFTVUhZWlByUGFicDVtUjRFd0ljbjU0VXcwOGtqRlp4cHM2QTZ1L2tpOFNkZ2xTRURsUEJMTExFNmRuTXpxSWJSdjBYMjZsd1Z1cldSdkZDMktaYXhSREhxQU9RanBaNC8zcFMrMVIvcWI4UjJNQWxocEdOcDhlU2hpTmdabU1BL2hiU2pqR2NlWkZtd1FnbzkzdmthNUJlRUxSTzJSQW83NzJ1SUlGbWZJQlFzSDVmRng3NEdlT2x5TklacGlCbW00c3VOSmVoaW5yTmhkOFpuWWhpZVgxVkZGckxEK2ljaVp4eWRudzdSU2RLdkZ3SnZ3bVMxTkJScmU5TkpBeXJPR1BYSUowV002MmtMbkduSXdTc28vNkhiVEVaSE91eG1MUTlOVDNkUUNNYzNGUGpuNnNpdHBheDZnNUx5LzI5Zmtqa1B1QWtmZWZNSWFsRWZtTzJjZ0pUeWpIVkJZYng2YldBeStlU2JBTmNKQzZKazhCc1hMWWhaVW9vOTh0clp0emxnbGNuYllFK2NLUllnZjdtY01ZM1I3UlNNNlIyOHBJS2w2NERvYnkwaVBQdGlmWU1MT2RMM2JmU0dhOWZ3T2FJaEFUbFlubk05YkdnS0ZkVDRvc3RaU3VBKzZKV094Sm1uMEhvRExzRVRkRkwzR251ZXhuRnZHN1UxRUxqVTlhbFV5OTVHT3VpTm9KYU1nZjBxNU1CTnE1eEtHRXozNG0wV0xteWw3UFZwMlk1eUJ4R2JZVExveGVpYk9zMWxJemdXSFFJQWFhRzdtcEpDZVhHYWN5NGUrUU15N1JOMEFoRDJVaXlrQzQyQWQxRjE4WGd5ekwzWnNobXk1dWIyNWR5b3dMb2IyNytJVnVKUHlTRVdReUxQRFFhWW1QSzR1RlFrRk5EUm5COFVsUmJZQkJPTTdxa1pZb0NkZFF4MDNFR29VdWJPNllUVzZjTDNHa1p4ZHhuTEtiYUdNSzJHeENuVEtXTHdzcFd5UDZWRE1DY0pESnA3alAvRVJWaVR1b0g5dVpzTFJNVEVoczY1REFTTHUrR0daaEZ1bEZEaVdBQm5JUTVFa2h2TXgrVlVHNGFXckFEcFNTZFpPSzJJUmRJbTVZa3l4a1dCdERsZ1FJbXJFT0NxbEttSW5Pb2RoQUdqQlp4aUhUb3dOSkU0QUdleEVxcWdDVFFDRVdZTE9qc1cyU2d0ZkI5bTFrSkt5Z1RPaStMd3ZMOVR5OHdROHN4MHp4N3pQUW1UT0lMSnBmT1FGcEVNU000bGhHVEhFTFVRd2FlaWNEWGdHa0RvV1FzQkNWUUJaUzJwNGN5QTlvcDgxOWs5dnZZVHpQL2dnMHlzYUVkbXVEOG1mNUVIVm1GOEpoZHprdlI5aHdDSEpHWVJHZ21sRnNCVnBGeEY1S1V4R0xxUmtjRWZTT3poSk9sYVl3dUlXRG9ZVkdraDBZTHFscHNFenFqbk9Wb0VvZlZwRERqRURJRUttQzBQT2pqakxrb2gzQlBTQ2lhU0hBRmcrTnQ4aEpOeDJrYUZ2SGxkUW13TFB3cTZmeGd1V0hVRzFmY0tSMW9HZFdRd2JGcFBnVmJBM21EeDdsSm1veUw2V1pLb1BZYmpLWE1nYmpFbUxwWmpkdEVuNjIxMnFuQXdpdHVMREtpREM3Z2Z2VE5FVWZlQkFUWUdLQnZFRVNhbXdubFZtOXlaTnpsRE12a3JaaVltZG5GSzJXQ2xvRk84UUlaNGdrMmZIWkhtZDlyUFlabDg1REVnY3JNaUdicGFvaU5lMDFzSEFQRUdrRE5ES0QrWHFUb2I5YkNoUkV4NjZHaVZ1NGxmV0xqVWdjWTlPUjlvUU9NR1J4cnZsSlB2MXVVQUZIY3FZZXdaZlhrNGFRc2FVQzJMdXZNSXBVZkJCRVlGLzRhR2pEdlZMZ1l1R0diZVUrWkt0VmdjcWdvWEpYMGh0NUpLVWVSdzFnNitUKytYaFJyMWI0Rm83OERXaFlRWURwMjVDb01aUmwxVXNhdWVJWDdQdkFFSW1kNWZXUjJRV3BuakxMd3dRRVRrTG5OTE5wbGg2QkhXVExubEVYN1UwQkpjTms4RVpTempHZ0dOczZCRVZYSi9nRmlmK2xFUS9Ka3p0R3pHSzZqV0ZZRWl5dWhFZHJPSVBiVURVclVXeEZFTVl4eVl1V2dESXNpVUVYOTlKSUJuSzJ0V0FDSGxSSGRmV1hwMEJjUUVYSm5JRGZlVy9tSmQzbkZtTnA4cWpKWUwvcktSNGVBQUkzRFk3NHVRMW5vVVpCT1VDMldMVUlMNTFqZ0VITm52a1NPL2cwR0FKUGgyUU9NY0s4SjBUenphYW54QVdnOWFFQkZTUWdkUi95NzZtVjVkRWhuZWplRE9Qak1Bc0JZUm9IdHE1TDlvdXVmUGRneWt5ZXZOVVZ0SFJ3ZkZKME1pd3BobDVCRGVsc2lyRFkvL3dZRGhFRFd3dmU1QkJSc0xjZ2JobTdqUGJpSVdBZ01uWml5Qkd3OTZYMFVJOC9xc3loVWRtZ1dWZlNmem5QcE5UWnlTQTZtU3huTTV2N1NnUW1ZVGtFUFZVWGhhOERsWEQzSmVtMEd5SWh0Z1BsRCtnem1Ya1RacCtWaXJ2ZUVLemNQOHBYQkFCWlpPZWRWM0M5amxobHhNaGw2d1FCeUFrbUdQRXdaYkQxNVpsRWNIUFJLWUFyZWVjYnl3UU5aeTBvTzROc3pIVGwxQTY0K3J0ZXRHSGNXcEs0eFMrY285MExQRXpKK0NQc3ZXZ2dwVlFLVEVTT3dSRENTVlJ5THVZUEJFbEhKUHUvQzhKclBpZ0ZNN1NTc2l6QWJCbmtOazJZMFBWNnBlYi96QmdrQVZieHI4UzAzSlFBVlhxVS9kcjJOL3VGQlRDUmtNeGowTGNKam5nZERBb3p3N3hwKzd6TDJsWFVFa1BvL3FtK25KSmFsbEpBbU1Tek0yRzg5V2hkTDdwY1JzQTdFZVMxS0FKZXpvOXZOTk5XY3B3bEV4T3RXQ05OMmlHOHFnY1J3UWsrbkFPOGZYTDNNV015T2NNdTZaRVRnc2JYSkxaSUJzcHhDVVZJdjBWZnR1RlhLT2Fvb2tkbmVXS2VNLzc5YTh4NmRYU1lCcDVsNkdaa1Jiak9BblVJcjFueXVTcUxNQkdOQVRrdnBHZlFYdlo3SmZ6OVk2d0RDRjRTZExrOVphQTRuTWlMWTlTaUdsODJkTnJibm5aYmwvcm5aNm5tY09jY0FWdHh1RkEvTzlYRWdkZ09tUzZ2bmFWR1M1am9EVUFEMitpcVBzeElHck5YNEJ1dzdDQjJQR2dob2dkSkFZTWxLTjdhTnRKSUJvdmpMMmVIRVdBR3krdXpWQVBDSmk0dW50N0xxUWsyenk1cjNTQ0VjWlFDWWREUnBmcHNCU09OVlQya0pZc3E5SyttRzBvYnlFaXY4eTRQMzFTNkFLd1A4bFV6QkYwOTRhOWNaUXpxOXhRSVJUcDZSY0ZyV0k0UnhqblNHbmRXR2FUS3FDZ2R5TDJReGNEMmtTVkIxcnhhYjhlUWJET0RCVG9hL25qdENDQ1ljYkpZQnFMWFEvNnFDYWVKYkVyV2lyVndDT05ubFBDK0ZHelhRR0dSL2pRRXE4QTE3YXdhNFd2TitvOTdkL0RMNGZIL0ZBTHdaYUN5TUppdzZrczJQdm00VmZ5NmZyNlRmV1ZyTTNad2pXdG9CTFBCcGlFVHlwYVlIR0hjWjU4dzlwNkRCRDQwU3phZHowQWNpV0kzRlpBMk9nVjdlUFZlbFE4ZjNqRDVid0c3Z3RnWnlEQ0tsSWFQNExkY1o0SjNoam90R1NlMzJJVXNyQ3cvQmVSZmxBYk9HTVZzTmlPODNJbXNyQ1ZBSW94RHFUaE9BaFpJQjJxVG0yQkVYMEZ0VkRIQzE1djI0WFF0cXR2OHRCdUFrMzVrK2g1eU5DdFhOOVZlWlFSbEF4QnRTckVrSGFlbEdLbWdOS0Z6TkdPbVNBWExreVRVT2cvN1EzZWJPQmYyMFBpc3owaFlNRUhWajdDU0l2QzRzTUgyTmdhU2cvaFdhcG1ZQW9wT0F2eGEySlA0YXJnQnR3Z1NqODBYSncyamtMSUlPTG5TQTJLK3ZmUVZnZGtPZWRvc0I2cXJuTENWUjlGNnRlVC8rZzJwd3d3czQwZHdZZ0g3dVRvc0JWaU1xZ1VxellJRDBCZXlnSi9iV2JnZXJHYUNTQUJtTWpCM2Z3RlU5cHcva1pKbVJsaE9hREFDOFlkd0tIZ3BZNXRhUnBlaVBHSURTdE1aZkV5RkZFMDZCeVhTalVaYXZnNG1WRWdkZ21wb0Jzckl5TkViNkU1SW12MTRDN2d0NCtDcG9WdFc4LzJNR0FFRHEvQWNTUUFmV2xjQm1vT1RqN3AyT3FpNU1BQnBKdkdDbWtTczZ3TUV1aXJRRVBWaDBFaWRZNlFCVlJsb1NUbDhPWHh4RHh0eHZxR1ZZb0RSTHhha3NkVitrR1FITkU5VE5sK0JsaVpGY3FKaWVZQlVoN2pHRDk1SHdiR1ZLQ2k3a3NHTDRKeXdmbjdYVjUwYndWTXh0aDNTVkFiYkVnSEY1SVlwVUVUVUgxOXZxbXZkL3lBQXkrTmp4L0VRSDJNMjVicm9TT0RJbDBIUUExeEJuY0ZVREJpQ2tiRVFsd1M0aENoOHhGVUVBWHhObUNDWkUwcEplR2pMQitFYVdseklqN1lzZkdFRXFjOGlxM0cvYkNkTWtVTnZMc212ZEdqZEZVc2NmSmFxL3RQbjV1RUZMQVZ0VUpROWhrNFQ3cjhLZGlReHNIS0VFQmdqejFnS1BBMVdXUkY4eEM5RUZBNGducGxOWnFqRmhrTFBzNEF4UTE3ei9Zd2I0NkJNZzVma2pidXdDS0xCeEVBelE2ZW0vc1VlYzdTTkZlcitudkhHV29XcUJ2blJGd0toZExFTXdoaTBpVFU2WWlMR1hNS2xmNkZpWTNxamlSd1pJWG9MbFNOK0MvVC9McW9IUndiaVQ4Zkx1cTJML3phM0hJcjJCZzhvU2FCcWpFNGxLb0ExclBHNG1EQkFaWWo3VnFtV1FzVElYaEE3M1I4VUFtSjM1UkF4TDVKVnNuR1pWemZzLzF3RWF4WmpNM2JORUhyMXVCd2dqUVRJQWZtWmlFL05WckhlOWhVeDNJVTdjbEM0V05ldGxQY25TOGdyWG5KdTh2SklpUERwRHF5bk1hUmR3VDVpQ3E1MXo0aGhIblRRZE9tb1p0ZFNaYklQZll0MFk5eXB2SDVPUHVKOGhraE5IUE1ENU1uai8wS2ZCM25kRFdBTG5rZkYwTHd3dzgrTEtyS2hMbTZkOGFlRGthZ1pRWjF5VFQ5d1VtV1huNjFoVXE1cjNmODRBOFByQ3QveExTNkFkYk1UVTBqUXdad25yOStzNjExWmpWNFIwczBzR0NDNVhpUVpyT25mQlNVM1RIVC9sREZneU53bFd0RU5od01uNnpnTUVVN3Z0ck1BeERteld1UE1BZDBJS0xXVGpaQTF5M2dmZG9UR08wY3Y1SzUvUGt4M2ZSUCtvWTJ6Q3lVMWNzQVVtTUM3Q1Fvb2lESHdHSGVBOTY0QVNITUFVKzRHVGF5MEJ1cUZCYVU1SDlXakZOZWFXRGdhb2E5Ny9PUU9zcEVWMHlVOTlBV01YOFd0a25qenZrTk4zWjNIT0pzME0rNlFMaU9xSFpJQnc0ZEsxQi9kN1JscWtsMUJrSHIycWtLVHUrS3BLOXVNRmpYTDBCMU0wNkx1Ri8xZ3ZOUGRoSnRHVGxpQWIzZ2ZkaDc3WC9YWkRFRWpOUUtIRVRSVXhnUmZCK3g0WkVhZ1pCQldPaWpEd08xUXVnajlnUVJNekFVMkprN3ZRQVhyck1xb2dvc1dscFZwOXRlYjlIMjBEaDhPSUwwdHY0UHpTRzdpTVBQc3l6VERQbFA2c1czOGtBelR3N1BVVnB0M25STThxNnlBTzhpQ1FtcTYvbU5OTGhDNWgyVnhPS0hZUFdiSWY1U05rdkFodVRGOHB3R0lJVmNCY0NwRE54aW9zREJEQ3d1QUdsQ3l3ODlIZDI3SHVkNGJjWUFMTHlRaGJZSW1TT2p5akhielAyQ2dMMEdOWXNVZjRMSFViYUpXTFpDWms0QU5DVmlIVmQyaFVNSk1CcklCeGx4aXdZOWFYcUswRDdacjNmMWdVL09rcGdrZG5QNHNIeVB5RlFwVkd0eDNoWHAxWndSaXJ6enRFTW40OVROSEJwT05HSElUM0VHWElyL2N3cmw3anNHeS9CRjVjQWlFaE5DMGthSFIyMzRkRlN4anFWUW5OR0RMcHRnc1lHeGVZUTRKc29oRE5HZDFlOTN0R2lMTlIybUthbUVuNUVoZEFjclRLSjhySkVWTHJrWCtBaDk2cGpLcWNqQlpLYVhwZGIzZm01clZPQitXVkpCd0R4SmpzTXYvSTFacjNmMVlWL2lWTHN2MHNJc2psRlVkZmptVXAvZStNdis1dUtkTFduT2dNL2F3RC9DemUrakZpQlFHUXprckFXWmdkaHdJSWlYY0E1VXp5Y2tMYSttaXlWeGZJcVBITzZGaGlEalB5MlBGMDdHWmxGZys3SGFKTlBLcFJ1aStRUWRJcWhBS3dKU2d1T1l0cWFsbjVVT3NGSU5XN2hnNWtob0JqZU1yNnRwV2dxN213QTFTMVpMNElpcW1xRVR4ZXJYbS85RGlSQ3daZ21vdktOVGlXQnBUSjhXY3hnY2RUakg3VXg1aUFMbGJkeVVaNjh1elFYMXhLMFFFWm1paFRZZzl4dnd6bFRsaDJwRjNvOEpBRElma09jalBHaFdmRUpBT1dDV1I4TGk0QVdPL1pzUWMxbmc1TmlCcW90L2NNaWJlNDVxT0JqdDZyNHBZQXhDaWNMSVAzdmJ3c3dHaUUxV2dqUEJnTUlPdC94a1BKamJFTGlQUy80V291TFlGdlVVM3FCMkZ4clhvazEydmV6MXJWN2NBQUxOV0V2VTJhenNBZjBnRGp1SXdLbmtSVThGZU8vb2dWOHpITWpsckJTS3ZNMCt1bDZlR2NXQURjdElQOGdTWjhkcnhBd3JLSkdLSFlWYWdCeVJrRTlaT2RwQWFFU1NSSm9FejBnRS9VRExFbjh1VGxqZDFLT0paOERsQU1rUTFhZmV4NHJiZ2xTbUxPck5Kc0FCZ0pLUTZzRFdBelFBY3pWSVR1Wk5iNVhUS0ZSWlZpYUZ5VkJIZjRtOXlFNWJxZ09EQ3p3YTJhOTZlcXZpVVZUdS9SNTRmeEhJZFJvUStJak51NEFEbk0wU2VpcWtLdGZSR2RxVEtQME44RW1RbzVBYm1yWUQ3YUNFS3g5a1poU3JIclNLL0VUTEV0Q1c1TWtxYnNmU1NXTEJGTkozbEtZQTZCR0dUWlN3VzRFZU5tM1VRWWd0VHZEaHFXRytzaHZZYkZMYk5HTVhnUzROR0VNQXYzNnVxU1dCdWhzOUpmR01DaVFnY1JFeTJ6aHRqK1ZrV0Zka253MCttb0wvZVBOSlVDdGd6bVpMbGE4MzdmcW5CNy9NNXlqVkU2S1lvanpUQW50QW5HNmlveTZDaUh5OUUzWkRBbkZGQ2dPa0FFMkdMQ09jaVV1RExJMEVTWnNrVHRpWUJPWUtiS1NzQ0I5WlFqTDRTM1RjZUduREowWXBSL0R0bkxPUXFLQnA0ZkwyLzNjcUllSWFQeE5zcHNpbUpEWFU2dE4rOFlZNityT2RZcEQxVGl0NVY5TzJhVmNodG9PVUROeWN1akJ3YUhXQnZRLzk4N3F3L1ZBZEtDdFUwTnVwb3JHaUV6clpMZytuUnR4Z0VVeEc4NVdhN1Z2RC9WTmE0eFFkaEQxaFdDRUpOSnVDd3BwY0swWGM3NWhDRWtVSDVXb0xBcG5EaHZ4c1R3NnZWVEcveEVsdUk2LzlzaGNUaWJRRlRYbURZT2hBT3kyNTlWNHlGTEljdS9nTGdLS1F6VVpSWmVQRldEZ2F1QmVzZGtjYjdJTEFQSy9UYTk4RllzMUl6RzRtWWdWd3J5U0dNQ0t3YnNIcXZFMmlnRC9QdXZ4Z01BRUlJUythQnFwaldJclFRT3RVdUNvK0Y4b2IvRGMzT3lIRSt0bXZmc2pTcjNuQ0NjYmV6SnlZS3plUXdaVFZ3TUpzQVBoL09STE95c09HKzgxN0VFclJKcmoxYlAraGw1ckYwc0U2V2JzejQ4ZENhUmRWSGp1VzV2VlBtOXFqZi9rdjZpUkgzZ3JxSGVVM1h4RWFYSW5BeXhYSUl6b3Z5eFRVaGRITEhBNHEyOEhMMDJGRGRqeHJCVTVTS1JVVVQxcjJCZ1paSkFaWUQvM3NtM1JGS0xEVmNXNUM5b3B4ZzYxU1hCVHpFMUFiVWxRRHd5SnNUbU1KdHZTS21ZNEZqVzNaYkhKZVlRTnpadHpBYUNpSGhjSEhrdktpRURKZGhFc1pIZklhTkdLVndCN1F0dzdjdDFuenBHRnNzazV1bTV0SnFvc0dQTlNmUm53NHBXQWgzanI1ZVV3akRmUncxVVdtMURwa0pwVXJzT0ZHYWxOemZhV0NhcEFlOVV4UVptQzJJWkVodExCUDBVZllhMmN3ZnNlVzVCYy85Uk04QXBrMXFNSVNveHM3aGppTG1LQTJWSmNJTHhNYWhGaW9nczBmeHRPZ0VicDRYdnZUSlZDYmEvSkd3TGMvajluVlBFOHJCZ29UTXhpQTRxNjlxZzk4bUhVR3BTL1UvUUtxNXd1TzZGNXE5ZlRIUXZ1NGw1cXRObm1NTHJtTEpzYnJFT0lTdVRrSC9KbFE1MlpNQWViRHlaN293bDR1Q3pmNElGdDRjdHM5QTdjazBSUzN3RzlrM0loNmVQdUpTREFkS2xsK1ljbHdvOXV1MFl1aDdiL1M5akFKbTc0eHJHeitVYlRiaUNmOWFsMThzYTRLZGo0cXl6UkxQaHFOREJCc3VZSVFtaHgwKzhiMGF1b0lJZmU3aTlJZUNaMTlDTDFtd3o3MFZ1TkZTRGdXQ003RHlFREJLMFNxdzlFTTczMWQ3ZkNsTGp6cTFpbVZOemlwYWVFeXgyWGc2ekY2MzBXVUhJaWszZC90SXJEZXhZcERtV05oaWw1MVorK3NFdURDY3d2TXZmYXMrQ2Q5WWRHZzFUMitQcHUxekt2N0xvdzZlNzlPU0FPY0xDMld3ZUgwZCt6STVrQU52WlloVnpHUCtzVEtyamlHRGFwTkRhTmNBTG5IV1VhQ1pQcnJJRjdHcHJTVXBHNklOd3BhdkNqZHEwNGhHa1NUQ3JaV1lpaGdBZE5oRmhha0E1TnhYTHoyV2hXMEpHdFFWS0VqeFZXUC9BU25YTnNUV2hoWXdDVHQrcE1zQTNoaFV1OTZJcFdkcWw0eGptd2JCazJGS1pmNDF1M25lRzRsUnA4QThMNWhZWGVsdmx1YzNKUzNZNjhBNityNVRrRUVvZTFoTmhYVnc1bmtQc3Y5S1ZEVjVGZXBqL0tBT1liUXVybU1QNE4yVmFMZjdKSERMZmFPMGE0SW16enJxQk5QQ3NvM0VVMzVtcVpLZEVJRkp5T1MzcndKMGR1c28xek9Ic1NDYUhja0Y5ZEdDODVTTExXU1lYQ1FWWnlVckZ4ekpLUFFEZnh2S2F0UE92dy81djFnL2pWZ1kxaENlbkRnSmxMamg4UEh5OG41bkluZ3dRMFhHQ3ROUXpHTm9UY1VlMGc3dWNwdFQrTEJoQTJBOFNBRVcrV2RVNkdHRGRhN3pJZ0R2RGxkZUx5bytIZVlUMno0N3NEaWpMOE1vSzhGL3hCbDdDK012RWVnNUFZeUpSRzROV0RmREVXU1BUUHhtQVFGODJIOFdJUWRXNk9qdzVRTnpBSExxYk9mT1dlMFlUUERlVDFETDJSVk11dzNNdXI2QStHTUM0S0JSWjZrR3g5Z05NdXJGNytyS1NKTjZBOTBJQVJJQW5MeGtBWTAwMzhxSk1aRzhMYndZWlRURGFrTWZwYW5jR1lPakZDNmRuR2VLbGxRb3N1anhRVExMZk1VeVNoQVNEQWZCMGVyUTJLTjZhUlI5Njg5S21EOEhnd1ZzT2hDTWxqUUgrNTQ2K1pqZzlITTlVcHRZa0lwZ2tZRkh3dWdZNDEwVGlyTWtBbUw0SVFHVmptSGFad0lRT29Nd1VYSWEyYkJ5OWxTbHRzc0JzVkVyVUg2d21NMUZoWVVIUVVFRUNtWUNRSkpDZ1Jsa05zZ3hja1FZWDJONEdmSEhKQU5RQUxYd0k2WlNaeWQ2b0VmbTBRVUVyZkRGa2o1NUFobVpGb1FjR2ZySVFodGxJTzhZQUhVY3htYkdSK3dWakFDRUltQU8rQWlwTEpIUXo2QzA4R0lvbG1aUHVpTnlNbExCQ2Z6QUFJdm9HRFp6cERLVWxrV3d5RTVlWURQQVBHU0REZ2kxY2d6aHI3RU9ydWhObFdZY3BvZndxMVRVVHJjV3JlT0JVNDhGdHZBWEw5cTROeitYMVJTUHZSY1JGNzliS0FCYjQ2d3d3UyttM1lpQnNwOER3QUNXNW16UEV1MFRVbFNGNmJRWUlEUkI1enVIVFRBMjNxcW9EWXZYaFloMUZkWjFnQUlKd1NSdU9ybVcvTkFid09lNlpGRzA3UkFaUTVnQ2thR0tWc00xMHo3cE04ckJNKzFxdEFmeGZIdU1LOFAvdTRQYVJTUVpKeWpDVzBpZWJEcUMyQk1paURFVTFxUTR0VVltOVE0bGt6NGlNdFlNYklkTzRLMHo0cWlnT1JqMXlvcXBocFFRaTUzSTRIRHRhL3czZzhoRld6WTR0QWZicEpJYktaWXFtS3Q0NVB5SEN0Q2twb2IxZE1rQ2hBWDQwZEdxalZaV1IrMFlsK1hTbDF5aFZnSmdUckd4aTYwVmtZOWRkS3huQVFwak00WWpkaTFxQ3lBQmtEbTA2MUpSMld4WWt3VHJBMkU2b2dUd2lmZWRZaW5JRitIOTM5T0ZxZ0pOSHpGOW5nTnNTSUpiMVhTY1R1akxMQXVhQXRLRmxSQzdXamkxSzl4V1ZDT1pLUFZESFZ4SFRJejNOY3lKNkd4MVBZcU5BSVlCQll0V2tUeitwRjRrVVhoOExkN1BQK1dTQXk0cEROUU53YThHeUdCYm9oa2IvRjVWVVFLbzB4R3FOcGNreEd3L0pBT3doSG9NTWdPQTJNb0RPY2FacDVhMlh3UUJnampPK3FOUVJ5V2R5MU5PNEk5MVZ4dnNWNEYrekFoa0Q0SHNTeGovVXFmYUhFaURXSDIwZVZwRzF6YmkxQmllWEZ3NVgvdW5wQTU1a0lURllTbk10U2dZZ3REUWtnQ3dSalhBQVYwMG1PZHJBQmtEcURlSHR3TGNWN21ZQWdDbnpnZ0VTOVpZNGpXQ0ExQUIxUUhlc1c1VGhJaWFoaXBtSU9EdGlBT1VPR1ExanNEc1RPc0VBczJBQW9KaVE1R1hPV04rQ0FRYVc2cUpoMFdJdWxheVhNNnJJL0VYMUVjOHNWNEJqckFCMzlPRWovTVVEbHY2VUFiZ0RXVGRsVmhwdWloZTlJdXB0ZXAwQjBnZXMrbzNyQUpCNnczSk5xQ0lLVXdkWW5mVXhMaGd6aDFxM1kyZ2RFSDh5d1lxWmp4TFZOMGNreTA2aTRsQy8vTEprZ05BQW9Ud1dHRnd2d3JRRXFBaVVzQm1oc3pGaDUvbjZjNFQ4Rzk3cmdnSDZhL3QvMVo4amp6c1pvR2tRRzZ2YWJVUlZGZlllQ3pMUHZYN3VEeFk5Y0VnYUFiZ0NNRVhNdk9jRnVuK2hBOEQ5WGpNQXNWa0xvcGNqdEpMeTA3Zlc2TDNCQVBReUlVNDJUQlhNdkxYMmhDYVhESUFmR25HdFk0SlZjK0JKam96OWVvcmo0aTd0RlM2dGNEYy9VOW5MMEhMYVREdXE0VjFuQUdxQXFKT0xtbm9mQjJ0a2dBUlV6SGVReElpMEhBUkw1K3NibTF2bXpvSUJIcG14U1pVWmtTRDZZWDRNbVI3VmZObFRRU2ZjbnRWS1dQa3hLdWxSamFZcGdBY1ZGL1ZSR3dGMEQwQUdrR0xlckF5QThmZ0pBOUFRZUFtc1JPU1FDdU5EUGFrTVd2REIyakEzR0FBK1lPUWFheUlObmxWZjJHWFI2UEh5a2dFc0RWVmZ3M1liZ0VjanlSRzU4dU16N1RRYUNEUERvK1JaQ082VlM3SzhDZVAzc1JHcEdNQ3pSSm5MbFVtQ09sQ3QxbXhrQU5OOFFYSE0wN054NW1XaG9RR1dDWkNrR04yTitSaWd6S2lpb3N0OU1BQ2VqWjFMTXppcmlBQUQwS2VFb1k1V0xQWEhGQStzYlAxYXFZQmtBQzNtM1V1d3oyMEdPQzNSS2dZSVN2ZDJ4S216N2pvTTNRWXVDdERGZFFaUXQyM1VENmVkMThMOWU1NFJBNDZKbWdHWXpROUxwUXc0eHVWelVUSUFRcmREUkd0OGhYcUlhUTFHdERldGprVWRJdXlIRGhVRDhDVlRBMXlzSVdzSlgwZ1hlNkVFSU1vYTFiaTRwNmhxelptcUJwSVVvd3VIQkUwQXFxakl4NlVOQkJaYk13RWdJeFlZQUN0MkxQUGt4bFQyUzFPQUlOeWlPQ3pOd01rQUtPYWRxTFBiRE9BSnVkc000Qm15OUVtbHllVzhFN3NBeXZCUmp0OWdBQjg1Z0toU2gwQ1dEcXhMVDRpeXF4bUFHWFJScUFRbUFCa1hwNWI3Y1d3Sm9DYTFuRmtNZTlJZmVSNVZ4ODQ2UkJxODd5U3JHU0Ewd00reWxpMmE1eGhkUnZsQzhCQktNbU95dDBLaWJhdUFmV2ZKQUhnTG1nQmt0bU01cCtYdVpFWnNDRHJwbncrVUFieGMxck5qTU5ESzdYNWhEdTVidm9mS0NKQkx3STRXcTU4emdQaU5HSzc0NnhRaDhQcXBxMjRTRlNJbnJ6Y1pZUHlZOE1xdCtub2piNEcrV3RUN3FJUEtIUmpSTWNPNWduLzdCUGpTa3d2RUxyMjFGZ205bkZLMVFJbEJmUmI4aDR6ck45d1I3RXF4WUhsTnFiUUJIdGlJNzA4bjluNldObm5sSVZobmFabXBVVEZnRWhDcXRRUjRCU2RBZ2JBeGg0ekNDRzJOT1lUWUZGUzR6dGpTekwzU1NFZk9kVFVIOC9qbnBSRWdHWUFFK1JVRGlCUmlBTXZsRXJDZ2FhTkE5SG9PblNMdS95WURKQVFhSllBTXNVaVpsQlYvYWdid3dpOW1BdERCd1pvSkNhS3hIRzZVVVUrWHgvWElmS0ZxQVdpSnh5blFud2wvWkJqVG9zQVJmcVFHdUdiRDYwK3NXU0JrS0FGbW5GYkZzaDhxUU1rQWVETm81VG02YnJtSGd3SUpsaXlGWVZHREVpYUExWnJ5aHd4UU9ueWtxVWt3VjN0NDdzeFR6RmlSTUFMOE9RTkVVT0NrbmRiQzY4ZVh5QkQ2MGkzWnhlOHhRTk9RU1d1T3lKcGZOUU13cUplcnBnNk9Nb0NsbnlNRExNQUFtZStZdGN4WWhyV0lVNEJIRXFXTVRPeGtRZm5kemp6WmhRYTRRa1BHalE0YStCeExtZnM2c09SaFY4LzE1TDNTWVFFTjFqRzVaSUM1MTJBOU5PbG5vcEZKSEc3SUxTdE54UlJFZWl5ZXlGMm14c1NxSWdEV0FMRE9wUkhnVHhrQU94RXJmbmV0UXJjdUk2dk1haERscUNiaEVQVmVTL1RTV2dLSyt2N1VwM21aV3RNWDF3b2themhoWUgvbHE0Ry9iREpEU1llcE10ZzhNcEpsZUhjWnB4RGlkNmNCT2ExeWx2UEdUS3Z2b1FHQ2M4eksxR1B6QkxSTE9ocys1U3lXeDNhSDA2eGtBQmdUMUR4WE1nRERIVlF5SVpONGVwcGhaQUw4U1JVdDVxRG9tN3JzK2JYdEtmR0xETUJvTVdBeGFpUEE3MGdBNUVISVYzUmJCTzJvemdCbHpydEJKTHRBTHdSdHB4TU1tbFdpTGRWQk1BQTl3Z1BpWWQwVjNJQlF1K0NmRmdQUUltR2FNVktSeUtnbE50R3lLbnBMLzQ1MnQrSVVaaXo3T2dkS2xBVWN1TGlSbzhscUxtcEJvcjQzK2tWRDVUS3FVL1FPTGcyWkhER29DYVVTaUxDa0VSTHpOTmJJQURCQ0FrcUdPajZJTnhxTUZNdm9HZmFaaXJINmhZalN3R0owSjI0Ry9wMGxBTGtNUkhyU0ZsZjJhN0sxYnJyU3VJVUNadG9IS0ZJa3NuQzdwN2ZreXE0b1hWRzVQLzNUZmJlS1pIZjArMFNlYmFEVDlGRzNHRURvdG1Qa2o2WUp5dFJWZlhsQzBHaGRaT0w3UEVTck1XdUlFdW14SXA2cjlCRytvVnhHZndObVFEWm5BSXB4eWx2UHo1cStyQzJ6Wk9waVF1ZUgvQzYzZWsrcVQxd21WQ1UyQ29DeFYwWWNodEV6dzA1aEZKakVMeFRHU0N3RzlCUWdnc3dPOVA5dU1BQzltaXlhbjRrc0k5OEZjcitCZzl0NWJ3OWVEYlpNa1dpNCtGRlpmZFNzTjdFRXVHa3BTTXVwWk1rUm8vTHN0UFFGTUZXOFllUTdwaWhDQ1V4UDdxSnNCUVAwaTFZeGdKVWJXTkVGRjRXV3NNMEh6ZWxVZXVFdU14dmQwQkJsSVcvZHpzNWpYR1pBVTVIbS9GLzNpUUo0WmpIYWI2ajd4ZjlzVjh4dzVqZUZGTnlyd2hxYno2eXlZMjdEOHRjK3dYR0J4VGdwdm9HTHdBMEdpRVJEVFUrVENzWDhtMGIraW5WcDgzT2JMWE9MZTZZS2dxL1JHOGd6TUl1ZktvU29HVUNoMnlZQmFIYnZWT2kweC9RR0VscktHRk1aSmdTa2RubzJtenc4cjI2WnNxTnF0a0NucDlueDE4c290WmJhQTUyd3ZzZFo1WCtNUktybExiRnl1Snd1YXRPaXQwRGR4UDhTOE84UVFDRXg3ZFdKSWRnYmxBeXdsVEh3QjFuRE1xRW5qSy8zWDRZclN5ekdWQnJCSmx3RWJqQUFCZ1BSVkdXZGk2bm5ySVY2a3NXY3E5ejNuRDRKdmtadkFMYkJMSDdxd0RKRVV3bWtaNGVLQ3F0ejFPaTBvRkk0T3dpY0ZsK3pOS2pzWjFmWkp6V0ZxS2dyVzQ2OFpaekNLYXNsRW4vTkdzT1FwOXcvR0VBYlRpWHdYZGtZaTFqTDI4REtLYUdFZ25oWm8rbEQ5YjlXWUFoRVJvVzBkOEs3SFVXMExOb01DQ1NIWUtBNURLMUMyR3dBWlNJRDhJS3lhdXpQR0lBbEdBS016L2xIODd6MFY5VW9yR0lTcGtkV2cwM3dOWm9EdGkxK2xLZHFNOHdvNGFoUTFkUDFubVZqV1cwcnFVUjE1anVnSW1JcXhqSE9KcEtyYWtvU1pOWFlWczBDdzdOYUl2SFhKTmhEUUIyODNCa0NzZlRsNmdhWklhMlV0NG1WQXdsUmhwYkF0MGYrTHlGS0xKcUhzM0NUOTF0Tlp6QW9XamVoZDRteEErck9RU1BFUnljOEkwMEJZQUFHOTJXQXhwUVIxUUhHSnpyVThsZFltZWhlZVA1UjdjNHgwMWtOTmhKWVZNSCt4SG9VQlg2eHdMR09vcDZJVzdJWUdiU2VSS2VWVkNKMmxQQXZTRGZreGVCc1NuSmwwM21ObTdZYVp4aVJVTUNMYlpab21Ea09kdktDaDNwNFBBYThqUDg1VUJSdEUvSjJuTUExYjRLV2E1RTJRWW8wc3dOMEQzZzMvZ05lcld3dnhCaGVma1NKc29YNEovMDU1TFdvQ24vd2c5V1NnaG4zN09xSWxlR3F3UGlzL1BzWWRkYXltSE5kSGRQTFRINERmTTFlQWpha3RRdG5LOEtOM1c4RkRBK2szZFRGWk11YWxnYnpBVGgwQ1NBdHNYMCtRa3VRNjZWRm83R0JoTFBWNUhGbzZEaXBOQ1cwRklXTW81YXBseUpscTVDaXdLaVJFU3BrSEJuSlA2SEFrUlBkWGVEdUNJcVdJU1JYczVHL1NlcVdHS1AyRWZEUUg4U3gwTWpaS2MwZXVRYThSSUIvcVk0RXFrcWJBMGN6R3hCc241NVE0UWc2QklMSXkwenFlSTNyM2luK1EyY0NyNmNiSWpyWk94Mmo1cXRkbm1WajdhUW96NXVpME1nRTRSS0VlM1R5c1JYMDBWcjY5c1R4SllIQU96SHBFdEVQSkR5cUUwc2pCNU5YWjdOQWlwS3BDUzBOREZ3MkRGZ0NSTXZrSUxiZ0Zlb0FFaU5RcGN4R0FtRWx2RkJreWt3Ym5PU0UrcHVHVnBvOTlzRUFJVGZ2QzNWRUNkb0M0MjlPUG45OVZoT3lDUUMrWWZCakxxQytCdWpNaVFLaVowdW1rSXZpaXJ4QW1JMlhVN0xtU1FyaWZDbEZJZjltOGUyaWREcElzVUVCeTVKQW9ISmtUNmdiWkdjMTZaaDdCeUR0cis4b3JWd2sycXFSb3B3WGREQmVhQ0hjTkhkemp6YzBMQlBkL2FIQ0FPQ01VdjZRME40Z29wUFUyVEpUZkQvVHdKb0F5SlJYaGRrakdTQnFKSE1zWFFLMXdmZ3pGdkNkZVQxbzY4WGNwNVNrR0tmQWozRlhsWVEvMm1vVEQvQUsvb25sdmtKbWx5Y0ZYbFNKVmZ5TjZBZXdPM3J3RHhRWFUrV2pTU2NBalVRRDFtMUNBMFpPdXNpK0JZVWFrR01jVDhqb3BrYUtSbVkyN2lHckZsbFBuWnlaVGFvd3M3OUcrWEVheE9kRksweXkvV3hscHZpS0FZNnpTSHIzcWUyU0FkcHlNNnRldXpLaktwSFNscklZWWpnQm85WGZxc2k1YTh5aDFVQzRrZ2lYaUdvYzRCVitBZWhXSXJQeE4wL1NDZ3lSY3VZeC9zNGdXRzRGb2h1RVNQb1k1RlpuN2hVQzBkaVVrMjYxeWtSUVFHRjY2bUUzTFdjY0Y1dm5aaHliU1hCZHRnTE93amFQR3FPRm1mMDFTbk9IUnlSYVphdi9PSGk3eVFBWkR2RDUvMG03d2dDNWJVbWRCR1hYMGU4SzV1YWRHeHFmenI2a1ZYOUhJVE1rTWFBN1dGV1NkeExoRWxHdEIraE04d3V3NWF5UTJmRTMwVG93bm1rc2x6eXZTRUIxUEZtQXZQWWdIMWdCK2duNkRGZ3ZZaG5aRTdLWlpidWNkT3ZlZ0tuZ2lNS00xTU5oUWlTTnZEV29XaWxjeS81RHR0S2ZSWG9tRHJHZ1hwWWZUNWRZdEhVd1FPblF1TVVBTWlVWUx3YjZYMk1BRjVxcGsyQUpwa0VqRkV6Tkk2SXRwak9YdE1mOFc4NkMvWWpXSExHalk5d1JvNTVFcUJIVlBBQm5HaUJxSHI5ZkliT3pQaE96VlNwcDFGOER1eTVUMEVFMFpRakhJQXEwb1N2cDR4bE9hZnhQK2tUbTc1eDBDQS9pK1pDTEhqcmtsZFNTQVFnVVBVVGVWL1puKyt4WEhtMHdHSkJ3TFRET1NKcXJCdWtVajlaT3FKdTYvU1VEUkphUTV1TW1BMUJvVWlYcHVzWlAvVE1VVEVYL2F2UHFudUZmemI4ZGRXR09rQ2Y0empSYUw3M0FWYVBYTnYwbGlOTjFyM1dGek9iZm9FK21MRmU2bE1BTmJMc0lveDZZVnlBWllFRUNmUndjL1VJR3lQWVpESkNUamw2TU5EdE43K25NYURNQWdhSmFISWlWZ0prMWp3MmU4Y3FmcGRRY1JNYU9vSjdoRExpT0pBTUVpWlFiazlTbElmSXFBL0F6UWYrckRFQkhmT29rUSt6NUdkbmdDaVlzK0w3RHdPTG1FNTJUay9ERzlKZy9lL3o4S3VoTUVwQVV5UUQwSzV2cmgvYmxDcFZsZjFjQmFFb3Q0YktTQVV5cmg3eHJkbkpUeXpZYWtlZ042V092eEZVM0NjUVFzYUxXbzlJSGZrekhaaHdMWUZCenVHQUF4QjBJSGlCSUNrOEEyODVSdSsvcDBJemN5anBGcW1wZkxELys4bGd3UU1yb2FyMG8wcS84bEFGdVNnQjdSS0dUZEhLSkJLUU9lR0lEVC9jYjNOczh0NHlwUmhidlJlTVJRMTVhRlVWT3dkNGpPRktjVHl4TUU2M0ZBSWpUWkp6V3kvU1hETUFjN2dVRFVLdFhTRHBxaW1tMXptMUdvb05BcTZpYlNtMmY5TEc2djVaQ29KeDBrUkwreWIwNUZoVFFMK1JPbnE5UFgwWHNBckxtV1ZNcHg2RW80MW9SUUVVSGFLWFhRVFZvdlV5eGsxd21xYS8zcGc3QUhBcy9XUUlxUGZPUWVaWXhRYUk2YnM1c3ZDdG50LzdVdit6QXE0MnBuNGdEWHJzNG5XZWdkZ2V0eGdtQS9sNVVmUHdyQnZnd0xpc1p3TFg2UWQ5aWJUVklObm5NeHJDYjJRWEdvZVJzaCtUVlRudlN5UkhQODJIT2ZuNzZZWDZWQVo2ZkhJWUZEbk5Qd0t1RDBEQVVsUVJZcFFSSXZRN3A1aWt2NHVheGs2eWdXOWQ3eVFDV3pvQVJnYjlnQUNvbFRWYTRqMHJaNEZ3UGhtTjEwb3lOd1FnZDVuWUFlMThudkRNQzVFazR6MGh0WDdhU0FRZ0IyYkVrZWNrQUR3K1hETEN3RjV0VURFQ3R2dCtIdDlyM1hYd0VDTFF0c0llK3pkR1BzWS9ETUpZRVZheEtsQmJVWlpIZ2hYNHZHYUNXMGlVRG1KTUMxK0E0YTIybkRvQWFTd1JNbERUZERTNGlxS3FkWkpENmVpOFpRRzJKMkFaNlBwT2ZNUUJmYU9BVjdpTnRCMFVBYnVIVkVSSWZJU1JBV28xSTNlK2xVQ0NFQWJ5d3pEenVQSXNGSDh0V1dieHY1eEFRR3NhU0FiYlNMaG5Bd3pxVEFVS3JOem1xS255dlpnRFFKMGNJaG81N3NtemZkUGVhb0o3LzNBbkt1aFV5UkZjWlFGb0JnZGdnOFN1RW44d1cxenpHOVM1QWl3RzI0SGd1cDRBb0ozVnlKMW1TK2lONnJ6R0F0RDJoNC9EdHd4TDBjWU1CS0pJNlJhR2FrcGdqRndCUWg2RUt1NHFIZVc3TWpiaTFCODhWUUl6UU13N000RDhwNFNTVzZqSVpRQmNTQnNIVGprcmFqdEF1R2NCZXFNMEFqVFFvOEpvQ3Bta3hnSHhnQVQ3Vi9JVE95NzRBaVBaYk1VQUFPZlNDUXI1bFVhQkNZcUFsdUZGVGFkcUhKQzQzMFVFZmFKOVIvNk9nWGltbm5EcHNOYWtYVjN2NXkreTJTSFlJM3o0UVZCK1hFc0NTRWpEWGdSSGNaQklIQjJTR1BJL0MyL2dxWHdROGh2YU5RVytpK1haUmlSMnhkUEQzYzZ4YnRUcVJmVFc2ZW8zUjM2SUc5c2tBQTdZTEJxQUVTZ2FnalJVNm9NeFFSYXZEcmhvTUFMVSt3YWVubzM4SWVZa0FqSm9Ca2hiVWNMQ2ErMU5mQzUwQlU3cnBNeDJSQnpVa2N0c0dMeVFBdDVrT215Mm85MnlKSXdiSkFJVGVoNk1uVG03M0pnTkU0bkNXcGtCa3p2cUtMMEFYWnpMQVVDdGhwUVNEeENNV0hpVDFlWTdQY3JVd2Rub0tublFraGI2L3ZvbGI0elFUNDZrRktkWGd0T3dTZVNheWtBaXJZekpBUDFxYkFTaUJrZ0hvcVJZZGNHMDZJRDByemdCb0ttZWNQdktVaXdWZzMyYUFIRkl2UDFld0hkNlhrL1REMnFGUHdCblRkRkV0SmxPVTJBQzBLM2pNa0ZNc0drcVNzR0dxNWNuWGVtRk56c1RoeThpWHVMckdBRkNkd1FDd2hYZFM0dEdQWktIVkRPdjFGSlRUUUc1aUdtSmxpQ0J0U0dCWm54cHA4YndMVVBseVgzVHBDc1Vic1FnSU5mOEM4dHBpQU5zMXBqRG1yazZHeStEem1peWhLQkhyQk9vNytIUjJuQVVmODlIS2xEZVhnSHVPaGo3VDJJNWh1YlcxZHQ0VCtqT25YZ29BR29GcWhMdTB6RWNVMUt2bFZMNU1tWXVtSVBXdDN1ejJHaFNUNFZVR01JOEZvYVhuYnBtaEk5RFFoL2tjOHR6bXlMZTd4RHBxWXVZQ29HUUxlbXI3TUZoRDVsZTZaSURzK2hTNXFmTVo1dDMzYWdtSWRtZ3pBQ25uSCtWMkhiRUF3ZTdXbzJUa0kweEVZeTNXaHhEdHo1V01Dd0I4bW0wbE1IZnFwaEpSOWNhcjFaUFUyc3BUcEhpdXdpQnlwcjZMOUVMNGxNcVE3M0tLSXVPWGhxRFhUTFNldlpXNE9LbTJDd1RWTFFiUUtNOVAyc0lyTlpKWkhhVkhxUU02SXo5MVlSSzFlZnRLTEhvYWZKeDJMQlYwL0FVREhFeVpDS1d4VUFMWkxoa0FqODhOV1ZoMnNXd0FQa25KblRvQVlDdXMwQWJxME5TQjV6SmtwMklBS24zRmp1eVRRZ21PZ3BvQndvRWNsVWMyWVRmdzVJMi9ZZ0J0S0RUUE5CdXRtNmNYTkFubGkvMnlwUmxrWkFndzhTOC9ZNEMrSVo1YkRLQXlrdWdNS3h2RS9HSmxycVFQVndIR250UFlDdGFGL3RiNURRYUFLRmRWUEZTeGNodUlkb1VCaHRCUG1wb0JFSzdNZjlvTVFMdUxjZkt5dlFDZ3ZiYXNyelFFcFpldzd3M3FTWXNCSW9RRTlLOEV3R3BvWU4xZkxnSHplVkhCYXRwMkJ0SHpXVEVBMWYzOXNyMDNDRHFxYi84bUE4QmowYU5Tc21KU08xNllPZ3lFcEMxczlJblJGa1NxSWU3WjZla0RwTzNYU3dDN1dLYVgxcmpxZmFWZFpRQ2pYc2tBTytDTjFKWUdRTktneFFDeHEvVUVCSk5JRTFHWVZNdEpSMU53N2R4SkJuZkprRHJEQTBwZGdQNldVZGVOZllUcnQ1VEFLMGs1ZG1VRnE5eGllTHZpK01XR1A2cHZIYUtsU1ZCNThUTHZjV1FKbzkwQjBkZUo1SmNMS1FKWU1oOXBnVzBCS0l4RU1BTlFneTRaNE9QakR4bUF3cGhxd0cxVGNESUFBV25jMjFyT01OTUJzUlVrb3J4Z2dHZTNCTk1teXh2MFZ0RXFndEl5NXZhdjBybERFd1UweDVJQkVLeUltRWI3WUtvTk5BSkpxdVdMYmFEN21wS21aUjc3aTRDUU12UWpLU3dtUDJlQUtnQWxHSUI1TXd1UkhBd2dscHUwQXpCekZwTlVJeXFrbGh6QW1xVkpWSVo1dlVoRDRDeURMd0k1KytzbGdGMllqYUVHL0E0RDJBVDJNQ2RtRFlRWEVPNEE1cFFvR1FCR2VlNW5JeTFRZThTS1NkY1VxSmhsNGR5SkJJUzZYbFVNZ0xoK0ZPU3EwM1RhQmpxOWN4L2hmTkg0aHpveFYxU3lTTlI4dG1TQWtzS28yVVNVYURZamk5RU1RSzNFd1NRRFlCeWNBY29sYjRsVjdHTHBpS2dvbUU5NmhSdmxuVmlxTEtBZmdYTy9aZ0M2ZzIxQitRMTM4Q0pkVk00QTc2cVh3Z3RvWW1Cb1dXWDRDRi9UWGVkTHBhNHRNMjk0eDJaUkVnbjY5SUs2bXkvVER1TkdQSzhRQkJUQnUvWmRoSnl5ak11Y0xaT2psd1VUdlpiTlBsSHoyUnluMkNrcC9JTUM1L2t5Q0hXSkdIc0F0UmpmWXlzNThhR2xLWGdVM2s4Uyt5b0RjQUdnRXpEZGdtVUFwbCtTMVZaK2d3R2VTelhndHhpQXRnaWNGS21hNVRRaEQrMW8wMGhZQ1FLWldYNVIybGlxbGd3UXUzcjZ4N0Z0Wkl5Nnd3N1RGOERRSjZadlJ5azFTZ0JBM2dlUm52UGJBYUpzV1V1MHlHREovV2dSNHpncS9zUDBBS21Ud21oVzlDUmJGbTlCdkxRallxQ2lKajYwWUFCcGRmekRWUWJRbDRKbVNDY2c2Mjh6Yk1yaWQzT0daSTNhb0haQ3FWdGRSczRGOHowVDNac013T3ZLNG9XbXhZVzFpWk5vdmRLWnhFb0V0RDg2Z2Z6UDJOY1B2T1crcVpwMGlZbzVIczI1d3h5VWtSUms0MUl2cG8xOExDQjVSU0V2SDlBdkFrU2pPV1pxVmhkTVJPRWpPYnNWc09laHppUTFLWHhDMng4ZEpab055OGd4SXJjZjBXcDhhREpBSTgwTFlwTmZyekdBdTVkODdmZU5sSUU4RVNSY3poQ3F4TWtBZzRSU3Q3dUFPL1RENVUzd2R4N0k0b1U2OUM0V1l4S2RPOXJYc1djUVFPNEV5ai9mR0xGVE4vWm5qRnlpWXF3SW9UVENEb2sxeEk2b0tIOGp5SUZ2S0dYZlpTay9NNkZySTBDVUxXcUpubG9GRTQvQVJyR3dYRGFDSFVocVFvMElSSnJ0czRoYWtCdjNUc1pvNDBPVEFiamlSUXdrOVAxckRCRDIzajZjdDB4ZHg4aEdGS2l0WjRqWHFQMHFTRUVvZGJ0TDUyY2NMbStDdi9OQUZpLzB2ekhEWWhJTjhZOVpMUnhBVGdLOUZBQmZLblZzYVR1dEoxMFdlMlVWMHoxaGg4UWFuaEpCQ3JzckczZ2xpM2tDMkNoTm9Tc0FpSHJ6SW1sMXdjUVpvSFVuaHlkbW84MEhwQ2FCODQ5bFdibXhlUEltbDRaTGZPamQrR1lVTkVxSVpoMmtJWW1XcXI0c0FEbHQzZW16YjgrUS9kRjBvaUJGUXFsYlhib2hpY1BsVGZDM0h5aUxGK0p2RjRzeGlaNkl2RmE1amZ3WWdlcXRBTDRjTGJiMG5zU2tpMTE5d0xLdGppOWhoNG8xM0l5Sld3cWtrL1VvNFlpQzR6dzBLVHoyeW9oMWU1VC94c3ZzVmdWd24yaFJsQmNGWnRFNUlER3VML25IdEt6ZCtwYXlKNVhESy9qUXUvRnRITVFQMzhxV21FSTZPRHh4RzlMcmxkcCtlNFpZYmN0dktDSWtSVUtwOTFXWHZINGVMbTh5TGErTDRvWGwzMENZemppSnJFNHZjR3RmZU95N0UyaVpmd3FsS0MvcjZXVXRmbGRsUmpFekFaQWtOQ3IveUl2WWd3Y0JpYWhjRWUrUVJVU1hJUXNDN2Jvc3l5UVdhRkYwNXY4eTViSFh0STQvd2xTaFJDeTBqMnA3Mk1hSDNpMHZrVkQzUmVIbHNoWWlZZHVKdFpKWkJ1UnBBdVd3Y2lXT2VxeUNSTG9pODBHU1lvbDFhN2tzdXhKSnFpZm5UUXBndGdGRzBZaFQ0NVJoY2VVQ2NiMjBRdUNiQVAxdWVCS3hpbzV2eXhhMTJERmxTNFE0Y2FKWUN4SUFkMy8vRm53WjBCbERpTXFQeEU4V3JNOXlvbUJZYWdNSitpM0xKSTRMdENnNjhiOHU3bkpYcjJHNS9DT05sUmFVN2ZrM0tnTlJHeDk2Tjd1QmhXVFo1cUlhYWhSckQ2Q2ZiYk01R280VVI3SG1CRlZqRG1JY2M3SVloaDQvT08wZUhWWnRoNHVUSFdpTUtlYXpLcWVYM0RxclFIUHFzL1FvYmVBczBVNndGVjRQNjIwVW1rYjVXc29QcnBVc0tPcEttSTBQNlpZQU9ORVBuaExqNXRBWlBTU2JiWjVpanFGYzZTaUNkVjhSKzRGQVpXZVpSQml3QWkzcXVPM0V3WVZkVDhOeU8xR3hnRHRiRFhuU1NKWittZm4zSWkwV0dXQi9EUTJOclNNelZtUTk1S1hWT0E5c0lEVDhsSWVvaDUyMHR6SzBtSU02M2NnMGIxQnh2S1MvMDBaL2dJUFF5R0hXaFp2c0FVdjJXZlhtMUh2am5HUUNKWmxlcVZlYkdxWHprdXdkRmYzMzlJOTdxWG1qOVd5Y2dIZzN4TnBzbHpOWlpqVG9ObUVCQ3RUZERvemJFRE1SUFYwbVVlalNwQis2cm9waWd0UENJaEJwb3FveWlRVmFkTkxKLzVXalJhNHJodVV5RXhsMnNBd3NuSVFKc29hU0NrS21aZ0F2ejR4bWNoS0pGMEJtNkpaUlJCWTB6dUxQS3NMeHkvSGcrKzlhK2dOVEh6V1pXWndRSm1NaXJKK2ROa29OekJXaHo5SFhHSFNaMUFFbDVRNUVucEo2a1l6RTY4RU9ZMmVkM1ZxUWxEc0ZaSDdhZTBWUlVvclBQWGxDRzJCRXJhRG94c09wc3N5b0VBbm1CcGFnc1J5bUVia0I2UXYxZUdWcFZBWURjK3FsTFVMMTZTcmpsUnIvYU5hNGp6S0o2ZkhERWZIRzVQK0NmRkRFYWRZK3c4V0piUytZeHVMUCtMOWdpd1NUSTl5NGNnZmN5YTROZW9mUWlETXFxSzlkU0N5RzlZMDJwQ3JsMkQ1ME5meHE2My9JOHhKenNPdVRSYmpFRU5aRHA0MU9EOGFDZkJkYXBxYzhkMHJLWXFlOVhia01od0dmc3RDT29oNXNwOVU5V3BWRmEyWlJVUlNVT2pNOEJDbXBtQlFuQzRwQ1FWTEVJbDIwbUxrRkRGOEkyTUs0cmRlb3ZORmpJaVc2OWQzZXRkYXNTNHRXenJ1bThjcUJ6SzFwVTVRNStaaHoycUFXeEJjNUNNTGliZ2ROWUZya09SN0dyT1VNZUc2a2s2akMzMDlrQUdZZmZBS1JNS05ZQ0R3VDdpd0pEY1ZjQ1RnRjVqSjNheXpNMjlvQk1rK1F6OEhPZ0pQRkZyK3pKaFlsYlVZcm5TczZ1cnBUOW4wbUpnSmtQUE9RclZoSGFjUWM4WnFiemFQUm94NnNFTFhkblVWclFHb2o2dHhycEhRVFJNN2FsUWdiMHkvd2tHcVdHVVdxdXpJYXd3aVlEQ0RUeTZLaCtzZ1J2SWdBVVI1dEZpcUUyMWt2RitKM1NnWm9XTWNvOG82akF0bW5QaVpqUmNjWnJEWFFmeGpTckVLRlhKSlFoTWdkUk4rbjhRcXJoLzk3cDJNRXdlbWF5TmowcGllaEpIc3dqc0pDa0dZQnFOSW5ScklFTTJBdUsvTU43VnRSazNrMzUwckZ0TEROWExGM2xwcHgwRUF3NFI2c1JrQU5CanFKbHladE1LczR2VElsb1J6MmVyRHdyOVhkY3k5YVExUURLNG9pWmlSQ1JDTXRwZHczQzRwNnpZSXNNN3A5L1JrREtNVUJTcEVhdnZnRHRCYlo3QURWQm5rWEdaaE9CcEJYb0E0UVpSSTdoYmV5c1Fwa0h5UXFRU29iNXVFODlDdGNCc3VGeTFQdFgzaWhJYlRCM3d6aFIvU0dXd0l4c3FKWklDczI2TVkwUUxKR25pMWZCWFNUM2NDa21ZZmVPU21STEFGY2hSMUJZY0NOeENjK0IwRlNRODZ6OEU1anRPblA5UWZ1YUJueXNrNkRiWkM1NVBXRnZBdDEyalVIKzRNME5iKzdVbzhlOXV6dW9CdVlKMDVHUnp5QlZKNERzNnhkT1Voc2hQWWllWGhSWnZUK3B3elFETTRvVThsc3FrUVY1ZEd5TW1KVTF1eVVxWDg2eUZQQjJtMll6U2dUbzdIT3EzVmtIaThLbUI3S2dJeXM0SlkxWkUrTThFZUF0OGRjcVFBQUEyQ01HcEVoUWlRRDRETzhlaVVTMVpBVkpsY005TTIzWmpRVTNkV09EWVVpaHJla3E5eG03b0J6OEVEVW1lakU1c25YTkxLV252bmdWSnRhamt4bkFDYUVBMk1MdFZqWWhuOWtySTRlQnRreTBGckp4KzZtRjlHQVNXcFFhTmZXbEZHdE1XRS9XUVd1cS96M1N3WkF6dnhobHlWYXBhTjlWS1lZYjRobnh2V1ovR3RyTnBlaTdOcGFvK1htUURzb1VRbFVUWjg4aUlwSlhkWVFockJnc1JFVkZ5WCtqVHQ5TEFIS0FCaTZ6SXI5WXFrQVZXRXBYNVNKbmZtalpBQS9CRHRVRlN3VGM1QTFtWTFWd1JiV0xWTUxBTG5QUHVXMkozMHhCdkNVa0pHOUdvVnRFRUV1MUp0VHlBRng3VVZyVkN4Uzdocmpnclc2aWZCQ3I4RmNob0hhdmcvVkhvVzVGaVVENlAwRzhqeUxNZnNwQStBNnZlVFhSMnNHTUVFSGxkcTlDcGpOWG9FTVJhRUhPclZaQ0tLSXlrb0I0QUU4UmFXaU42YXhLaFFBdXo5REFzZ0Fjdk1NWGtlNWFNMWRvV1FwaWpUM3J6SkFsbk8vaHlDT2NEbHVRR0lPcmhjaFdUMVVDaFFUbGpIRko3SVI3N1NoRktBbmhhV2pWd1NOZ2NTc1FHQXJYbGQ3V1Ewd2daVlJ2TGpFMmpqNFFRV0VaOVpYdGtjdXRiazBad0RweGYxRVRWUGVzSDNKL3drRG1KVUt4bUY2NjVqbTMyb0xOUWgwNy9VZHRYWHlxQ3lVbmNpdzNGd0RsR0ZNV0lCVlFnRUlxNjV2QTlWMEFMMGpzbUpqM2RQa0tMRldRV2VERjcxZHNrRVBVVDBnSGFxQTJVZUhWcDJSQ3Q3VmtyS2lzUUEyQXlUOWlpUE1sTDlZNEg5d0g0K1c4SUJqWmhpNHJFTHhET3JXM1ExYm91MmNkZWptY0NDK0RJUXBKUkZrcEwxUUxoR3AzY3Rkd045bkFGUTBNOGNpelJ0TExsYWk4cUFvdEtMdGZGbVBGVUQzSGNVYUVGbjIrNDFYQ0NJODBWU1pqclhTRVBTbUFuK2xJOHVzMkl5NFdQZENXWWthQkpjWiszWDNETzlEaHROZUM1a2ZhQVc5ZVlRYlltSkJSZ2tSNEUrTVI0RUJqQWpBOHRoOVdPTmVnUE1HRWd1ckZoK1RZVVhsMnpub2hPMlNBY0xOOFJLeUNwalN4aVdBYlhKVUdjSlRyWXI1L3hFRDdHRmpWN09qNVptYkdlRlVuRnZDZzBNelozNTJtTklDMURZdnRNQ01RMXl3UU1QU2cwVXRSOHE2dDg3WUpUQUFuRDFNMHdQN0YrcEFxb1VrcUFKTzlCREVpN0pOTUJGRVFQM0FRVFAxMUZRQjBJdkx5bExObHZTUWRicklBSE5weXJEYVhBS2dpQktCM3g4TGJ6OW5BSFpIYXpNQTdiTlJpaDZGTEFBdVNzQ3htV09aTEFiejcvK0tBUmdzQkhNWnpDaGpGK2NMRktPT1daMlpDa0Q3WHJFUHpCcGhVVG1PREtDYUUxdFRNWUNxMERsOFFrYnU1UXVJQ0JlRmExVjdZT2lESDkxdEtTVnNMaWtqQWdCRmRHc0dHREFmV0t0U3diblVBVnpzV0czS09WRlowWGFYUzBCN1pXaUsyaHRiczVlN0RqQU1lMVBvQzZKbFpMWFkrMGlsM2RFcGFMMEpUNFZ1K2RjWTRMVEp0UmJCdnI0UkJHMDZBelV0Y1ZiUE1peDNFTHM3VFBlb0VSWXJnRE5BUDFyTkFLMHFvT093MDdjWjRPTWFBNWlOd1p4cXpJMWFBR2Z6MW9PR05rdGNWdDBRU21jd3dPVXVnSXNMeTFzNlNLekRobFU1OWJyaEpGTjZSRGZ1SStxcDVlK0xyZDFLT21Odmw0dVZna0djQWJKWEM3b0dBenh4SHlsc09qLzhQUVpnOFhsZjZHZStFZnlrT2RpVWNxOHc2YWhtcW5jVURiNEdxTGdqQnRxZEY5bk9KUU5jeE9yU1UvZDdESkFaeW4wOUdCYlErUVRacUFESXFmbE9tbHYxSFptUnZEdmp0R283UUlYV0dtR2JDWnJxam5PSEREU1ExTnhVd003Q2ljSUpwRHYranBvUmJlMEw2OEJnVjlnQjdsbWxjRzBKdzVneFR2M3JBeTRNUFFkeFpkMFV6ZkR4RnhtQW54bnVPcXIwdHZTQXNiMktOZ1BPcFltd0VPSnlxYVFwb0N5Y01TTzhhMVNuNktRU2VKVUJ6TUgzOEhzTU1LME13NmdUVkNiUGVIUm9uQXFBYzgvbFVwcTVsY1R5dXA2MmcweVVER0NSWDFsQzdueFdxNEZRUkttMzYxVVdIMVN0S3NCV1U5YXpzd3BWYytjK0cxVkZoS0VhVlZFdis3eW1MYkh2TXNTeG5ZZktRR3pKZDJsZzdoOStud0VXUEZyYVYwSWlFd1JnRnJjc002Y0tPVXNRTmcwM2daem05QTFQRU1Qc2xWYVlFU1RMMEJ3WndKQ05QdG5qRFFhQVQvL3hOeGtnTXBUajhlMFEwaXovS21PSEZjQ21abUFtWVFlZzdZYm1Xd1pKbUMvQTR6M056dzFEdTZiVlVUdnVYUDF1dFBqWUhtN04wcytIaGlxUkxaUkt2NFYxbjhNVDRkV29EaDRFemExU0gxNGZVYnVUV2VRT1RlMGlndFpFODdZcXZVbGlRUGNDNEdITzNuWVZUVWpqdEQ1NkxJZk92TWV3dVp1eHB3QUx5RFFwcWlyT2lvekpyMFp1VmxvQnZZdkNHZUtUanhDbWJQQ0xvNEwwRlFaQVVOZnZNZ0QxQy82cUdlQXhDMENyYVZJTitIT2Jta0dDL2hweVdNc3hyKzNqQWphaEkwTXdMTXNqNjlRL29FcjlvQUgxbEZTd0JKSWtJRlJVZlZQQVBDdmNBQ3dlM2R4VDF0V28zTjIwaHQ5WFRZSmtjSE1IcjBzbnNieGtPcG05ZExqeUlOTVdEd253a0tkNGZIclcwYVUwVnE1b2xmUGJ6OUxyaHZnNmRMRElGTW1NZDQyNks1N20vNmtzTGJXdkMyZXd5a09kckw4TUM3OWtnSy92UDJXQWoyc004UG9XSmVDQkZNMHFVN295Z1A3YU5ZZVBISnZzTURQTXM0VkJCa3NkYWFiVWd5KzN4eWxSMWtUSXNsVlI0YVluTGJxeGhmSnFWRHNQZ2piWDhRaTEzRks3WklVVWkrUHBkQmttZ3RGbktFT1VEZ2VyMUpVM0dQREZTc1owayt1VlJDMjJ5dmtKb2RMdkRteEFBUlo0ZWZONFFFeHpyNXFRYWY2enRKUUhSNWFsTkxMMkFndHZHUDJ2TThDUFAyS0E3WFVHSU1LRm1TUDdOZ2NoMjdpa3c1UEptZHkzRENScFoycUJZYU9HRWRBN25SR3BKN1lLVG9tcUtvcFhmZHZ2ZzM3YXV0NDlLNnRSMGZGeVFzaEp4QlE1ZEdBRzZjbHlPN3AwSWxCTUhoZUJaaXd6OFk1SFZaVTNCT0ZINHNGUkg0RXlHVUpaeDlZdzdpVWlieFJaVU95eWhjd2UvdXdCVzZ3d3hEK001SStJaGtYaGpBanh3ZnZ5b2NRUjdWazg4dmNZNFBFbUF3akJ3L1JhNlFCbjIzTjdnZ2t6M2JMSzFNWnQwK3VkeStFQmFuOUdKdDBtRzdVSmorS1NKdlFCOWZBbjZ5T1ZkWkdpNnR1M1Y3alplaldybDZxYWxVMCtCa0V6Zk5Cb0dOQUJDMFgwZ2xzeS9GTWxUQmxxeW5ESlRWbThKQXFEMlIrSThVYkFNU1loaFRFbVk1U1hZcGtjaHg5T28wSUhxVXRNQU1EblJBQkZwTHJoL3BUYUNPdnl3a1RPaGd3Mm5wallBZjk4SzM2UjVXTi9pd0h5UjgwQTFKSTk5bXdKR0FtMksydXp1bm1oeHg1RnFDWFBNWXZYU3VaeVZBWHNESmdpcks2bkVWbkdHTWZKT21OT3ZXZlNOS04zdGJIcW16U2pGQlVnR0t1OG1sVVVibnJoZXNnQVlxT2hVeFVORWJEV0k5Tk43Z25LUkxDNU5pZFJYYTlJeitIZlh1d0lIRUNFU0M3TEdWTnJPekErSzg2SFlDOGsvU3gvUUhSQXBDVWlobkZidVJXUUh4YTl5aHd2aWw1MSt2OHZHU0NEVnNxTnF5aHJaZkpLMUcrQVVHV3NyYjZ3UnJOTEoyZXlpR2xHWExLaVR2NEhHVTgvbVlQam9wYVkxV2NTZ1lkSTlLeHdzd0dOTmxxTWF4TWpyVFRhTUZvOFFYU3NrSUxxaWs1TE5CQ1VMYWZiSHZGeUlEM29JajhUMFZVVUJBT2hMTG9sWEwwcGhtY1V5bXpzWmtVMVNodElIaDdZVStramVYVjZ4L3llR2J3SzFKNUE1M0IvNjVraFBoWk8wK3RoRTJNR0lKQWZCY1QvQWdQTUdXYUdlRXNZbmVhZVZ4eDJBbXBFVDE1bFNtZWdvU2FmWWs3ckQ0MjVoaDN5RWd5THZXbWlXd1BTTTdXcDVjMytFc3J6T0VqR0V6aWZnQmRoYkRzbUc0R1NXQzdjRlR2VEJySGFCbVZhTVMzK3BEb1FzallMZ3BGUWlHNWhUSXR2eHEzVUhvUnkyWjR0TWhVblVkOG9JcU5ubU1TKzJ3dUZrMXJ0K041TlA2TXFwcnpYTUFFK0MybDdZVzZBQXBFY1FPai8rd3h3S09NQjZPMWp2WHNtMlR2dEdYQzVZNUxPSEpLbkI0eStJVVhCQVpnYUxvZnhRK21QT1hBNTdrSXcxbmdMNll6VVNJbDh6YlY0eGdVNmlYVEtBb2Jzd2lLZ1hkRGdHRW9CQkNWL0c0ajNraE5aVHMvZFg3UGNrT3NJdklmNHNvclBUalVhR3FJeUtrS2NJSlNqbWVFQ2dydkRIY2Z6TUE1c29FeUh2UWZUR3orUW40M3hqR0xuT1BjWVcwbjYwYUJwbWxtVTNJWUI0TC8vQmYyREFlYnpGZ09FT1NPaFJja0E3dTJMZXZkRVJtTUNtNFlHN2d5aHFBQS8zWDJ3L3Q0c3dBaEU1RG1rZVV3MGJBMkc5V1VPalZvM0liaEV2bWEvbHpaTUlyblNWeUIxMENNblFUT3lPdlFzdTg3ZjlMZTNFek9Bb2JmNFBwVzBWSHU1N2FjNXNhajV6bU5wYWxRUUxWa0RrSUpvQTVvNzFLem4wQUVWMnp6QUdHQzMrRHJGR0VSak0xd054WU9tVERySHJSV2g5ZzAyMmlZQldEeGU2WDhIQy9Rb3JVeGdnRHBmUlNZa29UZTg0N1hyTWJKYm1CYXRwQXJWYm1ub213RjJRbUZzdVhOMC9wdDJwTlRtV2wzV0lWdWloVVptNmxFVTRjdXE2WVk2SXZJMSs3MjRLUXZ2RUpqRklzYmN5aThCM0VmZzR5b0NMUENSK1J0QzlFSWJUUWxuaE1ScE9WT284cTRiTSs4eXVvVnBKckVmWGcrS3FJcHNkSVVpT3FkUmF4YWkyM3ArSUZFQTlISmxlalBkMmtZQ2paMTZrbUNHTHd2Zm14VkZOOUI2eEp4QXN2NEwrY0VBbThLRWNjKzBBSFcrQ2d5eVIwN3dCMGViME1BMzFxVzNsWlJ5blNBVHQwNGsvY2RwcWZKcWxJazJSRTIvWXFkdGUrOG93bWMwUW1waXl1MW4wQzBzY203OGdjVUFKalU1eWN1WU85M1FBNWdCOHlGNVR0ZTFwL1BoSXRqZWo0YU93NFN6bXlzMmtrVnZmU2dZb0lxTjBmUTB4WmxzaktsMEw1UDVIUVlyY2FIUi9jZTByQ3hmOU80eGxZanhkaVZQcUMwQms0d3A1d2V1QUxZd3NleUpTb29FWVdoQzdEUmhDRVdRektQT1Z4RUpTZlFINjIyeWRqMnNqTnpiakZWV2g1WnNHRU5BVEttSGpRRXROS1JzUGc5a2ZJeDYwdExwdGpaeUlJUzJCNXYwaEVhdzNyOUJ0alB5WC92Y0pqK05BdWZObkZtYkVkWnVRSkE1NW93RnZTZ29nWVdvY3YvaVlSUmtnTFpGeWd0R2lFYUZFOGRYR0tCL2xRR3N1dUM2bjVwVUxBRnpBb01pb25lZ2RTU2FBa0RBaWoxckp1L0FKR1RlOGk0amFVRnQwQnhrcHVuUkJONlVQbHVuOEQ4bEEzeWZZbGVKeVllOEFOQzVjbmZqaXBiK3dCSDhlTWRHS3lzRVE4N0hQbmtEYUxCaGczRUp5dEV4YWVrMjdOcExrdEh3SkZheUNwYUxzTXRDNzRYMW1NR1J1cFpaYXY4TmpQMllLTnFkYXkxd09aN0NrdDdpaFpBTjJYQWpJRUhPY05WM2FaSGxWbEVLeW90Ukkxc1pDdEQwS0p3anUxdWJBZVlGQTFnWW5PVlJkNkZ1U1ExWCtNOVRYbkVGMGVKR1o2d0RrWURQM3dWK0MwRFJNY0VIcnJqSlQ4eWY3ZFpObUNodnorMWt3dm1LMURESkFMWUJmbWNiNHdURGRFYW5Kam1Zb20xbXRGWFJsQUhUQ09hcjdWamZ3UUo3RnF0QVZnamxubnU4ak14dFl4LzRlK0EyZ1U1dU9ac0JxblRYRE1ZSG5obXVtUjRDdDVpeitNYlcrSVNKcGRhRGh2Q29kRFN1cVFPNTlGVnpKQ09EUGU1eDNuY0dnSXRYS2VGWmZWMExxbEswOGpveGRPby91ZFppcGdJemxBeVEybmM2aE5WYlJSRURrcUYxYXdZQVVSVzVCb2loaVhpK0N3WW5BRmZtYWdJWHVpWU1pNlhKVUorbjBLQmNFeU41UXdDZ2ljREhxcHhGMlhVUlVGRzlyQXpLMGtTTjh5dzA5NnIva2Fkc0JnT1VxektDZFkrL3Y0TDhxaFpTYWRoQS9PTTdrUVNXVmlzQThOUmZRQ3E2eC8xdzhLelpvRFhtdXNucFlUaDJsZllENVlyTUM2b3NBZmR6azlZS1ZBMWQwMENGZ0JyNTdRd1E4WmNKcDBGUDJib1JIYWxwYUp0Rkw3VHRnT0dTQWVReGE0am1Dd2JBc3FTL3N1STRjNTV4Q1NCUlhXVlpXUVVsMThpOG5BSk5hYW00YmN5R29SWkxTdHJFNlovMlJvaU5XY0crUWdBa0ErU2VGMHNyeWlUcjdDME15bkJPSE9tR2hMdUtwcHdIT24xTmZNTU1hOG9BbmpwMjhuYzdwcUxacHd4SHFPckFlcU1HYVVXbWRJZDBNR0Nra1ZuTW5xSmVFK1FBZFNPdWhPdUZCOFlhQXlnN1lHbE9hNFU1RU1rQWpIc01Ca2hBVForMHRKN2VPdjRyQVpzYVhsQW9jM01vQkhJMEdJQVpjbTBYZ0VkNFVqcTZsREV4dEpVNXozSnRmTEpOeTRnNFo5ZklNTGxodDI0cFVpZFNPMm4rZlZRZlFXamVSMGhscEdzUytwc0FZSXZNbjI2eHNGU0hrUjZHM1pycDJyWHU3a2crd295NWVFRWJLL2ptMUZCdkxFRHlQeWcyZUtUaVBFSnNPcnNWY3JsMk90aFkrcVR0OTNRYlc4aE82VGw3VHhZa1EyTDVmZzJnWHZjOUtuSnpqUUVZQXJSSUJyQzR4MUV3QU5Sc1BBdDI3YXpoczRpR0p6TEVSRDFZbWVGWFZHOGlycm03bDhtYnNXTXVwZ0diaXEycGs2ektlWlpFOWZ3VmhHdERub2VXOXNXdFZIVEJQUWhxaytaZTYxN25MUEpXNms5cDZRTXFHRUN1alQwdmErbW90VWE3ZFZoZ1VBYlR5bzBkcGF1YktYUG5nQU80WTFyRFV6dXh4R29iN3UwQU1sV2xQREE4TW1OVStDNDBXUUtvRmpubXBUY1hUeFhhdTFYUGU2eTZDMzVqemljRDZPTGVSTmtLUitKWERFRHgzb3NsWUt6dnRrMEdlR2Rkang3K2dScllEcVhsTnREVkZZTE5MWkI3eFdsTis1N0VGYU1qN0xkYkJqc1d4aWtsbWJSbG1mTnNHVVQxRERaRThZVkdoc2t0QktVeEpidEliZnhyMDF4T1FwTS9wU2tQL01EZmJmb2pRd2dwYUN1bVplVkJ0dzV3cjJGOHFYVFQ3clhXVGJEU24wcEs1S21mSzNhZjVZZTV0d1BJVkNPdFltT0VKRFlTQkNLOUZPK1dYV1hYcUlwa3oySzVjR0RHckNkcnRsb1YzcEVEVnFBVWVsZVVpdGFRM1o0aDZUSWdUeEdpWkFBWjY1SUJ3SmZnSW5RUi9sR0gwdUkxSUJRcG5XSGhaL0ZzWFJNM2J1R255VitabG50cHdONUxId0lTU1Vxanc1OEtlaEtWZVZlNGw2WkdocnhIY09RckIxUmRwSGJRSEVSSEE4bi84dzliK29DaVlRdFh4UFhBR2pjN2JiTGI1aUN5dnZpY1V3N0lWQWFzR1Eyc3Iwd043dVdZWEdVQThzdVIzQmlKSkpZbS83RFRKc3BPNkkrQ1M5aW5LKzlvSFY2aWNjeVVic1J1SE9OTTdIR0RWY0d4RVE0N2JPWjZNY0x0bURhajMzaEJUaEZuTlFORWtHcm00R2lGMG5KT2s2MURPaU5mWDZSc1ZTS25keSs5Z1JoUnV2b3h2MGd5bThpNS8wcWlNaGhnRXpQK3VOZDJoQkFYY3NyVng2S0wxUDRuU0s1TnpzTmZRbkw3aWI5Si8yem1md3dHd01lWTdZY3FxcW00NkZZeU1LUHpRTFV2Q0Y3c2pvbWZRcm4xd1RtRDVBWTk2MXdQTXNzMTBrSWNQcVZ6YmZHUUJJTWdiTkJZZ3FYdWxNTjJsdHJGdDRGcmVTRmluTEVONU9adzBNU21ueUFpQkE4eUU3dnRLUmJTc1REbFBSaWdId3hBbUdnbmttTFdvYlNjMDF6WVFqcnZxWUFyaWF2Z08yNi9wdHhHeTBFUWRiUHhXU3cwS3lleWRpZFJxYlJSYlJPNjV1dzJtcmE3U0czOEMxY2ZpQjRrMTUvUzhhODArb0N5TWRFdEdXQVltam03VnpBb2U5WVhzeXFEQTFqamg4QksxZk9GMmhBRHpicmMrRUlzV1BDVys4YzZTak9ac21mTExFSTRtTm8rNTF3cHVERThLS3JZa2xTd1lMVkJwYytXMTRjUjBPanFOY1JHNk1zd3EwL2JxaUJmNGptK1p4c3FiQ3dZSGpEUmJpUlNqRkRhbk5PeHBYWUtNN1JneW1tTmpHalcwSkdTR3o3UTBNUVJqdWNUZVcrdEZ1UmNJYjVyZVk2L2JVYXpoMTFWK3hkUy9sOXYvMFg3Ri8rWkM1RDBaL09zbjJBQWwzV1BHRE5yVVh4Z1FybU9LTThGSzMzREpQZit3cTJlaW9GRksyWEdXbkhWb1JqY3YzSXBieXg2MjMwWm1qRmNiSjlaTVpjYnd5ai95YjA4TVB5c0xrZm5ZMmZIZmx6S2tFL3NwMGVsWFZFL0pITjhVMkhqejh5R21Va3hsOWRpZG5ScXBuVG1Ca3Y5SEpqV1h6NXhaeVEwSmJlYVJGTVI1eXlPaVp6ZFNWUW83aDY1azJzNC9maVU2VlZYMlpUT1JuZVMvSC8rNTMvUTh6OUIvbXdjV0t2MHF2dmR0RlZ6QjR6R21XTWVTd1hVZkpEK2pJTUEvYmtNRkF3Z3Z5Z0FNS3FBaW5BcDczdVFlQ0ExRkxmWWd3NUEyeDBhcmF4a1ZLVlpKRGt4UDhZdys1bUM3TlV5K3lFaEl6MExwR3prcjRxUURJVGtSamJNdDB5S3FTYnNxbUdTZjVYUytmOG43MnhiNGdpQ0lCd1NBU0VTQ0w3bElCd1lEd0luOS8vL1hxYjdxYnFhMmZzVVJCQ3RqWHR1YVFDczdkbCttOTRTcUIzd1BXWk44TFh2cnlKS1JOUkYwOFVUUHk2R0RJMmsrU2JydVNHVGhna1ZSSFBoTkNRL0RmUjN5TDhnZjJydEhrMVdFbnFKZzhsQjF2UC9tVGU5MWwrNGE2UjVBdHhOZy9NRzFTNUFoUWUxMm51bVRMK0xWQTRaQ2IzYSszM3JGK2xpN3dLM1NhdUtoRFR5OXFxS3R1RlQ2L2RvejlRV0JTYll6WjJ5REtudCtnWWZLbVFPUzg0UnhRL0w2dXgxZTQ2MkRnaTlxTHUxNGdLR0hENnF5b2REMzZ6bmVvYTNlUy9VQ25RK2JRWFA5eGMzUU9QNXZzNUwzMCtRaVFuZTAvSGtPNEJ3c1kzL0NYY3ZvelA3RmlBOGNJS3RudEIzL2RwSDdZSmxSQjk3Z3ZINGR0ajdJMGM2RHdZODlwdWFCYW5Kb3NMVDdlTktGaFZJQkM2RmJ6VEJPQTRiNVF3WE8vcE04TVZ6MkhBcnJWWm5WRzM5K0pZTGZMczZEVVRjYUZvZmtUR0dERzBVTDdjdDYvbFJ4bzA1WDFEQmwvOUMyV2tlQVJpYyszNEN1Y2FVMy9IL2ZBYzRFWFJmcjgxVlBwQ2FwWk9BZC9VejdZRFR5SVhIVWU4WXAxYmJRem9MdUpwNkJ3TmdFMFZhUm02eXNZVTdZUEEzNGUyWE1VNjZyZzg0WjBqckNjWndyT3hNUnUzV1VqNUlwc21jYzFoeFpNYVVIVzRsMnRLQmdodDFpeHVRWmlXaSthYUJQcHM1VHM5d1lPTmVxVmVnRk4wNGdVN1pQaTVJNnFYMTEvdmUwNENXSk1DMXhtZTdERkR0LzU1S0lIL2hhZ3p6MGFCUHQyeVJFS1BQRzhLZ1l6WUQ5MXZYdHNab0M0L2hUdkYwdTE4NFo2MnNKaGlMSzloYjIvTktDRDRUcU9YSUtvM0M4Y2ZXYU11SEVISHI1OGhyR2JGanMraXBjMkdjbzNnaFVpL1U2MUR4M29EQ1FQZWh1dStIak94WFhHUFgwWHNTWDNtQ3kxdFBrd2FrMTE0OStkZEVpTDkwQTZqQi8vdklNWGd3NmRTbjM3c292SW9IUDVNNzVmU2JvaFpoMUliSEwzTm9oWkRPakRjZzRleXRKUUJMTXMxSyt4UjNHL1BHWkdGaXZzS2dXYmxSdDNWRlVqUzFpQllkcVNlMDJhUHYyMElaSHllQ2NJdmM5OU55Vno1TnJqR3Z3YnF0bVc0ZEMxQ0NZWXR3Q2dHOFdXSHZWb0F1YlkydFF2UmU2ZFVvWTlTK1J4TWZXTFNkRUV0MGJUamREUkR0L0FEV2s5cDgvTElJV1V3b1lpdHhmN2VKMHpuYzF1R1RaY2JXYmJPcjUvMGlsZnM2MmlKdUhQR2dXTDZnQTY3ZkhyVnhZazRGRS9EU1R6Q25ndHMxVnBhbDlPODJOQWI4YWtoQVNvR2QrRWd6VU5jRXJqekdpTUtHMmtMeDVWaTBrOXFHT0VQKzk0V0JPb3phOG12ZXBCQ0I2NEQwbzl5WGpTVzRCaTg1b1NxV2JadkZoakZycm15N0lsQTNxcjQzRER2ZGJQTGVQYWlmUUsxbzJsMVFham5MVWtYQWJxTHRFZDhhRXpJMUF4QUV1d0djblhnYUI2LzBHSHF6U1ZHNTdxemFUVXp3U3U1RENuVVlOZFB3Yzk0a1VUVGExa2U0WEY3bTBvNDJaWi9xd0lJbHNWVzl0R3ErM2oxU0RuYmxTNitNN1dhdWVvYVR1YS9aT3BTRDFZbENKUDZOZ1diWjVacDJJRXlSa0ZtM1FDLzRYUVpEYkFTWHM3VWt4RXhzRFQ2SGRIVStKTHkwaFFYOEdrdzRRbXVrdHZzV3hOcXhaWjBXUS80NE9Cd3lST1pIZGN3K3VQNmsvVWphNDdFYnhxdE9GUHlCdVFybS9rQ3QxcGdvTXFvenFGL2FreklZS2JMTE5kdi9kYlgzWkVsaW9ZbWtReWRQWnRpQVE5US9jYkJjcmtCOTJ6S25qd3FVcHZKVmhzM3UwWEt0dENQUmV6d3dXcHlEOGdkY0JTTXhUc2NaWHZpOEVyTzgvOG1DWDF4QWJXUEpoeVc2WGcwYjhlYkhNV0ZVYVBQYkpBbHhGVEFKVnpTV3ZnTDVQd2U2ZDB5VkwvYktseEhqaE0zdHhPT2FCemZWTDR3ZVlQMVorOUhMdXM3VmJNcGdRWDQxY0R3ZEF2VUZiRm9LbFhCYlBuN1pTNUtpaTdSTkp0RGlFamgvK29td3ZwQkxRZGM1REVzVHcyNE95M1JyQkxRVFcvNnN4TG9Gc3VCajNvR1VUY29rQkladGJyVlNhWVNPSzI4Vy9HdnZERlliaUdFZ2FnaHRvYWVrbDNhaHAxd0tZZnYvdjFka1dYNmFRQytGd0pycU9SZjdhbHZ4V3FOeEM2SnZEZWorVzB4OHBGeENFSVNqRUpmcEkxWGlCMy9BZDJ6TXFZZllDQU1TOEFOaU5qY21rZGpRZitXNWwrT1hZZlF2VTFuWW9VN2FLUVJCM3ZjVWkxbVA1WmRuL2RNZnpsUWQzc2hZc0FSU3dHZXlwMENCQ3pIdVRJVEhSZVhDYThoZzNnU2Y4ME96cG9aOVpZQ1h5Qnl0TzQ1SXpCSUlTRjB5dGI5Y2lMSFpIenIzaGV0djFhb0FRWkFSTXQyY0ZWTFJ0RGdQM1BhOUJTTnZLUUdmeSs0amJPeWlLL0EvYUtQZ2hlSlY1RDBwTDZ4bEUzZldFM3VEYjFKZXh1RStyNHF1M0FNcGREZkVDZGRnQVR4Tk1KL3hDQUI4Z3lGSU94cTFBSjRoTDRCT0Z2Z1psTDBoMlhsM1cwMnNKNEIvZUtNZGpzSWY2UVFyVTN6QndrWmZ4aldpNXA1VFlkaHFmbUk5c1FZRnNuQXdrVmMyc1VMZ04raXVHMGp4c05YRWUyUUZDZ3BEQk52TTJOako2L2lPbGJxNWpuWTJ5d1A2L0srMkFBcXZkTkxOdkczWnlESUVmcWZBOHJySUxKTm9oeVBBQ2hRVWg0SnZabkdZRDRIZjVMSzVSQTg4RDdoV0FDaFFCQWxkMDVGSFhlRDNGaU9iRjBYZGllYXhudGpiU2hTMmxhVmRoN25YTmZwRDRHY2pXaFNWK1VyV0V3dFIvQUJ0d3pZbStJeFNsd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcbiAgcmV0dXJuIGltYWdlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm50KCl7XHJcbiAgcmV0dXJuIGBpbmZvIGZhY2U9XCJSb2JvdG9cIiBzaXplPTE5MiBib2xkPTAgaXRhbGljPTAgY2hhcnNldD1cIlwiIHVuaWNvZGU9MSBzdHJldGNoSD0xMDAgc21vb3RoPTEgYWE9MSBwYWRkaW5nPTI0LDI0LDI0LDI0IHNwYWNpbmc9MTIsMTIgb3V0bGluZT0wXHJcbmNvbW1vbiBsaW5lSGVpZ2h0PTE5MiBiYXNlPTE1MiBzY2FsZVc9MzA3MiBzY2FsZUg9MTUzNiBwYWdlcz0xIHBhY2tlZD0wIGFscGhhQ2hubD0wIHJlZENobmw9NCBncmVlbkNobmw9NCBibHVlQ2hubD00XHJcbnBhZ2UgaWQ9MCBmaWxlPVwicm9ib3RvXzAucG5nXCJcclxuY2hhcnMgY291bnQ9MTk0XHJcbmNoYXIgaWQ9MCAgICB4PTYzNiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yICAgIHg9NTc2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEzICAgeD00NTAgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzIgICB4PTI5ODcgIHk9MTI0MiAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMyAgIHg9MTcxNCAgeT03NjkgICB3aWR0aD02NiAgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM0ICAgeD0xOTk5ICB5PTEyNjMgIHdpZHRoPTgxICAgIGhlaWdodD04NyAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzUgICB4PTEyMTQgIHk9OTUxICAgd2lkdGg9MTM2ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNiAgIHg9MTYxMCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS00ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM3ICAgeD0xMzQxICB5PTU5NSAgIHdpZHRoPTE1MiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzggICB4PTE2NTggIHk9NTkyICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOSAgIHg9MjA5MiAgeT0xMjYzICB3aWR0aD02MiAgICBoZWlnaHQ9ODUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTI4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQwICAgeD0xMDMgICB5PTAgICAgIHdpZHRoPTkwICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDEgICB4PTAgICAgIHk9MCAgICAgd2lkdGg9OTEgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MiAgIHg9NjY0ICAgeT0xMjk0ICB3aWR0aD0xMTQgICBoZWlnaHQ9MTE0ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQzICAgeD0wICAgICB5PTEzMTcgIHdpZHRoPTEyOCAgIGhlaWdodD0xMjkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDQgICB4PTE5MTYgIHk9MTI2NCAgd2lkdGg9NzEgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xMTEgICB4YWR2YW5jZT0zMSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NSAgIHg9MjMzICAgeT0xNDU3ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ2ICAgeD0yODI4ICB5PTEyNDUgIHdpZHRoPTY4ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEyICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDcgICB4PTAgICAgIHk9NDI5ICAgd2lkdGg9MTA5ICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OCAgIHg9MjM5MiAgeT01ODMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ5ICAgeD0xMTIgICB5PTExNDMgIHdpZHRoPTkzICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTAgICB4PTE0NDMgIHk9NzcyICAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MSAgIHg9MjY2MCAgeT01NzUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUyICAgeD0xNzk0ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTMgICB4PTUzOSAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NCAgIHg9NDA2ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU1ICAgeD0yMDgyICB5PTk0MSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTYgICB4PTI1MjYgIHk9NTgxICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NyAgIHg9MTU4MSAgeT03NzEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU4ICAgeD0yMzgzICB5PTExMTMgIHdpZHRoPTY3ICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTkgICB4PTM3MiAgIHk9MTE0MCAgd2lkdGg9NzMgICAgaGVpZ2h0PTE1NiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zNCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MCAgIHg9NTM5ICAgeT0xMzA3ICB3aWR0aD0xMTMgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYxICAgeD0xNjg4ICB5PTEyNjkgIHdpZHRoPTExNSAgIGhlaWdodD05MyAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjIgICB4PTQxMSAgIHk9MTMwOCAgd2lkdGg9MTE2ICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MyAgIHg9ODAwICAgeT03NzkgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY0ICAgeD0xNDIxICB5PTAgICAgIHdpZHRoPTE3NyAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTYgICAgeGFkdmFuY2U9MTQ0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjUgICB4PTI3MDggIHk9NzUyICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NiAgIHg9MjIyMSAgeT05MzkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY3ICAgeD0xODExICB5PTU5MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjggICB4PTE2NTAgIHk9OTQ2ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OSAgIHg9MjQ5NiAgeT05MzQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcwICAgeD0yNjMwICB5PTkzMiAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzEgICB4PTE5NjAgIHk9NTkwICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MiAgIHg9OTE2ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTczICAgeD0yOTYgICB5PTExNDIgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzQgICB4PTI3MiAgIHk9NzkwICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NSAgIHg9NzY3ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc2ICAgeD0yNzYyICB5PTkyNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzcgICB4PTIxOTcgIHk9NzY1ICAgd2lkdGg9MTYzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OCAgIHg9MTA2NSAgeT05NTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc5ICAgeD0xNTA1ICB5PTU5NCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODAgICB4PTE5MzggIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDEgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MSAgIHg9MjIyMiAgeT0yMDcgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgyICAgeD0xMzYyICB5PTk0OSAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODMgICB4PTIxMDkgIHk9NTg4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NCAgIHg9NjE3ICAgeT05NTUgICB3aWR0aD0xMzggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg1ICAgeD0xMjggICB5PTc5MiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODYgICB4PTI4NzAgIHk9NzQ5ICAgd2lkdGg9MTQ3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NyAgIHg9MjAwMiAgeT03NjcgICB3aWR0aD0xODMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg4ICAgeD0zMTIgICB5PTk2NiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODkgICB4PTE1NyAgIHk9OTY4ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MCAgIHg9MTUwNiAgeT05NDcgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkxICAgeD02NTggICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTIgICB4PTI5NDUgIHk9MjA0ICAgd2lkdGg9MTExICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MyAgIHg9NTY3ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk0ICAgeD0xNTcwICB5PTEyNzEgIHdpZHRoPTEwNiAgIGhlaWdodD0xMDUgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTUgICB4PTAgICAgIHk9MTQ1OCAgd2lkdGg9MTIxICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT03MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NiAgIHg9MjYyMiAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTQ5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk3ICAgeD0xNTg1ICB5PTExMjEgIHdpZHRoPTExOSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTggICB4PTY3NyAgIHk9NDE4ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OSAgIHg9MTQ1MyAgeT0xMTIzICB3aWR0aD0xMjAgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMCAgeD0xMjA5ICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAxICB4PTEzMjAgIHk9MTEyNSAgd2lkdGg9MTIxICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDIgIHg9MTg2NiAgeT00MDggICB3aWR0aD0xMDEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTYgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMyAgeD0xMzQgICB5PTYxMiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA0ICB4PTI2MjcgIHk9Mzk1ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDUgIHg9MTA1MCAgeT03NzYgICB3aWR0aD02NyAgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNiAgeD0xMzI3ICB5PTAgICAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA3ICB4PTI0OTUgIHk9NDAxICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDggIHg9Mjc1NSAgeT0zOTIgICB3aWR0aD02NCAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOSAgeD0xOTczICB5PTExMTcgIHdpZHRoPTE2OCAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEwICB4PTIxNTMgIHk9MTExNSAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTEgIHg9MTE4MSAgeT0xMTI2ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMiAgeD0yNjcgICB5PTYxMSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEzICB4PTQwMCAgIHk9NjAwICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTQgIHg9MjI4MSAgeT0xMTEzICB3aWR0aD05MCAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNSAgeD0xNzE2ICB5PTExMjAgIHdpZHRoPTExNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE2ICB4PTQ1NyAgIHk9MTE0MCAgd2lkdGg9OTUgICAgaGVpZ2h0PTE1NSAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0yMyAgICB4YWR2YW5jZT01MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTcgIHg9MTg0NSAgeT0xMTE3ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOCAgeD0yNzcyICB5PTExMDAgIHdpZHRoPTEyMiAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE5ICB4PTI0NjIgIHk9MTExMyAgd2lkdGg9MTYzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0xMjAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjAgIHg9MjYzNyAgeT0xMTA2ICB3aWR0aD0xMjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMSAgeD0wICAgICB5PTYxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIyICB4PTI5MDYgIHk9MTA5NyAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjMgIHg9NDU4ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNCAgeD0yNDUxICB5PTIwNiAgIHdpZHRoPTYxICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI1ICB4PTM0OSAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjYgIHg9MjM3OCAgeT0xMjU5ICB3aWR0aD0xMzggICBoZWlnaHQ9NzkgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MCAgeD01MTMgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYxICB4PTIxNyAgIHk9MTE0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjIgIHg9MTM0MSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTI1ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MyAgeD0xMzAwICB5PTc3NCAgIHdpZHRoPTEzMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY0ICB4PTcwMiAgIHk9MTEyOSAgd2lkdGg9MTQ5ICAgaGVpZ2h0PTE0OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zMCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjUgIHg9NDY1ICAgeT05NTUgICB3aWR0aD0xNDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NiAgeD0yMzc1ICB5PTIwNiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY3ICB4PTIwNSAgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjggIHg9MjcxNiAgeT0xMjUxICB3aWR0aD0xMDAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OSAgeD05OTUgICB5PTU5OSAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcwICB4PTEzNjggIHk9MTI3MyAgd2lkdGg9OTkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzEgIHg9MTEzMSAgeT0xMjc3ICB3aWR0aD0xMTAgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MiAgeD0yMjUxICB5PTEyNjEgIHdpZHRoPTExNSAgIGhlaWdodD04MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9ODkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTczICB4PTEzMyAgIHk9MTQ1OCAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzQgIHg9MTE2OCAgeT01OTcgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NSAgeD0zMzMgICB5PTE0NDggIHdpZHRoPTEwNSAgIGhlaWdodD01OSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc2ICB4PTE4MTUgIHk9MTI2OCAgd2lkdGg9ODkgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT02MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzcgIHg9ODYzICAgeT0xMTI5ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTQ3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTI5ICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OCAgeD04OTkgICB5PTEyODggIHdpZHRoPTk3ICAgIGhlaWdodD0xMTEgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc5ICB4PTc5MCAgIHk9MTI5MCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODAgIHg9MjUyOCAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MSAgeD04NjYgICB5PTU5OSAgIHdpZHRoPTExNyAgIGhlaWdodD0xNjYgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgyICB4PTI4OTMgIHk9OTIzICAgd2lkdGg9MTEwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODMgIHg9MjkwOCAgeT0xMjQyICB3aWR0aD02NyAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTYyICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NCAgeD0yMTY2ICB5PTEyNjEgIHdpZHRoPTczICAgIGhlaWdodD04MiAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg1ICB4PTE0NzkgIHk9MTI3MSAgd2lkdGg9NzkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODYgIHg9MTI1MyAgeT0xMjc0ICB3aWR0aD0xMDMgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NyAgeD0xMDA4ICB5PTEyNzcgIHdpZHRoPTExMSAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg4ICB4PTI1NDIgIHk9NzU4ICAgd2lkdGg9MTU0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODkgIHg9MjM3MiAgeT03NjAgICB3aWR0aD0xNTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MCAgeD0xMTI5ICB5PTc3NiAgIHdpZHRoPTE1OSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkxICB4PTkyNSAgIHk9Nzc3ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTIgIHg9MTYyICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MyAgeD0zMjQgICB5PTIxNCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk0ICB4PTAgICAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTUgIHg9MTM1OSAgeT0yMTAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NiAgeD0xODE0ICB5PTIwOCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk3ICB4PTEwMTYgIHk9MCAgICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5OSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMjMgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTggIHg9MTc5MiAgeT03NjkgICB3aWR0aD0xOTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjYgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE1MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OSAgeD0xMTc4ICB5PTAgICAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAwICB4PTI5MjIgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDEgIHg9NjQxICAgeT0yMTQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMiAgeD03NzUgICB5PTIxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAzICB4PTE5NzYgIHk9MjA3ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDQgIHg9MTAxOCAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNSAgeD0xMTEyICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA2ICB4PTkwOSAgIHk9MjEzICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDcgIHg9MjExMCAgeT0yMDcgICB3aWR0aD0xMDAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjggICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOCAgeD0wICAgICB5PTk2OSAgIHdpZHRoPTE0NSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA5ICB4PTE1MjEgIHk9MjA4ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTAgIHg9MjE4NCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMSAgeD0yMDMxICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEyICB4PTE4NzggIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTMgIHg9Mjc2OSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNSAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNCAgeD0xMjA2ICB5PTIxMCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTEgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTEzICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE1ICB4PTI3OSAgIHk9MTMxNiAgd2lkdGg9MTIwICAgaGVpZ2h0PTEyMCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MCAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTYgIHg9MjY1NSAgeT0yMDYgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTc0ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEwICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNyAgeD0yNjI1ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE4ICB4PTI0ODEgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTkgIHg9MjMzNyAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMCAgeD0xNjcwICB5PTIwOCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIxICB4PTQ4NiAgIHk9MjE0ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjIgIHg9MjM2MCAgeT05MzkgICB3aWR0aD0xMjQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMyAgeD0xMjEgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzEgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NyAgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI0ICB4PTE2MDQgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjUgIHg9MTQ3MyAgeT00MTIgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNiAgeD0xNzM1ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI3ICB4PTUzMiAgIHk9NjAwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjggIHg9MjkyNiAgeT01NjkgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOSAgeD0yNTI0ICB5PTIwNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MSAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMwICB4PTk5NiAgIHk9MTEyOSAgd2lkdGg9MTczICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xMzUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzEgIHg9MTk3OSAgeT00MDcgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMiAgeD0xMDc2ICB5PTQxNSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMzICB4PTk0MyAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzQgIHg9ODEwICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNSAgeD0yNzkzICB5PTU3MiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM2ICB4PTc3MiAgIHk9NjAwICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzcgIHg9Mjk3MCAgeT0zODggICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOCAgeD02NjMgICB5PTYwMCAgIHdpZHRoPTk3ICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM5ICB4PTAgICAgIHk9MTE0MyAgd2lkdGg9MTAwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDAgIHg9MjgxMCAgeT0yMDUgICB3aWR0aD0xMjMgICBoZWlnaHQ9MTczICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTUgICAgIHhhZHZhbmNlPTk0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MSAgeD0wICAgICB5PTc5MiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQyICB4PTI2MCAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDMgIHg9NTM4ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NCAgeD0zOTkgICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ1ICB4PTI4MzEgIHk9MzkwICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDYgIHg9MjI1MyAgeT01ODMgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NyAgeD0xNDAgICB5PTEzMTcgIHdpZHRoPTEyNyAgIGhlaWdodD0xMjggICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ4ICB4PTU2NCAgIHk9MTEyOSAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE1MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDkgIHg9MjExMSAgeT00MDcgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MCAgeD0yMjM5ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUxICB4PTIzNjcgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTIgIHg9NjcyICAgeT03NzkgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MyAgeD03NDkgICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU0ICB4PTg4MyAgIHk9MCAgICAgd2lkdGg9MTIxICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTUgIHg9MTc0NCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5rZXJuaW5ncyBjb3VudD0xNjg2XHJcbmtlcm5pbmcgZmlyc3Q9MzIgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NiAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODkgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD0yMjEgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTMgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTYgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg2ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTc0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTc0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTg1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjU1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTMgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTcxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTgxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zOSAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODcgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NiAgYW1vdW50PS0xNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODkgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD02NSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTQgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTcgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDQgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD03NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIxIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjU1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTExIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0OSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NiAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAwIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIwIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDUgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE3MyBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDEgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05NyAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjggYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03NCAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTExIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQyIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xNzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTY1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5OSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5gO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IHtnZXRUb3BMZXZlbEZvbGRlcn0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3RpY2snLCBoYW5kbGVUaWNrICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICBjb25zdCB0ZW1wTWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlVGljayggeyBpbnB1dCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCAgfHwgZm9sZGVyLmdyYWJEaXNhYmxlZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5wcmVzc2VkICYmIGlucHV0LnNlbGVjdGVkICYmIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgaWYoIGlucHV0LmludGVyYWN0aW9uLnByZXNzID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICAgICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24uc3ViKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7ICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LndvcmxkVG9Mb2NhbChpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vTk9URTo6IGluIG9ydGhvZ3JhcGhpYyBtb2RlLCB3ZSd2ZSBhbHJlYWR5IG11dGF0ZWQgdGhlIHBvc2l0aW9uIG9mIGZvbGRlcnMsXHJcbiAgICAgICAgICAvL21lYW5pbmcgdGhlcmUgY291bGQgYmUgc29tZSBpbmNvbnNpc3RlbmN5IHdpdGggdGhlIG1vdXNlSW50ZXJzZWN0aW9uIHBvaW50IG5vIGxvbmdlciBiZWluZyByaWdodC4uLlxyXG4gICAgICAgICAgLy9JIHRob3VnaHQgdGhpcyB3YXMgcGxheWluZyBhIHJvbGUgaW4gYSBidWcgd2l0aCBvcnRob2dyYXBoaWMgZm9sZGVyIGxheW91dCwgYXBwZWFycyBvayBmb3Igbm93LlxyXG4gICAgICAgICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG5cclxuICAgICAgICAgIGZvbGRlci51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICBpZiggaGl0T2JqZWN0ID09PSBwYW5lbCApe1xyXG4gICAgICAgICAgaGl0T2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBoaXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZVBsYW5lLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KCBpbnB1dC5tb3VzZUNhbWVyYS5nZXRXb3JsZERpcmVjdGlvbiggaW5wdXQubW91c2VQbGFuZS5ub3JtYWwgKSwgdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VQbGFuZSApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBpZiggaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgICBpZiggaGl0T2JqZWN0ICE9PSBwYW5lbCApe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQgPSBmb2xkZXI7XHJcblxyXG4gICAgICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuc2VsZWN0ZWQubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZU9mZnNldC5jb3B5KCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApLnN1YiggdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgXHJcbiAgICAgIHRlbXBNYXRyaXguZ2V0SW52ZXJzZSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIHRlbXBNYXRyaXggKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG5cclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcbiAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgaW5wdXRPYmplY3QuYWRkKCBmb2xkZXIgKTsgXHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJiZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlucHV0LnNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuXHJcbiAgICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiUmVsZWFzZWQnLCBmb2xkZXIgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsImV4cG9ydCBjb25zdCBncmFiQmFyID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFnQ0FZQUFBQ2luWDZFQUFBQUNYQklXWE1BQUM0akFBQXVJd0Y0cFQ5MkFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQURza2FWUllkRmhOVERwamIyMHVZV1J2WW1VdWVHMXdBQUFBQUFBOFAzaHdZV05yWlhRZ1ltVm5hVzQ5SXUrN3Z5SWdhV1E5SWxjMVRUQk5jRU5sYUdsSWVuSmxVM3BPVkdONmEyTTVaQ0kvUGdvOGVEcDRiWEJ0WlhSaElIaHRiRzV6T25nOUltRmtiMkpsT201ek9tMWxkR0V2SWlCNE9uaHRjSFJyUFNKQlpHOWlaU0JZVFZBZ1EyOXlaU0ExTGpZdFl6RXpNaUEzT1M0eE5Ua3lPRFFzSURJd01UWXZNRFF2TVRrdE1UTTZNVE02TkRBZ0lDQWdJQ0FnSUNJK0NpQWdJRHh5WkdZNlVrUkdJSGh0Ykc1ek9uSmtaajBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOHdNaTh5TWkxeVpHWXRjM2x1ZEdGNExXNXpJeUkrQ2lBZ0lDQWdJRHh5WkdZNlJHVnpZM0pwY0hScGIyNGdjbVJtT21GaWIzVjBQU0lpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB6ZEVWMmREMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFJYWmxiblFqSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwMGFXWm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNScFptWXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpYaHBaajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5bGVHbG1MekV1TUM4aVBnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBiM0pVYjI5c1BrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPakkxT2pNeUxUQTNPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRZdE1Ea3RNamhVTVRZNk16YzZNak10TURjNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pNM09qSXpMVEEzT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThaR002Wm05eWJXRjBQbWx0WVdkbEwzQnVaend2WkdNNlptOXliV0YwUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNHpQQzl3YUc5MGIzTm9iM0E2UTI5c2IzSk5iMlJsUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rbERRMUJ5YjJacGJHVStjMUpIUWlCSlJVTTJNVGsyTmkweUxqRThMM0JvYjNSdmMyaHZjRHBKUTBOUWNtOW1hV3hsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmVHMXdUVTA2U1c1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSdlkzVnRaVzUwU1VRK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPamRsTnpkbVltWmpMVGcxWkRRdE1URmxOaTFoWXpobUxXRmpOelUwWldRMU9ETTNaand2ZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pazl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDU0YlhBdVpHbGtPbU0xWm1NMFpHWXlMVGt4WTJNdFpUSTBNUzA0WTJWakxUTXpPREl5WTJRMVpXRmxPVHd2ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG1OeVpXRjBaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEcGpOV1pqTkdSbU1pMDVNV05qTFdVeU5ERXRPR05sWXkwek16Z3lNbU5rTldWaFpUazhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UWXRNRGt0TWpoVU1UWTZNalU2TXpJdE1EYzZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTI5dWRtVnlkR1ZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHdZWEpoYldWMFpYSnpQbVp5YjIwZ1lYQndiR2xqWVhScGIyNHZkbTVrTG1Ga2IySmxMbkJvYjNSdmMyaHZjQ0IwYnlCcGJXRm5aUzl3Ym1jOEwzTjBSWFowT25CaGNtRnRaWFJsY25NK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBJSEprWmpwd1lYSnpaVlI1Y0dVOUlsSmxjMjkxY21ObElqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tRmpkR2x2Ymo1ellYWmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHdPUzB5T0ZReE5qb3pOem95TXkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNHhQQzlsZUdsbU9rTnZiRzl5VTNCaFkyVStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0Mk5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNand2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgrT2hGN1J3QUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUFsRWxFUVZSNDJ1elpzUTNBSUF4RVVUdVRaSlJza3Q1TFJGbUNkVExhcFVLQ0Jpam8vRjBobjJTa0p4SUtYSkpscnNPU0Z3QUFBQUJBNnZLSTZPN0JVb3JYZFp1MS9WRVdFWmVaZmJONW0vWmFtamZLK0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNCZnVhU25hN2kvZGQxbWJYK1VTVHJON0o3TjI3VFgwcnhSeGduZ1pZaWZJQUFBQUpDNGZnQUFBUC8vQXdBdU1WUHcyMGh4Q3dBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQxJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAvLyB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjU7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwLCBpbWFnZS5oZWlnaHQgLyAxMDAwLCAxLCAxICk7XHJcblxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcbn0oKSk7XHJcblxyXG5leHBvcnQgY29uc3QgZG93bkFycm93ID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPakU0T2pJMUxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3hPRG95TlMwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNRFF5WWpJMFpTMWlNemMyTFdJME5HSXRPR0k0WXkxbFpURmpZMkl6WVdVMU1EVThMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qTXdOREppTWpSbExXSXpOell0WWpRMFlpMDRZamhqTFdWbE1XTmpZak5oWlRVd05Ud3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejVVaWx6MEFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBSmRTVVJCVkhqYTdOM0xjY0pBRUlUaFJ1VzduY1VlVFFoa1FBaUlETWdJaFVJSWNGUVdKZ0o4OEZLbG92d0FyTjJkNlo0NWNaR0EvVDl2aVlmdHhlVnlRWXp1ZExFRUFTQW1BTVFFZ0JqSmVXbDF4eW1sTndBSEFNZHhISHZGeFU4cERRQ1dBRmJqT0g3STdBQ1QrTzhBTm5raEZPTnY4aG9jOHByd0E3aUpmeDBwQkpQNDEybUdvRE1RWHdyQk4vR2JJdWlNeEpkQThFdjhaZ2c2US9HcEVkd1J2d21DemxoOFNnUVB4SytPb01ZT01Ed1lud3JCRS9HbkNBYlhBUEtUWC8vakZKdVVVdTg0ZnY5ay9PdXNTLzhRZEFibDM4N2VJNEw4bVBjem5Lcm9UbGh5QjFqT2VDNVhDR2FNWDJJdHF3RllBVGlwSVNnUS81VFgwaGVBL042MkZJSlM4VXQrVGxEMElsQUpnY2Y0VlY0R0tpRHdHci9XK3dEVUNEekhyd2FBRllIMytGVUJzQ0ZnaUY4ZEFBc0NsdmhOQUhoSHdCUy9HUUN2Q05qaU53WGdEUUZqL09ZQXZDQmdqVzhDZ0hVRXpQSE5BTENLZ0QyK0tRRFdFQ2pFTndmQUNnS1YrQ1lCVEJEMEFNNjFFUlNJZndiUVc0eHZGa0JHY013N1FUVUVoZUt2OG5OQkFEQ01RREcrZVFDMUVLakdCNENGbDc4UmxGSmE0dXNYVEY3bmpKUnZ6MzVlRC9GZEFTaUlBS3J4M1FFb2hBQ3E4VjFjQTFTNkpwQ003eEtBUVFSdTQ3c0ZZQWlCNi9pdUFSaEE0RDYrZXdBTkVWREVwd0RRQUFGTmZCb0FGUkZReGFjQ1VBRUJYWHc2QUFVUlVNYW5CRkFBQVcxOFdnQXpJcUNPVHcxZ0JnVDA4ZWtCVEJEc25qaDB4eDVmQWtCR01BRFlQbkRJTmgrREFLQ0hRQ2ErRklBN0VVakZsd1B3QndLNStKSUFma0FnR1I5dytKV3dPZWY2eldEVitQSUFZdUxmeGdXQVdJSUFFQk1BWWdKQWpPUjhEZ0QrNk96Z3Y0dXk5Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgaCA9IDAuMztcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggLTAuMDA1LCAtMC4wMDQsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgY2hlY2ttYXJrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPak16T2pVekxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3pNem8xTXkwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzJPRGN4WVRrNVl5MHpOakU1TFRsa05HRXRPRGRrTmkwd1lXRTVZVFJpTldVNE1qYzhMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qWTROekZoT1RsakxUTTJNVGt0T1dRMFlTMDROMlEyTFRCaFlUbGhOR0kxWlRneU56d3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejV6OVJUM0FBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBVHRTVVJCVkhqYTdKemJiNVJGR01aLzJ4YkN2VmhBU0V4VWlJMTQ0dzBoUXRIRUdySGdJU3FnTjZLZ3ROWVdBYjB3MFdvMVhxcmJQYlNsb2tZU3hmTWhlbVgvQWE3d0dBVnE4WFRwMzBEWGk1bUptMGEydTl2My9iNloyWGx1ZHJPSGR3L1BNelBQKzc0elg2RldxeUdGZ1lFQkVscEdEL0FlY0N0d0IvRGJjbStZbTVzVCsvQ3U5UC9uaW02Z0NEd0NYQXQ4RFZ5WDVSZElBc2dQQmFBRWpOUTlkaVB3RmJBNUNTQitUQUZQL2Mvalc0SFBnTDRrZ0hneEN3dzFlUDVtNEdON213UVFFYm9zK1U4MDhkcXR3RWYyTmdrZ0VyYy8weVQ1RG4xMk9kaVNCQkErK2FVV3lYZllBbndEWEo4RUVHNnFOd2tNcnlER1pwc2kzcEFFRUI2cVYzRDdyYUlQK05LbWlra0FnZUF0NEloZ3ZKdnNUSkFFNERrS3dDbmdzRUxzczBrQS9xLzVzOEFoaGRqVHdFRnBkNW9nUzM1VmFlVFBBazhEaTBrQS9wSmZFbDd6SFU3U3VIS1lsZ0FQMXZ5eWtOdGZpaGt0OHBNQVpFa2FWb2hiVllxYkJDQ0lVOENUQ25GTHdKajJsMDhDV05tYS83YVMyNjhDeDZRTlh4S0FySG1lQmg1WFdrN0dzaUEvVHdHTVlmYS9oVXArbWZZYU84MjQvZUdzeU05TEFDOWdtaVB2QXpzREk3L0xyczFEU2lOL0tJOGZsQ1hHZ1ZmdC9WN2dETEFySUFGTWgrcjJmUkRBUzhERWtzYzJBaDhDL1IzczlzdkFhSjVUV2xia3YzeUY1OVpqZHIxczkzamExM0w3RmV2MmF6RUxZTHdCK1E1ck1iM3ViUjRhdnBOS2JuOGFlQWE0bkxlNnRRM2ZSSk92N1FXKzhHZ202TEVqVktPeE00TTVEM0E1N3grcEtZQVg2d3hmczlnQWZBTHM4SUI4cmNhT0t4dlhmRkM1bGdER2dWZmFmSzh6aHJ0eS9FKzBYSGtsTDdlZnBRQW1XcGoybHhQQmJUbjhKN1BvMWZaSDhRelNBbmpOam40SnJNZWNqc21xV0ZRQTNsVnkreVhyOW9sZEFIY0t4N3NhK0R3RFk5aGo4L3lEaXFuZVlpY0k0RkhnUitHWWE1V3pBODNHemhSdzFGZnlOUVR3QzNDUHZaWEVPdUJUekVVVUpMRXFnMVRQVy9LMVRPQ2Z3Q0J3VVRqdU5jaVdqYnN4WlZpTlZDKzMycjR2YWVBZndGM0FnbkRjVFZZRXR3dU5VQTN5eTVqZHUzU3lBQUIrQjNZckxBY2JCT29FN3loTis1TjJ6U2NKd0dBZWVBRDRUamh1TDZhQjFLb242TGJrUDZZMDhvL2pTWVhQRndFQW5BY2VWaERCVlMxbUI2NnhvMEgrRktheHMwaGd5S29kZkFGNEVQaEpxVTZ3M0V5d3locXpRMHJrajRSSWZwWUNBTGdFN0xFemdpUmN4YkMvd2Npdm9GUGVkZVFIaTZ5M2hQMWxqZUc4VW9xNE5Ec29ZSW84V2p0NWdpWS9Ed0hVcDRpL0ttUUhaK3BFVU1EczVORncrMFV5T0xRUnF3RGNjbkF2OEwxdzNIWEFhWnNpdnE1aytJckFDU0pCbnFlRDU0RUR3QWZBTFlKeE53SGZLcG15c2lWL01SWUI1SDB5NkFLd0gvaEJPTzVxWUkyQzRUc2FFL2srQ0FETTFiSDNJbDh4bEVUVkdyNGFrY0dYczRGL0EzZmJHY0UzVkFpb3RoK3FBTUIwRVhkN0pvSkpQTnpHRmFzQXdEU1FCcEhmVk5LdTJ6OUc1UER4ZVBnQzhCQndMdWVSZnlMR05UOEVBWURaVEhJQStRWlNzMnYrOGRqY2ZtZ0NjSFdDKzVGdklDM245a2M3aFh6ZkJlQ000UjdreThZZDUvWkRGUUQ4MTBDNnFQZ1owYnY5a0FWUW55SnFGSXZleEd6bUlBbkFiMXdDN2hNMmhrWGdXVG9Zb1YwbHpEV1FKRkxFNkJvN25TQUFseUx1WTJVTnBBb1pYb290Q1VBZUM1Z0cwczl0a2o5S1F0QUNBTk5BR3FTMVBZYWxSSDQ4QW5BcFlyUGJ5NG9FZG1nakNhRDVGSEV2amJlWHZZRXA3eVpFS0FEbkNmWmJFZndEUEk4NUwrRElmNDRPYU95MGczOEhBTS9lN2d1SVJ4OTRBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRUVTVVJCVkdpQjdkaEJEb013REVSUjdqVGlKQ1B1ZjVXdW1waFZ4WHlrVkpHeklwSjVjZ3NrZG80TGpxT0JyUUE5SEEwMDBNRCt3UFZqdkFXY0ZCanpFQmdKcE1DY1o4Qk1JQVRLUEFKS0FobFE1d253VGNBcE1DNURZQ1NRQXZlcjU4Qk1JQVRLRFJGUUVzaUFHazhBVTBBUU1BVUVBVk5BRURBRkJBRlRRQkF3QlFRQlUwQVFNQVVFQVZOQUVEQUZCQUZUUUJEd2NnRC9CUDRuNHNmSVh5VDhLdk9QQ1gvT2ZFSEJTeHBmVlBHeXpqY1d2TFh4elJWdjc3ekF3Q1VPTDdKd21jY0xUVnpxOG1JN0wvZlBra0lFNEphSE4xMjQ3ZU9OSjI1OWVmTjlpMWx6QUZHREZoM0NsS2hWQjFFemJObGgzSWo3d3hQTkJocG9ZRFdRamdhMkFENVMvQ3lJdmJtcTdnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NCdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHVuZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFUFNVUkJWR2lCN2RneENzUXdEQVRBL0Vub0pVTC8vOHBWc1dXbE9Md0xVVEJ5RmZiRXNOYzRkaTRuMTlYQVVZQnNyZ1lhYU9COHdQOHNHakFXY0Jvd0ZuQWFNQlp3R2pBV2NCalFVQUVDSkF4alFLaUFBZko4MmdSbUJSQ1lGVkJnVkVDQngrL2JnS1pzRzhnRCswQ3FzQStrQ1FCWUt3REFPb0lBU3dVRVdHWWdJRmFBZ0RpRUFhRUNCb1FwRUpnVlFHQ09vY0NvZ0FMd2p2U29BQVAzSUE0b0N3Z05LQXNJRFdnNXdQNEZaUUVuQVdVQkp3RmxnVHNyMjFCR1ZyV3B6cXpveFJLeW1wZHJ6RW9PR0V0V2NjaGFzNEtEWnNyZVAyem43UFVMeDNnRWdWR2c2dG8zQ3hSZGZVT0JvdXQvS0ZENkNjUllRRWpBV0VCSXdGZ2d6MzN3aTJZRERUUlFEYUNyZ1NPQUg4SDhLcWdnWXBBVUFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ1J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcbiIsIi8qKiBcclxuICogQmlnIGJ1dHRvbiB3aXRoIGFuIGltYWdlIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogQWxzbyB1c2FibGUgYXMgYW4gJ3h5IGNvbnRyb2xsZXInIHZpYSBhZGRYWUNvbnRyb2xsZXIgbWV0aG9kLlxyXG4gKiBcclxuICogQVBJIHN1YmplY3QgdG8gY2hhbmdlLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7aXNDb250cm9sbGVyVmlzaWJsZX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBmdW5jID0gdW5kZWZpbmVkLFxyXG4gIHByZXNzaW5nID0gdW5kZWZpbmVkLFxyXG4gIGltYWdlID0gXCJ0ZXh0dXJlcy9zcG90bGlnaHQuanBnXCIsIC8vVE9ETyBiZXR0ZXIgZGVmYXVsdFxyXG4gIHdpZGUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY2hhbmdlQ29sb3JPbkhvdmVyID0gdHJ1ZSwgLy9xdWljayBoYWNrOiBjb2xvciBwaWNrZXIgd2FudHMgdGhpcyB0byBiZSBmYWxzZVxyXG4gIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAgLy9YWFggbWFnaWMgbnVtYmVycy4uLlxyXG4gIGlmICghaGVpZ2h0KSBoZWlnaHQgPSBMYXlvdXQuUEFORUxfV0lEVEggICogKHdpZGUgPyAwLjk0IDogMC4yNSk7XHJcbiAgXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAod2lkZSA/IDAuOTQgOiAwLjI1KSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gYnV0dG9uRGVwdGg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgMSwgMSApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTsgIC8vIHJlYWxsb3dlZCBzanB0XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBvYmouaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgb2JqLm5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IG9iai5ob3ZlckNvbCA6IG9iai5ub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygpICk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwwKSApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgMjggQXByaWwgMjAyMiwgZ2VuZXJhbGx5IHByZXR0eSBiYWQgcHJhY3RpY2VcclxuICAgICAgICAvLyBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIC8vaWYgYW55IGlucHV0LmludGVyYWN0aW9ucyBoYXZlIGhpdFZvbHVtZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHNvbWV0aGluZyBub3QgY3VycmVudGx5IGluIGhpdHNjYW5PYmplY3RzLFxyXG4gIC8vdGhhdCBpbnRlcmFjdGlvbiBzaG91bGQgYmUgY2FuY2VsbGVkLiBFc3BlY2lhbGx5IHByb2JsZW1hdGljIHdpdGggZS5nLiBwcmVzc2luZyAncmVhdHRhY2gnIHdoZW4gdGhlIHBhcmVudCBpcyBjbG9zZWQuXHJcbiAgZnVuY3Rpb24gY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9ucywgaGl0c2Nhbk9iamVjdHMgKSB7XHJcbiAgICBbJ3ByZXNzJywgJ2dyaXAnLCAnaG92ZXInXS5mb3JFYWNoKCBpbnRlcmFjdGlvbk5hbWUgPT4ge1xyXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdO1xyXG4gICAgICBpZiAoaW50ZXJhY3Rpb24gJiYgaGl0c2Nhbk9iamVjdHMuaW5kZXhPZihpbnRlcmFjdGlvbi5oaXRWb2x1bWUpIDwgMCkge1xyXG4gICAgICAgIGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdID0gdW5kZWZpbmVkOyBcclxuICAgICAgICAvL29ubHkgYmUgcG9saXRlIHRvIGluZm9ybSB0aGUgaW50ZXJhY3Rpb24gYXMgd2VsbDsgdXBkYXRlIHdpdGggZW1wdHkgaW5wdXRPYmplY3RzIGFyZyBzaG91bGQgZG8gdGhlIHRyaWNrLlxyXG4gICAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggW10gKTtcclxuICAgICAgfSBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlTGFzZXIoIGxhc2VyLCBwb2ludCApe1xyXG4gICAgY29uc3QgcHAgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICBwcFszXSA9IHBvaW50Lng7XHJcbiAgICBwcFs0XSA9IHBvaW50Lnk7XHJcbiAgICBwcFs1XSA9IHBvaW50Lno7XHJcbiAgICBwcC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHBvaW50ICk7XHJcbiAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnRpY2VzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGlmKCBpbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgY29uc3QgZmlyc3RIaXQgPSBpbnRlcnNlY3Rpb25zWyAwIF07XHJcbiAgICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgY3Vyc29yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZU1vdXNlSW50ZXJzZWN0aW9uKCBpbnRlcnNlY3Rpb24sIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBpbnRlcnNlY3Rpb24gKTtcclxuICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgY3Vyc29yLnBvc2l0aW9uICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBjYW1lcmEgKXtcclxuICAgIHJheWNhc3Quc2V0RnJvbUNhbWVyYSggbW91c2UsIGNhbWVyYSApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIHJldHVybiByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbW91c2VJbnRlcnNlY3RzUGxhbmUoIHJheWNhc3QsIHYsIHBsYW5lICl7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIHBsYW5lLCB2ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLG1vdXNlLG1vdXNlQ2FtZXJhLCBpbnRlcmFjdGlvbn0gPSB7fSApe1xyXG4gICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgbGV0IGludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICBpZiAobW91c2VDYW1lcmEpIHtcclxuICAgICAgaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIG1vdXNlQ2FtZXJhICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnRlcnNlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCk7XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgbWV0aG9kcy5cclxuICAqL1xyXG5cclxuICBjb25zdCBwdWJsaWNJbnRlcmZhY2UgPSB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBhZGRJbnB1dE9iamVjdCxcclxuICAgIGVuYWJsZU1vdXNlLFxyXG4gICAgZGlzYWJsZU1vdXNlLFxyXG4gICAgdGV4dENyZWF0b3IsIC8vY2hlYXAgd2F5IG9mIGV4cG9zaW5nIHRoaXMgc28gaXQgY2FuIGJlIHVzZWQgYnkgaG9zdCBhcHBsaWNhdGlvbi5cclxuICAgIGdsb2JhbEV2ZW50cyxcclxuICAgIGNsZWFyQWxsLFxyXG4gICAgdXBkYXRlXHJcbiAgfTtcclxuICAvLyBhbGxvdyB1c2VyIHRvIGNhbGwgXCJkYXQuR1VJVlIuYXV0b1VwZGF0ZSA9IGZhbHNlXCIgYW5kIHRoZW4gdXBkYXRlIG1hbnVhbGx5IHdpdGhcclxuICAvLyBcImRhdC5HVUlWUi51cGRhdGUoKVwiXHJcbiAgLy8gZXhwb3NlIGF1dG9VcGRhdGUgYXMgcHJvcGVydHkgc28gdGhhdCB0aGUgcmVmZXJlbmNlIHdpbGwgYmUgcHJvcGVybHkgZWZmZWN0ZWRcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIHB1YmxpY0ludGVyZmFjZSwgJ2F1dG9VcGRhdGUnLCB7IGdldDogKCk9PiBhdXRvVXBkYXRlLCBzZXQ6IHYgPT4gYXV0b1VwZGF0ZSA9IHYgfSApO1xyXG4gIHJldHVybiBwdWJsaWNJbnRlcmZhY2U7XHJcblxyXG59KCkpO1xyXG5cclxuaWYoIHdpbmRvdyApe1xyXG4gIGlmKCB3aW5kb3cuZGF0ID09PSB1bmRlZmluZWQgKXtcclxuICAgIHdpbmRvdy5kYXQgPSB7fTtcclxuICB9XHJcblxyXG4gIHdpbmRvdy5kYXQuR1VJVlIgPSBHVUlWUjtcclxufVxyXG5cclxuaWYoIG1vZHVsZSApe1xyXG4gIG1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgZGF0OiBHVUlWUlxyXG4gIH07XHJcbn1cclxuXHJcbmlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xyXG4gIGRlZmluZShbXSwgR1VJVlIpO1xyXG59XHJcblxyXG4vKlxyXG4gIEJ1bmNoIG9mIHN0YXRlLWxlc3MgdXRpbGl0eSBmdW5jdGlvbnMuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBpc051bWJlcihuKSB7XHJcbiAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG4pKSAmJiBpc0Zpbml0ZShuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNCb29sZWFuKG4pe1xyXG4gIHJldHVybiB0eXBlb2YgbiA9PT0gJ2Jvb2xlYW4nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjaykge1xyXG4gIGNvbnN0IGdldFR5cGUgPSB7fTtcclxuICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xyXG59XHJcblxyXG4vLyAgb25seSB7fSBvYmplY3RzIG5vdCBhcnJheXNcclxuLy8gICAgICAgICAgICAgICAgICAgIHdoaWNoIGFyZSB0ZWNobmljYWxseSBvYmplY3RzIGJ1dCB5b3UncmUganVzdCBiZWluZyBwZWRhbnRpY1xyXG5mdW5jdGlvbiBpc09iamVjdCAoaXRlbSkge1xyXG4gIHJldHVybiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pICYmIGl0ZW0gIT09IG51bGwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0FycmF5KCBvICl7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoIG8gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNTdHJpbmcoIG8gKXtcclxuICByZXR1cm4gdHlwZW9mIG8gPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0NvbG9yKCBvICl7XHJcbiAgaWYgKHR5cGVvZiBvICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBvLmlzQ29sb3IgPyB0cnVlIDogZmFsc2U7XHJcbn1cclxuXHJcblxyXG5cclxuLypcclxuICBDb250cm9sbGVyLXNwZWNpZmljIHN1cHBvcnQuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBjb250cm9sbGVyLCBwcmVzc2VkLCBncmlwcGVkICl7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcmRvd24nLCAoKT0+cHJlc3NlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcnVwJywgKCk9PnByZXNzZWQoIGZhbHNlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc2Rvd24nLCAoKT0+Z3JpcHBlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHN1cCcsICgpPT5ncmlwcGVkKCBmYWxzZSApICk7XHJcblxyXG4gIGNvbnN0IGdhbWVwYWQgPSBjb250cm9sbGVyLmdldEdhbWVwYWQoKTtcclxuICBmdW5jdGlvbiB2aWJyYXRlKCB0LCBhICl7XHJcbiAgICBpZiggZ2FtZXBhZCAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycyAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzWyAwIF0ucHVsc2UoIHQsIGEgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NUYXAoKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoMS1hLCAwLjUpLCAxMCwgMjAgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NFY2hvKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDQsIDEuMCAqICgxLWEpKSwgMTAwLCA0ICk7XHJcbiAgfVxyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdvbkNvbnRyb2xsZXJIZWxkJywgZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICB2aWJyYXRlKCAwLjMsIDAuMyApO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiYmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYlJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3Bpbm5lZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3BpblJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldEludGVydmFsVGltZXMoIGNiLCBkZWxheSwgdGltZXMgKXtcclxuICBsZXQgeCA9IDA7XHJcbiAgbGV0IGlkID0gc2V0SW50ZXJ2YWwoIGZ1bmN0aW9uKCl7XHJcbiAgICBjYiggeCwgdGltZXMsIHgvdGltZXMgKTtcclxuICAgIHgrKztcclxuICAgIGlmKCB4Pj10aW1lcyApe1xyXG4gICAgICBjbGVhckludGVydmFsKCBpZCApO1xyXG4gICAgfVxyXG4gIH0sIGRlbGF5ICk7XHJcbiAgcmV0dXJuIGlkO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBnbG9iYWxFdmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdFZvbHVtZSApe1xyXG4gIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG4gIGxldCBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gIGxldCBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gIGxldCBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgdFZlY3RvciA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgYXZhaWxhYmxlSW5wdXRzID0gW107XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSggaW5wdXRPYmplY3RzICl7XHJcblxyXG4gICAgYW55SG92ZXIgPSBmYWxzZTtcclxuICAgIGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgICBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIGlucHV0ICl7XHJcblxyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmluZGV4T2YoIGlucHV0ICkgPCAwICl7XHJcbiAgICAgICAgYXZhaWxhYmxlSW5wdXRzLnB1c2goIGlucHV0ICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHsgaGl0T2JqZWN0LCBoaXRQb2ludCB9ID0gZXh0cmFjdEhpdCggaW5wdXQgKTtcclxuXHJcbiAgICAgIHZhciBob3ZlciA9IGhpdFZvbHVtZSA9PT0gaGl0T2JqZWN0O1xyXG4gICAgICBhbnlIb3ZlciA9IGFueUhvdmVyIHx8IGhvdmVyO1xyXG5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ3ByZXNzZWQnLFxyXG4gICAgICAgIGJ1dHRvbkNsaWNrTmFtZTogJ2NsaWNrZWQnLCAvL21heWJlIG5vdCBzdGFibGUgcGFydCBvZiBBUEkuLi5cclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdwcmVzcycsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvblByZXNzZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAncHJlc3NpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZWQnLFxyXG4gICAgICAgICAvL2ludmVudGluZyBhICdob3ZlcmluZycgZXZlbnQgdGhhdCBvbmx5IGFwcGxpZXMgdG8gJ3ByZXNzZWQnIGJ1dHRvbi4uLlxyXG4gICAgICAgICAvL3RoaXMgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc3RhYmxlIGludGVyZmFjZSwgYnV0IEkgd2FudHMgaXQgbW9yZSB0aGFuIElcclxuICAgICAgICAgLy93YW50IHRvIG1ha2Ugc29tZXRoaW5nIHRvdGFsbHkgY29oZXJlbnQgYW5kIHJvYnVzdCBqdXN0IG5vdy5cclxuICAgICAgICBob3Zlck5hbWU6ICdob3ZlcmluZydcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ2dyaXBwZWQnLFxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ2dyaXAnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25HcmlwcGVkJyxcclxuICAgICAgICBob2xkTmFtZTogJ2dyaXBwaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VHcmlwJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCAndGljaycsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9ICk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZXh0cmFjdEhpdCggaW5wdXQgKXtcclxuICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA8PSAwICl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IHRWZWN0b3Iuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5jdXJzb3IubWF0cml4V29ybGQgKS5jbG9uZSgpLCAvL3h4eDogZ2FyYmFnZT9cclxuICAgICAgICBoaXRPYmplY3Q6IHVuZGVmaW5lZCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5wb2ludCxcclxuICAgICAgICBoaXRPYmplY3Q6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3RcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICBpbnB1dCwgaG92ZXIsXHJcbiAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgYnV0dG9uTmFtZSwgYnV0dG9uQ2xpY2tOYW1lLCBpbnRlcmFjdGlvbk5hbWUsIGRvd25OYW1lLCBob2xkTmFtZSwgdXBOYW1lLCBob3Zlck5hbWVcclxuICB9ID0ge30gKXtcclxuXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBoaXRPYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAvL2NsaWNrZWQgYW5kIGRpZG4ndCBoaXQgYW55IEdVSSBvYmplY3QuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaG92ZXJpbmcgYW5kIGJ1dHRvbiBOT1QgZG93blxyXG4gICAgaWYoIGhvdmVyTmFtZSAmJiBob3ZlciAmJiBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSApIHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBldmVudHMuZW1pdCggaG92ZXJOYW1lLCBwYXlsb2FkICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGhvdmVyaW5nIGFuZCBidXR0b24gZG93biBidXQgbm8gaW50ZXJhY3Rpb25zIGFjdGl2ZSB5ZXRcclxuICAgIC8vLS0tPiBzaG91bGQgYmUgXiBidXR0b24gJ2NsaWNrZWQnLi4uIGllIG9ubHkgaWYgaXQgY2FtZSBkb3duIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS5cclxuICAgIC8vc28sIHNob3VsZCB3ZSBwYXNzICdidXR0b25DbGlja05hbWUnIGFzIGFuIGFyZ3VtZW50IChhbmQgdXNlIGJ1dHRvbk5hbWUgaWYgbm90IHByb3ZpZGVkKT9cclxuICAgIC8vLS0tPj4+PiBYWFg6IGlzIHRoaXMgXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXC8vLy8vLy8vLy8vLyB3b3JraW5nIHdpdGggVml2ZSBjb250cm9sbGVycz8gXHJcbiAgICBpZiggaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbkNsaWNrTmFtZSB8fCBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuXHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaWYgKCFoaXRPYmplY3QudXNlckRhdGEucGFydE9mTW9kYWwpIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuXHJcbiAgICAgIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KTtcclxuICAgICAgXHJcbiAgICAgIC8vZW1pdCBnbG9iYWwgY2xpY2sgZXZlbnQgYXMgd2VsbC4uLlxyXG4gICAgICBnbG9iYWxFdmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBpZiggcGF5bG9hZC5sb2NrZWQgKXtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IGludGVyYWN0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIGFueUFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBzdGlsbCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoIGhvbGROYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBpbnB1dC5ldmVudHMuZW1pdCggJ29uQ29udHJvbGxlckhlbGQnICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBub3QgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSB1bmRlZmluZWQ7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICBldmVudHMuZW1pdCggdXBOYW1lLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KSB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihoaXRPYmplY3QpO1xyXG4gICAgdG9wRm9sZGVyLnByb21vdGVaT3JkZXIoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGlzTWFpbkhvdmVyKCl7XHJcblxyXG4gICAgbGV0IG5vTWFpbkhvdmVyID0gdHJ1ZTtcclxuICAgIGZvciggbGV0IGk9MDsgaTxhdmFpbGFibGVJbnB1dHMubGVuZ3RoOyBpKysgKXtcclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0c1sgaSBdLmludGVyYWN0aW9uLmhvdmVyICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgICBub01haW5Ib3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIG5vTWFpbkhvdmVyICl7XHJcbiAgICAgIHJldHVybiBhbnlIb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmZpbHRlciggZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICAgIHJldHVybiBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9PT0gaW50ZXJhY3Rpb247XHJcbiAgICB9KS5sZW5ndGggPiAwICl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IHtcclxuICAgIGhvdmVyaW5nOiBpc01haW5Ib3ZlcixcclxuICAgIHByZXNzaW5nOiAoKT0+YW55UHJlc3NpbmcsXHJcbiAgICB1cGRhdGUsXHJcbiAgICBldmVudHMsXHJcbiAgICBoaXRWb2x1bWVcclxuICB9O1xyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn1cclxuXHJcbiIsIi8qKlxyXG4gKiBcclxuICogVE9ETzogY3Vyc29ycy4uLlxyXG4gKiBNYXliZSBzb21ldGhpbmcgbGlrZSBtb2JpbGUgaW5wdXQgd2hlcmUgeW91IHN3aXRjaCBiZXR3ZWVuIGxldHRlcnMgJiBudW1iZXJzIC8gc3ltYm9sc1xyXG4gKiBcclxuICogU29tZXRoaW5nIGxpa2UgYSBzcGxpdCBrZXlib2FyZCBhbGEgaHR0cHM6Ly9tZWRpdW0uY29tL2Fhcm9ubi92ci10ZXh0LWlucHV0LXNwbGl0LWtleWJvYXJkLWU1YmYzZmQ4N2E0Y1xyXG4gKiBtaWdodCBiZSBiZXR0ZXIuXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlS2V5Ym9hcmQoIHsgXHJcbiAgICBrZXlMaXN0ZW5lcixcclxuICAgIHRleHRDcmVhdG9yXHJcbn0gPSB7fSkge1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGNvbnN0IG9mZnNldFRyYW5zZm9ybSA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgZ3JvdXAuYWRkKG9mZnNldFRyYW5zZm9ybSk7XHJcblxyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGV2ZW50cy5vbigna2V5RG93bicsIGtleUxpc3RlbmVyKTtcclxuICAgIFxyXG4gICAgY29uc3QgbG93ZXJDaGFycyA9IFwiMTIzNDU2Nzg5MC09cXdlcnR5dWlvcFtdYXNkZmdoamtsOycjXFxcXHp4Y3Zibm0sLi8gXCIuc3BsaXQoJycpO1xyXG4gICAgbGV0IG9iamVjdHMgPSBsb3dlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGxvd2VyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKGxvd2VyS2V5cyk7XHJcblxyXG4gICAgY29uc3QgdXBwZXJDaGFycyA9IFwiIVxcXCLCoyQlXiYqKClfK1FXRVJUWVVJT1B7fUFTREZHSEpLTDpAfnxaWENWQk5NPD4/IFwiLnNwbGl0KCcnKTtcclxuICAgIG9iamVjdHMgPSB1cHBlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHVwcGVyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICB1cHBlcktleXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZCh1cHBlcktleXMpO1xyXG5cclxuICAgIGxldCBzaGlmdCA9IGZhbHNlO1xyXG4gICAgZnVuY3Rpb24gc2hpZnRUb2dnbGUoKSB7XHJcbiAgICAgICAgc2hpZnQgPSAhc2hpZnQ7XHJcbiAgICAgICAgbG93ZXJLZXlzLnZpc2libGUgPSAhc2hpZnQ7XHJcbiAgICAgICAgdXBwZXJLZXlzLnZpc2libGUgPSBzaGlmdDtcclxuICAgfVxyXG5cclxuICAgY29uc3Qgc3BhY2VCYXIgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoeyB0ZXh0Q3JlYXRvciwgY29sdW1uczogMSwgcm93SGVpZ2h0OiAwLjEsIG9iamVjdHM6IFtcclxuICAgICAgIHtmdW5jOiAoKT0+ZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnICcpLCB0ZXh0OiAnc3BhY2UnfVxyXG4gICAgXX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGFjZUJhcik7XHJcbiAgICB2YXIgeSA9IHNwYWNlQmFyLnBvc2l0aW9uLnkgPSAtMC41ICogKGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyk7XHJcbiAgICBcclxuICAgIG9iamVjdHMgPSBbXHJcbiAgICAgICAgeyB0ZXh0OiBcInNoaWZ0XCIsIGZ1bmM6IHNoaWZ0VG9nZ2xlIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImJhY2tzcGFjZVwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXGInKSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJlbnRlclwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXG4nKSB9XHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc3BlY2lhbEtleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAzLCByb3dIZWlnaHQ6IDAuMX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGVjaWFsS2V5cyk7XHJcbiAgICBzcGVjaWFsS2V5cy5wb3NpdGlvbi55ID0geS0wLjUgKiAoc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmcpO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcbiAgICAvL3RoaXMgbG9va3MgcmlnaHQsIG11c3QgYWRtaXQgSSBoYXZlbid0IHRob3VnaHQgdGhyb3VnaCBleGFjdGx5IHdoeSBpdCBzaG91bGQgYmUuXHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0ucG9zaXRpb24ueSA9IHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaGl0c2NhbicsIHtcclxuICAgICAgICBnZXQ6ICgpID0+IFtcclxuICAgICAgICAgICAgc3BlY2lhbEtleXMuaGl0c2Nhbiwgc3BhY2VCYXIuaGl0c2Nhbiwgc2hpZnQgPyB1cHBlcktleXMuaGl0c2NhbiA6IGxvd2VyS2V5cy5oaXRzY2FuXHJcbiAgICAgICAgXS5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBzcGFjZUJhci5mb2xkZXIgPSB1cHBlcktleXMuZm9sZGVyID0gbG93ZXJLZXlzLmZvbGRlciA9IHNwZWNpYWxLZXlzLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IChpbnB1dHMpID0+IHtcclxuICAgICAgICBzcGVjaWFsS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgbG93ZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBzcGFjZUJhci51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgdXBwZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFsaWduTGVmdCggb2JqICl7XHJcbiAgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLk1lc2ggKXtcclxuICAgIG9iai5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIGVsc2UgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5ICl7XHJcbiAgICBvYmouY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgdW5pcXVlTWF0ZXJpYWwgKXtcclxuICBjb25zdCBtYXRlcmlhbCA9IHVuaXF1ZU1hdGVyaWFsID8gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweGZmZmZmZn0pIDogU2hhcmVkTWF0ZXJpYWxzLlBBTkVMO1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggd2lkdGgsIGhlaWdodCwgZGVwdGggKSwgbWF0ZXJpYWwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoICogMC41LCAwLCAwICk7XHJcblxyXG4gIGlmKCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcblxyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcblxyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplUGFuZWwocGFuZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKSB7XHJcbiAgcGFuZWwuZ2VvbWV0cnkuc2NhbGUod2lkdGgvcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoLCBoZWlnaHQvcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCwgZGVwdGgvcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoKTtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIGNvbG9yICl7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDT05UUk9MTEVSX0lEX1dJRFRILCBoZWlnaHQsIENPTlRST0xMRVJfSURfREVQVEggKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCBDT05UUk9MTEVSX0lEX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBjb2xvciApO1xyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURvd25BcnJvdygpe1xyXG4gIGNvbnN0IHcgPSAwLjAwOTY7XHJcbiAgY29uc3QgaCA9IDAuMDE2O1xyXG4gIGNvbnN0IHNoID0gbmV3IFRIUkVFLlNoYXBlKCk7XHJcbiAgc2gubW92ZVRvKDAsMCk7XHJcbiAgc2gubGluZVRvKC13LGgpO1xyXG4gIHNoLmxpbmVUbyh3LGgpO1xyXG4gIHNoLmxpbmVUbygwLDApO1xyXG5cclxuICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuU2hhcGVHZW9tZXRyeSggc2ggKTtcclxuICBnZW8udHJhbnNsYXRlKCAwLCAtaCAqIDAuNSwgMCApO1xyXG5cclxuICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTF9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0hFSUdIVCA9IDAuMDg7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9TUEFDSU5HID0gMDsvLy4wMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9NQVJHSU4gPSAwLjAxNTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOID0gMC4wNjtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfV0lEVEggPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9ERVBUSCA9IDAuMDAxO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9XSURUSCA9IDEuMDI2O1xyXG5leHBvcnQgY29uc3QgU1VCRk9MREVSX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0hFSUdIVCA9IDAuMDk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfR1JBQl9IRUlHSFQgPSAwLjA1MTI7XHJcbmV4cG9ydCBjb25zdCBCT1JERVJfVEhJQ0tORVNTID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX1NJWkUgPSAwLjA1O1xyXG5leHBvcnQgY29uc3QgVEVYVF9TQ0FMRSA9IDAuMDAwMjQ7XHJcbmV4cG9ydCBjb25zdCBHUklEX0JVVFRPTl9NQVJHSU4gPSAwLjAxOyIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25HcmlwcGVkJywgaGFuZGxlT25HcmlwICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlR3JpcCcsIGhhbmRsZU9uR3JpcFJlbGVhc2UgKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIGxldCBvbGRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgbGV0IG9sZFJvdGF0aW9uID0gbmV3IFRIUkVFLkV1bGVyKCk7XHJcblxyXG4gIGNvbnN0IHJvdGF0aW9uR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICByb3RhdGlvbkdyb3VwLnNjYWxlLnNldCggMC4zLCAwLjMsIDAuMyApO1xyXG4gIHJvdGF0aW9uR3JvdXAucG9zaXRpb24uc2V0KCAtMC4wMTUsIDAuMDE1LCAwLjAgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcCggcCApe1xyXG5cclxuICAgIGNvbnN0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvbGRQb3NpdGlvbi5jb3B5KCBmb2xkZXIucG9zaXRpb24gKTtcclxuICAgIG9sZFJvdGF0aW9uLmNvcHkoIGZvbGRlci5yb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnggPSAtTWF0aC5QSSAqIDAuNTtcclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuXHJcbiAgICByb3RhdGlvbkdyb3VwLmFkZCggZm9sZGVyICk7XHJcblxyXG4gICAgaW5wdXRPYmplY3QuYWRkKCByb3RhdGlvbkdyb3VwICk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3Bpbm5lZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXBSZWxlYXNlKCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9PXt9ICl7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KCBvbGRQb3NpdGlvbiApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLmNvcHkoIG9sZFJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3BpblJlbGVhc2VkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsIi8qKlxyXG4gKiBQSlQ6IFRoaXMgaXMgYSB2YXJpYXRpb24gb24gc2Rmc2hhZGVyIGZyb20gYm1mb250LCB3aGljaCBzaG91bGQgSnVzdCBXb3JrIHdpdGggbG9nYXJpdGhtaWMgZGVwdGggYnVmZmVycy5cclxuICogSXQgc2hvdWxkIGFsc28gYWxsb3cgc29tZSBvdGhlciBhc3BlY3RzIG9mIFRIUkVFIHJlbmRlcmluZyB0byBiZSBpbmNvcnBvcmF0ZWQsIGxpa2UgZm9nLCBjbGlwcGluZyBwbGFuZXMuLi5cclxuICogRW52aXJvbm1lbnQgbWFwcyBhbmQgdmFyaW91cyBvdGhlciBiaXRzIGZyb20gTWVzaEJhc2ljTWF0ZXJpYWwgYXJlIHJlbW92ZWQuXHJcbiAqIEF0IHRpbWUgb2Ygd3JpdGluZywgdGhpcyBpcyB3b3JrIGluIHByb2dyZXNzLCBhbmQgc29tZXdoYXQgbW9yZSBibG9hdGVkIHRoYW4gaXQgbmVlZHMgdG8gYmUuXHJcbiAqIFRoZSBzaGFkZXIgY29kZSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggU2hhZGVyTWF0ZXJpYWwgcmF0aGVyIHRoYW4gUmF3U2hhZGVyTWF0ZXJpYWwuXHJcbiAqL1xyXG4vLyBpbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xyXG5cclxuLyoqXHJcbiAqIHN0YXJ0aW5nIGZyb20gVEhSRUUgbWVzaGJhc2ljIHNoYWRlcnMsIHBydW5pbmcgLyBtb2RpZnlpbmcuLi5cclxuICovXHJcbmNvbnN0IG1lc2hiYXNpY192ZXJ0ID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4PlxyXG5cclxudm9pZCBtYWluKCkgeyBcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG52YXIgLypzanB0IHdhcyBjb25zdCAqLyBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG5cclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50PlxyXG5cclxuLy8vLy9cclxuZmxvYXQgYWFzdGVwKGZsb2F0IHZhbHVlKSB7XHJcbiAgICAvLyBXZSBub3cgYXNzdW1lIFdlYkdMMiBhbmQgc28gdGhlIGRlcml2YXRpdmVzIGFyZSBhdmFpbGFibGUsIFxyXG4gICAgLy8gc28gYWZ3aWR0aCBkZXBlbmRzIG9uIHNjYWxlIG9mIGd1aVxyXG4gICAgZmxvYXQgYWZ3aWR0aCA9IGxlbmd0aCh2ZWMyKGRGZHgodmFsdWUpLCBkRmR5KHZhbHVlKSkpICogMC43MDcxMDY3ODExODY1NDc1NztcclxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcclxufVxyXG4vLy8vXHJcblxyXG52b2lkIG1haW4oKSB7XHJcblxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XHJcblxyXG4gICAgLy8vXHJcbiAgICB2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICk7XHJcbiAgICBcclxuICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQobWFwLCB2VXYpO1xyXG4gICAgZmxvYXQgYWxwaGEgPSBhYXN0ZXAodGV4Q29sb3IuYSk7XHJcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xyXG4gICAgaWYgKGdsX0ZyYWdDb2xvci5hIDwgMC4wMDAxKSBkaXNjYXJkO1xyXG4gICAgLy8vXHJcblxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cclxuICAgIC8vWFhYOiBiaWcgY2h1bmsgcmVtb3ZlZCBmcm9tIG9yaWdpbmFsIG1lc2hiYXNpY19mcmFnIGhlcmUuXHJcbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxyXG59XHJcbmA7XHJcblxyXG5pZiAoK1RIUkVFLlJFVklTSU9OID4gMTUxIHx8IHNlYXJjaFZhbHVlcy50aHJlZXZlciA9PT0gJ3RocmVlMTU3JykgeyAvLyBzanB0IHBhdGNoXHJcbiAgbWVzaGJhc2ljX2ZyYWcgPSAnXFxuI2RlZmluZSBVU0VfTUFQXFxuI2RlZmluZSBVU0VfVVZcXG51bmlmb3JtIHZlYzMgY29sb3I7XFxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xcblxcbiNpbmNsdWRlIDxjb21tb24+XFxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cXG5cXG4vLy8vL1xcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xcbiAgICAvLyBXZSBub3cgYXNzdW1lIFdlYkdMMiBhbmQgc28gdGhlIGRlcml2YXRpdmVzIGFyZSBhdmFpbGFibGUsIFxcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXFxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XFxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcXG59XFxuLy8vL1xcblxcbnZvaWQgbWFpbigpIHtcXG5cXG5cXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxcblxcbiAgICAvLy9cXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xcbiAgICBcXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XFxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XFxuICAgIC8vL1xcblxcblxcdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxjb2xvcnNwYWNlX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XFxufVxcbic7XHJcbiAgY29uc29sZS53YXJuKCdjb2xvcnNwYWNlX2ZyYWdtZW50IHVzZWQnKTtcclxuICB9XHJcbiAgXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBpZiAobWVzaC51c2VyRGF0YS5sYWJlbFN0cmluZyAhPT0gc3RyKSB7XHJcbiAgICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgICAgIG1lc2gudXNlckRhdGEubGFiZWxTdHJpbmcgPSBzdHI7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuLy8gc2pwdCBleHBvcnQgY29uc3QgUEFORUwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4ZmZmZmZmLCB2ZXJ0ZXhDb2xvcnM6IFRIUkVFLlZlcnRleENvbG9ycyB9ICk7XHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogdHJ1ZSB9ICk7XHJcbmV4cG9ydCBjb25zdCBMT0NBVE9SID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVIgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MDAwMDAwIH0gKTtcclxuZXhwb3J0IGNvbnN0IFRPT0xUSVAgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MjA1MDgwLCB0cmFuc3BhcmVudDogZmFsc2UsIG9wYWNpdHk6IDAuOCB9ICk7XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNsaWRlcigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSAwLjAsXHJcbiAgbWluID0gMC4wLCBtYXggPSAxLjAsXHJcbiAgc3RlcCA9IDAuMSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBpbml0aWFsSGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgYWxwaGE6IDEuMCxcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBzdGVwOiBzdGVwLFxyXG4gICAgdXNlU3RlcDogdHJ1ZSxcclxuICAgIHByZWNpc2lvbjogMSxcclxuICAgIGxpc3RlbjogZmFsc2UsXHJcbiAgICBtaW46IG1pbixcclxuICAgIG1heDogbWF4LFxyXG4gICAgb25DaGFuZ2VkQ0I6IHVuZGVmaW5lZCxcclxuICAgIG9uRmluaXNoZWRDaGFuZ2U6IHVuZGVmaW5lZCxcclxuICAgIHByZXNzaW5nOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgc3RhdGUuc3RlcCA9IGdldEltcGxpZWRTdGVwKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApO1xyXG4gIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwic2xpZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gaGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0IFNMSURFUl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0RFUFRIID0gZGVwdGg7XHJcblxyXG4gICAgLy8gIGZpbGxlZCB2b2x1bWVcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIFNMSURFUl9XSURUSCwgU0xJREVSX0hFSUdIVCwgU0xJREVSX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShTTElERVJfV0lEVEgqMC41LDAsMCk7XHJcbiAgICAvLyBMYXlvdXQuYWxpZ25MZWZ0KCByZWN0ICk7XHJcblxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLm5hbWUgPSAnaGl0c2NhblZvbHVtZSc7XHJcblxyXG4gICAgLy8gIHNsaWRlckJHIHZvbHVtZVxyXG4gICAgY29uc3Qgc2xpZGVyQkcgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBzbGlkZXJCRy5nZW9tZXRyeSwgQ29sb3JzLlNMSURFUl9CRyApO1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSCArIExheW91dC5QQU5FTF9NQVJHSU47XHJcblxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkRFRkFVTFRfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgZmlsbGVkVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICBjb25zdCBlbmRMb2NhdG9yID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggMC4wNSwgMC4wNSwgMC4wNSwgMSwgMSwgMSApLCBTaGFyZWRNYXRlcmlhbHMuTE9DQVRPUiApO1xyXG4gICAgZW5kTG9jYXRvci5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGVuZExvY2F0b3IgKTtcclxuICAgIGVuZExvY2F0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9WQUxVRV9URVhUX01BUkdJTiArIHdpZHRoICogMC41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGgqMi41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDMyNTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX1NMSURFUiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIHBhbmVsLm5hbWUgPSAncGFuZWwnO1xyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIHNsaWRlckJHLCB2YWx1ZUxhYmVsLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgICBncm91cC5hZGQoIHBhbmVsIClcclxuXHJcbiAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgdXBkYXRlU2xpZGVyKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsdWVMYWJlbCggdmFsdWUgKXtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCByb3VuZFRvRGVjaW1hbCggc3RhdGUudmFsdWUsIHN0YXRlLnByZWNpc2lvbiApLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgICAgaWYoIHN0YXRlLnByZXNzaW5nICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSU5URVJBQ1RJT05fQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTbGlkZXIoKXtcclxuICAgICAgZmlsbGVkVm9sdW1lLnNjYWxlLnggPVxyXG4gICAgICAgIE1hdGgubWluKFxyXG4gICAgICAgICAgTWF0aC5tYXgoIGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKSAqIHdpZHRoLCAwLjAwMDAwMSApLFxyXG4gICAgICAgICAgd2lkdGhcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9iamVjdCggdmFsdWUgKXtcclxuICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBhbHBoYSApe1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggYWxwaGEgKTtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBnZXRTdGVwcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5zdGVwICk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRDbGFtcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpe1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbU9iamVjdCgpO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tT2JqZWN0KCl7XHJcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgICAgc3RhdGUub25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5zdGVwID0gZnVuY3Rpb24oIHN0ZXAgKXtcclxuICAgICAgc3RhdGUuc3RlcCA9IHN0ZXA7XHJcbiAgICAgIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwIClcclxuICAgICAgc3RhdGUudXNlU3RlcCA9IHRydWU7XHJcblxyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVQcmVzcyApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVIb2xkICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlUmVsZWFzZSApO1xyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVByZXNzKCBwICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVIb2xkKCB7IHBvaW50IH0gPSB7fSApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGZpbGxlZFZvbHVtZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBlbmRMb2NhdG9yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcblxyXG4gICAgICBjb25zdCBhID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGZpbGxlZFZvbHVtZS5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBjb25zdCBiID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGVuZExvY2F0b3IubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBnZXRQb2ludEFscGhhKCBwb2ludCwge2EsYn0gKSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHVwZGF0ZU9iamVjdCggc3RhdGUudmFsdWUgKTtcclxuXHJcbiAgICAgIGlmKCBwcmV2aW91c1ZhbHVlICE9PSBzdGF0ZS52YWx1ZSAmJiBzdGF0ZS5vbkNoYW5nZWRDQiApe1xyXG4gICAgICAgIHN0YXRlLm9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUmVsZWFzZSgpe1xyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICAgIHVwZGF0ZVNsaWRlcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5taW4gPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5taW4gPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5tYXggPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5tYXggPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9IC8vIC9zZXRIZWlnaHRcclxuICBncm91cC5zZXRIZWlnaHQoIGluaXRpYWxIZWlnaHQgKTtcclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IHRhID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0VG9BID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgYVRvQiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb2ludEFscGhhKCBwb2ludCwgc2VnbWVudCApe1xyXG4gIHRhLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICk7XHJcbiAgdGIuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBjb25zdCBwcm9qZWN0ZWQgPSB0Yi5wcm9qZWN0T25WZWN0b3IoIHRhICk7XHJcblxyXG4gIHRUb0EuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBhVG9CLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICkubm9ybWFsaXplKCk7XHJcblxyXG4gIGNvbnN0IHNpZGUgPSB0VG9BLm5vcm1hbGl6ZSgpLmRvdCggYVRvQiApID49IDAgPyAxIDogLTE7XHJcblxyXG4gIGNvbnN0IGxlbmd0aCA9IHNlZ21lbnQuYS5kaXN0YW5jZVRvKCBzZWdtZW50LmIgKSAqIHNpZGU7XHJcblxyXG4gIGxldCBhbHBoYSA9IHByb2plY3RlZC5sZW5ndGgoKSAvIGxlbmd0aDtcclxuICBpZiggYWxwaGEgPiAxLjAgKXtcclxuICAgIGFscGhhID0gMS4wO1xyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwLjAgKXtcclxuICAgIGFscGhhID0gMC4wO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxlcnAobWluLCBtYXgsIHZhbHVlKSB7XHJcbiAgcmV0dXJuICgxLXZhbHVlKSptaW4gKyB2YWx1ZSptYXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcF9yYW5nZSh2YWx1ZSwgbG93MSwgaGlnaDEsIGxvdzIsIGhpZ2gyKSB7XHJcbiAgICByZXR1cm4gbG93MiArIChoaWdoMiAtIGxvdzIpICogKHZhbHVlIC0gbG93MSkgLyAoaGlnaDEgLSBsb3cxKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApe1xyXG4gIGlmKCBhbHBoYSA+IDEgKXtcclxuICAgIHJldHVybiAxXHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAgKXtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRWYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgaWYoIHZhbHVlIDwgbWluICl7XHJcbiAgICByZXR1cm4gbWluO1xyXG4gIH1cclxuICBpZiggdmFsdWUgPiBtYXggKXtcclxuICAgIHJldHVybiBtYXg7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0SW1wbGllZFN0ZXAoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIC8vUEpUOiB3aGF0IHdvdWxkIHdlIGxpa2Ugc3RlcCB0byBsb29rIGxpa2U/XHJcbiAgLy9Tb21ldGhpbmcgdGhhdCBoYXMgYWJvdXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSwgYW5kIGxvb2tzIG5pY2UgaW4gYmFzZSAxMD9cclxuICBjb25zdCByID0gbWF4LW1pbjtcclxuICBsZXQgc3RlcCA9IHIvMTAwOyAvL3doYXQgaXMgdGhlIHJhdGlvIG9mIG51bWJlciBvZiBkZWNpbWFscyB0byBvcmRlciBvZiBtYWduaXR1ZGU/XHJcbiAgXHJcbiAgcmV0dXJuIHN0ZXA7XHJcblxyXG4gIC8vIGlmKCB2YWx1ZSA9PT0gMCApe1xyXG4gIC8vICAgcmV0dXJuIDE7IC8vIFdoYXQgYXJlIHdlLCBwc3ljaGljcz8gLy88PDw8LS0tIG5vLCBzbyB3ZSBzaG91bGQgYmFzZSBpbXBsaWVkU3RlcCBvbiBtaW4vbWF4LCBub3QgdmFsdWVcclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgLy8gSGV5IERvdWcsIGNoZWNrIHRoaXMgb3V0LlxyXG4gIC8vICAgcmV0dXJuIE1hdGgucG93KDEwLCBNYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKHZhbHVlKSkvTWF0aC5MTjEwKSkvMTA7XHJcbiAgLy8gfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRWYWx1ZUZyb21BbHBoYSggYWxwaGEsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggYWxwaGEsIDAuMCwgMS4wLCBtaW4sIG1heCApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFscGhhRnJvbVZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCB2YWx1ZSwgbWluLCBtYXgsIDAuMCwgMS4wICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFN0ZXBwZWRWYWx1ZSggdmFsdWUsIHN0ZXAgKXtcclxuICBpZiggdmFsdWUgJSBzdGVwICE9IDApIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKCB2YWx1ZSAvIHN0ZXAgKSAqIHN0ZXA7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gbnVtRGVjaW1hbHMoeCkge1xyXG4gIHggPSB4LnRvU3RyaW5nKCk7XHJcbiAgaWYgKHguaW5kZXhPZignLicpID4gLTEpIHtcclxuICAgIHJldHVybiB4Lmxlbmd0aCAtIHguaW5kZXhPZignLicpIC0gMTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByb3VuZFRvRGVjaW1hbCh2YWx1ZSwgZGVjaW1hbHMpIHtcclxuICBpZiAoTWF0aC5hYnModmFsdWUpIDwgMC4wMSAmJiB2YWx1ZSAhPT0gMCkgcmV0dXJuIHZhbHVlLnRvRXhwb25lbnRpYWwoMyk7XHJcbiAgY29uc3QgdGVuVG8gPSBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xyXG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogdGVuVG8pIC8gdGVuVG87XHJcbn0iLCIvKipcclxuICogV2hlbiB0aGUgdGV4dGJveCBpcyBmb2N1c3NlZCwgIGEga2V5Ym9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuLi5cclxuICogVGhlcmUgc2hvdWxkIGFsc28gYmUgYSB3YXkgb2YgZGlzbWlzc2luZyBpdCBsYXRlci4gIEl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdG9cclxuICogcHJldmVudCBtdWx0aXBsZSBrZXlib2FyZHMgYmVpbmcgbWFkZSBzaW11bHRhbmVvdXNseT9cclxuICogXHJcbiAqIEluIG9yZGVyIHRvIG1ha2UgaXQgYXBwZWFyLCBpdCBjYW4gYmUgYWRkZWQgYXMgYSBjaGlsZCBvZiB0aGUgdGV4Ym94IG5vZGUgaXRzZWxmLi4uXHJcbiAqIFRoaXMnbGwgbWVhbiB0aGF0IGl0IGdldHMgZHJhZ2dlZCBhcm91bmQgYnkgdGhlIHBhcmVudCBHVUkgYXMgaXQgbW92ZXMuLi4uXHJcbiAqIE1ha2VzIGZvciByZWxhdGl2ZWx5IGNsZWFuLCBzaW1wbGUgaW1wbGVtZW50YXRpb24gYXQgbGVhc3QuXHJcbiAqIEF0IHRoZSBtb21lbnQsIGtleWJvYXJkIHBvc2l0aW9uaW5nIGlzIG1lc3NlZCB1cCBieSB0aGlzIGFycmFuZ2VtZW50LlxyXG4gKiBSZW1vdmluZyBncmFiYmVyIG1ha2VzIGl0IGxlc3MgbGlrZWx5IGEgdXNlciB3aWxsIGRvIHRoaXMsIGJ1dCBtaWdodCBiZSB3b3J0aCBmaXhpbmcgdGhlIGJhc2ljIGJ1Zy5cclxuICogXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgR1VJIGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dEJveCh7XHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9KSB7XHJcbiAgLy8gYmlnIG9sZCBjb3B5IC8gcGFzdGUgZnJvbSBidXR0b24uanMuIE1pZ2h0IHRyeSB0byBmYWN0b3Igb3V0IHNvbWUgb2YgdGhpcyBjb21tb24gY29kZS5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0Ym94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogMHhGRkZGRkYgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICAvL2hvdyBjYW4gSSBjaGFuZ2UgY29sb3Igb2YgdGV4dD9cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggb2JqZWN0W3Byb3BlcnR5TmFtZV0sIHsgY29sb3I6IDB4MDAwMDAwMCwgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIC8vYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSAwLjAxNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVTdHJpbmcoc3RyKSB7XHJcbiAgICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RyO1xyXG4gICAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbChzdHIpO1xyXG4gIH1cclxuICB2YXIga2V5Ym9hcmQ7XHJcbiAgZnVuY3Rpb24gdG9nZ2xlS2V5Ym9hcmQoKSB7XHJcbiAgICBpZiAoa2V5Ym9hcmQpIHtcclxuICAgICAgICBrZXlib2FyZC52aXNpYmxlID0gIWtleWJvYXJkLnZpc2libGU7XHJcbiAgICAgICAgaWYgKGtleWJvYXJkLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBrZXlib2FyZCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJrZXlib2FyZFwiKTtcclxuICAgICAgICBncm91cC5hZGQoa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLmZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnggPSB3aWR0aDtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICAgICAga2V5Ym9hcmQuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgIGtleWJvYXJkLmFkZEtleWJvYXJkKCAoaykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgc3RyID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAoaykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxuJzpcclxuICAgICAgICAgICAgICAgICAgICAvL3NldHRpbmcgXCJrZXlib2FyZC52aXNpYmxlID0gZmFsc2VcIiBpbiB0aGUgbWlkZGxlIG9mIGV2ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyIHNlZW1zIHRvIGtpbGwgYWxsIGV2ZW50IHByb2Nlc3NpbmcgZnJvbSB0aGVuIG9uLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0VGltZW91dCBpcyBhbiBhZGVxdWF0ZSB3b3JrYXJvdW5kIGZvciBub3cuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0b2dnbGVLZXlib2FyZCwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcYic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gaztcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy90aGlzIHRlc3Qgc2hvdWxkIGJlIHJlZHVuZGFudCBub3dcclxuICAgIC8vIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy9vYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgLy9oaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgLy8gY3JlYXRlIGEga2V5Ym9hcmQgYW5kIGF0dGFjaCBpdCBhcyBjaGlsZCBvZiBncm91cC4uLiBcclxuICAgIC8vIG9yIGp1c3QgbWFrZSBzdXJlIGV4aXN0aW5nIGtleWJvYXJkIGlzIHZpc2libGUuXHJcbiAgICB0b2dnbGVLZXlib2FyZCgpO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0hJR0hMSUdIVF9CRyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9CRyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0TGFiZWwoIHRleHRDcmVhdG9yLCBzdHIsIHdpZHRoID0gMC40LCBkZXB0aCA9IDAuMDI5LCBmZ0NvbG9yID0gMHhmZmZmZmYsIGJnQ29sb3IgPSBDb2xvcnMuREVGQVVMVF9CQUNLLCBzY2FsZSA9IDEuMCApe1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRsYWJlbFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3N0cn1dYDtcclxuXHJcbiAgY29uc3QgaW50ZXJuYWxQb3NpdGlvbmluZyA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL3JhdGhlciB1bm5lY2Vzc2FyeS5cclxuICBncm91cC5hZGQoIGludGVybmFsUG9zaXRpb25pbmcgKTtcclxuXHJcbiAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RyLnRvU3RyaW5nKCksIHsgY29sb3I6IGZnQ29sb3IsIHNjYWxlIH0gKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggdGV4dCApO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnRleHQgPSB0ZXh0O1xyXG5cclxuICBncm91cC5zZXRTdHJpbmcgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHN0ciA9IFwiW3VuZGVmaW5lZF1cIjtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b1N0cmluZygpICk7XHJcbiAgICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldE51bWJlciA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b0ZpeGVkKDIpICk7XHJcbiAgfTtcclxuXHJcbiAgdGV4dC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIGNvbnN0IGJhY2tCb3VuZHMgPSAwLjAxO1xyXG4gIGNvbnN0IG1hcmdpbiA9IDAuMDE7XHJcbiAgY29uc3QgdG90YWxXaWR0aCA9IHdpZHRoO1xyXG4gIGNvbnN0IHRvdGFsSGVpZ2h0ID0gMC4wNCArIG1hcmdpbiAqIDI7XHJcblxyXG4gIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja0dlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB0b3RhbFdpZHRoLCB0b3RhbEhlaWdodCwgZGVwdGgsIDEsIDEsIDEgKTtcclxuICBsYWJlbEJhY2tHZW9tZXRyeS5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVRyYW5zbGF0aW9uKCB0b3RhbFdpZHRoICogMC41IC0gbWFyZ2luLCAwLCAwICkgKTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrTWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBsYWJlbEJhY2tHZW9tZXRyeSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsQmFja01lc2guZ2VvbWV0cnksIGJnQ29sb3IgKTtcclxuXHJcbiAgbGFiZWxCYWNrTWVzaC5wb3NpdGlvbi55ID0gMC4wMztcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggbGFiZWxCYWNrTWVzaCApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcucG9zaXRpb24ueSA9IC10b3RhbEhlaWdodCAqIDAuNTtcclxuXHJcbiAgZ3JvdXAuYmFjayA9IGxhYmVsQmFja01lc2g7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgZGVmYXVsdFBhcmVudEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2xUaXAoIHRleHRDcmVhdG9yLCB0aXAsIHBhcmVudFdpZHRoLCBwYXJlbnRIZWlnaHQgPSBkZWZhdWx0UGFyZW50SGVpZ2h0LCBwYXJlbnREZXB0aCApIHtcclxuICBjb25zdCB0aXBUZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKHRpcCk7XHJcbiAgXHJcbiAgY29uc3QgdGlwR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgY29uc3QgdyA9IHRpcFRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgY29uc3QgaCA9IExheW91dC5URVhUX1NDQUxFICogdGlwVGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG5cclxuICB0aXBHcm91cC5wb3NpdGlvbi54ICA9IDAuNSAqIHBhcmVudFdpZHRoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnkgPSAtMS4wNSAqIHBhcmVudEhlaWdodCAtIGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueiA9IHBhcmVudERlcHRoICogMztcclxuICB0aXBHcm91cC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4vLyAgc3ViZ3JvdXAuYWRkKHRpcEdyb3VwKTtcclxuICB0aXBHcm91cC5hZGQodGlwVGV4dCk7XHJcbi8vICBzdWJncm91cC50aXBUZXh0ID0gdGlwR3JvdXA7XHJcblxyXG4gIGNvbnN0IHBhZGRlZFcgPSB3ICsgMC4wMywgcGFkZGVkSCA9IGggKyAwLjAzO1xyXG4gIGNvbnN0IHRpcFJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeShwYWRkZWRXLCBwYWRkZWRILCAxLCAxKTtcclxuICBjb25zdCB0aXBCYWNrZ3JvdW5kID0gbmV3IFRIUkVFLk1lc2godGlwUmVjdCwgU2hhcmVkTWF0ZXJpYWxzLlRPT0xUSVApO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueCA9IDA7IC8vcGFkZGVkVyAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi55ID0gaCAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi56ID0gLXBhcmVudERlcHRoICogMC41O1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBCYWNrZ3JvdW5kKTtcclxuXHJcbiAgdGlwVGV4dC5wb3NpdGlvbi54ID0gLTAuNSAqIHc7XHJcbiAgdGlwVGV4dC5wb3NpdGlvbi55ID0gLTAuNSAqIGggKyAwLjAwMTU7XHJcblxyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLncgPSB3O1xyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLmggPSBoO1xyXG5cclxuICByZXR1cm4gdGlwR3JvdXA7XHJcbn1cclxuIiwiLyoqIGJhc2ljIHV0aWxpdHkgZnVuY3Rpb25zICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sbGVyVmlzaWJsZShjb250cm9sKSB7XHJcbiAgdmFyIGZvbGRlciA9IGNvbnRyb2wuZm9sZGVyO1xyXG4gIC8vbm90ZTogdGhlIGJhc2lzIG9uIHdoaWNoIGEgY29udHJvbGxlciBpcyBjb25zaWRlcmVkIHZpc2libGUgcmV2aXNlZCBmb3IgJ2hlYWRlcicgb2JqZWN0cy5cclxuICAvL2ZvciBub3csIHRoaXMgc2hvdWxkIGFsbG93IGhlYWRlciBjb250cm9sbGVycyB0byB1cGRhdGUgd2hpbGUgZm9sZGVyIGlzIGNvbGxhcHNlZC5cclxuICAvL29ubHkgYXBwbGllcyB0byBjaGVja2JveCwgcGVuZGluZyBkZXNpZ24gcmV2aXNpb24gJiBmdWxsZXIgaW1wbGVtZW50YXRpb24uLi5cclxuICBcclxuICAvLy0tLS0gaXNTaG93bkluRm9sZGVySGVhZGVyIG5vIGxvbmdlciByZWxldmFudCwgYnV0IGVuZGluZyB1cCB3aXRoIHNvbWV0aGluZyB0aGF0IGxvb2tzIHNpbWlsYXIuLi4uXHJcbiAgLy9pc0hlYWRlck9iamVjdCB3aWxsIGFwcGx5IHRvIHRoZSBhY3R1YWwgY29udHJvbCBhcHBlYXJpbmcgaW4gdGhlIGZvbGRlciBoZWFkZXIsIHdoZXJlYXNcclxuICAvL2lzU2hvd25JbkZvbGRlckhlYWRlciB3YXMgd2hlbiBzdWNoIG9iamVjdHMgd2VyZW4ndCBzbyBmdWxseS1mbGVkZ2VkXHJcbiAgLy9pZiAoY29udHJvbC5pc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7IC8vPDw8PDwgc3RpbGwgaGl0dGluZyBmb2xkZWQgYnV0dG9uPz8/IChhbHNvLCB0cnkgbnBtIGF1ZGl0KVxyXG4gIGlmIChjb250cm9sLmlzSGVhZGVyT2JqZWN0KSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpO1xyXG5cclxuICAvL1hYWCBoYXZpbmcgc29tZSBkZWZpbml0ZSBidWdzIGUuZy4gbWlzc2luZyBldmVudHMgb3ZlciAncGljdHVyZXMgLyBtYXRlcmlhbHMnIGZvbGRlciBoZWFkZXIgaW4gZGVtby5cclxuICBcclxuICBpZiAoIWNvbnRyb2wudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gIFxyXG4gIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpe1xyXG4gICAgaWYgKGZvbGRlci5pc0NvbGxhcHNlZCgpIHx8ICFmb2xkZXIudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICB9XHJcbiAgaWYgKCFmb2xkZXIucGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIGZvbGRlci52aXNpYmxlO1xyXG59XHJcblxyXG4vKiogXHJcbiAqIEludmlzaWJsZSBUSFJFRSBvYmplY3RzIGluY3VyIHNpZ25pZmljYW50IENQVSBjb3N0LlxyXG4gKiBUaGlzIGF2b2lkcyB0aGF0IGJ5IHJlbW92aW5nIHRoZW0gZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqIFxyXG4gKiBJZiB2aXNpYmxlIGlzIHRydWUsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPXRydWUgYW5kIGlzIGEgY2hpbGQgb2YgcGFyZW50LlxyXG4gKiBJZiB2aXNpYmxlIGlzIGZhbHNlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT1mYWxzZSBhbmQgaXMgcmVtb3ZlZCBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRWaXNpYmlsaXR5KHBhcmVudCwgY2hpbGQsIHZpc2libGUpIHtcclxuICAgIGNvbnN0IGlzQ2hpbGQgPSBwYXJlbnQuY2hpbGRyZW4uaW5jbHVkZXMoY2hpbGQpO1xyXG4gICAgY2hpbGQudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAvL21ha2Ugc3VyZSB3ZSB1c2Ugb3JpZ2luYWwgVEhSRUUgbWV0aG9kcyB0aGF0IHRoaXMgbGlicmFyeSBvdmVycmlkZXMgKFRPRE86IHJlZmFjdG9yLi4uKVxyXG4gICAgaWYgKHZpc2libGUgJiYgIWlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghdmlzaWJsZSAmJiBpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXBhcmVudC52aXNpYmxlKSBjb25zb2xlLndhcm4oYHNldFZpc2liaWxpdHkgY2FsbGVkIG9uIGNoaWxkICR7Y2hpbGR9IG9mIGludmlzaWJsZSBwYXJlbnQgJHtwYXJlbnR9YCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBoaWdoZXN0IGxldmVsIG9mIHBhcmVudCBmb2xkZXIgaW4gdGhlIGd1aSBoaWVhcmNoeSBjb250YWluaW5nIGEgZ2l2ZW4gb2JqZWN0LlxyXG4gKiBuYi4gb2xkZXIgdmVyc2lvbnMgb2YgdGhpcyBmdW5jdGlvbiB3b3VsZCByZXR1cm4gdGhlIGlucHV0IG9iamVjdCBpZiBpdCBkaWRuJ3QgaGF2ZSBhICdmb2xkZXInIHByb3BlcnR5LlxyXG4gKiBOb3csIGl0IGlzIGludGVuZGVkIHRoYXQgaXQgc2hvdWxkIGVpdGhlciByZXR1cm4gYSBmb2xkZXIgaWYgYXBwcm9wcmlhdGUsIG9yIG5vdGhpbmcuXHJcbiAqIEBwYXJhbSB7Kn0gZ3JvdXAgZWl0aGVyIGEgZm9sZGVyLCBvciBhbiBvYmplY3Qgd2hvc2UgcGFyZW50IGhhcyBhIGZvbGRlci4uLiBhcG9sb2dpZXMsIHRoaXMgaXMgbm90IHRoZSBjbGVhcmVzdCBzcGVjLlxyXG4gKiAuLi4gaW50ZW50aW9uIGlzIHRoYXQgaXQgc2hvdWxkIHdvcmsgd2l0aCBhbnkgZ3VpIGVsZW1lbnQsIGluIHBhcnRpY3VsYXIgYW55IGhpdE9iamVjdCBpbiBpbnRlcmFjdGlvbi5qcy4uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSB7XHJcbiAgICB2YXIgZm9sZGVyID0gZ2V0Rm9sZGVyKGdyb3VwKTtcclxuICAgIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9sZGVyKGdyb3VwKSB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSByZXR1cm4gZ3JvdXAuZm9sZGVyO1xyXG4gICAgbGV0IG5vZGUgPSBncm91cC5wYXJlbnQ7XHJcbiAgICB3aGlsZSAoIW5vZGUuZm9sZGVyICYmIGdyb3VwLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgcmV0dXJuIG5vZGUuZm9sZGVyO1xyXG59XHJcblxyXG4vL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Qm94RnJvbU9iamVjdChib3gsIG9iaikge1xyXG4gIGNvbnN0IHdvbmt5R2VvbSA9IFtdO1xyXG4gIG9iai50cmF2ZXJzZShvID0+IHtcclxuICAgIGlmIChvLmdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemUgIT09IDMpIHtcclxuICAgICAgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ID0gZmFsc2U7XHJcbiAgICAgIHdvbmt5R2VvbS5wdXNoKG8uZ2VvbWV0cnkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGJveC5zZXRGcm9tT2JqZWN0KG9iaik7XHJcbiAgd29ua3lHZW9tLmZvckVhY2goZyA9PiBnLmlzQnVmZmVyR2VvbWV0cnkgPSB0cnVlKTtcclxuICByZXR1cm4gYm94O1xyXG59XHJcbiIsIi8qXHJcbiAqXHRAYXV0aG9yIHp6ODUgLyBodHRwOi8vdHdpdHRlci5jb20vYmx1cnNwbGluZSAvIGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2dcclxuICpcdEBhdXRob3IgY2VudGVyaW9ud2FyZSAvIGh0dHA6Ly93d3cuY2VudGVyaW9ud2FyZS5jb21cclxuICpcclxuICpcdFN1YmRpdmlzaW9uIEdlb21ldHJ5IE1vZGlmaWVyXHJcbiAqXHRcdHVzaW5nIExvb3AgU3ViZGl2aXNpb24gU2NoZW1lXHJcbiAqXHJcbiAqXHRSZWZlcmVuY2VzOlxyXG4gKlx0XHRodHRwOi8vZ3JhcGhpY3Muc3RhbmZvcmQuZWR1L35tZGZpc2hlci9zdWJkaXZpc2lvbi5odG1sXHJcbiAqXHRcdGh0dHA6Ly93d3cuaG9sbWVzM2QubmV0L2dyYXBoaWNzL3N1YmRpdmlzaW9uL1xyXG4gKlx0XHRodHRwOi8vd3d3LmNzLnJ1dGdlcnMuZWR1L35kZWNhcmxvL3JlYWRpbmdzL3N1YmRpdi1zZzAwYy5wZGZcclxuICpcclxuICpcdEtub3duIElzc3VlczpcclxuICpcdFx0LSBjdXJyZW50bHkgZG9lc24ndCBoYW5kbGUgXCJTaGFycCBFZGdlc1wiXHJcbiAqL1xyXG5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciA9IGZ1bmN0aW9uICggc3ViZGl2aXNpb25zICkge1xyXG5cclxuXHR0aGlzLnN1YmRpdmlzaW9ucyA9ICggc3ViZGl2aXNpb25zID09PSB1bmRlZmluZWQgKSA/IDEgOiBzdWJkaXZpc2lvbnM7XHJcblxyXG59O1xyXG5cclxuLy8gQXBwbGllcyB0aGUgXCJtb2RpZnlcIiBwYXR0ZXJuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLm1vZGlmeSA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7XHJcblxyXG5cdHZhciByZXBlYXRzID0gdGhpcy5zdWJkaXZpc2lvbnM7XHJcblxyXG5cdHdoaWxlICggcmVwZWF0cyAtLSA+IDAgKSB7XHJcblxyXG5cdFx0dGhpcy5zbW9vdGgoIGdlb21ldHJ5ICk7XHJcblxyXG5cdH1cclxuXHJcblx0Ly9zanB0LCBubyBsb25nZXIgdGhlcmUgLi4uIGdlb21ldHJ5LmNvbXB1dGVGYWNlTm9ybWFscygpO1xyXG5cdGdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XHJcblxyXG59O1xyXG5cclxuKCBmdW5jdGlvbigpIHtcclxuXHJcblx0Ly8gU29tZSBjb25zdGFudHNcclxuXHR2YXIgV0FSTklOR1MgPSAhIHRydWU7IC8vIFNldCB0byB0cnVlIGZvciBkZXZlbG9wbWVudFxyXG5cdHZhciBBQkMgPSBbICdhJywgJ2InLCAnYycgXTtcclxuXHJcblxyXG5cdGZ1bmN0aW9uIGdldEVkZ2UoIGEsIGIsIG1hcCApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHRyZXR1cm4gbWFwWyBrZXkgXTtcclxuXHJcblx0fVxyXG5cclxuXHJcblx0ZnVuY3Rpb24gcHJvY2Vzc0VkZ2UoIGEsIGIsIHZlcnRpY2VzLCBtYXAsIGZhY2UsIG1ldGFWZXJ0aWNlcyApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHR2YXIgZWRnZTtcclxuXHJcblx0XHRpZiAoIGtleSBpbiBtYXAgKSB7XHJcblxyXG5cdFx0XHRlZGdlID0gbWFwWyBrZXkgXTtcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0dmFyIHZlcnRleEEgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhBIF07XHJcblx0XHRcdHZhciB2ZXJ0ZXhCID0gdmVydGljZXNbIHZlcnRleEluZGV4QiBdO1xyXG5cclxuXHRcdFx0ZWRnZSA9IHtcclxuXHJcblx0XHRcdFx0YTogdmVydGV4QSwgLy8gcG9pbnRlciByZWZlcmVuY2VcclxuXHRcdFx0XHRiOiB2ZXJ0ZXhCLFxyXG5cdFx0XHRcdG5ld0VkZ2U6IG51bGwsXHJcblx0XHRcdFx0Ly8gYUluZGV4OiBhLCAvLyBudW1iZXJlZCByZWZlcmVuY2VcclxuXHRcdFx0XHQvLyBiSW5kZXg6IGIsXHJcblx0XHRcdFx0ZmFjZXM6IFtdIC8vIHBvaW50ZXJzIHRvIGZhY2VcclxuXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRtYXBbIGtleSBdID0gZWRnZTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0ZWRnZS5mYWNlcy5wdXNoKCBmYWNlICk7XHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzWyBhIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cdFx0bWV0YVZlcnRpY2VzWyBiIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBnZW5lcmF0ZUxvb2t1cHMoIHZlcnRpY2VzLCBmYWNlcywgbWV0YVZlcnRpY2VzLCBlZGdlcyApIHtcclxuXHJcblx0XHR2YXIgaSwgaWwsIGZhY2UsIGVkZ2U7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gdmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRtZXRhVmVydGljZXNbIGkgXSA9IHsgZWRnZXM6IFtdIH07XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IGZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IGZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5hLCBmYWNlLmIsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmIsIGZhY2UuYywgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYywgZmFjZS5hLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdGYWNlKCBuZXdGYWNlcywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdGYWNlcy5wdXNoKCBuZXcgVEhSRUUuRmFjZTMoIGEsIGIsIGMgKSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG1pZHBvaW50KCBhLCBiICkge1xyXG5cclxuXHRcdHJldHVybiAoIE1hdGguYWJzKCBiIC0gYSApIC8gMiApICsgTWF0aC5taW4oIGEsIGIgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdVdiggbmV3VXZzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld1V2cy5wdXNoKCBbIGEuY2xvbmUoKSwgYi5jbG9uZSgpLCBjLmNsb25lKCkgXSApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cdC8vIFBlcmZvcm1zIG9uZSBpdGVyYXRpb24gb2YgU3ViZGl2aXNpb25cclxuXHRUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5zbW9vdGggPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkgeyByZXR1cm47IC8vIHNqcHQgVEVNUCBUT0RPXHJcblxyXG5cdFx0dmFyIHRtcCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0dmFyIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgb2xkVXZzO1xyXG5cdFx0dmFyIG5ld1ZlcnRpY2VzLCBuZXdGYWNlcywgbmV3VVZzID0gW107XHJcblxyXG5cdFx0dmFyIG4sIGwsIGksIGlsLCBqLCBrO1xyXG5cdFx0dmFyIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXM7XHJcblxyXG5cdFx0Ly8gbmV3IHN0dWZmLlxyXG5cdFx0dmFyIHNvdXJjZUVkZ2VzLCBuZXdFZGdlVmVydGljZXMsIG5ld1NvdXJjZVZlcnRpY2VzO1xyXG5cclxuXHRcdG9sZFZlcnRpY2VzID0gZ2VvbWV0cnkudmVydGljZXM7IC8vIHsgeCwgeSwgen1cclxuXHRcdG9sZEZhY2VzID0gZ2VvbWV0cnkuZmFjZXM7IC8vIHsgYTogb2xkVmVydGV4MSwgYjogb2xkVmVydGV4MiwgYzogb2xkVmVydGV4MyB9XHJcblx0XHRvbGRVdnMgPSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF07XHJcblxyXG5cdFx0dmFyIGhhc1V2cyA9IG9sZFV2cyAhPT0gdW5kZWZpbmVkICYmIG9sZFV2cy5sZW5ndGggPiAwO1xyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKiBTdGVwIDA6IFByZXByb2Nlc3MgR2VvbWV0cnkgdG8gR2VuZXJhdGUgZWRnZXMgTG9va3VwXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzID0gbmV3IEFycmF5KCBvbGRWZXJ0aWNlcy5sZW5ndGggKTtcclxuXHRcdHNvdXJjZUVkZ2VzID0ge307IC8vIEVkZ2UgPT4geyBvbGRWZXJ0ZXgxLCBvbGRWZXJ0ZXgyLCBmYWNlc1tdICB9XHJcblxyXG5cdFx0Z2VuZXJhdGVMb29rdXBzKCBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXMgKTtcclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDEuXHJcblx0XHQgKlx0Rm9yIGVhY2ggZWRnZSwgY3JlYXRlIGEgbmV3IEVkZ2UgVmVydGV4LFxyXG5cdFx0ICpcdHRoZW4gcG9zaXRpb24gaXQuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3RWRnZVZlcnRpY2VzID0gW107XHJcblx0XHR2YXIgb3RoZXIsIGN1cnJlbnRFZGdlLCBuZXdFZGdlLCBmYWNlO1xyXG5cdFx0dmFyIGVkZ2VWZXJ0ZXhXZWlnaHQsIGFkamFjZW50VmVydGV4V2VpZ2h0LCBjb25uZWN0ZWRGYWNlcztcclxuXHJcblx0XHRmb3IgKCBpIGluIHNvdXJjZUVkZ2VzICkge1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UgPSBzb3VyY2VFZGdlc1sgaSBdO1xyXG5cdFx0XHRuZXdFZGdlID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAzIC8gODtcclxuXHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdGNvbm5lY3RlZEZhY2VzID0gY3VycmVudEVkZ2UuZmFjZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgaG93IG1hbnkgbGlua2VkIGZhY2VzLiAyIHNob3VsZCBiZSBjb3JyZWN0LlxyXG5cdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGlmIGxlbmd0aCBpcyBub3QgMiwgaGFuZGxlIGNvbmRpdGlvblxyXG5cdFx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAwLjU7XHJcblx0XHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ1N1YmRpdmlzaW9uIE1vZGlmaWVyOiBOdW1iZXIgb2YgY29ubmVjdGVkIGZhY2VzICE9IDIsIGlzOiAnLCBjb25uZWN0ZWRGYWNlcywgY3VycmVudEVkZ2UgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3RWRnZS5hZGRWZWN0b3JzKCBjdXJyZW50RWRnZS5hLCBjdXJyZW50RWRnZS5iICkubXVsdGlwbHlTY2FsYXIoIGVkZ2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgY29ubmVjdGVkRmFjZXM7IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGZhY2UgPSBjdXJyZW50RWRnZS5mYWNlc1sgaiBdO1xyXG5cclxuXHRcdFx0XHRmb3IgKCBrID0gMDsgayA8IDM7IGsgKysgKSB7XHJcblxyXG5cdFx0XHRcdFx0b3RoZXIgPSBvbGRWZXJ0aWNlc1sgZmFjZVsgQUJDWyBrIF0gXSBdO1xyXG5cdFx0XHRcdFx0aWYgKCBvdGhlciAhPT0gY3VycmVudEVkZ2UuYSAmJiBvdGhlciAhPT0gY3VycmVudEVkZ2UuYiApIGJyZWFrO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGFkamFjZW50VmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld0VkZ2UuYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlLm5ld0VkZ2UgPSBuZXdFZGdlVmVydGljZXMubGVuZ3RoO1xyXG5cdFx0XHRuZXdFZGdlVmVydGljZXMucHVzaCggbmV3RWRnZSApO1xyXG5cclxuXHRcdFx0Ly8gY29uc29sZS5sb2coY3VycmVudEVkZ2UsIG5ld0VkZ2UpO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMi5cclxuXHRcdCAqXHRSZXBvc2l0aW9uIGVhY2ggc291cmNlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdHZhciBiZXRhLCBzb3VyY2VWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQ7XHJcblx0XHR2YXIgY29ubmVjdGluZ0VkZ2UsIGNvbm5lY3RpbmdFZGdlcywgb2xkVmVydGV4LCBuZXdTb3VyY2VWZXJ0ZXg7XHJcblx0XHRuZXdTb3VyY2VWZXJ0aWNlcyA9IFtdO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZFZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0b2xkVmVydGV4ID0gb2xkVmVydGljZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgYWxsIGNvbm5lY3RpbmcgZWRnZXMgKHVzaW5nIGxvb2t1cFRhYmxlKVxyXG5cdFx0XHRjb25uZWN0aW5nRWRnZXMgPSBtZXRhVmVydGljZXNbIGkgXS5lZGdlcztcclxuXHRcdFx0biA9IGNvbm5lY3RpbmdFZGdlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIG4gPT0gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAxNjtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoIG4gPiAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvICggOCAqIG4gKTsgLy8gV2FycmVuJ3MgbW9kaWZpZWQgZm9ybXVsYVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTG9vcCdzIG9yaWdpbmFsIGJldGEgZm9ybXVsYVxyXG5cdFx0XHQvLyBiZXRhID0gMSAvIG4gKiAoIDUvOCAtIE1hdGgucG93KCAzLzggKyAxLzQgKiBNYXRoLmNvcyggMiAqIE1hdGguIFBJIC8gbiApLCAyKSApO1xyXG5cclxuXHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMSAtIG4gKiBiZXRhO1xyXG5cdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gYmV0YTtcclxuXHJcblx0XHRcdGlmICggbiA8PSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzXHJcblx0XHRcdFx0Ly8gY29uc29sZS53YXJuKCdjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzJyk7XHJcblxyXG5cdFx0XHRcdGlmICggbiA9PSAyICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcyIGNvbm5lY3RpbmcgZWRnZXMnLCBjb25uZWN0aW5nRWRnZXMgKTtcclxuXHRcdFx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDMgLyA0O1xyXG5cdFx0XHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0XHRcdC8vIHNvdXJjZVZlcnRleFdlaWdodCA9IDE7XHJcblx0XHRcdFx0XHQvLyBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdvbmx5IDEgY29ubmVjdGluZyBlZGdlJyApO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDAgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzAgY29ubmVjdGluZyBlZGdlcycgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGV4ID0gb2xkVmVydGV4LmNsb25lKCkubXVsdGlwbHlTY2FsYXIoIHNvdXJjZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBuOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRjb25uZWN0aW5nRWRnZSA9IGNvbm5lY3RpbmdFZGdlc1sgaiBdO1xyXG5cdFx0XHRcdG90aGVyID0gY29ubmVjdGluZ0VkZ2UuYSAhPT0gb2xkVmVydGV4ID8gY29ubmVjdGluZ0VkZ2UuYSA6IGNvbm5lY3RpbmdFZGdlLmI7XHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggY29ubmVjdGluZ1ZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXguYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRpY2VzLnB1c2goIG5ld1NvdXJjZVZlcnRleCApO1xyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDMuXHJcblx0XHQgKlx0R2VuZXJhdGUgRmFjZXMgYmV0d2VlbiBzb3VyY2UgdmVydGljZXNcclxuXHRcdCAqXHRhbmQgZWRnZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdWZXJ0aWNlcyA9IG5ld1NvdXJjZVZlcnRpY2VzLmNvbmNhdCggbmV3RWRnZVZlcnRpY2VzICk7XHJcblx0XHR2YXIgc2wgPSBuZXdTb3VyY2VWZXJ0aWNlcy5sZW5ndGgsIGVkZ2UxLCBlZGdlMiwgZWRnZTM7XHJcblx0XHRuZXdGYWNlcyA9IFtdO1xyXG5cclxuXHRcdHZhciB1diwgeDAsIHgxLCB4MjtcclxuXHRcdHZhciB4MyA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDQgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg1ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRGYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBvbGRGYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCB0aGUgMyBuZXcgZWRnZXMgdmVydGV4IG9mIGVhY2ggb2xkIGZhY2VcclxuXHJcblx0XHRcdGVkZ2UxID0gZ2V0RWRnZSggZmFjZS5hLCBmYWNlLmIsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMiA9IGdldEVkZ2UoIGZhY2UuYiwgZmFjZS5jLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTMgPSBnZXRFZGdlKCBmYWNlLmMsIGZhY2UuYSwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBmYWNlcy5cclxuXHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBlZGdlMSwgZWRnZTIsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmEsIGVkZ2UxLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5iLCBlZGdlMiwgZWRnZTEgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYywgZWRnZTMsIGVkZ2UyICk7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBuZXcgdXYnc1xyXG5cclxuXHRcdFx0aWYgKCBoYXNVdnMgKSB7XHJcblxyXG5cdFx0XHRcdHV2ID0gb2xkVXZzWyBpIF07XHJcblxyXG5cdFx0XHRcdHgwID0gdXZbIDAgXTtcclxuXHRcdFx0XHR4MSA9IHV2WyAxIF07XHJcblx0XHRcdFx0eDIgPSB1dlsgMiBdO1xyXG5cclxuXHRcdFx0XHR4My5zZXQoIG1pZHBvaW50KCB4MC54LCB4MS54ICksIG1pZHBvaW50KCB4MC55LCB4MS55ICkgKTtcclxuXHRcdFx0XHR4NC5zZXQoIG1pZHBvaW50KCB4MS54LCB4Mi54ICksIG1pZHBvaW50KCB4MS55LCB4Mi55ICkgKTtcclxuXHRcdFx0XHR4NS5zZXQoIG1pZHBvaW50KCB4MC54LCB4Mi54ICksIG1pZHBvaW50KCB4MC55LCB4Mi55ICkgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDMsIHg0LCB4NSApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgwLCB4MywgeDUgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDEsIHg0LCB4MyApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgyLCB4NSwgeDQgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3ZlcndyaXRlIG9sZCBhcnJheXNcclxuXHRcdGdlb21ldHJ5LnZlcnRpY2VzID0gbmV3VmVydGljZXM7XHJcblx0XHRnZW9tZXRyeS5mYWNlcyA9IG5ld0ZhY2VzO1xyXG5cdFx0aWYgKCBoYXNVdnMgKSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF0gPSBuZXdVVnM7XHJcblxyXG5cdFx0Ly8gY29uc29sZS5sb2coJ2RvbmUnKTtcclxuXHJcblx0fTtcclxuXHJcbn0gKSgpO1xyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgLy8vLyBzanB0IHBhdGNoIGZvciB0aHJlZTE0MiwgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaXMgYSBjbGFzc1xuICBpZiAoK1RIUkVFLlJFVklTSU9OIDwgMTQyKSB7XG4gICAgQmFzZS5jYWxsKHRoaXMpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHp6eiA9IG5ldyBCYXNlKCk7IC8vUEpUOiBjbGFzc2ljIHNqcHQgdmFyaWFibGUgbmFtaW5nIO+/vVxuICAgIE9iamVjdC5hc3NpZ24odGhpcywgenp6KTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0KVxuXG4gIC8vIGFsc28gZG8gYW4gaW5pdGlhbCBzZXR1cC4uLlxuICBpZiAob3B0KSB0aGlzLnVwZGF0ZShvcHQpXG59XG5cbmluaGVyaXRzKFRleHRHZW9tZXRyeSwgQmFzZSlcblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAob3B0KSB7XG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSBjb25zdHJ1Y3RvciBkZWZhdWx0c1xuICBvcHQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vcHQsIG9wdClcblxuICBpZiAoIW9wdC5mb250KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGEgeyBmb250IH0gaW4gb3B0aW9ucycpXG4gIH1cblxuICB0aGlzLmxheW91dCA9IGNyZWF0ZUxheW91dChvcHQpXG5cbiAgLy8gZ2V0IHZlYzIgdGV4Y29vcmRzXG4gIHZhciBmbGlwWSA9IG9wdC5mbGlwWSAhPT0gZmFsc2VcblxuICAvLyB0aGUgZGVzaXJlZCBCTUZvbnQgZGF0YVxuICB2YXIgZm9udCA9IG9wdC5mb250XG5cbiAgLy8gZGV0ZXJtaW5lIHRleHR1cmUgc2l6ZSBmcm9tIGZvbnQgZmlsZVxuICB2YXIgdGV4V2lkdGggPSBmb250LmNvbW1vbi5zY2FsZVdcbiAgdmFyIHRleEhlaWdodCA9IGZvbnQuY29tbW9uLnNjYWxlSFxuXG4gIC8vIGdldCB2aXNpYmxlIGdseXBoc1xuICB2YXIgZ2x5cGhzID0gdGhpcy5sYXlvdXQuZ2x5cGhzLmZpbHRlcihmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHJldHVybiBiaXRtYXAud2lkdGggKiBiaXRtYXAuaGVpZ2h0ID4gMFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdmlzaWJsZSBnbHlwaHMgZm9yIGNvbnZlbmllbmNlXG4gIHRoaXMudmlzaWJsZUdseXBocyA9IGdseXBoc1xuXG4gIC8vIGdldCBjb21tb24gdmVydGV4IGRhdGFcbiAgdmFyIHBvc2l0aW9ucyA9IHZlcnRpY2VzLnBvc2l0aW9ucyhnbHlwaHMpXG4gIHZhciB1dnMgPSB2ZXJ0aWNlcy51dnMoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSlcbiAgdmFyIGluZGljZXMgPSBjcmVhdGVJbmRpY2VzKFtdLCB7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIHRoaXMuc2V0SW5kZXgoaW5kaWNlcylcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwb3NpdGlvbnMsIDIpKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHV2cywgMikpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICAvLyBlbmFibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHZhciBwYWdlcyA9IHZlcnRpY2VzLnBhZ2VzKGdseXBocylcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGFnZScsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocGFnZXMsIDEpKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIG5ld2xpbmUgPSAvXFxuL1xudmFyIG5ld2xpbmVDaGFyID0gJ1xcbidcbnZhciB3aGl0ZXNwYWNlID0gL1xccy9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih0ZXh0LCBvcHQpIHtcbiAgICB2YXIgbGluZXMgPSBtb2R1bGUuZXhwb3J0cy5saW5lcyh0ZXh0LCBvcHQpXG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhsaW5lLnN0YXJ0LCBsaW5lLmVuZClcbiAgICB9KS5qb2luKCdcXG4nKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5saW5lcyA9IGZ1bmN0aW9uIHdvcmR3cmFwKHRleHQsIG9wdCkge1xuICAgIG9wdCA9IG9wdHx8e31cblxuICAgIC8vemVybyB3aWR0aCByZXN1bHRzIGluIG5vdGhpbmcgdmlzaWJsZVxuICAgIGlmIChvcHQud2lkdGggPT09IDAgJiYgb3B0Lm1vZGUgIT09ICdub3dyYXAnKSBcbiAgICAgICAgcmV0dXJuIFtdXG5cbiAgICB0ZXh0ID0gdGV4dHx8JydcbiAgICB2YXIgd2lkdGggPSB0eXBlb2Ygb3B0LndpZHRoID09PSAnbnVtYmVyJyA/IG9wdC53aWR0aCA6IE51bWJlci5NQVhfVkFMVUVcbiAgICB2YXIgc3RhcnQgPSBNYXRoLm1heCgwLCBvcHQuc3RhcnR8fDApXG4gICAgdmFyIGVuZCA9IHR5cGVvZiBvcHQuZW5kID09PSAnbnVtYmVyJyA/IG9wdC5lbmQgOiB0ZXh0Lmxlbmd0aFxuICAgIHZhciBtb2RlID0gb3B0Lm1vZGVcblxuICAgIHZhciBtZWFzdXJlID0gb3B0Lm1lYXN1cmUgfHwgbW9ub3NwYWNlXG4gICAgaWYgKG1vZGUgPT09ICdwcmUnKVxuICAgICAgICByZXR1cm4gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKVxuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSlcbn1cblxuZnVuY3Rpb24gaWR4T2YodGV4dCwgY2hyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIGlkeCA9IHRleHQuaW5kZXhPZihjaHIsIHN0YXJ0KVxuICAgIGlmIChpZHggPT09IC0xIHx8IGlkeCA+IGVuZClcbiAgICAgICAgcmV0dXJuIGVuZFxuICAgIHJldHVybiBpZHhcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNocikge1xuICAgIHJldHVybiB3aGl0ZXNwYWNlLnRlc3QoY2hyKVxufVxuXG5mdW5jdGlvbiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgbGluZXMgPSBbXVxuICAgIHZhciBsaW5lU3RhcnQgPSBzdGFydFxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kICYmIGk8dGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hyID0gdGV4dC5jaGFyQXQoaSlcbiAgICAgICAgdmFyIGlzTmV3bGluZSA9IG5ld2xpbmUudGVzdChjaHIpXG5cbiAgICAgICAgLy9JZiB3ZSd2ZSByZWFjaGVkIGEgbmV3bGluZSwgdGhlbiBzdGVwIGRvd24gYSBsaW5lXG4gICAgICAgIC8vT3IgaWYgd2UndmUgcmVhY2hlZCB0aGUgRU9GXG4gICAgICAgIGlmIChpc05ld2xpbmUgfHwgaT09PWVuZC0xKSB7XG4gICAgICAgICAgICB2YXIgbGluZUVuZCA9IGlzTmV3bGluZSA/IGkgOiBpKzFcbiAgICAgICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgbGluZVN0YXJ0LCBsaW5lRW5kLCB3aWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobWVhc3VyZWQpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmVTdGFydCA9IGkrMVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpIHtcbiAgICAvL0EgZ3JlZWR5IHdvcmQgd3JhcHBlciBiYXNlZCBvbiBMaWJHRFggYWxnb3JpdGhtXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbGliZ2R4L2xpYmdkeC9ibG9iL21hc3Rlci9nZHgvc3JjL2NvbS9iYWRsb2dpYy9nZHgvZ3JhcGhpY3MvZzJkL0JpdG1hcEZvbnRDYWNoZS5qYXZhXG4gICAgdmFyIGxpbmVzID0gW11cblxuICAgIHZhciB0ZXN0V2lkdGggPSB3aWR0aFxuICAgIC8vaWYgJ25vd3JhcCcgaXMgc3BlY2lmaWVkLCB3ZSBvbmx5IHdyYXAgb24gbmV3bGluZSBjaGFyc1xuICAgIGlmIChtb2RlID09PSAnbm93cmFwJylcbiAgICAgICAgdGVzdFdpZHRoID0gTnVtYmVyLk1BWF9WQUxVRVxuXG4gICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgLy9nZXQgbmV4dCBuZXdsaW5lIHBvc2l0aW9uXG4gICAgICAgIHZhciBuZXdMaW5lID0gaWR4T2YodGV4dCwgbmV3bGluZUNoYXIsIHN0YXJ0LCBlbmQpXG5cbiAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBzdGFydCBvZiBsaW5lXG4gICAgICAgIHdoaWxlIChzdGFydCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKCB0ZXh0LmNoYXJBdChzdGFydCkgKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgc3RhcnQrK1xuICAgICAgICB9XG5cbiAgICAgICAgLy9kZXRlcm1pbmUgdmlzaWJsZSAjIG9mIGdseXBocyBmb3IgdGhlIGF2YWlsYWJsZSB3aWR0aFxuICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBuZXdMaW5lLCB0ZXN0V2lkdGgpXG5cbiAgICAgICAgdmFyIGxpbmVFbmQgPSBzdGFydCArIChtZWFzdXJlZC5lbmQtbWVhc3VyZWQuc3RhcnQpXG4gICAgICAgIHZhciBuZXh0U3RhcnQgPSBsaW5lRW5kICsgbmV3bGluZUNoYXIubGVuZ3RoXG5cbiAgICAgICAgLy9pZiB3ZSBoYWQgdG8gY3V0IHRoZSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBuZXdsaW5lLi4uXG4gICAgICAgIGlmIChsaW5lRW5kIDwgbmV3TGluZSkge1xuICAgICAgICAgICAgLy9maW5kIGNoYXIgdG8gYnJlYWsgb25cbiAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQpKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5lRW5kID09PSBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPiBzdGFydCArIG5ld2xpbmVDaGFyLmxlbmd0aCkgbmV4dFN0YXJ0LS1cbiAgICAgICAgICAgICAgICBsaW5lRW5kID0gbmV4dFN0YXJ0IC8vIElmIG5vIGNoYXJhY3RlcnMgdG8gYnJlYWssIHNob3cgYWxsLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBsaW5lRW5kXG4gICAgICAgICAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCAtIG5ld2xpbmVDaGFyLmxlbmd0aCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5lRW5kID49IHN0YXJ0KSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbGluZUVuZCwgdGVzdFdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnRcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbi8vZGV0ZXJtaW5lcyB0aGUgdmlzaWJsZSBudW1iZXIgb2YgZ2x5cGhzIHdpdGhpbiBhIGdpdmVuIHdpZHRoXG5mdW5jdGlvbiBtb25vc3BhY2UodGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgZ2x5cGhzID0gTWF0aC5taW4od2lkdGgsIGVuZC1zdGFydClcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnQrZ2x5cGhzXG4gICAgfVxufSIsIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXX0= diff --git a/build/datguivr.map b/build/datguivr.map index a4a21b3..6908a07 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","stopImmediatePropagation","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","labelString","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","VertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeFaceNormals","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"CAAA,WAAY,QAASA,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAE,kBAAmBC,UAASA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,IAAIK,GAAE,GAAIC,OAAM,uBAAuBN,EAAE,IAAK,MAAMK,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEX,EAAEG,IAAIS,WAAYb,GAAEI,GAAG,GAAGU,KAAKF,EAAEC,QAAQ,SAASd,GAAoB,MAAOI,GAAlBH,EAAEI,GAAG,GAAGL,IAAeA,IAAIa,EAAEA,EAAEC,QAAQd,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGS,QAAQ,IAAI,GAAIL,GAAE,kBAAmBD,UAASA,QAAQH,EAAE,EAAEA,EAAEF,EAAEa,OAAOX,IAAID,EAAED,EAAEE,GAAI,OAAOD,GAAE,MAAOJ,OAAOiB,GAAG,SAAST,EAAQU,EAAOJ,GACxe,YAmCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASK,KAuEP,QAASC,GAAcjB,IACC,IAAlBkB,EAAMC,UAIVC,EAAOC,KAEPC,EAAcC,SAASC,EAAmB,GAAfC,EAE3BzB,EAAE0B,QAAS,GAGb,QAASC,KACPL,EAAcC,SAASC,EAAmB,GAAfC,EAG7B,QAASG,KAEHC,EAAYC,WACdC,EAASC,MAAMC,OAAOC,EAAOC,wBAE7BJ,EAASC,MAAMC,OAAOC,EAAOE,cA3FjC,GAAIC,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DC,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDG,EAAuB,GAART,EAAcC,EAAOS,aACpCC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACIG,GAAcV,EAAeE,EAC7BS,EAAO,GAAIR,OAAMS,YAAYZ,EAAcE,EAAe7B,EAAcwC,KAAKC,MAFjE,EAEmFJ,GAFnF,EAAA,EAGD,IAAIP,OAAMY,oBAAoB,GACpCC,OAAOL,GAChBA,EAAKM,UAAyB,GAAfjB,EAAoB,EAAG,EAGtC,IAAIkB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAmB,GAAfC,EAC3BH,EAAcC,SAASmD,EAAY,GAAR/B,CAE3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOE,eACvDuC,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAElB,IAAIC,GAAcpC,EAAYqC,OAAOxD,GAAgByD,MAAO,MAI5DF,GAAYrD,SAASmD,EAAmB,GAAftB,EAAgD,MAA3BwB,EAAYG,OAAOpC,MAAmB,GACpFiC,EAAYrD,SAASC,EAAmB,IAAfC,EACzBmD,EAAYrD,SAASyD,GAAK,KAC1BL,EAAad,IAAIe,EAEjB,IAAIK,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,aAAc7D,GAEpCC,IA2BAV,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAiBzD,OAfAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAETA,EAAM0D,YAAc,SAAUoB,GAE5B,MADApB,GAAYqB,YAAYD,GACjB9E,GAGFA,EAzJTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUO,CAElB,IAAIoF,GAAuBzG,EAAQ,qCAI/B0G,GAFsB3F,EAAwB0F,GAEjCzG,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KA8IhCC,oCAAoC,GAAGC,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKC,GAAG,SAASvH,EAAQU,EAAOJ,GACxK,YAmCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAqBvF,QAAS4G,KAuDP,QAASlG,GAAcjB,IACC,IAAlBkB,EAAMC,UAIViG,EAAMjB,OAASiB,EAAMjB,MAErB/E,EAAOC,GAAgB+F,EAAMjB,MAEzBkB,GACFA,EAAYD,EAAMjB,OAGpBnG,EAAE0B,QAAS,GAGb,QAASE,KACP0F,EAAUnG,QAAUiG,EAAMjB,MAC1BoB,EAAUpG,QAAUU,EAAYC,WAC5B0F,IACFA,EAAQF,UAAUnG,QAAUiG,EAAMjB,MAClCqB,EAAQD,UAAUpG,QAAUqG,EAAQ3F,YAAYC,YAwBpD,QAAS2F,KACP,GAAID,EAAS,MAAOA,EACpB,IAAIE,GAA6B,GAAtB9E,EAAOI,aACde,EAAO,GAAIR,OAAMS,YAAY0D,EAAMA,EAAMxE,EAC7Ca,GAAKM,UAAiB,GAAPqD,EAAY,EAAG,EAC9B,IAAIpD,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAC1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDkD,GAAUlG,EAEVA,EAAcC,SAASC,EAAI0B,CAG3B,IAAIqE,GAAY3E,EAAOgB,YAAY8D,EAAO9E,EAAO+E,iBAAkBD,EAAO9E,EAAO+E,iBAAkBzE,GAAO,EAC1GsE,GAAQD,UAAYA,EACpBA,EAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,CAEvB,IAAIoE,GAAYM,EAAQN,UAAU,GAAMI,EAAO9E,EAAOiF,cACtDL,GAAQF,UAAYA,EACpBA,EAAUnG,QAAUiG,EAAMjB,MAC1BmB,EAAU/F,SAASC,EAAY,IAAR0B,EACvB5B,EAAcuC,IAAIyD,EAElB,IAAIzF,IAAc,EAAIyD,EAAc7E,SAASa,EAe7C,OAdAO,GAAY0D,OAAOC,GAAG,YAAasC,GACnCN,EAAQ3F,YAAcA,EAGtB2F,EAAQ5B,cAAgB,SAAUC,GAC5BuB,EAAMW,SACRX,EAAMjB,MAAQ/E,EAAOC,IAIvBQ,EAAYiE,OAAOD,GACnBjE,KAGK4F,EAIT,QAASM,GAAkB9H,IACI,IAAzBkB,EAAM8G,OAAO7G,UAAyC,IAApBqG,EAAQrG,UAC9CiG,EAAMjB,OAASiB,EAAMjB,MACrB/E,EAAOC,GAAgB+F,EAAMjB,MACzBkB,GAAaA,EAAYD,EAAMjB,OACnCnG,EAAE0B,QAAS,EAGX8F,EAAQF,UAAUnG,QAAUiG,EAAMjB,OAvJpC,GAAI9D,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DwF,EAAoB5F,EAAK6F,aACzBA,MAAqC3F,KAAtB0F,GAA0CA,EACzDvF,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACFjB,MAAO+B,EACPH,QAAQ,GAGNI,EAAevF,EAAOI,aAAeJ,EAAOiF,cAE5C3G,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,WAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAI4D,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIqC,OAAc,EAGlBnG,GAAMkH,SAAW,SAAUC,GAEzB,MADAhB,GAAcgB,EACPnH,GAGTA,EAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,GAGTA,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,EAGT,IAAIoG,OAAY,GACZC,MAAY,GACZ1F,MAAc,GA2BdyG,GAAwB,CAC5BpH,GAAMqH,mBAAqB,WACzB,GAAIpC,KAAQ7D,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,KAAmBA,UAAU,EAS3E,OAPI6D,KAAUmC,IACZA,EAAwBnC,EAGxBqB,EAAUC,IACNtB,EAAOjF,EAAM8G,OAAOQ,cAAchB,GAAcA,EAAQrG,SAAU,GAEjED,GAETL,OAAOqF,eAAehF,EAAO,yBAC3BuH,IAAK,WACH,MAAOH,IAETI,IAAKxH,EAAMqH,oBAEb,IAAIf,OAAU,GAwDV7D,MAAQ,EA+EZ,OA5EAzC,GAAMyH,UAAY,SAAUC,GACtBjF,GAAOzC,EAAM2H,OAAOlF,GAExBzC,EAAM4H,QAAUF,CAEhB,IAAIG,GAAiBH,EAAYT,EAC7Ba,EAAkBD,EAClBE,EAAiB/F,EACjBgG,EAAiB,GAAMH,EAAiBnG,EAAOiF,aAEnDlE,GAAQf,EAAOgB,YAAYjB,EAAOiG,EAAW1F,GAC7ChC,EAAM2C,IAAIF,EAGV,IAAII,GAAO,GAAIR,OAAMS,YAAY+E,EAAgBC,EAAiBC,EAClElF,GAAKM,UAA2B,GAAjB0E,EAAsB,EAAG,EAGxC,IAAIzE,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAI0B,EAC3B5B,EAAcC,SAASmD,EAAY,GAAR/B,CAO3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOiH,oBACvDxE,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAElB,IAAIQ,GAAevC,EAAOwC,sBAAsBwD,EAAW1G,EAAOkH,uBAClEjE,GAAa5D,SAASC,EAAI0B,EAE1BqE,EAAY3E,EAAOgB,YAAYmF,EAAiBnG,EAAO+E,iBAAkBqB,EAAkBpG,EAAO+E,iBAAkBsB,GAAgB,GACpI1B,EAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,EAEvBoE,EAAYM,EAAQN,UAAU4B,GAC9B5B,EAAU/F,SAASC,EAAY,IAAR0B,EACvB5B,EAAcuC,IAAIyD,GAElB3D,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAAcoC,GAIxD1F,GAAc,EAAIyD,EAAc7E,SAASa,GACzCO,EAAY0D,OAAOC,GAAG,YAAavE,GAEnCW,IAEAV,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC1BuB,EAAMW,SACRX,EAAMjB,MAAQ/E,EAAOC,IAEvBQ,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGEV,EAAM8G,QAAQ9G,EAAM8G,OAAOqB,gBAExBnI,GAGTA,EAAMyH,UAAU5F,GAET7B,EAlSTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAU0G,CAElB,IAAId,GAAa1G,EAAQ,eAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC7C,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KAsQhCE,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKuC,GAAG,SAAS7J,EAAQU,EAAOJ,GAC/I,YA+BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAgCvF,QAASkJ,GAASC,EAAGC,EAAGC,GACpB,GAAIzK,GAAG0K,EAAGC,EAAGtK,EAAGC,EAAGO,EAAG+J,EAAGzK,CAUzB,QATyB,IAArBgD,UAAUnC,aAEEoC,KAARmH,EAAEhF,GAAiBiF,EAAID,EAAE1E,EAAG4E,EAAIF,EAAElI,EAAGkI,EAAIA,EAAEhF,IAAOiF,EAAID,EAAEC,EAAGC,EAAIF,EAAEE,EAAGF,EAAIA,EAAEA,IAElFlK,EAAIyE,KAAKC,MAAU,EAAJwF,GACfjK,EAAQ,EAAJiK,EAAQlK,EACZQ,EAAI4J,GAAK,EAAID,GACbI,EAAIH,GAAK,EAAInK,EAAIkK,GACjBrK,EAAIsK,GAAK,GAAK,EAAInK,GAAKkK,GACfnK,EAAI,GACR,IAAK,GACDL,EAAIyK,EAAGC,EAAIvK,EAAGwK,EAAI9J,CAAE,MACxB,KAAK,GACDb,EAAI4K,EAAGF,EAAID,EAAGE,EAAI9J,CAAE,MACxB,KAAK,GACDb,EAAIa,EAAG6J,EAAID,EAAGE,EAAIxK,CAAE,MACxB,KAAK,GACDH,EAAIa,EAAG6J,EAAIE,EAAGD,EAAIF,CAAE,MACxB,KAAK,GACDzK,EAAIG,EAAGuK,EAAI7J,EAAG8J,EAAIF,CAAE,MACxB,KAAK,GACDzK,EAAIyK,EAAGC,EAAI7J,EAAG8J,EAAIC,EAE1B,OACI5K,EAAGA,EACH0K,EAAGA,EACHC,EAAGA,GAQX,QAASE,GAAS7K,EAAG0K,EAAGC,GACK,IAArBxH,UAAUnC,SACV0J,EAAI1K,EAAE0K,EAAGC,EAAI3K,EAAE2K,EAAG3K,EAAIA,EAAEA,EAE5B,IAGIuK,GAHAO,EAAMhG,KAAKgG,IAAI9K,EAAG0K,EAAGC,GACrBI,EAAMjG,KAAKiG,IAAI/K,EAAG0K,EAAGC,GACrBK,EAAIF,EAAMC,EAEVP,EAAY,IAARM,EAAY,EAAIE,EAAIF,EACxBL,EAAIK,CAER,QAAQA,GACJ,IAAKC,GACDR,EAAI,CAAE,MACV,KAAKvK,GACDuK,EAAIG,EAAIC,EAAIK,GAAKN,EAAIC,EAAI,EAAI,GAAGJ,GAAK,EAAIS,CAAE,MAC/C,KAAKN,GACDH,EAAII,EAAI3K,EAAQ,EAAJgL,EAAMT,GAAK,EAAIS,CAAE,MACjC,KAAKL,GACDJ,EAAIvK,EAAI0K,EAAQ,EAAJM,EAAMT,GAAK,EAAIS,EAGnC,OACIT,EAAGA,EACHC,EAAGA,EACHC,EAAGA,EACHlF,EAAGgF,EAAG1E,EAAG2E,EAAGnI,EAAGoI,GAIvB,QAASQ,KAiCL,QAASC,KACLC,EAAMtI,MAAM0G,IAAI1G,GAChBuD,EAAOgF,KAAK,WAAYvI,GAK5B,QAASwI,KACA7G,GACLA,EAAMpC,SAASmH,IAAI,EAAG,EAAG,EAAIxF,GAGjC,QAASuH,KACL,GAAI9G,EAIA,MAHAA,GAAMxC,SAAWwC,EAAMxC,QACnBwC,EAAMxC,SAASD,EAAM8G,OAAO0C,eAAe/G,OAC/C6G,IAOA,IAHA7G,EAAQgH,IAAIC,MAAM/F,OAAO,iBACzBlB,EAAMkH,aAEFC,EAAY,CACZ,GAAIC,GAAO,SAAc/K,GACrBgL,EAASC,YAAY9E,MAAMzB,EAAI1E,EAAEkL,WAAWxG,CAC5C,IAAIhF,GAAI+J,EAASuB,EAASC,YAAY9E,MACtCnE,GAAMmJ,OAAOzL,EAAEP,EAAGO,EAAEmK,EAAGnK,EAAEoK,GACzBO,IACAe,EAAUC,aAAc,GAGxBC,EAAa,GAAI/H,OAAMgI,gBACvBP,SAAUA,EACVQ,aAAcC,EACdC,eAAgBC,IAEhBC,EAAQ,SAAe5L,GACvBgL,EAASC,YAAY9E,MAAMnB,EAAIhF,EAAEkL,WAAWxG,EAC5CsG,EAASC,YAAY9E,MAAM3E,EAAIxB,EAAEkL,WAAWlG,CAE5C,IAAItF,GAAI+J,EAASuB,EAASC,YAAY9E,MACtCnE,GAAMmJ,OAAOzL,EAAEP,EAAGO,EAAEmK,EAAGnK,EAAEoK,GACzBO,IACAe,EAAUC,aAAc,GAGxBQ,EAAcjJ,EAAOnB,aAAe,EACxCkC,GAAMmI,gBAAgBF,EAAON,GAFlB,EAEoC1I,EAAOC,YAAc,EAAGK,EAAO2I,EAC9E,IAAIT,GAAY,GAAI7H,OAAMgI,gBACtBP,SAAUA,EACVQ,aAAcC,EACdC,eAAgBK,GAIpBpI,GAAMmI,gBAAgBf,EAAMK,GAVjB,EAUkCxI,EAAOI,aAAcE,EAAO2I,OAEzElI,GAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,GACrC1G,EAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,GACrC1G,EAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,EAEzCnJ,GAAM2C,IAAIF,GACVzC,EAAM8G,OAAO0C,eAAe/G,GAC5B6G,IACA7G,EAAMqE,OAAS9G,EAAM8G,OAe7B,QAASgE,KAGLhK,EAAQZ,EAAOC,GACfiJ,EAAMtI,MAAMiK,KAAKjK,GACjBgJ,EAASC,YAAY9E,MAAM8F,KAAKjC,EAAShI,IArH7C,GAAIK,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtElB,EAASiB,EAAKjB,OACdC,EAAegB,EAAKhB,aACpBmB,EAAcH,EAAKG,YACnBE,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAc,EAAKF,EAK7DiJ,EAAOzB,EACPzI,EAAQZ,EAAOC,GACf3B,EAAIsK,EAAShI,GACbgJ,GAAaC,aAAe9E,MAAO,GAAI5C,OAAM4I,QAAQzM,EAAEgK,EAAGhK,EAAEiK,EAAGjK,EAAEkK,KACjEU,EAAQ,GAAI/G,OAAMgB,mBAAoBvC,MAAOA,IAC7CuD,EAAS,GAAI6G,GAAS3L,QAEtB2G,GACAW,QAAQ,GAGR7G,GAAQ,EAAImL,EAAc5L,UAC1B+B,YAAaA,EAAa0J,KAAMA,EAAM5B,MAAOA,EAAOjJ,aAAcA,EAAcsB,MAAOA,EAAOI,OAAQA,EAAQG,MAAOA,EAAOoJ,oBANvG,GAQzBpL,GAAMuC,QAAU,aAEhB,IAAIE,GAOAmH,GAAa,CAgEjB5J,GAAMkH,SAAW,SAAUC,GAEvB,MADA9C,GAAOC,GAAG,WAAY6C,GACfnH,EAGX,IAAIqL,GAAwBrL,EAAM0E,aAkBlC,OAjBA1E,GAAM0E,cAAgB,SAAUC,GACxBuB,EAAMW,QAAQiE,IAClBO,EAAsB1G,IAU1B3E,EAAM6G,OAAS,WAEX,MADAX,GAAMW,QAAS,EACR7G,GAGJA,EA9PXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAU2J,CAElB,IAAIoC,GAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCC,EAAe9M,EAAQ,iBAEvB0M,EAAgB/L,EAAuBmM,GAEvClG,EAAU5G,EAAQ,YAIlB6G,GAFS9F,EAAwB6F,GAEvB5G,EAAQ,aAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAuBhB+M,GArBOhM,EAAwBgG,GAqBrB,yMAEV+E,EAAa,uIAEbE,EAAe,mDAAqDe,EAAU,uZAE9EX,EAAoB,mDAAqDW,EAAU,6VA2MpF9F,WAAW,EAAEC,SAAS,EAAE8F,gBAAgB,GAAG5F,WAAW,GAAGC,oBAAoB,GAAGzB,OAAS,KAAKqH,GAAG,SAASjN,EAAQU,EAAOJ,GAC5H,YAiDA,SAAS4M,GAAiBC,EAAU9K,GAClC,GAAI+K,GAAM,GAAIxJ,OAAMyJ,MAAMhL,GACtBtC,EAAIoN,EAASG,aAAa,SAC1BpN,MAAI,EACHH,GAIHG,EAAIH,EAAEwN,OAHNrN,EAAI,GAAIsN,cAAaL,EAASG,aAAa,YAAYC,MAAM/M,QAAQiN,KAAK,IAC1E1N,EAAIoN,EAASO,aAAa,QAAS,GAAI9J,OAAM+J,gBAAgBzN,EAAG,IAIlE,KAAK,GAAIL,GAAI,EAAGA,EAAIK,EAAEM,OAAQX,GAAK,EACjCK,EAAEL,GAAKuN,EAAI5N,EACXU,EAAEL,EAAI,GAAKuN,EAAIlD,EACfhK,EAAEL,EAAI,GAAKuN,EAAIjD,CAQjB,OANApK,GAAE2L,aAAc,EAMTyB,EApETjM,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQ4M,iBAAmBA,CAoBP5M,GAAQsN,cAAgB,QACtBtN,EAAQuN,gBAAkB,QACxBvN,EAAQwN,kBAAoB,OAC/BxN,EAAQyN,eAAiB,QACfzN,EAAQ0N,yBAA2B,SAC9C1N,EAAQ2N,cAAgB,SACzB3N,EAAQ4N,aAAe,OAChB5N,EAAQ6N,oBAAsB,QACnC7N,EAAQ8N,eAAiB,QACzB9N,EAAQ+N,eAAiB,QACnB/N,EAAQgO,qBAAuB,QAC7BhO,EAAQmJ,uBAAyB,QACnCnJ,EAAQoF,qBAAuB,SACjCpF,EAAQiO,mBAAqB,QACzBjO,EAAQkO,uBAAyB,SACtClO,EAAQmO,kBAAoB,SAC5BnO,EAAQoO,kBAAoB,EAC5BpO,EAAQkJ,kBAAoB,SACjClJ,EAAQmC,aAAe,SACbnC,EAAQkC,uBAAyB,SAC9ClC,EAAQqO,UAAY,QACnBrO,EAAQsO,WAAa,SACXtO,EAAQuO,qBAAuB,cA0BpDC,GAAG,SAAS9O,EAAQU,EAAOJ,GACjC,YAiCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASmO,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GAmB1L,QAASK,KA8DP,QAASC,KACP,MAAIL,OAAMC,QAAQK,GACTA,EAAQC,KAAK,SAAUC,GAC5B,MAAOA,KAAehO,EAAOC,KAGxBR,OAAOwO,KAAKH,GAASC,KAAK,SAAUC,GACzC,MAAOhO,GAAOC,KAAkB6N,EAAQE,KAK9C,QAASE,GAAaC,EAAWC,GAE/B,GAAIC,IAAQ,EAAIC,EAAYjP,SAAS+B,EAAa+M,EAElDI,EAAgBzM,EAAOhB,EAAOmM,kBAAmBnM,EAAOkM,kBAAmB,KAC3EqB,GAAMG,KAAKnM,QAAU,iBACrBgM,EAAMhM,QAAU,iBAEZ+L,EAAUK,EAAcpK,QAAQqK,KAAKL,EAAMG,MAAW1O,EAAMuE,QAAQqK,KAAKL,EAAMG,KACnF,IAAIG,IAAmB,EAAIzK,EAAc7E,SAASgP,EAAMG,KAiDxD,OAhDAG,GAAiBtM,QAAU,iBAC3BuM,EAAkBF,KAAKC,GACvBE,EAAaH,KAAKL,GAEdD,EACFO,EAAiBxK,OAAOC,GAAG,YAAa,SAAUxF,GAChDoH,EAAM8I,KAAOL,EAAc1O,QAC3BgP,EAAcC,UAAUb,EAExB,IAAIc,IAAkB,CAElBzB,OAAMC,QAAQK,IAChBmB,EAAkBjP,EAAOC,KAAkBkO,KAEzCnO,EAAOC,GAAgBkO,IAGzBc,EAAkBjP,EAAOC,KAAkB6N,EAAQK,MAEjDnO,EAAOC,GAAgB6N,EAAQK,IAInCe,IACAlJ,EAAM8I,MAAO,EAET7I,GAAegJ,GACjBhJ,EAAYjG,EAAOC,IAEjBkP,GACFA,EAAWnP,EAAOC,IAGpBrB,EAAE0B,QAAS,IAGbqO,EAAiBxK,OAAOC,GAAG,YAAa,SAAUxF,GAChDoH,EAAM8I,KAAOL,EAAc1O,SACR,IAAfiG,EAAM8I,KACRM,IAEAF,IAGFtQ,EAAE0B,QAAS,IAGf+N,EAAMD,SAAWA,EACVC,EAGT,QAASa,KACPlJ,EAAM8I,MAAO,EACThP,EAAM8G,QAAQ9G,EAAM8G,OAAOyI,mBAGjC,QAASD,KACPpJ,EAAM8I,MAAO,EACbhP,EAAM8G,OAAO0C,eAAemF,GAO5BI,EAAaS,QAAQ,SAAUjB,GACzBA,EAAMD,WACRC,EAAMtO,SAAU,EAChBsO,EAAMG,KAAKzO,SAAU,KAe3B,QAASwP,GAAuBlB,EAAOmB,GACrCnB,EAAMlO,SAASyD,GAAK6L,GAAmBD,EAAQE,EAAgC,GAAKC,EACpFtB,EAAMlO,SAASC,EAAI0B,EACnBuM,EAAMlO,SAASmD,GAAKiL,EAAiB1L,KAAKC,MAAM0M,EAAQE,GAG1D,QAASE,GAAc5B,EAAYwB,GACjC,GAAIK,GAAc3B,EAAaF,GAAY,EAE3C,OADAuB,GAAuBM,EAAaL,GAC7BK,EA6BT,QAASrP,KAEPoO,EAAkBU,QAAQ,SAAU7O,EAAa+O,GAC/C,GAAInB,GAAQQ,EAAaW,EACrBnB,GAAMD,WACJ3N,EAAYC,WACdI,EAAO2K,iBAAiB4C,EAAMG,KAAK9C,SAAU5K,EAAOsL,iBAEpDtL,EAAO2K,iBAAiB4C,EAAMG,KAAK9C,SAAU5K,EAAOkM,sBAK1DhH,EAAM8I,KAAOL,EAAc1O,QACvBD,EAAMgQ,SAASC,SAIjB,EAAIC,EAAOC,eAAe1N,EAAOzC,EAAMgQ,SAASC,OAAQnB,EAAkB,GAAGlO,YAE3EkO,EAAkB,GAAGlO,YAAcsF,EAAM8I,KAC3C3I,EAAUpG,SAAU,EAEpBoG,EAAUpG,SAAU,EAnOxB,GAAIkB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAG/D6O,GAFoBjP,EAAK6F,aAEV7F,EAAK6M,SACpBA,MAA2B3M,KAAjB+O,KAAkCA,EAC5C5O,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACF8I,MAAM,EACNnI,QAAQ,GAGN4H,EAAyB,GAARhN,EAAcC,EAAOS,aACtCkO,EAAkBxO,EAASH,EAAOS,aAClCmO,EAAiBtO,EACjB6N,EAAyBhO,EAA+B,IAAtBH,EAAOS,aACzCwN,GAAyC,GAAvBjO,EAAOS,aACzByN,EAAgC,GAEhC5P,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,WAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,KAIrDH,EAAMgQ,SAASO,aAAerQ,EAC9BF,EAAMgQ,SAASQ,mBAAqBrQ,EACpCH,EAAMgQ,SAASS,SAAW,SAAU/H,GAClC,IAA4B,IAAxBsF,EAAQ0C,QAAQhI,GAGlB,WADAiI,SAAQC,KAAK,8BAAgClI,EAAI,mBAAqBvI,EAAe,uBAAyB6N,EAAQ6C,KAAK,MAAQ,IAGrI3Q,GAAOC,GAAgBuI,EACnBvC,GAAaA,EAAYjG,EAAOC,IAGtC,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,GAEVzC,EAAMuE,SAAW9B,EAEjB,IAAIkM,GAAgB,GAAItM,OAAMC,KAC9BqM,GAAc1O,SAAU,EACxB0O,EAAcpK,UACd,IAAIuK,MACAC,KAGA+B,EAAe/C,IAkGfkB,EAAgBb,EAAa0C,GAAgB,KAAK,EACtD7B,GAAc5O,SAASmD,EAA0B,GAAtB9B,EAAOS,aAA6B,GAARV,EACvDwN,EAAc5O,SAASC,EAAI0B,CAE3B,IAAI+O,GAAYrK,EAAQqK,WAExBA,GAAU1Q,SAASmH,IAAIiH,EAAiB,IAAM,EAAW,KAARzM,GACjDiN,EAActM,IAAIoO,GAclB9B,EAActM,IAAIgM,GACdjB,MAAMC,QAAQK,GAChBW,EAAchM,IAAIqO,MAAMrC,EAAenB,EAAmBQ,EAAQiD,IAAInB,KAEtEnB,EAAchM,IAAIqO,MAAMrC,EAAenB,EAAmB7N,OAAOwO,KAAKH,GAASiD,IAAInB,KAGrFV,GAEA,IAAIrL,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOiM,uBAC/DhJ,GAAa5D,SAASC,EAAI0B,CAE1B,IAAIqE,GAAY3E,EAAOgB,YAAY+L,EAAiB/M,EAAO+E,iBAAkB4J,EAA4C,GAA1B3O,EAAO+E,iBAAwB6J,GAAgB,EAC9IjK,GAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,EAEvBS,EAAME,IAAIoB,EAAiBE,EAAcgL,EAAe5I,GAExD3F,GA6BA,IAAIyF,OAAc,GAEdkJ,MAAa,EAEjBrP,GAAMkH,SAAW,SAAUC,GAEzB,MADAhB,GAAcgB,EACPnH,GAETA,EAAMkR,SAAW,SAAU/J,GAEzB,MADAkI,GAAalI,EACNnH,EAGT,IAAIwE,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAmCzD,OAjCAzC,GAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,GAGTA,EAAM0E,cAAgB,SAAUC,GAC1BuB,EAAMW,QACRoI,EAAcC,UAAUnB,KAE1Be,EAAkBU,QAAQ,SAAUX,GAClCA,EAAiBjK,OAAOD,KAE1BH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGTA,EAAMmR,WAAa,SAAUC,GAC3B,GAAI/R,GAAMW,CACVX,GAAI2Q,SAASoB,IAAMA,EAGnB/R,EAAI2Q,SAASC,QAAS,EAAI9K,EAAWkM,eAAe/P,EAAa8P,EAAK1P,EAAO4P,aAAcjS,EAAIuI,QAASlG,EAAOnB,eAGjHP,EAAMuR,WAAa,WACjB,MAAOvR,GAAMgQ,SAASoB,KAGjBpR,EA9UTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUuO,CAElB,IAAI3I,GAAa1G,EAAQ,eAErB+P,EAAcpP,EAAuB+F,GAErCC,EAAe3G,EAAQ,iBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC5C,EAAQ/G,EAAQ,UAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aAoTlBiH,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGE,cAAc,GAAGyL,UAAU,KAAKC,GAAG,SAAShT,EAAQU,EAAOJ,GACrI,YAuCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAIlQ,QAAS+N,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GA+B1L,QAASiE,KACP,GAAIC,GAAMC,EAAe,GAAG5B,SAAS6B,cACrC,IAAKF,KAAOC,EAAe3S,QAAU,GAArC,CAEA,GAAI6S,GAAMF,EAAeG,OAAO,SAAUvO,GACxC,MAAOA,GAAEvD,UAEP+R,EAAOL,EAAIK,KAEX7T,GADMwT,EAAIM,IACNH,EAAI7S,QACRiT,EAAKJ,EAAIb,IAAI,SAAU1S,GACzB,MAAOA,GAAE8B,SAASC,IACjB6R,KAAK,SAAUxT,EAAGiK,GACnB,MAAOjK,GAAIiK,GAEbsJ,IAAI,IAAM,KACVA,EAAG1C,QAAQ,SAAUlP,EAAGhC,GACtB,MAAO4T,GAAG5T,GAAKyE,KAAKgG,IAAImJ,EAAG5T,GAAI4T,EAAG5T,EAAI,GAAK,GAAKoD,EAAOO,eAGzD6P,EAAItC,QAAQ,SAAUjR,EAAGD,GAEvB,GAAIgC,GAAI4R,EAAG5T,EACPgC,KAAM/B,EAAE8B,SAASC,IACnB/B,EAAE8B,SAASC,EAAIA,EACf/B,EAAE6T,eACF7T,EAAE8T,uBAGFP,EAAI3T,EAAI,GAAGkC,SAASC,GAAK0R,EAAOtQ,EAAOO,aACzC0O,QAAQ2B,IAAI,2EAKhB,QAASC,GAAYZ,GACnB,GAAKA,EAAIa,qBAAT,CACA,GAAIR,GAAOL,EAAIK,KACXC,EAAMN,EAAIM,IAEVQ,GADIb,EAAe3S,OACf0S,EAAIe,MACRzU,EAAI0T,EAAIgB,MACRvU,EAAIuT,EAAIiB,IACRhK,EAAI+I,EAAIkB,OACRvS,EAAIqR,EAAItR,SAASC,CAGrB,OAFAwS,GAAc9J,IAAIxB,IAAIiL,EAAG7J,GAAIqJ,EAAM3R,GACnCwS,EAAc/J,IAAIvB,IAAIvJ,EAAGG,GAAI4T,EAAO1R,GAC7BwS,GAGT,QAASC,KA2IP,QAASC,GAAQ3U,GAGf4U,EAAYjU,KAAKgB,EAAO3B,GAE1B,QAAS6U,GAAW7U,GAClB8U,EAAenU,KAAKgB,EAAO3B,GAyQ7B,QAAS+U,GAAYC,EAAOC,EAAQC,GAClCD,EAAOE,oBACPH,EAAMI,aAAaH,EAAOI,aAC1BJ,EAAO3L,OAAO0L,GACdE,EAAM5Q,IAAI0Q,GAEZ,QAASM,GAAYN,EAAOE,EAAOD,GACjCA,EAAOE,oBACPH,EAAMI,cAAa,GAAIpR,OAAMuR,SAAUC,WAAWP,EAAOI,cACzDH,EAAM5L,OAAO0L,GACbC,EAAO3Q,IAAI0Q,GAEb,QAASS,GAAWT,EAAOU,EAAWC,GAEpC,IADA,GAAIC,GAAOF,EACJE,EAAKX,QACVW,EAAOA,EAAKX,MACb,IAAIC,GAAQU,CAEbb,GAAYC,EAAOU,EAAWR,GAC9BI,EAAYN,EAAOE,EAAOS,GAwG5B,QAASE,KACPC,GAEA,IAEIC,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAE1CoU,KAAcpU,GACZoU,EAAUE,aAAeF,EAAUE,YAAYJ,eAAeE,EAAUE,YAAYJ,gBAExFE,EAAUpE,SAASuE,kBAAmB,EACtCH,EAAUpE,SAASwE,aAAe,EAClCJ,EAAUpE,SAASyE,YAAc,EACjCL,EAAUpE,SAAS0E,YAAcN,EAAU/T,SAASyD,EAG/C8N,EAAe+C,SAAS3U,KAC3B4R,EAAehD,KAAK5O,GAChBA,EAAMgQ,SAAS6B,gBAAgBH,OAMrC1R,EAAMgQ,SAASwE,aAAexU,EAAM8G,OAAOkJ,SAASwE,aACpDxU,EAAMgQ,SAASyE,YAAczU,EAAM8G,OAAOkJ,SAASyE,YAE/C7C,EAAe+C,SAAS3U,KAC1B4R,EAAegD,OAAOhD,EAAelB,QAAQ1Q,GAAQ,GACjDA,EAAMgQ,SAAS6B,gBAAgBH,KAMvC,IAAImD,GAAuBnT,EAAOI,aAAeJ,EAAOoT,cACpDC,EAAmBrT,EAAOsT,cAAgBtT,EAAOoT,cACjDG,EAAeF,CAEnBG,GAAcC,SAAS3F,QAAQ,SAAUhR,GACvCA,EAAEyB,SAAWiG,EAAMkP,WAMrB,IAAIC,GAAe,CAcnB,IATAH,EAAcC,SAAS3F,QAAQ,SAAUhR,EAAGF,OACvB+C,KAAf7C,EAAE8W,SACJ9W,EAAE8W,SAAWD,GAAgB,EACxBA,EAAe7W,EAAE8W,WAE1BJ,EAAcC,SAAShD,KAAK,SAAUxT,EAAGiK,GACvC,MAAOjK,GAAE2W,SAAW1M,EAAE0M,WAGpBpP,EAAMkP,UACRrE,EAAUwE,SAASjV,EAAc,GAAVyC,KAAKyS,OACvB,CACLzE,EAAUwE,SAASjV,EAAI,CAEvB,IAAIwD,GAAI,EACJ2R,EAAaV,CAEjBG,GAAcC,SAAS3F,QAAQ,SAAU6D,EAAO3D,GAC1C2D,EAAMqC,WACRrC,EAAMrD,SAAS0E,WAAa1U,EAAMgQ,SAAS0E,WAAa5Q,EACxDuP,EAAMa,gBAgCN,IAyBMyB,GArDFnN,EAAI6K,EAAMzL,QAAUyL,EAAMzL,QAAUiN,EAKpCjN,EAAU,IAAO6N,EAAajN,EAElC,IAAI6K,EAAMqC,SAAU,CAGlB,GAAIC,GAAS,IAAOF,EAAaV,EACjC1B,GAAMhT,SAASyD,EAAIA,EAAI6R,MAEvBtC,GAAMhT,SAASyD,EAAIA,EAAI8D,CAGzB9D,IAAK8D,EACL6N,EAAajN,EAETkH,EAAQkG,IAA4BX,GAAgBzM,GACxD6K,EAAMhT,SAASmD,EAAI,MAEdkM,EAAQ,GAAKkG,GAA+B,IAAG9R,EAAI,GAExDuP,EAAMhT,SAASmD,GAAK/B,EAAQsB,KAAKC,MAAM0M,EAAQkG,GAiDjDvC,EAAMjB,iBAIVpS,EAAM4H,QAAUqN,CAGhB,IAAIY,GAAanU,EAAO4P,YACpBtR,GAAM8G,SAAW9G,IACnB6V,EAAanU,EAAOoU,iBAGtBpU,EAAOqU,YAAYtT,EAAOoT,EAAYnU,EAAOsT,cAAehT,GAExDoS,IAAcpU,IAChBA,EAAMgQ,SAASuE,kBAAmB,EAClCvU,EAAMgQ,SAASgG,eAAgB,EAC/BhW,EAAMqS,qBAIV,QAAS8B,KACP,GAAI8B,GAAKvU,EAAOsT,cACZxR,EAAI9B,EAAO4P,YACf4E,GAAYf,SAAS3F,QAAQ,SAAUhR,GAChCA,EAAEyB,UACPuD,GAAU,GAALyS,EACLzX,EAAE6B,SAASmD,EAAIA,EACfA,GAAU,GAALyS,KAIT,QAASvV,KACHC,EAAYC,WACd6B,EAAM5B,SAASC,MAAMC,OAAOC,EAAO6L,gBAEnCpK,EAAM5B,SAASC,MAAMC,OAAOC,EAAO4L,qBAGjCpI,GAAgB5D,WAClBuV,EAAQtV,SAASC,MAAMC,OAAOC,EAAO6L,gBAErCsJ,EAAQtV,SAASC,MAAMC,OAAOC,EAAO4L,qBAInCwJ,EAAwBxV,WAC1ByV,EAAqBvV,MAAMC,OAAO,UAElCsV,EAAqBvV,MAAMC,OAAO,SAztBtC,GAAII,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBuD,EAAO1D,EAAK0D,KACZyR,EAASnV,EAAKmV,OACdC,EAAYpV,EAAKoV,UACjBC,EAAqBrV,EAAKqV,mBAC1BC,EAAoBtV,EAAKsV,kBAEzBb,EAA6B,GAE7BnU,EAAQC,EAAO4P,aACftP,EAAQN,EAAOO,YAEfiE,GACFkP,WAAW,EACXsB,mBAAgBrV,IAGdrB,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOsC,EAAO,IAG7C,IAAIqQ,GAAgB,GAAI7S,OAAMC,KAC9BtC,GAAM2C,IAAIuS,EAEV,IAAIyB,IAAc,CAIlBhX,QAAOqF,eAAehF,EAAO,aAC3BuH,IAAK,WACH,MAAOoP,IAETnP,IAAK,SAAaoP,GACZA,IAAaD,GAAa3W,EAAM6W,YAAY9E,OAAO,SAAUvT,GAC/D,MAAOA,GAAEkX,WACRzE,IAAI,SAAUzS,GACf,MAAOA,GAAEsY,UAEXH,EAAcC,EACd5W,EAAMmI,mBAKVnI,EAAMmI,cAAgB,WACpB,GAAIiM,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAC1CoU,GAAUpE,SAASuE,iBACrB5D,QAAQ2B,IAAI,8BAAgCtS,EAAM+W,WAAa,wCAG/D3C,EAAUpE,SAASgG,eAAgB,GAIvChW,EAAMkU,cAAgBA,CAEtB,IAAI8C,GAAmB,GAAI3U,OAAM4U,UAEjCjX,GAAMqS,kBAAoB,WACxB,GAAI6E,GAAS9V,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAE7E7C,EAAI4Y,IACR,IAAK5Y,EAAEyR,SAAS6B,eAAhB,CAEAtT,EAAE6Y,0BAA0BJ,EAK5B,IAAIK,IAAM,EAAInH,EAAOoH,kBAAkBC,EAAkBhZ,GACrDiZ,EAAOH,EAAItO,IAAIvF,EAAI6T,EAAIrO,IAAIxF,EAG3BmO,GAFO0F,EAAItO,IAAIjF,EAAIuT,EAAItO,IAAIjF,EAErBvF,EAAEyR,SAAS6B,gBACjB4F,EAASlF,EAAYZ,GAIrB+F,EAAeL,EAAIM,UAAUF,GAK7BG,EAAmBF,EAAaG,QAAQC,GACxCC,EAAUpG,EAAIgB,MAAQhB,EAAIe,KAC1BsF,EAAUrG,EAAIiB,IAAMjB,EAAIkB,MAE5B+E,GAAiBpU,GAAKgU,EAAKI,EAAiB9T,GAAK0T,CACjD,IAAIrN,IAAc,CAEdyN,GAAiBpU,EAAI0T,IAGvB3Y,EAAE8B,SAASmD,EAAImO,EAAIe,KAAOqF,EAAU,EACpC5N,GAAc,GAEZyN,EAAiB9T,EAAIoT,IACvB3Y,EAAE8B,SAASyD,EAAI6N,EAAIkB,OAASmF,EAAU,EACtC7N,GAAc,GAEZA,GAAa5L,EAAE6T,iBAGrBpS,EAAMiY,YAAc,WAClB,MAAO/R,GAAMkP,WAIfzV,OAAOqF,eAAehF,EAAO,eAK3BuH,IAAK,WACH,SAAU2Q,OAAO1K,EAAmB0H,EAAcC,UAAW3H,EAAmB0I,EAAYf,cAIhGnV,EAAMmY,SAAW,WACf,IAAK,GAAIC,GAAOhX,UAAUnC,OAAQoZ,EAAO3K,MAAM0K,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQlX,UAAUkX,EAGzB,QAAQD,EAAK1D,SAAS,SAAUtV,GAC9B,OAA2C,IAApCW,EAAM6W,YAAYnG,QAAQrR,MAIrCW,EAAM+W,WAAalS,CAGnB,IAAIoO,GAAc5Q,MAAMC,MAAM1C,UAAU+C,IAEpCwQ,EAAiB9Q,MAAMC,MAAM1C,UAAU+H,OAavClF,EAAQf,EAAOgB,YAAYjB,EAAOC,EAAOsT,cAAehT,GAAO,EACnEgR,GAAQvQ,EAER,IAAIsB,GAAkBzC,EAAYqC,OAAOkB,EACzCd,GAAgB1D,SAASmD,EAAqC,IAAjC9B,EAAOsC,wBACpCD,EAAgB1D,SAASyD,GAAK,IAC9BC,EAAgB1D,SAASC,EAAI0B,EAC7BS,EAAME,IAAIoB,EAEV,IAAIgN,GAAYrP,EAAO6W,iBACvBvX,GAAO2K,iBAAiBoF,EAAUnF,SAAU,UAC5CmF,EAAU1Q,SAASmH,IAAI,IAAM,EAAW,KAARxF,GAChCS,EAAME,IAAIoO,EAEV,IAAIoF,GAAUzU,EAAOgB,YAAYjB,EAAOC,EAAO8W,mBAAoBxW,GAAO,EAC1EmU,GAAQ9V,SAASyD,EAA2B,IAAvBpC,EAAOsT,cAC5BmB,EAAQtR,KAAO,UACfmO,EAAQmD,EAER,IAAIsC,GAAU/R,EAAQ+R,SACtBA,GAAQpY,SAASmH,IAAY,GAAR/F,EAAa,EAAW,MAARO,GACrCmU,EAAQxT,IAAI8V,GACZzY,EAAM0V,UAAW,EACjB1V,EAAM0Y,YAAc,WAClBvC,EAAQlW,SAAU,GAEpBD,EAAM2Y,YAAc,WAClBxC,EAAQlW,SAAU,GAEpBD,EAAM2J,WAAa,WACjB3J,EAAM0Y,cAENjW,EAAMxC,SAAU,GAElBD,EAAM4Y,WAAa,WAEjBnW,EAAMxC,SAAU,EAIlB,IAAIiW,GAAc,GAAI7T,OAAMC,KAC5BG,GAAME,IAAIuT,GAIVlW,EAAMsH,cAAgB,SAAUjI,GAC9B6W,EAAYvT,IAAItD,GAChBA,EAAIyH,OAAS9G,EACbX,EAAIwZ,gBAAiB,EAIhBxZ,EAAIqF,gBAAerF,EAAIqF,cAAgB,SAAUC,GACpD,MAAOtF,GAAIsB,YAAYiE,OAAOD,KAEhCtF,EAAIkF,SAAWlF,GACfoX,EAAkB7H,KAAKvP,GAGzB,IAAIgX,GAAuB,GAAIhU,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,IACnFtQ,EAA2B,GAAvB9G,EAAOsT,cACX+D,EAAmB,GAAI1W,OAAMS,YAAY0F,EAAGA,EAAyB,EAAtB9G,EAAOnB,cAEtDyY,EAActS,EAAQuS,OAAOpY,SAASoQ,IACtCiI,EAAgBxS,EAAQyS,SAAStY,SAASoQ,GAC9CoF,GAAqBpF,IAAMiI,CAC3B,IAAIE,GAAe,GAAI/W,OAAMiB,KAAKyV,EAAkB1C,EACpD+C,GAAanZ,SAAU,EACvBmZ,EAAa/Y,SAASmD,EAAI9B,EAAO4P,aAAe5P,EAAOsT,aACvD,IAAIoB,IAA0B,EAAIhS,EAAc7E,SAAS6Z,EACzDA,GAAazY,YAAcyV,EAC3BA,EAAwB/R,OAAOC,GAAG,YAAa,SAAUxF,GACnDkB,EAAMqZ,eACRrZ,EAAMsZ,WACDtZ,EAAMuZ,SACbza,EAAE0B,QAAS,IAGbR,EAAMsH,cAAc8R,EAEpB,IAAII,IAAe,CACnB7Z,QAAOqF,eAAehF,EAAO,cAC3BuH,IAAK,WACH,MAAOiS,IAEThS,IAAK,SAAaoP,GACZA,IAAa4C,IACjBJ,EAAanZ,QAAU2W,EACvB4C,EAAe5C,MAInB5W,EAAM2C,IAAM,WACV,GAAI8W,GAAgBnD,EAAOtF,UAAM3P,GAAWD,UAE5C,OAAIqY,IACFzZ,EAAM0Z,cAAcD,GACbA,GAEA,GAAIpX,OAAMC,OAQrBtC,EAAMwJ,eAAiB,SAAUtL,GAe/B,QAASyb,GAAiBrG,GACxBA,EAAO6B,SAAS3F,QAAQ,SAAUhR,GAChCA,EAAEwR,SAAS4J,YAAc1b,EACzByb,EAAiBnb,KAZrB,GAAIsI,IAAS,EAAIoJ,EAAOmE,mBAAmBrU,EACvC8G,GAAOwN,cAAaxN,EAAOwN,YAAYrU,SAAU,GACrD6G,EAAOwN,YAAcpW,EAChBA,IACLA,EAAE+B,SAAU,EACR/B,EAAEgW,eAAehW,EAAEgW,gBACvBpN,EAAO+S,2BAA4B,EASnCF,EAAiBzb,KAQnB8B,EAAMuP,iBAAmB,WACvB,GAAIzI,IAAS,EAAIoJ,EAAOmE,mBAAmBrU,EACtC8G,GAAO+S,2BAEN/S,EAAOwN,cACTxN,EAAOwN,YAAYrU,SAAU,EAC7B6G,EAAOwN,YAAc,OAe3BtU,EAAM2H,OAAS,WACb,IAAK,GAAImS,GAAQ1Y,UAAUnC,OAAQoZ,EAAO3K,MAAMoM,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF1B,EAAK0B,GAAS3Y,UAAU2Y,EAK1B,SADSxD,EAAUvF,UAAM3P,GAAWgX,KAEpCA,EAAK7I,QAAQ,SAAUnQ,GACrBsR,QAAQqJ,OAAOha,EAAMmY,SAAS9Y,GAAM,2FAChCA,EAAIqW,UACNrW,EAAIsI,OAAOqJ,MAAM3R,EAAKmO,EAAmBnO,EAAIwX,cAE/C3B,EAAcvN,OAAOtI,KAGvBW,EAAMmI,iBACC,IAKTnI,EAAMia,iBAAmB,SAAU3G,GACjCtT,EAAMqZ,eAAiB/F,EACR,OAAXA,EACF8F,EAAavY,SAASoQ,IAAMiI,GAE5B7C,EAAqBpF,IAAM+H,EAC3BhZ,EAAM4Y,aACN5Y,EAAM2Y,cACN3Y,EAAM8G,OAAS9G,IAWnBA,EAAMka,YAAc,SAAU7G,GAC5B,SAAKA,EAAMqC,UAAYrC,EAAMvM,SAAW9G,KACxCqT,EAAM4G,iBAAiBja,GACvBkV,EAAcvN,OAAO0L,GAErBH,EAAWG,GACXrT,EAAMmI,gBACCnI,IAOTA,EAAMuZ,OAAS,WACb,GAAIvZ,EAAM8G,SAAW9G,EAAO,OAAO,CAInC,IAAIoU,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAC9CA,GAAM8G,OAAOoT,YAAYla,EAGzB,IAAIma,GAAM/F,EAAUd,QAAUtT,EAAMsT,MACpC,IAAK6G,EAAL,CACAA,EAAIxX,IAAI3C,EACR,IAAIoa,GAAIhG,EAAUiG,OAAO9W,OAEzBvD,GAAMyT,aAAa2G,GACnBA,EAAEE,YAAY,GAAIjY,OAAM4I,QACxB,IAAI7M,GAAI,GAAIiE,OAAM4I,QAAQvJ,EAAO4P,aAAc,EAAG,GAAGmC,aAAa2G,EAGlE,IAFApa,EAAMK,SAASsC,IAAIvE,GAEfgW,EAAUmG,WAAY,CAmBtBzG,EAJY9T,EACIoU,EAAUd,OACVc,EAAUL,WAQ9B,MAHA/T,GAAMgQ,SAAS6B,eAAiBuC,EAAUpE,SAAS6B,eACnD7R,EAAMqS,kBAAkB,IACxBrS,EAAMgP,OACChP,IA0BTA,EAAMwa,iBAAmBxa,EAAMuZ,OAE/BvZ,EAAMsZ,SAAW,WACf,IAAKtZ,EAAMqZ,eAAgB,OAAO,CAElCrZ,GAAMqZ,eAAeoB,UAAUza,EAC/B,IAAIoU,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAAMqZ,eACpD,IAAIjF,EAAUmG,WAAY,CAGxB,GAAIG,GAAQtG,EAAUpE,SAAS2K,aAC3BjL,EAAQgL,EAAMhK,QAAQ1Q,EACtB0P,IAAS,GAAG0E,EAAUpE,SAAS2K,aAAa/F,OAAOlF,EAAO,GAIhE,MADA1P,GAAMia,iBAAiB,OAChB,GAGTja,EAAM0Z,cAAgB,WACpB,IAAK,GAAIkB,GAAQxZ,UAAUnC,OAAQoZ,EAAO3K,MAAMkN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFxC,EAAKwC,GAASzZ,UAAUyZ,EAG1BxC,GAAK7I,QAAQ,SAAUnQ,GACjBA,EAAIqW,SACN1V,EAAMya,UAAUpb,IAEhB6V,EAAcvS,IAAItD,GAClBA,EAAIyH,OAAS9G,GAGXX,EAAI8R,aACR9R,EAAI8R,WAAa,SAAUC,GACzB/R,EAAI2Q,SAASoB,IAAMA,CAEnB,IAAInB,IAAS,EAAI9K,EAAWkM,eAAe/P,EAAa8P,EAAK1P,EAAO4P,aAAcjS,EAAIuI,QAASlG,EAAOnB,aACtGlB,GAAI2Q,SAASC,OAASA,EAGlB5Q,EAAIsB,YAENtB,EAAIsB,YAAY0D,OAAOC,GAAG,OAAQ,WAM5BjF,EAAIY,UAAS,EAAIiQ,EAAOC,eAAe9Q,EAAK4Q,EAAQ5Q,EAAIsB,YAAYC,cAG1E+P,QAAQmK,MAAM,4BAA+Bzb,EAAIkD,QAAU,oDAI/DlD,EAAIkS,WAAa,WACf,MAAOlS,GAAI2Q,SAASoB,QAIxBpR,EAAMmI,iBAGRnI,EAAMya,UAAY,WAChB,IAAK,GAAIM,GAAQ3Z,UAAUnC,OAAQoZ,EAAO3K,MAAMqN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF3C,EAAK2C,GAAS5Z,UAAU4Z,EAG1B3C,GAAK7I,QAAQ,SAAUnQ,GAErB6V,EAAcvS,IAAItD,GAClBA,EAAIyH,OAAS9G,EACbX,EAAIgb,OAAOY,WACX5b,EAAIuE,MAAM4D,IAAI,EAAG,EAAG,GACpBnI,EAAIgB,SAASmH,IAAI,EAAG,EAAG,GACvBnI,EAAIkW,SAAS/N,IAAI,EAAG,EAAG,GAEvBnI,EAAIqZ,cACJrZ,EAAIyX,UAGN9W,EAAMmI,iBAGRnI,EAAMkb,cAAgB,YAChB,EAAIhL,EAAOmE,mBAAmBrU,KAAWA,GAAU4R,EAAe+C,SAAS3U,IAE7E2Q,QAAQmK,MAAM,iDAEhBlJ,EAAegD,OAAOhD,EAAelB,QAAQ1Q,GAAQ,GACrD4R,EAAehD,KAAK5O,GAMhBA,EAAMgQ,SAAS6B,gBAAgBH,IA8MrC,IAAI/Q,IAAc,EAAIyD,EAAc7E,SAASkD,EAC7C9B,GAAY0D,OAAOC,GAAG,YAAa,SAAUxF,GACvCoH,EAAMkP,UAAWpV,EAAMgP,OAAYhP,EAAM8W,QAC7ChY,EAAE0B,QAAS,IAGbR,EAAMgP,KAAO,WACN9I,EAAMkP,YACPpV,EAAM8G,SAAW9G,GAASA,EAAM8G,OAAOqU,WACzCnb,EAAM8G,OAAO+P,YAAY9E,OAAO,SAAUvT,GACxC,MAAOA,GAAEkX,UAAYlX,IAAMwB,IAC1BwP,QAAQ,SAAUhR,GACnB,MAAOA,GAAEsY,UAGb5Q,EAAMkP,WAAY,EAClBpC,EAAQkC,GACRlV,EAAMmI,kBAGRnI,EAAM8W,MAAQ,WACR5Q,EAAMkP,YACVlP,EAAMkP,WAAY,EAClBlC,EAAWgC,GACXlV,EAAMmI,kBAGRnI,EAAM8G,OAAS9G,CAEf,IAAIwE,IAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAO0T,IACrDiF,GAAqBC,EAAQ1X,QAAS3D,MAAOA,EAAOyC,MAAOA,GAC/DzC,GAAM0E,cAAgB,SAAUC,GAM9BhE,EAAYiE,OAAOD,GACnBH,GAAgBI,OAAOD,GACvByW,GAAmBxW,OAAOD,GAE1BjE,KAKFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,EAGT,IAAIsb,KAAc,CAMlBtb,GAAMgQ,SAAS2K,gBAEfhb,OAAO4b,iBAAiBvb,GACtBuE,SACEgD,IAAK,WACH,GAAIiU,GAKAC,GAAQhZ,EAAO0T,EAEnB,OADInW,GAAMsU,cAAamH,GAAQD,EAAQC,GAAMvD,OAAOlH,MAAMwK,EAAOhO,EAAmBxN,EAAMsU,YAAY/P,WAC/FkX,IAGXlB,YACEhT,IAAK,WACH,MAAO+T,KAET9T,IAAK,SAAavC,GAEhB,KADAqW,GAAcrW,GACI,CAChB,GAAI8O,GAAY/T,EAAMsT,OAClBU,EAAYhU,EAAMgQ,SAAS+D,WAE3B,EAAI7D,EAAOmE,mBAAmBrU,KAAWA,GAC3C2Q,QAAQ2B,IAAI,wCAGdtS,EAAMgQ,SAAS2K,aAAanL,QAAQ,SAAU6D,GAG5CS,EAAWT,EAAOU,EAAWC,KAE/BhU,EAAMgQ,SAAS2K,oBAkBvB,KAAK,GAAIe,MAAKlF,IAZF,SAAekF,GACzB1b,EAAM0b,GAAK,WACT,GAAIC,GAAanF,EAAmBkF,GAAG1K,MAAMwF,EAAoBpV,UACjE,OAAIua,IACF3b,EAAM0Z,cAAciC,GACbA,GAEA,GAAItZ,OAAMC,QAMfoZ,GAGR,OAAO1b,GAz8BTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUwT,CAElB,IAAI5N,GAAa1G,EAAQ,eAErB2G,EAAe3G,EAAQ,iBAEvB2F,EA8BJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IA9B5C+F,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC7C,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/BoW,EAAWnd,EAAQ,aAEnB4c,EAAU7b,EAAwBoc,GAElC1L,EAASzR,EAAQ,WA+BjBmT,KAEA2F,EAAmB,GAAIlV,OAAMwZ,KAC7B/I,EAAgB,GAAIzQ,OAAMwZ,KAC1B/D,EAAc,GAAIzV,OAAM4I,UAs4BzBvF,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGiW,YAAY,GAAGhW,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKuK,GAAG,SAAStd,EAAQU,EAAOJ,GAC3K,YA0BA,SAASqK,KACP,GAAIA,GAAQ,GAAI4S,MAEhB,OADA5S,GAAM6S,IAAM;u2hDACL7S;EAGT,QAAS8S,KACP,MAAO;;CA/BTvc,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQqK,MAAQA,EAChBrK,EAAQmd,IAAMA,OA8BRC,GAAG,SAAS1d,EAAQU,EAAOJ,GACjC,YAkCA,SAAS4E,KAgBP,QAASyY,KACP,GAAIC,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACvEkb,EAAQD,EAAMC,MAEdxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAAwBA,EAAOyV,cAI/BD,EAAME,MACR,GAAIF,EAAMG,SAAWH,EAAMI,UAAYJ,EAAMK,QAAQC,IAAIC,eAAeP,EAAMQ,WAAYR,EAAMS,oBAC9F,GAAIT,EAAM3b,YAAYqc,QAAUrc,EAY9B,MAXA2b,GAAMS,kBAAkBE,IAAIX,EAAMY,aAElCZ,EAAMI,SAASpJ,OAAOE,oBACtB8I,EAAMI,SAASpJ,OAAO6J,aAAab,EAAMS,mBAKzCjW,EAAOzG,SAAS0K,KAAKuR,EAAMS,uBAE3BjW,GAAOsL,mBAGJ,IAAIkK,EAAMc,cAAcne,OAAS,EAAG,CACzC,GAAIoe,GAAYf,EAAMc,cAAc,GAAGld,MACnCmd,KAAc5a,IAChB4a,EAAU7J,oBAEV8J,EAAUC,sBAAsBF,EAAU3J,aAE1C4I,EAAMQ,WAAWU,8BAA8BlB,EAAMmB,YAAYC,kBAAkBpB,EAAMQ,WAAWa,QAASL,KAOrH,QAASvd,GAAcjB,GACrB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAIsB,IAAtBA,EAAOyT,WAAX,CAIA,GAAI+B,EAAME,OACR,GAAIF,EAAMc,cAAcne,OAAS,GAC3Bqd,EAAMK,QAAQC,IAAIC,eAAeP,EAAMQ,WAAYR,EAAMS,mBAAoB,CAC/E,GAAIM,GAAYf,EAAMc,cAAc,GAAGld,MACvC,IAAImd,IAAc5a,EAChB,MAKF,IAFA6Z,EAAMI,SAAW5V,EAEbA,EAAOyV,aAAc,MAEzBD,GAAMI,SAASlJ,oBACf8J,EAAUC,sBAAsBjB,EAAMI,SAAShJ,aAE/C4I,EAAMY,YAAYnS,KAAKuR,EAAMS,mBAAmBE,IAAIK,QAInD,CACL,GAAIxW,EAAOyV,aAAc,MAEzBsB,GAAWhK,WAAW+J,EAAYlK,aAElC5M,EAAOuT,OAAOyD,YAAYD,GAC1B/W,EAAOuT,OAAO0D,UAAUjX,EAAOzG,SAAUyG,EAAOkX,WAAYlX,EAAOlD,OAEnEkD,EAAOiN,UAAYjN,EAAOwM,OAE1BsK,EAAYjb,IAAImE,GAGlBhI,EAAE0B,QAAS,EAEXsG,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,UAAWiT,IAG/B,QAAS7b,GAAgB3B,GACvB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAIsB,IAAtBA,EAAOyT,WAAX,CAIA,GAAI+B,EAAME,MACRF,EAAMI,aAAWrb,OACZ,CAEL,OAAyBA,KAArByF,EAAOiN,UACT,MAGFjN,GAAOuT,OAAOyD,YAAYF,EAAYlK,aACtC5M,EAAOuT,OAAO0D,UAAUjX,EAAOzG,SAAUyG,EAAOkX,WAAYlX,EAAOlD,OACnEkD,EAAOiN,UAAUpR,IAAImE,GACrBA,EAAOiN,cAAY1S,GAGrByF,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,eAAgBvC,IAzIpC,GAAI3F,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEpB,EAAQmB,EAAKnB,MACbyC,EAAQtB,EAAKsB,MAEb9B,GAAc,EAAIyD,EAAc7E,SAASkD,EAE7C9B,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,OAAQ8X,GAC9Bzb,EAAY0D,OAAOC,GAAG,aAAc7D,EAEpC,IAAIod,GAAa,GAAIxb,OAAMuR,QACvB0J,EAAY,GAAIjb,OAAM4I,OAiI1B,OAAOtK,GA7KThB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQ4E,OAASA,CAEjB,IAAIyB,GAAe3G,EAAQ,iBAEvB2F,EAIJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAJ5C+F,GAEvC8K,EAASzR,EAAQ,aAuKlBmH,gBAAgB,GAAG4L,UAAU,KAAKyM,GAAG,SAASxf,EAAQU,EAAOJ,GAChE,YAEAY,QAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,GAEKlG,GAAQ0Z,QAAU,WAC9B,GAAIrP,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,4jvBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,CAKtB,IAAItJ,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI1S,GAAW,GAAIvJ,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAM2H,EAAMvH,OAAS,IAAM,EAAG,EAGnF,OADW,IAAIQ,OAAMiB,KAAKsI,EAAU/K,OAKxB9B,EAAQgS,UAAY,WAClC,GAAI3H,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM;+tnBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GACIM,GAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IADxC,GACkD2H,EAAMvH,OAAS,IADjE,GAC2E,EAAG,EAEtF,OADA+c,GAAIzb,WAAW,MAAQ,KAAO,GACvB,GAAId,OAAMiB,KAAKsb,EAAK/d,OAIf9B,EAAQqH,UAAY,WAClC,GAAIgD,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM;ukpBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,OAIpB9B,EAAQka,KAAO,WACxB,GAAI7P,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,w7CAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,OAIlB9B,EAAQoa,OAAS,WAC5B,GAAI/P,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,o8CAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,YAIzBge,IAAI,SAASpgB,EAAQU,EAAOJ,GAClC,YAqCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAgClQ,QAASqf,KAwHP,QAASC,GAAYjgB,IACd,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAC3CC,GAAWA,EAAUrgB,IAG3B,QAASiB,GAAcjB,IAMhB,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAC3Chf,GAAQA,EAAOC,GAAcrB,GAC7BkM,GAAMA,EAAKlM,GAEfsB,EAAcC,SAASC,EAAmB,GAAfC,EAE3BzB,EAAE0B,QAAS,GAKb,QAASye,GAA8BC,GACrC,GAAIpgB,GAAIsB,EAAc+c,aAAa+B,EAMnC,OALApgB,GAAE0E,GAAKtB,EACPpD,EAAEgF,GAAK1B,EACPtD,EAAEgF,GAAK,GACPhF,EAAE0E,EAAIT,KAAKgG,IAAIhG,KAAKiG,IAAIlK,EAAE0E,EAAG,GAAI,GACjC1E,EAAEgF,EAAIf,KAAKgG,IAAIhG,KAAKiG,IAAIlK,EAAEgF,EAAG,GAAI,GAC1BhF,EAGT,QAASsgB,GAAetgB,IACjB,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAG3CG,GAAUA,EAASvgB,IAGzB,QAAS2B,KACPL,EAAcC,SAASC,EAAmB,GAAfC,EAG7B,QAASG,KACFG,EAASC,QACVH,EAAYC,WACVwK,GAAoBvK,EAASC,MAAMC,OAAO,UAE1CqK,GAAoBvK,EAASC,MAAMC,OAAO,WAnLlD,GAAII,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/D+d,EAAYne,EAAK6J,KACjBA,MAAqB3J,KAAdie,MAA0Bje,GAAYie,EAC7CC,EAAgBpe,EAAKke,SACrBA,MAA6Bhe,KAAlBke,MAA8Ble,GAAYke,EACrDC,EAAare,EAAKiI,MAClBA,MAAuB/H,KAAfme,EAA2B,yBAA2BA,EAC9DC,EAAYte,EAAKue,KACjBA,MAAqBre,KAAdoe,GAAkCA,EACzCje,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDK,EAASV,EAAKU,OACdE,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EACxD4d,EAAwBxe,EAAKiK,mBAC7BA,MAA+C/J,KAA1Bse,GAA6CA,EAClEC,EAAmBze,EAAKwJ,YACxBA,MAAmCtJ,KAArBue,EAAiCle,EAAOnB,aAAeqf,CAmBpE/d,KAAQA,EAASH,EAAOC,aAAe+d,EAAO,IAAO,KAE1D,IAAIxd,GAAeT,GAASie,EAAO,IAAO,KAAQhe,EAAOS,aACrDC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAeoK,EAEf3K,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,cAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,KAErDH,EAAM4H,QAAU/F,CAEhB,IAAIY,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACII,GAAO,GAAIR,OAAMkc,cAAcrc,EAAcE,EAAe,EAAG,EACpD,IAAIC,OAAMY,oBAAoB,EAE7CJ,GAAKM,UAAyB,GAAfjB,EAAoB,EAAG3B,EAGtC,IAAI6C,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAIC,EACtBmf,GACHtf,EAAcC,SAASmD,EAAqC,IAAjC9B,EAAOsC,wBAClC5D,EAAcC,SAASyD,EAAI,KAFlB1D,EAAcC,SAASmD,EAAY,GAAR/B,CAKtC,IAAIZ,EACAuI,GAAMyW,WACRhf,EAAWuI,GAEXvI,EAAW,GAAIwB,OAAMgB,kBACrBxC,EAASiY,aAAc,EAxDzB,SAA8B1P,EAAO0W,GACnC,GAAqB,gBAAV1W,IAET,GAAI/G,OAAM0d,eAAgBC,KAAK5W,EAAO,SAAU8U,GAC9CA,EAAQ+B,MAAQ/B,EAAQgC,MAAQ7d,MAAM8d,oBACtCL,EAAe7O,IAAMiN,EACrB4B,EAAe3V,aAAc,QAE1B,IAAIf,EAAMgX,UACfN,EAAe7O,IAAM7H,MAChB,CAAA,IAAIA,EAAMiX,oBAEV,KAAM,mCAAqCjX,CADhD0W,GAAe7O,IAAM7H,EAAM8U,QAE7B4B,EAAe3V,aAAc,GA4CRf,EAAOvI,GAE9B,IAAI4C,GAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAIlB,IAAIM,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,IAC1B4b,IAAM3b,EAAgB9D,SAAU,EAEpC,IAAIgE,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAE7CO,GAAY0D,OAAOC,GAAG,WAAYya,GAClCpe,EAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,WAAY8a,GAClCze,EAAY0D,OAAOC,GAAG,aAAc7D,GAEpCC,GAEA,IAAIye,OAAY9d,EAIhBrB,GAAMsgB,QAAU,SAAU/hB,GAExB,MADA4gB,GAAY5gB,EACLyB,GAETA,EAAMugB,WAAa,SAAUhiB,GAE3B,MADA8gB,GAAW9gB,EACJyB,GAkETA,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGFA,EA7QTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUuf,CAElB,IAAI5Z,GAAuBzG,EAAQ,qCAI/B0G,GAFsB3F,EAAwB0F,GAEjCzG,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aA+OlBgH,oCAAoC,GAAGC,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKgP,IAAI,SAAS/hB,EAAQU,EAAOJ,GACtL,YA+BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAIlQ,QAASghB,KAYL,QAASC,GAAqBtX,EAAO0W,GACjC,GAAqB,gBAAV1W,IAEP,GAAI/G,OAAM0d,eAAgBC,KAAK5W,EAAO,SAAU8U,GAC5CA,EAAQ+B,MAAQ/B,EAAQgC,MAAQ7d,MAAM8d,oBACtCL,EAAe7O,IAAMiN,EACrB4B,EAAe3V,aAAc,QAE9B,IAAIf,EAAMgX,UACbN,EAAe7O,IAAM7H,MAClB,CAAA,IAAIA,EAAMiX,oBAEV,KAAM,mCAAqCjX,CAD9C0W,GAAe7O,IAAM7H,EAAM8U,QAE/B4B,EAAe3V,aAAc,EA4CjC,QAASwW,KACDle,GAAOzC,EAAM2H,OAAOlF,GACxBA,EAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,GAC1ChC,EAAM2C,IAAIF,EAEV,IAAIwB,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAC1BS,EAAME,IAAIsB,GAEVO,EAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,IAErDme,EAAQpR,QAAQ,SAAU5G,GACtB,MAAO5I,GAAM2H,OAAOiB,KAExBgY,KACA5gB,EAAM6W,YAAc+J,EAGxB,QAASC,KACLF,GAEA,IAAIG,GAA+B,IAAf5e,EAChB6e,EAAgC,IAAhB3e,EAChBS,EAAO,GAAIR,OAAMkc,cAAcuC,EAAeC,EAAe,EAAG,EACpEle,GAAKM,UAAU2d,EAAgB,GAAIC,EAAgB,EAAGxgB,EAKtDygB,GAAQxR,QAAQ,SAAUnQ,EAAKf,GA+D3B,QAASyB,GAAcjB,GACnB,IAAyB,IAArBmiB,EAAShhB,QAAb,CAIAnB,EAAE0B,QAAS,CAEX,KACInB,EAAI2L,OACN,MAAO9M,GAEL,YADAmB,EAAIyb,MAAQ5c,GAAK,uBAGrBgjB,EAAc7hB,EACd4hB,EAAS5gB,SAASC,EAAmB,GAAfC,GAG1B,QAASE,KACLwgB,EAAS5gB,SAASC,EAAIC,EAClBlB,EAAI8hB,SAAS9hB,EAAI8hB,UAjFzB,GAAK9hB,EAAI+J,OAAU/J,EAAI+hB,KAAvB,CAGA,GAAIH,GAAW,GAAI5e,OAAMC,KACzB2e,GAAS1e,QAAU,yBACnBvC,EAAM2C,IAAIse,GACVL,EAAQhS,KAAKqS,EAEb,IAAIpV,GAAMvN,EAAI+iB,EACVC,EAAMve,KAAKC,MAAM1E,EAAI+iB,EAEzBJ,GAAS5gB,SAASmD,EAAI,EAAI9B,EAAOS,aAAeD,EAAe2J,EAC/DoV,EAAS5gB,SAASyD,EAAIjC,EAAS,EAAIO,EAAgBkf,EACnDL,EAAS5gB,SAASC,EAAIC,CAItB,IAAI6C,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,GAE7CvC,EAAW,GAAIwB,OAAMgB,iBAGzB,IAFAxC,EAASiY,aAAc,EACnBzZ,EAAI+J,OAAOsX,EAAqBrhB,EAAI+J,MAAOvI,GAC3CxB,EAAI+hB,KAAM,CACV,GAAIA,GAAO9f,EAAYqC,OAAOtE,EAAI+hB,MAC9BG,EAAU,EAAI7f,EAAO8f,mBACrBhZ,EAAI9G,EAAO+f,WAAaL,EAAKvd,OAAOhC,OACpC6f,EAAIN,EAAKO,cACTD,GAAIxf,EAAeqf,IACnBH,EAAKQ,gBAAgB1f,EAAeqf,EAASnf,EAAgBmf,GAC7D/Y,EAAI9G,EAAO+f,WAAaL,EAAKvd,OAAOhC,OACpC6f,EAAIN,EAAKO,gBAEbV,EAASte,IAAIye,GACbH,EAASG,KAAOA,EAChBA,EAAK/gB,SAASmD,EAAInE,EAAIwiB,OAAS,IAAO3f,EAAewf,GACrDN,EAAK/gB,SAASyD,EAAIzE,EAAIyiB,QAAU,GAAM1f,EAAgBoG,EACtD4Y,EAAK/gB,SAASC,EAAmB,IAAfC,EAEtB,GAAIkD,GAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAMhD,IALAT,EAAcuC,IAAIc,GAKdpE,EAAI+R,IAAK,CACT,GAAI2Q,IAAU,EAAI5c,EAAWkM,eAAe/P,EAAajC,EAAI+R,IAAKlP,EAAcE,EAAe7B,EAG/F0gB,GAASc,QAAUA,EAIvBd,EAASte,IAAIvC,GACbqC,EAAME,IAAIse,EAEV,IAAItgB,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,aAAc7D,GAwBpCpB,EAAI2iB,SAAW3iB,EAAI+hB,KAAO,KAAQ,SAClC/hB,EAAI4iB,WAAa5iB,EAAI+hB,KAAO,IAAQ,SACpCH,EAASvgB,WAAa,WACdwhB,GAAwBhB,IAAgB7hB,EACxCwB,EAASC,MAAMC,OAAOohB,GACnBthB,EAASC,MAAMC,OAAOJ,EAAYC,WAAavB,EAAI2iB,SAAW3iB,EAAI4iB,YACrEhB,EAASc,UAAS,EAAI7R,EAAOC,eAAe8Q,EAAUA,EAASc,QAASphB,EAAYC,YACpFvB,EAAIyb,OAAOja,EAASC,MAAMC,OAAO,WAGzCkgB,EAASvgB,aAETugB,EAAStgB,YAAcA,EACvBsgB,EAAS1c,QAAUnE,KAIvBJ,EAAMuE,QAAUqc,EAAQ3P,IAAI,SAAUrI,GAClC,MAAOA,GAAErE,UAEbvE,EAAMuE,QAAQqK,KAAKnM,GAGvB,QAAS/B,KACLkgB,EAAQpR,QAAQ,SAAU5G,GACtB,MAAOA,GAAElI,eA/MjB,GAAIS,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnB0f,EAAU7f,EAAK6f,QACfxf,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxD4gB,EAAYjhB,EAAKihB,UACjBrgB,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EACxDsgB,EAAelhB,EAAKkgB,QACpBA,MAA2BhgB,KAAjBghB,EAA6B,EAAIA,EAkB3CC,EAA+B,EAAtB5gB,EAAOS,aAChBD,EAAmC,EAAImf,GAAvB5f,EAAQ6gB,GAExBlgB,EAAgBggB,EAAY,EAAIA,EAAYlgB,EAC5C3B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,kBAChBvC,EAAMwC,SAAW,WACb,MAAO,IAAMxC,EAAMuC,QAAU,KAAOye,EAAU,IAGlD,IAAIuB,GAAOxf,KAAKyf,KAAKxB,EAAQ/hB,OAASoiB,GAClCxf,EAASH,EAAOS,aAAeC,EAAgBmgB,CACnDviB,GAAM4H,QAAU/F,EAEhB7B,EAAMyiB,aAAe,SAAUja,GAK3B,MAJA4Z,GAAYhgB,EAAgBoG,EAC5B3G,EAASH,EAAOS,aAAeC,EAAgBmgB,EAC/CviB,EAAM4H,QAAU/F,EAChBgf,IACO7gB,EAGX,IAAIkiB,IAAuB,EACvBhB,EAAc,KACdiB,MAAiB,EACrBniB,GAAMkiB,qBAAuB,WACzB,GAAIrW,GAAMzK,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,OAI9E,OAFA8gB,IAA+B,IAARrW,EACvBsW,EAAiBtW,EACV7L,EAGX,IAAIyC,OAAQ,GACR+B,MAAkB,GAClBoc,IAiKJ,OA/JAC,KAiJA7gB,EAAM0E,cAAgB,SAAUC,GAC5Bic,EAAQpR,QAAQ,SAAU5G,GACtBA,EAAEjI,YAAYiE,OAAOD,KAGzBH,EAAgBI,OAAOD,GACvBjE,KAGJV,EAAM6E,KAAO,SAAUC,GAEnB,MADAf,iBAAgBgB,YAAYD,GACrB9E,GAGJA,EAnQXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAUkhB,CAElB,IAAItb,GAAa1G,EAAQ,eAErB2G,EAAe3G,EAAQ,iBAEvB2F,EAsBJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAtB5C+F,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aAmQlBiH,WAAW;aAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKkR,IAAI,SAASjkB,EAAQU,EAAOJ,GAC/I,YA0DA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASmO,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GAwwB1L,QAASkV,GAASxkB,GAChB,OAAQykB,MAAMC,WAAW1kB,KAAO2kB,SAAS3kB,GAG3C,QAAS4kB,GAAU5kB,GACjB,MAAoB,iBAANA,GAGhB,QAAS6kB,GAAWC,GAClB,GAAIC,KACJ,OAAOD,IAA8D,sBAA3CC,EAAQ1gB,SAASxD,KAAKikB,GAKlD,QAASE,GAASC,GAChB,MAAuE,gBAA/C,KAATA,EAAuB,YAAcC,EAAQD,MAAwB1V,MAAMC,QAAQyV,IAAkB,OAATA,EAG7G,QAASzV,GAAQtP,GACf,MAAOqP,OAAMC,QAAQtP,GAGvB,QAASilB,GAASjlB,GAChB,MAAoB,gBAANA,GAGhB,QAASklB,GAAQllB,GACf,MAA8D,gBAA5C,KAANA,EAAoB,YAAcglB,EAAQhlB,OAC/CA,EAAEklB,QAOX,QAASC,GAAmBlH,EAAOX,EAAYc,EAASgH,GAetD,QAASC,GAAQtlB,EAAGO,GACdglB,GAAWA,EAAQC,iBAAmBD,EAAQC,gBAAgB3kB,OAAS,GACzE0kB,EAAQC,gBAAgB,GAAGC,MAAMzlB,EAAGO,GAIxC,QAASmlB,KACPC,EAAiB,SAAUvgB,EAAGpF,EAAGO,GAC/B,MAAO+kB,GAAQ,EAAI/kB,EAAG,KACrB,GAAI,IAGT,QAASqlB,KACPD,EAAiB,SAAUvgB,EAAGpF,EAAGO,GAC/B,MAAO+kB,GAAQ,EAAG,GAAO,EAAI/kB,KAC5B,IAAK,GA7BVgd,EAAWsI,iBAAiB,cAAe,WACzC,MAAOxH,IAAQ,KAEjBd,EAAWsI,iBAAiB,YAAa,WACvC,MAAOxH,IAAQ,KAEjBd,EAAWsI,iBAAiB,YAAa,WACvC,MAAOR,IAAQ,KAEjB9H,EAAWsI,iBAAiB,UAAW,WACrC,MAAOR,IAAQ,IAGjB,IAAIE,GAAUhI,EAAWuI,YAmBzB5H,GAAMjY,OAAOC,GAAG,mBAAoB,SAAUgY,GAC5CoH,EAAQ,GAAK,MAGfpH,EAAMjY,OAAOC,GAAG,UAAW,WACzBwf,MAGFxH,EAAMjY,OAAOC,GAAG,eAAgB,WAC9B0f,MAGF1H,EAAMjY,OAAOC,GAAG,SAAU,WACxBwf,MAGFxH,EAAMjY,OAAOC,GAAG,cAAe,WAC7B0f,MAIJ,QAASD,GAAiBI,EAAIC,EAAOC,GACnC,GAAI7gB,GAAI,EACJ8gB,EAAKC,YAAY,WACnBJ,EAAG3gB,EAAG6gB,EAAO7gB,EAAI6gB,KACjB7gB,GACS6gB,GACPG,cAAcF,IAEfF,EACH,OAAOE,GAr6BT,GAAIjB,GAA4B,kBAAXoB,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUrlB,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXolB,SAAyBplB,EAAIslB,cAAgBF,QAAUplB,IAAQolB,OAAO7kB,UAAY,eAAkBP,IAElQiM,EAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCsZ,EAAUnmB,EAAQ,YAElBomB,EAAWzlB,EAAuBwlB,GAElCE,EAAYrmB,EAAQ,cAEpBsmB,EAAa3lB,EAAuB0lB,GAEpCE,EAAUvmB,EAAQ,YAElBwmB,EAAW7lB,EAAuB4lB,GAElCE,EAAUzmB,EAAQ,YAElB0mB,EAAW/lB,EAAuB8lB,GAElCE,EAAY3mB,EAAQ,cAEpB4mB,EAAajmB,EAAuBgmB,GAEpC7Z,EAAe9M,EAAQ,iBAEvB0M,EAAgB/L,EAAuBmM,GAEvC+Z,EAAmB7mB,EAAQ,qBAE3B8mB,EAAoBnmB,EAAuBkmB,GAE3CE,EAAY/mB,EAAQ,cAEpBgnB,EAAarmB,EAAuBomB,GAEpCE,EAAWjnB,EAAQ,aAEnBknB,EAAYvmB,EAAuBsmB,GAEnCE,EAAennB,EAAQ,iBAEvBonB,EAAgBzmB,EAAuBwmB,GAEvCE,EAAWrnB,EAAQ,aAEnBsnB,EAMJ,SAAiC1mB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,GAN5NqmB,GAElC5V,EAASzR,EAAQ,WAEjB2G,EAAe3G,EAAQ,iBA4BvBiL,EAAQ,WAsBV,QAASsc,KAEP,MAAOC,IAAYlU,OAAO7B,EAAO8O,qBAEnC,QAASkH,KAWP,MALUF,KAAwB/U,IAAI,SAAU5S,GAC9C,MAAOA,GAAEkG,QAAQwN,OAAO,SAAUvJ,GAChC,MAAOA,GAAEvI,YAGFkmB,OAAO,SAAUxnB,EAAGiK,GAC7B,MAAOjK,GAAEuZ,OAAOtP,QAUpB,QAASwd,GAAYC,EAAQC,GAiB3B,MAhBAC,KAAe,EACfC,GAAgBF,EAChBG,GAAWhJ,YAAc4I,EACrBA,EAAO7T,qBACJkU,KACHA,GAAsB,SAA6BnoB,GACjD,MAAOA,GAAE8T,qBAEXoU,GAAWpiB,OAAOC,GAAG,eAAgBoiB,KAGnCA,KACFD,GAAWpiB,OAAOsiB,eAAe,eAAgBD,IACjDA,OAAsBrlB,IAGnBolB,GAAWG,MAGpB,QAASC,KACPN,IAAe,EACXG,KACFD,GAAWpiB,OAAOsiB,eAAe,eAAgBD,IACjDA,OAAsBrlB,IAQ1B,QAASylB,KACP,GAAIne,GAAI,GAAItG,OAAM0kB,cAIlB,OAHApe,GAAEwD,aAAa,WAAY,GAAI9J,OAAM+J,gBAAgB,GAAIH,eAAc,EAAG,EAAG,EAAG,EAAG,EAAG,MAG/E,GAAI5J,OAAM2kB,KAAKre,EAAGse,IAO3B,QAASC,KACP,MAAO,IAAI7kB,OAAMiB,KAAK,GAAIjB,OAAM8kB,eAAe,KAAO,EAAG,GAAIC,IAU/D,QAASC,KACP,GAAIzJ,GAAcxc,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAAIiB,OAAMC,MAE5Fga,GACFK,QAAS,GAAIta,OAAMilB,UAAU,GAAIjlB,OAAM4I,QAAW,GAAI5I,OAAM4I,SAC5D2b,MAAOE,IACPS,OAAQL,IACRhnB,OAAQ0d,EACRnB,SAAS,EACTgH,SAAS,EACTpf,OAAQ,GAAI6G,GAAS3L,QACrBoB,aACE6mB,SAAMnmB,GACN2b,UAAO3b,GACPomB,UAAOpmB,IAMX,OAFAib,GAAMsK,MAAMjkB,IAAI2Z,EAAMiL,QAEfjL,EAiET,QAASoL,GAAexnB,GACtB,GAAIoc,GAAQ+K,EAAYnnB,EAyBxB,OAvBAoc,GAAMsK,MAAMnK,QAAU,SAAUkL,GAC9B,GAAIlM,GAAOa,EAAMc,aAEbuK,IAAQlM,GAAQA,EAAKxc,OAAS,GAChCqd,EAAMG,SAAU,EAChBH,EAAMsL,SAAU,GAEhBtL,EAAMG,SAAU,GAIpBH,EAAMsK,MAAMnD,QAAU,SAAUkE,GAC9BrL,EAAMmH,QAAUkE,GAGlBrL,EAAMsK,MAAMW,OAASjL,EAAMiL,OAEvBllB,MAAMwlB,gBAAkB3nB,YAAkBmC,OAAMwlB,gBAClDrE,EAAmBlH,EAAOpc,EAAQoc,EAAMsK,MAAMnK,QAASH,EAAMsK,MAAMnD,SAGrE9e,GAAaiK,KAAK0N,GAEXA,EAAMsK,MAOf,QAASkB,GAAU5nB,EAAQC,GACzB,GAAI6I,GAAM5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC1E2H,EAAM3H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAE1E2mB,GAAS,EAAIlD,EAAStlB,UACxB+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAAQ8I,IAAKA,EAAKD,IAAKA,EACrF/B,aAAc9G,EAAOC,IAKvB,OAFA8lB,IAAYrX,KAAKmZ,GAEVA,EAGT,QAASC,GAAY9nB,EAAQC,GAC3B,GAAI8nB,IAAW,EAAIlD,EAAWxlB,UAC5B+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAC9D8G,aAAc9G,EAAOC,IAKvB,OAFA8lB,IAAYrX,KAAKqZ,GAEVA,EAGT,QAASC,GAAUhoB,EAAQC,GACzB,GAAIgoB,IAAS,EAAIlD,EAAS1lB,UACxB+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,GAIhE,OADA+lB,IAAYrX,KAAKuZ,GACVA,EAST,QAASC,GAAepd,EAAM5B,EAAOsW,EAAM7d,GACzC,GAAI3B,IAAW3B,EAAGyM,GAOdmd,GAAS,EAAIhd,EAAc5L,UAC7B+B,YAAaA,GAAapB,OAAQA,EAAQC,aAPzB,IAOqDiJ,MAAOA,EAAOsW,KAAMA,EAAM7d,OAAQA,GAG1G,OADAokB,IAAYrX,KAAKuZ,GACVA,EAGT,QAASvd,GAAgByU,EAAUjW,EAAOsW,EAAM7d,GAC9C,GACIsmB,IAAS,EAAIhd,EAAc5L,UAC7B+B,YAAaA,GAAa+d,SAAUA,EAAUlf,aAF7B,GAEyDiJ,MAAOA,EAAOsW,KAAMA,EAAM7d,OAAQA,GAG9G,OADAokB,IAAYrX,KAAKuZ,GACVA,EAOT,QAASE,GAAoBC,GAG3B,IAAK,GAFDjH,GAAUkH,OAAOC,UAAUF,GAAQA,EAAO,EAErClQ,EAAOhX,UAAUnC,OAAQoZ,EAAO3K,MAAM0K,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC9FD,EAAKC,EAAO,GAAKlX,UAAUkX,EAG7B,IAAI0I,GAAU3I,CACTkQ,QAAOC,UAAUF,IAAOtH,EAAQyH,QAAQH,EAC7C,IAAII,IAAO,EAAInD,EAAkBhmB,UAAW+B,YAAaA,GAAa0f,QAASA,EAASK,QAASA,GAEjG,OADA4E,IAAYrX,KAAK8Z,GACVA,EAGT,QAASC,GAAYC,GACdA,IAAaA,EAAc,SAAqBlN,GACnD,MAAO/K,SAAQ2B,IAAI,WAAaoJ,IAElC,IAAImN,IAAK,EAAIpD,EAAWlmB,UAAWqpB,YAAaA,EAAatnB,YAAaA,IAE1E,OADA2kB,IAAYrX,KAAKia,GACVA,EAGT,QAASC,GAAW5oB,EAAQC,GAC1B,GAAIkX,IAAM,EAAIsO,EAAUpmB,UAAW+B,YAAaA,GAAapB,OAAQA,EAAQC,aAAcA,GAE3F,OADA8lB,IAAYrX,KAAKyI,GACVA,EAGT,QAAS0R,GAAe7oB,EAAQC,GAC9B,GAAIkX,IAAM,EAAIwO,EAActmB,UAAW+B,YAAaA,GAAapB,OAAQA,EAAQC,aAAcA,GAE/F,OADA8lB,IAAYrX,KAAKyI,GACVA,EAGT,QAAS2R,GAAY9oB,EAAQC,EAAc6N,GACzC,GAAIib,IAAW,EAAI5D,EAAW9lB,UAC5B+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAAQ8N,QAASA,GAIjF,OADAiY,IAAYrX,KAAKqa,GACVA,EAiBT,QAAStmB,GAAIzC,EAAQC,EAAc+oB,EAAMC,GAEvC,OAAe9nB,KAAXnB,EAEG,MAAIA,GAAOwV,SAAiBxV,MAENmB,KAAzBnB,EAAOC,IACTwQ,QAAQC,KAAK,oBAAqBzQ,EAAc,YAAaD,GACtD,GAAImC,OAAMC,OAGf6gB,EAAS+F,IAASvb,EAAQub,GACrBF,EAAY9oB,EAAQC,EAAc+oB,GAGvCvG,EAASziB,EAAOC,IACX2nB,EAAU5nB,EAAQC,EAAc+oB,EAAMC,GAG3CpG,EAAU7iB,EAAOC,IACZ6nB,EAAY9nB,EAAQC,GAGzB6iB,EAAW9iB,EAAOC,IACb+nB,EAAUhoB,EAAQC,GAGvBmjB,EAASpjB,EAAOC,IACX2oB,EAAW5oB,EAAQC,GAGxBojB,EAAQrjB,EAAOC,IACV4oB,EAAe7oB,EAAQC,OADhC,GAQF,QAASipB,KACP,GAAIpgB,GAAM5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAO9E,OAAO0mB,IAHLuB,OAAQrgB,GAGc,SAAUA,EANxB5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAShF,QAASkoB,KACP,GAAItb,GAAU5M,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEzEmoB,GACFC,OAAQ,GAOV,YAJgBnoB,KAAZ2M,IACFub,EAAMC,OAAS7b,EAAQK,GAAWA,EAAQ,GAAKA,EAAQrO,OAAOwO,KAAKH,GAAS,KAGvEgb,EAAYO,EAAO,SAAUvb,GAGtC,QAASyb,KAOP,MAAOzB,IAHL0B,QAHkBtoB,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,IAAmBA,UAAU,IAMzD,WAG5B,QAASuoB,GAAgBC,GAKvB,MAAO1B,IAHLC,WAAe9mB,KAAPuoB,EAAmBA,EAAK,cAGV,UAW1B,QAASjiB,KACP,IAAK,GAAImS,GAAQ1Y,UAAUnC,OAAQoZ,EAAO3K,MAAMoM,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF1B,EAAK0B,GAAS3Y,UAAU2Y,EAG1B,IAAI8P,MAAY3R,OAAO1K,EAAmB,GAAIsc,KAAIzR,IAClD,SAAK0R,EAAW/Y,UAAM3P,GAAWmM,EAAmBqc,MACpDA,EAAOra,QAAQ,SAAUnQ,GACvB,GAAIf,GAAI2nB,GAAYvV,QAAQrR,EAC5B,MAAIf,GAAK,GAGP,MADAqS,SAAQ2B,IAAI,2GACL,CAHG2T,IAAYrR,OAAOtW,EAAG,MAM7B,GAUT,QAASyrB,KACP,IAAK,GAAInP,GAAQxZ,UAAUnC,OAAQoZ,EAAO3K,MAAMkN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFxC,EAAKwC,GAASzZ,UAAUyZ,EAG1B,KAAK,GAAIvc,GAAI,EAAGA,EAAI+Z,EAAKpZ,OAAQX,IAAK,CACpC,GAAIe,GAAMgZ,EAAK/Z,EACf,KAAkC,IAA9B2nB,GAAYvV,QAAQrR,KAAgBA,EAAIyH,OAAOqR,SAAS9Y,GAG1D,MADAsR,SAAQ2B,IAAI,2BAA6BjT,IAClC,CAET,IAAIA,EAAIqW,WACDqU,EAAW/Y,UAAM3P,GAAWmM,EAAmBnO,EAAIwX,cAAe,OAAO,EAGlF,OAAO,EAOT,QAASmT,KACP/D,GAAYzW,QAAQ,SAAUhR,GAC5BA,EAAEyB,SAAU,EAAUzB,EAAE8U,SAAW9U,EAAE8U,OAAOuD,aAAarY,EAAE8U,OAAO3L,OAAOnJ,KAE3EynB,GAAYrR,OAAO,EAAGqR,GAAYhnB,QAWpC,QAAS0E,GAAOkB,GACd,GAAIiC,IAAS,EAAIqe,EAAS5lB,UACxB+B,YAAaA,GACbuD,KAAMA,EACNyR,OAAQ3T,EACR4T,UAAW5O,EACX6O,oBACEsR,UAAWsB,EACXJ,YAAaM,EACbtB,YAAayB,EACbvB,UAAWyB,EACXvB,eAAgBA,EAChBxd,gBAAiBA,EACjByd,oBAAqBA,EACrBM,YAAaA,EACbG,WAAYA,GAEdrS,kBAAmBwP,GAEnBgE,mBAKF,OAFAhE,IAAYrX,KAAK9H,GAEVA,EAWT,QAASlC,KACP,GAAIiN,GAAiB0U,IAAgBE,GAAWhJ,YAAYjL,oBACxD0X,KAAYC,sBAAsBvlB,EAEtC,IAAIwlB,GAAiBlE,IACjBD,EAAcD,IACdqE,EAAUpE,EAAYlU,OAAO,SAAUvT,GACzC,MAAOA,GAAEsI,SAAWtI,GAEtB6rB,GAAQ7a,QAAQ,SAAUjR,GACxBA,EAAEyR,SAAS6B,iBAAiBA,GAAiB4U,GAAWhJ,YACpDlf,EAAEsb,4BACJtb,EAAE4J,gBACF5J,EAAEsb,2BAA4B,GAE5Btb,EAAEyR,SAASgG,eAAezX,EAAE2V,kBAG9BqS,KAEFE,GAAWrJ,cAAgBkN,GAAkBF,EAAgB3D,KAG/D9hB,GAAa6K,QAAQ,WACnB,GAAIrO,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEtElB,GADMiB,EAAKkW,IACFlW,EAAKjB,QACdyc,EAAUxb,EAAKwb,QACfiK,EAAQzlB,EAAKylB,MACbW,EAASpmB,EAAKomB,OACd5mB,EAAcQ,EAAKR,YAEnB+O,EAAQtO,UAAU,EAEtBmpB,GAA2B5pB,EAAaypB,GACxClqB,EAAOsT,oBAEP8J,GAAU9V,IAAI,EAAG,EAAG,GAAG+V,sBAAsBrd,EAAOwT,aACpD8W,GAAQvP,WAAWwP,gBAAgBvqB,EAAOwT,aAE1CgX,GAAWljB,IAAI,EAAG,GAAI,GAGlBtH,EAAOyqB,qBAAqBD,GAAWE,gBAAgB1qB,EAAOyqB,qBAClED,GAAWjX,aAAa+W,IAASK,YAEjClO,EAAQnV,IAAI8V,GAAWoN,GAGvB,IAAI/rB,GAAIioB,EAAMhb,SAASG,aAAa,YAAYC,KAChDrN,GAAE,GAAK2e,GAAU9Z,EAAE7E,EAAE,GAAK2e,GAAUxZ,EAAEnF,EAAE,GAAK2e,GAAUhd,CAKvD,IAAI8c,GAAgBT,EAAQmO,iBAAiBV,GAAgB,EAC7DW,GAAmB3N,EAAewJ,EAAOW,GAEzC5iB,GAAa+K,GAAO0N,cAAgBA,EAEhCld,EAAO8P,WAAU9P,EAAO8P,SAASgb,iBAAmB5N,IAG1D,IAAI6N,GAAStmB,GAAaumB,OAEtB3E,KACF0E,EAAOrc,KAAK6X,IAGdR,EAAYzW,QAAQ,SAAUhR,GAC5B,MAAOA,GAAEkG,cAAcumB,IAIzB,IAAIE,GAAeF,EAAOlZ,OAAO,SAAUuK,GACzC,MAAOA,GAAM8O,aAcf,OAZ2B,IAAvBD,EAAalsB,SACfksB,EAAa3b,QAAQ,SAAUhH,GAC7B,MAAOA,GAAE4iB,aAAc,IAEzBf,EAAQ7a,QAAQ,SAAUjR,GACxB,MAAOA,GAAEgR,sBAGbkX,GAAWmB,SAAU,EACrBjjB,GAAa6K,QAAQ,SAAUnR,GAC7B,MAAOA,GAAEupB,SAAU,IAEdnB,GAAWrJ,cAKpB,QAASmN,GAA2Bc,EAAcjB,IAC/C,QAAS,OAAQ,SAAS5a,QAAQ,SAAU8b,GAC3C,GAAI3qB,GAAc0qB,EAAaC,EAC3B3qB,IAAeypB,EAAe1Z,QAAQ/P,EAAY4qB,WAAa,IACjEF,EAAaC,OAAmBjqB,GAEhCV,EAAYiE,cAKlB,QAAS4mB,GAAY5E,EAAO1H,GAC1B,GAAIuM,GAAK7E,EAAMhb,SAASG,aAAa,YAAYC,KACjDyf,GAAG,GAAKvM,EAAM1b,EACdioB,EAAG,GAAKvM,EAAMpb,EACd2nB,EAAG,GAAKvM,EAAM5e,EACdmrB,EAAGthB,aAAc,EAEjByc,EAAM3mB,SAAU,EAChB2mB,EAAMhb,SAAS8f,wBACf9E,EAAMhb,SAAS+f,qBAIjB,QAASZ,GAAmB3N,EAAewJ,EAAOW,GAChD,GAAInK,EAAcne,OAAS,EAAG,CAC5B,GAAI2sB,GAAWxO,EAAc,EAC7BoO,GAAY5E,EAAOgF,EAAS1M,OAC5BqI,EAAOlnB,SAAS0K,KAAK6gB,EAAS1M,OAC9BqI,EAAOtnB,SAAU,EACjBsnB,EAAO/T,wBAEPoT,GAAM3mB,SAAU,EAChBsnB,EAAOtnB,SAAU,EASrB,QAAS4rB,IAAyBlP,EAASH,EAAO6J,GAChD1J,EAAQmP,cAActP,EAAO6J,EAC7B,IAAI+D,GAAiBlE,GACrB,OAAOvJ,GAAQmO,iBAAiBV,GAAgB,GAOlD,QAASE,IAAkBF,GACzB,GAAI/N,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAGvEub,GAFMN,EAAMhF,IACHgF,EAAMnc,OACLmc,EAAMM,SAChBiK,EAAQvK,EAAMuK,MACdW,EAASlL,EAAMkL,OACf/K,EAAQH,EAAMG,MACdiB,EAAcpB,EAAMoB,WAGxB8M,GAFkBlO,EAAM1b,YAEgBypB,EACxC,IAAIhN,KASJ,OAPIK,KACFL,EAAgByO,GAAyBlP,EAASH,EAAOiB,GACzDsN,EAAmB3N,EAAewJ,EAAOW,GACzCA,EAAOtnB,SAAU,EACjB2mB,EAAM3mB,SAAU,GAGXmd,EAzrBT,GAAI9b,IAAcykB,EAAQgG,UAOtBpnB,MACAshB,MA6BAM,IAAe,EACfC,OAAgBnlB,GAChBqlB,OAAsBrlB,GAEtB6oB,IAAa,EAiCbjD,GAAgB,GAAI5kB,OAAM2pB,mBAAoBlrB,MAAO,QAAUgY,aAAa,EAAMmT,SAAU5pB,MAAM6pB,mBAYlG9E,GAAiB,GAAI/kB,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,EAAMmT,SAAU5pB,MAAM6pB,mBAuCnGzF,GAEJ,WACE,GAAIjK,GAAQ,GAAIna,OAAM8pB,SAAS,GAAI,GAE/B7P,EAAQ+K,GAuCZ,OAtCA/K,GAAME,MAAQA,EACdF,EAAMS,kBAAoB,GAAI1a,OAAM4I,QACpCqR,EAAMY,YAAc,GAAI7a,OAAM4I,QAC9BqR,EAAMQ,WAAa,GAAIza,OAAM+pB,MAC7B9P,EAAMc,iBAGNd,EAAMmB,gBAAcpc,GAEpBgrB,OAAOpI,iBAAiB,YAAa,SAAUqI,GAE7C,GAAI9F,GAAe,CACjB,GAAI+F,GAAa/F,GAAcgG,WAAWC,uBAC1CjQ,GAAMhZ,GAAK8oB,EAAMI,QAAUH,EAAW7Z,MAAQ6Z,EAAW9qB,MAAQ,EAAI,EACrE+a,EAAM1Y,IAAOwoB,EAAMK,QAAUJ,EAAW3Z,KAAO2Z,EAAW1qB,OAAU,EAAI,MAItE2a,GAAMhZ,EAAI8oB,EAAMI,QAAUL,OAAOO,WAAa,EAAI,EAClDpQ,EAAM1Y,GAAMwoB,EAAMK,QAAUN,OAAOQ,YAAe,EAAI,IAEzD,GAEHR,OAAOpI,iBAAiB,YAAa,SAAUqI,GACzChQ,EAAMc,cAAcne,OAAS,GAE/BqtB,EAAMQ,2BAERxQ,EAAMG,SAAU,EAGhBH,EAAMsL,SAAU,IACf,GAEHyE,OAAOpI,iBAAiB,UAAW,SAAUqI,GAC3ChQ,EAAMG,SAAU,IACf,GAEIH,KAqWLgB,GAAY,GAAIjb,OAAM4I,QACtByf,GAAa,GAAIroB,OAAM4I,QAAQ,EAAG,GAAI,GACtCuf,GAAU,GAAInoB,OAAMuR,OA4KxBhP,IAMA,IAAImoB,KACFppB,OAAQA,EACR+jB,eAAgBA,EAChBtB,YAAaA,EACbS,aAAcA,EACdvlB,YAAaA,GACb0rB,aAAc5nB,EAAa4nB,aAC3BhD,SAAUA,EACVplB,OAAQA,EAUV,OALAjF,QAAOqF,eAAe+nB,GAAiB,cAAgBxlB,IAAK,WACxD,MAAO2iB,KACN1iB,IAAK,SAAakB,GACnB,MAAOwhB,IAAaxhB,KAEjBqkB,KAGLV,cACiBhrB,KAAfgrB,OAAO5iB,MACT4iB,OAAO5iB,QAGT4iB,OAAO5iB,IAAIC,MAAQA,GAGjBvK,IACFA,EAAOJ,SACL0K,IAAKC,IAIa,kBAAXujB,SAAyBA,OAAOC,KACzCD,UAAWvjB,KA6GVyjB,WAAW,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,aAAa,EAAEC,WAAW,EAAE9hB,gBAAgB,GAAG+hB,oBAAoB,GAAG5nB,gBAAgB,GAAG6nB,aAAa,GAAGC,YAAY,GAAGC,WAAW,GAAGC,YAAY,GAAGpc,UAAU,GAAGnN,OAAS,KAAKwpB,IAAI,SAASpvB,EAAQU,EAAOJ,GAC7P,YAoCA,SAAS+uB,GAAkBvC,GAUzB,QAAS3mB,GAAOD,GAEdopB,GAAW,EACXC,GAAc,EACdC,GAAY,EAEZtpB,EAAa6K,QAAQ,SAAU8M,GAEzB4R,EAAgBxd,QAAQ4L,GAAS,GACnC4R,EAAgBtf,KAAK0N,EAGvB,IAAI6R,GAAcC,EAAW9R,GACzBe,EAAY8Q,EAAY9Q,UACxBgR,EAAWF,EAAYE,SAEvB5G,EAAQ8D,IAAclO,CAC1B0Q,GAAWA,GAAYtG,EAEvB6G,GACEhS,MAAOA,EACPmL,MAAOA,EACPpK,UAAWA,EAAWgR,SAAUA,EAChCE,WAAY,UACZC,gBAAiB,UACjBlD,gBAAiB,QACjBmD,SAAU,YACVC,SAAU,WACVC,OAAQ,aAIRC,UAAW,aAGbN,GACEhS,MAAOA,EACPmL,MAAOA,EACPpK,UAAWA,EAAWgR,SAAUA,EAChCE,WAAY,UACZjD,gBAAiB,OACjBmD,SAAU,YACVC,SAAU,WACVC,OAAQ,kBAGVtqB,EAAOgF,KAAK,QACViT,MAAOA,EACPe,UAAWA,EACXO,YAAatB,EAAMpc,WAKzB,QAASkuB,GAAW9R,GAClB,MAAIA,GAAMc,cAAcne,QAAU,GAE9BovB,SAAUQ,EAAQtR,sBAAsBjB,EAAMiL,OAAO7T,aAAanQ,QAClE8Z,cAAWhc,KAIXgtB,SAAU/R,EAAMc,cAAc,GAAG8B,MACjC7B,UAAWf,EAAMc,cAAc,GAAGld,QAKxC,QAASouB,KACP,GAAIntB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEkb,EAAQnb,EAAKmb,MACbmL,EAAQtmB,EAAKsmB,MACbpK,EAAYlc,EAAKkc,UACjBgR,EAAWltB,EAAKktB,SAChBE,EAAaptB,EAAKotB,WAClBC,EAAkBrtB,EAAKqtB,gBACvBlD,EAAkBnqB,EAAKmqB,gBACvBmD,EAAWttB,EAAKstB,SAChBC,EAAWvtB,EAAKutB,SAChBC,EAASxtB,EAAKwtB,OACdC,EAAYztB,EAAKytB,SAErB,KAA0B,IAAtBtS,EAAMiS,QAAsCltB,KAAdgc,EAIhC,YADAf,EAAM8O,aAAc,EAKtB,IAAIwD,GAAanH,IAA+B,IAAtBnL,EAAMiS,GAAuB,CACrD,GAAIO,IACFxS,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAEV6D,GAAOgF,KAAKulB,EAAWE,GAOzB,GAAIrH,IAAkD,IAAzCnL,EAAMkS,GAAmBD,QAA+DltB,KAAvCib,EAAM3b,YAAY2qB,GAAgC,CAE9G,GAAIyD,IACFzS,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAIL6c,GAAUrN,SAAS4J,cAAa0C,EAAM8O,aAAc,GAEzDlQ,EAAcmC,GAGd2P,EAAa3jB,KAAKolB,EAAUM,GAC5B1qB,EAAOgF,KAAKolB,EAAUM,GAElBA,EAASvuB,SACX8b,EAAM3b,YAAY2qB,GAAmB3qB,EACrC2b,EAAM3b,YAAY8mB,MAAQ9mB,GAG5BqtB,GAAc,EACdC,GAAY,EAId,GAAI3R,EAAMiS,IAAejS,EAAM3b,YAAY2qB,KAAqB3qB,EAAa,CAC3E,GAAIquB,IACF1S,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAGV6D,GAAOgF,KAAKqlB,EAAUM,GAEtBhB,GAAc,EAEd1R,EAAMjY,OAAOgF,KAAK,qBAIM,IAAtBiT,EAAMiS,IAAyBjS,EAAM3b,YAAY2qB,KAAqB3qB,IACxE2b,EAAM3b,YAAY2qB,OAAmBjqB,GACrCib,EAAM3b,YAAY8mB,UAAQpmB,GAC1BgD,EAAOgF,KAAKslB,GACVrS,MAAOA,EACPe,UAAWA,EACX6B,MAAOmP,EACPzQ,YAAatB,EAAMpc,UAKzB,QAASgb,GAAcmC,IACL,EAAInN,EAAOmE,mBAAmBgJ,GACpCnC,gBAGZ,QAAS+T,KAGP,IAAK,GADDC,IAAc,EACT5wB,EAAI,EAAGA,EAAI4vB,EAAgBjvB,OAAQX,IAC1C,OAA6C+C,KAAzC6sB,EAAgB5vB,GAAGqC,YAAY8mB,MAAqB,CACtDyH,GAAc,CACd,OAIJ,MAAIA,GACKnB,EAGLG,EAAgBnc,OAAO,SAAUuK,GACnC,MAAOA,GAAM3b,YAAY8mB,QAAU9mB,IAClC1B,OAAS,EAjMd,GAAIoF,GAAS,GAAI6G,GAAS3L,QAEtBwuB,GAAW,EACXC,GAAc,EACdC,GAAY,EAEZY,EAAU,GAAIxsB,OAAM4I,QACpBijB,KAiMAvtB,GACFC,SAAUquB,EACV5P,SAAU,WACR,MAAO2O,IAETppB,OAAQA,EACRP,OAAQA,EACRknB,UAAWA,EAGb,OAAO5qB,GArPThB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQiuB,iBAAe3rB,GACvBtC,EAAQQ,QAAUuuB,CAElB,IAAIxiB,GAAU7M,EAAQ,UAElByM,EAIJ,SAAgC7L,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAJjDiM,GAElC4E,EAASzR,EAAQ,WAsBjBuuB,EAAejuB,EAAQiuB,aAAe,GAAI9hB,GAAS3L,UAwNpDiS,UAAU,GAAGnN,OAAS,KAAK8qB,IAAI,SAAS1wB,EAAQU,EAAOJ,GAC1D,YAmBA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS+vB,KAgCL,QAASC,KACLC,GAASA,EACTC,EAAUtvB,SAAWqvB,EACrBE,EAAUvvB,QAAUqvB,EAlCxB,GAAInuB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEwnB,EAAcznB,EAAKynB,YACnBtnB,EAAcH,EAAKG,YAEnBtB,EAAQ,GAAIqC,OAAMC,MAClBmtB,EAAkB,GAAIptB,OAAMC,KAChCtC,GAAM2C,IAAI8sB,EAEV,IAAIprB,GAAS,GAAI6G,GAAS3L,OAC1B8E,GAAOC,GAAG,UAAWskB,EAErB,IAAI8G,GAAa,oDAAoDC,MAAM,IACvE3O,EAAU0O,EAAWze,IAAI,SAAUyK,GACnC,OAAS1Q,KAAM,WACP,MAAO3G,GAAOgF,KAAK,UAAWqS,IAC/B0F,KAAM1F,KAEb6T,GAAY,EAAIhK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,IACtGoO,GAAgB9sB,IAAI4sB,GAGpBvO,EADiB,mDAAoD2O,MAAM,IACtD1e,IAAI,SAAUyK,GAC/B,OAAS1Q,KAAM,WACP,MAAO3G,GAAOgF,KAAK,UAAWqS,IAC/B0F,KAAM1F,IAEjB,IAAI8T,IAAY,EAAIjK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,IACtGmO,GAAUvvB,SAAU,EACpBwvB,EAAgB9sB,IAAI6sB,EAEpB,IAAIF,IAAQ,EAORM,GAAW,EAAIrK,EAAkBhmB,UAAW+B,YAAaA,EAAa+f,QAAS,EAAGe,UAAW,GAAKpB,UAAYhW,KAAM,WAC5G,MAAO3G,GAAOgF,KAAK,UAAW,MAC/B+X,KAAM,WACjBqO,GAAgB9sB,IAAIitB,EACpB,IAAI9rB,GAAI8rB,EAASvvB,SAASyD,GAAK,IAAOyrB,EAAU3nB,QAAUgoB,EAAShoB,QAEnEoZ,KAAaI,KAAM,QAASpW,KAAMqkB,IAAiBjO,KAAM,YAAapW,KAAM,WACpE,MAAO3G,GAAOgF,KAAK,UAAW,SAC3B+X,KAAM,QAASpW,KAAM,WACxB,MAAO3G,GAAOgF,KAAK,UAAW,QAEtC,IAAIwmB,IAAc,EAAItK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,EAAGe,UAAW,IAuBtH,OAtBAqN,GAAgB9sB,IAAIktB,GACpBA,EAAYxvB,SAASyD,EAAIA,EAAI,IAAO8rB,EAAShoB,QAAUioB,EAAYjoB,SACnE5H,EAAM4H,QAAU2nB,EAAU3nB,QAAUgoB,EAAShoB,QAAUioB,EAAYjoB,QAEnE6nB,EAAgBpvB,SAASyD,EAAI+rB,EAAYjoB,QAEzCjI,OAAOqF,eAAehF,EAAO,WACzBuH,IAAK,WACD,OAAQsoB,EAAYtrB,QAASqrB,EAASrrB,QAAS+qB,EAAQE,EAAUjrB,QAAUgrB,EAAUhrB,SAAS4hB,OAAO,SAAUxnB,EAAGiK,GAC9G,MAAOjK,GAAEuZ,OAAOtP,WAK5BgnB,EAAS9oB,OAAS0oB,EAAU1oB,OAASyoB,EAAUzoB,OAAS+oB,EAAY/oB,OAAS9G,EAC7EA,EAAM0E,cAAgB,SAAUumB,GAC5B4E,EAAYnrB,cAAcumB,GAC1BsE,EAAU7qB,cAAcumB,GACxB2E,EAASlrB,cAAcumB,GACvBuE,EAAU9qB,cAAcumB,IAGrBjrB,EA3FXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAU6vB,CAElB,IAAI9jB,GAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCga,EAAmB7mB,EAAQ,qBAE3B8mB,EAAoBnmB,EAAuBkmB,GAE3C/Z,EAAe9M,EAAQ,gBAEPW,GAAuBmM,KAwFxCE,gBAAgB,GAAG+hB,oBAAoB,GAAGnpB,OAAS,KAAKyrB,IAAI,SAASrxB,EAAQU,EAAOJ,GACvF,YAoBA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAqBlQ,QAASswB,GAAU1wB,GACjB,GAAIA,YAAegD,OAAMiB,KAAM,CAC7BjE,EAAIuM,SAAS+f,oBACb,IAAIlqB,GAAQpC,EAAIuM,SAASokB,YAAYjnB,IAAIvF,EAAInE,EAAIuM,SAASokB,YAAYjnB,IAAIjF,CAE1E,OADAzE,GAAIuM,SAASzI,UAAU1B,EAAO,EAAG,GAC1BpC,EACF,GAAIA,YAAegD,OAAM0kB,eAAgB,CAC9C1nB,EAAIssB,oBACJ,IAAIsE,GAAS5wB,EAAI2wB,YAAYjnB,IAAIvF,EAAInE,EAAI2wB,YAAYjnB,IAAIjF,CAEzD,OADAzE,GAAI8D,UAAU8sB,EAAQ,EAAG,GAClB5wB,GAIX,QAASqD,GAAYjB,EAAOI,EAAQG,EAAOkuB,GACzC,GAAIrvB,GAAWqvB,EAAiB,GAAI7tB,OAAMgB,mBAAoBvC,MAAO,WAAcqvB,EAAgBC,MAC/F3tB,EAAQ,GAAIJ,OAAMiB,KAAK,GAAIjB,OAAMS,YAAYrB,EAAOI,EAAQG,GAAQnB,EAaxE,OAZA4B,GAAMmJ,SAASzI,UAAkB,GAAR1B,EAAa,EAAG,GAErCyuB,EACFrvB,EAASC,MAAMC,OAAOC,EAAO2L,cAE7B3L,EAAO2K,iBAAiBlJ,EAAMmJ,SAAU5K,EAAO2L,cAGjDlK,EAAMuN,SAASqgB,aAAe5uB,EAC9BgB,EAAMuN,SAASsgB,cAAgBzuB,EAC/BY,EAAMuN,SAASugB,aAAevuB,EAEvBS,EAET,QAASsT,GAAYtT,EAAOhB,EAAOI,EAAQG,GACzCS,EAAMmJ,SAAShI,MAAMnC,EAAQgB,EAAMuN,SAASqgB,aAAcxuB,EAASY,EAAMuN,SAASsgB,cAAetuB,EAAQS,EAAMuN,SAASugB,cACxH9tB,EAAMuN,SAASqgB,aAAe5uB,EAC9BgB,EAAMuN,SAASsgB,cAAgBzuB,EAC/BY,EAAMuN,SAASugB,aAAevuB,EAGhC,QAASkC,GAAsBrC,EAAQf,GACrC,GAAI2B,GAAQ,GAAIJ,OAAMiB,KAAK,GAAIjB,OAAMS,YAAY0tB,EAAqB3uB,EAAQ4uB,GAAsBN,EAAgBC,MAGpH,OAFA3tB,GAAMmJ,SAASzI,UAAgC,GAAtBqtB,EAA2B,EAAG,GACvDxvB,EAAO2K,iBAAiBlJ,EAAMmJ,SAAU9K,GACjC2B,EAGT,QAAS8V,KACP,GACI/P,GAAI,KACJkoB,EAAK,GAAIruB,OAAMsuB,KACnBD,GAAGE,OAAO,EAAG,GACbF,EAAGG,QAJK,MAIMroB,GACdkoB,EAAGG,OALK,MAKKroB,GACbkoB,EAAGG,OAAO,EAAG,EAEb,IAAIjS,GAAM,GAAIvc,OAAMyuB,cAAcJ,EAGlC,OAFA9R,GAAIzb,UAAU,GAAG,KAAU,GAEpB,GAAId,OAAMiB,KAAKsb,EAAKuR,EAAgBC,OAhG7CzwB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQyiB,mBAAqBziB,EAAQ0iB,WAAa1iB,EAAQ4H,cAAgB5H,EAAQ0H,iBAAmB1H,EAAQyZ,mBAAqBzZ,EAAQiW,cAAgBjW,EAAQ+W,gBAAkB/W,EAAQuS,aAAevS,EAAQwB,aAAexB,EAAQ0xB,oBAAsB1xB,EAAQyxB,oBAAsBzxB,EAAQgyB,wBAA0BhyB,EAAQiF,wBAA0BjF,EAAQoD,aAAepD,EAAQ+V,cAAgB/V,EAAQkD,YAAclD,EAAQ+C,aAAe/C,EAAQ4C,gBAAcN,GACpdtC,EAAQgxB,UAAYA,EACpBhxB,EAAQ2D,YAAcA,EACtB3D,EAAQgX,YAAcA,EACtBhX,EAAQmF,sBAAwBA,EAChCnF,EAAQwZ,gBAAkBA,CAE1B,IAAIhT,GAAmB9G,EAAQ,qBAE3B0xB,EAAkB3wB,EAAwB+F,GAE1CF,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GA0FjCmrB,GAPczxB,EAAQ4C,YAAc,EACrB5C,EAAQ+C,aAAe,IACxB/C,EAAQkD,YAAc,IACpBlD,EAAQ+V,cAAgB,EACzB/V,EAAQoD,aAAe,KACZpD,EAAQiF,wBAA0B,IAClCjF,EAAQgyB,wBAA0B,IACtChyB,EAAQyxB,oBAAsB,KACpDC,EAAsB1xB,EAAQ0xB,oBAAsB,IACrC1xB,GAAQwB,aAAe,IACvBxB,EAAQuS,aAAe,MACpBvS,EAAQ+W,gBAAkB,EAC5B/W,EAAQiW,cAAgB,IACnBjW,EAAQyZ,mBAAqB,MAC/BzZ,EAAQ0H,iBAAmB,IAC9B1H,EAAQ4H,cAAgB,IAC3B5H,EAAQ0iB,WAAa,MACb1iB,EAAQyiB,mBAAqB,MAEnD9b,WAAW,EAAEI,oBAAoB,KAAKkrB,IAAI,SAASvyB,EAAQU,EAAOJ,GACrE,YAaA,SAAS4E,KAkBL,QAASstB,GAAanyB,GAClB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,EAAS9G,EAAM8G,WACJzF,KAAXyF,IAIsB,IAAtBA,EAAOyT,aAIX2W,EAAYnmB,KAAKjE,EAAOzG,UACxB8wB,EAAYpmB,KAAKjE,EAAOyO,UAExBzO,EAAOzG,SAASmH,IAAI,EAAG,EAAG,GAC1BV,EAAOyO,SAAS/N,IAAI,EAAG,EAAG,GAC1BV,EAAOyO,SAAS/R,EAAe,IAAVT,KAAKyS,GAE1B1O,EAAOiN,UAAYjN,EAAOwM,OAE1B8d,EAAczuB,IAAImE,GAElB8W,EAAYjb,IAAIyuB,GAEhBtyB,EAAE0B,QAAS,EAEXsG,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,SAAUiT,IAGhC,QAAS+U,KACL,GAAIhV,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEvEkb,GADcD,EAAMuB,YACZvB,EAAMC,OAEdxV,EAAS9G,EAAM8G,WACJzF,KAAXyF,OAIqBzF,KAArByF,EAAOiN,YAIe,IAAtBjN,EAAOyT,aAIXzT,EAAOiN,UAAUpR,IAAImE,GACrBA,EAAOiN,cAAY1S,GAEnByF,EAAOzG,SAAS0K,KAAKmmB,GACrBpqB,EAAOyO,SAASxK,KAAKomB,GAErBrqB,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,cAAeiT,IA7ErC,GAAInb,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEpB,EAAQmB,EAAKnB,MACbyC,EAAQtB,EAAKsB,MAEb9B,GAAc,EAAIyD,EAAc7E,SAASkD,EAE7C9B,GAAY0D,OAAOC,GAAG,YAAa2sB,GACnCtwB,EAAY0D,OAAOC,GAAG,gBAAiB+sB,EAGvC,IAAIH,GAAc,GAAI7uB,OAAM4I,QACxBkmB,EAAc,GAAI9uB,OAAMivB,MAExBF,EAAgB,GAAI/uB,OAAMC,KAmE9B,OAlEA8uB,GAAcxtB,MAAM4D,IAAI,GAAK,GAAK,IAClC4pB,EAAc/wB,SAASmH,KAAK,KAAO,KAAO,GAiEnC7G,EA5FXhB,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQ4E,OAASA,CAEjB,IAAIyB,GAAe3G,EAAQ,iBAEvB2F,EAEJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAF5C+F,KAyGxCQ,gBAAgB,KAAK2rB,IAAI,SAAS9yB,EAAQU,EAAOJ,GACpD,YAUA,IAAIyyB,GAAS/yB,EAAQ,gBASrBU,GAAOJ,QAAU,SAAyB0yB,GACxCA,EAAMA,KACN,IAAIC,GAAiC,gBAAhBD,GAAIC,QAAuBD,EAAIC,QAAU,EAI1D5wB,EAAQ2wB,EAAI3wB,MACZmQ,EAAMwgB,EAAIxgB,GAYd,OAVAwgB,GAAIE,WAAaF,EAAIE,eACrBF,EAAIE,WAAWC,aAAc,EAC7BH,EAAI5sB,KAAO,0BAGJ4sB,GAAIxgB,UACJwgB,GAAI3wB,YACJ2wB,GAAII,gBACJJ,GAAIC,QAEJF,GACL1nB,UACE4nB,SAAWI,KAAM,IAAK7sB,MAAOysB,GAC7BzgB,KAAO6gB,KAAM,IAAK7sB,MAAOgM,GAAO,GAAI5O,OAAM8b,SAC1Crd,OAASgxB,KAAM,IAAK7sB,MAAO,GAAI5C,OAAMyJ,MAAMhL,KAE7CwJ,aA7BiB,kdA8BjBE,eA5BiB,+lCA6BhBinB,MAGFM,gBAAgB,KAAKC,IAAI,SAASvzB,EAAQU,EAAOJ,GACpD,YA4BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS4yB,GAAenxB,GAEtB,GAAIsI,GAAQ8oB,EAAK9oB,QACb8U,EAAU,GAAI7b,OAAM8b,QAAQ/U,EAgBhC,OAhBuC8U,GAAQrZ,KAAO,iBACtDqZ,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMsc,aAC1BT,EAAQQ,UAAYrc,MAAMsc,aAC1BT,EAAQiU,iBAAkB,EAKX,GAAI9vB,OAAMgI,gBAAe,EAAI+nB,EAAqB7yB,UAC/D6e,KAAM/b,MAAMgc,WACZvF,aAAa,EACbhY,MAAOA,EACPmQ,IAAKiN,EACL4T,KAAM,cAwBV,QAAS/F,KAMP,QAASsG,GAAWvtB,EAAKwtB,GACvB,GAAIxxB,GAAQM,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,SAC5EwC,EAAQxC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5EK,EAAQL,UAAU,GAClBS,EAAST,UAAU,GAGnBwK,GAAW,EAAI2mB,EAAkBhzB,UACnC6hB,KAAMtc,EACN0tB,MAAO,OACP/wB,MAAOA,EACPI,OAAQA,EACR4wB,OAAO,EACPH,KAAMA,IAGJzuB,EAAS+H,EAAS/H,OAElBhD,EAAW6xB,EAAe5xB,OACbO,KAAbR,IACFA,EAAW6xB,EAAe5xB,GAASmxB,EAAenxB,GAEpD,IAAI6xB,GAAO,GAAItwB,OAAMiB,KAAKsI,EAAU/K,EACpC8xB,GAAK/uB,MAAMgvB,SAAS,GAAIvwB,OAAM4I,QAAQ,GAAI,EAAG,GAE7C,IAAI4nB,GAAajvB,EAAQkvB,CAMzB,OAJAH,GAAK/uB,MAAMmvB,eAAeF,GAE1BF,EAAKtyB,SAASyD,EAAoB,GAAhBD,EAAOhC,OAAegxB,EAEjCF,EAGT,QAAShvB,GAAOmB,GACd,GAAI3D,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtE4xB,EAAa7xB,EAAKL,MAClBA,MAAuBO,KAAf2xB,EAA2B,SAAWA,EAC9CC,EAAa9xB,EAAKyC,MAClBA,MAAuBvC,KAAf4xB,EAA2B,EAAMA,EAEzCjzB,EAAQ,GAAIqC,OAAMC,MAElBqwB,EAAON,EAAWvtB,EAAKwtB,EAAMxxB,EAAO8C,EA8BxC,OA7BA5D,GAAM2C,IAAIgwB,GACV3yB,EAAM6D,OAAS8uB,EAAK/mB,SAAS/H,OAC7B7D,EAAM2hB,aAAe,WACnB,MAAO3hB,GAAM6D,OAAOpC,MAAQmC,EAAQlC,EAAO+f,YAE7CzhB,EAAMkzB,cAAgB,WACpB,MAAOlzB,GAAM6D,OAAOhC,OAAS+B,EAAQlC,EAAO+f,YAG9CzhB,EAAM4hB,gBAAkB,SAAUF,EAAGlZ,GACnCxI,EAAM2H,OAAOgrB,EACb,IAAIlqB,GAAI/G,EAAO+f,UACfkR,GAAON,EAAWvtB,EAAKwtB,EAAMxxB,EAAO8C,EAAO8d,EAAIjZ,EAAGD,EAAIC,EACtD,IAAI0qB,GAAUR,EAAK/mB,SAAS/H,OAAOhC,OAAS4G,EAAID,CAC5C2qB,GAAU,IACZruB,EAAMA,EAAIsuB,UAAU,EAAG,IAAOtuB,EAAI7F,OAASk0B,GAAW,MACtDR,EAAON,EAAWvtB,EAAKwtB,EAAMxxB,EAAO8C,EAAO8d,EAAIjZ,EAAGD,EAAIC,IAExDzI,EAAM2C,IAAIgwB,GACV3yB,EAAM6D,OAAS8uB,EAAK/mB,SAAS/H,QAG/B7D,EAAM+E,YAAc,SAAUD,GACxB6tB,EAAK3iB,SAASqjB,cAAgBvuB,IAChC6tB,EAAK/mB,SAAShH,OAAOE,GACrB6tB,EAAK3iB,SAASqjB,YAAcvuB,IAIzB9E,EA7ET,GAAIsyB,IAAO,EAAIgB,EAAmB/zB,SAAS2yB,EAAKhW,OAE5CwW,IA8EJ,QACE/uB,OAAQA,EACR4vB,YAAa,WACX,MAAO1yB,YA5JblB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQkzB,eAAiBA,EACzBlzB,EAAQgtB,QAAUA,CAElB,IAAIyH,GAAsB/0B,EAAQ,wBAE9B2zB,EAAuBhzB,EAAuBo0B,GAE9CC,EAAmBh1B,EAAQ,qBAE3B8zB,EAAoBnzB,EAAuBq0B,GAE3CC,EAAoBj1B,EAAQ,sBAE5B60B,EAAqBl0B,EAAuBs0B,GAE5CpuB,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCquB,EAAQl1B,EAAQ,UAEhByzB,EAAO1yB,EAAwBm0B,GA6C/Bb,EAAYpxB,EAAO+f,aA4FpBmS,SAAS,EAAE/tB,WAAW,GAAGguB,uBAAuB,GAAGC,qBAAqB,GAAGC,oBAAoB,KAAKC,IAAI,SAASv1B,EAAQU,EAAOJ,GACnI,YAEAY,QAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQk1B,QAAUl1B,EAAQm1B,OAASn1B,EAAQo1B,QAAUp1B,EAAQqxB,UAAQ/uB,EAErE,IAAIgE,GAAU5G,EAAQ,aAItB,SAAiCY,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAUD,GAAOF,QAAUF,IAFjNgG,GAIzBtG,EAAQqxB,MAAQ,GAAI/tB,OAAMgB,mBAAoBvC,MAAO,SAAUszB,aAAc/xB,MAAMgyB,eAmBjFt1B,EAAQo1B,QAAU,GAAI9xB,OAAMgB,kBAC7BtE,EAAQm1B,OAAS,GAAI7xB,OAAMgB,mBAAoBvC,MAAO,IACrD/B,EAAQk1B,QAAU,GAAI5xB,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,EAAO4Y,QAAS,OAEzGhsB,WAAW,IAAI4uB,IAAI,SAAS71B,EAAQU,EAAOJ,GAC9C,YAmCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASk1B,KACP,GAAIpzB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DwF,EAAoB5F,EAAK6F,aACzBA,MAAqC3F,KAAtB0F,EAAkC,EAAMA,EACvDytB,EAAWrzB,EAAK6H,IAChBA,MAAmB3H,KAAbmzB,EAAyB,EAAMA,EACrCC,EAAWtzB,EAAK4H,IAChBA,MAAmB1H,KAAbozB,EAAyB,EAAMA,EACrCC,EAAYvzB,EAAKwzB,KACjBA,MAAqBtzB,KAAdqzB,EAA0B,GAAMA,EACvClzB,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDozB,EAAqBzzB,EAAK0zB,cAC1BA,MAAuCxzB,KAAvBuzB,EAAmClzB,EAAOI,aAAe8yB,EACzE7yB,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACF4uB,MAAO,EACP7vB,MAAO+B,EACP2tB,KAAMA,EACNI,SAAS,EACTlD,UAAW,EACXhrB,QAAQ,EACRmC,IAAKA,EACLD,IAAKA,EACL5C,gBAAa9E,GACb2zB,qBAAkB3zB,GAClBge,UAAU,EAGZnZ,GAAMyuB,KAAOM,EAAe/uB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC1D7C,EAAM2rB,UAAYqD,EAAYhvB,EAAMyuB,MACpCzuB,EAAM4uB,MAAQK,EAAkBjvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,IAE9D,IAAI/I,GAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAI4D,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIrB,OAAQ,EAsNZ,OArNAzC,GAAMyH,UAAY,SAAU5F,GAuD1B,QAASuzB,GAAiBnwB,GACpBiB,EAAM6uB,QACRM,EAAWtwB,YAAYuwB,EAAepvB,EAAMjB,MAAOiB,EAAM2rB,WAAWrvB,YAEpE6yB,EAAWtwB,YAAYmB,EAAMjB,MAAMzC,YAIvC,QAAS9B,KACHwF,EAAMmZ,SACRxe,EAASC,MAAMC,OAAOC,EAAOuL,mBACpB5L,EAAYC,WACrBC,EAASC,MAAMC,OAAOC,EAAOsL,iBAE7BzL,EAASC,MAAMC,OAAOC,EAAOqL,eAIjC,QAASkpB,KACP9xB,EAAaG,MAAMJ,EAAIT,KAAKiG,IAAIjG,KAAKgG,IAAIosB,EAAkBjvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAAOtH,EAAO,MAAWA,GAGpH,QAAS+zB,GAAavwB,GACpB/E,EAAOC,GAAgB8E,EAGzB,QAASwwB,GAAqBX,GAC5B5uB,EAAM4uB,MAAQY,EAAgBZ,GAC9B5uB,EAAMjB,MAAQ0wB,EAAkBzvB,EAAM4uB,MAAO5uB,EAAM8C,IAAK9C,EAAM6C,KAC1D7C,EAAM6uB,UACR7uB,EAAMjB,MAAQ2wB,EAAgB1vB,EAAMjB,MAAOiB,EAAMyuB,OAEnDzuB,EAAMjB,MAAQ4wB,EAAgB3vB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAG9D,QAAS+B,KACP5E,EAAMjB,MAAQ6wB,IACd5vB,EAAM4uB,MAAQK,EAAkBjvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9D7C,EAAM4uB,MAAQY,EAAgBxvB,EAAM4uB,OAGtC,QAASgB,KACP,MAAOjT,YAAW3iB,EAAOC,IA+B3B,QAAS41B,GAAYj3B,IACG,IAAlBkB,EAAMC,UAGViG,EAAMmZ,UAAW,EACjBvgB,EAAE0B,QAAS,GAGb,QAASw1B,KACP,GAAI3Z,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACvE8d,EAAQ7C,EAAM6C,KAElB,KAAsB,IAAlBlf,EAAMC,QAAV,CAIAiG,EAAMmZ,UAAW,EAEjB5b,EAAa+P,oBACbyiB,EAAWziB,mBAEX,IAAI7U,IAAI,GAAI0D,OAAM4I,SAAUsS,sBAAsB9Z,EAAaiQ,aAC3D9K,GAAI,GAAIvG,OAAM4I,SAAUsS,sBAAsB0Y,EAAWviB,aAEzDwiB,EAAgBhwB,EAAMjB,KAE1BwwB,GAAqBU,EAAcjX,GAASvgB,EAAGA,EAAGiK,EAAGA,KACrDwsB,EAAiBlvB,EAAMjB,OACvBswB,IACAC,EAAatvB,EAAMjB,OAEfixB,IAAkBhwB,EAAMjB,OAASiB,EAAMC,aACzCD,EAAMC,YAAYD,EAAMjB,QAI5B,QAASmxB,KACPlwB,EAAMmZ,UAAW,EApKf5c,GAAOzC,EAAM2H,OAAOlF,GAExBzC,EAAM4H,QAAU/F,CAEhB,IAAIw0B,GAAuB,GAAR50B,EAAcC,EAAOS,aACpCm0B,EAAgBz0B,EAASH,EAAOS,aAChCo0B,EAAev0B,EAGfa,EAAO,GAAIR,OAAMS,YAAYuzB,EAAcC,EAAeC,EAC9D1zB,GAAKM,UAAyB,GAAfkzB,EAAoB,EAAG,EAGtC,IAAIjzB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAI0B,EAC3B5B,EAAcC,SAASmD,EAAY,GAAR/B,EAC3BrB,EAAcyE,KAAO,eAGrB,IAAI2xB,GAAW,GAAIn0B,OAAMiB,KAAKT,EAAKU,QAAS4sB,EAAgBC,MAC5DpvB,GAAO2K,iBAAiB6qB,EAAS5qB,SAAU5K,EAAOoM,WAClDopB,EAASn2B,SAASC,EAAY,GAAR0B,EACtBw0B,EAASn2B,SAASmD,EAAI6yB,EAAe30B,EAAOS,YAE5C,IAAItB,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOqL,gBACvD5I,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChD4C,GAAapD,SAASC,EAAY,GAAR0B,EAC1B5B,EAAcuC,IAAIc,EAElB,IAAIwyB,GAAa,GAAI5zB,OAAMiB,KAAK,GAAIjB,OAAMS,YAAY,IAAM,IAAM,IAAM,EAAG,EAAG,GAAIqtB,EAAgBgE,QAClG8B,GAAW51B,SAASmD,EAAI6yB,EACxBj2B,EAAcuC,IAAIszB,GAClBA,EAAWh2B,SAAU,CAErB,IAAIo1B,GAAa/zB,EAAYqC,OAAOuC,EAAMjB,MAAMzC,WAChD6yB,GAAWh1B,SAASmD,EAAI9B,EAAOqvB,wBAAkC,GAARtvB,EACzD4zB,EAAWh1B,SAASC,EAAY,IAAR0B,EACxBqzB,EAAWh1B,SAASyD,GAAK,KAEzB,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAO+L,qBAC/D9I,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,GAC1CS,EAAMoC,KAAO,QACbpC,EAAME,IAAIoB,EAAiB3D,EAAeo2B,EAAUnB,EAAYpxB,GAEhEjE,EAAM2C,IAAIF,GAEV2yB,EAAiBlvB,EAAMjB,OACvBswB,IA+CAv1B,EAAMkH,SAAW,SAAUC,GAEzB,MADAjB,GAAMC,YAAcgB,EACbnH,GAGTA,EAAM20B,KAAO,SAAUA,GAUrB,MATAzuB,GAAMyuB,KAAOA,EACbzuB,EAAM2rB,UAAYqD,EAAYhvB,EAAMyuB,MACpCzuB,EAAM6uB,SAAU,EAEhB7uB,EAAM4uB,MAAQK,EAAkBjvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAE9D0sB,EAAqBvvB,EAAM4uB,OAC3BM,EAAiBlvB,EAAMjB,OACvBswB,IACOv1B,GAGTA,EAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,EAGT,IAAIW,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAayxB,GACnCp1B,EAAY0D,OAAOC,GAAG,WAAY0xB,GAClCr1B,EAAY0D,OAAOC,GAAG,aAAc8xB,GA0CpCp2B,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,IACrD2Y,EAAqBC,EAAQ1X,QAAS3D,MAAOA,EAAOyC,MAAOA,GAsC/D,OApCAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvByW,EAAmBxW,OAAOD,GAEtBuB,EAAMW,SACRiE,IACAsqB,EAAiBlvB,EAAMjB,OACvBswB,KAEF70B,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGTA,EAAMgJ,IAAM,SAAUoR,GAMpB,MALAlU,GAAM8C,IAAMoR,EACZlU,EAAM4uB,MAAQK,EAAkBjvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9D0sB,EAAqBvvB,EAAM4uB,OAC3BM,EAAiBlvB,EAAMjB,OACvBswB,IACOv1B,GAGTA,EAAM+I,IAAM,SAAUqR,GAMpB,MALAlU,GAAM6C,IAAMqR,EACZlU,EAAM4uB,MAAQK,EAAkBjvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9D0sB,EAAqBvvB,EAAM4uB,OAC3BM,EAAiBlvB,EAAMjB,OACvBswB,IACOv1B,GAELA,EAAM8G,QAAQ9G,EAAM8G,OAAOqB,gBACxBnI,GAETA,EAAMyH,UAAUotB,GACT70B,EAyBT,QAASm2B,GAAcjX,EAAOuX,GAC5BC,EAAG3rB,KAAK0rB,EAAQ7tB,GAAGqU,IAAIwZ,EAAQ93B,GAC/Bg4B,EAAG5rB,KAAKmU,GAAOjC,IAAIwZ,EAAQ93B,EAE3B,IAAIi4B,GAAYD,EAAGE,gBAAgBH,EAEnCI,GAAK/rB,KAAKmU,GAAOjC,IAAIwZ,EAAQ93B,GAE7Bo4B,EAAKhsB,KAAK0rB,EAAQ7tB,GAAGqU,IAAIwZ,EAAQ93B,GAAGksB,WAEpC,IAAIzM,GAAO0Y,EAAKjM,YAAYmM,IAAID,IAAS,EAAI,GAAK,EAE9C93B,EAASw3B,EAAQ93B,EAAEs4B,WAAWR,EAAQ7tB,GAAKwV,EAE3C0W,EAAQ8B,EAAU33B,SAAWA,CAOjC,OANI61B,GAAQ,IACVA,EAAQ,GAENA,EAAQ,IACVA,EAAQ,GAEHA,EAOT,QAASoC,GAAUjyB,EAAOkyB,EAAMC,EAAOC,EAAMC,GAC3C,MAAOD,IAAQC,EAAQD,IAASpyB,EAAQkyB,IAASC,EAAQD,GAG3D,QAASzB,GAAgBZ,GACvB,MAAIA,GAAQ,EACH,EAELA,EAAQ,EACH,EAEFA,EAGT,QAASe,GAAgB5wB,EAAO+D,EAAKD,GACnC,MAAI9D,GAAQ+D,EACHA,EAEL/D,EAAQ8D,EACHA,EAEF9D,EAGT,QAASgwB,GAAehwB,EAAO+D,EAAKD,GAMlC,OAHQA,EAAMC,GACC,IAYjB,QAAS2sB,GAAkBb,EAAO9rB,EAAKD,GACrC,MAAOmuB,GAAUpC,EAAO,EAAK,EAAK9rB,EAAKD,GAGzC,QAASosB,GAAkBlwB,EAAO+D,EAAKD,GACrC,MAAOmuB,GAAUjyB,EAAO+D,EAAKD,EAAK,EAAK,GAGzC,QAAS6sB,GAAgB3wB,EAAO0vB,GAC9B,MAAI1vB,GAAQ0vB,GAAQ,EACX5xB,KAAKw0B,MAAMtyB,EAAQ0vB,GAAQA,EAE7B1vB,EAGT,QAASiwB,GAAY1xB,GAEnB,MADAA,GAAIA,EAAEhB,WACFgB,EAAEkN,QAAQ,MAAQ,EACblN,EAAEvE,OAASuE,EAAEkN,QAAQ,KAAO,EAE5B,EAIX,QAAS4kB,GAAerwB,EAAOuyB,GAC7B,GAAIz0B,KAAK00B,IAAIxyB,GAAS,KAAkB,IAAVA,EAAa,MAAOA,GAAMyyB,cAAc,EACtE,IAAIC,GAAQ50B,KAAK60B,IAAI,GAAIJ,EACzB,OAAOz0B,MAAKw0B,MAAMtyB,EAAQ0yB,GAASA,EArarCh4B,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUg1B,CAElB,IAAIpvB,GAAa1G,EAAQ,eAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAE3B0xB,EAAkB3wB,EAAwB+F,GAE1CC,EAAQ/G,EAAQ,UAEhBgG,EAAOjF,EAAwBgG,GAE/BoW,EAAWnd,EAAQ,aAEnB4c,EAAU7b,EAAwBoc,GAkSlC8a,EAAK,GAAIr0B,OAAM4I,QACf0rB,EAAK,GAAIt0B,OAAM4I,QACf6rB,EAAO,GAAIz0B,OAAM4I,QACjB8rB,EAAO,GAAI10B,OAAM4I,UAoGlBvF,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGiW,YAAY,GAAGhW,oBAAoB,GAAGC,cAAc,KAAK8xB,IAAI,SAASp5B,EAAQU,EAAOJ,GACjJ,YAmCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASq4B,KAyEP,QAASC,GAAajzB,GACpB5E,EAAOC,GAAgB2E,EACvBpB,EAAYqB,YAAYD,GAG1B,QAASkzB,KACP,GAAIC,EAGF,MAFAA,GAASh4B,SAAWg4B,EAASh4B,aACzBg4B,EAASh4B,SAASD,EAAM8G,OAAO0C,eAAeyuB,GAGlDA,GAAWxuB,IAAIC,MAAM/F,OAAO,YAC5B3D,EAAM2C,IAAIs1B,GACVA,EAASnxB,OAAS9G,EAAM8G,OACxB9G,EAAM8G,OAAO0C,eAAeyuB,GAC5BA,EAAS53B,SAASmD,EAAI/B,EACtBw2B,EAAS53B,SAASyD,EAAIpC,EAAOsT,cAC7BijB,EAAStuB,aACTsuB,EAAStP,YAAY,SAAUjN,GAC7B,GAAI5W,GAAM5E,EAAOC,EACjB,QAAQub,GACN,IAAK,KAIHwc,WAAWF,EAAgB,IAC3B,MACF,KAAK,KACHlzB,EAAMA,EAAIsuB,UAAU,EAAGtuB,EAAI7F,OAAS,GACpC84B,EAAajzB,EACb,MACF,SACEA,GAAO4W,EACPqc,EAAajzB,MAMvB,QAAS/E,GAAcjB,GAYrBk5B,IAEAl5B,EAAE0B,QAAS,EAGb,QAASE,KAEHC,EAAYC,WACdC,EAASC,MAAMC,OAAOC,EAAOsM,sBAE7BzM,EAASC,MAAMC,OAAOC,EAAOqM,YArIjC,GAAIlM,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DC,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAGxDG,EAAuB,GAART,EAAcC,EAAOS,aACpCC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,UAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACIG,GAAcV,EAAeE,EAC7BS,EAAO,GAAIR,OAAMS,YAAYZ,EAAcE,EAAe7B,EAAcwC,KAAKC,MAFjE,EAEmFJ,GAFnF,EAAA,EAGD,IAAIP,OAAMY,oBAAoB,GACpCC,OAAOL,GAChBA,EAAKM,UAAyB,GAAfjB,EAAoB,EAAG,EAGtC,IAAIkB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAmB,GAAfC,EAC3BH,EAAcC,SAASmD,EAAY,GAAR/B,CAE3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAO,WAChD2C,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAGlB,IAAIC,GAAcpC,EAAYqC,OAAOzD,EAAOC,IAAiBW,MAAO,EAAW8C,MAAO,MAKtFF,GAAYrD,SAASmD,EAAI,KACzBE,EAAYrD,SAASC,EAAmB,IAAfC,EACzBmD,EAAYrD,SAASyD,GAAK,KAC1BL,EAAad,IAAIe,EAEjB,IAAIK,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GAEnCW,GAMA,IAAIu3B,EA6DJj4B,GAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGFA,EA/LTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUu4B,CAElB,IAAIK,GAAS15B,EAAQ,WAIjB0G,GAFM3F,EAAwB24B,GAEjB15B,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KA8KhCE,WAAW,EAAEC,SAAS,EAAEyyB,UAAU,GAAGxyB,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKsyB,IAAI,SAAS55B,EAAQU,EAAOJ,GAC/I,YAoBA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAAS64B,GAAgBh3B,EAAawD,GACpC,GAAIrD,GAAQL,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC5EY,EAAQZ,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,KAC5Em3B,EAAUn3B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,SAC9Eo3B,EAAUp3B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAKJ,EAAO2L,aACrF/I,EAAQxC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAG5EpB,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,YAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOuC,EAAM,IAG5C,IAAI2zB,GAAsB,GAAIp2B,OAAMC,KACpCtC,GAAM2C,IAAI81B,EAEV,IAAIrX,GAAO9f,EAAYqC,OAAOmB,EAAItC,YAAc1B,MAAOy3B,EAAS30B,MAAOA,GACvE60B,GAAoB91B,IAAIye,GACxBphB,EAAMgQ,SAASoR,KAAOA,EAEtBphB,EAAMkP,UAAY,SAAUpK,OACdzD,KAARyD,IAAmBA,EAAM,eAC7Bsc,EAAKrc,YAAYD,EAAItC,aAIvBxC,EAAM04B,UAAY,SAAU5zB,GAC1Bsc,EAAKrc,YAAYD,EAAI6zB,QAAQ,KAG/BvX,EAAK/gB,SAASC,EAAI0B,CAElB,IAEI42B,GAAan3B,EAKbo3B,EAAoB,GAAIx2B,OAAMS,YAAY81B,EAJ5B,IAIqD52B,EAAO,EAAG,EAAG,EACpF62B,GAAkBplB,cAAa,GAAIpR,OAAMuR,SAAUklB,gBAA6B,GAAbF,EAPtD,IAOiF,EAAG,GAEjG,IAAIG,GAAgB,GAAI12B,OAAMiB,KAAKu1B,EAAmB1I,EAAgBC,MAStE,OARApvB,GAAO2K,iBAAiBotB,EAAcntB,SAAU4sB,GAEhDO,EAAc14B,SAASyD,EAAI,IAC3B20B,EAAoB91B,IAAIo2B,GACxBN,EAAoBp4B,SAASyD,GAAI,IAEjC9D,EAAM0O,KAAOqqB,EAEN/4B,EAqBT,QAASqR,GAAc/P,EAAa8P,EAAK4nB,GACvC,GAAIC,GAAe73B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK83B,EACnFC,EAAc/3B,UAAU,GAExB2gB,EAAUzgB,EAAYqC,OAAOyN,GAE7BgoB,EAAW,GAAI/2B,OAAMC,MAErBof,EAAIK,EAAQJ,eACZnZ,EAAI9G,EAAO+f,WAAaM,EAAQle,OAAOhC,MAE3Cu3B,GAAS/4B,SAASmD,EAAI,GAAMw1B,EAC5BI,EAAS/4B,SAASyD,GAAK,KAAOm1B,EAAezwB,EAC7C4wB,EAAS/4B,SAASC,EAAkB,EAAd64B,EACtBC,EAASn5B,SAAU,EAGnBm5B,EAASz2B,IAAIof,EAGb,IAAIsX,GAAU3X,EAAI,IACd4X,EAAU9wB,EAAI,IACd+wB,EAAU,GAAIl3B,OAAMkc,cAAc8a,EAASC,EAAS,EAAG,GACvDE,EAAgB,GAAIn3B,OAAMiB,KAAKi2B,EAASpJ,EAAgB8D,QAY5D,OAXAuF,GAAcn5B,SAASmD,EAAI,EAC3Bg2B,EAAcn5B,SAASyD,EAAI0E,EAAI,EAC/BgxB,EAAcn5B,SAASC,EAAmB,IAAd64B,EAC5BC,EAASz2B,IAAI62B,GAEbzX,EAAQ1hB,SAASmD,GAAK,GAAMke,EAC5BK,EAAQ1hB,SAASyD,GAAK,GAAM0E,EAAI,MAEhC4wB,EAASppB,SAAS0R,EAAIA,EACtB0X,EAASppB,SAASxH,EAAIA,EAEf4wB,EAhITz5B,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAU+4B,EAClBv5B,EAAQsS,cAAgBA,CAExB,IAAIhM,GAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCE,EAAmB9G,EAAQ,qBAE3B0xB,EAAkB3wB,EAAwB+F,GAE1CD,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GA4EjC4zB,EAAsBx3B,EAAOI,aAAeJ,EAAOoT,gBAuCpDpP,WAAW,EAAEG,WAAW,GAAGC,oBAAoB,KAAK2zB,IAAI,SAASh7B,EAAQU,EAAOJ;oBACnF,YAYA,SAASigB,GAAoB0a,GAC3B,GAAI5yB,GAAS4yB,EAAQ5yB,MASrB,IAAI4yB,EAAQ7gB,eAAgB,MAAOmG,GAAoBlY,EAIvD,KAAK4yB,EAAQz5B,QAAS,OAAO,CAE7B,MAAO6G,EAAOA,SAAWA,GAAQ,CAC/B,GAAIA,EAAOmR,gBAAkBnR,EAAO7G,QAAS,OAAO,CACpD6G,GAASA,EAAOA,OAElB,QAAKA,EAAOwM,QACLxM,EAAO7G,QAUhB,QAASkQ,GAAcmD,EAAQD,EAAOpT,GACpC,GAAI05B,GAAUrmB,EAAO6B,SAASR,SAAStB,EACvCA,GAAMpT,QAAUA,EAEZA,IAAY05B,GAASt3B,MAAMC,MAAM1C,UAAU+C,IAAI3D,KAAKsU,EAAQD,IAC3DpT,GAAW05B,GAASt3B,MAAMC,MAAM1C,UAAU+H,OAAO3I,KAAKsU,EAAQD,GAC9DC,EAAOrT,SAAS0Q,QAAQC,KAAK,iCAAmCyC,EAAQ,wBAA0BC,GAUzG,QAASe,GAAkBrU,GAEzB,IADA,GAAI8G,GAAS8yB,EAAU55B,GAChB8G,EAAOA,SAAWA,GACvBA,EAASA,EAAOA,MACjB,OAAOA,GAGV,QAAS8yB,GAAU55B,GACjB,GAAIA,EAAM8G,OAAQ,MAAO9G,GAAM8G,MAE/B,KADA,GAAImN,GAAOjU,EAAMsT,QACTW,EAAKnN,QAAU9G,EAAMsT,QAC3BW,EAAOA,EAAKX,MACb,OAAOW,GAAKnN,OAKf,QAASwQ,GAAiBD,EAAKhY,GAC7B,GAAIw6B,KAWJ,OAVAx6B,GAAIy6B,SAAS,SAAUz7B,GACjBA,EAAEuN,UAAYvN,EAAEuN,SAASmuB,kBAAgE,IAA5C17B,EAAEuN,SAASouB,WAAW35B,SAAS45B,WAC9E57B,EAAEuN,SAASmuB,kBAAmB,EAC9BF,EAAUjrB,KAAKvQ,EAAEuN,aAGrByL,EAAI6iB,cAAc76B,GAClBw6B,EAAUrqB,QAAQ,SAAU7G,GAC1B,MAAOA,GAAEoxB,kBAAmB,IAEvB1iB,EAtFT1X,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQigB,oBAAsBA,EAC9BjgB,EAAQoR,cAAgBA,EACxBpR,EAAQsV,kBAAoBA,EAC5BtV,EAAQ66B,UAAYA,EACpB76B,EAAQuY,iBAAmBA,OAkFrB6iB,IAAI,SAAS17B,EAAQU,EAAOJ,GAClC,YAkBAsD,OAAMY,oBAAsB,SAAUm3B,GAEpCjjB,KAAKijB,iBAAgC/4B,KAAjB+4B,EAA6B,EAAIA,GAIvD/3B,MAAMY,oBAAoBrD,UAAUsD,OAAS,SAAU0I,GAIrD,IAFA,GAAIyuB,GAAUljB,KAAKijB,aAEZC,KAAY,GAEjBljB,KAAKmjB,OAAO1uB,EAGdA,GAAS2uB,qBACT3uB,EAAS4uB,wBAGX,WA0FEn4B,MAAMY,oBAAoBrD,UAAU06B,OAAS,SAAU1uB,GACrD,gBAyOE6uB,IAAI,SAASh8B,EAAQU,EAAOJ,GAKlC,QAAS27B,GAAQjtB,GACf,MACKA,GAAIktB,mBACqB,yBAAzB71B,EAAI9F,KAAKyO,EAAImtB,SACbltB,MAAMC,QAAQF,GARrB,GAAI3I,GAAMnF,OAAOC,UAAU4C,QAE3BrD,GAAOJ,QAAU27B,OAUXG,IAAI,SAASp8B,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAU,SAAiB+7B,EAAKC,GACtC,MAAsB,gBAARD,GACXA,EACgB,gBAARC,GAAmBA,EAAM,QAE/BC,IAAI,SAASv8B,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAU,SAASk8B,GACxB,OAAQA,GACN,IAAK,OACH,MAAOC,UACT,KAAK,QACH,MAAOC,WACT,KAAK,QACH,MAAOC,WACT,KAAK,QACH,MAAOC,WACT,KAAK,SACH,MAAOC,YACT,KAAK,SACH,MAAOC,YACT,KAAK,UACH,MAAOtvB,aACT,KAAK,UACH,MAAOuvB,aACT,KAAK,QACH,MAAO9tB,MACT,KAAK,gBACH,MAAO+tB,0BAIPC,IAAI,SAASj9B,EAAQU,EAAOJ,GAsBlC,YAuBA,SAAS48B,GAAmBC,GACtBjrB,SAAWA,QAAQC,MAAMD,QAAQC,KAAKgrB,GAO5C,QAASC,KACPA,EAAaC,KAAK98B,KAAKmY,MAgBzB,QAAS4kB,GAAcC,GACrB,GAAwB,kBAAbA,GACT,KAAM,IAAIC,WAAU,yEAA4ED,IAsCpG,QAASE,GAAiBC,GACxB,WAA2B96B,KAAvB86B,EAAKC,cACAP,EAAaQ,oBACfF,EAAKC,cAmDd,QAASE,GAAaC,EAAQzK,EAAMkK,EAAUQ,GAC5C,GAAIpiB,GACA/V,EACAo4B,CAsBJ,IApBAV,EAAcC,GAEd33B,EAASk4B,EAAOjxB,YACDjK,KAAXgD,GACFA,EAASk4B,EAAOjxB,QAAU3L,OAAOgE,OAAO,MACxC44B,EAAOG,aAAe,QAIKr7B,KAAvBgD,EAAOs4B,cACTJ,EAAOlzB,KAAK,cAAeyoB,EACfkK,EAASA,SAAWA,EAASA,SAAWA,GAIpD33B,EAASk4B,EAAOjxB,SAElBmxB,EAAWp4B,EAAOytB,QAGHzwB,KAAbo7B,EAEFA,EAAWp4B,EAAOytB,GAAQkK,IACxBO,EAAOG,iBAeT,IAbwB,kBAAbD,GAETA,EAAWp4B,EAAOytB,GAChB0K,GAAWR,EAAUS,IAAaA,EAAUT,GAErCQ,EACTC,EAAShU,QAAQuT,GAEjBS,EAAS7tB,KAAKotB,IAIhB5hB,EAAI8hB,EAAiBK,IACb,GAAKE,EAASx9B,OAASmb,IAAMqiB,EAASG,OAAQ,CACpDH,EAASG,QAAS,CAGlB,IAAIlb,GAAI,GAAI9iB,OAAM,+CACE69B,EAASx9B,OAAS,IAAM49B,OAAO/K,GAAQ,oEAG3DpQ,GAAE7c,KAAO,8BACT6c,EAAEob,QAAUP,EACZ7a,EAAEoQ,KAAOA,EACTpQ,EAAEqb,MAAQN,EAASx9B,OACnB08B,EAAmBja,GAIvB,MAAO6a,GAcT,QAASS,KACP,IAAK7lB,KAAK8lB,MAGR,MAFA9lB,MAAKolB,OAAO5V,eAAexP,KAAK2a,KAAM3a,KAAK+lB,QAC3C/lB,KAAK8lB,OAAQ,EACY,IAArB77B,UAAUnC,OACLkY,KAAK6kB,SAASh9B,KAAKmY,KAAKolB,QAC1BplB,KAAK6kB,SAAShrB,MAAMmG,KAAKolB,OAAQn7B,WAI5C,QAAS+7B,GAAUZ,EAAQzK,EAAMkK,GAC/B,GAAI91B,IAAU+2B,OAAO,EAAOC,WAAQ77B,GAAWk7B,OAAQA,EAAQzK,KAAMA,EAAMkK,SAAUA,GACjFoB,EAAUJ,EAAYK,KAAKn3B,EAG/B,OAFAk3B,GAAQpB,SAAWA,EACnB91B,EAAMg3B,OAASE,EACRA,EA0HT,QAASE,GAAWf,EAAQzK,EAAMyL,GAChC,GAAIl5B,GAASk4B,EAAOjxB,OAEpB,QAAejK,KAAXgD,EACF,QAEF,IAAIm5B,GAAan5B,EAAOytB,EACxB,YAAmBzwB,KAAfm8B,KAGsB,kBAAfA,GACFD,GAAUC,EAAWxB,UAAYwB,IAAeA,GAElDD,EACLE,EAAgBD,GAAcE,EAAWF,EAAYA,EAAWv+B,QAoBpE,QAAS0+B,GAAc7L,GACrB,GAAIztB,GAAS8S,KAAK7L,OAElB,QAAejK,KAAXgD,EAAsB,CACxB,GAAIm5B,GAAan5B,EAAOytB,EAExB,IAA0B,kBAAf0L,GACT,MAAO,EACF,QAAmBn8B,KAAfm8B,EACT,MAAOA,GAAWv+B,OAItB,MAAO,GAOT,QAASy+B,GAAWjwB,EAAKtP,GAEvB,IAAK,GADD4M,GAAO,GAAI2C,OAAMvP,GACZG,EAAI,EAAGA,EAAIH,IAAKG,EACvByM,EAAKzM,GAAKmP,EAAInP,EAChB,OAAOyM,GAGT,QAAS6yB,GAAUC,EAAMnuB,GACvB,KAAOA,EAAQ,EAAImuB,EAAK5+B,OAAQyQ,IAC9BmuB,EAAKnuB,GAASmuB,EAAKnuB,EAAQ,EAC7BmuB,GAAKC,MAGP,QAASL,GAAgBhwB,GAEvB,IAAK,GADDswB,GAAM,GAAIrwB,OAAMD,EAAIxO,QACfX,EAAI,EAAGA,EAAIy/B,EAAI9+B,SAAUX,EAChCy/B,EAAIz/B,GAAKmP,EAAInP,GAAG09B,UAAYvuB,EAAInP,EAElC,OAAOy/B,GAGT,QAASC,GAAKlB,EAASj4B,GACrB,MAAO,IAAIo5B,SAAQ,SAAUC,EAASC,GACpC,QAASC,GAAcC,GACrBvB,EAAQnW,eAAe9hB,EAAMy5B,GAC7BH,EAAOE,GAGT,QAASC,KAC+B,kBAA3BxB,GAAQnW,gBACjBmW,EAAQnW,eAAe,QAASyX,GAElCF,KAAWhT,MAAMlsB,KAAKoC,YAGxBm9B,EAA+BzB,EAASj4B,EAAMy5B,GAAYN,MAAM,IACnD,UAATn5B,GACF25B,EAA8B1B,EAASsB,GAAiBJ,MAAM,MAKpE,QAASQ,GAA8B1B,EAAS2B,EAASC,GAC7B,kBAAf5B,GAAQx4B,IACjBi6B,EAA+BzB,EAAS,QAAS2B,EAASC,GAI9D,QAASH,GAA+BzB,EAASj4B,EAAMm3B,EAAU0C,GAC/D,GAA0B,kBAAf5B,GAAQx4B,GACbo6B,EAAMV,KACRlB,EAAQkB,KAAKn5B,EAAMm3B,GAEnBc,EAAQx4B,GAAGO,EAAMm3B,OAEd,CAAA,GAAwC,kBAA7Bc,GAAQ7Y,iBAYxB,KAAM,IAAIgY,WAAU,4EAA+Ea,GATnGA,GAAQ7Y,iBAAiBpf,EAAM,QAAS85B,GAAaC,GAG/CF,EAAMV,MACRlB,EAAQ+B,oBAAoBh6B,EAAM85B,GAEpC3C,EAAS4C,MApdf,GAOIE,GAPAC,EAAuB,gBAAZC,SAAuBA,QAAU,KAC5CC,EAAeF,GAAwB,kBAAZA,GAAE/tB,MAC7B+tB,EAAE/tB,MACF,SAAsBurB,EAAQ2C,EAAU7mB,GACxC,MAAO8mB,UAASv/B,UAAUoR,MAAMhS,KAAKu9B,EAAQ2C,EAAU7mB,GAKzDymB,GADEC,GAA0B,kBAAdA,GAAEK,QACCL,EAAEK,QACVz/B,OAAO0/B,sBACC,SAAwB9C,GACvC,MAAO58B,QAAO2/B,oBAAoB/C,GAC/BrkB,OAAOvY,OAAO0/B,sBAAsB9C,KAGxB,SAAwBA,GACvC,MAAO58B,QAAO2/B,oBAAoB/C,GAQtC,IAAIgD,GAAchX,OAAO3F,OAAS,SAAqB3d,GACrD,MAAOA,KAAUA,EAMnB9F,GAAOJ,QAAU88B,EACjB18B,EAAOJ,QAAQi/B,KAAOA,EAGtBnC,EAAaA,aAAeA,EAE5BA,EAAaj8B,UAAU0L,YAAUjK,GACjCw6B,EAAaj8B,UAAU88B,aAAe,EACtCb,EAAaj8B,UAAUw8B,kBAAgB/6B,EAIvC,IAAIg7B,GAAsB,EAQ1B18B,QAAOqF,eAAe62B,EAAc,uBAClC2D,YAAY,EACZj4B,IAAK,WACH,MAAO80B,IAET70B,IAAK,SAASo3B,GACZ,GAAmB,gBAARA,IAAoBA,EAAM,GAAKW,EAAYX,GACpD,KAAM,IAAIa,YAAW,kGAAoGb,EAAM,IAEjIvC,GAAsBuC,KAI1B/C,EAAaC,KAAO,eAEGz6B,KAAjB8V,KAAK7L,SACL6L,KAAK7L,UAAY3L,OAAO+/B,eAAevoB,MAAM7L,UAC/C6L,KAAK7L,QAAU3L,OAAOgE,OAAO,MAC7BwT,KAAKulB,aAAe,GAGtBvlB,KAAKilB,cAAgBjlB,KAAKilB,mBAAiB/6B,IAK7Cw6B,EAAaj8B,UAAU+/B,gBAAkB,SAAyBxhC,GAChE,GAAiB,gBAANA,IAAkBA,EAAI,GAAKohC,EAAYphC,GAChD,KAAM,IAAIshC,YAAW,gFAAkFthC,EAAI,IAG7G,OADAgZ,MAAKilB,cAAgBj+B,EACdgZ,MAST0kB,EAAaj8B,UAAUggC,gBAAkB,WACvC,MAAO1D,GAAiB/kB,OAG1B0kB,EAAaj8B,UAAUyJ,KAAO,SAAcyoB,GAE1C,IAAK,GADDzZ,MACK/Z,EAAI,EAAGA,EAAI8C,UAAUnC,OAAQX,IAAK+Z,EAAKzJ,KAAKxN,UAAU9C,GAC/D,IAAIuhC,GAAoB,UAAT/N,EAEXztB,EAAS8S,KAAK7L,OAClB,QAAejK,KAAXgD,EACFw7B,EAAWA,OAA4Bx+B,KAAjBgD,EAAOyW,UAC1B,KAAK+kB,EACR,OAAO,CAGT,IAAIA,EAAS,CACX,GAAIC,EAGJ,IAFIznB,EAAKpZ,OAAS,IAChB6gC,EAAKznB,EAAK,IACRynB,YAAclhC,OAGhB,KAAMkhC,EAGR,IAAIzB,GAAM,GAAIz/B,OAAM,oBAAsBkhC,EAAK,KAAOA,EAAGC,QAAU,IAAM,IAEzE,MADA1B,GAAI2B,QAAUF,EACRzB,EAGR,GAAII,GAAUp6B,EAAOytB,EAErB,QAAgBzwB,KAAZo9B,EACF,OAAO,CAET,IAAuB,kBAAZA,GACTQ,EAAaR,EAAStnB,KAAMkB,OAI5B,KAAK,GAFD4nB,GAAMxB,EAAQx/B,OACdihC,EAAYxC,EAAWe,EAASwB,GAC3B3hC,EAAI,EAAGA,EAAI2hC,IAAO3hC,EACzB2gC,EAAaiB,EAAU5hC,GAAI6Y,KAAMkB,EAGrC,QAAO,GAiETwjB,EAAaj8B,UAAUugC,YAAc,SAAqBrO,EAAMkK,GAC9D,MAAOM,GAAanlB,KAAM2a,EAAMkK,GAAU,IAG5CH,EAAaj8B,UAAU0E,GAAKu3B,EAAaj8B,UAAUugC,YAEnDtE,EAAaj8B,UAAUwgC,gBACnB,SAAyBtO,EAAMkK,GAC7B,MAAOM,GAAanlB,KAAM2a,EAAMkK,GAAU,IAqBhDH,EAAaj8B,UAAUo+B,KAAO,SAAclM,EAAMkK,GAGhD,MAFAD,GAAcC,GACd7kB,KAAK7S,GAAGwtB,EAAMqL,EAAUhmB,KAAM2a,EAAMkK,IAC7B7kB,MAGT0kB,EAAaj8B,UAAUygC,oBACnB,SAA6BvO,EAAMkK,GAGjC,MAFAD,GAAcC,GACd7kB,KAAKipB,gBAAgBtO,EAAMqL,EAAUhmB,KAAM2a,EAAMkK,IAC1C7kB,MAIb0kB,EAAaj8B,UAAU+mB,eACnB,SAAwBmL,EAAMkK,GAC5B,GAAI6B,GAAMx5B,EAAQhE,EAAU/B,EAAGgiC,CAK/B,IAHAvE,EAAcC,OAGC36B,MADfgD,EAAS8S,KAAK7L,SAEZ,MAAO6L,KAGT,QAAa9V,MADbw8B,EAAOx5B,EAAOytB,IAEZ,MAAO3a,KAET,IAAI0mB,IAAS7B,GAAY6B,EAAK7B,WAAaA,EACb,KAAtB7kB,KAAKulB,aACTvlB,KAAK7L,QAAU3L,OAAOgE,OAAO,aAEtBU,GAAOytB,GACVztB,EAAOsiB,gBACTxP,KAAK9N,KAAK,iBAAkByoB,EAAM+L,EAAK7B,UAAYA,QAElD,IAAoB,kBAAT6B,GAAqB,CAGrC,IAFAx9B,GAAY,EAEP/B,EAAIu/B,EAAK5+B,OAAS,EAAGX,GAAK,EAAGA,IAChC,GAAIu/B,EAAKv/B,KAAO09B,GAAY6B,EAAKv/B,GAAG09B,WAAaA,EAAU,CACzDsE,EAAmBzC,EAAKv/B,GAAG09B,SAC3B37B,EAAW/B,CACX,OAIJ,GAAI+B,EAAW,EACb,MAAO8W,KAEQ,KAAb9W,EACFw9B,EAAKvO,QAELsO,EAAUC,EAAMx9B,GAGE,IAAhBw9B,EAAK5+B,SACPoF,EAAOytB,GAAQ+L,EAAK,QAEQx8B,KAA1BgD,EAAOsiB,gBACTxP,KAAK9N,KAAK,iBAAkByoB,EAAMwO,GAAoBtE,GAG1D,MAAO7kB,OAGb0kB,EAAaj8B,UAAU2gC,IAAM1E,EAAaj8B,UAAU+mB,eAEpDkV,EAAaj8B,UAAU4gC,mBACnB,SAA4B1O,GAC1B,GAAIoO,GAAW77B,EAAQ/F,CAGvB,QAAe+C,MADfgD,EAAS8S,KAAK7L,SAEZ,MAAO6L,KAGT,QAA8B9V,KAA1BgD,EAAOsiB,eAUT,MATyB,KAArBvlB,UAAUnC,QACZkY,KAAK7L,QAAU3L,OAAOgE,OAAO,MAC7BwT,KAAKulB,aAAe,OACMr7B,KAAjBgD,EAAOytB,KACY,KAAtB3a,KAAKulB,aACTvlB,KAAK7L,QAAU3L,OAAOgE,OAAO,YAEtBU,GAAOytB,IAEX3a,IAIT,IAAyB,IAArB/V,UAAUnC,OAAc,CAC1B,GACIS,GADAyO,EAAOxO,OAAOwO,KAAK9J,EAEvB,KAAK/F,EAAI,EAAGA,EAAI6P,EAAKlP,SAAUX,EAEjB,oBADZoB,EAAMyO,EAAK7P,KAEX6Y,KAAKqpB,mBAAmB9gC,EAK1B,OAHAyX,MAAKqpB,mBAAmB,kBACxBrpB,KAAK7L,QAAU3L,OAAOgE,OAAO,MAC7BwT,KAAKulB,aAAe,EACbvlB,KAKT,GAAyB,mBAFzB+oB,EAAY77B,EAAOytB,IAGjB3a,KAAKwP,eAAemL,EAAMoO,OACrB,QAAkB7+B,KAAd6+B,EAET,IAAK5hC,EAAI4hC,EAAUjhC,OAAS,EAAGX,GAAK,EAAGA,IACrC6Y,KAAKwP,eAAemL,EAAMoO,EAAU5hC,GAIxC,OAAO6Y,OAoBb0kB,EAAaj8B,UAAUsgC,UAAY,SAAmBpO,GACpD,MAAOwL,GAAWnmB,KAAM2a,GAAM,IAGhC+J,EAAaj8B,UAAU6gC,aAAe,SAAsB3O,GAC1D,MAAOwL,GAAWnmB,KAAM2a,GAAM,IAGhC+J,EAAa8B,cAAgB,SAASb,EAAShL,GAC7C,MAAqC,kBAA1BgL,GAAQa,cACVb,EAAQa,cAAc7L,GAEtB6L,EAAc3+B,KAAK89B,EAAShL,IAIvC+J,EAAaj8B,UAAU+9B,cAAgBA,EAiBvC9B,EAAaj8B,UAAU8gC,WAAa,WAClC,MAAOvpB,MAAKulB,aAAe,EAAIoC,EAAe3nB,KAAK7L,kBA0E/Cq1B,IAAI,SAASliC,EAAQU,EAAOJ,GACL,kBAAlBY,QAAOgE,OAEhBxE,EAAOJ,QAAU,SAAkB6hC,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAKhhC,UAAYD,OAAOgE,OAAOk9B,EAAUjhC,WACvC+kB,aACE1f,MAAO27B,EACPpB,YAAY,EACZuB,UAAU,EACVC,cAAc,OAOtB7hC,EAAOJ,QAAU,SAAkB6hC,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,CACd,IAAII,GAAW,YACfA,GAASrhC,UAAYihC,EAAUjhC,UAC/BghC,EAAKhhC,UAAY,GAAIqhC,GACrBL,EAAKhhC,UAAU+kB,YAAcic,SAK7BM,IAAI,SAASziC,EAAQU,EAAOJ,GAclC,QAASoiC,GAAU9hC,GACjB,QAASA,EAAIslB,aAAmD,kBAA7BtlB,GAAIslB,YAAYwc,UAA2B9hC,EAAIslB,YAAYwc,SAAS9hC,GAIzG,QAAS+hC,GAAc/hC,GACrB,MAAkC,kBAApBA,GAAIgiC,aAAmD,kBAAdhiC,GAAI6rB,OAAwBiW,EAAS9hC,EAAI6rB,MAAM,EAAG,IAV3G/rB,EAAOJ,QAAU,SAAUM,GACzB,MAAc,OAAPA,IAAgB8hC,EAAS9hC,IAAQ+hC,EAAa/hC,MAAUA,EAAIiiC,iBAY/DC,IAAI,SAAS9iC,EAAQU,EAAOJ,GAoBlC,QAASyiC,GAAW/P,GAClBta,KAAKsqB,UACLtqB,KAAKuqB,SAAWvqB,KAAKwqB,eAAetE,KAAKlmB,MACzCA,KAAKvS,OAAO6sB,GA+Ld,QAASmQ,GAAU/8B,GACjBlF,OAAOqF,eAAew8B,EAAW5hC,UAAWiF,GAC1C0C,IAAKs6B,EAAQh9B,GACbm8B,cAAc,IAKlB,QAASa,GAAQh9B,GACf,MAAO,IAAKs6B,WACV,mBAAmBt6B,EAAK,OACxB,kBAAkBA,EAClB,KACAgM,KAAK,SAGT,QAASixB,GAAaxP,EAAMhO,GAC1B,IAAKgO,EAAKyP,OAA+B,IAAtBzP,EAAKyP,MAAM9iC,OAC5B,MAAO,KAET,IAAI+iC,GAAWC,EAAS3P,EAAKyP,MAAOzd,EACpC,OAAI0d,IAAY,EACP1P,EAAKyP,MAAMC,GACb,KAGT,QAASE,GAAW5P,GAClB,IAAK,GAAIh0B,GAAE,EAAGA,EAAE6jC,EAAUljC,OAAQX,IAAK,CACrC,GAAIgmB,GAAK6d,EAAU7jC,GAAG8jC,WAAW,GAC7BC,EAAMJ,EAAS3P,EAAKyP,MAAOzd,EAC/B,IAAI+d,GAAO,EACT,MAAO/P,GAAKyP,MAAMM,GAAKxgC,OAE3B,MAAO,GAGT,QAASygC,GAAUhQ,GACjB,IAAK,GAAIh0B,GAAE,EAAGA,EAAEikC,EAAStjC,OAAQX,IAAK,CACpC,GAAIgmB,GAAKie,EAASjkC,GAAG8jC,WAAW,GAC5BC,EAAMJ,EAAS3P,EAAKyP,MAAOzd,EAC/B,IAAI+d,GAAO,EACT,MAAO/P,GAAKyP,MAAMM,GAEtB,MAAO,GAGT,QAASG,GAAalQ,GACpB,IAAK,GAAIh0B,GAAE,EAAGA,EAAEmkC,EAAYxjC,OAAQX,IAAK,CACvC,GAAIgmB,GAAKme,EAAYnkC,GAAG8jC,WAAW,GAC/BC,EAAMJ,EAAS3P,EAAKyP,MAAOzd,EAC/B,IAAI+d,GAAO,EACT,MAAO/P,GAAKyP,MAAMM,GAAKxgC,OAE3B,MAAO,GAGT,QAAS6gC,GAAWpQ,EAAM5f,EAAMC,GAC9B,IAAK2f,EAAKqQ,UAAqC,IAAzBrQ,EAAKqQ,SAAS1jC,OAClC,MAAO,EAGT,KAAK,GADD2jC,GAAQtQ,EAAKqQ,SACRrkC,EAAE,EAAGA,EAAEskC,EAAM3jC,OAAQX,IAAK,CACjC,GAAIukC,GAAOD,EAAMtkC,EACjB,IAAIukC,EAAKC,QAAUpwB,GAAQmwB,EAAKE,SAAWpwB,EACzC,MAAOkwB,GAAKG,OAEhB,MAAO,GAGT,QAASC,GAAazQ,GACpB,MAAc,WAAVA,EACK0Q,EACU,UAAV1Q,EACA2Q,EACFC,EAGT,QAASnB,GAAUj2B,EAAO/G,EAAOo+B,GAC/BA,EAAQA,GAAS,CACjB,KAAK,GAAI/kC,GAAI+kC,EAAO/kC,EAAI0N,EAAM/M,OAAQX,IACpC,GAAI0N,EAAM1N,GAAGgmB,KAAOrf,EAClB,MAAO3G,EAGX,QAAQ,EAzSV,GAAIglC,GAAW7kC,EAAQ,gBACnB8kC,EAAQ9kC,EAAQ,SAChB4qB,EAAS5qB,EAAQ,aAEjB0jC,GAAa,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzEI,GAAY,IAAK,KACjBE,GAAe,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhFe,EAAS,KAAKpB,WAAW,GACzBqB,EAAW,IAAIrB,WAAW,GAC1BgB,EAAa,EACbF,EAAe,EACfC,EAAc,CAElBhkC,GAAOJ,QAAU,SAAsB0yB,GACrC,MAAO,IAAI+P,GAAW/P,IASxB+P,EAAW5hC,UAAUgF,OAAS,SAAS6sB,GAOrC,GANAA,EAAM8R,GACJG,QAASvsB,KAAKuqB,UACbjQ,GACHta,KAAKwsB,KAAOlS,EACZta,KAAKwsB,KAAKC,QAAUva,EAAOlS,KAAKwsB,KAAKC,QAAS,IAEzCnS,EAAIa,KACP,KAAM,IAAI1zB,OAAM,mCAElB,IAAI6iC,GAAStqB,KAAKsqB,OACdrgB,EAAOqQ,EAAIrQ,MAAM,GACjBkR,EAAOb,EAAIa,IACfnb,MAAK0sB,kBAAkBvR,EAEvB,IAAIwR,GAAQR,EAASQ,MAAM1iB,EAAMqQ,GAC7BsS,EAAWtS,EAAIhwB,OAAS,CAG5BggC,GAAOxiC,OAAS,CAGhB,IAAI+kC,GAAeF,EAAM3d,OAAO,SAAS8d,EAAMC,GAC7C,MAAOnhC,MAAKgG,IAAIk7B,EAAMC,EAAKziC,MAAOsiC,IACjC,GAGCvgC,EAAI,EACJM,EAAI,EACJqgC,EAAa9a,EAAOoI,EAAI0S,WAAY7R,EAAK8R,OAAOD,YAChDE,EAAW/R,EAAK8R,OAAOE,KACvBC,EAAYJ,EAAWE,EACvBG,EAAgB/S,EAAI+S,eAAiB,EACrC3iC,EAASsiC,EAAaL,EAAM7kC,OAASslC,EACrC/R,EAAQyQ,EAAa9rB,KAAKwsB,KAAKnR,MAGnC1uB,IAAKjC,EAGLsV,KAAK8Y,OAAS+T,EACd7sB,KAAKstB,QAAU5iC,EACfsV,KAAKutB,WAAaP,EAAaE,EAC/BltB,KAAKwtB,UAAYN,EACjBltB,KAAKytB,SAAW1C,EAAW5P,GAC3Bnb,KAAK0tB,WAAarC,EAAalQ,GAC/Bnb,KAAK2tB,YAAcX,EACnBhtB,KAAK4tB,UAAYZ,EAAaI,EAAYptB,KAAKytB,QAG/C,IAAII,GAAO7tB,IACX2sB,GAAMt0B,QAAQ,SAAS00B,EAAMe,GAO3B,IAAK,GAHDC,GAHA7B,EAAQa,EAAKb,MACb8B,EAAMjB,EAAKiB,IACXC,EAAYlB,EAAKziC,MAIZnD,EAAE+kC,EAAO/kC,EAAE6mC,EAAK7mC,IAAK,CAC5B,GAAIgmB,GAAKlD,EAAKghB,WAAW9jC,GACrB+mC,EAAQL,EAAKM,SAAShT,EAAMhO,EAChC,IAAI+gB,EAAO,CACLH,IACF1hC,GAAKk/B,EAAWpQ,EAAM4S,EAAU5gB,GAAI+gB,EAAM/gB,IAE5C,IAAIihB,GAAK/hC,CACLgvB,KAAU0Q,EACZqC,IAAOvB,EAAaoB,GAAW,EACxB5S,IAAU2Q,IACjBoC,GAAOvB,EAAaoB,GAEtB3D,EAAO7yB,MACLvO,UAAWklC,EAAIzhC,GACf0hC,KAAMH,EACN31B,MAAOpR,EACP4lC,KAAMe,IAIRzhC,GAAK6hC,EAAMI,SAAWjB,EACtBU,EAAYG,GAKhBvhC,GAAKqgC,EACL3gC,EAAI,IAEN2T,KAAKuuB,YAAc5B,EAAM7kC,QAG3BuiC,EAAW5hC,UAAUikC,kBAAoB,SAASvR,GAMhD,GAHAnb,KAAKwuB,oBAAsB,KAC3BxuB,KAAKyuB,kBAAoB,KAEpBtT,EAAKyP,OAA+B,IAAtBzP,EAAKyP,MAAM9iC,OAA9B,CAMA,GAAI4mC,GAAQ/D,EAAaxP,EAAMmR,IACpBnB,EAAUhQ,IACVA,EAAKyP,MAAM,GAGlB+D,EAAW3uB,KAAKwsB,KAAKC,QAAUiC,EAAMJ,QACzCtuB,MAAKwuB,oBAAsBE,EAC3B1uB,KAAKyuB,kBAAoBrC,EAAMsC,GAC7BriC,EAAG,EAAGM,EAAG,EAAG2hC,SAAUK,EAAUxhB,GAAIkf,EACpCuC,QAAS,EAAGC,QAAS,EAAGvkC,MAAO,EAAGI,OAAQ,MAI9C2/B,EAAW5hC,UAAU0lC,SAAW,SAAShT,EAAMhO,GAC7C,GAAI+gB,GAAQvD,EAAaxP,EAAMhO,EAC/B,OAAI+gB,KAEK/gB,IAAOkf,EACPrsB,KAAKyuB,kBACLthB,IAAOmf,EACPtsB,KAAKwuB,oBACP,OAGTnE,EAAW5hC,UAAU+hC,eAAiB,SAASvgB,EAAMiiB,EAAO8B,EAAK1jC,GAC/D,GAKI4jC,GACAH,EANAV,EAAgBrtB,KAAKwsB,KAAKa,eAAiB,EAC3ClS,EAAOnb,KAAKwsB,KAAKrR,KACjB2T,EAAS,EACTC,EAAW,EACXnJ,EAAQ,CAIZ,KAAKzK,EAAKyP,OAA+B,IAAtBzP,EAAKyP,MAAM9iC,OAC5B,OACEokC,MAAOA,EACP8B,IAAK9B,EACL5hC,MAAO,EAIX0jC,GAAMpiC,KAAKiG,IAAIoY,EAAKniB,OAAQkmC,EAC5B,KAAK,GAAI7mC,GAAE+kC,EAAO/kC,EAAI6mC,EAAK7mC,IAAK,CAC9B,GAAIgmB,GAAKlD,EAAKghB,WAAW9jC,GACrB+mC,EAAQluB,KAAKmuB,SAAShT,EAAMhO,EAEhC,IAAI+gB,EAAO,CAEEA,EAAMU,OAEjBE,IADWf,EAAYxC,EAAWpQ,EAAM4S,EAAU5gB,GAAI+gB,EAAM/gB,IAAM,CAGlE,IAAI6hB,GAAUF,EAASZ,EAAMI,SAAWjB,EACpC4B,EAAYH,EAASZ,EAAM5jC,KAG/B,IAAI2kC,GAAa3kC,GAAS0kC,GAAW1kC,EACnC,KAGFwkC,GAASE,EACTD,EAAWE,EACXlB,EAAYG,EAEdtI,IAOF,MAHImI,KACFgB,GAAYhB,EAAUa,UAGtB1C,MAAOA,EACP8B,IAAK9B,EAAQtG,EACbt7B,MAAOykC,KAKT,QAAS,SACT,YAAa,WACb,UAAW,WACX,YACA,cAAe12B,QAAQoyB,KAwFtByE,YAAY,GAAGC,eAAe,GAAG/C,MAAQ,KAAKgD,IAAI,SAAS9nC,EAAQU,EAAOJ,GAO7E,YAMA,SAASynC,GAASC,GACjB,GAAY,OAARA,OAAwBplC,KAARolC,EACnB,KAAM,IAAIxK,WAAU,wDAGrB,OAAOt8B,QAAO8mC,GATf,GAAIpH,GAAwB1/B,OAAO0/B,sBAC/Bx/B,EAAiBF,OAAOC,UAAUC,eAClC6mC,EAAmB/mC,OAAOC,UAAU+mC,oBAsDxCxnC,GAAOJ,QA5CP,WACC,IACC,IAAKY,OAAO6xB,OACX,OAAO,CAMR,IAAIoV,GAAQ,GAAI/J,QAAO,MAEvB,IADA+J,EAAM,GAAK,KACkC,MAAzCjnC,OAAO2/B,oBAAoBsH,GAAO,GACrC,OAAO,CAKR,KAAK,GADDC,MACKvoC,EAAI,EAAGA,EAAI,GAAIA,IACvBuoC,EAAM,IAAMhK,OAAOiK,aAAaxoC,IAAMA,CAKvC,IAAwB,eAHXqB,OAAO2/B,oBAAoBuH,GAAO51B,IAAI,SAAU9S,GAC5D,MAAO0oC,GAAM1oC,KAEH0S,KAAK,IACf,OAAO,CAIR,IAAIk2B,KAIJ,OAHA,uBAAuBpX,MAAM,IAAIngB,QAAQ,SAAUw3B,GAClDD,EAAMC,GAAUA,IAGf,yBADErnC,OAAOwO,KAAKxO,OAAO6xB,UAAWuV,IAAQl2B,KAAK,IAM9C,MAAOwtB,GAER,OAAO,MAI4B1+B,OAAO6xB,OAAS,SAAU+K,EAAQ0K,GAKtE,IAAK,GAJDp5B,GAEAq5B,EADAC,EAAKX,EAASjK,GAGT9zB,EAAI,EAAGA,EAAIrH,UAAUnC,OAAQwJ,IAAK,CAC1CoF,EAAOlO,OAAOyB,UAAUqH,GAExB,KAAK,GAAI/I,KAAOmO,GACXhO,EAAeb,KAAK6O,EAAMnO,KAC7BynC,EAAGznC,GAAOmO,EAAKnO,GAIjB,IAAI2/B,EAAuB,CAC1B6H,EAAU7H,EAAsBxxB,EAChC,KAAK,GAAIvP,GAAI,EAAGA,EAAI4oC,EAAQjoC,OAAQX,IAC/BooC,EAAiB1nC,KAAK6O,EAAMq5B,EAAQ5oC,MACvC6oC,EAAGD,EAAQ5oC,IAAMuP,EAAKq5B,EAAQ5oC,MAMlC,MAAO6oC,SAGFC,IAAI,SAAS3oC,EAAQU,EAAOJ,GA0ClC,QAASsoC,GAAUnD,EAAM7B,GAEvB,KADA6B,EAAOA,EAAKoD,QAAQ,OAAQ,KAAKC,QAE/B,MAAO,KAET,IAAI1B,GAAQ3B,EAAKxzB,QAAQ,IACzB,KAAe,IAAXm1B,EACF,KAAM,IAAIjnC,OAAM,wBAA0ByjC,EAE5C,IAAI3iC,GAAMwkC,EAAK9Q,UAAU,EAAGyS,EAE5B3B,GAAOA,EAAK9Q,UAAUyS,EAAQ,GAG9B3B,EAAOA,EAAKoD,QAAQ,2BAA4B,IAChDpD,EAAOA,EAAKvU,MAAM,KAClBuU,EAAOA,EAAKjzB,IAAI,SAASnM,GACvB,MAAOA,GAAIyiC,OAAOC,MAAM,kCAI1B,KAAK,GADDhC,MACKlnC,EAAI,EAAGA,EAAI4lC,EAAKjlC,OAAQX,IAAK,CACpC,GAAImpC,GAAKvD,EAAK5lC,EACJ,KAANA,EACFknC,EAAK52B,MACHlP,IAAK+nC,EAAG,GACRjC,KAAM,KAEClnC,IAAM4lC,EAAKjlC,OAAS,EAC7BumC,EAAKA,EAAKvmC,OAAS,GAAGumC,KAAOkC,EAAUD,EAAG,KAE1CjC,EAAKA,EAAKvmC,OAAS,GAAGumC,KAAOkC,EAAUD,EAAG,IAC1CjC,EAAK52B,MACHlP,IAAK+nC,EAAG,GACRjC,KAAM,MAKZ,GAAImC,IACFjoC,IAAKA,EACL8lC,QAOF,OAJAA,GAAKh2B,QAAQ,SAAS9G,GACpBi/B,EAAInC,KAAK98B,EAAEhJ,KAAOgJ,EAAE88B,OAGfmC,EAGT,QAASD,GAAUlC,GACjB,MAAKA,IAAwB,IAAhBA,EAAKvmC,OAGQ,IAAtBumC,EAAK90B,QAAQ,MAAoC,IAAtB80B,EAAK90B,QAAQ,KACnC80B,EAAKpS,UAAU,EAAGoS,EAAKvmC,OAAS,IACd,IAAvBumC,EAAK90B,QAAQ,KACRk3B,EAAapC,GACfqC,SAASrC,EAAM,IANb,GASX,QAASoC,GAAapC,GACpB,MAAOA,GAAK7V,MAAM,KAAK1e,IAAI,SAASw1B,GAClC,MAAOoB,UAASpB,EAAK,MAzGzBtnC,EAAOJ,QAAU,SAA0BymC,GACzC,IAAKA,EACH,KAAM,IAAI5mC,OAAM,mBAClB4mC,GAAOA,EAAKhjC,WAAW+kC,MAEvB,IAAIO,IACFC,SACAhG,SACAY,aAGEmB,EAAQ0B,EAAK7V,MAAM,YAEvB,IAAqB,IAAjBmU,EAAM7kC,OACR,KAAM,IAAIL,OAAM,yBAElB,KAAK,GAAIN,GAAI,EAAGA,EAAIwlC,EAAM7kC,OAAQX,IAAK,CACrC,GAAI0pC,GAAWX,EAAUvD,EAAMxlC,GAAIA,EACnC,IAAK0pC,EAGL,GAAqB,SAAjBA,EAAStoC,IAAgB,CAC3B,GAAgC,gBAArBsoC,GAASxC,KAAKlhB,GACvB,KAAM,IAAI1lB,OAAM,0BAA4BN,EAAI,sBAClD,IAAkC,gBAAvB0pC,GAASxC,KAAKyC,KACvB,KAAM,IAAIrpC,OAAM,0BAA4BN,EAAI,6BAClDwpC,GAAOC,MAAMC,EAASxC,KAAKlhB,IAAM0jB,EAASxC,KAAKyC,SACrB,UAAjBD,EAAStoC,KAAoC,aAAjBsoC,EAAStoC,MAEpB,SAAjBsoC,EAAStoC,IAClBooC,EAAO/F,MAAMnzB,KAAKo5B,EAASxC,MACD,YAAjBwC,EAAStoC,IAClBooC,EAAOnF,SAAS/zB,KAAKo5B,EAASxC,MAE9BsC,EAAOE,EAAStoC,KAAOsoC,EAASxC,MAIpC,MAAOsC,SAsEHI,IAAI,SAASzpC,EAAQU,EAAOJ,GAClC,GAAIk8B,GAAQx8B,EAAQ,SAChBi8B,EAAUj8B,EAAQ,YAClB0iC,EAAW1iC,EAAQ,aAEnB0pC,GAAM,EAAG,EAAG,GACZC,GAAO,EAAG,EAAG,EAEjBjpC,GAAOJ,QAAU,SAA4BiN,EAAOylB,GAE3CzlB,IAAW0uB,EAAQ1uB,IAAUm1B,EAASn1B,MACvCylB,EAAMzlB,MACNA,EAAQ,MAIRylB,EADe,gBAARA,IACCsL,MAAOtL,GAETA,KAcV,KAAK,GAZDK,GAA2B,gBAAbL,GAAIK,KAAoBL,EAAIK,KAAO,SACjDiL,EAA6B,gBAAdtL,GAAIsL,MAAqBtL,EAAIsL,MAAQ,EACpDsG,EAAS5R,EAAI4R,OAAS,EAEtBgF,GAAwB,IAAlB5W,EAAI6W,UAAsBH,EAAKC,EACrCzpC,EAAI0pC,EAAI,GACRz/B,EAAIy/B,EAAI,GACR7pC,EAAI6pC,EAAI,GAERE,EAAqB,EAARxL,EAEbyL,EAAUx8B,GAAS,IAAKivB,EAAMnJ,IAAOyW,GAChCjqC,EAAI,EAAGmqC,EAAI,EAAGnqC,EAAIiqC,EAAYjqC,GAAK,EAAGmqC,GAAK,EAAG,CACnD,GAAIjlC,GAAIlF,EAAI+kC,CACZmF,GAAQhlC,EAAI,GAAKilC,EAAI,EACrBD,EAAQhlC,EAAI,GAAKilC,EAAI,EACrBD,EAAQhlC,EAAI,GAAKilC,EAAI,EACrBD,EAAQhlC,EAAI,GAAKilC,EAAI9pC,EACrB6pC,EAAQhlC,EAAI,GAAKilC,EAAI7/B,EACrB4/B,EAAQhlC,EAAI,GAAKilC,EAAIjqC,EAEzB,MAAOgqC,MAERE,WAAW,GAAGzN,MAAQ,GAAG0N,YAAY,KAAKC,IAAI,SAASnqC,EAAQU,EAAOJ,GAczE,QAAS8pC,GAAcpX,GACrBqX,EAAK9pC,KAAKmY,MAES,gBAARsa,KACTA,GAAQrQ,KAAMqQ,IAKhBta,KAAKwsB,KAAOhkC,OAAO6xB,UAAWC,GAG1BA,GAAKta,KAAKvS,OAAO6sB,GAzBvB,GAAIsX,GAAetqC,EAAQ,sBACvBuqC,EAAWvqC,EAAQ,YACnBwqC,EAAgBxqC,EAAQ,gBAExByqC,EAAWzqC,EAAQ,kBACnB0qC,EAAQ1qC,EAAQ,eAEhBqqC,EAAOzmC,MAAM0kB,cAEjB5nB,GAAOJ,QAAU,SAA6B0yB,GAC5C,MAAO,IAAIoX,GAAapX,IAkB1BuX,EAASH,EAAcC,GAEvBD,EAAajpC,UAAUgF,OAAS,SAAU6sB,GAQxC,GAPmB,gBAARA,KACTA,GAAQrQ,KAAMqQ,IAIhBA,EAAM9xB,OAAO6xB,UAAWra,KAAKwsB,KAAMlS,IAE9BA,EAAIa,KACP,KAAM,IAAI2J,WAAU,qCAGtB9kB,MAAKtT,OAASklC,EAAatX,EAG3B,IAAIgB,IAAsB,IAAdhB,EAAIgB,MAGZH,EAAOb,EAAIa,KAGX8W,EAAW9W,EAAK8R,OAAOiF,OACvBC,EAAYhX,EAAK8R,OAAOmF,OAGxB9H,EAAStqB,KAAKtT,OAAO49B,OAAO1vB,OAAO,SAAUszB,GAC/C,GAAImE,GAASnE,EAAMG,IACnB,OAAOgE,GAAO/nC,MAAQ+nC,EAAO3nC,OAAS,GAIxCsV,MAAKsyB,cAAgBhI,CAGrB,IAAIiI,GAAYR,EAASQ,UAAUjI,GAC/BkI,EAAMT,EAASS,IAAIlI,EAAQ2H,EAAUE,EAAW7W,GAChD+V,EAAUS,MACZX,WAAW,EACXxW,KAAM,SACNiL,MAAO0E,EAAOxiC,QAShB,IALAkY,KAAKyyB,SAASpB,GACdrxB,KAAKhL,aAAa,WAAY,GAAI9J,OAAM+J,gBAAgBs9B,EAAW,IACnEvyB,KAAKhL,aAAa,KAAM,GAAI9J,OAAM+J,gBAAgBu9B,EAAK,KAGlDlY,EAAIoY,WAAa,QAAU1yB,MAAK6iB,WAEnC7iB,KAAK2yB,gBAAgB,YAChB,IAAIrY,EAAIoY,UAAW,CAExB,GAAI9B,GAAQmB,EAASnB,MAAMtG,EAC3BtqB,MAAKhL,aAAa,OAAQ,GAAI9J,OAAM+J,gBAAgB27B,EAAO,MAI/Dc,EAAajpC,UAAU8rB,sBAAwB,WACjB,OAAxBvU,KAAK4yB,iBACP5yB,KAAK4yB,eAAiB,GAAI1nC,OAAM2nC,OAGlC,IAAIN,GAAYvyB,KAAK6iB,WAAW35B,SAAS2L,MACrCiuB,EAAW9iB,KAAK6iB,WAAW35B,SAAS45B,QACxC,KAAKyP,IAAczP,GAAYyP,EAAUzqC,OAAS,EAGhD,MAFAkY,MAAK4yB,eAAeE,OAAS,MAC7B9yB,MAAK4yB,eAAeG,OAAO1iC,IAAI,EAAG,EAAG,EAGvC2hC,GAAMgB,cAAcT,EAAWvyB,KAAK4yB,gBAChCnnB,MAAMzL,KAAK4yB,eAAeE,SAC5Bt5B,QAAQmK,MAAM,iIAMlB+tB,EAAajpC,UAAU+rB,mBAAqB,WACjB,OAArBxU,KAAK6Y,cACP7Y,KAAK6Y,YAAc,GAAI3tB,OAAMwZ,KAG/B,IAAIuuB,GAAOjzB,KAAK6Y,YACZ0Z,EAAYvyB,KAAK6iB,WAAW35B,SAAS2L,MACrCiuB,EAAW9iB,KAAK6iB,WAAW35B,SAAS45B,QACxC,KAAKyP,IAAczP,GAAYyP,EAAUzqC,OAAS,EAEhD,WADAmrC,GAAKC,WAGPlB,GAAMmB,WAAWZ,EAAWU,MAG3BG,cAAc,GAAGC,iBAAiB,GAAGxB,SAAW,GAAGyB,qBAAqB,GAAGC,eAAe,KAAKC,IAAI,SAASlsC,EAAQU,EAAOJ,GAI9H,QAAS6rC,GAAQlB,GACf,GAAI3M,GAAQ2M,EAAUzqC,OAASg7B,CAC/B5iB,GAAIrO,IAAI,GAAK0gC,EAAU,GACvBryB,EAAIrO,IAAI,GAAK0gC,EAAU,GACvBryB,EAAItO,IAAI,GAAK2gC,EAAU,GACvBryB,EAAItO,IAAI,GAAK2gC,EAAU,EAEvB,KAAK,GAAIprC,GAAI,EAAGA,EAAIy+B,EAAOz+B,IAAK,CAC9B,GAAIkF,GAAIkmC,EAAUprC,EAAI27B,EAAW,GAC7Bn2B,EAAI4lC,EAAUprC,EAAI27B,EAAW,EACjC5iB,GAAIrO,IAAI,GAAKjG,KAAKiG,IAAIxF,EAAG6T,EAAIrO,IAAI,IACjCqO,EAAIrO,IAAI,GAAKjG,KAAKiG,IAAIlF,EAAGuT,EAAIrO,IAAI,IACjCqO,EAAItO,IAAI,GAAKhG,KAAKgG,IAAIvF,EAAG6T,EAAItO,IAAI,IACjCsO,EAAItO,IAAI,GAAKhG,KAAKgG,IAAIjF,EAAGuT,EAAItO,IAAI,KAhBrC,GAAIkxB,GAAW,EACX5iB,GAAQrO,KAAM,EAAG,GAAID,KAAM,EAAG,GAmBlC5J,GAAOJ,QAAQurC,WAAa,SAAUZ,EAAW5B,GAC/C8C,EAAOlB,GACP5B,EAAO9+B,IAAIxB,IAAI6P,EAAIrO,IAAI,GAAIqO,EAAIrO,IAAI,GAAI,GACvC8+B,EAAO/+B,IAAIvB,IAAI6P,EAAItO,IAAI,GAAIsO,EAAItO,IAAI,GAAI,IAGzC5J,EAAOJ,QAAQorC,cAAgB,SAAUT,EAAW5B,GAClD8C,EAAOlB,EACP,IAAImB,GAAOxzB,EAAIrO,IAAI,GACf8hC,EAAOzzB,EAAIrO,IAAI,GACf+hC,EAAO1zB,EAAItO,IAAI,GACfiiC,EAAO3zB,EAAItO,IAAI,GACftH,EAAQspC,EAAOF,EACfhpC,EAASmpC,EAAOF,EAChB7rC,EAAS8D,KAAKkoC,KAAKxpC,EAAQA,EAAQI,EAASA,EAChDimC,GAAOoC,OAAO1iC,IAAIqjC,EAAOppC,EAAQ,EAAGqpC,EAAOjpC,EAAS,EAAG,GACvDimC,EAAOmC,OAAShrC,EAAS,QAGrBisC,IAAI,SAASzsC,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAQgpC,MAAQ,SAAgBtG,GACrC,GAAIsG,GAAQ,GAAI97B,cAA6B,EAAhBw1B,EAAOxiC,OAAa,GAC7CX,EAAI,CAQR,OAPAmjC,GAAOjyB,QAAQ,SAAU61B,GACvB,GAAI/gB,GAAK+gB,EAAMG,KAAK2F,MAAQ,CAC5BpD,GAAMzpC,KAAOgmB,EACbyjB,EAAMzpC,KAAOgmB,EACbyjB,EAAMzpC,KAAOgmB,EACbyjB,EAAMzpC,KAAOgmB,IAERyjB,GAGT5oC,EAAOJ,QAAQ4qC,IAAM,SAAclI,EAAQ2H,EAAUE,EAAW7W,GAC9D,GAAIkX,GAAM,GAAI19B,cAA6B,EAAhBw1B,EAAOxiC,OAAa,GAC3CX,EAAI,CA8BR,OA7BAmjC,GAAOjyB,QAAQ,SAAU61B,GACvB,GAAImE,GAASnE,EAAMG,KACf4F,EAAM5B,EAAOhmC,EAAIgmC,EAAO/nC,MACxB4pC,EAAM7B,EAAO1lC,EAAI0lC,EAAO3nC,OAGxBypC,EAAK9B,EAAOhmC,EAAI4lC,EAChBmC,EAAK/B,EAAO1lC,EAAIwlC,EAChBkC,EAAKJ,EAAKhC,EACVqC,EAAKJ,EAAK/B,CAEV7W,KACF8Y,GAAMjC,EAAYE,EAAO1lC,GAAKwlC,EAC9BmC,GAAMnC,EAAY+B,GAAM/B,GAI1BK,EAAIrrC,KAAOgtC,EACX3B,EAAIrrC,KAAOitC,EAEX5B,EAAIrrC,KAAOgtC,EACX3B,EAAIrrC,KAAOmtC,EAEX9B,EAAIrrC,KAAOktC,EACX7B,EAAIrrC,KAAOmtC,EAEX9B,EAAIrrC,KAAOktC,EACX7B,EAAIrrC,KAAOitC,IAEN5B,GAGTxqC,EAAOJ,QAAQ2qC,UAAY,SAAoBjI,GAC7C,GAAIiI,GAAY,GAAIz9B,cAA6B,EAAhBw1B,EAAOxiC,OAAa,GACjDX,EAAI,CAyBR,OAxBAmjC,GAAOjyB,QAAQ,SAAU61B,GACvB,GAAImE,GAASnE,EAAMG,KAGfhiC,EAAI6hC,EAAMhlC,SAAS,GAAKmpC,EAAOzD,QAC/BjiC,EAAIuhC,EAAMhlC,SAAS,GAAKmpC,EAAOxD,QAG/BtkB,EAAI8nB,EAAO/nC,MACX+G,EAAIghC,EAAO3nC,MAGf6nC,GAAUprC,KAAOkF,EACjBkmC,EAAUprC,KAAOwF,EAEjB4lC,EAAUprC,KAAOkF,EACjBkmC,EAAUprC,KAAOwF,EAAI0E,EAErBkhC,EAAUprC,KAAOkF,EAAIke,EACrBgoB,EAAUprC,KAAOwF,EAAI0E,EAErBkhC,EAAUprC,KAAOkF,EAAIke,EACrBgoB,EAAUprC,KAAOwF,IAEZ4lC,QAGHgC,IAAI,SAASjtC,EAAQU,EAAOJ,GAgClC,QAAS4sC,GAAMvqB,EAAMwqB,EAAKvI,EAAO8B,GAC7B,GAAI9C,GAAMjhB,EAAK1Q,QAAQk7B,EAAKvI,EAC5B,QAAa,IAAThB,GAAcA,EAAM8C,EACbA,EACJ9C,EAGX,QAASwJ,GAAaD,GAClB,MAAOE,GAAWC,KAAKH,GAG3B,QAASI,GAAItI,EAAStiB,EAAMiiB,EAAO8B,EAAK1jC,GAGpC,IAAK,GAFDqiC,MACAmI,EAAY5I,EACP/kC,EAAE+kC,EAAO/kC,EAAE6mC,GAAO7mC,EAAE8iB,EAAKniB,OAAQX,IAAK,CAC3C,GAAIstC,GAAMxqB,EAAK8qB,OAAO5tC,GAClB6tC,EAAYC,EAAQL,KAAKH,EAI7B,IAAIO,GAAa7tC,IAAI6mC,EAAI,EAAG,CACxB,GAAIkH,GAAUF,EAAY7tC,EAAIA,EAAE,EAC5BguC,EAAW5I,EAAQtiB,EAAM6qB,EAAWI,EAAS5qC,EACjDqiC,GAAMl1B,KAAK09B,GAEXL,EAAY3tC,EAAE,GAGtB,MAAOwlC,GAGX,QAASyI,GAAO7I,EAAStiB,EAAMiiB,EAAO8B,EAAK1jC,EAAO+qC,GAG9C,GAAI1I,MAEA2I,EAAYhrC,CAKhB,KAHa,WAAT+qC,IACAC,EAAYlkB,OAAOmkB,WAEhBrJ,EAAQ8B,GAAO9B,EAAQjiB,EAAKniB,QAAQ,CAKvC,IAHA,GAAI0tC,GAAUhB,EAAMvqB,EAAMwrB,EAAavJ,EAAO8B,GAGvC9B,EAAQsJ,GACNd,EAAczqB,EAAK8qB,OAAO7I,KAE/BA,GAIJ,IAAIiJ,GAAW5I,EAAQtiB,EAAMiiB,EAAOsJ,EAASF,GAEzCJ,EAAUhJ,GAASiJ,EAASnH,IAAImH,EAASjJ,OACzCwJ,EAAYR,EAAUO,EAAY3tC,MAGtC,IAAIotC,EAAUM,EAAS,CAEnB,KAAON,EAAUhJ,IACTwI,EAAazqB,EAAK8qB,OAAOG,KAE7BA,GAEJ,IAAIA,IAAYhJ,EACRwJ,EAAYxJ,EAAQuJ,EAAY3tC,QAAQ4tC,IAC5CR,EAAUQ,MAIV,KAFAA,EAAYR,EAELA,EAAUhJ,GACRwI,EAAazqB,EAAK8qB,OAAOG,EAAUO,EAAY3tC,UAEpDotC,IAIZ,GAAIA,GAAWhJ,EAAO,CAClB,GAAIyJ,GAASpJ,EAAQtiB,EAAMiiB,EAAOgJ,EAASI,EAC3C3I,GAAMl1B,KAAKk+B,GAEfzJ,EAAQwJ,EAEZ,MAAO/I,GAIX,QAASiJ,GAAU3rB,EAAMiiB,EAAO8B,EAAK1jC,GAEjC,OACI4hC,MAAOA,EACP8B,IAAK9B,EAHItgC,KAAKiG,IAAIvH,EAAO0jC,EAAI9B,IAzHrC,GAAI+I,GAAU,KACVQ,EAAc,KACdd,EAAa,IAEjB3sC,GAAOJ,QAAU,SAASqiB,EAAMqQ,GAE5B,MADYtyB,GAAOJ,QAAQ+kC,MAAM1iB,EAAMqQ,GAC1BxgB,IAAI,SAASizB,GACtB,MAAO9iB,GAAKgS,UAAU8Q,EAAKb,MAAOa,EAAKiB,OACxCt0B,KAAK,OAGZ1R,EAAOJ,QAAQ+kC,MAAQ,SAAkB1iB,EAAMqQ,GAI3C,GAHAA,EAAMA,MAGY,IAAdA,EAAIhwB,OAA4B,WAAbgwB,EAAI+a,KACvB,QAEJprB,GAAOA,GAAM,EACb,IAAI3f,GAA6B,gBAAdgwB,GAAIhwB,MAAqBgwB,EAAIhwB,MAAQ8mB,OAAOmkB,UAC3DrJ,EAAQtgC,KAAKgG,IAAI,EAAG0oB,EAAI4R,OAAO,GAC/B8B,EAAyB,gBAAZ1T,GAAI0T,IAAmB1T,EAAI0T,IAAM/jB,EAAKniB,OACnDutC,EAAO/a,EAAI+a,KAEX9I,EAAUjS,EAAIiS,SAAWqJ,CAC7B,OAAa,QAATP,EACOR,EAAItI,EAAStiB,EAAMiiB,EAAO8B,EAAK1jC,GAE/B8qC,EAAO7I,EAAStiB,EAAMiiB,EAAO8B,EAAK1jC,EAAO+qC,SAmGlDQ,IAAI,SAASvuC,EAAQU,EAAOJ,GAKlC,QAASkuC,KAGL,IAAK,GAFD1Q,MAEKj+B,EAAI,EAAGA,EAAI8C,UAAUnC,OAAQX,IAAK,CACvC,GAAI2oC,GAAS7lC,UAAU9C,EAEvB,KAAK,GAAIoB,KAAOunC,GACRpnC,EAAeb,KAAKioC,EAAQvnC,KAC5B68B,EAAO78B,GAAOunC,EAAOvnC,IAKjC,MAAO68B,GAjBXp9B,EAAOJ,QAAUkuC,CAEjB,IAAIptC,GAAiBF,OAAOC,UAAUC,yBAkB3B","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_frag","REVISION","searchValues","threever","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","labelString","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","zzz","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index e2bf87e..11dd8a4 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -1,10 +1,10 @@ -!function(){function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){return e(b[g][1][a]||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g0&&void 0!==arguments[0]?arguments[0]:{},e=d.textCreator,f=d.object,g=d.propertyName,h=void 0===g?"undefined":g,i=d.width,k=void 0===i?n.PANEL_WIDTH:i,m=d.height,o=void 0===m?n.PANEL_HEIGHT:m,p=d.depth,r=void 0===p?n.PANEL_DEPTH:p,s=.5*k-n.PANEL_MARGIN,t=o-n.PANEL_MARGIN,u=n.BUTTON_DEPTH,v=new THREE.Group;v.guiType="button",v.toString=function(){return"["+v.guiType+": "+h+"]"};var w=n.createPanel(k,o,r);v.add(w);var x=s/t,y=new THREE.BoxGeometry(s,t,u,Math.floor(4*x),4,4);new THREE.SubdivisionModifier(1).modify(y),y.translate(.5*s,0,0);var z=new THREE.MeshBasicMaterial;z.visible=!1;var A=new THREE.Mesh(y.clone(),z);A.position.z=.5*u,A.position.x=.5*k;var B=new THREE.MeshBasicMaterial({color:l.BUTTON_COLOR}),C=new THREE.Mesh(y.clone(),B);A.add(C);var D=e.create(h,{scale:.866});D.position.x=.5*s-11e-6*D.layout.width*.5,D.position.z=1.2*u,D.position.y=-.025,C.add(D);var E=e.create(h);E.position.x=n.PANEL_LABEL_TEXT_MARGIN,E.position.z=r,E.position.y=-.03;var F=n.createControllerIDBox(o,l.CONTROLLER_ID_BUTTON);F.position.z=r,w.add(E,A,F);var G=(0,j.default)(A);G.events.on("onPressed",a),G.events.on("onReleased",b),c(),v.interaction=G,v.hitscan=[A,w];var H=q.create({group:v,panel:w});return v.updateControl=function(a){G.update(a),H.update(a),c()},v.name=function(a){return E.updateLabel(a),v},v.buttonLabel=function(a){return D.updateLabel(a),v},v}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],2:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a){!1!==y.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0)}function b(){B.visible=w.value,C.visible=D.hovering(),F&&(F.checkmark.visible=w.value,F.borderBox.visible=F.interaction.hovering())}function c(){if(F)return F;var a=.6*m.PANEL_HEIGHT,c=new THREE.BoxGeometry(a,a,v);c.translate(.5*a,0,0);var e=new THREE.MeshBasicMaterial;e.visible=!0;var f=new THREE.Mesh(c.clone(),e);F=f,f.position.z=v;var h=m.createPanel(a+m.BORDER_THICKNESS,a+m.BORDER_THICKNESS,v,!0);F.borderBox=h,h.material.color.setHex(2063079),h.position.x=.5*-m.BORDER_THICKNESS+.5*q,h.position.z=.5*v;var k=o.checkmark(.4*a/m.CHECKBOX_SIZE);F.checkmark=k,k.visible=w.value,k.position.z=.51*v,f.add(k);var l=(0,i.default)(f);return l.events.on("onPressed",d),F.interaction=l,F.updateControl=function(a){w.listen&&(w.value=g[j]),l.update(a),b()},F}function d(a){!1!==y.folder.visible&&!1!==F.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0,F.checkmark.visible=w.value)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,j=void 0===h?"undefined":h,l=e.initialValue,n=void 0!==l&&l,p=e.width,q=void 0===p?m.PANEL_WIDTH:p,s=e.height,t=void 0===s?m.PANEL_HEIGHT:s,u=e.depth,v=void 0===u?m.PANEL_DEPTH:u,w={value:n,listen:!1},x=m.PANEL_HEIGHT-m.CHECKBOX_SIZE,y=new THREE.Group;y.guiType="checkbox",y.toString=function(){return"["+y.guiType+": "+j+"]"};var z=f.create(j);z.position.x=m.PANEL_LABEL_TEXT_MARGIN,z.position.z=v,z.position.y=-.03;var A=void 0;y.onChange=function(a){return A=a,y},y.listen=function(){return w.listen=!0,y},y.name=function(a){return z.updateLabel(a),y};var B=void 0,C=void 0,D=void 0,E=!1;y.showInFolderHeader=function(){var a=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return a!==E&&(E=a,F=c(),a?y.folder.addHeaderItem(F):F.visible=!1),y},Object.defineProperty(y,"isShownInFolderHeader",{get:function(){return E},set:y.showInFolderHeader});var F=void 0,G=void 0;return y.setHeight=function(c){G&&y.remove(G),y.spacing=c;var d=c-x,e=d,f=v,h=.4*d/m.CHECKBOX_SIZE;G=m.createPanel(q,c,v),y.add(G);var l=new THREE.BoxGeometry(d,e,f);l.translate(.5*d,0,0);var n=new THREE.MeshBasicMaterial;n.visible=!1;var p=new THREE.Mesh(l.clone(),n);p.position.z=v,p.position.x=.5*q;var s=new THREE.MeshBasicMaterial({color:k.CHECKBOX_BG_COLOR}),t=new THREE.Mesh(l.clone(),s);p.add(t);var u=m.createControllerIDBox(c,k.CONTROLLER_ID_CHECKBOX);u.position.z=v,C=m.createPanel(d+m.BORDER_THICKNESS,e+m.BORDER_THICKNESS,f,!0),C.material.color.setHex(2063079),C.position.x=.5*-m.BORDER_THICKNESS+.5*q,C.position.z=.5*v,B=o.checkmark(h),B.position.z=.51*v,p.add(B),G.add(z,p,u,C),D=(0,i.default)(p),D.events.on("onPressed",a),b(),y.interaction=D,y.hitscan=[p,G];var A=r.create({group:y,panel:G});return y.updateControl=function(a){w.listen&&(w.value=g[j]),D.update(a),A.update(a),b()},y.folder&&y.folder.requestLayout(),y},y.setHeight(t),y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./textlabel"),h=(e(g),a("./interaction")),i=e(h),j=a("./colors"),k=d(j),l=a("./layout"),m=d(l),n=a("./graphic"),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=d(q)},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a,b,c){var d,e,f,g,h,i,j,k;switch(1===arguments.length&&(void 0!==a.x?(b=a.y,c=a.z,a=a.x):(b=a.s,c=a.v,a=a.h)),g=Math.floor(6*a),h=6*a-g,i=c*(1-b),j=c*(1-h*b),k=c*(1-(1-h)*b),g%6){case 0:d=c,e=k,f=i;break;case 1:d=j,e=c,f=i;break;case 2:d=i,e=c,f=k;break;case 3:d=i,e=j,f=c;break;case 4:d=k,e=i,f=c;break;case 5:d=c,e=i,f=j}return{r:d,g:e,b:f}}function g(a,b,c){1===arguments.length&&(b=a.g,c=a.b,a=a.r);var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=e-f,h=0===e?0:g/e,i=e;switch(e){case f:d=0;break;case a:d=b-c+g*(b0&&void 0!==arguments[0]?arguments[0]:{},h=e.object,i=e.propertyName,k=e.textCreator,m=e.width,n=void 0===m?o.PANEL_WIDTH:m,p=e.height,q=void 0===p?o.PANEL_HEIGHT:p,r=e.depth,v=void 0===r?o.PANEL_DEPTH/3:r,w=c,x=h[i],y=g(x),z={selectedHSV:{value:new THREE.Vector3(y.h,y.s,y.v)}},A=new THREE.MeshBasicMaterial({color:x}),B=new j.default,C={listen:!1},D=(0,l.default)({textCreator:k,func:w,image:A,propertyName:i,width:n,height:q,depth:v,changeColorOnHover:!1});D.guiType="ColorPicker";var E,F=!0;D.onChange=function(a){return B.on("onChange",a),D};var G=D.updateControl;return D.updateControl=function(a){C.listen&&d(),G(a)},D.listen=function(){return C.listen=!0,D},D}Object.defineProperty(c,"__esModule",{value:!0}),c.default=h;var i=a("events"),j=e(i),k=a("./imagebutton"),l=e(k),m=a("./colors"),n=(d(m),a("./layout")),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=(d(q),"\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}"),s="\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n",t="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n}\n",u="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n \n}\n"},{"./colors":4,"./grab":8,"./imagebutton":10,"./layout":15,"./sharedmaterials":19,events:28}],4:[function(a,b,c){"use strict";function d(a,b){var c=new THREE.Color(b),d=a.getAttribute("color"),e=void 0;d?e=d.array:(e=new Float32Array(a.getAttribute("position").array.length).fill(.5),d=a.setAttribute("color",new THREE.BufferAttribute(e,3)));for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:{},n=l.textCreator,p=l.object,r=l.propertyName,u=void 0===r?"undefined":r,v=(l.initialValue,l.options),w=void 0===v?[]:v,x=l.width,y=void 0===x?o.PANEL_WIDTH:x,z=l.height,A=void 0===z?o.PANEL_HEIGHT:z,B=l.depth,C=void 0===B?o.PANEL_DEPTH:B,D={open:!1,listen:!1},E=.5*y-o.PANEL_MARGIN,F=A-o.PANEL_MARGIN,G=C,H=A-1.2*o.PANEL_MARGIN,I=-.4*o.PANEL_MARGIN,J=25,K=new THREE.Group;K.guiType="dropdown",K.toString=function(){return"["+K.guiType+": "+u+"]"},K.userData.sourceObject=p,K.userData.sourcePropertyName=u,K.userData.setValue=function(a){if(-1===w.indexOf(a))return void console.warn('dat.GUIVR: Unknown option "'+a+'" for dropdown "'+u+'".\nValid options: ['+w.join(", ")+"]");p[u]=a,V&&V(p[u])};var L=o.createPanel(y,A,C);K.add(L),K.hitscan=[L];var M=new THREE.Group;M.visible=!1,M.hitscan=[];var N=[],O=[],P=a(),Q=b(P||" ",!1);Q.position.x=.5*o.PANEL_MARGIN+.5*y,Q.position.z=C;var R=q.downArrow();R.position.set(E-.04,0,1.01*C),Q.add(R),Q.add(M),Array.isArray(w)?M.add.apply(M,f(w.map(g))):M.add.apply(M,f(Object.keys(w).map(g))),c();var S=n.create(u);S.position.x=o.PANEL_LABEL_TEXT_MARGIN,S.position.z=C,S.position.y=-.03;var T=o.createControllerIDBox(A,m.CONTROLLER_ID_DROPDOWN);T.position.z=C;var U=o.createPanel(E+o.BORDER_THICKNESS,F+.5*o.BORDER_THICKNESS,G,!0);U.material.color.setHex(2063079),U.position.x=.5*-o.BORDER_THICKNESS+.5*y,U.position.z=.5*C,L.add(S,T,Q,U),j();var V=void 0,W=void 0;K.onChange=function(a){return V=a,K},K.onChoose=function(a){return W=a,K};var X=s.create({group:K,panel:L});return K.listen=function(){return D.listen=!0,K},K.updateControl=function(b){D.listen&&Q.setString(a()),N.forEach(function(a){a.update(b)}),X.update(b),j()},K.name=function(a){return S.updateLabel(a),K},K.setToolTip=function(a){var b=K;b.userData.tip=a,b.userData.tipObj=(0,h.createToolTip)(n,a,o.FOLDER_WIDTH,b.spacing,o.BUTTON_DEPTH)},K.getToolTip=function(){return K.userData.tip},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=g;var h=a("./textlabel"),i=e(h),j=a("./interaction"),k=e(j),l=a("./colors"),m=d(l),n=a("./layout"),o=d(n),p=a("./graphic"),q=d(p),r=a("./grab"),s=d(r),t=a("./utils")},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./textlabel":22,"./utils":23}],6:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b=c-o.PANEL_DEPTH&&console.log("GUIVR Warning: likely problem with z-order in orthographicFolderLayout")}}function g(a){if(a.isOrthographicCamera){var b=a.near,c=a.far,d=(x.length,a.left),e=a.right,f=a.top,g=a.bottom,h=a.position.z;return z.min.set(d,g,-c+h),z.max.set(e,f,-b+h),z}}function h(){function a(a){L.call(H,a)}function b(a){M.call(H,a)}function c(a,b,c){b.updateMatrixWorld(),a.applyMatrix4(b.matrixWorld),b.remove(a),c.add(a)}function d(a,b,c){c.updateMatrixWorld(),a.applyMatrix4((new THREE.Matrix4).getInverse(c.matrixWorld)),b.remove(a),c.add(a)}function h(a,b,e){for(var f=b;f.parent;)f=f.parent;var g=f;c(a,b,g),d(a,g,e)}function j(){l();var a=(0,w.getTopLevelFolder)(H);a===H?(a.modalEditor&&a.modalEditor.performLayout&&a.modalEditor.performLayout(),a.userData.layoutInProgress=!0,a.userData.columnHeight=0,a.userData.columnIndex=0,a.userData.columnYOff=-a.position.y,x.includes(H)||(x.push(H),H.userData.isOrthographic&&f())):(H.userData.columnHeight=H.folder.userData.columnHeight,H.userData.columnIndex=H.folder.userData.columnIndex,x.includes(H)&&(x.splice(x.indexOf(H),1),H.userData.isOrthographic&&f()));var b=o.PANEL_HEIGHT+o.PANEL_SPACING,c=o.FOLDER_HEIGHT+o.PANEL_SPACING,d=c;I.children.forEach(function(a){a.visible=!G.collapsed});var e=0;if(I.children.forEach(function(a,b){void 0===a.guiIndex?a.guiIndex=e+=1:e=a.guiIndex}),I.children.sort(function(a,b){return a.guiIndex-b.guiIndex}),G.collapsed)P.rotation.z=.5*Math.PI;else{P.rotation.z=0;var g=0,h=c;I.children.forEach(function(a,e){a.isFolder&&(a.userData.columnYOff=H.userData.columnYOff-g,a.performLayout());var f,i=a.spacing?a.spacing:b,j=.5*(h+i);if(a.isFolder){var f=.5*(h+c);a.position.y=g-f}else a.position.y=g-j;g-=j,h=i,e0&&void 0!==arguments[0]?arguments[0]:{},r=p.textCreator,s=p.name,u=p.guiAdd,z=p.guiRemove,B=p.addControllerFuncs,C=p.globalControllers,D=25,E=o.FOLDER_WIDTH,F=o.PANEL_DEPTH,G={collapsed:!1,previousParent:void 0},H=new THREE.Group;H.guiType="folder",H.toString=function(){return"["+H.guiType+": "+s+"]"};var I=new THREE.Group;H.add(I);var J=!1;Object.defineProperty(H,"accordion",{get:function(){return J},set:function(a){a&&!J&&H.guiChildren.filter(function(a){return a.isFolder}).map(function(a){return a.close()}),J=a,H.requestLayout()}}),H.requestLayout=function(){var a=(0,w.getTopLevelFolder)(H);a.userData.layoutInProgress?console.log("requested layout of folder "+H.folderName+" while layout already in progress..."):a.userData.layoutPending=!0},H.performLayout=j;var K=new THREE.Quaternion;H.fixFolderPosition=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.01,b=this;if(b.userData.isOrthographic){b.setRotationFromQuaternion(K);var c=(0,w.setBoxFromObject)(y,b),d=c.max.x-c.min.x,e=(c.max.y,c.max.y,b.userData.isOrthographic),f=g(e),h=c.intersect(f),i=h.getSize(A),j=e.right-e.left,k=e.top-e.bottom;i.x/=d,i.y/=d;var l=!1;i.x-1&&a.userData.semiDetached.splice(c,1)}return H._setDetachedFrom(null),!0},H.addController=function(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},e=d.textCreator,f=d.object,g=d.propertyName,h=void 0===g?"undefined":g,i=d.width,k=void 0===i?n.PANEL_WIDTH:i,m=d.height,o=void 0===m?n.PANEL_HEIGHT:m,p=d.depth,r=void 0===p?n.PANEL_DEPTH:p,s=.5*k-n.PANEL_MARGIN,t=o-n.PANEL_MARGIN,u=n.BUTTON_DEPTH,v=new THREE.Group;v.guiType="button",v.toString=function(){return"["+v.guiType+": "+h+"]"};var w=n.createPanel(k,o,r);v.add(w);var x=s/t,y=new THREE.BoxGeometry(s,t,u,Math.floor(4*x),4,4);new THREE.SubdivisionModifier(1).modify(y),y.translate(.5*s,0,0);var z=new THREE.MeshBasicMaterial;z.visible=!1;var A=new THREE.Mesh(y.clone(),z);A.position.z=.5*u,A.position.x=.5*k;var B=new THREE.MeshBasicMaterial({color:l.BUTTON_COLOR}),C=new THREE.Mesh(y.clone(),B);A.add(C);var D=e.create(h,{scale:.866});D.position.x=.5*s-11e-6*D.layout.width*.5,D.position.z=1.2*u,D.position.y=-.025,C.add(D);var E=e.create(h);E.position.x=n.PANEL_LABEL_TEXT_MARGIN,E.position.z=r,E.position.y=-.03;var F=n.createControllerIDBox(o,l.CONTROLLER_ID_BUTTON);F.position.z=r,w.add(E,A,F);var G=(0,j.default)(A);G.events.on("onPressed",a),G.events.on("onReleased",b),c(),v.interaction=G,v.hitscan=[A,w];var H=q.create({group:v,panel:w});return v.updateControl=function(a){G.update(a),H.update(a),c()},v.name=function(a){return E.updateLabel(a),v},v.buttonLabel=function(a){return D.updateLabel(a),v},v}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],2:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a){!1!==y.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0)}function b(){B.visible=w.value,C.visible=D.hovering(),F&&(F.checkmark.visible=w.value,F.borderBox.visible=F.interaction.hovering())}function c(){if(F)return F;var a=.6*m.PANEL_HEIGHT,c=new THREE.BoxGeometry(a,a,v);c.translate(.5*a,0,0);var e=new THREE.MeshBasicMaterial;e.visible=!0;var f=new THREE.Mesh(c.clone(),e);F=f,f.position.z=v;var h=m.createPanel(a+m.BORDER_THICKNESS,a+m.BORDER_THICKNESS,v,!0);F.borderBox=h,h.material.color.setHex(2063079),h.position.x=.5*-m.BORDER_THICKNESS+.5*q,h.position.z=.5*v;var k=o.checkmark(.4*a/m.CHECKBOX_SIZE);F.checkmark=k,k.visible=w.value,k.position.z=.51*v,f.add(k);var l=(0,i.default)(f);return l.events.on("onPressed",d),F.interaction=l,F.updateControl=function(a){w.listen&&(w.value=g[j]),l.update(a),b()},F}function d(a){!1!==y.folder.visible&&!1!==F.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0,F.checkmark.visible=w.value)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,j=void 0===h?"undefined":h,l=e.initialValue,n=void 0!==l&&l,p=e.width,q=void 0===p?m.PANEL_WIDTH:p,s=e.height,t=void 0===s?m.PANEL_HEIGHT:s,u=e.depth,v=void 0===u?m.PANEL_DEPTH:u,w={value:n,listen:!1},x=m.PANEL_HEIGHT-m.CHECKBOX_SIZE,y=new THREE.Group;y.guiType="checkbox",y.toString=function(){return"["+y.guiType+": "+j+"]"};var z=f.create(j);z.position.x=m.PANEL_LABEL_TEXT_MARGIN,z.position.z=v,z.position.y=-.03;var A=void 0;y.onChange=function(a){return A=a,y},y.listen=function(){return w.listen=!0,y},y.name=function(a){return z.updateLabel(a),y};var B=void 0,C=void 0,D=void 0,E=!1;y.showInFolderHeader=function(){var a=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return a!==E&&(E=a,F=c(),a?y.folder.addHeaderItem(F):F.visible=!1),y},Object.defineProperty(y,"isShownInFolderHeader",{get:function(){return E},set:y.showInFolderHeader});var F=void 0,G=void 0;return y.setHeight=function(c){G&&y.remove(G),y.spacing=c;var d=c-x,e=d,f=v,h=.4*d/m.CHECKBOX_SIZE;G=m.createPanel(q,c,v),y.add(G);var l=new THREE.BoxGeometry(d,e,f);l.translate(.5*d,0,0);var n=new THREE.MeshBasicMaterial;n.visible=!1;var p=new THREE.Mesh(l.clone(),n);p.position.z=v,p.position.x=.5*q;var s=new THREE.MeshBasicMaterial({color:k.CHECKBOX_BG_COLOR}),t=new THREE.Mesh(l.clone(),s);p.add(t);var u=m.createControllerIDBox(c,k.CONTROLLER_ID_CHECKBOX);u.position.z=v,C=m.createPanel(d+m.BORDER_THICKNESS,e+m.BORDER_THICKNESS,f,!0),C.material.color.setHex(2063079),C.position.x=.5*-m.BORDER_THICKNESS+.5*q,C.position.z=.5*v,B=o.checkmark(h),B.position.z=.51*v,p.add(B),G.add(z,p,u,C),D=(0,i.default)(p),D.events.on("onPressed",a),b(),y.interaction=D,y.hitscan=[p,G];var A=r.create({group:y,panel:G});return y.updateControl=function(a){w.listen&&(w.value=g[j]),D.update(a),A.update(a),b()},y.folder&&y.folder.requestLayout(),y},y.setHeight(t),y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./textlabel"),h=(e(g),a("./interaction")),i=e(h),j=a("./colors"),k=d(j),l=a("./layout"),m=d(l),n=a("./graphic"),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=d(q)},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a,b,c){var d,e,f,g,h,i,j,k;switch(1===arguments.length&&(void 0!==a.x?(b=a.y,c=a.z,a=a.x):(b=a.s,c=a.v,a=a.h)),g=Math.floor(6*a),h=6*a-g,i=c*(1-b),j=c*(1-h*b),k=c*(1-(1-h)*b),g%6){case 0:d=c,e=k,f=i;break;case 1:d=j,e=c,f=i;break;case 2:d=i,e=c,f=k;break;case 3:d=i,e=j,f=c;break;case 4:d=k,e=i,f=c;break;case 5:d=c,e=i,f=j}return{r:d,g:e,b:f}}function g(a,b,c){1===arguments.length&&(b=a.g,c=a.b,a=a.r);var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=e-f,h=0===e?0:g/e,i=e;switch(e){case f:d=0;break;case a:d=b-c+g*(b0&&void 0!==arguments[0]?arguments[0]:{},h=e.object,i=e.propertyName,k=e.textCreator,m=e.width,n=void 0===m?o.PANEL_WIDTH:m,p=e.height,q=void 0===p?o.PANEL_HEIGHT:p,r=e.depth,v=void 0===r?o.PANEL_DEPTH/3:r,w=c,x=h[i],y=g(x),z={selectedHSV:{value:new THREE.Vector3(y.h,y.s,y.v)}},A=new THREE.MeshBasicMaterial({color:x}),B=new j.default,C={listen:!1},D=(0,l.default)({textCreator:k,func:w,image:A,propertyName:i,width:n,height:q,depth:v,changeColorOnHover:!1});D.guiType="ColorPicker";var E,F=!0;D.onChange=function(a){return B.on("onChange",a),D};var G=D.updateControl;return D.updateControl=function(a){C.listen&&d(),G(a)},D.listen=function(){return C.listen=!0,D},D}Object.defineProperty(c,"__esModule",{value:!0}),c.default=h;var i=a("events"),j=e(i),k=a("./imagebutton"),l=e(k),m=a("./colors"),n=(d(m),a("./layout")),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=(d(q),"\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}"),s="\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n",t="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n gl_FragColor.w = 1.0; // sjpt\n}\n",u="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n gl_FragColor.w = 1.0; // sjpt\n}\n"},{"./colors":4,"./grab":8,"./imagebutton":10,"./layout":15,"./sharedmaterials":19,events:28}],4:[function(a,b,c){"use strict";function d(a,b){var c=new THREE.Color(b),d=a.getAttribute("color"),e=void 0;d?e=d.array:(e=new Float32Array(a.getAttribute("position").array.length).fill(.5),d=a.setAttribute("color",new THREE.BufferAttribute(e,3)));for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:{},n=l.textCreator,p=l.object,r=l.propertyName,u=void 0===r?"undefined":r,v=(l.initialValue,l.options),w=void 0===v?[]:v,x=l.width,y=void 0===x?o.PANEL_WIDTH:x,z=l.height,A=void 0===z?o.PANEL_HEIGHT:z,B=l.depth,C=void 0===B?o.PANEL_DEPTH:B,D={open:!1,listen:!1},E=.5*y-o.PANEL_MARGIN,F=A-o.PANEL_MARGIN,G=C,H=A-1.2*o.PANEL_MARGIN,I=-.4*o.PANEL_MARGIN,J=25,K=new THREE.Group;K.guiType="dropdown",K.toString=function(){return"["+K.guiType+": "+u+"]"},K.userData.sourceObject=p,K.userData.sourcePropertyName=u,K.userData.setValue=function(a){if(-1===w.indexOf(a))return void console.warn('dat.GUIVR: Unknown option "'+a+'" for dropdown "'+u+'".\nValid options: ['+w.join(", ")+"]");p[u]=a,V&&V(p[u])};var L=o.createPanel(y,A,C);K.add(L),K.hitscan=[L];var M=new THREE.Group;M.visible=!1,M.hitscan=[];var N=[],O=[],P=a(),Q=b(P||" ",!1);Q.position.x=.5*o.PANEL_MARGIN+.5*y,Q.position.z=C;var R=q.downArrow();R.position.set(E-.04,0,1.01*C),Q.add(R),Q.add(M),Array.isArray(w)?M.add.apply(M,f(w.map(g))):M.add.apply(M,f(Object.keys(w).map(g))),c();var S=n.create(u);S.position.x=o.PANEL_LABEL_TEXT_MARGIN,S.position.z=C,S.position.y=-.03;var T=o.createControllerIDBox(A,m.CONTROLLER_ID_DROPDOWN);T.position.z=C;var U=o.createPanel(E+o.BORDER_THICKNESS,F+.5*o.BORDER_THICKNESS,G,!0);U.material.color.setHex(2063079),U.position.x=.5*-o.BORDER_THICKNESS+.5*y,U.position.z=.5*C,L.add(S,T,Q,U),j();var V=void 0,W=void 0;K.onChange=function(a){return V=a,K},K.onChoose=function(a){return W=a,K};var X=s.create({group:K,panel:L});return K.listen=function(){return D.listen=!0,K},K.updateControl=function(b){D.listen&&Q.setString(a()),N.forEach(function(a){a.update(b)}),X.update(b),j()},K.name=function(a){return S.updateLabel(a),K},K.setToolTip=function(a){var b=K;b.userData.tip=a,b.userData.tipObj=(0,h.createToolTip)(n,a,o.FOLDER_WIDTH,b.spacing,o.BUTTON_DEPTH)},K.getToolTip=function(){return K.userData.tip},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=g;var h=a("./textlabel"),i=e(h),j=a("./interaction"),k=e(j),l=a("./colors"),m=d(l),n=a("./layout"),o=d(n),p=a("./graphic"),q=d(p),r=a("./grab"),s=d(r),t=a("./utils")},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./textlabel":22,"./utils":23}],6:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b=c-o.PANEL_DEPTH&&console.log("GUIVR Warning: likely problem with z-order in orthographicFolderLayout")}}function g(a){if(a.isOrthographicCamera){var b=a.near,c=a.far,d=(x.length,a.left),e=a.right,f=a.top,g=a.bottom,h=a.position.z;return z.min.set(d,g,-c+h),z.max.set(e,f,-b+h),z}}function h(){function a(a){L.call(H,a)}function b(a){M.call(H,a)}function c(a,b,c){b.updateMatrixWorld(),a.applyMatrix4(b.matrixWorld),b.remove(a),c.add(a)}function d(a,b,c){c.updateMatrixWorld(),a.applyMatrix4((new THREE.Matrix4).getInverse(c.matrixWorld)),b.remove(a),c.add(a)}function h(a,b,e){for(var f=b;f.parent;)f=f.parent;var g=f;c(a,b,g),d(a,g,e)}function j(){l();var a=(0,w.getTopLevelFolder)(H);a===H?(a.modalEditor&&a.modalEditor.performLayout&&a.modalEditor.performLayout(),a.userData.layoutInProgress=!0,a.userData.columnHeight=0,a.userData.columnIndex=0,a.userData.columnYOff=-a.position.y,x.includes(H)||(x.push(H),H.userData.isOrthographic&&f())):(H.userData.columnHeight=H.folder.userData.columnHeight,H.userData.columnIndex=H.folder.userData.columnIndex,x.includes(H)&&(x.splice(x.indexOf(H),1),H.userData.isOrthographic&&f()));var b=o.PANEL_HEIGHT+o.PANEL_SPACING,c=o.FOLDER_HEIGHT+o.PANEL_SPACING,d=c;I.children.forEach(function(a){a.visible=!G.collapsed});var e=0;if(I.children.forEach(function(a,b){void 0===a.guiIndex?a.guiIndex=e+=1:e=a.guiIndex}),I.children.sort(function(a,b){return a.guiIndex-b.guiIndex}),G.collapsed)P.rotation.z=.5*Math.PI;else{P.rotation.z=0;var g=0,h=c;I.children.forEach(function(a,e){a.isFolder&&(a.userData.columnYOff=H.userData.columnYOff-g,a.performLayout());var f,i=a.spacing?a.spacing:b,j=.5*(h+i);if(a.isFolder){var f=.5*(h+c);a.position.y=g-f}else a.position.y=g-j;g-=j,h=i,e0&&void 0!==arguments[0]?arguments[0]:{},r=p.textCreator,s=p.name,u=p.guiAdd,z=p.guiRemove,B=p.addControllerFuncs,C=p.globalControllers,D=25,E=o.FOLDER_WIDTH,F=o.PANEL_DEPTH,G={collapsed:!1,previousParent:void 0},H=new THREE.Group;H.guiType="folder",H.toString=function(){return"["+H.guiType+": "+s+"]"};var I=new THREE.Group;H.add(I);var J=!1;Object.defineProperty(H,"accordion",{get:function(){return J},set:function(a){a&&!J&&H.guiChildren.filter(function(a){return a.isFolder}).map(function(a){return a.close()}),J=a,H.requestLayout()}}),H.requestLayout=function(){var a=(0,w.getTopLevelFolder)(H);a.userData.layoutInProgress?console.log("requested layout of folder "+H.folderName+" while layout already in progress..."):a.userData.layoutPending=!0},H.performLayout=j;var K=new THREE.Quaternion;H.fixFolderPosition=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.01,b=this;if(b.userData.isOrthographic){b.setRotationFromQuaternion(K);var c=(0,w.setBoxFromObject)(y,b),d=c.max.x-c.min.x,e=(c.max.y,c.max.y,b.userData.isOrthographic),f=g(e),h=c.intersect(f),i=h.getSize(A),j=e.right-e.left,k=e.top-e.bottom;i.x/=d,i.y/=d;var l=!1;i.x-1&&a.userData.semiDetached.splice(c,1)}return H._setDetachedFrom(null),!0},H.addController=function(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image -;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1);M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i),b.hoverCol=b.text?2184:16777215,b.noHoverCol=b.text?273:13421772,j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?b.hoverCol:b.noHoverCol),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m),a("./grab")),o=d(n),p=a("./utils")},{ -"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});return 0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1}),la.intersections}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length>0&&a.stopImmediatePropagation(),b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign");b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,e=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:e||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:"\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n"},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.userData.labelString!==a&&(j.geometry.update(a),j.userData.labelString=a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:THREE.VertexColors}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}], -23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeFaceNormals(),a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1).modify(M),M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i),b.hoverCol=b.text?2184:16777215,b.noHoverCol=b.text?273:13421772,j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?b.hoverCol:b.noHoverCol),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m), +a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});return 0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1}),la.intersections}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length,b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign"),e="\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n";(+THREE.REVISION>151||"three157"===searchValues.threever)&&(e="\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n",console.warn("colorspace_fragment used")),b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,f=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:f||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:e},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.userData.labelString!==a&&(j.geometry.update(a),j.userData.labelString=a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:!0}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group +;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b 151 || searchValues.threever === 'three157') { // sjpt patch + meshbasic_frag = '\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n'; + console.warn('colorspace_fragment used'); + } + module.exports = function createSDFShader (opt) { opt = opt || {}; diff --git a/modules/datguivr/sharedmaterials.js b/modules/datguivr/sharedmaterials.js index e594fbf..693ce2f 100644 --- a/modules/datguivr/sharedmaterials.js +++ b/modules/datguivr/sharedmaterials.js @@ -19,7 +19,8 @@ import * as Colors from './colors'; -export const PANEL = new THREE.MeshBasicMaterial( { color: 0xffffff, vertexColors: THREE.VertexColors } ); +// sjpt export const PANEL = new THREE.MeshBasicMaterial( { color: 0xffffff, vertexColors: THREE.VertexColors } ); +export const PANEL = new THREE.MeshBasicMaterial( { color: 0xffffff, vertexColors: true } ); export const LOCATOR = new THREE.MeshBasicMaterial(); export const FOLDER = new THREE.MeshBasicMaterial( { color: 0x000000 } ); export const TOOLTIP = new THREE.MeshBasicMaterial( { color: 0x205080, transparent: false, opacity: 0.8 } ); diff --git a/modules/thirdparty/SubdivisionModifier.js b/modules/thirdparty/SubdivisionModifier.js index 84d70e9..a5e5608 100644 --- a/modules/thirdparty/SubdivisionModifier.js +++ b/modules/thirdparty/SubdivisionModifier.js @@ -31,7 +31,7 @@ THREE.SubdivisionModifier.prototype.modify = function ( geometry ) { } - geometry.computeFaceNormals(); + //sjpt, no longer there ... geometry.computeFaceNormals(); geometry.computeVertexNormals(); }; diff --git a/package.json b/package.json index 75aefb7..1e2e805 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "main": "build/datguivr.min.js", "author": "Google Data Arts Team", "scripts": { - "dev": "./node_modules/.bin/grunt" + "dev": "./node_modules/.bin/grunt", + "devwin": ".\\node_modules\\.bin\\grunt" }, "dependencies": { "parse-bmfont-ascii": "^1.0.6", From e0e5d81995b9ea82d4e5ffbf17654fc08327a009 Mon Sep 17 00:00:00 2001 From: sjpt Date: Fri, 2 Feb 2024 20:38:02 +0000 Subject: [PATCH 20/24] more reduce interaction between makeDraggable drag and this drag --- build/datguivr.js | 4 +++- build/datguivr.map | 2 +- build/datguivr.min.js | 4 ++-- modules/datguivr/index.js | 2 ++ 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index 82028f1..87cf8b7 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -3279,6 +3279,8 @@ var GUIVR = function DATGUIVR() { input.mouseCamera = undefined; window.addEventListener('mousemove', function (event) { + if (!event.buttons) input.pressed = false; // reduce interaction between makeDraggable drag and this drag + // if a specific renderer has been defined if (mouseRenderer) { var clientRect = mouseRenderer.domElement.getBoundingClientRect(); @@ -7603,4 +7605,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLlxyXG4gKiBvciBIIHNsaWRlciBhbmQgU1Ygc3F1YXJlIHdoaWNoIHNlZW1zIHRvIGJlIHdoYXQgZGF0Lmd1aSB1c2VzLlxyXG4gKiBPciBzb21ldGhpbmcgZmFuY2llciBsaWtlIGEgaHVlIGNpcmNsZSBhcm91bmQgYW4gU1YgdHJpYW5nbGUgZXRjIGV0Yy5cclxuICpcclxuICpcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxuICAgIGdsX0ZyYWdDb2xvci53ID0gMS4wOyAvLyBzanB0XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBnbF9GcmFnQ29sb3IudyA9IDEuMDsgLy8gc2pwdFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUlxyXG4gKiBoLCBzLCB2XHJcbiovXHJcbmZ1bmN0aW9uIEhTVnRvUkdCKGgsIHMsIHYpIHtcclxuICAgIHZhciByLCBnLCBiLCBpLCBmLCBwLCBxLCB0O1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAvL2hhY2sgdG8gdGFrZSBUSFJFRS5WZWN0b3IzLi4uXHJcbiAgICAgICAgaWYgKGgueCAhPT0gdW5kZWZpbmVkKSBzID0gaC55LCB2ID0gaC56LCBoID0gaC54O1xyXG4gICAgICAgIGVsc2UgcyA9IGgucywgdiA9IGgudiwgaCA9IGguaDtcclxuICAgIH1cclxuICAgIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIGYgPSBoICogNiAtIGk7XHJcbiAgICBwID0gdiAqICgxIC0gcyk7XHJcbiAgICBxID0gdiAqICgxIC0gZiAqIHMpO1xyXG4gICAgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcclxuICAgIHN3aXRjaCAoaSAlIDYpIHtcclxuICAgICAgICBjYXNlIDA6IHIgPSB2LCBnID0gdCwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTogciA9IHEsIGcgPSB2LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyOiByID0gcCwgZyA9IHYsIGIgPSB0OyBicmVhaztcclxuICAgICAgICBjYXNlIDM6IHIgPSBwLCBnID0gcSwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDogciA9IHQsIGcgPSBwLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA1OiByID0gdiwgZyA9IHAsIGIgPSBxOyBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcjogcixcclxuICAgICAgICBnOiBnLFxyXG4gICAgICAgIGI6IGJcclxuICAgIH07XHJcbn1cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIHIgIE9iamVjdCA9IHtyLCBnLCBifVxyXG4gKiBPUlxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcblxyXG4gICAgdmFyIHBhbmVsO1xyXG5cclxuICAgIGZ1bmN0aW9uIGNoYW5nZUZuKCkge1xyXG4gICAgICAgIGltYWdlLmNvbG9yLnNldChjb2xvcik7XHJcbiAgICAgICAgZXZlbnRzLmVtaXQoJ29uQ2hhbmdlJywgY29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhbmN5UGFuZWwgPSB0cnVlO1xyXG5cclxuICAgIGZ1bmN0aW9uIHNldFBhbmVsUG9zaXRpb24oKSB7XHJcbiAgICAgICAgaWYgKCFwYW5lbCkgcmV0dXJuO1xyXG4gICAgICAgIHBhbmVsLnBvc2l0aW9uLnNldCgwLCAwLCA1KmRlcHRoKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB0b2dnbGVEZXRhaWxQYW5lbCgpIHtcclxuICAgICAgICBpZiAocGFuZWwpIHtcclxuICAgICAgICAgICAgcGFuZWwudmlzaWJsZSA9ICFwYW5lbC52aXNpYmxlO1xyXG4gICAgICAgICAgICBpZiAocGFuZWwudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gd291bGQgYmUgaGFuZHkgdG8gaGF2ZSBhIHdheSB0byBtYWtlIG5hcnJvd2VyIHBhbmVsXHJcbiAgICAgICAgICAgIHBhbmVsID0gZGF0LkdVSVZSLmNyZWF0ZShcIkNvbG9yIENob29zZXJcIik7XHJcbiAgICAgICAgICAgIHBhbmVsLmhpZGVIZWFkZXIoKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChmYW5jeVBhbmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBTVk1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBTVkZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0U1YgPSAocCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnkgPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS56ID0gcC5sb2NhbFBvaW50Lnk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBsZXQgd2lkZSA9IHRydWUsIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSC8xMDtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRTViwgU1ZNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX1dJRFRIIC8gMiwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IEhNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogSFNsaWRlckZyYWdTaGFkZXJcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0SChwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueCA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBIU1Z0b1JHQih1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3Iuc2V0UkdCKGMuciwgYy5nLCBjLmIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgSE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAvL1RPRE86IGNoZWNrIGxheW91dFxyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldEgsIEhNYXRlcmlhbCwgd2lkZSwgTGF5b3V0LlBBTkVMX0hFSUdIVCwgZGVwdGgsIGJ1dHRvbkRlcHRoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ3InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdnJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnYicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncm91cC5hZGQocGFuZWwpO1xyXG4gICAgICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHBhbmVsLmZvbGRlciA9IGdyb3VwLmZvbGRlcjsgLy9taWdodCBzdGlsbCB3YW50IHRvIGRvdWJsZSBjaGVjayBmb2xkZXIgaGllcmFyY2h5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgZXZlbnRzLm9uKCdvbkNoYW5nZScsIGNhbGxiYWNrKTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3JpZ2luYWxVcGRhdGVDb250cm9sID0gZ3JvdXAudXBkYXRlQ29udHJvbDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICkge1xyXG4gICAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIG9yaWdpbmFsVXBkYXRlQ29udHJvbChpbnB1dE9iamVjdHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKSB7XHJcbiAgICAgICAgLy9vYmplY3QgcmVmIG1pZ2h0IGhhdmUgY2hhbmdlZCwgYXMgd2VsbCBhcyB2YWx1ZS5cclxuICAgICAgICAvL2V2ZW4gaWYgcmVmIGhhc24ndCBjaGFuZ2VkLCB2YWx1ZSBzdGlsbCBtaWdodCd2ZSwgYW5kIHdlJ3JlIG5vdCBjdXJyZW50bHkgcmVmbGVjdGluZyB0aGF0LlxyXG4gICAgICAgIGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgaW1hZ2UuY29sb3IuY29weShjb2xvcik7XHJcbiAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUuY29weShSR0J0b0hTVihjb2xvcikpO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAubGlzdGVuID0gKCkgPT4ge1xyXG4gICAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MT1IgPSAweDJGQTFENjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9DT0xPUiA9IDB4NDNiNWVhO1xyXG5leHBvcnQgY29uc3QgSU5URVJBQ1RJT05fQ09MT1IgPSAweDA3QUJGNztcclxuZXhwb3J0IGNvbnN0IEVNSVNTSVZFX0NPTE9SID0gMHgyMjIyMjI7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfRU1JU1NJVkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IE9VVExJTkVfQ09MT1IgPSAweDk5OTk5OTtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDSyA9IDB4MDYwNjA2O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9GT0xERVJfQkFDSyA9IDB4MTAxMDEwO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0JBQ0sgPSAweDMxMzEzMTtcclxuZXhwb3J0IGNvbnN0IElOQUNUSVZFX0NPTE9SID0gMHgxNjE4Mjk7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1NMSURFUiA9IDB4MmZhMWQ2O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9DSEVDS0JPWCA9IDB4ODA2Nzg3O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9CVVRUT04gPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfVEVYVCA9IDB4MWVkMzZmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9EUk9QRE9XTiA9IDB4ZmZmMDAwO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0ZHX0NPTE9SID0gMHgwMDAwMDA7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0NPTE9SID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fSElHSExJR0hUX0NPTE9SID0gMHhmYTMxNzM7XHJcbmV4cG9ydCBjb25zdCBTTElERVJfQkcgPSAweDQ0NDQ0NDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfQkcgPSAweEYwRjBGMDtcclxuZXhwb3J0IGNvbnN0IFRFWFRCT1hfSElHSExJR0hUX0JHID0gMHhGRkZGRkY7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29sb3JpemVHZW9tZXRyeSggZ2VvbWV0cnksIGNvbG9yICl7XHJcbiAgY29uc3QgY29sID0gbmV3IFRIUkVFLkNvbG9yKGNvbG9yKTsgXHJcbiAgbGV0IGMgPSBnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ2NvbG9yJyk7XHJcbiAgbGV0IGE7XHJcbiAgaWYgKCFjKSB7XHJcbiAgICBhID0gbmV3IEZsb2F0MzJBcnJheShnZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXkubGVuZ3RoKS5maWxsKDAuNSk7XHJcbiAgICBjID0gZ2VvbWV0cnkuc2V0QXR0cmlidXRlKCdjb2xvcicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUoYSwgMykpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBhID0gYy5hcnJheTtcclxuICB9XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSs9Mykge1xyXG4gICAgYVtpXSA9IGNvbC5yO1xyXG4gICAgYVtpKzFdID0gY29sLmc7XHJcbiAgICBhW2krMl0gPSBjb2wuYjtcclxuICB9XHJcbiAgYy5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIC8vIGdlb21ldHJ5LmZhY2VzLmZvckVhY2goIGZ1bmN0aW9uKGZhY2Upe1xyXG4gIC8vICAgZmFjZS5jb2xvci5zZXRIZXgoY29sb3IpO1xyXG4gIC8vIH0pO1xyXG4gIC8vIGdlb21ldHJ5LmNvbG9yc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIHJldHVybiBnZW9tZXRyeTtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsLCB7Y3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge3NldFZpc2liaWxpdHl9IGZyb20gXCIuL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVEcm9wZG93bigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICBvcHRpb25zID0gW10sXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgb3BlbjogZmFsc2UsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgRFJPUERPV05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9ERVBUSCA9IGRlcHRoO1xyXG4gIGNvbnN0IERST1BET1dOX09QVElPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOICogMS4yO1xyXG4gIGNvbnN0IERST1BET1dOX01BUkdJTiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAtMC40O1xyXG4gIGNvbnN0IE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZHJvcGRvd25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIC8vYWxsb3cgZm9yIHByb2dyYW1tYXRpYyBzZXQuIEFQSSBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgc3RhYmxlLlxyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZU9iamVjdCA9IG9iamVjdDtcclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VQcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWU7XHJcbiAgZ3JvdXAudXNlckRhdGEuc2V0VmFsdWUgPSB2ID0+IHtcclxuICAgIGlmIChvcHRpb25zLmluZGV4T2YodikgPT09IC0xKSB7XHJcbiAgICAgIC8vSSBjb3VsZCBjb25zaWRlciBhbm5vdGF0aW5nIEdVSSBpdHNlbGYgd2l0aCBlcnJvciBsYWJlbHMuLi5cclxuICAgICAgY29uc29sZS53YXJuKGBkYXQuR1VJVlI6IFVua25vd24gb3B0aW9uIFwiJHt2fVwiIGZvciBkcm9wZG93biBcIiR7cHJvcGVydHlOYW1lfVwiLlxcblZhbGlkIG9wdGlvbnM6IFske29wdGlvbnMuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gdjtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Iob2JqZWN0W3Byb3BlcnR5TmFtZV0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICBncm91cC5oaXRzY2FuID0gWyBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBtb2RhbERyb3Bkb3duID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgbW9kYWxEcm9wZG93bi52aXNpYmxlID0gZmFsc2U7XHJcbiAgbW9kYWxEcm9wZG93bi5oaXRzY2FuID0gW107XHJcbiAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbnMgPSBbXTtcclxuICBjb25zdCBvcHRpb25MYWJlbHMgPSBbXTtcclxuXHJcbiAgLy8gIGZpbmQgYWN0dWFsbHkgd2hpY2ggbGFiZWwgaXMgc2VsZWN0ZWRcclxuICBjb25zdCBpbml0aWFsTGFiZWwgPSBmaW5kTGFiZWxGcm9tUHJvcCgpO1xyXG5cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGZpbmRMYWJlbEZyb21Qcm9wKCl7XHJcbiAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgIHJldHVybiBvcHRpb25zLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbk5hbWUgPT09IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMob3B0aW9ucykuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb2JqZWN0W3Byb3BlcnR5TmFtZV0gPT09IG9wdGlvbnNbIG9wdGlvbk5hbWUgXTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVPcHRpb24oIGxhYmVsVGV4dCwgaXNPcHRpb24gKXtcclxuICAgIC8vVE9ETzogdHJ1bmNhdGUgbG9uZyBsYWJlbFRleHQsIG1heWJlIHNob3cgZnVsbCB2ZXJzaW9uIHdoZW4gaG92ZXJpbmcuXHJcbiAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZVRleHRMYWJlbChcclxuICAgICAgdGV4dENyZWF0b3IsIGxhYmVsVGV4dCxcclxuICAgICAgLy9jaGVjayB3aWR0aCB2YWx1ZS4uLlxyXG4gICAgICBEUk9QRE9XTl9XSURUSCwgZGVwdGgsXHJcbiAgICAgIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SLFxyXG4gICAgICAwLjg2NlxyXG4gICAgKTtcclxuICAgIGxhYmVsLmJhY2suZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbC5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuXHJcbiAgICBpZiAoaXNPcHRpb24pIG1vZGFsRHJvcGRvd24uaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBlbHNlIGdyb3VwLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgY29uc3QgbGFiZWxJbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBsYWJlbC5iYWNrICk7XHJcbiAgICBsYWJlbEludGVyYWN0aW9uLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMucHVzaCggbGFiZWxJbnRlcmFjdGlvbiApO1xyXG4gICAgb3B0aW9uTGFiZWxzLnB1c2goIGxhYmVsICk7XHJcblxyXG5cclxuICAgIGlmKCBpc09wdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggbGFiZWxUZXh0ICk7XHJcblxyXG4gICAgICAgIGxldCBwcm9wZXJ0eUNoYW5nZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gbGFiZWxUZXh0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgcHJvcGVydHlDaGFuZ2VkID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSAhPT0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBvbkNoYW5nZWRDQiAmJiBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgIG9uQ2hhbmdlZENCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggb25DaG9vc2VDQiApe1xyXG4gICAgICAgICAgb25DaG9vc2VDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIGlmKCBzdGF0ZS5vcGVuID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgb3Blbk9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGxhYmVsLmlzT3B0aW9uID0gaXNPcHRpb247XHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjb2xsYXBzZU9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5jbGVhck1vZGFsRWRpdG9yKCk7IC8vc2hvdWxkIHdlIGNoZWNrIGlmIGl0IHdhc24ndCBzZXQgdG8gc29tZXRoaW5nIGVsc2U/P1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3Blbk9wdGlvbnMoKXtcclxuICAgIHN0YXRlLm9wZW4gPSB0cnVlO1xyXG4gICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKG1vZGFsRHJvcGRvd24pO1xyXG4gICAgLy9yZXR1cm47XHJcbiAgICAvL2xhYmVsLmlzT3B0aW9uIHNlZW1zIG1vc3RseSByZWR1bmRhbnQuXHJcbiAgICAvL2xhYmVscyAmIGJhY2tzIHNob3VsZCBiZSBhZGRlZCB0byBhIGdyb3VwIHRvIGJlIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIFxyXG4gICAgLy9tYWtpbmcgZXZlcnl0aGluZyB2aXNpYmxlIC8gaW52aXNpYmxlIHdpdGggb25lIHByb3BlcnR5XHJcbiAgICAvLyhuYiwgZXZlbiB0aG91Z2ggdGhleSBhcmUgbm93IGluIGEgZ3JvdXAgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgd2Ugc3RpbGwgbmVlZCB0byBzZXQgdmlzaWJsZS4uLlxyXG4gICAgLy9zZWUgY29tbWVudCBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSlcclxuICAgIG9wdGlvbkxhYmVscy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWwgKXtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgbGFiZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgbGFiZWwuYmFjay52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAgYmFzZSBvcHRpb25cclxuICBjb25zdCBzZWxlY3RlZExhYmVsID0gY3JlYXRlT3B0aW9uKCBpbml0aWFsTGFiZWwgfHwgJyAnLCBmYWxzZSApO1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICBjb25zdCBkb3duQXJyb3cgPSBHcmFwaGljLmRvd25BcnJvdygpO1xyXG4gIC8vIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9GR19DT0xPUiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIERST1BET1dOX1dJRFRIIC0gMC4wNCwgMCwgZGVwdGggKiAxLjAxICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gY29uZmlndXJlTGFiZWxQb3NpdGlvbiggbGFiZWwsIGluZGV4ICl7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi55ID0gLURST1BET1dOX01BUkdJTiAtIChpbmRleCVNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTisxKSAqICggRFJPUERPV05fT1BUSU9OX0hFSUdIVCApO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgbGFiZWwucG9zaXRpb24ueCArPSBEUk9QRE9XTl9XSURUSCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTik7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcHRpb25Ub0xhYmVsKCBvcHRpb25OYW1lLCBpbmRleCApe1xyXG4gICAgY29uc3Qgb3B0aW9uTGFiZWwgPSBjcmVhdGVPcHRpb24oIG9wdGlvbk5hbWUsIHRydWUgKTtcclxuICAgIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIG9wdGlvbkxhYmVsLCBpbmRleCApO1xyXG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRMYWJlbC5hZGQobW9kYWxEcm9wZG93bik7XHJcbiAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoLi4ub3B0aW9ucy5tYXAob3B0aW9uVG9MYWJlbCkpO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgbW9kYWxEcm9wZG93bi5hZGQoIC4uLk9iamVjdC5rZXlzKG9wdGlvbnMpLm1hcCggb3B0aW9uVG9MYWJlbCApICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29sbGFwc2VPcHRpb25zKCk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0RST1BET1dOICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcblxyXG4gIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggRFJPUERPV05fV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgRFJPUERPV05fSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUsIERST1BET1dOX0RFUFRILCB0cnVlICk7XHJcbiAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBjb250cm9sbGVySUQsIHNlbGVjdGVkTGFiZWwsIGJvcmRlckJveCApO1xyXG5cclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGludGVyYWN0aW9uLCBpbmRleCApe1xyXG4gICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbkxhYmVsc1sgaW5kZXggXTtcclxuICAgICAgaWYoIGxhYmVsLmlzT3B0aW9uICl7XHJcbiAgICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0JHX0NPTE9SICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlOyAvL2FzIG9mIHRoaXMgd3JpdGluZywgdGhpcyBpcyBiZWxpZXZlZCB0byBiZSByZWxpYWJsZSwgYnV0IGJld2FyZSBkcmFnb25zLCBmdXR1cmUgcmVhZGVyLlxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLnRpcE9iaikge1xyXG4gICAgICAvLyBpZiAobGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSkge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGdyb3VwLnVzZXJEYXRhLnRpcCk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgc2V0VmlzaWJpbGl0eShwYW5lbCwgZ3JvdXAudXNlckRhdGEudGlwT2JqLCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKTtcclxuICAgIH1cclxuICAgIGlmKCBsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpIHx8IHN0YXRlLm9wZW4gKXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgYm9yZGVyQm94LnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuICBsZXQgb25DaG9vc2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5vbkNob29zZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaG9vc2VDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGZpbmRMYWJlbEZyb21Qcm9wKCkgKTtcclxuICAgIH1cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbEludGVyYWN0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIH0pO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICBjb25zdCBvYmogPSBncm91cDtcclxuICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgIC8vbmIsIG9iai5zcGFjaW5nIG1heSBiZSB1bmRlZmluZWQsIGJ1dCBzaG91bGQgbm93IGhhdmUgc2Vuc2libGUgZGVmYXVsdC5cclxuICAgIG9iai51c2VyRGF0YS50aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgIC8vLy8tLS0gc2VlIGxhYmVsSW50ZXJhY3Rpb25zWzBdIGFib3ZlIGZvciBoYW5kbGluZyB1cGRhdGUuLi5cclxuICB9XHJcbiAgZ3JvdXAuZ2V0VG9vbFRpcCA9ICgpID0+IGdyb3VwLnVzZXJEYXRhLnRpcDtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlVG9vbFRpcCB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciwgc2V0Qm94RnJvbU9iamVjdCwgc2V0VmlzaWJpbGl0eSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBGT0xERVJfV0lEVEggfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG4vL0lmIHlvdSdyZSBsb29raW5nIGZvciBtYWluIGNyZWF0ZUZvbGRlciBmdW5jdGlvbiwgaXQncyBmdXJ0aGVyIGJlbG93Li4uXHJcblxyXG4vKipcclxuICogTm90IGVudGlyZWx5IHN1cmUgYWJvdXQgc3RhcnRpbmcgdG8gYWRkIHRoaXMga2luZCBvZiBnbG9iYWwgc3RhdGUgbWFuYWFnZW1lbnQgaGVyZS4uLlxyXG4gKiBUaGlzIGlzIGZvciB6LW9yZGVyIGluIDJkIG9ydGhvZ3JhcGhpYyBtb2RlLCBhbmQgbWF5YmUgc29tZSBvdGhlciB0aGluZ3Mgb25lIGRheS5cclxuICovXHJcbmNvbnN0IHRvcEZvbGRlclN0YWNrID0gW107XHJcblxyXG5jb25zdCBzY3JhdGNoRm9sZGVyQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaENhbUJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hTaXplID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpIHtcclxuICBjb25zdCBjYW0gPSB0b3BGb2xkZXJTdGFja1swXS51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICBpZiAoIWNhbSB8fCB0b3BGb2xkZXJTdGFjay5sZW5ndGggPD0gMSkgcmV0dXJuO1xyXG4gIC8vY2FtQm94U2V0dXAoY2FtKTtcclxuICBjb25zdCB0ZnMgPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoeCA9PiB4LnZpc2libGUpO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRmcy5sZW5ndGg7XHJcbiAgY29uc3QgenMgPSB0ZnMubWFwKGYgPT4gZi5wb3NpdGlvbi56KS5zb3J0KChhLGIpPT5hLWIpO1xyXG4gIHpzWy0xXSA9IC05OTk5OyAvLyBJIHN1cHBvc2UgdGhpcyBpcyB0byBkZWFsIHdpdGggYWNjZXNzaW5nIHpzW2ktMV0gYmVsb3cgwq9cXF8o44OEKV8vwq9cclxuICB6cy5mb3JFYWNoKCAoeixpKSA9PiB6c1tpXSA9IE1hdGgubWF4KHpzW2ldLCB6c1tpLTFdICsgMTAqTGF5b3V0LlBBTkVMX0RFUFRIKSk7IC8vIGluIGNhc2Ugb2YgZXF1YWxzXHJcbiAgXHJcbiAgdGZzLmZvckVhY2goKGYsIGkpID0+IHtcclxuICAgIC8vbGV0IHogPSAtMC45KmZhciArIGkqMTAqTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG4gICAgY29uc3QgeiA9IHpzW2ldO1xyXG4gICAgaWYgKHogIT09IGYucG9zaXRpb24ueikge1xyXG4gICAgICBmLnBvc2l0aW9uLnogPSB6O1xyXG4gICAgICBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICBmLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgaWYgKHRmc1tuLTFdLnBvc2l0aW9uLnogPj0gbmVhciAtIExheW91dC5QQU5FTF9ERVBUSCkge1xyXG4gICAgY29uc29sZS5sb2coXCJHVUlWUiBXYXJuaW5nOiBsaWtlbHkgcHJvYmxlbSB3aXRoIHotb3JkZXIgaW4gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0XCIpO1xyXG4gIH1cclxuICAvL2NvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lICsgJ1xcdDogJyArIGYucG9zaXRpb24ueikuam9pbignXFxuJyl9XWApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjYW1Cb3hTZXR1cChjYW0pIHtcclxuICBpZiAoIWNhbS5pc09ydGhvZ3JhcGhpY0NhbWVyYSkgcmV0dXJuO1xyXG4gIGNvbnN0IG5lYXIgPSBjYW0ubmVhciwgZmFyID0gY2FtLmZhciwgbiA9IHRvcEZvbGRlclN0YWNrLmxlbmd0aDtcclxuICBjb25zdCBsID0gY2FtLmxlZnQsIHIgPSBjYW0ucmlnaHQsIHQgPSBjYW0udG9wLCBiID0gY2FtLmJvdHRvbTtcclxuICBjb25zdCB6ID0gY2FtLnBvc2l0aW9uLno7IC8vbm90IHN0cmljdGx5IHJpZ2h0Li4uXHJcbiAgc2NyYXRjaENhbUJveC5taW4uc2V0KGwsIGIsIC1mYXIgKyB6KTtcclxuICBzY3JhdGNoQ2FtQm94Lm1heC5zZXQociwgdCwgLW5lYXIgKyB6KTtcclxuICByZXR1cm4gc2NyYXRjaENhbUJveDtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRm9sZGVyKHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBuYW1lLFxyXG4gIGd1aUFkZCxcclxuICBndWlSZW1vdmUsXHJcbiAgYWRkQ29udHJvbGxlckZ1bmNzLFxyXG4gIGdsb2JhbENvbnRyb2xsZXJzXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCB3aWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgY29uc3QgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEg7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgY29sbGFwc2VkOiBmYWxzZSxcclxuICAgIHByZXZpb3VzUGFyZW50OiB1bmRlZmluZWRcclxuICB9O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImZvbGRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke25hbWV9XWA7XHJcblxyXG4gIGNvbnN0IGNvbGxhcHNlR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5hZGQoIGNvbGxhcHNlR3JvdXAgKTtcclxuXHJcbiAgdmFyIGlzQWNjb3JkaW9uID0gZmFsc2U7XHJcbiAgLyoqIFdoZW4gdHJ1ZSwgd2lsbCBrZWVwIG9ubHkgb25lIGNoaWxkIGZvbGRlciBvZiB0aGlzIGZvbGRlciBvcGVuIGF0IGEgdGltZS5cclxuICAgKiBTaWJsaW5ncyBhdXRvbWF0aWNhbGx5IGNsb3NlLlxyXG4gICAqL1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdhY2NvcmRpb24nLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzQWNjb3JkaW9uO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKCBuZXdWYWx1ZSAmJiAhaXNBY2NvcmRpb24gKSBncm91cC5ndWlDaGlsZHJlbi5maWx0ZXIoIGM9PmMuaXNGb2xkZXIgKS5tYXAoIGM9PmMuY2xvc2UoKSApO1xyXG4gICAgICBpc0FjY29yZGlvbiA9IG5ld1ZhbHVlO1xyXG4gICAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIC8vZmxhZyB0aGUgbmVlZCBmb3IgcGVyZm9ybWluZyBsYXlvdXQgb2YgdGhlIGZvbGRlciBoaWVyYXJjaHkgaW4gd2hpY2ggdGhpcyBpcyBjb250YWluZWQuXHJcbiAgZ3JvdXAucmVxdWVzdExheW91dCA9ICgpID0+IHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICh0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcykge1xyXG4gICAgICBjb25zb2xlLmxvZyhgcmVxdWVzdGVkIGxheW91dCBvZiBmb2xkZXIgJHtncm91cC5mb2xkZXJOYW1lfSB3aGlsZSBsYXlvdXQgYWxyZWFkeSBpbiBwcm9ncmVzcy4uLmApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vdG9wRm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL3Nob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIGluZGV4LmpzIHVwZGF0ZSg/KSBmb3IgZWFjaCB0b3BGb2xkZXIsIHRoZW4gZnJvbSB3aXRoaW4gcGVyZm9ybUxheW91dCgpIGZvciBlYWNoIGNoaWxkIGZvbGRlclxyXG4gIGdyb3VwLnBlcmZvcm1MYXlvdXQgPSBwZXJmb3JtTGF5b3V0O1xyXG5cclxuICBjb25zdCBzdHJhaWdodFJvdGF0aW9uID0gbmV3IFRIUkVFLlF1YXRlcm5pb24oKTtcclxuICAvL3Byb3ZpZGUgYXJndW1lbnRzIGZvciBob3cgY29uc3RyYWluZWQgdG8gYmUsIGFuZCByZS11c2Ugc2FtZSBmdW5jdGlvbiBib3RoIG9uIGRldGFjaCBhbmQgZWxzZXdoZXJlP1xyXG4gIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uID0gZnVuY3Rpb24odGhyZXNoPTAuMDEpIHtcclxuICAgIGNvbnN0IGYgPSB0aGlzO1xyXG4gICAgaWYgKCFmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSByZXR1cm47XHJcbiAgICAvL2Fsd2F5cyBmb3JjZSByb3RhdGlvbiBzdHJhaWdodCBmb3J3YXJkLi4uXHJcbiAgICBmLnNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24oc3RyYWlnaHRSb3RhdGlvbik7XHJcblxyXG4gICAgLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbiAgICAvL21heWJlIEkgY291bGQgdXNlIGEgQm94MiBhbnl3YXkgc2luY2UgM2QgbWlnaHQganVzdCBjb25mdXNlIHRoaW5ncy5cclxuICAgIGNvbnN0IGJveCA9IHNldEJveEZyb21PYmplY3Qoc2NyYXRjaEZvbGRlckJveCwgZik7XHJcbiAgICBjb25zdCBib3hXID0gYm94Lm1heC54IC0gYm94Lm1pbi54LCBib3hIID0gYm94Lm1heC55LWJveC5tYXgueTtcclxuICAgIFxyXG4gICAgY29uc3QgY2FtID0gZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYztcclxuICAgIGNvbnN0IGNhbUJveCA9IGNhbUJveFNldHVwKGNhbSk7IC8vYml0IHdhc3RlZnVsIHRvIGNhbGwgdGhpcyBoZXJlLCBidXQgaW5zaWduaWZpY2FudC5cclxuICAgIC8vcmVhbGx5LCBJIHdhbnQgdG8ga25vdyBpZiBpdCdzICdtb3N0bHknIGludmlzaWJsZS5cclxuICAgIC8vVXNpbmcgdHdvIGJveGVzLCByYXRoZXIgdGhhbiBmcnVzdHVtLnNldEZyb21NYXRyaXgoIG1hdC5tdWx0aXBseU1hdHJpY2VzKCBjYW0ucHJvamVjdGlvbk1hdHJpeCwgY2FtLm1hdHJpeFdvcmxkSW52ZXJzZSApICk7XHJcbiAgICAvLyhmcnVzdHVtIGlzIHVubmVjZXNzYXJ5ICpjb3VnaCppZiB3ZSBhc3N1bWUgb3J0aG9ncmFwaGljIHBlcnNwZWN0aXZlLCBubyBjYW1lcmEgdHJhbnNmb3JtICYgYXJlIGdlbmVyYWxseSBsYXggYWJvdXQgeiopXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSBib3guaW50ZXJzZWN0KGNhbUJveCk7IC8vY2FyZWZ1bCBvZiBvcmRlcjsgaW50ZXJzZWN0KCkgbXV0YXRlc1xyXG4gICAgLy8oWFhYOiBzdHJpY3RseSBzcGVha2luZywgaWRlYWxseSBJIHdvdWxkIHRha2UgY2FtZXJhIG1hdHJpeFdvcmxkIGludG8gYWNjb3VudCBpZiBJIHdhbnQgdG8gYmUgcHJvcGVyKVxyXG4gICAgLy8obWlnaHQganVzdCBtYWtlIGxvZyBhIHdhcm5pbmcgaWYgaXQncyBzZXQgaG93IEkgZG9uJ3QgZXhwZWN0IGl0LCBidXQgcHJlZmVyIG5vdCB0byBsZWF2ZSB0cmFwcy4pXHJcbiAgICBcclxuICAgIC8vbG9vayBhdCBkaW1lbnNpb25zIG9mIGludGVyc2VjdGlvbiBhbmQgZm9yY2UgaW53YXJkcyBpZiBuZWNlc3NhcnkuLi5cclxuICAgIGNvbnN0IGludGVyc2VjdGlvblNpemUgPSBpbnRlcnNlY3Rpb24uZ2V0U2l6ZShzY3JhdGNoU2l6ZSk7XHJcbiAgICBjb25zdCBzY3JlZW5XID0gY2FtLnJpZ2h0IC0gY2FtLmxlZnQsIHNjcmVlbkggPSBjYW0udG9wIC0gY2FtLmJvdHRvbTtcclxuICAgIC8vd29yayBpbiB1bml0cyBhcyBmcmFjdGlvbiBvZiBib3ggd2lkdGggKGFsdGhvdWdoIHRoYXQncyBub3QgYSBncmVhdCBpZGVhIHdpdGggbXVsdGktY29sdW1uIGZvbGRlcnMpXHJcbiAgICBpbnRlcnNlY3Rpb25TaXplLnggLz0gYm94VzsgaW50ZXJzZWN0aW9uU2l6ZS55IC89IGJveFc7XHJcbiAgICBsZXQgbmVlZHNVcGRhdGUgPSBmYWxzZTtcclxuICAgIC8vY29uc29sZS5sb2coYCR7Zi5mb2xkZXJOYW1lfTogJHtKU09OLnN0cmluZ2lmeShpbnRlcnNlY3Rpb25TaXplKX0sIHRocmVzaDogJHt0aHJlc2h9YCk7XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS54IDwgdGhyZXNoKSB7IC8vVE9ETzogcGFyYW1hdGVyaXNlIC8gbm9uLW1hZ2ljLW51bWJlclxyXG4gICAgICAvL1RPRE8gd29yayBvdXQgd2hpY2ggc2lkZSB3ZSdyZSBvbiwgbW92ZSBieSBvYmplY3Qgd2lkdGguLi5cclxuICAgICAgZi5wb3NpdGlvbi54ID0gY2FtLmxlZnQgKyBzY3JlZW5XLzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnkgPCB0aHJlc2gpIHtcclxuICAgICAgZi5wb3NpdGlvbi55ID0gY2FtLmJvdHRvbSArIHNjcmVlbkgvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKG5lZWRzVXBkYXRlKSBmLnVwZGF0ZU1hdHJpeCgpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaXNDb2xsYXBzZWQgPSAoKSA9PiB7IHJldHVybiBzdGF0ZS5jb2xsYXBzZWQgfVxyXG4gIFxyXG4gIC8vdXNlZnVsIHRvIGhhdmUgYWNjZXNzIHRvIHRoaXMgYXMgd2VsbC4gVXNpbmcgaW4gcmVtb3ZlIGltcGxlbWVudGF0aW9uXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnZ3VpQ2hpbGRyZW4nLCB7XHJcbiAgICAvL3BlcmhhcHMgbW9kYWxFZGl0b3Igc2hvdWxkIGFsc28gY291bnQgYXMgYSBtZW1iZXIgb2YgdGhpcy4uLlxyXG4gICAgLy9jdXJyZW50bHkgY2FuJ3Qgc2VlIGFueXRoaW5nIGluIGltcGxlbWVudGF0aW9uIHRoYXQgd291bGQgcmVxdWlyZSB0aGF0XHJcbiAgICAvLy0tIGFkZGluZyBoZWFkZXJJdGVtcyB0aG91Z2gsIHNvIHRoZXknbGwgZ2V0IHBpY2tlZCB1cCBieSByZW1vdmUoKVxyXG4gICAgLy8gLSBtYXliZSBzYW1lIHNob3VsZCBhcHBseSB0byBtb2RhbEVkaXRvclxyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBbIC4uLmNvbGxhcHNlR3JvdXAuY2hpbGRyZW4sIC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIF0gfVxyXG4gIH0pO1xyXG4gIC8vIHJldHVybnMgdHJ1ZSBpZiBhbGwgb2YgdGhlIHN1cHBsaWVkIGFyZ3MgYXJlIG1lbWJlcnMgb2YgdGhpcyBmb2xkZXJcclxuICBncm91cC5oYXNDaGlsZCA9IGZ1bmN0aW9uICggLi4uYXJncyApe1xyXG4gICAgcmV0dXJuICFhcmdzLmluY2x1ZGVzKChvYmopID0+IHsgcmV0dXJuIGdyb3VwLmd1aUNoaWxkcmVuLmluZGV4T2Yob2JqKSA9PT0gLTF9KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmZvbGRlck5hbWUgPSBuYW1lOyAvL2ZvciBkZWJ1Z2dpbmdcclxuICBcclxuICAvLyAgWWVhaC4gR3Jvc3MuXHJcbiAgY29uc3QgYWRkT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkO1xyXG4gIC8vYXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyB0aGlzIHRvIGJlaGF2ZSBsaWtlIGEgcmVndWxhciBUSFJFRS5Hcm91cCwgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBvZiByZW1vdmUgc2hvdWxkbid0IGh1cnRcclxuICBjb25zdCByZW1vdmVPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmU7IFxyXG5cclxuICBmdW5jdGlvbiBhZGRJbXBsKCBvICl7XHJcbiAgICAvLyBJIGNvdWxkIGNoYW5nZSB0aGlzIGZ1bmN0aW9uIGFzIHBhcnQgb2YgYSByZWZhY3RvciB0byBwbGFjZSBldmVyeXRoaW5nIGF0IHRvcEZvbGRlciBsZXZlbC4uLlxyXG4gICAgLy8gaXMgdGhhdCBhIGdvb2QgaWRlYSwgb3IgYSBiYWQgaWRlYT9cclxuICAgIGFkZE9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHJlbW92ZUltcGwoIG8gKXtcclxuICAgIHJlbW92ZU9yaWdpbmFsLmNhbGwoIGdyb3VwLCBvICk7XHJcbiAgfVxyXG5cclxuICAvL2FkZEltcGwoIGNvbGxhcHNlR3JvdXAgKTsgLy9yZWR1bmRhbnQuXHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgYWRkSW1wbCggcGFuZWwgKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBuYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAxLjU7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsICk7XHJcblxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IExheW91dC5jcmVhdGVEb3duQXJyb3coKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCAweGZmZmZmZiApO1xyXG4gIGRvd25BcnJvdy5wb3NpdGlvbi5zZXQoIDAuMDUsIDAsIGRlcHRoICAqIDEuMDEgKTtcclxuICBwYW5lbC5hZGQoIGRvd25BcnJvdyApO1xyXG5cclxuICBjb25zdCBncmFiYmVyID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgTGF5b3V0LkZPTERFUl9HUkFCX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBncmFiYmVyLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODY7IC8vWFhYOiBtYWdpYyBudW1iZXJcclxuICBncmFiYmVyLm5hbWUgPSAnZ3JhYmJlcic7XHJcbiAgYWRkSW1wbCggZ3JhYmJlciApO1xyXG5cclxuICBjb25zdCBncmFiQmFyID0gR3JhcGhpYy5ncmFiQmFyKCk7XHJcbiAgZ3JhYkJhci5wb3NpdGlvbi5zZXQoIHdpZHRoICogMC41LCAwLCBkZXB0aCAqIDEuMDAxICk7XHJcbiAgZ3JhYmJlci5hZGQoIGdyYWJCYXIgKTtcclxuICBncm91cC5pc0ZvbGRlciA9IHRydWU7XHJcbiAgZ3JvdXAuaGlkZUdyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gZmFsc2UgfTtcclxuICBncm91cC5zaG93R3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSB0cnVlIH07XHJcbiAgZ3JvdXAuaGlkZUhlYWRlciA9IGZ1bmN0aW9uKCkgeyBcclxuICAgIGdyb3VwLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAvL2Rlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgfTtcclxuICBncm91cC5zaG93SGVhZGVyID0gKCkgPT4ge1xyXG4gICAgLy9ncmFiYmVyLnZpc2libGUgPSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL1RPRE86IGludGVyZmFjZSBmb3IgYWRkaW5nIHRoaW5ncyB0byB0aGlzLi4uIE5PVCAnc2hvd0luRm9sZGVySGVhZGVyJyBtZXRob2QgLyBwcm9wZXJ0eSBvbiBsaW5lYXIgaXRlbXMuLi5cclxuICBjb25zdCBoZWFkZXJJdGVtcyA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHBhbmVsLmFkZChoZWFkZXJJdGVtcyk7XHJcbiAgLy90aGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byBtYWtlIG9iaiBiZWhhdmUgYXMgY29udHJvbGxlciBsYXllZCBvdXQgaW4gaGVhZGVySXRlbXMsXHJcbiAgLy9iYXNlZCBvbiBzb21lIGFzc3VtcHRpb25zIGFib3V0IG9iaiB0aGF0IG1heSBiZSB0cnVlIGF0IHRpbWUgb2Ygd3JpdGluZy4uLlxyXG4gIC8vYnV0IGFyZSBwZW5kaW5nIG1vcmUgcmlnb3JvdXMgc3BlY2lmaWNhdGlvbiAvIHJlZmFjdG9yaW5nIGV0Yy5cclxuICBncm91cC5hZGRIZWFkZXJJdGVtID0gZnVuY3Rpb24ob2JqKXtcclxuICAgIGhlYWRlckl0ZW1zLmFkZChvYmopO1xyXG4gICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgb2JqLmlzSGVhZGVyT2JqZWN0ID0gdHJ1ZTtcclxuXHJcbiAgICAvL2Fsc28gbmVlZCB0byBhZGQgdG8gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3QgZXRjLiBOQjo6IG1ha2Ugc3VyZSB0aGF0IHRoZXkgd2lsbCBnZXQgcmVtb3ZlZCBhcyB3ZWxsXHJcbiAgICAvLy0tLSB0aGlzIGdlbmVyaWMgaW50ZXJhY3Rpb24udXBkYXRlIGRvZXNuJ3QgbWFrZSBsaXN0ZW4oKSB3b3JrIHByb3Blcmx5LlxyXG4gICAgaWYgKCFvYmoudXBkYXRlQ29udHJvbCkgb2JqLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4gb2JqLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgb2JqLmhpdHNjYW4gPSBbIG9iaiBdOyAvL2hhY2t5IGhhY2t5XHJcbiAgICBnbG9iYWxDb250cm9sbGVycy5wdXNoKG9iaik7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogMHg4ODg4ODgsIHRyYW5zcGFyZW50OiB0cnVlfSk7XHJcbiAgY29uc3QgaCA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44O1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvblJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIGgsIGgsIExheW91dC5CVVRUT05fREVQVEgqMiApO1xyXG4gIC8vc29tZXdoYXQgYmFja3dhcmRzIHdheSBvZiBnZXR0aW5nIHRleHR1cmVzLi4uIFRPRE8gbWF5YmUgY2hhbmdlIChhbG9uZyB3aXRoIG90aGVyIHN0eWxlIGNvbnNpc3RlbmN5IHR5cGUgc3R1ZmYpXHJcbiAgY29uc3QgZG9ja1RleHR1cmUgPSBHcmFwaGljLmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgY29uc3QgdW5kb2NrVGV4dHVyZSA9IEdyYXBoaWMudW5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uID0gbmV3IFRIUkVFLk1lc2goICBkZXRhY2hCdXR0b25SZWN0LCBkZXRhY2hCdXR0b25NYXRlcmlhbCApO1xyXG4gIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gZmFsc2U7XHJcbiAgZGV0YWNoQnV0dG9uLnBvc2l0aW9uLnggPSBMYXlvdXQuRk9MREVSX1dJRFRIIC0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihkZXRhY2hCdXR0b24pO1xyXG4gIGRldGFjaEJ1dHRvbi5pbnRlcmFjdGlvbiA9IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uO1xyXG4gIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHtcclxuICAgICAgZ3JvdXAucmVhdHRhY2goKTtcclxuICAgIH0gZWxzZSBncm91cC5kZXRhY2goKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuICAvL2hlYWRlckl0ZW1zLmFkZChkZXRhY2hCdXR0b24pO1xyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0oZGV0YWNoQnV0dG9uKTtcclxuXHJcbiAgbGV0IGlzRGV0YWNoYWJsZSA9IGZhbHNlO1xyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggZ3JvdXAsICdkZXRhY2hhYmxlJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0RldGFjaGFibGU7XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAobmV3VmFsdWUgPT09IGlzRGV0YWNoYWJsZSkgcmV0dXJuO1xyXG4gICAgICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgICBpc0RldGFjaGFibGUgPSBuZXdWYWx1ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGdyb3VwLmFkZCA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBjb25zdCBuZXdDb250cm9sbGVyID0gZ3VpQWRkKCAuLi5hcmdzICk7XHJcblxyXG4gICAgaWYoIG5ld0NvbnRyb2xsZXIgKXtcclxuICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggbmV3Q29udHJvbGxlciApO1xyXG4gICAgICByZXR1cm4gbmV3Q29udHJvbGxlcjtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgU29tZSBjb250cm9sbGVycyBtYXkgYnJpbmcgdXAgc3ViLUdVSXMgd2hpY2ggaGF2ZSB0aGUgcG90ZW50aWFsXHJcbiAgICB0byBvdmVybGFwIC8gY2xhc2guICBUaGlzIGVuc3VyZXMgb25seSBvbmUgaXMgcHJlc2VudCBhdCBhIHRpbWUuXHJcbiAgKi9cclxuICBncm91cC5zZXRNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKGUpe1xyXG4gICAgLy9UaGlzIGNvdWxkIGdvIHdyb25nIGlmIGZvbGRlciBoaWVyYXJjaHkgY2hhbmdlcyBzaWduaWZpY2FudGx5LlxyXG4gICAgLy9TaG91bGQgYmUgZ29vZCBlbm91Z2ggZm9yIHJvY2snbidyb2xsIChmYW1vdXMgbGFzdCB3b3JkcykuXHJcbiAgICAvL0kgY291bGQgbWFrZSBpdCBzbyB0aGF0IG9ubHkgb25lIG9mIHRoZXNlIHRoaW5ncyB3YXMgZXZlciB2aXNpYmxlXHJcbiAgICAvL2Fjcm9zcyB0aGUgZW50aXJlIHN5c3RlbS4gIFRoYXQgc2hvdWxkIGJlIGVhc2llciB0byBtYWtlIHJvYnVzdCwgYW55d2F5Li4uXHJcbiAgICAvL2FuZCBzYXZlcyBoZWFkYWNoZXMgZG93biB0aGUgbGluZS5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBlO1xyXG4gICAgaWYgKCFlKSByZXR1cm47XHJcbiAgICBlLnZpc2libGUgPSB0cnVlO1xyXG4gICAgaWYgKGUucGVyZm9ybUxheW91dCkgZS5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICBmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IHRydWU7XHJcbiAgICAvL2FkZCBhIGZsYWcgdG8gYWxsIGNoaWxkcmVuIHJlY3Vyc2l2ZWx5IHNvIHRoYXQgaW50ZXJhY3Rpb24gc3lzdGVtIGNhbiBpZGVudGlmeSB0aGVtIGFzIGJlbG9uZ2luZyB0byBhIG1vZGFsIGVkaXRvclxyXG4gICAgLy9UT0RPOiBza2lwIGlmIGFscmVhZHkgZG9uZS4uLlxyXG4gICAgZnVuY3Rpb24gZGVjb3JhdGVDaGlsZHJlbihwYXJlbnQpIHtcclxuICAgICAgcGFyZW50LmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgYy51c2VyRGF0YS5wYXJ0T2ZNb2RhbCA9IGU7XHJcbiAgICAgICAgZGVjb3JhdGVDaGlsZHJlbihjKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkZWNvcmF0ZUNoaWxkcmVuKGUpO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIGN1cnJlbnQgbW9kYWwgZWRpdG9yIGZyb20gdGhpcyBmb2xkZXJcclxuICAgKiAqKmJ1dCBub3QgaWYgaXQgd2FzIGFkZGVkIGR1cmluZyB0aGUgY3VycmVudCBjb250cm9sbGVyIHVwZGF0ZSxcclxuICAgKiBhcyBpbmRpY2F0ZWQgYnkgYSBmbGFnIHNldCBpbiBzZXRNb2RhbENvbnRyb2xsZXIgYW5kIHJlc2V0IGluIGluZGV4LmpzIHVwZGF0ZSoqXHJcbiAgICovXHJcbiAgZ3JvdXAuY2xlYXJNb2RhbEVkaXRvciA9IGZ1bmN0aW9uKCkge1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKCFmb2xkZXIubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAvL2ZvbGRlci5zZXRNb2RhbEVkaXRvcihudWxsKTtcclxuICAgICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikge1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG5cclxuICAvKiBcclxuICBSZW1vdmVzIHRoZSBnaXZlbiBjb250cm9sbGVycyBmcm9tIHRoZSBHVUkuICA+Pj5PbmNlIHJlbW92ZWQsIHRoZSBjb250cm9sbGVycyB3aWxsIGVmZmVjdGl2ZWx5IGJlIGludmFsaWQgZm9yIHVzZTw8PFxyXG4gID4+PiBzbyBkaXNwb3NlIG9mIHRoZW0gYXMgd2VsbD8gTmVlZCB0byBiZSBjYXJlZnVsIGFib3V0IHRleHR1cmVzIC8gYW55dGhpbmcgc2hhcmVkLi4uIDw8PFxyXG4gIGFzIHRoZXkgd2lsbCBhbHNvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGRhdC5HVUlWUiBjb250cm9sbGVycy4gIFVzZSAnZGV0YWNoJyBpbnN0ZWFkIGlmIGl0IGlzXHJcbiAgZGVzaXJlZCB0byByZXVzZSBHVUkgZWxlbWVudHMgZWxzZXdoZXJlLlxyXG5cclxuICBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbnZhbGlkLCBpdCB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHRoaXMgYmVmb3JlIG1ha2luZyBhbnkgY2hhbmdlcywgXHJcbiAgYWJvcnRpbmcgdGhlIHByb2Nlc3MgYW5kIHJldHVybmluZyBmYWxzZSBmcm9tIHRoaXMgbWV0aG9kLlxyXG5cclxuICBOb3RlOiBhcyB3aXRoIGFkZCwgdGhpcyBvdmVyd3JpdGVzIGFuIGV4aXN0aW5nIHByb3BlcnR5IG9mIFRIUkVFLkdyb3VwLlxyXG4gIEFzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgZm9sZGVycyB0byBiZWhhdmUgbGlrZSByZWd1bGFyIFRIUkVFLkdyb3VwcywgdGhhdCBzaG91bGRuJ3QgbWF0dGVyLlxyXG4gICovXHJcbiAgZ3JvdXAucmVtb3ZlID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIC8vZ3VpUmVtb3ZlIGlzIHBhc3NlZCBpbiBmcm9tIGluZGV4LmpzIGFuZCBpcyByZXNwb25zaWJsZSBmb3Igc2FuaXR5IGNoZWNraW5nICYgcmVtb3ZpbmcgZnJvbSBnbG9iYWwgY29udHJvbGxlcnMgbGlzdFxyXG4gICAgY29uc3Qgb2sgPSBndWlSZW1vdmUoIC4uLmFyZ3MgKTsgLy8gYW55IGludmFsaWQgYXJndW1lbnRzIHNob3VsZCBjYXVzZSB0aGlzIHRvIHJldHVybiBmYWxzZSB3aXRoIG5vIHNpZGUtZWZmZWN0c1xyXG4gICAgaWYgKCFvaykgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGNvbnNvbGUuYXNzZXJ0KGdyb3VwLmhhc0NoaWxkKG9iaiksIFwiaW50ZXJuYWwgcHJvYmxlbSB3aXRoIGhvdXNla2VlcGluZyBsb2dpYyBvZiBkYXQuR1VJVlIgZm9sZGVyIG5vdCBjYXVnaHQgYnkgc2FuaXR5IGNoZWNrXCIpO1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgb2JqLnJlbW92ZSggLi4ub2JqLmd1aUNoaWxkcmVuICk7XHJcbiAgICAgIH1cclxuICAgICAgY29sbGFwc2VHcm91cC5yZW1vdmUob2JqKTtcclxuICAgIH0pO1xyXG4gICAgLy9UT0RPOiBkZWZlciBhY3R1YWwgbGF5b3V0IHBlcmZvcm1hbmNlOyBzZXQgYSBmbGFnIGFuZCBtYWtlIHN1cmUgaXQgZ2V0cyBkb25lIGJlZm9yZSBhbnkgcmVuZGVyaW5nIG9yIGhpdC10ZXN0aW5nIGhhcHBlbnMuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9O1xyXG5cclxuICAvL3JhdGhlciB0aGFuIG1ldGhvZCwgZGV0YWNoZWRQYXJlbnQgYmUgYSBwcm9wZXJ0eSB0aGF0IGRvZXMgdGhpcyBzdHVmZiBpbiBzZXR0ZXIuLi5cclxuICAvL2FueXdheSwgYm90aCBhcmUgcmVhbGx5IG1lYW50IGZvciBpbnRlcm5hbCB1c2UsIGFzIGhpbnRlZCBieSBfIGluIG5hbWUuXHJcbiAgZ3JvdXAuX3NldERldGFjaGVkRnJvbSA9IChwYXJlbnQpID0+IHtcclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50ID0gcGFyZW50O1xyXG4gICAgaWYgKHBhcmVudCA9PT0gbnVsbCkge1xyXG4gICAgICBkZXRhY2hCdXR0b24ubWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLm1hcCA9IGRvY2tUZXh0dXJlO1xyXG4gICAgICBncm91cC5zaG93SGVhZGVyKCk7XHJcbiAgICAgIGdyb3VwLnNob3dHcmFiYmVyKCk7XHJcbiAgICAgIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBEZXRhY2ggYSBjaGlsZCBmb2xkZXIgZnJvbSB0aGlzIGZvbGRlciBoaWVyYXJjaHksIHN1Y2ggdGhhdCBpdCBjYW4gYmUgdXNlZCBlbHNld2hlcmUgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqIFxyXG4gICAqICh3aWxsIG5vdCBiZSB2aXNpYmxlIHVudGlsIGV4cGxpY2l0bHkgYWRkZWQgZWxzZXdoZXJlOyBcclxuICAgKiBjYWxsaW5nIGRldGFjaCgpIGluc3RlYWQgd2lsbCBkbyB0aGlzIGF1dG9tYXRpY2FsbHksIGFuZCBpcyBtb3JlIGludGVuZGVkIGZvciB1c2UgaW4gYXBwbGljYXRpb24gY29kZVxyXG4gICAqIHdoaWxlIHRoaXMgbWV0aG9kIGlzIG1vcmUgb2YgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsLilcclxuICAgKi9cclxuICBncm91cC5kZXRhY2hDaGlsZCA9IChjaGlsZCkgPT4ge1xyXG4gICAgaWYgKCFjaGlsZC5pc0ZvbGRlciB8fCBjaGlsZC5mb2xkZXIgIT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICBjaGlsZC5fc2V0RGV0YWNoZWRGcm9tKGdyb3VwKTtcclxuICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKGNoaWxkKTtcclxuICAgIC8vVEhSRUUuT2JqZWN0M0QucHJvdG90eXBlLnJlbW92ZS5jYWxsKGdyb3VwLCBjaGlsZCk7XHJcbiAgICByZW1vdmVJbXBsKGNoaWxkKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDsgLy9vciBjaGlsZD9cclxuICB9O1xyXG5cclxuICAvKlxyXG4gICAgRGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gaXRzIHBhcmVudCwgYW5kIHJlYXR0YWNoIHRvIHNjZW5lZ3JhcGggYXMgYSBzaWJsaW5nIG9mIHRoZSAndG9wIGxldmVsJyBmb2xkZXIgaW5cclxuICAgIHRoZSBoaWVyYXJjaHkgdGhpcyBwcmV2aW91c2x5IHdhcyBhIG1lbWJlciBvZi5cclxuICAqL1xyXG4gIGdyb3VwLmRldGFjaCA9ICgpID0+IHtcclxuICAgIGlmIChncm91cC5mb2xkZXIgPT09IGdyb3VwKSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL2F1dG9tYXRpY2FsbHkgYWRkIHRvIFRIUkVFIHBhcmVudCBvZiB0b3AgbGV2ZWwgZm9sZGVyIGFuZCB0cnkgdG8gc2V0IGFwcHJvcHJpYXRlIHNjYWxlIC8gdHJhbnNmb3JtLi4uXHJcbiAgICAvL2lmIHRoYXQgZm9sZGVyIGJlaW5nTW92ZWQgYXQgdGhlIHByZXNlbnQgdGltZSwgdGhlbiBpdCB3aWxsIGhhdmUgYW4gb2xkUGFyZW50IHRvIHdoaWNoIHdlIHNob3VsZCBhdHRhY2ggaW5zdGVhZC5cclxuICAgIC8vLi4uYWx0aG91Z2ggaXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0aGUgZGV0YWNoZWQgZm9sZGVyIHRvIG1vdmUgd2l0aCB0aGUgY29udHJvbGxlciB1bnRpbCBidXR0b24gaXMgcmVsZWFzZWQuLi5cclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGdyb3VwLmZvbGRlci5kZXRhY2hDaGlsZChncm91cCk7XHJcbiAgICBcclxuICAgIC8vYWRkaW5nIHRvIHRvcEZvbGRlci5wYXJlbnQgSUYgQVZBSUxBQkxFLCBub3Qgb2xkUGFyZW50LCBwZW5kaW5nIHdvcmtpbmcgb3V0IHRyYW5zZm9ybSBsYXRlciBpZiBiZWluZ01vdmVkLi4uXHJcbiAgICBjb25zdCBwYXIgPSB0b3BGb2xkZXIucGFyZW50IHx8IGdyb3VwLnBhcmVudDsgXHJcbiAgICBpZiAoIXBhcikgcmV0dXJuOyAvL1NKUFQgY2hhbmdlIGZyb20gQ1N5bnRoLCBub3QgY2FyZWZ1bGx5IHJldmlld2VkIGJ1dCBwcm9iYWJseSByaWdodC5cclxuICAgIHBhci5hZGQoZ3JvdXApO1xyXG4gICAgY29uc3QgbSA9IHRvcEZvbGRlci5tYXRyaXguY2xvbmUoKTtcclxuXHJcbiAgICBncm91cC5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBtLnNldFBvc2l0aW9uKG5ldyBUSFJFRS5WZWN0b3IzKCkpO1xyXG4gICAgY29uc3QgdCA9IG5ldyBUSFJFRS5WZWN0b3IzKExheW91dC5GT0xERVJfV0lEVEgsIDAsIDApLmFwcGx5TWF0cml4NChtKTtcclxuICAgIGdyb3VwLnBvc2l0aW9uLmFkZCh0KTtcclxuICAgIFxyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vZGV0YWNoIHRoaXMgb2JqZWN0IGZyb20gdG9wRm9sZGVyLnBhcmVudCB0aGVuIGF0dGFjaCB0byB0b3BGb2xkZXIub2xkUGFyZW50IHdoaWxlIG1haW50YWluaW5nIG1hdHJpeFdvcmxkXHJcbiAgICAgIC8vLi4uYWN0dWFsbHksIChtYXliZSkgd2Ugd2FudCB0byBkbyB0aGlzIHNjZW5lU2hpZnQgYnVzaW5lc3Mgd2hlbiBiZWluZ01vdmVkIGZpbmlzaGVzLi4uXHJcbiAgICAgIC8vIHB1dCB0aGluZ3MgaW50byBzZW1pRGV0YWNoZWQsIHNvIHRoYXQgd2hlbiBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgdGhleSBjYW4gYmUgc2hpZnRlZC5cclxuICAgICAgLy9vciBtYXliZSB3aGF0IHdlIHJlYWxseSB3YW50IGlzIHRvIGhhdmUgYW4gb3B0aW9uIHRvICdwaW4nIHBhbmVscyB0b2dldGhlciBhbmQgdW5waW4gdGhlbSwgcmF0aGVyIHRoYW4gYXNzdW1lXHJcbiAgICAgIC8vYXR0YWNobWVudCBjaGFuZ2VzIHdoZW4gYnV0dG9uIHJlbGVhc2VkLiAgRm9yIG5vdywgdGhpcyBpcyBub3QgcXVpdGUgd29ya2luZyByaWdodCwgc28uLi5cclxuICAgICAgY29uc3QgZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vd2UgY291bGQganVzdCBkZXRhY2gsIGxlYXZpbmcgdGhlIG9iamVjdCBhcyBkaXJlY3QgZGVzY2VuZGVudCBvZiBzY2VuZSwgYnV0IHRoZXJlIG1heSBiZSByZWFsIHJlYXNvbnMgdG8gc2l0dWF0ZVxyXG4gICAgICAvL3RoZSBHVUkgd2l0aGluIGhpZXJhcmNoeSBzb21laG93IChsaWtlIGFzIGNoaWxkcmVuIG9mIGEgY29udHJvbGxlcilcclxuICAgICAgXHJcbiAgICAgIGlmIChkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZykge1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLm9sZFBhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7Ly9YWFg6IGhhY2sgYmVjYXVzZSB0b3BGb2xkZXIub2xkUGFyZW50IHdhcyBiZWluZyB1bmRlZmluZWQgYmVmb3JlIGJlaW5nTW92ZWQgPSBmYWxzZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGNoaWxkID0gZ3JvdXA7XHJcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gdG9wRm9sZGVyLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgXHJcbiAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBcclxuICAgIGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljID0gdG9wRm9sZGVyLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljOyAvL1RPRE86IHJldmlzZSBob3cgdG8gcGFzcyB0aGlzIGluZm9cclxuICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKDAuNSk7XHJcbiAgICBncm91cC5vcGVuKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgLy9hbGEgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNleGFtcGxlcy91dGlscy9TY2VuZVV0aWxzXHJcbiAgZnVuY3Rpb24gc2NlbmVEZXRhY2goY2hpbGQsIHBhcmVudCwgc2NlbmUpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KHBhcmVudC5tYXRyaXhXb3JsZCk7XHJcbiAgICBwYXJlbnQucmVtb3ZlKGNoaWxkKTtcclxuICAgIHNjZW5lLmFkZChjaGlsZClcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBwYXJlbnQpIHtcclxuICAgIHBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgY2hpbGQuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLmdldEludmVyc2UocGFyZW50Lm1hdHJpeFdvcmxkKSApO1xyXG5cdFx0c2NlbmUucmVtb3ZlKGNoaWxkKTtcclxuXHRcdHBhcmVudC5hZGQoY2hpbGQpOyAgIFxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCkge1xyXG4gICAgbGV0IG5vZGUgPSBvbGRQYXJlbnQ7XHJcbiAgICB3aGlsZSAobm9kZS5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIGNvbnN0IHNjZW5lID0gbm9kZTtcclxuICAgIFxyXG4gICAgc2NlbmVEZXRhY2goY2hpbGQsIG9sZFBhcmVudCwgc2NlbmUpO1xyXG4gICAgc2NlbmVBdHRhY2goY2hpbGQsIHNjZW5lLCBuZXdQYXJlbnQpO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZGV0YWNoRnJvbVBhcmVudCA9IGdyb3VwLmRldGFjaDtcclxuICBcclxuICBncm91cC5yZWF0dGFjaCA9ICgpID0+IHtcclxuICAgIGlmICghZ3JvdXAuZGV0YWNoZWRQYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0IHdpdGggdmFyaW91cyBjb21iaW5hdGlvbnMgb2Ygd3JhcHBpbmcgZXRjLlxyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQuYWRkRm9sZGVyKGdyb3VwKTsgLy8gdGhpcyB3aWxsIGFsc28gZGVhbCB3aXRoIGNvc21ldGljcyAoaGlkZUdyYWJiZXIgZXRjKVxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXAuZGV0YWNoZWRQYXJlbnQpO1xyXG4gICAgaWYgKHRvcEZvbGRlci5iZWluZ01vdmVkKSB7XHJcbiAgICAgIC8vbWF5YmUgd2UgY291bGQgZG8gdGhpcyBraW5kIG9mIHN0dWZmIGluIF9zZXREZXRhY2hlZEZyb21cclxuICAgICAgLy9pbiBhbnkgY2FzZSwgaXQncyBpcnJlbGV2YW50IGlmIFxyXG4gICAgICBsZXQgc2VtaXMgPSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHNlbWlzLmluZGV4T2YoZ3JvdXApO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgLy9ncm91cC5kZXRhY2hlZFBhcmVudCA9IG51bGw7XHJcbiAgICBncm91cC5fc2V0RGV0YWNoZWRGcm9tKG51bGwpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBncm91cC5hZGRDb250cm9sbGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgZ3JvdXAuYWRkRm9sZGVyKG9iaik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgfVxyXG4gICAgICAvL1hYWDogaGFja2luZyBpbiBzb21lIHVuaXZlcnNhbCB0b29sdGlwIHN1cHBvcnRcclxuICAgICAgaWYgKG9iai5zZXRUb29sVGlwKSByZXR1cm47IC8vYnV0IG5vdCBpZiBhIG1vcmUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gYWxyZWFkeSBleGlzdHMgKHNlZSBkcm9wZG93bi4uLilcclxuICAgICAgb2JqLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXAgPSB0aXA7XHJcbiAgICAgICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAgICAgY29uc3QgdGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IHRpcE9iajtcclxuICAgICAgICAvL2Fzc29jaWF0ZSBldmVudCB3aXRoIGhvdmVyIG9uIGFwcHJvcHJpYXRlIGhpdHNjYW4uLi5cclxuXHJcbiAgICAgICAgaWYgKG9iai5pbnRlcmFjdGlvbikge1xyXG4gICAgICAgICAgLy9UT0RPOiBldmVudHMub2ZmKCkgaWYgcmVwbGFjaW5nIG9sZCB0b29sdGlwIChvciBub3QgcmVwZWF0aW5nIG9uKCkpLlxyXG4gICAgICAgICAgb2JqLmludGVyYWN0aW9uLmV2ZW50cy5vbigndGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgLy9kb24ndCBqdXN0IHNldCB2aXNpYmlsaXR5OyBhZGQvcmVtb3ZlIGFzIHRoZXNlIGFyZSBraWxsaW5nIGZyYW1lcmF0ZSBpbiBsYXJnZSBWUiBndWlzLlxyXG4gICAgICAgICAgICAvL1JFVklFVy4uLiBjb25zaWRlcmluZyBtYWtpbmcgdG9vbHRpcHMgd29yayB3aGVuIGhvdmVyaW5nIG9uIGxhYmVsIGFzIHdlbGwsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBvZiBjb3Vyc2UgdGhpcyB3b3VsZCBtZWFuIGNoYW5naW5nIG1vcmUgYWJvdXQgdGhlIGludGVyYWN0aW9uIHNldHVwLFxyXG4gICAgICAgICAgICAvLyBhbmQgaGF2aW5nIG1vcmUgb2JqZWN0cyB0byB0ZXN0IGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgICAgICAgICAgLy8gTGVhdmluZyBmb3Igbm93LCBpZiB3b3JraW5nIG1vcmUgb24gdGhlIGxpYnJhcnksIGhvcGVmdWxseSBmaXggaG92ZXIgZXZlbnQgZXRjLlxyXG4gICAgICAgICAgICBpZiAob2JqLnZpc2libGUpIHNldFZpc2liaWxpdHkob2JqLCB0aXBPYmosIG9iai5pbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBjYW4ndCBjcmVhdGUgdG9vbHRpcCBmb3IgJHtvYmouZ3VpVHlwZX0gYmVjYXVzZSB0aGVyZSdzIG5vIG9iai5pbnRlcmFjdGlvbiBwcm9wZXJ0eS4uLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgb2JqLmdldFRvb2xUaXAgPSAoKSA9PiBvYmoudXNlckRhdGEudGlwO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmFkZEZvbGRlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uIChvYmopIHtcclxuICAgICAgLy9UT0RPIGlmIG9iaiBpcyBzdHJpbmcsIG1ha2UgYSBuZXcgZ3VpIGFuZCBhZGQgLyByZXR1cm4gaXQuLi4gYnV0IHdoYXQgYWJvdXQgdmFyYXJncz9cclxuICAgICAgY29sbGFwc2VHcm91cC5hZGQoIG9iaiApO1xyXG4gICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIG9iai5tYXRyaXguaWRlbnRpdHkoKTtcclxuICAgICAgb2JqLnNjYWxlLnNldCgxLDEsMSk7XHJcbiAgICAgIG9iai5wb3NpdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBvYmoucm90YXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgXHJcbiAgICAgIG9iai5oaWRlR3JhYmJlcigpO1xyXG4gICAgICBvYmouY2xvc2UoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5wcm9tb3RlWk9yZGVyID0gKCkgPT4ge1xyXG4gICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXAgfHwgIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAvL21heWJlIHRoaXMgc2hvdWxkbid0IGJlIGEgJ3B1YmxpYyBtZXRob2QnIChidXQgbWF5YmUgdGhlcmUgc2hvdWxkIGJlIGEgd2VsbC1kZWZpbmVkIHB1YmxpYyBpbnRlcmZhY2UpLlxyXG4gICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiBpbmNvbnNpc3RlbmN5IGluIGZvbGRlciBob3VzZWtlZXBpbmdgKTtcclxuICAgIH1cclxuICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBwcm9tb3RpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgLy90aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBvYmplY3QgeiBiZWluZyBkaWZmZXJlbnQgZnJvbSB3aGVuIG1vdXNlSW50ZXJzZWN0aW9uIGhpdCBpdCBlYXJsaWVyIGluIHVwZGF0ZS5cclxuICAgIC8vbW91c2VJbnRlcnNlY3Rpb24gd2lsbCB0aGVuIGxhdGVyIGJlIHVzZWQgaW4gaGFuZGxlVGljayBvZiBncmFiIGludGVyYWN0aW9uLCB0byBmdXJ0aGVyIG11dGF0ZSBwb3NpdGlvblxyXG4gICAgLy9zZWVtcyBvayB0aG91Z2ggKGFzIG9mIDA0LzEyLzE4KVxyXG4gICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICAvL2dyb3VwLnVzZXJEYXRhLm9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCA9ICBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQ7XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1MYXlvdXQoKXtcclxuICAgIHBlcmZvcm1IZWFkZXJMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgY29uc3Qgd3JhcE5lc3RlZCA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICAvL3N0YXJ0aW5nIHdob2xlIG5ldyBsYXlvdXQgb2YgdG9wRm9sZGVyP1xyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgaWYgKHRvcEZvbGRlci5tb2RhbEVkaXRvciAmJiB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCkgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgXHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleCA9IDA7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gLXRvcEZvbGRlci5wb3NpdGlvbi55O1xyXG4gICAgICAvL0kgY291bGQgdW5kZWZpbmUgdGhlc2UgYXQgdGhlIGVuZCwgYnV0IHRoZXJlJ3Mgbm8gcG9pbnQuXHJcblxyXG4gICAgICBpZiAoIXRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYGFkZGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2tlZXAgY291bnRpbmcgY29sdW1uSGVpZ2h0IChjdXJyZW50IHkpICYgaW5kZXggZnJvbSBwYXJlbnQgZm9sZGVyLlxyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9UT0RPOiBtYWtlIHN1cmUgdG8gdGVzdCB3aXRoIGRlZXAgbmVzdGluZy5cclxuICAgICAgXHJcbiAgICAgIGlmICh0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYHJlbW92aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBjb25zdCBzcGFjaW5nUGVyQ29udHJvbGxlciA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIGNvbnN0IGVtcHR5Rm9sZGVyU3BhY2UgPSBMYXlvdXQuRk9MREVSX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgdmFyIHRvdGFsU3BhY2luZyA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYykgPT4geyBjLnZpc2libGUgPSAhc3RhdGUuY29sbGFwc2VkIH0gKTtcclxuICAgIC8vY2hpbGRyZW4gc2hvdWxkIGJlIG9yZGVyZWQgYnkgZ3VpSW5kZXguXHJcbiAgICAvL2lmIHRoZXkgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSwgaXQgY2FuIGJlIGFkZGVkIGhlcmU6XHJcbiAgICAvL3RoaXMgc2hvdWxkIGJlIHRoZSBvbmx5IHBsYWNlIHRoYXQgd2UgbmVlZCB0byBjb25zaWRlciB0aGF0IHByb3BlcnR5XHJcbiAgICAvL2l0IGFsbG93cyBmb3IgZGV0YWNoaW5nIGVsZW1lbnRzIGFuZCByZWF0dGFjaGluZyBpbiBzaW1pbGFyIHBsYWNlLCBldmVuIGlmIHNvbWUgc2libGluZ3MgYXJlIGFsc28gZGV0YWNoZWQuXHJcbiAgICBsZXQgbGFzdEd1aUluZGV4ID0gMDtcclxuICAgIC8vdHJ5IHRvIGFsbG93IGZvciB0aGUgcG9zc2liaWxpdHkgdGhhdCBjbGllbnQgcHJvZ3JhbSBtYXkgYXR0ZW1wdCB0byByZXN0b3JlIGl0ZW1zIFxyXG4gICAgLy9yZW1lbWJlcmluZyBkZXRhY2hlZFBhcmVudCBidXQgbm90IGd1aUluZGV4PyBOb2lzZS4uLlxyXG4gICAgLy9jb25zdCBkZXRhY2hlZENoaWxkcmVuID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKGYgPT4gZi5kZXRhY2hlZFBhcmVudCA9PT0gdGhpcyk7XHJcbiAgICAvL2NvbGxhcHNlR3JvdXAuY2hpbGRyZW4uY29uY2F0KGRldGFjaGVkQ2hpbGRyZW4pLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKGMuZ3VpSW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGMuZ3VpSW5kZXggPSBsYXN0R3VpSW5kZXgrPTE7XHJcbiAgICAgIH0gZWxzZSBsYXN0R3VpSW5kZXggPSBjLmd1aUluZGV4O1xyXG4gICAgfSk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLnNvcnQoKGEsIGIpID0+IHsgcmV0dXJuIGEuZ3VpSW5kZXggLSBiLmd1aUluZGV4IH0pO1xyXG5cclxuICAgIGlmICggc3RhdGUuY29sbGFwc2VkICkge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IE1hdGguUEkgKiAwLjU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb3duQXJyb3cucm90YXRpb24ueiA9IDA7XHJcblxyXG4gICAgICB2YXIgeSA9IDAsIGxhc3RIZWlnaHQgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCBmdW5jdGlvbiggY2hpbGQsIGluZGV4ICl7XHJcbiAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICBjaGlsZC51c2VyRGF0YS5jb2x1bW5ZT2ZmID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZiAtIHk7IC8vZXhjZXB0ICd5JyB3aWxsIGJlIHdyb25nLi4uXHJcbiAgICAgICAgICBjaGlsZC5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggIXdyYXBOZXN0ZWQgKSB7XHJcbiAgICAgICAgICAvL09yaWdpbmFsIGxheW91dCBhbGdvcml0aG1cclxuICAgICAgICAgIHZhciBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIC8vIGhvdyBmYXIgdG8gZ2V0IGZyb20gdGhlIG1pZGRsZSBvZiBwcmV2aW91cyB0byBtaWRkbGUgb2YgdGhpcyBjaGlsZD9cclxuICAgICAgICAgIC8vIGhhbGYgb2YgdGhlIGhlaWdodCBvZiBwcmV2aW91cyBwbHVzIGhhbGYgaGVpZ2h0IG9mIHRoaXMuXHJcbiAgICAgICAgICAvLyBpZiB3ZSd2ZSB3cmFwcGVkIHRvIGEgbmV3IGNvbHVtbiByZWNlbnRseSwgaG93IGlzIHRoaXMgYWZmZWN0ZWQ/XHJcbiAgICAgICAgICAvLyBzcGFjaW5nIHByb3BlcnR5IHNob3VsZCB0aGVuIGJlIHNwYWNpbmcgKndpdGhpbiBjdXJyZW50IGNvbHVtbiosIHNvIHRoZSB3YXkgd2UgdHJhY2sgdG90YWxTcGFjaW5nIHNob3VsZCByZWZsZWN0IHRoYXQuXHJcbiAgICAgICAgICB2YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG4gICAgICAgICAgXHJcblxyXG4gICAgICAgICAgaWYgKGluZGV4IDwgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pXHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gIFxyXG4gICAgICAgICAgaWYgKChpbmRleCsxKSAlIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID09PSAwKSB5ID0gMDtcclxuICBcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4pO1xyXG5cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vbmV3IGxheW91dCBhbGdvcml0aG0gV0lQLCBzaG91bGQgYWxsb3cgZm9yIG5lc3RlZCBmb2xkZXJzIHRvIHdyYXAgdG8gdGhlIHRvcCBvZiBhIG5ldyBjb2x1bW4sIHdpdGggYWxsIGZvbGRlcnNcclxuICAgICAgICAgIC8vaW4gaGllcmFyY2h5IHVzaW5nIHNhbWUgY29sdW1uIGxheW91dFxyXG4gICAgICAgICAgY29uc3QgbWF4Q29sSGVpZ2h0ID0gTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gKiBzcGFjaW5nUGVyQ29udHJvbGxlcjsgLy9NQVhfRk9MREVSX0lURU1TIGlzIHNsaWdodCBtaXNub21lclxyXG4gICAgICAgICAgY29uc3QgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBjb25zdCBjaGlsZERpZFdyYXAgPSBjaGlsZC5pc0ZvbGRlciAmJiBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL21vdmUgdG8gYSBuZXcgY29sdW1uP1xyXG4gICAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA+IG1heENvbEhlaWdodCkge1xyXG4gICAgICAgICAgICAvL1RPRE86IG1heWJlIGFkZCBhbiBleHRyYSBoZWFkZXIgdGhpbmcgdG8gYWxsb3cgZm9sZGluZyBuZXN0ZWQgZm9sZGVyP1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCsrOyBcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gaDtcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nID0gMDsgLy9oIHdpbGwgYmUgYWRkZWQgbGF0ZXJcclxuICAgICAgICAgICAgbGFzdEhlaWdodCA9IDA7IC8vPz8/PyB3aGF0IHNob3VsZCB0aGlzIGJlPyAgT3JpZ2luYWwgYWxnb3JpdGhtIGl0J3MgJ2VtcHR5Rm9sZGVyU3BhY2UnXHJcbiAgICAgICAgICAgIC8vY2hlY2sgbG9naWMgb2YgdGhpcyBXUlQgZGVlcGVyIG5lc3RpbmcgKHNob3VsZCBiZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0b3BGb2xkZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlIHBhcmVudClcclxuICAgICAgICAgICAgLy93aGF0IEkgc2hvdWxkIGRvIGlzIHVzZSBhY2N1bW11bGF0aW9uIG9mIGFsbCBmb2xkZXIgbGV2ZWxzICsgb25lIHBhcmVudCBhYm92ZS5cclxuICAgICAgICAgICAgLy95ID0gLWdyb3VwLnBvc2l0aW9uLnk7XHJcbiAgICAgICAgICAgIHkgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ICs9IGg7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy92YXIgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcbiAgICAgICAgICBsZXQgc3BhY2luZyA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgaCk7XHJcblxyXG5cclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC4uLi5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgLy9YWFg6IHRoaXMgbG9naWMgZG9lc24ndCB3b3JrIGZvciBjb2x1bW4gd3JhcHBpbmcsIChiZWNhdXNlIG9mIGhvdyBzcGFjaW5nIGlzIGNvbXB1dGVkIGFib3ZlPylcclxuICAgICAgICAgIHkgLT0gc3BhY2luZztcclxuICAgICAgICAgIGxhc3RIZWlnaHQgPSBoO1xyXG5cclxuICAgICAgICAgIHRvdGFsU3BhY2luZyArPSBoO1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCA9IDAuMDI2O1xyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL25iIGZvciBuZXN0ZWQsIGNvbnNpZGVyIGRpZmZlcmVuY2UgYmV0d2VlbiBncm91cCAmIHBhcmVudFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy9pZiAoY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCkgbGFzdEhlaWdodCA9IDA7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2hpbGQudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gdG90YWxTcGFjaW5nO1xyXG4gICAgXHJcbiAgICAvLyBpZiB3ZSdyZSBhIHN1YmZvbGRlciwgdXNlIGEgc21hbGxlciBwYW5lbFxyXG4gICAgbGV0IHBhbmVsV2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXApIHtcclxuICAgICAgcGFuZWxXaWR0aCA9IExheW91dC5TVUJGT0xERVJfV0lEVEg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIExheW91dC5yZXNpemVQYW5lbChwYW5lbCwgcGFuZWxXaWR0aCwgTGF5b3V0LkZPTERFUl9IRUlHSFQsIGRlcHRoKTtcclxuXHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dFBlbmRpbmcgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtSGVhZGVyTGF5b3V0KCkge1xyXG4gICAgbGV0IGR4ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICBsZXQgeCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBoZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGlmICghYy52aXNpYmxlKSByZXR1cm47XHJcbiAgICAgIHggLT0gZHggKiAwLjg7XHJcbiAgICAgIGMucG9zaXRpb24ueCA9IHg7XHJcbiAgICAgIHggLT0gZHggKiAwLjM7IC8vVE9ETzogZGVoYWNraWZ5XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZ3JhYkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgZ3JhYmJlci5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9UT0RPOiBtb3JlIGNvbnNpc3RlbnQgaG92ZXIgc3R5bGluZ1xyXG4gICAgaWYgKCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ob3ZlcmluZygpICkge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4ODg4ODg4ICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSBncm91cC5vcGVuKCk7XHJcbiAgICBlbHNlIGdyb3VwLmNsb3NlKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcblxyXG4gIGdyb3VwLm9wZW4gPSBmdW5jdGlvbigpIHtcclxuICAgIGlmICghc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCAmJiBncm91cC5mb2xkZXIuYWNjb3JkaW9uKSB7XHJcbiAgICAgIGdyb3VwLmZvbGRlci5ndWlDaGlsZHJlbi5maWx0ZXIoYz0+Yy5pc0ZvbGRlciAmJiBjICE9PSBncm91cCkuZm9yRWFjaChjPT5jLmNsb3NlKCkpO1xyXG4gICAgfVxyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICBhZGRJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmNsb3NlID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoc3RhdGUuY29sbGFwc2VkKSByZXR1cm47XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSB0cnVlO1xyXG4gICAgcmVtb3ZlSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsOiBncmFiYmVyIH0gKTtcclxuICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAvL25iOiBpZiB0aGUgY29udHJvbCBpcyBub3QgdmlzaWJsZSAvIGFjdGl2ZSwgdGhlbiBpdCB3b24ndCBpbnRlcmZlcmUuLi4gICAgXHJcbiAgICAvL2J1dCBcImlmICghaXNEZXRhY2hhYmxlKVwiIGhlcmUgY2F1c2VzIHByb2JsZW1zLlxyXG4gICAgXHJcbiAgICAvL2hlYWRlckl0ZW1zIHNob3VsZCBub3cgaGF2ZSB0aGVpciBvd24gdXBkYXRlQ29udHJvbCBhbmQgYmUgaW4gZ2xvYmFsQ29udHJvbGxlcnMgbGlzdFxyXG4gICAgLy9oZWFkZXJJdGVtcy5jaGlsZHJlbi5mb3JFYWNoKG8gPT4gby5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKSk7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgLy8nZ3JhYlJlbGVhc2VkJyBpcyBlbWl0dGVkIG9uIGlucHV0LmV2ZW50cy4uLiB1c2VkIGZvciBvcnRobyBtb3VzZSBmaXhGb2xkZXJQb3NpdGlvblxyXG4gIFxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBfYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG4gIC8vZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwsIGdyYWJiZXIsIGRldGFjaEJ1dHRvbiBdO1xyXG4gIFxyXG4gIC8vLy8vRVhQRVJJTUVOVEFMIEZFQVRVUkUsIENVUlJFTlRMWSBIQVJEQ09ERUQgTk9UIFRPIEhBUFBFTlxyXG4gIC8vc3ViLWZvbGRlcnMgdGhhdCBhcmUgZGV0YWNoZWQgd2hpbGUgbW92aW5nIHJlbWFpbiBhdHRhY2hlZCB0byBwYXJlbnQgb2JqZWN0ICh0aGUgY29udHJvbGxlciB0aGF0J3MgbW92aW5nIHRoZW0pXHJcbiAgLy8mIGtlcHQgaW4gc2VtaURldGFjaGVkIHVudGlsIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCBhdCB3aGljaCBwb2ludCB0aGV5IHNoaWZ0IGF0dGFjaG1lbnQgdG8gb2xkUGFyZW50XHJcbiAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGdyb3VwLCB7XHJcbiAgICBoaXRzY2FuOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIC8vZG9uJ3QgbmVlZCB0byBmaWx0ZXIgdmlzaWJsZSBoZXJlLCB0aGlzJ2xsIGJlIGRvbmUgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKClcclxuICAgICAgICAvLyhpbXBsZW1lbnRhdGlvbiBub3RlIDMxLzcvMTk7IC4uLmhlYWRlckl0ZW1zLmNoaWxkcmVuIGhlcmUgYmVpbmcgcmVtb3ZlZCBhcyBlYWNoIGhlYWRlckl0ZW1cclxuICAgICAgICAvL3Nob3VsZCBub3cgYmUgY2xvc2VyIHRvICdmdWxseSBmbGVkZ2VkJyBjb250cm9sbGVyKVxyXG4gICAgICAgIGxldCBoaXRzID0gWyBwYW5lbCwgZ3JhYmJlciBdO1xyXG4gICAgICAgIGlmIChncm91cC5tb2RhbEVkaXRvcikgaGl0cyA9IGhpdHMuY29uY2F0KC4uLmdyb3VwLm1vZGFsRWRpdG9yLmhpdHNjYW4pO1xyXG4gICAgICAgIHJldHVybiBoaXRzO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYmVpbmdNb3ZlZDoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gX2JlaW5nTW92ZWQ7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldDogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgX2JlaW5nTW92ZWQgPSB2YWx1ZTtcclxuICAgICAgICBpZiAoIV9iZWluZ01vdmVkKSB7XHJcbiAgICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSBncm91cC5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBncm91cC51c2VyRGF0YS5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICAgICAgICAgIC8vYXNzZXJ0aW9uLi4uIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAoYW5kIGRvZXNuJ3QgQUZBSUNUKS5cclxuICAgICAgICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSG91c2VrZWVwaW5nIHByb2JsZW0gaW4gZGF0LkdVSVZSLi4uXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQuZm9yRWFjaChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgIC8vYXMgd2VsbCBhcyB0aGlzIGN1cnJlbnRseSBlbmRpbmcgdXAgd2l0aCB3cm9uZyB0cmFuc2Zvcm0sIEkgYWxzbyBoYXZlIHdyb25nIHRyYW5zZm9ybSBpZiBJIGRyYWcgZm9sZGVyIHdoaWxlIHNlbWlEZWF0Y2hlZC4uLlxyXG4gICAgICAgICAgICAvLyoqYWx0aG91Z2ggaW4gdGhhdCBjYXNlLCBpdCBzaGlmdHMgYmFjayB0byB3aGVyZSBpdCBzaG91bGQgYmUgd2hlbiBidXR0b24gaXMgcmVsZWFzZWQqKlxyXG4gICAgICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZm9yIChsZXQgayBpbiBhZGRDb250cm9sbGVyRnVuY3MpIHtcclxuICAgIGdyb3VwW2tdID0gKC4uLmFyZ3MpID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbGxlciA9IGFkZENvbnRyb2xsZXJGdW5jc1trXSguLi5hcmdzKTtcclxuICAgICAgaWYgKCBjb250cm9sbGVyICl7XHJcbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbGxlciggY29udHJvbGxlciApO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sbGVyO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2UoKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQWdBQUFBRUFDQU1BQUFEeVRqNVZBQUFBalZCTVZFVkhjRXovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8rdW1BYzdBQUFBTDNSU1RsTUFXbkpmYm5xRFdHUjRhMlpjWW5CUmFsUkxnSDZFVG5SOFVHaDJSb1pEWGxhSFNZbzhRSFUyTHlZY0ZBd0ZtbVVSMU9JQUFKRmhTVVJCVkhoZXRMMkpXbXU3ampVS0lRa2tRTHFadmdNQ1pPMnpULzMzL1IvdlNrTkRrajJUck9hclZkNVY2eERQM3BKbFdkS1E3cWFQYjYrdnJ3OHZqK1BaL3Z2cnh6Ly8vUGo2M3MvRzcvY1AybjAvWFo2T3A2WDhmSkhmYUcvM2o5cTVYL0xLdC90M3YvUWZ1ZlFrL1hvdWJvbHovRHE1TEg3eTFuTFZsOXhlSDRiMjhqaWRuY1p5L1pNMFArV2ZmLzd6bi8vOCsrOS8vc0c1VXp0YXYzSDFpbkpJWGtsZThRdm4zK09ST1Ayb2o1T1BtejdldittNVBEREZ5WGFuL1V3ZXdCZDgxMjRaRG4ybzNlVEJCbUNLQXpaUWZqWTc1V1gvL1krL0tqNkxuNzcvL3VGM3IyNHZIeWZQNWFlOWNSUnNhSDVJLzQ4dmVRcVA1S2g5WDl6ODZ3dm4rd2poWmZtWWpUem15QmZsU09CejVWMWxYTzhlSDU0bXc4bnpLOGRUSHNuUGVwYnVwd2Z0MVZ1K1BzbHZhWlB0czczRmFXeFhicC9pVWp4L0k5U1VjM0hMcVoyRGhudFZQMEVSZk43OXE5MTgrL1QydUZsTzhldzhCVytxdzRSejVSWmJPVHA1ZnNKaitkVHFGWi9sbFRBcXVMYytFbThqQS80ZEEvUzg5Yzk1a2hFaDhaVFltOGUzcCswUVY5eFA1ZjVmUWpVOFZMdWVKM2l0ZTlDVDlMZXpuNUlEK0twOHRCM0VtT2ZkZWZzbDU4MFBZMVdNRGthQk5GWHFINVZqZVNTRzVIalJkVHpxK2VBTWpQK0VMOHZIeUNTekZ6VzZMRTk2UHJqdjd1VnBNdXAwdWx1TXA3SXB1V1hiN1hRNnd5Y1p0dGtVYjkzdG9JMjY5ckhMS2E4Y2JwMFVuTTJ2VHhNOXQvdjg4SWh6ZU4zazZTVi80dGJ5WnNlOWZkNFFmZDJKdk83bThlRzVXNTd5RFJiQXJNSzV1RHZlR0NUOVFiN0lWK3phR003Mnh4UHVQY0xwU3M4ajU5bnpwQnVmTTN4MjRuSGF2dG9EaG5JUDZTWFY4TjY0YURRa1BUbFJ0bmIyczk5RTM5UmZkUmlmcnJ3a25idzdiby9KaFhsTHdlbFBtY2lUeDdQVC9sdjdUN1BaNWhIamxrUHl0WmZSajV1RFJyT1RuQTltdlg5NHhrQjBoM3l2eDgxSkJ3SXZxdjE0VXpuLytLMHZleWVqZmU0TlZ1Q0FEY1htT3o1cjE5dDE5Zkt4dnBuOEhQUzA3VllqKzlqSE43bFNmbmZpMGgrY3pjUE9lZEFiZElTYTcyOVBjZzdhdWZ2MGxqL3Qxc3Y5YWJaVTNwekl3NlN0OVB2R01rYWRRWndpQTNIa1BQbmU0OXlSbmp0WWthUkNOdkJRdnVKZ3h6RThZY0J4NzRFTkhjWVpwNjc0T1lOemh4d2Q0dUZwdU5Lbmo3WVBrQXpIazc0UkhyclM5OXAxSnZaZ09RRDZyN1FUQk1XOHhTSjZQUEZWNDlPWHhnQzh1MXlnaEpOUnMxVnd0akg2NzNENlJLZlVjcmJYL3ZGMEtoK3g3ZTZLVVpPNzZ5eXhtMk1jcGxPY2I4dzZ4RUNjT3p0N1dRNkVkT3NuRDhEWk9CL3k1MDVIdTVselBGMXN2c29jSE16N0lPSVlYSHNlekp2K1l0SHZONzBkYmlFVGRUdmFOZjI4VkhuSDJIN1hhL3FnNXJzd3lXNitrRGFYZDMvTG40MTl5bkk4ZlgvWHp6djMrb3VtWUFENWlWUHdwaWVUbERJWHgvaHVPZGh2UUZJYjFwTk5rWE52M3RkWGxLK1JNUVM5T2VEOXhaeERSL29MelpxK2ZjNTZjRmFPQnZIMkpoNkdxL1dpUHhodGpTOU9Td3dlYnJLVEo5aGJ6bkEySnNxZ1dmVFh1MUdzV0pqUUdFUjhWditTQWVRQ0VnN2ZCcjY3Ri9wekdEQWI3NFVGMEM5TlBucWxkMXJqSzlDUGdWajNGeGlIQnoxSit2ZkhtVEhyV2orczE1T1hCUVZQZXpKQW80UlFtZkh5OG1pYUd4aWcxeHprUHJqMzdPaEVITXpsTGVYbTkzaVd2dlNIak5maThJR1BsWGRYQnRBN05zSUJ5aENuYnhWQWVQNjhmK2l2a3dIa3NvK0NBVDRPL2I1UlYrZmIyeHVlMW56b21PaDl5UUFmT09WTlZVNTVVeFd0eWwrUURzS0U4eURwdDhwRDhKQy80b2VPSWI3bXRNU0FydzhmZk41c3pIbldnUGlOOHJSek5JYkpoSjFjSWN6Zm5VRFNnV2VFQVJhZi9ZRzg1Z0VmUnJINmdJbXlhR1NrTWE3djFBMHdvZjJ6ZHZVU0FESi9jTUNubTVuekhRNDBpL2xCQnhTYVZTak5JSWNNcWJ4bzlHdW5UcWE1eWhKcFVLQ1Y0OEdzQjNDM1BHVUVDZUN5cWlmdm8yT0Q4NDFkN3g0dy9RNXp6cWdUbHBlSjNydHYwczRHdlRrY2xLZGs1SEVMK1NMd3hXQzlPQWhQZ2MyTzhpVXE1RmY2ZlhxdE1NK0wvaFJXckJoZ0Fja2xuNjlEKy9UOGpLZlpRSWxPV3pLQU5LanB5NzFKU2g2Yjc0UUpuQUZNN09IakZvM2NlZDBzRGcxRlBzZWo2YS94UENvdU94MmdlVzhnVGM5MmpsN2lSaEFQd2dEeWlyWk9ZM2xSV3NwanordSt5aW5UckhCejBMK0gxNWNuWUJwQU54Qk5UR2RDeWdhc3JuZ0NYc0FJOTNDdmVnRDFhZjBFb1VNRERvQWFFNXFlVEhhUWVqaXMrbTNjenQxUW9JUGpHL2t3NWUyenZSUVZhMmM5UFo4cTFBOVZBbkg3TldUU2VBYStoaXhhNzZEdlFIamd3bFZIbHM2NVVwd0szclpyUEk3Um5tRUZlbEFTSDVSSFZLNVM1N2xnQUNwR0dHOXBjb0lPbFB5bHN5Z1pRSnJxOUZEb3ZyK1NBWVRPL1pBQUx2Ym1oOE1jcnlpdnRGQ0N2K21NaDJ3WURIYkdFUDV0TWtBNzFlbEduYk5LT2dvTW41K05TSkhEb2xsam5aNUNxSzFXSzJHWGppeXVnL09xZ3lmN1lEY3l6THQ1STVOdGEycWRiNkw0V1IwWmEyZ1R3cXBVVmpzcW85ZXJMamRmTXlySHUwYnVJbHpRekhkVWlGMzUwenRwWjZmVnIrdTBQRGo2Wi9aT3ZmWDZEQjNuUERKTkl4VHJYZHhJcUEydXZGTWlLQmtiSXlNbUNUcTR1a3lOQVNERWg1TXVTQU1GQ1YvWlBhOFBDd2hGYkRiR1dCZjZJaXpCM2xPVnVOdkpKUVBZb0lCdzU5MXVwK082VzhrZnE2N2NPQmdBUGE0VXE0NEpYVlpYbUw1T1JGdFp2NmtSVTZ4aUlpMzhGWFhwZzBacFFzdk81QndiZFlTcW5hN09JcmtRSXVDZGt1VFExNVdrVHpIRklSV2VHc3JGOGdkSXZlSFNzS1BtT2RBSkJMWHV0REVsK2t5dFdiOEFPZ1kxa0ZCV3p4MjdaQm5Lc1k3QWVSY0tjZlRyQUEwNnE4dCtaY3RkOUUrNXhLMTJ2ZlY4UG9jUWc3U2lZcjN1c2ExN1NtMm9zbmNRNWFrbmJjQXNaeE1KV0FPVEFXVEtUR1RaZDJZZm04SzhPRGdEeEF6bGtqdGRZbnQrbFFHRXFHUXRlZFBkU05wQS9vRE80dmNZNkNGUjk2blF3ZnhoT3E2UWd3b0RWbEM3N2VHZ1F1eEpDZDQvVUgrZFVYejE3ZkdtUTY0eDVYR1h0WkJIRDRNLzlQQVdONUtuNmxwbmZFRTk4cUMvWktBZ0FKVUJxRTY0NXJrZWRFeXRvMG9pckdKYTgxelhOdWdZcDF1WHVITGMweEh1ZGtVSHRVbFY5TXNBRFcvMGo5aFBEbGNaTmhmK3BSQlRRVHgyeFRwYk1vQytyczk0MThGRy9HbkxxRjM4MlY4UGREN3FqTFdWaGFPYkRMQnZNWUJxME95NVpBQmpMVDJHTlVUSlJKM0Y3OUgwRC9vUkxwK1B0c3VsQ0pCZURHcXNPNzRVNmQ1RUtGc3hnT3VnSmc4YVdkeTZLb1VYaDRWc1lrUUVjRkhEdTVyOEdoVnJtL2J5bDdMSFltMnlSL3VoVGh4TTg1eFRqdzdka0ZyendkWEE1YzFMaW5GNWZ0Sk55TUhHdEpTWTIrMnYrNmRjNGhwNWFOUGdDVHVvZG1PblliUmtnTk00MW0zY2cvTFV4K1Iwc25tQnp4R2hvanpRdFRsWk1RQ3NhWnRweFFDUUNiY1pZT1l6VG9VTnA3QmU1aSs3MEkvNENJVnUvNVhTL2hQVDhEVVlZS3NzYTNzZUZSRXJhWHFuTmdOQXhLc0E2SXgwQWpYelJ2K1crMUZienJlWGFSU2p5dkhSUnhvalFMMGRVM0xLSUVQejFPTTJaVEFJT21DaE5aT0hiMTVTanN2TDAxVkNQejM4dXAvRVV4MElLdTVhbnJTR3VJb3Y2M21UQ1VJRzJGTnZjTjFPQmdrclFJL1Rla2EyYlQ1VXFLanlmT2FXdDJDQUx0VDNwVnFCLzRBQnNQWnh4UjdsakNNRHlFZklXZ21GanZvMWFJMzE2ZU9UNTlhS2h5MGd6ME5xdWNtamZMeVJVbjlnelJ2c2VtUUE0NTFrZ0JFa1VwK2ptaXFHWE1ZVkFOWVJHMnVaRTUyemJyRDRvazVtVVE2aE5jZGFjdk9TV3d6d3AvMVREby91NlVZamxUVTVwdnl5RGh1bGxUREFjUlpIOFdVY0pKY1JNTDdoZS9xUXliclY0cTRwR0FEcW9jb0FIZnp1N3pQQXJKQ3VIUGlTRFBvUjUxNXVaby9IdUtCWkpGc2tBMEExVVNiVVJ2MjZaZ0NzYmlMRFJRQ29aSUhCcHlQWHVzV0RyNk9LbStsZGJwa2lmNnE0b3ZhSllVbk5NMTcwUGs4L1EydkduOUF4Ymw3eXR4Z2d4MU8wNlMxMlJyWWZlaTlrR3h0Y0FudlpCbklBNVRMTW9NZjhnVkczU1ljN3lYd1VtZm1CMjdzT1FGS2RZUTE4MTZteTJxMXA5L3NsQThUcUl5Unh0Yk95QTJ6NU9UUytnaG1IbUlVWU91dXRKY0FqbkVYNHdQc0xDVUJWQ095bVQ0UEJSMlpLd3pmQzY2ak1YZzhHSzUxRFhibkx1RkNMT1REMFdQRFY1U1NvRnB3MDFEdE5pWHA5bG9lNGNMMTF5ZDlqQVBuaDI3UlhYUnRpTHVhWUp2MGhBSVFCVW9taURpNmppZkhkNmdRcjJVTU42TEp5K1pRTTdVQk1SUGdPMDdHVk9KVFB2MkFBcmo0NEdrcGNaUW5NMDRQVXBxN28vL01aeVFCNGYyeVIzUXZTWWdEOUFYbHZpb0RlU3EwTnpnQmNRcW51RE1UcEFSOWlzYzFNM1FnUGRZM2doWlFOS2dUUk1VVjhORzllOHRjWWdJL0dUSEtORm8rdWxvQjBFcWtwV0RRcjQwd3lRSzNHVlF3Z0ZpbXNYRzVobGpVY0F5YTZSaktBTWtpUFJxWGp6eG5nV0t3QnpyZVA0NXNNUUJ0bGl4S24xaTRBYXJCN1FhNHh3TUpFZVgrZ0RLQlBHUTJDQWVnRVVVTlFPRDJXWm4zQUFLMFhsT2JMM0RIb1N6c1Z6T1AxbkJxa1hKbnF5YzFML2hJRHNKOWNWYW5HdFJLWVRpSmhnQy9zbzI4eHdCN0RpNmV0ZFFNd3pCUEhWTW5VcnRva0Eram1kMDRkODFjTWNFcnBHaXZBOGlZRHFCMDFaREczcmVDTFVyUStnS05jcTd2TkFCOG0rL1dBRUlXYXZXelRuK0VHbFMyOE9UM0F4MnA5c00xNVBuVmNLVTR2K1pTYW1oQlpUb1ZibC94bEJtQi9MZGZyYmFCVDhQaExDYkJQODc1S3hkMHFGK1V4QmdHLzFRTkxYVVpXQ1NNRlBDTy9ZSUEwNHMzbmxJelROZ09rUGtxVGI2Mk5tVW1XbTRtQlNMYXRXeFIrTGdIMERKa2dLa2ZrZkpBVjBRdXdySFRPTUFUNUtwUEtUc3FkMnVMQnAxeCtaRTJGK3BLL3p3Qy9ldlRuZ3EzTkFPMVRCMjd1M2NDUmlHMXRYNldpOE1DNkhsMGo3Z2hlQTFqQXV1ajVyVjJBcVBXaE11T01iV3RvSjhPUzM1YUZqb05iY29MR1FxS0dkN0h3Y3M5K1RRY0FIV01KT0dNaEdZVWhDQUpHYmF2aUpGZ05hSmNRaFQ5MWp3V05KY3VhQVc1UDU1c004SDh2QWVDdXY3VUVEQW9HT0czOFZQVEdrbzhGK1ZTNCtMRXl3bis2cWtZWDR3VExQM3dndjc4TlBPYkdYaG9OYkx5Q3pxZmRXaWMyWHFYY00zVElHQ1NHM2FRUDdWM21iajhPdFJrQXpDM1hxenlmaTVFQjZpZFlRb2Z2M1pZd0hZZEpOMTk2R1Z2aHoxZ0I4SmFwM2hWNjMxdDdJVTc5OU5vbGY1c0JicXNmVkFKWCtLL1REU1dRTkFyRnYrSlplSmdSc1FjSFE5T0hDV1lITS95bEpWQzlvSzkveEFCcDJqUC9VVEcwbitLeE0yTVdYYm1GeHFodG5hYUFjR0IvTE13Q3FxOUk0VkF4QUZmaytRN21HRmtLeFJ3OG4vZTUyRThMWlhJeUxCamdGT1p5MEl1Ym8zSjhPZkMzVlhIdzhNMUwvaFlEM042QUpGMkdhRzRHa0cwZzNkb2h0NTJCZlpkbC9oZTBzL0pBTEkyenRpOUFsb3R4VzRQNCtUWVFFVnF2VysxTHBUN3Mxb2MrRGVhbUcxQVpDVTNtRU5OeHBpSkFoSlJHQW54QWYyZDB4bWxUTXdCbUNIYUE2dlBWOCtCWVhGUGRUNXV2T2s3blBqMlhjaGZ1Mm5Mdm1Wc1ArZmlIVjVlMlA5Mk0zN2drQ2FvSFhwKzZKT2lmOTk4MlFSUjBlVUpqQUlrd3dNbDFYR3B1Ym12aDlPSUNnU0E1YzUvNzFtVzVzVSs5N1EwY3o0UUNOeG5nWFE5ckxMYzluZHVyd3FFMGQyOE43b1U1Qi9vczJEQ1N1Q1lpRWRleW5LL1hZYXlHYmJwZ2dQUnppQjhWL3RnZC9vY2huVTQ2OVhuSVFoTG1ac1RaaG9jTSsxdmJPcDBaRHZPOHhZckJvemZOY1Rjdk1mTTdOSmNKcnZpd0JlUlArNmVYUmtpT2F5RUIyTGFNNHJwRHpNUW9sZTEwRHByQmwyYVdoUXF1TFp6dEhFMGhIbWhYTWNCanJpWnFhc0xZWFdjQU9NTGxZVS9QcGw5eE5oZE1SSDh0WGFZa1R5b3k4bURYRzhVaVlWYm9IY0pnM0FIUDFTc1lnUDVlNWZWZEo2SjhPeVBHZnRIcklhdk9BUUttejFDbk1lSnNsVjZ4Nk1UYVJidXhPQTlUOHpSQjRnYjVjeHJrYjE2U24zYVc5NUlyUGttTVArMkhNcFJ1aUxXN0lhNzVBaGphZWpkK3RMdTVmODNmM3dRVmZtL0pWU1BSanMraHVHQjBzVm93R0tGMnpDSG15TWJ1Q2dOMGgwcFZJUWlITmxhQWtnSGcxUnRwMElSSklzNGZmZ1IxSzdBZTBRaGQ0Um5lU3AyVFhMM2MwYVVHZkpyNjFFbXZOOThOTks2QWNlRWVVYXVxenVjaVZnWVZkSWo3S0ZhQUwxb2w1WDFjODhSWTQyakxKYWZ1TEJ2YW01ZEVTSk13dDRSdDZLVXdpdjF4dnp5NmRFVDJQYWdsdllGci9nZWFnUUUwV3BBRWgyQmZwcHdjSVR5WkF5OFhEeVFVQU80NXhnU3ExQTB4QmdaWXVsSS90NG5Mc2J0Z0FBa0Mwb2Y1MEpMZGFEbW94ZFVrM0RycGx0ZldEZEVxM0NFY0FPNFhpalpPN0ZPc1htNlltQzdEVlM4c3NKWTJiL0R5aGd4aFREMk1BQi96WEJuc3JlY2lYSHpqcVpnQU1GTnFub2REMkQvSDk5ZWQ4c3VibDFoUTR3QkJyZFI3d0h0LzJyKzhGWXJnZXRVaW1rdnRyenVoUHdPQ1J0U283c2tSK25aUUNzRFFJaEtiK1p3TytnbGRaN3QwYVk1UGlNL2x5WDBMTXVYWXpWc01JRDBoK2xZNjRZUm9aS0tLQVJDOUN1aFpGZmVGS0ZncVY0eEgzVlA0ekJ0d2N1VWtXQnpvbkVESUhJTjFGdEFsWU1QVU93ajlpYW9ScVNZMFF2eVRPWlRJQU9vSDVUQ2ZORDZ4clhuT1piaE04MnlGNWZROUxHZDI4eEtMSVJMVGd4THRZS0ZDZVBZZjlzK3VCaU5sUkZEUmtnR01aUTROZVV2WDB3eWNnK1N5OE4rNStvTHgydEpOcWNLUWVNcmhiNDRLZUxQeWNrZ3JHVUJhVXpEQUFVUEx4YldsU0w2ODNDTjAyczJWSHFubUQyOVpGSFlOSkhmdEp1ejNiYVpsZURRbXVjeCtqVGlUSTR6WkpaenZTWi9UekpYOUFLd2pBelROMmhBUTBKMHJESXp3ODFvUE1uaHhaa2dhQnVaSkhCVUQ4MDQzTHdHd0FUYm8zbHFhQndzdS83aS9IWTY0QXYxVjhtRzJscTNqUzRDTzVEeUJDc0FXS0JFQkZqQzFrQTlUZ2RuTWlTS2EwaXd6NzVHL2lmUER5U3RSeDR2OVRTTU5ESkEvQ3dhUXdWZ251TVFaSUlURWVLUGdDVEtBdnptMUhXbHBVV0NYakFheFcrUUo2UG5jRmpKZ2Q2aklJRFJ4YjNnNHZ3TTBiVm1DMUg0MHFySG5EQXlVUVRxSmdveGJpVElHWWdhOFJFWmgxR0ZVcTlBZkVNMmJseEJqS0FkVTdjRVZXUGYrdFA4WUFja2pVL1M2REVqZVFQUlVEV3VQTTBEaUdpVEVLa1JZdy9tRmgra1cwSWFNT0VJZmwwNFhLeVVqOSszTjlBdlBxcFg0MkhGQWk1OHI1UWVMdVBaN0FzWnE0UWt5ZmFnbUNGY0xLb1NMUzc0NUE2TWp1aGtub010MStqMkJaRjNpR2NHakhyS3ZNZkxkaURvSDkwcVROZXhrUWxRYWdUdEhteEI2dXFJSURVMkJ0ZzhjTEc4RW5LNE1vRU5WL1FBbGlTQVlibDVpaEhzeXdDcXVBSjMvdUQrL1Q0NEF1SXNIRUg5YnRXZENLKzh3ajN1SmJJS0NhekFscXBiMnNHTElRaXZiNm04aXFJNFZzTGpiQlhmam5CSCt3NEMyZmhxa1QxcGdmYWxkb1JNYkJRQUNBaFlhaUliNjE0bXJqNHdJNEw1R09ldkNkejliWExiMENXZ0g2T0NuWjdRbjRrNzJjbXl2RGNCSUhJUk1SUS9XQldtQmcvN211YndWYndUWVBHOGlaQkRzamgzUkp3ajlyMThDK2hPUXJ3ZTA0WjBVTUNMdFd2L1B6dmZ2UTNzQWxKK2lCMzNaSG9qb3ZjT2tYSEhucktQOUhRZ3B6TUhISlY3aUxZY01jQmFPbFA0MlNVbDRNamdBZUIvY2tLUEpBYTEvSW4wQUJvTWNyR1Q0eGhJYUpNREFIYjlLUUR5b29GSTJmK25UOSt3eWlzNEFseVZVbm4wbmE3T2w1Z2Q0ZVh1UVpzaXpwZlF0Wi9LUHRCaytWZzVCOTBRSExJSGE4MktaRUw2UGZ1cVN0NUptdWdyNmwvcnZSZy9neUwxY2hlNk5QdVRVdW1RRDlLdE8zZVgwWFE1b3d6dkptWnZOV0k3WC9XTzk0TXI1ZUU4NXVwbmhDWExrWHRyN1ZIN0xVQWpqYVYvWnlFby83ckFva2Y2bkk0aklSV3pvY3hCY2xVTm1nTFlqUndvb1JtbjZXcmlZK1JjdzVrdU9wZzlvK1ZNSnQrUmczSXMwc0xFVHdMaDM2aFhvU3dEbGkvd0hLaEEyaVYveTJlRHlwWDJqcWcxamc4dHEyZ2p0c2hGYXlwazhKUCs4VzV0dTlNQlVPOUVsNTIybVBJSWU5TE1CVVl1eHh4SDlkOHBiUVZmQjBEL3kzdjRRL2ZmUm43YWN5ZFYrd1BxSTZ6MGFaMnJEQU0vNFl6cldmbXZ2NkFCYWx1ZjdBWDEvSEFXakN5dE1kWHdlMzIwc3h0Ykh3WkNSbHhib1lDeEtYSXd3QmI4aTMwTE9RZHd5aDh5ZzZ4d3BQY0J2TXc3UWNTaEhJSzZiK1NYeDVTY09ocExFUDA2ZUhrUEhDM1hZZzVpUWFnNmNMbm80Z3ZqOTZMMmdPcVlOMkNNUFlVWnVsbVFTblVka09wSFdNOHhXdVVCN3JOKzRYREgxa0w3V3AvK3FlRGR4Y0RwUlVyem9WTkVEMm8vRlFINmkwMFFJTVBIeVVPM0JpZThnNlJITE45cTlyYnY0R3hKdU5yTWJvVU5mMGRZaDdSK0hISGpoUEpPanVCcExBT2NFK3lnMHdTVjc1Z2ZZVFBVN01DUXhrWmx4NVkxaWNFTzVoZ2FSUlVwTEh5N25kTVgrQ0MrR2swUFVQVTU1SFM3aHdOb3plU3I2OU9OQVNuYkNVVURSc1U5eGJyeXF0eHBIRCtEOXVkSTlJSW1NS2RnaTg3bVVZb0hJVyt5dGdkZGY5WHdzYUEvMzVjcXZQVmlPNERxeDJZR0JSQjh2NERwMVdtSXU4UXBxSFhFeTlBRkdZcG9tZ010VFI3QTE5WGtyRGZOT2xHbjhNQ1F5YjRRT1puMzVhbXNDT1A4SnFxdmNTcFVmaGRhK01VOU01Z2paRWxIRERDRTJYNmNiemswaTFpbm0xTVU3elFtOE54bkJkRFJ5VmlwSWVHblRCRTFINGxMT29kRDFIVnR0NE9NNEdsQy8vVngwY1NIU1RteVpjdFJPQmpPVXRyWDdBWUpuS3A3Q0VLV0h1cTZuY3RsUzhUOUt3LzRmbHo4am9Rc1BmWnUrdzNHWlFORTNteWFzZ3FiTDZncUpRY09vTTlrSyt2d0M2RTdtTng5cUYzWVJlQVpPdHA4VFUydlRjTDExcmRwSUNqZm9jM2VFV0dUcXkvcjMxbTBhdUpIMHhCTy9uYjI0RjVqWVVYbXNHZk4wRzRpaE1JTlc1QWdocHU2TE9ZSk1vNWx4dXIzb3ErRG0xajF6d2ZOR0JVaW96NHd0cGl6RUZva21FdWtGVFMxcEE3NXdRcjhUR0dNV21yOXZ3TzA3MEplcWlNNG5qcWNCS0RPNUNvRjJEc0d6cEMxdjhDUDZibmZZamR3cCtseW1jckJVTVR4RXFCRVI0YnFkSGlsT3RVT0ROUDBJWjkzOFk2OUxJS0xaS2JiV0p6dllzNGZYQm01UkR1Z205bXpQd01uNGlidkRndWFmWnZ2cWM0ZE1STFE1MFFnSWM1Ty9hZFdrZlVXd0NtRjI0Ymc5aHpWZ0pFZUpjdlZicVlsZzFMRXJJa2ZJcWt0enB0TC8zenVRcFpodTVBQ2J4cGc1ejYwWi9vOXlEbFAyOEtOOTA1NnNZK1NCd2NPc3RYc3VEY2ljY2lZU0dBS1J0b016VGlVSFdJWU5qaWRleWxNTkFKYWl3VDYwZTJ1UDNvblllTXVMc2hxZzk5VmgrWGJ1RG1ZaU9XUVJKdGhPRXhHdWJrYzFTVEdTREhFS0NqS2NpMTFSVUtzWU5Nd0FHaVNrYjdBNjkrUXcvY05IangxdTVucEYwNE9YQWlmYnovTzZZYXlzZlJvdGEzTjVjT0dOWHEzN1ZXb045MnRzM0J5cnR3L2ZLKzJCQTdoTkJ5dUdOZ1ZvQWJIdDhoeTdnc0VDN3RDd2RFYi8vdmRPUlRrdFZKUm9SbWpZT3RJczRobGtzRzZRL3A0SFp5N04wZnFod2hsQVNvN3duV1pVRHBFNXhmckJHTHBuTnV0aFk0RWNXT0pOdEhSMFBBZG1TVFZuZXI5UFdNcFVGd0RFS3ZibmhEQXMvWlQxdWJRUzYyZVFEbW9VSHF3WEhxN0NMU3ZTbjZpRHNHRW9qYm14WHdsY1pWUUZWcUk2RUNDeElET1RXSGtGRE5sQzFjeFFBdCs4SXpqaGRCUlhnVFRZMG1HN25GNEorbkVHb09HOVAyODhRR3F2WDVVZUFYRXZ5VmZRZ2MyekVSc2poKzBLRDI1UGwrWVBMQUZHU0o5dUdPd3c2K0JyTVkwcHZXUUs0Q29rN1FON0JBek9vRURmdVltenZDWUx1SGxlZFBES2hEQk1OT01JY3REL3NFQzAyWk11UTVEbVNJQUJYeHJNeGpacTdyV3d0REQ0ellRTjRiWFJCQ0tmQ1lDV2QvSjQ4ajY4WitSV0xGTWVqaURPdVFYeVdrQUZNenRUeFFBME9Ya1FmWnNCb0FIQWhZSXI5QmtUdnJYOXhCRU1mZmhzNlYzcjB4TjJtd0VZZlZlblJqbUYzK1dqYi9rTTNGdTFNUVpZeTczbEdRdlBwV0Y1VkFwUUhVVEFIUlAxY2JwUkhDSGIxWThJR0c3MHdNUnpnVEVWSWpOU1JYb2ZrMHVwKzAwaXJ3a1ZPV3AvS2pLc0g0aFM2SDlkT0ovY0EybUR3VHdheGdIdWZ0Wkx3VHFJb2tGMm8vQWpNRHhjQk1sS0JFTTRxYi9pTXhaejlkRHBFZUplcVduQkZONHpQNUtwWUxRN0YwdkFpa2JuRzBzQXZjUFN0UmI4eEU0ZFBhczBmdU9uSHNISkhyV2hlUHVkUmoxU3FQME9Bd3g2d1FDZXlZTlJBWE5FVDlwUTZDUGdFV29XbnpJNXFkbTRRejFHaGd4d1BMV21HMkdqS1FHVWVmM2VleklBTXZZbzJETFMrMkJ2a1liY0xoRzRIVnRBaW9Rd1o4dVFRelVRNTQrUWFRZi93TGZ3R05KY0phVWx4L0pGZ1FzZGw3bW01eG51VEpVY25RZHNPcWpZSGpvRGFGYUp5REFIb3JtbUJiVkJWQ2hjNjlIY09KVktZT0YyZ29iTnZrRW9nZjZJc3AwSlNGYStrSi9DUkJEMVZSQTc4aFNRSkQ5akFManpkSHlhUHZFemlaUkcrTFJHdXB1cm5JbGl0b2prbHNDNUJVTmVaMVVlQU9qZjJBYjZDZ2xDNm1ESENtRkNuc21sbERJVUhFemJtWDQ3NWtGeXJEWjFQK2dHZ3c1MFhYQzRKNFJCLzg3VlFId0dodE9TclZBVFp4S1VIWTZBQVpoNHpiSHRqNGtCZ3grQk82NlZ6QVdOOTZTWEVvR1BQajBsR2x3bmM2ZGJTM05relJucUhvb3FHQmtBZWdTMmdTcDNuQUc0RFJ5Wnk5dTNnUzVrRHRrWWg1cHhVeDNMSjBvOEpLZ2w4akFEM0c4ekFOUWtLSUZOcy9ZUExtTVBrWG1zYjZFNnhpK21VQjRhQ0JnTFkxaTJVajlBbW9NQnl1bldKeGlDaVQ4eHE1aEd6T0Zrc1Fjd1hoWnllcGF0WXpBRkJocXF3MWtHM2RRMEpvVEoxa3NjUXRIdy9YVHQ2WUdCSjhqa0dCUFhWUDFRRDJrRVNlam9VN2V5M1RzWDZLR0c0U0x5emZVNWp2SW5aSENrMnFqeEhFK3ZiVENMQjlGOUFwcGlTck16Z0R6WFcwWk81ZzJZWURPaW1SNHdpUjJCY3BNQnFPNmZCNUE2Wk9DTWtCa0JRTE1RclNMd01GaWNlem9Ob0szQXFaY29ITVpaNzVNQmNycGxYc3NmcWdSRVlyMzFPc0VrLzBBRkNMQjI2cFhmc1N6SUJFRFdMd3VPVzVkZ3FHajlaSUIrOWpMRUZGcVlIRkNFQ2cwM05ZSXBmM0F6UVlYa2NOQm9yNllQTlpPN2R4anBpRC9JbDAwR3NOaThZdmpMbTdmUlRBRlFPZVNIbC9DcUFSdTM4SnRXWGh5ZXlHdEJSQ2ZjVFFZZ2I4dFhxV3pqRWxhQUFMQVFOd0VDR0h0dTE1NjJpRzZlVmVtZnpEWURCcGlWMHkwejIxb09XNC9GYXlyVlFRNGxXUHR6RVRMRkZjTmUzMmFWTDFLUTZtU0FKbG95Z0p3KzkyWU1vSzY5U1B0ZzZhbC95Z0FlM0x6UURIQ3JNM1VyR2ljc05nU1NQSlhnZ2dFK3NYLzZQUWJZWjVhS2pCSStsdmk2RVpvYjhaWXRNTVNtaG13UnZmRnpCZ2gxZjZGck9wWFlBb0hVaFFrZ01DZHUzSmdqRlZWR1JKYllPajBOdEtRUytJUUVXR0JMVERmTGU4MjhYSEdJcWdNWUlNSGEvUVRxYWk4SmdUVURBb0REbEJnTk5vc1ppZXdPMFV0clNSeGcwdDc5VHhrZ1AwN0lEdDBxbzhZcm9qSGV2VndDRm1UWDMySUFINUVLSzF3eHdHVExCdDIwelFEanEyaXhaSURGNHBJQk1sWG4ya0tBNjd3eXVpbVJ6aHdONW5ZOUlEUzA3d0ltTVk0cHVZUUJWSmJEN0tWem1mcUJIZUkwcnc4bGF5UllPeUtLVDk5dVEyVk9VZ29BTERuSkFCWVRRaU54MHJuTE5pUU9KQTZRaWo5bEFCeU1YSEdpZVhPTVFiU0FPQi9teGRjbkF6QkErL2NZZ0NQQ0xCV0VzNVF2bDhnTE5aejhJUVAwcEYweUFIaGJkN3lyY3dqNnZLK09zb2pUQlBRRnd5QVhsVWRnd2gvRVlVaGEzbUV1T3lURzlBTjNGZHc4QkJVd3dkcjl6Tm5GVEc1T2VHcXBlRnFKMG1JVFdWTk9kTytGd0c4endQZlBHU0FrSzhoTHZRdERXYWNXS2I2K29BMzBsTkh2TU1DK2tLT1pNYW9TVDJ4MEgxeGRBZ1kzQU1NMHExOWxBTjFZZG14RVd3elE2Y0UrbUF3QVRpSzhOamxHMXNuYUZHRFFzSzhDb3F2L2w2NkNIN2NQUVd6RXBxSkpiWWplc2lFcGI0S1lEb3BrZ0NFYWRsRGpTZ0trNytoUEdZQ1lKSzZDTHdUTXVTc2xOV1orZllzMlBkTVlmb01CVG5YR29JQ201TXZWeUl0TEJ2QVQ4ZHZmSzVlQXBybGNBcUFEcmxhbTFOVU1vQys4bTZ1OUpjVktzYytZRE1zeGpKZFBrZjBsT2tCaUxoSjBqN1RuTnc5UkJTU0s5SnhBWFFibmhZV0NBL3RVcCt4YldUUHJjcVVEaE8vb2p4bmdFcTZkZUtDU2FHVm1pYVFObE1kQjU5Y01VQUZVeWcvM2x6dTBrUmR0QnVCYXhUMDdZSmw4MGR2YndQYzNBdlNSNjVORGtyc0FTM1dhWDE5dVlxc3hMR2R0NUFyMjdSeDZ3MVdBT09uYmh5RHBYWnJ3eVc1NHhWTTRScllKbmRRSnU5WnM5bGJ0WFFESDZZOFo0SGI2amFXdFZwR096dmZGQlFOd3Mvb2JERkNNQ0liY1Zjb0xPOEJOQm9ENWtSRFJKL2pTZkswaUExeVZBSVpaeE4wNUpDblY0QVFLMUdiRkFJUnF1aDVWQVVFSkREbVdxVUtUcGVGR3ZYVUlndjR0OUlueWhoUUI5QkdwVUtJNXhobmc4OERXcnhqZ2cyM3hmOEFBbVlpbVNraTVMR2hqRU03ZllJQVVmQ3FUODE3NWN0NDYxNWNBNUp2eGZmSVFPemlxVjdjWklGREw1UklRbHNBNU5vYWR6R0w3bm9zTUxnd2wwRGQxcGNpKzIrdmlURDdodjV6TFh6Y1BjWGZnaWVGZDJub3BIVStXYWdaUm9tbENBdlM5MVJLZ1lmdGZNVUNkZmlNTXFabnFVRnArZlVFYnl5c3orQ1VEK0loOE1rdEZmSGkrWElXOHVHUUFLcVEwV01pNjN1aDcvZHdaWkRMREVvenV5QUFKMnV3cmJsY1R3YnN2SUhRQTBiYm91YWF2RmxTb1BVTElEeENwQkVoUmh1cmNQbFNxVlRLbVpBNW95UlFjbVZKbGFJQ1RYQUlHYkx0YUIyQ2plKzF2S29IVG1DdG93Y2tGYmJyWXVLNS96UUFjRVlkWmZzUzk4cElDZWJFNXRSbUFma1BicGNtTW5zdi9jcEJ1NmdDWnM2UGJ6VjNBMkhHWUFnV0dOekJRbXRPdzBPNlkxaTlCelJjZUljOFBnTk9VYUdrK09kNCtWSUMxclgza0hvRWlBSXNiNWhvbVFqQUE1REFhWXJZS09zTTZZT21tTnFlL3VBMTB5MDBzTTUvOCtwSTJ5REhVWERMQXNQWUZjRVJ5cWY5d2xiTFV2TmdRWU5wbUFJZmVLWVQzc0ZDVTZCd1l3WjlMQUU3RGxTS3BDM3ZmRmpRZ1JqaFFtaHg5N2FIaEtFSE5GeDZodTJJdWF5djRaWC96VUtxQTJlSXBySXlTWDQzSXZKSUJ1bHRyK3RFbG5iVTlJMFR5SnhMZ3p3MUJFUXJUc0lYY0xtaGpTOWJjR1NBMWRRRlpGV2xnMjFrcVVxVXNlTWFiQVhiYkRLQkdTNXIyeVVKelloZC9wUU1zMU1teFdIQ3o1dzZmaFVjRUJVclR6UEhrTUxtcUFqVkhGaEdLN0x1WXl4eWR6TTU5dW4wb1djTmJ2VWU0K0dvOCtSZUdJS1crUlRZTHk5eGtnRDgzQlNjYnMvVTlJMVh4bHFhMUh1aUxncVpPVjdzdnIzaE83aWM3YURrck1nR1FOK1A5aTZHSVdENnI2cUpwc0JwemVQOXFGM0Q0QUJpY2tnMGpoM0luamhGVytyY3FWdlNKSFkrSVhTZHFLRnQzRjNNNWRqYXoyNGRLdFFxdE1nWDhrZ0hZV3FaZ2ExMDZVZjZRQWJEVnUrb01DamJtZ3lPcDZGdVZwaDI1WXo0L3lRQlVsUllJdHNsVVpXV1dpb20wOE92bTNtc2REVVM5WklERVQ0NUdxT0tqZFFQd2tiK3lBOHdialhOWXU3OE1BNlNCSm80Ujl2S2xwMlVCRWsvcytEZERQTUxnQ0ZMZWVRN3pPVnV4czdsOWlBTUU1WUJWbjFLdi9DVURvTG5OcDFBQ2QvS2ZOSHZFSHpMQWFYUExIWnhFUTNBYU42aFlzTXEzdEJCR1o0Q3N2R0hMSzhQU01DSjBwNkdjR3o4ODMrZmo0SzI1d1FCZkFlRlZuTUp3Skk5aHlvV2JVY0VJaHBJZ2RPaklaL3JMOEk1SyttNWdoSW5TUFFhSHNUU3FsNGlqZDRlUi9LWnMzWG5Wamw3TTVVaUlmZnNRZDVNSHJ1ZlFpekxTNkJjTUVBMEhxMjFnWmhMNFV3YllMMjhGaEtSbGZEVFJpc3BGREU2WkVzOU1GNTV2alFoNUxxOWVlNGVDajFFenpGSlJocWcxL1d3MUF4UkZXbGhYOEFYMXExR21ib0FZajl1NEFNdTFCVmpJeUdnSFpaKzFNYWgwRWdGcmNKZmtNRUNKdkM2MDJmQ0pBTEFheUhlTWJ1a1BMdWJ5OVBZaHFsWFFnQjhlVXNSaURmZ0ZBM2pqUVFhRVpLc1o0T09DQVJZbEEyVFcyK3NoWWJIWGF4cVgxUHlWbVRYWFNIWnY2NncwTUVDRVZPVHl5cjBlZzlJb0pqSkV6ZlBNWnJQWXZRZzhEQUZKL0tSaEZSODA5WUlsd3ZvSk1nZzEwQWtWQzlwdEZCWUVERnlCS2RhMmR4QThrZEhBTFNQTkFxSzhpQUVpdjl3VjFKTkd1dEtnZFBNUXJDNGVKR0lSVWxGTXJHQ0FwcmxnZ0NyNEt4aGdYalptWitRQmovb3Zrb1NreUMyeTNtWnVDcXdqa2JnaTF6d1FyZjcxNGdXR3RsbHNDT3RHSnZuZzhncThCSk5RZU1FVmlBbitpa3pUMlZoWmlhUWthb3RlTmtYVkxjY0tpUVVlRUVMNko5aEFCYW9RVngxd3k1bmlOMGw1YlVEQWJnd0p1MDhPVTc3QTRTWHdQc1EybzBrWE1vU01CcFRmYittYlFMam16dzV0UjFFK0RFc0ZmNEZVbDVyR2tlNWpkR1Z6UXE3cVh1Z0FHeit3cWxQejVZRHpCdytuYm9YUmpzUVZSb0NRbTVudWd5S2ROZGhmSHZOdkt6cGJwdUFnQnBSSktMemdpb2lKL0tVL1FMRnNWaXN1U2ZsNnowQUw0aWRQUU1YY094NzROam9ZVU5rcDRkOEVvMCt6YllEaTA1dlpLYUFzT095ZGdHaEhDSDk5RWR0TUlMUXlBR000TFdNbGRMc0k0cng5eUNPOHdlUVpDWjdKb25MVW4wQWUyMzg4U2V4dC9tY0hBWHFMUnRLb2R5VU9iTzJ1bVNTRUF4NC9jTmgxSzBwS0Z0K2xTa3o4S2dUQ2ZmN0MyaW9OQUlYNEd3RXhUUEpScE9EWUtMMlloRUk2eUNRUC9ncy82dllTK1g4OFF3SnhGV0FCVEVhZG5KNFJBSEliVGVkcjVnY0FrYVhIRWtBczBhYkVoQ01YQnJLUEhJRnp6dWNlNC9XNEVrU2FJZzRIUzZaTDdlQ2NaK05xMWozZVBqUjlKQ1lZVVM5Zy92amxFTnBTMDlEbVFPSnNXMDh4WG5jemJhTWZnSGdNeEhZTWYvVkR4NVc2bGExdlRGd2gvVXhrNGNCWHJvRDhwUU5KS1ZvT3Fnenp5Y2lSS1RnNC9DbFhnWFY3ajErUXVYV2JjaWJ5QU9MYUNLMnplRXU5SEUydVJ3b2haQmJ4SHNzUWttL0ZCZDZSMThHc0t0bVp0dzdNYjdCb0FyZFZQaGxpR3ZMSGRPVmh6ck1qYWdmN1BLdG4zZnZ0UTg1c1dJekFlbS84WlN0TmpycXRWbWlYYzRRcHhpbVMyQ2liOW5GQUtPbEpDcVl4WUxLQWVvNlFxU0hXTWpjRlp4SEdIMnlSdVRpVWF2NExkUzN0aDBNWHBUbnRwQU1UbE11cno4ZWxaNXc0RmN1c1pRZkNDdnp1OUhySFdxeFRUajQ3U0FnQllCTEFscXlTaDVuaHdIdVExOEJKalZrQmREWUNOWVUwdVZ5cGR1ZTVsZHpFdmlSd1c5ZklZUllKSXFRMlY5cjlYU2Jrc1lVbmY0MXZIeUpYazhuamw2ZnpLRWRkcG80blVibVlJOUJNWmpqT2x0ckpOdzZRT3Bta2dBcU5qL3c3dFJ0RXNERTNSVGxwd0FGQkEwRGNBVjdtb3BtNUtwQzVJMW4weFRwT015eXZQRUFwam93VEptSTliUkdUdlNGRkNQMEFMMkJNUnFRSENVLzJwa1RrSW1ORHJtS0dpZVo4eFJzVXBIWmY2NWNqMUVOaFJlSUtUNVRvVHJZTjg5NE9rQkk3aWdRUlVwdTY5djZPV0U0bVFhbG1YWEZvVmszSUltR0k3aTZnY1BCa2JqbS9jNXpIZGFLUUhQUXA4aDNsbVhXZUVCNjRURklnTFpaaUxuZUdXYVp1ZFRGcGtnWVlWYVF2NEtLWjJTM2c0a3BGN2drZDMwYzdlZVlIbmd3OWZ6eCtNeW5WTTlPeFBiZ1NwM29qdTBCQ1lsSklRazk2SmpkMmcyM3FzYUEvTXh5d0VIV1MydjB6OG16ZlVQbVcxVkxYMEhZZWJuWm12b1l0T0NwajRwbm05L0xNQTNlUmtJZFplbnpXYmV4M0pPa3BaNm9tSDRwOElaRld5bk9walBHVkhPYVVIRWFQbVNjSThRa2haL3FwMHpwUGlCK1lWVWtLNUVBcTQ4eDJZZ3VyYWRjWGsrYVlOTmg2RldwdGU4dmNXdWlaeTlqSzZmano3VXk1NUlGQXozL2hhdTRDbVhCQzFTdTVYK1J1QkFtSlNnTUpMYkhGa2RPRCtRMXlKN3QzVEx6MmRBRTVJcWtkYU1oTU82MUtIVnphU3N0WitvUVhpZzJBRmN3emdjUHpEVWlseFFOa2xwNndEa1NDSDgrTlJrazZZOW9lNXZpeUZVa0huUUFpRGlVNVFJZVo1cG5jaFRFalIrb2dPaCswOFI1MW5oQnQ1UzBZVzVMYmNUa1ZoS0pxcldrdExpWk5RUU5HQTMvVElBSUR4amwzbW9ZaU4xQVBwNnV2MVU5YkhBajBQUGxzcEprb21IQ0NNM3JYcTdMY0oyaVVpUzJFVnN5aFFKVDRZazRHaUZUQ2hxbkZrNXpVRU5pdXlGUU00Q1JxTXdETHg0anZvSWtxUDB3Wk96OFF6cTFpNTA2a0VWWDBUT2h6NG9SbWRrUlN3NlJXeXN5WjVRdkpLYklDM3BNeTRJZTBiemZRQnQ3RGZEYm4wRUdZY2VpSDM2UE1Fd0pDRWJ5T1cvZzFZWkREWnhXYmE2Z0FyVW1qMzBJYVlLQ1pBSVd2SnYxcGExcTZwWmM0ZTZZWDJkREUyUFFUUGMvb2QxUlNZc0lKem1oWWo3UE94VEpLNnhrTm9QZlk5R0orQTU0cGlnNVlBbEk3VU5wVnhaTklyVlV3UUpMb2dnR2VrUGxFSEdOZ1VaaTNITG1KUEF5QUxYeHBocERTUXpBeEhHa21NUnB1U1kzeUxPSnI2Vi93S2RLYkcyNk5lUVRzQ0JKQ0JPS0w3KzQ2eU1hU0FEb01GVUJrNUFuaDJ4VzNTQy9CL2hxaHNQNmZWT0Y4ckNiTkVrbXBBTnhGZUFCRk9CZUFMZ05uS0FGMDBKRFZndFBWa3o4eGdVV0Juajl0M01sOGNLdC81bjJBazUvUjhOQzZScEhZd2tRczFXdm1OK2gwc1IvR0N0SUZISDdkWjE2Tjk1SUJNclZXTW9DVFNEcmJTd0FFMUdwWGVRUU51VWt6dFZIMVRtYU93N3djclRWR01vWlJ4NEJha01obXpBdjducEk1MGtqSXdKRjJ3SVB4RUtpNkxPVWNnaVFybGxhVlEwVWk1bVBrQ2FGOGl1Z2lqR0RlWXVsQlZkckZ5dnpJUUFZdFhwZW9LaUowaXFXYXNCbGJ4SmNucFQ5dmN1aXZtU2M1U2MzcGFtbDV5UlpDS3FEblRaQTU2UGR3MEVCTnlCb1AwWU1IbVFXakFROS9nbHhIWWd2YnBNY0dHM2tzVmx3ZXNVRlhvTFFXTW9NUlhRYXlISzVNclpVTWNBYUowTm1XQUpDbmcza1ZFMkFTd0ZrV2ErZmRmd3FZVjlNUVcwYi9zOXJyZXo3R1NndENGNHlaSHhNaXdIRnJHcVZTSUFST1NKS2xBdEM2MjZVOFlZNnhQUit6SUZtZUVLK2p3Q3pLbEtIa0xVL0hBcG80b2FBeXlxeGtSdHVDQVF6ZExQRUI2cXJ2TVFXT3Bkdkd3Z0N2SVZrY1ZqTGpaTmFSUUlMQ1NFV3hjMSt0NVhseVF6bVZ3UEE2bndISFlZZzJaV2JISENNVXNaRkRRZWVpdTNmQloyWUw1LzhvQStWd0ZhbTFnZ0Y2U2d6eFZXRmdhZ2F3WkFvQWxCNGlLcWlPblRac1lBbnpZa25JYVVTZ2ZIeGdQb1k2elV3U0VGQmNCR0QzOVFJRElEWHpDSmd0MG85UUJwVU1VQmxzR2VUTVBDSHVRNkpta05VTDlKa3FjamhWKzZyZDRoWk0xTWljMXNrQXRodnFlWWtHMWdmRGJaV0N1aFoxcU51ZjZIVWQwZDhuaWs3RVJXbVg3cWNaN1czcDF4bUUybUhWekVUZVRqcDh0WVI3UWJ5NmlPVktqT2hJL1NQRDBNeEpQc1NMdFFMY1I3dElyUlVNMEtoekZjTWx2Rkl4UU5TdFVVQXBWaVRZREs0eUFLZDJGa1hpTDdsNDNoRGJXU0RqSVRZeFJ6bnpZcS9TVzVWNUJDempzRUp1b1JwZ25hc1lBQjZ5cldYTUp3TmdtQWVSajRVN1FOeGNJeWROZnJ0YVBsb2hRVWpYVVpqWTdZMmdMV1pwS3k3MFZxUWw0aU16S0V2YWlybzlkMkdtMkljYW4wVWVzSmhhcjJuVHdONTdtcnBwZ1VZQ3c2QTc0VjZRK0UzVExpSU1Rcllqa1lXUWx3aUhjOCtEWEVJQzlCZU5Cam5UUTFjeFFGYXVFajBnY2poY1k0QUM1clhnV1I3dk5SK2dFTENqM0VLbkg3Q1dSSlRhUWU5cUJ6UFVpbHNvYnVzNHlqdGRmaDhxaEtCMW16WjZJbTkxTEV1TVpXUlNJRjRWMjBSQ1piMk05UnFNQVdHRXRZSUwxN3hYRlF0RkFTZDVXbzZEbDdVb2s4bU1hVHVEWXQ4UE5kNzNadWhGWkVpS1VoU1hndVdsanVtVlJjZnpWMmJ2OWZyTXY4MEFaMFd3OHZHT3NVR2FxWjdId3RjTTRBc1NDbjVIdE1ZMUJraVlGem1wS0kzZlhWVmxBWkZPY2lLZGlLSGc5dURFWmRZRE1jNU1HTFdrR3BLai9GVHVhM3B6ZERPOW1GY2EwWHRrNGZaV2RDTnZVVmJNRVpwNHJSTnE0WDJUOWM0QW1aQUhnYUxNbFJBWkZ5UjJLTkswUmRXNEJRc3hvVGVVZS9SU2hKQUJGc0FIWERLQTJaM0FybitOQVpUK3ZnMU42MENueTFqNE5nUGtnclFOZE5EMktnTVVNQzhDUDhBQWhpaXJHTURUeVdGck1SajQ5bURKWmRhR2M0RmRYQlEyT3JOYmRlMDZTMEFmM1EyMXVIR1JCQ01LdDA5OXlXRXZDUlg2SXNyN0hiZ0NNbURYRmk3TndkZ3E1QXRwMnpTdGpBdno5VHlpUnlQanpScXh1aXcrcFdNRDVSNjluNFVvSGNRU0VBeGdoWlExdnREQnIzK0xBUXI2bDNhQUx1NTZnd0VvQmw4bjdMN0JBQW56WXJ4WE1JQXMwNWxPWW1hWVA2SlVyU0lWakVtYldHYWJOU3JMc3JiMGU2Z2hIT1V5VDhnbjZyWTFoOGdlNFdnWjZjM2l6NFNZTFpBYVEzc1J5NHRlVkYxVVFJekhxSVFXRHJIWWtBRXdxb1F1YnNNQUZldjFZS2NJOXFwb0xxcEtpckFJNjV1dmptZkRqMlhRYUNpQktaYUpvWmJSSlBqMXJ6R0FEZzBOa1pVbDhEY1lnTjAzR2FDdEFtNEtCcUQwTEhNaG9wRDh3bXJTUWZZU2Vxc3F3L2s4RUlJd2Rwd1FPT2tXOVhmdDRMRll2bm95OXN3ZmsrRm4wRmx5eFlvZ1hIaTBHTXZMdVlZYmpyak9PYlJTUGhsaThSeVdoaHhWWGJ4WXF3Ym5Jcnk2MDhueDhGeFpQWjIrMGtzRzhOQXo5TG84bklwdTZoUExmTzFGMXJiUlNDN1hxT0MveUFBS3FXUFc1Tk1mTW9BODdHY01rRWtnUE9ZN0dZREJ2c1NKZU9GVlJhbXU1d3RLemdLbTdOQzFsSktRa2RxOWkxUkY4V1pDQ3g5bWl6R3pTNlVOM0htUk9EYnR6YlV1OGJtcnFIT2R3aDZqZXAwQnRKbDVaUUluQUZSN0h3OTZHQmdJR2d5QTBMTVZlNTBCMUl4UTVyQjZYL29vb3VoNXIyRlJ5Ny9FQUo4ZkI1a3FGTG0veVFDT2xaMzhRZ2VJSkJBQjdrb0dzRnN3TVdGVUdkZkp1eHBFL2puSHUrc0hNK3NkS1AyU0czNWRJaWhTUzlhOHdwazl0RXlnUXJaQTQycWtIeG9RaktSSktld0xCbmk3dWdURWhzSEMvbW5NRDkxU3l6RzZFaEVadDdTVHlLRUwyTUxVd1ZJNkxGWVZsSGJMdjhRQWg4WVcwZTN2TGdFWjBObnR3bzdLMGI5a2dFZ0NFZkRPTmdORW5iak1iRERzaHV4dG95dDZGL2t1UkNtNkR0MHYwNldSdDlqWTYwS0VyUW9ranp3REh4ZmpWekFBVlRoa1M2bVZRR0t0RnRKU0FpRGhvaUUvL1FaUWtBRVJRZTkxQmhqRE9KRUZOc01aOUpjWVFLaGdTWmZNK2ZVYkRCRHlTTlVjR2NQYmRvQUVETlBnYzZxWGdNV2NIQUFaNTVqYkJGUzgxQXlRUTE5dWk2NHpRSUhzY05YUVd6bFEyVnN4UUQvYXp4Z2cxcWVWNm5EY0Jyb1dZUVdFaS9MK3hPMkxFQThkZ09pWXd4eTlOeG5BdlJrcVZ3NG9Bb0NZZ3BzTXdIVk83Q1M5U3hFbWZIZ3hYTkI2YWREOU5RT1FtN25SU1F2WUZRWWd6Q3Z4d3FkS0NkUnJtWSs3V2srSnYvOWZNY0EyR2NCN2U5NEc1VXlKM21BQXdGdWpkVzR1QWU5Wlp4dlZ0SnRhWDlCMFJZTmtBTDZRQWtLVEFaeFk2TDNOQU83UGxFbGpDY21GL2c1TXRYenpvNXBVOWlRUkdUbU9oQnJxSnVSaXVMQ2hvdC9xTnhoZ1hKZzYwZ1orbFFHWThpQVNRWllNTUFKMFVUNituWHFtaERGQ3lwclNZMkxIRlB2U05Eck1CRGFYT2dDdDQxeHZWdndQVCtRV2xyMHNGQnFrWG8ya2RYWXJRR2xLWVYvNEF0eVZCenNPbDlIOEVxaXR5UUFjUUd3am5BRml5RWF3Sk4xa0FPSVN0Rnk1ZUhOeEZqTmpVUUpCRWp1cDBwTTRYeENQNk5zWXN1cFZVekRWZ0o4eGdLZmVjUXg2QlpQS3NyekpBRXg1a05qT1pBQjRvQUJleGJFYkVxRFlCUXdkU2srQUxidkIvSmU3Z0NGeGxnbEN3UWNxVFdnS0RKaStiaGxRKzRUYk5XNFpPMHIvZVE4ZzA0U0htN0FuL2RKcStDbmFHU3ZrdnZPK2NrUFZackc5TFBDOXV6UWs1SnNobVRuczdsZWhpOFFsc0lTOXM4bHBIS1pvVUpVTTROdmJneW9Wb1ZmZ1ZMTHE0bEpnam5aUUE5SkhpTFdQdU1OZ0FMYy9iR3AzQjB0TjFXVjVqUUU0Y0ludXJoaEFvWXNrYWJIOWd2U20xRTgvcUFyVXpIN3ZDVFZsOWFuY0VXa0hnUGpEYzhNT0lPUkRGZ3lZQW8zVVdLdUorSjVIWG4wT3FsREtmWWRLNlJUMllRbmN2Tk52Z0R6T1ZrMTdiT29zTTJnc0RwUkNDS0xTWHBnU29ScW1WMFgwQmUwOWVFTHVTd2I0K2k1TDJJT2trVlhRVENjTG42dTBuWnA3d1FnWjl1azVPdGZ1c3llcDVhbFc4eVpOK2p1c2ZZWTdoSXRJcnc4TDVMTEdTVEVTcGwyV1YzTUYxMzZnNWI1a0FJMHBoM2pIRU9jdVFDVm55RFBEU0RLSlZacjgxTFZDSGNJY2ttdU1wMHVBaFJvVDRHc015RjVpdXhIcDRkWTlHMzFRaXF6bEQxejRoaXNUWm5BR3lkUktrQ25TKzFQaUsvME4zVTRMODBKT0pZUFh6Z1FONGtwMmsrOWliOE1KbGdJM0dZQ2RKbWt3d3ZSUTBKbmgza0R6bnREQkdIaGdFOW83ZEhyVVRwQmFqYjZkQVhzUlpVQVlLWEdIc0VVV1BvZ2xDeUk5RTVYR2dwSjFXVjRraTZiZ2ljeUJKUU9vWTI2VklGOE1HNmE2Q0paNVp1RHdvQ2NZQ0t0TU5XSkRzMjRpN0ZOL2tjdGxraDA4MnFEVVdSQy9nTExGNkxYUjExN1RSUUQ0RGg5L1J0K0ZzT2UwSWdOZ0ppU1FHQ1dwZUYrUVpkNExER3ZwVG93WXdyRUZuMWh2U3RoTklYQlpnTWREOCtHNFpLa0Ntcy9wenN5UXF5S2ltSVNrajlvTHZ6dTRORWk5QmFuWnE3R1poSkU2R09oK0NyUXdvOTgzQUpVZ3pGNmJZU1FRTVpsbGVXZFdMOERtYWVZT0xSbGczc3doVHZ1RGNxcHpQa0tqOWtyZUdEaTZDS1EzNG45SDdJNEVObzRSWG5QMEdXKzByQnkwYXdiL1JLQXRISTNxK2QxU0FiTUpOSi83aG92NUxISUdaY2s5MENDQnhGWk5QYjNNdTFWZ1dNdUFnb3dpTm84MGUwUENMbXVCZTJKZVRTOWh6MXFXckt6b3FSb3k2Rkk1d0RBRkV4SVNyT3A0MU1temcwdEJhdndBZEppOUc2L0JmTys0UTdVUEVTMk1LQ3VyT3owbW9oVDFmazhPZElwS3YyQ0E5QVBacWxBd2dCWWVvM011NE5BbzNFVzMzNW5nOVVoZzBldVp2cEVJZ0VrM1hQd21tUUlqek5GbjJmcFRyYk00TUdMam93L2hSNHZVeWVQOEFGVmNqV3pEZFpvVk02akkxMzlzb1lxQmtMUTRFNXpiVFF3cnZkMW9pU1BnV2hxZGpCNXBDVnpHd05ZbDdLM21kYVJxUVBPdzY2enhyaTJ3TjZ5SkhzaTVJUFVMb01QczFldlJwbzdKQWpxY0ZCNFRKanoxSTRpOWhVQ1E5bmhmNGRUdW9HUmt5WWRnZ0tacHNIUng5c1pVei9sNHRraU1DS1V5cUx4bnFtR1IyTzBRM2E2R0VDTXNqWk9DRWVBdGJEZWhVYTNlNGZNVEFWT2NRQ0NLM0JpOSszSUdaYjcrWXd0VkhMVks5UTVLbGdJcXU4a3krWlNsRHZqeDNwU3dJWEF6Q0xwVndoNkkxV05CNjZTZjlBYTBNZXFGSDRsSDFSYkl1WnJVN0JWc0dvdkY0ellKWUxWeXI0SHhpREw0ZXpDOXdkWlFhaGdsT0V3SFlEMVJWd0Y5SlVNQTRqbG5MejMvaUJibWZQVFFjbkQ1bTBvcWpLZVZjajU2RFhJTzg3UGhrd3M0MW9Sblc3WGdXbWRoVmhQdGZRL0U5elBSVmc3aUkrRG8xYXZhWHBsQlk0aTBOcEFZTzdhQWRyOEZXUmhXak44dVN4V1p0cm5vVmNoZ0NseURRUUE2a3lYc3ZmWWlrWk1WVlExTnQzSDQvcU5mRUhoVW5xK0Mya205U2R5cFFtcVJYWURqUUFnN0lLcUI4Y0F3Nmo4UXBaQ0RKcks4ZWpKTHdPa1NrSWxOZFhDSWtFTGo3T1hwSitJRllqNHE4YUsyL3h2SDg1NDRFdWtHMUxEc2R0UzZ0TEo3aGhZNkMzbzNLSnB1ZUduMnZpaG9GNTA2VGc0NTFEc1l1UHAwTVlQUUQ3SVVRR0xna0lJc0xPMnZnaE5WOW9uWHo5VlNENHpMWHZ6R0lmN0VQVm5RSHc4bVdvdGlvVVFSZzlBNFBTVEQyNXVMREZUWFBXVnlGMExjbGRRRjdqUTQzcGNYVDJMQnVVVEVtOHBSenpHRHVDMHFMYnFEQTJxS1JZUHVpRkFsMGtOYjR2MkZqWHoyWXBvU01SVHpNVW10WUdEbjJySEtxS09Oc25aclB6bGZtWVdqaEc0UW1vamZRbWVKWWNlQjZHVWZ6dzVNNDRaSVV1a0pZcHA4UENuOTg5WGtlZ0RzajBvdW9MbTE4U2lQQjZaMTR4eUdmdllhOCtrUkhMTEpxSitWcUlUazFTVUhZWlByUGFicDVtUjRFd0ljbjU0VXcwOGtqRlp4cHM2QTZ1L2tpOFNkZ2xTRURsUEJMTExFNmRuTXpxSWJSdjBYMjZsd1Z1cldSdkZDMktaYXhSREhxQU9RanBaNC8zcFMrMVIvcWI4UjJNQWxocEdOcDhlU2hpTmdabU1BL2hiU2pqR2NlWkZtd1FnbzkzdmthNUJlRUxSTzJSQW83NzJ1SUlGbWZJQlFzSDVmRng3NEdlT2x5TklacGlCbW00c3VOSmVoaW5yTmhkOFpuWWhpZVgxVkZGckxEK2ljaVp4eWRudzdSU2RLdkZ3SnZ3bVMxTkJScmU5TkpBeXJPR1BYSUowV002MmtMbkduSXdTc28vNkhiVEVaSE91eG1MUTlOVDNkUUNNYzNGUGpuNnNpdHBheDZnNUx5LzI5Zmtqa1B1QWtmZWZNSWFsRWZtTzJjZ0pUeWpIVkJZYng2YldBeStlU2JBTmNKQzZKazhCc1hMWWhaVW9vOTh0clp0emxnbGNuYllFK2NLUllnZjdtY01ZM1I3UlNNNlIyOHBJS2w2NERvYnkwaVBQdGlmWU1MT2RMM2JmU0dhOWZ3T2FJaEFUbFlubk05YkdnS0ZkVDRvc3RaU3VBKzZKV094Sm1uMEhvRExzRVRkRkwzR251ZXhuRnZHN1UxRUxqVTlhbFV5OTVHT3VpTm9KYU1nZjBxNU1CTnE1eEtHRXozNG0wV0xteWw3UFZwMlk1eUJ4R2JZVExveGVpYk9zMWxJemdXSFFJQWFhRzdtcEpDZVhHYWN5NGUrUU15N1JOMEFoRDJVaXlrQzQyQWQxRjE4WGd5ekwzWnNobXk1dWIyNWR5b3dMb2IyNytJVnVKUHlTRVdReUxQRFFhWW1QSzR1RlFrRk5EUm5COFVsUmJZQkJPTTdxa1pZb0NkZFF4MDNFR29VdWJPNllUVzZjTDNHa1p4ZHhuTEtiYUdNSzJHeENuVEtXTHdzcFd5UDZWRE1DY0pESnA3alAvRVJWaVR1b0g5dVpzTFJNVEVoczY1REFTTHUrR0daaEZ1bEZEaVdBQm5JUTVFa2h2TXgrVlVHNGFXckFEcFNTZFpPSzJJUmRJbTVZa3l4a1dCdERsZ1FJbXJFT0NxbEttSW5Pb2RoQUdqQlp4aUhUb3dOSkU0QUdleEVxcWdDVFFDRVdZTE9qc1cyU2d0ZkI5bTFrSkt5Z1RPaStMd3ZMOVR5OHdROHN4MHp4N3pQUW1UT0lMSnBmT1FGcEVNU000bGhHVEhFTFVRd2FlaWNEWGdHa0RvV1FzQkNWUUJaUzJwNGN5QTlvcDgxOWs5dnZZVHpQL2dnMHlzYUVkbXVEOG1mNUVIVm1GOEpoZHprdlI5aHdDSEpHWVJHZ21sRnNCVnBGeEY1S1V4R0xxUmtjRWZTT3poSk9sYVl3dUlXRG9ZVkdraDBZTHFscHNFenFqbk9Wb0VvZlZwRERqRURJRUttQzBQT2pqakxrb2gzQlBTQ2lhU0hBRmcrTnQ4aEpOeDJrYUZ2SGxkUW13TFB3cTZmeGd1V0hVRzFmY0tSMW9HZFdRd2JGcFBnVmJBM21EeDdsSm1veUw2V1pLb1BZYmpLWE1nYmpFbUxwWmpkdEVuNjIxMnFuQXdpdHVMREtpREM3Z2Z2VE5FVWZlQkFUWUdLQnZFRVNhbXdubFZtOXlaTnpsRE12a3JaaVltZG5GSzJXQ2xvRk84UUlaNGdrMmZIWkhtZDlyUFlabDg1REVnY3JNaUdicGFvaU5lMDFzSEFQRUdrRE5ES0QrWHFUb2I5YkNoUkV4NjZHaVZ1NGxmV0xqVWdjWTlPUjlvUU9NR1J4cnZsSlB2MXVVQUZIY3FZZXdaZlhrNGFRc2FVQzJMdXZNSXBVZkJCRVlGLzRhR2pEdlZMZ1l1R0diZVUrWkt0VmdjcWdvWEpYMGh0NUpLVWVSdzFnNitUKytYaFJyMWI0Rm83OERXaFlRWURwMjVDb01aUmwxVXNhdWVJWDdQdkFFSW1kNWZXUjJRV3BuakxMd3dRRVRrTG5OTE5wbGg2QkhXVExubEVYN1UwQkpjTms4RVpTempHZ0dOczZCRVZYSi9nRmlmK2xFUS9Ka3p0R3pHSzZqV0ZZRWl5dWhFZHJPSVBiVURVclVXeEZFTVl4eVl1V2dESXNpVUVYOTlKSUJuSzJ0V0FDSGxSSGRmV1hwMEJjUUVYSm5JRGZlVy9tSmQzbkZtTnA4cWpKWUwvcktSNGVBQUkzRFk3NHVRMW5vVVpCT1VDMldMVUlMNTFqZ0VITm52a1NPL2cwR0FKUGgyUU9NY0s4SjBUenphYW54QVdnOWFFQkZTUWdkUi95NzZtVjVkRWhuZWplRE9Qak1Bc0JZUm9IdHE1TDlvdXVmUGRneWt5ZXZOVVZ0SFJ3ZkZKME1pd3BobDVCRGVsc2lyRFkvL3dZRGhFRFd3dmU1QkJSc0xjZ2JobTdqUGJpSVdBZ01uWml5Qkd3OTZYMFVJOC9xc3loVWRtZ1dWZlNmem5QcE5UWnlTQTZtU3huTTV2N1NnUW1ZVGtFUFZVWGhhOERsWEQzSmVtMEd5SWh0Z1BsRCtnem1Ya1RacCtWaXJ2ZUVLemNQOHBYQkFCWlpPZWRWM0M5amxobHhNaGw2d1FCeUFrbUdQRXdaYkQxNVpsRWNIUFJLWUFyZWVjYnl3UU5aeTBvTzROc3pIVGwxQTY0K3J0ZXRHSGNXcEs0eFMrY285MExQRXpKK0NQc3ZXZ2dwVlFLVEVTT3dSRENTVlJ5THVZUEJFbEhKUHUvQzhKclBpZ0ZNN1NTc2l6QWJCbmtOazJZMFBWNnBlYi96QmdrQVZieHI4UzAzSlFBVlhxVS9kcjJOL3VGQlRDUmtNeGowTGNKam5nZERBb3p3N3hwKzd6TDJsWFVFa1BvL3FtK25KSmFsbEpBbU1Tek0yRzg5V2hkTDdwY1JzQTdFZVMxS0FKZXpvOXZOTk5XY3B3bEV4T3RXQ05OMmlHOHFnY1J3UWsrbkFPOGZYTDNNV015T2NNdTZaRVRnc2JYSkxaSUJzcHhDVVZJdjBWZnR1RlhLT2Fvb2tkbmVXS2VNLzc5YTh4NmRYU1lCcDVsNkdaa1Jiak9BblVJcjFueXVTcUxNQkdOQVRrdnBHZlFYdlo3SmZ6OVk2d0RDRjRTZExrOVphQTRuTWlMWTlTaUdsODJkTnJibm5aYmwvcm5aNm5tY09jY0FWdHh1RkEvTzlYRWdkZ09tUzZ2bmFWR1M1am9EVUFEMitpcVBzeElHck5YNEJ1dzdDQjJQR2dob2dkSkFZTWxLTjdhTnRKSUJvdmpMMmVIRVdBR3krdXpWQVBDSmk0dW50N0xxUWsyenk1cjNTQ0VjWlFDWWREUnBmcHNCU09OVlQya0pZc3E5SyttRzBvYnlFaXY4eTRQMzFTNkFLd1A4bFV6QkYwOTRhOWNaUXpxOXhRSVJUcDZSY0ZyV0k0UnhqblNHbmRXR2FUS3FDZ2R5TDJReGNEMmtTVkIxcnhhYjhlUWJET0RCVG9hL25qdENDQ1ljYkpZQnFMWFEvNnFDYWVKYkVyV2lyVndDT05ubFBDK0ZHelhRR0dSL2pRRXE4QTE3YXdhNFd2TitvOTdkL0RMNGZIL0ZBTHdaYUN5TUppdzZrczJQdm00VmZ5NmZyNlRmV1ZyTTNad2pXdG9CTFBCcGlFVHlwYVlIR0hjWjU4dzlwNkRCRDQwU3phZHowQWNpV0kzRlpBMk9nVjdlUFZlbFE4ZjNqRDVid0c3Z3RnWnlEQ0tsSWFQNExkY1o0SjNoam90R1NlMzJJVXNyQ3cvQmVSZmxBYk9HTVZzTmlPODNJbXNyQ1ZBSW94RHFUaE9BaFpJQjJxVG0yQkVYMEZ0VkRIQzE1djI0WFF0cXR2OHRCdUFrMzVrK2g1eU5DdFhOOVZlWlFSbEF4QnRTckVrSGFlbEdLbWdOS0Z6TkdPbVNBWExreVRVT2cvN1EzZWJPQmYyMFBpc3owaFlNRUhWajdDU0l2QzRzTUgyTmdhU2cvaFdhcG1ZQW9wT0F2eGEySlA0YXJnQnR3Z1NqODBYSncyamtMSUlPTG5TQTJLK3ZmUVZnZGtPZWRvc0I2cXJuTENWUjlGNnRlVC8rZzJwd3d3czQwZHdZZ0g3dVRvc0JWaU1xZ1VxellJRDBCZXlnSi9iV2JnZXJHYUNTQUJtTWpCM2Z3RlU5cHcva1pKbVJsaE9hREFDOFlkd0tIZ3BZNXRhUnBlaVBHSURTdE1aZkV5RkZFMDZCeVhTalVaYXZnNG1WRWdkZ21wb0Jzckl5TkViNkU1SW12MTRDN2d0NCtDcG9WdFc4LzJNR0FFRHEvQWNTUUFmV2xjQm1vT1RqN3AyT3FpNU1BQnBKdkdDbWtTczZ3TUV1aXJRRVBWaDBFaWRZNlFCVlJsb1NUbDhPWHh4RHh0eHZxR1ZZb0RSTHhha3NkVitrR1FITkU5VE5sK0JsaVpGY3FKaWVZQlVoN2pHRDk1SHdiR1ZLQ2k3a3NHTDRKeXdmbjdYVjUwYndWTXh0aDNTVkFiYkVnSEY1SVlwVUVUVUgxOXZxbXZkL3lBQXkrTmp4L0VRSDJNMjVicm9TT0RJbDBIUUExeEJuY0ZVREJpQ2tiRVFsd1M0aENoOHhGVUVBWHhObUNDWkUwcEplR2pMQitFYVdseklqN1lzZkdFRXFjOGlxM0cvYkNkTWtVTnZMc212ZEdqZEZVc2NmSmFxL3RQbjV1RUZMQVZ0VUpROWhrNFQ3cjhLZGlReHNIS0VFQmdqejFnS1BBMVdXUkY4eEM5RUZBNGducGxOWnFqRmhrTFBzNEF4UTE3ei9Zd2I0NkJNZzVma2pidXdDS0xCeEVBelE2ZW0vc1VlYzdTTkZlcitudkhHV29XcUJ2blJGd0toZExFTXdoaTBpVFU2WWlMR1hNS2xmNkZpWTNxamlSd1pJWG9MbFNOK0MvVC9McW9IUndiaVQ4Zkx1cTJML3phM0hJcjJCZzhvU2FCcWpFNGxLb0ExclBHNG1EQkFaWWo3VnFtV1FzVElYaEE3M1I4VUFtSjM1UkF4TDVKVnNuR1pWemZzLzF3RWF4WmpNM2JORUhyMXVCd2dqUVRJQWZtWmlFL05WckhlOWhVeDNJVTdjbEM0V05ldGxQY25TOGdyWG5KdTh2SklpUERwRHF5bk1hUmR3VDVpQ3E1MXo0aGhIblRRZE9tb1p0ZFNaYklQZll0MFk5eXB2SDVPUHVKOGhraE5IUE1ENU1uai8wS2ZCM25kRFdBTG5rZkYwTHd3dzgrTEtyS2hMbTZkOGFlRGthZ1pRWjF5VFQ5d1VtV1huNjFoVXE1cjNmODRBOFByQ3QveExTNkFkYk1UVTBqUXdad25yOStzNjExWmpWNFIwczBzR0NDNVhpUVpyT25mQlNVM1RIVC9sREZneU53bFd0RU5od01uNnpnTUVVN3Z0ck1BeERteld1UE1BZDBJS0xXVGpaQTF5M2dmZG9UR08wY3Y1SzUvUGt4M2ZSUCtvWTJ6Q3lVMWNzQVVtTUM3Q1Fvb2lESHdHSGVBOTY0QVNITUFVKzRHVGF5MEJ1cUZCYVU1SDlXakZOZWFXRGdhb2E5Ny9PUU9zcEVWMHlVOTlBV01YOFd0a25qenZrTk4zWjNIT0pzME0rNlFMaU9xSFpJQnc0ZEsxQi9kN1JscWtsMUJrSHIycWtLVHUrS3BLOXVNRmpYTDBCMU0wNkx1Ri8xZ3ZOUGRoSnRHVGxpQWIzZ2ZkaDc3WC9YWkRFRWpOUUtIRVRSVXhnUmZCK3g0WkVhZ1pCQldPaWpEd08xUXVnajlnUVJNekFVMkprN3ZRQVhyck1xb2dvc1dscFZwOXRlYjlIMjBEaDhPSUwwdHY0UHpTRzdpTVBQc3l6VERQbFA2c1czOGtBelR3N1BVVnB0M25STThxNnlBTzhpQ1FtcTYvbU5OTGhDNWgyVnhPS0hZUFdiSWY1U05rdkFodVRGOHB3R0lJVmNCY0NwRE54aW9zREJEQ3d1QUdsQ3l3ODlIZDI3SHVkNGJjWUFMTHlRaGJZSW1TT2p5akhielAyQ2dMMEdOWXNVZjRMSFViYUpXTFpDWms0QU5DVmlIVmQyaFVNSk1CcklCeGx4aXdZOWFYcUswRDdacjNmMWdVL09rcGdrZG5QNHNIeVB5RlFwVkd0eDNoWHAxWndSaXJ6enRFTW40OVROSEJwT05HSElUM0VHWElyL2N3cmw3anNHeS9CRjVjQWlFaE5DMGthSFIyMzRkRlN4anFWUW5OR0RMcHRnc1lHeGVZUTRKc29oRE5HZDFlOTN0R2lMTlIybUthbUVuNUVoZEFjclRLSjhySkVWTHJrWCtBaDk2cGpLcWNqQlpLYVhwZGIzZm01clZPQitXVkpCd0R4SmpzTXYvSTFacjNmMVlWL2lWTHN2MHNJc2psRlVkZmptVXAvZStNdis1dUtkTFduT2dNL2F3RC9DemUrakZpQlFHUXprckFXWmdkaHdJSWlYY0E1VXp5Y2tMYSttaXlWeGZJcVBITzZGaGlEalB5MlBGMDdHWmxGZys3SGFKTlBLcFJ1aStRUWRJcWhBS3dKU2d1T1l0cWFsbjVVT3NGSU5XN2hnNWtob0JqZU1yNnRwV2dxN213QTFTMVpMNElpcW1xRVR4ZXJYbS85RGlSQ3daZ21vdktOVGlXQnBUSjhXY3hnY2RUakg3VXg1aUFMbGJkeVVaNjh1elFYMXhLMFFFWm1paFRZZzl4dnd6bFRsaDJwRjNvOEpBRElma09jalBHaFdmRUpBT1dDV1I4TGk0QVdPL1pzUWMxbmc1TmlCcW90L2NNaWJlNDVxT0JqdDZyNHBZQXhDaWNMSVAzdmJ3c3dHaUUxV2dqUEJnTUlPdC94a1BKamJFTGlQUy80V291TFlGdlVVM3FCMkZ4clhvazEydmV6MXJWN2NBQUxOV0V2VTJhenNBZjBnRGp1SXdLbmtSVThGZU8vb2dWOHpITWpsckJTS3ZNMCt1bDZlR2NXQURjdElQOGdTWjhkcnhBd3JLSkdLSFlWYWdCeVJrRTlaT2RwQWFFU1NSSm9FejBnRS9VRExFbjh1VGxqZDFLT0paOERsQU1rUTFhZmV4NHJiZ2xTbUxPck5Kc0FCZ0pLUTZzRFdBelFBY3pWSVR1Wk5iNVhUS0ZSWlZpYUZ5VkJIZjRtOXlFNWJxZ09EQ3p3YTJhOTZlcXZpVVZUdS9SNTRmeEhJZFJvUStJak51NEFEbk0wU2VpcWtLdGZSR2RxVEtQME44RW1RbzVBYm1yWUQ3YUNFS3g5a1poU3JIclNLL0VUTEV0Q1c1TWtxYnNmU1NXTEJGTkozbEtZQTZCR0dUWlN3VzRFZU5tM1VRWWd0VHZEaHFXRytzaHZZYkZMYk5HTVhnUzROR0VNQXYzNnVxU1dCdWhzOUpmR01DaVFnY1JFeTJ6aHRqK1ZrV0Zka253MCttb0wvZVBOSlVDdGd6bVpMbGE4MzdmcW5CNy9NNXlqVkU2S1lvanpUQW50QW5HNmlveTZDaUh5OUUzWkRBbkZGQ2dPa0FFMkdMQ09jaVV1RExJMEVTWnNrVHRpWUJPWUtiS1NzQ0I5WlFqTDRTM1RjZUduREowWXBSL0R0bkxPUXFLQnA0ZkwyLzNjcUllSWFQeE5zcHNpbUpEWFU2dE4rOFlZNityT2RZcEQxVGl0NVY5TzJhVmNodG9PVUROeWN1akJ3YUhXQnZRLzk4N3F3L1ZBZEtDdFUwTnVwb3JHaUV6clpMZytuUnR4Z0VVeEc4NVdhN1Z2RC9WTmE0eFFkaEQxaFdDRUpOSnVDd3BwY0swWGM3NWhDRWtVSDVXb0xBcG5EaHZ4c1R3NnZWVEcveEVsdUk2LzlzaGNUaWJRRlRYbURZT2hBT3kyNTlWNHlGTEljdS9nTGdLS1F6VVpSWmVQRldEZ2F1QmVzZGtjYjdJTEFQSy9UYTk4RllzMUl6RzRtWWdWd3J5U0dNQ0t3YnNIcXZFMmlnRC9QdXZ4Z01BRUlJUythQnFwaldJclFRT3RVdUNvK0Y4b2IvRGMzT3lIRSt0bXZmc2pTcjNuQ0NjYmV6SnlZS3plUXdaVFZ3TUpzQVBoL09STE95c09HKzgxN0VFclJKcmoxYlAraGw1ckYwc0U2V2JzejQ4ZENhUmRWSGp1VzV2VlBtOXFqZi9rdjZpUkgzZ3JxSGVVM1h4RWFYSW5BeXhYSUl6b3Z5eFRVaGRITEhBNHEyOEhMMDJGRGRqeHJCVTVTS1JVVVQxcjJCZ1paSkFaWUQvM3NtM1JGS0xEVmNXNUM5b3B4ZzYxU1hCVHpFMUFiVWxRRHd5SnNUbU1KdHZTS21ZNEZqVzNaYkhKZVlRTnpadHpBYUNpSGhjSEhrdktpRURKZGhFc1pIZklhTkdLVndCN1F0dzdjdDFuenBHRnNzazV1bTV0SnFvc0dQTlNmUm53NHBXQWgzanI1ZVV3akRmUncxVVdtMURwa0pwVXJzT0ZHYWxOemZhV0NhcEFlOVV4UVptQzJJWkVodExCUDBVZllhMmN3ZnNlVzVCYy85Uk04QXBrMXFNSVNveHM3aGppTG1LQTJWSmNJTHhNYWhGaW9nczBmeHRPZ0VicDRYdnZUSlZDYmEvSkd3TGMvajluVlBFOHJCZ29UTXhpQTRxNjlxZzk4bUhVR3BTL1UvUUtxNXd1TzZGNXE5ZlRIUXZ1NGw1cXRObm1NTHJtTEpzYnJFT0lTdVRrSC9KbFE1MlpNQWViRHlaN293bDR1Q3pmNElGdDRjdHM5QTdjazBSUzN3RzlrM0loNmVQdUpTREFkS2xsK1ljbHdvOXV1MFl1aDdiL1M5akFKbTc0eHJHeitVYlRiaUNmOWFsMThzYTRLZGo0cXl6UkxQaHFOREJCc3VZSVFtaHgwKzhiMGF1b0lJZmU3aTlJZUNaMTlDTDFtd3o3MFZ1TkZTRGdXQ003RHlFREJLMFNxdzlFTTczMWQ3ZkNsTGp6cTFpbVZOemlwYWVFeXgyWGc2ekY2MzBXVUhJaWszZC90SXJEZXhZcERtV05oaWw1MVorK3NFdURDY3d2TXZmYXMrQ2Q5WWRHZzFUMitQcHUxekt2N0xvdzZlNzlPU0FPY0xDMld3ZUgwZCt6STVrQU52WlloVnpHUCtzVEtyamlHRGFwTkRhTmNBTG5IV1VhQ1pQcnJJRjdHcHJTVXBHNklOd3BhdkNqZHEwNGhHa1NUQ3JaV1lpaGdBZE5oRmhha0E1TnhYTHoyV2hXMEpHdFFWS0VqeFZXUC9BU25YTnNUV2hoWXdDVHQrcE1zQTNoaFV1OTZJcFdkcWw0eGptd2JCazJGS1pmNDF1M25lRzRsUnA4QThMNWhZWGVsdmx1YzNKUzNZNjhBNityNVRrRUVvZTFoTmhYVnc1bmtQc3Y5S1ZEVjVGZXBqL0tBT1liUXVybU1QNE4yVmFMZjdKSERMZmFPMGE0SW16enJxQk5QQ3NvM0VVMzVtcVpLZEVJRkp5T1MzcndKMGR1c28xek9Ic1NDYUhja0Y5ZEdDODVTTExXU1lYQ1FWWnlVckZ4ekpLUFFEZnh2S2F0UE92dy81djFnL2pWZ1kxaENlbkRnSmxMamg4UEh5OG41bkluZ3dRMFhHQ3ROUXpHTm9UY1VlMGc3dWNwdFQrTEJoQTJBOFNBRVcrV2RVNkdHRGRhN3pJZ0R2RGxkZUx5bytIZVlUMno0N3NEaWpMOE1vSzhGL3hCbDdDK012RWVnNUFZeUpSRzROV0RmREVXU1BUUHhtQVFGODJIOFdJUWRXNk9qdzVRTnpBSExxYk9mT1dlMFlUUERlVDFETDJSVk11dzNNdXI2QStHTUM0S0JSWjZrR3g5Z05NdXJGNytyS1NKTjZBOTBJQVJJQW5MeGtBWTAwMzhxSk1aRzhMYndZWlRURGFrTWZwYW5jR1lPakZDNmRuR2VLbGxRb3N1anhRVExMZk1VeVNoQVNEQWZCMGVyUTJLTjZhUlI5Njg5S21EOEhnd1ZzT2hDTWxqUUgrNTQ2K1pqZzlITTlVcHRZa0lwZ2tZRkh3dWdZNDEwVGlyTWtBbUw0SVFHVmptSGFad0lRT29Nd1VYSWEyYkJ5OWxTbHRzc0JzVkVyVUg2d21NMUZoWVVIUVVFRUNtWUNRSkpDZ1Jsa05zZ3hja1FZWDJONEdmSEhKQU5RQUxYd0k2WlNaeWQ2b0VmbTBRVUVyZkRGa2o1NUFobVpGb1FjR2ZySVFodGxJTzhZQUhVY3htYkdSK3dWakFDRUltQU8rQWlwTEpIUXo2QzA4R0lvbG1aUHVpTnlNbExCQ2Z6QUFJdm9HRFp6cERLVWxrV3d5RTVlWURQQVBHU0REZ2kxY2d6aHI3RU9ydWhObFdZY3BvZndxMVRVVHJjV3JlT0JVNDhGdHZBWEw5cTROeitYMVJTUHZSY1JGNzliS0FCYjQ2d3d3UyttM1lpQnNwOER3QUNXNW16UEV1MFRVbFNGNmJRWUlEUkI1enVIVFRBMjNxcW9EWXZYaFloMUZkWjFnQUlKd1NSdU9ybVcvTkFid09lNlpGRzA3UkFaUTVnQ2thR0tWc00xMHo3cE04ckJNKzFxdEFmeGZIdU1LOFAvdTRQYVJTUVpKeWpDVzBpZWJEcUMyQk1paURFVTFxUTR0VVltOVE0bGt6NGlNdFlNYklkTzRLMHo0cWlnT1JqMXlvcXBocFFRaTUzSTRIRHRhL3czZzhoRld6WTR0QWZicEpJYktaWXFtS3Q0NVB5SEN0Q2twb2IxZE1rQ2hBWDQwZEdxalZaV1IrMFlsK1hTbDF5aFZnSmdUckd4aTYwVmtZOWRkS3huQVFwak00WWpkaTFxQ3lBQmtEbTA2MUpSMld4WWt3VHJBMkU2b2dUd2lmZWRZaW5JRitIOTM5T0ZxZ0pOSHpGOW5nTnNTSUpiMVhTY1R1akxMQXVhQXRLRmxSQzdXamkxSzl4V1ZDT1pLUFZESFZ4SFRJejNOY3lKNkd4MVBZcU5BSVlCQll0V2tUeitwRjRrVVhoOExkN1BQK1dTQXk0cEROUU53YThHeUdCYm9oa2IvRjVWVVFLbzB4R3FOcGNreEd3L0pBT3doSG9NTWdPQTJNb0RPY2FacDVhMlh3UUJnampPK3FOUVJ5V2R5MU5PNEk5MVZ4dnNWNEYrekFoa0Q0SHNTeGovVXFmYUhFaURXSDIwZVZwRzF6YmkxQmllWEZ3NVgvdW5wQTU1a0lURllTbk10U2dZZ3REUWtnQ3dSalhBQVYwMG1PZHJBQmtEcURlSHR3TGNWN21ZQWdDbnpnZ0VTOVpZNGpXQ0ExQUIxUUhlc1c1VGhJaWFoaXBtSU9EdGlBT1VPR1ExanNEc1RPc0VBczJBQW9KaVE1R1hPV04rQ0FRYVc2cUpoMFdJdWxheVhNNnJJL0VYMUVjOHNWNEJqckFCMzlPRWovTVVEbHY2VUFiZ0RXVGRsVmhwdWloZTlJdXB0ZXAwQjBnZXMrbzNyQUpCNnczSk5xQ0lLVXdkWW5mVXhMaGd6aDFxM1kyZ2RFSDh5d1lxWmp4TFZOMGNreTA2aTRsQy8vTEprZ05BQW9Ud1dHRnd2d3JRRXFBaVVzQm1oc3pGaDUvbjZjNFQ4Rzk3cmdnSDZhL3QvMVo4amp6c1pvR2tRRzZ2YWJVUlZGZlllQ3pMUHZYN3VEeFk5Y0VnYUFiZ0NNRVhNdk9jRnVuK2hBOEQ5WGpNQXNWa0xvcGNqdEpMeTA3Zlc2TDNCQVBReUlVNDJUQlhNdkxYMmhDYVhESUFmR25HdFk0SlZjK0JKam96OWVvcmo0aTd0RlM2dGNEYy9VOW5MMEhMYVREdXE0VjFuQUdxQXFKT0xtbm9mQjJ0a2dBUlV6SGVReElpMEhBUkw1K3NibTF2bXpvSUJIcG14U1pVWmtTRDZZWDRNbVI3VmZObFRRU2ZjbnRWS1dQa3hLdWxSamFZcGdBY1ZGL1ZSR3dGMEQwQUdrR0xlckF5QThmZ0pBOUFRZUFtc1JPU1FDdU5EUGFrTVd2REIyakEzR0FBK1lPUWFheUlObmxWZjJHWFI2UEh5a2dFc0RWVmZ3M1liZ0VjanlSRzU4dU16N1RRYUNEUERvK1JaQ082VlM3SzhDZVAzc1JHcEdNQ3pSSm5MbFVtQ09sQ3QxbXhrQU5OOFFYSE0wN054NW1XaG9RR1dDWkNrR04yTitSaWd6S2lpb3N0OU1BQ2VqWjFMTXppcmlBQUQwS2VFb1k1V0xQWEhGQStzYlAxYXFZQmtBQzNtM1V1d3oyMEdPQzNSS2dZSVN2ZDJ4S216N2pvTTNRWXVDdERGZFFaUXQyM1VENmVkMThMOWU1NFJBNDZKbWdHWXpROUxwUXc0eHVWelVUSUFRcmREUkd0OGhYcUlhUTFHdERldGprVWRJdXlIRGhVRDhDVlRBMXlzSVdzSlgwZ1hlNkVFSU1vYTFiaTRwNmhxelptcUJwSVVvd3VIQkUwQXFxakl4NlVOQkJaYk13RWdJeFlZQUN0MkxQUGt4bFQyUzFPQUlOeWlPQ3pOd01rQUtPYWRxTFBiRE9BSnVkc000Qm15OUVtbHllVzhFN3NBeXZCUmp0OWdBQjg1Z0toU2gwQ1dEcXhMVDRpeXF4bUFHWFJScUFRbUFCa1hwNWI3Y1d3Sm9DYTFuRmtNZTlJZmVSNVZ4ODQ2UkJxODd5U3JHU0Ewd00reWxpMmE1eGhkUnZsQzhCQktNbU95dDBLaWJhdUFmV2ZKQUhnTG1nQmt0bU01cCtYdVpFWnNDRHJwbncrVUFieGMxck5qTU5ESzdYNWhEdTVidm9mS0NKQkx3STRXcTU4emdQaU5HSzc0NnhRaDhQcXBxMjRTRlNJbnJ6Y1pZUHlZOE1xdCtub2piNEcrV3RUN3FJUEtIUmpSTWNPNWduLzdCUGpTa3d2RUxyMjFGZ205bkZLMVFJbEJmUmI4aDR6ck45d1I3RXF4WUhsTnFiUUJIdGlJNzA4bjluNldObm5sSVZobmFabXBVVEZnRWhDcXRRUjRCU2RBZ2JBeGg0ekNDRzJOT1lUWUZGUzR6dGpTekwzU1NFZk9kVFVIOC9qbnBSRWdHWUFFK1JVRGlCUmlBTXZsRXJDZ2FhTkE5SG9PblNMdS95WURKQVFhSllBTXNVaVpsQlYvYWdid3dpOW1BdERCd1pvSkNhS3hIRzZVVVUrWHgvWElmS0ZxQVdpSnh5blFud2wvWkJqVG9zQVJmcVFHdUdiRDYwK3NXU0JrS0FGbW5GYkZzaDhxUU1rQWVETm81VG02YnJtSGd3SUpsaXlGWVZHREVpYUExWnJ5aHd4UU9ueWtxVWt3VjN0NDdzeFR6RmlSTUFMOE9RTkVVT0NrbmRiQzY4ZVh5QkQ2MGkzWnhlOHhRTk9RU1d1T3lKcGZOUU13cUplcnBnNk9Nb0NsbnlNRExNQUFtZStZdGN4WWhyV0lVNEJIRXFXTVRPeGtRZm5kemp6WmhRYTRRa1BHalE0YStCeExtZnM2c09SaFY4LzE1TDNTWVFFTjFqRzVaSUM1MTJBOU5PbG5vcEZKSEc3SUxTdE54UlJFZWl5ZXlGMm14c1NxSWdEV0FMRE9wUkhnVHhrQU94RXJmbmV0UXJjdUk2dk1haERscUNiaEVQVmVTL1RTV2dLSyt2N1VwM21aV3RNWDF3b2themhoWUgvbHE0Ry9iREpEU1llcE10ZzhNcEpsZUhjWnB4RGlkNmNCT2ExeWx2UEdUS3Z2b1FHQ2M4eksxR1B6QkxSTE9ocys1U3lXeDNhSDA2eGtBQmdUMUR4WE1nRERIVlF5SVpONGVwcGhaQUw4U1JVdDVxRG9tN3JzK2JYdEtmR0xETUJvTVdBeGFpUEE3MGdBNUVISVYzUmJCTzJvemdCbHpydEJKTHRBTHdSdHB4TU1tbFdpTGRWQk1BQTl3Z1BpWWQwVjNJQlF1K0NmRmdQUUltR2FNVktSeUtnbE50R3lLbnBMLzQ1MnQrSVVaaXo3T2dkS2xBVWN1TGlSbzhscUxtcEJvcjQzK2tWRDVUS3FVL1FPTGcyWkhER29DYVVTaUxDa0VSTHpOTmJJQURCQ0FrcUdPajZJTnhxTUZNdm9HZmFaaXJINmhZalN3R0owSjI0Ry9wMGxBTGtNUkhyU0ZsZjJhN0sxYnJyU3VJVUNadG9IS0ZJa3NuQzdwN2ZreXE0b1hWRzVQLzNUZmJlS1pIZjArMFNlYmFEVDlGRzNHRURvdG1Qa2o2WUp5dFJWZlhsQzBHaGRaT0w3UEVTck1XdUlFdW14SXA2cjlCRytvVnhHZndObVFEWm5BSXB4eWx2UHo1cStyQzJ6Wk9waVF1ZUgvQzYzZWsrcVQxd21WQ1UyQ29DeFYwWWNodEV6dzA1aEZKakVMeFRHU0N3RzlCUWdnc3dPOVA5dU1BQzltaXlhbjRrc0k5OEZjcitCZzl0NWJ3OWVEYlpNa1dpNCtGRlpmZFNzTjdFRXVHa3BTTXVwWk1rUm8vTHN0UFFGTUZXOFllUTdwaWhDQ1V4UDdxSnNCUVAwaTFZeGdKVWJXTkVGRjRXV3NNMEh6ZWxVZXVFdU14dmQwQkJsSVcvZHpzNWpYR1pBVTVIbS9GLzNpUUo0WmpIYWI2ajd4ZjlzVjh4dzVqZUZGTnlyd2hxYno2eXlZMjdEOHRjK3dYR0J4VGdwdm9HTHdBMEdpRVJEVFUrVENzWDhtMGIraW5WcDgzT2JMWE9MZTZZS2dxL1JHOGd6TUl1ZktvU29HVUNoMnlZQmFIYnZWT2kweC9RR0VscktHRk1aSmdTa2RubzJtenc4cjI2WnNxTnF0a0NucDlueDE4c290WmJhQTUyd3ZzZFo1WCtNUktybExiRnl1Snd1YXRPaXQwRGR4UDhTOE84UVFDRXg3ZFdKSWRnYmxBeXdsVEh3QjFuRE1xRW5qSy8zWDRZclN5ekdWQnJCSmx3RWJqQUFCZ1BSVkdXZGk2bm5ySVY2a3NXY3E5ejNuRDRKdmtadkFMYkJMSDdxd0RKRVV3bWtaNGVLQ3F0ejFPaTBvRkk0T3dpY0ZsK3pOS2pzWjFmWkp6V0ZxS2dyVzQ2OFpaekNLYXNsRW4vTkdzT1FwOXcvR0VBYlRpWHdYZGtZaTFqTDI4REtLYUdFZ25oWm8rbEQ5YjlXWUFoRVJvVzBkOEs3SFVXMExOb01DQ1NIWUtBNURLMUMyR3dBWlNJRDhJS3lhdXpQR0lBbEdBS016L2xIODd6MFY5VW9yR0lTcGtkV2cwM3dOWm9EdGkxK2xLZHFNOHdvNGFoUTFkUDFubVZqV1cwcnFVUjE1anVnSW1JcXhqSE9KcEtyYWtvU1pOWFlWczBDdzdOYUl2SFhKTmhEUUIyODNCa0NzZlRsNmdhWklhMlV0NG1WQXdsUmhwYkF0MGYrTHlGS0xKcUhzM0NUOTF0Tlp6QW9XamVoZDRteEErck9RU1BFUnljOEkwMEJZQUFHOTJXQXhwUVIxUUhHSnpyVThsZFltZWhlZVA1UjdjNHgwMWtOTmhKWVZNSCt4SG9VQlg2eHdMR09vcDZJVzdJWUdiU2VSS2VWVkNKMmxQQXZTRGZreGVCc1NuSmwwM21ObTdZYVp4aVJVTUNMYlpab21Ea09kdktDaDNwNFBBYThqUDg1VUJSdEUvSjJuTUExYjRLV2E1RTJRWW8wc3dOMEQzZzMvZ05lcld3dnhCaGVma1NKc29YNEovMDU1TFdvQ24vd2c5V1NnaG4zN09xSWxlR3F3UGlzL1BzWWRkYXltSE5kSGRQTFRINERmTTFlQWpha3RRdG5LOEtOM1c4RkRBK2szZFRGWk11YWxnYnpBVGgwQ1NBdHNYMCtRa3VRNjZWRm83R0JoTFBWNUhGbzZEaXBOQ1cwRklXTW81YXBseUpscTVDaXdLaVJFU3BrSEJuSlA2SEFrUlBkWGVEdUNJcVdJU1JYczVHL1NlcVdHS1AyRWZEUUg4U3gwTWpaS2MwZXVRYThSSUIvcVk0RXFrcWJBMGN6R3hCc241NVE0UWc2QklMSXkwenFlSTNyM2luK1EyY0NyNmNiSWpyWk94Mmo1cXRkbm1WajdhUW96NXVpME1nRTRSS0VlM1R5c1JYMDBWcjY5c1R4SllIQU96SHBFdEVQSkR5cUUwc2pCNU5YWjdOQWlwS3BDUzBOREZ3MkRGZ0NSTXZrSUxiZ0Zlb0FFaU5RcGN4R0FtRWx2RkJreWt3Ym5PU0UrcHVHVnBvOTlzRUFJVGZ2QzNWRUNkb0M0MjlPUG45OVZoT3lDUUMrWWZCakxxQytCdWpNaVFLaVowdW1rSXZpaXJ4QW1JMlhVN0xtU1FyaWZDbEZJZjltOGUyaWREcElzVUVCeTVKQW9ISmtUNmdiWkdjMTZaaDdCeUR0cis4b3JWd2sycXFSb3B3WGREQmVhQ0hjTkhkemp6YzBMQlBkL2FIQ0FPQ01VdjZRME40Z29wUFUyVEpUZkQvVHdKb0F5SlJYaGRrakdTQnFKSE1zWFFLMXdmZ3pGdkNkZVQxbzY4WGNwNVNrR0tmQWozRlhsWVEvMm1vVEQvQUsvb25sdmtKbWx5Y0ZYbFNKVmZ5TjZBZXdPM3J3RHhRWFUrV2pTU2NBalVRRDFtMUNBMFpPdXNpK0JZVWFrR01jVDhqb3BrYUtSbVkyN2lHckZsbFBuWnlaVGFvd3M3OUcrWEVheE9kRksweXkvV3hscHZpS0FZNnpTSHIzcWUyU0FkcHlNNnRldXpLaktwSFNscklZWWpnQm85WGZxc2k1YTh5aDFVQzRrZ2lYaUdvYzRCVitBZWhXSXJQeE4wL1NDZ3lSY3VZeC9zNGdXRzRGb2h1RVNQb1k1RlpuN2hVQzBkaVVrMjYxeWtSUVFHRjY2bUUzTFdjY0Y1dm5aaHliU1hCZHRnTE93amFQR3FPRm1mMDFTbk9IUnlSYVphdi9PSGk3eVFBWkR2RDUvMG03d2dDNWJVbWRCR1hYMGU4SzV1YWRHeHFmenI2a1ZYOUhJVE1rTWFBN1dGV1NkeExoRWxHdEIraE04d3V3NWF5UTJmRTMwVG93bm1rc2x6eXZTRUIxUEZtQXZQWWdIMWdCK2duNkRGZ3ZZaG5aRTdLWlpidWNkT3ZlZ0tuZ2lNS00xTU5oUWlTTnZEV29XaWxjeS81RHR0S2ZSWG9tRHJHZ1hwWWZUNWRZdEhVd1FPblF1TVVBTWlVWUx3YjZYMk1BRjVxcGsyQUpwa0VqRkV6Tkk2SXRwak9YdE1mOFc4NkMvWWpXSExHalk5d1JvNTVFcUJIVlBBQm5HaUJxSHI5ZkliT3pQaE96VlNwcDFGOER1eTVUMEVFMFpRakhJQXEwb1N2cDR4bE9hZnhQK2tUbTc1eDBDQS9pK1pDTEhqcmtsZFNTQVFnVVBVVGVWL1puKyt4WEhtMHdHSkJ3TFRET1NKcXJCdWtVajlaT3FKdTYvU1VEUkphUTV1TW1BMUJvVWlYcHVzWlAvVE1VVEVYL2F2UHFudUZmemI4ZGRXR09rQ2Y0empSYUw3M0FWYVBYTnYwbGlOTjFyM1dGek9iZm9FK21MRmU2bE1BTmJMc0lveDZZVnlBWllFRUNmUndjL1VJR3lQWVpESkNUamw2TU5EdE43K25NYURNQWdhSmFISWlWZ0prMWp3MmU4Y3FmcGRRY1JNYU9vSjdoRExpT0pBTUVpWlFiazlTbElmSXFBL0F6UWYrckRFQkhmT29rUSt6NUdkbmdDaVlzK0w3RHdPTG1FNTJUay9ERzlKZy9lL3o4S3VoTUVwQVV5UUQwSzV2cmgvYmxDcFZsZjFjQmFFb3Q0YktTQVV5cmg3eHJkbkpUeXpZYWtlZ042V092eEZVM0NjUVFzYUxXbzlJSGZrekhaaHdMWUZCenVHQUF4QjBJSGlCSUNrOEEyODVSdSsvcDBJemN5anBGcW1wZkxELys4bGd3UU1yb2FyMG8wcS84bEFGdVNnQjdSS0dUZEhLSkJLUU9lR0lEVC9jYjNOczh0NHlwUmhidlJlTVJRMTVhRlVWT3dkNGpPRktjVHl4TUU2M0ZBSWpUWkp6V3kvU1hETUFjN2dVRFVLdFhTRHBxaW1tMXptMUdvb05BcTZpYlNtMmY5TEc2djVaQ29KeDBrUkwreWIwNUZoVFFMK1JPbnE5UFgwWHNBckxtV1ZNcHg2RW80MW9SUUVVSGFLWFhRVFZvdlV5eGsxd21xYS8zcGc3QUhBcy9XUUlxUGZPUWVaWXhRYUk2YnM1c3ZDdG50LzdVdit6QXE0MnBuNGdEWHJzNG5XZWdkZ2V0eGdtQS9sNVVmUHdyQnZnd0xpc1p3TFg2UWQ5aWJUVklObm5NeHJDYjJRWEdvZVJzaCtUVlRudlN5UkhQODJIT2ZuNzZZWDZWQVo2ZkhJWUZEbk5Qd0t1RDBEQVVsUVJZcFFSSXZRN3A1aWt2NHVheGs2eWdXOWQ3eVFDV3pvQVJnYjlnQUNvbFRWYTRqMHJaNEZ3UGhtTjEwb3lOd1FnZDVuWUFlMThudkRNQzVFazR6MGh0WDdhU0FRZ0IyYkVrZWNrQUR3K1hETEN3RjV0VURFQ3R2dCtIdDlyM1hYd0VDTFF0c0llK3pkR1BzWS9ETUpZRVZheEtsQmJVWlpIZ2hYNHZHYUNXMGlVRG1KTUMxK0E0YTIybkRvQWFTd1JNbERUZERTNGlxS3FkWkpENmVpOFpRRzJKMkFaNlBwT2ZNUUJmYU9BVjdpTnRCMFVBYnVIVkVSSWZJU1JBV28xSTNlK2xVQ0NFQWJ5d3pEenVQSXNGSDh0V1dieHY1eEFRR3NhU0FiYlNMaG5Bd3pxVEFVS3JOem1xS255dlpnRFFKMGNJaG81N3NtemZkUGVhb0o3LzNBbkt1aFV5UkZjWlFGb0JnZGdnOFN1RW44d1cxenpHOVM1QWl3RzI0SGd1cDRBb0ozVnlKMW1TK2lONnJ6R0F0RDJoNC9EdHd4TDBjWU1CS0pJNlJhR2FrcGdqRndCUWg2RUt1NHFIZVc3TWpiaTFCODhWUUl6UU13N000RDhwNFNTVzZqSVpRQmNTQnNIVGprcmFqdEF1R2NCZXFNMEFqVFFvOEpvQ3Bta3hnSHhnQVQ3Vi9JVE95NzRBaVBaYk1VQUFPZlNDUXI1bFVhQkNZcUFsdUZGVGFkcUhKQzQzMFVFZmFKOVIvNk9nWGltbm5EcHNOYWtYVjN2NXkreTJTSFlJM3o0UVZCK1hFc0NTRWpEWGdSSGNaQklIQjJTR1BJL0MyL2dxWHdROGh2YU5RVytpK1haUmlSMnhkUEQzYzZ4YnRUcVJmVFc2ZW8zUjM2SUc5c2tBQTdZTEJxQUVTZ2FnalJVNm9NeFFSYXZEcmhvTUFMVSt3YWVubzM4SWVZa0FqSm9Ca2hiVWNMQ2ErMU5mQzUwQlU3cnBNeDJSQnpVa2N0c0dMeVFBdDVrT215Mm85MnlKSXdiSkFJVGVoNk1uVG03M0pnTkU0bkNXcGtCa3p2cUtMMEFYWnpMQVVDdGhwUVNEeENNV0hpVDFlWTdQY3JVd2Rub0tublFraGI2L3ZvbGI0elFUNDZrRktkWGd0T3dTZVNheWtBaXJZekpBUDFxYkFTaUJrZ0hvcVJZZGNHMDZJRDByemdCb0ttZWNQdktVaXdWZzMyYUFIRkl2UDFld0hkNlhrL1REMnFGUHdCblRkRkV0SmxPVTJBQzBLM2pNa0ZNc0drcVNzR0dxNWNuWGVtRk56c1RoeThpWHVMckdBRkNkd1FDd2hYZFM0dEdQWktIVkRPdjFGSlRUUUc1aUdtSmxpQ0J0U0dCWm54cHA4YndMVVBseVgzVHBDc1Vic1FnSU5mOEM4dHBpQU5zMXBqRG1yazZHeStEem1peWhLQkhyQk9vNytIUjJuQVVmODlIS2xEZVhnSHVPaGo3VDJJNWh1YlcxZHQ0VCtqT25YZ29BR29GcWhMdTB6RWNVMUt2bFZMNU1tWXVtSVBXdDN1ejJHaFNUNFZVR01JOEZvYVhuYnBtaEk5RFFoL2tjOHR6bXlMZTd4RHBxWXVZQ29HUUxlbXI3TUZoRDVsZTZaSURzK2hTNXFmTVo1dDMzYWdtSWRtZ3pBQ25uSCtWMkhiRUF3ZTdXbzJUa0kweEVZeTNXaHhEdHo1V01Dd0I4bW0wbE1IZnFwaEpSOWNhcjFaUFUyc3BUcEhpdXdpQnlwcjZMOUVMNGxNcVE3M0tLSXVPWGhxRFhUTFNldlpXNE9LbTJDd1RWTFFiUUtNOVAyc0lyTlpKWkhhVkhxUU02SXo5MVlSSzFlZnRLTEhvYWZKeDJMQlYwL0FVREhFeVpDS1d4VUFMWkxoa0FqODhOV1ZoMnNXd0FQa25KblRvQVlDdXMwQWJxME5TQjV6SmtwMklBS24zRmp1eVRRZ21PZ3BvQndvRWNsVWMyWVRmdzVJMi9ZZ0J0S0RUUE5CdXRtNmNYTkFubGkvMnlwUmxrWkFndzhTOC9ZNEMrSVo1YkRLQXlrdWdNS3h2RS9HSmxycVFQVndIR250UFlDdGFGL3RiNURRYUFLRmRWUEZTeGNodUlkb1VCaHRCUG1wb0JFSzdNZjlvTVFMdUxjZkt5dlFDZ3ZiYXNyelFFcFpldzd3M3FTWXNCSW9RRTlLOEV3R3BvWU4xZkxnSHplVkhCYXRwMkJ0SHpXVEVBMWYzOXNyMDNDRHFxYi84bUE4QmowYU5Tc21KU08xNllPZ3lFcEMxczlJblJGa1NxSWU3WjZla0RwTzNYU3dDN1dLYVgxcmpxZmFWZFpRQ2pYc2tBTytDTjFKWUdRTktneFFDeHEvVUVCSk5JRTFHWVZNdEpSMU53N2R4SkJuZkprRHJEQTBwZGdQNldVZGVOZllUcnQ1VEFLMGs1ZG1VRnE5eGllTHZpK01XR1A2cHZIYUtsU1ZCNThUTHZjV1FKbzkwQjBkZUo1SmNMS1FKWU1oOXBnVzBCS0l4RU1BTlFneTRaNE9QakR4bUF3cGhxd0cxVGNESUFBV25jMjFyT01OTUJzUlVrb3J4Z2dHZTNCTk1teXh2MFZ0RXFndEl5NXZhdjBybERFd1UweDVJQkVLeUltRWI3WUtvTk5BSkpxdVdMYmFEN21wS21aUjc3aTRDUU12UWpLU3dtUDJlQUtnQWxHSUI1TXd1UkhBd2dscHUwQXpCekZwTlVJeXFrbGh6QW1xVkpWSVo1dlVoRDRDeURMd0k1KytzbGdGMllqYUVHL0E0RDJBVDJNQ2RtRFlRWEVPNEE1cFFvR1FCR2VlNW5JeTFRZThTS1NkY1VxSmhsNGR5SkJJUzZYbFVNZ0xoK0ZPU3EwM1RhQmpxOWN4L2hmTkg0aHpveFYxU3lTTlI4dG1TQWtzS28yVVNVYURZamk5RU1RSzNFd1NRRFlCeWNBY29sYjRsVjdHTHBpS2dvbUU5NmhSdmxuVmlxTEtBZmdYTy9aZ0M2ZzIxQitRMTM4Q0pkVk00QTc2cVh3Z3RvWW1Cb1dXWDRDRi9UWGVkTHBhNHRNMjk0eDJaUkVnbjY5SUs2bXkvVER1TkdQSzhRQkJUQnUvWmRoSnl5ak11Y0xaT2psd1VUdlpiTlBsSHoyUnluMkNrcC9JTUM1L2t5Q0hXSkdIc0F0UmpmWXlzNThhR2xLWGdVM2s4Uyt5b0RjQUdnRXpEZGdtVUFwbCtTMVZaK2d3R2VTelhndHhpQXRnaWNGS21hNVRRaEQrMW8wMGhZQ1FLWldYNVIybGlxbGd3UXUzcjZ4N0Z0Wkl5Nnd3N1RGOERRSjZadlJ5azFTZ0JBM2dlUm52UGJBYUpzV1V1MHlHREovV2dSNHpncS9zUDBBS21Ud21oVzlDUmJGbTlCdkxRallxQ2lKajYwWUFCcGRmekRWUWJRbDRKbVNDY2c2Mjh6Yk1yaWQzT0daSTNhb0haQ3FWdGRSczRGOHowVDNac013T3ZLNG9XbXhZVzFpWk5vdmRLWnhFb0V0RDg2Z2Z6UDJOY1B2T1crcVpwMGlZbzVIczI1d3h5VWtSUms0MUl2cG8xOExDQjVSU0V2SDlBdkFrU2pPV1pxVmhkTVJPRWpPYnNWc09laHppUTFLWHhDMng4ZEpab055OGd4SXJjZjBXcDhhREpBSTgwTFlwTmZyekdBdTVkODdmZU5sSUU4RVNSY3poQ3F4TWtBZzRSU3Q3dUFPL1RENVUzd2R4N0k0b1U2OUM0V1l4S2RPOXJYc1djUVFPNEV5ai9mR0xGVE4vWm5qRnlpWXF3SW9UVENEb2sxeEk2b0tIOGp5SUZ2S0dYZlpTay9NNkZySTBDVUxXcUpubG9GRTQvQVJyR3dYRGFDSFVocVFvMElSSnJ0czRoYWtCdjNUc1pvNDBPVEFiamlSUXdrOVAxckRCRDIzajZjdDB4ZHg4aEdGS2l0WjRqWHFQMHFTRUVvZGJ0TDUyY2NMbStDdi9OQUZpLzB2ekhEWWhJTjhZOVpMUnhBVGdLOUZBQmZLblZzYVR1dEoxMFdlMlVWMHoxaGg4UWFuaEpCQ3JzckczZ2xpM2tDMkNoTm9Tc0FpSHJ6SW1sMXdjUVpvSFVuaHlkbW84MEhwQ2FCODQ5bFdibXhlUEltbDRaTGZPamQrR1lVTkVxSVpoMmtJWW1XcXI0c0FEbHQzZW16YjgrUS9kRjBvaUJGUXFsYlhib2hpY1BsVGZDM0h5aUxGK0p2RjRzeGlaNkl2RmE1amZ3WWdlcXRBTDRjTGJiMG5zU2tpMTE5d0xLdGppOWhoNG8xM0l5Sld3cWtrL1VvNFlpQzR6dzBLVHoyeW9oMWU1VC94c3ZzVmdWd24yaFJsQmNGWnRFNUlER3VML25IdEt6ZCtwYXlKNVhESy9qUXUvRnRITVFQMzhxV21FSTZPRHh4RzlMcmxkcCtlNFpZYmN0dktDSWtSVUtwOTFXWHZINGVMbTh5TGErTDRvWGwzMENZemppSnJFNHZjR3RmZU95N0UyaVpmd3FsS0MvcjZXVXRmbGRsUmpFekFaQWtOQ3IveUl2WWd3Y0JpYWhjRWUrUVJVU1hJUXNDN2Jvc3l5UVdhRkYwNXY4eTViSFh0STQvd2xTaFJDeTBqMnA3Mk1hSDNpMHZrVkQzUmVIbHNoWWlZZHVKdFpKWkJ1UnBBdVd3Y2lXT2VxeUNSTG9pODBHU1lvbDFhN2tzdXhKSnFpZm5UUXBndGdGRzBZaFQ0NVJoY2VVQ2NiMjBRdUNiQVAxdWVCS3hpbzV2eXhhMTJERmxTNFE0Y2FKWUN4SUFkMy8vRm53WjBCbERpTXFQeEU4V3JNOXlvbUJZYWdNSitpM0xKSTRMdENnNjhiOHU3bkpYcjJHNS9DT05sUmFVN2ZrM0tnTlJHeDk2Tjd1QmhXVFo1cUlhYWhSckQ2Q2ZiYk01R280VVI3SG1CRlZqRG1JY2M3SVloaDQvT08wZUhWWnRoNHVUSFdpTUtlYXpLcWVYM0RxclFIUHFzL1FvYmVBczBVNndGVjRQNjIwVW1rYjVXc29QcnBVc0tPcEttSTBQNlpZQU9ORVBuaExqNXRBWlBTU2JiWjVpanFGYzZTaUNkVjhSKzRGQVpXZVpSQml3QWkzcXVPM0V3WVZkVDhOeU8xR3hnRHRiRFhuU1NKWittZm4zSWkwV0dXQi9EUTJOclNNelZtUTk1S1hWT0E5c0lEVDhsSWVvaDUyMHR6SzBtSU02M2NnMGIxQnh2S1MvMDBaL2dJUFF5R0hXaFp2c0FVdjJXZlhtMUh2am5HUUNKWmxlcVZlYkdxWHprdXdkRmYzMzlJOTdxWG1qOVd5Y2dIZzN4TnBzbHpOWlpqVG9ObUVCQ3RUZERvemJFRE1SUFYwbVVlalNwQis2cm9waWd0UENJaEJwb3FveWlRVmFkTkxKLzVXalJhNHJodVV5RXhsMnNBd3NuSVFKc29hU0NrS21aZ0F2ejR4bWNoS0pGMEJtNkpaUlJCWTB6dUxQS3NMeHkvSGcrKzlhK2dOVEh6V1pXWndRSm1NaXJKK2ROa29OekJXaHo5SFhHSFNaMUFFbDVRNUVucEo2a1l6RTY4RU9ZMmVkM1ZxUWxEc0ZaSDdhZTBWUlVvclBQWGxDRzJCRXJhRG94c09wc3N5b0VBbm1CcGFnc1J5bUVia0I2UXYxZUdWcFZBWURjK3FsTFVMMTZTcmpsUnIvYU5hNGp6S0o2ZkhERWZIRzVQK0NmRkRFYWRZK3c4V0piUytZeHVMUCtMOWdpd1NUSTl5NGNnZmN5YTROZW9mUWlETXFxSzlkU0N5RzlZMDJwQ3JsMkQ1ME5meHE2My9JOHhKenNPdVRSYmpFRU5aRHA0MU9EOGFDZkJkYXBxYzhkMHJLWXFlOVhia01od0dmc3RDT29oNXNwOVU5V3BWRmEyWlJVUlNVT2pNOEJDbXBtQlFuQzRwQ1FWTEVJbDIwbUxrRkRGOEkyTUs0cmRlb3ZORmpJaVc2OWQzZXRkYXNTNHRXenJ1bThjcUJ6SzFwVTVRNStaaHoycUFXeEJjNUNNTGliZ2ROWUZya09SN0dyT1VNZUc2a2s2akMzMDlrQUdZZmZBS1JNS05ZQ0R3VDdpd0pEY1ZjQ1RnRjVqSjNheXpNMjlvQk1rK1F6OEhPZ0pQRkZyK3pKaFlsYlVZcm5TczZ1cnBUOW4wbUpnSmtQUE9RclZoSGFjUWM4WnFiemFQUm94NnNFTFhkblVWclFHb2o2dHhycEhRVFJNN2FsUWdiMHkvd2tHcVdHVVdxdXpJYXd3aVlEQ0RUeTZLaCtzZ1J2SWdBVVI1dEZpcUUyMWt2RitKM1NnWm9XTWNvOG82akF0bW5QaVpqUmNjWnJEWFFmeGpTckVLRlhKSlFoTWdkUk4rbjhRcXJoLzk3cDJNRXdlbWF5TmowcGllaEpIc3dqc0pDa0dZQnFOSW5ScklFTTJBdUsvTU43VnRSazNrMzUwckZ0TEROWExGM2xwcHgwRUF3NFI2c1JrQU5CanFKbHladE1LczR2VElsb1J6MmVyRHdyOVhkY3k5YVExUURLNG9pWmlSQ1JDTXRwZHczQzRwNnpZSXNNN3A5L1JrREtNVUJTcEVhdnZnRHRCYlo3QURWQm5rWEdaaE9CcEJYb0E0UVpSSTdoYmV5c1Fwa0h5UXFRU29iNXVFODlDdGNCc3VGeTFQdFgzaWhJYlRCM3d6aFIvU0dXd0l4c3FKWklDczI2TVkwUUxKR25pMWZCWFNUM2NDa21ZZmVPU21STEFGY2hSMUJZY0NOeENjK0IwRlNRODZ6OEU1anRPblA5UWZ1YUJueXNrNkRiWkM1NVBXRnZBdDEyalVIKzRNME5iKzdVbzhlOXV6dW9CdVlKMDVHUnp5QlZKNERzNnhkT1Voc2hQWWllWGhSWnZUK3B3elFETTRvVThsc3FrUVY1ZEd5TW1KVTF1eVVxWDg2eUZQQjJtMll6U2dUbzdIT3EzVmtIaThLbUI3S2dJeXM0SlkxWkUrTThFZUF0OGRjcVFBQUEyQ01HcEVoUWlRRDRETzhlaVVTMVpBVkpsY005TTIzWmpRVTNkV09EWVVpaHJla3E5eG03b0J6OEVEVW1lakU1c25YTkxLV252bmdWSnRhamt4bkFDYUVBMk1MdFZqWWhuOWtySTRlQnRreTBGckp4KzZtRjlHQVNXcFFhTmZXbEZHdE1XRS9XUVd1cS96M1N3WkF6dnhobHlWYXBhTjlWS1lZYjRobnh2V1ovR3RyTnBlaTdOcGFvK1htUURzb1VRbFVUWjg4aUlwSlhkWVFockJnc1JFVkZ5WCtqVHQ5TEFIS0FCaTZ6SXI5WXFrQVZXRXBYNVNKbmZtalpBQS9CRHRVRlN3VGM1QTFtWTFWd1JiV0xWTUxBTG5QUHVXMkozMHhCdkNVa0pHOUdvVnRFRUV1MUp0VHlBRng3VVZyVkN4Uzdocmpnclc2aWZCQ3I4RmNob0hhdmcvVkhvVzVGaVVENlAwRzhqeUxNZnNwQStBNnZlVFhSMnNHTUVFSGxkcTlDcGpOWG9FTVJhRUhPclZaQ0tLSXlrb0I0QUU4UmFXaU42YXhLaFFBdXo5REFzZ0Fjdk1NWGtlNWFNMWRvV1FwaWpUM3J6SkFsbk8vaHlDT2NEbHVRR0lPcmhjaFdUMVVDaFFUbGpIRko3SVI3N1NoRktBbmhhV2pWd1NOZ2NTc1FHQXJYbGQ3V1Ewd2daVlJ2TGpFMmpqNFFRV0VaOVpYdGtjdXRiazBad0RweGYxRVRWUGVzSDNKL3drRG1KVUt4bUY2NjVqbTMyb0xOUWgwNy9VZHRYWHlxQ3lVbmNpdzNGd0RsR0ZNV0lCVlFnRUlxNjV2QTlWMEFMMGpzbUpqM2RQa0tMRldRV2VERjcxZHNrRVBVVDBnSGFxQTJVZUhWcDJSQ3Q3VmtyS2lzUUEyQXlUOWlpUE1sTDlZNEg5d0g0K1c4SUJqWmhpNHJFTHhET3JXM1ExYm91MmNkZWptY0NDK0RJUXBKUkZrcEwxUUxoR3AzY3Rkd045bkFGUTBNOGNpelJ0TExsYWk4cUFvdEtMdGZGbVBGVUQzSGNVYUVGbjIrNDFYQ0NJODBWU1pqclhTRVBTbUFuK2xJOHVzMkl5NFdQZENXWWthQkpjWiszWDNETzlEaHROZUM1a2ZhQVc5ZVlRYlltSkJSZ2tSNEUrTVI0RUJqQWpBOHRoOVdPTmVnUE1HRWd1ckZoK1RZVVhsMnpub2hPMlNBY0xOOFJLeUNwalN4aVdBYlhKVUdjSlRyWXI1L3hFRDdHRmpWN09qNVptYkdlRlVuRnZDZzBNelozNTJtTklDMURZdnRNQ01RMXl3UU1QU2cwVXRSOHE2dDg3WUpUQUFuRDFNMHdQN0YrcEFxb1VrcUFKTzlCREVpN0pOTUJGRVFQM0FRVFAxMUZRQjBJdkx5bExObHZTUWRicklBSE5weXJEYVhBS2dpQktCM3g4TGJ6OW5BSFpIYXpNQTdiTlJpaDZGTEFBdVNzQ3htV09aTEFiejcvK0tBUmdzQkhNWnpDaGpGK2NMRktPT1daMlpDa0Q3WHJFUHpCcGhVVG1PREtDYUUxdFRNWUNxMERsOFFrYnU1UXVJQ0JlRmExVjdZT2lESDkxdEtTVnNMaWtqQWdCRmRHc0dHREFmV0t0U3diblVBVnpzV0czS09WRlowWGFYUzBCN1pXaUsyaHRiczVlN0RqQU1lMVBvQzZKbFpMWFkrMGlsM2RFcGFMMEpUNFZ1K2RjWTRMVEp0UmJCdnI0UkJHMDZBelV0Y1ZiUE1peDNFTHM3VFBlb0VSWXJnRE5BUDFyTkFLMHFvT093MDdjWjRPTWFBNWlOd1p4cXpJMWFBR2Z6MW9PR05rdGNWdDBRU21jd3dPVXVnSXNMeTFzNlNLekRobFU1OWJyaEpGTjZSRGZ1SStxcDVlK0xyZDFLT21Odmw0dVZna0djQWJKWEM3b0dBenh4SHlsc09qLzhQUVpnOFhsZjZHZStFZnlrT2RpVWNxOHc2YWhtcW5jVURiNEdxTGdqQnRxZEY5bk9KUU5jeE9yU1UvZDdESkFaeW4wOUdCYlErUVRacUFESXFmbE9tbHYxSFptUnZEdmp0R283UUlYV0dtR2JDWnJxam5PSEREU1ExTnhVd003Q2ljSUpwRHYranBvUmJlMEw2OEJnVjlnQjdsbWxjRzBKdzVneFR2M3JBeTRNUFFkeFpkMFV6ZkR4RnhtQW54bnVPcXIwdHZTQXNiMktOZ1BPcFltd0VPSnlxYVFwb0N5Y01TTzhhMVNuNktRU2VKVUJ6TUgzOEhzTU1LME13NmdUVkNiUGVIUm9uQXFBYzgvbFVwcTVsY1R5dXA2MmcweVVER0NSWDFsQzdueFdxNEZRUkttMzYxVVdIMVN0S3NCV1U5YXpzd3BWYytjK0cxVkZoS0VhVlZFdis3eW1MYkh2TXNTeG5ZZktRR3pKZDJsZzdoOStud0VXUEZyYVYwSWlFd1JnRnJjc002Y0tPVXNRTmcwM2daem05QTFQRU1Qc2xWYVlFU1RMMEJ3WndKQ05QdG5qRFFhQVQvL3hOeGtnTXBUajhlMFEwaXovS21PSEZjQ21abUFtWVFlZzdZYm1Xd1pKbUMvQTR6M056dzFEdTZiVlVUdnVYUDF1dFBqWUhtN04wcytIaGlxUkxaUkt2NFYxbjhNVDRkV29EaDRFemExU0gxNGZVYnVUV2VRT1RlMGlndFpFODdZcXZVbGlRUGNDNEdITzNuWVZUVWpqdEQ1NkxJZk92TWV3dVp1eHB3QUx5RFFwcWlyT2lvekpyMFp1VmxvQnZZdkNHZUtUanhDbWJQQ0xvNEwwRlFaQVVOZnZNZ0QxQy82cUdlQXhDMENyYVZJTitIT2Jta0dDL2hweVdNc3hyKzNqQWphaEkwTXdMTXNqNjlRL29FcjlvQUgxbEZTd0JKSWtJRlJVZlZQQVBDdmNBQ3dlM2R4VDF0V28zTjIwaHQ5WFRZSmtjSE1IcjBzbnNieGtPcG05ZExqeUlOTVdEd253a0tkNGZIclcwYVUwVnE1b2xmUGJ6OUxyaHZnNmRMRElGTW1NZDQyNks1N20vNmtzTGJXdkMyZXd5a09kckw4TUM3OWtnSy92UDJXQWoyc004UG9XSmVDQkZNMHFVN295Z1A3YU5ZZVBISnZzTURQTXM0VkJCa3NkYWFiVWd5KzN4eWxSMWtUSXNsVlI0YVluTGJxeGhmSnFWRHNQZ2piWDhRaTEzRks3WklVVWkrUHBkQmttZ3RGbktFT1VEZ2VyMUpVM0dQREZTc1owayt1VlJDMjJ5dmtKb2RMdkRteEFBUlo0ZWZONFFFeHpyNXFRYWY2enRKUUhSNWFsTkxMMkFndHZHUDJ2TThDUFAyS0E3WFVHSU1LRm1TUDdOZ2NoMjdpa3c1UEptZHkzRENScFoycUJZYU9HRWRBN25SR3BKN1lLVG9tcUtvcFhmZHZ2ZzM3YXV0NDlLNnRSMGZGeVFzaEp4QlE1ZEdBRzZjbHlPN3AwSWxCTUhoZUJaaXd6OFk1SFZaVTNCT0ZINHNGUkg0RXlHVUpaeDlZdzdpVWlieFJaVU95eWhjd2UvdXdCVzZ3d3hEK001SStJaGtYaGpBanh3ZnZ5b2NRUjdWazg4dmNZNFBFbUF3akJ3L1JhNlFCbjIzTjdnZ2t6M2JMSzFNWnQwK3VkeStFQmFuOUdKdDBtRzdVSmorS1NKdlFCOWZBbjZ5T1ZkWkdpNnR1M1Y3alplaldybDZxYWxVMCtCa0V6Zk5Cb0dOQUJDMFgwZ2xzeS9GTWxUQmxxeW5ESlRWbThKQXFEMlIrSThVYkFNU1loaFRFbVk1U1hZcGtjaHg5T28wSUhxVXRNQU1EblJBQkZwTHJoL3BUYUNPdnl3a1RPaGd3Mm5wallBZjk4SzM2UjVXTi9pd0h5UjgwQTFKSTk5bXdKR0FtMksydXp1bm1oeHg1RnFDWFBNWXZYU3VaeVZBWHNESmdpcks2bkVWbkdHTWZKT21OT3ZXZlNOS04zdGJIcW16U2pGQlVnR0t1OG1sVVVibnJoZXNnQVlxT2hVeFVORWJEV0k5Tk43Z25LUkxDNU5pZFJYYTlJeitIZlh1d0lIRUNFU0M3TEdWTnJPekErSzg2SFlDOGsvU3gvUUhSQXBDVWlobkZidVJXUUh4YTl5aHd2aWw1MSt2OHZHU0NEVnNxTnF5aHJaZkpLMUcrQVVHV3NyYjZ3UnJOTEoyZXlpR2xHWExLaVR2NEhHVTgvbVlQam9wYVkxV2NTZ1lkSTlLeHdzd0dOTmxxTWF4TWpyVFRhTUZvOFFYU3NrSUxxaWs1TE5CQ1VMYWZiSHZGeUlEM29JajhUMFZVVUJBT2hMTG9sWEwwcGhtY1V5bXpzWmtVMVNodElIaDdZVStramVYVjZ4L3llR2J3SzFKNUE1M0IvNjVraFBoWk8wK3RoRTJNR0lKQWZCY1QvQWdQTUdXYUdlRXNZbmVhZVZ4eDJBbXBFVDE1bFNtZWdvU2FmWWs3ckQ0MjVoaDN5RWd5THZXbWlXd1BTTTdXcDVjMytFc3J6T0VqR0V6aWZnQmRoYkRzbUc0R1NXQzdjRlR2VEJySGFCbVZhTVMzK3BEb1FzallMZ3BGUWlHNWhUSXR2eHEzVUhvUnkyWjR0TWhVblVkOG9JcU5ubU1TKzJ3dUZrMXJ0K041TlA2TXFwcnpYTUFFK0MybDdZVzZBQXBFY1FPai8rd3h3S09NQjZPMWp2WHNtMlR2dEdYQzVZNUxPSEpLbkI0eStJVVhCQVpnYUxvZnhRK21QT1hBNTdrSXcxbmdMNll6VVNJbDh6YlY0eGdVNmlYVEtBb2Jzd2lLZ1hkRGdHRW9CQkNWL0c0ajNraE5aVHMvZFg3UGNrT3NJdklmNHNvclBUalVhR3FJeUtrS2NJSlNqbWVFQ2dydkRIY2Z6TUE1c29FeUh2UWZUR3orUW40M3hqR0xuT1BjWVcwbjYwYUJwbWxtVTNJWUI0TC8vQmYyREFlYnpGZ09FT1NPaFJja0E3dTJMZXZkRVJtTUNtNFlHN2d5aHFBQS8zWDJ3L3Q0c3dBaEU1RG1rZVV3MGJBMkc5V1VPalZvM0liaEV2bWEvbHpaTUlyblNWeUIxMENNblFUT3lPdlFzdTg3ZjlMZTNFek9Bb2JmNFBwVzBWSHU1N2FjNXNhajV6bU5wYWxRUUxWa0RrSUpvQTVvNzFLem4wQUVWMnp6QUdHQzMrRHJGR0VSak0xd054WU9tVERySHJSV2g5ZzAyMmlZQldEeGU2WDhIQy9Rb3JVeGdnRHBmUlNZa29UZTg0N1hyTWJKYm1CYXRwQXJWYm1ub213RjJRbUZzdVhOMC9wdDJwTlRtV2wzV0lWdWloVVptNmxFVTRjdXE2WVk2SXZJMSs3MjRLUXZ2RUpqRklzYmN5aThCM0VmZzR5b0NMUENSK1J0QzlFSWJUUWxuaE1ScE9WT284cTRiTSs4eXVvVnBKckVmWGcrS3FJcHNkSVVpT3FkUmF4YWkyM3ArSUZFQTlISmxlalBkMmtZQ2paMTZrbUNHTHd2Zm14VkZOOUI2eEp4QXN2NEwrY0VBbThLRWNjKzBBSFcrQ2d5eVIwN3dCMGViME1BMzFxVzNsWlJ5blNBVHQwNGsvY2RwcWZKcWxJazJSRTIvWXFkdGUrOG93bWMwUW1waXl1MW4wQzBzY203OGdjVUFKalU1eWN1WU85M1FBNWdCOHlGNVR0ZTFwL1BoSXRqZWo0YU93NFN6bXlzMmtrVnZmU2dZb0lxTjBmUTB4WmxzaktsMEw1UDVIUVlyY2FIUi9jZTByQ3hmOU80eGxZanhkaVZQcUMwQms0d3A1d2V1QUxZd3NleUpTb29FWVdoQzdEUmhDRVdRektQT1Z4RUpTZlFINjIyeWRqMnNqTnpiakZWV2g1WnNHRU5BVEttSGpRRXROS1JzUGc5a2ZJeDYwdExwdGpaeUlJUzJCNXYwaEVhdzNyOUJ0alB5WC92Y0pqK05BdWZObkZtYkVkWnVRSkE1NW93RnZTZ29nWVdvY3YvaVlSUmtnTFpGeWd0R2lFYUZFOGRYR0tCL2xRR3N1dUM2bjVwVUxBRnpBb01pb25lZ2RTU2FBa0RBaWoxckp1L0FKR1RlOGk0amFVRnQwQnhrcHVuUkJONlVQbHVuOEQ4bEEzeWZZbGVKeVllOEFOQzVjbmZqaXBiK3dCSDhlTWRHS3lzRVE4N0hQbmtEYUxCaGczRUp5dEV4YWVrMjdOcExrdEh3SkZheUNwYUxzTXRDNzRYMW1NR1J1cFpaYXY4TmpQMllLTnFkYXkxd09aN0NrdDdpaFpBTjJYQWpJRUhPY05WM2FaSGxWbEVLeW90Ukkxc1pDdEQwS0p3anUxdWJBZVlGQTFnWW5PVlJkNkZ1U1ExWCtNOVRYbkVGMGVKR1o2d0RrWURQM3dWK0MwRFJNY0VIcnJqSlQ4eWY3ZFpObUNodnorMWt3dm1LMURESkFMWUJmbWNiNHdURGRFYW5Kam1Zb20xbXRGWFJsQUhUQ09hcjdWamZ3UUo3RnF0QVZnamxubnU4ak14dFl4LzRlK0EyZ1U1dU9ac0JxblRYRE1ZSG5obXVtUjRDdDVpeitNYlcrSVNKcGRhRGh2Q29kRFN1cVFPNTlGVnpKQ09EUGU1eDNuY0dnSXRYS2VGWmZWMExxbEswOGpveGRPby91ZFppcGdJemxBeVEybmM2aE5WYlJSRURrcUYxYXdZQVVSVzVCb2loaVhpK0N3WW5BRmZtYWdJWHVpWU1pNlhKVUorbjBLQmNFeU41UXdDZ2ljREhxcHhGMlhVUlVGRzlyQXpLMGtTTjh5dzA5NnIva2Fkc0JnT1VxektDZFkrL3Y0TDhxaFpTYWRoQS9PTTdrUVNXVmlzQThOUmZRQ3E2eC8xdzhLelpvRFhtdXNucFlUaDJsZllENVlyTUM2b3NBZmR6azlZS1ZBMWQwMENGZ0JyNTdRd1E4WmNKcDBGUDJib1JIYWxwYUp0Rkw3VHRnT0dTQWVReGE0am1Dd2JBc3FTL3N1STRjNTV4Q1NCUlhXVlpXUVVsMThpOG5BSk5hYW00YmN5R29SWkxTdHJFNlovMlJvaU5XY0crUWdBa0ErU2VGMHNyeWlUcjdDME15bkJPSE9tR2hMdUtwcHdIT24xTmZNTU1hOG9BbmpwMjhuYzdwcUxacHd4SHFPckFlcU1HYVVXbWRJZDBNR0Nra1ZuTW5xSmVFK1FBZFNPdWhPdUZCOFlhQXlnN1lHbE9hNFU1RU1rQWpIc01Ca2hBVForMHRKN2VPdjRyQVpzYVhsQW9jM01vQkhJMEdJQVpjbTBYZ0VkNFVqcTZsREV4dEpVNXozSnRmTEpOeTRnNFo5ZklNTGxodDI0cFVpZFNPMm4rZlZRZlFXamVSMGhscEdzUytwc0FZSXZNbjI2eHNGU0hrUjZHM1pycDJyWHU3a2crd295NWVFRWJLL2ptMUZCdkxFRHlQeWcyZUtUaVBFSnNPcnNWY3JsMk90aFkrcVR0OTNRYlc4aE82VGw3VHhZa1EyTDVmZzJnWHZjOUtuSnpqUUVZQXJSSUJyQzR4MUV3QU5Sc1BBdDI3YXpoczRpR0p6TEVSRDFZbWVGWFZHOGlycm03bDhtYnNXTXVwZ0diaXEycGs2ektlWlpFOWZ3VmhHdERub2VXOXNXdFZIVEJQUWhxaytaZTYxN25MUEpXNms5cDZRTXFHRUN1alQwdmErbW90VWE3ZFZoZ1VBYlR5bzBkcGF1YktYUG5nQU80WTFyRFV6dXh4R29iN3UwQU1sV2xQREE4TW1OVStDNDBXUUtvRmpubXBUY1hUeFhhdTFYUGU2eTZDMzVqemljRDZPTGVSTmtLUitKWERFRHgzb3NsWUt6dnRrMEdlR2Rkang3K2dScllEcVhsTnREVkZZTE5MWkI3eFdsTis1N0VGYU1qN0xkYkJqc1d4aWtsbWJSbG1mTnNHVVQxRERaRThZVkdoc2t0QktVeEpidEliZnhyMDF4T1FwTS9wU2tQL01EZmJmb2pRd2dwYUN1bVplVkJ0dzV3cjJGOHFYVFQ3clhXVGJEU24wcEs1S21mSzNhZjVZZTV0d1BJVkNPdFltT0VKRFlTQkNLOUZPK1dYV1hYcUlwa3oySzVjR0RHckNkcnRsb1YzcEVEVnFBVWVsZVVpdGFRM1o0aDZUSWdUeEdpWkFBWjY1SUJ3SmZnSW5RUi9sR0gwdUkxSUJRcG5XSGhaL0ZzWFJNM2J1R255VitabG50cHdONUxId0lTU1Vxanc1OEtlaEtWZVZlNGw2WkdocnhIY09RckIxUmRwSGJRSEVSSEE4bi84dzliK29DaVlRdFh4UFhBR2pjN2JiTGI1aUN5dnZpY1V3N0lWQWFzR1Eyc3Iwd043dVdZWEdVQThzdVIzQmlKSkpZbS83RFRKc3BPNkkrQ1M5aW5LKzlvSFY2aWNjeVVic1J1SE9OTTdIR0RWY0d4RVE0N2JPWjZNY0x0bURhajMzaEJUaEZuTlFORWtHcm00R2lGMG5KT2s2MURPaU5mWDZSc1ZTS25keSs5Z1JoUnV2b3h2MGd5bThpNS8wcWlNaGhnRXpQK3VOZDJoQkFYY3NyVng2S0wxUDRuU0s1TnpzTmZRbkw3aWI5Si8yem1md3dHd01lWTdZY3FxcW00NkZZeU1LUHpRTFV2Q0Y3c2pvbWZRcm4xd1RtRDVBWTk2MXdQTXNzMTBrSWNQcVZ6YmZHUUJJTWdiTkJZZ3FYdWxNTjJsdHJGdDRGcmVTRmluTEVONU9adzBNU21ueUFpQkE4eUU3dnRLUmJTc1REbFBSaWdId3hBbUdnbmttTFdvYlNjMDF6WVFqcnZxWUFyaWF2Z08yNi9wdHhHeTBFUWRiUHhXU3cwS3lleWRpZFJxYlJSYlJPNjV1dzJtcmE3U0czOEMxY2ZpQjRrMTUvUzhhODArb0N5TWRFdEdXQVltam03VnpBb2U5WVhzeXFEQTFqamg4QksxZk9GMmhBRHpicmMrRUlzV1BDVys4YzZTak9ac21mTExFSTRtTm8rNTF3cHVERThLS3JZa2xTd1lMVkJwYytXMTRjUjBPanFOY1JHNk1zd3EwL2JxaUJmNGptK1p4c3FiQ3dZSGpEUmJpUlNqRkRhbk5PeHBYWUtNN1JneW1tTmpHalcwSkdTR3o3UTBNUVJqdWNUZVcrdEZ1UmNJYjVyZVk2L2JVYXpoMTFWK3hkUy9sOXYvMFg3Ri8rWkM1RDBaL09zbjJBQWwzV1BHRE5yVVh4Z1FybU9LTThGSzMzREpQZit3cTJlaW9GRksyWEdXbkhWb1JqY3YzSXBieXg2MjMwWm1qRmNiSjlaTVpjYnd5ai95YjA4TVB5c0xrZm5ZMmZIZmx6S2tFL3NwMGVsWFZFL0pITjhVMkhqejh5R21Va3hsOWRpZG5ScXBuVG1Ca3Y5SEpqV1h6NXhaeVEwSmJlYVJGTVI1eXlPaVp6ZFNWUW83aDY1azJzNC9maVU2VlZYMlpUT1JuZVMvSC8rNTMvUTh6OUIvbXdjV0t2MHF2dmR0RlZ6QjR6R21XTWVTd1hVZkpEK2pJTUEvYmtNRkF3Z3Z5Z0FNS3FBaW5BcDczdVFlQ0ExRkxmWWd3NUEyeDBhcmF4a1ZLVlpKRGt4UDhZdys1bUM3TlV5K3lFaEl6MExwR3prcjRxUURJVGtSamJNdDB5S3FTYnNxbUdTZjVYUytmOG43MnhiNGdpQ0lCd1NBU0VTQ0w3bElCd1lEd0luOS8vL1hxYjdxYnFhMmZzVVJCQ3RqWHR1YVFDczdkbCttOTRTcUIzd1BXWk44TFh2cnlKS1JOUkYwOFVUUHk2R0RJMmsrU2JydVNHVGhna1ZSSFBoTkNRL0RmUjN5TDhnZjJydEhrMVdFbnFKZzhsQjF2UC9tVGU5MWwrNGE2UjVBdHhOZy9NRzFTNUFoUWUxMm51bVRMK0xWQTRaQ2IzYSszM3JGK2xpN3dLM1NhdUtoRFR5OXFxS3R1RlQ2L2RvejlRV0JTYll6WjJ5REtudCtnWWZLbVFPUzg0UnhRL0w2dXgxZTQ2MkRnaTlxTHUxNGdLR0hENnF5b2REMzZ6bmVvYTNlUy9VQ25RK2JRWFA5eGMzUU9QNXZzNUwzMCtRaVFuZTAvSGtPNEJ3c1kzL0NYY3ZvelA3RmlBOGNJS3RudEIzL2RwSDdZSmxSQjk3Z3ZINGR0ajdJMGM2RHdZODlwdWFCYW5Kb3NMVDdlTktGaFZJQkM2RmJ6VEJPQTRiNVF3WE8vcE04TVZ6MkhBcnJWWm5WRzM5K0pZTGZMczZEVVRjYUZvZmtUR0dERzBVTDdjdDYvbFJ4bzA1WDFEQmwvOUMyV2tlQVJpYyszNEN1Y2FVMy9IL2ZBYzRFWFJmcjgxVlBwQ2FwWk9BZC9VejdZRFR5SVhIVWU4WXAxYmJRem9MdUpwNkJ3TmdFMFZhUm02eXNZVTdZUEEzNGUyWE1VNjZyZzg0WjBqckNjWndyT3hNUnUzV1VqNUlwc21jYzFoeFpNYVVIVzRsMnRLQmdodDFpeHVRWmlXaSthYUJQcHM1VHM5d1lPTmVxVmVnRk4wNGdVN1pQaTVJNnFYMTEvdmUwNENXSk1DMXhtZTdERkR0LzU1S0lIL2hhZ3p6MGFCUHQyeVJFS1BQRzhLZ1l6WUQ5MXZYdHNab0M0L2hUdkYwdTE4NFo2MnNKaGlMSzloYjIvTktDRDRUcU9YSUtvM0M4Y2ZXYU11SEVISHI1OGhyR2JGanMraXBjMkdjbzNnaFVpL1U2MUR4M29EQ1FQZWh1dStIak94WFhHUFgwWHNTWDNtQ3kxdFBrd2FrMTE0OStkZEVpTDkwQTZqQi8vdklNWGd3NmRTbjM3c292SW9IUDVNNzVmU2JvaFpoMUliSEwzTm9oWkRPakRjZzRleXRKUUJMTXMxSyt4UjNHL1BHWkdGaXZzS2dXYmxSdDNWRlVqUzFpQllkcVNlMDJhUHYyMElaSHllQ2NJdmM5OU55Vno1TnJqR3Z3YnF0bVc0ZEMxQ0NZWXR3Q2dHOFdXSHZWb0F1YlkydFF2UmU2ZFVvWTlTK1J4TWZXTFNkRUV0MGJUamREUkR0L0FEV2s5cDgvTElJV1V3b1lpdHhmN2VKMHpuYzF1R1RaY2JXYmJPcjUvMGlsZnM2MmlKdUhQR2dXTDZnQTY3ZkhyVnhZazRGRS9EU1R6Q25ndHMxVnBhbDlPODJOQWI4YWtoQVNvR2QrRWd6VU5jRXJqekdpTUtHMmtMeDVWaTBrOXFHT0VQKzk0V0JPb3phOG12ZXBCQ0I2NEQwbzl5WGpTVzRCaTg1b1NxV2JadkZoakZycm15N0lsQTNxcjQzRER2ZGJQTGVQYWlmUUsxbzJsMVFham5MVWtYQWJxTHRFZDhhRXpJMUF4QUV1d0djblhnYUI2LzBHSHF6U1ZHNTdxemFUVXp3U3U1RENuVVlOZFB3Yzk0a1VUVGExa2U0WEY3bTBvNDJaWi9xd0lJbHNWVzl0R3ErM2oxU0RuYmxTNitNN1dhdWVvYVR1YS9aT3BTRDFZbENKUDZOZ1diWjVacDJJRXlSa0ZtM1FDLzRYUVpEYkFTWHM3VWt4RXhzRFQ2SGRIVStKTHkwaFFYOEdrdzRRbXVrdHZzV3hOcXhaWjBXUS80NE9Cd3lST1pIZGN3K3VQNmsvVWphNDdFYnhxdE9GUHlCdVFybS9rQ3QxcGdvTXFvenFGL2FreklZS2JMTE5kdi9kYlgzWkVsaW9ZbWtReWRQWnRpQVE5US9jYkJjcmtCOTJ6S25qd3FVcHZKVmhzM3UwWEt0dENQUmV6d3dXcHlEOGdkY0JTTXhUc2NaWHZpOEVyTzgvOG1DWDF4QWJXUEpoeVc2WGcwYjhlYkhNV0ZVYVBQYkpBbHhGVEFKVnpTV3ZnTDVQd2U2ZDB5VkwvYktseEhqaE0zdHhPT2FCemZWTDR3ZVlQMVorOUhMdXM3VmJNcGdRWDQxY0R3ZEF2VUZiRm9LbFhCYlBuN1pTNUtpaTdSTkp0RGlFamgvK29td3ZwQkxRZGM1REVzVHcyNE95M1JyQkxRVFcvNnN4TG9Gc3VCajNvR1VUY29rQkladGJyVlNhWVNPSzI4Vy9HdnZERlliaUdFZ2FnaHRvYWVrbDNhaHAxd0tZZnYvdjFka1dYNmFRQytGd0pycU9SZjdhbHZ4V3FOeEM2SnZEZWorVzB4OHBGeENFSVNqRUpmcEkxWGlCMy9BZDJ6TXFZZllDQU1TOEFOaU5qY21rZGpRZitXNWwrT1hZZlF2VTFuWW9VN2FLUVJCM3ZjVWkxbVA1WmRuL2RNZnpsUWQzc2hZc0FSU3dHZXlwMENCQ3pIdVRJVEhSZVhDYThoZzNnU2Y4ME96cG9aOVpZQ1h5Qnl0TzQ1SXpCSUlTRjB5dGI5Y2lMSFpIenIzaGV0djFhb0FRWkFSTXQyY0ZWTFJ0RGdQM1BhOUJTTnZLUUdmeSs0amJPeWlLL0EvYUtQZ2hlSlY1RDBwTDZ4bEUzZldFM3VEYjFKZXh1RStyNHF1M0FNcGREZkVDZGRnQVR4Tk1KL3hDQUI4Z3lGSU94cTFBSjRoTDRCT0Z2Z1psTDBoMlhsM1cwMnNKNEIvZUtNZGpzSWY2UVFyVTN6QndrWmZ4aldpNXA1VFlkaHFmbUk5c1FZRnNuQXdrVmMyc1VMZ04raXVHMGp4c05YRWUyUUZDZ3BEQk52TTJOako2L2lPbGJxNWpuWTJ5d1A2L0srMkFBcXZkTkxOdkczWnlESUVmcWZBOHJySUxKTm9oeVBBQ2hRVWg0SnZabkdZRDRIZjVMSzVSQTg4RDdoV0FDaFFCQWxkMDVGSFhlRDNGaU9iRjBYZGllYXhudGpiU2hTMmxhVmRoN25YTmZwRDRHY2pXaFNWK1VyV0V3dFIvQUJ0d3pZbStJeFNsd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcbiAgcmV0dXJuIGltYWdlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm50KCl7XHJcbiAgcmV0dXJuIGBpbmZvIGZhY2U9XCJSb2JvdG9cIiBzaXplPTE5MiBib2xkPTAgaXRhbGljPTAgY2hhcnNldD1cIlwiIHVuaWNvZGU9MSBzdHJldGNoSD0xMDAgc21vb3RoPTEgYWE9MSBwYWRkaW5nPTI0LDI0LDI0LDI0IHNwYWNpbmc9MTIsMTIgb3V0bGluZT0wXHJcbmNvbW1vbiBsaW5lSGVpZ2h0PTE5MiBiYXNlPTE1MiBzY2FsZVc9MzA3MiBzY2FsZUg9MTUzNiBwYWdlcz0xIHBhY2tlZD0wIGFscGhhQ2hubD0wIHJlZENobmw9NCBncmVlbkNobmw9NCBibHVlQ2hubD00XHJcbnBhZ2UgaWQ9MCBmaWxlPVwicm9ib3RvXzAucG5nXCJcclxuY2hhcnMgY291bnQ9MTk0XHJcbmNoYXIgaWQ9MCAgICB4PTYzNiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yICAgIHg9NTc2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEzICAgeD00NTAgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzIgICB4PTI5ODcgIHk9MTI0MiAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMyAgIHg9MTcxNCAgeT03NjkgICB3aWR0aD02NiAgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM0ICAgeD0xOTk5ICB5PTEyNjMgIHdpZHRoPTgxICAgIGhlaWdodD04NyAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzUgICB4PTEyMTQgIHk9OTUxICAgd2lkdGg9MTM2ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNiAgIHg9MTYxMCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS00ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM3ICAgeD0xMzQxICB5PTU5NSAgIHdpZHRoPTE1MiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzggICB4PTE2NTggIHk9NTkyICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOSAgIHg9MjA5MiAgeT0xMjYzICB3aWR0aD02MiAgICBoZWlnaHQ9ODUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTI4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQwICAgeD0xMDMgICB5PTAgICAgIHdpZHRoPTkwICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDEgICB4PTAgICAgIHk9MCAgICAgd2lkdGg9OTEgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MiAgIHg9NjY0ICAgeT0xMjk0ICB3aWR0aD0xMTQgICBoZWlnaHQ9MTE0ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQzICAgeD0wICAgICB5PTEzMTcgIHdpZHRoPTEyOCAgIGhlaWdodD0xMjkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDQgICB4PTE5MTYgIHk9MTI2NCAgd2lkdGg9NzEgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xMTEgICB4YWR2YW5jZT0zMSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NSAgIHg9MjMzICAgeT0xNDU3ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ2ICAgeD0yODI4ICB5PTEyNDUgIHdpZHRoPTY4ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEyICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDcgICB4PTAgICAgIHk9NDI5ICAgd2lkdGg9MTA5ICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OCAgIHg9MjM5MiAgeT01ODMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ5ICAgeD0xMTIgICB5PTExNDMgIHdpZHRoPTkzICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTAgICB4PTE0NDMgIHk9NzcyICAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MSAgIHg9MjY2MCAgeT01NzUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUyICAgeD0xNzk0ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTMgICB4PTUzOSAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NCAgIHg9NDA2ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU1ICAgeD0yMDgyICB5PTk0MSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTYgICB4PTI1MjYgIHk9NTgxICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NyAgIHg9MTU4MSAgeT03NzEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU4ICAgeD0yMzgzICB5PTExMTMgIHdpZHRoPTY3ICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTkgICB4PTM3MiAgIHk9MTE0MCAgd2lkdGg9NzMgICAgaGVpZ2h0PTE1NiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zNCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MCAgIHg9NTM5ICAgeT0xMzA3ICB3aWR0aD0xMTMgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYxICAgeD0xNjg4ICB5PTEyNjkgIHdpZHRoPTExNSAgIGhlaWdodD05MyAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjIgICB4PTQxMSAgIHk9MTMwOCAgd2lkdGg9MTE2ICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MyAgIHg9ODAwICAgeT03NzkgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY0ICAgeD0xNDIxICB5PTAgICAgIHdpZHRoPTE3NyAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTYgICAgeGFkdmFuY2U9MTQ0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjUgICB4PTI3MDggIHk9NzUyICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NiAgIHg9MjIyMSAgeT05MzkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY3ICAgeD0xODExICB5PTU5MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjggICB4PTE2NTAgIHk9OTQ2ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OSAgIHg9MjQ5NiAgeT05MzQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcwICAgeD0yNjMwICB5PTkzMiAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzEgICB4PTE5NjAgIHk9NTkwICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MiAgIHg9OTE2ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTczICAgeD0yOTYgICB5PTExNDIgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzQgICB4PTI3MiAgIHk9NzkwICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NSAgIHg9NzY3ICAgeT05NTUgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc2ICAgeD0yNzYyICB5PTkyNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzcgICB4PTIxOTcgIHk9NzY1ICAgd2lkdGg9MTYzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OCAgIHg9MTA2NSAgeT05NTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc5ICAgeD0xNTA1ICB5PTU5NCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODAgICB4PTE5MzggIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDEgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MSAgIHg9MjIyMiAgeT0yMDcgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgyICAgeD0xMzYyICB5PTk0OSAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODMgICB4PTIxMDkgIHk9NTg4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NCAgIHg9NjE3ICAgeT05NTUgICB3aWR0aD0xMzggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg1ICAgeD0xMjggICB5PTc5MiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODYgICB4PTI4NzAgIHk9NzQ5ICAgd2lkdGg9MTQ3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NyAgIHg9MjAwMiAgeT03NjcgICB3aWR0aD0xODMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg4ICAgeD0zMTIgICB5PTk2NiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODkgICB4PTE1NyAgIHk9OTY4ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MCAgIHg9MTUwNiAgeT05NDcgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkxICAgeD02NTggICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTIgICB4PTI5NDUgIHk9MjA0ICAgd2lkdGg9MTExICAgaGVpZ2h0PTE3MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MyAgIHg9NTY3ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk0ICAgeD0xNTcwICB5PTEyNzEgIHdpZHRoPTEwNiAgIGhlaWdodD0xMDUgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTUgICB4PTAgICAgIHk9MTQ1OCAgd2lkdGg9MTIxICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT03MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NiAgIHg9MjYyMiAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTQ5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk3ICAgeD0xNTg1ICB5PTExMjEgIHdpZHRoPTExOSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTggICB4PTY3NyAgIHk9NDE4ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OSAgIHg9MTQ1MyAgeT0xMTIzICB3aWR0aD0xMjAgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMCAgeD0xMjA5ICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAxICB4PTEzMjAgIHk9MTEyNSAgd2lkdGg9MTIxICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDIgIHg9MTg2NiAgeT00MDggICB3aWR0aD0xMDEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTYgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMyAgeD0xMzQgICB5PTYxMiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA0ICB4PTI2MjcgIHk9Mzk1ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDUgIHg9MTA1MCAgeT03NzYgICB3aWR0aD02NyAgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNiAgeD0xMzI3ICB5PTAgICAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA3ICB4PTI0OTUgIHk9NDAxICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDggIHg9Mjc1NSAgeT0zOTIgICB3aWR0aD02NCAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOSAgeD0xOTczICB5PTExMTcgIHdpZHRoPTE2OCAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEwICB4PTIxNTMgIHk9MTExNSAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTEgIHg9MTE4MSAgeT0xMTI2ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMiAgeD0yNjcgICB5PTYxMSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEzICB4PTQwMCAgIHk9NjAwICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTQgIHg9MjI4MSAgeT0xMTEzICB3aWR0aD05MCAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNSAgeD0xNzE2ICB5PTExMjAgIHdpZHRoPTExNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE2ICB4PTQ1NyAgIHk9MTE0MCAgd2lkdGg9OTUgICAgaGVpZ2h0PTE1NSAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0yMyAgICB4YWR2YW5jZT01MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTcgIHg9MTg0NSAgeT0xMTE3ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOCAgeD0yNzcyICB5PTExMDAgIHdpZHRoPTEyMiAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE5ICB4PTI0NjIgIHk9MTExMyAgd2lkdGg9MTYzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0xMjAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjAgIHg9MjYzNyAgeT0xMTA2ICB3aWR0aD0xMjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMSAgeD0wICAgICB5PTYxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIyICB4PTI5MDYgIHk9MTA5NyAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjMgIHg9NDU4ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNCAgeD0yNDUxICB5PTIwNiAgIHdpZHRoPTYxICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI1ICB4PTM0OSAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjYgIHg9MjM3OCAgeT0xMjU5ICB3aWR0aD0xMzggICBoZWlnaHQ9NzkgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MCAgeD01MTMgICB5PTE0MzkgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYxICB4PTIxNyAgIHk9MTE0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjIgIHg9MTM0MSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTI1ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MyAgeD0xMzAwICB5PTc3NCAgIHdpZHRoPTEzMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY0ICB4PTcwMiAgIHk9MTEyOSAgd2lkdGg9MTQ5ICAgaGVpZ2h0PTE0OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zMCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjUgIHg9NDY1ICAgeT05NTUgICB3aWR0aD0xNDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NiAgeD0yMzc1ICB5PTIwNiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY3ICB4PTIwNSAgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjggIHg9MjcxNiAgeT0xMjUxICB3aWR0aD0xMDAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OSAgeD05OTUgICB5PTU5OSAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcwICB4PTEzNjggIHk9MTI3MyAgd2lkdGg9OTkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzEgIHg9MTEzMSAgeT0xMjc3ICB3aWR0aD0xMTAgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MiAgeD0yMjUxICB5PTEyNjEgIHdpZHRoPTExNSAgIGhlaWdodD04MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9ODkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTczICB4PTEzMyAgIHk9MTQ1OCAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzQgIHg9MTE2OCAgeT01OTcgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NSAgeD0zMzMgICB5PTE0NDggIHdpZHRoPTEwNSAgIGhlaWdodD01OSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc2ICB4PTE4MTUgIHk9MTI2OCAgd2lkdGg9ODkgICAgaGVpZ2h0PTg4ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT02MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzcgIHg9ODYzICAgeT0xMTI5ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTQ3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTI5ICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OCAgeD04OTkgICB5PTEyODggIHdpZHRoPTk3ICAgIGhlaWdodD0xMTEgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc5ICB4PTc5MCAgIHk9MTI5MCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODAgIHg9MjUyOCAgeT0xMjU4ICB3aWR0aD04MiAgICBoZWlnaHQ9NzEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MSAgeD04NjYgICB5PTU5OSAgIHdpZHRoPTExNyAgIGhlaWdodD0xNjYgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgyICB4PTI4OTMgIHk9OTIzICAgd2lkdGg9MTEwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODMgIHg9MjkwOCAgeT0xMjQyICB3aWR0aD02NyAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTYyICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NCAgeD0yMTY2ICB5PTEyNjEgIHdpZHRoPTczICAgIGhlaWdodD04MiAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg1ICB4PTE0NzkgIHk9MTI3MSAgd2lkdGg9NzkgICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODYgIHg9MTI1MyAgeT0xMjc0ICB3aWR0aD0xMDMgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NyAgeD0xMDA4ICB5PTEyNzcgIHdpZHRoPTExMSAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg4ICB4PTI1NDIgIHk9NzU4ICAgd2lkdGg9MTU0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODkgIHg9MjM3MiAgeT03NjAgICB3aWR0aD0xNTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MCAgeD0xMTI5ICB5PTc3NiAgIHdpZHRoPTE1OSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkxICB4PTkyNSAgIHk9Nzc3ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTIgIHg9MTYyICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MyAgeD0zMjQgICB5PTIxNCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk0ICB4PTAgICAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTUgIHg9MTM1OSAgeT0yMTAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NiAgeD0xODE0ICB5PTIwOCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk3ICB4PTEwMTYgIHk9MCAgICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5OSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMjMgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTggIHg9MTc5MiAgeT03NjkgICB3aWR0aD0xOTggICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjYgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE1MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OSAgeD0xMTc4ICB5PTAgICAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTggICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAwICB4PTI5MjIgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDEgIHg9NjQxICAgeT0yMTQgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMiAgeD03NzUgICB5PTIxMyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAzICB4PTE5NzYgIHk9MjA3ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDQgIHg9MTAxOCAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNSAgeD0xMTEyICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMSAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA2ICB4PTkwOSAgIHk9MjEzICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDcgIHg9MjExMCAgeT0yMDcgICB3aWR0aD0xMDAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjggICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOCAgeD0wICAgICB5PTk2OSAgIHdpZHRoPTE0NSAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA5ICB4PTE1MjEgIHk9MjA4ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTAgIHg9MjE4NCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMSAgeD0yMDMxICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEyICB4PTE4NzggIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTMgIHg9Mjc2OSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNSAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNCAgeD0xMjA2ICB5PTIxMCAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTEgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTEzICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE1ICB4PTI3OSAgIHk9MTMxNiAgd2lkdGg9MTIwICAgaGVpZ2h0PTEyMCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MCAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTYgIHg9MjY1NSAgeT0yMDYgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTc0ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEwICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNyAgeD0yNjI1ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE4ICB4PTI0ODEgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTkgIHg9MjMzNyAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMCAgeD0xNjcwICB5PTIwOCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIxICB4PTQ4NiAgIHk9MjE0ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjIgIHg9MjM2MCAgeT05MzkgICB3aWR0aD0xMjQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMyAgeD0xMjEgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzEgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NyAgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI0ICB4PTE2MDQgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjUgIHg9MTQ3MyAgeT00MTIgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNiAgeD0xNzM1ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI3ICB4PTUzMiAgIHk9NjAwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjggIHg9MjkyNiAgeT01NjkgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOSAgeD0yNTI0ICB5PTIwNiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MSAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMwICB4PTk5NiAgIHk9MTEyOSAgd2lkdGg9MTczICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xMzUgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzEgIHg9MTk3OSAgeT00MDcgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMiAgeD0xMDc2ICB5PTQxNSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMzICB4PTk0MyAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzQgIHg9ODEwICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNSAgeD0yNzkzICB5PTU3MiAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM2ICB4PTc3MiAgIHk9NjAwICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzcgIHg9Mjk3MCAgeT0zODggICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOCAgeD02NjMgICB5PTYwMCAgIHdpZHRoPTk3ICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM5ICB4PTAgICAgIHk9MTE0MyAgd2lkdGg9MTAwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDAgIHg9MjgxMCAgeT0yMDUgICB3aWR0aD0xMjMgICBoZWlnaHQ9MTczICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTUgICAgIHhhZHZhbmNlPTk0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MSAgeD0wICAgICB5PTc5MiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQyICB4PTI2MCAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDMgIHg9NTM4ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NCAgeD0zOTkgICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ1ICB4PTI4MzEgIHk9MzkwICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDYgIHg9MjI1MyAgeT01ODMgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NyAgeD0xNDAgICB5PTEzMTcgIHdpZHRoPTEyNyAgIGhlaWdodD0xMjggICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ4ICB4PTU2NCAgIHk9MTEyOSAgd2lkdGg9MTI2ICAgaGVpZ2h0PTE1MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDkgIHg9MjExMSAgeT00MDcgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MCAgeD0yMjM5ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUxICB4PTIzNjcgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTIgIHg9NjcyICAgeT03NzkgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MyAgeD03NDkgICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU0ICB4PTg4MyAgIHk9MCAgICAgd2lkdGg9MTIxICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTUgIHg9MTc0NCAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5rZXJuaW5ncyBjb3VudD0xNjg2XHJcbmtlcm5pbmcgZmlyc3Q9MzIgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NiAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODkgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD0yMjEgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTMgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTYgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg2ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTc0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTA3IHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE2IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTc0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTg1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIxOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjMgc2Vjb25kPTIyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zNCAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTY1ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5MyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTE5NyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0zOSAgc2Vjb25kPTExNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjYgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NjcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NjggIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc0ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjU1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc1ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTMgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTcxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTgxICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIxOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zOSAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODcgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTIxXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NiAgYW1vdW50PS0xNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODkgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTc5ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD02NSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTQgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTcgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDQgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD03NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIxIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjU1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTExIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0OSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NiAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAwIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTAzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMxIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMyIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjMzIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM0IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjM1IGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIwIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDUgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE3MyBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDEgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05NyAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjggYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMjkgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03NCAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg1ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTExIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQyIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMDMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMzUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xNzMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTY1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE5NyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDUgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTczIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk3ICBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk4ICBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTk5ICBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwNCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEwOSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMCBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTEyIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIwIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NCBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIwOCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTE5OSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTEgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTIgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTMgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMTQgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTcgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMTkgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNiBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyNyBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOCBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzQgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyOSBzZWNvbmQ9MzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMiBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzMyBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNCBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIzNSBzZWNvbmQ9MzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MSBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5gO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IHtnZXRUb3BMZXZlbEZvbGRlcn0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3RpY2snLCBoYW5kbGVUaWNrICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICBjb25zdCB0ZW1wTWF0cml4ID0gbmV3IFRIUkVFLk1hdHJpeDQoKTtcclxuICBjb25zdCB0UG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlVGljayggeyBpbnB1dCB9ID0ge30gKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCAgfHwgZm9sZGVyLmdyYWJEaXNhYmxlZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5wcmVzc2VkICYmIGlucHV0LnNlbGVjdGVkICYmIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgaWYoIGlucHV0LmludGVyYWN0aW9uLnByZXNzID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICAgICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24uc3ViKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7ICAgICAgICAgIFxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQucGFyZW50LndvcmxkVG9Mb2NhbChpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vTk9URTo6IGluIG9ydGhvZ3JhcGhpYyBtb2RlLCB3ZSd2ZSBhbHJlYWR5IG11dGF0ZWQgdGhlIHBvc2l0aW9uIG9mIGZvbGRlcnMsXHJcbiAgICAgICAgICAvL21lYW5pbmcgdGhlcmUgY291bGQgYmUgc29tZSBpbmNvbnNpc3RlbmN5IHdpdGggdGhlIG1vdXNlSW50ZXJzZWN0aW9uIHBvaW50IG5vIGxvbmdlciBiZWluZyByaWdodC4uLlxyXG4gICAgICAgICAgLy9JIHRob3VnaHQgdGhpcyB3YXMgcGxheWluZyBhIHJvbGUgaW4gYSBidWcgd2l0aCBvcnRob2dyYXBoaWMgZm9sZGVyIGxheW91dCwgYXBwZWFycyBvayBmb3Igbm93LlxyXG4gICAgICAgICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG5cclxuICAgICAgICAgIGZvbGRlci51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICBpZiggaGl0T2JqZWN0ID09PSBwYW5lbCApe1xyXG4gICAgICAgICAgaGl0T2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBoaXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZVBsYW5lLnNldEZyb21Ob3JtYWxBbmRDb3BsYW5hclBvaW50KCBpbnB1dC5tb3VzZUNhbWVyYS5nZXRXb3JsZERpcmVjdGlvbiggaW5wdXQubW91c2VQbGFuZS5ub3JtYWwgKSwgdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VQbGFuZSApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBpZiggaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgICBpZiggaGl0T2JqZWN0ICE9PSBwYW5lbCApe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQgPSBmb2xkZXI7XHJcblxyXG4gICAgICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuc2VsZWN0ZWQubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgICAgICBpbnB1dC5tb3VzZU9mZnNldC5jb3B5KCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApLnN1YiggdFBvc2l0aW9uICk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGZvbGRlci5ncmFiRGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgXHJcbiAgICAgIHRlbXBNYXRyaXguZ2V0SW52ZXJzZSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIHRlbXBNYXRyaXggKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG5cclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcbiAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgaW5wdXRPYmplY3QuYWRkKCBmb2xkZXIgKTsgXHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJiZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlucHV0Lm1vdXNlICl7XHJcbiAgICAgIGlucHV0LnNlbGVjdGVkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuXHJcbiAgICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvbGRlci5tYXRyaXgucHJlbXVsdGlwbHkoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiUmVsZWFzZWQnLCBmb2xkZXIgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsImV4cG9ydCBjb25zdCBncmFiQmFyID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUFnQ0FZQUFBQ2luWDZFQUFBQUNYQklXWE1BQUM0akFBQXVJd0Y0cFQ5MkFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQURza2FWUllkRmhOVERwamIyMHVZV1J2WW1VdWVHMXdBQUFBQUFBOFAzaHdZV05yWlhRZ1ltVm5hVzQ5SXUrN3Z5SWdhV1E5SWxjMVRUQk5jRU5sYUdsSWVuSmxVM3BPVkdONmEyTTVaQ0kvUGdvOGVEcDRiWEJ0WlhSaElIaHRiRzV6T25nOUltRmtiMkpsT201ek9tMWxkR0V2SWlCNE9uaHRjSFJyUFNKQlpHOWlaU0JZVFZBZ1EyOXlaU0ExTGpZdFl6RXpNaUEzT1M0eE5Ua3lPRFFzSURJd01UWXZNRFF2TVRrdE1UTTZNVE02TkRBZ0lDQWdJQ0FnSUNJK0NpQWdJRHh5WkdZNlVrUkdJSGh0Ykc1ek9uSmtaajBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOHdNaTh5TWkxeVpHWXRjM2x1ZEdGNExXNXpJeUkrQ2lBZ0lDQWdJRHh5WkdZNlJHVnpZM0pwY0hScGIyNGdjbVJtT21GaWIzVjBQU0lpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwd2FHOTBiM05vYjNBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZjR2h2ZEc5emFHOXdMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB6ZEVWMmREMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFJYWmxiblFqSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwMGFXWm1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNScFptWXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpYaHBaajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5bGVHbG1MekV1TUM4aVBnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBiM0pVYjI5c1BrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOTRiWEE2UTNKbFlYUnZjbFJ2YjJ3K0NpQWdJQ0FnSUNBZ0lEeDRiWEE2UTNKbFlYUmxSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPakkxT2pNeUxUQTNPakF3UEM5NGJYQTZRM0psWVhSbFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5iMlJwWm5sRVlYUmxQakl3TVRZdE1Ea3RNamhVTVRZNk16YzZNak10TURjNk1EQThMM2h0Y0RwTmIyUnBabmxFWVhSbFBnb2dJQ0FnSUNBZ0lDQThlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pNM09qSXpMVEEzT2pBd1BDOTRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBnb2dJQ0FnSUNBZ0lDQThaR002Wm05eWJXRjBQbWx0WVdkbEwzQnVaend2WkdNNlptOXliV0YwUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNHpQQzl3YUc5MGIzTm9iM0E2UTI5c2IzSk5iMlJsUGdvZ0lDQWdJQ0FnSUNBOGNHaHZkRzl6YUc5d09rbERRMUJ5YjJacGJHVStjMUpIUWlCSlJVTTJNVGsyTmkweUxqRThMM0JvYjNSdmMyaHZjRHBKUTBOUWNtOW1hV3hsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U1c1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmVHMXdUVTA2U1c1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tSdlkzVnRaVzUwU1VRK1lXUnZZbVU2Wkc5amFXUTZjR2h2ZEc5emFHOXdPamRsTnpkbVltWmpMVGcxWkRRdE1URmxOaTFoWXpobUxXRmpOelUwWldRMU9ETTNaand2ZUcxd1RVMDZSRzlqZFcxbGJuUkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pazl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDU0YlhBdVpHbGtPbU0xWm1NMFpHWXlMVGt4WTJNdFpUSTBNUzA0WTJWakxUTXpPREl5WTJRMVpXRmxPVHd2ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WkdZNmJHa2djbVJtT25CaGNuTmxWSGx3WlQwaVVtVnpiM1Z5WTJVaVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNllXTjBhVzl1UG1OeVpXRjBaV1E4TDNOMFJYWjBPbUZqZEdsdmJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEcGpOV1pqTkdSbU1pMDVNV05qTFdVeU5ERXRPR05sWXkwek16Z3lNbU5rTldWaFpUazhMM04wUlhaME9tbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcDNhR1Z1UGpJd01UWXRNRGt0TWpoVU1UWTZNalU2TXpJdE1EYzZNREE4TDNOMFJYWjBPbmRvWlc0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzl6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcHNhVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTI5dWRtVnlkR1ZrUEM5emRFVjJkRHBoWTNScGIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHdZWEpoYldWMFpYSnpQbVp5YjIwZ1lYQndiR2xqWVhScGIyNHZkbTVrTG1Ga2IySmxMbkJvYjNSdmMyaHZjQ0IwYnlCcGJXRm5aUzl3Ym1jOEwzTjBSWFowT25CaGNtRnRaWFJsY25NK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9teHBJSEprWmpwd1lYSnpaVlI1Y0dVOUlsSmxjMjkxY21ObElqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9tRmpkR2x2Ymo1ellYWmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHdPUzB5T0ZReE5qb3pOem95TXkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBqYUdGdVoyVmtQaTg4TDNOMFJYWjBPbU5vWVc1blpXUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNHhQQzlsZUdsbU9rTnZiRzl5VTNCaFkyVStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0Mk5Ed3ZaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNHpNand2WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW84UDNod1lXTnJaWFFnWlc1a1BTSjNJajgrT2hGN1J3QUFBQ0JqU0ZKTkFBQjZKUUFBZ0lNQUFQbi9BQUNBNlFBQWRUQUFBT3BnQUFBNm1BQUFGMitTWDhWR0FBQUFsRWxFUVZSNDJ1elpzUTNBSUF4RVVUdVRaSlJza3Q1TFJGbUNkVExhcFVLQ0Jpam8vRjBobjJTa0p4SUtYSkpscnNPU0Z3QUFBQUJBNnZLSTZPN0JVb3JYZFp1MS9WRVdFWmVaZmJONW0vWmFtamZLK0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNCZnVhU25hN2kvZGQxbWJYK1VTVHJON0o3TjI3VFgwcnhSeGduZ1pZaWZJQUFBQUpDNGZnQUFBUC8vQXdBdU1WUHcyMGh4Q3dBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQxJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAvLyB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjU7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwLCBpbWFnZS5oZWlnaHQgLyAxMDAwLCAxLCAxICk7XHJcblxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcbn0oKSk7XHJcblxyXG5leHBvcnQgY29uc3QgZG93bkFycm93ID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPakU0T2pJMUxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3hPRG95TlMwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEb3pNRFF5WWpJMFpTMWlNemMyTFdJME5HSXRPR0k0WXkxbFpURmpZMkl6WVdVMU1EVThMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZNekEwTW1JeU5HVXRZak0zTmkxaU5EUmlMVGhpT0dNdFpXVXhZMk5pTTJGbE5UQTFQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qTXdOREppTWpSbExXSXpOell0WWpRMFlpMDRZamhqTFdWbE1XTmpZak5oWlRVd05Ud3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejVVaWx6MEFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBSmRTVVJCVkhqYTdOM0xjY0pBRUlUaFJ1VzduY1VlVFFoa1FBaUlETWdJaFVJSWNGUVdKZ0o4OEZLbG92d0FyTjJkNlo0NWNaR0EvVDl2aVlmdHhlVnlRWXp1ZExFRUFTQW1BTVFFZ0JqSmVXbDF4eW1sTndBSEFNZHhISHZGeFU4cERRQ1dBRmJqT0g3STdBQ1QrTzhBTm5raEZPTnY4aG9jOHByd0E3aUpmeDBwQkpQNDEybUdvRE1RWHdyQk4vR2JJdWlNeEpkQThFdjhaZ2c2US9HcEVkd1J2d21DemxoOFNnUVB4SytPb01ZT01Ed1lud3JCRS9HbkNBYlhBUEtUWC8vakZKdVVVdTg0ZnY5ay9PdXNTLzhRZEFibDM4N2VJNEw4bVBjem5Lcm9UbGh5QjFqT2VDNVhDR2FNWDJJdHF3RllBVGlwSVNnUS81VFgwaGVBL042MkZJSlM4VXQrVGxEMElsQUpnY2Y0VlY0R0tpRHdHci9XK3dEVUNEekhyd2FBRllIMytGVUJzQ0ZnaUY4ZEFBc0NsdmhOQUhoSHdCUy9HUUN2Q05qaU53WGdEUUZqL09ZQXZDQmdqVzhDZ0hVRXpQSE5BTENLZ0QyK0tRRFdFQ2pFTndmQUNnS1YrQ1lCVEJEMEFNNjFFUlNJZndiUVc0eHZGa0JHY013N1FUVUVoZUt2OG5OQkFEQ01RREcrZVFDMUVLakdCNENGbDc4UmxGSmE0dXNYVEY3bmpKUnZ6MzVlRC9GZEFTaUlBS3J4M1FFb2hBQ3E4VjFjQTFTNkpwQ003eEtBUVFSdTQ3c0ZZQWlCNi9pdUFSaEE0RDYrZXdBTkVWREVwd0RRQUFGTmZCb0FGUkZReGFjQ1VBRUJYWHc2QUFVUlVNYW5CRkFBQVcxOFdnQXpJcUNPVHcxZ0JnVDA4ZWtCVEJEc25qaDB4eDVmQWtCR01BRFlQbkRJTmgrREFLQ0hRQ2ErRklBN0VVakZsd1B3QndLNStKSUFma0FnR1I5dytKV3dPZWY2eldEVitQSUFZdUxmeGdXQVdJSUFFQk1BWWdKQWpPUjhEZ0QrNk96Z3Y0dXk5Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbigpe1xyXG4gICAgY29uc3QgaCA9IDAuMztcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggLTAuMDA1LCAtMC4wMDQsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgY2hlY2ttYXJrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUJBQ0FZQUFBRFMxbjkvQUFBQUNYQklXWE1BQUN4TEFBQXNTd0dsUFphcEFBQTRLMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TXpJZ056a3VNVFU1TWpnMExDQXlNREUyTHpBMEx6RTVMVEV6T2pFek9qUXdJQ0FnSUNBZ0lDQWlQZ29nSUNBOGNtUm1PbEpFUmlCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaVBnb2dJQ0FnSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tUmpQU0pvZEhSd09pOHZjSFZ5YkM1dmNtY3ZaR012Wld4bGJXVnVkSE12TVM0eEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmMzUkZkblE5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVVYyWlc1MEl5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZkR2xtWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTBhV1ptTHpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVY0YVdZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZaWGhwWmk4eExqQXZJajRLSUNBZ0lDQWdJQ0FnUEhodGNEcERjbVZoZEc5eVZHOXZiRDVCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE5TNDFJQ2hYYVc1a2IzZHpLVHd2ZUcxd09rTnlaV0YwYjNKVWIyOXNQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwWlVSaGRHVStNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZlRzF3T2tOeVpXRjBaVVJoZEdVK0NpQWdJQ0FnSUNBZ0lEeDRiWEE2VFc5a2FXWjVSR0YwWlQ0eU1ERTJMVEV3TFRJd1ZESXhPak16T2pVekxUQTNPakF3UEM5NGJYQTZUVzlrYVdaNVJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEhodGNEcE5aWFJoWkdGMFlVUmhkR1UrTWpBeE5pMHhNQzB5TUZReU1Ub3pNem8xTXkwd056b3dNRHd2ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDRLSUNBZ0lDQWdJQ0FnUEdSak9tWnZjbTFoZEQ1cGJXRm5aUzl3Ym1jOEwyUmpPbVp2Y20xaGRENEtJQ0FnSUNBZ0lDQWdQSEJvYjNSdmMyaHZjRHBEYjJ4dmNrMXZaR1UrTXp3dmNHaHZkRzl6YUc5d09rTnZiRzl5VFc5a1pUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUStlRzF3TG1scFpEbzJPRGN4WVRrNVl5MHpOakU1TFRsa05HRXRPRGRrTmkwd1lXRTVZVFJpTldVNE1qYzhMM2h0Y0UxTk9rbHVjM1JoYm1ObFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcEViMk4xYldWdWRFbEVQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZUM0pwWjJsdVlXeEViMk4xYldWdWRFbEVQbmh0Y0M1a2FXUTZOamczTVdFNU9XTXRNell4T1MwNVpEUmhMVGczWkRZdE1HRmhPV0UwWWpWbE9ESTNQQzk0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUStDaUFnSUNBZ0lDQWdJRHg0YlhCTlRUcElhWE4wYjNKNVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y21SbU9sTmxjVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwc2FTQnlaR1k2Y0dGeWMyVlVlWEJsUFNKU1pYTnZkWEpqWlNJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwaFkzUnBiMjQrWTNKbFlYUmxaRHd2YzNSRmRuUTZZV04wYVc5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09qWTROekZoT1RsakxUTTJNVGt0T1dRMFlTMDROMlEyTFRCaFlUbGhOR0kxWlRneU56d3ZjM1JGZG5RNmFXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uZG9aVzQrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2YzNSRmRuUTZkMmhsYmo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRVdU5TQW9WMmx1Wkc5M2N5azhMM04wUlhaME9uTnZablIzWVhKbFFXZGxiblErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDQyTlRVek5Ud3ZaWGhwWmpwRGIyeHZjbE53WVdObFBnb2dJQ0FnSUNBZ0lDQThaWGhwWmpwUWFYaGxiRmhFYVcxbGJuTnBiMjQrTVRJNFBDOWxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZVR2w0Wld4WlJHbHRaVzV6YVc5dVBqWTBQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDancvZUhCaFkydGxkQ0JsYm1ROUluY2lQejV6OVJUM0FBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBVHRTVVJCVkhqYTdKemJiNVJGR01aLzJ4YkN2VmhBU0V4VWlJMTQ0dzBoUXRIRUdySGdJU3FnTjZLZ3ROWVdBYjB3MFdvMVhxcmJQYlNsb2tZU3hmTWhlbVgvQWE3d0dBVnE4WFRwMzBEWGk1bUptMGEydTl2My9iNloyWGx1ZHJPSGR3L1BNelBQKzc0elg2RldxeUdGZ1lFQkVscEdEL0FlY0N0d0IvRGJjbStZbTVzVCsvQ3U5UC9uaW02Z0NEd0NYQXQ4RFZ5WDVSZElBc2dQQmFBRWpOUTlkaVB3RmJBNUNTQitUQUZQL2Mvalc0SFBnTDRrZ0hneEN3dzFlUDVtNEdON213UVFFYm9zK1U4MDhkcXR3RWYyTmdrZ0VyYy8weVQ1RG4xMk9kaVNCQkErK2FVV3lYZllBbndEWEo4RUVHNnFOd2tNcnlER1pwc2kzcEFFRUI2cVYzRDdyYUlQK05LbWlra0FnZUF0NEloZ3ZKdnNUSkFFNERrS3dDbmdzRUxzczBrQS9xLzVzOEFoaGRqVHdFRnBkNW9nUzM1VmFlVFBBazhEaTBrQS9wSmZFbDd6SFU3U3VIS1lsZ0FQMXZ5eWtOdGZpaGt0OHBNQVpFa2FWb2hiVllxYkJDQ0lVOENUQ25GTHdKajJsMDhDV05tYS83YVMyNjhDeDZRTlh4S0FySG1lQmg1WFdrN0dzaUEvVHdHTVlmYS9oVXArbWZZYU84MjQvZUdzeU05TEFDOWdtaVB2QXpzREk3L0xyczFEU2lOL0tJOGZsQ1hHZ1ZmdC9WN2dETEFySUFGTWgrcjJmUkRBUzhERWtzYzJBaDhDL1IzczlzdkFhSjVUV2xia3YzeUY1OVpqZHIxczkzamExM0w3RmV2MmF6RUxZTHdCK1E1ck1iM3ViUjRhdnBOS2JuOGFlQWE0bkxlNnRRM2ZSSk92N1FXKzhHZ202TEVqVktPeE00TTVEM0E1N3grcEtZQVg2d3hmczlnQWZBTHM4SUI4cmNhT0t4dlhmRkM1bGdER2dWZmFmSzh6aHJ0eS9FKzBYSGtsTDdlZnBRQW1XcGoybHhQQmJUbjhKN1BvMWZaSDhRelNBbmpOam40SnJNZWNqc21xV0ZRQTNsVnkreVhyOW9sZEFIY0t4N3NhK0R3RFk5aGo4L3lEaXFuZVlpY0k0RkhnUitHWWE1V3pBODNHemhSdzFGZnlOUVR3QzNDUHZaWEVPdUJUekVVVUpMRXFnMVRQVy9LMVRPQ2Z3Q0J3VVRqdU5jaVdqYnN4WlZpTlZDKzMycjR2YWVBZndGM0FnbkRjVFZZRXR3dU5VQTN5eTVqZHUzU3lBQUIrQjNZckxBY2JCT29FN3loTis1TjJ6U2NKd0dBZWVBRDRUamh1TDZhQjFLb242TGJrUDZZMDhvL2pTWVhQRndFQW5BY2VWaERCVlMxbUI2NnhvMEgrRktheHMwaGd5S29kZkFGNEVQaEpxVTZ3M0V5d3locXpRMHJrajRSSWZwWUNBTGdFN0xFemdpUmN4YkMvd2Npdm9GUGVkZVFIaTZ5M2hQMWxqZUc4VW9xNE5Ec29ZSW84V2p0NWdpWS9Ed0hVcDRpL0ttUUhaK3BFVU1EczVORncrMFV5T0xRUnF3RGNjbkF2OEwxdzNIWEFhWnNpdnE1aytJckFDU0pCbnFlRDU0RUR3QWZBTFlKeE53SGZLcG15c2lWL01SWUI1SDB5NkFLd0gvaEJPTzVxWUkyQzRUc2FFL2srQ0FETTFiSDNJbDh4bEVUVkdyNGFrY0dYczRGL0EzZmJHY0UzVkFpb3RoK3FBTUIwRVhkN0pvSkpQTnpHRmFzQXdEU1FCcEhmVk5LdTJ6OUc1UER4ZVBnQzhCQndMdWVSZnlMR05UOEVBWURaVEhJQStRWlNzMnYrOGRqY2ZtZ0NjSFdDKzVGdklDM245a2M3aFh6ZkJlQ000UjdreThZZDUvWkRGUUQ4MTBDNnFQZ1owYnY5a0FWUW55SnFGSXZleEd6bUlBbkFiMXdDN2hNMmhrWGdXVG9Zb1YwbHpEV1FKRkxFNkJvN25TQUFseUx1WTJVTnBBb1pYb290Q1VBZUM1Z0cwczl0a2o5S1F0QUNBTk5BR3FTMVBZYWxSSDQ4QW5BcFlyUGJ5NG9FZG1nakNhRDVGSEV2amJlWHZZRXA3eVpFS0FEbkNmWmJFZndEUEk4NUwrRElmNDRPYU95MGczOEhBTS9lN2d1SVJ4OTRBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRUVTVVJCVkdpQjdkaEJEb013REVSUjdqVGlKQ1B1ZjVXdW1waFZ4WHlrVkpHeklwSjVjZ3NrZG80TGpxT0JyUUE5SEEwMDBNRCt3UFZqdkFXY0ZCanpFQmdKcE1DY1o4Qk1JQVRLUEFKS0FobFE1d253VGNBcE1DNURZQ1NRQXZlcjU4Qk1JQVRLRFJGUUVzaUFHazhBVTBBUU1BVUVBVk5BRURBRkJBRlRRQkF3QlFRQlUwQVFNQVVFQVZOQUVEQUZCQUZUUUJEd2NnRC9CUDRuNHNmSVh5VDhLdk9QQ1gvT2ZFSEJTeHBmVlBHeXpqY1d2TFh4elJWdjc3ekF3Q1VPTDdKd21jY0xUVnpxOG1JN0wvZlBra0lFNEphSE4xMjQ3ZU9OSjI1OWVmTjlpMWx6QUZHREZoM0NsS2hWQjFFemJObGgzSWo3d3hQTkJocG9ZRFdRamdhMkFENVMvQ3lJdmJtcTdnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NCdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHVuZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFUFNVUkJWR2lCN2RneENzUXdEQVRBL0Vub0pVTC8vOHBWc1dXbE9Md0xVVEJ5RmZiRXNOYzRkaTRuMTlYQVVZQnNyZ1lhYU9COHdQOHNHakFXY0Jvd0ZuQWFNQlp3R2pBV2NCalFVQUVDSkF4alFLaUFBZko4MmdSbUJSQ1lGVkJnVkVDQngrL2JnS1pzRzhnRCswQ3FzQStrQ1FCWUt3REFPb0lBU3dVRVdHWWdJRmFBZ0RpRUFhRUNCb1FwRUpnVlFHQ09vY0NvZ0FMd2p2U29BQVAzSUE0b0N3Z05LQXNJRFdnNXdQNEZaUUVuQVdVQkp3RmxnVHNyMjFCR1ZyV3B6cXpveFJLeW1wZHJ6RW9PR0V0V2NjaGFzNEtEWnNyZVAyem43UFVMeDNnRWdWR2c2dG8zQ3hSZGZVT0JvdXQvS0ZENkNjUllRRWpBV0VCSXdGZ2d6MzN3aTJZRERUUlFEYUNyZ1NPQUg4SDhLcWdnWXBBVUFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ1J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcbiIsIi8qKiBcclxuICogQmlnIGJ1dHRvbiB3aXRoIGFuIGltYWdlIG9uICh3aGljaCBtaWdodCBjb21lIGZyb20gYSBmaWxlIG9yIGV4aXN0aW5nIHRleHR1cmUsXHJcbiAqIHRoZSB0ZXh0dXJlIG1pZ2h0IGJlIGZyb20gYSBSZW5kZXJUYXJnZXQuLi4pLlxyXG4gKiBcclxuICogQWxzbyB1c2FibGUgYXMgYW4gJ3h5IGNvbnRyb2xsZXInIHZpYSBhZGRYWUNvbnRyb2xsZXIgbWV0aG9kLlxyXG4gKiBcclxuICogQVBJIHN1YmplY3QgdG8gY2hhbmdlLlxyXG4gKiBcclxuICogSSdkIHB1dCB0aGlzIG1vcmUgc2VwYXJhdGUgZnJvbSB0aGUgZGF0Z3VpIG1vZHVsZXMgYnV0IG5lZWQgdG8gdGhpbmsgYSBsaXR0bGVcclxuICogYml0IGFib3V0IGhvdyB0byBzdHJ1Y3R1cmUgdGhhdCBldGMuICBWZXJ5IHVuLURSWSwgYnV0IEknbSBzdGFydGluZyBieSBqdXN0XHJcbiAqIGNvcHlpbmcgZXhpc3RpbmcgYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBTdWJkaXZpc2lvbk1vZGlmaWVyIGZyb20gJy4uL3RoaXJkcGFydHkvU3ViZGl2aXNpb25Nb2RpZmllcic7XHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7aXNDb250cm9sbGVyVmlzaWJsZX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBmdW5jID0gdW5kZWZpbmVkLFxyXG4gIHByZXNzaW5nID0gdW5kZWZpbmVkLFxyXG4gIGltYWdlID0gXCJ0ZXh0dXJlcy9zcG90bGlnaHQuanBnXCIsIC8vVE9ETyBiZXR0ZXIgZGVmYXVsdFxyXG4gIHdpZGUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY2hhbmdlQ29sb3JPbkhvdmVyID0gdHJ1ZSwgLy9xdWljayBoYWNrOiBjb2xvciBwaWNrZXIgd2FudHMgdGhpcyB0byBiZSBmYWxzZVxyXG4gIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAgLy9YWFggbWFnaWMgbnVtYmVycy4uLlxyXG4gIGlmICghaGVpZ2h0KSBoZWlnaHQgPSBMYXlvdXQuUEFORUxfV0lEVEggICogKHdpZGUgPyAwLjk0IDogMC4yNSk7XHJcbiAgXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAod2lkZSA/IDAuOTQgOiAwLjI1KSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gYnV0dG9uRGVwdGg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgMSwgMSApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTsgIC8vIHJlYWxsb3dlZCBzanB0XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBvYmouaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgb2JqLm5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IG9iai5ob3ZlckNvbCA6IG9iai5ub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygpICk7XHJcbiAgICAvL2cudmVydCBpY2VzLnB1c2goIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwwKSApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgMjggQXByaWwgMjAyMiwgZ2VuZXJhbGx5IHByZXR0eSBiYWQgcHJhY3RpY2VcclxuICAgICAgICAvLyBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIC8vaWYgYW55IGlucHV0LmludGVyYWN0aW9ucyBoYXZlIGhpdFZvbHVtZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHNvbWV0aGluZyBub3QgY3VycmVudGx5IGluIGhpdHNjYW5PYmplY3RzLFxyXG4gIC8vdGhhdCBpbnRlcmFjdGlvbiBzaG91bGQgYmUgY2FuY2VsbGVkLiBFc3BlY2lhbGx5IHByb2JsZW1hdGljIHdpdGggZS5nLiBwcmVzc2luZyAncmVhdHRhY2gnIHdoZW4gdGhlIHBhcmVudCBpcyBjbG9zZWQuXHJcbiAgZnVuY3Rpb24gY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9ucywgaGl0c2Nhbk9iamVjdHMgKSB7XHJcbiAgICBbJ3ByZXNzJywgJ2dyaXAnLCAnaG92ZXInXS5mb3JFYWNoKCBpbnRlcmFjdGlvbk5hbWUgPT4ge1xyXG4gICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdO1xyXG4gICAgICBpZiAoaW50ZXJhY3Rpb24gJiYgaGl0c2Nhbk9iamVjdHMuaW5kZXhPZihpbnRlcmFjdGlvbi5oaXRWb2x1bWUpIDwgMCkge1xyXG4gICAgICAgIGludGVyYWN0aW9uc1tpbnRlcmFjdGlvbk5hbWVdID0gdW5kZWZpbmVkOyBcclxuICAgICAgICAvL29ubHkgYmUgcG9saXRlIHRvIGluZm9ybSB0aGUgaW50ZXJhY3Rpb24gYXMgd2VsbDsgdXBkYXRlIHdpdGggZW1wdHkgaW5wdXRPYmplY3RzIGFyZyBzaG91bGQgZG8gdGhlIHRyaWNrLlxyXG4gICAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggW10gKTtcclxuICAgICAgfSBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlTGFzZXIoIGxhc2VyLCBwb2ludCApe1xyXG4gICAgY29uc3QgcHAgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICBwcFszXSA9IHBvaW50Lng7XHJcbiAgICBwcFs0XSA9IHBvaW50Lnk7XHJcbiAgICBwcFs1XSA9IHBvaW50Lno7XHJcbiAgICBwcC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnQgaWNlc1sgMSBdLmNvcHkoIHBvaW50ICk7XHJcbiAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICAvL2xhc2VyLmdlb21ldHJ5LnZlcnRpY2VzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGlmKCBpbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgY29uc3QgZmlyc3RIaXQgPSBpbnRlcnNlY3Rpb25zWyAwIF07XHJcbiAgICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgY3Vyc29yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwYXJzZU1vdXNlSW50ZXJzZWN0aW9uKCBpbnRlcnNlY3Rpb24sIGxhc2VyLCBjdXJzb3IgKXtcclxuICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBpbnRlcnNlY3Rpb24gKTtcclxuICAgIHVwZGF0ZUxhc2VyKCBsYXNlciwgY3Vyc29yLnBvc2l0aW9uICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBjYW1lcmEgKXtcclxuICAgIHJheWNhc3Quc2V0RnJvbUNhbWVyYSggbW91c2UsIGNhbWVyYSApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk9iamVjdHMgPSBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKTtcclxuICAgIHJldHVybiByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gbW91c2VJbnRlcnNlY3RzUGxhbmUoIHJheWNhc3QsIHYsIHBsYW5lICl7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIHBsYW5lLCB2ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLG1vdXNlLG1vdXNlQ2FtZXJhLCBpbnRlcmFjdGlvbn0gPSB7fSApe1xyXG4gICAgY2hlY2tDYW5jZWxsZWRJbnRlcmFjdGlvbnMoIGludGVyYWN0aW9uLCBoaXRzY2FuT2JqZWN0cyApO1xyXG4gICAgbGV0IGludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICBpZiAobW91c2VDYW1lcmEpIHtcclxuICAgICAgaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIG1vdXNlQ2FtZXJhICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbnRlcnNlY3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCk7XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgbWV0aG9kcy5cclxuICAqL1xyXG5cclxuICBjb25zdCBwdWJsaWNJbnRlcmZhY2UgPSB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBhZGRJbnB1dE9iamVjdCxcclxuICAgIGVuYWJsZU1vdXNlLFxyXG4gICAgZGlzYWJsZU1vdXNlLFxyXG4gICAgdGV4dENyZWF0b3IsIC8vY2hlYXAgd2F5IG9mIGV4cG9zaW5nIHRoaXMgc28gaXQgY2FuIGJlIHVzZWQgYnkgaG9zdCBhcHBsaWNhdGlvbi5cclxuICAgIGdsb2JhbEV2ZW50cyxcclxuICAgIGNsZWFyQWxsLFxyXG4gICAgdXBkYXRlXHJcbiAgfTtcclxuICAvLyBhbGxvdyB1c2VyIHRvIGNhbGwgXCJkYXQuR1VJVlIuYXV0b1VwZGF0ZSA9IGZhbHNlXCIgYW5kIHRoZW4gdXBkYXRlIG1hbnVhbGx5IHdpdGhcclxuICAvLyBcImRhdC5HVUlWUi51cGRhdGUoKVwiXHJcbiAgLy8gZXhwb3NlIGF1dG9VcGRhdGUgYXMgcHJvcGVydHkgc28gdGhhdCB0aGUgcmVmZXJlbmNlIHdpbGwgYmUgcHJvcGVybHkgZWZmZWN0ZWRcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIHB1YmxpY0ludGVyZmFjZSwgJ2F1dG9VcGRhdGUnLCB7IGdldDogKCk9PiBhdXRvVXBkYXRlLCBzZXQ6IHYgPT4gYXV0b1VwZGF0ZSA9IHYgfSApO1xyXG4gIHJldHVybiBwdWJsaWNJbnRlcmZhY2U7XHJcblxyXG59KCkpO1xyXG5cclxuaWYoIHdpbmRvdyApe1xyXG4gIGlmKCB3aW5kb3cuZGF0ID09PSB1bmRlZmluZWQgKXtcclxuICAgIHdpbmRvdy5kYXQgPSB7fTtcclxuICB9XHJcblxyXG4gIHdpbmRvdy5kYXQuR1VJVlIgPSBHVUlWUjtcclxufVxyXG5cclxuaWYoIG1vZHVsZSApe1xyXG4gIG1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgZGF0OiBHVUlWUlxyXG4gIH07XHJcbn1cclxuXHJcbmlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xyXG4gIGRlZmluZShbXSwgR1VJVlIpO1xyXG59XHJcblxyXG4vKlxyXG4gIEJ1bmNoIG9mIHN0YXRlLWxlc3MgdXRpbGl0eSBmdW5jdGlvbnMuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBpc051bWJlcihuKSB7XHJcbiAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KG4pKSAmJiBpc0Zpbml0ZShuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNCb29sZWFuKG4pe1xyXG4gIHJldHVybiB0eXBlb2YgbiA9PT0gJ2Jvb2xlYW4nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjaykge1xyXG4gIGNvbnN0IGdldFR5cGUgPSB7fTtcclxuICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xyXG59XHJcblxyXG4vLyAgb25seSB7fSBvYmplY3RzIG5vdCBhcnJheXNcclxuLy8gICAgICAgICAgICAgICAgICAgIHdoaWNoIGFyZSB0ZWNobmljYWxseSBvYmplY3RzIGJ1dCB5b3UncmUganVzdCBiZWluZyBwZWRhbnRpY1xyXG5mdW5jdGlvbiBpc09iamVjdCAoaXRlbSkge1xyXG4gIHJldHVybiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pICYmIGl0ZW0gIT09IG51bGwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0FycmF5KCBvICl7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoIG8gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNTdHJpbmcoIG8gKXtcclxuICByZXR1cm4gdHlwZW9mIG8gPT09ICdzdHJpbmcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0NvbG9yKCBvICl7XHJcbiAgaWYgKHR5cGVvZiBvICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBvLmlzQ29sb3IgPyB0cnVlIDogZmFsc2U7XHJcbn1cclxuXHJcblxyXG5cclxuLypcclxuICBDb250cm9sbGVyLXNwZWNpZmljIHN1cHBvcnQuXHJcbiovXHJcblxyXG5mdW5jdGlvbiBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBjb250cm9sbGVyLCBwcmVzc2VkLCBncmlwcGVkICl7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcmRvd24nLCAoKT0+cHJlc3NlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAndHJpZ2dlcnVwJywgKCk9PnByZXNzZWQoIGZhbHNlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc2Rvd24nLCAoKT0+Z3JpcHBlZCggdHJ1ZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHN1cCcsICgpPT5ncmlwcGVkKCBmYWxzZSApICk7XHJcblxyXG4gIGNvbnN0IGdhbWVwYWQgPSBjb250cm9sbGVyLmdldEdhbWVwYWQoKTtcclxuICBmdW5jdGlvbiB2aWJyYXRlKCB0LCBhICl7XHJcbiAgICBpZiggZ2FtZXBhZCAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycyAmJiBnYW1lcGFkLmhhcHRpY0FjdHVhdG9ycy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzWyAwIF0ucHVsc2UoIHQsIGEgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NUYXAoKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoMS1hLCAwLjUpLCAxMCwgMjAgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhcHRpY3NFY2hvKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDQsIDEuMCAqICgxLWEpKSwgMTAwLCA0ICk7XHJcbiAgfVxyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdvbkNvbnRyb2xsZXJIZWxkJywgZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICB2aWJyYXRlKCAwLjMsIDAuMyApO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiYmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYlJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3Bpbm5lZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ3BpblJlbGVhc2VkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NFY2hvKCk7XHJcbiAgfSk7XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldEludGVydmFsVGltZXMoIGNiLCBkZWxheSwgdGltZXMgKXtcclxuICBsZXQgeCA9IDA7XHJcbiAgbGV0IGlkID0gc2V0SW50ZXJ2YWwoIGZ1bmN0aW9uKCl7XHJcbiAgICBjYiggeCwgdGltZXMsIHgvdGltZXMgKTtcclxuICAgIHgrKztcclxuICAgIGlmKCB4Pj10aW1lcyApe1xyXG4gICAgICBjbGVhckludGVydmFsKCBpZCApO1xyXG4gICAgfVxyXG4gIH0sIGRlbGF5ICk7XHJcbiAgcmV0dXJuIGlkO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBnbG9iYWxFdmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdFZvbHVtZSApe1xyXG4gIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG4gIGxldCBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gIGxldCBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gIGxldCBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgdFZlY3RvciA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgYXZhaWxhYmxlSW5wdXRzID0gW107XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSggaW5wdXRPYmplY3RzICl7XHJcblxyXG4gICAgYW55SG92ZXIgPSBmYWxzZTtcclxuICAgIGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgICBhbnlBY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIGlucHV0ICl7XHJcblxyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmluZGV4T2YoIGlucHV0ICkgPCAwICl7XHJcbiAgICAgICAgYXZhaWxhYmxlSW5wdXRzLnB1c2goIGlucHV0ICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHsgaGl0T2JqZWN0LCBoaXRQb2ludCB9ID0gZXh0cmFjdEhpdCggaW5wdXQgKTtcclxuXHJcbiAgICAgIHZhciBob3ZlciA9IGhpdFZvbHVtZSA9PT0gaGl0T2JqZWN0O1xyXG4gICAgICBhbnlIb3ZlciA9IGFueUhvdmVyIHx8IGhvdmVyO1xyXG5cclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ3ByZXNzZWQnLFxyXG4gICAgICAgIGJ1dHRvbkNsaWNrTmFtZTogJ2NsaWNrZWQnLCAvL21heWJlIG5vdCBzdGFibGUgcGFydCBvZiBBUEkuLi5cclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdwcmVzcycsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvblByZXNzZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAncHJlc3NpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZWQnLFxyXG4gICAgICAgICAvL2ludmVudGluZyBhICdob3ZlcmluZycgZXZlbnQgdGhhdCBvbmx5IGFwcGxpZXMgdG8gJ3ByZXNzZWQnIGJ1dHRvbi4uLlxyXG4gICAgICAgICAvL3RoaXMgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc3RhYmxlIGludGVyZmFjZSwgYnV0IEkgd2FudHMgaXQgbW9yZSB0aGFuIElcclxuICAgICAgICAgLy93YW50IHRvIG1ha2Ugc29tZXRoaW5nIHRvdGFsbHkgY29oZXJlbnQgYW5kIHJvYnVzdCBqdXN0IG5vdy5cclxuICAgICAgICBob3Zlck5hbWU6ICdob3ZlcmluZydcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhvdmVyLFxyXG4gICAgICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICAgICAgYnV0dG9uTmFtZTogJ2dyaXBwZWQnLFxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ2dyaXAnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25HcmlwcGVkJyxcclxuICAgICAgICBob2xkTmFtZTogJ2dyaXBwaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VHcmlwJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCAndGljaycsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9ICk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZXh0cmFjdEhpdCggaW5wdXQgKXtcclxuICAgIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA8PSAwICl7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IHRWZWN0b3Iuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5jdXJzb3IubWF0cml4V29ybGQgKS5jbG9uZSgpLCAvL3h4eDogZ2FyYmFnZT9cclxuICAgICAgICBoaXRPYmplY3Q6IHVuZGVmaW5lZCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaGl0UG9pbnQ6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5wb2ludCxcclxuICAgICAgICBoaXRPYmplY3Q6IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3RcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICBpbnB1dCwgaG92ZXIsXHJcbiAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgYnV0dG9uTmFtZSwgYnV0dG9uQ2xpY2tOYW1lLCBpbnRlcmFjdGlvbk5hbWUsIGRvd25OYW1lLCBob2xkTmFtZSwgdXBOYW1lLCBob3Zlck5hbWVcclxuICB9ID0ge30gKXtcclxuXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBoaXRPYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAvL2NsaWNrZWQgYW5kIGRpZG4ndCBoaXQgYW55IEdVSSBvYmplY3QuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaG92ZXJpbmcgYW5kIGJ1dHRvbiBOT1QgZG93blxyXG4gICAgaWYoIGhvdmVyTmFtZSAmJiBob3ZlciAmJiBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSApIHtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBldmVudHMuZW1pdCggaG92ZXJOYW1lLCBwYXlsb2FkICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGhvdmVyaW5nIGFuZCBidXR0b24gZG93biBidXQgbm8gaW50ZXJhY3Rpb25zIGFjdGl2ZSB5ZXRcclxuICAgIC8vLS0tPiBzaG91bGQgYmUgXiBidXR0b24gJ2NsaWNrZWQnLi4uIGllIG9ubHkgaWYgaXQgY2FtZSBkb3duIHNpbmNlIHRoZSBsYXN0IHVwZGF0ZS5cclxuICAgIC8vc28sIHNob3VsZCB3ZSBwYXNzICdidXR0b25DbGlja05hbWUnIGFzIGFuIGFyZ3VtZW50IChhbmQgdXNlIGJ1dHRvbk5hbWUgaWYgbm90IHByb3ZpZGVkKT9cclxuICAgIC8vLS0tPj4+PiBYWFg6IGlzIHRoaXMgXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXC8vLy8vLy8vLy8vLyB3b3JraW5nIHdpdGggVml2ZSBjb250cm9sbGVycz8gXHJcbiAgICBpZiggaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbkNsaWNrTmFtZSB8fCBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSB1bmRlZmluZWQgKXtcclxuXHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vZmxhZyB0aGF0IHdoYXQgd2UndmUgY2xpY2tlZCAqaXNuJ3QqIHBhcnQgb2YgYSBtb2RhbCBlZGl0b3JcclxuICAgICAgaWYgKCFoaXRPYmplY3QudXNlckRhdGEucGFydE9mTW9kYWwpIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuXHJcbiAgICAgIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KTtcclxuICAgICAgXHJcbiAgICAgIC8vZW1pdCBnbG9iYWwgY2xpY2sgZXZlbnQgYXMgd2VsbC4uLlxyXG4gICAgICBnbG9iYWxFdmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBpZiggcGF5bG9hZC5sb2NrZWQgKXtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IGludGVyYWN0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIGFueUFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBzdGlsbCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoIGhvbGROYW1lLCBwYXlsb2FkICk7XHJcblxyXG4gICAgICBhbnlQcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBpbnB1dC5ldmVudHMuZW1pdCggJ29uQ29udHJvbGxlckhlbGQnICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGJ1dHRvbiBub3QgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPSB1bmRlZmluZWQ7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gdW5kZWZpbmVkO1xyXG4gICAgICBldmVudHMuZW1pdCggdXBOYW1lLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHByb21vdGVaT3JkZXIoaGl0T2JqZWN0KSB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihoaXRPYmplY3QpO1xyXG4gICAgdG9wRm9sZGVyLnByb21vdGVaT3JkZXIoKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGlzTWFpbkhvdmVyKCl7XHJcblxyXG4gICAgbGV0IG5vTWFpbkhvdmVyID0gdHJ1ZTtcclxuICAgIGZvciggbGV0IGk9MDsgaTxhdmFpbGFibGVJbnB1dHMubGVuZ3RoOyBpKysgKXtcclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0c1sgaSBdLmludGVyYWN0aW9uLmhvdmVyICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgICBub01haW5Ib3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIG5vTWFpbkhvdmVyICl7XHJcbiAgICAgIHJldHVybiBhbnlIb3ZlcjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggYXZhaWxhYmxlSW5wdXRzLmZpbHRlciggZnVuY3Rpb24oIGlucHV0ICl7XHJcbiAgICAgIHJldHVybiBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9PT0gaW50ZXJhY3Rpb247XHJcbiAgICB9KS5sZW5ndGggPiAwICl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IHtcclxuICAgIGhvdmVyaW5nOiBpc01haW5Ib3ZlcixcclxuICAgIHByZXNzaW5nOiAoKT0+YW55UHJlc3NpbmcsXHJcbiAgICB1cGRhdGUsXHJcbiAgICBldmVudHMsXHJcbiAgICBoaXRWb2x1bWVcclxuICB9O1xyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn1cclxuXHJcbiIsIi8qKlxyXG4gKiBcclxuICogVE9ETzogY3Vyc29ycy4uLlxyXG4gKiBNYXliZSBzb21ldGhpbmcgbGlrZSBtb2JpbGUgaW5wdXQgd2hlcmUgeW91IHN3aXRjaCBiZXR3ZWVuIGxldHRlcnMgJiBudW1iZXJzIC8gc3ltYm9sc1xyXG4gKiBcclxuICogU29tZXRoaW5nIGxpa2UgYSBzcGxpdCBrZXlib2FyZCBhbGEgaHR0cHM6Ly9tZWRpdW0uY29tL2Fhcm9ubi92ci10ZXh0LWlucHV0LXNwbGl0LWtleWJvYXJkLWU1YmYzZmQ4N2E0Y1xyXG4gKiBtaWdodCBiZSBiZXR0ZXIuXHJcbiAqIFxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b25HcmlkIGZyb20gJy4vaW1hZ2VidXR0b25ncmlkJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlS2V5Ym9hcmQoIHsgXHJcbiAgICBrZXlMaXN0ZW5lcixcclxuICAgIHRleHRDcmVhdG9yXHJcbn0gPSB7fSkge1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGNvbnN0IG9mZnNldFRyYW5zZm9ybSA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgZ3JvdXAuYWRkKG9mZnNldFRyYW5zZm9ybSk7XHJcblxyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGV2ZW50cy5vbigna2V5RG93bicsIGtleUxpc3RlbmVyKTtcclxuICAgIFxyXG4gICAgY29uc3QgbG93ZXJDaGFycyA9IFwiMTIzNDU2Nzg5MC09cXdlcnR5dWlvcFtdYXNkZmdoamtsOycjXFxcXHp4Y3Zibm0sLi8gXCIuc3BsaXQoJycpO1xyXG4gICAgbGV0IG9iamVjdHMgPSBsb3dlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGxvd2VyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKGxvd2VyS2V5cyk7XHJcblxyXG4gICAgY29uc3QgdXBwZXJDaGFycyA9IFwiIVxcXCLCoyQlXiYqKClfK1FXRVJUWVVJT1B7fUFTREZHSEpLTDpAfnxaWENWQk5NPD4/IFwiLnNwbGl0KCcnKTtcclxuICAgIG9iamVjdHMgPSB1cHBlckNoYXJzLm1hcChrID0+IHtcclxuICAgICAgICByZXR1cm4geyBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsIGspLCB0ZXh0OiBrIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHVwcGVyS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDEyfSk7XHJcbiAgICB1cHBlcktleXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZCh1cHBlcktleXMpO1xyXG5cclxuICAgIGxldCBzaGlmdCA9IGZhbHNlO1xyXG4gICAgZnVuY3Rpb24gc2hpZnRUb2dnbGUoKSB7XHJcbiAgICAgICAgc2hpZnQgPSAhc2hpZnQ7XHJcbiAgICAgICAgbG93ZXJLZXlzLnZpc2libGUgPSAhc2hpZnQ7XHJcbiAgICAgICAgdXBwZXJLZXlzLnZpc2libGUgPSBzaGlmdDtcclxuICAgfVxyXG5cclxuICAgY29uc3Qgc3BhY2VCYXIgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoeyB0ZXh0Q3JlYXRvciwgY29sdW1uczogMSwgcm93SGVpZ2h0OiAwLjEsIG9iamVjdHM6IFtcclxuICAgICAgIHtmdW5jOiAoKT0+ZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnICcpLCB0ZXh0OiAnc3BhY2UnfVxyXG4gICAgXX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGFjZUJhcik7XHJcbiAgICB2YXIgeSA9IHNwYWNlQmFyLnBvc2l0aW9uLnkgPSAtMC41ICogKGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyk7XHJcbiAgICBcclxuICAgIG9iamVjdHMgPSBbXHJcbiAgICAgICAgeyB0ZXh0OiBcInNoaWZ0XCIsIGZ1bmM6IHNoaWZ0VG9nZ2xlIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImJhY2tzcGFjZVwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXGInKSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJlbnRlclwiLCBmdW5jOiAoKSA9PiBldmVudHMuZW1pdCgna2V5RG93bicsICdcXG4nKSB9XHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc3BlY2lhbEtleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAzLCByb3dIZWlnaHQ6IDAuMX0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChzcGVjaWFsS2V5cyk7XHJcbiAgICBzcGVjaWFsS2V5cy5wb3NpdGlvbi55ID0geS0wLjUgKiAoc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmcpO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGxvd2VyS2V5cy5zcGFjaW5nICsgc3BhY2VCYXIuc3BhY2luZyArIHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcbiAgICAvL3RoaXMgbG9va3MgcmlnaHQsIG11c3QgYWRtaXQgSSBoYXZlbid0IHRob3VnaHQgdGhyb3VnaCBleGFjdGx5IHdoeSBpdCBzaG91bGQgYmUuXHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0ucG9zaXRpb24ueSA9IHNwZWNpYWxLZXlzLnNwYWNpbmc7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaGl0c2NhbicsIHtcclxuICAgICAgICBnZXQ6ICgpID0+IFtcclxuICAgICAgICAgICAgc3BlY2lhbEtleXMuaGl0c2Nhbiwgc3BhY2VCYXIuaGl0c2Nhbiwgc2hpZnQgPyB1cHBlcktleXMuaGl0c2NhbiA6IGxvd2VyS2V5cy5oaXRzY2FuXHJcbiAgICAgICAgXS5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pXHJcbiAgICB9KTtcclxuXHJcbiAgICBzcGFjZUJhci5mb2xkZXIgPSB1cHBlcktleXMuZm9sZGVyID0gbG93ZXJLZXlzLmZvbGRlciA9IHNwZWNpYWxLZXlzLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IChpbnB1dHMpID0+IHtcclxuICAgICAgICBzcGVjaWFsS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgbG93ZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBzcGFjZUJhci51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgdXBwZXJLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFsaWduTGVmdCggb2JqICl7XHJcbiAgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLk1lc2ggKXtcclxuICAgIG9iai5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmdlb21ldHJ5LmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIGVsc2UgaWYoIG9iaiBpbnN0YW5jZW9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5ICl7XHJcbiAgICBvYmouY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgdW5pcXVlTWF0ZXJpYWwgKXtcclxuICBjb25zdCBtYXRlcmlhbCA9IHVuaXF1ZU1hdGVyaWFsID8gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweGZmZmZmZn0pIDogU2hhcmVkTWF0ZXJpYWxzLlBBTkVMO1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggd2lkdGgsIGhlaWdodCwgZGVwdGggKSwgbWF0ZXJpYWwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoICogMC41LCAwLCAwICk7XHJcblxyXG4gIGlmKCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcblxyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcblxyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplUGFuZWwocGFuZWwsIHdpZHRoLCBoZWlnaHQsIGRlcHRoKSB7XHJcbiAgcGFuZWwuZ2VvbWV0cnkuc2NhbGUod2lkdGgvcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoLCBoZWlnaHQvcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCwgZGVwdGgvcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoKTtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIGNvbG9yICl7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDT05UUk9MTEVSX0lEX1dJRFRILCBoZWlnaHQsIENPTlRST0xMRVJfSURfREVQVEggKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCBDT05UUk9MTEVSX0lEX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBjb2xvciApO1xyXG4gIHJldHVybiBwYW5lbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURvd25BcnJvdygpe1xyXG4gIGNvbnN0IHcgPSAwLjAwOTY7XHJcbiAgY29uc3QgaCA9IDAuMDE2O1xyXG4gIGNvbnN0IHNoID0gbmV3IFRIUkVFLlNoYXBlKCk7XHJcbiAgc2gubW92ZVRvKDAsMCk7XHJcbiAgc2gubGluZVRvKC13LGgpO1xyXG4gIHNoLmxpbmVUbyh3LGgpO1xyXG4gIHNoLmxpbmVUbygwLDApO1xyXG5cclxuICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuU2hhcGVHZW9tZXRyeSggc2ggKTtcclxuICBnZW8udHJhbnNsYXRlKCAwLCAtaCAqIDAuNSwgMCApO1xyXG5cclxuICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTF9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0hFSUdIVCA9IDAuMDg7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9TUEFDSU5HID0gMDsvLy4wMDE7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9NQVJHSU4gPSAwLjAxNTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOID0gMC4wNjtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfV0lEVEggPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9ERVBUSCA9IDAuMDAxO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9XSURUSCA9IDEuMDI2O1xyXG5leHBvcnQgY29uc3QgU1VCRk9MREVSX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0hFSUdIVCA9IDAuMDk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfR1JBQl9IRUlHSFQgPSAwLjA1MTI7XHJcbmV4cG9ydCBjb25zdCBCT1JERVJfVEhJQ0tORVNTID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX1NJWkUgPSAwLjA1O1xyXG5leHBvcnQgY29uc3QgVEVYVF9TQ0FMRSA9IDAuMDAwMjQ7XHJcbmV4cG9ydCBjb25zdCBHUklEX0JVVFRPTl9NQVJHSU4gPSAwLjAxOyIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ID0ge30gKXtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuXHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25HcmlwcGVkJywgaGFuZGxlT25HcmlwICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlR3JpcCcsIGhhbmRsZU9uR3JpcFJlbGVhc2UgKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIGxldCBvbGRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgbGV0IG9sZFJvdGF0aW9uID0gbmV3IFRIUkVFLkV1bGVyKCk7XHJcblxyXG4gIGNvbnN0IHJvdGF0aW9uR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICByb3RhdGlvbkdyb3VwLnNjYWxlLnNldCggMC4zLCAwLjMsIDAuMyApO1xyXG4gIHJvdGF0aW9uR3JvdXAucG9zaXRpb24uc2V0KCAtMC4wMTUsIDAuMDE1LCAwLjAgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcCggcCApe1xyXG5cclxuICAgIGNvbnN0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvbGRQb3NpdGlvbi5jb3B5KCBmb2xkZXIucG9zaXRpb24gKTtcclxuICAgIG9sZFJvdGF0aW9uLmNvcHkoIGZvbGRlci5yb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnggPSAtTWF0aC5QSSAqIDAuNTtcclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuXHJcbiAgICByb3RhdGlvbkdyb3VwLmFkZCggZm9sZGVyICk7XHJcblxyXG4gICAgaW5wdXRPYmplY3QuYWRkKCByb3RhdGlvbkdyb3VwICk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gdHJ1ZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3Bpbm5lZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXBSZWxlYXNlKCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9PXt9ICl7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICBmb2xkZXIub2xkUGFyZW50ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KCBvbGRQb3NpdGlvbiApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLmNvcHkoIG9sZFJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ3BpblJlbGVhc2VkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufSIsIi8qKlxyXG4gKiBQSlQ6IFRoaXMgaXMgYSB2YXJpYXRpb24gb24gc2Rmc2hhZGVyIGZyb20gYm1mb250LCB3aGljaCBzaG91bGQgSnVzdCBXb3JrIHdpdGggbG9nYXJpdGhtaWMgZGVwdGggYnVmZmVycy5cclxuICogSXQgc2hvdWxkIGFsc28gYWxsb3cgc29tZSBvdGhlciBhc3BlY3RzIG9mIFRIUkVFIHJlbmRlcmluZyB0byBiZSBpbmNvcnBvcmF0ZWQsIGxpa2UgZm9nLCBjbGlwcGluZyBwbGFuZXMuLi5cclxuICogRW52aXJvbm1lbnQgbWFwcyBhbmQgdmFyaW91cyBvdGhlciBiaXRzIGZyb20gTWVzaEJhc2ljTWF0ZXJpYWwgYXJlIHJlbW92ZWQuXHJcbiAqIEF0IHRpbWUgb2Ygd3JpdGluZywgdGhpcyBpcyB3b3JrIGluIHByb2dyZXNzLCBhbmQgc29tZXdoYXQgbW9yZSBibG9hdGVkIHRoYW4gaXQgbmVlZHMgdG8gYmUuXHJcbiAqIFRoZSBzaGFkZXIgY29kZSBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggU2hhZGVyTWF0ZXJpYWwgcmF0aGVyIHRoYW4gUmF3U2hhZGVyTWF0ZXJpYWwuXHJcbiAqL1xyXG4vLyBpbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG52YXIgYXNzaWduID0gcmVxdWlyZSgnb2JqZWN0LWFzc2lnbicpO1xyXG5cclxuLyoqXHJcbiAqIHN0YXJ0aW5nIGZyb20gVEhSRUUgbWVzaGJhc2ljIHNoYWRlcnMsIHBydW5pbmcgLyBtb2RpZnlpbmcuLi5cclxuICovXHJcbmNvbnN0IG1lc2hiYXNpY192ZXJ0ID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuI2luY2x1ZGUgPHV2X3BhcnNfdmVydGV4PlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfdmVydGV4PlxyXG5cclxudm9pZCBtYWluKCkgeyBcclxuICB2VXYgPSB1djtcclxuXHQjaW5jbHVkZSA8Y29sb3JfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8YmVnaW5fdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxwcm9qZWN0X3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfdmVydGV4PlxyXG5cclxuXHQjaW5jbHVkZSA8d29ybGRwb3NfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxmb2dfdmVydGV4PlxyXG59XHJcbmA7XHJcblxyXG52YXIgLypzanB0IHdhcyBjb25zdCAqLyBtZXNoYmFzaWNfZnJhZyA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbnVuaWZvcm0gdmVjMyBjb2xvcjtcclxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xyXG5cclxuI2luY2x1ZGUgPGNvbW1vbj5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxtYXBfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX2ZyYWdtZW50PlxyXG5cclxuLy8vLy9cclxuZmxvYXQgYWFzdGVwKGZsb2F0IHZhbHVlKSB7XHJcbiAgICAvLyBXZSBub3cgYXNzdW1lIFdlYkdMMiBhbmQgc28gdGhlIGRlcml2YXRpdmVzIGFyZSBhdmFpbGFibGUsIFxyXG4gICAgLy8gc28gYWZ3aWR0aCBkZXBlbmRzIG9uIHNjYWxlIG9mIGd1aVxyXG4gICAgZmxvYXQgYWZ3aWR0aCA9IGxlbmd0aCh2ZWMyKGRGZHgodmFsdWUpLCBkRmR5KHZhbHVlKSkpICogMC43MDcxMDY3ODExODY1NDc1NztcclxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcclxufVxyXG4vLy8vXHJcblxyXG52b2lkIG1haW4oKSB7XHJcblxyXG5cdCNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQ+XHJcblxyXG4gICAgLy8vXHJcbiAgICB2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoIGNvbG9yLCBvcGFjaXR5ICk7XHJcbiAgICBcclxuICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQobWFwLCB2VXYpO1xyXG4gICAgZmxvYXQgYWxwaGEgPSBhYXN0ZXAodGV4Q29sb3IuYSk7XHJcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xyXG4gICAgaWYgKGdsX0ZyYWdDb2xvci5hIDwgMC4wMDAxKSBkaXNjYXJkO1xyXG4gICAgLy8vXHJcblxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cclxuICAgIC8vWFhYOiBiaWcgY2h1bmsgcmVtb3ZlZCBmcm9tIG9yaWdpbmFsIG1lc2hiYXNpY19mcmFnIGhlcmUuXHJcbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGVuY29kaW5nc19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50PlxyXG59XHJcbmA7XHJcblxyXG5pZiAoK1RIUkVFLlJFVklTSU9OID4gMTUxIHx8IHNlYXJjaFZhbHVlcy50aHJlZXZlciA9PT0gJ3RocmVlMTU3JykgeyAvLyBzanB0IHBhdGNoXHJcbiAgbWVzaGJhc2ljX2ZyYWcgPSAnXFxuI2RlZmluZSBVU0VfTUFQXFxuI2RlZmluZSBVU0VfVVZcXG51bmlmb3JtIHZlYzMgY29sb3I7XFxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xcblxcbiNpbmNsdWRlIDxjb21tb24+XFxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cXG5cXG4vLy8vL1xcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xcbiAgICAvLyBXZSBub3cgYXNzdW1lIFdlYkdMMiBhbmQgc28gdGhlIGRlcml2YXRpdmVzIGFyZSBhdmFpbGFibGUsIFxcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXFxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XFxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcXG59XFxuLy8vL1xcblxcbnZvaWQgbWFpbigpIHtcXG5cXG5cXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxcblxcbiAgICAvLy9cXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xcbiAgICBcXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XFxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XFxuICAgIC8vL1xcblxcblxcdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxjb2xvcnNwYWNlX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XFxufVxcbic7XHJcbiAgY29uc29sZS53YXJuKCdjb2xvcnNwYWNlX2ZyYWdtZW50IHVzZWQnKTtcclxuICB9XHJcbiAgXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBpZiAobWVzaC51c2VyRGF0YS5sYWJlbFN0cmluZyAhPT0gc3RyKSB7XHJcbiAgICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgICAgIG1lc2gudXNlckRhdGEubGFiZWxTdHJpbmcgPSBzdHI7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuLy8gc2pwdCBleHBvcnQgY29uc3QgUEFORUwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4ZmZmZmZmLCB2ZXJ0ZXhDb2xvcnM6IFRIUkVFLlZlcnRleENvbG9ycyB9ICk7XHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogdHJ1ZSB9ICk7XHJcbmV4cG9ydCBjb25zdCBMT0NBVE9SID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVIgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MDAwMDAwIH0gKTtcclxuZXhwb3J0IGNvbnN0IFRPT0xUSVAgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MjA1MDgwLCB0cmFuc3BhcmVudDogZmFsc2UsIG9wYWNpdHk6IDAuOCB9ICk7XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNsaWRlcigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSAwLjAsXHJcbiAgbWluID0gMC4wLCBtYXggPSAxLjAsXHJcbiAgc3RlcCA9IDAuMSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBpbml0aWFsSGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgYWxwaGE6IDEuMCxcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBzdGVwOiBzdGVwLFxyXG4gICAgdXNlU3RlcDogdHJ1ZSxcclxuICAgIHByZWNpc2lvbjogMSxcclxuICAgIGxpc3RlbjogZmFsc2UsXHJcbiAgICBtaW46IG1pbixcclxuICAgIG1heDogbWF4LFxyXG4gICAgb25DaGFuZ2VkQ0I6IHVuZGVmaW5lZCxcclxuICAgIG9uRmluaXNoZWRDaGFuZ2U6IHVuZGVmaW5lZCxcclxuICAgIHByZXNzaW5nOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgc3RhdGUuc3RlcCA9IGdldEltcGxpZWRTdGVwKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApO1xyXG4gIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwic2xpZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gaGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0IFNMSURFUl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0RFUFRIID0gZGVwdGg7XHJcblxyXG4gICAgLy8gIGZpbGxlZCB2b2x1bWVcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIFNMSURFUl9XSURUSCwgU0xJREVSX0hFSUdIVCwgU0xJREVSX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShTTElERVJfV0lEVEgqMC41LDAsMCk7XHJcbiAgICAvLyBMYXlvdXQuYWxpZ25MZWZ0KCByZWN0ICk7XHJcblxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLm5hbWUgPSAnaGl0c2NhblZvbHVtZSc7XHJcblxyXG4gICAgLy8gIHNsaWRlckJHIHZvbHVtZVxyXG4gICAgY29uc3Qgc2xpZGVyQkcgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBzbGlkZXJCRy5nZW9tZXRyeSwgQ29sb3JzLlNMSURFUl9CRyApO1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSCArIExheW91dC5QQU5FTF9NQVJHSU47XHJcblxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkRFRkFVTFRfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgZmlsbGVkVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICBjb25zdCBlbmRMb2NhdG9yID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggMC4wNSwgMC4wNSwgMC4wNSwgMSwgMSwgMSApLCBTaGFyZWRNYXRlcmlhbHMuTE9DQVRPUiApO1xyXG4gICAgZW5kTG9jYXRvci5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGVuZExvY2F0b3IgKTtcclxuICAgIGVuZExvY2F0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9WQUxVRV9URVhUX01BUkdJTiArIHdpZHRoICogMC41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGgqMi41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDMyNTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX1NMSURFUiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIHBhbmVsLm5hbWUgPSAncGFuZWwnO1xyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIHNsaWRlckJHLCB2YWx1ZUxhYmVsLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgICBncm91cC5hZGQoIHBhbmVsIClcclxuXHJcbiAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgdXBkYXRlU2xpZGVyKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsdWVMYWJlbCggdmFsdWUgKXtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCByb3VuZFRvRGVjaW1hbCggc3RhdGUudmFsdWUsIHN0YXRlLnByZWNpc2lvbiApLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgICAgaWYoIHN0YXRlLnByZXNzaW5nICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSU5URVJBQ1RJT05fQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTbGlkZXIoKXtcclxuICAgICAgZmlsbGVkVm9sdW1lLnNjYWxlLnggPVxyXG4gICAgICAgIE1hdGgubWluKFxyXG4gICAgICAgICAgTWF0aC5tYXgoIGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKSAqIHdpZHRoLCAwLjAwMDAwMSApLFxyXG4gICAgICAgICAgd2lkdGhcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9iamVjdCggdmFsdWUgKXtcclxuICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBhbHBoYSApe1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggYWxwaGEgKTtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBnZXRTdGVwcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5zdGVwICk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRDbGFtcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpe1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbU9iamVjdCgpO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tT2JqZWN0KCl7XHJcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgICAgc3RhdGUub25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5zdGVwID0gZnVuY3Rpb24oIHN0ZXAgKXtcclxuICAgICAgc3RhdGUuc3RlcCA9IHN0ZXA7XHJcbiAgICAgIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwIClcclxuICAgICAgc3RhdGUudXNlU3RlcCA9IHRydWU7XHJcblxyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVQcmVzcyApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVIb2xkICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlUmVsZWFzZSApO1xyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVByZXNzKCBwICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVIb2xkKCB7IHBvaW50IH0gPSB7fSApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGZpbGxlZFZvbHVtZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBlbmRMb2NhdG9yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcblxyXG4gICAgICBjb25zdCBhID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGZpbGxlZFZvbHVtZS5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBjb25zdCBiID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGVuZExvY2F0b3IubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBnZXRQb2ludEFscGhhKCBwb2ludCwge2EsYn0gKSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHVwZGF0ZU9iamVjdCggc3RhdGUudmFsdWUgKTtcclxuXHJcbiAgICAgIGlmKCBwcmV2aW91c1ZhbHVlICE9PSBzdGF0ZS52YWx1ZSAmJiBzdGF0ZS5vbkNoYW5nZWRDQiApe1xyXG4gICAgICAgIHN0YXRlLm9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUmVsZWFzZSgpe1xyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICAgIHVwZGF0ZVNsaWRlcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5taW4gPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5taW4gPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5tYXggPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5tYXggPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9IC8vIC9zZXRIZWlnaHRcclxuICBncm91cC5zZXRIZWlnaHQoIGluaXRpYWxIZWlnaHQgKTtcclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IHRhID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0VG9BID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgYVRvQiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb2ludEFscGhhKCBwb2ludCwgc2VnbWVudCApe1xyXG4gIHRhLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICk7XHJcbiAgdGIuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBjb25zdCBwcm9qZWN0ZWQgPSB0Yi5wcm9qZWN0T25WZWN0b3IoIHRhICk7XHJcblxyXG4gIHRUb0EuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBhVG9CLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICkubm9ybWFsaXplKCk7XHJcblxyXG4gIGNvbnN0IHNpZGUgPSB0VG9BLm5vcm1hbGl6ZSgpLmRvdCggYVRvQiApID49IDAgPyAxIDogLTE7XHJcblxyXG4gIGNvbnN0IGxlbmd0aCA9IHNlZ21lbnQuYS5kaXN0YW5jZVRvKCBzZWdtZW50LmIgKSAqIHNpZGU7XHJcblxyXG4gIGxldCBhbHBoYSA9IHByb2plY3RlZC5sZW5ndGgoKSAvIGxlbmd0aDtcclxuICBpZiggYWxwaGEgPiAxLjAgKXtcclxuICAgIGFscGhhID0gMS4wO1xyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwLjAgKXtcclxuICAgIGFscGhhID0gMC4wO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxlcnAobWluLCBtYXgsIHZhbHVlKSB7XHJcbiAgcmV0dXJuICgxLXZhbHVlKSptaW4gKyB2YWx1ZSptYXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcF9yYW5nZSh2YWx1ZSwgbG93MSwgaGlnaDEsIGxvdzIsIGhpZ2gyKSB7XHJcbiAgICByZXR1cm4gbG93MiArIChoaWdoMiAtIGxvdzIpICogKHZhbHVlIC0gbG93MSkgLyAoaGlnaDEgLSBsb3cxKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApe1xyXG4gIGlmKCBhbHBoYSA+IDEgKXtcclxuICAgIHJldHVybiAxXHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAgKXtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRWYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgaWYoIHZhbHVlIDwgbWluICl7XHJcbiAgICByZXR1cm4gbWluO1xyXG4gIH1cclxuICBpZiggdmFsdWUgPiBtYXggKXtcclxuICAgIHJldHVybiBtYXg7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0SW1wbGllZFN0ZXAoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIC8vUEpUOiB3aGF0IHdvdWxkIHdlIGxpa2Ugc3RlcCB0byBsb29rIGxpa2U/XHJcbiAgLy9Tb21ldGhpbmcgdGhhdCBoYXMgYWJvdXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSwgYW5kIGxvb2tzIG5pY2UgaW4gYmFzZSAxMD9cclxuICBjb25zdCByID0gbWF4LW1pbjtcclxuICBsZXQgc3RlcCA9IHIvMTAwOyAvL3doYXQgaXMgdGhlIHJhdGlvIG9mIG51bWJlciBvZiBkZWNpbWFscyB0byBvcmRlciBvZiBtYWduaXR1ZGU/XHJcbiAgXHJcbiAgcmV0dXJuIHN0ZXA7XHJcblxyXG4gIC8vIGlmKCB2YWx1ZSA9PT0gMCApe1xyXG4gIC8vICAgcmV0dXJuIDE7IC8vIFdoYXQgYXJlIHdlLCBwc3ljaGljcz8gLy88PDw8LS0tIG5vLCBzbyB3ZSBzaG91bGQgYmFzZSBpbXBsaWVkU3RlcCBvbiBtaW4vbWF4LCBub3QgdmFsdWVcclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgLy8gSGV5IERvdWcsIGNoZWNrIHRoaXMgb3V0LlxyXG4gIC8vICAgcmV0dXJuIE1hdGgucG93KDEwLCBNYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKHZhbHVlKSkvTWF0aC5MTjEwKSkvMTA7XHJcbiAgLy8gfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRWYWx1ZUZyb21BbHBoYSggYWxwaGEsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggYWxwaGEsIDAuMCwgMS4wLCBtaW4sIG1heCApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFscGhhRnJvbVZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCB2YWx1ZSwgbWluLCBtYXgsIDAuMCwgMS4wICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFN0ZXBwZWRWYWx1ZSggdmFsdWUsIHN0ZXAgKXtcclxuICBpZiggdmFsdWUgJSBzdGVwICE9IDApIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKCB2YWx1ZSAvIHN0ZXAgKSAqIHN0ZXA7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gbnVtRGVjaW1hbHMoeCkge1xyXG4gIHggPSB4LnRvU3RyaW5nKCk7XHJcbiAgaWYgKHguaW5kZXhPZignLicpID4gLTEpIHtcclxuICAgIHJldHVybiB4Lmxlbmd0aCAtIHguaW5kZXhPZignLicpIC0gMTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByb3VuZFRvRGVjaW1hbCh2YWx1ZSwgZGVjaW1hbHMpIHtcclxuICBpZiAoTWF0aC5hYnModmFsdWUpIDwgMC4wMSAmJiB2YWx1ZSAhPT0gMCkgcmV0dXJuIHZhbHVlLnRvRXhwb25lbnRpYWwoMyk7XHJcbiAgY29uc3QgdGVuVG8gPSBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xyXG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogdGVuVG8pIC8gdGVuVG87XHJcbn0iLCIvKipcclxuICogV2hlbiB0aGUgdGV4dGJveCBpcyBmb2N1c3NlZCwgIGEga2V5Ym9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuLi5cclxuICogVGhlcmUgc2hvdWxkIGFsc28gYmUgYSB3YXkgb2YgZGlzbWlzc2luZyBpdCBsYXRlci4gIEl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdG9cclxuICogcHJldmVudCBtdWx0aXBsZSBrZXlib2FyZHMgYmVpbmcgbWFkZSBzaW11bHRhbmVvdXNseT9cclxuICogXHJcbiAqIEluIG9yZGVyIHRvIG1ha2UgaXQgYXBwZWFyLCBpdCBjYW4gYmUgYWRkZWQgYXMgYSBjaGlsZCBvZiB0aGUgdGV4Ym94IG5vZGUgaXRzZWxmLi4uXHJcbiAqIFRoaXMnbGwgbWVhbiB0aGF0IGl0IGdldHMgZHJhZ2dlZCBhcm91bmQgYnkgdGhlIHBhcmVudCBHVUkgYXMgaXQgbW92ZXMuLi4uXHJcbiAqIE1ha2VzIGZvciByZWxhdGl2ZWx5IGNsZWFuLCBzaW1wbGUgaW1wbGVtZW50YXRpb24gYXQgbGVhc3QuXHJcbiAqIEF0IHRoZSBtb21lbnQsIGtleWJvYXJkIHBvc2l0aW9uaW5nIGlzIG1lc3NlZCB1cCBieSB0aGlzIGFycmFuZ2VtZW50LlxyXG4gKiBSZW1vdmluZyBncmFiYmVyIG1ha2VzIGl0IGxlc3MgbGlrZWx5IGEgdXNlciB3aWxsIGRvIHRoaXMsIGJ1dCBtaWdodCBiZSB3b3J0aCBmaXhpbmcgdGhlIGJhc2ljIGJ1Zy5cclxuICogXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgR1VJIGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dEJveCh7XHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9KSB7XHJcbiAgLy8gYmlnIG9sZCBjb3B5IC8gcGFzdGUgZnJvbSBidXR0b24uanMuIE1pZ2h0IHRyeSB0byBmYWN0b3Igb3V0IHNvbWUgb2YgdGhpcyBjb21tb24gY29kZS5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0Ym94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgY29uc3QgbW9kaWZpZXIgPSBuZXcgVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciggMSApO1xyXG4gIG1vZGlmaWVyLm1vZGlmeSggcmVjdCApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogMHhGRkZGRkYgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICAvL2hvdyBjYW4gSSBjaGFuZ2UgY29sb3Igb2YgdGV4dD9cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggb2JqZWN0W3Byb3BlcnR5TmFtZV0sIHsgY29sb3I6IDB4MDAwMDAwMCwgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIC8vYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSAwLjAxNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVTdHJpbmcoc3RyKSB7XHJcbiAgICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RyO1xyXG4gICAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbChzdHIpO1xyXG4gIH1cclxuICB2YXIga2V5Ym9hcmQ7XHJcbiAgZnVuY3Rpb24gdG9nZ2xlS2V5Ym9hcmQoKSB7XHJcbiAgICBpZiAoa2V5Ym9hcmQpIHtcclxuICAgICAgICBrZXlib2FyZC52aXNpYmxlID0gIWtleWJvYXJkLnZpc2libGU7XHJcbiAgICAgICAgaWYgKGtleWJvYXJkLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBrZXlib2FyZCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJrZXlib2FyZFwiKTtcclxuICAgICAgICBncm91cC5hZGQoa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLmZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgICAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnggPSB3aWR0aDtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQ7XHJcbiAgICAgICAga2V5Ym9hcmQuaGlkZUhlYWRlcigpO1xyXG4gICAgICAgIGtleWJvYXJkLmFkZEtleWJvYXJkKCAoaykgPT4ge1xyXG4gICAgICAgICAgICB2YXIgc3RyID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAoaykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxuJzpcclxuICAgICAgICAgICAgICAgICAgICAvL3NldHRpbmcgXCJrZXlib2FyZC52aXNpYmxlID0gZmFsc2VcIiBpbiB0aGUgbWlkZGxlIG9mIGV2ZW50XHJcbiAgICAgICAgICAgICAgICAgICAgLy9oYW5kbGVyIHNlZW1zIHRvIGtpbGwgYWxsIGV2ZW50IHByb2Nlc3NpbmcgZnJvbSB0aGVuIG9uLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0VGltZW91dCBpcyBhbiBhZGVxdWF0ZSB3b3JrYXJvdW5kIGZvciBub3cuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0b2dnbGVLZXlib2FyZCwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcYic6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gaztcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy90aGlzIHRlc3Qgc2hvdWxkIGJlIHJlZHVuZGFudCBub3dcclxuICAgIC8vIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy9vYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgLy9oaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgLy8gY3JlYXRlIGEga2V5Ym9hcmQgYW5kIGF0dGFjaCBpdCBhcyBjaGlsZCBvZiBncm91cC4uLiBcclxuICAgIC8vIG9yIGp1c3QgbWFrZSBzdXJlIGV4aXN0aW5nIGtleWJvYXJkIGlzIHZpc2libGUuXHJcbiAgICB0b2dnbGVLZXlib2FyZCgpO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0hJR0hMSUdIVF9CRyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9CRyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0TGFiZWwoIHRleHRDcmVhdG9yLCBzdHIsIHdpZHRoID0gMC40LCBkZXB0aCA9IDAuMDI5LCBmZ0NvbG9yID0gMHhmZmZmZmYsIGJnQ29sb3IgPSBDb2xvcnMuREVGQVVMVF9CQUNLLCBzY2FsZSA9IDEuMCApe1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRsYWJlbFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3N0cn1dYDtcclxuXHJcbiAgY29uc3QgaW50ZXJuYWxQb3NpdGlvbmluZyA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL3JhdGhlciB1bm5lY2Vzc2FyeS5cclxuICBncm91cC5hZGQoIGludGVybmFsUG9zaXRpb25pbmcgKTtcclxuXHJcbiAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RyLnRvU3RyaW5nKCksIHsgY29sb3I6IGZnQ29sb3IsIHNjYWxlIH0gKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggdGV4dCApO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnRleHQgPSB0ZXh0O1xyXG5cclxuICBncm91cC5zZXRTdHJpbmcgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBpZiAoc3RyID09PSB1bmRlZmluZWQpIHN0ciA9IFwiW3VuZGVmaW5lZF1cIjtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b1N0cmluZygpICk7XHJcbiAgICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldE51bWJlciA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIHRleHQudXBkYXRlTGFiZWwoIHN0ci50b0ZpeGVkKDIpICk7XHJcbiAgfTtcclxuXHJcbiAgdGV4dC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIGNvbnN0IGJhY2tCb3VuZHMgPSAwLjAxO1xyXG4gIGNvbnN0IG1hcmdpbiA9IDAuMDE7XHJcbiAgY29uc3QgdG90YWxXaWR0aCA9IHdpZHRoO1xyXG4gIGNvbnN0IHRvdGFsSGVpZ2h0ID0gMC4wNCArIG1hcmdpbiAqIDI7XHJcblxyXG4gIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja0dlb21ldHJ5ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB0b3RhbFdpZHRoLCB0b3RhbEhlaWdodCwgZGVwdGgsIDEsIDEsIDEgKTtcclxuICBsYWJlbEJhY2tHZW9tZXRyeS5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVRyYW5zbGF0aW9uKCB0b3RhbFdpZHRoICogMC41IC0gbWFyZ2luLCAwLCAwICkgKTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrTWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBsYWJlbEJhY2tHZW9tZXRyeSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsQmFja01lc2guZ2VvbWV0cnksIGJnQ29sb3IgKTtcclxuXHJcbiAgbGFiZWxCYWNrTWVzaC5wb3NpdGlvbi55ID0gMC4wMztcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLmFkZCggbGFiZWxCYWNrTWVzaCApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcucG9zaXRpb24ueSA9IC10b3RhbEhlaWdodCAqIDAuNTtcclxuXHJcbiAgZ3JvdXAuYmFjayA9IGxhYmVsQmFja01lc2g7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgZGVmYXVsdFBhcmVudEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2xUaXAoIHRleHRDcmVhdG9yLCB0aXAsIHBhcmVudFdpZHRoLCBwYXJlbnRIZWlnaHQgPSBkZWZhdWx0UGFyZW50SGVpZ2h0LCBwYXJlbnREZXB0aCApIHtcclxuICBjb25zdCB0aXBUZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKHRpcCk7XHJcbiAgXHJcbiAgY29uc3QgdGlwR3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgY29uc3QgdyA9IHRpcFRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgY29uc3QgaCA9IExheW91dC5URVhUX1NDQUxFICogdGlwVGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG5cclxuICB0aXBHcm91cC5wb3NpdGlvbi54ICA9IDAuNSAqIHBhcmVudFdpZHRoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnkgPSAtMS4wNSAqIHBhcmVudEhlaWdodCAtIGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueiA9IHBhcmVudERlcHRoICogMztcclxuICB0aXBHcm91cC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4vLyAgc3ViZ3JvdXAuYWRkKHRpcEdyb3VwKTtcclxuICB0aXBHcm91cC5hZGQodGlwVGV4dCk7XHJcbi8vICBzdWJncm91cC50aXBUZXh0ID0gdGlwR3JvdXA7XHJcblxyXG4gIGNvbnN0IHBhZGRlZFcgPSB3ICsgMC4wMywgcGFkZGVkSCA9IGggKyAwLjAzO1xyXG4gIGNvbnN0IHRpcFJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeShwYWRkZWRXLCBwYWRkZWRILCAxLCAxKTtcclxuICBjb25zdCB0aXBCYWNrZ3JvdW5kID0gbmV3IFRIUkVFLk1lc2godGlwUmVjdCwgU2hhcmVkTWF0ZXJpYWxzLlRPT0xUSVApO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueCA9IDA7IC8vcGFkZGVkVyAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi55ID0gaCAvIDI7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi56ID0gLXBhcmVudERlcHRoICogMC41O1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBCYWNrZ3JvdW5kKTtcclxuXHJcbiAgdGlwVGV4dC5wb3NpdGlvbi54ID0gLTAuNSAqIHc7XHJcbiAgdGlwVGV4dC5wb3NpdGlvbi55ID0gLTAuNSAqIGggKyAwLjAwMTU7XHJcblxyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLncgPSB3O1xyXG4gIHRpcEdyb3VwLnVzZXJEYXRhLmggPSBoO1xyXG5cclxuICByZXR1cm4gdGlwR3JvdXA7XHJcbn1cclxuIiwiLyoqIGJhc2ljIHV0aWxpdHkgZnVuY3Rpb25zICovXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDb250cm9sbGVyVmlzaWJsZShjb250cm9sKSB7XHJcbiAgdmFyIGZvbGRlciA9IGNvbnRyb2wuZm9sZGVyO1xyXG4gIC8vbm90ZTogdGhlIGJhc2lzIG9uIHdoaWNoIGEgY29udHJvbGxlciBpcyBjb25zaWRlcmVkIHZpc2libGUgcmV2aXNlZCBmb3IgJ2hlYWRlcicgb2JqZWN0cy5cclxuICAvL2ZvciBub3csIHRoaXMgc2hvdWxkIGFsbG93IGhlYWRlciBjb250cm9sbGVycyB0byB1cGRhdGUgd2hpbGUgZm9sZGVyIGlzIGNvbGxhcHNlZC5cclxuICAvL29ubHkgYXBwbGllcyB0byBjaGVja2JveCwgcGVuZGluZyBkZXNpZ24gcmV2aXNpb24gJiBmdWxsZXIgaW1wbGVtZW50YXRpb24uLi5cclxuICBcclxuICAvLy0tLS0gaXNTaG93bkluRm9sZGVySGVhZGVyIG5vIGxvbmdlciByZWxldmFudCwgYnV0IGVuZGluZyB1cCB3aXRoIHNvbWV0aGluZyB0aGF0IGxvb2tzIHNpbWlsYXIuLi4uXHJcbiAgLy9pc0hlYWRlck9iamVjdCB3aWxsIGFwcGx5IHRvIHRoZSBhY3R1YWwgY29udHJvbCBhcHBlYXJpbmcgaW4gdGhlIGZvbGRlciBoZWFkZXIsIHdoZXJlYXNcclxuICAvL2lzU2hvd25JbkZvbGRlckhlYWRlciB3YXMgd2hlbiBzdWNoIG9iamVjdHMgd2VyZW4ndCBzbyBmdWxseS1mbGVkZ2VkXHJcbiAgLy9pZiAoY29udHJvbC5pc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7IC8vPDw8PDwgc3RpbGwgaGl0dGluZyBmb2xkZWQgYnV0dG9uPz8/IChhbHNvLCB0cnkgbnBtIGF1ZGl0KVxyXG4gIGlmIChjb250cm9sLmlzSGVhZGVyT2JqZWN0KSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpO1xyXG5cclxuICAvL1hYWCBoYXZpbmcgc29tZSBkZWZpbml0ZSBidWdzIGUuZy4gbWlzc2luZyBldmVudHMgb3ZlciAncGljdHVyZXMgLyBtYXRlcmlhbHMnIGZvbGRlciBoZWFkZXIgaW4gZGVtby5cclxuICBcclxuICBpZiAoIWNvbnRyb2wudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gIFxyXG4gIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpe1xyXG4gICAgaWYgKGZvbGRlci5pc0NvbGxhcHNlZCgpIHx8ICFmb2xkZXIudmlzaWJsZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICB9XHJcbiAgaWYgKCFmb2xkZXIucGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIGZvbGRlci52aXNpYmxlO1xyXG59XHJcblxyXG4vKiogXHJcbiAqIEludmlzaWJsZSBUSFJFRSBvYmplY3RzIGluY3VyIHNpZ25pZmljYW50IENQVSBjb3N0LlxyXG4gKiBUaGlzIGF2b2lkcyB0aGF0IGJ5IHJlbW92aW5nIHRoZW0gZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqIFxyXG4gKiBJZiB2aXNpYmxlIGlzIHRydWUsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPXRydWUgYW5kIGlzIGEgY2hpbGQgb2YgcGFyZW50LlxyXG4gKiBJZiB2aXNpYmxlIGlzIGZhbHNlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT1mYWxzZSBhbmQgaXMgcmVtb3ZlZCBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRWaXNpYmlsaXR5KHBhcmVudCwgY2hpbGQsIHZpc2libGUpIHtcclxuICAgIGNvbnN0IGlzQ2hpbGQgPSBwYXJlbnQuY2hpbGRyZW4uaW5jbHVkZXMoY2hpbGQpO1xyXG4gICAgY2hpbGQudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAvL21ha2Ugc3VyZSB3ZSB1c2Ugb3JpZ2luYWwgVEhSRUUgbWV0aG9kcyB0aGF0IHRoaXMgbGlicmFyeSBvdmVycmlkZXMgKFRPRE86IHJlZmFjdG9yLi4uKVxyXG4gICAgaWYgKHZpc2libGUgJiYgIWlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghdmlzaWJsZSAmJiBpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXBhcmVudC52aXNpYmxlKSBjb25zb2xlLndhcm4oYHNldFZpc2liaWxpdHkgY2FsbGVkIG9uIGNoaWxkICR7Y2hpbGR9IG9mIGludmlzaWJsZSBwYXJlbnQgJHtwYXJlbnR9YCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBoaWdoZXN0IGxldmVsIG9mIHBhcmVudCBmb2xkZXIgaW4gdGhlIGd1aSBoaWVhcmNoeSBjb250YWluaW5nIGEgZ2l2ZW4gb2JqZWN0LlxyXG4gKiBuYi4gb2xkZXIgdmVyc2lvbnMgb2YgdGhpcyBmdW5jdGlvbiB3b3VsZCByZXR1cm4gdGhlIGlucHV0IG9iamVjdCBpZiBpdCBkaWRuJ3QgaGF2ZSBhICdmb2xkZXInIHByb3BlcnR5LlxyXG4gKiBOb3csIGl0IGlzIGludGVuZGVkIHRoYXQgaXQgc2hvdWxkIGVpdGhlciByZXR1cm4gYSBmb2xkZXIgaWYgYXBwcm9wcmlhdGUsIG9yIG5vdGhpbmcuXHJcbiAqIEBwYXJhbSB7Kn0gZ3JvdXAgZWl0aGVyIGEgZm9sZGVyLCBvciBhbiBvYmplY3Qgd2hvc2UgcGFyZW50IGhhcyBhIGZvbGRlci4uLiBhcG9sb2dpZXMsIHRoaXMgaXMgbm90IHRoZSBjbGVhcmVzdCBzcGVjLlxyXG4gKiAuLi4gaW50ZW50aW9uIGlzIHRoYXQgaXQgc2hvdWxkIHdvcmsgd2l0aCBhbnkgZ3VpIGVsZW1lbnQsIGluIHBhcnRpY3VsYXIgYW55IGhpdE9iamVjdCBpbiBpbnRlcmFjdGlvbi5qcy4uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSB7XHJcbiAgICB2YXIgZm9sZGVyID0gZ2V0Rm9sZGVyKGdyb3VwKTtcclxuICAgIHdoaWxlIChmb2xkZXIuZm9sZGVyICE9PSBmb2xkZXIpIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9sZGVyKGdyb3VwKSB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSByZXR1cm4gZ3JvdXAuZm9sZGVyO1xyXG4gICAgbGV0IG5vZGUgPSBncm91cC5wYXJlbnQ7XHJcbiAgICB3aGlsZSAoIW5vZGUuZm9sZGVyICYmIGdyb3VwLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgcmV0dXJuIG5vZGUuZm9sZGVyO1xyXG59XHJcblxyXG4vL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Qm94RnJvbU9iamVjdChib3gsIG9iaikge1xyXG4gIGNvbnN0IHdvbmt5R2VvbSA9IFtdO1xyXG4gIG9iai50cmF2ZXJzZShvID0+IHtcclxuICAgIGlmIChvLmdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemUgIT09IDMpIHtcclxuICAgICAgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ID0gZmFsc2U7XHJcbiAgICAgIHdvbmt5R2VvbS5wdXNoKG8uZ2VvbWV0cnkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGJveC5zZXRGcm9tT2JqZWN0KG9iaik7XHJcbiAgd29ua3lHZW9tLmZvckVhY2goZyA9PiBnLmlzQnVmZmVyR2VvbWV0cnkgPSB0cnVlKTtcclxuICByZXR1cm4gYm94O1xyXG59XHJcbiIsIi8qXHJcbiAqXHRAYXV0aG9yIHp6ODUgLyBodHRwOi8vdHdpdHRlci5jb20vYmx1cnNwbGluZSAvIGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2dcclxuICpcdEBhdXRob3IgY2VudGVyaW9ud2FyZSAvIGh0dHA6Ly93d3cuY2VudGVyaW9ud2FyZS5jb21cclxuICpcclxuICpcdFN1YmRpdmlzaW9uIEdlb21ldHJ5IE1vZGlmaWVyXHJcbiAqXHRcdHVzaW5nIExvb3AgU3ViZGl2aXNpb24gU2NoZW1lXHJcbiAqXHJcbiAqXHRSZWZlcmVuY2VzOlxyXG4gKlx0XHRodHRwOi8vZ3JhcGhpY3Muc3RhbmZvcmQuZWR1L35tZGZpc2hlci9zdWJkaXZpc2lvbi5odG1sXHJcbiAqXHRcdGh0dHA6Ly93d3cuaG9sbWVzM2QubmV0L2dyYXBoaWNzL3N1YmRpdmlzaW9uL1xyXG4gKlx0XHRodHRwOi8vd3d3LmNzLnJ1dGdlcnMuZWR1L35kZWNhcmxvL3JlYWRpbmdzL3N1YmRpdi1zZzAwYy5wZGZcclxuICpcclxuICpcdEtub3duIElzc3VlczpcclxuICpcdFx0LSBjdXJyZW50bHkgZG9lc24ndCBoYW5kbGUgXCJTaGFycCBFZGdlc1wiXHJcbiAqL1xyXG5cclxuVEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllciA9IGZ1bmN0aW9uICggc3ViZGl2aXNpb25zICkge1xyXG5cclxuXHR0aGlzLnN1YmRpdmlzaW9ucyA9ICggc3ViZGl2aXNpb25zID09PSB1bmRlZmluZWQgKSA/IDEgOiBzdWJkaXZpc2lvbnM7XHJcblxyXG59O1xyXG5cclxuLy8gQXBwbGllcyB0aGUgXCJtb2RpZnlcIiBwYXR0ZXJuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIucHJvdG90eXBlLm1vZGlmeSA9IGZ1bmN0aW9uICggZ2VvbWV0cnkgKSB7XHJcblxyXG5cdHZhciByZXBlYXRzID0gdGhpcy5zdWJkaXZpc2lvbnM7XHJcblxyXG5cdHdoaWxlICggcmVwZWF0cyAtLSA+IDAgKSB7XHJcblxyXG5cdFx0dGhpcy5zbW9vdGgoIGdlb21ldHJ5ICk7XHJcblxyXG5cdH1cclxuXHJcblx0Ly9zanB0LCBubyBsb25nZXIgdGhlcmUgLi4uIGdlb21ldHJ5LmNvbXB1dGVGYWNlTm9ybWFscygpO1xyXG5cdGdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7XHJcblxyXG59O1xyXG5cclxuKCBmdW5jdGlvbigpIHtcclxuXHJcblx0Ly8gU29tZSBjb25zdGFudHNcclxuXHR2YXIgV0FSTklOR1MgPSAhIHRydWU7IC8vIFNldCB0byB0cnVlIGZvciBkZXZlbG9wbWVudFxyXG5cdHZhciBBQkMgPSBbICdhJywgJ2InLCAnYycgXTtcclxuXHJcblxyXG5cdGZ1bmN0aW9uIGdldEVkZ2UoIGEsIGIsIG1hcCApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHRyZXR1cm4gbWFwWyBrZXkgXTtcclxuXHJcblx0fVxyXG5cclxuXHJcblx0ZnVuY3Rpb24gcHJvY2Vzc0VkZ2UoIGEsIGIsIHZlcnRpY2VzLCBtYXAsIGZhY2UsIG1ldGFWZXJ0aWNlcyApIHtcclxuXHJcblx0XHR2YXIgdmVydGV4SW5kZXhBID0gTWF0aC5taW4oIGEsIGIgKTtcclxuXHRcdHZhciB2ZXJ0ZXhJbmRleEIgPSBNYXRoLm1heCggYSwgYiApO1xyXG5cclxuXHRcdHZhciBrZXkgPSB2ZXJ0ZXhJbmRleEEgKyBcIl9cIiArIHZlcnRleEluZGV4QjtcclxuXHJcblx0XHR2YXIgZWRnZTtcclxuXHJcblx0XHRpZiAoIGtleSBpbiBtYXAgKSB7XHJcblxyXG5cdFx0XHRlZGdlID0gbWFwWyBrZXkgXTtcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0dmFyIHZlcnRleEEgPSB2ZXJ0aWNlc1sgdmVydGV4SW5kZXhBIF07XHJcblx0XHRcdHZhciB2ZXJ0ZXhCID0gdmVydGljZXNbIHZlcnRleEluZGV4QiBdO1xyXG5cclxuXHRcdFx0ZWRnZSA9IHtcclxuXHJcblx0XHRcdFx0YTogdmVydGV4QSwgLy8gcG9pbnRlciByZWZlcmVuY2VcclxuXHRcdFx0XHRiOiB2ZXJ0ZXhCLFxyXG5cdFx0XHRcdG5ld0VkZ2U6IG51bGwsXHJcblx0XHRcdFx0Ly8gYUluZGV4OiBhLCAvLyBudW1iZXJlZCByZWZlcmVuY2VcclxuXHRcdFx0XHQvLyBiSW5kZXg6IGIsXHJcblx0XHRcdFx0ZmFjZXM6IFtdIC8vIHBvaW50ZXJzIHRvIGZhY2VcclxuXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRtYXBbIGtleSBdID0gZWRnZTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0ZWRnZS5mYWNlcy5wdXNoKCBmYWNlICk7XHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzWyBhIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cdFx0bWV0YVZlcnRpY2VzWyBiIF0uZWRnZXMucHVzaCggZWRnZSApO1xyXG5cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBnZW5lcmF0ZUxvb2t1cHMoIHZlcnRpY2VzLCBmYWNlcywgbWV0YVZlcnRpY2VzLCBlZGdlcyApIHtcclxuXHJcblx0XHR2YXIgaSwgaWwsIGZhY2UsIGVkZ2U7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gdmVydGljZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRtZXRhVmVydGljZXNbIGkgXSA9IHsgZWRnZXM6IFtdIH07XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IGZhY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0ZmFjZSA9IGZhY2VzWyBpIF07XHJcblxyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5hLCBmYWNlLmIsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmIsIGZhY2UuYywgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYywgZmFjZS5hLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdGYWNlKCBuZXdGYWNlcywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdGYWNlcy5wdXNoKCBuZXcgVEhSRUUuRmFjZTMoIGEsIGIsIGMgKSApO1xyXG5cclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIG1pZHBvaW50KCBhLCBiICkge1xyXG5cclxuXHRcdHJldHVybiAoIE1hdGguYWJzKCBiIC0gYSApIC8gMiApICsgTWF0aC5taW4oIGEsIGIgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBuZXdVdiggbmV3VXZzLCBhLCBiLCBjICkge1xyXG5cclxuXHRcdG5ld1V2cy5wdXNoKCBbIGEuY2xvbmUoKSwgYi5jbG9uZSgpLCBjLmNsb25lKCkgXSApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cdC8vIFBlcmZvcm1zIG9uZSBpdGVyYXRpb24gb2YgU3ViZGl2aXNpb25cclxuXHRUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5zbW9vdGggPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkgeyByZXR1cm47IC8vIHNqcHQgVEVNUCBUT0RPXHJcblxyXG5cdFx0dmFyIHRtcCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0dmFyIG9sZFZlcnRpY2VzLCBvbGRGYWNlcywgb2xkVXZzO1xyXG5cdFx0dmFyIG5ld1ZlcnRpY2VzLCBuZXdGYWNlcywgbmV3VVZzID0gW107XHJcblxyXG5cdFx0dmFyIG4sIGwsIGksIGlsLCBqLCBrO1xyXG5cdFx0dmFyIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXM7XHJcblxyXG5cdFx0Ly8gbmV3IHN0dWZmLlxyXG5cdFx0dmFyIHNvdXJjZUVkZ2VzLCBuZXdFZGdlVmVydGljZXMsIG5ld1NvdXJjZVZlcnRpY2VzO1xyXG5cclxuXHRcdG9sZFZlcnRpY2VzID0gZ2VvbWV0cnkudmVydGljZXM7IC8vIHsgeCwgeSwgen1cclxuXHRcdG9sZEZhY2VzID0gZ2VvbWV0cnkuZmFjZXM7IC8vIHsgYTogb2xkVmVydGV4MSwgYjogb2xkVmVydGV4MiwgYzogb2xkVmVydGV4MyB9XHJcblx0XHRvbGRVdnMgPSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF07XHJcblxyXG5cdFx0dmFyIGhhc1V2cyA9IG9sZFV2cyAhPT0gdW5kZWZpbmVkICYmIG9sZFV2cy5sZW5ndGggPiAwO1xyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKiBTdGVwIDA6IFByZXByb2Nlc3MgR2VvbWV0cnkgdG8gR2VuZXJhdGUgZWRnZXMgTG9va3VwXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bWV0YVZlcnRpY2VzID0gbmV3IEFycmF5KCBvbGRWZXJ0aWNlcy5sZW5ndGggKTtcclxuXHRcdHNvdXJjZUVkZ2VzID0ge307IC8vIEVkZ2UgPT4geyBvbGRWZXJ0ZXgxLCBvbGRWZXJ0ZXgyLCBmYWNlc1tdICB9XHJcblxyXG5cdFx0Z2VuZXJhdGVMb29rdXBzKCBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG1ldGFWZXJ0aWNlcywgc291cmNlRWRnZXMgKTtcclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDEuXHJcblx0XHQgKlx0Rm9yIGVhY2ggZWRnZSwgY3JlYXRlIGEgbmV3IEVkZ2UgVmVydGV4LFxyXG5cdFx0ICpcdHRoZW4gcG9zaXRpb24gaXQuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3RWRnZVZlcnRpY2VzID0gW107XHJcblx0XHR2YXIgb3RoZXIsIGN1cnJlbnRFZGdlLCBuZXdFZGdlLCBmYWNlO1xyXG5cdFx0dmFyIGVkZ2VWZXJ0ZXhXZWlnaHQsIGFkamFjZW50VmVydGV4V2VpZ2h0LCBjb25uZWN0ZWRGYWNlcztcclxuXHJcblx0XHRmb3IgKCBpIGluIHNvdXJjZUVkZ2VzICkge1xyXG5cclxuXHRcdFx0Y3VycmVudEVkZ2UgPSBzb3VyY2VFZGdlc1sgaSBdO1xyXG5cdFx0XHRuZXdFZGdlID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcblx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAzIC8gODtcclxuXHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdGNvbm5lY3RlZEZhY2VzID0gY3VycmVudEVkZ2UuZmFjZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0Ly8gY2hlY2sgaG93IG1hbnkgbGlua2VkIGZhY2VzLiAyIHNob3VsZCBiZSBjb3JyZWN0LlxyXG5cdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDIgKSB7XHJcblxyXG5cdFx0XHRcdC8vIGlmIGxlbmd0aCBpcyBub3QgMiwgaGFuZGxlIGNvbmRpdGlvblxyXG5cdFx0XHRcdGVkZ2VWZXJ0ZXhXZWlnaHQgPSAwLjU7XHJcblx0XHRcdFx0YWRqYWNlbnRWZXJ0ZXhXZWlnaHQgPSAwO1xyXG5cclxuXHRcdFx0XHRpZiAoIGNvbm5lY3RlZEZhY2VzICE9IDEgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJ1N1YmRpdmlzaW9uIE1vZGlmaWVyOiBOdW1iZXIgb2YgY29ubmVjdGVkIGZhY2VzICE9IDIsIGlzOiAnLCBjb25uZWN0ZWRGYWNlcywgY3VycmVudEVkZ2UgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3RWRnZS5hZGRWZWN0b3JzKCBjdXJyZW50RWRnZS5hLCBjdXJyZW50RWRnZS5iICkubXVsdGlwbHlTY2FsYXIoIGVkZ2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgY29ubmVjdGVkRmFjZXM7IGogKysgKSB7XHJcblxyXG5cdFx0XHRcdGZhY2UgPSBjdXJyZW50RWRnZS5mYWNlc1sgaiBdO1xyXG5cclxuXHRcdFx0XHRmb3IgKCBrID0gMDsgayA8IDM7IGsgKysgKSB7XHJcblxyXG5cdFx0XHRcdFx0b3RoZXIgPSBvbGRWZXJ0aWNlc1sgZmFjZVsgQUJDWyBrIF0gXSBdO1xyXG5cdFx0XHRcdFx0aWYgKCBvdGhlciAhPT0gY3VycmVudEVkZ2UuYSAmJiBvdGhlciAhPT0gY3VycmVudEVkZ2UuYiApIGJyZWFrO1xyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGFkamFjZW50VmVydGV4V2VpZ2h0ICk7XHJcblx0XHRcdG5ld0VkZ2UuYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlLm5ld0VkZ2UgPSBuZXdFZGdlVmVydGljZXMubGVuZ3RoO1xyXG5cdFx0XHRuZXdFZGdlVmVydGljZXMucHVzaCggbmV3RWRnZSApO1xyXG5cclxuXHRcdFx0Ly8gY29uc29sZS5sb2coY3VycmVudEVkZ2UsIG5ld0VkZ2UpO1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICpcdFN0ZXAgMi5cclxuXHRcdCAqXHRSZXBvc2l0aW9uIGVhY2ggc291cmNlIHZlcnRpY2VzLlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdHZhciBiZXRhLCBzb3VyY2VWZXJ0ZXhXZWlnaHQsIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQ7XHJcblx0XHR2YXIgY29ubmVjdGluZ0VkZ2UsIGNvbm5lY3RpbmdFZGdlcywgb2xkVmVydGV4LCBuZXdTb3VyY2VWZXJ0ZXg7XHJcblx0XHRuZXdTb3VyY2VWZXJ0aWNlcyA9IFtdO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IG9sZFZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0b2xkVmVydGV4ID0gb2xkVmVydGljZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgYWxsIGNvbm5lY3RpbmcgZWRnZXMgKHVzaW5nIGxvb2t1cFRhYmxlKVxyXG5cdFx0XHRjb25uZWN0aW5nRWRnZXMgPSBtZXRhVmVydGljZXNbIGkgXS5lZGdlcztcclxuXHRcdFx0biA9IGNvbm5lY3RpbmdFZGdlcy5sZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIG4gPT0gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAxNjtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoIG4gPiAzICkge1xyXG5cclxuXHRcdFx0XHRiZXRhID0gMyAvICggOCAqIG4gKTsgLy8gV2FycmVuJ3MgbW9kaWZpZWQgZm9ybXVsYVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTG9vcCdzIG9yaWdpbmFsIGJldGEgZm9ybXVsYVxyXG5cdFx0XHQvLyBiZXRhID0gMSAvIG4gKiAoIDUvOCAtIE1hdGgucG93KCAzLzggKyAxLzQgKiBNYXRoLmNvcyggMiAqIE1hdGguIFBJIC8gbiApLCAyKSApO1xyXG5cclxuXHRcdFx0c291cmNlVmVydGV4V2VpZ2h0ID0gMSAtIG4gKiBiZXRhO1xyXG5cdFx0XHRjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gYmV0YTtcclxuXHJcblx0XHRcdGlmICggbiA8PSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzXHJcblx0XHRcdFx0Ly8gY29uc29sZS53YXJuKCdjcmVhc2UgYW5kIGJvdW5kYXJ5IHJ1bGVzJyk7XHJcblxyXG5cdFx0XHRcdGlmICggbiA9PSAyICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcyIGNvbm5lY3RpbmcgZWRnZXMnLCBjb25uZWN0aW5nRWRnZXMgKTtcclxuXHRcdFx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDMgLyA0O1xyXG5cdFx0XHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDEgLyA4O1xyXG5cclxuXHRcdFx0XHRcdC8vIHNvdXJjZVZlcnRleFdlaWdodCA9IDE7XHJcblx0XHRcdFx0XHQvLyBjb25uZWN0aW5nVmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdvbmx5IDEgY29ubmVjdGluZyBlZGdlJyApO1xyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBuID09IDAgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBXQVJOSU5HUyApIGNvbnNvbGUud2FybiggJzAgY29ubmVjdGluZyBlZGdlcycgKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bmV3U291cmNlVmVydGV4ID0gb2xkVmVydGV4LmNsb25lKCkubXVsdGlwbHlTY2FsYXIoIHNvdXJjZVZlcnRleFdlaWdodCApO1xyXG5cclxuXHRcdFx0dG1wLnNldCggMCwgMCwgMCApO1xyXG5cclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBuOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRjb25uZWN0aW5nRWRnZSA9IGNvbm5lY3RpbmdFZGdlc1sgaiBdO1xyXG5cdFx0XHRcdG90aGVyID0gY29ubmVjdGluZ0VkZ2UuYSAhPT0gb2xkVmVydGV4ID8gY29ubmVjdGluZ0VkZ2UuYSA6IGNvbm5lY3RpbmdFZGdlLmI7XHJcblx0XHRcdFx0dG1wLmFkZCggb3RoZXIgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRtcC5tdWx0aXBseVNjYWxhciggY29ubmVjdGluZ1ZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0ZXguYWRkKCB0bXAgKTtcclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRpY2VzLnB1c2goIG5ld1NvdXJjZVZlcnRleCApO1xyXG5cclxuXHRcdH1cclxuXHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDMuXHJcblx0XHQgKlx0R2VuZXJhdGUgRmFjZXMgYmV0d2VlbiBzb3VyY2UgdmVydGljZXNcclxuXHRcdCAqXHRhbmQgZWRnZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHRuZXdWZXJ0aWNlcyA9IG5ld1NvdXJjZVZlcnRpY2VzLmNvbmNhdCggbmV3RWRnZVZlcnRpY2VzICk7XHJcblx0XHR2YXIgc2wgPSBuZXdTb3VyY2VWZXJ0aWNlcy5sZW5ndGgsIGVkZ2UxLCBlZGdlMiwgZWRnZTM7XHJcblx0XHRuZXdGYWNlcyA9IFtdO1xyXG5cclxuXHRcdHZhciB1diwgeDAsIHgxLCB4MjtcclxuXHRcdHZhciB4MyA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblx0XHR2YXIgeDQgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg1ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRGYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBvbGRGYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0Ly8gZmluZCB0aGUgMyBuZXcgZWRnZXMgdmVydGV4IG9mIGVhY2ggb2xkIGZhY2VcclxuXHJcblx0XHRcdGVkZ2UxID0gZ2V0RWRnZSggZmFjZS5hLCBmYWNlLmIsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cdFx0XHRlZGdlMiA9IGdldEVkZ2UoIGZhY2UuYiwgZmFjZS5jLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTMgPSBnZXRFZGdlKCBmYWNlLmMsIGZhY2UuYSwgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBmYWNlcy5cclxuXHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBlZGdlMSwgZWRnZTIsIGVkZ2UzICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmEsIGVkZ2UxLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5iLCBlZGdlMiwgZWRnZTEgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYywgZWRnZTMsIGVkZ2UyICk7XHJcblxyXG5cdFx0XHQvLyBjcmVhdGUgNCBuZXcgdXYnc1xyXG5cclxuXHRcdFx0aWYgKCBoYXNVdnMgKSB7XHJcblxyXG5cdFx0XHRcdHV2ID0gb2xkVXZzWyBpIF07XHJcblxyXG5cdFx0XHRcdHgwID0gdXZbIDAgXTtcclxuXHRcdFx0XHR4MSA9IHV2WyAxIF07XHJcblx0XHRcdFx0eDIgPSB1dlsgMiBdO1xyXG5cclxuXHRcdFx0XHR4My5zZXQoIG1pZHBvaW50KCB4MC54LCB4MS54ICksIG1pZHBvaW50KCB4MC55LCB4MS55ICkgKTtcclxuXHRcdFx0XHR4NC5zZXQoIG1pZHBvaW50KCB4MS54LCB4Mi54ICksIG1pZHBvaW50KCB4MS55LCB4Mi55ICkgKTtcclxuXHRcdFx0XHR4NS5zZXQoIG1pZHBvaW50KCB4MC54LCB4Mi54ICksIG1pZHBvaW50KCB4MC55LCB4Mi55ICkgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDMsIHg0LCB4NSApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgwLCB4MywgeDUgKTtcclxuXHJcblx0XHRcdFx0bmV3VXYoIG5ld1VWcywgeDEsIHg0LCB4MyApO1xyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgyLCB4NSwgeDQgKTtcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3ZlcndyaXRlIG9sZCBhcnJheXNcclxuXHRcdGdlb21ldHJ5LnZlcnRpY2VzID0gbmV3VmVydGljZXM7XHJcblx0XHRnZW9tZXRyeS5mYWNlcyA9IG5ld0ZhY2VzO1xyXG5cdFx0aWYgKCBoYXNVdnMgKSBnZW9tZXRyeS5mYWNlVmVydGV4VXZzWyAwIF0gPSBuZXdVVnM7XHJcblxyXG5cdFx0Ly8gY29uc29sZS5sb2coJ2RvbmUnKTtcclxuXHJcblx0fTtcclxuXHJcbn0gKSgpO1xyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgLy8vLyBzanB0IHBhdGNoIGZvciB0aHJlZTE0MiwgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaXMgYSBjbGFzc1xuICBpZiAoK1RIUkVFLlJFVklTSU9OIDwgMTQyKSB7XG4gICAgQmFzZS5jYWxsKHRoaXMpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHp6eiA9IG5ldyBCYXNlKCk7IC8vUEpUOiBjbGFzc2ljIHNqcHQgdmFyaWFibGUgbmFtaW5nIO+/vVxuICAgIE9iamVjdC5hc3NpZ24odGhpcywgenp6KTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0KVxuXG4gIC8vIGFsc28gZG8gYW4gaW5pdGlhbCBzZXR1cC4uLlxuICBpZiAob3B0KSB0aGlzLnVwZGF0ZShvcHQpXG59XG5cbmluaGVyaXRzKFRleHRHZW9tZXRyeSwgQmFzZSlcblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAob3B0KSB7XG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSBjb25zdHJ1Y3RvciBkZWZhdWx0c1xuICBvcHQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vcHQsIG9wdClcblxuICBpZiAoIW9wdC5mb250KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGEgeyBmb250IH0gaW4gb3B0aW9ucycpXG4gIH1cblxuICB0aGlzLmxheW91dCA9IGNyZWF0ZUxheW91dChvcHQpXG5cbiAgLy8gZ2V0IHZlYzIgdGV4Y29vcmRzXG4gIHZhciBmbGlwWSA9IG9wdC5mbGlwWSAhPT0gZmFsc2VcblxuICAvLyB0aGUgZGVzaXJlZCBCTUZvbnQgZGF0YVxuICB2YXIgZm9udCA9IG9wdC5mb250XG5cbiAgLy8gZGV0ZXJtaW5lIHRleHR1cmUgc2l6ZSBmcm9tIGZvbnQgZmlsZVxuICB2YXIgdGV4V2lkdGggPSBmb250LmNvbW1vbi5zY2FsZVdcbiAgdmFyIHRleEhlaWdodCA9IGZvbnQuY29tbW9uLnNjYWxlSFxuXG4gIC8vIGdldCB2aXNpYmxlIGdseXBoc1xuICB2YXIgZ2x5cGhzID0gdGhpcy5sYXlvdXQuZ2x5cGhzLmZpbHRlcihmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHJldHVybiBiaXRtYXAud2lkdGggKiBiaXRtYXAuaGVpZ2h0ID4gMFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdmlzaWJsZSBnbHlwaHMgZm9yIGNvbnZlbmllbmNlXG4gIHRoaXMudmlzaWJsZUdseXBocyA9IGdseXBoc1xuXG4gIC8vIGdldCBjb21tb24gdmVydGV4IGRhdGFcbiAgdmFyIHBvc2l0aW9ucyA9IHZlcnRpY2VzLnBvc2l0aW9ucyhnbHlwaHMpXG4gIHZhciB1dnMgPSB2ZXJ0aWNlcy51dnMoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSlcbiAgdmFyIGluZGljZXMgPSBjcmVhdGVJbmRpY2VzKFtdLCB7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIHRoaXMuc2V0SW5kZXgoaW5kaWNlcylcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwb3NpdGlvbnMsIDIpKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHV2cywgMikpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICAvLyBlbmFibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHZhciBwYWdlcyA9IHZlcnRpY2VzLnBhZ2VzKGdseXBocylcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGFnZScsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocGFnZXMsIDEpKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIG5ld2xpbmUgPSAvXFxuL1xudmFyIG5ld2xpbmVDaGFyID0gJ1xcbidcbnZhciB3aGl0ZXNwYWNlID0gL1xccy9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih0ZXh0LCBvcHQpIHtcbiAgICB2YXIgbGluZXMgPSBtb2R1bGUuZXhwb3J0cy5saW5lcyh0ZXh0LCBvcHQpXG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhsaW5lLnN0YXJ0LCBsaW5lLmVuZClcbiAgICB9KS5qb2luKCdcXG4nKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5saW5lcyA9IGZ1bmN0aW9uIHdvcmR3cmFwKHRleHQsIG9wdCkge1xuICAgIG9wdCA9IG9wdHx8e31cblxuICAgIC8vemVybyB3aWR0aCByZXN1bHRzIGluIG5vdGhpbmcgdmlzaWJsZVxuICAgIGlmIChvcHQud2lkdGggPT09IDAgJiYgb3B0Lm1vZGUgIT09ICdub3dyYXAnKSBcbiAgICAgICAgcmV0dXJuIFtdXG5cbiAgICB0ZXh0ID0gdGV4dHx8JydcbiAgICB2YXIgd2lkdGggPSB0eXBlb2Ygb3B0LndpZHRoID09PSAnbnVtYmVyJyA/IG9wdC53aWR0aCA6IE51bWJlci5NQVhfVkFMVUVcbiAgICB2YXIgc3RhcnQgPSBNYXRoLm1heCgwLCBvcHQuc3RhcnR8fDApXG4gICAgdmFyIGVuZCA9IHR5cGVvZiBvcHQuZW5kID09PSAnbnVtYmVyJyA/IG9wdC5lbmQgOiB0ZXh0Lmxlbmd0aFxuICAgIHZhciBtb2RlID0gb3B0Lm1vZGVcblxuICAgIHZhciBtZWFzdXJlID0gb3B0Lm1lYXN1cmUgfHwgbW9ub3NwYWNlXG4gICAgaWYgKG1vZGUgPT09ICdwcmUnKVxuICAgICAgICByZXR1cm4gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKVxuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSlcbn1cblxuZnVuY3Rpb24gaWR4T2YodGV4dCwgY2hyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIGlkeCA9IHRleHQuaW5kZXhPZihjaHIsIHN0YXJ0KVxuICAgIGlmIChpZHggPT09IC0xIHx8IGlkeCA+IGVuZClcbiAgICAgICAgcmV0dXJuIGVuZFxuICAgIHJldHVybiBpZHhcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNocikge1xuICAgIHJldHVybiB3aGl0ZXNwYWNlLnRlc3QoY2hyKVxufVxuXG5mdW5jdGlvbiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgbGluZXMgPSBbXVxuICAgIHZhciBsaW5lU3RhcnQgPSBzdGFydFxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kICYmIGk8dGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hyID0gdGV4dC5jaGFyQXQoaSlcbiAgICAgICAgdmFyIGlzTmV3bGluZSA9IG5ld2xpbmUudGVzdChjaHIpXG5cbiAgICAgICAgLy9JZiB3ZSd2ZSByZWFjaGVkIGEgbmV3bGluZSwgdGhlbiBzdGVwIGRvd24gYSBsaW5lXG4gICAgICAgIC8vT3IgaWYgd2UndmUgcmVhY2hlZCB0aGUgRU9GXG4gICAgICAgIGlmIChpc05ld2xpbmUgfHwgaT09PWVuZC0xKSB7XG4gICAgICAgICAgICB2YXIgbGluZUVuZCA9IGlzTmV3bGluZSA/IGkgOiBpKzFcbiAgICAgICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgbGluZVN0YXJ0LCBsaW5lRW5kLCB3aWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobWVhc3VyZWQpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmVTdGFydCA9IGkrMVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpIHtcbiAgICAvL0EgZ3JlZWR5IHdvcmQgd3JhcHBlciBiYXNlZCBvbiBMaWJHRFggYWxnb3JpdGhtXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbGliZ2R4L2xpYmdkeC9ibG9iL21hc3Rlci9nZHgvc3JjL2NvbS9iYWRsb2dpYy9nZHgvZ3JhcGhpY3MvZzJkL0JpdG1hcEZvbnRDYWNoZS5qYXZhXG4gICAgdmFyIGxpbmVzID0gW11cblxuICAgIHZhciB0ZXN0V2lkdGggPSB3aWR0aFxuICAgIC8vaWYgJ25vd3JhcCcgaXMgc3BlY2lmaWVkLCB3ZSBvbmx5IHdyYXAgb24gbmV3bGluZSBjaGFyc1xuICAgIGlmIChtb2RlID09PSAnbm93cmFwJylcbiAgICAgICAgdGVzdFdpZHRoID0gTnVtYmVyLk1BWF9WQUxVRVxuXG4gICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgLy9nZXQgbmV4dCBuZXdsaW5lIHBvc2l0aW9uXG4gICAgICAgIHZhciBuZXdMaW5lID0gaWR4T2YodGV4dCwgbmV3bGluZUNoYXIsIHN0YXJ0LCBlbmQpXG5cbiAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBzdGFydCBvZiBsaW5lXG4gICAgICAgIHdoaWxlIChzdGFydCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKCB0ZXh0LmNoYXJBdChzdGFydCkgKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgc3RhcnQrK1xuICAgICAgICB9XG5cbiAgICAgICAgLy9kZXRlcm1pbmUgdmlzaWJsZSAjIG9mIGdseXBocyBmb3IgdGhlIGF2YWlsYWJsZSB3aWR0aFxuICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBuZXdMaW5lLCB0ZXN0V2lkdGgpXG5cbiAgICAgICAgdmFyIGxpbmVFbmQgPSBzdGFydCArIChtZWFzdXJlZC5lbmQtbWVhc3VyZWQuc3RhcnQpXG4gICAgICAgIHZhciBuZXh0U3RhcnQgPSBsaW5lRW5kICsgbmV3bGluZUNoYXIubGVuZ3RoXG5cbiAgICAgICAgLy9pZiB3ZSBoYWQgdG8gY3V0IHRoZSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBuZXdsaW5lLi4uXG4gICAgICAgIGlmIChsaW5lRW5kIDwgbmV3TGluZSkge1xuICAgICAgICAgICAgLy9maW5kIGNoYXIgdG8gYnJlYWsgb25cbiAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQpKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5lRW5kID09PSBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPiBzdGFydCArIG5ld2xpbmVDaGFyLmxlbmd0aCkgbmV4dFN0YXJ0LS1cbiAgICAgICAgICAgICAgICBsaW5lRW5kID0gbmV4dFN0YXJ0IC8vIElmIG5vIGNoYXJhY3RlcnMgdG8gYnJlYWssIHNob3cgYWxsLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBsaW5lRW5kXG4gICAgICAgICAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCAtIG5ld2xpbmVDaGFyLmxlbmd0aCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5lRW5kID49IHN0YXJ0KSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbGluZUVuZCwgdGVzdFdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnRcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbi8vZGV0ZXJtaW5lcyB0aGUgdmlzaWJsZSBudW1iZXIgb2YgZ2x5cGhzIHdpdGhpbiBhIGdpdmVuIHdpZHRoXG5mdW5jdGlvbiBtb25vc3BhY2UodGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgZ2x5cGhzID0gTWF0aC5taW4od2lkdGgsIGVuZC1zdGFydClcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnQrZ2x5cGhzXG4gICAgfVxufSIsIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm1vZHVsZXMvdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyLmpzIiwibm9kZV9tb2R1bGVzL2FuLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2FzLW51bWJlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9kdHlwZS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwibm9kZV9tb2R1bGVzL2luaGVyaXRzL2luaGVyaXRzX2Jyb3dzZXIuanMiLCJub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xheW91dC1ibWZvbnQtdGV4dC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3BhcnNlLWJtZm9udC1hc2NpaS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9xdWFkLWluZGljZXMvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvdGhyZWUtYm1mb250LXRleHQvbGliL3V0aWxzLmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi92ZXJ0aWNlcy5qcyIsIm5vZGVfbW9kdWxlcy93b3JkLXdyYXBwZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMveHRlbmQvaW1tdXRhYmxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7a0JDNEJ3QixZOztBQVR4Qjs7SUFBWSxtQjs7QUFFWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOTixXQU1NLFFBTk4sV0FNTTtBQUFBLE1BTE4sTUFLTSxRQUxOLE1BS007QUFBQSwrQkFKTixZQUlNO0FBQUEsTUFKTixZQUlNLHFDQUpTLFdBSVQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLHlCQUZOLE1BRU07QUFBQSxNQUZOLE1BRU0sK0JBRkcsT0FBTyxZQUVWO0FBQUEsd0JBRE4sS0FDTTtBQUFBLE1BRE4sS0FDTSw4QkFERSxP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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFN1YmRpdmlzaW9uTW9kaWZpZXIgZnJvbSAnLi4vdGhpcmRwYXJ0eS9TdWJkaXZpc2lvbk1vZGlmaWVyJztcclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQlVUVE9OX0NPTE9SIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSwgeyBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IEJVVFRPTl9XSURUSCAqIDAuNSAtIGJ1dHRvbkxhYmVsLmxheW91dC53aWR0aCAqIDAuMDAwMDExICogMC41O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuQlVUVE9OX0NPTE9SICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAuYnV0dG9uTGFiZWwgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBidXR0b25MYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgeyBDSEVDS0JPWF9TSVpFIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ2hlY2tib3goIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgY29uc3QgQ0hFQ0tCT1hfUEFEID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAtIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiY2hlY2tib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBvbkNoYW5nZWRDQjtcclxuICBsZXQgb25GaW5pc2hDaGFuZ2VDQjtcclxuXHJcbiAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGNoZWNrbWFyaywgYm9yZGVyQm94LCBpbnRlcmFjdGlvbjtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG5cclxuICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBpZiggb25DaGFuZ2VkQ0IgKXtcclxuICAgICAgb25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGJvcmRlckJveC52aXNpYmxlID0gaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIGlmIChfaGVhZGVyKSB7XHJcbiAgICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgICAgX2hlYWRlci5ib3JkZXJCb3gudmlzaWJsZSA9IF9oZWFkZXIuaW50ZXJhY3Rpb24uaG92ZXJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG4gIGxldCBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSBmYWxzZTtcclxuICBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXIgPSAodmFsdWU9dHJ1ZSkgPT4ge1xyXG4gICAgaWYgKHZhbHVlICE9PSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIpIHtcclxuICAgICAgaXNTaG93bkluRm9sZGVySGVhZGVyID0gdmFsdWU7XHJcbiAgICAgIC8vZ3JvdXAuZm9sZGVySGVhZGVyT2JqZWN0ID0gdmFsdWUgPyBnZXRGb2xkZXJIZWFkZXJPYmplY3QgOiBudWxsO1xyXG4gICAgICAvL3h4eDogY2FuJ3QgdXNlIG9yZGluYXJ5IGFkZC4uLlxyXG4gICAgICBfaGVhZGVyID0gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCk7XHJcbiAgICAgIGlmICh2YWx1ZSkgZ3JvdXAuZm9sZGVyLmFkZEhlYWRlckl0ZW0oX2hlYWRlcik7XHJcbiAgICAgIGVsc2UgX2hlYWRlci52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2lzU2hvd25JbkZvbGRlckhlYWRlcicsIHtcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gaXNTaG93bkluRm9sZGVySGVhZGVyIH0sXHJcbiAgICBzZXQ6IGdyb3VwLnNob3dJbkZvbGRlckhlYWRlclxyXG4gIH0pO1xyXG4gIGxldCBfaGVhZGVyO1xyXG4gIGZ1bmN0aW9uIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHtcclxuICAgIGlmIChfaGVhZGVyKSByZXR1cm4gX2hlYWRlcjtcclxuICAgIGxldCBzaXplID0gTGF5b3V0LlBBTkVMX0hFSUdIVCAqIDAuNjtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoc2l6ZSwgc2l6ZSwgZGVwdGgpO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoc2l6ZSowLjUsIDAsIDApO1xyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IHRydWU7XHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2gocmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwpO1xyXG4gICAgX2hlYWRlciA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBzaWRlLWVmZmVjdC4uLlxyXG4gICAgLy8geCBwb3NpdGlvbiBpcyBzZXQgaW4gZm9sZGVyIHBlcmZvcm1IZWFkZXJMYXlvdXQoKVxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBcclxuICAgIC8vVE9ETzogZ2V0IHRoaXMgdG8gd29yay4uLiBhZGQgdG9vbHRpcFxyXG4gICAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBkZXB0aCwgdHJ1ZSApO1xyXG4gICAgX2hlYWRlci5ib3JkZXJCb3ggPSBib3JkZXJCb3g7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjb25zdCBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyaygwLjQgKiBzaXplIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkUpO1xyXG4gICAgX2hlYWRlci5jaGVja21hcmsgPSBjaGVja21hcms7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZChjaGVja21hcmspO1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oaGl0c2NhblZvbHVtZSk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oJ29uUHJlc3NlZCcsIGhhbmRsZUhlYWRlclByZXNzKTtcclxuICAgIF9oZWFkZXIuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuXHJcbiAgICAvL2FkZCB1cGRhdGVDb250cm9sIG1ldGhvZCBoZXJlIC0gYXR0ZW1wdCB0byBtYWtlIGdlbmVyaWMgdmVyc2lvbiBpbiBmb2xkZXIgd2FzIGluYWRlcXVhdGVcclxuICAgIF9oZWFkZXIudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiB7XHJcbiAgICAgIGlmIChzdGF0ZS5saXN0ZW4pIHtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vbmI6IGludGVyYWN0aW9uIHdpbGwgYmUgZnJvbSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSBzY29wZSwgXHJcbiAgICAgIC8vbm90IHRoZSBtYWluIG9uZSB0aGF0IGFwcGxpZXMgdGhhdCBhcHBsaWVzIHRvIHRoZSBvcmRpbmFyeSBjb250cm9sLlxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBfaGVhZGVyO1xyXG4gIH1cclxuXHJcbiAgLy9UT0RPIHJldmlldyBuZWVkIGZvciBzZXBhcmF0ZSBoZWFkZXIgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uXHJcbiAgZnVuY3Rpb24gaGFuZGxlSGVhZGVyUHJlc3MocCl7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyLnZpc2libGUgPT09IGZhbHNlIHx8IF9oZWFkZXIudmlzaWJsZSA9PT0gZmFsc2UpIHJldHVybjtcclxuICAgIHN0YXRlLnZhbHVlID0gIXN0YXRlLnZhbHVlO1xyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdGF0ZS52YWx1ZTtcclxuICAgIGlmIChvbkNoYW5nZWRDQikgb25DaGFuZ2VkQ0Ioc3RhdGUudmFsdWUpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgIC8vbWFrZSBzdXJlIHZpZXcgaXMgYWxzbyB1cCB0byBkYXRlOyB1cGRhdGVWaWV3KCkgd29uJ3QgaGFwcGVuIHdoZW4gcGFyZW50IGZvbGRlciBpcyBjb2xsYXBzZWRcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICAvL2FsbCBsYXlvdXQgZXRjIGlzIGRvbmUgaW5zaWRlIHNldEhlaWdodCwgd2hpY2ggaXMgY2FsbGVkIG9uY2UgYXQgc3RhcnQuXHJcbiAgLy9hbnkgY2FsbGJhY2tzIGV0YyByZW1haW4gYXNzb2NpYXRlZCB3aXRoICdncm91cCcuXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gbmV3SGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKHBhbmVsKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IG5ld0hlaWdodDtcclxuICAgIFxyXG4gICAgY29uc3QgQ0hFQ0tCT1hfV0lEVEggPSBuZXdIZWlnaHQgLSBDSEVDS0JPWF9QQUQ7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9IRUlHSFQgPSBDSEVDS0JPWF9XSURUSDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0RFUFRIID0gZGVwdGg7XHJcbiAgICBjb25zdCBDSEVDS01BUktfU0laRSA9IDAuNCAqIENIRUNLQk9YX1dJRFRIIC8gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIG5ld0hlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICBcclxuICAgIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBDSEVDS0JPWF9XSURUSCwgQ0hFQ0tCT1hfSEVJR0hULCBDSEVDS0JPWF9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIENIRUNLQk9YX1dJRFRIICogMC41LCAwLCAwICk7XHJcbiAgXHJcbiAgXHJcbiAgICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuICBcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgXHJcbiAgICAvLyAgb3V0bGluZSB2b2x1bWVcclxuICAgIC8vIGNvbnN0IG91dGxpbmUgPSBuZXcgVEhSRUUuQm94SGVscGVyKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAvLyBvdXRsaW5lLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLk9VVExJTkVfQ09MT1IgKTtcclxuICBcclxuICAgIC8vICBjaGVja2JveCB2b2x1bWVcclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5DSEVDS0JPWF9CR19DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcbiAgXHJcbiAgXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBuZXdIZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0NIRUNLQk9YICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gICAgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBDSEVDS0JPWF9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfREVQVEgsIHRydWUgKTtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKCBDSEVDS01BUktfU0laRSApO1xyXG4gICAgY2hlY2ttYXJrLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTE7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggY2hlY2ttYXJrICk7XHJcbiAgXHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklELCBib3JkZXJCb3ggKTtcclxuICBcclxuICAgIC8vIGdyb3VwLmFkZCggZmlsbGVkVm9sdW1lLCBvdXRsaW5lLCBoaXRzY2FuVm9sdW1lLCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuICBcclxuICAgIGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICBcclxuICBcclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG4gICAgXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdO1xyXG4gICAgICB9XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgXHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KGhlaWdodCk7XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4gKiBUaGlzIHNob3VsZCBsb29rIGxpa2UgYW4gaW1hZ2VidXR0b24gd2l0aCBhIHNvbGlkIGNvbG9yIE1lc2hCYXNpY01hdGVyaWFsXHJcbiAqIFdoZW4gcHJlc3NlZCBpdCBjb3VsZCBicmluZyB1cCBzb21lIGtpbmQgb2YgcGlja2VyIGRlcGVuZGluZyBvbiBjb25maWd1cmF0aW9uLlxyXG4gKlxyXG4gKiBGb3Igbm93LCBqdXN0IGdvaW5nIHdpdGggUkdCIHNsaWRlcnMgYXMgSSBzaG91bGRuJ3Qgc3BlbmQgdG9vIGxvbmcgb24gdGhpcyBBVE0sXHJcbiAqIGJ1dCB2ZXJ5IHRlbXB0ZWQgYnkgcHJvc3BlY3Qgb2YgYW4gSFMgc3F1YXJlIHdpdGggViBzbGlkZXIuLi5cclxuICogb3IgSCBzbGlkZXIgYW5kIFNWIHNxdWFyZSB3aGljaCBzZWVtcyB0byBiZSB3aGF0IGRhdC5ndWkgdXNlcy5cclxuICogT3Igc29tZXRoaW5nIGZhbmNpZXIgbGlrZSBhIGh1ZSBjaXJjbGUgYXJvdW5kIGFuIFNWIHRyaWFuZ2xlIGV0YyBldGMuXHJcbiAqXHJcbiAqXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuLy9zbmlwcGV0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2h1Z2hzay9nbHNsLWhzdjJyZ2IvYmxvYi9tYXN0ZXIvaW5kZXguZ2xzbFxyXG4vLyhub3QgZ29pbmcgdG8gdGhlIGxlbmd0aHMgb2YgZ2xzbGlmeSwganVzdCBjb3B5aW5nIHRoZSBmdW5jdGlvbilcclxuY29uc3QgaHN2MnJnYiA9IGBcclxudmVjMyBoc3YycmdiKHZlYzMgYykge1xyXG4gICAgdmVjNCBLID0gdmVjNCgxLjAsIDIuMCAvIDMuMCwgMS4wIC8gMy4wLCAzLjApO1xyXG4gICAgdmVjMyBwID0gYWJzKGZyYWN0KGMueHh4ICsgSy54eXopICogNi4wIC0gSy53d3cpO1xyXG4gICAgcmV0dXJuIGMueiAqIG1peChLLnh4eCwgY2xhbXAocCAtIEsueHh4LCAwLjAsIDEuMCksIGMueSk7XHJcbn1gO1xyXG5cclxuY29uc3QgVmVydFNoYWRlciA9IGBcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZVdiA9IHV2O1xyXG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4pO1xyXG59XHJcbmA7XHJcblxyXG5jb25zdCBTVkZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdmVjMyBoc3YgPSB2ZWMzKHNlbGVjdGVkSFNWLngsIHZVdik7XHJcblxyXG4gICAgLy8gZHJhdyBhIGJsYWNrIGNpcmNsZSBhcm91bmQgc2VsZWN0ZWQgU1YuXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIGxlc3MgaG91c2VrZWVwaW5nXHJcbiAgICAvLyBuZWVkIHRvIGtub3cgYXNwZWN0IHJhdGlvIGlmIEkgd2FudCBpdCB0byBiZSBhIHByb3BlciBjaXJjbGUsIHRob3VnaC5cclxuICAgIGZsb2F0IGQgPSBsZW5ndGgoc2VsZWN0ZWRIU1YueXogLSB2VXYpO1xyXG4gICAgaWYgKGQgPCAwLjAxNSAmJiBkID4gMC4wMSkgaHN2LnogPSAwLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKGhzdik7XHJcbiAgICBnbF9GcmFnQ29sb3IudyA9IDEuMDsgLy8gc2pwdFxyXG59XHJcbmA7XHJcblxyXG5jb25zdCBIU2xpZGVyRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICAvLyBkcmF3IGEgcmVjdGFuZ3VsYXIgaW5kaWNhdG9yIGFyb3VuZCBzZWxlY3RlZCBIXHJcbiAgICAvLyBtaWdodCBsb29rIGJldHRlciB2aWEgc2VwYXJhdGUgdGhyZWUgb2JqZWN0LCBidXQgc2hhZGVyIGlzIHNpbXBsZXJcclxuICAgIGZsb2F0IGRpc3QgPSBhYnMoc2VsZWN0ZWRIU1YueCAtIHZVdi54KTtcclxuICAgIGJvb2wgaW5kaWNhdG9yID0gZGlzdCA8IDAuMDEgJiYgZGlzdCA+IDAuMDA1O1xyXG4gICAgZmxvYXQgdiA9IGluZGljYXRvciA/IDAuIDogMS47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYih2ZWMzKHZVdi54LCAxLiwgdikpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLncgPSAxLjA7IC8vIHNqcHRcclxufVxyXG5gO1xyXG5cclxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNzI0MjE0NC9qYXZhc2NyaXB0LWNvbnZlcnQtaHNiLWhzdi1jb2xvci10by1yZ2ItYWNjdXJhdGVseVxyXG4vL3doeSBub3QgdXNlIFRIUkVFLkNvbG9yIG1ldGhvZHM/XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiBoICBPYmplY3QgPSB7aDp4LCBzOnksIHY6en1cclxuICogT1JcclxuICogaCwgcywgdlxyXG4qL1xyXG5mdW5jdGlvbiBIU1Z0b1JHQihoLCBzLCB2KSB7XHJcbiAgICB2YXIgciwgZywgYiwgaSwgZiwgcCwgcSwgdDtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgLy9oYWNrIHRvIHRha2UgVEhSRUUuVmVjdG9yMy4uLlxyXG4gICAgICAgIGlmIChoLnggIT09IHVuZGVmaW5lZCkgcyA9IGgueSwgdiA9IGgueiwgaCA9IGgueDtcclxuICAgICAgICBlbHNlIHMgPSBoLnMsIHYgPSBoLnYsIGggPSBoLmg7XHJcbiAgICB9XHJcbiAgICBpID0gTWF0aC5mbG9vcihoICogNik7XHJcbiAgICBmID0gaCAqIDYgLSBpO1xyXG4gICAgcCA9IHYgKiAoMSAtIHMpO1xyXG4gICAgcSA9IHYgKiAoMSAtIGYgKiBzKTtcclxuICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyk7XHJcbiAgICBzd2l0Y2ggKGkgJSA2KSB7XHJcbiAgICAgICAgY2FzZSAwOiByID0gdiwgZyA9IHQsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDE6IHIgPSBxLCBnID0gdiwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMjogciA9IHAsIGcgPSB2LCBiID0gdDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAzOiByID0gcCwgZyA9IHEsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDQ6IHIgPSB0LCBnID0gcCwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNTogciA9IHYsIGcgPSBwLCBiID0gcTsgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHI6IHIsXHJcbiAgICAgICAgZzogZyxcclxuICAgICAgICBiOiBiXHJcbiAgICB9O1xyXG59XHJcbi8qIGFjY2VwdHMgcGFyYW1ldGVyc1xyXG4gKiByICBPYmplY3QgPSB7ciwgZywgYn1cclxuICogT1JcclxuICogciwgZywgYlxyXG4qL1xyXG5mdW5jdGlvbiBSR0J0b0hTVihyLCBnLCBiKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIGcgPSByLmcsIGIgPSByLmIsIHIgPSByLnI7XHJcbiAgICB9XHJcbiAgICB2YXIgbWF4ID0gTWF0aC5tYXgociwgZywgYiksIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpLFxyXG4gICAgICAgIGQgPSBtYXggLSBtaW4sXHJcbiAgICAgICAgaCxcclxuICAgICAgICBzID0gKG1heCA9PT0gMCA/IDAgOiBkIC8gbWF4KSxcclxuICAgICAgICB2ID0gbWF4O1xyXG5cclxuICAgIHN3aXRjaCAobWF4KSB7XHJcbiAgICAgICAgY2FzZSBtaW46IGggPSAwOyBicmVhaztcclxuICAgICAgICBjYXNlIHI6IGggPSAoZyAtIGIpICsgZCAqIChnIDwgYiA/IDY6IDApOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGc6IGggPSAoYiAtIHIpICsgZCAqIDI7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgYjogaCA9IChyIC0gZykgKyBkICogNDsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBoOiBoLFxyXG4gICAgICAgIHM6IHMsXHJcbiAgICAgICAgdjogdixcclxuICAgICAgICB4OiBoLCB5OiBzLCB6OiB2IC8vc28gdGhhdCB3ZSBjYW4gZG8gVmVjdG9yMy5jb3B5KHRoaXMpXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDb2xvclBpY2tlcigge1xyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lLCAvL211c3QgYmUgYSBUSFJFRS5Db2xvciBmb3Igbm93Li4uIHNob3VsZCByZWZlciB0byBvcmlnaW5hbCBkYXQuZ3VpIHRvIHNlZSB3aGF0IGl0IHRha2VzXHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIIC8gMy5cclxufSA9IHt9KSB7XHJcbiAgICAvLyBtYWtlIHRoZSBtYWluIGdyb3VwIGJlICpkaXJlY3RseSogdGhlIG9uZSByZXR1cm5lZCBieSBjcmVhdGVJbWFnZUJ1dHRvbjtcclxuICAgIC8vIHdlJ2xsIHRha2UgY2FyZSBvZiBkeW5hbWljYWxseSBhZGRpbmcgYW5kIHJlbW92aW5nIGNoaWxkcmVuIGJhc2VkIG9uIGF0dGFjaGVkLi4uXHJcbiAgICAvLyB3aWxsIHdhbnQgdG8gdGhpbmsgYWJvdXQgbGlzdGVuZXIgZnVuY3Rpb25zIGV0Yy5cclxuICAgIGxldCBmdW5jID0gdG9nZ2xlRGV0YWlsUGFuZWw7XHJcbiAgICBsZXQgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTsgLy9mb3Igbm93LCB0aGlzJ2QgYmV0dGVyIGJlIGEgVEhSRUUuQ29sb3Igb3Igd2UnbGwgZnJlYWsgb3V0LlxyXG4gICAgY29uc3QgYyA9IFJHQnRvSFNWKGNvbG9yKTtcclxuICAgIGNvbnN0IHVuaWZvcm1zID0ge3NlbGVjdGVkSFNWOiB7dmFsdWU6IG5ldyBUSFJFRS5WZWN0b3IzKGMuaCwgYy5zLCBjLnYpfX07XHJcbiAgICBjb25zdCBpbWFnZSA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IGNvbG9yfSk7XHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgY29uc3QgY2hhbmdlQ29sb3JPbkhvdmVyID0gZmFsc2U7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHtcclxuICAgICAgICBsaXN0ZW46IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgLy9UT0RPIG1ha2Ugc3VyZSBjb2xvciBwYXRjaCBvY2N1cGllcyBmdWxsIHdpZHRoLiAgQWRkIHRleHQgbGFiZWwgd2l0aCBoZXggdmFsdWU/XHJcbiAgICBjb25zdCBncm91cCA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgICB0ZXh0Q3JlYXRvciwgZnVuYywgaW1hZ2UsIHByb3BlcnR5TmFtZSwgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGNoYW5nZUNvbG9yT25Ib3ZlclxyXG4gICAgfSk7XHJcbiAgICBncm91cC5ndWlUeXBlID0gXCJDb2xvclBpY2tlclwiO1xyXG5cclxuICAgIHZhciBwYW5lbDtcclxuXHJcbiAgICBmdW5jdGlvbiBjaGFuZ2VGbigpIHtcclxuICAgICAgICBpbWFnZS5jb2xvci5zZXQoY29sb3IpO1xyXG4gICAgICAgIGV2ZW50cy5lbWl0KCdvbkNoYW5nZScsIGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYW5jeVBhbmVsID0gdHJ1ZTtcclxuXHJcbiAgICBmdW5jdGlvbiBzZXRQYW5lbFBvc2l0aW9uKCkge1xyXG4gICAgICAgIGlmICghcGFuZWwpIHJldHVybjtcclxuICAgICAgICBwYW5lbC5wb3NpdGlvbi5zZXQoMCwgMCwgNSpkZXB0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9nZ2xlRGV0YWlsUGFuZWwoKSB7XHJcbiAgICAgICAgaWYgKHBhbmVsKSB7XHJcbiAgICAgICAgICAgIHBhbmVsLnZpc2libGUgPSAhcGFuZWwudmlzaWJsZTtcclxuICAgICAgICAgICAgaWYgKHBhbmVsLnZpc2libGUpIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHdvdWxkIGJlIGhhbmR5IHRvIGhhdmUgYSB3YXkgdG8gbWFrZSBuYXJyb3dlciBwYW5lbFxyXG4gICAgICAgICAgICBwYW5lbCA9IGRhdC5HVUlWUi5jcmVhdGUoXCJDb2xvciBDaG9vc2VyXCIpO1xyXG4gICAgICAgICAgICBwYW5lbC5oaWRlSGVhZGVyKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZmFuY3lQYW5lbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgU1ZNYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXM6IHVuaWZvcm1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlcjogVmVydFNoYWRlcixcclxuICAgICAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogU1ZGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNldFNWID0gKHApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS55ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueiA9IHAubG9jYWxQb2ludC55O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHdpZGUgPSB0cnVlLCBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEgvMTA7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0U1YsIFNWTWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9XSURUSCAvIDIsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBITWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IEhTbGlkZXJGcmFnU2hhZGVyXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNldEgocCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnggPSBwLmxvY2FsUG9pbnQueDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gSFNWdG9SR0IodW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldFJHQihjLnIsIGMuZywgYy5iKTtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIEhNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgLy9UT0RPOiBjaGVjayBsYXlvdXRcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZFhZQ29udHJvbGxlcihzZXRILCBITWF0ZXJpYWwsIHdpZGUsIExheW91dC5QQU5FTF9IRUlHSFQsIGRlcHRoLCBidXR0b25EZXB0aCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdyJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAnZycsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2InLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3JvdXAuYWRkKHBhbmVsKTtcclxuICAgICAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKHBhbmVsKTtcclxuICAgICAgICAgICAgc2V0UGFuZWxQb3NpdGlvbigpO1xyXG4gICAgICAgICAgICBwYW5lbC5mb2xkZXIgPSBncm91cC5mb2xkZXI7IC8vbWlnaHQgc3RpbGwgd2FudCB0byBkb3VibGUgY2hlY2sgZm9sZGVyIGhpZXJhcmNoeVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgIGV2ZW50cy5vbignb25DaGFuZ2UnLCBjYWxsYmFjayk7XHJcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsVXBkYXRlQ29udHJvbCA9IGdyb3VwLnVwZGF0ZUNvbnRyb2w7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApIHtcclxuICAgICAgICBpZiAoc3RhdGUubGlzdGVuKSBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICBvcmlnaW5hbFVwZGF0ZUNvbnRyb2woaW5wdXRPYmplY3RzKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCkge1xyXG4gICAgICAgIC8vb2JqZWN0IHJlZiBtaWdodCBoYXZlIGNoYW5nZWQsIGFzIHdlbGwgYXMgdmFsdWUuXHJcbiAgICAgICAgLy9ldmVuIGlmIHJlZiBoYXNuJ3QgY2hhbmdlZCwgdmFsdWUgc3RpbGwgbWlnaHQndmUsIGFuZCB3ZSdyZSBub3QgY3VycmVudGx5IHJlZmxlY3RpbmcgdGhhdC5cclxuICAgICAgICBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgIGltYWdlLmNvbG9yLmNvcHkoY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgU3ViZGl2aXNpb25Nb2RpZmllciBmcm9tICcuLi90aGlyZHBhcnR5L1N1YmRpdmlzaW9uTW9kaWZpZXInO1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIDEsIDEgKTtcclxuICBjb25zdCBtb2RpZmllciA9IG5ldyBUSFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyKCAxICk7XHJcbiAgbW9kaWZpZXIubW9kaWZ5KCByZWN0ICk7ICAvLyByZWFsbG93ZWQgc2pwdFxyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gIGlmICghd2lkZSkgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgZWxzZSB7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAwLjc1O1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi55ID0gMC4wMTsgLy9YWFggbWFnaWMgbnVtYmVyXHJcbiAgfVxyXG5cclxuICB2YXIgbWF0ZXJpYWw7XHJcbiAgaWYgKGltYWdlLmlzTWF0ZXJpYWwpIHtcclxuICAgIG1hdGVyaWFsID0gaW1hZ2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgbWF0ZXJpYWwpO1xyXG4gIH1cclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgLy9idXR0b24gbGFiZWwgcmVtb3ZlZDsgbWlnaHQgd2FudCBvcHRpb25zIGxpa2UgYSBob3ZlciBsYWJlbCBpbiBmdXR1cmUuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGlmICh3aWRlKSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIC8vVE9ETzogZHJhZyBhbmQgaG92ZXJcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdob3ZlcmluZycsIGhhbmRsZUhvdmVyICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlUHJlc3NpbmcgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgbGV0IGhvdmVyRnVuYyA9IHVuZGVmaW5lZDtcclxuICAvLyBJIG1pZ2h0IHlldCBkZWNpZGUgdG8gY2hhbmdlIHRoaXMgaW50ZXJmYWNlLlxyXG4gIC8vIG1pZ2h0IHVzZSBhIGRpZmZlcmVudCBuYW1lLCBtaWdodCB3YW50IHRvIGFkZCBsaXN0ZW5lcnMgdG8gZXZlbnRcclxuICAvLyByYXRoZXIgdGhhbiBqdXN0IHNldCBjYWxsYmFjayBmdW5jdGlvbi5cclxuICBncm91cC5vbkhvdmVyID0gZiA9PiB7XHJcbiAgICBob3ZlckZ1bmMgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBncm91cC5vblByZXNzaW5nID0gZiA9PiB7XHJcbiAgICBwcmVzc2luZyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhvdmVyKCBwICl7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChob3ZlckZ1bmMpIGhvdmVyRnVuYyhwKTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy9pdCBzaG91bGQgYmUgdGhhdCB0aGUgY2hlY2tzIGluIGluZGV4LmpzIG1lYW4gdGhhdCBtZXRob2RzIGRvbid0IGdldCBjYWxsZWQgb24gaW52aXNpYmxlXHJcbiAgICAvL29iamVjdHMsIHJlbmRlcmluZyB0aGVzZSB0ZXN0cyByZWR1bmRhbnQuLi4gaG93ZXZlciwgdGhhdCBkb2Vzbid0IGFwcGVhciB0byBiZSB0aGUgY2FzZS5cclxuICAgIC8vZXhwZXJpZW5jZWQgc29tZSBidWdzIHBhcnRpY3VsYXJseSB3aXRoICdtb2RhbCBlZGl0b3InIHR5cGUgcGFuZWxzLlxyXG4gICAgLy9UT0RPOiBlaXRoZXIgbWFrZSBzdXJlIGludmlzaWJsZSBvYmplY3RzIGFyZW4ndCBjYWxsZWQgaW4gdGhlIGZpcnN0IHBsYWNlLFxyXG4gICAgLy9vciBtYWtlIHN1cmUgYWxsIHR5cGVzIG9mIG9iamVjdCBkbyB0aGlzIG1vcmUgdGhvcm91Z2ggdmlzaWJpbGl0eSBjaGVjay4uLlxyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAob2JqZWN0KSBvYmplY3RbIHByb3BlcnR5TmFtZSBdKHApO1xyXG4gICAgaWYgKGZ1bmMpIGZ1bmMocCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vY29tcHV0ZSB4ICYgeSBhcyBub3JtYWxpc2VkIGNvb3JkaW5hdGVzIGZyb20gcC5wb2ludFxyXG4gIC8vY291bGQgY29uc2lkZXIgbW92aW5nIHRoaXMgY29tcHV0YXRpb24gaW50byBpbnRlcmFjdGlvbi5qcyBwZXJmb3JtU3RhdGVFdmVudHMoKVxyXG4gIGZ1bmN0aW9uIGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHBvaW50KSB7XHJcbiAgICBjb25zdCBwID0gaGl0c2NhblZvbHVtZS53b3JsZFRvTG9jYWwocG9pbnQpO1xyXG4gICAgcC54IC89IEJVVFRPTl9XSURUSDtcclxuICAgIHAueSAvPSBCVVRUT05fSEVJR0hUO1xyXG4gICAgcC55ICs9IDAuNTtcclxuICAgIHAueCA9IE1hdGgubWF4KE1hdGgubWluKHAueCwgMSksIDApO1xyXG4gICAgcC55ID0gTWF0aC5tYXgoTWF0aC5taW4ocC55LCAxKSwgMCk7XHJcbiAgICByZXR1cm4gcDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZVByZXNzaW5nKCBwICkge1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgcHJlc3NpbmcgYXQgKCR7cG9pbnQueH0sICR7cG9pbnQueX0pYCk7IC8vZmlyc3QgaW5zdGFuY2Ugb2YgJ3ByZXNzaW5nJyBpcyBhbHdheXMgYXQgKDEsIDEpXHJcbiAgICAvL25iLCBsaWtlbHkgdG8gbmVlZCBhIGRpZmZlcmVudCBzdHJhdGVneSBmb3IgZHVhbCB3aWVsZGluZ1xyXG4gICAgaWYgKHByZXNzaW5nKSBwcmVzc2luZyhwKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYgKCFtYXRlcmlhbC5jb2xvcikgcmV0dXJuO1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweENDQ0NDQyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqIFxyXG4gKiBHcmlkIG9mIGJ1dHRvbnMgd2l0aCBpbWFnZXMgb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBpbWFnZWJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtjcmVhdGVUZXh0TGFiZWwsIGNyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3RzLCAvLyBhcnJheSBvZiB7ZnVuYywgaW1hZ2UgfCB0ZXh0LCB0aXAob3B0aW9uYWwpLCByZWxlYXNlKG9wdGlvbmFsKX1cclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICByb3dIZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY29sdW1ucyA9IDRcclxufSA9IHt9ICl7XHJcbiAgXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdCBtYXJnaW4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMztcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSAod2lkdGggLSBtYXJnaW4pICogKDEvY29sdW1ucyk7XHJcbiAgLy9UT0RPOiBhZGQgc2V0Um93SGVpZ2h0IG1ldGhvZFxyXG4gIGxldCBCVVRUT05fSEVJR0hUID0gcm93SGVpZ2h0ID4gMCA/IHJvd0hlaWdodCA6IEJVVFRPTl9XSURUSDtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uZ3JpZFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke29iamVjdHN9XWA7XHJcbiAgXHJcbiAgY29uc3Qgcm93cyA9IE1hdGguY2VpbChvYmplY3RzLmxlbmd0aCAvIGNvbHVtbnMpO1xyXG4gIGxldCBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgZ3JvdXAuc2V0Um93SGVpZ2h0ID0gaCA9PiB7XHJcbiAgICByb3dIZWlnaHQgPSBCVVRUT05fSEVJR0hUID0gaDtcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcbiAgICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGhpZ2hsaWdodExhc3RQcmVzc2VkID0gZmFsc2U7XHJcbiAgbGV0IGxhc3RQcmVzc2VkID0gbnVsbDtcclxuICBsZXQgbGFzdFByZXNzZWRDb2w7XHJcbiAgZ3JvdXAuaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSAoY29sID0gMHgzMzU1RUUpID0+IHtcclxuICAgICAgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBjb2wgIT09IGZhbHNlO1xyXG4gICAgICBsYXN0UHJlc3NlZENvbCA9IGNvbDtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBcclxuICBsZXQgcGFuZWwsIGdyYWJJbnRlcmFjdGlvbiwgYnV0dG9ucyA9IFtdO1xyXG5cclxuICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaW5pdFBhbmVsKCkge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgcGFuZWwuYWRkKGNvbnRyb2xsZXJJRCk7XHJcbiAgICBcclxuICAgIGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5ncm91cC5yZW1vdmUoYikpO1xyXG4gICAgYnV0dG9ucyA9IFtdO1xyXG4gICAgZ3JvdXAuZ3VpQ2hpbGRyZW4gPSBidXR0b25zO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBsYXlvdXRCdXR0b25zKCkge1xyXG4gICAgaW5pdFBhbmVsKCk7XHJcbiAgICAvL1RPRE86IHBhZGRpbmdcclxuICAgIGNvbnN0IGJ1dHRvbldQYWRkZWQgPSBCVVRUT05fV0lEVEggKiAwLjk5LCBidXR0b25IUGFkZGVkID0gQlVUVE9OX0hFSUdIVCAqIDAuOTk7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGJ1dHRvbldQYWRkZWQsIGJ1dHRvbkhQYWRkZWQsIDEsIDEgKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBidXR0b25XUGFkZGVkIC8gMiwgLWJ1dHRvbkhQYWRkZWQgLyAyLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgICB2YXIgaSA9IDA7XHJcbiAgICBcclxuICAgIC8vVE9ETzogdG9nZ2xlcyByYXRoZXIgdGhhbiB0cmlnZ2Vycy4uLlxyXG4gICAgb2JqZWN0cy5mb3JFYWNoKChvYmosIGkpID0+IHtcclxuICAgICAgICBpZiAoIW9iai5pbWFnZSAmJiAhb2JqLnRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc3ViZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9ub3RlOiByZWR1Y2luZyBuZXN0aW5nIGNvdWxkIGltcHJvdmUgcGVyZm9ybWFuY2UuXHJcbiAgICAgICAgc3ViZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VCdXR0b25HcmlkRWxlbWVudFwiO1xyXG4gICAgICAgIGdyb3VwLmFkZChzdWJncm91cCk7XHJcbiAgICAgICAgYnV0dG9ucy5wdXNoKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sID0gaSAlIGNvbHVtbnM7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gTWF0aC5mbG9vcihpIC8gY29sdW1ucyk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnggPSAoMipMYXlvdXQuUEFORUxfTUFSR0lOKSArIEJVVFRPTl9XSURUSCAqIGNvbDtcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi55ID0gKGhlaWdodC8yKSAtQlVUVE9OX0hFSUdIVCAqIHJvdztcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG5cclxuICAgICAgICAvLyAgaGl0c2NhbiB2b2x1bWUuXHJcbiAgICAgICAgLy8gVGhpcyBtYXRlcmlhbCBjb3VsZCBwcm9iYWJseSBiZSByZXVzZWQuXHJcbiAgICAgICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG5cclxuICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgICAgICBpZiAob2JqLmltYWdlKSBhcHBseUltYWdlVG9NYXRlcmlhbChvYmouaW1hZ2UsIG1hdGVyaWFsKTtcclxuICAgICAgICBpZiAob2JqLnRleHQpIHtcclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZShvYmoudGV4dCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpbiA9IDIqTGF5b3V0LkdSSURfQlVUVE9OX01BUkdJTjtcclxuICAgICAgICAgICAgbGV0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICBpZiAodyA+IEJVVFRPTl9XSURUSCAtIG1hcmdpbikge1xyXG4gICAgICAgICAgICAgICAgdGV4dC5jb25zdHJhaW5Cb3VuZHMoQlVUVE9OX1dJRFRIIC0gbWFyZ2luLCBCVVRUT05fSEVJR0hUIC0gbWFyZ2luKTsgLy88LS1cclxuICAgICAgICAgICAgICAgIGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLmFkZCh0ZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGV4dCA9IHRleHQ7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueCA9IG9iai50ZXh0WCB8fCAwLjUgKiAoQlVUVE9OX1dJRFRIIC0gdyk7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueSA9IG9iai50ZXh0WSB8fCAtMC41ICogQlVUVE9OX0hFSUdIVCAtIGg7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgICAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgICAgIC8vYnV0dG9uIGxhYmVsICYgZGVzY3JpcHRvciBsYWJlbCByZW1vdmVkLlxyXG4gICAgICAgIC8vVG9vbHRpcCB0ZXh0IG9wdGlvbiBhZGRlZC4gIE1pZ2h0IHdhbnQgdG8gYmUgYWJsZSB0byBwYXNzIGluIHJpY2hlciB0aGluZ3MuLi5cclxuICAgICAgICAvL21heWJlIGFuIGFyYml0cmFyeSBUSFJFRSBvYmplY3Qgd291bGQgd29yayB3ZWxsLi4uXHJcbiAgICAgICAgaWYgKG9iai50aXApIHtcclxuICAgICAgICAgICAgY29uc3QgdGlwVGV4dCA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIG9iai50aXAsIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vc3ViZ3JvdXAuYWRkKHRpcFRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50aXBUZXh0ID0gdGlwVGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy9wYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcbiAgICAgICAgc3ViZ3JvdXAuYWRkKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgcGFuZWwuYWRkKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAgICAgICAgIGlmKCBzdWJncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vVE9ETzogc3RhbmRhcmRpc2UgaGFuZGxpbmcgb2YgZXhjZXB0aW9ucyBpbiBjYWxsYmFja3NcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIG9iai5mdW5jKCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIG9iai5lcnJvciA9IGUgfHwgJ3VuZGVmaW5lZCBleGNlcHRpb24nO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxhc3RQcmVzc2VkID0gb2JqO1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC40O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgICAgICAgICAgIGlmIChvYmoucmVsZWFzZSkgb2JqLnJlbGVhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9xdWljayBjb2xvciBoYWNrLi4uXHJcbiAgICAgICAgb2JqLmhvdmVyQ29sID0gb2JqLnRleHQgPyAweDg4OCA6IDB4RkZGRkZGO1xyXG4gICAgICAgIG9iai5ub0hvdmVyQ29sID0gb2JqLnRleHQgPyAweDExMSA6IDB4Q0NDQ0NDO1xyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChoaWdobGlnaHRMYXN0UHJlc3NlZCAmJiBsYXN0UHJlc3NlZCA9PT0gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGxhc3RQcmVzc2VkQ29sICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgPyBvYmouaG92ZXJDb2wgOiBvYmoubm9Ib3ZlckNvbCApO1xyXG4gICAgICAgICAgICBpZiAoc3ViZ3JvdXAudGlwVGV4dCkgc2V0VmlzaWJpbGl0eShzdWJncm91cCwgc3ViZ3JvdXAudGlwVGV4dCwgaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICAgIGlmIChvYmouZXJyb3IpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhBQTMzMzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3KCk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgc3ViZ3JvdXAuaGl0c2NhbiA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBtYWtpbmcgdGhpcyBzaW5nbGUgZWxlbWVudCByYXRoZXIgdGhhbiBhcnJheSxcclxuICAgICAgICAvL3RoYXQgbWVhbnMgdGhlc2UgJ3N1Ymdyb3VwJyBidXR0b25zIGFyZW4ndCBhY3RpbmcgZXhhY3RseSBhcyBub3JtYWwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzXHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5oaXRzY2FuID0gYnV0dG9ucy5tYXAoYj0+Yi5oaXRzY2FuKTsvLy5wdXNoKHBhbmVsKTtcclxuICAgIGdyb3VwLmhpdHNjYW4ucHVzaChwYW5lbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpIHtcclxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGI9PmIudXBkYXRlVmlldygpKTtcclxuICB9XHJcbiAgXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT57XHJcbiAgICAgICAgYi5pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICAvL2ludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVTbGlkZXIgZnJvbSAnLi9zbGlkZXInO1xyXG5pbXBvcnQgY3JlYXRlQ2hlY2tib3ggZnJvbSAnLi9jaGVja2JveCc7XHJcbmltcG9ydCBjcmVhdGVCdXR0b24gZnJvbSAnLi9idXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlRm9sZGVyIGZyb20gJy4vZm9sZGVyJztcclxuaW1wb3J0IGNyZWF0ZURyb3Bkb3duIGZyb20gJy4vZHJvcGRvd24nO1xyXG4vL1BKVDogSSdkIHJhdGhlciBpbmplY3QgY3VzdG9tIGV4dGVuc2lvbnMgbGlrZSB0aGlzLCBidXQgd2lsbCB3b3JrIHRoYXQgb3V0IGxhdGVyLlxyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlS2V5Ym9hcmQgZnJvbSAnLi9rZXlib2FyZCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0Ym94IGZyb20gJy4vdGV4dGJveCc7XHJcbmltcG9ydCBjcmVhdGVDb2xvclBpY2tlciBmcm9tICcuL2NvbG9ycGlja2VyJztcclxuaW1wb3J0ICogYXMgU0RGVGV4dCBmcm9tICcuL3NkZnRleHQnO1xyXG5pbXBvcnQgeyBpc0NvbnRyb2xsZXJWaXNpYmxlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGdsb2JhbEV2ZW50cyB9IGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuY29uc3QgR1VJVlIgPSAoZnVuY3Rpb24gREFUR1VJVlIoKXtcclxuXHJcbiAgLypcclxuICAgIFNERiBmb250XHJcbiAgKi9cclxuICBjb25zdCB0ZXh0Q3JlYXRvciA9IFNERlRleHQuY3JlYXRvcigpO1xyXG5cclxuXHJcbiAgLypcclxuICAgIExpc3RzLlxyXG4gICAgSW5wdXRPYmplY3RzIGFyZSB0aGluZ3MgbGlrZSBWSVZFIGNvbnRyb2xsZXJzLCBjYXJkYm9hcmQgaGVhZHNldHMsIGV0Yy5cclxuICAgIENvbnRyb2xsZXJzIGFyZSB0aGUgREFUIEdVSSBzbGlkZXJzLCBjaGVja2JveGVzLCBldGMuXHJcbiAgKi9cclxuICBjb25zdCBpbnB1dE9iamVjdHMgPSBbXTtcclxuICBjb25zdCBjb250cm9sbGVycyA9IFtdO1xyXG5cclxuICAvKlxyXG4gICAgRnVuY3Rpb25zIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY29udHJvbGxlciBpcyB2aXNpYmxlIChieSB3aGljaCB3ZVxyXG4gICAgbWVhbiBub3QgaGlkZGVuLCBub3QgJ3Zpc2libGUnIGluIHRlcm1zIG9mIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gZXRjKSwgYW5kXHJcbiAgICBmb3IgcmV0cmlldmluZyB0aGUgbGlzdCBvZiB2aXNpYmxlIGhpdHNjYW5PYmplY3RzIGR5bmFtaWNhbGx5LlxyXG4gICAgVGhpcyBtaWdodCBiZW5lZml0IGZyb20gc29tZSBjYWNoaW5nIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2l0aCBsYXJnZSBjb21wbGV4IEdVSXMuXHJcbiAgICBJIGhhdmVuJ3QgbWVhc3VyZWQgdGhlIGltcGFjdCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gZXRjLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkge1xyXG4gICAgLy8gbm90IHRlcnJpYmx5IGVmZmljaWVudFxyXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJzLmZpbHRlciggaXNDb250cm9sbGVyVmlzaWJsZSApO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSB7XHJcbiAgICAvL1hYWCBXQVJOSU5HOjo6XHJcbiAgICAvL3RoZXJlIGNvdWxkIGV4aXN0IHNpdHVhdGlvbnMgaW4gd2hpY2ggbWVtYmVycyBvZiBoaXRzY2FuIGZvciBhIHZpc2libGUgY29udHJvbGxlciBhcmUgbm90IHRoZW1zZWx2ZXMgdmlzaWJsZS5cclxuICAgIC8vdGhpcyBjYW4gaGFwcGVuIGZvciBlZyBpZiB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBwYXJ0aWN1bGFyIGhpdHNjYW4gaXMgaW4gYW4gaW52aXNpYmxlIG1vZGFsIGVkaXRvci5cclxuICAgIC8vd2UgY291bGQgY2hlY2sgdGhhdCwgYWRkaW5nIGEgbW9yZSByb2J1c3QgZmlsdGVyIHRvIGVhY2ggaGl0c2NhbiBhcnJheS4uLiBmb3Igbm93LCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcclxuICAgIC8vY29udHJvbGxlcnMgdG8gZWl0aGVyIG9ubHkgcmV0dXJuIGhpdHNjYW4gb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlLCBvciB0byBzZXQgJ3Zpc2libGUnIGV4cGxpY2l0bHkuXHJcbiAgICBjb25zdCB0bXAgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKS5tYXAoIG8gPT4geyByZXR1cm4gby5oaXRzY2FuLmZpbHRlcihoID0+IGgudmlzaWJsZSk7IH0gKVxyXG4gICAgcmV0dXJuIHRtcC5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgbGV0IG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGxldCBtb3VzZVJlbmRlcmVyID0gdW5kZWZpbmVkO1xyXG4gIGxldCBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkOyAvL2tlZXAgdHJhY2sgc28gdGhhdCB3ZSBkb24ndCBhdHRhY2ggbXVsdGlwbGUgZXZlbnRzIChwYXJ0aWN1bGFybHkgd2hlbiByZXNpemluZyB3aW5kb3cpXHJcbiAgXHJcbiAgbGV0IGF1dG9VcGRhdGUgPSB0cnVlO1xyXG5cclxuICBmdW5jdGlvbiBlbmFibGVNb3VzZSggY2FtZXJhLCByZW5kZXJlciApe1xyXG4gICAgbW91c2VFbmFibGVkID0gdHJ1ZTtcclxuICAgIG1vdXNlUmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgIG1vdXNlSW5wdXQubW91c2VDYW1lcmEgPSBjYW1lcmE7XHJcbiAgICBpZiAoY2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSB7XHJcbiAgICAgIGlmICghb25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSBmPT5mLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMub24oJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5sYXNlcjtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gZGlzYWJsZU1vdXNlKCl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgVGhlIGRlZmF1bHQgbGFzZXIgcG9pbnRlciBjb21pbmcgb3V0IG9mIGVhY2ggSW5wdXRPYmplY3QuXHJcbiAgKi9cclxuICBjb25zdCBsYXNlck1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjoweDU1YWFmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0pO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUxhc2VyKCl7XHJcbiAgICBjb25zdCBnID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBnLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDAsMCwwXSkpKTtcclxuICAgIC8vZy52ZXJ0IGljZXMucHVzaCggbmV3IFRIUkVFLlZlY3RvcjMoKSApO1xyXG4gICAgLy9nLnZlcnQgaWNlcy5wdXNoKCBuZXcgVEhSRUUuVmVjdG9yMygwLDAsMCkgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTGluZSggZywgbGFzZXJNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBIFwiY3Vyc29yXCIsIGVnIHRoZSBiYWxsIHRoYXQgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHlvdXIgbGFzZXIuXHJcbiAgKi9cclxuICBjb25zdCBjdXJzb3JNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg0NDQ0NDQsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9ICk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKCl7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgwLjAwNiwgNCwgNCApLCBjdXJzb3JNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBnZW5lcmljIElucHV0IHR5cGUuXHJcbiAgICBUYWtlcyBhbnkgVEhSRUUuT2JqZWN0M0QgdHlwZSBvYmplY3QgYW5kIHVzZXMgaXRzIHBvc2l0aW9uXHJcbiAgICBhbmQgb3JpZW50YXRpb24gYXMgYW4gaW5wdXQgZGV2aWNlLlxyXG5cclxuICAgIEEgbGFzZXIgcG9pbnRlciBpcyBpbmNsdWRlZCBhbmQgd2lsbCBiZSB1cGRhdGVkLlxyXG4gICAgQ29udGFpbnMgc3RhdGUgYWJvdXQgd2hpY2ggSW50ZXJhY3Rpb24gaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb3IgaG92ZXIuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBjcmVhdGVJbnB1dCggaW5wdXRPYmplY3QgPSBuZXcgVEhSRUUuR3JvdXAoKSApe1xyXG4gICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgIHJheWNhc3Q6IG5ldyBUSFJFRS5SYXljYXN0ZXIoIG5ldyBUSFJFRS5WZWN0b3IzKCksIG5ldyBUSFJFRS5WZWN0b3IzKCkgKSxcclxuICAgICAgbGFzZXI6IGNyZWF0ZUxhc2VyKCksXHJcbiAgICAgIGN1cnNvcjogY3JlYXRlQ3Vyc29yKCksXHJcbiAgICAgIG9iamVjdDogaW5wdXRPYmplY3QsXHJcbiAgICAgIHByZXNzZWQ6IGZhbHNlLFxyXG4gICAgICBncmlwcGVkOiBmYWxzZSxcclxuICAgICAgZXZlbnRzOiBuZXcgRW1pdHRlcigpLFxyXG4gICAgICBpbnRlcmFjdGlvbjoge1xyXG4gICAgICAgIGdyaXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmVzczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGhvdmVyOiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5hZGQoIGlucHV0LmN1cnNvciApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgTW91c2VJbnB1dC5cclxuICAgIEFsbG93cyB5b3UgdG8gY2xpY2sgb24gdGhlIHNjcmVlbiB3aGVuIG5vdCBpbiBWUiBmb3IgZGVidWdnaW5nLlxyXG4gICovXHJcbiAgY29uc3QgbW91c2VJbnB1dCA9IGNyZWF0ZU1vdXNlSW5wdXQoKTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlTW91c2VJbnB1dCgpe1xyXG4gICAgY29uc3QgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigtMSwtMSk7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCgpO1xyXG4gICAgaW5wdXQubW91c2UgPSBtb3VzZTtcclxuICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlT2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlUGxhbmUgPSBuZXcgVEhSRUUuUGxhbmUoKTtcclxuICAgIGlucHV0LmludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyAgc2V0IG15IGVuYWJsZU1vdXNlXHJcbiAgICBpbnB1dC5tb3VzZUNhbWVyYSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlbW92ZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpZiAoIWV2ZW50LmJ1dHRvbnMpIGlucHV0LnByZXNzZWQgPSBmYWxzZTsgIC8vIHJlZHVjZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIG1ha2VEcmFnZ2FibGUgZHJhZyBhbmQgdGhpcyBkcmFnXHJcblxyXG4gICAgICAvLyBpZiBhIHNwZWNpZmljIHJlbmRlcmVyIGhhcyBiZWVuIGRlZmluZWRcclxuICAgICAgaWYgKG1vdXNlUmVuZGVyZXIpIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gbW91c2VSZW5kZXJlci5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIG1vdXNlLnggPSAoIChldmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0KSAvIGNsaWVudFJlY3Qud2lkdGgpICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCAoZXZlbnQuY2xpZW50WSAtIGNsaWVudFJlY3QudG9wKSAvIGNsaWVudFJlY3QuaGVpZ2h0KSAqIDIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gZnVsbHNjcmVlblxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtb3VzZS54ID0gKCBldmVudC5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGggKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCApICogMiArIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmIChpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBwcmV2ZW50IG1vdXNlIGRvd24gZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGxpc3RlbmVycyAocG9seWZpbGwsIGV0YylcclxuICAgICAgICAvLyBjb21tZW50ZWQgb3V0IDI4IEFwcmlsIDIwMjIsIGdlbmVyYWxseSBwcmV0dHkgYmFkIHByYWN0aWNlXHJcbiAgICAgICAgLy8gZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7IC8vc29tZXRpbWVzIHdlIGNhcmUgYWJvdXQgdGhlIG1vdXNlIGJlaW5nIHByZXNzZWQsIGV2ZW4gb24gYmFja2dyb3VuZFxyXG4gICAgICAgLy93aWxsIGJlIHNldCBmYWxzZSBhdCBlbmQgb2YgZmlyc3QgdXBkYXRlLiBTaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHRvIGFkZCBhIG5ldyBwcm9wZXJ0eS4uLiBcclxuICAgICAgIC8vb25QcmVzc2VkIHNob3VsZCBiZSBhZGVxdWF0ZS5cclxuICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICB9LCB0cnVlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZXVwJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIGZ1bmN0aW9uIHVzZXJzIHJ1biB0byBnaXZlIERBVCBHVUkgYW4gaW5wdXQgZGV2aWNlLlxyXG4gICAgQXV0b21hdGljYWxseSBkZXRlY3RzIGZvciBWaXZlQ29udHJvbGxlciBhbmQgYmluZHMgYnV0dG9ucyArIGhhcHRpYyBmZWVkYmFjay5cclxuXHJcbiAgICBSZXR1cm5zIGEgbGFzZXIgcG9pbnRlciBzbyBpdCBjYW4gYmUgZGlyZWN0bHkgYWRkZWQgdG8gc2NlbmUuXHJcblxyXG4gICAgVGhlIGxhc2VyIHdpbGwgdGhlbiBoYXZlIHR3byBtZXRob2RzOlxyXG4gICAgbGFzZXIucHJlc3NlZCgpLCBsYXNlci5ncmlwcGVkKClcclxuXHJcbiAgICBUaGVzZSBjYW4gdGhlbiBiZSBib3VuZCB0byBhbnkgYnV0dG9uIHRoZSB1c2VyIHdhbnRzLiBVc2VmdWwgZm9yIGJpbmRpbmcgdG9cclxuICAgIGNhcmRib2FyZCBvciBhbHRlcm5hdGUgaW5wdXQgZGV2aWNlcy5cclxuXHJcbiAgICBGb3IgZXhhbXBsZS4uLlxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oKXsgbGFzZXIucHJlc3NlZCggdHJ1ZSApOyB9ICk7XHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbnB1dE9iamVjdCggb2JqZWN0ICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCBvYmplY3QgKTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5wcmVzc2VkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgY29uc3QgaGl0cyA9IGlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vIG9ubHkgcGF5IGF0dGVudGlvbiB0byBwcmVzc2VzIG92ZXIgdGhlIEdVSVxyXG4gICAgICBpZiAoZmxhZyAmJiBoaXRzICYmIChoaXRzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7XHJcbiAgICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmdyaXBwZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBpbnB1dC5ncmlwcGVkID0gZmxhZztcclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuY3Vyc29yID0gaW5wdXQuY3Vyc29yO1xyXG5cclxuICAgIGlmKCBUSFJFRS5WaXZlQ29udHJvbGxlciAmJiBvYmplY3QgaW5zdGFuY2VvZiBUSFJFRS5WaXZlQ29udHJvbGxlciApe1xyXG4gICAgICBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBvYmplY3QsIGlucHV0Lmxhc2VyLnByZXNzZWQsIGlucHV0Lmxhc2VyLmdyaXBwZWQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMucHVzaCggaW5wdXQgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQubGFzZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgSGVyZSBhcmUgdGhlIG1haW4gZGF0IGd1aSBjb250cm9sbGVyIHR5cGVzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG1pbiA9IDAuMCwgbWF4ID0gMTAwLjAgKXtcclxuICAgIGNvbnN0IHNsaWRlciA9IGNyZWF0ZVNsaWRlcigge1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG1pbiwgbWF4LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIHNsaWRlciApO1xyXG5cclxuICAgIHJldHVybiBzbGlkZXI7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGNoZWNrYm94ID0gY3JlYXRlQ2hlY2tib3goe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggY2hlY2tib3ggKTtcclxuXHJcbiAgICByZXR1cm4gY2hlY2tib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3RcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuYyB0byBjYWxsIGJhY2sgd2hlbiBidXR0b24gcHJlc3NlZFxyXG4gICAqIEBwYXJhbSB7Kn0gaW1hZ2UgY2FuIGJlIGZpbGVuYW1lLCBXZWJHTFJlbmRlclRhcmdldCBvciBNYXRlcmlhbFxyXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gd2lkZSB3aGV0aGVyIHRvIG1ha2UgYnV0dG9uIGZpbGwgZW50aXJlIHdpZHRoIG9mIHBhbmVsIChhcGkgc3ViamVjdCB0byBjaGFuZ2UpXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b24oZnVuYywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3Qgb2JqZWN0ID0geyBmOiBmdW5jIH07XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnZic7XHJcblxyXG5cclxuICAgIC8vc2VlIGFsc28gZm9sZGVyLmpzIHdoZXJlIHRoaXMgaXMgYWRkZWQgdG8gZ3JvdXAgb2JqZWN0Li4uXHJcbiAgICAvL2FzIHN1Y2ggdGhpcyBmdW5jdGlvbiBhbHNvIG5lZWRzIHRvIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBjcmVhdGVGb2xkZXIuXHJcbiAgICAvL3BlcmhhcHMgYWxsIG9mIHRoZXNlICdhZGRYJyBmdW5jdGlvbnMgY291bGQgYmUgaW5pdGlhbGx5IHB1dCBvbnRvIGFuIG9iamVjdCBzbyB0aGF0XHJcbiAgICAvL25ldyBhZGRpdGlvbnMgY291bGQgYmUgYWRkZWQgc2xpZ2h0bHkgbW9yZSBlYXNpbHkuXHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRYWUNvbnRyb2xsZXIocHJlc3NpbmcsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICcnO1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJlc3NpbmcsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJ1dHRvbik7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBUaGlzIGludGVyZmFjZSBtYXkgYmUgc3ViamVjdCB0byBjaGFuZ2UuICBBcmd1bWVudHMgYXJlIG9iamVjdHMgZGVzY3JpYmluZyBidXR0b25zXHJcbiAgRmlyc3Qgb2JqZWN0IG1heSBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b25QYW5lbChjb2xzLCAuLi5hcmdzKSB7XHJcbiAgICBsZXQgY29sdW1ucyA9IE51bWJlci5pc0ludGVnZXIoY29scykgPyBjb2xzIDogNDtcclxuICAgIGNvbnN0IG9iamVjdHMgPSBhcmdzO1xyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpKSBvYmplY3RzLnVuc2hpZnQoY29scylcclxuICAgIGNvbnN0IGdyaWQgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiBjb2x1bW5zfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGdyaWQpO1xyXG4gICAgcmV0dXJuIGdyaWQ7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRLZXlib2FyZCgga2V5TGlzdGVuZXIgKSB7XHJcbiAgICBpZiAoIWtleUxpc3RlbmVyKSBrZXlMaXN0ZW5lciA9IChrKSA9PiBjb25zb2xlLmxvZyhga2V5RG93biAke2t9YCk7XHJcbiAgICBjb25zdCBrYiA9IGNyZWF0ZUtleWJvYXJkKHtrZXlMaXN0ZW5lciwgdGV4dENyZWF0b3J9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goa2IpO1xyXG4gICAgcmV0dXJuIGtiO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVUZXh0Ym94KHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZUNvbG9yUGlja2VyKHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9wdGlvbnMgKXtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gY3JlYXRlRHJvcGRvd24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG9wdGlvbnNcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGRyb3Bkb3duICk7XHJcbiAgICByZXR1cm4gZHJvcGRvd247XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEFuIGltcGxpY2l0IEFkZCBmdW5jdGlvbiB3aGljaCBkZXRlY3RzIGZvciBwcm9wZXJ0eSB0eXBlXHJcbiAgICBhbmQgZ2l2ZXMgeW91IHRoZSBjb3JyZWN0IGNvbnRyb2xsZXIuXHJcblxyXG4gICAgRHJvcGRvd246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9iamVjdFR5cGUgKVxyXG5cclxuICAgIFNsaWRlcjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZOdW1iZXJUeXBlLCBtaW4sIG1heCApXHJcblxyXG4gICAgQ2hlY2tib3g6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mQm9vbGVhblR5cGUgKVxyXG5cclxuICAgIEJ1dHRvbjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZGdW5jdGlvblR5cGUgKVxyXG5cclxuICAgIE5vdCB1c2VkIGRpcmVjdGx5LiBVc2VkIGJ5IGZvbGRlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApe1xyXG5cclxuICAgIGlmKCBvYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG5cclxuICAgIGlmIChvYmplY3QuaXNGb2xkZXIpIHJldHVybiBvYmplY3Q7XHJcblxyXG4gICAgaWYoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBjb25zb2xlLndhcm4oICdubyBwcm9wZXJ0eSBuYW1lZCcsIHByb3BlcnR5TmFtZSwgJ29uIG9iamVjdCcsIG9iamVjdCApO1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzT2JqZWN0KCBhcmczICkgfHwgaXNBcnJheSggYXJnMyApICl7XHJcbiAgICAgIHJldHVybiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNOdW1iZXIoIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzQm9vbGVhbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Z1bmN0aW9uKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzU3RyaW5nKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc0NvbG9yKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBhZGQgY291bGRuJ3QgZmlndXJlIGl0IG91dCwgcGFzcyBpdCBiYWNrIHRvIGZvbGRlclxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZVNsaWRlciggbWluID0gMCwgbWF4ID0gMSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG51bWJlcjogbWluXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRTbGlkZXIoIHByb3h5LCAnbnVtYmVyJywgbWluLCBtYXggKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZURyb3Bkb3duKCBvcHRpb25zID0gW10gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBvcHRpb246ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGlmKCBvcHRpb25zICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgcHJveHkub3B0aW9uID0gaXNBcnJheSggb3B0aW9ucyApID8gb3B0aW9uc1sgMCBdIDogb3B0aW9uc1sgT2JqZWN0LmtleXMob3B0aW9ucylbMF0gXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWRkRHJvcGRvd24oIHByb3h5LCAnb3B0aW9uJywgb3B0aW9ucyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQ2hlY2tib3goIGRlZmF1bHRPcHRpb24gPSBmYWxzZSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGNoZWNrZWQ6IGRlZmF1bHRPcHRpb25cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZENoZWNrYm94KCBwcm94eSwgJ2NoZWNrZWQnICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVCdXR0b24oIGZuICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgYnV0dG9uOiAoZm4hPT11bmRlZmluZWQpID8gZm4gOiBmdW5jdGlvbigpe31cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZEJ1dHRvbiggcHJveHksICdidXR0b24nICk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIE5vdCB1c2VkIGRpcmVjdGx5OyB1c2VkIGJ5IGZvbGRlcnMuXHJcbiAgUmVtb3ZlIGNvbnRyb2xsZXJzIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBjb250cm9sbGVycyBrbm93biB0byBkYXQuR1VJVlIuXHJcbiAgQ2FsbHMgcmVtb3ZlVGVzdCBmaXJzdCB0byBjaGVjayBpbnB1dCBhcmd1bWVudHMuICByZXR1cm5zIGZhbHNlIGlmIHRoaXMgdGVzdCBmYWlscy5cclxuICByZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bC5cclxuXHJcbiAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVjdXJzaXZlbHkgcmVtb3ZlIGVsZW1lbnRzIGZyb20gZm9sZGVyczsgdGhhdCBpcyBkZWFsdCB3aXRoIGluIHRoZSBmb2xkZXIgY29kZSB3aGljaCBjYWxscyB0aGlzLlxyXG4gIFxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZSggLi4uYXJncyApe1xyXG4gICAgbGV0IGFyZ1NldCA9IFsgLi4ubmV3IFNldChhcmdzKSBdOyAvL2p1c3QgaW4gY2FzZSB0aGVyZSB3ZXJlIHJlcGVhdGVkIGVsZW1lbnRzIGluIGFyZ3MsIHR1cm4gaW50byBTZXQgdGhlbiBiYWNrIHRvIGFycmF5LlxyXG4gICAgaWYgKCAhcmVtb3ZlVGVzdCguLi5hcmdTZXQpICkgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJnU2V0LmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgdmFyIGkgPSBjb250cm9sbGVycy5pbmRleE9mKCBvYmogKTtcclxuICAgICAgaWYgKCBpID4gLTEpIGNvbnRyb2xsZXJzLnNwbGljZSggaSwgMSApO1xyXG4gICAgICBlbHNlIHsgLy8gSSBjYW4ndCBzZWUgaG93IHRoaXMnZCBoYXBwZW4gbm93IHdlIGd1YXJkIGFnYWluc3QgcmVwZWF0ZWQgZWxlbWVudHMuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJJbnRlcm5hbCBlcnJvciBpbiByZW1vdmUsIG5vdCBhbnRpY2lwYXRlZCBieSByZW1vdmVUZXN0LiBJbnRlcm5hbCBkYXQuR1VJVlIgc3RhdGUgbWF5IGJlIGluY29uc2lzdGVudC5cIik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBWZXJpZnkgdGhhdCBhbGwgb2YgdGhlIGl0ZW1zIGluIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZXhpc3RpbmcgY29udHJvbGxlcnMgdGhhdCBzaG91bGQgYmUgb2sgdG8gcmVtb3ZlLlxyXG5cclxuICBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGFyZSBhbnkgbWlzbWF0Y2hlcywgdHJ1ZSBpZiBiZWxpZXZlZCBvayB0byBjb250aW51ZSB3aXRoIGFjdHVhbCByZW1vdmUoKVxyXG5cclxuICBJZiBhbnkgb2YgdGhlIHByb3ZpZGVkIGFyZ3MgYXJlIGZvbGRlcnMgKGhhdmUgaXNGb2xkZXIgcHJvcGVydHkpIHRoaXMgaXMgY2FsbGVkIHJlY3Vyc2l2ZWx5LlxyXG4gIFRoaXMgd2lsbCByZXN1bHQgaW4gcmVkdW5kYW50IHdvcmsgYXMgZWFjaCBmb2xkZXIgd2lsbCBhbHNvIGNhbGwgaXQgYWdhaW4gYXMgaXQncyByZW1vdmVkLCBidXQgdGhpcyBpcyBjaGVhcFxyXG4gIGFuZCBpdCBtZWFucyB0aGF0IGFueSBlcnJvciBzaG91bGQgYmUgY2F1Z2h0IGFzIGVhcmx5IGFzIHBvc3NpYmxlIGFuZCB0aGUgd2hvbGUgcHJvY2VzcyBhYm9ydGVkLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlVGVzdCggLi4uYXJncyApIHtcclxuICAgIGZvciAodmFyIGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBvYmogPSBhcmdzW2ldO1xyXG4gICAgICBpZiAoY29udHJvbGxlcnMuaW5kZXhPZihvYmopID09PSAtMSB8fCAhb2JqLmZvbGRlci5oYXNDaGlsZChvYmopKSB7XHJcbiAgICAgICAgLy9UT0RPOiB0b1N0cmluZyBpbXBsZW1lbnRhdGlvbnMgZm9yIGNvbnRyb2xsZXJzXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJDYW4ndCByZW1vdmUgY29udHJvbGxlciBcIiArIG9iaik7IC8vbm90IHN1cmUgdGhlIHByZWZlcnJlZCB3YXkgb2YgcmVwb3J0aW5nIHByb2JsZW0gdG8gdXNlci5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGlmICghcmVtb3ZlVGVzdCggLi4ub2JqLmd1aUNoaWxkcmVuICkpIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wbGV0ZWx5IHJlbW92ZSBhbGwgR1VJIGVsZW1lbnRzIGZyb20gdGhlIHN5c3RlbSBnbG9iYWxseSwgXHJcbiAgICogaW5jbHVkaW5nIHJlbW92aW5nIGFueSBvYmplY3RzIGZyb20gdGhlIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKi9cclxuICBmdW5jdGlvbiBjbGVhckFsbCgpIHtcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMudmlzaWJsZSA9IGZhbHNlOyBpZiAoYy5wYXJlbnQgJiYgIWMucGFyZW50Lmd1aUNoaWxkcmVuKSBjLnBhcmVudC5yZW1vdmUoYyk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnNwbGljZSgwLCBjb250cm9sbGVycy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZm9sZGVyIHdpdGggdGhlIG5hbWUuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgVEhSRUUuR3JvdXAgdHlwZSBvYmplY3RzIGFuZCBjYW4gZG8gZ3JvdXAuYWRkKCkgZm9yIHNpYmxpbmdzLlxyXG4gICAgRm9sZGVycyB3aWxsIGF1dG9tYXRpY2FsbHkgYXR0ZW1wdCB0byBsYXkgaXRzIGNoaWxkcmVuIG91dCBpbiBzZXF1ZW5jZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBnaXZlbiB0aGUgYWRkKCkgZnVuY3Rpb25hbGl0eSBzbyB0aGF0IHRoZXkgY2FuIGRvXHJcbiAgICBmb2xkZXIuYWRkKCAuLi4gKSB0byBjcmVhdGUgY29udHJvbGxlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBuYW1lICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBjcmVhdGVGb2xkZXIoe1xyXG4gICAgICB0ZXh0Q3JlYXRvcixcclxuICAgICAgbmFtZSxcclxuICAgICAgZ3VpQWRkOiBhZGQsXHJcbiAgICAgIGd1aVJlbW92ZTogcmVtb3ZlLFxyXG4gICAgICBhZGRDb250cm9sbGVyRnVuY3M6IHtcclxuICAgICAgICBhZGRTbGlkZXI6IGFkZFNpbXBsZVNsaWRlcixcclxuICAgICAgICBhZGREcm9wZG93bjogYWRkU2ltcGxlRHJvcGRvd24sXHJcbiAgICAgICAgYWRkQ2hlY2tib3g6IGFkZFNpbXBsZUNoZWNrYm94LFxyXG4gICAgICAgIGFkZEJ1dHRvbjogYWRkU2ltcGxlQnV0dG9uLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uOiBhZGRJbWFnZUJ1dHRvbixcclxuICAgICAgICBhZGRYWUNvbnRyb2xsZXI6IGFkZFhZQ29udHJvbGxlcixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvblBhbmVsOiBhZGRJbWFnZUJ1dHRvblBhbmVsLFxyXG4gICAgICAgIGFkZEtleWJvYXJkOiBhZGRLZXlib2FyZCxcclxuICAgICAgICBhZGRUZXh0Ym94OiBhZGRUZXh0Ym94XHJcbiAgICAgIH0sXHJcbiAgICAgIGdsb2JhbENvbnRyb2xsZXJzOiBjb250cm9sbGVycyxcclxuICAgICAgLy8/Pz9cclxuICAgICAgYWRkSGVhZGVyRnVuY3M6IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZm9sZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUGVyZm9ybSB0aGUgbmVjZXNzYXJ5IHVwZGF0ZXMsIHJheWNhc3RzIG9uIGl0cyBvd24gUkFGLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgdERpcmVjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCAwLCAwLCAtMSApO1xyXG4gIGNvbnN0IHRNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoKSB7XHJcbiAgICBjb25zdCBpc09ydGhvZ3JhcGhpYyA9IG1vdXNlRW5hYmxlZCAmJiBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhO1xyXG4gICAgaWYgKGF1dG9VcGRhdGUpIHJlcXVlc3RBbmltYXRpb25GcmFtZSggdXBkYXRlICk7XHJcbiAgICBcclxuICAgIHZhciBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgY29uc3QgY29udHJvbGxlcnMgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKTtcclxuICAgIGNvbnN0IGZvbGRlcnMgPSBjb250cm9sbGVycy5maWx0ZXIoYyA9PiBjLmZvbGRlciA9PT0gYyk7IC8vYWxsIHRvcC1sZXZlbCBmb2xkZXJzXHJcbiAgICBmb2xkZXJzLmZvckVhY2goZiA9PiB7XHJcbiAgICAgIGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSBpc09ydGhvZ3JhcGhpYyA/IG1vdXNlSW5wdXQubW91c2VDYW1lcmEgOiBmYWxzZTtcclxuICAgICAgaWYgKGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAgIGYucmVxdWVzdExheW91dCgpO1xyXG4gICAgICAgIGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IGZhbHNlOyAvLyBwcm90ZWN0IGFueSBuZXdseS1kaXNwbGF5ZWQgbW9kYWxFZGl0b3IgZnJvbSBiZWluZyBjbGVhcmVkXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGYudXNlckRhdGEubGF5b3V0UGVuZGluZykgZi5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICB9KTsgXHJcblxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICAvL1RPRE86IGxvY2sgbW91c2Ugb24gaG92ZXI/P1xyXG4gICAgICBtb3VzZUlucHV0LmludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLGludGVyYWN0aW9ufSA9IHt9LCBpbmRleCApe1xyXG4gICAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICAgIG9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBcclxuICAgICAgdFBvc2l0aW9uLnNldCgwLDAsMCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgdE1hdHJpeC5pZGVudGl0eSgpLmV4dHJhY3RSb3RhdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIFxyXG4gICAgICB0RGlyZWN0aW9uLnNldCgwLDAsLTEpO1xyXG4gICAgICAvL2FsdGVyaW5nIGRpcmVjdGlvbiBlLmcuIHRvIHBvaW50IGluIGRpcmVjdGlvbiBvZiBleHRlbmRlZCB0cmlnZ2VyIGZpbmdlciwgcmF0aGVyIHRoYW4gJ21haW4gYXhpcycgb2YgVml2ZSBjb250cm9sbGVyLi4uXHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGQgYmUgaW4gdXNlckRhdGEuXHJcbiAgICAgIGlmIChvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcikgdERpcmVjdGlvbi5hcHBseVF1YXRlcm5pb24ob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpO1xyXG4gICAgICB0RGlyZWN0aW9uLmFwcGx5TWF0cml4NCggdE1hdHJpeCApLm5vcm1hbGl6ZSgpO1xyXG4gICAgICBcclxuICAgICAgcmF5Y2FzdC5zZXQoIHRQb3NpdGlvbiwgdERpcmVjdGlvbiApO1xyXG4gICAgICBcclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAwIF0uY29weSggdFBvc2l0aW9uICk7XHJcbiAgICAgIGNvbnN0IGEgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICAgIGFbMF0gPSB0UG9zaXRpb24ueDsgYVsxXSA9IHRQb3NpdGlvbi55OyBhWzJdID0gdFBvc2l0aW9uLno7XHJcbiAgICAgIFxyXG4gICAgICAvLyAgZGVidWcuLi5cclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggdFBvc2l0aW9uICkuYWRkKCB0RGlyZWN0aW9uLm11bHRpcGx5U2NhbGFyKCAxICkgKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbnMgPSByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgXHJcbiAgICAgIGlucHV0T2JqZWN0c1sgaW5kZXggXS5pbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy93YW50IHRvIGFkZCBpbmZvIChoaXQgZGlzY3RhbmNlKSB0byBvYmplY3QgZm9yIHVzZSBvdXRzaWRlLi4uIGp1c3QgYWRkaW5nIGVudGlyZXR5IG9mIGludGVyc2VjdGlvbnMgaW4gY2FzZSB1c2VmdWxcclxuICAgICAgaWYgKG9iamVjdC51c2VyRGF0YSkgb2JqZWN0LnVzZXJEYXRhLmd1aUludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0cyA9IGlucHV0T2JqZWN0cy5zbGljZSgpO1xyXG4gICAgXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIGlucHV0cy5wdXNoKCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goIGMgPT4gYy51cGRhdGVDb250cm9sKCBpbnB1dHMgKSk7XHJcbiAgICAvL25vdyBjaGVjayBpZiBhbnkgcHJlc3Mgb24gYW55IGlucHV0IGhpdCBhbnkgbm9uJ21vZGFsIGVkaXRvcicuLi4gaWYgc28sIHdlJ2xsIHJlbW92ZSBtb2RhbHMgZnJvbSBhbGwgZm9sZGVyc1xyXG4gICAgLy8odGhpcyBpc24ndCBwZXJmZWN0OyBpZiB5b3UgYXJlIGFjdGl2ZWx5IGludGVyYWN0aW5nIHdpdGggc29tZXRoaW5nIGFuZCBwcmVzcyBvdGhlciBidXR0b24gc29tZXdoZXJlIGVsc2UsIGl0J2xsIHJlbW92ZSB5b3VyIG9iamVjdClcclxuICAgIGxldCBoaXROb25Nb2RhbHMgPSBpbnB1dHMuZmlsdGVyKGlucHV0ID0+IGlucHV0LmhpdE5vbk1vZGFsKTtcclxuICAgIGlmIChoaXROb25Nb2RhbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgaGl0Tm9uTW9kYWxzLmZvckVhY2goaCA9PiBoLmhpdE5vbk1vZGFsID0gZmFsc2UpOyAvL3JlbW92ZSBmbGFncyBzbyB0aGV5IGRvbid0IHBlcnNpc3QgdG8gc3Vic2VxdWVudCB1cGRhdGVzXHJcbiAgICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IGYuY2xlYXJNb2RhbEVkaXRvcigpKTsgLy90aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIG5vdCBoaWRlIGl0ZW1zIG5ld2x5IGRpc3BsYXllZCBpbiB0aGlzIGZyYW1lXHJcbiAgICB9XHJcbiAgICBtb3VzZUlucHV0LmNsaWNrZWQgPSBmYWxzZTtcclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKG89Pm8uY2xpY2tlZCA9IGZhbHNlKTtcclxuICAgIHJldHVybiBtb3VzZUlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxuLy8gaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZvaWQgbWFpbigpIHsgXHJcbiAgdlV2ID0gdXY7XHJcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cclxufVxyXG5gO1xyXG5cclxudmFyIC8qc2pwdCB3YXMgY29uc3QgKi8gbWVzaGJhc2ljX2ZyYWcgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG51bmlmb3JtIHZlYzMgY29sb3I7XHJcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLCBcclxuICAgIC8vIHNvIGFmd2lkdGggZGVwZW5kcyBvbiBzY2FsZSBvZiBndWlcclxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XHJcbn1cclxuLy8vL1xyXG5cclxudm9pZCBtYWluKCkge1xyXG5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxyXG5cclxuICAgIC8vL1xyXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xyXG4gICAgXHJcbiAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKG1hcCwgdlV2KTtcclxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcclxuICAgIGlmIChnbF9GcmFnQ29sb3IuYSA8IDAuMDAwMSkgZGlzY2FyZDtcclxuICAgIC8vL1xyXG5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XHJcbiAgICAvL1hYWDogYmlnIGNodW5rIHJlbW92ZWQgZnJvbSBvcmlnaW5hbCBtZXNoYmFzaWNfZnJhZyBoZXJlLlxyXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cclxufVxyXG5gO1xyXG5cclxuaWYgKCtUSFJFRS5SRVZJU0lPTiA+IDE1MSB8fCBzZWFyY2hWYWx1ZXMudGhyZWV2ZXIgPT09ICd0aHJlZTE1NycpIHsgLy8gc2pwdCBwYXRjaFxyXG4gIG1lc2hiYXNpY19mcmFnID0gJ1xcbiNkZWZpbmUgVVNFX01BUFxcbiNkZWZpbmUgVVNFX1VWXFxudW5pZm9ybSB2ZWMzIGNvbG9yO1xcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcXG5cXG4jaW5jbHVkZSA8Y29tbW9uPlxcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XFxuXFxuLy8vLy9cXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLCBcXG4gICAgLy8gc28gYWZ3aWR0aCBkZXBlbmRzIG9uIHNjYWxlIG9mIGd1aVxcbiAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XFxufVxcbi8vLy9cXG5cXG52b2lkIG1haW4oKSB7XFxuXFxuXFx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cXG5cXG4gICAgLy8vXFxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcXG4gICAgXFxuICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQobWFwLCB2VXYpO1xcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcXG4gICAgaWYgKGdsX0ZyYWdDb2xvci5hIDwgMC4wMDAxKSBkaXNjYXJkO1xcbiAgICAvLy9cXG5cXG5cXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XFxuICAgIC8vWFhYOiBiaWcgY2h1bmsgcmVtb3ZlZCBmcm9tIG9yaWdpbmFsIG1lc2hiYXNpY19mcmFnIGhlcmUuXFxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cXG5cXHQjaW5jbHVkZSA8Y29sb3JzcGFjZV9mcmFnbWVudD5cXG5cXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50Plxcbn1cXG4nO1xyXG4gIGNvbnNvbGUud2FybignY29sb3JzcGFjZV9mcmFnbWVudCB1c2VkJyk7XHJcbiAgfVxyXG4gIFxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVTREZTaGFkZXIgKG9wdCkge1xyXG4gIG9wdCA9IG9wdCB8fCB7fTtcclxuICB2YXIgb3BhY2l0eSA9IHR5cGVvZiBvcHQub3BhY2l0eSA9PT0gJ251bWJlcicgPyBvcHQub3BhY2l0eSA6IDE7XHJcbiAgLy8vLS0gaGFyZGNvZGVkIGluIHNoYWRlciBjb2RlLCBndWl2ciBuZXZlciBwYXNzZWQgdGhlc2UgaW4gb3B0IC0tXHJcbiAgLy92YXIgYWxwaGFUZXN0ID0gdHlwZW9mIG9wdC5hbHBoYVRlc3QgPT09ICdudW1iZXInID8gb3B0LmFscGhhVGVzdCA6IDAuMDAwMVxyXG4gIC8vdmFyIHByZWNpc2lvbiA9IG9wdC5wcmVjaXNpb24gfHwgJ2hpZ2hwJ1xyXG4gIHZhciBjb2xvciA9IG9wdC5jb2xvcjtcclxuICB2YXIgbWFwID0gb3B0Lm1hcDtcclxuICBcclxuICBvcHQuZXh0ZW5zaW9ucyA9IG9wdC5leHRlbnNpb25zIHx8IHt9O1xyXG4gIG9wdC5leHRlbnNpb25zLmRlcml2YXRpdmVzID0gdHJ1ZTsgLy9uYiwgZmFsc2UgZGVmYXVsdHMgZm9yIGZyYWdEZXB0aCwgZHJhd0J1ZmZlcnMsIHNoYWRlclRleHR1cmVMT0Qgd2lsbCBubyBsb25nZXIgYmUgdGhlcmUuXHJcbiAgb3B0Lm5hbWUgPSBcIlNERiB0ZXh0IG1hdGVyaWFsXCI7XHJcblxyXG4gIC8vIHJlbW92ZSB0byBzYXRpc2Z5IHI3M1xyXG4gIGRlbGV0ZSBvcHQubWFwO1xyXG4gIGRlbGV0ZSBvcHQuY29sb3I7XHJcbiAgZGVsZXRlIG9wdC5wcmVjaXNpb247XHJcbiAgZGVsZXRlIG9wdC5vcGFjaXR5O1xyXG5cclxuICByZXR1cm4gYXNzaWduKHtcclxuICAgIHVuaWZvcm1zOiB7XHJcbiAgICAgIG9wYWNpdHk6IHsgdHlwZTogJ2YnLCB2YWx1ZTogb3BhY2l0eSB9LFxyXG4gICAgICBtYXA6IHsgdHlwZTogJ3QnLCB2YWx1ZTogbWFwIHx8IG5ldyBUSFJFRS5UZXh0dXJlKCkgfSxcclxuICAgICAgY29sb3I6IHsgdHlwZTogJ2MnLCB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGNvbG9yKSB9XHJcbiAgICB9LFxyXG4gICAgdmVydGV4U2hhZGVyOiBtZXNoYmFzaWNfdmVydCxcclxuICAgIGZyYWdtZW50U2hhZGVyOiBtZXNoYmFzaWNfZnJhZ1xyXG4gIH0sIG9wdCk7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBTREZTaGFkZXIgZnJvbSAnLi9zZGZzaGFkZXJfbG9nZGVwdGgnO1xyXG5pbXBvcnQgY3JlYXRlR2VvbWV0cnkgZnJvbSAndGhyZWUtYm1mb250LXRleHQnO1xyXG5pbXBvcnQgcGFyc2VBU0NJSSBmcm9tICdwYXJzZS1ibWZvbnQtYXNjaWknO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuaW1wb3J0ICogYXMgRm9udCBmcm9tICcuL2ZvbnQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApe1xyXG5cclxuICBjb25zdCBpbWFnZSA9IEZvbnQuaW1hZ2UoKTtcclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoaW1hZ2UpOyB0ZXh0dXJlLm5hbWUgPSAnc2RmRm9udFRleHR1cmUnXHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgLy9OQjo6OiBzb21ld2hhdCBleHBlcmltZW50YWwgcmVwbGFjZW1lbnQgb2YgUmF3U2hhZGVyIGNvZGUgZnJvbSBibWZvbnQgd2l0aCB2YXJpYXRpb24gb2YgTWVzaEJhc2ljIHNoYWRlclxyXG4gIC8vdGhpcyBzaG91bGQgYWxsb3cgZm9yIGxvZ2RlcHRoLCBmb2cgaXMgYWxzbyBhbnRpY2lwYXRlZCB0byB3b3JrIHJlYXNvbmFibHkgd2VsbC4uLiBcclxuICAvL3RvbmVtYXBwaW5nIGV0YyBtYXkgY29uY2VpdmFibHkgYmUgaW1wcm92ZWQuLi4gWU1NVi5cclxuICBsZXQgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoU0RGU2hhZGVyKHtcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIGNvbG9yOiBjb2xvcixcclxuICAgIG1hcDogdGV4dHVyZSxcclxuICAgIHR5cGU6ICdTREYgVGV4dCdcclxuICB9KSk7XHJcbiAgcmV0dXJuIG1hdGVyaWFsO1xyXG59XHJcblxyXG5jb25zdCB0ZXh0U2NhbGUgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdG9yKCl7XHJcblxyXG4gIGNvbnN0IGZvbnQgPSBwYXJzZUFTQ0lJKCBGb250LmZudCgpICk7XHJcblxyXG4gIGNvbnN0IGNvbG9yTWF0ZXJpYWxzID0ge307XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IgPSAweGZmZmZmZiwgc2NhbGUgPSAxLjAsIHdpZHRoLCBoZWlnaHQgKXtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IGNyZWF0ZUdlb21ldHJ5KHtcclxuICAgICAgdGV4dDogc3RyLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICBmbGlwWTogdHJ1ZSxcclxuICAgICAgZm9udFxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IGxheW91dCA9IGdlb21ldHJ5LmxheW91dDtcclxuXHJcbiAgICBsZXQgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXTtcclxuICAgIGlmKCBtYXRlcmlhbCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF0gPSBjcmVhdGVNYXRlcmlhbCggY29sb3IgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5KCBuZXcgVEhSRUUuVmVjdG9yMygxLC0xLDEpICk7XHJcblxyXG4gICAgY29uc3QgZmluYWxTY2FsZSA9IHNjYWxlICogdGV4dFNjYWxlO1xyXG5cclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHlTY2FsYXIoIGZpbmFsU2NhbGUgKTtcclxuXHJcbiAgICBtZXNoLnBvc2l0aW9uLnkgPSBsYXlvdXQuaGVpZ2h0ICogMC41ICogZmluYWxTY2FsZTtcclxuXHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIHN0ciwgeyBjb2xvcj0weGZmZmZmZiwgc2NhbGU9MS4wIH0gPSB7fSApe1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgICBsZXQgbWVzaCA9IGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IsIHNjYWxlICk7XHJcbiAgICBncm91cC5hZGQoIG1lc2ggKTtcclxuICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgZ3JvdXAuY29tcHV0ZVdpZHRoID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LndpZHRoICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuICAgIGdyb3VwLmNvbXB1dGVIZWlnaHQgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQuaGVpZ2h0ICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5jb25zdHJhaW5Cb3VuZHMgPSAodywgaCkgPT4ge1xyXG4gICAgICBncm91cC5yZW1vdmUobWVzaCk7XHJcbiAgICAgIGNvbnN0IHMgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgY29uc3QgaEZhY3RvciA9IG1lc2guZ2VvbWV0cnkubGF5b3V0LmhlaWdodCpzL2g7XHJcbiAgICAgIGlmIChoRmFjdG9yID4gMSkge1xyXG4gICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgMC45NSogc3RyLmxlbmd0aC9oRmFjdG9yKSArICcuLi4nO1xyXG4gICAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIH1cclxuICAgICAgZ3JvdXAuYWRkKG1lc2gpO1xyXG4gICAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC51cGRhdGVMYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgaWYgKG1lc2gudXNlckRhdGEubGFiZWxTdHJpbmcgIT09IHN0cikge1xyXG4gICAgICAgIG1lc2guZ2VvbWV0cnkudXBkYXRlKCBzdHIgKTtcclxuICAgICAgICBtZXNoLnVzZXJEYXRhLmxhYmVsU3RyaW5nID0gc3RyO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbi8vIHNqcHQgZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiBUSFJFRS5WZXJ0ZXhDb2xvcnMgfSApO1xyXG5leHBvcnQgY29uc3QgUEFORUwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4ZmZmZmZmLCB2ZXJ0ZXhDb2xvcnM6IHRydWUgfSApO1xyXG5leHBvcnQgY29uc3QgTE9DQVRPUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG5leHBvcnQgY29uc3QgRk9MREVSID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDAwMDAwMCB9ICk7XHJcbmV4cG9ydCBjb25zdCBUT09MVElQID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweDIwNTA4MCwgdHJhbnNwYXJlbnQ6IGZhbHNlLCBvcGFjaXR5OiAwLjggfSApO1xyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTbGlkZXIoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gMC4wLFxyXG4gIG1pbiA9IDAuMCwgbWF4ID0gMS4wLFxyXG4gIHN0ZXAgPSAwLjEsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaW5pdGlhbEhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGFscGhhOiAxLjAsXHJcbiAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxyXG4gICAgc3RlcDogc3RlcCxcclxuICAgIHVzZVN0ZXA6IHRydWUsXHJcbiAgICBwcmVjaXNpb246IDEsXHJcbiAgICBsaXN0ZW46IGZhbHNlLFxyXG4gICAgbWluOiBtaW4sXHJcbiAgICBtYXg6IG1heCxcclxuICAgIG9uQ2hhbmdlZENCOiB1bmRlZmluZWQsXHJcbiAgICBvbkZpbmlzaGVkQ2hhbmdlOiB1bmRlZmluZWQsXHJcbiAgICBwcmVzc2luZzogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIHN0YXRlLnN0ZXAgPSBnZXRJbXBsaWVkU3RlcCggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKTtcclxuICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInNsaWRlclwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIGdyb3VwLnNldEhlaWdodCA9IGhlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZSggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgICBjb25zdCBTTElERVJfV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9ERVBUSCA9IGRlcHRoO1xyXG5cclxuICAgIC8vICBmaWxsZWQgdm9sdW1lXHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBTTElERVJfV0lEVEgsIFNMSURFUl9IRUlHSFQsIFNMSURFUl9ERVBUSCApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoU0xJREVSX1dJRFRIKjAuNSwwLDApO1xyXG4gICAgLy8gTGF5b3V0LmFsaWduTGVmdCggcmVjdCApO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5uYW1lID0gJ2hpdHNjYW5Wb2x1bWUnO1xyXG5cclxuICAgIC8vICBzbGlkZXJCRyB2b2x1bWVcclxuICAgIGNvbnN0IHNsaWRlckJHID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgU2hhcmVkTWF0ZXJpYWxzLlBBTkVMICk7XHJcbiAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggc2xpZGVyQkcuZ2VvbWV0cnksIENvbG9ycy5TTElERVJfQkcgKTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIHNsaWRlckJHLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEggKyBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG5cclxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5ERUZBVUxUX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGZpbGxlZFZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgY29uc3QgZW5kTG9jYXRvciA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIDAuMDUsIDAuMDUsIDAuMDUsIDEsIDEsIDEgKSwgU2hhcmVkTWF0ZXJpYWxzLkxPQ0FUT1IgKTtcclxuICAgIGVuZExvY2F0b3IucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSDtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBlbmRMb2NhdG9yICk7XHJcbiAgICBlbmRMb2NhdG9yLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCB2YWx1ZUxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gKyB3aWR0aCAqIDAuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoKjIuNTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzMjU7XHJcblxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9TTElERVIgKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBwYW5lbC5uYW1lID0gJ3BhbmVsJztcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBzbGlkZXJCRywgdmFsdWVMYWJlbCwgY29udHJvbGxlcklEICk7XHJcblxyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApXHJcblxyXG4gICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgIHVwZGF0ZVNsaWRlcigpO1xyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZhbHVlTGFiZWwoIHZhbHVlICl7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggcm91bmRUb0RlY2ltYWwoIHN0YXRlLnZhbHVlLCBzdGF0ZS5wcmVjaXNpb24gKS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCBzdGF0ZS52YWx1ZS50b1N0cmluZygpICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICAgIGlmKCBzdGF0ZS5wcmVzc2luZyApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLklOVEVSQUNUSU9OX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU2xpZGVyKCl7XHJcbiAgICAgIGZpbGxlZFZvbHVtZS5zY2FsZS54ID1cclxuICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgIE1hdGgubWF4KCBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICkgKiB3aWR0aCwgMC4wMDAwMDEgKSxcclxuICAgICAgICAgIHdpZHRoXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVPYmplY3QoIHZhbHVlICl7XHJcbiAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTdGF0ZUZyb21BbHBoYSggYWxwaGEgKXtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICk7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tQWxwaGEoIHN0YXRlLmFscGhhLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gZ2V0U3RlcHBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUuc3RlcCApO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0Q2xhbXBlZFZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBsaXN0ZW5VcGRhdGUoKXtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21PYmplY3QoKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRnJvbU9iamVjdCgpe1xyXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdCggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICAgIHN0YXRlLm9uQ2hhbmdlZENCID0gY2FsbGJhY2s7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAuc3RlcCA9IGZ1bmN0aW9uKCBzdGVwICl7XHJcbiAgICAgIHN0YXRlLnN0ZXAgPSBzdGVwO1xyXG4gICAgICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApXHJcbiAgICAgIHN0YXRlLnVzZVN0ZXAgPSB0cnVlO1xyXG5cclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgIHN0YXRlLmxpc3RlbiA9IHRydWU7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlUHJlc3MgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlSG9sZCApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZVJlbGVhc2UgKTtcclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVQcmVzcyggcCApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlSG9sZCggeyBwb2ludCB9ID0ge30gKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcblxyXG4gICAgICBmaWxsZWRWb2x1bWUudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgZW5kTG9jYXRvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG5cclxuICAgICAgY29uc3QgYSA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBmaWxsZWRWb2x1bWUubWF0cml4V29ybGQgKTtcclxuICAgICAgY29uc3QgYiA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBlbmRMb2NhdG9yLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHthLGJ9ICkgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICB1cGRhdGVPYmplY3QoIHN0YXRlLnZhbHVlICk7XHJcblxyXG4gICAgICBpZiggcHJldmlvdXNWYWx1ZSAhPT0gc3RhdGUudmFsdWUgJiYgc3RhdGUub25DaGFuZ2VkQ0IgKXtcclxuICAgICAgICBzdGF0ZS5vbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVJlbGVhc2UoKXtcclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG4gICAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgICAgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgICB1cGRhdGVTbGlkZXIoKTtcclxuICAgICAgfVxyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWluID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWluID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubWF4ID0gZnVuY3Rpb24oIG0gKXtcclxuICAgICAgc3RhdGUubWF4ID0gbTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfSAvLyAvc2V0SGVpZ2h0XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0KCBpbml0aWFsSGVpZ2h0ICk7XHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCB0YSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRiID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdFRvQSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IGFUb0IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gZ2V0UG9pbnRBbHBoYSggcG9pbnQsIHNlZ21lbnQgKXtcclxuICB0YS5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG4gIHRiLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgY29uc3QgcHJvamVjdGVkID0gdGIucHJvamVjdE9uVmVjdG9yKCB0YSApO1xyXG5cclxuICB0VG9BLmNvcHkoIHBvaW50ICkuc3ViKCBzZWdtZW50LmEgKTtcclxuXHJcbiAgYVRvQi5jb3B5KCBzZWdtZW50LmIgKS5zdWIoIHNlZ21lbnQuYSApLm5vcm1hbGl6ZSgpO1xyXG5cclxuICBjb25zdCBzaWRlID0gdFRvQS5ub3JtYWxpemUoKS5kb3QoIGFUb0IgKSA+PSAwID8gMSA6IC0xO1xyXG5cclxuICBjb25zdCBsZW5ndGggPSBzZWdtZW50LmEuZGlzdGFuY2VUbyggc2VnbWVudC5iICkgKiBzaWRlO1xyXG5cclxuICBsZXQgYWxwaGEgPSBwcm9qZWN0ZWQubGVuZ3RoKCkgLyBsZW5ndGg7XHJcbiAgaWYoIGFscGhhID4gMS4wICl7XHJcbiAgICBhbHBoYSA9IDEuMDtcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMC4wICl7XHJcbiAgICBhbHBoYSA9IDAuMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsZXJwKG1pbiwgbWF4LCB2YWx1ZSkge1xyXG4gIHJldHVybiAoMS12YWx1ZSkqbWluICsgdmFsdWUqbWF4O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYXBfcmFuZ2UodmFsdWUsIGxvdzEsIGhpZ2gxLCBsb3cyLCBoaWdoMikge1xyXG4gICAgcmV0dXJuIGxvdzIgKyAoaGlnaDIgLSBsb3cyKSAqICh2YWx1ZSAtIGxvdzEpIC8gKGhpZ2gxIC0gbG93MSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRBbHBoYSggYWxwaGEgKXtcclxuICBpZiggYWxwaGEgPiAxICl7XHJcbiAgICByZXR1cm4gMVxyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwICl7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgcmV0dXJuIGFscGhhO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIGlmKCB2YWx1ZSA8IG1pbiApe1xyXG4gICAgcmV0dXJuIG1pbjtcclxuICB9XHJcbiAgaWYoIHZhbHVlID4gbWF4ICl7XHJcbiAgICByZXR1cm4gbWF4O1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEltcGxpZWRTdGVwKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICAvL1BKVDogd2hhdCB3b3VsZCB3ZSBsaWtlIHN0ZXAgdG8gbG9vayBsaWtlP1xyXG4gIC8vU29tZXRoaW5nIHRoYXQgaGFzIGFib3V0IHRoZSBvcmRlciBvZiBtYWduaXR1ZGUsIGFuZCBsb29rcyBuaWNlIGluIGJhc2UgMTA/XHJcbiAgY29uc3QgciA9IG1heC1taW47XHJcbiAgbGV0IHN0ZXAgPSByLzEwMDsgLy93aGF0IGlzIHRoZSByYXRpbyBvZiBudW1iZXIgb2YgZGVjaW1hbHMgdG8gb3JkZXIgb2YgbWFnbml0dWRlP1xyXG4gIFxyXG4gIHJldHVybiBzdGVwO1xyXG5cclxuICAvLyBpZiggdmFsdWUgPT09IDAgKXtcclxuICAvLyAgIHJldHVybiAxOyAvLyBXaGF0IGFyZSB3ZSwgcHN5Y2hpY3M/IC8vPDw8PC0tLSBubywgc28gd2Ugc2hvdWxkIGJhc2UgaW1wbGllZFN0ZXAgb24gbWluL21heCwgbm90IHZhbHVlXHJcbiAgLy8gfSBlbHNlIHtcclxuICAvLyAgIC8vIEhleSBEb3VnLCBjaGVjayB0aGlzIG91dC5cclxuICAvLyAgIHJldHVybiBNYXRoLnBvdygxMCwgTWF0aC5mbG9vcihNYXRoLmxvZyhNYXRoLmFicyh2YWx1ZSkpL01hdGguTE4xMCkpLzEwO1xyXG4gIC8vIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tQWxwaGEoIGFscGhhLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIGFscGhhLCAwLjAsIDEuMCwgbWluLCBtYXggKVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBbHBoYUZyb21WYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggdmFsdWUsIG1pbiwgbWF4LCAwLjAsIDEuMCApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRTdGVwcGVkVmFsdWUoIHZhbHVlLCBzdGVwICl7XHJcbiAgaWYoIHZhbHVlICUgc3RlcCAhPSAwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZCggdmFsdWUgLyBzdGVwICkgKiBzdGVwO1xyXG4gIH1cclxuICByZXR1cm4gdmFsdWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG51bURlY2ltYWxzKHgpIHtcclxuICB4ID0geC50b1N0cmluZygpO1xyXG4gIGlmICh4LmluZGV4T2YoJy4nKSA+IC0xKSB7XHJcbiAgICByZXR1cm4geC5sZW5ndGggLSB4LmluZGV4T2YoJy4nKSAtIDE7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcm91bmRUb0RlY2ltYWwodmFsdWUsIGRlY2ltYWxzKSB7XHJcbiAgaWYgKE1hdGguYWJzKHZhbHVlKSA8IDAuMDEgJiYgdmFsdWUgIT09IDApIHJldHVybiB2YWx1ZS50b0V4cG9uZW50aWFsKDMpO1xyXG4gIGNvbnN0IHRlblRvID0gTWF0aC5wb3coMTAsIGRlY2ltYWxzKTtcclxuICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIHRlblRvKSAvIHRlblRvO1xyXG59IiwiLyoqXHJcbiAqIFdoZW4gdGhlIHRleHRib3ggaXMgZm9jdXNzZWQsICBhIGtleWJvYXJkIHNob3VsZCBiZSBjcmVhdGVkLi4uXHJcbiAqIFRoZXJlIHNob3VsZCBhbHNvIGJlIGEgd2F5IG9mIGRpc21pc3NpbmcgaXQgbGF0ZXIuICBJdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRvXHJcbiAqIHByZXZlbnQgbXVsdGlwbGUga2V5Ym9hcmRzIGJlaW5nIG1hZGUgc2ltdWx0YW5lb3VzbHk/XHJcbiAqIFxyXG4gKiBJbiBvcmRlciB0byBtYWtlIGl0IGFwcGVhciwgaXQgY2FuIGJlIGFkZGVkIGFzIGEgY2hpbGQgb2YgdGhlIHRleGJveCBub2RlIGl0c2VsZi4uLlxyXG4gKiBUaGlzJ2xsIG1lYW4gdGhhdCBpdCBnZXRzIGRyYWdnZWQgYXJvdW5kIGJ5IHRoZSBwYXJlbnQgR1VJIGFzIGl0IG1vdmVzLi4uLlxyXG4gKiBNYWtlcyBmb3IgcmVsYXRpdmVseSBjbGVhbiwgc2ltcGxlIGltcGxlbWVudGF0aW9uIGF0IGxlYXN0LlxyXG4gKiBBdCB0aGUgbW9tZW50LCBrZXlib2FyZCBwb3NpdGlvbmluZyBpcyBtZXNzZWQgdXAgYnkgdGhpcyBhcnJhbmdlbWVudC5cclxuICogUmVtb3ZpbmcgZ3JhYmJlciBtYWtlcyBpdCBsZXNzIGxpa2VseSBhIHVzZXIgd2lsbCBkbyB0aGlzLCBidXQgbWlnaHQgYmUgd29ydGggZml4aW5nIHRoZSBiYXNpYyBidWcuXHJcbiAqIFxyXG4gKi9cclxuXHJcbmltcG9ydCAqIGFzIEdVSSBmcm9tICcuL2luZGV4JztcclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRCb3goe1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICAgIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICAgIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSkge1xyXG4gIC8vIGJpZyBvbGQgY29weSAvIHBhc3RlIGZyb20gYnV0dG9uLmpzLiBNaWdodCB0cnkgdG8gZmFjdG9yIG91dCBzb21lIG9mIHRoaXMgY29tbW9uIGNvZGUuXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGJveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIGNvbnN0IG1vZGlmaWVyID0gbmV3IFRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIoIDEgKTtcclxuICBtb2RpZmllci5tb2RpZnkoIHJlY3QgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCIvKlxyXG4gKlx0QGF1dGhvciB6ejg1IC8gaHR0cDovL3R3aXR0ZXIuY29tL2JsdXJzcGxpbmUgLyBodHRwOi8vd3d3LmxhYjRnYW1lcy5uZXQveno4NS9ibG9nXHJcbiAqXHRAYXV0aG9yIGNlbnRlcmlvbndhcmUgLyBodHRwOi8vd3d3LmNlbnRlcmlvbndhcmUuY29tXHJcbiAqXHJcbiAqXHRTdWJkaXZpc2lvbiBHZW9tZXRyeSBNb2RpZmllclxyXG4gKlx0XHR1c2luZyBMb29wIFN1YmRpdmlzaW9uIFNjaGVtZVxyXG4gKlxyXG4gKlx0UmVmZXJlbmNlczpcclxuICpcdFx0aHR0cDovL2dyYXBoaWNzLnN0YW5mb3JkLmVkdS9+bWRmaXNoZXIvc3ViZGl2aXNpb24uaHRtbFxyXG4gKlx0XHRodHRwOi8vd3d3LmhvbG1lczNkLm5ldC9ncmFwaGljcy9zdWJkaXZpc2lvbi9cclxuICpcdFx0aHR0cDovL3d3dy5jcy5ydXRnZXJzLmVkdS9+ZGVjYXJsby9yZWFkaW5ncy9zdWJkaXYtc2cwMGMucGRmXHJcbiAqXHJcbiAqXHRLbm93biBJc3N1ZXM6XHJcbiAqXHRcdC0gY3VycmVudGx5IGRvZXNuJ3QgaGFuZGxlIFwiU2hhcnAgRWRnZXNcIlxyXG4gKi9cclxuXHJcblRIUkVFLlN1YmRpdmlzaW9uTW9kaWZpZXIgPSBmdW5jdGlvbiAoIHN1YmRpdmlzaW9ucyApIHtcclxuXHJcblx0dGhpcy5zdWJkaXZpc2lvbnMgPSAoIHN1YmRpdmlzaW9ucyA9PT0gdW5kZWZpbmVkICkgPyAxIDogc3ViZGl2aXNpb25zO1xyXG5cclxufTtcclxuXHJcbi8vIEFwcGxpZXMgdGhlIFwibW9kaWZ5XCIgcGF0dGVyblxyXG5USFJFRS5TdWJkaXZpc2lvbk1vZGlmaWVyLnByb3RvdHlwZS5tb2RpZnkgPSBmdW5jdGlvbiAoIGdlb21ldHJ5ICkge1xyXG5cclxuXHR2YXIgcmVwZWF0cyA9IHRoaXMuc3ViZGl2aXNpb25zO1xyXG5cclxuXHR3aGlsZSAoIHJlcGVhdHMgLS0gPiAwICkge1xyXG5cclxuXHRcdHRoaXMuc21vb3RoKCBnZW9tZXRyeSApO1xyXG5cclxuXHR9XHJcblxyXG5cdC8vc2pwdCwgbm8gbG9uZ2VyIHRoZXJlIC4uLiBnZW9tZXRyeS5jb21wdXRlRmFjZU5vcm1hbHMoKTtcclxuXHRnZW9tZXRyeS5jb21wdXRlVmVydGV4Tm9ybWFscygpO1xyXG5cclxufTtcclxuXHJcbiggZnVuY3Rpb24oKSB7XHJcblxyXG5cdC8vIFNvbWUgY29uc3RhbnRzXHJcblx0dmFyIFdBUk5JTkdTID0gISB0cnVlOyAvLyBTZXQgdG8gdHJ1ZSBmb3IgZGV2ZWxvcG1lbnRcclxuXHR2YXIgQUJDID0gWyAnYScsICdiJywgJ2MnIF07XHJcblxyXG5cclxuXHRmdW5jdGlvbiBnZXRFZGdlKCBhLCBiLCBtYXAgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0cmV0dXJuIG1hcFsga2V5IF07XHJcblxyXG5cdH1cclxuXHJcblxyXG5cdGZ1bmN0aW9uIHByb2Nlc3NFZGdlKCBhLCBiLCB2ZXJ0aWNlcywgbWFwLCBmYWNlLCBtZXRhVmVydGljZXMgKSB7XHJcblxyXG5cdFx0dmFyIHZlcnRleEluZGV4QSA9IE1hdGgubWluKCBhLCBiICk7XHJcblx0XHR2YXIgdmVydGV4SW5kZXhCID0gTWF0aC5tYXgoIGEsIGIgKTtcclxuXHJcblx0XHR2YXIga2V5ID0gdmVydGV4SW5kZXhBICsgXCJfXCIgKyB2ZXJ0ZXhJbmRleEI7XHJcblxyXG5cdFx0dmFyIGVkZ2U7XHJcblxyXG5cdFx0aWYgKCBrZXkgaW4gbWFwICkge1xyXG5cclxuXHRcdFx0ZWRnZSA9IG1hcFsga2V5IF07XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHZhciB2ZXJ0ZXhBID0gdmVydGljZXNbIHZlcnRleEluZGV4QSBdO1xyXG5cdFx0XHR2YXIgdmVydGV4QiA9IHZlcnRpY2VzWyB2ZXJ0ZXhJbmRleEIgXTtcclxuXHJcblx0XHRcdGVkZ2UgPSB7XHJcblxyXG5cdFx0XHRcdGE6IHZlcnRleEEsIC8vIHBvaW50ZXIgcmVmZXJlbmNlXHJcblx0XHRcdFx0YjogdmVydGV4QixcclxuXHRcdFx0XHRuZXdFZGdlOiBudWxsLFxyXG5cdFx0XHRcdC8vIGFJbmRleDogYSwgLy8gbnVtYmVyZWQgcmVmZXJlbmNlXHJcblx0XHRcdFx0Ly8gYkluZGV4OiBiLFxyXG5cdFx0XHRcdGZhY2VzOiBbXSAvLyBwb2ludGVycyB0byBmYWNlXHJcblxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0bWFwWyBrZXkgXSA9IGVkZ2U7XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdGVkZ2UuZmFjZXMucHVzaCggZmFjZSApO1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlc1sgYSBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHRcdG1ldGFWZXJ0aWNlc1sgYiBdLmVkZ2VzLnB1c2goIGVkZ2UgKTtcclxuXHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gZ2VuZXJhdGVMb29rdXBzKCB2ZXJ0aWNlcywgZmFjZXMsIG1ldGFWZXJ0aWNlcywgZWRnZXMgKSB7XHJcblxyXG5cdFx0dmFyIGksIGlsLCBmYWNlLCBlZGdlO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBpbCA9IHZlcnRpY2VzLmxlbmd0aDsgaSA8IGlsOyBpICsrICkge1xyXG5cclxuXHRcdFx0bWV0YVZlcnRpY2VzWyBpIF0gPSB7IGVkZ2VzOiBbXSB9O1xyXG5cclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBmYWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdGZhY2UgPSBmYWNlc1sgaSBdO1xyXG5cclxuXHRcdFx0cHJvY2Vzc0VkZ2UoIGZhY2UuYSwgZmFjZS5iLCB2ZXJ0aWNlcywgZWRnZXMsIGZhY2UsIG1ldGFWZXJ0aWNlcyApO1xyXG5cdFx0XHRwcm9jZXNzRWRnZSggZmFjZS5iLCBmYWNlLmMsIHZlcnRpY2VzLCBlZGdlcywgZmFjZSwgbWV0YVZlcnRpY2VzICk7XHJcblx0XHRcdHByb2Nlc3NFZGdlKCBmYWNlLmMsIGZhY2UuYSwgdmVydGljZXMsIGVkZ2VzLCBmYWNlLCBtZXRhVmVydGljZXMgKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3RmFjZSggbmV3RmFjZXMsIGEsIGIsIGMgKSB7XHJcblxyXG5cdFx0bmV3RmFjZXMucHVzaCggbmV3IFRIUkVFLkZhY2UzKCBhLCBiLCBjICkgKTtcclxuXHJcblx0fVxyXG5cclxuXHRmdW5jdGlvbiBtaWRwb2ludCggYSwgYiApIHtcclxuXHJcblx0XHRyZXR1cm4gKCBNYXRoLmFicyggYiAtIGEgKSAvIDIgKSArIE1hdGgubWluKCBhLCBiICk7XHJcblxyXG5cdH1cclxuXHJcblx0ZnVuY3Rpb24gbmV3VXYoIG5ld1V2cywgYSwgYiwgYyApIHtcclxuXHJcblx0XHRuZXdVdnMucHVzaCggWyBhLmNsb25lKCksIGIuY2xvbmUoKSwgYy5jbG9uZSgpIF0gKTtcclxuXHJcblx0fVxyXG5cclxuXHQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHQvLyBQZXJmb3JtcyBvbmUgaXRlcmF0aW9uIG9mIFN1YmRpdmlzaW9uXHJcblx0VEhSRUUuU3ViZGl2aXNpb25Nb2RpZmllci5wcm90b3R5cGUuc21vb3RoID0gZnVuY3Rpb24gKCBnZW9tZXRyeSApIHsgcmV0dXJuOyAvLyBzanB0IFRFTVAgVE9ET1xyXG5cclxuXHRcdHZhciB0bXAgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuXHRcdHZhciBvbGRWZXJ0aWNlcywgb2xkRmFjZXMsIG9sZFV2cztcclxuXHRcdHZhciBuZXdWZXJ0aWNlcywgbmV3RmFjZXMsIG5ld1VWcyA9IFtdO1xyXG5cclxuXHRcdHZhciBuLCBsLCBpLCBpbCwgaiwgaztcclxuXHRcdHZhciBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzO1xyXG5cclxuXHRcdC8vIG5ldyBzdHVmZi5cclxuXHRcdHZhciBzb3VyY2VFZGdlcywgbmV3RWRnZVZlcnRpY2VzLCBuZXdTb3VyY2VWZXJ0aWNlcztcclxuXHJcblx0XHRvbGRWZXJ0aWNlcyA9IGdlb21ldHJ5LnZlcnRpY2VzOyAvLyB7IHgsIHksIHp9XHJcblx0XHRvbGRGYWNlcyA9IGdlb21ldHJ5LmZhY2VzOyAvLyB7IGE6IG9sZFZlcnRleDEsIGI6IG9sZFZlcnRleDIsIGM6IG9sZFZlcnRleDMgfVxyXG5cdFx0b2xkVXZzID0gZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdO1xyXG5cclxuXHRcdHZhciBoYXNVdnMgPSBvbGRVdnMgIT09IHVuZGVmaW5lZCAmJiBvbGRVdnMubGVuZ3RoID4gMDtcclxuXHJcblx0XHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcblx0XHQgKlxyXG5cdFx0ICogU3RlcCAwOiBQcmVwcm9jZXNzIEdlb21ldHJ5IHRvIEdlbmVyYXRlIGVkZ2VzIExvb2t1cFxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG1ldGFWZXJ0aWNlcyA9IG5ldyBBcnJheSggb2xkVmVydGljZXMubGVuZ3RoICk7XHJcblx0XHRzb3VyY2VFZGdlcyA9IHt9OyAvLyBFZGdlID0+IHsgb2xkVmVydGV4MSwgb2xkVmVydGV4MiwgZmFjZXNbXSAgfVxyXG5cclxuXHRcdGdlbmVyYXRlTG9va3Vwcyggb2xkVmVydGljZXMsIG9sZEZhY2VzLCBtZXRhVmVydGljZXMsIHNvdXJjZUVkZ2VzICk7XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAxLlxyXG5cdFx0ICpcdEZvciBlYWNoIGVkZ2UsIGNyZWF0ZSBhIG5ldyBFZGdlIFZlcnRleCxcclxuXHRcdCAqXHR0aGVuIHBvc2l0aW9uIGl0LlxyXG5cdFx0ICpcclxuXHRcdCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHRcdG5ld0VkZ2VWZXJ0aWNlcyA9IFtdO1xyXG5cdFx0dmFyIG90aGVyLCBjdXJyZW50RWRnZSwgbmV3RWRnZSwgZmFjZTtcclxuXHRcdHZhciBlZGdlVmVydGV4V2VpZ2h0LCBhZGphY2VudFZlcnRleFdlaWdodCwgY29ubmVjdGVkRmFjZXM7XHJcblxyXG5cdFx0Zm9yICggaSBpbiBzb3VyY2VFZGdlcyApIHtcclxuXHJcblx0XHRcdGN1cnJlbnRFZGdlID0gc291cmNlRWRnZXNbIGkgXTtcclxuXHRcdFx0bmV3RWRnZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5cdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMyAvIDg7XHJcblx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMSAvIDg7XHJcblxyXG5cdFx0XHRjb25uZWN0ZWRGYWNlcyA9IGN1cnJlbnRFZGdlLmZhY2VzLmxlbmd0aDtcclxuXHJcblx0XHRcdC8vIGNoZWNrIGhvdyBtYW55IGxpbmtlZCBmYWNlcy4gMiBzaG91bGQgYmUgY29ycmVjdC5cclxuXHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAyICkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiBsZW5ndGggaXMgbm90IDIsIGhhbmRsZSBjb25kaXRpb25cclxuXHRcdFx0XHRlZGdlVmVydGV4V2VpZ2h0ID0gMC41O1xyXG5cdFx0XHRcdGFkamFjZW50VmVydGV4V2VpZ2h0ID0gMDtcclxuXHJcblx0XHRcdFx0aWYgKCBjb25uZWN0ZWRGYWNlcyAhPSAxICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICdTdWJkaXZpc2lvbiBNb2RpZmllcjogTnVtYmVyIG9mIGNvbm5lY3RlZCBmYWNlcyAhPSAyLCBpczogJywgY29ubmVjdGVkRmFjZXMsIGN1cnJlbnRFZGdlICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld0VkZ2UuYWRkVmVjdG9ycyggY3VycmVudEVkZ2UuYSwgY3VycmVudEVkZ2UuYiApLm11bHRpcGx5U2NhbGFyKCBlZGdlVmVydGV4V2VpZ2h0ICk7XHJcblxyXG5cdFx0XHR0bXAuc2V0KCAwLCAwLCAwICk7XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IGNvbm5lY3RlZEZhY2VzOyBqICsrICkge1xyXG5cclxuXHRcdFx0XHRmYWNlID0gY3VycmVudEVkZ2UuZmFjZXNbIGogXTtcclxuXHJcblx0XHRcdFx0Zm9yICggayA9IDA7IGsgPCAzOyBrICsrICkge1xyXG5cclxuXHRcdFx0XHRcdG90aGVyID0gb2xkVmVydGljZXNbIGZhY2VbIEFCQ1sgayBdIF0gXTtcclxuXHRcdFx0XHRcdGlmICggb3RoZXIgIT09IGN1cnJlbnRFZGdlLmEgJiYgb3RoZXIgIT09IGN1cnJlbnRFZGdlLmIgKSBicmVhaztcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0bXAuYWRkKCBvdGhlciApO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dG1wLm11bHRpcGx5U2NhbGFyKCBhZGphY2VudFZlcnRleFdlaWdodCApO1xyXG5cdFx0XHRuZXdFZGdlLmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRjdXJyZW50RWRnZS5uZXdFZGdlID0gbmV3RWRnZVZlcnRpY2VzLmxlbmd0aDtcclxuXHRcdFx0bmV3RWRnZVZlcnRpY2VzLnB1c2goIG5ld0VkZ2UgKTtcclxuXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKGN1cnJlbnRFZGdlLCBuZXdFZGdlKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cdFx0ICpcclxuXHRcdCAqXHRTdGVwIDIuXHJcblx0XHQgKlx0UmVwb3NpdGlvbiBlYWNoIHNvdXJjZSB2ZXJ0aWNlcy5cclxuXHRcdCAqXHJcblx0XHQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcblx0XHR2YXIgYmV0YSwgc291cmNlVmVydGV4V2VpZ2h0LCBjb25uZWN0aW5nVmVydGV4V2VpZ2h0O1xyXG5cdFx0dmFyIGNvbm5lY3RpbmdFZGdlLCBjb25uZWN0aW5nRWRnZXMsIG9sZFZlcnRleCwgbmV3U291cmNlVmVydGV4O1xyXG5cdFx0bmV3U291cmNlVmVydGljZXMgPSBbXTtcclxuXHJcblx0XHRmb3IgKCBpID0gMCwgaWwgPSBvbGRWZXJ0aWNlcy5sZW5ndGg7IGkgPCBpbDsgaSArKyApIHtcclxuXHJcblx0XHRcdG9sZFZlcnRleCA9IG9sZFZlcnRpY2VzWyBpIF07XHJcblxyXG5cdFx0XHQvLyBmaW5kIGFsbCBjb25uZWN0aW5nIGVkZ2VzICh1c2luZyBsb29rdXBUYWJsZSlcclxuXHRcdFx0Y29ubmVjdGluZ0VkZ2VzID0gbWV0YVZlcnRpY2VzWyBpIF0uZWRnZXM7XHJcblx0XHRcdG4gPSBjb25uZWN0aW5nRWRnZXMubGVuZ3RoO1xyXG5cclxuXHRcdFx0aWYgKCBuID09IDMgKSB7XHJcblxyXG5cdFx0XHRcdGJldGEgPSAzIC8gMTY7XHJcblxyXG5cdFx0XHR9IGVsc2UgaWYgKCBuID4gMyApIHtcclxuXHJcblx0XHRcdFx0YmV0YSA9IDMgLyAoIDggKiBuICk7IC8vIFdhcnJlbidzIG1vZGlmaWVkIGZvcm11bGFcclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIExvb3AncyBvcmlnaW5hbCBiZXRhIGZvcm11bGFcclxuXHRcdFx0Ly8gYmV0YSA9IDEgLyBuICogKCA1LzggLSBNYXRoLnBvdyggMy84ICsgMS80ICogTWF0aC5jb3MoIDIgKiBNYXRoLiBQSSAvIG4gKSwgMikgKTtcclxuXHJcblx0XHRcdHNvdXJjZVZlcnRleFdlaWdodCA9IDEgLSBuICogYmV0YTtcclxuXHRcdFx0Y29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IGJldGE7XHJcblxyXG5cdFx0XHRpZiAoIG4gPD0gMiApIHtcclxuXHJcblx0XHRcdFx0Ly8gY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlc1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUud2FybignY3JlYXNlIGFuZCBib3VuZGFyeSBydWxlcycpO1xyXG5cclxuXHRcdFx0XHRpZiAoIG4gPT0gMiApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnMiBjb25uZWN0aW5nIGVkZ2VzJywgY29ubmVjdGluZ0VkZ2VzICk7XHJcblx0XHRcdFx0XHRzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAzIC8gNDtcclxuXHRcdFx0XHRcdGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgPSAxIC8gODtcclxuXHJcblx0XHRcdFx0XHQvLyBzb3VyY2VWZXJ0ZXhXZWlnaHQgPSAxO1xyXG5cdFx0XHRcdFx0Ly8gY29ubmVjdGluZ1ZlcnRleFdlaWdodCA9IDA7XHJcblxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG4gPT0gMSApIHtcclxuXHJcblx0XHRcdFx0XHRpZiAoIFdBUk5JTkdTICkgY29uc29sZS53YXJuKCAnb25seSAxIGNvbm5lY3RpbmcgZWRnZScgKTtcclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmICggbiA9PSAwICkge1xyXG5cclxuXHRcdFx0XHRcdGlmICggV0FSTklOR1MgKSBjb25zb2xlLndhcm4oICcwIGNvbm5lY3RpbmcgZWRnZXMnICk7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdG5ld1NvdXJjZVZlcnRleCA9IG9sZFZlcnRleC5jbG9uZSgpLm11bHRpcGx5U2NhbGFyKCBzb3VyY2VWZXJ0ZXhXZWlnaHQgKTtcclxuXHJcblx0XHRcdHRtcC5zZXQoIDAsIDAsIDAgKTtcclxuXHJcblx0XHRcdGZvciAoIGogPSAwOyBqIDwgbjsgaiArKyApIHtcclxuXHJcblx0XHRcdFx0Y29ubmVjdGluZ0VkZ2UgPSBjb25uZWN0aW5nRWRnZXNbIGogXTtcclxuXHRcdFx0XHRvdGhlciA9IGNvbm5lY3RpbmdFZGdlLmEgIT09IG9sZFZlcnRleCA/IGNvbm5lY3RpbmdFZGdlLmEgOiBjb25uZWN0aW5nRWRnZS5iO1xyXG5cdFx0XHRcdHRtcC5hZGQoIG90aGVyICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0bXAubXVsdGlwbHlTY2FsYXIoIGNvbm5lY3RpbmdWZXJ0ZXhXZWlnaHQgKTtcclxuXHRcdFx0bmV3U291cmNlVmVydGV4LmFkZCggdG1wICk7XHJcblxyXG5cdFx0XHRuZXdTb3VyY2VWZXJ0aWNlcy5wdXNoKCBuZXdTb3VyY2VWZXJ0ZXggKTtcclxuXHJcblx0XHR9XHJcblxyXG5cclxuXHRcdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHRcdCAqXHJcblx0XHQgKlx0U3RlcCAzLlxyXG5cdFx0ICpcdEdlbmVyYXRlIEZhY2VzIGJldHdlZW4gc291cmNlIHZlcnRpY2VzXHJcblx0XHQgKlx0YW5kIGVkZ2UgdmVydGljZXMuXHJcblx0XHQgKlxyXG5cdFx0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cdFx0bmV3VmVydGljZXMgPSBuZXdTb3VyY2VWZXJ0aWNlcy5jb25jYXQoIG5ld0VkZ2VWZXJ0aWNlcyApO1xyXG5cdFx0dmFyIHNsID0gbmV3U291cmNlVmVydGljZXMubGVuZ3RoLCBlZGdlMSwgZWRnZTIsIGVkZ2UzO1xyXG5cdFx0bmV3RmFjZXMgPSBbXTtcclxuXHJcblx0XHR2YXIgdXYsIHgwLCB4MSwgeDI7XHJcblx0XHR2YXIgeDMgPSBuZXcgVEhSRUUuVmVjdG9yMigpO1xyXG5cdFx0dmFyIHg0ID0gbmV3IFRIUkVFLlZlY3RvcjIoKTtcclxuXHRcdHZhciB4NSA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XHJcblxyXG5cdFx0Zm9yICggaSA9IDAsIGlsID0gb2xkRmFjZXMubGVuZ3RoOyBpIDwgaWw7IGkgKysgKSB7XHJcblxyXG5cdFx0XHRmYWNlID0gb2xkRmFjZXNbIGkgXTtcclxuXHJcblx0XHRcdC8vIGZpbmQgdGhlIDMgbmV3IGVkZ2VzIHZlcnRleCBvZiBlYWNoIG9sZCBmYWNlXHJcblxyXG5cdFx0XHRlZGdlMSA9IGdldEVkZ2UoIGZhY2UuYSwgZmFjZS5iLCBzb3VyY2VFZGdlcyApLm5ld0VkZ2UgKyBzbDtcclxuXHRcdFx0ZWRnZTIgPSBnZXRFZGdlKCBmYWNlLmIsIGZhY2UuYywgc291cmNlRWRnZXMgKS5uZXdFZGdlICsgc2w7XHJcblx0XHRcdGVkZ2UzID0gZ2V0RWRnZSggZmFjZS5jLCBmYWNlLmEsIHNvdXJjZUVkZ2VzICkubmV3RWRnZSArIHNsO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgZmFjZXMuXHJcblxyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZWRnZTEsIGVkZ2UyLCBlZGdlMyApO1xyXG5cdFx0XHRuZXdGYWNlKCBuZXdGYWNlcywgZmFjZS5hLCBlZGdlMSwgZWRnZTMgKTtcclxuXHRcdFx0bmV3RmFjZSggbmV3RmFjZXMsIGZhY2UuYiwgZWRnZTIsIGVkZ2UxICk7XHJcblx0XHRcdG5ld0ZhY2UoIG5ld0ZhY2VzLCBmYWNlLmMsIGVkZ2UzLCBlZGdlMiApO1xyXG5cclxuXHRcdFx0Ly8gY3JlYXRlIDQgbmV3IHV2J3NcclxuXHJcblx0XHRcdGlmICggaGFzVXZzICkge1xyXG5cclxuXHRcdFx0XHR1diA9IG9sZFV2c1sgaSBdO1xyXG5cclxuXHRcdFx0XHR4MCA9IHV2WyAwIF07XHJcblx0XHRcdFx0eDEgPSB1dlsgMSBdO1xyXG5cdFx0XHRcdHgyID0gdXZbIDIgXTtcclxuXHJcblx0XHRcdFx0eDMuc2V0KCBtaWRwb2ludCggeDAueCwgeDEueCApLCBtaWRwb2ludCggeDAueSwgeDEueSApICk7XHJcblx0XHRcdFx0eDQuc2V0KCBtaWRwb2ludCggeDEueCwgeDIueCApLCBtaWRwb2ludCggeDEueSwgeDIueSApICk7XHJcblx0XHRcdFx0eDUuc2V0KCBtaWRwb2ludCggeDAueCwgeDIueCApLCBtaWRwb2ludCggeDAueSwgeDIueSApICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgzLCB4NCwgeDUgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MCwgeDMsIHg1ICk7XHJcblxyXG5cdFx0XHRcdG5ld1V2KCBuZXdVVnMsIHgxLCB4NCwgeDMgKTtcclxuXHRcdFx0XHRuZXdVdiggbmV3VVZzLCB4MiwgeDUsIHg0ICk7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE92ZXJ3cml0ZSBvbGQgYXJyYXlzXHJcblx0XHRnZW9tZXRyeS52ZXJ0aWNlcyA9IG5ld1ZlcnRpY2VzO1xyXG5cdFx0Z2VvbWV0cnkuZmFjZXMgPSBuZXdGYWNlcztcclxuXHRcdGlmICggaGFzVXZzICkgZ2VvbWV0cnkuZmFjZVZlcnRleFV2c1sgMCBdID0gbmV3VVZzO1xyXG5cclxuXHRcdC8vIGNvbnNvbGUubG9nKCdkb25lJyk7XHJcblxyXG5cdH07XHJcblxyXG59ICkoKTtcclxuIiwidmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBhbkFycmF5XG5cbmZ1bmN0aW9uIGFuQXJyYXkoYXJyKSB7XG4gIHJldHVybiAoXG4gICAgICAgYXJyLkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgJiYgc3RyLmNhbGwoYXJyLmJ1ZmZlcikgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSdcbiAgICB8fCBBcnJheS5pc0FycmF5KGFycilcbiAgKVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBudW10eXBlKG51bSwgZGVmKSB7XG5cdHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJ1xuXHRcdD8gbnVtIFxuXHRcdDogKHR5cGVvZiBkZWYgPT09ICdudW1iZXInID8gZGVmIDogMClcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGR0eXBlKSB7XG4gIHN3aXRjaCAoZHR5cGUpIHtcbiAgICBjYXNlICdpbnQ4JzpcbiAgICAgIHJldHVybiBJbnQ4QXJyYXlcbiAgICBjYXNlICdpbnQxNic6XG4gICAgICByZXR1cm4gSW50MTZBcnJheVxuICAgIGNhc2UgJ2ludDMyJzpcbiAgICAgIHJldHVybiBJbnQzMkFycmF5XG4gICAgY2FzZSAndWludDgnOlxuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlcbiAgICBjYXNlICd1aW50MTYnOlxuICAgICAgcmV0dXJuIFVpbnQxNkFycmF5XG4gICAgY2FzZSAndWludDMyJzpcbiAgICAgIHJldHVybiBVaW50MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0MzInOlxuICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0NjQnOlxuICAgICAgcmV0dXJuIEZsb2F0NjRBcnJheVxuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIHJldHVybiBBcnJheVxuICAgIGNhc2UgJ3VpbnQ4X2NsYW1wZWQnOlxuICAgICAgcmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSID0gdHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnID8gUmVmbGVjdCA6IG51bGxcbnZhciBSZWZsZWN0QXBwbHkgPSBSICYmIHR5cGVvZiBSLmFwcGx5ID09PSAnZnVuY3Rpb24nXG4gID8gUi5hcHBseVxuICA6IGZ1bmN0aW9uIFJlZmxlY3RBcHBseSh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpO1xuICB9XG5cbnZhciBSZWZsZWN0T3duS2V5c1xuaWYgKFIgJiYgdHlwZW9mIFIub3duS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICBSZWZsZWN0T3duS2V5cyA9IFIub3duS2V5c1xufSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldClcbiAgICAgIC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKTtcbiAgfTtcbn0gZWxzZSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyh3YXJuaW5nKSB7XG4gIGlmIChjb25zb2xlICYmIGNvbnNvbGUud2FybikgY29uc29sZS53YXJuKHdhcm5pbmcpO1xufVxuXG52YXIgTnVtYmVySXNOYU4gPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gTnVtYmVySXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5tb2R1bGUuZXhwb3J0cy5vbmNlID0gb25jZTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9uY2UoZW1pdHRlciwgbmFtZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZ1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXJyKSB7XG4gICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKG5hbWUsIHJlc29sdmVyKTtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKCkge1xuICAgICAgaWYgKHR5cGVvZiBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgfTtcblxuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCByZXNvbHZlciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIGlmIChuYW1lICE9PSAnZXJyb3InKSB7XG4gICAgICBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBlcnJvckxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgaGFuZGxlciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsICdlcnJvcicsIGhhbmRsZXIsIGZsYWdzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgbGlzdGVuZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICBlbWl0dGVyLm9uY2UobmFtZSwgbGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbWl0dGVyLm9uKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEV2ZW50VGFyZ2V0IGRvZXMgbm90IGhhdmUgYGVycm9yYCBldmVudCBzZW1hbnRpY3MgbGlrZSBOb2RlXG4gICAgLy8gRXZlbnRFbWl0dGVycywgd2UgZG8gbm90IGxpc3RlbiBmb3IgYGVycm9yYCBldmVudHMgaGVyZS5cbiAgICBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZnVuY3Rpb24gd3JhcExpc3RlbmVyKGFyZykge1xuICAgICAgLy8gSUUgZG9lcyBub3QgaGF2ZSBidWlsdGluIGB7IG9uY2U6IHRydWUgfWAgc3VwcG9ydCBzbyB3ZVxuICAgICAgLy8gaGF2ZSB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXIoYXJnKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJlbWl0dGVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGVtaXR0ZXIpO1xuICB9XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gICAgfVxuICB9XG59XG4iLCIvKiFcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXJcbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbi8vIFRoZSBfaXNCdWZmZXIgY2hlY2sgaXMgZm9yIFNhZmFyaSA1LTcgc3VwcG9ydCwgYmVjYXVzZSBpdCdzIG1pc3Npbmdcbi8vIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKGlzQnVmZmVyKG9iaikgfHwgaXNTbG93QnVmZmVyKG9iaikgfHwgISFvYmouX2lzQnVmZmVyKVxufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiAhIW9iai5jb25zdHJ1Y3RvciAmJiB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopXG59XG5cbi8vIEZvciBOb2RlIHYwLjEwIHN1cHBvcnQuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHkuXG5mdW5jdGlvbiBpc1Nsb3dCdWZmZXIgKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iai5yZWFkRmxvYXRMRSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnNsaWNlID09PSAnZnVuY3Rpb24nICYmIGlzQnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsInZhciB3b3JkV3JhcCA9IHJlcXVpcmUoJ3dvcmQtd3JhcHBlcicpXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpXG52YXIgbnVtYmVyID0gcmVxdWlyZSgnYXMtbnVtYmVyJylcblxudmFyIFhfSEVJR0hUUyA9IFsneCcsICdlJywgJ2EnLCAnbycsICduJywgJ3MnLCAncicsICdjJywgJ3UnLCAnbScsICd2JywgJ3cnLCAneiddXG52YXIgTV9XSURUSFMgPSBbJ20nLCAndyddXG52YXIgQ0FQX0hFSUdIVFMgPSBbJ0gnLCAnSScsICdOJywgJ0UnLCAnRicsICdLJywgJ0wnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWiddXG5cblxudmFyIFRBQl9JRCA9ICdcXHQnLmNoYXJDb2RlQXQoMClcbnZhciBTUEFDRV9JRCA9ICcgJy5jaGFyQ29kZUF0KDApXG52YXIgQUxJR05fTEVGVCA9IDAsIFxuICAgIEFMSUdOX0NFTlRFUiA9IDEsIFxuICAgIEFMSUdOX1JJR0hUID0gMlxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUxheW91dChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0TGF5b3V0KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dExheW91dChvcHQpIHtcbiAgdGhpcy5nbHlwaHMgPSBbXVxuICB0aGlzLl9tZWFzdXJlID0gdGhpcy5jb21wdXRlTWV0cmljcy5iaW5kKHRoaXMpXG4gIHRoaXMudXBkYXRlKG9wdClcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24ob3B0KSB7XG4gIG9wdCA9IHh0ZW5kKHtcbiAgICBtZWFzdXJlOiB0aGlzLl9tZWFzdXJlXG4gIH0sIG9wdClcbiAgdGhpcy5fb3B0ID0gb3B0XG4gIHRoaXMuX29wdC50YWJTaXplID0gbnVtYmVyKHRoaXMuX29wdC50YWJTaXplLCA0KVxuXG4gIGlmICghb3B0LmZvbnQpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHByb3ZpZGUgYSB2YWxpZCBiaXRtYXAgZm9udCcpXG5cbiAgdmFyIGdseXBocyA9IHRoaXMuZ2x5cGhzXG4gIHZhciB0ZXh0ID0gb3B0LnRleHR8fCcnIFxuICB2YXIgZm9udCA9IG9wdC5mb250XG4gIHRoaXMuX3NldHVwU3BhY2VHbHlwaHMoZm9udClcbiAgXG4gIHZhciBsaW5lcyA9IHdvcmRXcmFwLmxpbmVzKHRleHQsIG9wdClcbiAgdmFyIG1pbldpZHRoID0gb3B0LndpZHRoIHx8IDBcblxuICAvL2NsZWFyIGdseXBoc1xuICBnbHlwaHMubGVuZ3RoID0gMFxuXG4gIC8vZ2V0IG1heCBsaW5lIHdpZHRoXG4gIHZhciBtYXhMaW5lV2lkdGggPSBsaW5lcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbGluZSkge1xuICAgIHJldHVybiBNYXRoLm1heChwcmV2LCBsaW5lLndpZHRoLCBtaW5XaWR0aClcbiAgfSwgMClcblxuICAvL3RoZSBwZW4gcG9zaXRpb25cbiAgdmFyIHggPSAwXG4gIHZhciB5ID0gMFxuICB2YXIgbGluZUhlaWdodCA9IG51bWJlcihvcHQubGluZUhlaWdodCwgZm9udC5jb21tb24ubGluZUhlaWdodClcbiAgdmFyIGJhc2VsaW5lID0gZm9udC5jb21tb24uYmFzZVxuICB2YXIgZGVzY2VuZGVyID0gbGluZUhlaWdodC1iYXNlbGluZVxuICB2YXIgbGV0dGVyU3BhY2luZyA9IG9wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGhlaWdodCA9IGxpbmVIZWlnaHQgKiBsaW5lcy5sZW5ndGggLSBkZXNjZW5kZXJcbiAgdmFyIGFsaWduID0gZ2V0QWxpZ25UeXBlKHRoaXMuX29wdC5hbGlnbilcblxuICAvL2RyYXcgdGV4dCBhbG9uZyBiYXNlbGluZVxuICB5IC09IGhlaWdodFxuICBcbiAgLy90aGUgbWV0cmljcyBmb3IgdGhpcyB0ZXh0IGxheW91dFxuICB0aGlzLl93aWR0aCA9IG1heExpbmVXaWR0aFxuICB0aGlzLl9oZWlnaHQgPSBoZWlnaHRcbiAgdGhpcy5fZGVzY2VuZGVyID0gbGluZUhlaWdodCAtIGJhc2VsaW5lXG4gIHRoaXMuX2Jhc2VsaW5lID0gYmFzZWxpbmVcbiAgdGhpcy5feEhlaWdodCA9IGdldFhIZWlnaHQoZm9udClcbiAgdGhpcy5fY2FwSGVpZ2h0ID0gZ2V0Q2FwSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0XG4gIHRoaXMuX2FzY2VuZGVyID0gbGluZUhlaWdodCAtIGRlc2NlbmRlciAtIHRoaXMuX3hIZWlnaHRcbiAgICBcbiAgLy9sYXlvdXQgZWFjaCBnbHlwaFxuICB2YXIgc2VsZiA9IHRoaXNcbiAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLCBsaW5lSW5kZXgpIHtcbiAgICB2YXIgc3RhcnQgPSBsaW5lLnN0YXJ0XG4gICAgdmFyIGVuZCA9IGxpbmUuZW5kXG4gICAgdmFyIGxpbmVXaWR0aCA9IGxpbmUud2lkdGhcbiAgICB2YXIgbGFzdEdseXBoXG4gICAgXG4gICAgLy9mb3IgZWFjaCBnbHlwaCBpbiB0aGF0IGxpbmUuLi5cbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZDsgaSsrKSB7XG4gICAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICAgIHZhciBnbHlwaCA9IHNlbGYuZ2V0R2x5cGgoZm9udCwgaWQpXG4gICAgICBpZiAoZ2x5cGgpIHtcbiAgICAgICAgaWYgKGxhc3RHbHlwaCkgXG4gICAgICAgICAgeCArPSBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpXG5cbiAgICAgICAgdmFyIHR4ID0geFxuICAgICAgICBpZiAoYWxpZ24gPT09IEFMSUdOX0NFTlRFUikgXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpLzJcbiAgICAgICAgZWxzZSBpZiAoYWxpZ24gPT09IEFMSUdOX1JJR0hUKVxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKVxuXG4gICAgICAgIGdseXBocy5wdXNoKHtcbiAgICAgICAgICBwb3NpdGlvbjogW3R4LCB5XSxcbiAgICAgICAgICBkYXRhOiBnbHlwaCxcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBsaW5lOiBsaW5lSW5kZXhcbiAgICAgICAgfSkgIFxuXG4gICAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgICB4ICs9IGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vbmV4dCBsaW5lIGRvd25cbiAgICB5ICs9IGxpbmVIZWlnaHRcbiAgICB4ID0gMFxuICB9KVxuICB0aGlzLl9saW5lc1RvdGFsID0gbGluZXMubGVuZ3RoO1xufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5fc2V0dXBTcGFjZUdseXBocyA9IGZ1bmN0aW9uKGZvbnQpIHtcbiAgLy9UaGVzZSBhcmUgZmFsbGJhY2tzLCB3aGVuIHRoZSBmb250IGRvZXNuJ3QgaW5jbHVkZVxuICAvLycgJyBvciAnXFx0JyBnbHlwaHNcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gbnVsbFxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0gbnVsbFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm5cblxuICAvL3RyeSB0byBnZXQgc3BhY2UgZ2x5cGhcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgJ20nIG9yICd3JyBnbHlwaHNcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgZmlyc3QgZ2x5cGggYXZhaWxhYmxlXG4gIHZhciBzcGFjZSA9IGdldEdseXBoQnlJZChmb250LCBTUEFDRV9JRCkgXG4gICAgICAgICAgfHwgZ2V0TUdseXBoKGZvbnQpIFxuICAgICAgICAgIHx8IGZvbnQuY2hhcnNbMF1cblxuICAvL2FuZCBjcmVhdGUgYSBmYWxsYmFjayBmb3IgdGFiXG4gIHZhciB0YWJXaWR0aCA9IHRoaXMuX29wdC50YWJTaXplICogc3BhY2UueGFkdmFuY2VcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gc3BhY2VcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IHh0ZW5kKHNwYWNlLCB7XG4gICAgeDogMCwgeTogMCwgeGFkdmFuY2U6IHRhYldpZHRoLCBpZDogVEFCX0lELCBcbiAgICB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwXG4gIH0pXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmdldEdseXBoID0gZnVuY3Rpb24oZm9udCwgaWQpIHtcbiAgdmFyIGdseXBoID0gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKVxuICBpZiAoZ2x5cGgpXG4gICAgcmV0dXJuIGdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBUQUJfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1RhYkdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBTUEFDRV9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaFxuICByZXR1cm4gbnVsbFxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5jb21wdXRlTWV0cmljcyA9IGZ1bmN0aW9uKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gdGhpcy5fb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgZm9udCA9IHRoaXMuX29wdC5mb250XG4gIHZhciBjdXJQZW4gPSAwXG4gIHZhciBjdXJXaWR0aCA9IDBcbiAgdmFyIGNvdW50ID0gMFxuICB2YXIgZ2x5cGhcbiAgdmFyIGxhc3RHbHlwaFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogc3RhcnQsXG4gICAgICBlbmQ6IHN0YXJ0LFxuICAgICAgd2lkdGg6IDBcbiAgICB9XG4gIH1cblxuICBlbmQgPSBNYXRoLm1pbih0ZXh0Lmxlbmd0aCwgZW5kKVxuICBmb3IgKHZhciBpPXN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB2YXIgZ2x5cGggPSB0aGlzLmdldEdseXBoKGZvbnQsIGlkKVxuXG4gICAgaWYgKGdseXBoKSB7XG4gICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgIHZhciB4b2ZmID0gZ2x5cGgueG9mZnNldFxuICAgICAgdmFyIGtlcm4gPSBsYXN0R2x5cGggPyBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpIDogMFxuICAgICAgY3VyUGVuICs9IGtlcm5cblxuICAgICAgdmFyIG5leHRQZW4gPSBjdXJQZW4gKyBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgIHZhciBuZXh0V2lkdGggPSBjdXJQZW4gKyBnbHlwaC53aWR0aFxuXG4gICAgICAvL3dlJ3ZlIGhpdCBvdXIgbGltaXQ7IHdlIGNhbid0IG1vdmUgb250byB0aGUgbmV4dCBnbHlwaFxuICAgICAgaWYgKG5leHRXaWR0aCA+PSB3aWR0aCB8fCBuZXh0UGVuID49IHdpZHRoKVxuICAgICAgICBicmVha1xuXG4gICAgICAvL290aGVyd2lzZSBjb250aW51ZSBhbG9uZyBvdXIgbGluZVxuICAgICAgY3VyUGVuID0gbmV4dFBlblxuICAgICAgY3VyV2lkdGggPSBuZXh0V2lkdGhcbiAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgfVxuICAgIGNvdW50KytcbiAgfVxuICBcbiAgLy9tYWtlIHN1cmUgcmlnaHRtb3N0IGVkZ2UgbGluZXMgdXAgd2l0aCByZW5kZXJlZCBnbHlwaHNcbiAgaWYgKGxhc3RHbHlwaClcbiAgICBjdXJXaWR0aCArPSBsYXN0R2x5cGgueG9mZnNldFxuXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IHN0YXJ0LFxuICAgIGVuZDogc3RhcnQgKyBjb3VudCxcbiAgICB3aWR0aDogY3VyV2lkdGhcbiAgfVxufVxuXG4vL2dldHRlcnMgZm9yIHRoZSBwcml2YXRlIHZhcnNcbjtbJ3dpZHRoJywgJ2hlaWdodCcsIFxuICAnZGVzY2VuZGVyJywgJ2FzY2VuZGVyJyxcbiAgJ3hIZWlnaHQnLCAnYmFzZWxpbmUnLFxuICAnY2FwSGVpZ2h0JyxcbiAgJ2xpbmVIZWlnaHQnIF0uZm9yRWFjaChhZGRHZXR0ZXIpXG5cbmZ1bmN0aW9uIGFkZEdldHRlcihuYW1lKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZXh0TGF5b3V0LnByb3RvdHlwZSwgbmFtZSwge1xuICAgIGdldDogd3JhcHBlcihuYW1lKSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSlcbn1cblxuLy9jcmVhdGUgbG9va3VwcyBmb3IgcHJpdmF0ZSB2YXJzXG5mdW5jdGlvbiB3cmFwcGVyKG5hbWUpIHtcbiAgcmV0dXJuIChuZXcgRnVuY3Rpb24oW1xuICAgICdyZXR1cm4gZnVuY3Rpb24gJytuYW1lKycoKSB7JyxcbiAgICAnICByZXR1cm4gdGhpcy5fJytuYW1lLFxuICAgICd9J1xuICBdLmpvaW4oJ1xcbicpKSkoKVxufVxuXG5mdW5jdGlvbiBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpIHtcbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIGdseXBoSWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gIGlmIChnbHlwaElkeCA+PSAwKVxuICAgIHJldHVybiBmb250LmNoYXJzW2dseXBoSWR4XVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBnZXRYSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPFhfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IFhfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldE1HbHlwaChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxNX1dJRFRIUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IE1fV0lEVEhTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRDYXBIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8Q0FQX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBDQVBfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEtlcm5pbmcoZm9udCwgbGVmdCwgcmlnaHQpIHtcbiAgaWYgKCFmb250Lmtlcm5pbmdzIHx8IGZvbnQua2VybmluZ3MubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiAwXG5cbiAgdmFyIHRhYmxlID0gZm9udC5rZXJuaW5nc1xuICBmb3IgKHZhciBpPTA7IGk8dGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2VybiA9IHRhYmxlW2ldXG4gICAgaWYgKGtlcm4uZmlyc3QgPT09IGxlZnQgJiYga2Vybi5zZWNvbmQgPT09IHJpZ2h0KVxuICAgICAgcmV0dXJuIGtlcm4uYW1vdW50XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0QWxpZ25UeXBlKGFsaWduKSB7XG4gIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpXG4gICAgcmV0dXJuIEFMSUdOX0NFTlRFUlxuICBlbHNlIGlmIChhbGlnbiA9PT0gJ3JpZ2h0JylcbiAgICByZXR1cm4gQUxJR05fUklHSFRcbiAgcmV0dXJuIEFMSUdOX0xFRlRcbn1cblxuZnVuY3Rpb24gZmluZENoYXIgKGFycmF5LCB2YWx1ZSwgc3RhcnQpIHtcbiAgc3RhcnQgPSBzdGFydCB8fCAwXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldLmlkID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xXG59IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcGFyc2VCTUZvbnRBc2NpaShkYXRhKSB7XG4gIGlmICghZGF0YSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgcHJvdmlkZWQnKVxuICBkYXRhID0gZGF0YS50b1N0cmluZygpLnRyaW0oKVxuXG4gIHZhciBvdXRwdXQgPSB7XG4gICAgcGFnZXM6IFtdLFxuICAgIGNoYXJzOiBbXSxcbiAgICBrZXJuaW5nczogW11cbiAgfVxuXG4gIHZhciBsaW5lcyA9IGRhdGEuc3BsaXQoL1xcclxcbj98XFxuL2cpXG5cbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgaW4gQk1Gb250IGZpbGUnKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGluZURhdGEgPSBzcGxpdExpbmUobGluZXNbaV0sIGkpXG4gICAgaWYgKCFsaW5lRGF0YSkgLy9za2lwIGVtcHR5IGxpbmVzXG4gICAgICBjb250aW51ZVxuXG4gICAgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ3BhZ2UnKSB7XG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuaWQgIT09ICdudW1iZXInKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgaWQ9TicpXG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuZmlsZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBmaWxlPVwicGF0aFwiJylcbiAgICAgIG91dHB1dC5wYWdlc1tsaW5lRGF0YS5kYXRhLmlkXSA9IGxpbmVEYXRhLmRhdGEuZmlsZVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcnMnIHx8IGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmdzJykge1xuICAgICAgLy8uLi4gZG8gbm90aGluZyBmb3IgdGhlc2UgdHdvIC4uLlxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcicpIHtcbiAgICAgIG91dHB1dC5jaGFycy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5nJykge1xuICAgICAgb3V0cHV0Lmtlcm5pbmdzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0W2xpbmVEYXRhLmtleV0gPSBsaW5lRGF0YS5kYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBzcGxpdExpbmUobGluZSwgaWR4KSB7XG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL1xcdCsvZywgJyAnKS50cmltKClcbiAgaWYgKCFsaW5lKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIHNwYWNlID0gbGluZS5pbmRleE9mKCcgJylcbiAgaWYgKHNwYWNlID09PSAtMSkgXG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm8gbmFtZWQgcm93IGF0IGxpbmUgXCIgKyBpZHgpXG5cbiAgdmFyIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIHNwYWNlKVxuXG4gIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhzcGFjZSArIDEpXG4gIC8vY2xlYXIgXCJsZXR0ZXJcIiBmaWVsZCBhcyBpdCBpcyBub24tc3RhbmRhcmQgYW5kXG4gIC8vcmVxdWlyZXMgYWRkaXRpb25hbCBjb21wbGV4aXR5IHRvIHBhcnNlIFwiIC8gPSBzeW1ib2xzXG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL2xldHRlcj1bXFwnXFxcIl1cXFMrW1xcJ1xcXCJdL2dpLCAnJykgIFxuICBsaW5lID0gbGluZS5zcGxpdChcIj1cIilcbiAgbGluZSA9IGxpbmUubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBzdHIudHJpbSgpLm1hdGNoKCgvKFwiLio/XCJ8W15cIlxcc10rKSsoPz1cXHMqfFxccyokKS9nKSlcbiAgfSlcblxuICB2YXIgZGF0YSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkdCA9IGxpbmVbaV1cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFswXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFsxXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0ID0ge1xuICAgIGtleToga2V5LFxuICAgIGRhdGE6IHt9XG4gIH1cblxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIG91dC5kYXRhW3Yua2V5XSA9IHYuZGF0YTtcbiAgfSlcblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShkYXRhKSB7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gXCJcIlxuXG4gIGlmIChkYXRhLmluZGV4T2YoJ1wiJykgPT09IDAgfHwgZGF0YS5pbmRleE9mKFwiJ1wiKSA9PT0gMClcbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoMSwgZGF0YS5sZW5ndGggLSAxKVxuICBpZiAoZGF0YS5pbmRleE9mKCcsJykgIT09IC0xKVxuICAgIHJldHVybiBwYXJzZUludExpc3QoZGF0YSlcbiAgcmV0dXJuIHBhcnNlSW50KGRhdGEsIDEwKVxufVxuXG5mdW5jdGlvbiBwYXJzZUludExpc3QoZGF0YSkge1xuICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMClcbiAgfSlcbn0iLCJ2YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG52YXIgYW5BcnJheSA9IHJlcXVpcmUoJ2FuLWFycmF5JylcbnZhciBpc0J1ZmZlciA9IHJlcXVpcmUoJ2lzLWJ1ZmZlcicpXG5cbnZhciBDVyA9IFswLCAyLCAzXVxudmFyIENDVyA9IFsyLCAxLCAzXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVF1YWRFbGVtZW50cyhhcnJheSwgb3B0KSB7XG4gICAgLy9pZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IGFuIG91dHB1dCBhcnJheVxuICAgIGlmICghYXJyYXkgfHwgIShhbkFycmF5KGFycmF5KSB8fCBpc0J1ZmZlcihhcnJheSkpKSB7XG4gICAgICAgIG9wdCA9IGFycmF5IHx8IHt9XG4gICAgICAgIGFycmF5ID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnbnVtYmVyJykgLy9iYWNrd2FyZHMtY29tcGF0aWJsZVxuICAgICAgICBvcHQgPSB7IGNvdW50OiBvcHQgfVxuICAgIGVsc2VcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9XG5cbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvcHQudHlwZSA9PT0gJ3N0cmluZycgPyBvcHQudHlwZSA6ICd1aW50MTYnXG4gICAgdmFyIGNvdW50ID0gdHlwZW9mIG9wdC5jb3VudCA9PT0gJ251bWJlcicgPyBvcHQuY291bnQgOiAxXG4gICAgdmFyIHN0YXJ0ID0gKG9wdC5zdGFydCB8fCAwKSBcblxuICAgIHZhciBkaXIgPSBvcHQuY2xvY2t3aXNlICE9PSBmYWxzZSA/IENXIDogQ0NXLFxuICAgICAgICBhID0gZGlyWzBdLCBcbiAgICAgICAgYiA9IGRpclsxXSxcbiAgICAgICAgYyA9IGRpclsyXVxuXG4gICAgdmFyIG51bUluZGljZXMgPSBjb3VudCAqIDZcblxuICAgIHZhciBpbmRpY2VzID0gYXJyYXkgfHwgbmV3IChkdHlwZSh0eXBlKSkobnVtSW5kaWNlcylcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBudW1JbmRpY2VzOyBpICs9IDYsIGogKz0gNCkge1xuICAgICAgICB2YXIgeCA9IGkgKyBzdGFydFxuICAgICAgICBpbmRpY2VzW3ggKyAwXSA9IGogKyAwXG4gICAgICAgIGluZGljZXNbeCArIDFdID0gaiArIDFcbiAgICAgICAgaW5kaWNlc1t4ICsgMl0gPSBqICsgMlxuICAgICAgICBpbmRpY2VzW3ggKyAzXSA9IGogKyBhXG4gICAgICAgIGluZGljZXNbeCArIDRdID0gaiArIGJcbiAgICAgICAgaW5kaWNlc1t4ICsgNV0gPSBqICsgY1xuICAgIH1cbiAgICByZXR1cm4gaW5kaWNlc1xufSIsInZhciBjcmVhdGVMYXlvdXQgPSByZXF1aXJlKCdsYXlvdXQtYm1mb250LXRleHQnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIGNyZWF0ZUluZGljZXMgPSByZXF1aXJlKCdxdWFkLWluZGljZXMnKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIC8vLy8gc2pwdCBwYXRjaCBmb3IgdGhyZWUxNDIsIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGlzIGEgY2xhc3NcbiAgaWYgKCtUSFJFRS5SRVZJU0lPTiA8IDE0Mikge1xuICAgIEJhc2UuY2FsbCh0aGlzKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB6enogPSBuZXcgQmFzZSgpOyAvL1BKVDogY2xhc3NpYyBzanB0IHZhcmlhYmxlIG5hbWluZyDvv71cbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHp6eik7XG4gIH1cblxuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgdGhlc2UgYXMgZGVmYXVsdCB2YWx1ZXMgZm9yIGFueSBzdWJzZXF1ZW50XG4gIC8vIGNhbGxzIHRvIHVwZGF0ZSgpXG4gIHRoaXMuX29wdCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdClcblxuICAvLyBhbHNvIGRvIGFuIGluaXRpYWwgc2V0dXAuLi5cbiAgaWYgKG9wdCkgdGhpcy51cGRhdGUob3B0KVxufVxuXG5pbmhlcml0cyhUZXh0R2VvbWV0cnksIEJhc2UpXG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKG9wdCkge1xuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgY29uc3RydWN0b3IgZGVmYXVsdHNcbiAgb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3B0LCBvcHQpXG5cbiAgaWYgKCFvcHQuZm9udCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3BlY2lmeSBhIHsgZm9udCB9IGluIG9wdGlvbnMnKVxuICB9XG5cbiAgdGhpcy5sYXlvdXQgPSBjcmVhdGVMYXlvdXQob3B0KVxuXG4gIC8vIGdldCB2ZWMyIHRleGNvb3Jkc1xuICB2YXIgZmxpcFkgPSBvcHQuZmxpcFkgIT09IGZhbHNlXG5cbiAgLy8gdGhlIGRlc2lyZWQgQk1Gb250IGRhdGFcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuXG4gIC8vIGRldGVybWluZSB0ZXh0dXJlIHNpemUgZnJvbSBmb250IGZpbGVcbiAgdmFyIHRleFdpZHRoID0gZm9udC5jb21tb24uc2NhbGVXXG4gIHZhciB0ZXhIZWlnaHQgPSBmb250LmNvbW1vbi5zY2FsZUhcblxuICAvLyBnZXQgdmlzaWJsZSBnbHlwaHNcbiAgdmFyIGdseXBocyA9IHRoaXMubGF5b3V0LmdseXBocy5maWx0ZXIoZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICByZXR1cm4gYml0bWFwLndpZHRoICogYml0bWFwLmhlaWdodCA+IDBcbiAgfSlcblxuICAvLyBwcm92aWRlIHZpc2libGUgZ2x5cGhzIGZvciBjb252ZW5pZW5jZVxuICB0aGlzLnZpc2libGVHbHlwaHMgPSBnbHlwaHNcblxuICAvLyBnZXQgY29tbW9uIHZlcnRleCBkYXRhXG4gIHZhciBwb3NpdGlvbnMgPSB2ZXJ0aWNlcy5wb3NpdGlvbnMoZ2x5cGhzKVxuICB2YXIgdXZzID0gdmVydGljZXMudXZzKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpXG4gIHZhciBpbmRpY2VzID0gY3JlYXRlSW5kaWNlcyhbXSwge1xuICAgIGNsb2Nrd2lzZTogdHJ1ZSxcbiAgICB0eXBlOiAndWludDE2JyxcbiAgICBjb3VudDogZ2x5cGhzLmxlbmd0aFxuICB9KVxuXG4gIC8vIHVwZGF0ZSB2ZXJ0ZXggZGF0YVxuICB0aGlzLnNldEluZGV4KGluZGljZXMpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocG9zaXRpb25zLCAyKSlcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSh1dnMsIDIpKVxuXG4gIC8vIHVwZGF0ZSBtdWx0aXBhZ2UgZGF0YVxuICBpZiAoIW9wdC5tdWx0aXBhZ2UgJiYgJ3BhZ2UnIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgIC8vIGRpc2FibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwYWdlJylcbiAgfSBlbHNlIGlmIChvcHQubXVsdGlwYWdlKSB7XG4gICAgLy8gZW5hYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB2YXIgcGFnZXMgPSB2ZXJ0aWNlcy5wYWdlcyhnbHlwaHMpXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BhZ2UnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBhZ2VzLCAxKSlcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdTcGhlcmUgPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlID0gbmV3IFRIUkVFLlNwaGVyZSgpXG4gIH1cblxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cyA9IDBcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlci5zZXQoMCwgMCwgMClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlU3BoZXJlKHBvc2l0aW9ucywgdGhpcy5ib3VuZGluZ1NwaGVyZSlcbiAgaWYgKGlzTmFOKHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiAnICtcbiAgICAgICdDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgJyArXG4gICAgICAnXCJwb3NpdGlvblwiIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdCb3ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nQm94ID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ0JveCA9IG5ldyBUSFJFRS5Cb3gzKClcbiAgfVxuXG4gIHZhciBiYm94ID0gdGhpcy5ib3VuZGluZ0JveFxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICBiYm94Lm1ha2VFbXB0eSgpXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZUJveChwb3NpdGlvbnMsIGJib3gpXG59XG4iLCJ2YXIgaXRlbVNpemUgPSAyXG52YXIgYm94ID0geyBtaW46IFswLCAwXSwgbWF4OiBbMCwgMF0gfVxuXG5mdW5jdGlvbiBib3VuZHMgKHBvc2l0aW9ucykge1xuICB2YXIgY291bnQgPSBwb3NpdGlvbnMubGVuZ3RoIC8gaXRlbVNpemVcbiAgYm94Lm1pblswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWluWzFdID0gcG9zaXRpb25zWzFdXG4gIGJveC5tYXhbMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1heFsxXSA9IHBvc2l0aW9uc1sxXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIHZhciB4ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDBdXG4gICAgdmFyIHkgPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMV1cbiAgICBib3gubWluWzBdID0gTWF0aC5taW4oeCwgYm94Lm1pblswXSlcbiAgICBib3gubWluWzFdID0gTWF0aC5taW4oeSwgYm94Lm1pblsxXSlcbiAgICBib3gubWF4WzBdID0gTWF0aC5tYXgoeCwgYm94Lm1heFswXSlcbiAgICBib3gubWF4WzFdID0gTWF0aC5tYXgoeSwgYm94Lm1heFsxXSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlQm94ID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIG91dHB1dC5taW4uc2V0KGJveC5taW5bMF0sIGJveC5taW5bMV0sIDApXG4gIG91dHB1dC5tYXguc2V0KGJveC5tYXhbMF0sIGJveC5tYXhbMV0sIDApXG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVTcGhlcmUgPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgdmFyIG1pblggPSBib3gubWluWzBdXG4gIHZhciBtaW5ZID0gYm94Lm1pblsxXVxuICB2YXIgbWF4WCA9IGJveC5tYXhbMF1cbiAgdmFyIG1heFkgPSBib3gubWF4WzFdXG4gIHZhciB3aWR0aCA9IG1heFggLSBtaW5YXG4gIHZhciBoZWlnaHQgPSBtYXhZIC0gbWluWVxuICB2YXIgbGVuZ3RoID0gTWF0aC5zcXJ0KHdpZHRoICogd2lkdGggKyBoZWlnaHQgKiBoZWlnaHQpXG4gIG91dHB1dC5jZW50ZXIuc2V0KG1pblggKyB3aWR0aCAvIDIsIG1pblkgKyBoZWlnaHQgLyAyLCAwKVxuICBvdXRwdXQucmFkaXVzID0gbGVuZ3RoIC8gMlxufVxuIiwibW9kdWxlLmV4cG9ydHMucGFnZXMgPSBmdW5jdGlvbiBwYWdlcyAoZ2x5cGhzKSB7XG4gIHZhciBwYWdlcyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAxKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGlkID0gZ2x5cGguZGF0YS5wYWdlIHx8IDBcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgfSlcbiAgcmV0dXJuIHBhZ2VzXG59XG5cbm1vZHVsZS5leHBvcnRzLnV2cyA9IGZ1bmN0aW9uIHV2cyAoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSkge1xuICB2YXIgdXZzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHZhciBidyA9IChiaXRtYXAueCArIGJpdG1hcC53aWR0aClcbiAgICB2YXIgYmggPSAoYml0bWFwLnkgKyBiaXRtYXAuaGVpZ2h0KVxuXG4gICAgLy8gdG9wIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgdTAgPSBiaXRtYXAueCAvIHRleFdpZHRoXG4gICAgdmFyIHYxID0gYml0bWFwLnkgLyB0ZXhIZWlnaHRcbiAgICB2YXIgdTEgPSBidyAvIHRleFdpZHRoXG4gICAgdmFyIHYwID0gYmggLyB0ZXhIZWlnaHRcblxuICAgIGlmIChmbGlwWSkge1xuICAgICAgdjEgPSAodGV4SGVpZ2h0IC0gYml0bWFwLnkpIC8gdGV4SGVpZ2h0XG4gICAgICB2MCA9ICh0ZXhIZWlnaHQgLSBiaCkgLyB0ZXhIZWlnaHRcbiAgICB9XG5cbiAgICAvLyBCTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYxXG4gICAgLy8gVExcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIFRSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBCUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYxXG4gIH0pXG4gIHJldHVybiB1dnNcbn1cblxubW9kdWxlLmV4cG9ydHMucG9zaXRpb25zID0gZnVuY3Rpb24gcG9zaXRpb25zIChnbHlwaHMpIHtcbiAgdmFyIHBvc2l0aW9ucyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcblxuICAgIC8vIGJvdHRvbSBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHggPSBnbHlwaC5wb3NpdGlvblswXSArIGJpdG1hcC54b2Zmc2V0XG4gICAgdmFyIHkgPSBnbHlwaC5wb3NpdGlvblsxXSArIGJpdG1hcC55b2Zmc2V0XG5cbiAgICAvLyBxdWFkIHNpemVcbiAgICB2YXIgdyA9IGJpdG1hcC53aWR0aFxuICAgIHZhciBoID0gYml0bWFwLmhlaWdodFxuXG4gICAgLy8gQkxcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgICAvLyBUTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBUUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gQlJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gIH0pXG4gIHJldHVybiBwb3NpdGlvbnNcbn1cbiIsInZhciBuZXdsaW5lID0gL1xcbi9cbnZhciBuZXdsaW5lQ2hhciA9ICdcXG4nXG52YXIgd2hpdGVzcGFjZSA9IC9cXHMvXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odGV4dCwgb3B0KSB7XG4gICAgdmFyIGxpbmVzID0gbW9kdWxlLmV4cG9ydHMubGluZXModGV4dCwgb3B0KVxuICAgIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcobGluZS5zdGFydCwgbGluZS5lbmQpXG4gICAgfSkuam9pbignXFxuJylcbn1cblxubW9kdWxlLmV4cG9ydHMubGluZXMgPSBmdW5jdGlvbiB3b3Jkd3JhcCh0ZXh0LCBvcHQpIHtcbiAgICBvcHQgPSBvcHR8fHt9XG5cbiAgICAvL3plcm8gd2lkdGggcmVzdWx0cyBpbiBub3RoaW5nIHZpc2libGVcbiAgICBpZiAob3B0LndpZHRoID09PSAwICYmIG9wdC5tb2RlICE9PSAnbm93cmFwJykgXG4gICAgICAgIHJldHVybiBbXVxuXG4gICAgdGV4dCA9IHRleHR8fCcnXG4gICAgdmFyIHdpZHRoID0gdHlwZW9mIG9wdC53aWR0aCA9PT0gJ251bWJlcicgPyBvcHQud2lkdGggOiBOdW1iZXIuTUFYX1ZBTFVFXG4gICAgdmFyIHN0YXJ0ID0gTWF0aC5tYXgoMCwgb3B0LnN0YXJ0fHwwKVxuICAgIHZhciBlbmQgPSB0eXBlb2Ygb3B0LmVuZCA9PT0gJ251bWJlcicgPyBvcHQuZW5kIDogdGV4dC5sZW5ndGhcbiAgICB2YXIgbW9kZSA9IG9wdC5tb2RlXG5cbiAgICB2YXIgbWVhc3VyZSA9IG9wdC5tZWFzdXJlIHx8IG1vbm9zcGFjZVxuICAgIGlmIChtb2RlID09PSAncHJlJylcbiAgICAgICAgcmV0dXJuIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aClcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpXG59XG5cbmZ1bmN0aW9uIGlkeE9mKHRleHQsIGNociwgc3RhcnQsIGVuZCkge1xuICAgIHZhciBpZHggPSB0ZXh0LmluZGV4T2YoY2hyLCBzdGFydClcbiAgICBpZiAoaWR4ID09PSAtMSB8fCBpZHggPiBlbmQpXG4gICAgICAgIHJldHVybiBlbmRcbiAgICByZXR1cm4gaWR4XG59XG5cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjaHIpIHtcbiAgICByZXR1cm4gd2hpdGVzcGFjZS50ZXN0KGNocilcbn1cblxuZnVuY3Rpb24gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGxpbmVzID0gW11cbiAgICB2YXIgbGluZVN0YXJ0ID0gc3RhcnRcbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZCAmJiBpPHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNociA9IHRleHQuY2hhckF0KGkpXG4gICAgICAgIHZhciBpc05ld2xpbmUgPSBuZXdsaW5lLnRlc3QoY2hyKVxuXG4gICAgICAgIC8vSWYgd2UndmUgcmVhY2hlZCBhIG5ld2xpbmUsIHRoZW4gc3RlcCBkb3duIGEgbGluZVxuICAgICAgICAvL09yIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIEVPRlxuICAgICAgICBpZiAoaXNOZXdsaW5lIHx8IGk9PT1lbmQtMSkge1xuICAgICAgICAgICAgdmFyIGxpbmVFbmQgPSBpc05ld2xpbmUgPyBpIDogaSsxXG4gICAgICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIGxpbmVTdGFydCwgbGluZUVuZCwgd2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKG1lYXN1cmVkKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBsaW5lU3RhcnQgPSBpKzFcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKSB7XG4gICAgLy9BIGdyZWVkeSB3b3JkIHdyYXBwZXIgYmFzZWQgb24gTGliR0RYIGFsZ29yaXRobVxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL2xpYmdkeC9saWJnZHgvYmxvYi9tYXN0ZXIvZ2R4L3NyYy9jb20vYmFkbG9naWMvZ2R4L2dyYXBoaWNzL2cyZC9CaXRtYXBGb250Q2FjaGUuamF2YVxuICAgIHZhciBsaW5lcyA9IFtdXG5cbiAgICB2YXIgdGVzdFdpZHRoID0gd2lkdGhcbiAgICAvL2lmICdub3dyYXAnIGlzIHNwZWNpZmllZCwgd2Ugb25seSB3cmFwIG9uIG5ld2xpbmUgY2hhcnNcbiAgICBpZiAobW9kZSA9PT0gJ25vd3JhcCcpXG4gICAgICAgIHRlc3RXaWR0aCA9IE51bWJlci5NQVhfVkFMVUVcblxuICAgIHdoaWxlIChzdGFydCA8IGVuZCAmJiBzdGFydCA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgIC8vZ2V0IG5leHQgbmV3bGluZSBwb3NpdGlvblxuICAgICAgICB2YXIgbmV3TGluZSA9IGlkeE9mKHRleHQsIG5ld2xpbmVDaGFyLCBzdGFydCwgZW5kKVxuXG4gICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgc3RhcnQgb2YgbGluZVxuICAgICAgICB3aGlsZSAoc3RhcnQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSggdGV4dC5jaGFyQXQoc3RhcnQpICkpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIHN0YXJ0KytcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZGV0ZXJtaW5lIHZpc2libGUgIyBvZiBnbHlwaHMgZm9yIHRoZSBhdmFpbGFibGUgd2lkdGhcbiAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbmV3TGluZSwgdGVzdFdpZHRoKVxuXG4gICAgICAgIHZhciBsaW5lRW5kID0gc3RhcnQgKyAobWVhc3VyZWQuZW5kLW1lYXN1cmVkLnN0YXJ0KVxuICAgICAgICB2YXIgbmV4dFN0YXJ0ID0gbGluZUVuZCArIG5ld2xpbmVDaGFyLmxlbmd0aFxuXG4gICAgICAgIC8vaWYgd2UgaGFkIHRvIGN1dCB0aGUgbGluZSBiZWZvcmUgdGhlIG5leHQgbmV3bGluZS4uLlxuICAgICAgICBpZiAobGluZUVuZCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIC8vZmluZCBjaGFyIHRvIGJyZWFrIG9uXG4gICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kKSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluZUVuZCA9PT0gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXJ0ID4gc3RhcnQgKyBuZXdsaW5lQ2hhci5sZW5ndGgpIG5leHRTdGFydC0tXG4gICAgICAgICAgICAgICAgbGluZUVuZCA9IG5leHRTdGFydCAvLyBJZiBubyBjaGFyYWN0ZXJzIHRvIGJyZWFrLCBzaG93IGFsbC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gbGluZUVuZFxuICAgICAgICAgICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgZW5kIG9mIGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQgLSBuZXdsaW5lQ2hhci5sZW5ndGgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGluZUVuZCA+PSBzdGFydCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIGxpbmVFbmQsIHRlc3RXaWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KVxuICAgICAgICB9XG4gICAgICAgIHN0YXJ0ID0gbmV4dFN0YXJ0XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG4vL2RldGVybWluZXMgdGhlIHZpc2libGUgbnVtYmVyIG9mIGdseXBocyB3aXRoaW4gYSBnaXZlbiB3aWR0aFxuZnVuY3Rpb24gbW9ub3NwYWNlKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGdseXBocyA9IE1hdGgubWluKHdpZHRoLCBlbmQtc3RhcnQpXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBlbmQ6IHN0YXJ0K2dseXBoc1xuICAgIH1cbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGV4dGVuZFxuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBleHRlbmQoKSB7XG4gICAgdmFyIHRhcmdldCA9IHt9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldXG5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldFxufVxuIl19 diff --git a/build/datguivr.map b/build/datguivr.map index 6908a07..4cdec13 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_frag","REVISION","searchValues","threever","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","labelString","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","zzz","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireDefault","obj","__esModule","default","_interopRequireWildcard","newObj","key","Object","prototype","hasOwnProperty","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","SubdivisionModifier","modify","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_SubdivisionModifier","_textlabel","_interaction","_colors","_layout","_sharedmaterials","_grab","../thirdparty/SubdivisionModifier","./colors","./grab","./interaction","./layout","./sharedmaterials","./textlabel","2","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_graphic","./graphic","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_frag","REVISION","searchValues","threever","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","labelString","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","subdivisions","repeats","smooth","computeVertexNormals","25","anArray","BYTES_PER_ELEMENT","buffer","26","num","def","27","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","28","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","29","ctor","superCtor","super_","writable","configurable","TempCtor","30","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","31","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","32","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","33","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","34","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","35","TextGeometry","Base","zzz","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","36","bounds","minX","minY","maxX","maxY","sqrt","37","page","bw","bh","u0","v1","u1","v0","38","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","39","extend"],"mappings":"CAAA,WAAY,QAASA,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAE,kBAAmBC,UAASA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,IAAIK,GAAE,GAAIC,OAAM,uBAAuBN,EAAE,IAAK,MAAMK,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEX,EAAEG,IAAIS,WAAYb,GAAEI,GAAG,GAAGU,KAAKF,EAAEC,QAAQ,SAASd,GAAoB,MAAOI,GAAlBH,EAAEI,GAAG,GAAGL,IAAeA,IAAIa,EAAEA,EAAEC,QAAQd,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGS,QAAQ,IAAI,GAAIL,GAAE,kBAAmBD,UAASA,QAAQH,EAAE,EAAEA,EAAEF,EAAEa,OAAOX,IAAID,EAAED,EAAEE,GAAI,OAAOD,GAAE,MAAOJ,OAAOiB,GAAG,SAAST,EAAQU,EAAOJ,GACxe,YAmCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASK,KAuEP,QAASC,GAAcjB,IACC,IAAlBkB,EAAMC,UAIVC,EAAOC,KAEPC,EAAcC,SAASC,EAAmB,GAAfC,EAE3BzB,EAAE0B,QAAS,GAGb,QAASC,KACPL,EAAcC,SAASC,EAAmB,GAAfC,EAG7B,QAASG,KAEHC,EAAYC,WACdC,EAASC,MAAMC,OAAOC,EAAOC,wBAE7BJ,EAASC,MAAMC,OAAOC,EAAOE,cA3FjC,GAAIC,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DC,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDG,EAAuB,GAART,EAAcC,EAAOS,aACpCC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACIG,GAAcV,EAAeE,EAC7BS,EAAO,GAAIR,OAAMS,YAAYZ,EAAcE,EAAe7B,EAAcwC,KAAKC,MAFjE,EAEmFJ,GAFnF,EAAA,EAGD,IAAIP,OAAMY,oBAAoB,GACpCC,OAAOL,GAChBA,EAAKM,UAAyB,GAAfjB,EAAoB,EAAG,EAGtC,IAAIkB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAmB,GAAfC,EAC3BH,EAAcC,SAASmD,EAAY,GAAR/B,CAE3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOE,eACvDuC,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAElB,IAAIC,GAAcpC,EAAYqC,OAAOxD,GAAgByD,MAAO,MAI5DF,GAAYrD,SAASmD,EAAmB,GAAftB,EAAgD,MAA3BwB,EAAYG,OAAOpC,MAAmB,GACpFiC,EAAYrD,SAASC,EAAmB,IAAfC,EACzBmD,EAAYrD,SAASyD,GAAK,KAC1BL,EAAad,IAAIe,EAEjB,IAAIK,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,aAAc7D,GAEpCC,IA2BAV,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAiBzD,OAfAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAETA,EAAM0D,YAAc,SAAUoB,GAE5B,MADApB,GAAYqB,YAAYD,GACjB9E,GAGFA,EAzJTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUO,CAElB,IAAIoF,GAAuBzG,EAAQ,qCAI/B0G,GAFsB3F,EAAwB0F,GAEjCzG,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KA8IhCC,oCAAoC,GAAGC,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKC,GAAG,SAASvH,EAAQU,EAAOJ,GACxK,YAmCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAqBvF,QAAS4G,KAuDP,QAASlG,GAAcjB,IACC,IAAlBkB,EAAMC,UAIViG,EAAMjB,OAASiB,EAAMjB,MAErB/E,EAAOC,GAAgB+F,EAAMjB,MAEzBkB,GACFA,EAAYD,EAAMjB,OAGpBnG,EAAE0B,QAAS,GAGb,QAASE,KACP0F,EAAUnG,QAAUiG,EAAMjB,MAC1BoB,EAAUpG,QAAUU,EAAYC,WAC5B0F,IACFA,EAAQF,UAAUnG,QAAUiG,EAAMjB,MAClCqB,EAAQD,UAAUpG,QAAUqG,EAAQ3F,YAAYC,YAwBpD,QAAS2F,KACP,GAAID,EAAS,MAAOA,EACpB,IAAIE,GAA6B,GAAtB9E,EAAOI,aACde,EAAO,GAAIR,OAAMS,YAAY0D,EAAMA,EAAMxE,EAC7Ca,GAAKM,UAAiB,GAAPqD,EAAY,EAAG,EAC9B,IAAIpD,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAC1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDkD,GAAUlG,EAEVA,EAAcC,SAASC,EAAI0B,CAG3B,IAAIqE,GAAY3E,EAAOgB,YAAY8D,EAAO9E,EAAO+E,iBAAkBD,EAAO9E,EAAO+E,iBAAkBzE,GAAO,EAC1GsE,GAAQD,UAAYA,EACpBA,EAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,CAEvB,IAAIoE,GAAYM,EAAQN,UAAU,GAAMI,EAAO9E,EAAOiF,cACtDL,GAAQF,UAAYA,EACpBA,EAAUnG,QAAUiG,EAAMjB,MAC1BmB,EAAU/F,SAASC,EAAY,IAAR0B,EACvB5B,EAAcuC,IAAIyD,EAElB,IAAIzF,IAAc,EAAIyD,EAAc7E,SAASa,EAe7C,OAdAO,GAAY0D,OAAOC,GAAG,YAAasC,GACnCN,EAAQ3F,YAAcA,EAGtB2F,EAAQ5B,cAAgB,SAAUC,GAC5BuB,EAAMW,SACRX,EAAMjB,MAAQ/E,EAAOC,IAIvBQ,EAAYiE,OAAOD,GACnBjE,KAGK4F,EAIT,QAASM,GAAkB9H,IACI,IAAzBkB,EAAM8G,OAAO7G,UAAyC,IAApBqG,EAAQrG,UAC9CiG,EAAMjB,OAASiB,EAAMjB,MACrB/E,EAAOC,GAAgB+F,EAAMjB,MACzBkB,GAAaA,EAAYD,EAAMjB,OACnCnG,EAAE0B,QAAS,EAGX8F,EAAQF,UAAUnG,QAAUiG,EAAMjB,OAvJpC,GAAI9D,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DwF,EAAoB5F,EAAK6F,aACzBA,MAAqC3F,KAAtB0F,GAA0CA,EACzDvF,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACFjB,MAAO+B,EACPH,QAAQ,GAGNI,EAAevF,EAAOI,aAAeJ,EAAOiF,cAE5C3G,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,WAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAI4D,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIqC,OAAc,EAGlBnG,GAAMkH,SAAW,SAAUC,GAEzB,MADAhB,GAAcgB,EACPnH,GAGTA,EAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,GAGTA,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,EAGT,IAAIoG,OAAY,GACZC,MAAY,GACZ1F,MAAc,GA2BdyG,GAAwB,CAC5BpH,GAAMqH,mBAAqB,WACzB,GAAIpC,KAAQ7D,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,KAAmBA,UAAU,EAS3E,OAPI6D,KAAUmC,IACZA,EAAwBnC,EAGxBqB,EAAUC,IACNtB,EAAOjF,EAAM8G,OAAOQ,cAAchB,GAAcA,EAAQrG,SAAU,GAEjED,GAETL,OAAOqF,eAAehF,EAAO,yBAC3BuH,IAAK,WACH,MAAOH,IAETI,IAAKxH,EAAMqH,oBAEb,IAAIf,OAAU,GAwDV7D,MAAQ,EA+EZ,OA5EAzC,GAAMyH,UAAY,SAAUC,GACtBjF,GAAOzC,EAAM2H,OAAOlF,GAExBzC,EAAM4H,QAAUF,CAEhB,IAAIG,GAAiBH,EAAYT,EAC7Ba,EAAkBD,EAClBE,EAAiB/F,EACjBgG,EAAiB,GAAMH,EAAiBnG,EAAOiF,aAEnDlE,GAAQf,EAAOgB,YAAYjB,EAAOiG,EAAW1F,GAC7ChC,EAAM2C,IAAIF,EAGV,IAAII,GAAO,GAAIR,OAAMS,YAAY+E,EAAgBC,EAAiBC,EAClElF,GAAKM,UAA2B,GAAjB0E,EAAsB,EAAG,EAGxC,IAAIzE,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAI0B,EAC3B5B,EAAcC,SAASmD,EAAY,GAAR/B,CAO3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOiH,oBACvDxE,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAElB,IAAIQ,GAAevC,EAAOwC,sBAAsBwD,EAAW1G,EAAOkH,uBAClEjE,GAAa5D,SAASC,EAAI0B,EAE1BqE,EAAY3E,EAAOgB,YAAYmF,EAAiBnG,EAAO+E,iBAAkBqB,EAAkBpG,EAAO+E,iBAAkBsB,GAAgB,GACpI1B,EAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,EAEvBoE,EAAYM,EAAQN,UAAU4B,GAC9B5B,EAAU/F,SAASC,EAAY,IAAR0B,EACvB5B,EAAcuC,IAAIyD,GAElB3D,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAAcoC,GAIxD1F,GAAc,EAAIyD,EAAc7E,SAASa,GACzCO,EAAY0D,OAAOC,GAAG,YAAavE,GAEnCW,IAEAV,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC1BuB,EAAMW,SACRX,EAAMjB,MAAQ/E,EAAOC,IAEvBQ,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGEV,EAAM8G,QAAQ9G,EAAM8G,OAAOqB,gBAExBnI,GAGTA,EAAMyH,UAAU5F,GAET7B,EAlSTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAU0G,CAElB,IAAId,GAAa1G,EAAQ,eAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC7C,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KAsQhCE,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKuC,GAAG,SAAS7J,EAAQU,EAAOJ,GAC/I,YA+BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAgCvF,QAASkJ,GAASC,EAAGC,EAAGC,GACpB,GAAIzK,GAAG0K,EAAGC,EAAGtK,EAAGC,EAAGO,EAAG+J,EAAGzK,CAUzB,QATyB,IAArBgD,UAAUnC,aAEEoC,KAARmH,EAAEhF,GAAiBiF,EAAID,EAAE1E,EAAG4E,EAAIF,EAAElI,EAAGkI,EAAIA,EAAEhF,IAAOiF,EAAID,EAAEC,EAAGC,EAAIF,EAAEE,EAAGF,EAAIA,EAAEA,IAElFlK,EAAIyE,KAAKC,MAAU,EAAJwF,GACfjK,EAAQ,EAAJiK,EAAQlK,EACZQ,EAAI4J,GAAK,EAAID,GACbI,EAAIH,GAAK,EAAInK,EAAIkK,GACjBrK,EAAIsK,GAAK,GAAK,EAAInK,GAAKkK,GACfnK,EAAI,GACR,IAAK,GACDL,EAAIyK,EAAGC,EAAIvK,EAAGwK,EAAI9J,CAAE,MACxB,KAAK,GACDb,EAAI4K,EAAGF,EAAID,EAAGE,EAAI9J,CAAE,MACxB,KAAK,GACDb,EAAIa,EAAG6J,EAAID,EAAGE,EAAIxK,CAAE,MACxB,KAAK,GACDH,EAAIa,EAAG6J,EAAIE,EAAGD,EAAIF,CAAE,MACxB,KAAK,GACDzK,EAAIG,EAAGuK,EAAI7J,EAAG8J,EAAIF,CAAE,MACxB,KAAK,GACDzK,EAAIyK,EAAGC,EAAI7J,EAAG8J,EAAIC,EAE1B,OACI5K,EAAGA,EACH0K,EAAGA,EACHC,EAAGA,GAQX,QAASE,GAAS7K,EAAG0K,EAAGC,GACK,IAArBxH,UAAUnC,SACV0J,EAAI1K,EAAE0K,EAAGC,EAAI3K,EAAE2K,EAAG3K,EAAIA,EAAEA,EAE5B,IAGIuK,GAHAO,EAAMhG,KAAKgG,IAAI9K,EAAG0K,EAAGC,GACrBI,EAAMjG,KAAKiG,IAAI/K,EAAG0K,EAAGC,GACrBK,EAAIF,EAAMC,EAEVP,EAAY,IAARM,EAAY,EAAIE,EAAIF,EACxBL,EAAIK,CAER,QAAQA,GACJ,IAAKC,GACDR,EAAI,CAAE,MACV,KAAKvK,GACDuK,EAAIG,EAAIC,EAAIK,GAAKN,EAAIC,EAAI,EAAI,GAAGJ,GAAK,EAAIS,CAAE,MAC/C,KAAKN,GACDH,EAAII,EAAI3K,EAAQ,EAAJgL,EAAMT,GAAK,EAAIS,CAAE,MACjC,KAAKL,GACDJ,EAAIvK,EAAI0K,EAAQ,EAAJM,EAAMT,GAAK,EAAIS,EAGnC,OACIT,EAAGA,EACHC,EAAGA,EACHC,EAAGA,EACHlF,EAAGgF,EAAG1E,EAAG2E,EAAGnI,EAAGoI,GAIvB,QAASQ,KAiCL,QAASC,KACLC,EAAMtI,MAAM0G,IAAI1G,GAChBuD,EAAOgF,KAAK,WAAYvI,GAK5B,QAASwI,KACA7G,GACLA,EAAMpC,SAASmH,IAAI,EAAG,EAAG,EAAIxF,GAGjC,QAASuH,KACL,GAAI9G,EAIA,MAHAA,GAAMxC,SAAWwC,EAAMxC,QACnBwC,EAAMxC,SAASD,EAAM8G,OAAO0C,eAAe/G,OAC/C6G,IAOA,IAHA7G,EAAQgH,IAAIC,MAAM/F,OAAO,iBACzBlB,EAAMkH,aAEFC,EAAY,CACZ,GAAIC,GAAO,SAAc/K,GACrBgL,EAASC,YAAY9E,MAAMzB,EAAI1E,EAAEkL,WAAWxG,CAC5C,IAAIhF,GAAI+J,EAASuB,EAASC,YAAY9E,MACtCnE,GAAMmJ,OAAOzL,EAAEP,EAAGO,EAAEmK,EAAGnK,EAAEoK,GACzBO,IACAe,EAAUC,aAAc,GAGxBC,EAAa,GAAI/H,OAAMgI,gBACvBP,SAAUA,EACVQ,aAAcC,EACdC,eAAgBC,IAEhBC,EAAQ,SAAe5L,GACvBgL,EAASC,YAAY9E,MAAMnB,EAAIhF,EAAEkL,WAAWxG,EAC5CsG,EAASC,YAAY9E,MAAM3E,EAAIxB,EAAEkL,WAAWlG,CAE5C,IAAItF,GAAI+J,EAASuB,EAASC,YAAY9E,MACtCnE,GAAMmJ,OAAOzL,EAAEP,EAAGO,EAAEmK,EAAGnK,EAAEoK,GACzBO,IACAe,EAAUC,aAAc,GAGxBQ,EAAcjJ,EAAOnB,aAAe,EACxCkC,GAAMmI,gBAAgBF,EAAON,GAFlB,EAEoC1I,EAAOC,YAAc,EAAGK,EAAO2I,EAC9E,IAAIT,GAAY,GAAI7H,OAAMgI,gBACtBP,SAAUA,EACVQ,aAAcC,EACdC,eAAgBK,GAIpBpI,GAAMmI,gBAAgBf,EAAMK,GAVjB,EAUkCxI,EAAOI,aAAcE,EAAO2I,OAEzElI,GAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,GACrC1G,EAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,GACrC1G,EAAME,IAAI7B,EAAO,IAAK,EAAG,GAAGoG,SAASiC,EAEzCnJ,GAAM2C,IAAIF,GACVzC,EAAM8G,OAAO0C,eAAe/G,GAC5B6G,IACA7G,EAAMqE,OAAS9G,EAAM8G,OAe7B,QAASgE,KAGLhK,EAAQZ,EAAOC,GACfiJ,EAAMtI,MAAMiK,KAAKjK,GACjBgJ,EAASC,YAAY9E,MAAM8F,KAAKjC,EAAShI,IArH7C,GAAIK,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtElB,EAASiB,EAAKjB,OACdC,EAAegB,EAAKhB,aACpBmB,EAAcH,EAAKG,YACnBE,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAc,EAAKF,EAK7DiJ,EAAOzB,EACPzI,EAAQZ,EAAOC,GACf3B,EAAIsK,EAAShI,GACbgJ,GAAaC,aAAe9E,MAAO,GAAI5C,OAAM4I,QAAQzM,EAAEgK,EAAGhK,EAAEiK,EAAGjK,EAAEkK,KACjEU,EAAQ,GAAI/G,OAAMgB,mBAAoBvC,MAAOA,IAC7CuD,EAAS,GAAI6G,GAAS3L,QAEtB2G,GACAW,QAAQ,GAGR7G,GAAQ,EAAImL,EAAc5L,UAC1B+B,YAAaA,EAAa0J,KAAMA,EAAM5B,MAAOA,EAAOjJ,aAAcA,EAAcsB,MAAOA,EAAOI,OAAQA,EAAQG,MAAOA,EAAOoJ,oBANvG,GAQzBpL,GAAMuC,QAAU,aAEhB,IAAIE,GAOAmH,GAAa,CAgEjB5J,GAAMkH,SAAW,SAAUC,GAEvB,MADA9C,GAAOC,GAAG,WAAY6C,GACfnH,EAGX,IAAIqL,GAAwBrL,EAAM0E,aAkBlC,OAjBA1E,GAAM0E,cAAgB,SAAUC,GACxBuB,EAAMW,QAAQiE,IAClBO,EAAsB1G,IAU1B3E,EAAM6G,OAAS,WAEX,MADAX,GAAMW,QAAS,EACR7G,GAGJA,EA9PXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAU2J,CAElB,IAAIoC,GAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCC,EAAe9M,EAAQ,iBAEvB0M,EAAgB/L,EAAuBmM,GAEvClG,EAAU5G,EAAQ,YAIlB6G,GAFS9F,EAAwB6F,GAEvB5G,EAAQ,aAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAuBhB+M,GArBOhM,EAAwBgG,GAqBrB,yMAEV+E,EAAa,uIAEbE,EAAe,mDAAqDe,EAAU,0bAE9EX,EAAoB,mDAAqDW,EAAU,0XA2MpF9F,WAAW,EAAEC,SAAS,EAAE8F,gBAAgB,GAAG5F,WAAW,GAAGC,oBAAoB,GAAGzB,OAAS,KAAKqH,GAAG,SAASjN,EAAQU,EAAOJ,GAC5H,YAiDA,SAAS4M,GAAiBC,EAAU9K,GAClC,GAAI+K,GAAM,GAAIxJ,OAAMyJ,MAAMhL,GACtBtC,EAAIoN,EAASG,aAAa,SAC1BpN,MAAI,EACHH,GAIHG,EAAIH,EAAEwN,OAHNrN,EAAI,GAAIsN,cAAaL,EAASG,aAAa,YAAYC,MAAM/M,QAAQiN,KAAK,IAC1E1N,EAAIoN,EAASO,aAAa,QAAS,GAAI9J,OAAM+J,gBAAgBzN,EAAG,IAIlE,KAAK,GAAIL,GAAI,EAAGA,EAAIK,EAAEM,OAAQX,GAAK,EACjCK,EAAEL,GAAKuN,EAAI5N,EACXU,EAAEL,EAAI,GAAKuN,EAAIlD,EACfhK,EAAEL,EAAI,GAAKuN,EAAIjD,CAQjB,OANApK,GAAE2L,aAAc,EAMTyB,EApETjM,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQ4M,iBAAmBA,CAoBP5M,GAAQsN,cAAgB,QACtBtN,EAAQuN,gBAAkB,QACxBvN,EAAQwN,kBAAoB,OAC/BxN,EAAQyN,eAAiB,QACfzN,EAAQ0N,yBAA2B,SAC9C1N,EAAQ2N,cAAgB,SACzB3N,EAAQ4N,aAAe,OAChB5N,EAAQ6N,oBAAsB,QACnC7N,EAAQ8N,eAAiB,QACzB9N,EAAQ+N,eAAiB,QACnB/N,EAAQgO,qBAAuB,QAC7BhO,EAAQmJ,uBAAyB,QACnCnJ,EAAQoF,qBAAuB,SACjCpF,EAAQiO,mBAAqB,QACzBjO,EAAQkO,uBAAyB,SACtClO,EAAQmO,kBAAoB,SAC5BnO,EAAQoO,kBAAoB,EAC5BpO,EAAQkJ,kBAAoB,SACjClJ,EAAQmC,aAAe,SACbnC,EAAQkC,uBAAyB,SAC9ClC,EAAQqO,UAAY,QACnBrO,EAAQsO,WAAa,SACXtO,EAAQuO,qBAAuB,cA0BpDC,GAAG,SAAS9O,EAAQU,EAAOJ,GACjC,YAiCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASmO,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GAmB1L,QAASK,KA8DP,QAASC,KACP,MAAIL,OAAMC,QAAQK,GACTA,EAAQC,KAAK,SAAUC,GAC5B,MAAOA,KAAehO,EAAOC,KAGxBR,OAAOwO,KAAKH,GAASC,KAAK,SAAUC,GACzC,MAAOhO,GAAOC,KAAkB6N,EAAQE,KAK9C,QAASE,GAAaC,EAAWC,GAE/B,GAAIC,IAAQ,EAAIC,EAAYjP,SAAS+B,EAAa+M,EAElDI,EAAgBzM,EAAOhB,EAAOmM,kBAAmBnM,EAAOkM,kBAAmB,KAC3EqB,GAAMG,KAAKnM,QAAU,iBACrBgM,EAAMhM,QAAU,iBAEZ+L,EAAUK,EAAcpK,QAAQqK,KAAKL,EAAMG,MAAW1O,EAAMuE,QAAQqK,KAAKL,EAAMG,KACnF,IAAIG,IAAmB,EAAIzK,EAAc7E,SAASgP,EAAMG,KAiDxD,OAhDAG,GAAiBtM,QAAU,iBAC3BuM,EAAkBF,KAAKC,GACvBE,EAAaH,KAAKL,GAEdD,EACFO,EAAiBxK,OAAOC,GAAG,YAAa,SAAUxF,GAChDoH,EAAM8I,KAAOL,EAAc1O,QAC3BgP,EAAcC,UAAUb,EAExB,IAAIc,IAAkB,CAElBzB,OAAMC,QAAQK,IAChBmB,EAAkBjP,EAAOC,KAAkBkO,KAEzCnO,EAAOC,GAAgBkO,IAGzBc,EAAkBjP,EAAOC,KAAkB6N,EAAQK,MAEjDnO,EAAOC,GAAgB6N,EAAQK,IAInCe,IACAlJ,EAAM8I,MAAO,EAET7I,GAAegJ,GACjBhJ,EAAYjG,EAAOC,IAEjBkP,GACFA,EAAWnP,EAAOC,IAGpBrB,EAAE0B,QAAS,IAGbqO,EAAiBxK,OAAOC,GAAG,YAAa,SAAUxF,GAChDoH,EAAM8I,KAAOL,EAAc1O,SACR,IAAfiG,EAAM8I,KACRM,IAEAF,IAGFtQ,EAAE0B,QAAS,IAGf+N,EAAMD,SAAWA,EACVC,EAGT,QAASa,KACPlJ,EAAM8I,MAAO,EACThP,EAAM8G,QAAQ9G,EAAM8G,OAAOyI,mBAGjC,QAASD,KACPpJ,EAAM8I,MAAO,EACbhP,EAAM8G,OAAO0C,eAAemF,GAO5BI,EAAaS,QAAQ,SAAUjB,GACzBA,EAAMD,WACRC,EAAMtO,SAAU,EAChBsO,EAAMG,KAAKzO,SAAU,KAe3B,QAASwP,GAAuBlB,EAAOmB,GACrCnB,EAAMlO,SAASyD,GAAK6L,GAAmBD,EAAQE,EAAgC,GAAKC,EACpFtB,EAAMlO,SAASC,EAAI0B,EACnBuM,EAAMlO,SAASmD,GAAKiL,EAAiB1L,KAAKC,MAAM0M,EAAQE,GAG1D,QAASE,GAAc5B,EAAYwB,GACjC,GAAIK,GAAc3B,EAAaF,GAAY,EAE3C,OADAuB,GAAuBM,EAAaL,GAC7BK,EA6BT,QAASrP,KAEPoO,EAAkBU,QAAQ,SAAU7O,EAAa+O,GAC/C,GAAInB,GAAQQ,EAAaW,EACrBnB,GAAMD,WACJ3N,EAAYC,WACdI,EAAO2K,iBAAiB4C,EAAMG,KAAK9C,SAAU5K,EAAOsL,iBAEpDtL,EAAO2K,iBAAiB4C,EAAMG,KAAK9C,SAAU5K,EAAOkM,sBAK1DhH,EAAM8I,KAAOL,EAAc1O,QACvBD,EAAMgQ,SAASC,SAIjB,EAAIC,EAAOC,eAAe1N,EAAOzC,EAAMgQ,SAASC,OAAQnB,EAAkB,GAAGlO,YAE3EkO,EAAkB,GAAGlO,YAAcsF,EAAM8I,KAC3C3I,EAAUpG,SAAU,EAEpBoG,EAAUpG,SAAU,EAnOxB,GAAIkB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAG/D6O,GAFoBjP,EAAK6F,aAEV7F,EAAK6M,SACpBA,MAA2B3M,KAAjB+O,KAAkCA,EAC5C5O,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACF8I,MAAM,EACNnI,QAAQ,GAGN4H,EAAyB,GAARhN,EAAcC,EAAOS,aACtCkO,EAAkBxO,EAASH,EAAOS,aAClCmO,EAAiBtO,EACjB6N,EAAyBhO,EAA+B,IAAtBH,EAAOS,aACzCwN,GAAyC,GAAvBjO,EAAOS,aACzByN,EAAgC,GAEhC5P,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,WAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,KAIrDH,EAAMgQ,SAASO,aAAerQ,EAC9BF,EAAMgQ,SAASQ,mBAAqBrQ,EACpCH,EAAMgQ,SAASS,SAAW,SAAU/H,GAClC,IAA4B,IAAxBsF,EAAQ0C,QAAQhI,GAGlB,WADAiI,SAAQC,KAAK,8BAAgClI,EAAI,mBAAqBvI,EAAe,uBAAyB6N,EAAQ6C,KAAK,MAAQ,IAGrI3Q,GAAOC,GAAgBuI,EACnBvC,GAAaA,EAAYjG,EAAOC,IAGtC,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,GAEVzC,EAAMuE,SAAW9B,EAEjB,IAAIkM,GAAgB,GAAItM,OAAMC,KAC9BqM,GAAc1O,SAAU,EACxB0O,EAAcpK,UACd,IAAIuK,MACAC,KAGA+B,EAAe/C,IAkGfkB,EAAgBb,EAAa0C,GAAgB,KAAK,EACtD7B,GAAc5O,SAASmD,EAA0B,GAAtB9B,EAAOS,aAA6B,GAARV,EACvDwN,EAAc5O,SAASC,EAAI0B,CAE3B,IAAI+O,GAAYrK,EAAQqK,WAExBA,GAAU1Q,SAASmH,IAAIiH,EAAiB,IAAM,EAAW,KAARzM,GACjDiN,EAActM,IAAIoO,GAclB9B,EAActM,IAAIgM,GACdjB,MAAMC,QAAQK,GAChBW,EAAchM,IAAIqO,MAAMrC,EAAenB,EAAmBQ,EAAQiD,IAAInB,KAEtEnB,EAAchM,IAAIqO,MAAMrC,EAAenB,EAAmB7N,OAAOwO,KAAKH,GAASiD,IAAInB,KAGrFV,GAEA,IAAIrL,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOiM,uBAC/DhJ,GAAa5D,SAASC,EAAI0B,CAE1B,IAAIqE,GAAY3E,EAAOgB,YAAY+L,EAAiB/M,EAAO+E,iBAAkB4J,EAA4C,GAA1B3O,EAAO+E,iBAAwB6J,GAAgB,EAC9IjK,GAAUxF,SAASC,MAAMC,OAAO,SAChCsF,EAAUhG,SAASmD,EAA+B,IAA1B9B,EAAO+E,iBAAiC,GAARhF,EACxD4E,EAAUhG,SAASC,EAAY,GAAR0B,EAEvBS,EAAME,IAAIoB,EAAiBE,EAAcgL,EAAe5I,GAExD3F,GA6BA,IAAIyF,OAAc,GAEdkJ,MAAa,EAEjBrP,GAAMkH,SAAW,SAAUC,GAEzB,MADAhB,GAAcgB,EACPnH,GAETA,EAAMkR,SAAW,SAAU/J,GAEzB,MADAkI,GAAalI,EACNnH,EAGT,IAAIwE,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAmCzD,OAjCAzC,GAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,GAGTA,EAAM0E,cAAgB,SAAUC,GAC1BuB,EAAMW,QACRoI,EAAcC,UAAUnB,KAE1Be,EAAkBU,QAAQ,SAAUX,GAClCA,EAAiBjK,OAAOD,KAE1BH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGTA,EAAMmR,WAAa,SAAUC,GAC3B,GAAI/R,GAAMW,CACVX,GAAI2Q,SAASoB,IAAMA,EAGnB/R,EAAI2Q,SAASC,QAAS,EAAI9K,EAAWkM,eAAe/P,EAAa8P,EAAK1P,EAAO4P,aAAcjS,EAAIuI,QAASlG,EAAOnB,eAGjHP,EAAMuR,WAAa,WACjB,MAAOvR,GAAMgQ,SAASoB,KAGjBpR,EA9UTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUuO,CAElB,IAAI3I,GAAa1G,EAAQ,eAErB+P,EAAcpP,EAAuB+F,GAErCC,EAAe3G,EAAQ,iBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC5C,EAAQ/G,EAAQ,UAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aAoTlBiH,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGE,cAAc,GAAGyL,UAAU,KAAKC,GAAG,SAAShT,EAAQU,EAAOJ,GACrI,YAuCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAIlQ,QAAS+N,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GA+B1L,QAASiE,KACP,GAAIC,GAAMC,EAAe,GAAG5B,SAAS6B,cACrC,IAAKF,KAAOC,EAAe3S,QAAU,GAArC,CAEA,GAAI6S,GAAMF,EAAeG,OAAO,SAAUvO,GACxC,MAAOA,GAAEvD,UAEP+R,EAAOL,EAAIK,KAEX7T,GADMwT,EAAIM,IACNH,EAAI7S,QACRiT,EAAKJ,EAAIb,IAAI,SAAU1S,GACzB,MAAOA,GAAE8B,SAASC,IACjB6R,KAAK,SAAUxT,EAAGiK,GACnB,MAAOjK,GAAIiK,GAEbsJ,IAAI,IAAM,KACVA,EAAG1C,QAAQ,SAAUlP,EAAGhC,GACtB,MAAO4T,GAAG5T,GAAKyE,KAAKgG,IAAImJ,EAAG5T,GAAI4T,EAAG5T,EAAI,GAAK,GAAKoD,EAAOO,eAGzD6P,EAAItC,QAAQ,SAAUjR,EAAGD,GAEvB,GAAIgC,GAAI4R,EAAG5T,EACPgC,KAAM/B,EAAE8B,SAASC,IACnB/B,EAAE8B,SAASC,EAAIA,EACf/B,EAAE6T,eACF7T,EAAE8T,uBAGFP,EAAI3T,EAAI,GAAGkC,SAASC,GAAK0R,EAAOtQ,EAAOO,aACzC0O,QAAQ2B,IAAI,2EAKhB,QAASC,GAAYZ,GACnB,GAAKA,EAAIa,qBAAT,CACA,GAAIR,GAAOL,EAAIK,KACXC,EAAMN,EAAIM,IAEVQ,GADIb,EAAe3S,OACf0S,EAAIe,MACRzU,EAAI0T,EAAIgB,MACRvU,EAAIuT,EAAIiB,IACRhK,EAAI+I,EAAIkB,OACRvS,EAAIqR,EAAItR,SAASC,CAGrB,OAFAwS,GAAc9J,IAAIxB,IAAIiL,EAAG7J,GAAIqJ,EAAM3R,GACnCwS,EAAc/J,IAAIvB,IAAIvJ,EAAGG,GAAI4T,EAAO1R,GAC7BwS,GAGT,QAASC,KA2IP,QAASC,GAAQ3U,GAGf4U,EAAYjU,KAAKgB,EAAO3B,GAE1B,QAAS6U,GAAW7U,GAClB8U,EAAenU,KAAKgB,EAAO3B,GAyQ7B,QAAS+U,GAAYC,EAAOC,EAAQC,GAClCD,EAAOE,oBACPH,EAAMI,aAAaH,EAAOI,aAC1BJ,EAAO3L,OAAO0L,GACdE,EAAM5Q,IAAI0Q,GAEZ,QAASM,GAAYN,EAAOE,EAAOD,GACjCA,EAAOE,oBACPH,EAAMI,cAAa,GAAIpR,OAAMuR,SAAUC,WAAWP,EAAOI,cACzDH,EAAM5L,OAAO0L,GACbC,EAAO3Q,IAAI0Q,GAEb,QAASS,GAAWT,EAAOU,EAAWC,GAEpC,IADA,GAAIC,GAAOF,EACJE,EAAKX,QACVW,EAAOA,EAAKX,MACb,IAAIC,GAAQU,CAEbb,GAAYC,EAAOU,EAAWR,GAC9BI,EAAYN,EAAOE,EAAOS,GAwG5B,QAASE,KACPC,GAEA,IAEIC,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAE1CoU,KAAcpU,GACZoU,EAAUE,aAAeF,EAAUE,YAAYJ,eAAeE,EAAUE,YAAYJ,gBAExFE,EAAUpE,SAASuE,kBAAmB,EACtCH,EAAUpE,SAASwE,aAAe,EAClCJ,EAAUpE,SAASyE,YAAc,EACjCL,EAAUpE,SAAS0E,YAAcN,EAAU/T,SAASyD,EAG/C8N,EAAe+C,SAAS3U,KAC3B4R,EAAehD,KAAK5O,GAChBA,EAAMgQ,SAAS6B,gBAAgBH,OAMrC1R,EAAMgQ,SAASwE,aAAexU,EAAM8G,OAAOkJ,SAASwE,aACpDxU,EAAMgQ,SAASyE,YAAczU,EAAM8G,OAAOkJ,SAASyE,YAE/C7C,EAAe+C,SAAS3U,KAC1B4R,EAAegD,OAAOhD,EAAelB,QAAQ1Q,GAAQ,GACjDA,EAAMgQ,SAAS6B,gBAAgBH,KAMvC,IAAImD,GAAuBnT,EAAOI,aAAeJ,EAAOoT,cACpDC,EAAmBrT,EAAOsT,cAAgBtT,EAAOoT,cACjDG,EAAeF,CAEnBG,GAAcC,SAAS3F,QAAQ,SAAUhR,GACvCA,EAAEyB,SAAWiG,EAAMkP,WAMrB,IAAIC,GAAe,CAcnB,IATAH,EAAcC,SAAS3F,QAAQ,SAAUhR,EAAGF,OACvB+C,KAAf7C,EAAE8W,SACJ9W,EAAE8W,SAAWD,GAAgB,EACxBA,EAAe7W,EAAE8W,WAE1BJ,EAAcC,SAAShD,KAAK,SAAUxT,EAAGiK,GACvC,MAAOjK,GAAE2W,SAAW1M,EAAE0M,WAGpBpP,EAAMkP,UACRrE,EAAUwE,SAASjV,EAAc,GAAVyC,KAAKyS,OACvB,CACLzE,EAAUwE,SAASjV,EAAI,CAEvB,IAAIwD,GAAI,EACJ2R,EAAaV,CAEjBG,GAAcC,SAAS3F,QAAQ,SAAU6D,EAAO3D,GAC1C2D,EAAMqC,WACRrC,EAAMrD,SAAS0E,WAAa1U,EAAMgQ,SAAS0E,WAAa5Q,EACxDuP,EAAMa,gBAgCN,IAyBMyB,GArDFnN,EAAI6K,EAAMzL,QAAUyL,EAAMzL,QAAUiN,EAKpCjN,EAAU,IAAO6N,EAAajN,EAElC,IAAI6K,EAAMqC,SAAU,CAGlB,GAAIC,GAAS,IAAOF,EAAaV,EACjC1B,GAAMhT,SAASyD,EAAIA,EAAI6R,MAEvBtC,GAAMhT,SAASyD,EAAIA,EAAI8D,CAGzB9D,IAAK8D,EACL6N,EAAajN,EAETkH,EAAQkG,IAA4BX,GAAgBzM,GACxD6K,EAAMhT,SAASmD,EAAI,MAEdkM,EAAQ,GAAKkG,GAA+B,IAAG9R,EAAI,GAExDuP,EAAMhT,SAASmD,GAAK/B,EAAQsB,KAAKC,MAAM0M,EAAQkG,GAiDjDvC,EAAMjB,iBAIVpS,EAAM4H,QAAUqN,CAGhB,IAAIY,GAAanU,EAAO4P,YACpBtR,GAAM8G,SAAW9G,IACnB6V,EAAanU,EAAOoU,iBAGtBpU,EAAOqU,YAAYtT,EAAOoT,EAAYnU,EAAOsT,cAAehT,GAExDoS,IAAcpU,IAChBA,EAAMgQ,SAASuE,kBAAmB,EAClCvU,EAAMgQ,SAASgG,eAAgB,EAC/BhW,EAAMqS,qBAIV,QAAS8B,KACP,GAAI8B,GAAKvU,EAAOsT,cACZxR,EAAI9B,EAAO4P,YACf4E,GAAYf,SAAS3F,QAAQ,SAAUhR,GAChCA,EAAEyB,UACPuD,GAAU,GAALyS,EACLzX,EAAE6B,SAASmD,EAAIA,EACfA,GAAU,GAALyS,KAIT,QAASvV,KACHC,EAAYC,WACd6B,EAAM5B,SAASC,MAAMC,OAAOC,EAAO6L,gBAEnCpK,EAAM5B,SAASC,MAAMC,OAAOC,EAAO4L,qBAGjCpI,GAAgB5D,WAClBuV,EAAQtV,SAASC,MAAMC,OAAOC,EAAO6L,gBAErCsJ,EAAQtV,SAASC,MAAMC,OAAOC,EAAO4L,qBAInCwJ,EAAwBxV,WAC1ByV,EAAqBvV,MAAMC,OAAO,UAElCsV,EAAqBvV,MAAMC,OAAO,SAztBtC,GAAII,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBuD,EAAO1D,EAAK0D,KACZyR,EAASnV,EAAKmV,OACdC,EAAYpV,EAAKoV,UACjBC,EAAqBrV,EAAKqV,mBAC1BC,EAAoBtV,EAAKsV,kBAEzBb,EAA6B,GAE7BnU,EAAQC,EAAO4P,aACftP,EAAQN,EAAOO,YAEfiE,GACFkP,WAAW,EACXsB,mBAAgBrV,IAGdrB,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOsC,EAAO,IAG7C,IAAIqQ,GAAgB,GAAI7S,OAAMC,KAC9BtC,GAAM2C,IAAIuS,EAEV,IAAIyB,IAAc,CAIlBhX,QAAOqF,eAAehF,EAAO,aAC3BuH,IAAK,WACH,MAAOoP,IAETnP,IAAK,SAAaoP,GACZA,IAAaD,GAAa3W,EAAM6W,YAAY9E,OAAO,SAAUvT,GAC/D,MAAOA,GAAEkX,WACRzE,IAAI,SAAUzS,GACf,MAAOA,GAAEsY,UAEXH,EAAcC,EACd5W,EAAMmI,mBAKVnI,EAAMmI,cAAgB,WACpB,GAAIiM,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAC1CoU,GAAUpE,SAASuE,iBACrB5D,QAAQ2B,IAAI,8BAAgCtS,EAAM+W,WAAa,wCAG/D3C,EAAUpE,SAASgG,eAAgB,GAIvChW,EAAMkU,cAAgBA,CAEtB,IAAI8C,GAAmB,GAAI3U,OAAM4U,UAEjCjX,GAAMqS,kBAAoB,WACxB,GAAI6E,GAAS9V,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAE7E7C,EAAI4Y,IACR,IAAK5Y,EAAEyR,SAAS6B,eAAhB,CAEAtT,EAAE6Y,0BAA0BJ,EAK5B,IAAIK,IAAM,EAAInH,EAAOoH,kBAAkBC,EAAkBhZ,GACrDiZ,EAAOH,EAAItO,IAAIvF,EAAI6T,EAAIrO,IAAIxF,EAG3BmO,GAFO0F,EAAItO,IAAIjF,EAAIuT,EAAItO,IAAIjF,EAErBvF,EAAEyR,SAAS6B,gBACjB4F,EAASlF,EAAYZ,GAIrB+F,EAAeL,EAAIM,UAAUF,GAK7BG,EAAmBF,EAAaG,QAAQC,GACxCC,EAAUpG,EAAIgB,MAAQhB,EAAIe,KAC1BsF,EAAUrG,EAAIiB,IAAMjB,EAAIkB,MAE5B+E,GAAiBpU,GAAKgU,EAAKI,EAAiB9T,GAAK0T,CACjD,IAAIrN,IAAc,CAEdyN,GAAiBpU,EAAI0T,IAGvB3Y,EAAE8B,SAASmD,EAAImO,EAAIe,KAAOqF,EAAU,EACpC5N,GAAc,GAEZyN,EAAiB9T,EAAIoT,IACvB3Y,EAAE8B,SAASyD,EAAI6N,EAAIkB,OAASmF,EAAU,EACtC7N,GAAc,GAEZA,GAAa5L,EAAE6T,iBAGrBpS,EAAMiY,YAAc,WAClB,MAAO/R,GAAMkP,WAIfzV,OAAOqF,eAAehF,EAAO,eAK3BuH,IAAK,WACH,SAAU2Q,OAAO1K,EAAmB0H,EAAcC,UAAW3H,EAAmB0I,EAAYf,cAIhGnV,EAAMmY,SAAW,WACf,IAAK,GAAIC,GAAOhX,UAAUnC,OAAQoZ,EAAO3K,MAAM0K,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQlX,UAAUkX,EAGzB,QAAQD,EAAK1D,SAAS,SAAUtV,GAC9B,OAA2C,IAApCW,EAAM6W,YAAYnG,QAAQrR,MAIrCW,EAAM+W,WAAalS,CAGnB,IAAIoO,GAAc5Q,MAAMC,MAAM1C,UAAU+C,IAEpCwQ,EAAiB9Q,MAAMC,MAAM1C,UAAU+H,OAavClF,EAAQf,EAAOgB,YAAYjB,EAAOC,EAAOsT,cAAehT,GAAO,EACnEgR,GAAQvQ,EAER,IAAIsB,GAAkBzC,EAAYqC,OAAOkB,EACzCd,GAAgB1D,SAASmD,EAAqC,IAAjC9B,EAAOsC,wBACpCD,EAAgB1D,SAASyD,GAAK,IAC9BC,EAAgB1D,SAASC,EAAI0B,EAC7BS,EAAME,IAAIoB,EAEV,IAAIgN,GAAYrP,EAAO6W,iBACvBvX,GAAO2K,iBAAiBoF,EAAUnF,SAAU,UAC5CmF,EAAU1Q,SAASmH,IAAI,IAAM,EAAW,KAARxF,GAChCS,EAAME,IAAIoO,EAEV,IAAIoF,GAAUzU,EAAOgB,YAAYjB,EAAOC,EAAO8W,mBAAoBxW,GAAO,EAC1EmU,GAAQ9V,SAASyD,EAA2B,IAAvBpC,EAAOsT,cAC5BmB,EAAQtR,KAAO,UACfmO,EAAQmD,EAER,IAAIsC,GAAU/R,EAAQ+R,SACtBA,GAAQpY,SAASmH,IAAY,GAAR/F,EAAa,EAAW,MAARO,GACrCmU,EAAQxT,IAAI8V,GACZzY,EAAM0V,UAAW,EACjB1V,EAAM0Y,YAAc,WAClBvC,EAAQlW,SAAU,GAEpBD,EAAM2Y,YAAc,WAClBxC,EAAQlW,SAAU,GAEpBD,EAAM2J,WAAa,WACjB3J,EAAM0Y,cAENjW,EAAMxC,SAAU,GAElBD,EAAM4Y,WAAa,WAEjBnW,EAAMxC,SAAU,EAIlB,IAAIiW,GAAc,GAAI7T,OAAMC,KAC5BG,GAAME,IAAIuT,GAIVlW,EAAMsH,cAAgB,SAAUjI,GAC9B6W,EAAYvT,IAAItD,GAChBA,EAAIyH,OAAS9G,EACbX,EAAIwZ,gBAAiB,EAIhBxZ,EAAIqF,gBAAerF,EAAIqF,cAAgB,SAAUC,GACpD,MAAOtF,GAAIsB,YAAYiE,OAAOD,KAEhCtF,EAAIkF,SAAWlF,GACfoX,EAAkB7H,KAAKvP,GAGzB,IAAIgX,GAAuB,GAAIhU,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,IACnFtQ,EAA2B,GAAvB9G,EAAOsT,cACX+D,EAAmB,GAAI1W,OAAMS,YAAY0F,EAAGA,EAAyB,EAAtB9G,EAAOnB,cAEtDyY,EAActS,EAAQuS,OAAOpY,SAASoQ,IACtCiI,EAAgBxS,EAAQyS,SAAStY,SAASoQ,GAC9CoF,GAAqBpF,IAAMiI,CAC3B,IAAIE,GAAe,GAAI/W,OAAMiB,KAAKyV,EAAkB1C,EACpD+C,GAAanZ,SAAU,EACvBmZ,EAAa/Y,SAASmD,EAAI9B,EAAO4P,aAAe5P,EAAOsT,aACvD,IAAIoB,IAA0B,EAAIhS,EAAc7E,SAAS6Z,EACzDA,GAAazY,YAAcyV,EAC3BA,EAAwB/R,OAAOC,GAAG,YAAa,SAAUxF,GACnDkB,EAAMqZ,eACRrZ,EAAMsZ,WACDtZ,EAAMuZ,SACbza,EAAE0B,QAAS,IAGbR,EAAMsH,cAAc8R,EAEpB,IAAII,IAAe,CACnB7Z,QAAOqF,eAAehF,EAAO,cAC3BuH,IAAK,WACH,MAAOiS,IAEThS,IAAK,SAAaoP,GACZA,IAAa4C,IACjBJ,EAAanZ,QAAU2W,EACvB4C,EAAe5C,MAInB5W,EAAM2C,IAAM,WACV,GAAI8W,GAAgBnD,EAAOtF,UAAM3P,GAAWD,UAE5C,OAAIqY,IACFzZ,EAAM0Z,cAAcD,GACbA,GAEA,GAAIpX,OAAMC,OAQrBtC,EAAMwJ,eAAiB,SAAUtL,GAe/B,QAASyb,GAAiBrG,GACxBA,EAAO6B,SAAS3F,QAAQ,SAAUhR,GAChCA,EAAEwR,SAAS4J,YAAc1b,EACzByb,EAAiBnb,KAZrB,GAAIsI,IAAS,EAAIoJ,EAAOmE,mBAAmBrU,EACvC8G,GAAOwN,cAAaxN,EAAOwN,YAAYrU,SAAU,GACrD6G,EAAOwN,YAAcpW,EAChBA,IACLA,EAAE+B,SAAU,EACR/B,EAAEgW,eAAehW,EAAEgW,gBACvBpN,EAAO+S,2BAA4B,EASnCF,EAAiBzb,KAQnB8B,EAAMuP,iBAAmB,WACvB,GAAIzI,IAAS,EAAIoJ,EAAOmE,mBAAmBrU,EACtC8G,GAAO+S,2BAEN/S,EAAOwN,cACTxN,EAAOwN,YAAYrU,SAAU,EAC7B6G,EAAOwN,YAAc,OAe3BtU,EAAM2H,OAAS,WACb,IAAK,GAAImS,GAAQ1Y,UAAUnC,OAAQoZ,EAAO3K,MAAMoM,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF1B,EAAK0B,GAAS3Y,UAAU2Y,EAK1B,SADSxD,EAAUvF,UAAM3P,GAAWgX,KAEpCA,EAAK7I,QAAQ,SAAUnQ,GACrBsR,QAAQqJ,OAAOha,EAAMmY,SAAS9Y,GAAM,2FAChCA,EAAIqW,UACNrW,EAAIsI,OAAOqJ,MAAM3R,EAAKmO,EAAmBnO,EAAIwX,cAE/C3B,EAAcvN,OAAOtI,KAGvBW,EAAMmI,iBACC,IAKTnI,EAAMia,iBAAmB,SAAU3G,GACjCtT,EAAMqZ,eAAiB/F,EACR,OAAXA,EACF8F,EAAavY,SAASoQ,IAAMiI,GAE5B7C,EAAqBpF,IAAM+H,EAC3BhZ,EAAM4Y,aACN5Y,EAAM2Y,cACN3Y,EAAM8G,OAAS9G,IAWnBA,EAAMka,YAAc,SAAU7G,GAC5B,SAAKA,EAAMqC,UAAYrC,EAAMvM,SAAW9G,KACxCqT,EAAM4G,iBAAiBja,GACvBkV,EAAcvN,OAAO0L,GAErBH,EAAWG,GACXrT,EAAMmI,gBACCnI,IAOTA,EAAMuZ,OAAS,WACb,GAAIvZ,EAAM8G,SAAW9G,EAAO,OAAO,CAInC,IAAIoU,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAC9CA,GAAM8G,OAAOoT,YAAYla,EAGzB,IAAIma,GAAM/F,EAAUd,QAAUtT,EAAMsT,MACpC,IAAK6G,EAAL,CACAA,EAAIxX,IAAI3C,EACR,IAAIoa,GAAIhG,EAAUiG,OAAO9W,OAEzBvD,GAAMyT,aAAa2G,GACnBA,EAAEE,YAAY,GAAIjY,OAAM4I,QACxB,IAAI7M,GAAI,GAAIiE,OAAM4I,QAAQvJ,EAAO4P,aAAc,EAAG,GAAGmC,aAAa2G,EAGlE,IAFApa,EAAMK,SAASsC,IAAIvE,GAEfgW,EAAUmG,WAAY,CAmBtBzG,EAJY9T,EACIoU,EAAUd,OACVc,EAAUL,WAQ9B,MAHA/T,GAAMgQ,SAAS6B,eAAiBuC,EAAUpE,SAAS6B,eACnD7R,EAAMqS,kBAAkB,IACxBrS,EAAMgP,OACChP,IA0BTA,EAAMwa,iBAAmBxa,EAAMuZ,OAE/BvZ,EAAMsZ,SAAW,WACf,IAAKtZ,EAAMqZ,eAAgB,OAAO,CAElCrZ,GAAMqZ,eAAeoB,UAAUza,EAC/B,IAAIoU,IAAY,EAAIlE,EAAOmE,mBAAmBrU,EAAMqZ,eACpD,IAAIjF,EAAUmG,WAAY,CAGxB,GAAIG,GAAQtG,EAAUpE,SAAS2K,aAC3BjL,EAAQgL,EAAMhK,QAAQ1Q,EACtB0P,IAAS,GAAG0E,EAAUpE,SAAS2K,aAAa/F,OAAOlF,EAAO,GAIhE,MADA1P,GAAMia,iBAAiB,OAChB,GAGTja,EAAM0Z,cAAgB,WACpB,IAAK,GAAIkB,GAAQxZ,UAAUnC,OAAQoZ,EAAO3K,MAAMkN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFxC,EAAKwC,GAASzZ,UAAUyZ,EAG1BxC,GAAK7I,QAAQ,SAAUnQ,GACjBA,EAAIqW,SACN1V,EAAMya,UAAUpb,IAEhB6V,EAAcvS,IAAItD,GAClBA,EAAIyH,OAAS9G,GAGXX,EAAI8R,aACR9R,EAAI8R,WAAa,SAAUC,GACzB/R,EAAI2Q,SAASoB,IAAMA,CAEnB,IAAInB,IAAS,EAAI9K,EAAWkM,eAAe/P,EAAa8P,EAAK1P,EAAO4P,aAAcjS,EAAIuI,QAASlG,EAAOnB,aACtGlB,GAAI2Q,SAASC,OAASA,EAGlB5Q,EAAIsB,YAENtB,EAAIsB,YAAY0D,OAAOC,GAAG,OAAQ,WAM5BjF,EAAIY,UAAS,EAAIiQ,EAAOC,eAAe9Q,EAAK4Q,EAAQ5Q,EAAIsB,YAAYC,cAG1E+P,QAAQmK,MAAM,4BAA+Bzb,EAAIkD,QAAU,oDAI/DlD,EAAIkS,WAAa,WACf,MAAOlS,GAAI2Q,SAASoB,QAIxBpR,EAAMmI,iBAGRnI,EAAMya,UAAY,WAChB,IAAK,GAAIM,GAAQ3Z,UAAUnC,OAAQoZ,EAAO3K,MAAMqN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF3C,EAAK2C,GAAS5Z,UAAU4Z,EAG1B3C,GAAK7I,QAAQ,SAAUnQ,GAErB6V,EAAcvS,IAAItD,GAClBA,EAAIyH,OAAS9G,EACbX,EAAIgb,OAAOY,WACX5b,EAAIuE,MAAM4D,IAAI,EAAG,EAAG,GACpBnI,EAAIgB,SAASmH,IAAI,EAAG,EAAG,GACvBnI,EAAIkW,SAAS/N,IAAI,EAAG,EAAG,GAEvBnI,EAAIqZ,cACJrZ,EAAIyX,UAGN9W,EAAMmI,iBAGRnI,EAAMkb,cAAgB,YAChB,EAAIhL,EAAOmE,mBAAmBrU,KAAWA,GAAU4R,EAAe+C,SAAS3U,IAE7E2Q,QAAQmK,MAAM,iDAEhBlJ,EAAegD,OAAOhD,EAAelB,QAAQ1Q,GAAQ,GACrD4R,EAAehD,KAAK5O,GAMhBA,EAAMgQ,SAAS6B,gBAAgBH,IA8MrC,IAAI/Q,IAAc,EAAIyD,EAAc7E,SAASkD,EAC7C9B,GAAY0D,OAAOC,GAAG,YAAa,SAAUxF,GACvCoH,EAAMkP,UAAWpV,EAAMgP,OAAYhP,EAAM8W,QAC7ChY,EAAE0B,QAAS,IAGbR,EAAMgP,KAAO,WACN9I,EAAMkP,YACPpV,EAAM8G,SAAW9G,GAASA,EAAM8G,OAAOqU,WACzCnb,EAAM8G,OAAO+P,YAAY9E,OAAO,SAAUvT,GACxC,MAAOA,GAAEkX,UAAYlX,IAAMwB,IAC1BwP,QAAQ,SAAUhR,GACnB,MAAOA,GAAEsY,UAGb5Q,EAAMkP,WAAY,EAClBpC,EAAQkC,GACRlV,EAAMmI,kBAGRnI,EAAM8W,MAAQ,WACR5Q,EAAMkP,YACVlP,EAAMkP,WAAY,EAClBlC,EAAWgC,GACXlV,EAAMmI,kBAGRnI,EAAM8G,OAAS9G,CAEf,IAAIwE,IAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAO0T,IACrDiF,GAAqBC,EAAQ1X,QAAS3D,MAAOA,EAAOyC,MAAOA,GAC/DzC,GAAM0E,cAAgB,SAAUC,GAM9BhE,EAAYiE,OAAOD,GACnBH,GAAgBI,OAAOD,GACvByW,GAAmBxW,OAAOD,GAE1BjE,KAKFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,EAGT,IAAIsb,KAAc,CAMlBtb,GAAMgQ,SAAS2K,gBAEfhb,OAAO4b,iBAAiBvb,GACtBuE,SACEgD,IAAK,WACH,GAAIiU,GAKAC,GAAQhZ,EAAO0T,EAEnB,OADInW,GAAMsU,cAAamH,GAAQD,EAAQC,GAAMvD,OAAOlH,MAAMwK,EAAOhO,EAAmBxN,EAAMsU,YAAY/P,WAC/FkX,IAGXlB,YACEhT,IAAK,WACH,MAAO+T,KAET9T,IAAK,SAAavC,GAEhB,KADAqW,GAAcrW,GACI,CAChB,GAAI8O,GAAY/T,EAAMsT,OAClBU,EAAYhU,EAAMgQ,SAAS+D,WAE3B,EAAI7D,EAAOmE,mBAAmBrU,KAAWA,GAC3C2Q,QAAQ2B,IAAI,wCAGdtS,EAAMgQ,SAAS2K,aAAanL,QAAQ,SAAU6D,GAG5CS,EAAWT,EAAOU,EAAWC,KAE/BhU,EAAMgQ,SAAS2K,oBAkBvB,KAAK,GAAIe,MAAKlF,IAZF,SAAekF,GACzB1b,EAAM0b,GAAK,WACT,GAAIC,GAAanF,EAAmBkF,GAAG1K,MAAMwF,EAAoBpV,UACjE,OAAIua,IACF3b,EAAM0Z,cAAciC,GACbA,GAEA,GAAItZ,OAAMC,QAMfoZ,GAGR,OAAO1b,GAz8BTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUwT,CAElB,IAAI5N,GAAa1G,EAAQ,eAErB2G,EAAe3G,EAAQ,iBAEvB2F,EA8BJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IA9B5C+F,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjC8C,EAAW3J,EAAQ,aAEnBiI,EAAUlH,EAAwB4I,GAElC7C,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/BoW,EAAWnd,EAAQ,aAEnB4c,EAAU7b,EAAwBoc,GAElC1L,EAASzR,EAAQ,WA+BjBmT,KAEA2F,EAAmB,GAAIlV,OAAMwZ,KAC7B/I,EAAgB,GAAIzQ,OAAMwZ,KAC1B/D,EAAc,GAAIzV,OAAM4I,UAs4BzBvF,WAAW,EAAEC,SAAS,EAAE0C,YAAY,EAAEzC,gBAAgB,GAAGC,WAAW,GAAGiW,YAAY,GAAGhW,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKuK,GAAG,SAAStd,EAAQU,EAAOJ,GAC3K,YA0BA,SAASqK,KACP,GAAIA,GAAQ,GAAI4S,MAEhB,OADA5S,GAAM6S,IAAM;u2hDACL7S;EAGT,QAAS8S,KACP,MAAO;;CA/BTvc,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQqK,MAAQA,EAChBrK,EAAQmd,IAAMA,OA8BRC,GAAG,SAAS1d,EAAQU,EAAOJ,GACjC,YAkCA,SAAS4E,KAgBP,QAASyY,KACP,GAAIC,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACvEkb,EAAQD,EAAMC,MAEdxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAAwBA,EAAOyV,cAI/BD,EAAME,MACR,GAAIF,EAAMG,SAAWH,EAAMI,UAAYJ,EAAMK,QAAQC,IAAIC,eAAeP,EAAMQ,WAAYR,EAAMS,oBAC9F,GAAIT,EAAM3b,YAAYqc,QAAUrc,EAY9B,MAXA2b,GAAMS,kBAAkBE,IAAIX,EAAMY,aAElCZ,EAAMI,SAASpJ,OAAOE,oBACtB8I,EAAMI,SAASpJ,OAAO6J,aAAab,EAAMS,mBAKzCjW,EAAOzG,SAAS0K,KAAKuR,EAAMS,uBAE3BjW,GAAOsL,mBAGJ,IAAIkK,EAAMc,cAAcne,OAAS,EAAG,CACzC,GAAIoe,GAAYf,EAAMc,cAAc,GAAGld,MACnCmd,KAAc5a,IAChB4a,EAAU7J,oBAEV8J,EAAUC,sBAAsBF,EAAU3J,aAE1C4I,EAAMQ,WAAWU,8BAA8BlB,EAAMmB,YAAYC,kBAAkBpB,EAAMQ,WAAWa,QAASL,KAOrH,QAASvd,GAAcjB,GACrB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAIsB,IAAtBA,EAAOyT,WAAX,CAIA,GAAI+B,EAAME,OACR,GAAIF,EAAMc,cAAcne,OAAS,GAC3Bqd,EAAMK,QAAQC,IAAIC,eAAeP,EAAMQ,WAAYR,EAAMS,mBAAoB,CAC/E,GAAIM,GAAYf,EAAMc,cAAc,GAAGld,MACvC,IAAImd,IAAc5a,EAChB,MAKF,IAFA6Z,EAAMI,SAAW5V,EAEbA,EAAOyV,aAAc,MAEzBD,GAAMI,SAASlJ,oBACf8J,EAAUC,sBAAsBjB,EAAMI,SAAShJ,aAE/C4I,EAAMY,YAAYnS,KAAKuR,EAAMS,mBAAmBE,IAAIK,QAInD,CACL,GAAIxW,EAAOyV,aAAc,MAEzBsB,GAAWhK,WAAW+J,EAAYlK,aAElC5M,EAAOuT,OAAOyD,YAAYD,GAC1B/W,EAAOuT,OAAO0D,UAAUjX,EAAOzG,SAAUyG,EAAOkX,WAAYlX,EAAOlD,OAEnEkD,EAAOiN,UAAYjN,EAAOwM,OAE1BsK,EAAYjb,IAAImE,GAGlBhI,EAAE0B,QAAS,EAEXsG,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,UAAWiT,IAG/B,QAAS7b,GAAgB3B,GACvB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,GAAS,EAAIoJ,EAAOmE,mBAAmBrU,EAC3C,QAAeqB,KAAXyF,IAIsB,IAAtBA,EAAOyT,WAAX,CAIA,GAAI+B,EAAME,MACRF,EAAMI,aAAWrb,OACZ,CAEL,OAAyBA,KAArByF,EAAOiN,UACT,MAGFjN,GAAOuT,OAAOyD,YAAYF,EAAYlK,aACtC5M,EAAOuT,OAAO0D,UAAUjX,EAAOzG,SAAUyG,EAAOkX,WAAYlX,EAAOlD,OACnEkD,EAAOiN,UAAUpR,IAAImE,GACrBA,EAAOiN,cAAY1S,GAGrByF,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,eAAgBvC,IAzIpC,GAAI3F,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEpB,EAAQmB,EAAKnB,MACbyC,EAAQtB,EAAKsB,MAEb9B,GAAc,EAAIyD,EAAc7E,SAASkD,EAE7C9B,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,OAAQ8X,GAC9Bzb,EAAY0D,OAAOC,GAAG,aAAc7D,EAEpC,IAAIod,GAAa,GAAIxb,OAAMuR,QACvB0J,EAAY,GAAIjb,OAAM4I,OAiI1B,OAAOtK,GA7KThB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQ4E,OAASA,CAEjB,IAAIyB,GAAe3G,EAAQ,iBAEvB2F,EAIJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAJ5C+F,GAEvC8K,EAASzR,EAAQ,aAuKlBmH,gBAAgB,GAAG4L,UAAU,KAAKyM,GAAG,SAASxf,EAAQU,EAAOJ,GAChE,YAEAY,QAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,GAEKlG,GAAQ0Z,QAAU,WAC9B,GAAIrP,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,4jvBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,CAKtB,IAAItJ,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI1S,GAAW,GAAIvJ,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAM2H,EAAMvH,OAAS,IAAM,EAAG,EAGnF,OADW,IAAIQ,OAAMiB,KAAKsI,EAAU/K,OAKxB9B,EAAQgS,UAAY,WAClC,GAAI3H,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM;+tnBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GACIM,GAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IADxC,GACkD2H,EAAMvH,OAAS,IADjE,GAC2E,EAAG,EAEtF,OADA+c,GAAIzb,WAAW,MAAQ,KAAO,GACvB,GAAId,OAAMiB,KAAKsb,EAAK/d,OAIf9B,EAAQqH,UAAY,WAClC,GAAIgD,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM;ukpBAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,OAIpB9B,EAAQka,KAAO,WACxB,GAAI7P,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,w7CAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,OAIlB9B,EAAQoa,OAAS,WAC5B,GAAI/P,GAAQ,GAAI4S,MAChB5S,GAAM6S,IAAM,o8CAEZ,IAAIiC,GAAU,GAAI7b,OAAM8b,OAAUD,GAAQrZ,KAAO,QACjDqZ,EAAQ9U,MAAQA,EAChB8U,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMoc,yBAC1BP,EAAQQ,UAAYrc,MAAMsc,YAI1B,IAAI9d,GAAW,GAAIwB,OAAMgB,mBAEvB+a,KAAM/b,MAAMgc,WACZvF,aAAa,EACb7H,IAAKiN,GAIP,OAFArd,GAASyd,UAAY,GAEd,WACL,GAAI9V,GAAIpH,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAGxEwd,EAAM,GAAIvc,OAAMkc,cAAcnV,EAAM3H,MAAQ,IAAO+G,EAAGY,EAAMvH,OAAS,IAAO2G,EAAG,EAAG,EAEtF,OADAoW,GAAIzb,UAAU,KAAQqF,EAAI,GAAK,EAAG,GAC3B,GAAInG,OAAMiB,KAAKsb,EAAK/d,YAIzBge,IAAI,SAASpgB,EAAQU,EAAOJ,GAClC,YAqCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAgClQ,QAASqf,KAwHP,QAASC,GAAYjgB,IACd,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAC3CC,GAAWA,EAAUrgB,IAG3B,QAASiB,GAAcjB,IAMhB,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAC3Chf,GAAQA,EAAOC,GAAcrB,GAC7BkM,GAAMA,EAAKlM,GAEfsB,EAAcC,SAASC,EAAmB,GAAfC,EAE3BzB,EAAE0B,QAAS,GAKb,QAASye,GAA8BC,GACrC,GAAIpgB,GAAIsB,EAAc+c,aAAa+B,EAMnC,OALApgB,GAAE0E,GAAKtB,EACPpD,EAAEgF,GAAK1B,EACPtD,EAAEgF,GAAK,GACPhF,EAAE0E,EAAIT,KAAKgG,IAAIhG,KAAKiG,IAAIlK,EAAE0E,EAAG,GAAI,GACjC1E,EAAEgF,EAAIf,KAAKgG,IAAIhG,KAAKiG,IAAIlK,EAAEgF,EAAG,GAAI,GAC1BhF,EAGT,QAASsgB,GAAetgB,IACjB,EAAIoR,EAAO8O,qBAAqBhf,KAIrClB,EAAEkL,WAAaiV,EAA8BngB,EAAEogB,OAG3CG,GAAUA,EAASvgB,IAGzB,QAAS2B,KACPL,EAAcC,SAASC,EAAmB,GAAfC,EAG7B,QAASG,KACFG,EAASC,QACVH,EAAYC,WACVwK,GAAoBvK,EAASC,MAAMC,OAAO,UAE1CqK,GAAoBvK,EAASC,MAAMC,OAAO,WAnLlD,GAAII,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/D+d,EAAYne,EAAK6J,KACjBA,MAAqB3J,KAAdie,MAA0Bje,GAAYie,EAC7CC,EAAgBpe,EAAKke,SACrBA,MAA6Bhe,KAAlBke,MAA8Ble,GAAYke,EACrDC,EAAare,EAAKiI,MAClBA,MAAuB/H,KAAfme,EAA2B,yBAA2BA,EAC9DC,EAAYte,EAAKue,KACjBA,MAAqBre,KAAdoe,GAAkCA,EACzCje,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDK,EAASV,EAAKU,OACdE,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EACxD4d,EAAwBxe,EAAKiK,mBAC7BA,MAA+C/J,KAA1Bse,GAA6CA,EAClEC,EAAmBze,EAAKwJ,YACxBA,MAAmCtJ,KAArBue,EAAiCle,EAAOnB,aAAeqf,CAmBpE/d,KAAQA,EAASH,EAAOC,aAAe+d,EAAO,IAAO,KAE1D,IAAIxd,GAAeT,GAASie,EAAO,IAAO,KAAQhe,EAAOS,aACrDC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAeoK,EAEf3K,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,cAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,KAErDH,EAAM4H,QAAU/F,CAEhB,IAAIY,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACII,GAAO,GAAIR,OAAMkc,cAAcrc,EAAcE,EAAe,EAAG,EACpD,IAAIC,OAAMY,oBAAoB,GACpCC,OAAOL,GAChBA,EAAKM,UAAyB,GAAfjB,EAAoB,EAAG3B,EAGtC,IAAI6C,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAIC,EACtBmf,GACHtf,EAAcC,SAASmD,EAAqC,IAAjC9B,EAAOsC,wBAClC5D,EAAcC,SAASyD,EAAI,KAFlB1D,EAAcC,SAASmD,EAAY,GAAR/B,CAKtC,IAAIZ,EACAuI,GAAMyW,WACRhf,EAAWuI,GAEXvI,EAAW,GAAIwB,OAAMgB,kBACrBxC,EAASiY,aAAc,EAxDzB,SAA8B1P,EAAO0W,GACnC,GAAqB,gBAAV1W,IAET,GAAI/G,OAAM0d,eAAgBC,KAAK5W,EAAO,SAAU8U,GAC9CA,EAAQ+B,MAAQ/B,EAAQgC,MAAQ7d,MAAM8d,oBACtCL,EAAe7O,IAAMiN,EACrB4B,EAAe3V,aAAc,QAE1B,IAAIf,EAAMgX,UACfN,EAAe7O,IAAM7H,MAChB,CAAA,IAAIA,EAAMiX,oBAEV,KAAM,mCAAqCjX,CADhD0W,GAAe7O,IAAM7H,EAAM8U,QAE7B4B,EAAe3V,aAAc,GA4CRf,EAAOvI,GAE9B,IAAI4C,GAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAIlB,IAAIM,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,IAC1B4b,IAAM3b,EAAgB9D,SAAU,EAEpC,IAAIgE,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAE7CO,GAAY0D,OAAOC,GAAG,WAAYya,GAClCpe,EAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,WAAY8a,GAClCze,EAAY0D,OAAOC,GAAG,aAAc7D,GAEpCC,GAEA,IAAIye,OAAY9d,EAIhBrB,GAAMsgB,QAAU,SAAU/hB,GAExB,MADA4gB,GAAY5gB,EACLyB,GAETA,EAAMugB,WAAa,SAAUhiB,GAE3B,MADA8gB,GAAW9gB,EACJyB,GAkETA,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGFA,EA7QTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUuf,CAElB,IAAI5Z,GAAuBzG,EAAQ,qCAI/B0G,GAFsB3F,EAAwB0F,GAEjCzG,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ,aA+OlBgH,oCAAoC,GAAGC,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKgP,IAAI,SAAS/hB,EAAQU,EAAOJ,GACtL,YA+BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAIlQ,QAASghB,KAYL,QAASC,GAAqBtX,EAAO0W,GACjC,GAAqB,gBAAV1W,IAEP,GAAI/G,OAAM0d,eAAgBC,KAAK5W,EAAO,SAAU8U,GAC5CA,EAAQ+B,MAAQ/B,EAAQgC,MAAQ7d,MAAM8d,oBACtCL,EAAe7O,IAAMiN,EACrB4B,EAAe3V,aAAc,QAE9B,IAAIf,EAAMgX,UACbN,EAAe7O,IAAM7H,MAClB,CAAA,IAAIA,EAAMiX,oBAEV,KAAM,mCAAqCjX,CAD9C0W,GAAe7O,IAAM7H,EAAM8U,QAE/B4B,EAAe3V,aAAc,EA4CjC,QAASwW,KACDle,GAAOzC,EAAM2H,OAAOlF,GACxBA,EAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,GAC1ChC,EAAM2C,IAAIF,EAEV,IAAIwB,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAC1BS,EAAME,IAAIsB,GAEVO,EAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,IAErDme,EAAQpR,QAAQ,SAAU5G,GACtB,MAAO5I,GAAM2H,OAAOiB,KAExBgY,KACA5gB,EAAM6W,YAAc+J,EAGxB,QAASC,KACLF,GAEA,IAAIG,GAA+B,IAAf5e,EAChB6e,EAAgC,IAAhB3e,EAChBS,EAAO,GAAIR,OAAMkc,cAAcuC,EAAeC,EAAe,EAAG,EACpEle,GAAKM,UAAU2d,EAAgB,GAAIC,EAAgB,EAAGxgB,EAKtDygB,GAAQxR,QAAQ,SAAUnQ,EAAKf,GA+D3B,QAASyB,GAAcjB,GACnB,IAAyB,IAArBmiB,EAAShhB,QAAb,CAIAnB,EAAE0B,QAAS,CAEX,KACInB,EAAI2L,OACN,MAAO9M,GAEL,YADAmB,EAAIyb,MAAQ5c,GAAK,uBAGrBgjB,EAAc7hB,EACd4hB,EAAS5gB,SAASC,EAAmB,GAAfC,GAG1B,QAASE,KACLwgB,EAAS5gB,SAASC,EAAIC,EAClBlB,EAAI8hB,SAAS9hB,EAAI8hB,UAjFzB,GAAK9hB,EAAI+J,OAAU/J,EAAI+hB,KAAvB,CAGA,GAAIH,GAAW,GAAI5e,OAAMC,KACzB2e,GAAS1e,QAAU,yBACnBvC,EAAM2C,IAAIse,GACVL,EAAQhS,KAAKqS,EAEb,IAAIpV,GAAMvN,EAAI+iB,EACVC,EAAMve,KAAKC,MAAM1E,EAAI+iB,EAEzBJ,GAAS5gB,SAASmD,EAAI,EAAI9B,EAAOS,aAAeD,EAAe2J,EAC/DoV,EAAS5gB,SAASyD,EAAIjC,EAAS,EAAIO,EAAgBkf,EACnDL,EAAS5gB,SAASC,EAAIC,CAItB,IAAI6C,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,GAE7CvC,EAAW,GAAIwB,OAAMgB,iBAGzB,IAFAxC,EAASiY,aAAc,EACnBzZ,EAAI+J,OAAOsX,EAAqBrhB,EAAI+J,MAAOvI,GAC3CxB,EAAI+hB,KAAM,CACV,GAAIA,GAAO9f,EAAYqC,OAAOtE,EAAI+hB,MAC9BG,EAAU,EAAI7f,EAAO8f,mBACrBhZ,EAAI9G,EAAO+f,WAAaL,EAAKvd,OAAOhC,OACpC6f,EAAIN,EAAKO,cACTD,GAAIxf,EAAeqf,IACnBH,EAAKQ,gBAAgB1f,EAAeqf,EAASnf,EAAgBmf,GAC7D/Y,EAAI9G,EAAO+f,WAAaL,EAAKvd,OAAOhC,OACpC6f,EAAIN,EAAKO,gBAEbV,EAASte,IAAIye,GACbH,EAASG,KAAOA,EAChBA,EAAK/gB,SAASmD,EAAInE,EAAIwiB,OAAS,IAAO3f,EAAewf,GACrDN,EAAK/gB,SAASyD,EAAIzE,EAAIyiB,QAAU,GAAM1f,EAAgBoG,EACtD4Y,EAAK/gB,SAASC,EAAmB,IAAfC,EAEtB,GAAIkD,GAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAMhD,IALAT,EAAcuC,IAAIc,GAKdpE,EAAI+R,IAAK,CACT,GAAI2Q,IAAU,EAAI5c,EAAWkM,eAAe/P,EAAajC,EAAI+R,IAAKlP,EAAcE,EAAe7B,EAG/F0gB,GAASc,QAAUA,EAIvBd,EAASte,IAAIvC,GACbqC,EAAME,IAAIse,EAEV,IAAItgB,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GACnCY,EAAY0D,OAAOC,GAAG,aAAc7D,GAwBpCpB,EAAI2iB,SAAW3iB,EAAI+hB,KAAO,KAAQ,SAClC/hB,EAAI4iB,WAAa5iB,EAAI+hB,KAAO,IAAQ,SACpCH,EAASvgB,WAAa,WACdwhB,GAAwBhB,IAAgB7hB,EACxCwB,EAASC,MAAMC,OAAOohB,GACnBthB,EAASC,MAAMC,OAAOJ,EAAYC,WAAavB,EAAI2iB,SAAW3iB,EAAI4iB,YACrEhB,EAASc,UAAS,EAAI7R,EAAOC,eAAe8Q,EAAUA,EAASc,QAASphB,EAAYC,YACpFvB,EAAIyb,OAAOja,EAASC,MAAMC,OAAO,WAGzCkgB,EAASvgB,aAETugB,EAAStgB,YAAcA,EACvBsgB,EAAS1c,QAAUnE,KAIvBJ,EAAMuE,QAAUqc,EAAQ3P,IAAI,SAAUrI,GAClC,MAAOA,GAAErE,UAEbvE,EAAMuE,QAAQqK,KAAKnM,GAGvB,QAAS/B,KACLkgB,EAAQpR,QAAQ,SAAU5G,GACtB,MAAOA,GAAElI,eA/MjB,GAAIS,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnB0f,EAAU7f,EAAK6f,QACfxf,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxD4gB,EAAYjhB,EAAKihB,UACjBrgB,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EACxDsgB,EAAelhB,EAAKkgB,QACpBA,MAA2BhgB,KAAjBghB,EAA6B,EAAIA,EAkB3CC,EAA+B,EAAtB5gB,EAAOS,aAChBD,EAAmC,EAAImf,GAAvB5f,EAAQ6gB,GAExBlgB,EAAgBggB,EAAY,EAAIA,EAAYlgB,EAC5C3B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,kBAChBvC,EAAMwC,SAAW,WACb,MAAO,IAAMxC,EAAMuC,QAAU,KAAOye,EAAU,IAGlD,IAAIuB,GAAOxf,KAAKyf,KAAKxB,EAAQ/hB,OAASoiB,GAClCxf,EAASH,EAAOS,aAAeC,EAAgBmgB,CACnDviB,GAAM4H,QAAU/F,EAEhB7B,EAAMyiB,aAAe,SAAUja,GAK3B,MAJA4Z,GAAYhgB,EAAgBoG,EAC5B3G,EAASH,EAAOS,aAAeC,EAAgBmgB,EAC/CviB,EAAM4H,QAAU/F,EAChBgf,IACO7gB,EAGX,IAAIkiB,IAAuB,EACvBhB,EAAc,KACdiB,MAAiB,EACrBniB,GAAMkiB,qBAAuB,WACzB,GAAIrW,GAAMzK,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,OAI9E,OAFA8gB,IAA+B,IAARrW,EACvBsW,EAAiBtW,EACV7L,EAGX,IAAIyC,OAAQ,GACR+B,MAAkB,GAClBoc,IAiKJ,OA/JAC,KAiJA7gB,EAAM0E,cAAgB,SAAUC,GAC5Bic,EAAQpR,QAAQ,SAAU5G,GACtBA,EAAEjI,YAAYiE,OAAOD,KAGzBH,EAAgBI,OAAOD,GACvBjE,KAGJV,EAAM6E,KAAO,SAAUC,GAEnB,MADAf,iBAAgBgB,YAAYD,GACrB9E,GAGJA,EAnQXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAUkhB,CAElB,IAAItb,GAAa1G,EAAQ,eAErB2G,EAAe3G,EAAQ,iBAEvB2F,EAsBJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAtB5C+F,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,GAE/B0K,EAASzR,EAAQ;qCAmQlBiH,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,GAAGyL,UAAU,KAAKkR,IAAI,SAASjkB,EAAQU,EAAOJ,GAC/I,YA0DA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASmO,GAAmBC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,GAAInP,GAAI,EAAGsP,EAAOF,MAAMD,EAAIxO,QAASX,EAAImP,EAAIxO,OAAQX,IAAOsP,EAAKtP,GAAKmP,EAAInP,EAAM,OAAOsP,GAAe,MAAOF,OAAMG,KAAKJ,GA2wB1L,QAASkV,GAASxkB,GAChB,OAAQykB,MAAMC,WAAW1kB,KAAO2kB,SAAS3kB,GAG3C,QAAS4kB,GAAU5kB,GACjB,MAAoB,iBAANA,GAGhB,QAAS6kB,GAAWC,GAClB,GAAIC,KACJ,OAAOD,IAA8D,sBAA3CC,EAAQ1gB,SAASxD,KAAKikB,GAKlD,QAASE,GAASC,GAChB,MAAuE,gBAA/C,KAATA,EAAuB,YAAcC,EAAQD,MAAwB1V,MAAMC,QAAQyV,IAAkB,OAATA,EAG7G,QAASzV,GAAQtP,GACf,MAAOqP,OAAMC,QAAQtP,GAGvB,QAASilB,GAASjlB,GAChB,MAAoB,gBAANA,GAGhB,QAASklB,GAAQllB,GACf,MAA8D,gBAA5C,KAANA,EAAoB,YAAcglB,EAAQhlB,OAC/CA,EAAEklB,QAOX,QAASC,GAAmBlH,EAAOX,EAAYc,EAASgH,GAetD,QAASC,GAAQtlB,EAAGO,GACdglB,GAAWA,EAAQC,iBAAmBD,EAAQC,gBAAgB3kB,OAAS,GACzE0kB,EAAQC,gBAAgB,GAAGC,MAAMzlB,EAAGO,GAIxC,QAASmlB,KACPC,EAAiB,SAAUvgB,EAAGpF,EAAGO,GAC/B,MAAO+kB,GAAQ,EAAI/kB,EAAG,KACrB,GAAI,IAGT,QAASqlB,KACPD,EAAiB,SAAUvgB,EAAGpF,EAAGO,GAC/B,MAAO+kB,GAAQ,EAAG,GAAO,EAAI/kB,KAC5B,IAAK,GA7BVgd,EAAWsI,iBAAiB,cAAe,WACzC,MAAOxH,IAAQ,KAEjBd,EAAWsI,iBAAiB,YAAa,WACvC,MAAOxH,IAAQ,KAEjBd,EAAWsI,iBAAiB,YAAa,WACvC,MAAOR,IAAQ,KAEjB9H,EAAWsI,iBAAiB,UAAW,WACrC,MAAOR,IAAQ,IAGjB,IAAIE,GAAUhI,EAAWuI,YAmBzB5H,GAAMjY,OAAOC,GAAG,mBAAoB,SAAUgY,GAC5CoH,EAAQ,GAAK,MAGfpH,EAAMjY,OAAOC,GAAG,UAAW,WACzBwf,MAGFxH,EAAMjY,OAAOC,GAAG,eAAgB,WAC9B0f,MAGF1H,EAAMjY,OAAOC,GAAG,SAAU,WACxBwf,MAGFxH,EAAMjY,OAAOC,GAAG,cAAe,WAC7B0f,MAIJ,QAASD,GAAiBI,EAAIC,EAAOC,GACnC,GAAI7gB,GAAI,EACJ8gB,EAAKC,YAAY,WACnBJ,EAAG3gB,EAAG6gB,EAAO7gB,EAAI6gB,KACjB7gB,GACS6gB,GACPG,cAAcF,IAEfF,EACH,OAAOE,GAx6BT,GAAIjB,GAA4B,kBAAXoB,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUrlB,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXolB,SAAyBplB,EAAIslB,cAAgBF,QAAUplB,IAAQolB,OAAO7kB,UAAY,eAAkBP,IAElQiM,EAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCsZ,EAAUnmB,EAAQ,YAElBomB,EAAWzlB,EAAuBwlB,GAElCE,EAAYrmB,EAAQ,cAEpBsmB,EAAa3lB,EAAuB0lB,GAEpCE,EAAUvmB,EAAQ,YAElBwmB,EAAW7lB,EAAuB4lB,GAElCE,EAAUzmB,EAAQ,YAElB0mB,EAAW/lB,EAAuB8lB,GAElCE,EAAY3mB,EAAQ,cAEpB4mB,EAAajmB,EAAuBgmB,GAEpC7Z,EAAe9M,EAAQ,iBAEvB0M,EAAgB/L,EAAuBmM,GAEvC+Z,EAAmB7mB,EAAQ,qBAE3B8mB,EAAoBnmB,EAAuBkmB,GAE3CE,EAAY/mB,EAAQ,cAEpBgnB,EAAarmB,EAAuBomB,GAEpCE,EAAWjnB,EAAQ,aAEnBknB,EAAYvmB,EAAuBsmB,GAEnCE,EAAennB,EAAQ,iBAEvBonB,EAAgBzmB,EAAuBwmB,GAEvCE,EAAWrnB,EAAQ,aAEnBsnB,EAMJ,SAAiC1mB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,GAN5NqmB,GAElC5V,EAASzR,EAAQ,WAEjB2G,EAAe3G,EAAQ,iBA4BvBiL,EAAQ,WAsBV,QAASsc,KAEP,MAAOC,IAAYlU,OAAO7B,EAAO8O,qBAEnC,QAASkH,KAWP,MALUF,KAAwB/U,IAAI,SAAU5S,GAC9C,MAAOA,GAAEkG,QAAQwN,OAAO,SAAUvJ,GAChC,MAAOA,GAAEvI,YAGFkmB,OAAO,SAAUxnB,EAAGiK,GAC7B,MAAOjK,GAAEuZ,OAAOtP,QAUpB,QAASwd,GAAYC,EAAQC,GAiB3B,MAhBAC,KAAe,EACfC,GAAgBF,EAChBG,GAAWhJ,YAAc4I,EACrBA,EAAO7T,qBACJkU,KACHA,GAAsB,SAA6BnoB,GACjD,MAAOA,GAAE8T,qBAEXoU,GAAWpiB,OAAOC,GAAG,eAAgBoiB,KAGnCA,KACFD,GAAWpiB,OAAOsiB,eAAe,eAAgBD,IACjDA,OAAsBrlB,IAGnBolB,GAAWG,MAGpB,QAASC,KACPN,IAAe,EACXG,KACFD,GAAWpiB,OAAOsiB,eAAe,eAAgBD,IACjDA,OAAsBrlB,IAQ1B,QAASylB,KACP,GAAIne,GAAI,GAAItG,OAAM0kB,cAIlB,OAHApe,GAAEwD,aAAa,WAAY,GAAI9J,OAAM+J,gBAAgB,GAAIH,eAAc,EAAG,EAAG,EAAG,EAAG,EAAG,MAG/E,GAAI5J,OAAM2kB,KAAKre,EAAGse,IAO3B,QAASC,KACP,MAAO,IAAI7kB,OAAMiB,KAAK,GAAIjB,OAAM8kB,eAAe,KAAO,EAAG,GAAIC,IAU/D,QAASC,KACP,GAAIzJ,GAAcxc,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAAIiB,OAAMC,MAE5Fga,GACFK,QAAS,GAAIta,OAAMilB,UAAU,GAAIjlB,OAAM4I,QAAW,GAAI5I,OAAM4I,SAC5D2b,MAAOE,IACPS,OAAQL,IACRhnB,OAAQ0d,EACRnB,SAAS,EACTgH,SAAS,EACTpf,OAAQ,GAAI6G,GAAS3L,QACrBoB,aACE6mB,SAAMnmB,GACN2b,UAAO3b,GACPomB,UAAOpmB,IAMX,OAFAib,GAAMsK,MAAMjkB,IAAI2Z,EAAMiL,QAEfjL,EAoET,QAASoL,GAAexnB,GACtB,GAAIoc,GAAQ+K,EAAYnnB,EAyBxB,OAvBAoc,GAAMsK,MAAMnK,QAAU,SAAUkL,GAC9B,GAAIlM,GAAOa,EAAMc,aAEbuK,IAAQlM,GAAQA,EAAKxc,OAAS,GAChCqd,EAAMG,SAAU,EAChBH,EAAMsL,SAAU,GAEhBtL,EAAMG,SAAU,GAIpBH,EAAMsK,MAAMnD,QAAU,SAAUkE,GAC9BrL,EAAMmH,QAAUkE,GAGlBrL,EAAMsK,MAAMW,OAASjL,EAAMiL,OAEvBllB,MAAMwlB,gBAAkB3nB,YAAkBmC,OAAMwlB,gBAClDrE,EAAmBlH,EAAOpc,EAAQoc,EAAMsK,MAAMnK,QAASH,EAAMsK,MAAMnD,SAGrE9e,GAAaiK,KAAK0N,GAEXA,EAAMsK,MAOf,QAASkB,GAAU5nB,EAAQC,GACzB,GAAI6I,GAAM5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC1E2H,EAAM3H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,IAE1E2mB,GAAS,EAAIlD,EAAStlB,UACxB+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAAQ8I,IAAKA,EAAKD,IAAKA,EACrF/B,aAAc9G,EAAOC,IAKvB,OAFA8lB,IAAYrX,KAAKmZ,GAEVA,EAGT,QAASC,GAAY9nB,EAAQC,GAC3B,GAAI8nB,IAAW,EAAIlD,EAAWxlB,UAC5B+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAC9D8G,aAAc9G,EAAOC,IAKvB,OAFA8lB,IAAYrX,KAAKqZ,GAEVA,EAGT,QAASC,GAAUhoB,EAAQC,GACzB,GAAIgoB,IAAS,EAAIlD,EAAS1lB,UACxB+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,GAIhE,OADA+lB,IAAYrX,KAAKuZ,GACVA,EAST,QAASC,GAAepd,EAAM5B,EAAOsW,EAAM7d,GACzC,GAAI3B,IAAW3B,EAAGyM,GAOdmd,GAAS,EAAIhd,EAAc5L,UAC7B+B,YAAaA,GAAapB,OAAQA,EAAQC,aAPzB,IAOqDiJ,MAAOA,EAAOsW,KAAMA,EAAM7d,OAAQA,GAG1G,OADAokB,IAAYrX,KAAKuZ,GACVA,EAGT,QAASvd,GAAgByU,EAAUjW,EAAOsW,EAAM7d,GAC9C,GACIsmB,IAAS,EAAIhd,EAAc5L,UAC7B+B,YAAaA,GAAa+d,SAAUA,EAAUlf,aAF7B,GAEyDiJ,MAAOA,EAAOsW,KAAMA,EAAM7d,OAAQA,GAG9G,OADAokB,IAAYrX,KAAKuZ,GACVA,EAOT,QAASE,GAAoBC,GAG3B,IAAK,GAFDjH,GAAUkH,OAAOC,UAAUF,GAAQA,EAAO,EAErClQ,EAAOhX,UAAUnC,OAAQoZ,EAAO3K,MAAM0K,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAC9FD,EAAKC,EAAO,GAAKlX,UAAUkX,EAG7B,IAAI0I,GAAU3I,CACTkQ,QAAOC,UAAUF,IAAOtH,EAAQyH,QAAQH,EAC7C,IAAII,IAAO,EAAInD,EAAkBhmB,UAAW+B,YAAaA,GAAa0f,QAASA,EAASK,QAASA,GAEjG,OADA4E,IAAYrX,KAAK8Z,GACVA,EAGT,QAASC,GAAYC,GACdA,IAAaA,EAAc,SAAqBlN,GACnD,MAAO/K,SAAQ2B,IAAI,WAAaoJ,IAElC,IAAImN,IAAK,EAAIpD,EAAWlmB,UAAWqpB,YAAaA,EAAatnB,YAAaA,IAE1E,OADA2kB,IAAYrX,KAAKia,GACVA,EAGT,QAASC,GAAW5oB,EAAQC,GAC1B,GAAIkX,IAAM,EAAIsO,EAAUpmB,UAAW+B,YAAaA,GAAapB,OAAQA,EAAQC,aAAcA,GAE3F,OADA8lB,IAAYrX,KAAKyI,GACVA,EAGT,QAAS0R,GAAe7oB,EAAQC,GAC9B,GAAIkX,IAAM,EAAIwO,EAActmB,UAAW+B,YAAaA,GAAapB,OAAQA,EAAQC,aAAcA,GAE/F,OADA8lB,IAAYrX,KAAKyI,GACVA,EAGT,QAAS2R,GAAY9oB,EAAQC,EAAc6N,GACzC,GAAIib,IAAW,EAAI5D,EAAW9lB,UAC5B+B,YAAaA,GAAanB,aAAcA,EAAcD,OAAQA,EAAQ8N,QAASA,GAIjF,OADAiY,IAAYrX,KAAKqa,GACVA,EAiBT,QAAStmB,GAAIzC,EAAQC,EAAc+oB,EAAMC,GAEvC,OAAe9nB,KAAXnB,EAEG,MAAIA,GAAOwV,SAAiBxV,MAENmB,KAAzBnB,EAAOC,IACTwQ,QAAQC,KAAK,oBAAqBzQ,EAAc,YAAaD,GACtD,GAAImC,OAAMC,OAGf6gB,EAAS+F,IAASvb,EAAQub,GACrBF,EAAY9oB,EAAQC,EAAc+oB,GAGvCvG,EAASziB,EAAOC,IACX2nB,EAAU5nB,EAAQC,EAAc+oB,EAAMC,GAG3CpG,EAAU7iB,EAAOC,IACZ6nB,EAAY9nB,EAAQC,GAGzB6iB,EAAW9iB,EAAOC,IACb+nB,EAAUhoB,EAAQC,GAGvBmjB,EAASpjB,EAAOC,IACX2oB,EAAW5oB,EAAQC,GAGxBojB,EAAQrjB,EAAOC,IACV4oB,EAAe7oB,EAAQC,OADhC,GAQF,QAASipB,KACP,GAAIpgB,GAAM5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,CAO9E,OAAO0mB,IAHLuB,OAAQrgB,GAGc,SAAUA,EANxB5H,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAShF,QAASkoB,KACP,GAAItb,GAAU5M,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEzEmoB,GACFC,OAAQ,GAOV,YAJgBnoB,KAAZ2M,IACFub,EAAMC,OAAS7b,EAAQK,GAAWA,EAAQ,GAAKA,EAAQrO,OAAOwO,KAAKH,GAAS,KAGvEgb,EAAYO,EAAO,SAAUvb,GAGtC,QAASyb,KAOP,MAAOzB,IAHL0B,QAHkBtoB,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,IAAmBA,UAAU,IAMzD,WAG5B,QAASuoB,GAAgBC,GAKvB,MAAO1B,IAHLC,WAAe9mB,KAAPuoB,EAAmBA,EAAK,cAGV,UAW1B,QAASjiB,KACP,IAAK,GAAImS,GAAQ1Y,UAAUnC,OAAQoZ,EAAO3K,MAAMoM,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChF1B,EAAK0B,GAAS3Y,UAAU2Y,EAG1B,IAAI8P,MAAY3R,OAAO1K,EAAmB,GAAIsc,KAAIzR,IAClD,SAAK0R,EAAW/Y,UAAM3P,GAAWmM,EAAmBqc,MACpDA,EAAOra,QAAQ,SAAUnQ,GACvB,GAAIf,GAAI2nB,GAAYvV,QAAQrR,EAC5B,MAAIf,GAAK,GAGP,MADAqS,SAAQ2B,IAAI,2GACL,CAHG2T,IAAYrR,OAAOtW,EAAG,MAM7B,GAUT,QAASyrB,KACP,IAAK,GAAInP,GAAQxZ,UAAUnC,OAAQoZ,EAAO3K,MAAMkN,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAChFxC,EAAKwC,GAASzZ,UAAUyZ,EAG1B,KAAK,GAAIvc,GAAI,EAAGA,EAAI+Z,EAAKpZ,OAAQX,IAAK,CACpC,GAAIe,GAAMgZ,EAAK/Z,EACf,KAAkC,IAA9B2nB,GAAYvV,QAAQrR,KAAgBA,EAAIyH,OAAOqR,SAAS9Y,GAG1D,MADAsR,SAAQ2B,IAAI,2BAA6BjT,IAClC,CAET,IAAIA,EAAIqW,WACDqU,EAAW/Y,UAAM3P,GAAWmM,EAAmBnO,EAAIwX,cAAe,OAAO,EAGlF,OAAO,EAOT,QAASmT,KACP/D,GAAYzW,QAAQ,SAAUhR,GAC5BA,EAAEyB,SAAU,EAAUzB,EAAE8U,SAAW9U,EAAE8U,OAAOuD,aAAarY,EAAE8U,OAAO3L,OAAOnJ,KAE3EynB,GAAYrR,OAAO,EAAGqR,GAAYhnB,QAWpC,QAAS0E,GAAOkB,GACd,GAAIiC,IAAS,EAAIqe,EAAS5lB,UACxB+B,YAAaA,GACbuD,KAAMA,EACNyR,OAAQ3T,EACR4T,UAAW5O,EACX6O,oBACEsR,UAAWsB,EACXJ,YAAaM,EACbtB,YAAayB,EACbvB,UAAWyB,EACXvB,eAAgBA,EAChBxd,gBAAiBA,EACjByd,oBAAqBA,EACrBM,YAAaA,EACbG,WAAYA,GAEdrS,kBAAmBwP,GAEnBgE,mBAKF,OAFAhE,IAAYrX,KAAK9H,GAEVA,EAWT,QAASlC,KACP,GAAIiN,GAAiB0U,IAAgBE,GAAWhJ,YAAYjL,oBACxD0X,KAAYC,sBAAsBvlB,EAEtC,IAAIwlB,GAAiBlE,IACjBD,EAAcD,IACdqE,EAAUpE,EAAYlU,OAAO,SAAUvT,GACzC,MAAOA,GAAEsI,SAAWtI,GAEtB6rB,GAAQ7a,QAAQ,SAAUjR,GACxBA,EAAEyR,SAAS6B,iBAAiBA,GAAiB4U,GAAWhJ,YACpDlf,EAAEsb,4BACJtb,EAAE4J,gBACF5J,EAAEsb,2BAA4B,GAE5Btb,EAAEyR,SAASgG,eAAezX,EAAE2V,kBAG9BqS,KAEFE,GAAWrJ,cAAgBkN,GAAkBF,EAAgB3D,KAG/D9hB,GAAa6K,QAAQ,WACnB,GAAIrO,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEtElB,GADMiB,EAAKkW,IACFlW,EAAKjB,QACdyc,EAAUxb,EAAKwb,QACfiK,EAAQzlB,EAAKylB,MACbW,EAASpmB,EAAKomB,OACd5mB,EAAcQ,EAAKR,YAEnB+O,EAAQtO,UAAU,EAEtBmpB,GAA2B5pB,EAAaypB,GACxClqB,EAAOsT,oBAEP8J,GAAU9V,IAAI,EAAG,EAAG,GAAG+V,sBAAsBrd,EAAOwT,aACpD8W,GAAQvP,WAAWwP,gBAAgBvqB,EAAOwT,aAE1CgX,GAAWljB,IAAI,EAAG,GAAI,GAGlBtH,EAAOyqB,qBAAqBD,GAAWE,gBAAgB1qB,EAAOyqB,qBAClED,GAAWjX,aAAa+W,IAASK,YAEjClO,EAAQnV,IAAI8V,GAAWoN,GAGvB,IAAI/rB,GAAIioB,EAAMhb,SAASG,aAAa,YAAYC,KAChDrN,GAAE,GAAK2e,GAAU9Z,EAAE7E,EAAE,GAAK2e,GAAUxZ,EAAEnF,EAAE,GAAK2e,GAAUhd,CAKvD,IAAI8c,GAAgBT,EAAQmO,iBAAiBV,GAAgB,EAC7DW,GAAmB3N,EAAewJ,EAAOW,GAEzC5iB,GAAa+K,GAAO0N,cAAgBA,EAEhCld,EAAO8P,WAAU9P,EAAO8P,SAASgb,iBAAmB5N,IAG1D,IAAI6N,GAAStmB,GAAaumB,OAEtB3E,KACF0E,EAAOrc,KAAK6X,IAGdR,EAAYzW,QAAQ,SAAUhR,GAC5B,MAAOA,GAAEkG,cAAcumB,IAIzB,IAAIE,GAAeF,EAAOlZ,OAAO,SAAUuK,GACzC,MAAOA,GAAM8O,aAcf,OAZ2B,IAAvBD,EAAalsB,SACfksB,EAAa3b,QAAQ,SAAUhH,GAC7B,MAAOA,GAAE4iB,aAAc,IAEzBf,EAAQ7a,QAAQ,SAAUjR,GACxB,MAAOA,GAAEgR,sBAGbkX,GAAWmB,SAAU,EACrBjjB,GAAa6K,QAAQ,SAAUnR,GAC7B,MAAOA,GAAEupB,SAAU,IAEdnB,GAAWrJ,cAKpB,QAASmN,GAA2Bc,EAAcjB,IAC/C,QAAS,OAAQ,SAAS5a,QAAQ,SAAU8b,GAC3C,GAAI3qB,GAAc0qB,EAAaC,EAC3B3qB,IAAeypB,EAAe1Z,QAAQ/P,EAAY4qB,WAAa,IACjEF,EAAaC,OAAmBjqB,GAEhCV,EAAYiE,cAKlB,QAAS4mB,GAAY5E,EAAO1H,GAC1B,GAAIuM,GAAK7E,EAAMhb,SAASG,aAAa,YAAYC,KACjDyf,GAAG,GAAKvM,EAAM1b,EACdioB,EAAG,GAAKvM,EAAMpb,EACd2nB,EAAG,GAAKvM,EAAM5e,EACdmrB,EAAGthB,aAAc,EAEjByc,EAAM3mB,SAAU,EAChB2mB,EAAMhb,SAAS8f,wBACf9E,EAAMhb,SAAS+f,qBAIjB,QAASZ,GAAmB3N,EAAewJ,EAAOW,GAChD,GAAInK,EAAcne,OAAS,EAAG,CAC5B,GAAI2sB,GAAWxO,EAAc,EAC7BoO,GAAY5E,EAAOgF,EAAS1M,OAC5BqI,EAAOlnB,SAAS0K,KAAK6gB,EAAS1M,OAC9BqI,EAAOtnB,SAAU,EACjBsnB,EAAO/T,wBAEPoT,GAAM3mB,SAAU,EAChBsnB,EAAOtnB,SAAU,EASrB,QAAS4rB,IAAyBlP,EAASH,EAAO6J,GAChD1J,EAAQmP,cAActP,EAAO6J,EAC7B,IAAI+D,GAAiBlE,GACrB,OAAOvJ,GAAQmO,iBAAiBV,GAAgB,GAOlD,QAASE,IAAkBF,GACzB,GAAI/N,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAGvEub,GAFMN,EAAMhF,IACHgF,EAAMnc,OACLmc,EAAMM,SAChBiK,EAAQvK,EAAMuK,MACdW,EAASlL,EAAMkL,OACf/K,EAAQH,EAAMG,MACdiB,EAAcpB,EAAMoB,WAGxB8M,GAFkBlO,EAAM1b,YAEgBypB,EACxC,IAAIhN,KASJ,OAPIK,KACFL,EAAgByO,GAAyBlP,EAASH,EAAOiB,GACzDsN,EAAmB3N,EAAewJ,EAAOW,GACzCA,EAAOtnB,SAAU,EACjB2mB,EAAM3mB,SAAU,GAGXmd,EA5rBT,GAAI9b,IAAcykB,EAAQgG,UAOtBpnB,MACAshB,MA6BAM,IAAe,EACfC,OAAgBnlB,GAChBqlB,OAAsBrlB,GAEtB6oB,IAAa,EAiCbjD,GAAgB,GAAI5kB,OAAM2pB,mBAAoBlrB,MAAO,QAAUgY,aAAa,EAAMmT,SAAU5pB,MAAM6pB,mBAYlG9E,GAAiB,GAAI/kB,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,EAAMmT,SAAU5pB,MAAM6pB,mBAuCnGzF,GAEJ,WACE,GAAIjK,GAAQ,GAAIna,OAAM8pB,SAAS,GAAI,GAE/B7P,EAAQ+K,GA0CZ,OAzCA/K,GAAME,MAAQA,EACdF,EAAMS,kBAAoB,GAAI1a,OAAM4I,QACpCqR,EAAMY,YAAc,GAAI7a,OAAM4I,QAC9BqR,EAAMQ,WAAa,GAAIza,OAAM+pB,MAC7B9P,EAAMc,iBAGNd,EAAMmB,gBAAcpc,GAEpBgrB,OAAOpI,iBAAiB,YAAa,SAAUqI,GAI7C,GAHKA,EAAM1L,UAAStE,EAAMG,SAAU,GAGhC+J,GAAe,CACjB,GAAI+F,GAAa/F,GAAcgG,WAAWC,uBAC1CjQ,GAAMhZ,GAAK8oB,EAAMI,QAAUH,EAAW7Z,MAAQ6Z,EAAW9qB,MAAQ,EAAI,EACrE+a,EAAM1Y,IAAOwoB,EAAMK,QAAUJ,EAAW3Z,KAAO2Z,EAAW1qB,OAAU,EAAI,MAItE2a,GAAMhZ,EAAI8oB,EAAMI,QAAUL,OAAOO,WAAa,EAAI,EAClDpQ,EAAM1Y,GAAMwoB,EAAMK,QAAUN,OAAOQ,YAAe,EAAI,IAEzD,GAEHR,OAAOpI,iBAAiB,YAAa,SAAUqI,GACzChQ,EAAMc,cAAcne,OAKxBqd,EAAMG,SAAU,EAGhBH,EAAMsL,SAAU,IACf,GAEHyE,OAAOpI,iBAAiB,UAAW,SAAUqI,GAC3ChQ,EAAMG,SAAU,IACf,GAEIH,KAqWLgB,GAAY,GAAIjb,OAAM4I,QACtByf,GAAa,GAAIroB,OAAM4I,QAAQ,EAAG,GAAI,GACtCuf,GAAU,GAAInoB,OAAMuR,OA4KxBhP,IAMA,IAAIkoB,KACFnpB,OAAQA,EACR+jB,eAAgBA,EAChBtB,YAAaA,EACbS,aAAcA,EACdvlB,YAAaA,GACbyrB,aAAc3nB,EAAa2nB,aAC3B/C,SAAUA,EACVplB,OAAQA,EAUV,OALAjF,QAAOqF,eAAe8nB,GAAiB,cAAgBvlB,IAAK,WACxD,MAAO2iB,KACN1iB,IAAK,SAAakB,GACnB,MAAOwhB,IAAaxhB,KAEjBokB,KAGLT,cACiBhrB,KAAfgrB,OAAO5iB,MACT4iB,OAAO5iB,QAGT4iB,OAAO5iB,IAAIC,MAAQA,GAGjBvK,IACFA,EAAOJ,SACL0K,IAAKC,IAIa,kBAAXsjB,SAAyBA,OAAOC,KACzCD,UAAWtjB,KA6GVwjB,WAAW,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,aAAa,EAAEC,WAAW,EAAE7hB,gBAAgB,GAAG8hB,oBAAoB,GAAG3nB,gBAAgB,GAAG4nB,aAAa,GAAGC,YAAY,GAAGC,WAAW,GAAGC,YAAY,GAAGnc,UAAU,GAAGnN,OAAS,KAAKupB,IAAI,SAASnvB,EAAQU,EAAOJ,GAC7P,YAoCA,SAAS8uB,GAAkBtC,GAUzB,QAAS3mB,GAAOD,GAEdmpB,GAAW,EACXC,GAAc,EACdC,GAAY,EAEZrpB,EAAa6K,QAAQ,SAAU8M,GAEzB2R,EAAgBvd,QAAQ4L,GAAS,GACnC2R,EAAgBrf,KAAK0N,EAGvB,IAAI4R,GAAcC,EAAW7R,GACzBe,EAAY6Q,EAAY7Q,UACxB+Q,EAAWF,EAAYE,SAEvB3G,EAAQ8D,IAAclO,CAC1ByQ,GAAWA,GAAYrG,EAEvB4G,GACE/R,MAAOA,EACPmL,MAAOA,EACPpK,UAAWA,EAAW+Q,SAAUA,EAChCE,WAAY,UACZC,gBAAiB,UACjBjD,gBAAiB,QACjBkD,SAAU,YACVC,SAAU,WACVC,OAAQ,aAIRC,UAAW,aAGbN,GACE/R,MAAOA,EACPmL,MAAOA,EACPpK,UAAWA,EAAW+Q,SAAUA,EAChCE,WAAY,UACZhD,gBAAiB,OACjBkD,SAAU,YACVC,SAAU,WACVC,OAAQ,kBAGVrqB,EAAOgF,KAAK,QACViT,MAAOA,EACPe,UAAWA,EACXO,YAAatB,EAAMpc,WAKzB,QAASiuB,GAAW7R,GAClB,MAAIA,GAAMc,cAAcne,QAAU,GAE9BmvB,SAAUQ,EAAQrR,sBAAsBjB,EAAMiL,OAAO7T,aAAanQ,QAClE8Z,cAAWhc,KAIX+sB,SAAU9R,EAAMc,cAAc,GAAG8B,MACjC7B,UAAWf,EAAMc,cAAc,GAAGld,QAKxC,QAASmuB,KACP,GAAIltB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEkb,EAAQnb,EAAKmb,MACbmL,EAAQtmB,EAAKsmB,MACbpK,EAAYlc,EAAKkc,UACjB+Q,EAAWjtB,EAAKitB,SAChBE,EAAantB,EAAKmtB,WAClBC,EAAkBptB,EAAKotB,gBACvBjD,EAAkBnqB,EAAKmqB,gBACvBkD,EAAWrtB,EAAKqtB,SAChBC,EAAWttB,EAAKstB,SAChBC,EAASvtB,EAAKutB,OACdC,EAAYxtB,EAAKwtB,SAErB,KAA0B,IAAtBrS,EAAMgS,QAAsCjtB,KAAdgc,EAIhC,YADAf,EAAM8O,aAAc,EAKtB,IAAIuD,GAAalH,IAA+B,IAAtBnL,EAAMgS,GAAuB,CACrD,GAAIO,IACFvS,MAAOA,EACPe,UAAWA,EACX6B,MAAOkP,EACPxQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAEV6D,GAAOgF,KAAKslB,EAAWE,GAOzB,GAAIpH,IAAkD,IAAzCnL,EAAMiS,GAAmBD,QAA+DjtB,KAAvCib,EAAM3b,YAAY2qB,GAAgC,CAE9G,GAAIwD,IACFxS,MAAOA,EACPe,UAAWA,EACX6B,MAAOkP,EACPxQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAIL6c,GAAUrN,SAAS4J,cAAa0C,EAAM8O,aAAc,GAEzDlQ,EAAcmC,GAGd0P,EAAa1jB,KAAKmlB,EAAUM,GAC5BzqB,EAAOgF,KAAKmlB,EAAUM,GAElBA,EAAStuB,SACX8b,EAAM3b,YAAY2qB,GAAmB3qB,EACrC2b,EAAM3b,YAAY8mB,MAAQ9mB,GAG5BotB,GAAc,EACdC,GAAY,EAId,GAAI1R,EAAMgS,IAAehS,EAAM3b,YAAY2qB,KAAqB3qB,EAAa,CAC3E,GAAIouB,IACFzS,MAAOA,EACPe,UAAWA,EACX6B,MAAOkP,EACPxQ,YAAatB,EAAMpc,OACnBM,QAAQ,EAGV6D,GAAOgF,KAAKolB,EAAUM,GAEtBhB,GAAc,EAEdzR,EAAMjY,OAAOgF,KAAK,qBAIM,IAAtBiT,EAAMgS,IAAyBhS,EAAM3b,YAAY2qB,KAAqB3qB,IACxE2b,EAAM3b,YAAY2qB,OAAmBjqB,GACrCib,EAAM3b,YAAY8mB,UAAQpmB,GAC1BgD,EAAOgF,KAAKqlB,GACVpS,MAAOA,EACPe,UAAWA,EACX6B,MAAOkP,EACPxQ,YAAatB,EAAMpc,UAKzB,QAASgb,GAAcmC,IACL,EAAInN,EAAOmE,mBAAmBgJ,GACpCnC,gBAGZ,QAAS8T,KAGP,IAAK,GADDC,IAAc,EACT3wB,EAAI,EAAGA,EAAI2vB,EAAgBhvB,OAAQX,IAC1C,OAA6C+C,KAAzC4sB,EAAgB3vB,GAAGqC,YAAY8mB,MAAqB,CACtDwH,GAAc,CACd,OAIJ,MAAIA,GACKnB,EAGLG,EAAgBlc,OAAO,SAAUuK,GACnC,MAAOA,GAAM3b,YAAY8mB,QAAU9mB,IAClC1B,OAAS,EAjMd,GAAIoF,GAAS,GAAI6G,GAAS3L,QAEtBuuB,GAAW,EACXC,GAAc,EACdC,GAAY,EAEZY,EAAU,GAAIvsB,OAAM4I,QACpBgjB,KAiMAttB,GACFC,SAAUouB,EACV3P,SAAU,WACR,MAAO0O,IAETnpB,OAAQA,EACRP,OAAQA,EACRknB,UAAWA,EAGb,OAAO5qB,GArPThB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQguB,iBAAe1rB,GACvBtC,EAAQQ,QAAUsuB,CAElB,IAAIviB,GAAU7M,EAAQ,UAElByM,EAIJ,SAAgC7L,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAJjDiM,GAElC4E,EAASzR,EAAQ,WAsBjBsuB,EAAehuB,EAAQguB,aAAe,GAAI7hB,GAAS3L,UAwNpDiS,UAAU,GAAGnN,OAAS,KAAK6qB,IAAI,SAASzwB,EAAQU,EAAOJ,GAC1D,YAmBA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS8vB,KAgCL,QAASC,KACLC,GAASA,EACTC,EAAUrvB,SAAWovB,EACrBE,EAAUtvB,QAAUovB,EAlCxB,GAAIluB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEwnB,EAAcznB,EAAKynB,YACnBtnB,EAAcH,EAAKG,YAEnBtB,EAAQ,GAAIqC,OAAMC,MAClBktB,EAAkB,GAAIntB,OAAMC,KAChCtC,GAAM2C,IAAI6sB,EAEV,IAAInrB,GAAS,GAAI6G,GAAS3L,OAC1B8E,GAAOC,GAAG,UAAWskB,EAErB,IAAI6G,GAAa,oDAAoDC,MAAM,IACvE1O,EAAUyO,EAAWxe,IAAI,SAAUyK,GACnC,OAAS1Q,KAAM,WACP,MAAO3G,GAAOgF,KAAK,UAAWqS,IAC/B0F,KAAM1F,KAEb4T,GAAY,EAAI/J,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,IACtGmO,GAAgB7sB,IAAI2sB,GAGpBtO,EADiB,mDAAoD0O,MAAM,IACtDze,IAAI,SAAUyK,GAC/B,OAAS1Q,KAAM,WACP,MAAO3G,GAAOgF,KAAK,UAAWqS,IAC/B0F,KAAM1F,IAEjB,IAAI6T,IAAY,EAAIhK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,IACtGkO,GAAUtvB,SAAU,EACpBuvB,EAAgB7sB,IAAI4sB,EAEpB,IAAIF,IAAQ,EAORM,GAAW,EAAIpK,EAAkBhmB,UAAW+B,YAAaA,EAAa+f,QAAS,EAAGe,UAAW,GAAKpB,UAAYhW,KAAM,WAC5G,MAAO3G,GAAOgF,KAAK,UAAW,MAC/B+X,KAAM,WACjBoO,GAAgB7sB,IAAIgtB,EACpB,IAAI7rB,GAAI6rB,EAAStvB,SAASyD,GAAK,IAAOwrB,EAAU1nB,QAAU+nB,EAAS/nB,QAEnEoZ,KAAaI,KAAM,QAASpW,KAAMokB,IAAiBhO,KAAM,YAAapW,KAAM,WACpE,MAAO3G,GAAOgF,KAAK,UAAW,SAC3B+X,KAAM,QAASpW,KAAM,WACxB,MAAO3G,GAAOgF,KAAK,UAAW,QAEtC,IAAIumB,IAAc,EAAIrK,EAAkBhmB,UAAW+B,YAAaA,EAAa0f,QAASA,EAASK,QAAS,EAAGe,UAAW,IAuBtH,OAtBAoN,GAAgB7sB,IAAIitB,GACpBA,EAAYvvB,SAASyD,EAAIA,EAAI,IAAO6rB,EAAS/nB,QAAUgoB,EAAYhoB,SACnE5H,EAAM4H,QAAU0nB,EAAU1nB,QAAU+nB,EAAS/nB,QAAUgoB,EAAYhoB,QAEnE4nB,EAAgBnvB,SAASyD,EAAI8rB,EAAYhoB,QAEzCjI,OAAOqF,eAAehF,EAAO,WACzBuH,IAAK,WACD,OAAQqoB,EAAYrrB,QAASorB,EAASprB,QAAS8qB,EAAQE,EAAUhrB,QAAU+qB,EAAU/qB,SAAS4hB,OAAO,SAAUxnB,EAAGiK,GAC9G,MAAOjK,GAAEuZ,OAAOtP,WAK5B+mB,EAAS7oB,OAASyoB,EAAUzoB,OAASwoB,EAAUxoB,OAAS8oB,EAAY9oB,OAAS9G,EAC7EA,EAAM0E,cAAgB,SAAUumB,GAC5B2E,EAAYlrB,cAAcumB,GAC1BqE,EAAU5qB,cAAcumB,GACxB0E,EAASjrB,cAAcumB,GACvBsE,EAAU7qB,cAAcumB,IAGrBjrB,EA3FXL,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQQ,QAAU4vB,CAElB,IAAI7jB,GAAU7M,EAAQ,UAElByM,EAAW9L,EAAuBkM,GAElCga,EAAmB7mB,EAAQ,qBAE3B8mB,EAAoBnmB,EAAuBkmB,GAE3C/Z,EAAe9M,EAAQ,gBAEPW,GAAuBmM,KAwFxCE,gBAAgB,GAAG8hB,oBAAoB,GAAGlpB,OAAS,KAAKwrB,IAAI,SAASpxB,EAAQU,EAAOJ,GACvF,YAoBA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAqBlQ,QAASqwB,GAAUzwB,GACjB,GAAIA,YAAegD,OAAMiB,KAAM,CAC7BjE,EAAIuM,SAAS+f,oBACb,IAAIlqB,GAAQpC,EAAIuM,SAASmkB,YAAYhnB,IAAIvF,EAAInE,EAAIuM,SAASmkB,YAAYhnB,IAAIjF,CAE1E,OADAzE,GAAIuM,SAASzI,UAAU1B,EAAO,EAAG,GAC1BpC,EACF,GAAIA,YAAegD,OAAM0kB,eAAgB,CAC9C1nB,EAAIssB,oBACJ,IAAIqE,GAAS3wB,EAAI0wB,YAAYhnB,IAAIvF,EAAInE,EAAI0wB,YAAYhnB,IAAIjF,CAEzD,OADAzE,GAAI8D,UAAU6sB,EAAQ,EAAG,GAClB3wB,GAIX,QAASqD,GAAYjB,EAAOI,EAAQG,EAAOiuB,GACzC,GAAIpvB,GAAWovB,EAAiB,GAAI5tB,OAAMgB,mBAAoBvC,MAAO,WAAcovB,EAAgBC,MAC/F1tB,EAAQ,GAAIJ,OAAMiB,KAAK,GAAIjB,OAAMS,YAAYrB,EAAOI,EAAQG,GAAQnB,EAaxE,OAZA4B,GAAMmJ,SAASzI,UAAkB,GAAR1B,EAAa,EAAG,GAErCwuB,EACFpvB,EAASC,MAAMC,OAAOC,EAAO2L,cAE7B3L,EAAO2K,iBAAiBlJ,EAAMmJ,SAAU5K,EAAO2L,cAGjDlK,EAAMuN,SAASogB,aAAe3uB,EAC9BgB,EAAMuN,SAASqgB,cAAgBxuB,EAC/BY,EAAMuN,SAASsgB,aAAetuB,EAEvBS,EAET,QAASsT,GAAYtT,EAAOhB,EAAOI,EAAQG,GACzCS,EAAMmJ,SAAShI,MAAMnC,EAAQgB,EAAMuN,SAASogB,aAAcvuB,EAASY,EAAMuN,SAASqgB,cAAeruB,EAAQS,EAAMuN,SAASsgB,cACxH7tB,EAAMuN,SAASogB,aAAe3uB,EAC9BgB,EAAMuN,SAASqgB,cAAgBxuB,EAC/BY,EAAMuN,SAASsgB,aAAetuB,EAGhC,QAASkC,GAAsBrC,EAAQf,GACrC,GAAI2B,GAAQ,GAAIJ,OAAMiB,KAAK,GAAIjB,OAAMS,YAAYytB,EAAqB1uB,EAAQ2uB,GAAsBN,EAAgBC,MAGpH,OAFA1tB,GAAMmJ,SAASzI,UAAgC,GAAtBotB,EAA2B,EAAG,GACvDvvB,EAAO2K,iBAAiBlJ,EAAMmJ,SAAU9K,GACjC2B,EAGT,QAAS8V,KACP,GACI/P,GAAI,KACJioB,EAAK,GAAIpuB,OAAMquB,KACnBD,GAAGE,OAAO,EAAG,GACbF,EAAGG,QAJK,MAIMpoB,GACdioB,EAAGG,OALK,MAKKpoB,GACbioB,EAAGG,OAAO,EAAG,EAEb,IAAIhS,GAAM,GAAIvc,OAAMwuB,cAAcJ,EAGlC,OAFA7R,GAAIzb,UAAU,GAAG,KAAU,GAEpB,GAAId,OAAMiB,KAAKsb,EAAKsR,EAAgBC,OAhG7CxwB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQyiB,mBAAqBziB,EAAQ0iB,WAAa1iB,EAAQ4H,cAAgB5H,EAAQ0H,iBAAmB1H,EAAQyZ,mBAAqBzZ,EAAQiW,cAAgBjW,EAAQ+W,gBAAkB/W,EAAQuS,aAAevS,EAAQwB,aAAexB,EAAQyxB,oBAAsBzxB,EAAQwxB,oBAAsBxxB,EAAQ+xB,wBAA0B/xB,EAAQiF,wBAA0BjF,EAAQoD,aAAepD,EAAQ+V,cAAgB/V,EAAQkD,YAAclD,EAAQ+C,aAAe/C,EAAQ4C,gBAAcN,GACpdtC,EAAQ+wB,UAAYA,EACpB/wB,EAAQ2D,YAAcA,EACtB3D,EAAQgX,YAAcA,EACtBhX,EAAQmF,sBAAwBA,EAChCnF,EAAQwZ,gBAAkBA,CAE1B,IAAIhT,GAAmB9G,EAAQ,qBAE3ByxB,EAAkB1wB,EAAwB+F,GAE1CF,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GA0FjCkrB,GAPcxxB,EAAQ4C,YAAc,EACrB5C,EAAQ+C,aAAe,IACxB/C,EAAQkD,YAAc,IACpBlD,EAAQ+V,cAAgB,EACzB/V,EAAQoD,aAAe,KACZpD,EAAQiF,wBAA0B,IAClCjF,EAAQ+xB,wBAA0B,IACtC/xB,EAAQwxB,oBAAsB,KACpDC,EAAsBzxB,EAAQyxB,oBAAsB,IACrCzxB,GAAQwB,aAAe,IACvBxB,EAAQuS,aAAe,MACpBvS,EAAQ+W,gBAAkB,EAC5B/W,EAAQiW,cAAgB,IACnBjW,EAAQyZ,mBAAqB,MAC/BzZ,EAAQ0H,iBAAmB,IAC9B1H,EAAQ4H,cAAgB,IAC3B5H,EAAQ0iB,WAAa,MACb1iB,EAAQyiB,mBAAqB,MAEnD9b,WAAW,EAAEI,oBAAoB,KAAKirB,IAAI,SAAStyB,EAAQU,EAAOJ,GACrE,YAaA,SAAS4E,KAkBL,QAASqtB,GAAalyB,GAClB,GAAI8e,GAAc9e,EAAE8e,YAChBtB,EAAQxd,EAAEwd,MAGVxV,EAAS9G,EAAM8G,WACJzF,KAAXyF,IAIsB,IAAtBA,EAAOyT,aAIX0W,EAAYlmB,KAAKjE,EAAOzG,UACxB6wB,EAAYnmB,KAAKjE,EAAOyO,UAExBzO,EAAOzG,SAASmH,IAAI,EAAG,EAAG,GAC1BV,EAAOyO,SAAS/N,IAAI,EAAG,EAAG,GAC1BV,EAAOyO,SAAS/R,EAAe,IAAVT,KAAKyS,GAE1B1O,EAAOiN,UAAYjN,EAAOwM,OAE1B6d,EAAcxuB,IAAImE,GAElB8W,EAAYjb,IAAIwuB,GAEhBryB,EAAE0B,QAAS,EAEXsG,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,SAAUiT,IAGhC,QAAS8U,KACL,GAAI/U,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MAEvEkb,GADcD,EAAMuB,YACZvB,EAAMC,OAEdxV,EAAS9G,EAAM8G,WACJzF,KAAXyF,OAIqBzF,KAArByF,EAAOiN,YAIe,IAAtBjN,EAAOyT,aAIXzT,EAAOiN,UAAUpR,IAAImE,GACrBA,EAAOiN,cAAY1S,GAEnByF,EAAOzG,SAAS0K,KAAKkmB,GACrBnqB,EAAOyO,SAASxK,KAAKmmB,GAErBpqB,EAAOyT,YAAa,EAEpB+B,EAAMjY,OAAOgF,KAAK,cAAeiT,IA7ErC,GAAInb,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEpB,EAAQmB,EAAKnB,MACbyC,EAAQtB,EAAKsB,MAEb9B,GAAc,EAAIyD,EAAc7E,SAASkD,EAE7C9B,GAAY0D,OAAOC,GAAG,YAAa0sB,GACnCrwB,EAAY0D,OAAOC,GAAG,gBAAiB8sB,EAGvC,IAAIH,GAAc,GAAI5uB,OAAM4I,QACxBimB,EAAc,GAAI7uB,OAAMgvB,MAExBF,EAAgB,GAAI9uB,OAAMC,KAmE9B,OAlEA6uB,GAAcvtB,MAAM4D,IAAI,GAAK,GAAK,IAClC2pB,EAAc9wB,SAASmH,KAAK,KAAO,KAAO,GAiEnC7G,EA5FXhB,OAAOqF,eAAejG,EAAS,cAC3BkG,OAAO,IAEXlG,EAAQ4E,OAASA,CAEjB,IAAIyB,GAAe3G,EAAQ,iBAEvB2F,EAEJ,SAAgC/E,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAF5C+F,KAyGxCQ,gBAAgB,KAAK0rB,IAAI,SAAS7yB,EAAQU,EAAOJ,GACpD,YAUA,IAAIwyB,GAAS9yB,EAAQ,iBAOE+yB,EAAiB,gmCAEnCnvB,MAAMovB,SAAW,KAAiC,aAA1BC,aAAaC,YAExCH,EAAiB,+lCACjB7gB,QAAQC,KAAK,6BAGfzR,EAAOJ,QAAU,SAAyB6yB,GACxCA,EAAMA,KACN,IAAIC,GAAiC,gBAAhBD,GAAIC,QAAuBD,EAAIC,QAAU,EAI1D/wB,EAAQ8wB,EAAI9wB,MACZmQ,EAAM2gB,EAAI3gB,GAYd,OAVA2gB,GAAIE,WAAaF,EAAIE,eACrBF,EAAIE,WAAWC,aAAc,EAC7BH,EAAI/sB,KAAO,0BAGJ+sB,GAAI3gB,UACJ2gB,GAAI9wB,YACJ8wB,GAAII,gBACJJ,GAAIC,QAEJN,GACLznB,UACE+nB,SAAWI,KAAM,IAAKhtB,MAAO4sB,GAC7B5gB,KAAOghB,KAAM,IAAKhtB,MAAOgM,GAAO,GAAI5O,OAAM8b,SAC1Crd,OAASmxB,KAAM,IAAKhtB,MAAO,GAAI5C,OAAMyJ,MAAMhL,KAE7CwJ,aAnCiB,kdAoCjBE,eAAgBgnB,GACfI,MAGFM,gBAAgB,KAAKC,IAAI,SAAS1zB,EAAQU,EAAOJ,GACpD,YA4BA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAAS+yB,GAAetxB,GAEtB,GAAIsI,GAAQipB,EAAKjpB,QACb8U,EAAU,GAAI7b,OAAM8b,QAAQ/U,EAgBhC,OAhBuC8U,GAAQrZ,KAAO,iBACtDqZ,EAAQ/T,aAAc,EACtB+T,EAAQM,UAAYnc,MAAMsc,aAC1BT,EAAQQ,UAAYrc,MAAMsc,aAC1BT,EAAQoU,iBAAkB,EAKX,GAAIjwB,OAAMgI,gBAAe,EAAIkoB,EAAqBhzB,UAC/D6e,KAAM/b,MAAMgc,WACZvF,aAAa,EACbhY,MAAOA,EACPmQ,IAAKiN,EACL+T,KAAM,cAwBV,QAASlG,KAMP,QAASyG,GAAW1tB,EAAK2tB,GACvB,GAAI3xB,GAAQM,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,SAC5EwC,EAAQxC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAC5EK,EAAQL,UAAU,GAClBS,EAAST,UAAU,GAGnBwK,GAAW,EAAI8mB,EAAkBnzB,UACnC6hB,KAAMtc,EACN6tB,MAAO,OACPlxB,MAAOA,EACPI,OAAQA,EACR+wB,OAAO,EACPH,KAAMA,IAGJ5uB,EAAS+H,EAAS/H,OAElBhD,EAAWgyB,EAAe/xB,OACbO,KAAbR,IACFA,EAAWgyB,EAAe/xB,GAASsxB,EAAetxB,GAEpD,IAAIgyB,GAAO,GAAIzwB,OAAMiB,KAAKsI,EAAU/K,EACpCiyB,GAAKlvB,MAAMmvB,SAAS,GAAI1wB,OAAM4I,QAAQ,GAAI,EAAG,GAE7C,IAAI+nB,GAAapvB,EAAQqvB,CAMzB,OAJAH,GAAKlvB,MAAMsvB,eAAeF,GAE1BF,EAAKzyB,SAASyD,EAAoB,GAAhBD,EAAOhC,OAAemxB,EAEjCF,EAGT,QAASnvB,GAAOmB,GACd,GAAI3D,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtE+xB,EAAahyB,EAAKL,MAClBA,MAAuBO,KAAf8xB,EAA2B,SAAWA,EAC9CC,EAAajyB,EAAKyC,MAClBA,MAAuBvC,KAAf+xB,EAA2B,EAAMA,EAEzCpzB,EAAQ,GAAIqC,OAAMC,MAElBwwB,EAAON,EAAW1tB,EAAK2tB,EAAM3xB,EAAO8C,EA8BxC,OA7BA5D,GAAM2C,IAAImwB,GACV9yB,EAAM6D,OAASivB,EAAKlnB,SAAS/H,OAC7B7D,EAAM2hB,aAAe,WACnB,MAAO3hB,GAAM6D,OAAOpC,MAAQmC,EAAQlC,EAAO+f,YAE7CzhB,EAAMqzB,cAAgB,WACpB,MAAOrzB,GAAM6D,OAAOhC,OAAS+B,EAAQlC,EAAO+f,YAG9CzhB,EAAM4hB,gBAAkB,SAAUF,EAAGlZ,GACnCxI,EAAM2H,OAAOmrB,EACb,IAAIrqB,GAAI/G,EAAO+f,UACfqR,GAAON,EAAW1tB,EAAK2tB,EAAM3xB,EAAO8C,EAAO8d,EAAIjZ,EAAGD,EAAIC,EACtD,IAAI6qB,GAAUR,EAAKlnB,SAAS/H,OAAOhC,OAAS4G,EAAID,CAC5C8qB,GAAU,IACZxuB,EAAMA,EAAIyuB,UAAU,EAAG,IAAOzuB,EAAI7F,OAASq0B,GAAW,MACtDR,EAAON,EAAW1tB,EAAK2tB,EAAM3xB,EAAO8C,EAAO8d,EAAIjZ,EAAGD,EAAIC,IAExDzI,EAAM2C,IAAImwB,GACV9yB,EAAM6D,OAASivB,EAAKlnB,SAAS/H,QAG/B7D,EAAM+E,YAAc,SAAUD,GACxBguB,EAAK9iB,SAASwjB,cAAgB1uB,IAChCguB,EAAKlnB,SAAShH,OAAOE,GACrBguB,EAAK9iB,SAASwjB,YAAc1uB,IAIzB9E,EA7ET,GAAIyyB,IAAO,EAAIgB,EAAmBl0B,SAAS8yB,EAAKnW,OAE5C2W,IA8EJ,QACElvB,OAAQA,EACR+vB,YAAa,WACX,MAAO7yB,YA5JblB,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQqzB,eAAiBA,EACzBrzB,EAAQgtB,QAAUA,CAElB,IAAI4H,GAAsBl1B,EAAQ,wBAE9B8zB,EAAuBnzB,EAAuBu0B,GAE9CC,EAAmBn1B,EAAQ,qBAE3Bi0B,EAAoBtzB,EAAuBw0B,GAE3CC,EAAoBp1B,EAAQ,sBAE5Bg1B,EAAqBr0B,EAAuBy0B,GAE5CvuB,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCwuB,EAAQr1B,EAAQ,UAEhB4zB,EAAO7yB,EAAwBs0B,GA6C/Bb,EAAYvxB,EAAO+f,aA4FpBsS,SAAS,EAAEluB,WAAW,GAAGmuB,uBAAuB,GAAGC,qBAAqB,GAAGC,oBAAoB,KAAKC,IAAI,SAAS11B,EAAQU,EAAOJ,GACnI,YAEAY,QAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQq1B,QAAUr1B,EAAQs1B,OAASt1B,EAAQu1B,QAAUv1B,EAAQoxB,UAAQ9uB,EAErE,IAAIgE,GAAU5G,EAAQ,aAItB,SAAiCY,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAUD,GAAOF,QAAUF,IAFjNgG,GAKzBtG,EAAQoxB,MAAQ,GAAI9tB,OAAMgB,mBAAoBvC,MAAO,SAAUyzB,cAAc,IAmB3Ex1B,EAAQu1B,QAAU,GAAIjyB,OAAMgB,kBAC7BtE,EAAQs1B,OAAS,GAAIhyB,OAAMgB,mBAAoBvC,MAAO,IACrD/B,EAAQq1B,QAAU,GAAI/xB,OAAMgB,mBAAoBvC,MAAO,QAAUgY,aAAa,EAAO+Y,QAAS,OAEzGnsB,WAAW,IAAI8uB,IAAI,SAAS/1B,EAAQU,EAAOJ,GAC9C,YAmCA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASL,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASo1B,KACP,GAAItzB,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DwF,EAAoB5F,EAAK6F,aACzBA,MAAqC3F,KAAtB0F,EAAkC,EAAMA,EACvD2tB,EAAWvzB,EAAK6H,IAChBA,MAAmB3H,KAAbqzB,EAAyB,EAAMA,EACrCC,EAAWxzB,EAAK4H,IAChBA,MAAmB1H,KAAbszB,EAAyB,EAAMA,EACrCC,EAAYzzB,EAAK0zB,KACjBA,MAAqBxzB,KAAduzB,EAA0B,GAAMA,EACvCpzB,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDszB,EAAqB3zB,EAAK4zB,cAC1BA,MAAuC1zB,KAAvByzB,EAAmCpzB,EAAOI,aAAegzB,EACzE/yB,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAExDmE,GACF8uB,MAAO,EACP/vB,MAAO+B,EACP6tB,KAAMA,EACNI,SAAS,EACTjD,UAAW,EACXnrB,QAAQ,EACRmC,IAAKA,EACLD,IAAKA,EACL5C,gBAAa9E,GACb6zB,qBAAkB7zB,GAClBge,UAAU,EAGZnZ,GAAM2uB,KAAOM,EAAejvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC1D7C,EAAM8rB,UAAYoD,EAAYlvB,EAAM2uB,MACpC3uB,EAAM8uB,MAAQK,EAAkBnvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,IAE9D,IAAI/I,GAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,SAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAI4D,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIrB,OAAQ,EAsNZ,OArNAzC,GAAMyH,UAAY,SAAU5F,GAuD1B,QAASyzB,GAAiBrwB,GACpBiB,EAAM+uB,QACRM,EAAWxwB,YAAYywB,EAAetvB,EAAMjB,MAAOiB,EAAM8rB,WAAWxvB,YAEpE+yB,EAAWxwB,YAAYmB,EAAMjB,MAAMzC,YAIvC,QAAS9B,KACHwF,EAAMmZ,SACRxe,EAASC,MAAMC,OAAOC,EAAOuL,mBACpB5L,EAAYC,WACrBC,EAASC,MAAMC,OAAOC,EAAOsL,iBAE7BzL,EAASC,MAAMC,OAAOC,EAAOqL,eAIjC,QAASopB,KACPhyB,EAAaG,MAAMJ,EAAIT,KAAKiG,IAAIjG,KAAKgG,IAAIssB,EAAkBnvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAAOtH,EAAO,MAAWA,GAGpH,QAASi0B,GAAazwB,GACpB/E,EAAOC,GAAgB8E,EAGzB,QAAS0wB,GAAqBX,GAC5B9uB,EAAM8uB,MAAQY,EAAgBZ,GAC9B9uB,EAAMjB,MAAQ4wB,EAAkB3vB,EAAM8uB,MAAO9uB,EAAM8C,IAAK9C,EAAM6C,KAC1D7C,EAAM+uB,UACR/uB,EAAMjB,MAAQ6wB,EAAgB5vB,EAAMjB,MAAOiB,EAAM2uB,OAEnD3uB,EAAMjB,MAAQ8wB,EAAgB7vB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAG9D,QAAS+B,KACP5E,EAAMjB,MAAQ+wB,IACd9vB,EAAM8uB,MAAQK,EAAkBnvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9D7C,EAAM8uB,MAAQY,EAAgB1vB,EAAM8uB,OAGtC,QAASgB,KACP,MAAOnT,YAAW3iB,EAAOC,IA+B3B,QAAS81B,GAAYn3B,IACG,IAAlBkB,EAAMC,UAGViG,EAAMmZ,UAAW,EACjBvgB,EAAE0B,QAAS,GAGb,QAAS01B,KACP,GAAI7Z,GAAQjb,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACvE8d,EAAQ7C,EAAM6C,KAElB,KAAsB,IAAlBlf,EAAMC,QAAV,CAIAiG,EAAMmZ,UAAW,EAEjB5b,EAAa+P,oBACb2iB,EAAW3iB,mBAEX,IAAI7U,IAAI,GAAI0D,OAAM4I,SAAUsS,sBAAsB9Z,EAAaiQ,aAC3D9K,GAAI,GAAIvG,OAAM4I,SAAUsS,sBAAsB4Y,EAAWziB,aAEzD0iB,EAAgBlwB,EAAMjB,KAE1B0wB,GAAqBU,EAAcnX,GAASvgB,EAAGA,EAAGiK,EAAGA,KACrD0sB,EAAiBpvB,EAAMjB,OACvBwwB,IACAC,EAAaxvB,EAAMjB,OAEfmxB,IAAkBlwB,EAAMjB,OAASiB,EAAMC,aACzCD,EAAMC,YAAYD,EAAMjB,QAI5B,QAASqxB,KACPpwB,EAAMmZ,UAAW,EApKf5c,GAAOzC,EAAM2H,OAAOlF,GAExBzC,EAAM4H,QAAU/F,CAEhB,IAAI00B,GAAuB,GAAR90B,EAAcC,EAAOS,aACpCq0B,EAAgB30B,EAASH,EAAOS,aAChCs0B,EAAez0B,EAGfa,EAAO,GAAIR,OAAMS,YAAYyzB,EAAcC,EAAeC,EAC9D5zB,GAAKM,UAAyB,GAAfozB,EAAoB,EAAG,EAGtC,IAAInzB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAI0B,EAC3B5B,EAAcC,SAASmD,EAAY,GAAR/B,EAC3BrB,EAAcyE,KAAO,eAGrB,IAAI6xB,GAAW,GAAIr0B,OAAMiB,KAAKT,EAAKU,QAAS2sB,EAAgBC,MAC5DnvB,GAAO2K,iBAAiB+qB,EAAS9qB,SAAU5K,EAAOoM,WAClDspB,EAASr2B,SAASC,EAAY,GAAR0B,EACtB00B,EAASr2B,SAASmD,EAAI+yB,EAAe70B,EAAOS,YAE5C,IAAItB,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAOE,EAAOqL,gBACvD5I,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChD4C,GAAapD,SAASC,EAAY,GAAR0B,EAC1B5B,EAAcuC,IAAIc,EAElB,IAAI0yB,GAAa,GAAI9zB,OAAMiB,KAAK,GAAIjB,OAAMS,YAAY,IAAM,IAAM,IAAM,EAAG,EAAG,GAAIotB,EAAgBoE,QAClG6B,GAAW91B,SAASmD,EAAI+yB,EACxBn2B,EAAcuC,IAAIwzB,GAClBA,EAAWl2B,SAAU,CAErB,IAAIs1B,GAAaj0B,EAAYqC,OAAOuC,EAAMjB,MAAMzC,WAChD+yB,GAAWl1B,SAASmD,EAAI9B,EAAOovB,wBAAkC,GAARrvB,EACzD8zB,EAAWl1B,SAASC,EAAY,IAAR0B,EACxBuzB,EAAWl1B,SAASyD,GAAK,KAEzB,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAO+L,qBAC/D9I,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,GAC1CS,EAAMoC,KAAO,QACbpC,EAAME,IAAIoB,EAAiB3D,EAAes2B,EAAUnB,EAAYtxB,GAEhEjE,EAAM2C,IAAIF,GAEV6yB,EAAiBpvB,EAAMjB,OACvBwwB,IA+CAz1B,EAAMkH,SAAW,SAAUC,GAEzB,MADAjB,GAAMC,YAAcgB,EACbnH,GAGTA,EAAM60B,KAAO,SAAUA,GAUrB,MATA3uB,GAAM2uB,KAAOA,EACb3uB,EAAM8rB,UAAYoD,EAAYlvB,EAAM2uB,MACpC3uB,EAAM+uB,SAAU,EAEhB/uB,EAAM8uB,MAAQK,EAAkBnvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAE9D4sB,EAAqBzvB,EAAM8uB,OAC3BM,EAAiBpvB,EAAMjB,OACvBwwB,IACOz1B,GAGTA,EAAM6G,OAAS,WAEb,MADAX,GAAMW,QAAS,EACR7G,EAGT,IAAIW,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAa2xB,GACnCt1B,EAAY0D,OAAOC,GAAG,WAAY4xB,GAClCv1B,EAAY0D,OAAOC,GAAG,aAAcgyB,GA0CpCt2B,EAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,IACrD2Y,EAAqBC,EAAQ1X,QAAS3D,MAAOA,EAAOyC,MAAOA,GAsC/D,OApCAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvByW,EAAmBxW,OAAOD,GAEtBuB,EAAMW,SACRiE,IACAwqB,EAAiBpvB,EAAMjB,OACvBwwB,KAEF/0B,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGTA,EAAMgJ,IAAM,SAAUoR,GAMpB,MALAlU,GAAM8C,IAAMoR,EACZlU,EAAM8uB,MAAQK,EAAkBnvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9D4sB,EAAqBzvB,EAAM8uB,OAC3BM,EAAiBpvB,EAAMjB,OACvBwwB,IACOz1B,GAGTA,EAAM+I,IAAM,SAAUqR,GAMpB,MALAlU,GAAM6C,IAAMqR,EACZlU,EAAM8uB,MAAQK,EAAkBnvB,EAAMjB,MAAOiB,EAAM8C,IAAK9C,EAAM6C,KAC9D4sB,EAAqBzvB,EAAM8uB,OAC3BM,EAAiBpvB,EAAMjB,OACvBwwB,IACOz1B,GAELA,EAAM8G,QAAQ9G,EAAM8G,OAAOqB,gBACxBnI,GAETA,EAAMyH,UAAUstB,GACT/0B,EAyBT,QAASq2B,GAAcnX,EAAOyX,GAC5BC,EAAG7rB,KAAK4rB,EAAQ/tB,GAAGqU,IAAI0Z,EAAQh4B,GAC/Bk4B,EAAG9rB,KAAKmU,GAAOjC,IAAI0Z,EAAQh4B,EAE3B,IAAIm4B,GAAYD,EAAGE,gBAAgBH,EAEnCI,GAAKjsB,KAAKmU,GAAOjC,IAAI0Z,EAAQh4B,GAE7Bs4B,EAAKlsB,KAAK4rB,EAAQ/tB,GAAGqU,IAAI0Z,EAAQh4B,GAAGksB,WAEpC,IAAIzM,GAAO4Y,EAAKnM,YAAYqM,IAAID,IAAS,EAAI,GAAK,EAE9Ch4B,EAAS03B,EAAQh4B,EAAEw4B,WAAWR,EAAQ/tB,GAAKwV,EAE3C4W,EAAQ8B,EAAU73B,SAAWA,CAOjC,OANI+1B,GAAQ,IACVA,EAAQ,GAENA,EAAQ,IACVA,EAAQ,GAEHA,EAOT,QAASoC,GAAUnyB,EAAOoyB,EAAMC,EAAOC,EAAMC,GAC3C,MAAOD,IAAQC,EAAQD,IAAStyB,EAAQoyB,IAASC,EAAQD,GAG3D,QAASzB,GAAgBZ,GACvB,MAAIA,GAAQ,EACH,EAELA,EAAQ,EACH,EAEFA,EAGT,QAASe,GAAgB9wB,EAAO+D,EAAKD,GACnC,MAAI9D,GAAQ+D,EACHA,EAEL/D,EAAQ8D,EACHA,EAEF9D,EAGT,QAASkwB,GAAelwB,EAAO+D,EAAKD,GAMlC,OAHQA,EAAMC,GACC,IAYjB,QAAS6sB,GAAkBb,EAAOhsB,EAAKD,GACrC,MAAOquB,GAAUpC,EAAO,EAAK,EAAKhsB,EAAKD,GAGzC,QAASssB,GAAkBpwB,EAAO+D,EAAKD,GACrC,MAAOquB,GAAUnyB,EAAO+D,EAAKD,EAAK,EAAK,GAGzC,QAAS+sB,GAAgB7wB,EAAO4vB,GAC9B,MAAI5vB,GAAQ4vB,GAAQ,EACX9xB,KAAK00B,MAAMxyB,EAAQ4vB,GAAQA,EAE7B5vB,EAGT,QAASmwB,GAAY5xB,GAEnB,MADAA,GAAIA,EAAEhB,WACFgB,EAAEkN,QAAQ,MAAQ,EACblN,EAAEvE,OAASuE,EAAEkN,QAAQ,KAAO,EAE5B,EAIX,QAAS8kB,GAAevwB,EAAOyyB,GAC7B,GAAI30B,KAAK40B,IAAI1yB,GAAS,KAAkB,IAAVA,EAAa,MAAOA,GAAM2yB,cAAc,EACtE,IAAIC,GAAQ90B,KAAK+0B,IAAI,GAAIJ,EACzB,OAAO30B,MAAK00B,MAAMxyB,EAAQ4yB,GAASA,EArarCl4B,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUk1B,CAElB,IAAItvB,GAAa1G,EAAQ,eAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAE3ByxB,EAAkB1wB,EAAwB+F,GAE1CC,EAAQ/G,EAAQ,UAEhBgG,EAAOjF,EAAwBgG,GAE/BoW,EAAWnd,EAAQ,aAEnB4c,EAAU7b,EAAwBoc,GAkSlCgb,EAAK,GAAIv0B,OAAM4I,QACf4rB,EAAK,GAAIx0B,OAAM4I,QACf+rB,EAAO,GAAI30B,OAAM4I,QACjBgsB,EAAO,GAAI50B,OAAM4I,UAoGlBvF,WAAW,EAAEC,SAAS,EAAEC,gBAAgB,GAAGC,WAAW,GAAGiW,YAAY,GAAGhW,oBAAoB,GAAGC,cAAc,KAAKgyB,IAAI,SAASt5B,EAAQU,EAAOJ,GACjJ,YAmCA,SAASK,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAEvF,QAASG,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAASu4B,KAyEP,QAASC,GAAanzB,GACpB5E,EAAOC,GAAgB2E,EACvBpB,EAAYqB,YAAYD,GAG1B,QAASozB,KACP,GAAIC,EAGF,MAFAA,GAASl4B,SAAWk4B,EAASl4B,aACzBk4B,EAASl4B,SAASD,EAAM8G,OAAO0C,eAAe2uB,GAGlDA,GAAW1uB,IAAIC,MAAM/F,OAAO,YAC5B3D,EAAM2C,IAAIw1B,GACVA,EAASrxB,OAAS9G,EAAM8G,OACxB9G,EAAM8G,OAAO0C,eAAe2uB,GAC5BA,EAAS93B,SAASmD,EAAI/B,EACtB02B,EAAS93B,SAASyD,EAAIpC,EAAOsT,cAC7BmjB,EAASxuB,aACTwuB,EAASxP,YAAY,SAAUjN,GAC7B,GAAI5W,GAAM5E,EAAOC,EACjB,QAAQub,GACN,IAAK,KAIH0c,WAAWF,EAAgB,IAC3B,MACF,KAAK,KACHpzB,EAAMA,EAAIyuB,UAAU,EAAGzuB,EAAI7F,OAAS,GACpCg5B,EAAanzB,EACb,MACF,SACEA,GAAO4W,EACPuc,EAAanzB,MAMvB,QAAS/E,GAAcjB,GAYrBo5B,IAEAp5B,EAAE0B,QAAS,EAGb,QAASE,KAEHC,EAAYC,WACdC,EAASC,MAAMC,OAAOC,EAAOsM,sBAE7BzM,EAASC,MAAMC,OAAOC,EAAOqM,YArIjC,GAAIlM,GAAOC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,MACtEE,EAAcH,EAAKG,YACnBpB,EAASiB,EAAKjB,OACdqB,EAAoBJ,EAAKhB,aACzBA,MAAqCkB,KAAtBE,EAAkC,YAAcA,EAC/DC,EAAaL,EAAKM,MAClBA,MAAuBJ,KAAfG,EAA2BE,EAAOC,YAAcH,EACxDI,EAAcT,EAAKU,OACnBA,MAAyBR,KAAhBO,EAA4BF,EAAOI,aAAeF,EAC3DG,EAAaZ,EAAKa,MAClBA,MAAuBX,KAAfU,EAA2BL,EAAOO,YAAcF,EAGxDG,EAAuB,GAART,EAAcC,EAAOS,aACpCC,EAAgBP,EAASH,EAAOS,aAChC5B,EAAemB,EAAOnB,aAEtBP,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,UAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOpC,EAAe,IAGrD,IAAIsC,GAAQf,EAAOgB,YAAYjB,EAAOI,EAAQG,EAC9ChC,GAAM2C,IAAIF,EAGV,IACIG,GAAcV,EAAeE,EAC7BS,EAAO,GAAIR,OAAMS,YAAYZ,EAAcE,EAAe7B,EAAcwC,KAAKC,MAFjE,EAEmFJ,GAFnF,EAAA,EAGD,IAAIP,OAAMY,oBAAoB,GACpCC,OAAOL,GAChBA,EAAKM,UAAyB,GAAfjB,EAAoB,EAAG,EAGtC,IAAIkB,GAAkB,GAAIf,OAAMgB,iBAChCD,GAAgBnD,SAAU,CAE1B,IAAIG,GAAgB,GAAIiC,OAAMiB,KAAKT,EAAKU,QAASH,EACjDhD,GAAcC,SAASC,EAAmB,GAAfC,EAC3BH,EAAcC,SAASmD,EAAY,GAAR/B,CAE3B,IAAIZ,GAAW,GAAIwB,OAAMgB,mBAAoBvC,MAAO,WAChD2C,EAAe,GAAIpB,OAAMiB,KAAKT,EAAKU,QAAS1C,EAChDT,GAAcuC,IAAIc,EAGlB,IAAIC,GAAcpC,EAAYqC,OAAOzD,EAAOC,IAAiBW,MAAO,EAAW8C,MAAO,MAKtFF,GAAYrD,SAASmD,EAAI,KACzBE,EAAYrD,SAASC,EAAmB,IAAfC,EACzBmD,EAAYrD,SAASyD,GAAK,KAC1BL,EAAad,IAAIe,EAEjB,IAAIK,GAAkBzC,EAAYqC,OAAOxD,EACzC4D,GAAgB1D,SAASmD,EAAI9B,EAAOsC,wBACpCD,EAAgB1D,SAASC,EAAI0B,EAC7B+B,EAAgB1D,SAASyD,GAAK,GAE9B,IAAIG,GAAevC,EAAOwC,sBAAsBrC,EAAQb,EAAOmD,qBAC/DF,GAAa5D,SAASC,EAAI0B,EAE1BS,EAAME,IAAIoB,EAAiB3D,EAAe6D,EAE1C,IAAItD,IAAc,EAAIyD,EAAc7E,SAASa,EAC7CO,GAAY0D,OAAOC,GAAG,YAAavE,GAEnCW,GAMA,IAAIy3B,EA6DJn4B,GAAMW,YAAcA,EACpBX,EAAMuE,SAAWnE,EAAeqC,EAEhC,IAAI+B,GAAkBC,EAAKd,QAAS3D,MAAOA,EAAOyC,MAAOA,GAazD,OAXAzC,GAAM0E,cAAgB,SAAUC,GAC9BhE,EAAYiE,OAAOD,GACnBH,EAAgBI,OAAOD,GACvBjE,KAGFV,EAAM6E,KAAO,SAAUC,GAErB,MADAf,GAAgBgB,YAAYD,GACrB9E,GAGFA,EA/LTL,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUy4B,CAElB,IAAIK,GAAS55B,EAAQ,WAIjB0G,GAFM3F,EAAwB64B,GAEjB55B,EAAQ,gBAIrB2G,GAFchG,EAAuB+F,GAEtB1G,EAAQ,kBAEvB2F,EAAgBhF,EAAuBgG,GAEvCC,EAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCC,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GAEjCC,EAAmB9G,EAAQ,qBAI3B+G,GAFkBhG,EAAwB+F,GAElC9G,EAAQ,WAEhBgG,EAAOjF,EAAwBgG,KA8KhCE,WAAW,EAAEC,SAAS,EAAE2yB,UAAU,GAAG1yB,gBAAgB,GAAGC,WAAW,GAAGC,oBAAoB,GAAGC,cAAc,KAAKwyB,IAAI,SAAS95B,EAAQU,EAAOJ,GAC/I,YAoBA,SAASS,GAAwBH,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAII,KAAa,IAAW,MAAPJ,EAAe,IAAK,GAAIK,KAAOL,GAAWM,OAAOC,UAAUC,eAAeb,KAAKK,EAAKK,KAAMD,EAAOC,GAAOL,EAAIK,GAAgC,OAAtBD,GAAOF,QAAUF,EAAYI,EAElQ,QAAS+4B,GAAgBl3B,EAAawD,GACpC,GAAIrD,GAAQL,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC5EY,EAAQZ,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,KAC5Eq3B,EAAUr3B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,SAC9Es3B,EAAUt3B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAKJ,EAAO2L,aACrF/I,EAAQxC,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAK,EAG5EpB,EAAQ,GAAIqC,OAAMC,KACtBtC,GAAMuC,QAAU,YAChBvC,EAAMwC,SAAW,WACf,MAAO,IAAMxC,EAAMuC,QAAU,KAAOuC,EAAM;+BAG5C,IAAI6zB,GAAsB,GAAIt2B,OAAMC,KACpCtC,GAAM2C,IAAIg2B,EAEV,IAAIvX,GAAO9f,EAAYqC,OAAOmB,EAAItC,YAAc1B,MAAO23B,EAAS70B,MAAOA,GACvE+0B,GAAoBh2B,IAAIye,GACxBphB,EAAMgQ,SAASoR,KAAOA,EAEtBphB,EAAMkP,UAAY,SAAUpK,OACdzD,KAARyD,IAAmBA,EAAM,eAC7Bsc,EAAKrc,YAAYD,EAAItC,aAIvBxC,EAAM44B,UAAY,SAAU9zB,GAC1Bsc,EAAKrc,YAAYD,EAAI+zB,QAAQ,KAG/BzX,EAAK/gB,SAASC,EAAI0B,CAElB,IAEI82B,GAAar3B,EAKbs3B,EAAoB,GAAI12B,OAAMS,YAAYg2B,EAJ5B,IAIqD92B,EAAO,EAAG,EAAG,EACpF+2B,GAAkBtlB,cAAa,GAAIpR,OAAMuR,SAAUolB,gBAA6B,GAAbF,EAPtD,IAOiF,EAAG,GAEjG,IAAIG,GAAgB,GAAI52B,OAAMiB,KAAKy1B,EAAmB7I,EAAgBC,MAStE,OARAnvB,GAAO2K,iBAAiBstB,EAAcrtB,SAAU8sB,GAEhDO,EAAc54B,SAASyD,EAAI,IAC3B60B,EAAoBh2B,IAAIs2B,GACxBN,EAAoBt4B,SAASyD,GAAI,IAEjC9D,EAAM0O,KAAOuqB,EAENj5B,EAqBT,QAASqR,GAAc/P,EAAa8P,EAAK8nB,GACvC,GAAIC,GAAe/3B,UAAUnC,OAAS,OAAsBoC,KAAjBD,UAAU,GAAmBA,UAAU,GAAKg4B,EACnFC,EAAcj4B,UAAU,GAExB2gB,EAAUzgB,EAAYqC,OAAOyN,GAE7BkoB,EAAW,GAAIj3B,OAAMC,MAErBof,EAAIK,EAAQJ,eACZnZ,EAAI9G,EAAO+f,WAAaM,EAAQle,OAAOhC,MAE3Cy3B,GAASj5B,SAASmD,EAAI,GAAM01B,EAC5BI,EAASj5B,SAASyD,GAAK,KAAOq1B,EAAe3wB,EAC7C8wB,EAASj5B,SAASC,EAAkB,EAAd+4B,EACtBC,EAASr5B,SAAU,EAGnBq5B,EAAS32B,IAAIof,EAGb,IAAIwX,GAAU7X,EAAI,IACd8X,EAAUhxB,EAAI,IACdixB,EAAU,GAAIp3B,OAAMkc,cAAcgb,EAASC,EAAS,EAAG,GACvDE,EAAgB,GAAIr3B,OAAMiB,KAAKm2B,EAASvJ,EAAgBkE,QAY5D,OAXAsF,GAAcr5B,SAASmD,EAAI,EAC3Bk2B,EAAcr5B,SAASyD,EAAI0E,EAAI,EAC/BkxB,EAAcr5B,SAASC,EAAmB,IAAd+4B,EAC5BC,EAAS32B,IAAI+2B,GAEb3X,EAAQ1hB,SAASmD,GAAK,GAAMke,EAC5BK,EAAQ1hB,SAASyD,GAAK,GAAM0E,EAAI,MAEhC8wB,EAAStpB,SAAS0R,EAAIA,EACtB4X,EAAStpB,SAASxH,EAAIA,EAEf8wB,EAhIT35B,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQQ,QAAUi5B,EAClBz5B,EAAQsS,cAAgBA,CAExB,IAAIhM,GAAU5G,EAAQ,YAElBuC,EAASxB,EAAwB6F,GAEjCE,EAAmB9G,EAAQ,qBAE3ByxB,EAAkB1wB,EAAwB+F,GAE1CD,EAAU7G,EAAQ,YAElBiD,EAASlC,EAAwB8F,GA4EjC8zB,EAAsB13B,EAAOI,aAAeJ,EAAOoT,gBAuCpDpP,WAAW,EAAEG,WAAW,GAAGC,oBAAoB,KAAK6zB,IAAI,SAASl7B,EAAQU,EAAOJ,GACnF,YAYA,SAASigB,GAAoB4a,GAC3B,GAAI9yB,GAAS8yB,EAAQ9yB,MASrB,IAAI8yB,EAAQ/gB,eAAgB,MAAOmG,GAAoBlY,EAIvD,KAAK8yB,EAAQ35B,QAAS,OAAO,CAE7B,MAAO6G,EAAOA,SAAWA,GAAQ,CAC/B,GAAIA,EAAOmR,gBAAkBnR,EAAO7G,QAAS,OAAO,CACpD6G,GAASA,EAAOA,OAElB,QAAKA,EAAOwM,QACLxM,EAAO7G,QAUhB,QAASkQ,GAAcmD,EAAQD,EAAOpT,GACpC,GAAI45B,GAAUvmB,EAAO6B,SAASR,SAAStB,EACvCA,GAAMpT,QAAUA,EAEZA,IAAY45B,GAASx3B,MAAMC,MAAM1C,UAAU+C,IAAI3D,KAAKsU,EAAQD,IAC3DpT,GAAW45B,GAASx3B,MAAMC,MAAM1C,UAAU+H,OAAO3I,KAAKsU,EAAQD,GAC9DC,EAAOrT,SAAS0Q,QAAQC,KAAK,iCAAmCyC,EAAQ,wBAA0BC,GAUzG,QAASe,GAAkBrU,GAEzB,IADA,GAAI8G,GAASgzB,EAAU95B,GAChB8G,EAAOA,SAAWA,GACvBA,EAASA,EAAOA,MACjB,OAAOA,GAGV,QAASgzB,GAAU95B,GACjB,GAAIA,EAAM8G,OAAQ,MAAO9G,GAAM8G,MAE/B,KADA,GAAImN,GAAOjU,EAAMsT,QACTW,EAAKnN,QAAU9G,EAAMsT,QAC3BW,EAAOA,EAAKX,MACb,OAAOW,GAAKnN,OAKf,QAASwQ,GAAiBD,EAAKhY,GAC7B,GAAI06B,KAWJ,OAVA16B,GAAI26B,SAAS,SAAU37B,GACjBA,EAAEuN,UAAYvN,EAAEuN,SAASquB,kBAAgE,IAA5C57B,EAAEuN,SAASsuB,WAAW75B,SAAS85B,WAC9E97B,EAAEuN,SAASquB,kBAAmB,EAC9BF,EAAUnrB,KAAKvQ,EAAEuN,aAGrByL,EAAI+iB,cAAc/6B,GAClB06B,EAAUvqB,QAAQ,SAAU7G,GAC1B,MAAOA,GAAEsxB,kBAAmB,IAEvB5iB,EAtFT1X,OAAOqF,eAAejG,EAAS,cAC7BkG,OAAO,IAETlG,EAAQigB,oBAAsBA,EAC9BjgB,EAAQoR,cAAgBA,EACxBpR,EAAQsV,kBAAoBA,EAC5BtV,EAAQ+6B,UAAYA,EACpB/6B,EAAQuY,iBAAmBA,OAkFrB+iB,IAAI,SAAS57B,EAAQU,EAAOJ,GAClC,YAkBAsD,OAAMY,oBAAsB,SAAUq3B,GAEpCnjB,KAAKmjB,iBAAgCj5B,KAAjBi5B,EAA6B,EAAIA,GAIvDj4B,MAAMY,oBAAoBrD,UAAUsD,OAAS,SAAU0I,GAIrD,IAFA,GAAI2uB,GAAUpjB,KAAKmjB,aAEZC,KAAY,GAEjBpjB,KAAKqjB,OAAO5uB,EAIdA,GAAS6uB,wBAGX,WA0FEp4B,MAAMY,oBAAoBrD,UAAU46B,OAAS,SAAU5uB,GACrD,gBAyOE8uB,IAAI,SAASj8B,EAAQU,EAAOJ,GAKlC,QAAS47B,GAAQltB,GACf,MACKA,GAAImtB,mBACqB,yBAAzB91B,EAAI9F,KAAKyO,EAAIotB,SACbntB,MAAMC,QAAQF,GARrB,GAAI3I,GAAMnF,OAAOC,UAAU4C,QAE3BrD,GAAOJ,QAAU47B,OAUXG,IAAI,SAASr8B,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAU,SAAiBg8B,EAAKC,GACtC,MAAsB,gBAARD,GACXA,EACgB,gBAARC,GAAmBA,EAAM,QAE/BC,IAAI,SAASx8B,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAU,SAASm8B,GACxB,OAAQA,GACN,IAAK,OACH,MAAOC,UACT,KAAK,QACH,MAAOC,WACT,KAAK,QACH,MAAOC,WACT,KAAK,QACH,MAAOC,WACT,KAAK,SACH,MAAOC,YACT,KAAK,SACH,MAAOC,YACT,KAAK,UACH,MAAOvvB,aACT,KAAK,UACH,MAAOwvB,aACT,KAAK,QACH,MAAO/tB,MACT,KAAK,gBACH,MAAOguB,0BAIPC,IAAI,SAASl9B,EAAQU,EAAOJ,GAsBlC,YAuBA,SAAS68B,GAAmBC,GACtBlrB,SAAWA,QAAQC,MAAMD,QAAQC,KAAKirB,GAO5C,QAASC,KACPA,EAAaC,KAAK/8B,KAAKmY,MAgBzB,QAAS6kB,GAAcC,GACrB,GAAwB,kBAAbA,GACT,KAAM,IAAIC,WAAU,yEAA4ED,IAsCpG,QAASE,GAAiBC,GACxB,WAA2B/6B,KAAvB+6B,EAAKC,cACAP,EAAaQ,oBACfF,EAAKC,cAmDd,QAASE,GAAaC,EAAQvK,EAAMgK,EAAUQ,GAC5C,GAAIriB,GACA/V,EACAq4B,CAsBJ,IApBAV,EAAcC,GAEd53B,EAASm4B,EAAOlxB,YACDjK,KAAXgD,GACFA,EAASm4B,EAAOlxB,QAAU3L,OAAOgE,OAAO,MACxC64B,EAAOG,aAAe,QAIKt7B,KAAvBgD,EAAOu4B,cACTJ,EAAOnzB,KAAK,cAAe4oB,EACfgK,EAASA,SAAWA,EAASA,SAAWA,GAIpD53B,EAASm4B,EAAOlxB,SAElBoxB,EAAWr4B,EAAO4tB,QAGH5wB,KAAbq7B,EAEFA,EAAWr4B,EAAO4tB,GAAQgK,IACxBO,EAAOG,iBAeT,IAbwB,kBAAbD,GAETA,EAAWr4B,EAAO4tB,GAChBwK,GAAWR,EAAUS,IAAaA,EAAUT,GAErCQ,EACTC,EAASjU,QAAQwT,GAEjBS,EAAS9tB,KAAKqtB,IAIhB7hB,EAAI+hB,EAAiBK,IACb,GAAKE,EAASz9B,OAASmb,IAAMsiB,EAASG,OAAQ,CACpDH,EAASG,QAAS,CAGlB,IAAInb,GAAI,GAAI9iB,OAAM,+CACE89B,EAASz9B,OAAS,IAAM69B,OAAO7K,GAAQ,oEAG3DvQ,GAAE7c,KAAO,8BACT6c,EAAEqb,QAAUP,EACZ9a,EAAEuQ,KAAOA,EACTvQ,EAAEsb,MAAQN,EAASz9B,OACnB28B,EAAmBla,GAIvB,MAAO8a,GAcT,QAASS,KACP,IAAK9lB,KAAK+lB,MAGR,MAFA/lB,MAAKqlB,OAAO7V,eAAexP,KAAK8a,KAAM9a,KAAKgmB,QAC3ChmB,KAAK+lB,OAAQ,EACY,IAArB97B,UAAUnC,OACLkY,KAAK8kB,SAASj9B,KAAKmY,KAAKqlB,QAC1BrlB,KAAK8kB,SAASjrB,MAAMmG,KAAKqlB,OAAQp7B,WAI5C,QAASg8B,GAAUZ,EAAQvK,EAAMgK,GAC/B,GAAI/1B,IAAUg3B,OAAO,EAAOC,WAAQ97B,GAAWm7B,OAAQA,EAAQvK,KAAMA,EAAMgK,SAAUA,GACjFoB,EAAUJ,EAAYK,KAAKp3B,EAG/B,OAFAm3B,GAAQpB,SAAWA,EACnB/1B,EAAMi3B,OAASE,EACRA,EA0HT,QAASE,GAAWf,EAAQvK,EAAMuL,GAChC,GAAIn5B,GAASm4B,EAAOlxB,OAEpB,QAAejK,KAAXgD,EACF,QAEF,IAAIo5B,GAAap5B,EAAO4tB,EACxB,YAAmB5wB,KAAfo8B,KAGsB,kBAAfA,GACFD,GAAUC,EAAWxB,UAAYwB,IAAeA,GAElDD,EACLE,EAAgBD,GAAcE,EAAWF,EAAYA,EAAWx+B,QAoBpE,QAAS2+B,GAAc3L,GACrB,GAAI5tB,GAAS8S,KAAK7L,OAElB,QAAejK,KAAXgD,EAAsB,CACxB,GAAIo5B,GAAap5B,EAAO4tB,EAExB,IAA0B,kBAAfwL,GACT,MAAO,EACF,QAAmBp8B,KAAfo8B,EACT,MAAOA,GAAWx+B,OAItB,MAAO,GAOT,QAAS0+B,GAAWlwB,EAAKtP,GAEvB,IAAK,GADD4M,GAAO,GAAI2C,OAAMvP,GACZG,EAAI,EAAGA,EAAIH,IAAKG,EACvByM,EAAKzM,GAAKmP,EAAInP,EAChB,OAAOyM,GAGT,QAAS8yB,GAAUC,EAAMpuB,GACvB,KAAOA,EAAQ,EAAIouB,EAAK7+B,OAAQyQ,IAC9BouB,EAAKpuB,GAASouB,EAAKpuB,EAAQ,EAC7BouB,GAAKC,MAGP,QAASL,GAAgBjwB,GAEvB,IAAK,GADDuwB,GAAM,GAAItwB,OAAMD,EAAIxO,QACfX,EAAI,EAAGA,EAAI0/B,EAAI/+B,SAAUX,EAChC0/B,EAAI1/B,GAAKmP,EAAInP,GAAG29B,UAAYxuB,EAAInP,EAElC,OAAO0/B,GAGT,QAASC,GAAKlB,EAASl4B,GACrB,MAAO,IAAIq5B,SAAQ,SAAUC,EAASC,GACpC,QAASC,GAAcC,GACrBvB,EAAQpW,eAAe9hB,EAAM05B,GAC7BH,EAAOE,GAGT,QAASC,KAC+B,kBAA3BxB,GAAQpW,gBACjBoW,EAAQpW,eAAe,QAAS0X,GAElCF,KAAWjT,MAAMlsB,KAAKoC,YAGxBo9B,EAA+BzB,EAASl4B,EAAM05B,GAAYN,MAAM,IACnD,UAATp5B,GACF45B,EAA8B1B,EAASsB,GAAiBJ,MAAM,MAKpE,QAASQ,GAA8B1B,EAAS2B,EAASC,GAC7B,kBAAf5B,GAAQz4B,IACjBk6B,EAA+BzB,EAAS,QAAS2B,EAASC,GAI9D,QAASH,GAA+BzB,EAASl4B,EAAMo3B,EAAU0C,GAC/D,GAA0B,kBAAf5B,GAAQz4B,GACbq6B,EAAMV,KACRlB,EAAQkB,KAAKp5B,EAAMo3B,GAEnBc,EAAQz4B,GAAGO,EAAMo3B,OAEd,CAAA,GAAwC,kBAA7Bc,GAAQ9Y,iBAYxB,KAAM,IAAIiY,WAAU,4EAA+Ea,GATnGA,GAAQ9Y,iBAAiBpf,EAAM,QAAS+5B,GAAaC,GAG/CF,EAAMV,MACRlB,EAAQ+B,oBAAoBj6B,EAAM+5B,GAEpC3C,EAAS4C,MApdf,GAOIE,GAPAC,EAAuB,gBAAZC,SAAuBA,QAAU,KAC5CC,EAAeF,GAAwB,kBAAZA,GAAEhuB,MAC7BguB,EAAEhuB,MACF,SAAsBwrB,EAAQ2C,EAAU9mB,GACxC,MAAO+mB,UAASx/B,UAAUoR,MAAMhS,KAAKw9B,EAAQ2C,EAAU9mB,GAKzD0mB,GADEC,GAA0B,kBAAdA,GAAEK,QACCL,EAAEK,QACV1/B,OAAO2/B,sBACC,SAAwB9C,GACvC,MAAO78B,QAAO4/B,oBAAoB/C,GAC/BtkB,OAAOvY,OAAO2/B,sBAAsB9C,KAGxB,SAAwBA,GACvC,MAAO78B,QAAO4/B,oBAAoB/C,GAQtC,IAAIgD,GAAcjX,OAAO3F,OAAS,SAAqB3d,GACrD,MAAOA,KAAUA,EAMnB9F,GAAOJ,QAAU+8B,EACjB38B,EAAOJ,QAAQk/B,KAAOA,EAGtBnC,EAAaA,aAAeA,EAE5BA,EAAal8B,UAAU0L,YAAUjK,GACjCy6B,EAAal8B,UAAU+8B,aAAe,EACtCb,EAAal8B,UAAUy8B,kBAAgBh7B,EAIvC,IAAIi7B,GAAsB,EAQ1B38B,QAAOqF,eAAe82B,EAAc,uBAClC2D,YAAY,EACZl4B,IAAK,WACH,MAAO+0B,IAET90B,IAAK,SAASq3B,GACZ,GAAmB,gBAARA,IAAoBA,EAAM,GAAKW,EAAYX,GACpD,KAAM,IAAIa,YAAW,kGAAoGb,EAAM,IAEjIvC,GAAsBuC,KAI1B/C,EAAaC,KAAO,eAEG16B,KAAjB8V,KAAK7L,SACL6L,KAAK7L,UAAY3L,OAAOggC,eAAexoB,MAAM7L,UAC/C6L,KAAK7L,QAAU3L,OAAOgE,OAAO,MAC7BwT,KAAKwlB,aAAe,GAGtBxlB,KAAKklB,cAAgBllB,KAAKklB,mBAAiBh7B,IAK7Cy6B,EAAal8B,UAAUggC,gBAAkB,SAAyBzhC,GAChE,GAAiB,gBAANA,IAAkBA,EAAI,GAAKqhC,EAAYrhC,GAChD,KAAM,IAAIuhC,YAAW,gFAAkFvhC,EAAI,IAG7G,OADAgZ,MAAKklB,cAAgBl+B,EACdgZ,MAST2kB,EAAal8B,UAAUigC,gBAAkB,WACvC,MAAO1D,GAAiBhlB,OAG1B2kB,EAAal8B,UAAUyJ,KAAO,SAAc4oB,GAE1C,IAAK,GADD5Z,MACK/Z,EAAI,EAAGA,EAAI8C,UAAUnC,OAAQX,IAAK+Z,EAAKzJ,KAAKxN,UAAU9C,GAC/D,IAAIwhC,GAAoB,UAAT7N,EAEX5tB,EAAS8S,KAAK7L,OAClB,QAAejK,KAAXgD,EACFy7B,EAAWA,OAA4Bz+B,KAAjBgD,EAAOyW,UAC1B,KAAKglB,EACR,OAAO,CAGT,IAAIA,EAAS,CACX,GAAIC,EAGJ,IAFI1nB,EAAKpZ,OAAS,IAChB8gC,EAAK1nB,EAAK,IACR0nB,YAAcnhC,OAGhB,KAAMmhC,EAGR,IAAIzB,GAAM,GAAI1/B,OAAM,oBAAsBmhC,EAAK,KAAOA,EAAGC,QAAU,IAAM,IAEzE,MADA1B,GAAI2B,QAAUF,EACRzB,EAGR,GAAII,GAAUr6B,EAAO4tB,EAErB,QAAgB5wB,KAAZq9B,EACF,OAAO,CAET,IAAuB,kBAAZA,GACTQ,EAAaR,EAASvnB,KAAMkB,OAI5B,KAAK,GAFD6nB,GAAMxB,EAAQz/B,OACdkhC,EAAYxC,EAAWe,EAASwB,GAC3B5hC,EAAI,EAAGA,EAAI4hC,IAAO5hC,EACzB4gC,EAAaiB,EAAU7hC,GAAI6Y,KAAMkB,EAGrC,QAAO,GAiETyjB,EAAal8B,UAAUwgC,YAAc,SAAqBnO,EAAMgK,GAC9D,MAAOM,GAAaplB,KAAM8a,EAAMgK,GAAU,IAG5CH,EAAal8B,UAAU0E,GAAKw3B,EAAal8B,UAAUwgC,YAEnDtE,EAAal8B,UAAUygC,gBACnB,SAAyBpO,EAAMgK,GAC7B,MAAOM,GAAaplB,KAAM8a,EAAMgK,GAAU,IAqBhDH,EAAal8B,UAAUq+B,KAAO,SAAchM,EAAMgK,GAGhD,MAFAD,GAAcC,GACd9kB,KAAK7S,GAAG2tB,EAAMmL,EAAUjmB,KAAM8a,EAAMgK,IAC7B9kB,MAGT2kB,EAAal8B,UAAU0gC,oBACnB,SAA6BrO,EAAMgK,GAGjC,MAFAD,GAAcC,GACd9kB,KAAKkpB,gBAAgBpO,EAAMmL,EAAUjmB,KAAM8a,EAAMgK,IAC1C9kB,MAIb2kB,EAAal8B,UAAU+mB,eACnB,SAAwBsL,EAAMgK,GAC5B,GAAI6B,GAAMz5B,EAAQhE,EAAU/B,EAAGiiC,CAK/B,IAHAvE,EAAcC,OAGC56B,MADfgD,EAAS8S,KAAK7L,SAEZ,MAAO6L,KAGT,QAAa9V,MADby8B,EAAOz5B,EAAO4tB,IAEZ,MAAO9a,KAET,IAAI2mB,IAAS7B,GAAY6B,EAAK7B,WAAaA,EACb,KAAtB9kB,KAAKwlB,aACTxlB,KAAK7L,QAAU3L,OAAOgE,OAAO,aAEtBU,GAAO4tB,GACV5tB,EAAOsiB,gBACTxP,KAAK9N,KAAK,iBAAkB4oB,EAAM6L,EAAK7B,UAAYA,QAElD,IAAoB,kBAAT6B,GAAqB,CAGrC,IAFAz9B,GAAY,EAEP/B,EAAIw/B,EAAK7+B,OAAS,EAAGX,GAAK,EAAGA,IAChC,GAAIw/B,EAAKx/B,KAAO29B,GAAY6B,EAAKx/B,GAAG29B,WAAaA,EAAU,CACzDsE,EAAmBzC,EAAKx/B,GAAG29B,SAC3B57B,EAAW/B,CACX,OAIJ,GAAI+B,EAAW,EACb,MAAO8W,KAEQ,KAAb9W,EACFy9B,EAAKzO,QAELwO,EAAUC,EAAMz9B,GAGE,IAAhBy9B,EAAK7+B,SACPoF,EAAO4tB,GAAQ6L,EAAK,QAEQz8B,KAA1BgD,EAAOsiB,gBACTxP,KAAK9N,KAAK,iBAAkB4oB,EAAMsO,GAAoBtE,GAG1D,MAAO9kB,OAGb2kB,EAAal8B,UAAU4gC,IAAM1E,EAAal8B,UAAU+mB,eAEpDmV,EAAal8B,UAAU6gC,mBACnB,SAA4BxO,GAC1B,GAAIkO,GAAW97B,EAAQ/F,CAGvB,QAAe+C,MADfgD,EAAS8S,KAAK7L,SAEZ,MAAO6L,KAGT,QAA8B9V,KAA1BgD,EAAOsiB,eAUT,MATyB,KAArBvlB,UAAUnC,QACZkY,KAAK7L,QAAU3L,OAAOgE,OAAO,MAC7BwT,KAAKwlB,aAAe,OACMt7B,KAAjBgD,EAAO4tB,KACY,KAAtB9a,KAAKwlB,aACTxlB,KAAK7L,QAAU3L,OAAOgE,OAAO,YAEtBU,GAAO4tB,IAEX9a,IAIT,IAAyB,IAArB/V,UAAUnC,OAAc,CAC1B,GACIS,GADAyO,EAAOxO,OAAOwO,KAAK9J,EAEvB,KAAK/F,EAAI,EAAGA,EAAI6P,EAAKlP,SAAUX,EAEjB,oBADZoB,EAAMyO,EAAK7P,KAEX6Y,KAAKspB,mBAAmB/gC,EAK1B,OAHAyX,MAAKspB,mBAAmB,kBACxBtpB,KAAK7L,QAAU3L,OAAOgE,OAAO,MAC7BwT,KAAKwlB,aAAe,EACbxlB,KAKT,GAAyB,mBAFzBgpB,EAAY97B,EAAO4tB,IAGjB9a,KAAKwP,eAAesL,EAAMkO,OACrB,QAAkB9+B,KAAd8+B,EAET,IAAK7hC,EAAI6hC,EAAUlhC,OAAS,EAAGX,GAAK,EAAGA,IACrC6Y,KAAKwP,eAAesL,EAAMkO,EAAU7hC,GAIxC,OAAO6Y,OAoBb2kB,EAAal8B,UAAUugC,UAAY,SAAmBlO,GACpD,MAAOsL,GAAWpmB,KAAM8a,GAAM,IAGhC6J,EAAal8B,UAAU8gC,aAAe,SAAsBzO,GAC1D,MAAOsL,GAAWpmB,KAAM8a,GAAM,IAGhC6J,EAAa8B,cAAgB,SAASb,EAAS9K,GAC7C,MAAqC,kBAA1B8K,GAAQa,cACVb,EAAQa,cAAc3L,GAEtB2L,EAAc5+B,KAAK+9B,EAAS9K,IAIvC6J,EAAal8B,UAAUg+B,cAAgBA,EAiBvC9B,EAAal8B,UAAU+gC,WAAa,WAClC,MAAOxpB,MAAKwlB,aAAe,EAAIoC,EAAe5nB,KAAK7L,kBA0E/Cs1B,IAAI,SAASniC,EAAQU,EAAOJ,GACL,kBAAlBY,QAAOgE,OAEhBxE,EAAOJ,QAAU,SAAkB8hC,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAKjhC,UAAYD,OAAOgE,OAAOm9B,EAAUlhC,WACvC+kB,aACE1f,MAAO47B,EACPpB,YAAY,EACZuB,UAAU,EACVC,cAAc,OAOtB9hC,EAAOJ,QAAU,SAAkB8hC,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,CACd,IAAII,GAAW,YACfA,GAASthC,UAAYkhC,EAAUlhC,UAC/BihC,EAAKjhC,UAAY,GAAIshC,GACrBL,EAAKjhC,UAAU+kB,YAAckc,SAK7BM,IAAI,SAAS1iC,EAAQU,EAAOJ,GAclC,QAASqiC,GAAU/hC,GACjB,QAASA,EAAIslB,aAAmD,kBAA7BtlB,GAAIslB,YAAYyc,UAA2B/hC,EAAIslB,YAAYyc,SAAS/hC,GAIzG,QAASgiC,GAAchiC,GACrB,MAAkC,kBAApBA,GAAIiiC,aAAmD,kBAAdjiC,GAAI6rB,OAAwBkW,EAAS/hC,EAAI6rB,MAAM,EAAG,IAV3G/rB,EAAOJ,QAAU,SAAUM,GACzB,MAAc,OAAPA,IAAgB+hC,EAAS/hC,IAAQgiC,EAAahiC,MAAUA,EAAIkiC,iBAY/DC,IAAI,SAAS/iC,EAAQU,EAAOJ,GAoBlC,QAAS0iC,GAAW7P,GAClBza,KAAKuqB,UACLvqB,KAAKwqB,SAAWxqB,KAAKyqB,eAAetE,KAAKnmB,MACzCA,KAAKvS,OAAOgtB,GA+Ld,QAASiQ,GAAUh9B,GACjBlF,OAAOqF,eAAey8B,EAAW7hC,UAAWiF,GAC1C0C,IAAKu6B,EAAQj9B,GACbo8B,cAAc,IAKlB,QAASa,GAAQj9B,GACf,MAAO,IAAKu6B,WACV,mBAAmBv6B,EAAK,OACxB,kBAAkBA,EAClB,KACAgM,KAAK,SAGT,QAASkxB,GAAatP,EAAMnO,GAC1B,IAAKmO,EAAKuP,OAA+B,IAAtBvP,EAAKuP,MAAM/iC,OAC5B,MAAO,KAET,IAAIgjC,GAAWC,EAASzP,EAAKuP,MAAO1d,EACpC,OAAI2d,IAAY,EACPxP,EAAKuP,MAAMC,GACb,KAGT,QAASE,GAAW1P,GAClB,IAAK,GAAIn0B,GAAE,EAAGA,EAAE8jC,EAAUnjC,OAAQX,IAAK,CACrC,GAAIgmB,GAAK8d,EAAU9jC,GAAG+jC,WAAW,GAC7BC,EAAMJ,EAASzP,EAAKuP,MAAO1d,EAC/B,IAAIge,GAAO,EACT,MAAO7P,GAAKuP,MAAMM,GAAKzgC,OAE3B,MAAO,GAGT,QAAS0gC,GAAU9P,GACjB,IAAK,GAAIn0B,GAAE,EAAGA,EAAEkkC,EAASvjC,OAAQX,IAAK,CACpC,GAAIgmB,GAAKke,EAASlkC,GAAG+jC,WAAW,GAC5BC,EAAMJ,EAASzP,EAAKuP,MAAO1d,EAC/B,IAAIge,GAAO,EACT,MAAO7P,GAAKuP,MAAMM,GAEtB,MAAO,GAGT,QAASG,GAAahQ,GACpB,IAAK,GAAIn0B,GAAE,EAAGA,EAAEokC,EAAYzjC,OAAQX,IAAK,CACvC,GAAIgmB,GAAKoe,EAAYpkC,GAAG+jC,WAAW,GAC/BC,EAAMJ,EAASzP,EAAKuP,MAAO1d,EAC/B,IAAIge,GAAO,EACT,MAAO7P,GAAKuP,MAAMM,GAAKzgC,OAE3B,MAAO,GAGT,QAAS8gC,GAAWlQ,EAAM/f,EAAMC,GAC9B,IAAK8f,EAAKmQ,UAAqC,IAAzBnQ,EAAKmQ,SAAS3jC,OAClC,MAAO,EAGT,KAAK,GADD4jC,GAAQpQ,EAAKmQ,SACRtkC,EAAE,EAAGA,EAAEukC,EAAM5jC,OAAQX,IAAK,CACjC,GAAIwkC,GAAOD,EAAMvkC,EACjB,IAAIwkC,EAAKC,QAAUrwB,GAAQowB,EAAKE,SAAWrwB,EACzC,MAAOmwB,GAAKG,OAEhB,MAAO,GAGT,QAASC,GAAavQ,GACpB,MAAc,WAAVA,EACKwQ,EACU,UAAVxQ,EACAyQ,EACFC,EAGT,QAASnB,GAAUl2B,EAAO/G,EAAOq+B,GAC/BA,EAAQA,GAAS,CACjB,KAAK,GAAIhlC,GAAIglC,EAAOhlC,EAAI0N,EAAM/M,OAAQX,IACpC,GAAI0N,EAAM1N,GAAGgmB,KAAOrf,EAClB,MAAO3G,EAGX,QAAQ,EAzSV,GAAIilC,GAAW9kC,EAAQ,gBACnB+kC,EAAQ/kC,EAAQ,SAChB4qB,EAAS5qB,EAAQ,aAEjB2jC,GAAa,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACzEI,GAAY,IAAK,KACjBE,GAAe,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAGhFe,EAAS,KAAKpB,WAAW,GACzBqB,EAAW,IAAIrB,WAAW,GAC1BgB,EAAa,EACbF,EAAe,EACfC,EAAc,CAElBjkC,GAAOJ,QAAU,SAAsB6yB,GACrC,MAAO,IAAI6P,GAAW7P,IASxB6P,EAAW7hC,UAAUgF,OAAS,SAASgtB,GAOrC,GANAA,EAAM4R,GACJG,QAASxsB,KAAKwqB,UACb/P,GACHza,KAAKysB,KAAOhS,EACZza,KAAKysB,KAAKC,QAAUxa,EAAOlS,KAAKysB,KAAKC,QAAS,IAEzCjS,EAAIa,KACP,KAAM,IAAI7zB,OAAM,mCAElB,IAAI8iC,GAASvqB,KAAKuqB,OACdtgB,EAAOwQ,EAAIxQ,MAAM,GACjBqR,EAAOb,EAAIa,IACftb,MAAK2sB,kBAAkBrR,EAEvB,IAAIsR,GAAQR,EAASQ,MAAM3iB,EAAMwQ,GAC7BoS,EAAWpS,EAAInwB,OAAS,CAG5BigC,GAAOziC,OAAS,CAGhB,IAAIglC,GAAeF,EAAM5d,OAAO,SAAS+d,EAAMC,GAC7C,MAAOphC,MAAKgG,IAAIm7B,EAAMC,EAAK1iC,MAAOuiC,IACjC,GAGCxgC,EAAI,EACJM,EAAI,EACJsgC,EAAa/a,EAAOuI,EAAIwS,WAAY3R,EAAK4R,OAAOD,YAChDE,EAAW7R,EAAK4R,OAAOE,KACvBC,EAAYJ,EAAWE,EACvBG,EAAgB7S,EAAI6S,eAAiB,EACrC5iC,EAASuiC,EAAaL,EAAM9kC,OAASulC,EACrC7R,EAAQuQ,EAAa/rB,KAAKysB,KAAKjR,MAGnC7uB,IAAKjC,EAGLsV,KAAK6Y,OAASiU,EACd9sB,KAAKutB,QAAU7iC,EACfsV,KAAKwtB,WAAaP,EAAaE,EAC/BntB,KAAKytB,UAAYN,EACjBntB,KAAK0tB,SAAW1C,EAAW1P,GAC3Btb,KAAK2tB,WAAarC,EAAahQ,GAC/Btb,KAAK4tB,YAAcX,EACnBjtB,KAAK6tB,UAAYZ,EAAaI,EAAYrtB,KAAK0tB,QAG/C,IAAII,GAAO9tB,IACX4sB,GAAMv0B,QAAQ,SAAS20B,EAAMe,GAO3B,IAAK,GAHDC,GAHA7B,EAAQa,EAAKb,MACb8B,EAAMjB,EAAKiB,IACXC,EAAYlB,EAAK1iC,MAIZnD,EAAEglC,EAAOhlC,EAAE8mC,EAAK9mC,IAAK,CAC5B,GAAIgmB,GAAKlD,EAAKihB,WAAW/jC,GACrBgnC,EAAQL,EAAKM,SAAS9S,EAAMnO,EAChC,IAAIghB,EAAO,CACLH,IACF3hC,GAAKm/B,EAAWlQ,EAAM0S,EAAU7gB,GAAIghB,EAAMhhB,IAE5C,IAAIkhB,GAAKhiC,CACLmvB,KAAUwQ,EACZqC,IAAOvB,EAAaoB,GAAW,EACxB1S,IAAUyQ,IACjBoC,GAAOvB,EAAaoB,GAEtB3D,EAAO9yB,MACLvO,UAAWmlC,EAAI1hC,GACf2hC,KAAMH,EACN51B,MAAOpR,EACP6lC,KAAMe,IAIR1hC,GAAK8hC,EAAMI,SAAWjB,EACtBU,EAAYG,GAKhBxhC,GAAKsgC,EACL5gC,EAAI,IAEN2T,KAAKwuB,YAAc5B,EAAM9kC,QAG3BwiC,EAAW7hC,UAAUkkC,kBAAoB,SAASrR,GAMhD,GAHAtb,KAAKyuB,oBAAsB,KAC3BzuB,KAAK0uB,kBAAoB,KAEpBpT,EAAKuP,OAA+B,IAAtBvP,EAAKuP,MAAM/iC,OAA9B,CAMA,GAAI6mC,GAAQ/D,EAAatP,EAAMiR,IACpBnB,EAAU9P,IACVA,EAAKuP,MAAM,GAGlB+D,EAAW5uB,KAAKysB,KAAKC,QAAUiC,EAAMJ,QACzCvuB,MAAKyuB,oBAAsBE,EAC3B3uB,KAAK0uB,kBAAoBrC,EAAMsC,GAC7BtiC,EAAG,EAAGM,EAAG,EAAG4hC,SAAUK,EAAUzhB,GAAImf,EACpCuC,QAAS,EAAGC,QAAS,EAAGxkC,MAAO,EAAGI,OAAQ,MAI9C4/B,EAAW7hC,UAAU2lC,SAAW,SAAS9S,EAAMnO,GAC7C,GAAIghB,GAAQvD,EAAatP,EAAMnO,EAC/B,OAAIghB,KAEKhhB,IAAOmf,EACPtsB,KAAK0uB,kBACLvhB,IAAOof,EACPvsB,KAAKyuB,oBACP,OAGTnE,EAAW7hC,UAAUgiC,eAAiB,SAASxgB,EAAMkiB,EAAO8B,EAAK3jC,GAC/D,GAKI6jC,GACAH,EANAV,EAAgBttB,KAAKysB,KAAKa,eAAiB,EAC3ChS,EAAOtb,KAAKysB,KAAKnR,KACjByT,EAAS,EACTC,EAAW,EACXnJ,EAAQ,CAIZ,KAAKvK,EAAKuP,OAA+B,IAAtBvP,EAAKuP,MAAM/iC,OAC5B,OACEqkC,MAAOA,EACP8B,IAAK9B,EACL7hC,MAAO,EAIX2jC,GAAMriC,KAAKiG,IAAIoY,EAAKniB,OAAQmmC,EAC5B,KAAK,GAAI9mC,GAAEglC,EAAOhlC,EAAI8mC,EAAK9mC,IAAK,CAC9B,GAAIgmB,GAAKlD,EAAKihB,WAAW/jC,GACrBgnC,EAAQnuB,KAAKouB,SAAS9S,EAAMnO,EAEhC,IAAIghB,EAAO,CAEEA,EAAMU,OAEjBE,IADWf,EAAYxC,EAAWlQ,EAAM0S,EAAU7gB,GAAIghB,EAAMhhB,IAAM,CAGlE,IAAI8hB,GAAUF,EAASZ,EAAMI,SAAWjB,EACpC4B,EAAYH,EAASZ,EAAM7jC,KAG/B,IAAI4kC,GAAa5kC,GAAS2kC,GAAW3kC,EACnC,KAGFykC,GAASE,EACTD,EAAWE,EACXlB,EAAYG,EAEdtI,IAOF,MAHImI,KACFgB,GAAYhB,EAAUa,UAGtB1C,MAAOA,EACP8B,IAAK9B,EAAQtG,EACbv7B,MAAO0kC,KAKT,QAAS,SACT,YAAa,WACb,UAAW,WACX,YACA,cAAe32B,QAAQqyB,KAwFtByE,YAAY,GAAGC,eAAe,GAAG/C,MAAQ,KAAKgD,IAAI,SAAS/nC,EAAQU,EAAOJ,GAO7E,YAMA,SAAS0nC,GAASC,GACjB,GAAY,OAARA,OAAwBrlC,KAARqlC,EACnB,KAAM,IAAIxK,WAAU,wDAGrB,OAAOv8B,QAAO+mC,GATf,GAAIpH,GAAwB3/B,OAAO2/B,sBAC/Bz/B,EAAiBF,OAAOC,UAAUC,eAClC8mC,EAAmBhnC,OAAOC,UAAUgnC,oBAsDxCznC,GAAOJ,QA5CP,WACC,IACC,IAAKY,OAAO4xB,OACX,OAAO,CAMR,IAAIsV,GAAQ,GAAI/J,QAAO,MAEvB,IADA+J,EAAM,GAAK,KACkC,MAAzClnC,OAAO4/B,oBAAoBsH,GAAO,GACrC,OAAO,CAKR,KAAK,GADDC,MACKxoC,EAAI,EAAGA,EAAI,GAAIA,IACvBwoC,EAAM,IAAMhK,OAAOiK,aAAazoC,IAAMA,CAKvC,IAAwB,eAHXqB,OAAO4/B,oBAAoBuH,GAAO71B,IAAI,SAAU9S,GAC5D,MAAO2oC,GAAM3oC,KAEH0S,KAAK,IACf,OAAO,CAIR,IAAIm2B,KAIJ,OAHA,uBAAuBtX,MAAM,IAAIlgB,QAAQ,SAAUy3B,GAClDD,EAAMC,GAAUA,IAGf,yBADEtnC,OAAOwO,KAAKxO,OAAO4xB,UAAWyV,IAAQn2B,KAAK,IAM9C,MAAOytB,GAER,OAAO,MAI4B3+B,OAAO4xB,OAAS,SAAUiL,EAAQ0K,GAKtE,IAAK,GAJDr5B,GAEAs5B,EADAC,EAAKX,EAASjK,GAGT/zB,EAAI,EAAGA,EAAIrH,UAAUnC,OAAQwJ,IAAK,CAC1CoF,EAAOlO,OAAOyB,UAAUqH,GAExB,KAAK,GAAI/I,KAAOmO,GACXhO,EAAeb,KAAK6O,EAAMnO,KAC7B0nC,EAAG1nC,GAAOmO,EAAKnO,GAIjB,IAAI4/B,EAAuB,CAC1B6H,EAAU7H,EAAsBzxB,EAChC,KAAK,GAAIvP,GAAI,EAAGA,EAAI6oC,EAAQloC,OAAQX,IAC/BqoC,EAAiB3nC,KAAK6O,EAAMs5B,EAAQ7oC,MACvC8oC,EAAGD,EAAQ7oC,IAAMuP,EAAKs5B,EAAQ7oC,MAMlC,MAAO8oC,SAGFC,IAAI,SAAS5oC,EAAQU,EAAOJ,GA0ClC,QAASuoC,GAAUnD,EAAM7B,GAEvB,KADA6B,EAAOA,EAAKoD,QAAQ,OAAQ,KAAKC,QAE/B,MAAO,KAET,IAAI1B,GAAQ3B,EAAKzzB,QAAQ,IACzB,KAAe,IAAXo1B,EACF,KAAM,IAAIlnC,OAAM,wBAA0B0jC,EAE5C,IAAI5iC,GAAMykC,EAAK5Q,UAAU,EAAGuS,EAE5B3B,GAAOA,EAAK5Q,UAAUuS,EAAQ,GAG9B3B,EAAOA,EAAKoD,QAAQ,2BAA4B,IAChDpD,EAAOA,EAAKzU,MAAM,KAClByU,EAAOA,EAAKlzB,IAAI,SAASnM,GACvB,MAAOA,GAAI0iC,OAAOC,MAAM,kCAI1B,KAAK,GADDhC,MACKnnC,EAAI,EAAGA,EAAI6lC,EAAKllC,OAAQX,IAAK,CACpC,GAAIopC,GAAKvD,EAAK7lC,EACJ,KAANA,EACFmnC,EAAK72B,MACHlP,IAAKgoC,EAAG,GACRjC,KAAM,KAECnnC,IAAM6lC,EAAKllC,OAAS,EAC7BwmC,EAAKA,EAAKxmC,OAAS,GAAGwmC,KAAOkC,EAAUD,EAAG,KAE1CjC,EAAKA,EAAKxmC,OAAS,GAAGwmC,KAAOkC,EAAUD,EAAG,IAC1CjC,EAAK72B,MACHlP,IAAKgoC,EAAG,GACRjC,KAAM,MAKZ,GAAImC,IACFloC,IAAKA,EACL+lC,QAOF,OAJAA,GAAKj2B,QAAQ,SAAS9G,GACpBk/B,EAAInC,KAAK/8B,EAAEhJ,KAAOgJ,EAAE+8B,OAGfmC,EAGT,QAASD,GAAUlC,GACjB,MAAKA,IAAwB,IAAhBA,EAAKxmC,OAGQ,IAAtBwmC,EAAK/0B,QAAQ,MAAoC,IAAtB+0B,EAAK/0B,QAAQ,KACnC+0B,EAAKlS,UAAU,EAAGkS,EAAKxmC,OAAS,IACd,IAAvBwmC,EAAK/0B,QAAQ,KACRm3B,EAAapC,GACfqC,SAASrC,EAAM,IANb,GASX,QAASoC,GAAapC,GACpB,MAAOA,GAAK/V,MAAM,KAAKze,IAAI,SAASy1B,GAClC,MAAOoB,UAASpB,EAAK,MAzGzBvnC,EAAOJ,QAAU,SAA0B0mC,GACzC,IAAKA,EACH,KAAM,IAAI7mC,OAAM,mBAClB6mC,GAAOA,EAAKjjC,WAAWglC,MAEvB,IAAIO,IACFC,SACAhG,SACAY,aAGEmB,EAAQ0B,EAAK/V,MAAM,YAEvB,IAAqB,IAAjBqU,EAAM9kC,OACR,KAAM,IAAIL,OAAM,yBAElB,KAAK,GAAIN,GAAI,EAAGA,EAAIylC,EAAM9kC,OAAQX,IAAK,CACrC,GAAI2pC,GAAWX,EAAUvD,EAAMzlC,GAAIA,EACnC,IAAK2pC,EAGL,GAAqB,SAAjBA,EAASvoC,IAAgB,CAC3B,GAAgC,gBAArBuoC,GAASxC,KAAKnhB,GACvB,KAAM,IAAI1lB,OAAM,0BAA4BN,EAAI,sBAClD,IAAkC,gBAAvB2pC,GAASxC,KAAKyC,KACvB,KAAM,IAAItpC,OAAM,0BAA4BN,EAAI,6BAClDypC,GAAOC,MAAMC,EAASxC,KAAKnhB,IAAM2jB,EAASxC,KAAKyC,SACrB,UAAjBD,EAASvoC,KAAoC,aAAjBuoC,EAASvoC,MAEpB,SAAjBuoC,EAASvoC,IAClBqoC,EAAO/F,MAAMpzB,KAAKq5B,EAASxC,MACD,YAAjBwC,EAASvoC,IAClBqoC,EAAOnF,SAASh0B,KAAKq5B,EAASxC,MAE9BsC,EAAOE,EAASvoC,KAAOuoC,EAASxC,MAIpC,MAAOsC,SAsEHI,IAAI,SAAS1pC,EAAQU,EAAOJ,GAClC,GAAIm8B,GAAQz8B,EAAQ,SAChBk8B,EAAUl8B,EAAQ,YAClB2iC,EAAW3iC,EAAQ,aAEnB2pC,GAAM,EAAG,EAAG,GACZC,GAAO,EAAG,EAAG,EAEjBlpC,GAAOJ,QAAU,SAA4BiN,EAAO4lB,GAE3C5lB,IAAW2uB,EAAQ3uB,IAAUo1B,EAASp1B,MACvC4lB,EAAM5lB,MACNA,EAAQ,MAIR4lB,EADe,gBAARA,IACCoL,MAAOpL,GAETA,KAcV,KAAK,GAZDK,GAA2B,gBAAbL,GAAIK,KAAoBL,EAAIK,KAAO,SACjD+K,EAA6B,gBAAdpL,GAAIoL,MAAqBpL,EAAIoL,MAAQ,EACpDsG,EAAS1R,EAAI0R,OAAS,EAEtBgF,GAAwB,IAAlB1W,EAAI2W,UAAsBH,EAAKC,EACrC1pC,EAAI2pC,EAAI,GACR1/B,EAAI0/B,EAAI,GACR9pC,EAAI8pC,EAAI,GAERE,EAAqB,EAARxL,EAEbyL,EAAUz8B,GAAS,IAAKkvB,EAAMjJ,IAAOuW,GAChClqC,EAAI,EAAGoqC,EAAI,EAAGpqC,EAAIkqC,EAAYlqC,GAAK,EAAGoqC,GAAK,EAAG,CACnD,GAAIllC,GAAIlF,EAAIglC,CACZmF,GAAQjlC,EAAI,GAAKklC,EAAI,EACrBD,EAAQjlC,EAAI,GAAKklC,EAAI,EACrBD,EAAQjlC,EAAI,GAAKklC,EAAI,EACrBD,EAAQjlC,EAAI,GAAKklC,EAAI/pC,EACrB8pC,EAAQjlC,EAAI,GAAKklC,EAAI9/B,EACrB6/B,EAAQjlC,EAAI,GAAKklC,EAAIlqC,EAEzB,MAAOiqC,MAERE,WAAW,GAAGzN,MAAQ,GAAG0N,YAAY,KAAKC,IAAI,SAASpqC,EAAQU,EAAOJ,GAczE,QAAS+pC,GAAclX,GAErB,IAAKvvB,MAAMovB,SAAW,IACpBsX,EAAK/pC,KAAKmY,UACL,CACL,KAAM6xB,GAAM,GAAID,EAChBppC,QAAO4xB,OAAOpa,KAAM6xB,GAGH,gBAARpX,KACTA,GAAQxQ,KAAMwQ,IAKhBza,KAAKysB,KAAOjkC,OAAO4xB,UAAWK,GAG1BA,GAAKza,KAAKvS,OAAOgtB,GA/BvB,GAAIqX,GAAexqC,EAAQ,sBACvByqC,EAAWzqC,EAAQ,YACnB0qC,EAAgB1qC,EAAQ,gBAExB2qC,EAAW3qC,EAAQ,kBACnB4qC,EAAQ5qC,EAAQ,eAEhBsqC,EAAO1mC,MAAM0kB,cAEjB5nB,GAAOJ,QAAU,SAA6B6yB,GAC5C,MAAO,IAAIkX,GAAalX,IAwB1BsX,EAASJ,EAAcC,GAEvBD,EAAalpC,UAAUgF,OAAS,SAAUgtB,GAQxC,GAPmB,gBAARA,KACTA,GAAQxQ,KAAMwQ,IAIhBA,EAAMjyB,OAAO4xB,UAAWpa,KAAKysB,KAAMhS,IAE9BA,EAAIa,KACP,KAAM,IAAIyJ,WAAU,qCAGtB/kB,MAAKtT,OAASolC,EAAarX,EAG3B,IAAIgB,IAAsB,IAAdhB,EAAIgB,MAGZH,EAAOb,EAAIa,KAGX6W,EAAW7W,EAAK4R,OAAOkF,OACvBC,EAAY/W,EAAK4R,OAAOoF,OAGxB/H,EAASvqB,KAAKtT,OAAO69B,OAAO3vB,OAAO,SAAUuzB,GAC/C,GAAIoE,GAASpE,EAAMG,IACnB,OAAOiE,GAAOjoC,MAAQioC,EAAO7nC,OAAS,GAIxCsV,MAAKwyB,cAAgBjI,CAGrB,IAAIkI,GAAYR,EAASQ,UAAUlI,GAC/BmI,EAAMT,EAASS,IAAInI,EAAQ4H,EAAUE,EAAW5W,GAChD6V,EAAUU,MACZZ,WAAW,EACXtW,KAAM,SACN+K,MAAO0E,EAAOziC,QAShB,IALAkY,KAAK2yB,SAASrB,GACdtxB,KAAKhL,aAAa,WAAY,GAAI9J,OAAM+J,gBAAgBw9B,EAAW,IACnEzyB,KAAKhL,aAAa,KAAM,GAAI9J,OAAM+J,gBAAgBy9B,EAAK,KAGlDjY,EAAImY,WAAa,QAAU5yB,MAAK+iB,WAEnC/iB,KAAK6yB,gBAAgB,YAChB,IAAIpY,EAAImY,UAAW,CAExB,GAAI/B,GAAQoB,EAASpB,MAAMtG,EAC3BvqB,MAAKhL,aAAa,OAAQ,GAAI9J,OAAM+J,gBAAgB47B,EAAO,MAI/Dc,EAAalpC,UAAU8rB,sBAAwB,WACjB,OAAxBvU,KAAK8yB,iBACP9yB,KAAK8yB,eAAiB,GAAI5nC,OAAM6nC,OAGlC,IAAIN,GAAYzyB,KAAK+iB,WAAW75B,SAAS2L,MACrCmuB,EAAWhjB,KAAK+iB,WAAW75B,SAAS85B,QACxC,KAAKyP,IAAczP,GAAYyP,EAAU3qC,OAAS,EAGhD,MAFAkY,MAAK8yB,eAAeE,OAAS,MAC7BhzB,MAAK8yB,eAAeG,OAAO5iC,IAAI,EAAG,EAAG,EAGvC6hC,GAAMgB,cAAcT,EAAWzyB,KAAK8yB,gBAChCrnB,MAAMzL,KAAK8yB,eAAeE,SAC5Bx5B,QAAQmK,MAAM,iIAMlBguB,EAAalpC,UAAU+rB,mBAAqB,WACjB,OAArBxU,KAAK4Y,cACP5Y,KAAK4Y,YAAc,GAAI1tB,OAAMwZ,KAG/B,IAAIyuB,GAAOnzB,KAAK4Y,YACZ6Z,EAAYzyB,KAAK+iB,WAAW75B,SAAS2L,MACrCmuB,EAAWhjB,KAAK+iB,WAAW75B,SAAS85B,QACxC,KAAKyP,IAAczP,GAAYyP,EAAU3qC,OAAS,EAEhD,WADAqrC,GAAKC,WAGPlB,GAAMmB,WAAWZ,EAAWU,MAG3BG,cAAc,GAAGC,iBAAiB,GAAGxB,SAAW,GAAGyB,qBAAqB,GAAGC,eAAe,KAAKC,IAAI,SAASpsC,EAAQU,EAAOJ,GAI9H,QAAS+rC,GAAQlB,GACf,GAAI5M,GAAQ4M,EAAU3qC,OAASk7B,CAC/B9iB,GAAIrO,IAAI,GAAK4gC,EAAU,GACvBvyB,EAAIrO,IAAI,GAAK4gC,EAAU,GACvBvyB,EAAItO,IAAI,GAAK6gC,EAAU,GACvBvyB,EAAItO,IAAI,GAAK6gC,EAAU,EAEvB,KAAK,GAAItrC,GAAI,EAAGA,EAAI0+B,EAAO1+B,IAAK,CAC9B,GAAIkF,GAAIomC,EAAUtrC,EAAI67B,EAAW,GAC7Br2B,EAAI8lC,EAAUtrC,EAAI67B,EAAW,EACjC9iB,GAAIrO,IAAI,GAAKjG,KAAKiG,IAAIxF,EAAG6T,EAAIrO,IAAI,IACjCqO,EAAIrO,IAAI,GAAKjG,KAAKiG,IAAIlF,EAAGuT,EAAIrO,IAAI,IACjCqO,EAAItO,IAAI,GAAKhG,KAAKgG,IAAIvF,EAAG6T,EAAItO,IAAI,IACjCsO,EAAItO,IAAI,GAAKhG,KAAKgG,IAAIjF,EAAGuT,EAAItO,IAAI,KAhBrC,GAAIoxB,GAAW,EACX9iB,GAAQrO,KAAM,EAAG,GAAID,KAAM,EAAG,GAmBlC5J,GAAOJ,QAAQyrC,WAAa,SAAUZ,EAAW7B,GAC/C+C,EAAOlB,GACP7B,EAAO/+B,IAAIxB,IAAI6P,EAAIrO,IAAI,GAAIqO,EAAIrO,IAAI,GAAI,GACvC++B,EAAOh/B,IAAIvB,IAAI6P,EAAItO,IAAI,GAAIsO,EAAItO,IAAI,GAAI,IAGzC5J,EAAOJ,QAAQsrC,cAAgB,SAAUT,EAAW7B,GAClD+C,EAAOlB,EACP,IAAImB,GAAO1zB,EAAIrO,IAAI,GACfgiC,EAAO3zB,EAAIrO,IAAI,GACfiiC,EAAO5zB,EAAItO,IAAI,GACfmiC,EAAO7zB,EAAItO,IAAI,GACftH,EAAQwpC,EAAOF,EACflpC,EAASqpC,EAAOF,EAChB/rC,EAAS8D,KAAKooC,KAAK1pC,EAAQA,EAAQI,EAASA,EAChDkmC,GAAOqC,OAAO5iC,IAAIujC,EAAOtpC,EAAQ,EAAGupC,EAAOnpC,EAAS,EAAG,GACvDkmC,EAAOoC,OAASlrC,EAAS,QAGrBmsC,IAAI,SAAS3sC,EAAQU,EAAOJ,GAClCI,EAAOJ,QAAQipC,MAAQ,SAAgBtG,GACrC,GAAIsG,GAAQ,GAAI/7B,cAA6B,EAAhBy1B,EAAOziC,OAAa,GAC7CX,EAAI,CAQR,OAPAojC,GAAOlyB,QAAQ,SAAU81B,GACvB,GAAIhhB,GAAKghB,EAAMG,KAAK4F,MAAQ,CAC5BrD,GAAM1pC,KAAOgmB,EACb0jB,EAAM1pC,KAAOgmB,EACb0jB,EAAM1pC,KAAOgmB,EACb0jB,EAAM1pC,KAAOgmB,IAER0jB,GAGT7oC,EAAOJ,QAAQ8qC,IAAM,SAAcnI,EAAQ4H,EAAUE,EAAW5W,GAC9D,GAAIiX,GAAM,GAAI59B,cAA6B,EAAhBy1B,EAAOziC,OAAa,GAC3CX,EAAI,CA8BR,OA7BAojC,GAAOlyB,QAAQ,SAAU81B,GACvB,GAAIoE,GAASpE,EAAMG,KACf6F,EAAM5B,EAAOlmC,EAAIkmC,EAAOjoC,MACxB8pC,EAAM7B,EAAO5lC,EAAI4lC,EAAO7nC,OAGxB2pC,EAAK9B,EAAOlmC,EAAI8lC,EAChBmC,EAAK/B,EAAO5lC,EAAI0lC,EAChBkC,EAAKJ,EAAKhC,EACVqC,EAAKJ,EAAK/B,CAEV5W,KACF6Y,GAAMjC,EAAYE,EAAO5lC,GAAK0lC,EAC9BmC,GAAMnC,EAAY+B,GAAM/B,GAI1BK,EAAIvrC,KAAOktC,EACX3B,EAAIvrC,KAAOmtC,EAEX5B,EAAIvrC,KAAOktC,EACX3B,EAAIvrC,KAAOqtC,EAEX9B,EAAIvrC,KAAOotC,EACX7B,EAAIvrC,KAAOqtC,EAEX9B,EAAIvrC,KAAOotC,EACX7B,EAAIvrC,KAAOmtC,IAEN5B,GAGT1qC,EAAOJ,QAAQ6qC,UAAY,SAAoBlI,GAC7C,GAAIkI,GAAY,GAAI39B,cAA6B,EAAhBy1B,EAAOziC,OAAa,GACjDX,EAAI,CAyBR,OAxBAojC,GAAOlyB,QAAQ,SAAU81B,GACvB,GAAIoE,GAASpE,EAAMG,KAGfjiC,EAAI8hC,EAAMjlC,SAAS,GAAKqpC,EAAO1D,QAC/BliC,EAAIwhC,EAAMjlC,SAAS,GAAKqpC,EAAOzD,QAG/BvkB,EAAIgoB,EAAOjoC,MACX+G,EAAIkhC,EAAO7nC,MAGf+nC,GAAUtrC,KAAOkF,EACjBomC,EAAUtrC,KAAOwF,EAEjB8lC,EAAUtrC,KAAOkF,EACjBomC,EAAUtrC,KAAOwF,EAAI0E,EAErBohC,EAAUtrC,KAAOkF,EAAIke,EACrBkoB,EAAUtrC,KAAOwF,EAAI0E,EAErBohC,EAAUtrC,KAAOkF,EAAIke,EACrBkoB,EAAUtrC,KAAOwF,IAEZ8lC,QAGHgC,IAAI,SAASntC,EAAQU,EAAOJ,GAgClC,QAAS8sC,GAAMzqB,EAAM0qB,EAAKxI,EAAO8B,GAC7B,GAAI9C,GAAMlhB,EAAK1Q,QAAQo7B,EAAKxI,EAC5B,QAAa,IAAThB,GAAcA,EAAM8C,EACbA,EACJ9C,EAGX,QAASyJ,GAAaD,GAClB,MAAOE,GAAWC,KAAKH,GAG3B,QAASI,GAAIvI,EAASviB,EAAMkiB,EAAO8B,EAAK3jC,GAGpC,IAAK,GAFDsiC,MACAoI,EAAY7I,EACPhlC,EAAEglC,EAAOhlC,EAAE8mC,GAAO9mC,EAAE8iB,EAAKniB,OAAQX,IAAK,CAC3C,GAAIwtC,GAAM1qB,EAAKgrB,OAAO9tC,GAClB+tC,EAAYC,EAAQL,KAAKH,EAI7B,IAAIO,GAAa/tC,IAAI8mC,EAAI,EAAG,CACxB,GAAImH,GAAUF,EAAY/tC,EAAIA,EAAE,EAC5BkuC,EAAW7I,EAAQviB,EAAM+qB,EAAWI,EAAS9qC,EACjDsiC,GAAMn1B,KAAK49B,GAEXL,EAAY7tC,EAAE,GAGtB,MAAOylC,GAGX,QAAS0I,GAAO9I,EAASviB,EAAMkiB,EAAO8B,EAAK3jC,EAAOirC,GAG9C,GAAI3I,MAEA4I,EAAYlrC,CAKhB,KAHa,WAATirC,IACAC,EAAYpkB,OAAOqkB,WAEhBtJ,EAAQ8B,GAAO9B,EAAQliB,EAAKniB,QAAQ,CAKvC,IAHA,GAAI4tC,GAAUhB,EAAMzqB,EAAM0rB,EAAaxJ,EAAO8B,GAGvC9B,EAAQuJ,GACNd,EAAc3qB,EAAKgrB,OAAO9I,KAE/BA,GAIJ,IAAIkJ,GAAW7I,EAAQviB,EAAMkiB,EAAOuJ,EAASF,GAEzCJ,EAAUjJ,GAASkJ,EAASpH,IAAIoH,EAASlJ,OACzCyJ,EAAYR,EAAUO,EAAY7tC,MAGtC,IAAIstC,EAAUM,EAAS,CAEnB,KAAON,EAAUjJ,IACTyI,EAAa3qB,EAAKgrB,OAAOG,KAE7BA,GAEJ,IAAIA,IAAYjJ,EACRyJ,EAAYzJ,EAAQwJ,EAAY7tC,QAAQ8tC,IAC5CR,EAAUQ,MAIV,KAFAA,EAAYR,EAELA,EAAUjJ,GACRyI,EAAa3qB,EAAKgrB,OAAOG,EAAUO,EAAY7tC,UAEpDstC,IAIZ,GAAIA,GAAWjJ,EAAO,CAClB,GAAI0J,GAASrJ,EAAQviB,EAAMkiB,EAAOiJ,EAASI,EAC3C5I,GAAMn1B,KAAKo+B,GAEf1J,EAAQyJ,EAEZ,MAAOhJ,GAIX,QAASkJ,GAAU7rB,EAAMkiB,EAAO8B,EAAK3jC,GAEjC,OACI6hC,MAAOA,EACP8B,IAAK9B,EAHIvgC,KAAKiG,IAAIvH,EAAO2jC,EAAI9B,IAzHrC,GAAIgJ,GAAU,KACVQ,EAAc,KACdd,EAAa,IAEjB7sC,GAAOJ,QAAU,SAASqiB,EAAMwQ,GAE5B,MADYzyB,GAAOJ,QAAQglC,MAAM3iB,EAAMwQ,GAC1B3gB,IAAI,SAASkzB,GACtB,MAAO/iB,GAAKmS,UAAU4Q,EAAKb,MAAOa,EAAKiB,OACxCv0B,KAAK,OAGZ1R,EAAOJ,QAAQglC,MAAQ,SAAkB3iB,EAAMwQ,GAI3C,GAHAA,EAAMA,MAGY,IAAdA,EAAInwB,OAA4B,WAAbmwB,EAAI8a,KACvB,QAEJtrB,GAAOA,GAAM,EACb,IAAI3f,GAA6B,gBAAdmwB,GAAInwB,MAAqBmwB,EAAInwB,MAAQ8mB,OAAOqkB,UAC3DtJ,EAAQvgC,KAAKgG,IAAI,EAAG6oB,EAAI0R,OAAO,GAC/B8B,EAAyB,gBAAZxT,GAAIwT,IAAmBxT,EAAIwT,IAAMhkB,EAAKniB,OACnDytC,EAAO9a,EAAI8a,KAEX/I,EAAU/R,EAAI+R,SAAWsJ,CAC7B,OAAa,QAATP,EACOR,EAAIvI,EAASviB,EAAMkiB,EAAO8B,EAAK3jC,GAE/BgrC,EAAO9I,EAASviB,EAAMkiB,EAAO8B,EAAK3jC,EAAOirC,SAmGlDQ,IAAI,SAASzuC,EAAQU,EAAOJ,GAKlC,QAASouC,KAGL,IAAK,GAFD3Q,MAEKl+B,EAAI,EAAGA,EAAI8C,UAAUnC,OAAQX,IAAK,CACvC,GAAI4oC,GAAS9lC,UAAU9C,EAEvB,KAAK,GAAIoB,KAAOwnC,GACRrnC,EAAeb,KAAKkoC,EAAQxnC,KAC5B88B,EAAO98B,GAAOwnC,EAAOxnC,IAKjC,MAAO88B,GAjBXr9B,EAAOJ,QAAUouC,CAEjB,IAAIttC,GAAiBF,OAAOC,UAAUC,yBAkB3B","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index 11dd8a4..a711116 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -5,6 +5,6 @@ return'info face="Roboto" size=192 bold=0 italic=0 charset="" unicode=1 stretchH }Object.defineProperty(c,"__esModule",{value:!0}),c.image=d,c.fnt=e},{}],8:[function(a,b,c){"use strict";function d(){function a(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=(0,g.getTopLevelFolder)(e);if(void 0!==c&&!c.grabDisabled&&b.mouse)if(b.pressed&&b.selected&&b.raycast.ray.intersectPlane(b.mousePlane,b.mouseIntersection)){if(b.interaction.press===i)return b.mouseIntersection.sub(b.mouseOffset),b.selected.parent.updateMatrixWorld(),b.selected.parent.worldToLocal(b.mouseIntersection),c.position.copy(b.mouseIntersection),void c.updateMatrix()}else if(b.intersections.length>0){var d=b.intersections[0].object;d===h&&(d.updateMatrixWorld(),k.setFromMatrixPosition(d.matrixWorld),b.mousePlane.setFromNormalAndCoplanarPoint(b.mouseCamera.getWorldDirection(b.mousePlane.normal),k))}}function b(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!0!==d.beingMoved){if(c.mouse){if(c.intersections.length>0&&c.raycast.ray.intersectPlane(c.mousePlane,c.mouseIntersection)){var f=c.intersections[0].object;if(f!==h)return;if(c.selected=d,d.grabDisabled)return;c.selected.updateMatrixWorld(),k.setFromMatrixPosition(c.selected.matrixWorld),c.mouseOffset.copy(c.mouseIntersection).sub(k)}}else{if(d.grabDisabled)return;j.getInverse(b.matrixWorld),d.matrix.premultiply(j),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent=d.parent,b.add(d)}a.locked=!0,d.beingMoved=!0,c.events.emit("grabbed",c)}}function c(a){var b=a.inputObject,c=a.input,d=(0,g.getTopLevelFolder)(e);if(void 0!==d&&!1!==d.beingMoved){if(c.mouse)c.selected=void 0;else{if(void 0===d.oldParent)return;d.matrix.premultiply(b.matrixWorld),d.matrix.decompose(d.position,d.quaternion,d.scale),d.oldParent.add(d),d.oldParent=void 0}d.beingMoved=!1,c.events.emit("grabReleased",d)}}var d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=d.group,h=d.panel,i=(0,f.default)(h);i.events.on("onPressed",b),i.events.on("tick",a),i.events.on("onReleased",c);var j=new THREE.Matrix4,k=new THREE.Vector3;return i}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils")},{"./interaction":13,"./utils":23}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});c.grabBar=function(){var a=new Image;a.src="data:image/png;base64,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/GMzLdsAADskaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzMiA3OS4xNTkyODQsIDIwMTYvMDQvMTktMTM6MTM6NDAgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE2LTA5LTI4VDE2OjI1OjMyLTA3OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDktMjhUMTY6Mzc6MjMtMDc6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTA5LTI4VDE2OjM3OjIzLTA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlNzdmYmZjLTg1ZDQtMTFlNi1hYzhmLWFjNzU0ZWQ1ODM3ZjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmM1ZmM0ZGYyLTkxY2MtZTI0MS04Y2VjLTMzODIyY2Q1ZWFlOTwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjNWZjNGRmMi05MWNjLWUyNDEtOGNlYy0zMzgyMmNkNWVhZTk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDktMjhUMTY6MjU6MzItMDc6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1LjUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFhYTFjMTQzLTUwZmUtOTQ0My1hNThmLWEyM2VkNTM3MDdmMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOS0yOFQxNjozNzoyMy0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+OhF7RwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAlElEQVR42uzZsQ3AIAxEUTuTZJRskt5LRFmCdTLapUKCBijo/F0hn2SkJxIKXJJlrsOSFwAAAABA6vKI6O7BUorXdZu1/VEWEZeZfbN5m/ZamjfK+AQAAAAAAAAAAAAAAAAAAAAAACBfuaSna7i/dd1mbX+USTrN7J7N27TX0rxRxgngZYifIAAAAJC4fgAAAP//AwAuMVPw20hxCwAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt1",b.image=a,b.needsUpdate=!0;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.5,function(){var b=new THREE.PlaneGeometry(a.width/1e3,a.height/1e3,1,1);return new THREE.Mesh(b,c)}}(),c.downArrow=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjE4OjI1LTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMToxODoyNS0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDozMDQyYjI0ZS1iMzc2LWI0NGItOGI4Yy1lZTFjY2IzYWU1MDU8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6MzA0MmIyNGUtYjM3Ni1iNDRiLThiOGMtZWUxY2NiM2FlNTA1PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjMwNDJiMjRlLWIzNzYtYjQ0Yi04YjhjLWVlMWNjYjNhZTUwNTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5Uilz0AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJdSURBVHja7N3LccJAEIThRuW7ncUeTQhkQAiIDMgIhUIIcFQWJgJ88FKlovwArN2d6Z45cZGA/T9viYftxeVyQYzudLEEASAmAMQEgBjJeWl1xymlNwAHAMdxHHvFxU8pDQCWAFbjOH7I7ACT+O8ANnkhFONv8hoc8prwA7iJfx0pBJP412mGoDMQXwrBN/GbIuiMxJdA8Ev8Zgg6Q/GpEdwRvwmCzlh8SgQPxK+OoMYOMDwYnwrBE/GnCAbXAPKTX//jFJuUUu84fv9k/OusS/8QdAbl387eI4L8mPcznKroTlhyB1jOeC5XCGaMX2ItqwFYATipISgQ/5TX0heA/N62FIJS8Ut+TlD0IlAJgcf4VV4GKiDwGr/W+wDUCDzHrwaAFYH3+FUBsCFgiF8dAAsClvhNAHhHwBS/GQCvCNjiNwXgDQFj/OYAvCBgjW8CgHUEzPHNALCKgD2+KQDWECjENwfACgKV+CYBTBD0AM61ERSIfwbQW4xvFkBGcMw7QTUEheKv8nNBADCMQDG+eQC1EKjGB4CFl78RlFJa4usXTF7njJRvz35eD/FdASiIAKrx3QEohACq8V1cA1S6JpCM7xKAQQRu47sFYAiB6/iuARhA4D6+ewANEVDEpwDQAAFNfBoAFRFQxacCUAEBXXw6AAURUManBFAAAW18WgAzIqCOTw1gBgT08ekBTBDsnjh0xx5fAkBGMADYPnDINh+DAKCHQCa+FIA7EUjFlwPwBwK5+JIAfkAgGR9w+JWwOef6zWDV+PIAYuLfxgWAWIIAEBMAYgJAjOR8DgD+6Ozgv4uy9gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=new THREE.PlaneGeometry(a.width/1e3*.3,a.height/1e3*.3,1,1);return b.translate(-.005,-.004,0),new THREE.Mesh(b,c)}}(),c.checkmark=function(){var a=new Image ;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAYAAADS1n9/AAAACXBIWXMAACxLAAAsSwGlPZapAAA4K2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTEwLTIwVDIxOjMzOjUzLTA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0xMC0yMFQyMTozMzo1My0wNzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2ODcxYTk5Yy0zNjE5LTlkNGEtODdkNi0wYWE5YTRiNWU4Mjc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6Njg3MWE5OWMtMzYxOS05ZDRhLTg3ZDYtMGFhOWE0YjVlODI3PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY4NzFhOTljLTM2MTktOWQ0YS04N2Q2LTBhYTlhNGI1ZTgyNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0xMC0xOFQxNzozMzowNi0wNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5z9RT3AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAATtSURBVHja7Jzbb5RFGMZ/2xbCvVhASExUiI144w0hQtHEGrHgISqgN6KgtNYWAb0w0Wo1XqrbPbSlokYSxfMhemX/Aa7wGAVq8XTp30DXi5mJm0a2u9v3/b6Z2XludrOHdw/PMzPP+74zX6FWqyGFgYEBElpGD/AecCtwB/Dbcm+Ym5sT+/Cu9P/nim6gCDwCXAt8DVyX5RdIAsgPBaAEjNQ9diPwFbA5CSB+TAFP/c/jW4HPgL4kgHgxCww1eP5m4GN7mwQQEbos+U808dqtwEf2NgkgErc/0yT5Dn12OdiSBBA++aUWyXfYAnwDXJ8EEG6qNwkMryDGZpsi3pAEEB6qV3D7raIP+NKmikkAgeAt4IhgvJvsTJAE4DkKwCngsELss0kA/q/5s8AhhdjTwEFpd5ogS35VaeTPAk8Di0kA/pJfEl7zHU7SuHKYlgAP1vyykNtfihkt8pMAZEkaVohbVYqbBCCIU8CTCnFLwJj2l08CWNma/7aS268Cx6QNXxKArHmeBh5XWk7GsiA/TwGMYfa/hUp+mfYaO824/eGsyM9LAC9gmiPvAzsDI7/Lrs1DSiN/KI8flCXGgVft/V7gDLArIAFMh+r2fRDAS8DEksc2Ah8C/R3s9svAaJ5TWlbkv3yF59Zjdr1s93ja13L7Fev2azELYLwB+Q5rMb3ubR4avpNKbn8aeAa4nLe6tQ3fRJOv7QW+8Ggm6LEjVKOxM4M5D3A57x+pKYAX6wxfs9gAfALs8IB8rcaOKxvXfFC5lgDGgVfafK8zhrty/E+0XHklL7efpQAmWpj2lxPBbTn8J7Po1fZH8QzSAnjNjn4JrMecjsmqWFQA3lVy+yXr9oldAHcKx7sa+DwDY9hj8/yDiqneYicI4FHgR+GYa5WzA83GzhRw1FfyNQTwC3CPvZXEOuBTzEUUJLEqg1TPW/K1TOCfwCBwUTjuNciWjbsxZViNVC+32r4vaeAfwF3AgnDcTVYEtwuNUA3yy5jdu3SyAAB+B3YrLAcbBOoE7yhN+5N2zScJwGAeeAD4TjhuL6aB1Kon6LbkP6Y08o/jSYXPFwEAnAceVhDBVS1mB66xo0H+FKaxs0hgyKodfAF4EPhJqU6w3EywyhqzQ0rkj4RIfpYCALgE7LEzgiRcxbC/wcivoFPedeQHi6y3hP1ljeG8Uoq4NDsoYIo8Wjt5giY/DwHUp4i/KmQHZ+pEUMDs5NFw+0UyOLQRqwDccnAv8L1w3HXAaZsivq5k+IrACSJBnqeD54EDwAfALYJxNwHfKpmysiV/MRYB5H0y6AKwH/hBOO5qYI2C4TsaE/k+CADM1bH3Il8xlETVGr4akcGXs4F/A3fbGcE3VAioth+qAMB0EXd7JoJJPNzGFasAwDSQBpHfVNKu2z9G5PDxePgC8BBwLueRfyLGNT8EAYDZTHIA+QZSs2v+8djcfmgCcHWC+5FvIC3n9kc7hXzfBeCM4R7ky8Yd5/ZDFQD810C6qPgZ0bv9kAVQnyJqFIvexGzmIAnAb1wC7hM2hkXgWToYoV0lzDWQJFLE6Bo7nSAAlyLuY2UNpAoZXootCUAeC5gG0s9tkj9KQtACANNAGqS1PYalRH48AnApYrPby4oEdmgjCaD5FHEvjbeXvYEp7yZEKADnCfZbEfwDPI85L+DIf44OaOy0g38HAM/e7guIRx94AAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt3",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.dock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEESURBVGiB7dhBDoMwDERR7jTiJCPuf5WumphVxXykVJGzIpJ5cgskdo4LjqOBrQA9HA000MD+wPVjvAWcFBjzEBgJpMCcZ8BMIATKPAJKAhlQ5wnwTcApMC5DYCSQAver58BMIATKDRFQEsiAGk8AU0AQMAUEAVNAEDAFBAFTQBAwBQQBU0AQMAUEAVNAEDAFBAFTQBDwcgD/BP4n4sfIXyT8KvOPCX/OfEHBSxpfVPGyzjcWvLXxzRVv77zAwCUOL7JwmccLTVzq8mI7L/fPkkIE4JaHN1247eONJ259efN9i1lzAFGDFh3ClKhVB1EzbNlh3Ij7wxPNBhpoYDWQjga2AD5S/CyIvbmq7gAAAABJRU5ErkJggg==";var b=new THREE.Texture;b.name="tttt4",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}(),c.undock=function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAABG2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+Gkqr6gAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/ZogMDbGwsJg02BgxamKjjISaNI1Rfm1mnvmh5o3Xe0+abJWtosTGrwV/AVtlrRSRkoWVNbFBz3memknm3M49n/u995zuPRdc8ZyiGpU9oOZNPTYa9k3PzPqqn6ilCg+NdCYUQxuKRiOUtfdbKux4HbBrlT/3r3kWUoYCFTXCg4qmm8JjwpEVU7N5S7hZySYWhE+Eu3S5oPCNrScdfrY54/CnzXo8NgyuBmFfpoSTJaxkdVVYXo5fzS0rv/exX1KXyk9NSmwTb8UgxihhfIwzwjAhehmQOUSAIN2yokx+z0/+BEuSq8isUUBnkQxZTLpEXZbqKYlp0VMychTs/v/tq5HuCzrV68JQ9WhZr+1QvQlfG5b1cWBZX4fgfoDzfDF/aR/630TfKGr+PfCuwelFUUtuw9k6tNxrCT3xI7nFXek0vBxD/Qw0XUHtnNOz332O7iC+Kl91CTu70CHnvfPfIyhnx9hAUU0AAAASUExURfz8/FVVVV1dXf///39/fyZFyb+hjMcAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAEPSURBVGiB7dgxCsQwDATA/EnoJUL//8pVsWWlOLwLUTByFfbEsNc4di4n19XAUYBsrgYaaOB8wP8sGjAWcBowFnAaMBZwGjAWcBjQUAECJAxjQKiAAfJ82gRmBRCYFVBgVECBx+/bgKZsG8gD+0CqsA+kCQBYKwDAOoIASwUEWGYgIFaAgDiEAaECBoQpEJgVQGCOocCogALwjvSoAAP3IA4oCwgNKAsIDWg5wP4FZQEnAWUBJwFlgTsr21BGVrWpzqzoxRKympdrzEoOGEtWcchas4KDZsreP2zn7PULx3gEgVGg6to3CxRdfUOBout/KFD6CcRYQEjAWEBIwFggz33wi2YDDTRQDaCrgSOAH8H8KqggYpAUAAAAAElFTkSuQmCC";var b=new THREE.Texture;b.name="tttt5",b.image=a,b.needsUpdate=!0,b.minFilter=THREE.LinearMipMapLinearFilter,b.magFilter=THREE.LinearFilter;var c=new THREE.MeshBasicMaterial({side:THREE.DoubleSide,transparent:!0,map:b});return c.alphaTest=.2,function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.4,d=new THREE.PlaneGeometry(a.width/1e3*b,a.height/1e3*b,1,1);return d.translate(.025*b/.4,0,0),new THREE.Mesh(d,c)}}()},{}],10:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),U&&U(a))}function b(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),i&&i[m](a),p&&p(a),O.position.z=.1*J,a.locked=!0)}function c(a){var b=O.worldToLocal(a);return b.x/=H,b.y/=I,b.y+=.5,b.x=Math.max(Math.min(b.x,1),0),b.y=Math.max(Math.min(b.y,1),0),b}function d(a){(0,r.isControllerVisible)(K)&&(a.localPoint=c(a.point),t&&t(a))}function e(){O.position.z=.5*J}function f(){P.color&&(T.hovering()?E&&P.color.setHex(16777215):E&&P.color.setHex(13421772))}var g=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},h=g.textCreator,i=g.object,k=g.propertyName,m=void 0===k?"undefined":k,o=g.func,p=void 0===o?void 0:o,s=g.pressing,t=void 0===s?void 0:s,u=g.image,v=void 0===u?"textures/spotlight.jpg":u,w=g.wide,x=void 0!==w&&w,y=g.width,z=void 0===y?n.PANEL_WIDTH:y,A=g.height,B=g.depth,C=void 0===B?n.PANEL_DEPTH:B,D=g.changeColorOnHover,E=void 0===D||D,F=g.buttonDepth,G=void 0===F?n.BUTTON_DEPTH:F;A||(A=n.PANEL_WIDTH*(x?.94:.25));var H=z*(x?.94:.25)-n.PANEL_MARGIN,I=A-n.PANEL_MARGIN,J=G,K=new THREE.Group;K.guiType="imagebutton",K.toString=function(){return"["+K.guiType+": "+m+"]"},K.spacing=A;var L=n.createPanel(z,A,C);K.add(L);var M=new THREE.PlaneGeometry(H,I,1,1);new THREE.SubdivisionModifier(1).modify(M),M.translate(.5*H,0,J);var N=new THREE.MeshBasicMaterial;N.visible=!1;var O=new THREE.Mesh(M.clone(),N);O.position.z=J,x?(O.position.x=.75*n.PANEL_LABEL_TEXT_MARGIN,O.position.y=.01):O.position.x=.5*z;var P;v.isMaterial?P=v:(P=new THREE.MeshBasicMaterial,P.transparent=!0,function(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}(v,P));var Q=new THREE.Mesh(M.clone(),P);O.add(Q);var R=h.create(m);R.position.x=n.PANEL_LABEL_TEXT_MARGIN,R.position.z=C,R.position.y=-.03,x&&(R.visible=!1);var S=n.createControllerIDBox(A,l.CONTROLLER_ID_BUTTON);S.position.z=C,L.add(R,O,S);var T=(0,j.default)(O);T.events.on("hovering",a),T.events.on("onPressed",b),T.events.on("pressing",d),T.events.on("onReleased",e),f();var U=void 0;K.onHover=function(a){return U=a,K},K.onPressing=function(a){return t=a,K},K.interaction=T,K.hitscan=[O,L];var V=q.create({group:K,panel:L});return K.updateControl=function(a){T.update(a),V.update(a),f()},K.name=function(a){return R.updateLabel(a),K},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("../thirdparty/SubdivisionModifier"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p),r=a("./utils")},{"../thirdparty/SubdivisionModifier":24,"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(){function a(a,b){if("string"==typeof a)(new THREE.TextureLoader).load(a,function(a){a.wrapS=a.wrapT=THREE.ClampToEdgeWrapping,b.map=a,b.needsUpdate=!0});else if(a.isTexture)b.map=a;else{if(!a.isWebGLRenderTarget)throw"not sure how to interpret image "+a;b.map=a.texture}b.needsUpdate=!0}function b(){E&&y.remove(E),E=l.createPanel(m,A,r),y.add(E);var a=l.createControllerIDBox(A,j.CONTROLLER_ID_BUTTON);a.position.z=r,E.add(a),F=o.create({group:y,panel:E}),G.forEach(function(a){return y.remove(a)}),G=[],y.guiChildren=G}function c(){b();var c=.99*v,d=.99*w,e=new THREE.PlaneGeometry(c,d,1,1);e.translate(c/2,-d/2,x);i.forEach(function(b,c){function d(a){if(!1!==j.visible){a.locked=!0;try{b.func()}catch(a){return void(b.error=a||"undefined exception")}C=b,j.position.z=.4*x}}function i(){j.position.z=x,b.release&&b.release()}if(b.image||b.text){var j=new THREE.Group;j.guiType="imageButtonGridElement",y.add(j),G.push(j);var k=c%t,m=Math.floor(c/t);j.position.x=2*l.PANEL_MARGIN+v*k,j.position.y=A/2-w*m,j.position.z=x;var n=new THREE.MeshBasicMaterial;n.visible=!1;var o=new THREE.Mesh(e.clone(),n),q=new THREE.MeshBasicMaterial;if(q.transparent=!0,b.image&&a(b.image,q),b.text){var r=g.create(b.text),s=2*l.GRID_BUTTON_MARGIN,u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth();z>v-s&&(r.constrainBounds(v-s,w-s),u=l.TEXT_SCALE*r.layout.height,z=r.computeWidth()),j.add(r),j.text=r,r.position.x=b.textX||.5*(v-z),r.position.y=b.textY||-.5*w-u,r.position.z=1.2*x}var F=new THREE.Mesh(e.clone(),q);if(o.add(F),b.tip){var H=(0,f.createToolTip)(g,b.tip,v,w,x);j.tipText=H}j.add(o),E.add(j);var I=(0,h.default)(o);I.events.on("onPressed",d),I.events.on("onReleased",i),b.hoverCol=b.text?2184:16777215,b.noHoverCol=b.text?273:13421772,j.updateView=function(){B&&C===b?q.color.setHex(D):q.color.setHex(I.hovering()?b.hoverCol:b.noHoverCol),j.tipText&&(0,p.setVisibility)(j,j.tipText,I.hovering()),b.error&&q.color.setHex(11154227)},j.updateView(),j.interaction=I,j.hitscan=o}}),y.hitscan=G.map(function(a){return a.hitscan}),y.hitscan.push(E)}function d(){G.forEach(function(a){return a.updateView()})}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},g=e.textCreator,i=e.objects,k=e.width,m=void 0===k?l.PANEL_WIDTH:k,n=e.rowHeight,q=e.depth,r=void 0===q?l.PANEL_DEPTH:q,s=e.columns,t=void 0===s?4:s,u=3*l.PANEL_MARGIN,v=1/t*(m-u),w=n>0?n:v,x=l.BUTTON_DEPTH,y=new THREE.Group;y.guiType="imagebuttongrid",y.toString=function(){return"["+y.guiType+": "+i+"]"};var z=Math.ceil(i.length/t),A=l.PANEL_MARGIN+w*z;y.spacing=A,y.setRowHeight=function(a){return n=w=a,A=l.PANEL_MARGIN+w*z,y.spacing=A,c(),y};var B=!1,C=null,D=void 0;y.highlightLastPressed=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3364334;return B=!1!==a,D=a,y};var E=void 0,F=void 0,G=[];return c(),y.updateControl=function(a){G.forEach(function(b){b.interaction.update(a)}),F.update(a),d()},y.name=function(a){return descriptorLabel.updateLabel(a),y},y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./textlabel"),g=a("./interaction"),h=function(a){return a&&a.__esModule?a:{default:a}}(g),i=a("./colors"),j=d(i),k=a("./layout"),l=d(k),m=a("./sharedmaterials"),n=(d(m), -a("./grab")),o=d(n),p=a("./utils")},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22,"./utils":23}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});return 0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1}),la.intersections}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(b){if(ga){var c=ga.domElement.getBoundingClientRect();a.x=(b.clientX-c.left)/c.width*2-1,a.y=-(b.clientY-c.top)/c.height*2+1}else a.x=b.clientX/window.innerWidth*2-1,a.y=-b.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length,b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign"),e="\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n";(+THREE.REVISION>151||"three157"===searchValues.threever)&&(e="\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n",console.warn("colorspace_fragment used")),b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,f=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:f||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:e},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.userData.labelString!==a&&(j.geometry.update(a),j.userData.labelString=a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:!0}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){return"["+i.guiType+": "+b+"]"};var k=new THREE.Group -;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b0&&h.hapticActuators[0].pulse(a,b)}function f(){n(function(a,b,c){return e(1-c,.5)},10,20)}function g(){n(function(a,b,c){return e(4,1*(1-c))},100,4)}b.addEventListener("triggerdown",function(){return c(!0)}),b.addEventListener("triggerup",function(){return c(!1)}),b.addEventListener("gripsdown",function(){return d(!0)}),b.addEventListener("gripsup",function(){return d(!1)});var h=b.getGamepad();a.events.on("onControllerHeld",function(a){e(.3,.3)}),a.events.on("grabbed",function(){f()}),a.events.on("grabReleased",function(){g()}),a.events.on("pinned",function(){f()}),a.events.on("pinReleased",function(){g()})}function n(a,b,c){var d=0,e=setInterval(function(){a(d,c,d/c),++d>=c&&clearInterval(e)},b);return e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},p=a("events"),q=d(p),r=a("./slider"),s=d(r),t=a("./checkbox"),u=d(t),v=a("./button"),w=d(v),x=a("./folder"),y=d(x),z=a("./dropdown"),A=d(z),B=a("./imagebutton"),C=d(B),D=a("./imagebuttongrid"),E=d(D),F=a("./keyboard"),G=d(F),H=a("./textbox"),I=d(H),J=a("./colorpicker"),K=d(J),L=a("./sdftext"),M=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}(L),N=a("./utils"),O=a("./interaction"),P=function(){function a(){return ea.filter(N.isControllerVisible)}function b(){return a().map(function(a){return a.hitscan.filter(function(a){return a.visible})}).reduce(function(a,b){return a.concat(b)},[])}function c(a,b){return fa=!0,ga=b,la.mouseCamera=a,a.isOrthographicCamera?ha||(ha=function(a){return a.fixFolderPosition()},la.events.on("grabReleased",ha)):ha&&(la.events.removeListener("grabReleased",ha),ha=void 0),la.laser}function d(){fa=!1,ha&&(la.events.removeListener("grabReleased",ha),ha=void 0)}function n(){var a=new THREE.BufferGeometry;return a.setAttribute("position",new THREE.BufferAttribute(new Float32Array([0,0,0,0,0,0]))),new THREE.Line(a,ja)}function o(){return new THREE.Mesh(new THREE.SphereGeometry(.006,4,4),ka)}function p(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new THREE.Group,b={raycast:new THREE.Raycaster(new THREE.Vector3,new THREE.Vector3),laser:n(),cursor:o(),object:a,pressed:!1,gripped:!1,events:new q.default,interaction:{grip:void 0,press:void 0,hover:void 0}};return b.laser.add(b.cursor),b}function r(a){var b=p(a);return b.laser.pressed=function(a){var c=b.intersections;a&&c&&c.length>0?(b.pressed=!0,b.clicked=!0):b.pressed=!1},b.laser.gripped=function(a){b.gripped=a},b.laser.cursor=b.cursor,THREE.ViveController&&a instanceof THREE.ViveController&&m(b,a,b.laser.pressed,b.laser.gripped),da.push(b),b.laser}function t(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,e=(0,s.default)({textCreator:ca,propertyName:b,object:a,min:c,max:d,initialValue:a[b]});return ea.push(e),e}function v(a,b){var c=(0,u.default)({textCreator:ca,propertyName:b,object:a,initialValue:a[b]});return ea.push(c),c}function x(a,b){var c=(0,w.default)({textCreator:ca,propertyName:b,object:a});return ea.push(c),c}function z(a,b,c,d){var e={f:a},f=(0,C.default)({textCreator:ca,object:e,propertyName:"f",image:b,wide:c,height:d});return ea.push(f),f}function B(a,b,c,d){var e=(0,C.default)({textCreator:ca,pressing:a,propertyName:"",image:b,wide:c,height:d});return ea.push(e),e}function D(a){for(var b=Number.isInteger(a)?a:4,c=arguments.length,d=Array(c>1?c-1:0),e=1;e0&&void 0!==arguments[0]?arguments[0]:0;return t({number:a},"number",a,arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)}function R(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],b={option:""};return void 0!==a&&(b.option=j(a)?a[0]:a[Object.keys(a)[0]]),L(b,"option",a)}function S(){return v({checked:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},"checked")}function T(a){return x({button:void 0!==a?a:function(){}},"button")}function U(){for(var a=arguments.length,b=Array(a),c=0;c-1))return console.log("Internal error in remove, not anticipated by removeTest. Internal dat.GUIVR state may be inconsistent."),!1;ea.splice(b,1)}),!0)}function V(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},b=(a.box,a.object),c=a.raycast,e=a.laser,f=a.cursor,g=a.interaction,h=arguments[1];Z(g,d),b.updateMatrixWorld(),ma.set(0,0,0).setFromMatrixPosition(b.matrixWorld),oa.identity().extractRotation(b.matrixWorld),na.set(0,0,-1),b.laserRotateModifier&&na.applyQuaternion(b.laserRotateModifier),na.applyMatrix4(oa).normalize(),c.set(ma,na);var i=e.geometry.getAttribute("position").array;i[0]=ma.x,i[1]=ma.y,i[2]=ma.z;var j=c.intersectObjects(d,!1);_(j,e,f),da[h].intersections=j,b.userData&&(b.userData.guiIntersections=j)});var g=da.slice();fa&&g.push(la),e.forEach(function(a){return a.updateControl(g)});var h=g.filter(function(a){return a.hitNonModal});return 0!=h.length&&(h.forEach(function(a){return a.hitNonModal=!1}),f.forEach(function(a){return a.clearModalEditor()})),la.clicked=!1,da.forEach(function(a){return a.clicked=!1}),la.intersections}function Z(a,b){["press","grip","hover"].forEach(function(c){var d=a[c];d&&b.indexOf(d.hitVolume)<0&&(a[c]=void 0,d.update([]))})}function $(a,b){var c=a.geometry.getAttribute("position").array;c[3]=b.x,c[4]=b.y,c[5]=b.z,c.needsUpdate=!0,a.visible=!0,a.geometry.computeBoundingSphere(),a.geometry.computeBoundingBox()}function _(a,b,c){if(a.length>0){var d=a[0];$(b,d.point),c.position.copy(d.point),c.visible=!0,c.updateMatrixWorld()}else b.visible=!1,c.visible=!1}function aa(a,c,d){a.setFromCamera(c,d);var e=b();return a.intersectObjects(e,!1)}function ba(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=(b.box,b.object,b.raycast),d=b.laser,e=b.cursor,f=b.mouse,g=b.mouseCamera;Z(b.interaction,a);var h=[];return g&&(h=aa(c,f,g),_(h,d,e),e.visible=!0,d.visible=!0),h}var ca=M.creator(),da=[],ea=[],fa=!1,ga=void 0,ha=void 0,ia=!0,ja=new THREE.LineBasicMaterial({color:5614335,transparent:!0,blending:THREE.AdditiveBlending}),ka=new THREE.MeshBasicMaterial({color:4473924,transparent:!0,blending:THREE.AdditiveBlending}),la=function(){var a=new THREE.Vector2(-1,-1),b=p();return b.mouse=a,b.mouseIntersection=new THREE.Vector3,b.mouseOffset=new THREE.Vector3,b.mousePlane=new THREE.Plane,b.intersections=[],b.mouseCamera=void 0,window.addEventListener("mousemove",function(c){if(c.buttons||(b.pressed=!1),ga){var d=ga.domElement.getBoundingClientRect();a.x=(c.clientX-d.left)/d.width*2-1,a.y=-(c.clientY-d.top)/d.height*2+1}else a.x=c.clientX/window.innerWidth*2-1,a.y=-c.clientY/window.innerHeight*2+1},!1),window.addEventListener("mousedown",function(a){b.intersections.length,b.pressed=!0,b.clicked=!0},!0),window.addEventListener("mouseup",function(a){b.pressed=!1},!1),b}(),ma=new THREE.Vector3,na=new THREE.Vector3(0,0,-1),oa=new THREE.Matrix4;Y();var pa={create:X,addInputObject:r,enableMouse:c,disableMouse:d,textCreator:ca,globalEvents:O.globalEvents,clearAll:W,update:Y};return Object.defineProperty(pa,"autoUpdate",{get:function(){return ia},set:function(a){return ia=a}}),pa}();window&&(void 0===window.dat&&(window.dat={}),window.dat.GUIVR=P),b&&(b.exports={dat:P}),"function"==typeof define&&define.amd&&define([],P)},{"./button":1,"./checkbox":2,"./colorpicker":3,"./dropdown":5,"./folder":6,"./imagebutton":10,"./imagebuttongrid":11,"./interaction":13,"./keyboard":14,"./sdftext":18,"./slider":20,"./textbox":21,"./utils":23,events:28}],13:[function(a,b,c){"use strict";function d(a){function b(b){k=!1,l=!1,m=!1,b.forEach(function(b){o.indexOf(b)<0&&o.push(b);var e=c(b),f=e.hitObject,g=e.hitPoint,h=a===f;k=k||h,d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"pressed",buttonClickName:"clicked",interactionName:"press",downName:"onPressed",holdName:"pressing",upName:"onReleased",hoverName:"hovering"}),d({input:b,hover:h,hitObject:f,hitPoint:g,buttonName:"gripped",interactionName:"grip",downName:"onGripped",holdName:"gripping",upName:"onReleaseGrip"}),j.emit("tick",{input:b,hitObject:f,inputObject:b.object})})}function c(a){return a.intersections.length<=0?{hitPoint:n.setFromMatrixPosition(a.cursor.matrixWorld).clone(),hitObject:void 0}:{hitPoint:a.intersections[0].point,hitObject:a.intersections[0].object}}function d(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.input,c=a.hover,d=a.hitObject,f=a.hitPoint,g=a.buttonName,i=a.buttonClickName,k=a.interactionName,n=a.downName,o=a.holdName,q=a.upName,r=a.hoverName;if(!0===b[g]&&void 0===d)return void(b.hitNonModal=!0);if(r&&c&&!1===b[g]){var s={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(r,s)}if(c&&!0===b[i||g]&&void 0===b.interaction[k]){var t={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};d.userData.partOfModal||(b.hitNonModal=!0),e(d),h.emit(n,t),j.emit(n,t),t.locked&&(b.interaction[k]=p,b.interaction.hover=p),l=!0,m=!0}if(b[g]&&b.interaction[k]===p){var u={input:b,hitObject:d,point:f,inputObject:b.object,locked:!1};j.emit(o,u),l=!0,b.events.emit("onControllerHeld")}!1===b[g]&&b.interaction[k]===p&&(b.interaction[k]=void 0,b.interaction.hover=void 0,j.emit(q,{input:b,hitObject:d,point:f,inputObject:b.object}))}function e(a){(0,g.getTopLevelFolder)(a).promoteZOrder()}function i(){for(var a=!0,b=0;b0}var j=new f.default,k=!1,l=!1,m=!1,n=new THREE.Vector3,o=[],p={hovering:i,pressing:function(){return l},update:b,events:j,hitVolume:a};return p}Object.defineProperty(c,"__esModule",{value:!0}),c.globalEvents=void 0,c.default=d;var e=a("events"),f=function(a){return a&&a.__esModule?a:{default:a}}(e),g=a("./utils"),h=c.globalEvents=new f.default},{"./utils":23,events:28}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(){function a(){n=!n,l.visible=!n,m.visible=n}var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=b.keyListener,d=b.textCreator,e=new THREE.Group,f=new THREE.Group;e.add(f);var h=new g.default;h.on("keyDown",c);var j="1234567890-=qwertyuiop[]asdfghjkl;'#\\zxcvbnm,./ ".split(""),k=j.map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}}),l=(0,i.default)({textCreator:d,objects:k,columns:12});f.add(l),k='!"£$%^&*()_+QWERTYUIOP{}ASDFGHJKL:@~|ZXCVBNM<>? '.split("").map(function(a){return{func:function(){return h.emit("keyDown",a)},text:a}});var m=(0,i.default)({textCreator:d,objects:k,columns:12});m.visible=!1,f.add(m);var n=!1,o=(0,i.default)({textCreator:d,columns:1,rowHeight:.1,objects:[{func:function(){return h.emit("keyDown"," ")},text:"space"}]});f.add(o);var p=o.position.y=-.5*(l.spacing+o.spacing);k=[{text:"shift",func:a},{text:"backspace",func:function(){return h.emit("keyDown","\b")}},{text:"enter",func:function(){return h.emit("keyDown","\n")}}];var q=(0,i.default)({textCreator:d,objects:k,columns:3,rowHeight:.1});return f.add(q),q.position.y=p-.5*(o.spacing+q.spacing),e.spacing=l.spacing+o.spacing+q.spacing,f.position.y=q.spacing,Object.defineProperty(e,"hitscan",{get:function(){return[q.hitscan,o.hitscan,n?m.hitscan:l.hitscan].reduce(function(a,b){return a.concat(b)},[])}}),o.folder=m.folder=l.folder=q.folder=e,e.updateControl=function(a){q.updateControl(a),l.updateControl(a),o.updateControl(a),m.updateControl(a)},e}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("events"),g=d(f),h=a("./imagebuttongrid"),i=d(h),j=a("./imagebutton");d(j)},{"./imagebutton":10,"./imagebuttongrid":11,events:28}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(a instanceof THREE.Mesh){a.geometry.computeBoundingBox();var b=a.geometry.boundingBox.max.x-a.geometry.boundingBox.max.y;return a.geometry.translate(b,0,0),a}if(a instanceof THREE.BufferGeometry){a.computeBoundingBox();var c=a.boundingBox.max.x-a.boundingBox.max.y;return a.translate(c,0,0),a}}function f(a,b,c,d){var e=d?new THREE.MeshBasicMaterial({color:16777215}):k.PANEL,f=new THREE.Mesh(new THREE.BoxGeometry(a,b,c),e);return f.geometry.translate(.5*a,0,0),d?e.color.setHex(m.DEFAULT_BACK):m.colorizeGeometry(f.geometry,m.DEFAULT_BACK),f.userData.currentWidth=a,f.userData.currentHeight=b,f.userData.currentDepth=c,f}function g(a,b,c,d){a.geometry.scale(b/a.userData.currentWidth,c/a.userData.currentHeight,d/a.userData.currentDepth),a.userData.currentWidth=b,a.userData.currentHeight=c,a.userData.currentDepth=d}function h(a,b){var c=new THREE.Mesh(new THREE.BoxGeometry(n,a,o),k.PANEL);return c.geometry.translate(.5*n,0,0),m.colorizeGeometry(c.geometry,b),c}function i(){var a=.016,b=new THREE.Shape;b.moveTo(0,0),b.lineTo(-.0096,a),b.lineTo(.0096,a),b.lineTo(0,0);var c=new THREE.ShapeGeometry(b);return c.translate(0,-.008,0),new THREE.Mesh(c,k.PANEL)}Object.defineProperty(c,"__esModule",{value:!0}),c.GRID_BUTTON_MARGIN=c.TEXT_SCALE=c.CHECKBOX_SIZE=c.BORDER_THICKNESS=c.FOLDER_GRAB_HEIGHT=c.FOLDER_HEIGHT=c.SUBFOLDER_WIDTH=c.FOLDER_WIDTH=c.BUTTON_DEPTH=c.CONTROLLER_ID_DEPTH=c.CONTROLLER_ID_WIDTH=c.PANEL_VALUE_TEXT_MARGIN=c.PANEL_LABEL_TEXT_MARGIN=c.PANEL_MARGIN=c.PANEL_SPACING=c.PANEL_DEPTH=c.PANEL_HEIGHT=c.PANEL_WIDTH=void 0,c.alignLeft=e,c.createPanel=f,c.resizePanel=g,c.createControllerIDBox=h,c.createDownArrow=i;var j=a("./sharedmaterials"),k=d(j),l=a("./colors"),m=d(l),n=(c.PANEL_WIDTH=1,c.PANEL_HEIGHT=.08,c.PANEL_DEPTH=.01,c.PANEL_SPACING=0,c.PANEL_MARGIN=.015,c.PANEL_LABEL_TEXT_MARGIN=.06,c.PANEL_VALUE_TEXT_MARGIN=.02,c.CONTROLLER_ID_WIDTH=.02),o=c.CONTROLLER_ID_DEPTH=.001;c.BUTTON_DEPTH=.01,c.FOLDER_WIDTH=1.026,c.SUBFOLDER_WIDTH=1,c.FOLDER_HEIGHT=.09,c.FOLDER_GRAB_HEIGHT=.0512,c.BORDER_THICKNESS=.01,c.CHECKBOX_SIZE=.05,c.TEXT_SCALE=24e-5,c.GRID_BUTTON_MARGIN=.01},{"./colors":4,"./sharedmaterials":19}],16:[function(a,b,c){"use strict";function d(){function a(a){var b=a.inputObject,c=a.input,e=d.folder;void 0!==e&&!0!==e.beingMoved&&(h.copy(e.position),i.copy(e.rotation),e.position.set(0,0,0),e.rotation.set(0,0,0),e.rotation.x=.5*-Math.PI,e.oldParent=e.parent,j.add(e),b.add(j),a.locked=!0,e.beingMoved=!0,c.events.emit("pinned",c))}function b(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=(a.inputObject,a.input),c=d.folder;void 0!==c&&void 0!==c.oldParent&&!1!==c.beingMoved&&(c.oldParent.add(c),c.oldParent=void 0,c.position.copy(h),c.rotation.copy(i),c.beingMoved=!1,b.events.emit("pinReleased",b))}var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=c.group,e=c.panel,g=(0,f.default)(e);g.events.on("onGripped",a),g.events.on("onReleaseGrip",b);var h=new THREE.Vector3,i=new THREE.Euler,j=new THREE.Group;return j.scale.set(.3,.3,.3),j.position.set(-.015,.015,0),g}Object.defineProperty(c,"__esModule",{value:!0}),c.create=d;var e=a("./interaction"),f=function(a){return a&&a.__esModule?a:{default:a}}(e)},{"./interaction":13}],17:[function(a,b,c){"use strict";var d=a("object-assign"),e="\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n";(+THREE.REVISION>151||"three157"===searchValues.threever)&&(e="\n#define USE_MAP\n#define USE_UV\nuniform vec3 color;\nuniform float opacity;\n\n#include \n//#include \n#include \n#include \n#include \n#include \n#include \n\n/////\nfloat aastep(float value) {\n // We now assume WebGL2 and so the derivatives are available, \n // so afwidth depends on scale of gui\n float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;\n return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);\n}\n////\n\nvoid main() {\n\n\t#include \n\n ///\n vec4 diffuseColor = vec4( color, opacity );\n \n vec4 texColor = texture2D(map, vUv);\n float alpha = aastep(texColor.a);\n gl_FragColor = vec4(color, opacity * alpha);\n if (gl_FragColor.a < 0.0001) discard;\n ///\n\n\t#include \n //XXX: big chunk removed from original meshbasic_frag here.\n #include \n\t#include \n\t#include \n}\n",console.warn("colorspace_fragment used")),b.exports=function(a){a=a||{};var b="number"==typeof a.opacity?a.opacity:1,c=a.color,f=a.map;return a.extensions=a.extensions||{},a.extensions.derivatives=!0,a.name="SDF text material",delete a.map,delete a.color,delete a.precision,delete a.opacity,d({uniforms:{opacity:{type:"f",value:b},map:{type:"t",value:f||new THREE.Texture},color:{type:"c",value:new THREE.Color(c)}},vertexShader:"\n#define USE_MAP\n#define USE_UV\n#include \n#include \n//#include \n#include \n#include \n#include \n\nvoid main() { \n vUv = uv;\n\t#include \n\n\t#include \n\t#include \n\t#include \n\n\t#include \n\t#include \n\t#include \n}\n",fragmentShader:e},a)}},{"object-assign":32}],18:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a){var b=q.image(),c=new THREE.Texture(b);return c.name="sdfFontTexture",c.needsUpdate=!0,c.minFilter=THREE.LinearFilter,c.magFilter=THREE.LinearFilter,c.generateMipmaps=!1,new THREE.ShaderMaterial((0,i.default)({side:THREE.DoubleSide,transparent:!0,color:a,map:c,type:"SDF Text"}))}function g(){function a(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:16777215,e=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,g=arguments[4],h=arguments[5],i=(0,k.default)({text:a,align:"left",width:g,height:h,flipY:!0,font:b}),j=i.layout,l=d[c];void 0===l&&(l=d[c]=f(c));var m=new THREE.Mesh(i,l);m.scale.multiply(new THREE.Vector3(1,-1,1));var n=e*r;return m.scale.multiplyScalar(n),m.position.y=.5*j.height*n,m}function b(b){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=d.color,f=void 0===e?16777215:e,g=d.scale,h=void 0===g?1:g,i=new THREE.Group,j=a(b,c,f,h);return i.add(j),i.layout=j.geometry.layout,i.computeWidth=function(){return i.layout.width*h*o.TEXT_SCALE},i.computeHeight=function(){return i.layout.height*h*o.TEXT_SCALE},i.constrainBounds=function(d,e){i.remove(j);var g=o.TEXT_SCALE;j=a(b,c,f,h,d/g,e/g);var k=j.geometry.layout.height*g/e;k>1&&(b=b.substring(0,.95*b.length/k)+"...",j=a(b,c,f,h,d/g,e/g)),i.add(j),i.layout=j.geometry.layout},i.updateLabel=function(a){j.userData.labelString!==a&&(j.geometry.update(a),j.userData.labelString=a)},i}var c=(0,m.default)(q.fnt()),d={};return{create:b,getMaterial:function(){return material}}}Object.defineProperty(c,"__esModule",{value:!0}),c.createMaterial=f,c.creator=g;var h=a("./sdfshader_logdepth"),i=e(h),j=a("three-bmfont-text"),k=e(j),l=a("parse-bmfont-ascii"),m=e(l),n=a("./layout"),o=d(n),p=a("./font"),q=d(p),r=o.TEXT_SCALE},{"./font":7,"./layout":15,"./sdfshader_logdepth":17,"parse-bmfont-ascii":33,"three-bmfont-text":35}],19:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.TOOLTIP=c.FOLDER=c.LOCATOR=c.PANEL=void 0;var d=a("./colors");(function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);b.default=a})(d),c.PANEL=new THREE.MeshBasicMaterial({color:16777215,vertexColors:!0}),c.LOCATOR=new THREE.MeshBasicMaterial,c.FOLDER=new THREE.MeshBasicMaterial({color:0}),c.TOOLTIP=new THREE.MeshBasicMaterial({color:2117760,transparent:!1,opacity:.8})},{"./colors":4}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.textCreator,c=a.object,d=a.propertyName,e=void 0===d?"undefined":d,f=a.initialValue,h=void 0===f?0:f,q=a.min,r=void 0===q?0:q,t=a.max,v=void 0===t?1:t,x=a.step,z=void 0===x?.1:x,B=a.width,D=void 0===B?w.PANEL_WIDTH:B,E=a.initialHeight,F=void 0===E?w.PANEL_HEIGHT:E,G=a.depth,H=void 0===G?w.PANEL_DEPTH:G,I={alpha:1,value:h,step:z,useStep:!0,precision:1,listen:!1,min:r,max:v,onChangedCB:void 0,onFinishedChange:void 0,pressing:!1};I.step=k(I.value,I.min,I.max),I.precision=o(I.step),I.alpha=m(I.value,I.min,I.max);var J=new THREE.Group;J.guiType="slider",J.toString=function(){return"["+J.guiType+": "+e+"]"};var K=b.create(e);K.position.x=w.PANEL_LABEL_TEXT_MARGIN,K.position.z=H,K.position.y=-.03;var L=void 0;return J.setHeight=function(a){function d(a){I.useStep?S.updateLabel(p(I.value,I.precision).toString()):S.updateLabel(I.value.toString())}function f(){I.pressing?P.color.setHex(u.INTERACTION_COLOR):U.hovering()?P.color.setHex(u.HIGHLIGHT_COLOR):P.color.setHex(u.DEFAULT_COLOR)}function h(){Q.scale.x=Math.min(Math.max(m(I.value,I.min,I.max)*D,1e-6),D)}function k(a){c[e]=a}function q(a){I.alpha=i(a),I.value=l(I.alpha,I.min,I.max),I.useStep&&(I.value=n(I.value,I.step)),I.value=j(I.value,I.min,I.max)}function r(){I.value=t(),I.alpha=m(I.value,I.min,I.max),I.alpha=i(I.alpha)}function t(){return parseFloat(c[e])}function v(a){!1!==J.visible&&(I.pressing=!0,a.locked=!0)}function x(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.point;if(!1!==J.visible){I.pressing=!0,Q.updateMatrixWorld(),R.updateMatrixWorld();var c=(new THREE.Vector3).setFromMatrixPosition(Q.matrixWorld),e=(new THREE.Vector3).setFromMatrixPosition(R.matrixWorld),f=I.value;q(g(b,{a:c,b:e})),d(I.value),h(),k(I.value),f!==I.value&&I.onChangedCB&&I.onChangedCB(I.value)}}function z(){I.pressing=!1}L&&J.remove(L),J.spacing=a;var B=.5*D-w.PANEL_MARGIN,E=a-w.PANEL_MARGIN,F=H,G=new THREE.BoxGeometry(B,E,F);G.translate(.5*B,0,0);var M=new THREE.MeshBasicMaterial;M.visible=!1;var N=new THREE.Mesh(G.clone(),M);N.position.z=H,N.position.x=.5*D,N.name="hitscanVolume";var O=new THREE.Mesh(G.clone(),y.PANEL);u.colorizeGeometry(O.geometry,u.SLIDER_BG),O.position.z=.5*H,O.position.x=B+w.PANEL_MARGIN;var P=new THREE.MeshBasicMaterial({color:u.DEFAULT_COLOR}),Q=new THREE.Mesh(G.clone(),P);Q.position.z=.5*H,N.add(Q);var R=new THREE.Mesh(new THREE.BoxGeometry(.05,.05,.05,1,1,1),y.LOCATOR);R.position.x=B,N.add(R),R.visible=!1;var S=b.create(I.value.toString());S.position.x=w.PANEL_VALUE_TEXT_MARGIN+.5*D,S.position.z=2.5*H,S.position.y=-.0325;var T=w.createControllerIDBox(a,u.CONTROLLER_ID_SLIDER);T.position.z=H,L=w.createPanel(D,a,H),L.name="panel",L.add(K,N,O,S,T),J.add(L),d(I.value),h(),J.onChange=function(a){return I.onChangedCB=a,J},J.step=function(a){return I.step=a,I.precision=o(I.step),I.useStep=!0,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.listen=function(){return I.listen=!0,J};var U=(0,s.default)(N);U.events.on("onPressed",v),U.events.on("pressing",x),U.events.on("onReleased",z),J.interaction=U,J.hitscan=[N,L];var V=A.create({group:J,panel:L}),W=C.create({group:J,panel:L});return J.updateControl=function(a){U.update(a),V.update(a),W.update(a),I.listen&&(r(),d(I.value),h()),f()},J.name=function(a){return K.updateLabel(a),J},J.min=function(a){return I.min=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.max=function(a){return I.max=a,I.alpha=m(I.value,I.min,I.max),q(I.alpha),d(I.value),h(),J},J.folder&&J.folder.requestLayout(),J},J.setHeight(F),J}function g(a,b){D.copy(b.b).sub(b.a),E.copy(a).sub(b.a);var c=E.projectOnVector(D);F.copy(a).sub(b.a),G.copy(b.b).sub(b.a).normalize();var d=F.normalize().dot(G)>=0?1:-1,e=b.a.distanceTo(b.b)*d,f=c.length()/e;return f>1&&(f=1),f<0&&(f=0),f}function h(a,b,c,d,e){return d+(e-d)*(a-b)/(c-b)}function i(a){return a>1?1:a<0?0:a}function j(a,b,c){return ac?c:a}function k(a,b,c){return(c-b)/100}function l(a,b,c){return h(a,0,1,b,c)}function m(a,b,c){return h(a,b,c,0,1)}function n(a,b){return a%b!=0?Math.round(a/b)*b:a}function o(a){return a=a.toString(),a.indexOf(".")>-1?a.length-a.indexOf(".")-1:0}function p(a,b){if(Math.abs(a)<.01&&0!==a)return a.toExponential(3);var c=Math.pow(10,b);return Math.round(a*c)/c}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var q=a("./textlabel"),r=(e(q),a("./interaction")),s=e(r),t=a("./colors"),u=d(t),v=a("./layout"),w=d(v),x=a("./sharedmaterials"),y=d(x),z=a("./grab"),A=d(z),B=a("./palette"),C=d(B),D=new THREE.Vector3,E=new THREE.Vector3,F=new THREE.Vector3,G=new THREE.Vector3},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15,"./palette":16,"./sharedmaterials":19,"./textlabel":22}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{default:a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function f(){function a(a){g[i]=a,E.updateLabel(a)}function b(){if(I)return I.visible=!I.visible,void(I.visible&&w.folder.setModalEditor(I));I=dat.GUIVR.create("keyboard"),w.add(I),I.folder=w.folder,w.folder.setModalEditor(I),I.position.x=m,I.position.y=n.FOLDER_HEIGHT,I.hideHeader(),I.addKeyboard(function(c){var d=g[i];switch(c){case"\n":setTimeout(b,100);break;case"\b":d=d.substring(0,d.length-1),a(d);break;default:d+=c,a(d)}})}function c(a){b(),a.locked=!0}function d(){H.hovering()?C.color.setHex(l.TEXTBOX_HIGHLIGHT_BG):C.color.setHex(l.TEXTBOX_BG)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,i=void 0===h?"undefined":h,k=e.width,m=void 0===k?n.PANEL_WIDTH:k,o=e.height,p=void 0===o?n.PANEL_HEIGHT:o,r=e.depth,s=void 0===r?n.PANEL_DEPTH:r,t=.5*m-n.PANEL_MARGIN,u=p-n.PANEL_MARGIN,v=n.BUTTON_DEPTH,w=new THREE.Group;w.guiType="textbox",w.toString=function(){return"["+w.guiType+": "+i+"]"};var x=n.createPanel(m,p,s);w.add(x);var y=t/u,z=new THREE.BoxGeometry(t,u,v,Math.floor(4*y),4,4);new THREE.SubdivisionModifier(1).modify(z),z.translate(.5*t,0,0);var A=new THREE.MeshBasicMaterial;A.visible=!1;var B=new THREE.Mesh(z.clone(),A);B.position.z=.5*v,B.position.x=.5*m;var C=new THREE.MeshBasicMaterial({color:16777215}),D=new THREE.Mesh(z.clone(),C);B.add(D);var E=f.create(g[i],{color:0,scale:.866});E.position.x=.015,E.position.z=1.2*v,E.position.y=-.025,D.add(E);var F=f.create(i);F.position.x=n.PANEL_LABEL_TEXT_MARGIN,F.position.z=s,F.position.y=-.03;var G=n.createControllerIDBox(p,l.CONTROLLER_ID_BUTTON);G.position.z=s,x.add(F,B,G);var H=(0,j.default)(B);H.events.on("onPressed",c),d();var I;w.interaction=H,w.hitscan=[B,x];var J=q.create({group:w,panel:x});return w.updateControl=function(a){H.update(a),J.update(a),d()},w.name=function(a){return F.updateLabel(a),w},w}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./index"),h=(e(g),a("./textlabel")),i=(d(h),a("./interaction")),j=d(i),k=a("./colors"),l=e(k),m=a("./layout"),n=e(m),o=a("./sharedmaterials"),p=(e(o),a("./grab")),q=e(p)},{"./colors":4,"./grab":8,"./index":12,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],22:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.029,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:16777215,f=arguments.length>5&&void 0!==arguments[5]?arguments[5]:h.DEFAULT_BACK,g=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,i=new THREE.Group;i.guiType="textlabel",i.toString=function(){ +return"["+i.guiType+": "+b+"]"};var k=new THREE.Group;i.add(k);var l=a.create(b.toString(),{color:e,scale:g});k.add(l),i.userData.text=l,i.setString=function(a){void 0===a&&(a="[undefined]"),l.updateLabel(a.toString())},i.setNumber=function(a){l.updateLabel(a.toFixed(2))},l.position.z=d;var m=c,n=new THREE.BoxGeometry(m,.06,d,1,1,1);n.applyMatrix4((new THREE.Matrix4).makeTranslation(.5*m-.01,0,0));var o=new THREE.Mesh(n,j.PANEL);return h.colorizeGeometry(o.geometry,f),o.position.y=.03,k.add(o),k.position.y=-.03,i.back=o,i}function f(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:m,e=arguments[4],f=a.create(b),g=new THREE.Group,h=f.computeWidth(),i=l.TEXT_SCALE*f.layout.height;g.position.x=.5*c,g.position.y=-1.05*d-i,g.position.z=3*e,g.visible=!1,g.add(f);var k=h+.03,n=i+.03,o=new THREE.PlaneGeometry(k,n,1,1),p=new THREE.Mesh(o,j.TOOLTIP);return p.position.x=0,p.position.y=i/2,p.position.z=.5*-e,g.add(p),f.position.x=-.5*h,f.position.y=-.5*i+.0015,g.userData.w=h,g.userData.h=i,g}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e,c.createToolTip=f;var g=a("./colors"),h=d(g),i=a("./sharedmaterials"),j=d(i),k=a("./layout"),l=d(k),m=l.PANEL_HEIGHT+l.PANEL_SPACING},{"./colors":4,"./layout":15,"./sharedmaterials":19}],23:[function(a,b,c){"use strict";function d(a){var b=a.folder;if(a.isHeaderObject)return d(b);if(!a.visible)return!1;for(;b.folder!==b;){if(b.isCollapsed()||!b.visible)return!1;b=b.folder}return!!b.parent&&b.visible}function e(a,b,c){var d=a.children.includes(b);b.visible=c,c&&!d&&THREE.Group.prototype.add.call(a,b),!c&&d&&THREE.Group.prototype.remove.call(a,b),a.visible||console.warn("setVisibility called on child "+b+" of invisible parent "+a)}function f(a){for(var b=g(a);b.folder!==b;)b=b.folder;return b}function g(a){if(a.folder)return a.folder;for(var b=a.parent;!b.folder&&a.parent;)b=b.parent;return b.folder}function h(a,b){var c=[];return b.traverse(function(a){a.geometry&&a.geometry.isBufferGeometry&&3!==a.geometry.attributes.position.itemSize&&(a.geometry.isBufferGeometry=!1,c.push(a.geometry))}),a.setFromObject(b),c.forEach(function(a){return a.isBufferGeometry=!0}),a}Object.defineProperty(c,"__esModule",{value:!0}),c.isControllerVisible=d,c.setVisibility=e,c.getTopLevelFolder=f,c.getFolder=g,c.setBoxFromObject=h},{}],24:[function(a,b,c){"use strict";THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a},THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;b-- >0;)this.smooth(a);a.computeVertexNormals()},function(){THREE.SubdivisionModifier.prototype.smooth=function(a){return}}()},{}],25:[function(a,b,c){function d(a){return a.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===e.call(a.buffer)||Array.isArray(a)}var e=Object.prototype.toString;b.exports=d},{}],26:[function(a,b,c){b.exports=function(a,b){return"number"==typeof a?a:"number"==typeof b?b:0}},{}],27:[function(a,b,c){b.exports=function(a){switch(a){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],28:[function(a,b,c){"use strict";function d(a){console&&console.warn&&console.warn(a)}function e(){e.init.call(this)}function f(a){if("function"!=typeof a)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof a)}function g(a){return void 0===a._maxListeners?e.defaultMaxListeners:a._maxListeners}function h(a,b,c,e){var h,i,j;if(f(c),i=a._events,void 0===i?(i=a._events=Object.create(null),a._eventsCount=0):(void 0!==i.newListener&&(a.emit("newListener",b,c.listener?c.listener:c),i=a._events),j=i[b]),void 0===j)j=i[b]=c,++a._eventsCount;else if("function"==typeof j?j=i[b]=e?[c,j]:[j,c]:e?j.unshift(c):j.push(c),(h=g(a))>0&&j.length>h&&!j.warned){j.warned=!0;var k=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");k.name="MaxListenersExceededWarning",k.emitter=a,k.type=b,k.count=j.length,d(k)}return a}function i(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function j(a,b,c){var d={fired:!1,wrapFn:void 0,target:a,type:b,listener:c},e=i.bind(d);return e.listener=c,d.wrapFn=e,e}function k(a,b,c){var d=a._events;if(void 0===d)return[];var e=d[b];return void 0===e?[]:"function"==typeof e?c?[e.listener||e]:[e]:c?o(e):m(e,e.length)}function l(a){var b=this._events;if(void 0!==b){var c=b[a];if("function"==typeof c)return 1;if(void 0!==c)return c.length}return 0}function m(a,b){for(var c=new Array(b),d=0;d0&&(f=b[0]),f instanceof Error)throw f;var g=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw g.context=f,g}var h=e[a];if(void 0===h)return!1;if("function"==typeof h)u(h,this,b);else for(var i=h.length,j=m(h,i),c=0;c=0;g--)if(c[g]===b||c[g].listener===b){h=c[g].listener,e=g;break}if(e<0)return this;0===e?c.shift():n(c,e),1===c.length&&(d[a]=c[0]),void 0!==d.removeListener&&this.emit("removeListener",a,h||b)}return this},e.prototype.off=e.prototype.removeListener,e.prototype.removeAllListeners=function(a){var b,c,d;if(void 0===(c=this._events))return this;if(void 0===c.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==c[a]&&(0==--this._eventsCount?this._events=Object.create(null):delete c[a]),this;if(0===arguments.length){var e,f=Object.keys(c);for(d=0;d=0;d--)this.removeListener(a,b[d]);return this},e.prototype.listeners=function(a){return k(this,a,!0)},e.prototype.rawListeners=function(a){return k(this,a,!1)},e.listenerCount=function(a,b){return"function"==typeof a.listenerCount?a.listenerCount(b):l.call(a,b)},e.prototype.listenerCount=l,e.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},{}],29:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:b.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},{}],30:[function(a,b,c){function d(a){return!!a.constructor&&"function"==typeof a.constructor.isBuffer&&a.constructor.isBuffer(a)}function e(a){return"function"==typeof a.readFloatLE&&"function"==typeof a.slice&&d(a.slice(0,0))}b.exports=function(a){return null!=a&&(d(a)||e(a)||!!a._isBuffer)}},{}],31:[function(a,b,c){function d(a){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(a)}function e(a){Object.defineProperty(d.prototype,a,{get:f(a),configurable:!0})}function f(a){return new Function(["return function "+a+"() {"," return this._"+a,"}"].join("\n"))()}function g(a,b){if(!a.chars||0===a.chars.length)return null;var c=m(a.chars,b);return c>=0?a.chars[c]:null}function h(a){for(var b=0;b=0)return a.chars[d].height}return 0}function i(a){for(var b=0;b=0)return a.chars[d]}return 0}function j(a){for(var b=0;b=0)return a.chars[d].height}return 0}function k(a,b,c){if(!a.kernings||0===a.kernings.length)return 0;for(var d=a.kernings,e=0;e=d||o>=d)break;i=o,j=p,f=e}l++}return f&&(j+=f.xoffset),{start:b,end:b+l,width:j}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(e)},{"as-number":26,"word-wrapper":38,xtend:39}],32:[function(a,b,c){"use strict";function d(a){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(a)}var e=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;b.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");if(a[5]="de","5"===Object.getOwnPropertyNames(a)[0])return!1;for(var b={},c=0;c<10;c++)b["_"+String.fromCharCode(c)]=c;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},d)).join("")}catch(a){return!1}}()?Object.assign:function(a,b){for(var c,h,i=d(a),j=1;j0});this.visibleGlyphs=i;var j=h.positions(i),k=h.uvs(i,d,f,b),l=g([],{clockwise:!0,type:"uint16",count:i.length});if(this.setIndex(l),this.setAttribute("position",new THREE.BufferAttribute(j,2)),this.setAttribute("uv",new THREE.BufferAttribute(k,2)),!a.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(a.multipage){var m=h.pages(i);this.setAttribute("page",new THREE.BufferAttribute(m,1))}},d.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var a=this.attributes.position.array,b=this.attributes.position.itemSize;if(!a||!b||a.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);i.computeSphere(a,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},d.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var a=this.boundingBox,b=this.attributes.position.array,c=this.attributes.position.itemSize;if(!b||!c||b.length<2)return void a.makeEmpty();i.computeBox(b,a)}},{"./lib/utils":36,"./lib/vertices":37,inherits:29,"layout-bmfont-text":31,"quad-indices":34}],36:[function(a,b,c){function d(a){var b=a.length/e;f.min[0]=a[0],f.min[1]=a[1],f.max[0]=a[0],f.max[1]=a[1];for(var c=0;cd?d:e}function e(a){return k.test(a)}function f(a,b,c,d,e){for(var f=[],g=c,h=c;hc&&!e(b.charAt(n));)n--;if(n===c)o>c+j.length&&o--,n=o;else for(o=n;n>c&&e(b.charAt(n-j.length));)n--}if(n>=c){var p=a(b,c,n,k);i.push(p)}c=o}return i}function h(a,b,c,d){return{start:b,end:b+Math.min(d,c-b)}}var i=/\n/,j="\n",k=/\s/;b.exports=function(a,c){return b.exports.lines(a,c).map(function(b){return a.substring(b.start,b.end)}).join("\n")},b.exports.lines=function(a,b){if(b=b||{},0===b.width&&"nowrap"!==b.mode)return[];a=a||"";var c="number"==typeof b.width?b.width:Number.MAX_VALUE,d=Math.max(0,b.start||0),e="number"==typeof b.end?b.end:a.length,i=b.mode,j=b.measure||h;return"pre"===i?f(j,a,d,e,c):g(j,a,d,e,c,i)}},{}],39:[function(a,b,c){function d(){for(var a={},b=0;b Date: Sat, 3 Feb 2024 11:27:20 +0000 Subject: [PATCH 21/24] update core-js to fix warning --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5d36e11..3ffe2ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.1", "hasInstallScript": true, "dependencies": { - "core-js": "^3.29.0", + "core-js": "^3.35.1", "parse-bmfont-ascii": "^1.0.6", "patch-package": "^6.5.1", "three-bmfont-text": "^3.0.1" diff --git a/package.json b/package.json index 60c8288..d8d3644 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "postinstall": "patch-package" }, "dependencies": { - "core-js": "^3.29.0", + "core-js": "^3.35.1", "parse-bmfont-ascii": "^1.0.6", "patch-package": "^6.5.1", "three-bmfont-text": "^3.0.1" From 170a2ea4a7ffdbf2b152e787ae6d516081c4c934 Mon Sep 17 00:00:00 2001 From: sjpt Date: Tue, 6 Feb 2024 16:27:11 +0000 Subject: [PATCH 22/24] gamma correct the colour panels --- build/datguivr.js | 19 +++++++++++++++---- build/datguivr.map | 2 +- build/datguivr.min.js | 2 +- modules/datguivr/colorpicker.js | 9 +++++++++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index 3b8bf4b..ae7a316 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -623,8 +623,18 @@ function createColorPicker() { var panel; + // change colour in place, course gamma compensation + function colpow(c) { + var p = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.4545; + + c.r = Math.pow(c.r, p); // uglify doesn't understand ** + c.g = Math.pow(c.g, p); // uglify doesn't understand ** + c.b = Math.pow(c.b, p); // uglify doesn't understand ** + } + function changeFn() { image.color.set(color); + colpow(image.color); events.emit('onChange', color); } @@ -708,6 +718,7 @@ function createColorPicker() { //even if ref hasn't changed, value still might've, and we're not currently reflecting that. color = object[propertyName]; image.color.copy(color); + colpow(image.color); uniforms.selectedHSV.value.copy(RGBtoHSV(color)); } group.listen = function () { @@ -6826,10 +6837,10 @@ module.exports = function createTextGeometry (opt) { function TextGeometry (opt) { //// sjpt patch for three142, THREE.BufferGeometry is a class - if (+THREE.REVISION < 142) { + if (+THREE.REVISION < 142) { Base.call(this); - } else { - const zzz = new Base(); //PJT: classic sjpt variable naming � + } else { + const zzz = new Base(); //PJT: classic sjpt variable naming 🙄 Object.assign(this, zzz); } @@ -7209,4 +7220,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9hbi1hcnJheS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hcy1udW1iZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZHR5cGUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZXZlbnRzL2V2ZW50cy5qcyIsIm5vZGVfbW9kdWxlcy9pbmhlcml0cy9pbmhlcml0c19icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2lzLWJ1ZmZlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9sYXlvdXQtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wYXJzZS1ibWZvbnQtYXNjaWkvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcXVhZC1pbmRpY2VzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy90aHJlZS1ibWZvbnQtdGV4dC9saWIvdmVydGljZXMuanMiLCJub2RlX21vZHVsZXMvd29yZC13cmFwcGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3h0ZW5kL2ltbXV0YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O2tCQ3dCd0IsWTs7QUFMeEI7Ozs7QUFDQTs7SUFBWSxNOztBQUNaOztJQUFZLE07O0FBQ1o7O0lBQVksSTs7Ozs7O0FBdEJaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JlLFNBQVMsWUFBVCxHQU9QO0FBQUEsaUZBQUosRUFBSTtBQUFBLE1BTk4sV0FNTSxRQU5OLFdBTU07QUFBQSxNQUxOLE1BS00sUUFMTixNQUtNO0FBQUEsK0JBSk4sWUFJTTtBQUFBLE1BSk4sWUFJTSxxQ0FKUyxXQUlUO0FBQUEsd0JBSE4sS0FHTTtBQUFBLE1BSE4sS0FHTSw4QkFIRSxPQUFPLFdBR1Q7QUFBQSx5QkFGTixNQUVNO0FBQUEsTUFGTixNQUVNLCtCQUZHLE9BQU8sWUFFVjtBQUFBLHdCQUROLEtBQ007QUFBQSxNQUROLEtBQ00sOEJBREUsT0FBTyxXQUNUOztBQUVOLE1BQU0sZUFBZSxRQUFRLEdBQVIsR0FBYyxPQUFPLFlBQTFDO0FBQ0Es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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImJ1dHRvblwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IGRpdmlzaW9ucyA9IDQ7XHJcbiAgY29uc3QgYXNwZWN0UmF0aW8gPSBCVVRUT05fV0lEVEggLyBCVVRUT05fSEVJR0hUO1xyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRILCBNYXRoLmZsb29yKCBkaXZpc2lvbnMgKiBhc3BlY3RSYXRpbyApLCBkaXZpc2lvbnMsIGRpdmlzaW9ucyApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkJVVFRPTl9DT0xPUiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUsIHsgc2NhbGU6IDAuODY2IH0gKTtcclxuXHJcbiAgLy8gIFRoaXMgaXMgYSByZWFsIGhhY2sgc2luY2Ugd2UgbmVlZCB0byBmaXQgdGhlIHRleHQgcG9zaXRpb24gdG8gdGhlIGZvbnQgc2NhbGluZ1xyXG4gIC8vICBQbGVhc2UgZml4IG1lLlxyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMjU7XHJcbiAgZmlsbGVkVm9sdW1lLmFkZCggYnV0dG9uTGFiZWwgKTtcclxuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdKCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9ISUdITElHSFRfQ09MT1IgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkJVVFRPTl9DT0xPUiApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLmJ1dHRvbkxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHsgQ0hFQ0tCT1hfU0laRSB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNoZWNrYm94KCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG4gIFxyXG4gIGNvbnN0IENIRUNLQk9YX1BBRCA9IExheW91dC5QQU5FTF9IRUlHSFQgLSBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImNoZWNrYm94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGxldCBjaGVja21hcmssIGJvcmRlckJveCwgaW50ZXJhY3Rpb247XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gc3RhdGUudmFsdWU7XHJcblxyXG4gICAgaWYoIG9uQ2hhbmdlZENCICl7XHJcbiAgICAgIG9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBib3JkZXJCb3gudmlzaWJsZSA9IGludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICBpZiAoX2hlYWRlcikge1xyXG4gICAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICAgIF9oZWFkZXIuYm9yZGVyQm94LnZpc2libGUgPSBfaGVhZGVyLmludGVyYWN0aW9uLmhvdmVyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBsZXQgaXNTaG93bkluRm9sZGVySGVhZGVyID0gZmFsc2U7XHJcbiAgZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyID0gKHZhbHVlPXRydWUpID0+IHtcclxuICAgIGlmICh2YWx1ZSAhPT0gaXNTaG93bkluRm9sZGVySGVhZGVyKSB7XHJcbiAgICAgIGlzU2hvd25JbkZvbGRlckhlYWRlciA9IHZhbHVlO1xyXG4gICAgICAvL2dyb3VwLmZvbGRlckhlYWRlck9iamVjdCA9IHZhbHVlID8gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0IDogbnVsbDtcclxuICAgICAgLy94eHg6IGNhbid0IHVzZSBvcmRpbmFyeSBhZGQuLi5cclxuICAgICAgX2hlYWRlciA9IGdldEZvbGRlckhlYWRlck9iamVjdCgpO1xyXG4gICAgICBpZiAodmFsdWUpIGdyb3VwLmZvbGRlci5hZGRIZWFkZXJJdGVtKF9oZWFkZXIpO1xyXG4gICAgICBlbHNlIF9oZWFkZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdpc1Nob3duSW5Gb2xkZXJIZWFkZXInLCB7XHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIGlzU2hvd25JbkZvbGRlckhlYWRlciB9LFxyXG4gICAgc2V0OiBncm91cC5zaG93SW5Gb2xkZXJIZWFkZXJcclxuICB9KTtcclxuICBsZXQgX2hlYWRlcjtcclxuICBmdW5jdGlvbiBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKSB7XHJcbiAgICBpZiAoX2hlYWRlcikgcmV0dXJuIF9oZWFkZXI7XHJcbiAgICBsZXQgc2l6ZSA9IExheW91dC5QQU5FTF9IRUlHSFQgKiAwLjY7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KHNpemUsIHNpemUsIGRlcHRoKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKHNpemUqMC41LCAwLCAwKTtcclxuICAgIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsKTtcclxuICAgIF9oZWFkZXIgPSBoaXRzY2FuVm9sdW1lOyAvL1hYWDogc2lkZS1lZmZlY3QuLi5cclxuICAgIC8vIHggcG9zaXRpb24gaXMgc2V0IGluIGZvbGRlciBwZXJmb3JtSGVhZGVyTGF5b3V0KClcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgXHJcbiAgICAvL1RPRE86IGdldCB0aGlzIHRvIHdvcmsuLi4gYWRkIHRvb2x0aXBcclxuICAgIGNvbnN0IGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbChzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIHNpemUgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgZGVwdGgsIHRydWUgKTtcclxuICAgIF9oZWFkZXIuYm9yZGVyQm94ID0gYm9yZGVyQm94O1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY29uc3QgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoMC40ICogc2l6ZSAvIExheW91dC5DSEVDS0JPWF9TSVpFKTtcclxuICAgIF9oZWFkZXIuY2hlY2ttYXJrID0gY2hlY2ttYXJrO1xyXG4gICAgY2hlY2ttYXJrLnZpc2libGUgPSBzdGF0ZS52YWx1ZTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoY2hlY2ttYXJrKTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGhpdHNjYW5Wb2x1bWUpO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCdvblByZXNzZWQnLCBoYW5kbGVIZWFkZXJQcmVzcyk7XHJcbiAgICBfaGVhZGVyLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcblxyXG4gICAgLy9hZGQgdXBkYXRlQ29udHJvbCBtZXRob2QgaGVyZSAtIGF0dGVtcHQgdG8gbWFrZSBnZW5lcmljIHZlcnNpb24gaW4gZm9sZGVyIHdhcyBpbmFkZXF1YXRlXHJcbiAgICBfaGVhZGVyLnVwZGF0ZUNvbnRyb2wgPSBpbnB1dE9iamVjdHMgPT4ge1xyXG4gICAgICBpZiAoc3RhdGUubGlzdGVuKSB7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgfVxyXG4gICAgICAvL25iOiBpbnRlcmFjdGlvbiB3aWxsIGJlIGZyb20gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkgc2NvcGUsIFxyXG4gICAgICAvL25vdCB0aGUgbWFpbiBvbmUgdGhhdCBhcHBsaWVzIHRoYXQgYXBwbGllcyB0byB0aGUgb3JkaW5hcnkgY29udHJvbC5cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX2hlYWRlcjtcclxuICB9XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgbmVlZCBmb3Igc2VwYXJhdGUgaGVhZGVyIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvblxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhlYWRlclByZXNzKHApe1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlci52aXNpYmxlID09PSBmYWxzZSB8fCBfaGVhZGVyLnZpc2libGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICBzdGF0ZS52YWx1ZSA9ICFzdGF0ZS52YWx1ZTtcclxuICAgIG9iamVjdFtwcm9wZXJ0eU5hbWVdID0gc3RhdGUudmFsdWU7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKHN0YXRlLnZhbHVlKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAvL21ha2Ugc3VyZSB2aWV3IGlzIGFsc28gdXAgdG8gZGF0ZTsgdXBkYXRlVmlldygpIHdvbid0IGhhcHBlbiB3aGVuIHBhcmVudCBmb2xkZXIgaXMgY29sbGFwc2VkXHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgfVxyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgLy9hbGwgbGF5b3V0IGV0YyBpcyBkb25lIGluc2lkZSBzZXRIZWlnaHQsIHdoaWNoIGlzIGNhbGxlZCBvbmNlIGF0IHN0YXJ0LlxyXG4gIC8vYW55IGNhbGxiYWNrcyBldGMgcmVtYWluIGFzc29jaWF0ZWQgd2l0aCAnZ3JvdXAnLlxyXG4gIGdyb3VwLnNldEhlaWdodCA9IG5ld0hlaWdodCA9PiB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBuZXdIZWlnaHQ7XHJcbiAgICBcclxuICAgIGNvbnN0IENIRUNLQk9YX1dJRFRIID0gbmV3SGVpZ2h0IC0gQ0hFQ0tCT1hfUEFEO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfSEVJR0hUID0gQ0hFQ0tCT1hfV0lEVEg7XHJcbiAgICBjb25zdCBDSEVDS0JPWF9ERVBUSCA9IGRlcHRoO1xyXG4gICAgY29uc3QgQ0hFQ0tNQVJLX1NJWkUgPSAwLjQgKiBDSEVDS0JPWF9XSURUSCAvIExheW91dC5DSEVDS0JPWF9TSVpFO1xyXG4gIFxyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBuZXdIZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgXHJcbiAgICAvLyAgYmFzZSBjaGVja2JveFxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ0hFQ0tCT1hfV0lEVEgsIENIRUNLQk9YX0hFSUdIVCwgQ0hFQ0tCT1hfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBDSEVDS0JPWF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIFxyXG4gIFxyXG4gICAgLy8gIGhpdHNjYW4gdm9sdW1lXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcbiAgXHJcbiAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG4gIFxyXG4gICAgLy8gIG91dGxpbmUgdm9sdW1lXHJcbiAgICAvLyBjb25zdCBvdXRsaW5lID0gbmV3IFRIUkVFLkJveEhlbHBlciggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgLy8gb3V0bGluZS5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5PVVRMSU5FX0NPTE9SICk7XHJcbiAgXHJcbiAgICAvLyAgY2hlY2tib3ggdm9sdW1lXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuQ0hFQ0tCT1hfQkdfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG4gIFxyXG4gIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggbmV3SGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9DSEVDS0JPWCApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBcclxuICAgIGJvcmRlckJveCA9IExheW91dC5jcmVhdGVQYW5lbCggQ0hFQ0tCT1hfV0lEVEggKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUywgQ0hFQ0tCT1hfSEVJR0hUICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0RFUFRILCB0cnVlICk7XHJcbiAgICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgXHJcbiAgICBjaGVja21hcmsgPSBHcmFwaGljLmNoZWNrbWFyayggQ0hFQ0tNQVJLX1NJWkUgKTtcclxuICAgIGNoZWNrbWFyay5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjUxO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGNoZWNrbWFyayApO1xyXG4gIFxyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCwgYm9yZGVyQm94ICk7XHJcbiAgXHJcbiAgICAvLyBncm91cC5hZGQoIGZpbGxlZFZvbHVtZSwgb3V0bGluZSwgaGl0c2NhblZvbHVtZSwgZGVzY3JpcHRvckxhYmVsICk7XHJcbiAgXHJcbiAgICBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgXHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgXHJcbiAgXHJcbiAgICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gICAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuICAgIFxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXTtcclxuICAgICAgfVxyXG4gICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZihncm91cC5mb2xkZXIpIGdyb3VwLmZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICBcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIFxyXG4gIGdyb3VwLnNldEhlaWdodChoZWlnaHQpO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuICogVGhpcyBzaG91bGQgbG9vayBsaWtlIGFuIGltYWdlYnV0dG9uIHdpdGggYSBzb2xpZCBjb2xvciBNZXNoQmFzaWNNYXRlcmlhbFxyXG4gKiBXaGVuIHByZXNzZWQgaXQgY291bGQgYnJpbmcgdXAgc29tZSBraW5kIG9mIHBpY2tlciBkZXBlbmRpbmcgb24gY29uZmlndXJhdGlvbi5cclxuICpcclxuICogRm9yIG5vdywganVzdCBnb2luZyB3aXRoIFJHQiBzbGlkZXJzIGFzIEkgc2hvdWxkbid0IHNwZW5kIHRvbyBsb25nIG9uIHRoaXMgQVRNLFxyXG4gKiBidXQgdmVyeSB0ZW1wdGVkIGJ5IHByb3NwZWN0IG9mIGFuIEhTIHNxdWFyZSB3aXRoIFYgc2xpZGVyLi4uXHJcbiAqIG9yIEggc2xpZGVyIGFuZCBTViBzcXVhcmUgd2hpY2ggc2VlbXMgdG8gYmUgd2hhdCBkYXQuZ3VpIHVzZXMuXHJcbiAqIE9yIHNvbWV0aGluZyBmYW5jaWVyIGxpa2UgYSBodWUgY2lyY2xlIGFyb3VuZCBhbiBTViB0cmlhbmdsZSBldGMgZXRjLlxyXG4gKlxyXG4gKlxyXG4gKiBQZXRlciBUb2RkIDIwMTdcclxuICovXHJcblxyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbi8vc25pcHBldCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9odWdoc2svZ2xzbC1oc3YycmdiL2Jsb2IvbWFzdGVyL2luZGV4Lmdsc2xcclxuLy8obm90IGdvaW5nIHRvIHRoZSBsZW5ndGhzIG9mIGdsc2xpZnksIGp1c3QgY29weWluZyB0aGUgZnVuY3Rpb24pXHJcbmNvbnN0IGhzdjJyZ2IgPSBgXHJcbnZlYzMgaHN2MnJnYih2ZWMzIGMpIHtcclxuICAgIHZlYzQgSyA9IHZlYzQoMS4wLCAyLjAgLyAzLjAsIDEuMCAvIDMuMCwgMy4wKTtcclxuICAgIHZlYzMgcCA9IGFicyhmcmFjdChjLnh4eCArIEsueHl6KSAqIDYuMCAtIEsud3d3KTtcclxuICAgIHJldHVybiBjLnogKiBtaXgoSy54eHgsIGNsYW1wKHAgLSBLLnh4eCwgMC4wLCAxLjApLCBjLnkpO1xyXG59YDtcclxuXHJcbmNvbnN0IFZlcnRTaGFkZXIgPSBgXHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2VXYgPSB1djtcclxuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuKTtcclxufVxyXG5gO1xyXG5cclxuY29uc3QgU1ZGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIHZlYzMgaHN2ID0gdmVjMyhzZWxlY3RlZEhTVi54LCB2VXYpO1xyXG5cclxuICAgIC8vIGRyYXcgYSBibGFjayBjaXJjbGUgYXJvdW5kIHNlbGVjdGVkIFNWLlxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBsZXNzIGhvdXNla2VlcGluZ1xyXG4gICAgLy8gbmVlZCB0byBrbm93IGFzcGVjdCByYXRpbyBpZiBJIHdhbnQgaXQgdG8gYmUgYSBwcm9wZXIgY2lyY2xlLCB0aG91Z2guXHJcbiAgICBmbG9hdCBkID0gbGVuZ3RoKHNlbGVjdGVkSFNWLnl6IC0gdlV2KTtcclxuICAgIGlmIChkIDwgMC4wMTUgJiYgZCA+IDAuMDEpIGhzdi56ID0gMC47XHJcbiAgICBnbF9GcmFnQ29sb3IucmdiID0gaHN2MnJnYihoc3YpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLncgPSAxLjA7IC8vIHNqcHRcclxufVxyXG5gO1xyXG5cclxuY29uc3QgSFNsaWRlckZyYWdTaGFkZXIgPSBgXHJcbnVuaWZvcm0gdmVjMyBzZWxlY3RlZEhTVjtcclxudmFyeWluZyB2ZWMyIHZVdjtcclxuJHtoc3YycmdifVxyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgLy8gZHJhdyBhIHJlY3Rhbmd1bGFyIGluZGljYXRvciBhcm91bmQgc2VsZWN0ZWQgSFxyXG4gICAgLy8gbWlnaHQgbG9vayBiZXR0ZXIgdmlhIHNlcGFyYXRlIHRocmVlIG9iamVjdCwgYnV0IHNoYWRlciBpcyBzaW1wbGVyXHJcbiAgICBmbG9hdCBkaXN0ID0gYWJzKHNlbGVjdGVkSFNWLnggLSB2VXYueCk7XHJcbiAgICBib29sIGluZGljYXRvciA9IGRpc3QgPCAwLjAxICYmIGRpc3QgPiAwLjAwNTtcclxuICAgIGZsb2F0IHYgPSBpbmRpY2F0b3IgPyAwLiA6IDEuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKTtcclxuICAgIGdsX0ZyYWdDb2xvci53ID0gMS4wOyAvLyBzanB0XHJcbn1cclxuYDtcclxuXHJcbi8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTcyNDIxNDQvamF2YXNjcmlwdC1jb252ZXJ0LWhzYi1oc3YtY29sb3ItdG8tcmdiLWFjY3VyYXRlbHlcclxuLy93aHkgbm90IHVzZSBUSFJFRS5Db2xvciBtZXRob2RzP1xyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogaCAgT2JqZWN0ID0ge2g6eCwgczp5LCB2Onp9XHJcbiAqIE9SXHJcbiAqIGgsIHMsIHZcclxuKi9cclxuZnVuY3Rpb24gSFNWdG9SR0IoaCwgcywgdikge1xyXG4gICAgdmFyIHIsIGcsIGIsIGksIGYsIHAsIHEsIHQ7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIC8vaGFjayB0byB0YWtlIFRIUkVFLlZlY3RvcjMuLi5cclxuICAgICAgICBpZiAoaC54ICE9PSB1bmRlZmluZWQpIHMgPSBoLnksIHYgPSBoLnosIGggPSBoLng7XHJcbiAgICAgICAgZWxzZSBzID0gaC5zLCB2ID0gaC52LCBoID0gaC5oO1xyXG4gICAgfVxyXG4gICAgaSA9IE1hdGguZmxvb3IoaCAqIDYpO1xyXG4gICAgZiA9IGggKiA2IC0gaTtcclxuICAgIHAgPSB2ICogKDEgLSBzKTtcclxuICAgIHEgPSB2ICogKDEgLSBmICogcyk7XHJcbiAgICB0ID0gdiAqICgxIC0gKDEgLSBmKSAqIHMpO1xyXG4gICAgc3dpdGNoIChpICUgNikge1xyXG4gICAgICAgIGNhc2UgMDogciA9IHYsIGcgPSB0LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAxOiByID0gcSwgZyA9IHYsIGIgPSBwOyBicmVhaztcclxuICAgICAgICBjYXNlIDI6IHIgPSBwLCBnID0gdiwgYiA9IHQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMzogciA9IHAsIGcgPSBxLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0OiByID0gdCwgZyA9IHAsIGIgPSB2OyBicmVhaztcclxuICAgICAgICBjYXNlIDU6IHIgPSB2LCBnID0gcCwgYiA9IHE7IGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByOiByLFxyXG4gICAgICAgIGc6IGcsXHJcbiAgICAgICAgYjogYlxyXG4gICAgfTtcclxufVxyXG4vKiBhY2NlcHRzIHBhcmFtZXRlcnNcclxuICogciAgT2JqZWN0ID0ge3IsIGcsIGJ9XHJcbiAqIE9SXHJcbiAqIHIsIGcsIGJcclxuKi9cclxuZnVuY3Rpb24gUkdCdG9IU1YociwgZywgYikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBnID0gci5nLCBiID0gci5iLCByID0gci5yO1xyXG4gICAgfVxyXG4gICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpLCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKSxcclxuICAgICAgICBkID0gbWF4IC0gbWluLFxyXG4gICAgICAgIGgsXHJcbiAgICAgICAgcyA9IChtYXggPT09IDAgPyAwIDogZCAvIG1heCksXHJcbiAgICAgICAgdiA9IG1heDtcclxuXHJcbiAgICBzd2l0Y2ggKG1heCkge1xyXG4gICAgICAgIGNhc2UgbWluOiBoID0gMDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSByOiBoID0gKGcgLSBiKSArIGQgKiAoZyA8IGIgPyA2OiAwKTsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOiBoID0gKGIgLSByKSArIGQgKiAyOyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpICsgZCAqIDQ7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaDogaCxcclxuICAgICAgICBzOiBzLFxyXG4gICAgICAgIHY6IHYsXHJcbiAgICAgICAgeDogaCwgeTogcywgejogdiAvL3NvIHRoYXQgd2UgY2FuIGRvIFZlY3RvcjMuY29weSh0aGlzKVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQ29sb3JQaWNrZXIoIHtcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSwgLy9tdXN0IGJlIGEgVEhSRUUuQ29sb3IgZm9yIG5vdy4uLiBzaG91bGQgcmVmZXIgdG8gb3JpZ2luYWwgZGF0Lmd1aSB0byBzZWUgd2hhdCBpdCB0YWtlc1xyXG4gICAgdGV4dENyZWF0b3IsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCAvIDMuXHJcbn0gPSB7fSkge1xyXG4gICAgLy8gbWFrZSB0aGUgbWFpbiBncm91cCBiZSAqZGlyZWN0bHkqIHRoZSBvbmUgcmV0dXJuZWQgYnkgY3JlYXRlSW1hZ2VCdXR0b247XHJcbiAgICAvLyB3ZSdsbCB0YWtlIGNhcmUgb2YgZHluYW1pY2FsbHkgYWRkaW5nIGFuZCByZW1vdmluZyBjaGlsZHJlbiBiYXNlZCBvbiBhdHRhY2hlZC4uLlxyXG4gICAgLy8gd2lsbCB3YW50IHRvIHRoaW5rIGFib3V0IGxpc3RlbmVyIGZ1bmN0aW9ucyBldGMuXHJcbiAgICBsZXQgZnVuYyA9IHRvZ2dsZURldGFpbFBhbmVsO1xyXG4gICAgbGV0IGNvbG9yID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07IC8vZm9yIG5vdywgdGhpcydkIGJldHRlciBiZSBhIFRIUkVFLkNvbG9yIG9yIHdlJ2xsIGZyZWFrIG91dC5cclxuICAgIGNvbnN0IGMgPSBSR0J0b0hTVihjb2xvcik7XHJcbiAgICBjb25zdCB1bmlmb3JtcyA9IHtzZWxlY3RlZEhTVjoge3ZhbHVlOiBuZXcgVEhSRUUuVmVjdG9yMyhjLmgsIGMucywgYy52KX19O1xyXG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiBjb2xvcn0pO1xyXG4gICAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuICAgIGNvbnN0IGNoYW5nZUNvbG9yT25Ib3ZlciA9IGZhbHNlO1xyXG4gICAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICAgICAgbGlzdGVuOiBmYWxzZVxyXG4gICAgfTtcclxuICAgIC8vVE9ETyBtYWtlIHN1cmUgY29sb3IgcGF0Y2ggb2NjdXBpZXMgZnVsbCB3aWR0aC4gIEFkZCB0ZXh0IGxhYmVsIHdpdGggaGV4IHZhbHVlP1xyXG4gICAgY29uc3QgZ3JvdXAgPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgICAgdGV4dENyZWF0b3IsIGZ1bmMsIGltYWdlLCBwcm9wZXJ0eU5hbWUsIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBjaGFuZ2VDb2xvck9uSG92ZXJcclxuICAgIH0pO1xyXG4gICAgZ3JvdXAuZ3VpVHlwZSA9IFwiQ29sb3JQaWNrZXJcIjtcclxuXHJcbiAgICB2YXIgcGFuZWw7XHJcblxyXG4gICAgZnVuY3Rpb24gY2hhbmdlRm4oKSB7XHJcbiAgICAgICAgaW1hZ2UuY29sb3Iuc2V0KGNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTtcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS5jb3B5KFJHQnRvSFNWKGNvbG9yKSk7XHJcbiAgICB9XHJcbiAgICBncm91cC5saXN0ZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xPUiA9IDB4MkZBMUQ2O1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0NPTE9SID0gMHg0M2I1ZWE7XHJcbmV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9DT0xPUiA9IDB4MDdBQkY3O1xyXG5leHBvcnQgY29uc3QgRU1JU1NJVkVfQ09MT1IgPSAweDIyMjIyMjtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9FTUlTU0lWRV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgT1VUTElORV9DT0xPUiA9IDB4OTk5OTk5O1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQUNLID0gMHgwNjA2MDY7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPTERFUl9CQUNLID0gMHgxMDEwMTA7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQkFDSyA9IDB4MzEzMTMxO1xyXG5leHBvcnQgY29uc3QgSU5BQ1RJVkVfQ09MT1IgPSAweDE2MTgyOTtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfU0xJREVSID0gMHgyZmExZDY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0NIRUNLQk9YID0gMHg4MDY3ODc7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0JVVFRPTiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9URVhUID0gMHgxZWQzNmY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RST1BET1dOID0gMHhmZmYwMDA7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9CR19DT0xPUiA9IDB4ZmZmZmZmO1xyXG5leHBvcnQgY29uc3QgRFJPUERPV05fRkdfQ09MT1IgPSAweDAwMDAwMDtcclxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fQ09MT1IgPSAweGU2MWQ1ZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ISUdITElHSFRfQ09MT1IgPSAweGZhMzE3MztcclxuZXhwb3J0IGNvbnN0IFNMSURFUl9CRyA9IDB4NDQ0NDQ0O1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9CRyA9IDB4RjBGMEYwO1xyXG5leHBvcnQgY29uc3QgVEVYVEJPWF9ISUdITElHSFRfQkcgPSAweEZGRkZGRjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xvcml6ZUdlb21ldHJ5KCBnZW9tZXRyeSwgY29sb3IgKXtcclxuICBjb25zdCBjb2wgPSBuZXcgVEhSRUUuQ29sb3IoY29sb3IpOyBcclxuICBsZXQgYyA9IGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgnY29sb3InKTtcclxuICBsZXQgYTtcclxuICBpZiAoIWMpIHtcclxuICAgIGEgPSBuZXcgRmxvYXQzMkFycmF5KGdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheS5sZW5ndGgpLmZpbGwoMC41KTtcclxuICAgIGMgPSBnZW9tZXRyeS5zZXRBdHRyaWJ1dGUoJ2NvbG9yJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShhLCAzKSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGEgPSBjLmFycmF5O1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKz0zKSB7XHJcbiAgICBhW2ldID0gY29sLnI7XHJcbiAgICBhW2krMV0gPSBjb2wuZztcclxuICAgIGFbaSsyXSA9IGNvbC5iO1xyXG4gIH1cclxuICBjLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgLy8gZ2VvbWV0cnkuZmFjZXMuZm9yRWFjaCggZnVuY3Rpb24oZmFjZSl7XHJcbiAgLy8gICBmYWNlLmNvbG9yLnNldEhleChjb2xvcik7XHJcbiAgLy8gfSk7XHJcbiAgLy8gZ2VvbWV0cnkuY29sb3JzTmVlZFVwZGF0ZSA9IHRydWU7XHJcbiAgcmV0dXJuIGdlb21ldHJ5O1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwsIHtjcmVhdGVUb29sVGlwfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSBcIi4vdXRpbHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZURyb3Bkb3duKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlLFxyXG4gIG9wdGlvbnMgPSBbXSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBvcGVuOiBmYWxzZSxcclxuICAgIGxpc3RlbjogZmFsc2VcclxuICB9O1xyXG5cclxuICBjb25zdCBEUk9QRE9XTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBEUk9QRE9XTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0RFUFRIID0gZGVwdGg7XHJcbiAgY29uc3QgRFJPUERPV05fT1BUSU9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU4gKiAxLjI7XHJcbiAgY29uc3QgRFJPUERPV05fTUFSR0lOID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIC0wLjQ7XHJcbiAgY29uc3QgTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJkcm9wZG93blwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuXHJcbiAgLy9hbGxvdyBmb3IgcHJvZ3JhbW1hdGljIHNldC4gQVBJIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBzdGFibGUuXHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlT2JqZWN0ID0gb2JqZWN0O1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNvdXJjZVByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZTtcclxuICBncm91cC51c2VyRGF0YS5zZXRWYWx1ZSA9IHYgPT4ge1xyXG4gICAgaWYgKG9wdGlvbnMuaW5kZXhPZih2KSA9PT0gLTEpIHtcclxuICAgICAgLy9JIGNvdWxkIGNvbnNpZGVyIGFubm90YXRpbmcgR1VJIGl0c2VsZiB3aXRoIGVycm9yIGxhYmVscy4uLlxyXG4gICAgICBjb25zb2xlLndhcm4oYGRhdC5HVUlWUjogVW5rbm93biBvcHRpb24gXCIke3Z9XCIgZm9yIGRyb3Bkb3duIFwiJHtwcm9wZXJ0eU5hbWV9XCIuXFxuVmFsaWQgb3B0aW9uczogWyR7b3B0aW9ucy5qb2luKCcsICcpfV1gKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSB2O1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihvYmplY3RbcHJvcGVydHlOYW1lXSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IG1vZGFsRHJvcGRvd24gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBtb2RhbERyb3Bkb3duLnZpc2libGUgPSBmYWxzZTtcclxuICBtb2RhbERyb3Bkb3duLmhpdHNjYW4gPSBbXTtcclxuICBjb25zdCBsYWJlbEludGVyYWN0aW9ucyA9IFtdO1xyXG4gIGNvbnN0IG9wdGlvbkxhYmVscyA9IFtdO1xyXG5cclxuICAvLyAgZmluZCBhY3R1YWxseSB3aGljaCBsYWJlbCBpcyBzZWxlY3RlZFxyXG4gIGNvbnN0IGluaXRpYWxMYWJlbCA9IGZpbmRMYWJlbEZyb21Qcm9wKCk7XHJcblxyXG5cclxuXHJcbiAgZnVuY3Rpb24gZmluZExhYmVsRnJvbVByb3AoKXtcclxuICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgcmV0dXJuIG9wdGlvbnMuZmluZCggZnVuY3Rpb24oIG9wdGlvbk5hbWUgKXtcclxuICAgICAgICByZXR1cm4gb3B0aW9uTmFtZSA9PT0gb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvYmplY3RbcHJvcGVydHlOYW1lXSA9PT0gb3B0aW9uc1sgb3B0aW9uTmFtZSBdO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9wdGlvbiggbGFiZWxUZXh0LCBpc09wdGlvbiApe1xyXG4gICAgLy9UT0RPOiB0cnVuY2F0ZSBsb25nIGxhYmVsVGV4dCwgbWF5YmUgc2hvdyBmdWxsIHZlcnNpb24gd2hlbiBob3ZlcmluZy5cclxuICAgIGNvbnN0IGxhYmVsID0gY3JlYXRlVGV4dExhYmVsKFxyXG4gICAgICB0ZXh0Q3JlYXRvciwgbGFiZWxUZXh0LFxyXG4gICAgICAvL2NoZWNrIHdpZHRoIHZhbHVlLi4uXHJcbiAgICAgIERST1BET1dOX1dJRFRILCBkZXB0aCxcclxuICAgICAgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SLCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IsXHJcbiAgICAgIDAuODY2XHJcbiAgICApO1xyXG4gICAgbGFiZWwuYmFjay5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG5cclxuICAgIGlmIChpc09wdGlvbikgbW9kYWxEcm9wZG93bi5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGVsc2UgZ3JvdXAuaGl0c2Nhbi5wdXNoKCBsYWJlbC5iYWNrICk7XHJcbiAgICBjb25zdCBsYWJlbEludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGxhYmVsLmJhY2sgKTtcclxuICAgIGxhYmVsSW50ZXJhY3Rpb24uZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5wdXNoKCBsYWJlbEludGVyYWN0aW9uICk7XHJcbiAgICBvcHRpb25MYWJlbHMucHVzaCggbGFiZWwgKTtcclxuXHJcblxyXG4gICAgaWYoIGlzT3B0aW9uICl7XHJcbiAgICAgIGxhYmVsSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgICAgICBzdGF0ZS5vcGVuID0gbW9kYWxEcm9wZG93bi52aXNpYmxlO1xyXG4gICAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBsYWJlbFRleHQgKTtcclxuXHJcbiAgICAgICAgbGV0IHByb3BlcnR5Q2hhbmdlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICBpZiggcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICAgIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPSBsYWJlbFRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBwcm9wZXJ0eUNoYW5nZWQgPSBvYmplY3RbIHByb3BlcnR5TmFtZSBdICE9PSBvcHRpb25zWyBsYWJlbFRleHQgXTtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGNvbGxhcHNlT3B0aW9ucygpO1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYoIG9uQ2hhbmdlZENCICYmIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgb25DaGFuZ2VkQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCBvbkNob29zZUNCICl7XHJcbiAgICAgICAgICBvbkNob29zZUNCKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgaWYoIHN0YXRlLm9wZW4gPT09IGZhbHNlICl7XHJcbiAgICAgICAgICBvcGVuT3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbGFiZWwuaXNPcHRpb24gPSBpc09wdGlvbjtcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNvbGxhcHNlT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLmNsZWFyTW9kYWxFZGl0b3IoKTsgLy9zaG91bGQgd2UgY2hlY2sgaWYgaXQgd2Fzbid0IHNldCB0byBzb21ldGhpbmcgZWxzZT8/XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBvcGVuT3B0aW9ucygpe1xyXG4gICAgc3RhdGUub3BlbiA9IHRydWU7XHJcbiAgICBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IobW9kYWxEcm9wZG93bik7XHJcbiAgICAvL3JldHVybjtcclxuICAgIC8vbGFiZWwuaXNPcHRpb24gc2VlbXMgbW9zdGx5IHJlZHVuZGFudC5cclxuICAgIC8vbGFiZWxzICYgYmFja3Mgc2hvdWxkIGJlIGFkZGVkIHRvIGEgZ3JvdXAgdG8gYmUgdXNlZCBhcyAnbW9kYWwgZWRpdG9yJywgXHJcbiAgICAvL21ha2luZyBldmVyeXRoaW5nIHZpc2libGUgLyBpbnZpc2libGUgd2l0aCBvbmUgcHJvcGVydHlcclxuICAgIC8vKG5iLCBldmVuIHRob3VnaCB0aGV5IGFyZSBub3cgaW4gYSBncm91cCB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCB3ZSBzdGlsbCBuZWVkIHRvIHNldCB2aXNpYmxlLi4uXHJcbiAgICAvL3NlZSBjb21tZW50IGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpKVxyXG4gICAgb3B0aW9uTGFiZWxzLmZvckVhY2goIGZ1bmN0aW9uKCBsYWJlbCApe1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBsYWJlbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBsYWJlbC5iYWNrLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICBiYXNlIG9wdGlvblxyXG4gIGNvbnN0IHNlbGVjdGVkTGFiZWwgPSBjcmVhdGVPcHRpb24oIGluaXRpYWxMYWJlbCB8fCAnICcsIGZhbHNlICk7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gIHNlbGVjdGVkTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIFxyXG4gIGNvbnN0IGRvd25BcnJvdyA9IEdyYXBoaWMuZG93bkFycm93KCk7XHJcbiAgLy8gQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgQ29sb3JzLkRST1BET1dOX0ZHX0NPTE9SICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggRFJPUERPV05fV0lEVEggLSAwLjA0LCAwLCBkZXB0aCAqIDEuMDEgKTtcclxuICBzZWxlY3RlZExhYmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBsYWJlbCwgaW5kZXggKXtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnkgPSAtRFJPUERPV05fTUFSR0lOIC0gKGluZGV4JU1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKzEpICogKCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUICk7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBsYWJlbC5wb3NpdGlvbi54ICs9IERST1BET1dOX1dJRFRIICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9EUk9QRE9XTl9MQUJFTFNfSU5fQ09MVU1OKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wdGlvblRvTGFiZWwoIG9wdGlvbk5hbWUsIGluZGV4ICl7XHJcbiAgICBjb25zdCBvcHRpb25MYWJlbCA9IGNyZWF0ZU9wdGlvbiggb3B0aW9uTmFtZSwgdHJ1ZSApO1xyXG4gICAgY29uZmlndXJlTGFiZWxQb3NpdGlvbiggb3B0aW9uTGFiZWwsIGluZGV4ICk7XHJcbiAgICByZXR1cm4gb3B0aW9uTGFiZWw7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZExhYmVsLmFkZChtb2RhbERyb3Bkb3duKTtcclxuICBpZiggQXJyYXkuaXNBcnJheSggb3B0aW9ucyApICl7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCguLi5vcHRpb25zLm1hcChvcHRpb25Ub0xhYmVsKSk7XHJcbiAgfVxyXG4gIGVsc2V7XHJcbiAgICBtb2RhbERyb3Bkb3duLmFkZCggLi4uT2JqZWN0LmtleXMob3B0aW9ucykubWFwKCBvcHRpb25Ub0xhYmVsICkgKTtcclxuICB9XHJcblxyXG5cclxuICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfRFJPUERPV04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuXHJcbiAgY29uc3QgYm9yZGVyQm94ID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCBEUk9QRE9XTl9XSURUSCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBEUk9QRE9XTl9IRUlHSFQgKyBMYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSwgRFJPUERPV05fREVQVEgsIHRydWUgKTtcclxuICBib3JkZXJCb3gubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDFmN2FlNyApO1xyXG4gIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGNvbnRyb2xsZXJJRCwgc2VsZWN0ZWRMYWJlbCwgYm9yZGVyQm94ICk7XHJcblxyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggaW50ZXJhY3Rpb24sIGluZGV4ICl7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uTGFiZWxzWyBpbmRleCBdO1xyXG4gICAgICBpZiggbGFiZWwuaXNPcHRpb24gKXtcclxuICAgICAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbC5iYWNrLmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fQkdfQ09MT1IgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7IC8vYXMgb2YgdGhpcyB3cml0aW5nLCB0aGlzIGlzIGJlbGlldmVkIHRvIGJlIHJlbGlhYmxlLCBidXQgYmV3YXJlIGRyYWdvbnMsIGZ1dHVyZSByZWFkZXIuXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEudGlwT2JqKSB7XHJcbiAgICAgIC8vIGlmIChsYWJlbEludGVyYWN0aW9uc1swXS5ob3ZlcmluZygpKSB7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coZ3JvdXAudXNlckRhdGEudGlwKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBzZXRWaXNpYmlsaXR5KHBhbmVsLCBncm91cC51c2VyRGF0YS50aXBPYmosIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgaWYoIGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkgfHwgc3RhdGUub3BlbiApe1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBib3JkZXJCb3gudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG4gIGxldCBvbkNob29zZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG4gIGdyb3VwLm9uQ2hvb3NlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNob29zZUNCID0gY2FsbGJhY2s7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICBzZWxlY3RlZExhYmVsLnNldFN0cmluZyggZmluZExhYmVsRnJvbVByb3AoKSApO1xyXG4gICAgfVxyXG4gICAgbGFiZWxJbnRlcmFjdGlvbnMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsSW50ZXJhY3Rpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgIGNvbnN0IG9iaiA9IGdyb3VwO1xyXG4gICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgLy9uYiwgb2JqLnNwYWNpbmcgbWF5IGJlIHVuZGVmaW5lZCwgYnV0IHNob3VsZCBub3cgaGF2ZSBzZW5zaWJsZSBkZWZhdWx0LlxyXG4gICAgb2JqLnVzZXJEYXRhLnRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgLy8vLy0tLSBzZWUgbGFiZWxJbnRlcmFjdGlvbnNbMF0gYWJvdmUgZm9yIGhhbmRsaW5nIHVwZGF0ZS4uLlxyXG4gIH1cclxuICBncm91cC5nZXRUb29sVGlwID0gKCkgPT4gZ3JvdXAudXNlckRhdGEudGlwO1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgeyBjcmVhdGVUb29sVGlwIH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYXBoaWMgZnJvbSAnLi9ncmFwaGljJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQgKiBhcyBQYWxldHRlIGZyb20gJy4vcGFsZXR0ZSc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyLCBzZXRCb3hGcm9tT2JqZWN0LCBzZXRWaXNpYmlsaXR5IH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IEZPTERFUl9XSURUSCB9IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbi8vSWYgeW91J3JlIGxvb2tpbmcgZm9yIG1haW4gY3JlYXRlRm9sZGVyIGZ1bmN0aW9uLCBpdCdzIGZ1cnRoZXIgYmVsb3cuLi5cclxuXHJcbi8qKlxyXG4gKiBOb3QgZW50aXJlbHkgc3VyZSBhYm91dCBzdGFydGluZyB0byBhZGQgdGhpcyBraW5kIG9mIGdsb2JhbCBzdGF0ZSBtYW5hYWdlbWVudCBoZXJlLi4uXHJcbiAqIFRoaXMgaXMgZm9yIHotb3JkZXIgaW4gMmQgb3J0aG9ncmFwaGljIG1vZGUsIGFuZCBtYXliZSBzb21lIG90aGVyIHRoaW5ncyBvbmUgZGF5LlxyXG4gKi9cclxuY29uc3QgdG9wRm9sZGVyU3RhY2sgPSBbXTtcclxuXHJcbmNvbnN0IHNjcmF0Y2hGb2xkZXJCb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoQ2FtQm94ID0gbmV3IFRIUkVFLkJveDMoKSwgc2NyYXRjaFNpemUgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5cclxuZnVuY3Rpb24gb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCkge1xyXG4gIGNvbnN0IGNhbSA9IHRvcEZvbGRlclN0YWNrWzBdLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gIGlmICghY2FtIHx8IHRvcEZvbGRlclN0YWNrLmxlbmd0aCA8PSAxKSByZXR1cm47XHJcbiAgLy9jYW1Cb3hTZXR1cChjYW0pO1xyXG4gIGNvbnN0IHRmcyA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcih4ID0+IHgudmlzaWJsZSk7XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdGZzLmxlbmd0aDtcclxuICBjb25zdCB6cyA9IHRmcy5tYXAoZiA9PiBmLnBvc2l0aW9uLnopLnNvcnQoKGEsYik9PmEtYik7XHJcbiAgenNbLTFdID0gLTk5OTk7IC8vIEkgc3VwcG9zZSB0aGlzIGlzIHRvIGRlYWwgd2l0aCBhY2Nlc3NpbmcgenNbaS0xXSBiZWxvdyDCr1xcXyjjg4QpXy/Cr1xyXG4gIHpzLmZvckVhY2goICh6LGkpID0+IHpzW2ldID0gTWF0aC5tYXgoenNbaV0sIHpzW2ktMV0gKyAxMCpMYXlvdXQuUEFORUxfREVQVEgpKTsgLy8gaW4gY2FzZSBvZiBlcXVhbHNcclxuICBcclxuICB0ZnMuZm9yRWFjaCgoZiwgaSkgPT4ge1xyXG4gICAgLy9sZXQgeiA9IC0wLjkqZmFyICsgaSoxMCpMYXlvdXQuUEFORUxfREVQVEg7XHJcbiAgICBjb25zdCB6ID0genNbaV07XHJcbiAgICBpZiAoeiAhPT0gZi5wb3NpdGlvbi56KSB7XHJcbiAgICAgIGYucG9zaXRpb24ueiA9IHo7XHJcbiAgICAgIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgIGYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9KTtcclxuICBpZiAodGZzW24tMV0ucG9zaXRpb24ueiA+PSBuZWFyIC0gTGF5b3V0LlBBTkVMX0RFUFRIKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkdVSVZSIFdhcm5pbmc6IGxpa2VseSBwcm9ibGVtIHdpdGggei1vcmRlciBpbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXRcIik7XHJcbiAgfVxyXG4gIC8vY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUgKyAnXFx0OiAnICsgZi5wb3NpdGlvbi56KS5qb2luKCdcXG4nKX1dYCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbUJveFNldHVwKGNhbSkge1xyXG4gIGlmICghY2FtLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSByZXR1cm47XHJcbiAgY29uc3QgbmVhciA9IGNhbS5uZWFyLCBmYXIgPSBjYW0uZmFyLCBuID0gdG9wRm9sZGVyU3RhY2subGVuZ3RoO1xyXG4gIGNvbnN0IGwgPSBjYW0ubGVmdCwgciA9IGNhbS5yaWdodCwgdCA9IGNhbS50b3AsIGIgPSBjYW0uYm90dG9tO1xyXG4gIGNvbnN0IHogPSBjYW0ucG9zaXRpb24uejsgLy9ub3Qgc3RyaWN0bHkgcmlnaHQuLi5cclxuICBzY3JhdGNoQ2FtQm94Lm1pbi5zZXQobCwgYiwgLWZhciArIHopO1xyXG4gIHNjcmF0Y2hDYW1Cb3gubWF4LnNldChyLCB0LCAtbmVhciArIHopO1xyXG4gIHJldHVybiBzY3JhdGNoQ2FtQm94O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVGb2xkZXIoe1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG5hbWUsXHJcbiAgZ3VpQWRkLFxyXG4gIGd1aVJlbW92ZSxcclxuICBhZGRDb250cm9sbGVyRnVuY3MsXHJcbiAgZ2xvYmFsQ29udHJvbGxlcnNcclxufSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OID0gMjU7XHJcblxyXG4gIGNvbnN0IHdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICBjb25zdCBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSDtcclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBjb2xsYXBzZWQ6IGZhbHNlLFxyXG4gICAgcHJldmlvdXNQYXJlbnQ6IHVuZGVmaW5lZFxyXG4gIH07XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiZm9sZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7bmFtZX1dYDtcclxuXHJcbiAgY29uc3QgY29sbGFwc2VHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmFkZCggY29sbGFwc2VHcm91cCApO1xyXG5cclxuICB2YXIgaXNBY2NvcmRpb24gPSBmYWxzZTtcclxuICAvKiogV2hlbiB0cnVlLCB3aWxsIGtlZXAgb25seSBvbmUgY2hpbGQgZm9sZGVyIG9mIHRoaXMgZm9sZGVyIG9wZW4gYXQgYSB0aW1lLlxyXG4gICAqIFNpYmxpbmdzIGF1dG9tYXRpY2FsbHkgY2xvc2UuXHJcbiAgICovXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2FjY29yZGlvbicsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNBY2NvcmRpb247XHJcbiAgICB9LFxyXG4gICAgc2V0OiAoIG5ld1ZhbHVlICkgPT4ge1xyXG4gICAgICBpZiAoIG5ld1ZhbHVlICYmICFpc0FjY29yZGlvbiApIGdyb3VwLmd1aUNoaWxkcmVuLmZpbHRlciggYz0+Yy5pc0ZvbGRlciApLm1hcCggYz0+Yy5jbG9zZSgpICk7XHJcbiAgICAgIGlzQWNjb3JkaW9uID0gbmV3VmFsdWU7XHJcbiAgICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgLy9mbGFnIHRoZSBuZWVkIGZvciBwZXJmb3JtaW5nIGxheW91dCBvZiB0aGUgZm9sZGVyIGhpZXJhcmNoeSBpbiB3aGljaCB0aGlzIGlzIGNvbnRhaW5lZC5cclxuICBncm91cC5yZXF1ZXN0TGF5b3V0ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRJblByb2dyZXNzKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGByZXF1ZXN0ZWQgbGF5b3V0IG9mIGZvbGRlciAke2dyb3VwLmZvbGRlck5hbWV9IHdoaWxlIGxheW91dCBhbHJlYWR5IGluIHByb2dyZXNzLi4uYCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90b3BGb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20gaW5kZXguanMgdXBkYXRlKD8pIGZvciBlYWNoIHRvcEZvbGRlciwgdGhlbiBmcm9tIHdpdGhpbiBwZXJmb3JtTGF5b3V0KCkgZm9yIGVhY2ggY2hpbGQgZm9sZGVyXHJcbiAgZ3JvdXAucGVyZm9ybUxheW91dCA9IHBlcmZvcm1MYXlvdXQ7XHJcblxyXG4gIGNvbnN0IHN0cmFpZ2h0Um90YXRpb24gPSBuZXcgVEhSRUUuUXVhdGVybmlvbigpO1xyXG4gIC8vcHJvdmlkZSBhcmd1bWVudHMgZm9yIGhvdyBjb25zdHJhaW5lZCB0byBiZSwgYW5kIHJlLXVzZSBzYW1lIGZ1bmN0aW9uIGJvdGggb24gZGV0YWNoIGFuZCBlbHNld2hlcmU/XHJcbiAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24gPSBmdW5jdGlvbih0aHJlc2g9MC4wMSkge1xyXG4gICAgY29uc3QgZiA9IHRoaXM7XHJcbiAgICBpZiAoIWYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIHJldHVybjtcclxuICAgIC8vYWx3YXlzIGZvcmNlIHJvdGF0aW9uIHN0cmFpZ2h0IGZvcndhcmQuLi5cclxuICAgIGYuc2V0Um90YXRpb25Gcm9tUXVhdGVybmlvbihzdHJhaWdodFJvdGF0aW9uKTtcclxuXHJcbiAgICAvL3dlIG5lZWQgdG8gYXZvaWQgTmFOIGJlY2F1c2Ugb2YgVGV4dEdlb21ldHJ5IHBvc2l0aW9uIGhhdmluZyBpdGVtU2l6ZSA9PSAyIHdoaWNoIHVwc2V0cyBWZWN0b3IzLmZyb21CdWZmZXJBdHRyaWJ1dGVcclxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuICAgIC8vbWF5YmUgSSBjb3VsZCB1c2UgYSBCb3gyIGFueXdheSBzaW5jZSAzZCBtaWdodCBqdXN0IGNvbmZ1c2UgdGhpbmdzLlxyXG4gICAgY29uc3QgYm94ID0gc2V0Qm94RnJvbU9iamVjdChzY3JhdGNoRm9sZGVyQm94LCBmKTtcclxuICAgIGNvbnN0IGJveFcgPSBib3gubWF4LnggLSBib3gubWluLngsIGJveEggPSBib3gubWF4LnktYm94Lm1heC55O1xyXG4gICAgXHJcbiAgICBjb25zdCBjYW0gPSBmLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljO1xyXG4gICAgY29uc3QgY2FtQm94ID0gY2FtQm94U2V0dXAoY2FtKTsgLy9iaXQgd2FzdGVmdWwgdG8gY2FsbCB0aGlzIGhlcmUsIGJ1dCBpbnNpZ25pZmljYW50LlxyXG4gICAgLy9yZWFsbHksIEkgd2FudCB0byBrbm93IGlmIGl0J3MgJ21vc3RseScgaW52aXNpYmxlLlxyXG4gICAgLy9Vc2luZyB0d28gYm94ZXMsIHJhdGhlciB0aGFuIGZydXN0dW0uc2V0RnJvbU1hdHJpeCggbWF0Lm11bHRpcGx5TWF0cmljZXMoIGNhbS5wcm9qZWN0aW9uTWF0cml4LCBjYW0ubWF0cml4V29ybGRJbnZlcnNlICkgKTtcclxuICAgIC8vKGZydXN0dW0gaXMgdW5uZWNlc3NhcnkgKmNvdWdoKmlmIHdlIGFzc3VtZSBvcnRob2dyYXBoaWMgcGVyc3BlY3RpdmUsIG5vIGNhbWVyYSB0cmFuc2Zvcm0gJiBhcmUgZ2VuZXJhbGx5IGxheCBhYm91dCB6KilcclxuICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IGJveC5pbnRlcnNlY3QoY2FtQm94KTsgLy9jYXJlZnVsIG9mIG9yZGVyOyBpbnRlcnNlY3QoKSBtdXRhdGVzXHJcbiAgICAvLyhYWFg6IHN0cmljdGx5IHNwZWFraW5nLCBpZGVhbGx5IEkgd291bGQgdGFrZSBjYW1lcmEgbWF0cml4V29ybGQgaW50byBhY2NvdW50IGlmIEkgd2FudCB0byBiZSBwcm9wZXIpXHJcbiAgICAvLyhtaWdodCBqdXN0IG1ha2UgbG9nIGEgd2FybmluZyBpZiBpdCdzIHNldCBob3cgSSBkb24ndCBleHBlY3QgaXQsIGJ1dCBwcmVmZXIgbm90IHRvIGxlYXZlIHRyYXBzLilcclxuICAgIFxyXG4gICAgLy9sb29rIGF0IGRpbWVuc2lvbnMgb2YgaW50ZXJzZWN0aW9uIGFuZCBmb3JjZSBpbndhcmRzIGlmIG5lY2Vzc2FyeS4uLlxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uU2l6ZSA9IGludGVyc2VjdGlvbi5nZXRTaXplKHNjcmF0Y2hTaXplKTtcclxuICAgIGNvbnN0IHNjcmVlblcgPSBjYW0ucmlnaHQgLSBjYW0ubGVmdCwgc2NyZWVuSCA9IGNhbS50b3AgLSBjYW0uYm90dG9tO1xyXG4gICAgLy93b3JrIGluIHVuaXRzIGFzIGZyYWN0aW9uIG9mIGJveCB3aWR0aCAoYWx0aG91Z2ggdGhhdCdzIG5vdCBhIGdyZWF0IGlkZWEgd2l0aCBtdWx0aS1jb2x1bW4gZm9sZGVycylcclxuICAgIGludGVyc2VjdGlvblNpemUueCAvPSBib3hXOyBpbnRlcnNlY3Rpb25TaXplLnkgLz0gYm94VztcclxuICAgIGxldCBuZWVkc1VwZGF0ZSA9IGZhbHNlO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgJHtmLmZvbGRlck5hbWV9OiAke0pTT04uc3RyaW5naWZ5KGludGVyc2VjdGlvblNpemUpfSwgdGhyZXNoOiAke3RocmVzaH1gKTtcclxuICAgIGlmIChpbnRlcnNlY3Rpb25TaXplLnggPCB0aHJlc2gpIHsgLy9UT0RPOiBwYXJhbWF0ZXJpc2UgLyBub24tbWFnaWMtbnVtYmVyXHJcbiAgICAgIC8vVE9ETyB3b3JrIG91dCB3aGljaCBzaWRlIHdlJ3JlIG9uLCBtb3ZlIGJ5IG9iamVjdCB3aWR0aC4uLlxyXG4gICAgICBmLnBvc2l0aW9uLnggPSBjYW0ubGVmdCArIHNjcmVlblcvMjtcclxuICAgICAgbmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueSA8IHRocmVzaCkge1xyXG4gICAgICBmLnBvc2l0aW9uLnkgPSBjYW0uYm90dG9tICsgc2NyZWVuSC8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmVlZHNVcGRhdGUpIGYudXBkYXRlTWF0cml4KCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5pc0NvbGxhcHNlZCA9ICgpID0+IHsgcmV0dXJuIHN0YXRlLmNvbGxhcHNlZCB9XHJcbiAgXHJcbiAgLy91c2VmdWwgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhpcyBhcyB3ZWxsLiBVc2luZyBpbiByZW1vdmUgaW1wbGVtZW50YXRpb25cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdndWlDaGlsZHJlbicsIHtcclxuICAgIC8vcGVyaGFwcyBtb2RhbEVkaXRvciBzaG91bGQgYWxzbyBjb3VudCBhcyBhIG1lbWJlciBvZiB0aGlzLi4uXHJcbiAgICAvL2N1cnJlbnRseSBjYW4ndCBzZWUgYW55dGhpbmcgaW4gaW1wbGVtZW50YXRpb24gdGhhdCB3b3VsZCByZXF1aXJlIHRoYXRcclxuICAgIC8vLS0gYWRkaW5nIGhlYWRlckl0ZW1zIHRob3VnaCwgc28gdGhleSdsbCBnZXQgcGlja2VkIHVwIGJ5IHJlbW92ZSgpXHJcbiAgICAvLyAtIG1heWJlIHNhbWUgc2hvdWxkIGFwcGx5IHRvIG1vZGFsRWRpdG9yXHJcbiAgICBnZXQ6ICgpID0+IHsgcmV0dXJuIFsgLi4uY29sbGFwc2VHcm91cC5jaGlsZHJlbiwgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gXSB9XHJcbiAgfSk7XHJcbiAgLy8gcmV0dXJucyB0cnVlIGlmIGFsbCBvZiB0aGUgc3VwcGxpZWQgYXJncyBhcmUgbWVtYmVycyBvZiB0aGlzIGZvbGRlclxyXG4gIGdyb3VwLmhhc0NoaWxkID0gZnVuY3Rpb24gKCAuLi5hcmdzICl7XHJcbiAgICByZXR1cm4gIWFyZ3MuaW5jbHVkZXMoKG9iaikgPT4geyByZXR1cm4gZ3JvdXAuZ3VpQ2hpbGRyZW4uaW5kZXhPZihvYmopID09PSAtMX0pO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuZm9sZGVyTmFtZSA9IG5hbWU7IC8vZm9yIGRlYnVnZ2luZ1xyXG4gIFxyXG4gIC8vICBZZWFoLiBHcm9zcy5cclxuICBjb25zdCBhZGRPcmlnaW5hbCA9IFRIUkVFLkdyb3VwLnByb3RvdHlwZS5hZGQ7XHJcbiAgLy9hcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIHRoaXMgdG8gYmVoYXZlIGxpa2UgYSByZWd1bGFyIFRIUkVFLkdyb3VwLCB0aGUgY2hhbmdlZCBkZWZpbml0aW9uIG9mIHJlbW92ZSBzaG91bGRuJ3QgaHVydFxyXG4gIGNvbnN0IHJlbW92ZU9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZTsgXHJcblxyXG4gIGZ1bmN0aW9uIGFkZEltcGwoIG8gKXtcclxuICAgIC8vIEkgY291bGQgY2hhbmdlIHRoaXMgZnVuY3Rpb24gYXMgcGFydCBvZiBhIHJlZmFjdG9yIHRvIHBsYWNlIGV2ZXJ5dGhpbmcgYXQgdG9wRm9sZGVyIGxldmVsLi4uXHJcbiAgICAvLyBpcyB0aGF0IGEgZ29vZCBpZGVhLCBvciBhIGJhZCBpZGVhP1xyXG4gICAgYWRkT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcbiAgZnVuY3Rpb24gcmVtb3ZlSW1wbCggbyApe1xyXG4gICAgcmVtb3ZlT3JpZ2luYWwuY2FsbCggZ3JvdXAsIG8gKTtcclxuICB9XHJcblxyXG4gIC8vYWRkSW1wbCggY29sbGFwc2VHcm91cCApOyAvL3JlZHVuZGFudC5cclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgsIHRydWUgKTtcclxuICBhZGRJbXBsKCBwYW5lbCApO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDEuNTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwgKTtcclxuXHJcbiAgY29uc3QgZG93bkFycm93ID0gTGF5b3V0LmNyZWF0ZURvd25BcnJvdygpO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBkb3duQXJyb3cuZ2VvbWV0cnksIDB4ZmZmZmZmICk7XHJcbiAgZG93bkFycm93LnBvc2l0aW9uLnNldCggMC4wNSwgMCwgZGVwdGggICogMS4wMSApO1xyXG4gIHBhbmVsLmFkZCggZG93bkFycm93ICk7XHJcblxyXG4gIGNvbnN0IGdyYWJiZXIgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBMYXlvdXQuRk9MREVSX0dSQUJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGdyYWJiZXIucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUICogMC44NjsgLy9YWFg6IG1hZ2ljIG51bWJlclxyXG4gIGdyYWJiZXIubmFtZSA9ICdncmFiYmVyJztcclxuICBhZGRJbXBsKCBncmFiYmVyICk7XHJcblxyXG4gIGNvbnN0IGdyYWJCYXIgPSBHcmFwaGljLmdyYWJCYXIoKTtcclxuICBncmFiQmFyLnBvc2l0aW9uLnNldCggd2lkdGggKiAwLjUsIDAsIGRlcHRoICogMS4wMDEgKTtcclxuICBncmFiYmVyLmFkZCggZ3JhYkJhciApO1xyXG4gIGdyb3VwLmlzRm9sZGVyID0gdHJ1ZTtcclxuICBncm91cC5oaWRlR3JhYmJlciA9IGZ1bmN0aW9uKCkgeyBncmFiYmVyLnZpc2libGUgPSBmYWxzZSB9O1xyXG4gIGdyb3VwLnNob3dHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IHRydWUgfTtcclxuICBncm91cC5oaWRlSGVhZGVyID0gZnVuY3Rpb24oKSB7IFxyXG4gICAgZ3JvdXAuaGlkZUdyYWJiZXIoKTtcclxuICAgIC8vZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSBmYWxzZTtcclxuICB9O1xyXG4gIGdyb3VwLnNob3dIZWFkZXIgPSAoKSA9PiB7XHJcbiAgICAvL2dyYWJiZXIudmlzaWJsZSA9IGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZG93bkFycm93LnZpc2libGUgPSBwYW5lbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vVE9ETzogaW50ZXJmYWNlIGZvciBhZGRpbmcgdGhpbmdzIHRvIHRoaXMuLi4gTk9UICdzaG93SW5Gb2xkZXJIZWFkZXInIG1ldGhvZCAvIHByb3BlcnR5IG9uIGxpbmVhciBpdGVtcy4uLlxyXG4gIGNvbnN0IGhlYWRlckl0ZW1zID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcGFuZWwuYWRkKGhlYWRlckl0ZW1zKTtcclxuICAvL3RoaXMgZnVuY3Rpb24gd2lsbCBhdHRlbXB0IHRvIG1ha2Ugb2JqIGJlaGF2ZSBhcyBjb250cm9sbGVyIGxheWVkIG91dCBpbiBoZWFkZXJJdGVtcyxcclxuICAvL2Jhc2VkIG9uIHNvbWUgYXNzdW1wdGlvbnMgYWJvdXQgb2JqIHRoYXQgbWF5IGJlIHRydWUgYXQgdGltZSBvZiB3cml0aW5nLi4uXHJcbiAgLy9idXQgYXJlIHBlbmRpbmcgbW9yZSByaWdvcm91cyBzcGVjaWZpY2F0aW9uIC8gcmVmYWN0b3JpbmcgZXRjLlxyXG4gIGdyb3VwLmFkZEhlYWRlckl0ZW0gPSBmdW5jdGlvbihvYmope1xyXG4gICAgaGVhZGVySXRlbXMuYWRkKG9iaik7XHJcbiAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBvYmouaXNIZWFkZXJPYmplY3QgPSB0cnVlO1xyXG5cclxuICAgIC8vYWxzbyBuZWVkIHRvIGFkZCB0byBnbG9iYWwgY29udHJvbGxlcnMgbGlzdCBldGMuIE5COjogbWFrZSBzdXJlIHRoYXQgdGhleSB3aWxsIGdldCByZW1vdmVkIGFzIHdlbGxcclxuICAgIC8vLS0tIHRoaXMgZ2VuZXJpYyBpbnRlcmFjdGlvbi51cGRhdGUgZG9lc24ndCBtYWtlIGxpc3RlbigpIHdvcmsgcHJvcGVybHkuXHJcbiAgICBpZiAoIW9iai51cGRhdGVDb250cm9sKSBvYmoudXBkYXRlQ29udHJvbCA9IGlucHV0T2JqZWN0cyA9PiBvYmouaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cyk7XHJcbiAgICBvYmouaGl0c2NhbiA9IFsgb2JqIF07IC8vaGFja3kgaGFja3lcclxuICAgIGdsb2JhbENvbnRyb2xsZXJzLnB1c2gob2JqKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOiAweDg4ODg4OCwgdHJhbnNwYXJlbnQ6IHRydWV9KTtcclxuICBjb25zdCBoID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg7XHJcbiAgY29uc3QgZGV0YWNoQnV0dG9uUmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggaCwgaCwgTGF5b3V0LkJVVFRPTl9ERVBUSCoyICk7XHJcbiAgLy9zb21ld2hhdCBiYWNrd2FyZHMgd2F5IG9mIGdldHRpbmcgdGV4dHVyZXMuLi4gVE9ETyBtYXliZSBjaGFuZ2UgKGFsb25nIHdpdGggb3RoZXIgc3R5bGUgY29uc2lzdGVuY3kgdHlwZSBzdHVmZilcclxuICBjb25zdCBkb2NrVGV4dHVyZSA9IEdyYXBoaWMuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBjb25zdCB1bmRvY2tUZXh0dXJlID0gR3JhcGhpYy51bmRvY2soKS5tYXRlcmlhbC5tYXA7XHJcbiAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gdW5kb2NrVGV4dHVyZTtcclxuICBjb25zdCBkZXRhY2hCdXR0b24gPSBuZXcgVEhSRUUuTWVzaCggIGRldGFjaEJ1dHRvblJlY3QsIGRldGFjaEJ1dHRvbk1hdGVyaWFsICk7XHJcbiAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBmYWxzZTtcclxuICBkZXRhY2hCdXR0b24ucG9zaXRpb24ueCA9IExheW91dC5GT0xERVJfV0lEVEggLSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICBjb25zdCBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKGRldGFjaEJ1dHRvbik7XHJcbiAgZGV0YWNoQnV0dG9uLmludGVyYWN0aW9uID0gZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb247XHJcbiAgZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChncm91cC5kZXRhY2hlZFBhcmVudCkge1xyXG4gICAgICBncm91cC5yZWF0dGFjaCgpO1xyXG4gICAgfSBlbHNlIGdyb3VwLmRldGFjaCgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG4gIC8vaGVhZGVySXRlbXMuYWRkKGRldGFjaEJ1dHRvbik7XHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbShkZXRhY2hCdXR0b24pO1xyXG5cclxuICBsZXQgaXNEZXRhY2hhYmxlID0gZmFsc2U7XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBncm91cCwgJ2RldGFjaGFibGUnLCB7XHJcbiAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGlzRGV0YWNoYWJsZTtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gaXNEZXRhY2hhYmxlKSByZXR1cm47XHJcbiAgICAgIGRldGFjaEJ1dHRvbi52aXNpYmxlID0gbmV3VmFsdWU7XHJcbiAgICAgIGlzRGV0YWNoYWJsZSA9IG5ld1ZhbHVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgZ3JvdXAuYWRkID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGNvbnN0IG5ld0NvbnRyb2xsZXIgPSBndWlBZGQoIC4uLmFyZ3MgKTtcclxuXHJcbiAgICBpZiggbmV3Q29udHJvbGxlciApe1xyXG4gICAgICBncm91cC5hZGRDb250cm9sbGVyKCBuZXdDb250cm9sbGVyICk7XHJcbiAgICAgIHJldHVybiBuZXdDb250cm9sbGVyO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBTb21lIGNvbnRyb2xsZXJzIG1heSBicmluZyB1cCBzdWItR1VJcyB3aGljaCBoYXZlIHRoZSBwb3RlbnRpYWxcclxuICAgIHRvIG92ZXJsYXAgLyBjbGFzaC4gIFRoaXMgZW5zdXJlcyBvbmx5IG9uZSBpcyBwcmVzZW50IGF0IGEgdGltZS5cclxuICAqL1xyXG4gIGdyb3VwLnNldE1vZGFsRWRpdG9yID0gZnVuY3Rpb24oZSl7XHJcbiAgICAvL1RoaXMgY291bGQgZ28gd3JvbmcgaWYgZm9sZGVyIGhpZXJhcmNoeSBjaGFuZ2VzIHNpZ25pZmljYW50bHkuXHJcbiAgICAvL1Nob3VsZCBiZSBnb29kIGVub3VnaCBmb3Igcm9jayduJ3JvbGwgKGZhbW91cyBsYXN0IHdvcmRzKS5cclxuICAgIC8vSSBjb3VsZCBtYWtlIGl0IHNvIHRoYXQgb25seSBvbmUgb2YgdGhlc2UgdGhpbmdzIHdhcyBldmVyIHZpc2libGVcclxuICAgIC8vYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtLiAgVGhhdCBzaG91bGQgYmUgZWFzaWVyIHRvIG1ha2Ugcm9idXN0LCBhbnl3YXkuLi5cclxuICAgIC8vYW5kIHNhdmVzIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLlxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYgKGZvbGRlci5tb2RhbEVkaXRvcikgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IGU7XHJcbiAgICBpZiAoIWUpIHJldHVybjtcclxuICAgIGUudmlzaWJsZSA9IHRydWU7XHJcbiAgICBpZiAoZS5wZXJmb3JtTGF5b3V0KSBlLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIGZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gdHJ1ZTtcclxuICAgIC8vYWRkIGEgZmxhZyB0byBhbGwgY2hpbGRyZW4gcmVjdXJzaXZlbHkgc28gdGhhdCBpbnRlcmFjdGlvbiBzeXN0ZW0gY2FuIGlkZW50aWZ5IHRoZW0gYXMgYmVsb25naW5nIHRvIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAvL1RPRE86IHNraXAgaWYgYWxyZWFkeSBkb25lLi4uXHJcbiAgICBmdW5jdGlvbiBkZWNvcmF0ZUNoaWxkcmVuKHBhcmVudCkge1xyXG4gICAgICBwYXJlbnQuY2hpbGRyZW4uZm9yRWFjaChjID0+IHtcclxuICAgICAgICBjLnVzZXJEYXRhLnBhcnRPZk1vZGFsID0gZTtcclxuICAgICAgICBkZWNvcmF0ZUNoaWxkcmVuKGMpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGRlY29yYXRlQ2hpbGRyZW4oZSk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgY3VycmVudCBtb2RhbCBlZGl0b3IgZnJvbSB0aGlzIGZvbGRlclxyXG4gICAqICoqYnV0IG5vdCBpZiBpdCB3YXMgYWRkZWQgZHVyaW5nIHRoZSBjdXJyZW50IGNvbnRyb2xsZXIgdXBkYXRlLFxyXG4gICAqIGFzIGluZGljYXRlZCBieSBhIGZsYWcgc2V0IGluIHNldE1vZGFsQ29udHJvbGxlciBhbmQgcmVzZXQgaW4gaW5kZXguanMgdXBkYXRlKipcclxuICAgKi9cclxuICBncm91cC5jbGVhck1vZGFsRWRpdG9yID0gZnVuY3Rpb24oKSB7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoIWZvbGRlci5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgIC8vZm9sZGVyLnNldE1vZGFsRWRpdG9yKG51bGwpO1xyXG4gICAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSB7XHJcbiAgICAgICAgZm9sZGVyLm1vZGFsRWRpdG9yLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcblxyXG4gIC8qIFxyXG4gIFJlbW92ZXMgdGhlIGdpdmVuIGNvbnRyb2xsZXJzIGZyb20gdGhlIEdVSS4gID4+Pk9uY2UgcmVtb3ZlZCwgdGhlIGNvbnRyb2xsZXJzIHdpbGwgZWZmZWN0aXZlbHkgYmUgaW52YWxpZCBmb3IgdXNlPDw8XHJcbiAgPj4+IHNvIGRpc3Bvc2Ugb2YgdGhlbSBhcyB3ZWxsPyBOZWVkIHRvIGJlIGNhcmVmdWwgYWJvdXQgdGV4dHVyZXMgLyBhbnl0aGluZyBzaGFyZWQuLi4gPDw8XHJcbiAgYXMgdGhleSB3aWxsIGFsc28gYmUgcmVtb3ZlZCBmcm9tIHRoZSBnbG9iYWwgbGlzdCBvZiBhbGwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzLiAgVXNlICdkZXRhY2gnIGluc3RlYWQgaWYgaXQgaXNcclxuICBkZXNpcmVkIHRvIHJldXNlIEdVSSBlbGVtZW50cyBlbHNld2hlcmUuXHJcblxyXG4gIElmIHRoZSBhcmd1bWVudHMgYXJlIGludmFsaWQsIGl0IHdpbGwgYXR0ZW1wdCB0byBkZXRlY3QgdGhpcyBiZWZvcmUgbWFraW5nIGFueSBjaGFuZ2VzLCBcclxuICBhYm9ydGluZyB0aGUgcHJvY2VzcyBhbmQgcmV0dXJuaW5nIGZhbHNlIGZyb20gdGhpcyBtZXRob2QuXHJcblxyXG4gIE5vdGU6IGFzIHdpdGggYWRkLCB0aGlzIG92ZXJ3cml0ZXMgYW4gZXhpc3RpbmcgcHJvcGVydHkgb2YgVEhSRUUuR3JvdXAuXHJcbiAgQXMgbG9uZyBhcyBuby1vbmUgZXhwZWN0cyBmb2xkZXJzIHRvIGJlaGF2ZSBsaWtlIHJlZ3VsYXIgVEhSRUUuR3JvdXBzLCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIuXHJcbiAgKi9cclxuICBncm91cC5yZW1vdmUgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgLy9ndWlSZW1vdmUgaXMgcGFzc2VkIGluIGZyb20gaW5kZXguanMgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBzYW5pdHkgY2hlY2tpbmcgJiByZW1vdmluZyBmcm9tIGdsb2JhbCBjb250cm9sbGVycyBsaXN0XHJcbiAgICBjb25zdCBvayA9IGd1aVJlbW92ZSggLi4uYXJncyApOyAvLyBhbnkgaW52YWxpZCBhcmd1bWVudHMgc2hvdWxkIGNhdXNlIHRoaXMgdG8gcmV0dXJuIGZhbHNlIHdpdGggbm8gc2lkZS1lZmZlY3RzXHJcbiAgICBpZiAoIW9rKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgY29uc29sZS5hc3NlcnQoZ3JvdXAuaGFzQ2hpbGQob2JqKSwgXCJpbnRlcm5hbCBwcm9ibGVtIHdpdGggaG91c2VrZWVwaW5nIGxvZ2ljIG9mIGRhdC5HVUlWUiBmb2xkZXIgbm90IGNhdWdodCBieSBzYW5pdHkgY2hlY2tcIik7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBvYmoucmVtb3ZlKCAuLi5vYmouZ3VpQ2hpbGRyZW4gKTtcclxuICAgICAgfVxyXG4gICAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShvYmopO1xyXG4gICAgfSk7XHJcbiAgICAvL1RPRE86IGRlZmVyIGFjdHVhbCBsYXlvdXQgcGVyZm9ybWFuY2U7IHNldCBhIGZsYWcgYW5kIG1ha2Ugc3VyZSBpdCBnZXRzIGRvbmUgYmVmb3JlIGFueSByZW5kZXJpbmcgb3IgaGl0LXRlc3RpbmcgaGFwcGVucy5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH07XHJcblxyXG4gIC8vcmF0aGVyIHRoYW4gbWV0aG9kLCBkZXRhY2hlZFBhcmVudCBiZSBhIHByb3BlcnR5IHRoYXQgZG9lcyB0aGlzIHN0dWZmIGluIHNldHRlci4uLlxyXG4gIC8vYW55d2F5LCBib3RoIGFyZSByZWFsbHkgbWVhbnQgZm9yIGludGVybmFsIHVzZSwgYXMgaGludGVkIGJ5IF8gaW4gbmFtZS5cclxuICBncm91cC5fc2V0RGV0YWNoZWRGcm9tID0gKHBhcmVudCkgPT4ge1xyXG4gICAgZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICBpZiAocGFyZW50ID09PSBudWxsKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbi5tYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwubWFwID0gZG9ja1RleHR1cmU7XHJcbiAgICAgIGdyb3VwLnNob3dIZWFkZXIoKTtcclxuICAgICAgZ3JvdXAuc2hvd0dyYWJiZXIoKTtcclxuICAgICAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIERldGFjaCBhIGNoaWxkIGZvbGRlciBmcm9tIHRoaXMgZm9sZGVyIGhpZXJhcmNoeSwgc3VjaCB0aGF0IGl0IGNhbiBiZSB1c2VkIGVsc2V3aGVyZSBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICogXHJcbiAgICogKHdpbGwgbm90IGJlIHZpc2libGUgdW50aWwgZXhwbGljaXRseSBhZGRlZCBlbHNld2hlcmU7IFxyXG4gICAqIGNhbGxpbmcgZGV0YWNoKCkgaW5zdGVhZCB3aWxsIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYW5kIGlzIG1vcmUgaW50ZW5kZWQgZm9yIHVzZSBpbiBhcHBsaWNhdGlvbiBjb2RlXHJcbiAgICogd2hpbGUgdGhpcyBtZXRob2QgaXMgbW9yZSBvZiBhbiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuKVxyXG4gICAqL1xyXG4gIGdyb3VwLmRldGFjaENoaWxkID0gKGNoaWxkKSA9PiB7XHJcbiAgICBpZiAoIWNoaWxkLmlzRm9sZGVyIHx8IGNoaWxkLmZvbGRlciAhPT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIGNoaWxkLl9zZXREZXRhY2hlZEZyb20oZ3JvdXApO1xyXG4gICAgY29sbGFwc2VHcm91cC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgLy9USFJFRS5PYmplY3QzRC5wcm90b3R5cGUucmVtb3ZlLmNhbGwoZ3JvdXAsIGNoaWxkKTtcclxuICAgIHJlbW92ZUltcGwoY2hpbGQpO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwOyAvL29yIGNoaWxkP1xyXG4gIH07XHJcblxyXG4gIC8qXHJcbiAgICBEZXRhY2ggdGhpcyBvYmplY3QgZnJvbSBpdHMgcGFyZW50LCBhbmQgcmVhdHRhY2ggdG8gc2NlbmVncmFwaCBhcyBhIHNpYmxpbmcgb2YgdGhlICd0b3AgbGV2ZWwnIGZvbGRlciBpblxyXG4gICAgdGhlIGhpZXJhcmNoeSB0aGlzIHByZXZpb3VzbHkgd2FzIGEgbWVtYmVyIG9mLlxyXG4gICovXHJcbiAgZ3JvdXAuZGV0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciA9PT0gZ3JvdXApIHJldHVybiBmYWxzZTtcclxuICAgIC8vYXV0b21hdGljYWxseSBhZGQgdG8gVEhSRUUgcGFyZW50IG9mIHRvcCBsZXZlbCBmb2xkZXIgYW5kIHRyeSB0byBzZXQgYXBwcm9wcmlhdGUgc2NhbGUgLyB0cmFuc2Zvcm0uLi5cclxuICAgIC8vaWYgdGhhdCBmb2xkZXIgYmVpbmdNb3ZlZCBhdCB0aGUgcHJlc2VudCB0aW1lLCB0aGVuIGl0IHdpbGwgaGF2ZSBhbiBvbGRQYXJlbnQgdG8gd2hpY2ggd2Ugc2hvdWxkIGF0dGFjaCBpbnN0ZWFkLlxyXG4gICAgLy8uLi5hbHRob3VnaCBpdCBtYXkgYmUgdGhhdCB3ZSB3YW50IHRoZSBkZXRhY2hlZCBmb2xkZXIgdG8gbW92ZSB3aXRoIHRoZSBjb250cm9sbGVyIHVudGlsIGJ1dHRvbiBpcyByZWxlYXNlZC4uLlxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgZ3JvdXAuZm9sZGVyLmRldGFjaENoaWxkKGdyb3VwKTtcclxuICAgIFxyXG4gICAgLy9hZGRpbmcgdG8gdG9wRm9sZGVyLnBhcmVudCBJRiBBVkFJTEFCTEUsIG5vdCBvbGRQYXJlbnQsIHBlbmRpbmcgd29ya2luZyBvdXQgdHJhbnNmb3JtIGxhdGVyIGlmIGJlaW5nTW92ZWQuLi5cclxuICAgIGNvbnN0IHBhciA9IHRvcEZvbGRlci5wYXJlbnQgfHwgZ3JvdXAucGFyZW50OyBcclxuICAgIGlmICghcGFyKSByZXR1cm47IC8vU0pQVCBjaGFuZ2UgZnJvbSBDU3ludGgsIG5vdCBjYXJlZnVsbHkgcmV2aWV3ZWQgYnV0IHByb2JhYmx5IHJpZ2h0LlxyXG4gICAgcGFyLmFkZChncm91cCk7XHJcbiAgICBjb25zdCBtID0gdG9wRm9sZGVyLm1hdHJpeC5jbG9uZSgpO1xyXG5cclxuICAgIGdyb3VwLmFwcGx5TWF0cml4NChtKTtcclxuICAgIG0uc2V0UG9zaXRpb24obmV3IFRIUkVFLlZlY3RvcjMoKSk7XHJcbiAgICBjb25zdCB0ID0gbmV3IFRIUkVFLlZlY3RvcjMoTGF5b3V0LkZPTERFUl9XSURUSCwgMCwgMCkuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgZ3JvdXAucG9zaXRpb24uYWRkKHQpO1xyXG4gICAgXHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9kZXRhY2ggdGhpcyBvYmplY3QgZnJvbSB0b3BGb2xkZXIucGFyZW50IHRoZW4gYXR0YWNoIHRvIHRvcEZvbGRlci5vbGRQYXJlbnQgd2hpbGUgbWFpbnRhaW5pbmcgbWF0cml4V29ybGRcclxuICAgICAgLy8uLi5hY3R1YWxseSwgKG1heWJlKSB3ZSB3YW50IHRvIGRvIHRoaXMgc2NlbmVTaGlmdCBidXNpbmVzcyB3aGVuIGJlaW5nTW92ZWQgZmluaXNoZXMuLi5cclxuICAgICAgLy8gcHV0IHRoaW5ncyBpbnRvIHNlbWlEZXRhY2hlZCwgc28gdGhhdCB3aGVuIGJlaW5nTW92ZWQgaXMgc2V0IHRvIGZhbHNlLCB0aGV5IGNhbiBiZSBzaGlmdGVkLlxyXG4gICAgICAvL29yIG1heWJlIHdoYXQgd2UgcmVhbGx5IHdhbnQgaXMgdG8gaGF2ZSBhbiBvcHRpb24gdG8gJ3BpbicgcGFuZWxzIHRvZ2V0aGVyIGFuZCB1bnBpbiB0aGVtLCByYXRoZXIgdGhhbiBhc3N1bWVcclxuICAgICAgLy9hdHRhY2htZW50IGNoYW5nZXMgd2hlbiBidXR0b24gcmVsZWFzZWQuICBGb3Igbm93LCB0aGlzIGlzIG5vdCBxdWl0ZSB3b3JraW5nIHJpZ2h0LCBzby4uLlxyXG4gICAgICBjb25zdCBkZWZlclNjZW5lU2hpZnRXaGlsZU1vdmluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgLy93ZSBjb3VsZCBqdXN0IGRldGFjaCwgbGVhdmluZyB0aGUgb2JqZWN0IGFzIGRpcmVjdCBkZXNjZW5kZW50IG9mIHNjZW5lLCBidXQgdGhlcmUgbWF5IGJlIHJlYWwgcmVhc29ucyB0byBzaXR1YXRlXHJcbiAgICAgIC8vdGhlIEdVSSB3aXRoaW4gaGllcmFyY2h5IHNvbWVob3cgKGxpa2UgYXMgY2hpbGRyZW4gb2YgYSBjb250cm9sbGVyKVxyXG4gICAgICBcclxuICAgICAgaWYgKGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5wdXNoKGdyb3VwKTtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEub2xkUGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsvL1hYWDogaGFjayBiZWNhdXNlIHRvcEZvbGRlci5vbGRQYXJlbnQgd2FzIGJlaW5nIHVuZGVmaW5lZCBiZWZvcmUgYmVpbmdNb3ZlZCA9IGZhbHNlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgY2hpbGQgPSBncm91cDtcclxuICAgICAgICBjb25zdCBvbGRQYXJlbnQgPSB0b3BGb2xkZXIucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IHRvcEZvbGRlci5vbGRQYXJlbnQ7IC8vbmV3UGFyZW50IHRvIGF0dGFjaCB0byBpcyBvbGRQYXJlbnQgb2YgdGhlIGZvbGRlciBiZWZvcmUgaXQgd2FzIGJlaW5nTW92ZWRcclxuICBcclxuICAgICAgICBzY2VuZVNoaWZ0KGNoaWxkLCBvbGRQYXJlbnQsIG5ld1BhcmVudCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IFxyXG4gICAgZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSB0b3BGb2xkZXIudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7IC8vVE9ETzogcmV2aXNlIGhvdyB0byBwYXNzIHRoaXMgaW5mb1xyXG4gICAgZ3JvdXAuZml4Rm9sZGVyUG9zaXRpb24oMC41KTtcclxuICAgIGdyb3VwLm9wZW4oKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICAvL2FsYSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2V4YW1wbGVzL3V0aWxzL1NjZW5lVXRpbHNcclxuICBmdW5jdGlvbiBzY2VuZURldGFjaChjaGlsZCwgcGFyZW50LCBzY2VuZSkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQocGFyZW50Lm1hdHJpeFdvcmxkKTtcclxuICAgIHBhcmVudC5yZW1vdmUoY2hpbGQpO1xyXG4gICAgc2NlbmUuYWRkKGNoaWxkKVxyXG4gIH1cclxuICBmdW5jdGlvbiBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIHBhcmVudCkge1xyXG4gICAgcGFyZW50LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICBjaGlsZC5hcHBseU1hdHJpeDQoIG5ldyBUSFJFRS5NYXRyaXg0KCkuZ2V0SW52ZXJzZShwYXJlbnQubWF0cml4V29ybGQpICk7XHJcblx0XHRzY2VuZS5yZW1vdmUoY2hpbGQpO1xyXG5cdFx0cGFyZW50LmFkZChjaGlsZCk7ICAgXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KSB7XHJcbiAgICBsZXQgbm9kZSA9IG9sZFBhcmVudDtcclxuICAgIHdoaWxlIChub2RlLnBhcmVudCkgbm9kZSA9IG5vZGUucGFyZW50O1xyXG4gICAgY29uc3Qgc2NlbmUgPSBub2RlO1xyXG4gICAgXHJcbiAgICBzY2VuZURldGFjaChjaGlsZCwgb2xkUGFyZW50LCBzY2VuZSk7XHJcbiAgICBzY2VuZUF0dGFjaChjaGlsZCwgc2NlbmUsIG5ld1BhcmVudCk7XHJcbiAgfVxyXG5cclxuICBncm91cC5kZXRhY2hGcm9tUGFyZW50ID0gZ3JvdXAuZGV0YWNoO1xyXG4gIFxyXG4gIGdyb3VwLnJlYXR0YWNoID0gKCkgPT4ge1xyXG4gICAgaWYgKCFncm91cC5kZXRhY2hlZFBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9UT0RPOiBjaGVjayBsYXlvdXQgd2l0aCB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiB3cmFwcGluZyBldGMuXHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudC5hZGRGb2xkZXIoZ3JvdXApOyAvLyB0aGlzIHdpbGwgYWxzbyBkZWFsIHdpdGggY29zbWV0aWNzIChoaWRlR3JhYmJlciBldGMpXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cC5kZXRhY2hlZFBhcmVudCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLmJlaW5nTW92ZWQpIHtcclxuICAgICAgLy9tYXliZSB3ZSBjb3VsZCBkbyB0aGlzIGtpbmQgb2Ygc3R1ZmYgaW4gX3NldERldGFjaGVkRnJvbVxyXG4gICAgICAvL2luIGFueSBjYXNlLCBpdCdzIGlycmVsZXZhbnQgaWYgXHJcbiAgICAgIGxldCBzZW1pcyA9IHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQ7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VtaXMuaW5kZXhPZihncm91cCk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICAvL2dyb3VwLmRldGFjaGVkUGFyZW50ID0gbnVsbDtcclxuICAgIGdyb3VwLl9zZXREZXRhY2hlZEZyb20obnVsbCk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmFkZENvbnRyb2xsZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiggb2JqICl7XHJcbiAgICAgIGlmIChvYmouaXNGb2xkZXIpIHtcclxuICAgICAgICBncm91cC5hZGRGb2xkZXIob2JqKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICB9XHJcbiAgICAgIC8vWFhYOiBoYWNraW5nIGluIHNvbWUgdW5pdmVyc2FsIHRvb2x0aXAgc3VwcG9ydFxyXG4gICAgICBpZiAob2JqLnNldFRvb2xUaXApIHJldHVybjsgLy9idXQgbm90IGlmIGEgbW9yZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBhbHJlYWR5IGV4aXN0cyAoc2VlIGRyb3Bkb3duLi4uKVxyXG4gICAgICBvYmouc2V0VG9vbFRpcCA9IHRpcCA9PiB7XHJcbiAgICAgICAgb2JqLnVzZXJEYXRhLnRpcCA9IHRpcDtcclxuICAgICAgICAvL1RPRE86IHBheSBtb3JlIGF0dGVudGlvbiB0byBsYXlvdXQgY29uZmlnIC8gbWFrZSBjcmVhdGVUb29sVGlwIGhhdmUgc2ltcGxlciBhcmd1bWVudHNcclxuICAgICAgICBjb25zdCB0aXBPYmogPSBjcmVhdGVUb29sVGlwKHRleHRDcmVhdG9yLCB0aXAsIExheW91dC5GT0xERVJfV0lEVEgsIG9iai5zcGFjaW5nLCBMYXlvdXQuQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwT2JqID0gdGlwT2JqO1xyXG4gICAgICAgIC8vYXNzb2NpYXRlIGV2ZW50IHdpdGggaG92ZXIgb24gYXBwcm9wcmlhdGUgaGl0c2Nhbi4uLlxyXG5cclxuICAgICAgICBpZiAob2JqLmludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgICAvL1RPRE86IGV2ZW50cy5vZmYoKSBpZiByZXBsYWNpbmcgb2xkIHRvb2x0aXAgKG9yIG5vdCByZXBlYXRpbmcgb24oKSkuXHJcbiAgICAgICAgICBvYmouaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCd0aWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAvL2Rvbid0IGp1c3Qgc2V0IHZpc2liaWxpdHk7IGFkZC9yZW1vdmUgYXMgdGhlc2UgYXJlIGtpbGxpbmcgZnJhbWVyYXRlIGluIGxhcmdlIFZSIGd1aXMuXHJcbiAgICAgICAgICAgIC8vUkVWSUVXLi4uIGNvbnNpZGVyaW5nIG1ha2luZyB0b29sdGlwcyB3b3JrIHdoZW4gaG92ZXJpbmcgb24gbGFiZWwgYXMgd2VsbCxcclxuICAgICAgICAgICAgLy8gYnV0IG9mIGNvdXJzZSB0aGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgbW9yZSBhYm91dCB0aGUgaW50ZXJhY3Rpb24gc2V0dXAsXHJcbiAgICAgICAgICAgIC8vIGFuZCBoYXZpbmcgbW9yZSBvYmplY3RzIHRvIHRlc3QgaW4gc2NlbmUgaGllcmFyY2h5LlxyXG4gICAgICAgICAgICAvLyBMZWF2aW5nIGZvciBub3csIGlmIHdvcmtpbmcgbW9yZSBvbiB0aGUgbGlicmFyeSwgaG9wZWZ1bGx5IGZpeCBob3ZlciBldmVudCBldGMuXHJcbiAgICAgICAgICAgIGlmIChvYmoudmlzaWJsZSkgc2V0VmlzaWJpbGl0eShvYmosIHRpcE9iaiwgb2JqLmludGVyYWN0aW9uLmhvdmVyaW5nKCkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYGNhbid0IGNyZWF0ZSB0b29sdGlwIGZvciAke29iai5ndWlUeXBlfSBiZWNhdXNlIHRoZXJlJ3Mgbm8gb2JqLmludGVyYWN0aW9uIHByb3BlcnR5Li4uYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBvYmouZ2V0VG9vbFRpcCA9ICgpID0+IG9iai51c2VyRGF0YS50aXA7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuYWRkRm9sZGVyID0gZnVuY3Rpb24oIC4uLmFyZ3MgKXtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24gKG9iaikge1xyXG4gICAgICAvL1RPRE8gaWYgb2JqIGlzIHN0cmluZywgbWFrZSBhIG5ldyBndWkgYW5kIGFkZCAvIHJldHVybiBpdC4uLiBidXQgd2hhdCBhYm91dCB2YXJhcmdzP1xyXG4gICAgICBjb2xsYXBzZUdyb3VwLmFkZCggb2JqICk7XHJcbiAgICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgICAgb2JqLm1hdHJpeC5pZGVudGl0eSgpO1xyXG4gICAgICBvYmouc2NhbGUuc2V0KDEsMSwxKTtcclxuICAgICAgb2JqLnBvc2l0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIG9iai5yb3RhdGlvbi5zZXQoMCwwLDApO1xyXG4gICAgICBcclxuICAgICAgb2JqLmhpZGVHcmFiYmVyKCk7XHJcbiAgICAgIG9iai5jbG9zZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnByb21vdGVaT3JkZXIgPSAoKSA9PiB7XHJcbiAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCB8fCAhdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGRuJ3QgYmUgYSAncHVibGljIG1ldGhvZCcgKGJ1dCBtYXliZSB0aGVyZSBzaG91bGQgYmUgYSB3ZWxsLWRlZmluZWQgcHVibGljIGludGVyZmFjZSkuXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFdhcm5pbmc6IGluY29uc2lzdGVuY3kgaW4gZm9sZGVyIGhvdXNla2VlcGluZ2ApO1xyXG4gICAgfVxyXG4gICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgIHRvcEZvbGRlclN0YWNrLnB1c2goZ3JvdXApO1xyXG4gICAgLy8gY29uc29sZS5sb2coYHByb21vdGluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAvL3RoaXMgd2lsbCByZXN1bHQgaW4gdGhlIG9iamVjdCB6IGJlaW5nIGRpZmZlcmVudCBmcm9tIHdoZW4gbW91c2VJbnRlcnNlY3Rpb24gaGl0IGl0IGVhcmxpZXIgaW4gdXBkYXRlLlxyXG4gICAgLy9tb3VzZUludGVyc2VjdGlvbiB3aWxsIHRoZW4gbGF0ZXIgYmUgdXNlZCBpbiBoYW5kbGVUaWNrIG9mIGdyYWIgaW50ZXJhY3Rpb24sIHRvIGZ1cnRoZXIgbXV0YXRlIHBvc2l0aW9uXHJcbiAgICAvL3NlZW1zIG9rIHRob3VnaCAoYXMgb2YgMDQvMTIvMTgpXHJcbiAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIC8vZ3JvdXAudXNlckRhdGEub3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0ID0gIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dDtcclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUxheW91dCgpe1xyXG4gICAgcGVyZm9ybUhlYWRlckxheW91dCgpO1xyXG4gICAgXHJcbiAgICBjb25zdCB3cmFwTmVzdGVkID0gZmFsc2U7XHJcbiAgICBcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIC8vc3RhcnRpbmcgd2hvbGUgbmV3IGxheW91dCBvZiB0b3BGb2xkZXI/XHJcbiAgICBpZiAodG9wRm9sZGVyID09PSBncm91cCkge1xyXG4gICAgICBpZiAodG9wRm9sZGVyLm1vZGFsRWRpdG9yICYmIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KSB0b3BGb2xkZXIubW9kYWxFZGl0b3IucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICBcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gMDtcclxuICAgICAgdG9wRm9sZGVyLnVzZXJEYXRhLmNvbHVtbllPZmYgPSAtdG9wRm9sZGVyLnBvc2l0aW9uLnk7XHJcbiAgICAgIC8vSSBjb3VsZCB1bmRlZmluZSB0aGVzZSBhdCB0aGUgZW5kLCBidXQgdGhlcmUncyBubyBwb2ludC5cclxuXHJcbiAgICAgIGlmICghdG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgYWRkaW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSkuam9pbignLCAnKX1dYCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8va2VlcCBjb3VudGluZyBjb2x1bW5IZWlnaHQgKGN1cnJlbnQgeSkgJiBpbmRleCBmcm9tIHBhcmVudCBmb2xkZXIuXHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGdyb3VwLmZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkluZGV4OyAvL1RPRE86IG1ha2Ugc3VyZSB0byB0ZXN0IHdpdGggZGVlcCBuZXN0aW5nLlxyXG4gICAgICBcclxuICAgICAgaWYgKHRvcEZvbGRlclN0YWNrLmluY2x1ZGVzKGdyb3VwKSkge1xyXG4gICAgICAgIHRvcEZvbGRlclN0YWNrLnNwbGljZSh0b3BGb2xkZXJTdGFjay5pbmRleE9mKGdyb3VwKSwgMSk7XHJcbiAgICAgICAgaWYgKGdyb3VwLnVzZXJEYXRhLmlzT3J0aG9ncmFwaGljKSBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgcmVtb3ZpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcclxuICAgIGNvbnN0IHNwYWNpbmdQZXJDb250cm9sbGVyID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG4gICAgY29uc3QgZW1wdHlGb2xkZXJTcGFjZSA9IExheW91dC5GT0xERVJfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICB2YXIgdG90YWxTcGFjaW5nID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIChjKSA9PiB7IGMudmlzaWJsZSA9ICFzdGF0ZS5jb2xsYXBzZWQgfSApO1xyXG4gICAgLy9jaGlsZHJlbiBzaG91bGQgYmUgb3JkZXJlZCBieSBndWlJbmRleC5cclxuICAgIC8vaWYgdGhleSBkb24ndCBhbHJlYWR5IGhhdmUgb25lLCBpdCBjYW4gYmUgYWRkZWQgaGVyZTpcclxuICAgIC8vdGhpcyBzaG91bGQgYmUgdGhlIG9ubHkgcGxhY2UgdGhhdCB3ZSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgcHJvcGVydHlcclxuICAgIC8vaXQgYWxsb3dzIGZvciBkZXRhY2hpbmcgZWxlbWVudHMgYW5kIHJlYXR0YWNoaW5nIGluIHNpbWlsYXIgcGxhY2UsIGV2ZW4gaWYgc29tZSBzaWJsaW5ncyBhcmUgYWxzbyBkZXRhY2hlZC5cclxuICAgIGxldCBsYXN0R3VpSW5kZXggPSAwO1xyXG4gICAgLy90cnkgdG8gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGNsaWVudCBwcm9ncmFtIG1heSBhdHRlbXB0IHRvIHJlc3RvcmUgaXRlbXMgXHJcbiAgICAvL3JlbWVtYmVyaW5nIGRldGFjaGVkUGFyZW50IGJ1dCBub3QgZ3VpSW5kZXg/IE5vaXNlLi4uXHJcbiAgICAvL2NvbnN0IGRldGFjaGVkQ2hpbGRyZW4gPSB0b3BGb2xkZXJTdGFjay5maWx0ZXIoZiA9PiBmLmRldGFjaGVkUGFyZW50ID09PSB0aGlzKTtcclxuICAgIC8vY29sbGFwc2VHcm91cC5jaGlsZHJlbi5jb25jYXQoZGV0YWNoZWRDaGlsZHJlbikuZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMsIGkpID0+IHtcclxuICAgICAgICBpZiAoYy5ndWlJbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgYy5ndWlJbmRleCA9IGxhc3RHdWlJbmRleCs9MTtcclxuICAgICAgfSBlbHNlIGxhc3RHdWlJbmRleCA9IGMuZ3VpSW5kZXg7XHJcbiAgICB9KTtcclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4geyByZXR1cm4gYS5ndWlJbmRleCAtIGIuZ3VpSW5kZXggfSk7XHJcblxyXG4gICAgaWYgKCBzdGF0ZS5jb2xsYXBzZWQgKSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gTWF0aC5QSSAqIDAuNTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvd25BcnJvdy5yb3RhdGlvbi56ID0gMDtcclxuXHJcbiAgICAgIHZhciB5ID0gMCwgbGFzdEhlaWdodCA9IGVtcHR5Rm9sZGVyU3BhY2U7XHJcblxyXG4gICAgICBjb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmZvckVhY2goIGZ1bmN0aW9uKCBjaGlsZCwgaW5kZXggKXtcclxuICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgIGNoaWxkLnVzZXJEYXRhLmNvbHVtbllPZmYgPSBncm91cC51c2VyRGF0YS5jb2x1bW5ZT2ZmIC0geTsgLy9leGNlcHQgJ3knIHdpbGwgYmUgd3JvbmcuLi5cclxuICAgICAgICAgIGNoaWxkLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCAhd3JhcE5lc3RlZCApIHtcclxuICAgICAgICAgIC8vT3JpZ2luYWwgbGF5b3V0IGFsZ29yaXRobVxyXG4gICAgICAgICAgdmFyIGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgLy8gaG93IGZhciB0byBnZXQgZnJvbSB0aGUgbWlkZGxlIG9mIHByZXZpb3VzIHRvIG1pZGRsZSBvZiB0aGlzIGNoaWxkP1xyXG4gICAgICAgICAgLy8gaGFsZiBvZiB0aGUgaGVpZ2h0IG9mIHByZXZpb3VzIHBsdXMgaGFsZiBoZWlnaHQgb2YgdGhpcy5cclxuICAgICAgICAgIC8vIGlmIHdlJ3ZlIHdyYXBwZWQgdG8gYSBuZXcgY29sdW1uIHJlY2VudGx5LCBob3cgaXMgdGhpcyBhZmZlY3RlZD9cclxuICAgICAgICAgIC8vIHNwYWNpbmcgcHJvcGVydHkgc2hvdWxkIHRoZW4gYmUgc3BhY2luZyAqd2l0aGluIGN1cnJlbnQgY29sdW1uKiwgc28gdGhlIHdheSB3ZSB0cmFjayB0b3RhbFNwYWNpbmcgc2hvdWxkIHJlZmxlY3QgdGhhdC5cclxuICAgICAgICAgIHZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvLyBGb3IgZm9sZGVycywgdGhlIG9yaWdpbiBpc24ndCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSBmb2xkZXIsXHJcbiAgICAgICAgICAgIC8vIGJ1dCBqdXN0IHRoZSBtaWRkbGUgb2YgdGhlIHRvcCBwYW5lbC5cclxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IDAuNSAqIChsYXN0SGVpZ2h0ICsgZW1wdHlGb2xkZXJTcGFjZSk7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBzcGFjaW5nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gaW4gYW55IGNhc2UsIGZvciB1c2UgYnkgdGhlIG5leHQgb2JqZWN0IGFsb25nIHdlIHJlbWVtYmVyICd5JyBhcyB0aGUgbWlkZGxlIG9mIHRoZSB3aG9sZSBwYW5lbFxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcbiAgICAgICAgICBcclxuXHJcbiAgICAgICAgICBpZiAoaW5kZXggPCBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTilcclxuICAgICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoKGluZGV4KzEpICUgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPT09IDApIHkgPSAwO1xyXG4gIFxyXG4gICAgICAgICAgY2hpbGQucG9zaXRpb24ueCArPSB3aWR0aCAqIE1hdGguZmxvb3IoaW5kZXggLyBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTik7XHJcblxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy9uZXcgbGF5b3V0IGFsZ29yaXRobSBXSVAsIHNob3VsZCBhbGxvdyBmb3IgbmVzdGVkIGZvbGRlcnMgdG8gd3JhcCB0byB0aGUgdG9wIG9mIGEgbmV3IGNvbHVtbiwgd2l0aCBhbGwgZm9sZGVyc1xyXG4gICAgICAgICAgLy9pbiBoaWVyYXJjaHkgdXNpbmcgc2FtZSBjb2x1bW4gbGF5b3V0XHJcbiAgICAgICAgICBjb25zdCBtYXhDb2xIZWlnaHQgPSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiAqIHNwYWNpbmdQZXJDb250cm9sbGVyOyAvL01BWF9GT0xERVJfSVRFTVMgaXMgc2xpZ2h0IG1pc25vbWVyXHJcbiAgICAgICAgICBjb25zdCBoID0gY2hpbGQuc3BhY2luZyA/IGNoaWxkLnNwYWNpbmcgOiBzcGFjaW5nUGVyQ29udHJvbGxlcjtcclxuICAgICAgICAgIGNvbnN0IGNoaWxkRGlkV3JhcCA9IGNoaWxkLmlzRm9sZGVyICYmIGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vbW92ZSB0byBhIG5ldyBjb2x1bW4/XHJcbiAgICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID4gbWF4Q29sSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIC8vVE9ETzogbWF5YmUgYWRkIGFuIGV4dHJhIGhlYWRlciB0aGluZyB0byBhbGxvdyBmb2xkaW5nIG5lc3RlZCBmb2xkZXI/XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4Kys7IFxyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBoO1xyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgPSAwOyAvL2ggd2lsbCBiZSBhZGRlZCBsYXRlclxyXG4gICAgICAgICAgICBsYXN0SGVpZ2h0ID0gMDsgLy8/Pz8/IHdoYXQgc2hvdWxkIHRoaXMgYmU/ICBPcmlnaW5hbCBhbGdvcml0aG0gaXQncyAnZW1wdHlGb2xkZXJTcGFjZSdcclxuICAgICAgICAgICAgLy9jaGVjayBsb2dpYyBvZiB0aGlzIFdSVCBkZWVwZXIgbmVzdGluZyAoc2hvdWxkIGJlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRvcEZvbGRlciByYXRoZXIgdGhhbiBpbW1lZGlhdGUgcGFyZW50KVxyXG4gICAgICAgICAgICAvL3doYXQgSSBzaG91bGQgZG8gaXMgdXNlIGFjY3VtbXVsYXRpb24gb2YgYWxsIGZvbGRlciBsZXZlbHMgKyBvbmUgcGFyZW50IGFib3ZlLlxyXG4gICAgICAgICAgICAvL3kgPSAtZ3JvdXAucG9zaXRpb24ueTtcclxuICAgICAgICAgICAgeSA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmY7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgKz0gaDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvL3ZhciBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuICAgICAgICAgIGxldCBzcGFjaW5nID0gMC41ICogKGxhc3RIZWlnaHQgKyBoKTtcclxuXHJcblxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLi4uLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICAvL1hYWDogdGhpcyBsb2dpYyBkb2Vzbid0IHdvcmsgZm9yIGNvbHVtbiB3cmFwcGluZywgKGJlY2F1c2Ugb2YgaG93IHNwYWNpbmcgaXMgY29tcHV0ZWQgYWJvdmU/KVxyXG4gICAgICAgICAgeSAtPSBzcGFjaW5nO1xyXG4gICAgICAgICAgbGFzdEhlaWdodCA9IGg7XHJcblxyXG4gICAgICAgICAgdG90YWxTcGFjaW5nICs9IGg7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ID0gMC4wMjY7XHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vbmIgZm9yIG5lc3RlZCwgY29uc2lkZXIgZGlmZmVyZW5jZSBiZXR3ZWVuIGdyb3VwICYgcGFyZW50XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgICAvL2lmIChjaGlsZC51c2VyRGF0YS5jb2x1bW5JbmRleCA+IGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4KSBsYXN0SGVpZ2h0ID0gMDtcclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSGVpZ2h0O1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleCA9IGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjaGlsZC51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSB0b3RhbFNwYWNpbmc7XHJcbiAgICBcclxuICAgIC8vIGlmIHdlJ3JlIGEgc3ViZm9sZGVyLCB1c2UgYSBzbWFsbGVyIHBhbmVsXHJcbiAgICBsZXQgcGFuZWxXaWR0aCA9IExheW91dC5GT0xERVJfV0lEVEg7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyICE9PSBncm91cCkge1xyXG4gICAgICBwYW5lbFdpZHRoID0gTGF5b3V0LlNVQkZPTERFUl9XSURUSDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgTGF5b3V0LnJlc2l6ZVBhbmVsKHBhbmVsLCBwYW5lbFdpZHRoLCBMYXlvdXQuRk9MREVSX0hFSUdIVCwgZGVwdGgpO1xyXG5cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGdyb3VwLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0UGVuZGluZyA9IGZhbHNlO1xyXG4gICAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1IZWFkZXJMYXlvdXQoKSB7XHJcbiAgICBsZXQgZHggPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgIGxldCB4ID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGhlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgaWYgKCFjLnZpc2libGUpIHJldHVybjtcclxuICAgICAgeCAtPSBkeCAqIDAuODtcclxuICAgICAgYy5wb3NpdGlvbi54ID0geDtcclxuICAgICAgeCAtPSBkeCAqIDAuMzsgLy9UT0RPOiBkZWhhY2tpZnlcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQkFDSyApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcGFuZWwubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBncmFiSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBncmFiYmVyLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfRk9MREVSX0JBQ0sgKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1RPRE86IG1vcmUgY29uc2lzdGVudCBob3ZlciBzdHlsaW5nXHJcbiAgICBpZiAoIGRldGFjaEJ1dHRvbkludGVyYWN0aW9uLmhvdmVyaW5nKCkgKSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhGRkZGRkYgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRldGFjaEJ1dHRvbk1hdGVyaWFsLmNvbG9yLnNldEhleCggMHg4ODg4ODggKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgZnVuY3Rpb24oIHAgKXtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIGdyb3VwLm9wZW4oKTtcclxuICAgIGVsc2UgZ3JvdXAuY2xvc2UoKTtcclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9KTtcclxuXHJcbiAgZ3JvdXAub3BlbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKCFzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwICYmIGdyb3VwLmZvbGRlci5hY2NvcmRpb24pIHtcclxuICAgICAgZ3JvdXAuZm9sZGVyLmd1aUNoaWxkcmVuLmZpbHRlcihjPT5jLmlzRm9sZGVyICYmIGMgIT09IGdyb3VwKS5mb3JFYWNoKGM9PmMuY2xvc2UoKSk7XHJcbiAgICB9XHJcbiAgICBzdGF0ZS5jb2xsYXBzZWQgPSBmYWxzZTtcclxuICAgIGFkZEltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuY2xvc2UgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmIChzdGF0ZS5jb2xsYXBzZWQpIHJldHVybjtcclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IHRydWU7XHJcbiAgICByZW1vdmVJbXBsKGNvbGxhcHNlR3JvdXApO1xyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLmZvbGRlciA9IGdyb3VwO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWw6IGdyYWJiZXIgfSApO1xyXG4gIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIC8vbmI6IGlmIHRoZSBjb250cm9sIGlzIG5vdCB2aXNpYmxlIC8gYWN0aXZlLCB0aGVuIGl0IHdvbid0IGludGVyZmVyZS4uLiAgICBcclxuICAgIC8vYnV0IFwiaWYgKCFpc0RldGFjaGFibGUpXCIgaGVyZSBjYXVzZXMgcHJvYmxlbXMuXHJcbiAgICBcclxuICAgIC8vaGVhZGVySXRlbXMgc2hvdWxkIG5vdyBoYXZlIHRoZWlyIG93biB1cGRhdGVDb250cm9sIGFuZCBiZSBpbiBnbG9iYWxDb250cm9sbGVycyBsaXN0XHJcbiAgICAvL2hlYWRlckl0ZW1zLmNoaWxkcmVuLmZvckVhY2gobyA9PiBvLmludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpKTtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICAvLydncmFiUmVsZWFzZWQnIGlzIGVtaXR0ZWQgb24gaW5wdXQuZXZlbnRzLi4uIHVzZWQgZm9yIG9ydGhvIG1vdXNlIGZpeEZvbGRlclBvc2l0aW9uXHJcbiAgXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IF9iZWluZ01vdmVkID0gZmFsc2U7XHJcbiAgLy9ncm91cC5oaXRzY2FuID0gWyBwYW5lbCwgZ3JhYmJlciwgZGV0YWNoQnV0dG9uIF07XHJcbiAgXHJcbiAgLy8vLy9FWFBFUklNRU5UQUwgRkVBVFVSRSwgQ1VSUkVOVExZIEhBUkRDT0RFRCBOT1QgVE8gSEFQUEVOXHJcbiAgLy9zdWItZm9sZGVycyB0aGF0IGFyZSBkZXRhY2hlZCB3aGlsZSBtb3ZpbmcgcmVtYWluIGF0dGFjaGVkIHRvIHBhcmVudCBvYmplY3QgKHRoZSBjb250cm9sbGVyIHRoYXQncyBtb3ZpbmcgdGhlbSlcclxuICAvLyYga2VwdCBpbiBzZW1pRGV0YWNoZWQgdW50aWwgYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIGF0IHdoaWNoIHBvaW50IHRoZXkgc2hpZnQgYXR0YWNobWVudCB0byBvbGRQYXJlbnRcclxuICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZ3JvdXAsIHtcclxuICAgIGhpdHNjYW46IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgLy9kb24ndCBuZWVkIHRvIGZpbHRlciB2aXNpYmxlIGhlcmUsIHRoaXMnbGwgYmUgZG9uZSBpbiBpbmRleC5qcyBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKVxyXG4gICAgICAgIC8vKGltcGxlbWVudGF0aW9uIG5vdGUgMzEvNy8xOTsgLi4uaGVhZGVySXRlbXMuY2hpbGRyZW4gaGVyZSBiZWluZyByZW1vdmVkIGFzIGVhY2ggaGVhZGVySXRlbVxyXG4gICAgICAgIC8vc2hvdWxkIG5vdyBiZSBjbG9zZXIgdG8gJ2Z1bGx5IGZsZWRnZWQnIGNvbnRyb2xsZXIpXHJcbiAgICAgICAgbGV0IGhpdHMgPSBbIHBhbmVsLCBncmFiYmVyIF07XHJcbiAgICAgICAgaWYgKGdyb3VwLm1vZGFsRWRpdG9yKSBoaXRzID0gaGl0cy5jb25jYXQoLi4uZ3JvdXAubW9kYWxFZGl0b3IuaGl0c2Nhbik7XHJcbiAgICAgICAgcmV0dXJuIGhpdHM7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBiZWluZ01vdmVkOiB7XHJcbiAgICAgIGdldDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBfYmVpbmdNb3ZlZDtcclxuICAgICAgfSxcclxuICAgICAgc2V0OiAodmFsdWUpID0+IHtcclxuICAgICAgICBfYmVpbmdNb3ZlZCA9IHZhbHVlO1xyXG4gICAgICAgIGlmICghX2JlaW5nTW92ZWQpIHtcclxuICAgICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IGdyb3VwLnBhcmVudDsgLy9vbGRQYXJlbnQgdG8gZGV0YWNoIGZyb20gaXMgdGhlIGN1cnJlbnQgcGFyZW50IHdoaWxlIGJlaW5nTW92ZWRcclxuICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IGdyb3VwLnVzZXJEYXRhLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgLy9hc3NlcnRpb24uLi4gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIChhbmQgZG9lc24ndCBBRkFJQ1QpLlxyXG4gICAgICAgICAgaWYgKGdldFRvcExldmVsRm9sZGVyKGdyb3VwKSAhPT0gZ3JvdXApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJIb3VzZWtlZXBpbmcgcHJvYmxlbSBpbiBkYXQuR1VJVlIuLi5cIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZC5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgLy9hcyB3ZWxsIGFzIHRoaXMgY3VycmVudGx5IGVuZGluZyB1cCB3aXRoIHdyb25nIHRyYW5zZm9ybSwgSSBhbHNvIGhhdmUgd3JvbmcgdHJhbnNmb3JtIGlmIEkgZHJhZyBmb2xkZXIgd2hpbGUgc2VtaURlYXRjaGVkLi4uXHJcbiAgICAgICAgICAgIC8vKiphbHRob3VnaCBpbiB0aGF0IGNhc2UsIGl0IHNoaWZ0cyBiYWNrIHRvIHdoZXJlIGl0IHNob3VsZCBiZSB3aGVuIGJ1dHRvbiBpcyByZWxlYXNlZCoqXHJcbiAgICAgICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBmb3IgKGxldCBrIGluIGFkZENvbnRyb2xsZXJGdW5jcykge1xyXG4gICAgZ3JvdXBba10gPSAoLi4uYXJncykgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sbGVyID0gYWRkQ29udHJvbGxlckZ1bmNzW2tdKC4uLmFyZ3MpO1xyXG4gICAgICBpZiAoIGNvbnRyb2xsZXIgKXtcclxuICAgICAgICBncm91cC5hZGRDb250cm9sbGVyKCBjb250cm9sbGVyICk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXI7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbWFnZSgpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBZ0FBQUFFQUNBTUFBQUR5VGo1VkFBQUFqVkJNVkVWSGNFei8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyt1bUFjN0FBQUFMM1JTVGxNQVduSmZibnFEV0dSNGEyWmNZbkJSYWxSTGdINkVUblI4VUdoMlJvWkRYbGFIU1lvOFFIVTJMeVljRkF3Rm1tVVIxT0lBQUpGaFNVUkJWSGhldEwySldtdTdqalVLSVFra1FMcVp2Z01DWk8yelQvMzMvUi92U2tORGtqMlRyT2FyVmQ1VjZ4RFAzcEpsV2RLUTdxYVBiNit2cnc4dmorUFovdnZyeHovLy9QajYzcy9HNy9jUDJuMC9YWjZPcDZYOGZKSGZhRy8zajlxNVgvTEt0L3Qzdi9RZnVmUWsvWG91Ym9sei9EcTVMSDd5MW5MVmw5eGVINGIyOGppZG5jWnkvWk0wUCtXZmYvN3puLy84Kys5Ly9zRzVVenRhdjNIMWluSklYa2xlOFF2bjMrT1JPUDJvajVPUG16N2V2K201UERERnlYYW4vVXdld0JkODEyNFpEbjJvM2VUQkJtQ0tBelpRZmpZNzVXWC8vWSsvS2o2TG43Ny8vdUYzcjI0dkh5ZlA1YWU5Y1JSc2FINUkvNDh2ZVFxUDVLaDlYOXo4Nnd2bit3amhaZm1ZalR6bXlCZmxTT0J6NVYxbFhPOGVINTRtdzhueks4ZFRIc25QZXBidXB3ZnQxVnUrUHNsdmFaUHRzNzNGYVd4WGJwL2lVangvSTlTVWMzSExxWjJEaG50VlAwRVJmTjc5cTkxOCsvVDJ1RmxPOGV3OEJXK3F3NFJ6NVJaYk9UcDVmc0pqK2RUcUZaL2xsVEFxdUxjK0VtOGpBLzRkQS9TODljOTVraEVoOFpUWW04ZTNwKzBRVjl4UDVmNWZRalU4Vkx1ZUozaXRlOUNUOUxlem41SUQrS3A4dEIzRW1PZmRlZnNsNTgwUFkxV01Ea2FCTkZYcUg1VmplU1NHNUhqUmRUenErZUFNalArRUw4dkh5Q1N6RnpXNkxFOTZQcmp2N3VWcE11cDB1bHVNcDdJcHVXWGI3WFE2d3ljWnR0a1ViOTN0b0kyNjlySExLYThjYnAwVW5NMnZUeE05dC92ODhJaHplTjNrNlNWLzR0Ynlac2U5ZmQ0UWZkMkp2TzdtOGVHNVc1N3lEUmJBck1LNXVEdmVHQ1Q5UWI3SVYremFHTTcyeHhQdVBjTHBTczhqNTluenBCdWZNM3gyNG5IYXZ0b0RobklQNlNYVjhONjRhRFFrUFRsUnRuYjJzOTlFMzlSZmRSaWZycndrbmJ3N2JvL0poWGxMd2VsUG1jaVR4N1BUL2x2N1Q3UFo1aEhqbGtQeXRaZlJqNXVEUnJPVG5BOW12WDk0eGtCMGgzeXZ4ODFKQndJdnF2MTRVem4vK0swdmV5ZWpmZTROVnVDQURjWG1PejVyMTl0MTlmS3h2cG44SFBTMDdWWWorOWpITjdsU2ZuZmkwaCtjemNQT2VkQWJkSVNhNzI5UGNnN2F1ZnYwbGovdDFzdjlhYlpVM3B6SXc2U3Q5UHZHTWthZFFad2lBM0hrUFBuZTQ5eVJuanRZa2FSQ052QlF2dUpneHpFOFljQng3NEVOSGNZWnA2NzRPWU56aHh3ZDR1RnB1TktuajdZUGtBekhrNzRSSHJyUzk5cDFKdlpnT1FENnI3UVRCTVc4eFNKNlBQRlY0OU9YeGdDOHUxeWdoSk5SczFWd3RqSDY3M0Q2UktmVWNyYlgvdkYwS2greDdlNktVWk83Nnl5eG0yTWNwbE9jYjh3NnhFQ2NPenQ3V1E2RWRPc25EOERaT0IveTUwNUh1NWx6UEYxc3Zzb2NITXo3SU9JWVhIc2V6SnYrWXRIdk43MGRiaUVUZFR2YU5mMjhWSG5IMkg3WGEvcWc1cnN3eVc2K2tEYVhkMy9MbjQxOXluSThmWC9Yenp2MytvdW1ZQUQ1aVZQd3BpZVRsRElYeC9odU9kaHZRRkliMXBOTmtYTnYzdGRYbEsrUk1RUzlPZUQ5eFp4RFIvb0x6WnErZmM1NmNGYU9CdkgySmg2R3EvV2lQeGh0alM5T1N3d2VicktUSjloYnpuQTJKc3FnV2ZUWHUxR3NXSmpRR0VSOFZ2K1NBZVFDRWc3ZkJyNjdGL3B6R0RBYjc0VUYwQzlOUG5xbGQxcmpLOUNQZ1ZqM0Z4aUhCejFKK3ZmSG1USHJXaitzMTVPWEJRVlBlekpBbzRSUW1mSHk4bWlhR3hpZzF4emtQcmozN09oRUhNemxMZVhtOTNpV3Z2U0hqTmZpOElHUGxYZFhCdEE3TnNJQnloQ25ieFZBZVA2OGYraXZrd0hrc28rQ0FUNE8vYjVSVitmYjJ4dWUxbnpvbU9oOXlRQWZPT1ZOVlU1NVV4V3R5bCtRRHNLRTh5RHB0OHBEOEpDLzRvZU9JYjdtdE1TQXJ3OGZmTjVzekhuV2dQaU44clJ6TkliSmhKMWNJY3pmblVEU2dXZUVBUmFmL1lHODVnRWZSckg2Z0lteWFHU2tNYTd2MUEwd29mMnpkdlVTQURKL2NNQ25tNW56SFE0MGkvbEJCeFNhVlNqTklJY01xYnhvOUd1blRxYTV5aEpwVUtDVjQ4R3NCM0MzUEdVRUNlQ3lxaWZ2bzJPRDg0MWQ3eDR3L1E1enpxZ1RscGVKM3J0djBzNEd2VGtjbEtkazVIRUwrU0x3eFdDOU9BaFBnYzJPOGlVcTVGZjZmWHF0TU0rTC9oUldyQmhnQWNrbG42OUQrL1Q4aktmWlFJbE9XektBTktqcHk3MUpTaDZiNzRRSm5BRk03T0hqRm8zY2VkMHNEZzFGUHNlajZhL3hQQ291T3gyZ2VXOGdUYzkyamw3aVJoQVB3Z0R5aXJaT1kzbFJXc3Bqeit1K3lpblRySEJ6MEwrSDE1Y25ZQnBBTnhCTlRHZEN5Z2Fzcm5nQ1hzQUk5M0N2ZWdEMWFmMEVvVU1ERG9BYUU1cWVUSGFRZWppcyttM2N6dDFRb0lQakcva3c1ZTJ6dlJRVmEyYzlQWjhxMUE5VkFuSDdOV1RTZUFhK2hpeGE3NkR2UUhqZ3dsVkhsczY1VXB3SzNyWnJQSTdSbm1FRmVsQVNINVJIVks1UzU3bGdBQ3BHR0c5cGNvSU9sUHlsc3lnWlFKcnE5RkRvdnIrU0FZVE8vWkFBTHZibWg4TWNyeWl2dEZDQ3YrbU1oMndZREhiR0VQNXRNa0E3MWVsR25iTktPZ29NbjUrTlNKSERvbGxqblo1Q3FLMVdLMkdYaml5dWcvT3FneWY3WURjeXpMdDVJNU50YTJxZGI2TDRXUjBaYTJnVHdxcFVWanNxbzllckxqZGZNeXJIdTBidUlselF6SGRVaUYzNTB6dHBaNmZWcit1MFBEajZaL1pPdmZYNkRCM25QREpOSXhUclhkeElxQTJ1dkZNaUtCa2JJeU1tQ1RxNHVreU5BU0RFaDVNdVNBTUZDVi9aUGE4UEN3aEZiRGJHV0JmNklpekIzbE9WdU52SkpRUFlvSUJ3NTkxdXArTzZXOGtmcTY3Y09CZ0FQYTRVcTQ0SlhWWlhtTDVPUkZ0WnY2a1JVNnhpSWkzOEZYWHBnMFpwUXN2TzVCd2JkWVNxbmE3T0lya1FJdUNka3VUUTE1V2tUekhGSVJXZUdzckY4Z2RJdmVIU3NLUG1PZEFKQkxYdXRERWwra3l0V2I4QU9nWTFrRkJXengyN1pCbktzWTdBZVJjS2NmVHJBQTA2cTh0K1pjdGQ5RSs1eEsxMnZmVjhQb2NRZzdTaVlyM3VzYTE3U20yb3NuY1E1YWtuYmNBc1p4TUpXQU9UQVdUS1RHVFpkMllmbThLOE9EZ0R4QXpsa2p0ZFludCtsUUdFcUdRdGVkUGRTTnBBL29ETzR2Y1k2Q0ZSOTZuUXdmeGhPcTZRZ3dvRFZsQzc3ZUdnUXV4SkNkNC9VSCtkVVh6MTdmR21RNjR4NVhHWHRaQkhENE0vOVBBV041S242bHBuZkVFOThxQy9aS0FnQUpVQnFFNjQ1cmtlZEV5dG8wb2lyR0phODF6WE51Z1lwMXVYdUhMYzB4SHVka1VIdFVsVjlNc0FEVy8wajloUERsY1pOaGYrcFJCVFFUeDJ4VHBiTW9DK3JzOTQxOEZHL0duTHFGMzgyVjhQZEQ3cWpMV1ZoYU9iRExCdk1ZQnEwT3k1WkFCakxUMkdOVVRKUkozRjc5SDBEL29STHArUHRzdWxDSkJlREdxc083NFU2ZDVFS0ZzeGdPdWdKZzhhV2R5NktvVVhoNFZzWWtRRWNGSER1NXI4R2hWcm0vYnlsN0xIWW0yeVIvdWhUaHhNODV4VGp3N2RrRnJ6d2RYQTVjMUxpbkY1ZnRKTnlNSEd0SlNZMisydis2ZGM0aHA1YU5QZ0NUdW9kbU9uWWJSa2dOTTQxbTNjZy9MVXgrUjBzbm1CenhHaG9qelF0VGxaTVFDc2FadHB4UUNRQ2JjWllPWXpUb1VOcDdCZTVpKzcwSS80Q0lWdS81WFMvaFBUOERVWVlLc3NhM3NlRlJFcmFYcW5OZ05BeEtzQTZJeDBBalh6UnYrVysxRmJ6cmVYYVJTanl2SFJSeG9qUUwwZFUzTEtJRVB6MU9NMlpUQUlPbUNoTlpPSGIxNVNqc3ZMMDFWQ1B6Mzh1cC9FVXgwSUt1NWFuclNHdUlvdjYzbVRDVUlHMkZOdmNOMU9CZ2tyUUkvVGVrYTJiVDVVcUtqeWZPYVd0MkNBTHRUM3BWcUIvNEFCc1BaeHhSN2xqQ01EeUVmSVdnbUZqdm8xYUkzMTZlT1Q1OWFLaHkwZ3owTnF1Y21qZkx5UlVuOWd6UnZzZW1RQTQ1MWtnQkVrVXAram1pcUdYTVlWQU5ZUkcydVpFNTJ6YnJENG9rNW1VUTZoTmNkYWN2T1NXd3p3cC8xVERvL3U2VVlqbFRVNXB2eXlEaHVsbFREQWNSWkg4V1VjSkpjUk1MN2hlL3FReWJyVjRxNHBHQURxb2NvQUhmenU3elBBckpDdUhQaVNEUG9SNTE1dVpvL0h1S0JaSkZza0EwQTFVU2JVUnYyNlpnQ3NiaUxEUlFDb1pJSEJweVBYdXNXRHI2T0ttK2xkYnBraWY2cTRvdmFKWVVuTk0xNzBQazgvUTJ2R245QXhibDd5dHhnZ3gxTzA2UzEyUnJZZmVpOWtHeHRjQW52WkJuSUE1VExNb01mOGdWRzNTWWM3eVh3VW1mbUIyN3NPUUZLZFlRMTgxNm15MnExcDkvc2xBOFRxSXlSeHRiT3lBMno1T1RTK2dobUhtSVVZT3V1dEpjQWpuRVg0d1BzTENVQlZDT3ltVDRQQlIyWkt3emZDNjZqTVhnOEdLNTFEWGJuTHVGQ0xPVEQwV1BEVjVTU29GcHcwMUR0TmlYcDlsb2U0Y0wxMXlkOWpBUG5oMjdSWFhSdGlMdWFZSnYwaEFJUUJVb21pRGk2amlmSGQ2Z1FyMlVNTjZMSnkrWlFNN1VCTVJQZ08wN0dWT0pUUHYyQUFyajQ0R2twY1pRbk0wNFBVcHE3by8vTVp5UUI0ZjJ5UjNRdlNZZ0Q5QVhsdmlvRGVTcTBOemdCY1FxbnVETVRwQVI5aXNjMU0zUWdQZFkzZ2haUU5LZ1RSTVVWOE5HOWU4dGNZZ0kvR1RIS05Gbyt1bG9CMEVxa3BXRFFyNDB3eVFLM0dWUXdnRmltc1hHNWhsalVjQXlhNlJqS0FNa2lQUnFYanp4bmdXS3dCenJlUDQ1c01RQnRsaXhLbjFpNEFhckI3UWE0eHdNSkVlWCtnREtCUEdRMkNBZWdFVVVOUU9EMldabjNBQUswWGxPYkwzREhvU3pzVnpPUDFuQnFrWEpucXljMUwvaElEc0o5Y1Zhbkd0UktZVGlKaGdDL3NvMjh4d0I3RGk2ZXRkUU13ekJQSFZNblVydG9rQStqbWQwNGQ4MWNNY0VycEdpdkE4aVlEcUIwMVpERzNyZUNMVXJRK2dLTmNxN3ZOQUI4bSsvV0FFSVdhdld6VG4rRUdsUzI4T1QzQXgycDlzTTE1UG5WY0tVNHYrWlNhbWhCWlRvVmJsL3hsQm1CL0xkZnJiYUJUOFBoTENiQlA4NzVLeGQwcUYrVXhCZ0cvMVFOTFhVWldDU01GUENPL1lJQTA0czNubEl6VE5nT2tQa3FUYjYyTm1VbVdtNG1CU0xhdFd4UitMZ0gwREprZ0trZmtmSkFWMFF1d3JIVE9NQVQ1S3BQS1RzcWQydUxCcDF4K1pFMkYrcEsvendDL2V2VG5ncTNOQU8xVEIyN3UzY0NSaUcxdFg2V2k4TUM2SGwwajdnaGVBMWpBdXVqNXJWMkFxUFdoTXVPTWJXdG9KOE9TMzVhRmpvTmJjb0xHUXFLR2Q3SHdjczkrVFFjQUhXTUpPR01oR1lVaENBSkdiYXZpSkZnTmFKY1FoVDkxandXTkpjdWFBVzVQNTVzTThIOHZBZUN1djdVRURBb0dPRzM4VlBUR2tvOEYrVlM0K0xFeXduKzZxa1lYNHdUTFAzd2d2NzhOUE9iR1hob05iTHlDenFmZFdpYzJYcVhjTTNUSUdDU0czYVFQN1YzbWJqOE90UmtBekMzWHF6eWZpNUVCNmlkWVFvZnYzWll3SFlkSk4xOTZHVnZoejFnQjhKYXAzaFY2MzF0N0lVNzk5Tm9sZjVzQmJxc2ZWQUpYK0svVERTV1FOQXJGditKWmVKZ1JzUWNIUTlPSENXWUhNL3lsSlZDOW9LOS94QUJwMmpQL1VURzBuK0t4TTJNV1hibUZ4cWh0bmFhQWNHQi9MTXdDcXE5STRWQXhBRmZrK1E3bUdGa0t4Unc4bi9lNTJFOExaWEl5TEJqZ0ZPWnkwSXVibzNKOE9mQzNWWEh3OE0xTC9oWUQzTjZBSkYyR2FHNEdrRzBnM2RvaHQ1MkJmWmRsL2hlMHMvSkFMSTJ6dGk5QWxvdHhXNFA0K1RZUUVWcXZXKzFMcFQ3czFvYytEZWFtRzFBWkNVM21FTk54cGlKQWhKUkdBbnhBZjJkMHhtbFRNd0JtQ0hhQTZ2UFY4K0JZWEZQZFQ1dXZPazduUGoyWGNoZnUybkx2bVZzUCtmaUhWNWUyUDkyTTM3Z2tDYW9IWHArNkpPaWY5OTgyUVJSMGVVSmpBSWt3d01sMVhHcHVibXZoOU9JQ2dTQTVjNS83MW1XNXNVKzk3UTBjejRRQ054bmdYUTlyTExjOW5kdXJ3cUUwZDI4TjdvVTVCL29zMkRDU3VDWWlFZGV5bksvWFlheUdiYnBnZ1BSemlCOFYvdGdkL29jaG5VNDY5WG5JUWhMbVpzVFpob2NNKzF2Yk9wMFpEdk84eFlyQm96Zk5jVGN2TWZNN05KY0pydml3QmVSUCs2ZVhSa2lPYXlFQjJMYU00cnBEek1Rb2xlMTBEcHJCbDJhV2hRcXVMWnp0SEUwaEhtaFhNY0JqcmlacWFzTFlYV2NBT01MbFlVL1BwbDl4TmhkTVJIOHRYYVlrVHlveThtRFhHOFVpWVZib0hjSmczQUhQMVNzWWdQNWU1ZlZkSjZKOE95UEdmdEhySWF2T0FRS216MUNuTWVKc2xWNng2TVRhUmJ1eE9BOVQ4elJCNGdiNWN4cmtiMTZTbjNhVzk1SXJQa21NUCsySE1wUnVpTFc3SWE3NUFoamFlamQrdEx1NWY4M2Yzd1FWZm0vSlZTUFJqcytodUdCMHNWb3dHS0YyekNIbXlNYnVDZ04waDBwVklRaUhObGFBa2dIZzFSdHAwSVJKSXM0ZmZnUjFLN0FlMFFoZDRSbmVTcDJUWEwzYzBhVUdmSnI2MUVtdk45OE5OSzZBY2VFZVVhdXF6dWNpVmdZVmRJajdLRmFBTDFvbDVYMWM4OFJZNDJqTEphZnVMQnZhbTVkRVNKTXd0NFJ0NktVd2l2MXh2enk2ZEVUMlBhZ2x2WUZyL2dlYWdRRTBXcEFFaDJCZnBwd2NJVHlaQXk4WER5UVVBTzQ1eGdTcTFBMHhCZ1pZdWxJL3Q0bkxzYnRnQUFrQzBvZjUwSkxkYURtb3hkVWszRHJwbHRmV0RkRXEzQ0VjQU80WGlqWk83Rk9zWG02WW1DN0RWUzhzc0pZMmIvRHloZ3hoVEQyTUFCL3pYQm5zcmVjaVhIempxWmdBTUZOcW5vZEQyRC9IOTllZDhzdWJsMWhRNHdCQnJkUjd3SHQvMnIrOEZZcmdldFVpbWt2dHJ6dWhQd09DUnRTbzdza1IrblpRQ3NEUUloS2IrWndPK2dsZFo3dDBhWTVQaU0vbHlYMExNdVhZelZzTUlEMGgrbFk2NFlSb1pLS0tBUkM5Q3VoWkZmZUZLRmdxVjR4SDNWUDR6QnR3Y3VVa1dCem9uRURJSElOMUZ0QWxZTVBVT3dqOWlhb1JxU1kwUXZ5VE9aVElBT29INVRDZk5ENnhyWG5PWmJoTTgyeUY1ZlE5TEdkMjh4S0xJUkxUZ3hMdFlLRkNlUFlmOXMrdUJpTmxSRkRSa2dHTVpRNE5lVXZYMHd5Y2crU3k4Tis1K29MeDJ0Sk5xY0tRZU1yaGI0NEtlTFB5Y2tnckdVQmFVekRBQVVQTHhiV2xTTDY4M0NOMDJzMlZIcW5tRDI5WkZIWU5KSGZ0SnV6M2JhWmxlRFFtdWN4K2pUaVRJNHpaSlp6dlNaL1R6Slg5QUt3akF6VE4yaEFRMEowckRJenc4MW9QTW5oeFprZ2FCdVpKSEJVRDgwNDNMd0d3QVRibzNscWFCd3N1LzdpL0hZNjRBdjFWOG1HMmxxM2pTNENPNUR5QkNzQVdLQkVCRmpDMWtBOVRnZG5NaVNLYTBpd3o3NUcvaWZQRHlTdFJ4NHY5VFNNTkRKQS9Dd2FRd1ZnbnVNUVpJSVRFZUtQZ0NUS0F2em0xSFdscFVXQ1hqQWF4VytRSjZQbmNGakpnZDZqSUlEUnhiM2c0dndNMGJWbUMxSDQwcXJIbkRBeVVRVHFKZ294YmlUSUdZZ2E4UkVaaDFHRlVxOUFmRU0yYmx4QmpLQWRVN2NFVldQZit0UDhZQWNralUvUzZERWplUVBSVURXdVBNMERpR2lURUtrUll3L21GaCtrVzBJYU1PRUlmbDA0WEt5VWo5KzNOOUF2UHFwWDQySEZBaTU4cjVRZUx1UFo3QXNacTRRa3lmYWdtQ0ZjTEtvU0xTNzQ1QTZNanVoa25vTXQxK2oyQlpGM2lHY0dqSHJLdk1mTGRpRG9IOTBxVE5leGtRbFFhZ1R0SG14QjZ1cUlJRFUyQnRnOGNMRzhFbks0TW9FTlYvUUFsaVNBWWJsNWloSHN5d0NxdUFKMy91RCsvVDQ0QXVJc0hFSDlidFdkQ0srOHdqM3VKYklLQ2F6QWxxcGIyc0dMSVFpdmI2bThpcUk0VnNMamJCWGZqbkJIK3c0QzJmaHFrVDFwZ2ZhbGRvUk1iQlFBQ0FoWWFpSWI2MTRtcmo0d0k0TDVHT2V2Q2R6OWJYTGIwQ1dnSDZPQ25aN1FuNGs3MmNteXZEY0JJSElSTVJRL1dCV21CZy83bXVid1Zid1RZUEc4aVpCRHNqaDNSSndqOXIxOEMraE9RcndlMDRaMFVNQ0x0V3YvUHp2ZnZRM3NBbEoraUIzM1pIb2pvdmNPa1hISG5yS1A5SFFncHpNSEhKVjdpTFljTWNCYU9sUDQyU1VsNE1qZ0FlQi9ja0tQSkFhMS9JbjBBQm9NY3JHVDR4aElhSk1EQUhiOUtRRHlvb0ZJMmYrblQ5K3d5aXM0QWx5VlVubjBuYTdPbDVnZDRlWHVRWnNpenBmUXRaL0tQdEJrK1ZnNUI5MFFITElIYTgyS1pFTDZQZnVxU3Q1Sm11Z3I2bC9ydlJnL2d5TDFjaGU2TlB1VFV1bVFEOUt0TzNlWDBYUTVvd3p2Sm1adk5XSTdYL1dPOTRNcjVlRTg1dXBuaENYTGtYdHI3Vkg3TFVBamphVi9aeUVvLzdyQW9rZjZuSTRqSVJXem9jeEJjbFVObWdMWWpSd29vUm1uNldyaVkrUmN3NWt1T3BnOW8rVk1KdCtSZzNJczBzTEVUd0xoMzZoWG9Td0RsaS93SEtoQTJpVi95MmVEeXBYMmpxZzFqZzh0cTJnanRzaEZheXBrOEpQKzhXNXR1OU1CVU85RWw1MjJtUElJZTlMTUJVWXV4eHhIOWQ4cGJRVmZCMEQveTN2NFEvZmZSbjdhY3lkVit3UHFJNnowYVoyckRBTS80WXpyV2ZtdnY2QUJhbHVmN0FYMS9IQVdqQ3l0TWRYd2UzMjBzeHRiSHdaQ1JseGJvWUN4S1hJd3dCYjhpMzBMT1Fkd3loOHlnNnh3cFBjQnZNdzdRY1NoSElLNmIrU1h4NVNjT2hwTEVQMDZlSGtQSEMzWFlnNWlRYWc2Y0xubzRndmo5NkwyZ09xWU4yQ01QWVVadWxtUVNuVWRrT3BIV004eFd1VUI3ck4rNFhESDFrTDdXcC8rcWVEZHhjRHBSVXJ6b1ZORUQyby9GUUg2aTAwUUlNUEh5VU8zQmllOGc2UkhMTjlxOXJidjRHeEp1TnJNYm9VTmYwZFloN1IrSEhIamhQSk9qdUJwTEFPY0UreWcwd1NWNzVnZllUUFU3TUNReGtabHg1WTFpY0VPNWhnYVJSVXBMSHk3bmRNWCtDQytHazBQVVBVNTVIUzdod05vemVTcjY5T05BU25iQ1VVRFJzVTl4YnJ5cXR4cEhEK0Q5dWRJOUlJbU1LZGdpODdtVVlvSElXK3l0Z2RkZjlYd3NhQS8zNWNxdlBWaU80RHF4MllHQlJCOHY0RHAxV21JdThRcHFIWEV5OUFGR1lwb21nTXRUUjdBMTlYa3JEZk5PbEduOE1DUXliNFFPWm4zNWFtc0NPUDhKcXF2Y1NwVWZoZGErTVU5TTVnalpFbEhERENFMlg2Y2J6azBpMWlubTFNVTd6UW04TnhuQmREUnlWaXBJZUduVEJFMUg0bExPb2REMUhWdHQ0T000R2xDLy9WeDBjU0hTVG15WmN0Uk9Cak9VdHJYN0FZSm5LcDdDRUtXSHVxNm5jdGxTOFQ5S3cvNGZsejhqb1FzUGZadSt3M0daUU5FM215YXNncWJMNmdxSlFjT29NOWtLK3Z3QzZFN21OeDlxRjNZUmVBWk90cDhUVTJ2VGNMMTFyZHBJQ2pmb2MzZUVXR1RxeS9yMzFtMGF1SkgweEJPL25iMjRGNWpZVVhtc0dmTjBHNGloTUlOVzVBZ2hwdTZMT1lKTW81bHh1cjNvcStEbTFqMXp3Zk5HQlVpb3o0d3RwaXpFRm9rbUV1a0ZUUzFwQTc1d1FyOFRHR01XbXI5dndPMDcwSmVxaU00bmpxY0JLRE81Q29GMkRzR3pwQzF2OENQNmJuZllqZHdwK2x5bWNyQlVNVHhFcUJFUjRicWRIaWxPdFVPRE5QMElaOTM4WTY5TElLTFpLYmJXSnp2WXM0ZlhCbTVSRHVnbTltelB3TW40aWJ2RGd1YWZadnZxYzRkTVJMUTUwUWdJYzVPL2FkV2tmVVd3Q21GMjRiZzloelZnSkVlSmN2VmJxWWxnMUxFcklrZklxa3R6cHRMLzN6dVFwWmh1NUFDYnhwZzV6NjBaL285eURsUDI4S045MDU2c1krU0J3Y09zdFhzdURjaWNjaVlTR0FLUnRvTXpUaVVIV0lZTmppZGV5bE1OQUphaXdUNjBlMnVQM29uWWVNdUxzaHFnOTlWaCtYYnVEbVlpT1dRUkp0aE9FeEd1YmtjMVNUR1NESEVLQ2pLY2kxMVJVS3NZTk13QUdpU2tiN0E2OStRdy9jTkhqeDF1NW5wRjA0T1hBaWZiei9PNllheXNmUm90YTNONWNPR05YcTM3VldvTjkydHMzQnlydHcvZksrMkJBN2hOQnl1R05nVm9BYkh0OGh5N2dzRUM3dEN3ZEViLy92ZE9SVGt0VkpSb1JtallPdElzNGhsa3NHNlEvcDRIWnk3TjBmcWh3aGxBU283d25XWlVEcEU1eGZyQkdMcG5OdXRoWTRFY1dPSk50SFIwUEFkbVNUVm5lcjlQV01wVUZ3REVLdmJuaERBcy9aVDF1YlFTNjJlUURtb1VIcXdYSHE3Q0xTdlNuNmlEc0dFb2pibXhYd2xjWlZRRlZxSTZFQ0N4SURPVFdIa0ZETmxDMWN4UUF0KzhJempoZEJSWGdUVFkwbUc3bkY0SituRUdvT0c5UDI4OFFHcXZYNVVlQVhFdnlWZlFnYzJ6RVJzamgrMEtEMjVQbCtZUExBRkdTSjl1R093dzYrQnJNWTBwdldRSzRDb2s3UU43QkF6T29FRGZ1WW16dkNZTHVIbGVkUERLaERCTU5PTUljdEQvc0VDMDJaTXVRNURtU0lBQlh4ck14alpxN3JXd3RERDR6WVFONGJYUkJDS2ZDWUNXZC9KNDhqNjhaK1JXTEZNZWppRE91UVh5V2tBRk16dFR4UUEwT1hrUWZac0JvQUhBaFlJcjlCa1R2clg5eEJFTWZmaHM2VjNyMHhOMm13RVlmVmVuUmptRjMrV2piL2tNM0Z1MU1RWll5NzNsR1F2UHBXRjVWQXBRSFVUQUhSUDFjYnBSSENIYjFZOElHRzcwd01SemdURVZJak5TUlhvZmswdXArMDBpcndrVk9XcC9LaktzSDRoUzZIOWRPSi9jQTJtRHdUd2F4Z0h1ZnRaTHdUcUlva0Yyby9Bak1EeGNCTWxLQkVNNHFiL2lNeFp6OWREcEVlSmVxV25CRk40elA1S3BZTFE3RjB2QWlrYm5HMHNBdmNQU3RSYjh4RTRkUGFzMGZ1T25Ic0hKSHJXaGVQdWRSajFTcVAwT0F3eDZ3UUNleVlOUkFYTkVUOXBRNkNQZ0VXb1duekk1cWRtNFF6MUdoZ3h3UExXbUcyR2pLUUdVZWYzZWV6SUFNdllvMkRMUysyQnZrWWJjTGhHNEhWdEFpb1F3Wjh1UVF6VVE1NCtRYVFmL3dMZndHTkpjSmFVbHgvSkZnUXNkbDdtbTV4bnVUSlVjblFkc09xallIam9EYUZhSnlEQUhvcm1tQmJWQlZDaGM2OUhjT0pWS1lPRjJnb2JOdmtFb2dmNklzcDBKU0ZhK2tKL0NSQkQxVlJBNzhoU1FKRDlqQUxqemRIeWFQdkV6aVpSRytMUkd1cHVybklsaXRvamtsc0M1QlVOZVoxVWVBT2pmMkFiNkNnbEM2bURIQ21GQ25zbWxsRElVSEV6Ym1YNDc1a0Z5ckRaMVArZ0dndzUwWFhDNEo0UkIvODdWUUh3R2h0T1NyVkFUWnhLVUhZNkFBWmg0emJIdGo0a0JneCtCTzY2VnpBV045NlNYRW9HUFBqMGxHbHduYzZkYlMzTmt6Um5xSG9vcUdCa0FlZ1MyZ1NwM25BRzREUnlaeTl1M2dTNWtEdGtZaDVweFV4M0xKMG84SktnbDhqQUQzRzh6QU5Ra0tJRk5zL1lQTG1NUGtYbXNiNkU2eGkrbVVCNGFDQmdMWTFpMlVqOUFtb01CeXVuV0p4aUNpVDh4cTVoR3pPRmtzUWN3WGhaeWVwYXRZekFGQmhxcXcxa0czZFEwSm9USjFrc2NRdEh3L1hUdDZZR0JKOGprR0JQWFZQMVFEMmtFU2Vqb1U3ZXkzVHNYNktHRzRTTHl6ZlU1anZJblpIQ2sycWp4SEUrdmJUQ0xCOUY5QXBwaVNyTXpnRHpYVzBaTzVnMllZRE9pbVI0d2lSMkJjcE1CcU82ZkI1QTZaT0NNa0JrQlFMTVFyU0x3TUZpY2V6b05vSzNBcVpjb0hNWlo3NU1CY3JwbFhzc2ZxZ1JFWXIzMU9zRWsvMEFGQ0xCMjZwWGZzU3pJQkVEV0x3dU9XNWRncUdqOVpJQis5akxFRkZxWUhGQ0VDZzAzTllJcGYzQXpRWVhrY05Cb3I2WVBOWk83ZHhqcGlEL0lsMDBHc05pOFl2akxtN2ZSVEFGUU9lU0hsL0NxQVJ1MzhKdFdYaHlleUd0QlJDZmNUUVlnYjh0WHFXempFbGFBQUxBUU53RUNHSHR1MTU2MmlHNmVWZW1mekRZREJwaVYweTB6MjFvT1c0L0ZheXJWUVE0bFdQdHpFVExGRmNOZTMyYVZMMUtRNm1TQUpsb3lnSncrOTJZTW9LNjlTUHRnNmFsL3lnQWUzTHpRREhDck0zVXJHaWNzTmdTU1BKWGdnZ0Urc1gvNlBRYllaNWFLakJJK2x2aTZFWm9iOFpZdE1NU21obXdSdmZGekJnaDFmNkZyT3BYWUFvSFVoUWtnTUNkdTNKZ2pGVlZHUkpiWU9qME50S1FTK0lRRVdHQkxURGZMZTgyOFhIR0lxZ01ZSU1IYS9RVHFhaThKZ1RVREFvRERsQmdOTm9zWmlld08wVXRyU1J4ZzB0NzlUeGtnUDA3SUR0MHFvOFlyb2pIZXZWd0NGbVRYMzJJQUg1RUtLMXd4d0dUTEJ0MjB6UURqcTJpeFpJREY0cElCTWxYbjJrS0E2N3d5dWltUnpod041blk5SURTMDd3SW1NWTRwdVlRQlZKYkQ3S1Z6bWZxQkhlSTBydzhsYXlSWU95S0tUOTl1UTJWT1Vnb0FMRG5KQUJZVFFpTngwcm5MTmlRT0pBNlFpajlsQUJ5TVhIR2llWE9NUWJTQU9CL214ZGNuQXpCQSsvY1lnQ1BDTEJXRXM1UXZsOGdMTlp6OElRUDBwRjB5QUhoYmQ3eXJjd2o2dksrT3NvalRCUFFGd3lBWGxVZGd3aC9FWVVoYTNtRXVPeVRHOUFOM0ZkdzhCQlV3d2RyOXpObkZURzVPZUdxcGVGcUowbUlUV1ZOT2RPK0Z3Rzh6d1BmUEdTQWtLOGhMdlF0RFdhY1dLYjYrb0EzMGxOSHZNTUMra0tPWk1hb1NUMngwSDF4ZEFnWTNBTU0wcTE5bEFOMVlkbXhFV3d6UTZjRSttQXdBVGlLOE5qbEcxc25hRkdEUXNLOENvcXYvbDY2Q0g3Y1BRV3pFcHFKSmJZamVzaUVwYjRLWURvcGtnQ0VhZGxEalNnS2s3K2hQR1lDWUpLNkNMd1RNdVNzbE5XWitmWXMyUGRNWWZvTUJUblhHb0lDbTVNdlZ5SXRMQnZBVDhkdmZLNWVBcHJsY0FxQURybGFtMU5VTW9DKzhtNnU5SmNWS3NjK1lETXN4akpkUGtmMGxPa0JpTGhKMGo3VG5OdzlSQlNTSzlKeEFYUWJuaFlXQ0EvdFVwK3hiV1RQcmNxVURoTy9vanhuZ0VxNmRlS0NTYUdWbWlhUU5sTWRCNTljTVVBRlV5Zy8zbHp1MGtSZHRCdUJheFQwN1lKbDgwZHZid1BjM0F2U1I2NU5Ea3JzQVMzV2FYMTl1WXFzeExHZHQ1QXIyN1J4NncxV0FPT25iaHlEcFhacnd5VzU0eFZNNFJyWUpuZFFKdTlaczlsYnRYUURINlk4WjRIYjZqYVd0VnBHT3p2ZkZCUU53cy9vYkRGQ01DSWJjVmNvTE84Qk5Cb0Q1a1JEUkovalNmSzBpQTF5VkFJWlp4TjA1SkNuVjRBUUsxR2JGQUlScXVoNVZBVUVKRERtV3FVS1RwZUZHdlhVSWd2NHQ5SW55aGhRQjlCR3BVS0k1eGhuZzg4RFdyeGpnZzIzeGY4QUFtWWltU2tpNUxHaGpFTTdmWUlBVWZDcVQ4MTc1Y3Q0NjE1Y0E1SnZ4ZmZJUU96aXFWN2NaSUZETDVSSVFsc0E1Tm9hZHpHTDdub3NNTGd3bDBEZDFwY2krMit2aVREN2h2NXpMWHpjUGNYZmdpZUZkMm5vcEhVK1dhZ1pSb21sQ0F2UzkxUktnWWZ0Zk1VQ2RmaU1NcVpucVVGcCtmVUVieXlzeitDVUQrSWg4TWt0RmZIaStYSVc4dUdRQUtxUTBXTWk2M3VoNy9kd1paRExERW96dXlBQUoydXdyYmxjVHdic3ZJSFFBMGJib3VhYXZGbFNvUFVMSUR4Q3BCRWhSaHVyY1BsU3FWVEttWkE1b3lSUWNtVkpsYUlDVFhBSUdiTHRhQjJDamUrMXZLb0hUbUN0b3dja0ZiYnJZdUs1L3pRQWNFWWRaZnNTOThwSUNlYkU1dFJtQWZrUGJwY21NbnN2L2NwQnU2Z0NaczZQYnpWM0EySEdZQWdXR056QlFtdE93ME82WTFpOUJ6UmNlSWM4UGdOT1VhR2srT2Q0K1ZJQzFyWDNrSG9FaUFJc2I1aG9tUWpBQTVEQWFZcllLT3NNNllPbW1OcWUvdUExMHkwMHNNNS84K3BJMnlESFVYRExBc1BZRmNFUnlxZjl3bGJMVXZOZ1FZTnBtQUlmZUtZVDNzRkNVNkJ3WXdaOUxBRTdEbFNLcEMzdmZGalFnUmpoUW1oeDk3YUhoS0VITkZ4Nmh1Mkl1YXl2NFpYL3pVS3FBMmVJcHJJeVNYNDNJdkpJQnVsdHIrdEVsbmJVOUkwVHlKeExnencxQkVRclRzSVhjTG1oalM5YmNHU0ExZFFGWkZXbGcyMWtxVXFVc2VNYWJBWGJiREtCR1M1cjJ5VUp6WWhkL3BRTXMxTW14V0hDejV3NmZoVWNFQlVyVHpQSGtNTG1xQWpWSEZoR0s3THVZeXh5ZHpNNTl1bjBvV2NOYnZVZTQrR284K1JlR0lLVytSVFlMeTl4a2dEODNCU2Nicy9VOUkxWHhscWExSHVpTGdxWk9WN3N2cjNoTzdpYzdhRGtyTWdHUU4rUDlpNkdJV0Q2cjZxSnBzQnB6ZVA5cUYzRDRBQmlja2cwamgzSW5qaEZXK3JjcVZ2U0pIWStJWFNkcUtGdDNGM001ZGphejI0ZEt0UXF0TWdYOGtnSFlXcVpnYTEwNlVmNlFBYkRWdStvTUNqYm1neU9wNkZ1VnBoMjVZejQveVFCVWxSWUl0c2xVWldXV2lvbTA4T3ZtM21zZERVUzlaSURFVDQ1R3FPS2pkUVB3a2IreUE4d2JqWE5ZdTc4TUE2U0JKbzRSOXZLbHAyVUJFay9zK0RkRFBNTGdDRkxlZVE3ek9WdXhzN2w5aUFNRTVZQlZuMUt2L0NVRG9Mbk5wMUFDZC9LZk5IdkVIekxBYVhQTEhaeEVRM0FhTjZoWXNNcTN0QkJHWjRDc3ZHSExLOFBTTUNKMHA2R2NHejg4MytmajRLMjV3UUJmQWVGVm5NSndKSTloeW9XYlVjRUlocElnZE9qSVovckw4STVLK201Z2hJblNQUWFIc1RTcWw0aWpkNGVSL0taczNYblZqbDdNNVVpSWZmc1FkNU1IcnVmUWl6TFM2QmNNRUEwSHEyMWdaaEw0VXdiWUwyOEZoS1JsZkRUUmlzcEZERTZaRXM5TUY1NXZqUWg1THE5ZWU0ZUNqMUV6ekZKUmhxZzEvV3cxQXhSRldsaFg4QVgxcTFHbWJvQVlqOXU0QU11MUJWakl5R2dIWlorMU1haDBFZ0ZyY0pma01FQ0p2QzYwMmZDSkFMQWF5SGVNYnVrUEx1Ynk5UFlocWxYUWdCOGVVc1JpRGZnRkEzampRUWFFWktzWjRPT0NBUllsQTJUVzIrc2hZYkhYYXhxWDFQeVZtVFhYU0hadjY2dzBNRUNFVk9UeXlyMGVnOUlvSmpKRXpmUE1aclBZdlFnOERBRkovS1JoRlI4MDlZSWx3dm9KTWdnMTBBa1ZDOXB0RkJZRURGeUJLZGEyZHhBOGtkSEFMU1BOQXFLOGlBRWl2OXdWMUpOR3V0S2dkUE1RckM0ZUpHSVJVbEZNckdDQXBybGdnQ3I0S3hoZ1hqWm1aK1FCai9vdmtvU2t5QzJ5M21adUNxd2prYmdpMXp3UXJmNzE0Z1dHdGxsc0NPdEdKdm5nOGdxOEJKTlFlTUVWaUFuK2lrelQyVmhaaWFRa2FvdGVOa1hWTGNjS2lRVWVFRUw2SjloQUJhb1FWeDF3eTVuaU4wbDViVURBYmd3SnUwOE9VNzdBNFNYd1BzUTJvMGtYTW9TTUJwVGZiK21iUUxqbXp3NXRSMUUrREVzRmY0RlVsNXJHa2U1amRHVnpRcTdxWHVnQUd6K3dxbFB6NVlEekJ3K25ib1hSanNRVlJvQ1FtNW51Z3lLZE5kaGZIdk52S3pwYnB1QWdCcFJKS0x6Z2lvaUovS1UvUUxGc1Zpc3VTZmw2ejBBTDRpZFBRTVhjT3g3NE5qb1lVTmtwNGQ4RW8wK3piWURpMDV2WkthQXNPT3lkZ0doSENIOTlFZHRNSUxReUFHTTRMV01sZExzSTRyeDl5Q084d2VRWkNaN0pvbkxVbjBBZTIzODhTZXh0L21jSEFYcUxSdEtvZHlVT2JPMnVtU1NFQXg0L2NOaDFLMHBLRnQrbFNrejhLZ1RDZmY3QzJpb05BSVg0R3dFeFRQSlJwT0RZS0wyWWhFSTZ5Q1FQL2dzLzZ2WVMrWDg4UXdKeEZXQUJURWFkbko0UkFISWJUZWRyNWdjQWthWEhFa0FzMGFiRWhDTVhCcktQSElGenp1Y2U0L1c0RWtTYUlnNEhTNlpMN2VDY1orTnExajNlUGpSOUpDWVlVUzlnL3ZqbEVOcFMwOURtUU9Kc1cwOHhYbmN6YmFNZmdIZ014SFlNZi9WRHg1VzZsYTF2VEZ3aC9VeGs0Y0JYcm9EOHBRTkpLVm9PcWd6enljaVJLVGc0L0NsWGdYVjdqMStRdVhXYmNpYnlBT0xhQ0syemVFdTlIRTJ1UndvaFpCYnhIc3NRa20vRkJkNlIxOEdzS3RtWnR3N01iN0JvQXJkVlBobGlHdkxIZE9WaHpyTWphZ2Y3UEt0bjNmdnRRODVzV0l6QWVtLzhaU3ROanJxdFZtaVhjNFFweGltUzJDaWI5bkZBS09sSkNxWXhZTEtBZW82UXFTSFdNamNGWnhIR0gyeVJ1VGlVYXY0TGRTM3RoME1YcFRudHBBTVRsTXVyejhlbFo1dzRGY3VzWlFmQ0N2enU5SHJIV3F4VFRqNDdTQWdCWUJMQWxxeVNoNW5od0h1UTE4QkpqVmtCZERZQ05ZVTB1VnlwZHVlNWxkekV2aVJ3VzlmSVlSWUpJcVEyVjlyOVhTYmtzWVVuZjQxdkh5SlhrOG5qbDZmektFZGRwbzRuVWJtWUk5Qk1aampPbHRySk53NlFPcG1rZ0FxTmovdzd0UnRFc0RFM1JUbHB3QUZCQTBEY0FWN21vcG01S3BDNUkxbjB4VHBPTXl5dlBFQXBqb3dUSm1JOWJSR1R2U0ZGQ1AwQUwyQk1ScVFIQ1UvMnBrVGtJbU5Ecm1LR2llWjh4UnNVcEhaZjY1Y2oxRU5oUmVJS1Q1VG9UcllOODk0T2tCSTdpZ1FSVXB1Njl2Nk9XRTRtUWFsbVhYRm9WazNJSW1HSTdpNmdjUEJrYmptL2M1ekhkYUtRSFBRcDhoM2xtWFdlRUI2NFRGSWdMWlppTG5lR1dhWnVkVEZwa2dZWVZhUXY0S0taMlMzZzRrcEY3Z2tkMzBjN2VlWUhuZ3c5Znp4K015blZNOU94UGJnU3Azb2p1MEJDWWxKSVFrOTZKamQyZzIzcXNhQS9NeHl3RUhXUzJ2MHo4bXpmVVBtVzFWTFgwSFllYm5abXZvWXRPQ3BqNHBubTkvTE1BM2VSa0lkWmVueldiZXgzSk9rcFo2b21INHA4SVpGV3luT3BqUEdWSE9hVUhFYVBtU2NJOFFraFovcXAwenBQaUIrWVZVa0s1RUFxNDh4MllndXJhZGNYaythWU5OaDZGV3B0ZTh2Y1d1aVp5OWpLNmZqejdVeTU1SUZBejMvaGF1NENtWEJDMVN1NVgrUnVCQW1KU2dNSkxiSEZrZE9EK1ExeUo3dDNUTHoyZEFFNUlxa2RhTWhNTzYxS0hWemFTc3RaK29RWGlnMkFGY3d6Z2NQekRVaWx4UU5rbHA2d0RrU0NIOCtOUmtrNlk5b2U1dml5RlVrSG5RQWlEaVU1UUllWjVwbmNoVEVqUitvZ09oKzA4UjUxbmhCdDVTMFlXNUxiY1RrVmhLSnFyV2t0TGlaTlFRTkdBMy9USUFJRHhqbDNtb1lpTjFBUHA2dXYxVTliSEFqMFBQbHNwSmtvbUhDQ00zclhxN0xjSjJpVWlTMkVWc3loUUpUNFlrNEdpRlRDaHFuRms1elVFTml1eUZRTTRDUnFNd0RMeDRqdm9Ja3FQMHdaT3o4UXpxMWk1MDZrRVZYMFRPaHo0b1JtZGtSU3c2Uld5c3laNVF2SktiSUMzcE15NEllMGJ6ZlFCdDdEZkRibjBFR1ljZWlIMzZQTUV3SkNFYnlPVy9nMVlaRERaeFdiYTZnQXJVbWozMElhWUtDWkFJV3ZKdjFwYTFxNnBaYzRlNllYMmRERTJQUVRQYy9vZDFSU1lzSUp6bWhZajdQT3hUSks2eGtOb1BmWTlHSitBNTRwaWc1WUFsSTdVTnBWeFpOSXJWVXdRSkxvZ2dHZWtQbEVIR05nVVppM0hMbUpQQXlBTFh4cGhwRFNRekF4SEdrbU1ScHVTWTN5TE9KcjZWL3dLZEtiRzI2TmVRVHNDQkpDQk9LTDcrNDZ5TWFTQURvTUZVQms1QW5oMnhXM1NDL0IvaHFoc1A2ZlZPRjhyQ2JORWttcEFOeEZlQUJGT0JlQUxnTm5LQUYwMEpEVmd0UFZrejh4Z1VXQm5qOXQzTWw4Y0t0LzVuMkFrNS9SOE5DNlJwSFl3a1FzMVd2bU4raDBzUi9HQ3RJRkhIN2RaMTZOOTVJQk1yVldNb0NUU0RyYlN3QUUxR3BYZVFRTnVVa3p0VkgxVG1hT3c3d2NyVFZHTW9aUng0QmFrTWhtekF2N25wSTUwa2pJd0pGMndJUHhFS2k2TE9VY2dpUXJsbGFWUTBVaTVtUGtDYUY4aXVnaWpHRGVZdWxCVmRyRnl2eklRQVl0WHBlb0tpSjBpcVdhc0JsYnhKY25wVDl2Y3Vpdm1TYzVTYzNwYW1sNXlSWkNLcURuVFpBNTZQZHcwRUJOeUJvUDBZTUhtUVdqQVE5L2dseEhZZ3ZicE1jR0cza3NWbHdlc1VGWG9MUVdNb01SWFFheUhLNU1yWlVNY0FhSjBObVdBSkNuZzNrVkUyQVN3RmtXYStmZGZ3cVlWOU1RVzBiL3M5cnJlejdHU2d0Q0Y0eVpIeE1pd0hGckdxVlNJQVJPU0pLbEF0QzYyNlU4WVk2eFBSK3pJRm1lRUsrandDektsS0hrTFUvSEFwbzRvYUF5eXF4a1J0dUNBUXpkTFBFQjZxcnZNUVdPcGR2R3dnQ3ZJVmtjVmpMalpOYVJRSUxDU0VXeGMxK3Q1WGx5UXptVndQQTZud0hIWVlnMlpXYkhIQ01Vc1pGRFFlZWl1M2ZCWjJZTDUvOG9BK1Z3RmFtMWdnRjZTZ3p4VldGZ2FnYXdaQW9BbEI0aUtxaU9uVFpzWUFuellrbklhVVNnZkh4Z1BvWTZ6VXdTRUZCY0JHRDM5UUlESURYekNKZ3QwbzlRQnBVTVVCbHNHZVRNUENIdVE2Sm1rTlVMOUprcWNqaFYrNnJkNGhaTTFNaWMxc2tBdGh2cWVZa0cxZ2ZEYlpXQ3VoWjFxTnVmNkhVZDBkOG5pazdFUldtWDdxY1o3VzNwMXhtRTJtSFZ6RVRlVGpwOHRZUjdRYnk2aU9WS2pPaEkvU1BEME14SlBzU0x0UUxjUjd0SXJSVU0wS2h6RmNNbHZGSXhRTlN0VVVBcFZpVFlESzR5QUtkMkZrWGlMN2w0M2hEYldTRGpJVFl4UnpuellxL1NXNVY1QkN6anNFSnVvUnBnbmFzWUFCNnlyV1hNSndOZ21BZVJqNFU3UU54Y0l5ZE5mcnRhUGxvaFFValhVWmpZN1kyZ0xXWnBLeTcwVnFRbDRpTXpLRXZhaXJvOWQyR20ySWNhbjBVZXNKaGFyMm5Ud041N21ycHBnVVlDdzZBNzRWNlErRTNUTGlJTVFyWWprWVdRbHdpSGM4K0RYRUlDOUJlTkJqblRRMWN4UUZhdUVqMGdjamhjWTRBQzVyWGdXUjd2TlIrZ0VMQ2ozRUtuSDdDV1JKVGFRZTlxQnpQVWlsc29idXM0eWp0ZGZoOHFoS0IxbXpaNkltOTFMRXVNWldSU0lGNFYyMFJDWmIyTTlScU1BV0dFdFlJTDE3eFhGUXRGQVNkNVdvNkRsN1VvazhtTWFUdURZdDhQTmQ3M1p1aEZaRWlLVWhTWGd1V2xqdW1WUmNmelYyYnY5ZnJNdjgwQVowV3c4dkdPc1VHYXFaN0h3dGNNNEFzU0NuNUh0TVkxQmtpWUZ6bXBLSTNmWFZWbEFaRk9jaUtkaUtIZzl1REVaZFlETWM1TUdMV2tHcEtqL0ZUdWEzcHpkRE85bUZjYTBYdGs0ZlpXZENOdlVWYk1FWnA0clJOcTRYMlQ5YzRBbVpBSGdhTE1sUkFaRnlSMktOSzBSZFc0QlFzeG9UZVVlL1JTaEpBQkZzQUhYREtBMlozQXJuK05BWlQrdmcxTjYwQ255MWo0TmdQa2dyUU5kTkQyS2dNVU1DOENQOEFBaGlpckdNRFR5V0ZyTVJqNDltREpaZGFHYzRGZFhCUTJPck5iZGUwNlMwQWYzUTIxdUhHUkJDTUt0MDk5eVdFdkNSWDZJc3I3SGJnQ01tRFhGaTdOd2RncTVBdHAyelN0akF2ejlUeWlSeVBqelJxeHVpdytwV01ENVI2OW40VW9IY1FTRUF4Z2haUTF2dERCcjMrTEFRcjZsM2FBTHU1Nmd3RW9CbDhuN0w3QkFBbnpZcnhYTUlBczA1bE9ZbWFZUDZKVXJTSVZqRW1iV0dhYk5TckxzcmIwZTZnaEhPVXlUOGduNnJZMWg4Z2U0V2daNmMzaXo0U1lMWkFhUTNzUnk0dGVWRjFVUUl6SHFJUVdEckhZa0FFd3FvUXVic01BRmV2MVlLY0k5cXBvTHFwS2lyQUk2NXV2am1mRGoyWFFhQ2lCS1phSm9aYlJKUGoxcnpHQURnME5rWlVsOERjWWdOMDNHYUN0QW00S0JxRDBMSE1ob3BEOHdtclNRZllTZXFzcXcvazhFSUl3ZHB3UU9Pa1c5WGZ0NExGWXZub3k5c3dmaytGbjBGbHl4WW9nWEhpMEdNdkx1WVlianJqT09iUlNQaGxpOFJ5V2hoeFZYYnhZcXdibklyeTYwOG54OEZ4WlBaMiswa3NHOE5BejlMbzhuSXB1NmhQTGZPMUYxcmJSU0M3WHFPQy95QUFLcVdQVzVOTWZNb0E4N0djTWtFa2dQT1k3R1lEQnZzU0plT0ZWUmFtdTV3dEt6Z0ttN05DMWxKS1FrZHE5aTFSRjhXWkNDeDltaXpHelM2VU4zSG1ST0RidHpiVXU4Ym1ycUhPZHdoNmplcDBCdEpsNVpRSW5BRlI3SHc5NkdCZ0lHZ3lBMExNVmU1MEIxSXhRNXJCNlgvb29vdWg1cjJGUnk3L0VBSjhmQjVrcUZMbS95UUNPbFozOFFnZUlKQkFCN2tvR3NGc3dNV0ZVR2RmSnV4cEUvam5IdStzSE0rc2RLUDJTRzM1ZElpaFNTOWE4d3BrOXRFeWdRclpBNDJxa0h4b1FqS1JKS2V3TEJuaTd1Z1RFaHNIQy9tbk1EOTFTeXpHNkVoRVp0N1NUeUtFTDJNTFV3Vkk2TEZZVmxIYkx2OFFBaDhZVzBlM3ZMZ0VaME5udHdvN0swYjlrZ0VnQ0VmRE9OZ05FbmJqTWJERHNodXh0b3l0NkYva3VSQ202RHQwdjA2V1J0OWpZNjBLRXJRb2tqendESHhmalZ6QUFWVGhrUzZtVlFHS3RGdEpTQWlEaG9pRS8vUVpRa0FFUlFlOTFCaGpET0pFRk5zTVo5SmNZUUtoZ1NaZk0rZlViREJEeVNOVWNHY1BiZG9BRUROUGdjNnFYZ01XY0hBQVo1NWpiQkZTODFBeVFRMTl1aTY0elFJSHNjTlhRV3psUTJWc3hRRC9henhnZzFxZVY2bkRjQnJvV1lRV0VpL0wreE8yTEVBOGRnT2lZd3h5OU54bkF2UmtxVnc0b0FvQ1lncHNNd0hWTzdDUzlTeEVtZkhneFhOQjZhZEQ5TlFPUW03blJTUXZZRlFZZ3pDdnh3cWRLQ2RScm1ZKzdXaytKdi85Zk1jQTJHY0I3ZTk0RzVVeUozbUFBd0Z1amRXNHVBZTlaWnh2VnRKdGFYOUIwUllOa0FMNlFBa0tUQVp4WTZMM05BTzdQbEVsakNjbUYvZzVNdFh6em81cFU5aVFSR1RtT2hCcnFKdVJpdUxDaG90L3FOeGhnWEpnNjBnWitsUUdZOGlBU1FaWU1NQUowVVQ2K25YcW1oREZDeXByU1kyTEhGUHZTTkRyTUJEYVhPZ0N0NDF4dlZ2d1BUK1FXbHIwc0ZCcWtYbzJrZFhZclFHbEtZVi80QXR5VkJ6c09sOUg4RXFpdHlRQWNRR3dqbkFGaXlFYXdKTjFrQU9JU3RGeTVlSE54RmpOalVRSkJFanVwMHBNNFh4Q1A2TnNZc3VwVlV6RFZnSjh4Z0tmZWNReDZCWlBLc3J6SkFFeDVrTmpPWkFCNG9BQmV4YkViRXFEWUJRd2RTaytBTGJ2Qi9KZTdnQ0Z4bGdsQ3dRY3FUV2dLREppK2JobFErNFRiTlc0Wk8wci9lUThnMDRTSG03QW4vZEpxK0NuYUdTdmt2dk8rY2tQVlpyRzlMUEM5dXpRazVKc2htVG5zN2xlaGk4UWxzSVM5czhscEhLWm9VSlVNNE52Ymd5b1ZvVmZnVkxMcTRsSmdqblpRQTlKSGlMV1B1TU5nQUxjL2JHcDNCMHROMVdWNWpRRTRjSW51cmhoQW9Zc2thYkg5Z3ZTbTFFOC9xQXJVekg3dkNUVmw5YW5jRVdrSGdQakRjOE1PSU9SREZneVlBbzNVV0t1SitKNUhYbjBPcWxES2ZZZEs2UlQyWVFuY3ZOTnZnRHpPVmsxN2JPb3NNMmdzRHBSQ0NLTFNYcGdTb1JxbVYwWDBCZTA5ZUVMdVN3YjQraTVMMklPa2tWWFFUQ2NMbjZ1MG5acDd3UWdaOXVrNU90ZnVzeWVwNWFsVzh5Wk4ranVzZllZN2hJdElydzhMNUxMR1NURVNwbDJXVjNNRjEzNmc1YjVrQUkwcGgzakhFT2N1UUNWbnlEUERTREtKVlpyODFMVkNIY0lja211TXAwdUFoUm9UNEdzTXlGNWl1eEhwNGRZOUczMVFpcXpsRDF6NGhpc1RabkFHeWRSS2tDblMrMVBpSy8wTjNVNEw4MEpPSllQWHpnUU40a3Ayays5aWI4TUpsZ0kzR1lDZEpta3d3dlJRMEpuaDNrRHpudERCR0hoZ0U5bzdkSHJVVHBCYWpiNmRBWHNSWlVBWUtYR0hzRVVXUG9nbEN5STlFNVhHZ3BKMVdWNGtpNmJnaWN5QkpRT29ZMjZWSUY4TUc2YTZDSlo1WnVEd29DY1lDS3RNTldKRHMyNGk3Rk4va2N0bGtoMDgycURVV1JDL2dMTEY2TFhSMTE3VFJRRDREaDkvUnQrRnNPZTBJZ05nSmlTUUdDV3BlRitRWmQ0TERHdnBUb3dZd3JFRm4xaHZTdGhOSVhCWmdNZEQ4K0c0WktrQ21zL3B6c3lRcXlLaW1JU2tqOW9Mdnp1NE5FaTlCYW5acTdHWmhKRTZHT2grQ3JRd285ODNBSlVnekY2YllTUVFNWmxsZVdkV0w4RG1hZVlPTFJsZzNzd2hUdnVEY3FwelBrS2o5a3JlR0RpNkNLUTM0bjlIN0k0RU5vNFJYblAwR1crMHJCeTBhd2IvUktBdEhJM3ErZDFTQWJNSk5KLzdob3Y1TEhJR1pjazkwQ0NCeEZaTlBiM011MVZnV011QWdvd2lObzgwZTBQQ0xtdUJlMkplVFM5aHoxcVdyS3pvcVJveTZGSTV3REFGRXhJU3JPcDQxTW16ZzB0QmF2d0FkSmk5RzYvQmZPKzRRN1VQRVMyTUtDdXJPejBtb2hUMWZrOE9kSXBLdjJDQTlBUFpxbEF3Z0JZZW8zTXU0TkFvM0VXMzM1bmc5VWhnMGV1WnZwRUlnRWszWFB3bW1RSWp6TkZuMmZwVHJiTTRNR0xqb3cvaFI0dlV5ZVA4QUZWY2pXekRkWm9WTTZqSTEzOXNvWXFCa0xRNEU1emJUUXdydmQxb2lTUGdXaHFkakI1cENWekd3TllsN0szbWRhUnFRUE93NjZ6eHJpMndONnlKSHNpNUlQVUxvTVBzMWV2UnBvN0pBanFjRkI0VEpqejFJNGk5aFVDUTluaGY0ZFR1b0dSa3lZZGdnS1pwc0hSeDlzWlV6L2w0dGtpTUNLVXlxTHhucW1HUjJPMFEzYTZHRUNNc2paT0NFZUF0YkRlaFVhM2U0Zk1UQVZPY1FDQ0szQmk5KzNJR1piNytZd3RWSExWSzlRNUtsZ0lxdThreStaU2xEdmp4M3BTd0lYQXpDTHBWd2g2STFXTkI2NlNmOUFhME1lcUZINGxIMVJiSXVaclU3QlZzR292RjR6WUpZTFZ5cjRIeGlETDRlekM5d2RaUWFoZ2xPRXdIWUQxUlZ3RjlKVU1BNGpsbkx6My9pQmJtZlBUUWNuRDVtMG9xaktlVmNqNTZEWElPODdQaGt3czQxb1JuVzdYZ1dtZGhWaFB0ZlEvRTl6UFJWZzdpSStEbzFhdmFYcGxCWTRpME5wQVlPN2FBZHI4RldSaFdqTjh1U3hXWnRybm9WY2hnQ2x5RFFRQTZreVhzdmZZaWtaTVZWUTFOdDNINC9xTmZFSGhVbnErQzJrbTlTZHlwUW1xUlhZRGpRQWc3SUtxQjhjQXc2ajhRcFpDREpySzhlakpMd09rU2tJbE5kWENJa0VMajdPWHBKK0lGWWo0cThhSzIveHZIODU0NEV1a0cxTERzZHRTNnRMSjdoaFk2QzNvM0tKcHVlR24ydmlob0Y1MDZUZzQ1MURzWXVQcDBNWVBRRDdJVVFHTGdrSUlzTE8ydmdoTlY5b25YejlWU0Q0ekxYdnpHSWY3RVBWblFIdzhtV290aW9VUVJnOUE0UFNURDI1dUxERlRYUFdWeUYwTGNsZFFGN2pRNDNwY1hUMkxCdVVURW04cFJ6ekdEdUMwcUxicURBMnFLUllQdWlGQWwwa05iNHYyRmpYejJZcG9TTVJUek1VbXRZR0RuMnJIS3FLT05zblpyUHpsZm1ZV2poRzRRbW9qZlFtZUpZY2VCNkdVZnp3NU00NFpJVXVrSllwcDhQQ245ODlYa2VnRHNqMG91b0xtMThTaVBCNloxNHh5R2Z2WWE4K2tSSExMSnFKK1ZxSVRrMVNVSFlaUHJQYWJwNW1SNEV3SWNuNTRVdzA4a2pGWnhwczZBNnUva2k4U2RnbFNFRGxQQkxMTEU2ZG5NenFJYlJ2MFgyNmx3VnVyV1J2RkMyS1pheFJESHFBT1FqcFo0LzNwUysxUi9xYjhSMk1BbGhwR05wOGVTaGlOZ1ptTUEvaGJTampHY2VaRm13UWdvOTN2a2E1QmVFTFJPMlJBbzc3MnVJSUZtZklCUXNINWZGeDc0R2VPbHlOSVpwaUJtbTRzdU5KZWhpbnJOaGQ4Wm5ZaGllWDFWRkZyTEQraWNpWnh5ZG53N1JTZEt2RndKdndtUzFOQlJyZTlOSkF5ck9HUFhJSjBXTTYya0xuR25Jd1Nzby82SGJURVpIT3V4bUxROU5UM2RRQ01jM0ZQam42c2l0cGF4Nmc1THkvMjlma2prUHVBa2ZlZk1JYWxFZm1PMmNnSlR5akhWQllieDZiV0F5K2VTYkFOY0pDNkprOEJzWExZaFpVb285OHRyWnR6bGdsY25iWUUrY0tSWWdmN21jTVkzUjdSU002UjI4cElLbDY0RG9ieTBpUFB0aWZZTUxPZEwzYmZTR2E5ZndPYUloQVRsWW5uTTliR2dLRmRUNG9zdFpTdUErNkpXT3hKbW4wSG9ETHNFVGRGTDNHbnVleG5Gdkc3VTFFTGpVOWFsVXk5NUdPdWlOb0phTWdmMHE1TUJOcTV4S0dFejM0bTBXTG15bDdQVnAyWTV5QnhHYllUTG94ZWliT3MxbEl6Z1dIUUlBYWFHN21wSkNlWEdhY3k0ZStRTXk3Uk4wQWhEMlVpeWtDNDJBZDFGMThYZ3l6TDNac2hteTV1YjI1ZHlvd0xvYjI3K0lWdUpQeVNFV1F5TFBEUWFZbVBLNHVGUWtGTkRSbkI4VWxSYllCQk9NN3FrWllvQ2RkUXgwM0VHb1V1Yk82WVRXNmNMM0drWnhkeG5MS2JhR01LMkd4Q25US1dMd3NwV3lQNlZETUNjSkRKcDdqUC9FUlZpVHVvSDl1WnNMUk1URWhzNjVEQVNMdStHR1poRnVsRkRpV0FCbklRNUVraHZNeCtWVUc0YVdyQURwU1NkWk9LMklSZEltNVlreXhrV0J0RGxnUUltckVPQ3FsS21Jbk9vZGhBR2pCWnhpSFRvd05KRTRBR2V4RXFxZ0NUUUNFV1lMT2pzVzJTZ3RmQjltMWtKS3lnVE9pK0x3dkw5VHk4d1E4c3gweng3elBRbVRPSUxKcGZPUUZwRU1TTTRsaEdUSEVMVVF3YWVpY0RYZ0drRG9XUXNCQ1ZRQlpTMnA0Y3lBOW9wODE5azl2dllUelAvZ2cweXNhRWRtdUQ4bWY1RUhWbUY4Smhkemt2Ujlod0NISkdZUkdnbWxGc0JWcEZ4RjVLVXhHTHFSa2NFZlNPemhKT2xhWXd1SVdEb1lWR2toMFlMcWxwc0V6cWpuT1ZvRW9mVnBERGpFRElFS21DMFBPampqTGtvaDNCUFNDaWFTSEFGZytOdDhoSk54MmthRnZIbGRRbXdMUHdxNmZ4Z3VXSFVHMWZjS1Ixb0dkV1F3YkZwUGdWYkEzbUR4N2xKbW95TDZXWktvUFliaktYTWdiakVtTHBaamR0RW42MjEycW5Bd2l0dUxES2lEQzdnZnZUTkVVZmVCQVRZR0tCdkVFU2Ftd25sVm05eVpOemxETXZrclppWW1kbkZLMldDbG9GTzhRSVo0Z2syZkhaSG1kOXJQWVpsODVERWdjck1pR2JwYW9pTmUwMXNIQVBFR2tETkRLRCtYcVRvYjliQ2hSRXg2NkdpVnU0bGZXTGpVZ2NZOU9SOW9RT01HUnhydmxKUHYxdVVBRkhjcVlld1pmWGs0YVFzYVVDMkx1dk1JcFVmQkJFWUYvNGFHakR2VkxnWXVHR2JlVStaS3RWZ2NxZ29YSlgwaHQ1SktVZVJ3MWc2K1QrK1hoUnIxYjRGbzc4RFdoWVFZRHAyNUNvTVpSbDFVc2F1ZUlYN1B2QUVJbWQ1ZldSMlFXcG5qTEx3d1FFVGtMbk5MTnBsaDZCSFdUTG5sRVg3VTBCSmNOazhFWlN6akdnR05zNkJFVlhKL2dGaWYrbEVRL0prenRHekdLNmpXRllFaXl1aEVkck9JUGJVRFVyVVd4RkVNWXh5WXVXZ0RJc2lVRVg5OUpJQm5LMnRXQUNIbFJIZGZXWHAwQmNRRVhKbklEZmVXL21KZDNuRm1OcDhxakpZTC9yS1I0ZUFBSTNEWTc0dVExbm9VWkJPVUMyV0xVSUw1MWpnRUhObnZrU08vZzBHQUpQaDJRT01jSzhKMFR6emFhbnhBV2c5YUVCRlNRZ2RSL3k3Nm1WNWRFaG5lamVET1BqTUFzQllSb0h0cTVMOW91dWZQZGd5a3lldk5VVnRIUndmRkowTWl3cGhsNUJEZWxzaXJEWS8vd1lEaEVEV3d2ZTVCQlJzTGNnYmhtN2pQYmlJV0FnTW5aaXlCR3c5NlgwVUk4L3FzeWhVZG1nV1ZmU2Z6blBwTlRaeVNBNm1TeG5NNXY3U2dRbVlUa0VQVlVYaGE4RGxYRDNKZW0wR3lJaHRnUGxEK2d6bVhrVFpwK1ZpcnZlRUt6Y1A4cFhCQUJaWk9lZFYzQzlqbGhseE1obDZ3UUJ5QWttR1BFd1piRDE1WmxFY0hQUktZQXJlZWNieXdRTlp5MG9PNE5zekhUbDFBNjQrcnRldEdIY1dwSzR4UytjbzkwTFBFekorQ1BzdldnZ3BWUUtURVNPd1JEQ1NWUnlMdVlQQkVsSEpQdS9DOEpyUGlnRk03U1NzaXpBYkJua05rMlkwUFY2cGViL3pCZ2tBVmJ4cjhTMDNKUUFWWHFVL2RyMk4vdUZCVENSa014ajBMY0pqbmdkREFvenc3eHArN3pMMmxYVUVrUG8vcW0rbkpKYWxsSkFtTVN6TTJHODlXaGRMN3BjUnNBN0VlUzFLQUplem85dk5OTldjcHdsRXhPdFdDTk4yaUc4cWdjUndRaytuQU84ZlhMM01XTXlPY011NlpFVGdzYlhKTFpJQnNweENVVkl2MFZmdHVGWEtPYW9va2RuZVdLZU0vNzlhOHg2ZFhTWUJwNWw2R1prUmJqT0FuVUlyMW55dVNxTE1CR05BVGt2cEdmUVh2WjdKZno5WTZ3RENGNFNkTGs5WmFBNG5NaUxZOVNpR2w4MmROcmJublpibC9yblo2bm1jT2NjQVZ0eHVGQS9POVhFZ2RnT21TNnZuYVZHUzVqb0RVQUQyK2lxUHN4SUdyTlg0QnV3N0NCMlBHZ2hvZ2RKQVlNbEtON2FOdEpJQm92akwyZUhFV0FHeSt1elZBUENKaTR1bnQ3THFRazJ6eTVyM1NDRWNaUUNZZERScGZwc0JTT05WVDJrSllzcTlLK21HMG9ieUVpdjh5NFAzMVM2QUt3UDhsVXpCRjA5NGE5Y1pRenE5eFFJUlRwNlJjRnJXSTRSeGpuU0duZFdHYVRLcUNnZHlMMlF4Y0Qya1NWQjFyeGFiOGVRYkRPREJUb2Evbmp0Q0NDWWNiSllCcUxYUS82cUNhZUpiRXJXaXJWd0NPTm5sUEMrRkd6WFFHR1IvalFFcThBMTdhd2E0V3ZOK285N2QvREw0ZkgvRkFMd1phQ3lNSml3NmtzMlB2bTRWZnk2ZnI2VGZXVnJNM1p3ald0b0JMUEJwaUVUeXBhWUhHSGNaNTh3OXA2REJENDBTemFkejBBY2lXSTNGWkEyT2dWN2VQVmVsUThmM2pENWJ3RzdndGdaeURDS2xJYVA0TGRjWjRKM2hqb3RHU2UzMklVc3JDdy9CZVJmbEFiT0dNVnNOaU84M0ltc3JDVkFJb3hEcVRoT0FoWklCMnFUbTJCRVgwRnRWREhDMTV2MjRYUXRxdHY4dEJ1QWszNWsraDV5TkN0WE45VmVaUVJsQXhCdFNyRWtIYWVsR0ttZ05LRnpOR09tU0FYTGt5VFVPZy83UTNlYk9CZjIwUGlzejBoWU1FSFZqN0NTSXZDNHNNSDJOZ2FTZy9oV2FwbVlBb3BPQXZ4YTJKUDRhcmdCdHdnU2o4MFhKdzJqa0xJSU9MblNBMksrdmZRVmdka09lZG9zQjZxcm5MQ1ZSOUY2dGVULytnMnB3d3dzNDBkd1lnSDd1VG9zQlZpTXFnVXF6WUlEMEJleWdKL2JXYmdlckdhQ1NBQm1NakIzZndGVTlwdy9rWkptUmxoT2FEQUM4WWR3S0hncFk1dGFScGVpUEdJRFN0TVpmRXlGRkUwNkJ5WFNqVVphdmc0bVZFZ2RnbXBvQnNySXlORWI2RTVJbXYxNEM3Z3Q0K0Nwb1Z0VzgvMk1HQUVEcS9BY1NRQWZXbGNCbW9PVGo3cDJPcWk1TUFCcEp2R0Nta1NzNndNRXVpclFFUFZoMEVpZFk2UUJWUmxvU1RsOE9YeHhEeHR4dnFHVllvRFJMeGFrc2RWK2tHUUhORTlUTmwrQmxpWkZjcUppZVlCVWg3akdEOTVId2JHVktDaTdrc0dMNEp5d2ZuN1hWNTBid1ZNeHRoM1NWQWJiRWdIRjVJWXBVRVRVSDE5dnFtdmQveUFBeStOangvRVFIMk0yNWJyb1NPRElsMEhRQTF4Qm5jRlVEQmlDa2JFUWx3UzRoQ2g4eEZVRUFYeE5tQ0NaRTBwSmVHakxCK0VhV2x6SWo3WXNmR0VFcWM4aXEzRy9iQ2RNa1VOdkxzbXZkR2pkRlVzY2ZKYXEvdFBuNXVFRkxBVnRVSlE5aGs0VDdyOEtkaVF4c0hLRUVCZ2p6MWdLUEExV1dSRjh4QzlFRkE0Z25wbE5acWpGaGtMUHM0QXhRMTd6L1l3YjQ2Qk1nNWZramJ1d0NLTEJ4RUF6UTZlbS9zVWVjN1NORmVyK252SEdXb1dxQnZuUkZ3S2hkTEVNd2hpMGlUVTZZaUxHWE1LbGY2RmlZM3FqaVJ3WklYb0xsU04rQy9UL0xxb0hSd2JpVDhmTHVxMkwvemEzSElyMkJnOG9TYUJxakU0bEtvQTFyUEc0bURCQVpZajdWcW1XUXNUSVhoQTczUjhVQW1KMzVSQXhMNUpWc25HWlZ6ZnMvMXdFYXhaak0zYk5FSHIxdUJ3Z2pRVElBZm1aaUUvTlZySGU5aFV4M0lVN2NsQzRXTmV0bFBjblM4Z3JYbkp1OHZKSWlQRHBEcXluTWFSZHdUNWlDcTUxejRoaEhuVFFkT21vWnRkU1piSVBmWXQwWTl5cHZINU9QdUo4aGtoTkhQTUQ1TW5qLzBLZkIzbmREV0FMbmtmRjBMd3d3OCtMS3JLaExtNmQ4YWVEa2FnWlFaMXlUVDl3VW1XWG42MWhVcTVyM2Y4NEE4UHJDdC94TFM2QWRiTVRVMGpRd1p3bnI5K3M2MTFaalY0UjBzMHNHQ0M1WGlRWnJPbmZCU1UzVEhUL2xERmd5TndsV3RFTmh3TW42emdNRVU3dnRyTUF4RG16V3VQTUFkMElLTFdUalpBMXkzZ2Zkb1RHTzBjdjVLNS9Qa3gzZlJQK29ZMnpDeVUxY3NBVW1NQzdDUW9vaURId0dIZUE5NjRBU0hNQVUrNEdUYXkwQnVxRkJhVTVIOVdqRk5lYVdEZ2FvYTk3L09RT3NwRVYweVU5OUFXTVg4V3Rrbmp6dmtOTjNaM0hPSnMwTSs2UUxpT3FIWklCdzRkSzFCL2Q3Umxxa2wxQmtIcjJxa0tUdStLcEs5dU1GalhMMEIxTTA2THVGLzFndk5QZGhKdEdUbGlBYjNnZmRoNzdYL1haREVFak5RS0hFVFJVeGdSZkIreDRaRWFnWkJCV09pakR3TzFRdWdqOWdRUk16QVUySms3dlFBWHJyTXFvZ29zV2xwVnA5dGViOUgyMERoOE9JTDB0djRQelNHN2lNUFBzeXpURFBsUDZzVzM4a0F6VHc3UFVWcHQzblJNOHE2eUFPOGlDUW1xNi9tTk5MaEM1aDJWeE9LSFlQV2JJZjVTTmt2QWh1VEY4cHdHSUlWY0JjQ3BETnhpb3NEQkRDd3VBR2xDeXc4OUhkMjdIdWQ0YmNZQUxMeVFoYllJbVNPanlqSGJ6UDJDZ0wwR05Zc1VmNExIVWJhSldMWkNaazRBTkNWaUhWZDJoVU1KTUJySUJ4bHhpd1k5YVhxSzBEN1pyM2YxZ1UvT2twZ2tkblA0c0h5UHlGUXBWR3R4M2hYcDFad1Jpcnp6dEVNbjQ5VE5IQnBPTkdISVQzRUdYSXIvY3dybDdqc0d5L0JGNWNBaUVoTkMwa2FIUjIzNGRGU3hqcVZRbk5HRExwdGdzWUd4ZVlRNEpzb2hETkdkMWU5M3RHaUxOUjJtS2FtRW41RWhkQWNyVEtKOHJKRVZMcmtYK0FoOTZwaktxY2pCWkthWHBkYjNmbTVyVk9CK1dWSkJ3RHhKanNNdi9JMVpyM2YxWVYvaVZMc3Ywc0lzamxGVWRmam1VcC9lK012KzV1S2RMV25PZ00vYXdEL0N6ZStqRmlCUUdRemtyQVdaZ2Rod0lJaVhjQTVVenlja0xhK21peVZ4ZklxUEhPNkZoaURqUHkyUEYwN0dabEZnKzdIYUpOUEtwUnVpK1FRZElxaEFLd0pTZ3VPWXRxYWxuNVVPc0ZJTlc3aGc1a2hvQmplTXI2dHBXZ3E3bXdBMVMxWkw0SWlxbXFFVHhlclhtLzlEaVJDd1pnbW92S05UaVdCcFRKOFdjeGdjZFRqSDdVeDVpQUxsYmR5VVo2OHV6UVgxeEswUUVabWloVFlnOXh2d3psVGxoMnBGM284SkFESWZrT2NqUEdoV2ZFSkFPV0NXUjhMaTRBV08vWnNRYzFuZzVOaUJxb3QvY01pYmU0NXFPQmp0NnI0cFlBeENpY0xJUDN2Yndzd0dpRTFXZ2pQQmdNSU90L3hrUEpqYkVMaVBTLzRXb3VMWUZ2VVUzcUIyRnhyWG9rMTJ2ZXoxclY3Y0FBTE5XRXZVMmF6c0FmMGdEanVJd0tua1JVOEZlTy9vZ1Y4ekhNamxyQlNLdk0wK3VsNmVHY1dBRGN0SVA4Z1NaOGRyeEF3cktKR0tIWVZhZ0J5UmtFOVpPZHBBYUVTU1JKb0V6MGdFL1VETEVuOHVUbGpkMUtPSlo4RGxBTWtRMWFmZXg0cmJnbFNtTE9yTkpzQUJnSktRNnNEV0F6UUFjelZJVHVaTmI1WFRLRlJaVmlhRnlWQkhmNG05eUU1YnFnT0RDendhMmE5NmVxdmlVVlR1L1I1NGZ4SElkUm9RK0lqTnU0QURuTTBTZWlxa0t0ZlJHZHFUS1AwTjhFbVFvNUFibXJZRDdhQ0VLeDlrWmhTckhyU0svRVRMRXRDVzVNa3Fic2ZTU1dMQkZOSjNsS1lBNkJHR1RaU3dXNEVlTm0zVVFZZ3RUdkRocVdHK3NodlliRkxiTkdNWGdTNE5HRU1BdjM2dXFTV0J1aHM5SmZHTUNpUWdjUkV5MnpodGorVmtXRmRrbncwK21vTC9lUE5KVUN0Z3ptWkxsYTgzN2ZxbkI3L001eWpWRTZLWW9qelRBbnRBbkc2aW95NkNpSHk5RTNaREFuRkZDZ09rQUUyR0xDT2NpVXVETEkwRVNac2tUdGlZQk9ZS2JLU3NDQjlaUWpMNFMzVGNlR25ESjBZcFIvRHRuTE9RcUtCcDRmTDIvM2NxSWVJYVB4TnNwc2ltSkRYVTZ0Tis4WVk2K3JPZFlwRDFUaXQ1VjlPMmFWY2h0b09VRE55Y3VqQndhSFdCdlEvOTg3cXcvVkFkS0N0VTBOdXBvckdpRXpyWkxnK25SdHhnRVV4Rzg1V2E3VnZEL1ZOYTR4UWRoRDFoV0NFSk5KdUN3cHBjSzBYYzc1aENFa1VINVdvTEFwbkRodnhzVHc2dlZURy94RWx1STYvOXNoY1RpYlFGVFhtRFlPaEFPeTI1OVY0eUZMSWN1L2dMZ0tLUXpVWlJaZVBGV0RnYXVCZXNka2NiN0lMQVBLL1RhOThGWXMxSXpHNG1ZZ1Z3cnlTR01DS3dic0hxdkUyaWdEL1B1dnhnTUFFSUlTK2FCcXBqV0lyUVFPdFV1Q28rRjhvYi9EYzNPeUhFK3RtdmZzalNyM25DQ2NiZXpKeVlLemVRd1pUVndNSnNBUGgvT1JMT3lzT0crODE3RUVyUkpyajFiUCtobDVyRjBzRTZXYnN6NDhkQ2FSZFZIanVXNXZWUG05cWpmL2t2NmlSSDNncnFIZVUzWHhFYVhJbkF5eFhJSXpvdnl4VFVoZEhMSEE0cTI4SEwwMkZEZGp4ckJVNVNLUlVVVDFyMkJnWlpKQVpZRC8zc20zUkZLTERWY1c1QzlvcHhnNjFTWEJUekUxQWJVbFFEd3lKc1RtTUp0dlNLbVk0RmpXM1piSEplWVFOelp0ekFhQ2lIaGNISGt2S2lFREpkaEVzWkhmSWFOR0tWd0I3UXR3N2N0MW56cEdGc3NrNXVtNXRKcW9zR1BOU2ZSbnc0cFdBaDNqcjVlVXdqRGZSdzFVV20xRHBrSnBVcnNPRkdhbE56ZmFXQ2FwQWU5VXhRWm1DMklaRWh0TEJQMFVmWWEyY3dmc2VXNUJjLzlSTThBcGsxcU1JU294czdoamlMbUtBMlZKY0lMeE1haEZpb2dzMGZ4dE9nRWJwNFh2dlRKVkNiYS9KR3dMYy9qOW5WUEU4ckJnb1RNeGlBNHE2OXFnOThtSFVHcFMvVS9RS3E1d3VPNkY1cTlmVEhRdnU0bDVxdE5ubU1Mcm1MSnNickVPSVN1VGtIL0psUTUyWk1BZWJEeVo3b3dsNHVDemY0SUZ0NGN0czlBN2NrMFJTM3dHOWszSWg2ZVB1SlNEQWRLbGwrWWNsd285dXUwWXVoN2IvUzlqQUptNzR4ckd6K1ViVGJpQ2Y5YWwxOHNhNEtkajRxeXpSTFBocU5EQkJzdVlJUW1oeDArOGIwYXVvSUlmZTdpOUllQ1oxOUNMMW13ejcwVnVORlNEZ1dDTTdEeUVEQkswU3F3OUVNNzMxZDdmQ2xManpxMWltVk56aXBhZUV5eDJYZzZ6RjYzMFdVSElpazNkL3RJckRleFlwRG1XTmhpbDUxWisrc0V1RENjd3ZNdmZhcytDZDlZZEdnMVQyK1BwdTF6S3Y3TG93NmU3OU9TQU9jTEMyV3dlSDBkK3pJNWtBTnZaWWhWekdQK3NUS3JqaUdEYXBORGFOY0FMbkhXVWFDWlBycklGN0dwclNVcEc2SU53cGF2Q2pkcTA0aEdrU1RDclpXWWloZ0FkTmhGaGFrQTVOeFhMejJXaFcwSkd0UVZLRWp4VldQL0FTblhOc1RXaGhZd0NUdCtwTXNBM2hoVXU5NklwV2RxbDR4am13YkJrMkZLWmY0MXUzbmVHNGxScDhBOEw1aFlYZWx2bHVjM0pTM1k2OEE2K3I1VGtFRW9lMWhOaFhWdzVua1BzdjlLVkRWNUZlcGovS0FPWWJRdXJtTVA0TjJWYUxmN0pIRExmYU8wYTRJbXp6cnFCTlBDc28zRVUzNW1xWktkRUlGSnlPUzNyd0owZHVzbzF6T0hzU0NhSGNrRjlkR0M4NVNMTFdTWVhDUVZaeVVyRnh6SktQUURmeHZLYXRQT3Z3LzV2MWcvalZnWTFoQ2VuRGdKbExqaDhQSHk4bjVuSW5nd1EwWEdDdE5RekdOb1RjVWUwZzd1Y3B0VCtMQmhBMkE4U0FFVytXZFU2R0dEZGE3eklnRHZEbGRlTHlvK0hlWVQyejQ3c0Rpakw4TW9LOEYveEJsN0MrTXZFZWc1QVl5SlJHNE5XRGZERVdTUFRQeG1BUUY4Mkg4V0lRZFc2T2p3NVFOekFITHFiT2ZPV2UwWVRQRGVUMURMMlJWTXV3M011cjZBK0dNQzRLQlJaNmtHeDlnTk11ckY3K3JLU0pONkE5MElBUklBbkx4a0FZMDAzOHFKTVpHOExid1laVFREYWtNZnBhbmNHWU9qRkM2ZG5HZUtsbFFvc3VqeFFUTExmTVV5U2hBU0RBZkIwZXJRMktONmFSUjk2ODlLbUQ4SGd3VnNPaENNbGpRSCs1NDYrWmpnOUhNOVVwdFlrSXBna1lGSHd1Z1k0MTBUaXJNa0FtTDRJUUdWam1IYVp3SVFPb013VVhJYTJiQnk5bFNsdHNzQnNWRXJVSDZ3bU0xRmhZVUhRVUVFQ21ZQ1FKSkNnUmxrTnNneGNrUVlYMk40R2ZISEpBTlFBTFh3STZaU1p5ZDZvRWZtMFFVRXJmREZrajU1QWhtWkZvUWNHZnJJUWh0bElPOFlBSFVjeG1iR1Ird1ZqQUNFSW1BTytBaXBMSkhRejZDMDhHSW9sbVpQdWlOeU1sTEJDZnpBQUl2b0dEWnpwREtVbGtXd3lFNWVZRFBBUEdTRERnaTFjZ3pocjdFT3J1aE5sV1ljcG9md3ExVFVUcmNXcmVPQlU0OEZ0dkFYTDlxNE56K1gxUlNQdlJjUkY3OWJLQUJiNDZ3d3dTK20zWWlCc3A4RHdBQ1c1bXpQRXUwVFVsU0Y2YlFZSURSQjV6dUhUVEEyM3Fxb0RZdlhoWWgxRmRaMWdBSUp3U1J1T3JtVy9OQWJ3T2U2WkZHMDdSQVpRNWdDa2FHS1ZzTTEwejdwTThyQk0rMXF0QWZ4Zkh1TUs4UC91NFBhUlNRWkp5akNXMGllYkRxQzJCTWlpREVVMXFRNHRVWW05UTRsa3o0aU10WU1iSWRPNEswejRxaWdPUmoxeW9xcGhwUVFpNTNJNEhEdGEvdzNnOGhGV3pZNHRBZmJwSkliS1pZcW1LdDQ1UHlIQ3RDa3BvYjFkTWtDaEFYNDBkR3FqVlpXUiswWWwrWFNsMXloVmdKZ1RyR3hpNjBWa1k5ZGRLeG5BUXBqTTRZamRpMXFDeUFCa0RtMDYxSlIyV3hZa3dUckEyRTZvZ1R3aWZlZFlpbklGK0g5MzlPRnFnSk5IekY5bmdOc1NJSmIxWFNjVHVqTExBdWFBdEtGbFJDN1dqaTFLOXhXVkNPWktQVkRIVnhIVEl6M05jeUo2R3gxUFlxTkFJWUJCWXRXa1R6K3BGNGtVWGg4TGQ3UFArV1NBeTRwRE5RTndhOEd5R0Jib2hrYi9GNVZVUUtvMHhHcU5wY2t4R3cvSkFPd2hIb01NZ09BMk1vRE9jYVpwNWEyWHdRQmdqak8rcU5RUnlXZHkxTk80STkxVnh2c1Y0Rit6QWhrRDRIc1N4ai9VcWZhSEVpRFdIMjBlVnBHMXpiaTFCaWVYRnc1WC91bnBBNTVrSVRGWVNuTXRTZ1lndERRa2dDd1JqWEFBVjAwbU9kckFCa0RxRGVIdHdMY1Y3bVlBZ0NuemdnRVM5Wlk0aldDQTFBQjFRSGVzVzVUaElpYWhpcG1JT0R0aUFPVU9HUTFqc0RzVE9zRUFzMkFBb0ppUTVHWE9XTitDQVFhVzZxSmgwV0l1bGF5WE02ckkvRVgxRWM4c1Y0QmpyQUIzOU9Fai9NVURsdjZVQWJnRFdUZGxWaHB1aWhlOUl1cHRlcDBCMGdlcytvM3JBSkI2dzNKTnFDSUtVd2RZbmZVeExoZ3poMXEzWTJnZEVIOHl3WXFaanhMVk4wY2t5MDZpNGxDLy9MSmtnTkFBb1R3V0dGd3Z3clFFcUFpVXNCbWhzekZoNS9uNmM0VDhHOTdyZ2dINmEvdC8xWjhqanpzWm9Ha1FHNnZhYlVSVkZmWWVDekxQdlg3dUR4WTljRWdhQWJnQ01FWE12T2NGdW4raEE4RDlYak1Bc1ZrTG9wY2p0Skx5MDdmVzZMM0JBUFF5SVU0MlRCWE12TFgyaENhWERJQWZHbkd0WTRKVmMrQkpqb3o5ZW9yajRpN3RGUzZ0Y0RjL1U5bkwwSExhVER1cTRWMW5BR3FBcUpPTG1ub2ZCMnRrZ0FSVXpIZVF4SWkwSEFSTDUrc2JtMXZtem9JQkhwbXhTWlVaa1NENllYNE1tUjdWZk5sVFFTZmNudFZLV1BreEt1bFJqYVlwZ0FjVkYvVlJHd0YwRDBBR2tHTGVyQXlBOGZnSkE5QVFlQW1zUk9TUUN1TkRQYWtNV3ZEQjJqQTNHQUErWU9RYWF5SU5ubFZmMkdYUjZQSHlrZ0VzRFZWZnczWWJnRWNqeVJHNTh1TXo3VFFhQ0RQRG8rUlpDTzZWUzdLOENlUDNzUkdwR01DelJKbkxsVW1DT2xDdDFteGtBTk44UVhITTA3Tng1bVdob1FHV0NaQ2tHTjJOK1JpZ3pLaWlvc3Q5TUFDZWpaMUxNemlyaUFBRDBLZUVvWTVXTFBYSEZBK3NiUDFhcVlCa0FDM20zVXV3ejIwR09DM1JLZ1lJU3ZkMnhLbXo3am9NM1FZdUN0REZkUVpRdDIzVUQ2ZWQxOEw5ZTU0UkE0NkptZ0dZelE5THBRdzR4dVZ6VVRJQVFyZERSR3Q4aFhxSWFRMUd0RGV0amtVZEl1eUhEaFVEOENWVEExeXNJV3NKWDBnWGU2RUVJTW9hMWJpNHA2aHF6Wm1xQnBJVW93dUhCRTBBcXFqSXg2VU5CQlpiTXdFZ0l4WVlBQ3QyTFBQa3hsVDJTMU9BSU55aU9Dek53TWtBS09hZHFMUGJET0FKdWRzTTRCbXk5RW1seWVXOEU3c0F5dkJSanQ5Z0FCODVnS2hTaDBDV0RxeExUNGl5cXhtQUdYUlJxQVFtQUJrWHA1YjdjV3dKb0NhMW5Ga01lOUlmZVI1Vng4NDZSQnE4N3lTckdTQTB3TSt5bGkyYTV4aGRSdmxDOEJCS01tT3l0MEtpYmF1QWZXZkpBSGdMbWdCa3RtTTVwK1h1WkVac0NEcnBudytVQWJ4YzFyTmpNTkRLN1g1aER1NWJ2b2ZLQ0pCTHdJNFdxNTh6Z1BpTkdLNzQ2eFFoOFBxcHEyNFNGU0lucnpjWllQeVk4TXF0K25vamI0RytXdFQ3cUlQS0hSalJNY081Z24vN0JQalNrd3ZFTHIyMUZnbTluRksxUUlsQmZSYjhoNHpyTjl3UjdFcXhZSGxOcWJRQkh0aUk3MDhuOW42V05ubmxJVmhuYVptcFVURmdFaENxdFFSNEJTZEFnYkF4aDR6Q0NHMk5PWVRZRkZTNHp0alN6TDNTU0VmT2RUVUg4L2pucFJFZ0dZQUUrUlVEaUJSaUFNdmxFckNnYWFOQTlIb09uU0x1L3lZREpBUWFKWUFNc1VpWmxCVi9hZ2J3d2k5bUF0REJ3Wm9KQ2FLeEhHNlVVVStYeC9YSWZLRnFBV2lKeHluUW53bC9aQmpUb3NBUmZxUUd1R2JENjArc1dTQmtLQUZtbkZiRnNoOHFRTWtBZURObzVUbTZicm1IZ3dJSmxpeUZZVkdERWlhQTFacnlod3hRT255a3FVa3dWM3Q0N3N4VHpGaVJNQUw4T1FORVVPQ2tuZGJDNjhlWHlCRDYwaTNaeGU4eFFOT1FTV3VPeUpwZk5RTXdxSmVycGc2T01vQ2xueU1ETE1BQW1lK1l0Y3hZaHJXSVU0QkhFcVdNVE94a1FmbmR6anpaaFFhNFFrUEdqUTRhK0J4TG1mczZzT1JoVjgvMTVMM1NZUUVOMWpHNVpJQzUxMkE5Tk9sbm9wRkpIRzdJTFN0TnhSUkVlaXlleUYybXhzU3FJZ0RXQUxET3BSSGdUeGtBT3hFcmZuZXRRcmN1STZ2TWFoRGxxQ2JoRVBWZVMvVFNXZ0tLK3Y3VXAzbVpXdE1YMXdva2F6aGhZSC9scTRHL2JESkRTWWVwTXRnOE1wSmxlSGNacHhEaWQ2Y0JPYTF5bHZQR1RLdnZvUUdDYzh6SzFHUHpCTFJMT2hzKzVTeVd4M2FIMDZ4a0FCZ1QxRHhYTWdEREhWUXlJWk40ZXBwaFpBTDhTUlV0NXFEb203cnMrYlh0S2ZHTERNQm9NV0F4YWlQQTcwZ0E1RUhJVjNSYkJPMm96Z0JsenJ0QkpMdEFMd1J0cHhNTW1sV2lMZFZCTUFBOXdnUGlZZDBWM0lCUXUrQ2ZGZ1BRSW1HYU1WS1J5S2dsTnRHeUtucEwvNDUydCtJVVppejdPZ2RLbEFVY3VMaVJvOGxxTG1wQm9yNDMra1ZENVRLcVUvUU9MZzJaSERHb0NhVVNpTENrRVJMek5OYklBREJDQWtxR09qNklOeHFNRk12b0dmYVppckg2aFlqU3dHSjBKMjRHL3AwbEFMa01SSHJTRmxmMmE3SzFicnJTdUlVQ1p0b0hLRklrc25DN3A3Zmt5cTRvWFZHNVAvM1RmYmVLWkhmMCswU2ViYURUOUZHM0dFRG90bVBrajZZSnl0UlZmWGxDMEdoZFpPTDdQRVNyTVd1SUV1bXhJcDZyOUJHK29WeEdmd05tUURabkFJcHh5bHZQejVxK3JDMnpaT3BpUXVlSC9DNjNlaytxVDF3bVZDVTJDb0N4VjBZY2h0RXp3MDVoRkpqRUx4VEdTQ3dHOUJRZ2dzd085UDl1TUFDOW1peWFuNGtzSTk4RmNyK0JnOXQ1Ync5ZURiWk1rV2k0K0ZGWmZkU3NON0VFdUdrcFNNdXBaTWtSby9Mc3RQUUZNRlc4WWVRN3BpaENDVXhQN3FKc0JRUDBpMVl4Z0pVYldORUZGNFdXc00wSHplbFVldUV1TXh2ZDBCQmxJVy9kenM1alhHWkFVNUhtL0YvM2lRSjRaakhhYjZqN3hmOXNWOHh3NWplRkZOeXJ3aHFiejZ5eVkyN0Q4dGMrd1hHQnhUZ3B2b0dMd0EwR2lFUkRUVStUQ3NYOG0wYitpblZwODNPYkxYT0xlNllLZ3EvUkc4Z3pNSXVmS29Tb0dVQ2gyeVlCYUhidlZPaTB4L1FHRWxyS0dGTVpKZ1NrZG5vMm16dzhyMjZac3FOcXRrQ25wOW54MThzb3RaYmFBNTJ3dnNkWjVYK01SS3JsTGJGeXVKd3VhdE9pdDBEZHhQOFM4TzhRUUNFeDdkV0pJZGdibEF5d2xUSHdCMW5ETXFFbmpLLzNYNFlyU3l6R1ZCckJKbHdFYmpBQUJnUFJWR1dkaTZubnJJVjZrc1djcTl6M25ENEp2a1p2QUxiQkxIN3F3REpFVXdta1o0ZUtDcXR6MU9pMG9GSTRPd2ljRmwrek5LanNaMWZaSnpXRnFLZ3JXNDY4Wlp6Q0thc2xFbi9OR3NPUXA5dy9HRUFiVGlYd1hka1lpMWpMMjhES0thR0VnbmhabytsRDliOVdZQWhFUm9XMGQ4SzdIVVcwTE5vTUNDU0hZS0E1REsxQzJHd0FaU0lEOElLeWF1elBHSUFsR0FLTXovbEg4N3owVjlVb3JHSVNwa2RXZzAzd05ab0R0aTErbEtkcU04d280YWhRMWRQMW5tVmpXVzBycVVSMTVqdWdJbUlxeGpIT0pwS3Jha29TWk5YWVZzMEN3N05hSXZIWEpOaERRQjI4M0JrQ3NmVGw2Z2FaSWEyVXQ0bVZBd2xSaHBiQXQwZitMeUZLTEpxSHMzQ1Q5MXROWnpBb1dqZWhkNG14QStyT1FTUEVSeWM4STAwQllBQUc5MldBeHBRUjFRSEdKenJVOGxkWW1laGVlUDVSN2M0eDAxa05OaEpZVk1IK3hIb1VCWDZ4d0xHT29wNklXN0lZR2JTZVJLZVZWQ0oybFBBdlNEZmt4ZUJzU25KbDAzbU5tN1lhWnhpUlVNQ0xiWlpvbURrT2R2S0NoM3A0UEFhOGpQODVVQlJ0RS9KMm5NQTFiNEtXYTVFMlFZbzBzd04wRDNnMy9nTmVyV3d2eEJoZWZrU0pzb1g0Si8wNTVMV29Dbi93ZzlXU2dobjM3T3FJbGVHcXdQaXMvUHNZZGRheW1ITmRIZFBMVEg0RGZNMWVBamFrdFF0bks4S04zVzhGREErazNkVEZaTXVhbGdiekFUaDBDU0F0c1gwK1FrdVE2NlZGbzdHQmhMUFY1SEZvNkRpcE5DVzBGSVdNbzVhcGx5SmxxNUNpd0tpUkVTcGtIQm5KUDZIQWtSUGRYZUR1Q0lxV0lTUlhzNUcvU2VxV0dLUDJFZkRRSDhTeDBNalpLYzBldVFhOFJJQi9xWTRFcWtxYkEwY3pHeEJzbjU1UTRRZzZCSUxJeTB6cWVJM3IzaW4rUTJjQ3I2Y2JJanJaT3gyajVxdGRubVZqN2FRb3o1dWkwTWdFNFJLRWUzVHlzUlgwMFZyNjlzVHhKWUhBT3pIcEV0RVBKRHlxRTBzakI1TlhaN05BaXBLcENTME5ERncyREZnQ1JNdmtJTGJnRmVvQUVpTlFwY3hHQW1FbHZGQmt5a3dibk9TRStwdUdWcG85OXNFQUlUZnZDM1ZFQ2RvQzQyOU9Qbjk5VmhPeUNRQytZZkJqTHFDK0J1ak1pUUtpWjB1bWtJdmlpcnhBbUkyWFU3TG1TUXJpZkNsRklmOW04ZTJpZERwSXNVRUJ5NUpBb0hKa1Q2Z2JaR2MxNlpoN0J5RHRyKzhvclZ3azJxcVJvcHdYZERCZWFDSGNOSGR6anpjMExCUGQvYUhDQU9DTVV2NlEwTjRnb3BQVTJUSlRmRC9Ud0pvQXlKUlhoZGtqR1NCcUpITXNYUUsxd2ZnekZ2Q2RlVDFvNjhYY3A1U2tHS2ZBajNGWGxZUS8ybW9URC9BSy9vbmx2a0ptbHljRlhsU0pWZnlONkFld08zcndEeFFYVStXalNTY0FqVVFEMW0xQ0EwWk91c2krQllVYWtHTWNUOGpvcGthS1JtWTI3aUdyRmxsUG5aeVpUYW93czc5RytYRWF4T2RGSzB5eS9XeGxwdmlLQVk2elNIcjNxZTJTQWRweU02dGV1ektqS3BIU2xySVlZamdCbzlYZnFzaTVhOHloMVVDNGtnaVhpR29jNEJWK0FlaFdJclB4TjAvU0NneVJjdVl4L3M0Z1dHNEZvaHVFU1BvWTVGWm43aFVDMGRpVWsyNjF5a1JRUUdGNjZtRTNMV2NjRjV2blpoeWJTWEJkdGdMT3dqYVBHcU9GbWYwMVNuT0hSeVJhWmF2L09IaTd5UUFaRHZENS8wbTd3Z0M1YlVtZEJHWFgwZThLNXVhZEd4cWZ6cjZrVlg5SElUTWtNYUE3V0ZXU2R4TGhFbEd0QitoTTh3dXc1YXlRMmZFMzBUb3dubWtzbHp5dlNFQjFQRm1BdlBZZ0gxZ0IrZ242REZndlloblpFN0taWmJ1Y2RPdmVnS25naU1LTTFNTmhRaVNOdkRXb1dpbGN5LzVEdHRLZlJYb21EckdnWHBZZlQ1ZFl0SFV3UU9uUXVNVUFNaVVZTHdiNlgyTUFGNXFwazJBSnBrRWpGRXpOSTZJdHBqT1h0TWY4Vzg2Qy9ZaldITEdqWTl3Um81NUVxQkhWUEFCbkdpQnFIcjlmSWJPelBoT3pWU3BwMUY4RHV5NVQwRUUwWlFqSElBcTBvU3ZwNHhsT2FmeFAra1RtNzV4MENBL2krWkNMSGpya2xkU1NBUWdVUFVUZVYvWm4rK3hYSG0wd0dKQndMVERPU0pxckJ1a1VqOVpPcUp1Ni9TVURSSmFRNXVNbUExQm9VaVhwdXNaUC9UTVVURVgvYXZQcW51RmZ6YjhkZFdHT2tDZjR6alJhTDczQVZhUFhOdjBsaU5OMXIzV0Z6T2Jmb0UrbUxGZTZsTUFOYkxzSW94NllWeUFaWUVFQ2ZSd2MvVUlHeVBZWkRKQ1RqbDZNTkR0Tjcrbk1hRE1BZ2FKYUhJaVZnSmsxancyZThjcWZwZFFjUk1hT29KN2hETGlPSkFNRWlaUWJrOVNsSWZJcUEvQXpRZityREVCSGZPb2tRK3o1R2RuZ0NpWXMrTDdEd09MbUU1MlRrL0RHOUpnL2UvejhLdWhNRXBBVXlRRDBLNXZyaC9ibENwVmxmMWNCYUVvdDRiS1NBVXlyaDd4cmRuSlR5ellha2VnTjZXT3Z4RlUzQ2NRUXNhTFdvOUlIZmt6SFpod0xZRkJ6dUdBQXhCMElIaUJJQ2s4QTI4NVJ1Ky9wMEl6Y3lqcEZxbXBmTEQvKzhsZ3dRTXJvYXIwbzBxLzhsQUZ1U2dCN1JLR1RkSEtKQktRT2VHSURUL2NiM05zOHQ0eXBSaGJ2UmVNUlExNWFGVVZPd2Q0ak9GS2NUeXhNRTYzRkFJalRaSnpXeS9TWERNQWM3Z1VEVUt0WFNEcHFpbW0xem0xR29vTkFxNmliU20yZjlMRzZ2NVpDb0p4MGtSTCt5YjA1RmhUUUwrUk9ucTlQWDBYc0FyTG1XVk1weDZFbzQxb1JRRVVIYUtYWFFUVm92VXl4azF3bXFhLzNwZzdBSEFzL1dRSXFQZk9RZVpZeFFhSTZiczVzdkN0bnQvN1V2K3pBcTQycG40Z0RYcnM0bldlZ2RnZXR4Z21BL2w1VWZQd3JCdmd3TGlzWndMWDZRZDlpYlRWSU5ubk14ckNiMlFYR29lUnNoK1RWVG52U3lSSFA4MkhPZm43NllYNlZBWjZmSElZRkRuTlB3S3VEMERBVWxRUllwUVJJdlE3cDVpa3Y0dWF4azZ5Z1c5ZDd5UUNXem9BUmdiOWdBQ29sVFZhNGowclo0RndQaG1OMTBveU53UWdkNW5ZQWUxOG52RE1DNUVrNHowaHRYN2FTQVFnQjJiRWtlY2tBRHcrWERMQ3dGNXRVREVDdHZ0K0h0OXIzWFh3RUNMUXRzSWUremRHUHNZL0RNSllFVmF4S2xCYlVaWkhnaFg0dkdhQ1cwaVVEbUpNQzErQTRhMjJuRG9BYVN3Uk1sRFRkRFM0aXFLcWRaSkQ2ZWk4WlFHMkoyQVo2UHBPZk1RQmZhT0FWN2lOdEIwVUFidUhWRVJJZklTUkFXbzFJM2UrbFVDQ0VBYnl3ekR6dVBJc0ZIOHRXV2J4djV4QVFHc2FTQWJiU0xobkF3enFUQVVLck56bXFLbnl2WmdEUUowY0lobzU3c216ZmRQZWFvSjcvM0FuS3VoVXlSRmNaUUZvQmdkZ2c4U3VFbjh3VzF6ekc5UzVBaXdHMjRIZ3VwNEFvSjNWeUoxbVMraU42cnpHQXREMmg0L0R0d3hMMGNZTUJLSkk2UmFHYWtwZ2pGd0JRaDZFS3U0cUhlVzdNamJpMUI4OFZRSXpRTXc3TTREOHA0U1NXNmpJWlFCY1NCc0hUamtyYWp0QXVHY0JlcU0wQWpUUW84Sm9DcG1reGdIeGdBVDdWL0lUT3k3NEFpUFpiTVVBQU9mU0NRcjVsVWFCQ1lxQWx1RkZUYWRxSEpDNDMwVUVmYUo5Ui82T2dYaW1ubkRwc05ha1hWM3Y1eSt5MlNIWUkzejRRVkIrWEVzQ1NFakRYZ1JIY1pCSUhCMlNHUEkvQzIvZ3FYd1E4aHZhTlFXK2krWFpSaVIyeGRQRDNjNnhidFRxUmZUVzZlbzNSMzZJRzlza0FBN1lMQnFBRVNnYWdqUlU2b014UVJhdkRyaG9NQUxVK3dhZW5vMzhJZVlrQWpKb0JraGJVY0xDYSsxTmZDNTBCVTdycE14MlJCelVrY3RzR0x5UUF0NWtPbXkybzkyeUpJd2JKQUlUZWg2TW5UbTczSmdORTRuQ1dwa0JrenZxS0wwQVhaekxBVUN0aHBRU0R4Q01XSGlUMWVZN1BjclV3ZG5vS25uUWtoYjYvdm9sYjR6UVQ0NmtGS2RYZ3RPd1NlU2F5a0Fpcll6SkFQMXFiQVNpQmtnSG9xUllkY0cwNklEMHJ6Z0JvS21lY1B2S1Vpd1ZnMzJhQUhGSXZQMWV3SGQ2WGsvVEQycUZQd0JuVGRGRXRKbE9VMkFDMEszak1rRk1zR2txU3NHR3E1Y25YZW1GTnpzVGh5OGlYdUxyR0FGQ2R3UUN3aFhkUzR0R1BaS0hWRE92MUZKVFRRRzVpR21KbGlDQnRTR0JabnhwcDhid0xVUGx5WDNUcENzVWJzUWdJTmY4Qzh0cGlBTnMxcGpEbXJrNkd5K0R6bWl5aEtCSHJCT283K0hSMm5BVWY4OUhLbERlWGdIdU9oajdUMkk1aHViVzFkdDRUK2pPblhnb0FHb0ZxaEx1MHpFY1UxS3ZsVkw1TW1ZdW1JUFd0M3V6MkdoU1Q0VlVHTUk4Rm9hWG5icG1oSTlEUWgva2M4dHpteUxlN3hEcHFZdVlDb0dRTGVtcjdNRmhENWxlNlpJRHMraFM1cWZNWjV0MzNhZ21JZG1nekFDbm5IK1YySGJFQXdlN1dvMlRrSTB4RVl5M1doeER0ejVXTUN3QjhtbTBsTUhmcXBoSlI5Y2FyMVpQVTJzcFRwSGl1d2lCeXByNkw5RUw0bE1xUTczS0tJdU9YaHFEWFRMU2V2Wlc0T0ttMkN3VFZMUWJRS005UDJzSXJOWkpaSGFWSHFRTTZJejkxWVJLMWVmdEtMSG9hZkp4MkxCVjAvQVVESEV5WkNLV3hVQUxaTGhrQWo4OE5XVmgyc1d3QVBrbkpuVG9BWUN1czBBYnEwTlNCNXpKa3AySUFLbjNGanV5VFFnbU9ncG9Cd29FY2xVYzJZVGZ3NUkyL1lnQnRLRFRQTkJ1dG02Y1hOQW5saS8yeXBSbGtaQWd3OFM4L1k0QytJWjViREtBeWt1Z01LeHZFL0dKbHJxUVBWd0hHbnRQWUN0YUYvdGI1RFFhQUtGZFZQRlN4Y2h1SWRvVUJodEJQbXBvQkVLN01mOW9NUUx1TGNmS3l2UUNndmJhc3J6UUVwWmV3N3czcVNZc0JJb1FFOUs4RXdHcG9ZTjFmTGdIemVWSEJhdHAyQnRIeldURUExZjM5c3IwM0NEcXFiLzhtQThCajBhTlNzbUpTTzE2WU9neUVwQzFzOUluUkZrU3FJZTdaNmVrRHBPM1hTd0M3V0thWDFyanFmYVZkWlFDalhza0FPK0NOMUpZR1FOS2d4UUN4cS9VRUJKTklFMUdZVk10SlIxTnc3ZHhKQm5mSmtEckRBMHBkZ1A2V1VkZU5mWVRydDVUQUswazVkbVVGcTl4aWVMdmkrTVdHUDZwdkhhS2xTVkI1OFRMdmNXUUpvOTBCMGRlSjVKY0xLUUpZTWg5cGdXMEJLSXhFTUFOUWd5NFo0T1BqRHhtQXdwaHF3RzFUY0RJQUFXbmMyMXJPTU5NQnNSVWtvcnhnZ0dlM0JOTW15eHYwVnRFcWd0SXk1dmF2MHJsREV3VTB4NUlCRUt5SW1FYjdZS29OTkFKSnF1V0xiYUQ3bXBLbVpSNzdpNENRTXZRaktTd21QMmVBS2dBbEdJQjVNd3VSSEF3Z2xwdTBBekJ6RnBOVUl5cWtsaHpBbXFWSlZJWjV2VWhENEN5REx3STUrK3NsZ0YyWWphRUcvQTREMkFUMk1DZG1EWVFYRU80QTVwUW9HUUJHZWU1bkl5MVFlOFNLU2RjVXFKaGw0ZHlKQklTNlhsVU1nTGgrRk9TcTAzVGFCanE5Y3gvaGZOSDRoem94VjFTeVNOUjh0bVNBa3NLbzJVU1VhRFlqaTlFTVFLM0V3U1FEWUJ5Y0Fjb2xiNGxWN0dMcGlLZ29tRTk2aFJ2bG5WaXFMS0FmZ1hPL1pnQzZnMjFCK1ExMzhDSmRWTTRBNzZxWHdndG9ZbUJvV1dYNENGL1RYZWRMcGE0dE0yOTR4MlpSRWduNjlJSzZteS9URHVOR1BLOFFCQlRCdS9aZGhKeXlqTXVjTFpPamx3VVR2WmJOUGxIejJSeW4yQ2twL0lNQzUva3lDSFdKR0hzQXRSamZZeXM1OGFHbEtYZ1UzazhTK3lvRGNBR2dFekRkZ21VQXBsK1MxVlorZ3dHZVN6WGd0eGlBdGdpY0ZLbWE1VFFoRCsxbzAwaFlDUUtaV1g1UjJsaXFsZ3dRdTNyNng3RnRaSXk2d3c3VEY4RFFKNlp2UnlrMVNnQkEzZ2VSbnZQYkFhSnNXVXUweUdESi9XZ1I0emdxL3NQMEFLbVR3bWhXOUNSYkZtOUJ2TFFqWXFDaUpqNjBZQUJwZGZ6RFZRYlFsNEptU0NjZzYyOHpiTXJpZDNPR1pJM2FvSFpDcVZ0ZFJzNEY4ejBUM1pzTXdPdks0b1dteFlXMWlaTm92ZEtaeEVvRXREODZnZnpQMk5jUHZPVytxWnAwaVlvNUhzMjV3eHlVa1JSazQxSXZwbzE4TENCNVJTRXZIOUF2QWtTak9XWnFWaGRNUk9Fak9ic1ZzT2VoemlRMUtYeEMyeDhkSlpvTnk4Z3hJcmNmMFdwOGFESkFJODBMWXBOZnJ6R0F1NWQ4N2ZlTmxJRThFU1JjemhDcXhNa0FnNFJTdDd1QU8vVEQ1VTN3ZHg3STRvVTY5QzRXWXhLZE85clhzV2NRUU80RXlqL2ZHTEZUTi9abmpGeWlZcXdJb1RUQ0RvazF4STZvS0g4anlJRnZLR1hmWlNrL002RnJJMENVTFdxSm5sb0ZFNC9BUnJHd1hEYUNIVWhxUW8wSVJKcnRzNGhha0J2M1RzWm80ME9UQWJqaVJRd2s5UDFyREJEMjNqNmN0MHhkeDhoR0ZLaXRaNGpYcVAwcVNFRW9kYnRMNTJjY0xtK0N2L05BRmkvMHZ6SERZaElOOFk5WkxSeEFUZ0s5RkFCZktuVnNhVHV0SjEwV2UyVVYwejFoaDhRYW5oSkJDcnNyRzNnbGkza0MyQ2hOb1NzQWlIcnpJbWwxd2NRWm9IVW5oeWRtbzgwSHBDYUI4NDlsV2JteGVQSW1sNFpMZk9qZCtHWVVORXFJWmgya0lZbVdxcjRzQURsdDNlbXpiOCtRL2RGMG9pQkZRcWxiWGJvaGljUGxUZkMzSHlpTEYrSnZGNHN4aVo2SXZGYTVqZndZZ2VxdEFMNGNMYmIwbnNTa2kxMTl3TEt0amk5aGg0bzEzSXlKV3dxa2svVW80WWlDNHp3MEtUejJ5b2gxZTVUL3hzdnNWZ1Z3bjJoUmxCY0ZadEU1SURHdUwvbkh0S3pkK3BheUo1WERLL2pRdS9GdEhNUVAzOHFXbUVJNk9EeHhHOUxybGRwK2U0WlliY3R2S0NJa1JVS3A5MVdYdkg0ZUxtOHlMYStMNG9YbDMwQ1l6amlKckU0dmNHdGZlT3k3RTJpWmZ3cWxLQy9yNldVdGZsZGxSakV6QVpBa05Dci95SXZZZ3djQmlhaGNFZStRUlVTWElRc0M3Ym9zeXlRV2FGRjA1djh5NWJIWHRJNC93bFNoUkN5MGoycDcyTWFIM2kwdmtWRDNSZUhsc2hZaVlkdUp0WkpaQnVScEF1V3djaVdPZXF5Q1JMb2k4MEdTWW9sMWE3a3N1eEpKcWlmblRRcGd0Z0ZHMFloVDQ1UmhjZVVDY2IyMFF1Q2JBUDF1ZUJLeGlvNXZ5eGExMkRGbFM0UTRjYUpZQ3hJQWQzLy9GbndaMEJsRGlNcVB4RThXck05eW9tQllhZ01KK2kzTEpJNEx0Q2c2OGI4dTduSlhyMkc1L0NPTmxSYVU3ZmszS2dOUkd4OTZON3VCaFdUWjVxSWFhaFJyRDZDZmJiTTVHbzRVUjdIbUJGVmpEbUljYzdJWWhoNC9PTzBlSFZadGg0dVRIV2lNS2VhektxZVgzRHFyUUhQcXMvUW9iZUFzMFU2d0ZWNFA2MjBVbWtiNVdzb1BycFVzS09wS21JMFA2WllBT05FUG5oTGo1dEFaUFNTYmJaNWlqcUZjNlNpQ2RWOFIrNEZBWldlWlJCaXdBaTNxdU8zRXdZVmRUOE55TzFHeGdEdGJEWG5TU0paK21mbjNJaTBXR1dCL0RRMk5yU016Vm1ROTVLWFZPQTlzSURUOGxJZW9oNTIwdHpLMG1JTTYzY2cwYjFCeHZLUy8wMFovZ0lQUXlHSFdoWnZzQVV2MldmWG0xSHZqbkdRQ0pabGVxVmViR3FYemt1d2RGZjMzOUk5N3FYbWo5V3ljZ0hnM3hOcHNsek5aWmpUb05tRUJDdFRkRG96YkVETVJQVjBtVWVqU3BCKzZyb3BpZ3RQQ0loQnBvcW95aVFWYWROTEovNVdqUmE0cmh1VXlFeGwyc0F3c25JUUpzb2FTQ2tLbVpnQXZ6NHhtY2hLSkYwQm02SlpSUkJZMHp1TFBLc0x4eS9IZysrOWErZ05USHpXWldad1FKbU1pckorZE5rb056QldoejlIWEdIU1oxQUVsNVE1RW5wSjZrWXpFNjhFT1kyZWQzVnFRbERzRlpIN2FlMFZSVW9yUFBYbENHMkJFcmFEb3hzT3Bzc3lvRUFubUJwYWdzUnltRWJrQjZRdjFlR1ZwVkFZRGMrcWxMVUwxNlNyamxSci9hTmE0anpLSjZmSERFZkhHNVArQ2ZGREVhZFkrdzhXSmJTK1l4dUxQK0w5Z2l3U1RJOXk0Y2dmY3lhNE5lb2ZRaURNcXFLOWRTQ3lHOVkwMnBDcmwyRDUwTmZ4cTYzL0k4eEp6c091VFJiakVFTlpEcDQxT0Q4YUNmQmRhcHFjOGQwcktZcWU5WGJrTWh3R2ZzdENPb2g1c3A5VTlXcFZGYTJaUlVSU1VPak04QkNtcG1CUW5DNHBDUVZMRUlsMjBtTGtGREY4STJNSzRyZGVvdk5GaklpVzY5ZDNldGRhc1M0dFd6cnVtOGNxQnpLMXBVNVE1K1poejJxQVd4QmM1Q01MaWJnZE5ZRnJrT1I3R3JPVU1lRzZrazZqQzMwOWtBR1lmZkFLUk1LTllDRHdUN2l3SkRjVmNDVGdGNWpKM2F5ek0yOW9CTWsrUXo4SE9nSlBGRnIrekpoWWxiVVlyblNzNnVycFQ5bjBtSmdKa1BQT1FyVmhIYWNRYzhacWJ6YVBSb3g2c0VMWGRuVVZyUUdvajZ0eHJwSFFUUk03YWxRZ2IweS93a0dxV0dVV3F1eklhd3dpWURDRFR5NktoK3NnUnZJZ0FVUjV0RmlxRTIxa3ZGK0ozU2dab1dNY284bzZqQXRtblBpWmpSY2NackRYUWZ4alNyRUtGWEpKUWhNZ2RSTituOFFxcmgvOTdwMk1Fd2VtYXlOajBwaWVoSkhzd2pzSkNrR1lCcU5JblJySUVNMkF1Sy9NTjdWdFJrM2szNTByRnRMRE5YTEYzbHBweDBFQXc0UjZzUmtBTkJqcUpseVp0TUtzNHZUSWxvUnoyZXJEd3I5WGRjeTlhUTFRREs0b2laaVJDUkNNdHBkdzNDNHA2ellJc003cDkvUmtES01VQlNwRWF2dmdEdEJiWjdBRFZCbmtYR1poT0JwQlhvQTRRWlJJN2hiZXlzUXBrSHlRcVFTb2I1dUU4OUN0Y0JzdUZ5MVB0WDNpaEliVEIzd3poUi9TR1d3SXhzcUpaSUNzMjZNWTBRTEpHbmkxZkJYU1QzY0NrbVlmZU9TbVJMQUZjaFIxQlljQ054Q2MrQjBGU1E4Nno4RTVqdE9uUDlRZnVhQm55c2s2RGJaQzU1UFdGdkF0MTJqVUgrNE0wTmIrN1VvOGU5dXp1b0J1WUowNUdSenlCVko0RHM2eGRPVWhzaFBZaWVYaFJadlQrcHd6UURNNG9VOGxzcWtRVjVkR3lNbUpVMXV5VXFYODZ5RlBCMm0yWXpTZ1RvN0hPcTNWa0hpOEttQjdLZ0l5czRKWTFaRStNOEVlQXQ4ZGNxUUFBQTJDTUdwRWhRaVFENERPOGVpVVMxWkFWSmxjTTlNMjNaalFVM2RXT0RZVWlocmVrcTl4bTdvQno4RURVbWVqRTVzblhOTEtXbnZuZ1ZKdGFqa3huQUNhRUEyTUx0VmpZaG45a3JJNGVCdGt5MEZySngrNm1GOUdBU1dwUWFOZldsRkd0TVdFL1dRV3VxL3ozU3daQXp2eGhseVZhcGFOOVZLWVliNGhueHZXWi9HdHJOcGVpN05wYW8rWG1RRHNvVVFsVVRaODhpSXBKWGRZUWhyQmdzUkVWRnlYK2pUdDlMQUhLQUJpNnpJcjlZcWtBVldFcFg1U0puZm1qWkFBL0JEdFVGU3dUYzVBMW1ZMVZ3UmJXTFZNTEFMblBQdVcySjMweEJ2Q1VrSkc5R29WdEVFRXUxSnRUeUFGeDdVVnJWQ3hTN2hyamdyVzZpZkJDcjhGY2hvSGF2Zy9WSG9XNUZpVUQ2UDBHOGp5TE1mc3BBK0E2dmVUWFIyc0dNRUVIbGRxOUNwak5Yb0VNUmFFSE9yVlpDS0tJeWtvQjRBRThSYVdpTjZheEtoUUF1ejlEQXNnQWN2TU1Ya2U1YU0xZG9XUXBpalQzcnpKQWxuTy9oeUNPY0RsdVFHSU9yaGNoV1QxVUNoUVRsakhGSjdJUjc3U2hGS0FuaGFXalZ3U05nY1NzUUdBclhsZDdXUTB3Z1pWUnZMakUyamo0UVFXRVo5Wlh0a2N1dGJrMFp3RHB4ZjFFVFZQZXNIM0ovd2tEbUpVS3htRjY2NWptMzJvTE5RaDA3L1VkdFhYeXFDeVVuY2l3M0Z3RGxHRk1XSUJWUWdFSXE2NXZBOVYwQUwwanNtSmozZFBrS0xGV1FXZURGNzFkc2tFUFVUMGdIYXFBMlVlSFZwMlJDdDdWa3JLaXNRQTJBeVQ5aWlQTWxMOVk0SDl3SDQrVzhJQmpaaGk0ckVMeERPclczUTFib3UyY2Rlam1jQ0MrRElRcEpSRmtwTDFRTGhHcDNjdGR3TjluQUZRME04Y2l6UnRMTGxhaThxQW90S0x0ZkZtUEZVRDNIY1VhRUZuMis0MVhDQ0k4MFZTWmpyWFNFUFNtQW4rbEk4dXMySXk0V1BkQ1dZa2FCSmNaKzNYM0RPOURodE5lQzVrZmFBVzllWVFiWW1KQlJna1I0RStNUjRFQmpBakE4dGg5V09OZWdQTUdFZ3VyRmgrVFlVWGwyem5vaE8yU0FjTE44Ukt5Q3BqU3hpV0FiWEpVR2NKVHJZcjUveEVEN0dGalY3T2o1Wm1iR2VGVW5GdkNnME16WjM1Mm1OSUMxRFl2dE1DTVExeXdRTVBTZzBVdFI4cTZ0ODdZSlRBQW5EMU0wd1A3RitwQXFvVWtxQUpPOUJERWk3Sk5NQkZFUVAzQVFUUDExRlFCMEl2THlsTE5sdlNRZGJySUFITnB5ckRhWEFLZ2lCS0IzeDhMYno5bkFIWkhhek1BN2JOUmloNkZMQUF1U3NDeG1XT1pMQWJ6Ny8rS0FSZ3NCSE1aekNoakYrY0xGS09PV1oyWkNrRDdYckVQekJwaFVUbU9ES0NhRTF0VE1ZQ3EwRGw4UWtidTVRdUlDQmVGYTFWN1lPaURIOTF0S1NWc0xpa2pBZ0JGZEdzR0dEQWZXS3RTd2JuVUFWenNXRzNLT1ZGWjBYYVhTMEI3WldpSzJodGJzNWU3RGpBTWUxUG9DNkpsWkxYWSswaWwzZEVwYUwwSlQ0VnUrZGNZNExUSnRSYkJ2cjRSQkcwNkF6VXRjVmJQTWl4M0VMczdUUGVvRVJZcmdETkFQMXJOQUswcW9PT3cwN2NaNE9NYUE1aU53WnhxekkxYUFHZnoxb09HTmt0Y1Z0MFFTbWN3d09VdWdJc0x5MXM2U0t6RGhsVTU5YnJoSkZONlJEZnVJK3FwNWUrTHJkMUtPbU52bDR1VmdrR2NBYkpYQzdvR0F6eHhIeWxzT2ovOFBRWmc4WGxmNkdlK0VmeWtPZGlVY3E4dzZhaG1xbmNVRGI0R3FMZ2pCdHFkRjluT0pRTmN4T3JTVS9kN0RKQVp5bjA5R0JiUStRVFpxQURJcWZsT21sdjFIWm1SdkR2anRHbzdRSVhXR21HYkNacnFqbk9IRERTUTFOeFV3TTdDaWNJSnBEditqcG9SYmUwTDY4QmdWOWdCN2xtbGNHMEp3NWd4VHYzckF5NE1QUWR4WmQwVXpmRHhGeG1BbnhudU9xcjB0dlNBc2IyS05nUE9wWW13RU9KeXFhUXBvQ3ljTVNPOGExU242S1FTZUpVQnpNSDM4SHNNTUswTXc2Z1RWQ2JQZUhSb25BcUFjOC9sVXBxNWxjVHl1cDYyZzB5VURHQ1JYMWxDN254V3E0RlFSS20zNjFVV0gxU3RLc0JXVTlhenN3cFZjK2MrRzFWRmhLRWFWVkV2Kzd5bUxiSHZNc1N4bllmS1FHekpkMmxnN2g5K253RVdQRnJhVjBJaUV3UmdGcmNzTTZjS09Vc1FOZzAzZ1p6bTlBMVBFTVBzbFZhWUVTVEwwQndad0pDTlB0bmpEUWFBVC8veE54a2dNcFRqOGUwUTBpei9LbU9IRmNDbVptQW1ZUWVnN1libVd3WkptQy9BNHozTnp3MUR1NmJWVVR2dVhQMXV0UGpZSG03TjBzK0hoaXFSTFpSS3Y0VjFuOE1UNGRXb0RoNEV6YTFTSDE0ZlVidVRXZVFPVGUwaWd0WkU4N1lxdlVsaVFQY0M0R0hPM25ZVlRVamp0RDU2TElmT3ZNZXd1WnV4cHdBTHlEUXBxaXJPaW96SnIwWnVWbG9Cdll2Q0dlS1RqeENtYlBDTG80TDBGUVpBVU5mdk1nRDFDLzZxR2VBeEMwQ3JhVklOK0hPYm1rR0MvaHB5V01zeHIrM2pBamFoSTBNd0xNc2o2OVEvb0VyOW9BSDFsRlN3QkpJa0lGUlVmVlBBUEN2Y0FDd2UzZHhUMXRXbzNOMjBodDlYVFlKa2NITUhyMHNuc2J4a09wbTlkTGp5SU5NV0R3bndrS2Q0ZkhyVzBhVTBWcTVvbGZQYno5THJodmc2ZExESUZNbU1kNDI2SzU3bS82a3NMYld2QzJld3lrT2RyTDhNQzc5a2dLL3ZQMldBajJzTThQb1dKZUNCRk0wcVU3b3lnUDdhTlllUEhKdnNNRFBNczRWQkJrc2RhYWJVZ3krM3h5bFIxa1RJc2xWUjRhWW5MYnF4aGZKcVZEc1BnamJYOFFpMTNGSzdaSVVVaStQcGRCa21ndEZuS0VPVURnZXIxSlUzR1BERlNzWjBrK3VWUkMyMnl2a0pvZEx2RG14QUFSWjRlZk40UUV4enI1cVFhZjZ6dEpRSFI1YWxOTEwyQWd0dkdQMnZNOENQUDJLQTdYVUdJTUtGbVNQN05nY2gyN2lrdzVQSm1keTNEQ1JwWjJxQllhT0dFZEE3blJHcEo3WUtUb21xS29wWGZkdnZnMzdhdXQ0OUs2dFIwZkZ5UXNoSnhCUTVkR0FHNmNseU83cDBJbEJNSGhlQlppd3o4WTVIVlpVM0JPRkg0c0ZSSDRFeUdVSlp4OVl3N2lVaWJ4UlpVT3l5aGN3ZS91d0JXNnd3eEQrTTVJK0loa1hoakFqeHdmdnlvY1FSN1ZrODh2Y1k0UEVtQXdqQncvUmE2UUJuMjNON2dna3ozYkxLMU1adDArdWR5K0VCYW45R0p0MG1HN1VKaitLU0p2UUI5ZkFuNnlPVmRaR2k2dHUzVjdqWmVqV3JsNnFhbFUwK0JrRXpmTkJvR05BQkMwWDBnbHN5L0ZNbFRCbHF5bkRKVFZtOEpBcUQyUitJOFViQU1TWWhoVEVtWTVTWFlwa2NoeDlPbzBJSHFVdE1BTURuUkFCRnBMcmgvcFRhQ092eXdrVE9oZ3cybnBqWUFmOThLMzZSNVdOL2l3SHlSODBBMUpJOTltd0pHQW0ySzJ1enVubWh4eDVGcUNYUE1ZdlhTdVp5VkFYc0RKZ2lySzZuRVZuR0dNZkpPbU5PdldmU05LTjN0YkhxbXpTakZCVWdHS3U4bWxVVWJucmhlc2dBWXFPaFV4VU5FYkRXSTlOTjdnbktSTEM1TmlkUlhhOUl6K0hmWHV3SUhFQ0VTQzdMR1ZOck96QStLODZIWUM4ay9TeC9RSFJBcENVaWhuRmJ1UldRSHhhOXlod3ZpbDUxK3Y4dkdTQ0RWc3FOcXloclpmSksxRytBVUdXc3JiNndSck5MSjJleWlHbEdYTEtpVHY0SEdVOC9tWVBqb3BhWTFXY1NnWWRJOUt4d3N3R05ObHFNYXhNanJUVGFNRm84UVhTc2tJTHFpazVMTkJDVUxhZmJIdkZ5SUQzb0lqOFQwVlVVQkFPaExMb2xYTDBwaG1jVXltenNaa1UxU2h0SUhoN1lVK2tqZVhWNngveWVHYndLMUo1QTUzQi82NWtoUGhaTzArdGhFMk1HSUpBZkJjVC9BZ1BNR1dhR2VFc1luZWFlVnh4MkFtcEVUMTVsU21lZ29TYWZZazdyRDQyNWhoM3lFZ3lMdldtaVd3UFNNN1dwNWMzK0VzcnpPRWpHRXppZmdCZGhiRHNtRzRHU1dDN2NGVHZUQnJIYUJtVmFNUzMrcERvUXNqWUxncEZRaUc1aFRJdHZ4cTNVSG9SeTJaNHRNaFVuVWQ4b0lxTm5tTVMrMnd1RmsxcnQrTjVOUDZNcXByelhNQUUrQzJsN1lXNkFBcEVjUU9qLyt3eHdLT01CNk8xanZYc20yVHZ0R1hDNVk1TE9ISktuQjR5K0lVWEJBWmdhTG9meFErbVBPWEE1N2tJdzFuZ0w2WXpVU0lsOHpiVjR4Z1U2aVhUS0FvYnN3aUtnWGREZ0dFb0JCQ1YvRzRqM2toTlpUcy9kWDdQY2tPc0l2SWY0c29yUFRqVWFHcUl5S2tLY0lKU2ptZUVDZ3J2REhjZnpNQTVzb0V5SHZRZlRHeitRbjQzeGpHTG5PUGNZVzBuNjBhQnBtbG1VM0lZQjRMLy9CZjJEQWViekZnT0VPU09oUmNrQTd1MkxldmRFUm1NQ200WUc3Z3locUFBLzNYMncvdDRzd0FoRTVEbWtlVXcwYkEyRzlXVU9qVm8zSWJoRXZtYS9selpNSXJuU1Z5QjEwQ01uUVRPeU92UXN1ODdmOUxlM0V6T0FvYmY0UHBXMFZIdTU3YWM1c2FqNXptTnBhbFFRTFZrRGtJSm9BNW83MUt6bjBBRVYyenpBR0dDMytEckZHRVJqTTF3TnhZT21URHJIclJXaDlnMDIyaVlCV0R4ZTZYOEhDL1FvclV4Z2dEcGZSU1lrb1RlODQ3WHJNYkpibUJhdHBBclZibW5vbXdGMlFtRnN1WE4wL3B0MnBOVG1XbDNXSVZ1aWhVWm02bEVVNGN1cTZZWTZJdkkxKzcyNEtRdnZFSmpGSXNiY3lpOEIzRWZnNHlvQ0xQQ1IrUnRDOUVJYlRRbG5oTVJwT1ZPbzhxNGJNKzh5dW9WcEpyRWZYZytLcUlwc2RJVWlPcWRSYXhhaTIzcCtJRkVBOUhKbGVqUGQya1lDaloxNmttQ0dMd3ZmbXhWRk45QjZ4SnhBc3Y0TCtjRUFtOEtFY2MrMEFIVytDZ3l5UjA3d0IwZWIwTUEzMXFXM2xaUnluU0FUdDA0ay9jZHBxZkpxbElrMlJFMi9ZcWR0ZSs4b3dtYzBRbXBpeXUxbjBDMHNjbTc4Z2NVQUpqVTV5Y3VZTzkzUUE1Z0I4eUY1VHRlMXAvUGhJdGplajRhT3c0U3pteXMya2tWdmZTZ1lvSXFOMGZRMHhabHNqS2wwTDVQNUhRWXJjYUhSL2NlMHJDeGY5TzR4bFlqeGRpVlBxQzBCazR3cDV3ZXVBTFl3c2V5SlNvb0VZV2hDN0RSaENFV1F6S1BPVnhFSlNmUUg2MjJ5ZGoyc2pOemJqRlZXaDVac0dFTkFUS21IalFFdE5LUnNQZzlrZkl4NjB0THB0alp5SUlTMkI1djBoRWF3M3I5QnRqUHlYL3ZjSmorTkF1Zk5uRm1iRWRadVFKQTU1b3dGdlNnb2dZV29jdi9pWVJSa2dMWkZ5Z3RHaUVhRkU4ZFhHS0IvbFFHc3V1QzZuNXBVTEFGekFvTWlvbmVnZFNTYUFrREFpajFySnUvQUpHVGU4aTRqYVVGdDBCeGtwdW5SQk42VVBsdW44RDhsQTN5ZllsZUp5WWU4QU5DNWNuZmppcGIrd0JIOGVNZEdLeXNFUTg3SFBua0RhTEJoZzNFSnl0RXhhZWsyN05wTGt0SHdKRmF5Q3BhTHNNdEM3NFgxbU1HUnVwWlphdjhOalAyWUtOcWRheTF3T1o3Q2t0N2loWkFOMlhBaklFSE9jTlYzYVpIbFZsRUt5b3RSSTFzWkN0RDBLSndqdTF1YkFlWUZBMWdZbk9WUmQ2RnVTUTFYK005VFhuRUYwZUpHWjZ3RGtZRFAzd1YrQzBEUk1jRUhycmpKVDh5ZjdkWk5tQ2h2eisxa3d2bUsxRERKQUxZQmZtY2I0d1REZEVhbkpqbVlvbTFtdEZYUmxBSFRDT2FyN1ZqZndRSjdGcXRBVmdqbG5udThqTXh0WXgvNGUrQTJnVTV1T1pzQnFuVFhETVlIbmhtdW1SNEN0NWl6K01iVytJU0pwZGFEaHZDb2REU3VxUU81OUZWekpDT0RQZTV4M25jR2dJdFhLZUZaZlYwTHFsSzA4am94ZE9vL3VkWmlwZ0l6bEF5UTJuYzZoTlZiUlJFRGtxRjFhd1lBVVJXNUJvaWhpWGkrQ3dZbkFGZm1hZ0lYdWlZTWk2WEpVSituMEtCY0V5TjVRd0NnaWNESHFweEYyWFVSVUZHOXJBekswa1NOOHl3MDk2ci9rYWRzQmdPVXF6S0NkWSsvdjRMOHFoWlNhZGhBL09NN2tRU1dWaXNBOE5SZlFDcTZ4LzF3OEt6Wm9EWG11c25wWVRoMmxmWUQ1WXJNQzZvc0FmZHprOVlLVkExZDAwQ0ZnQnI1N1F3UThaY0pwMEZQMmJvUkhhbHBhSnRGTDdUdGdPR1NBZVF4YTRqbUN3YkFzcVMvc3VJNGM1NXhDU0JSWFdWWldRVWwxOGk4bkFKTmFhbTRiY3lHb1JaTFN0ckU2Wi8yUm9pTldjRytRZ0FrQStTZUYwc3J5aVRyN0MwTXluQk9IT21HaEx1S3Bwd0hPbjFOZk1NTWE4b0FuanAyOG5jN3BxTFpwd3hIcU9yQWVxTUdhVVdtZElkME1HQ2trVm5NbnFKZUUrUUFkU091aE91RkI4WWFBeWc3WUdsT2E0VTVFTWtBakhzTUJraEFUWiswdEo3ZU92NHJBWnNhWGxBb2MzTW9CSEkwR0lBWmNtMFhnRWQ0VWpxNmxERXh0SlU1ejNKdGZMSk55NGc0WjlmSU1MbGh0MjRwVWlkU08ybitmVlFmUVdqZVIwaGxwR3NTK3BzQVlJdk1uMjZ4c0ZTSGtSNkczWnJwMnJYdTdrZyt3b3k1ZUVFYksvam0xRkJ2TEVEeVB5ZzJlS1RpUEVKc09yc1ZjcmwyT3RoWStxVHQ5M1FiVzhoTzZUbDdUeFlrUTJMNWZnMmdYdmM5S25KempRRVlBclJJQnJDNHgxRXdBTlJzUEF0MjdhemhzNGlHSnpMRVJEMVltZUZYVkc4aXJybTdsOG1ic1dNdXBnR2JpcTJwazZ6S2VaWkU5ZndWaEd0RG5vZVc5c1d0VkhUQlBRaHFrK1plNjE3bkxQSlc2azlwNlFNcUdFQ3VqVDB2YSttb3RVYTdkVmhnVUFiVHlvMGRwYXViS1hQbmdBTzRZMXJEVXp1eHhHb2I3dTBBTWxXbFBEQThNbU5VK0M0MFdRS29Gam5tcFRjWFR4WGF1MVhQZTZ5NkMzNWp6aWNENk9MZVJOa0tSK0pYREVEeDNvc2xZS3p2dGswR2VHZGRqeDcrZ1JyWURxWGxOdERWRllMTkxaQjd4V2xOKzU3RUZhTWo3TGRiQmpzV3hpa2xtYlJsbWZOc0dVVDFERFpFOFlWR2hza3RCS1V4SmJ0SWJmeHIwMXhPUXBNL3BTa1AvTURmYmZvalF3Z3BhQ3VtWmVWQnR3NXdyMkY4cVhUVDdyWFdUYkRTbjBwSzVLbWZLM2FmNVllNXR3UElWQ090WW1PRUpEWVNCQ0s5Rk8rV1hXWFhxSXBrejJLNWNHREdyQ2RydGxvVjNwRURWcUFVZWxlVWl0YVEzWjRoNlRJZ1R4R2laQUFaNjVJQndKZmdJblFSL2xHSDB1STFJQlFwbldIaFovRnNYUk0zYnVHbnlWK1psbnRwd041TEh3SVNTVXFqdzU4S2VoS1ZlVmU0bDZaR2hyeEhjT1FyQjFSZHBIYlFIRVJIQThuLzh3OWIrb0NpWVF0WHhQWEFHamM3YmJMYjVpQ3l2dmljVXc3SVZBYXNHUTJzcjB3Tjd1V1lYR1VBOHN1UjNCaUpKSlltLzdEVEpzcE82SStDUzlpbksrOW9IVjZpY2N5VWJzUnVIT05NN0hHRFZjR3hFUTQ3Yk9aNk1jTHRtRGFqMzNoQlRoRm5OUU5Fa0dybTRHaUYwbkpPazYxRE9pTmZYNlJzVlNLbmR5KzlnUmhSdXZveHYwZ3ltOGk1LzBxaU1oaGdFelArdU5kMmhCQVhjc3JWeDZLTDFQNG5TSzVOenNOZlFuTDdpYjlKLzJ6bWZ3d0d3TWVZN1ljcXFxbTQ2Rll5TUtQelFMVXZDRjdzam9tZlFybjF3VG1ENUFZOTYxd1BNc3MxMGtJY1BxVnpiZkdRQklNZ2JOQllncVh1bE1OMmx0ckZ0NEZyZVNGaW5MRU41T1p3ME1TbW55QWlCQTh5RTd2dEtSYlNzVERsUFJpZ0h3eEFtR2dua21MV29iU2MwMXpZUWpydnFZQXJpYXZnTzI2L3B0eEd5MEVRZGJQeFdTdzBLeWV5ZGlkUnFiUlJiUk82NXV3Mm1yYTdTRzM4QzFjZmlCNGsxNS9TOGE4MCtvQ3lNZEV0R1dBWW1qbTdWekFvZTlZWHN5cURBMWpqaDhCSzFmT0YyaEFEemJyYytFSXNXUENXKzhjNlNqT1pzbWZMTEVJNG1Obys1MXdwdURFOEtLcllrbFN3WUxWQnBjK1cxNGNSME9qcU5jUkc2TXN3cTAvYnFpQmY0am0rWnhzcWJDd1lIakRSYmlSU2pGRGFuTk94cFhZS003Umd5bW1OakdqVzBKR1NHejdRME1RUmp1Y1RlVyt0RnVSY0liNXJlWTYvYlVhemgxMVYreGRTL2w5di8wWDdGLytaQzVEMFovT3NuMkFBbDNXUEdETnJVWHhnUXJtT0tNOEZLMzNESlBmK3dxMmVpb0ZGSzJYR1duSFZvUmpjdjNJcGJ5eDYyMzBabWpGY2JKOVpNWmNid3lqL3liMDhNUHlzTGtmblkyZkhmbHpLa0Uvc3AwZWxYVkUvSkhOOFUySGp6OHlHbVVreGw5ZGlkblJxcG5UbUJrdjlISmpXWHo1eFp5UTBKYmVhUkZNUjV5eU9pWnpkU1ZRbzdoNjVrMnM0L2ZpVTZWVlgyWlRPUm5lUy9ILys1My9ROHo5Qi9td2NXS3YwcXZ2ZHRGVnpCNHpHbVdNZVN3WFVmSkQraklNQS9ia01GQXdndnlnQU1LcUFpbkFwNzN1UWVDQTFGTGZZZ3c1QTJ4MGFyYXhrVktWWkpEa3hQOFl3KzVtQzdOVXkreUVoSXowTHBHemtyNHFRRElUa1JqYk10MHlLcVNic3FtR1NmNVhTK2Y4bjcyeGI0Z2lDSUJ3U0FTRVNDTDdsSUJ3WUR3SW45Ly8vWHFiN3FicWEyZnNVUkJDdGpYdHVhUUNzN2RsK205NFNxQjN3UFdaTjhMWHZyeUpLUk5SRjA4VVRQeTZHREkyaytTYnJ1U0dUaGdrVlJIUGhOQ1EvRGZSM3lMOGdmMnJ0SGsxV0VucUpnOGxCMXZQL21UZTkxbCs0YTZSNUF0eE5nL01HMVM1QWhRZTEybnVtVEwrTFZBNFpDYjNhKzMzckYrbGk3d0szU2F1S2hEVHk5cXFLdHVGVDYvZG96OVFXQlNiWXpaMnlES250K2dZZkttUU9TODRSeFEvTDZ1eDFlNDYyRGdpOXFMdTE0Z0tHSEQ2cXlvZEQzNnpuZW9hM2VTL1VDblErYlFYUDl4YzNRT1A1dnM1TDMwK1FpUW5lMC9Ia080QndzWTMvQ1hjdm96UDdGaUE4Y0lLdG50QjMvZHBIN1lKbFJCOTdndkg0ZHRqN0kwYzZEd1k4OXB1YUJhbkpvc0xUN2VOS0ZoVklCQzZGYnpUQk9BNGI1UXdYTy9wTThNVnoySEFyclZablZHMzkrSllMZkxzNkRVVGNhRm9ma1RHR0RHMFVMN2N0Ni9sUnhvMDVYMURCbC85QzJXa2VBUmljKzM0Q3VjYVUzL0gvZkFjNEVYUmZyODFWUHBDYXBaT0FkL1V6N1lEVHlJWEhVZThZcDFiYlF6b0x1SnA2QndOZ0UwVmFSbTZ5c1lVN1lQQTM0ZTJYTVU2NnJnODRaMGpyQ2Nad3JPeE1SdTNXVWo1SXBzbWNjMWh4Wk1hVUhXNGwydEtCZ2h0MWl4dVFaaVdpK2FhQlBwczVUczl3WU9OZXFWZWdGTjA0Z1U3WlBpNUk2cVgxMS92ZTA0Q1dKTUMxeG1lN0RGRHQvNTVLSUgvaGFnenowYUJQdDJ5UkVLUFBHOEtnWXpZRDkxdlh0c1pvQzQvaFR2RjB1MTg0WjYyc0poaUxLOWhiMi9OS0NENFRxT1hJS28zQzhjZldhTXVIRUhIcjU4aHJHYkZqcytpcGMyR2NvM2doVWkvVTYxRHgzb0RDUVBlaHV1K0hqT3hYWEdQWDBYc1NYM21DeTF0UGt3YWsxMTQ5K2RkRWlMOTBBNmpCLy92SU1YZ3c2ZFNuMzdzb3ZJb0hQNU03NWZTYm9oWmgxSWJITDNOb2haRE9qRGNnNGV5dEpRQkxNczFLK3hSM0cvUEdaR0ZpdnNLZ1dibFJ0M1ZGVWpTMWlCWWRxU2UwMmFQdjIwSVpIeWVDY0l2Yzk5TnlWejVOcmpHdndicXRtVzRkQzFDQ1lZdHdDZ0c4V1dIdlZvQXViWTJ0UXZSZTZkVW9ZOVMrUnhNZldMU2RFRXQwYlRqZERSRHQvQURXazlwOC9MSUlXVXdvWWl0eGY3ZUowem5jMXVHVFpjYldiYk9yNS8waWxmczYyaUp1SFBHZ1dMNmdBNjdmSHJWeFlrNEZFL0RTVHpDbmd0czFWcGFsOU84Mk5BYjhha2hBU29HZCtFZ3pVTmNFcmp6R2lNS0cya0x4NVZpMGs5cUdPRVArOTRXQk9vemE4bXZlcEJDQjY0RDBvOXlYalNXNEJpODVvU3FXYlp2RmhqRnJybXk3SWxBM3FyNDNERHZkYlBMZVBhaWZRSzFvMmwxUWFqbkxVa1hBYnFMdEVkOGFFekkxQXhBRXV3R2NuWGdhQjYvMEdIcXpTVkc1N3F6YVRVendTdTVEQ25VWU5kUHdjOTRrVVRUYTFrZTRYRjdtMG80MlpaL3F3SUlsc1ZXOXRHcSszajFTRG5ibFM2K003V2F1ZW9hVHVhL1pPcFNEMVlsQ0pQNk5nV2JaNVpwMklFeVJrRm0zUUMvNFhRWkRiQVNYczdVa3hFeHNEVDZIZEhVK0pMeTBoUVg4R2t3NFFtdWt0dnNXeE5xeFpaMFdRLzQ0T0J3eVJPWkhkY3crdVA2ay9VamE0N0VieHF0T0ZQeUJ1UXJtL2tDdDFwZ29NcW96cUYvYWt6SVlLYkxMTmR2L2RiWDNaRWxpb1lta1F5ZFBadGlBUTlRL2NiQmNya0I5MnpLbmp3cVVwdkpWaHMzdTBYS3R0Q1BSZXp3d1dweUQ4Z2RjQlNNeFRzY1pYdmk4RXJPOC84bUNYMXhBYldQSmh5VzZYZzBiOGViSE1XRlVhUFBiSkFseEZUQUpWelNXdmdMNVB3ZTZkMHlWTC9iS2x4SGpoTTN0eE9PYUJ6ZlZMNHdlWVAxWis5SEx1czdWYk1wZ1FYNDFjRHdkQXZVRmJGb0tsWEJiUG43WlM1S2lpN1JOSnREaUVqaC8rb213dnBCTFFkYzVERXNUdzI0T3kzUnJCTFFUVy82c3hMb0ZzdUJqM29HVVRjb2tCSVp0YnJWU2FZU09LMjhXL0d2dkRGWWJpR0VnYWdodG9hZWtsM2FocDF3S1lmdi92MWRrV1g2YVFDK0Z3SnJxT1JmN2FsdnhXcU54QzZKdkRlaitXMHg4cEZ4Q0VJU2pFSmZwSTFYaUIzL0FkMnpNcVlmWUNBTVM4QU5pTmpjbWtkalFmK1c1bCtPWFlmUXZVMW5Zb1U3YUtRUkIzdmNVaTFtUDVaZG4vZE1memxRZDNzaFlzQVJTd0dleXAwQ0JDekh1VElUSFJlWENhOGhnM2dTZjgwT3pwb1o5WllDWHlCeXRPNDVJekJJSVNGMHl0YjljaUxIWkh6cjNoZXR2MWFvQVFaQVJNdDJjRlZMUnREZ1AzUGE5QlNOdktRR2Z5KzRqYk95aUsvQS9hS1BnaGVKVjVEMHBMNnhsRTNmV0UzdURiMUpleHVFK3I0cXUzQU1wZERmRUNkZGdBVHhOTUoveENBQjhneUZJT3hxMUFKNGhMNEJPRnZnWmxMMGgyWGwzVzAyc0o0Qi9lS01kanNJZjZRUXJVM3pCd2taZnhqV2k1cDVUWWRocWZtSTlzUVlGc25Bd2tWYzJzVUxnTitpdUcwanhzTlhFZTJRRkNncERCTnZNMk5qSjYvaU9sYnE1am5ZMnl3UDYvSysyQUFxdmROTE52RzNaeURJRWZxZkE4cnJJTEpOb2h5UEFDaFFVaDRKdlpuR1lENEhmNUxLNVJBODhEN2hXQUNoUUJBbGQwNUZIWGVEM0ZpT2JGMFhkaWVheG50amJTaFMybGFWZGg3blhOZnBENEdjaldoU1YrVXJXRXd0Ui9BQnR3elltK0l4U2x3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuICByZXR1cm4gaW1hZ2U7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmbnQoKXtcclxuICByZXR1cm4gYGluZm8gZmFjZT1cIlJvYm90b1wiIHNpemU9MTkyIGJvbGQ9MCBpdGFsaWM9MCBjaGFyc2V0PVwiXCIgdW5pY29kZT0xIHN0cmV0Y2hIPTEwMCBzbW9vdGg9MSBhYT0xIHBhZGRpbmc9MjQsMjQsMjQsMjQgc3BhY2luZz0xMiwxMiBvdXRsaW5lPTBcclxuY29tbW9uIGxpbmVIZWlnaHQ9MTkyIGJhc2U9MTUyIHNjYWxlVz0zMDcyIHNjYWxlSD0xNTM2IHBhZ2VzPTEgcGFja2VkPTAgYWxwaGFDaG5sPTAgcmVkQ2hubD00IGdyZWVuQ2hubD00IGJsdWVDaG5sPTRcclxucGFnZSBpZD0wIGZpbGU9XCJyb2JvdG9fMC5wbmdcIlxyXG5jaGFycyBjb3VudD0xOTRcclxuY2hhciBpZD0wICAgIHg9NjM2ICAgeT0xNDM4ICB3aWR0aD00OCAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTAgICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIgICAgeD01NzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTMgICB4PTQ1MCAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zMiAgIHg9Mjk4NyAgeT0xMjQyICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMzICAgeD0xNzE0ICB5PTc2OSAgIHdpZHRoPTY2ICAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzQgICB4PTE5OTkgIHk9MTI2MyAgd2lkdGg9ODEgICAgaGVpZ2h0PTg3ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNSAgIHg9MTIxNCAgeT05NTEgICB3aWR0aD0xMzYgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM2ICAgeD0xNjEwICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzcgICB4PTEzNDEgIHk9NTk1ICAgd2lkdGg9MTUyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zOCAgIHg9MTY1OCAgeT01OTIgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM5ICAgeD0yMDkyICB5PTEyNjMgIHdpZHRoPTYyICAgIGhlaWdodD04NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MjggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDAgICB4PTEwMyAgIHk9MCAgICAgd2lkdGg9OTAgICAgaGVpZ2h0PTIxMyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0wICAgICB4YWR2YW5jZT01NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MSAgIHg9MCAgICAgeT0wICAgICB3aWR0aD05MSAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQyICAgeD02NjQgICB5PTEyOTQgIHdpZHRoPTExNCAgIGhlaWdodD0xMTQgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDMgICB4PTAgICAgIHk9MTMxNyAgd2lkdGg9MTI4ICAgaGVpZ2h0PTEyOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NCAgIHg9MTkxNiAgeT0xMjY0ICB3aWR0aD03MSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTExMSAgIHhhZHZhbmNlPTMxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ1ICAgeD0yMzMgICB5PTE0NTcgIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDYgICB4PTI4MjggIHk9MTI0NSAgd2lkdGg9NjggICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMTIgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NyAgIHg9MCAgICAgeT00MjkgICB3aWR0aD0xMDkgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ4ICAgeD0yMzkyICB5PTU4MyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDkgICB4PTExMiAgIHk9MTE0MyAgd2lkdGg9OTMgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MCAgIHg9MTQ0MyAgeT03NzIgICB3aWR0aD0xMjYgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUxICAgeD0yNjYwICB5PTU3NSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTIgICB4PTE3OTQgIHk9OTQzICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MyAgIHg9NTM5ICAgeT03NzkgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU0ICAgeD00MDYgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTUgICB4PTIwODIgIHk9OTQxICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NiAgIHg9MjUyNiAgeT01ODEgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU3ICAgeD0xNTgxICB5PTc3MSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTggICB4PTIzODMgIHk9MTExMyAgd2lkdGg9NjcgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OSAgIHg9MzcyICAgeT0xMTQwICB3aWR0aD03MyAgICBoZWlnaHQ9MTU2ICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYwICAgeD01MzkgICB5PTEzMDcgIHdpZHRoPTExMyAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjEgICB4PTE2ODggIHk9MTI2OSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTkzICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD01MSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MiAgIHg9NDExICAgeT0xMzA4ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTE5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYzICAgeD04MDAgICB5PTc3OSAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjQgICB4PTE0MjEgIHk9MCAgICAgd2lkdGg9MTc3ICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xNiAgICB4YWR2YW5jZT0xNDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NSAgIHg9MjcwOCAgeT03NTIgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY2ICAgeD0yMjIxICB5PTkzOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjcgICB4PTE4MTEgIHk9NTkyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02OCAgIHg9MTY1MCAgeT05NDYgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY5ICAgeD0yNDk2ICB5PTkzNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzAgICB4PTI2MzAgIHk9OTMyICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MSAgIHg9MTk2MCAgeT01OTAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwOSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcyICAgeD05MTYgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzMgICB4PTI5NiAgIHk9MTE0MiAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NCAgIHg9MjcyICAgeT03OTAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc1ICAgeD03NjcgICB5PTk1NSAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzYgICB4PTI3NjIgIHk9OTI2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NyAgIHg9MjE5NyAgeT03NjUgICB3aWR0aD0xNjMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc4ICAgeD0xMDY1ICB5PTk1MiAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzkgICB4PTE1MDUgIHk9NTk0ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MCAgIHg9MTkzOCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgxICAgeD0yMjIyICB5PTIwNyAgIHdpZHRoPTE0MSAgIGhlaWdodD0xODMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODIgICB4PTEzNjIgIHk9OTQ5ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MyAgIHg9MjEwOSAgeT01ODggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg0ICAgeD02MTcgICB5PTk1NSAgIHdpZHRoPTEzOCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODUgICB4PTEyOCAgIHk9NzkyICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NiAgIHg9Mjg3MCAgeT03NDkgICB3aWR0aD0xNDcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg3ICAgeD0yMDAyICB5PTc2NyAgIHdpZHRoPTE4MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODggICB4PTMxMiAgIHk9OTY2ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OSAgIHg9MTU3ICAgeT05NjggICB3aWR0aD0xNDMgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkwICAgeD0xNTA2ICB5PTk0NyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTEgICB4PTY1OCAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MiAgIHg9Mjk0NSAgeT0yMDQgICB3aWR0aD0xMTEgICBoZWlnaHQ9MTcyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkzICAgeD01NjcgICB5PTAgICAgIHdpZHRoPTc5ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTQgICB4PTE1NzAgIHk9MTI3MSAgd2lkdGg9MTA2ICAgaGVpZ2h0PTEwNSAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NSAgIHg9MCAgICAgeT0xNDU4ICB3aWR0aD0xMjEgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTcyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk2ICAgeD0yNjIyICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NDkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTcgICB4PTE1ODUgIHk9MTEyMSAgd2lkdGg9MTE5ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05OCAgIHg9Njc3ICAgeT00MTggICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk5ICAgeD0xNDUzICB5PTExMjMgIHdpZHRoPTEyMCAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAwICB4PTEyMDkgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDEgIHg9MTMyMCAgeT0xMTI1ICB3aWR0aD0xMjEgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMiAgeD0xODY2ICB5PTQwOCAgIHdpZHRoPTEwMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9NiAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAzICB4PTEzNCAgIHk9NjEyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDQgIHg9MjYyNyAgeT0zOTUgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNSAgeD0xMDUwICB5PTc3NiAgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA2ICB4PTEzMjcgIHk9MCAgICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTMwICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDcgIHg9MjQ5NSAgeT00MDEgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY4ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTgxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwOCAgeD0yNzU1ICB5PTM5MiAgIHdpZHRoPTY0ICAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA5ICB4PTE5NzMgIHk9MTExNyAgd2lkdGg9MTY4ICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT0xNDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTAgIHg9MjE1MyAgeT0xMTE1ICB3aWR0aD0xMTYgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMSAgeD0xMTgxICB5PTExMjYgIHdpZHRoPTEyNyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTEyICB4PTI2NyAgIHk9NjExICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTMgIHg9NDAwICAgeT02MDAgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNCAgeD0yMjgxICB5PTExMTMgIHdpZHRoPTkwICAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE1ICB4PTE3MTYgIHk9MTEyMCAgd2lkdGg9MTE3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTYgIHg9NDU3ICAgeT0xMTQwICB3aWR0aD05NSAgICBoZWlnaHQ9MTU1ICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PTIzICAgIHhhZHZhbmNlPTUyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNyAgeD0xODQ1ICB5PTExMTcgIHdpZHRoPTExNiAgIGhlaWdodD0xMzUgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE4ICB4PTI3NzIgIHk9MTEwMCAgd2lkdGg9MTIyICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTkgIHg9MjQ2MiAgeT0xMTEzICB3aWR0aD0xNjMgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTEyMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMCAgeD0yNjM3ICB5PTExMDYgIHdpZHRoPTEyMyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIxICB4PTAgICAgIHk9NjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjIgIHg9MjkwNiAgeT0xMDk3ICB3aWR0aD0xMTcgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMyAgeD00NTggICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI0ICB4PTI0NTEgIHk9MjA2ICAgd2lkdGg9NjEgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjUgIHg9MzQ5ICAgeT0wICAgICB3aWR0aD05NyAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTMgICAgIHhhZHZhbmNlPTU0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNiAgeD0yMzc4ICB5PTEyNTkgIHdpZHRoPTEzOCAgIGhlaWdodD03OSAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NjUgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYwICB4PTUxMyAgIHk9MTQzOSAgd2lkdGg9NTEgICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI1ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjEgIHg9MjE3ICAgeT0xMTQyICB3aWR0aD02NyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MiAgeD0xMzQxICB5PTQxMyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MjUgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYzICB4PTEzMDAgIHk9Nzc0ICAgd2lkdGg9MTMxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjQgIHg9NzAyICAgeT0xMTI5ICB3aWR0aD0xNDkgICBoZWlnaHQ9MTQ5ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTMwICAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NSAgeD00NjUgICB5PTk1NSAgIHdpZHRoPTE0MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY2ICB4PTIzNzUgIHk9MjA2ICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0zOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjcgIHg9MjA1ICAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTk4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2OCAgeD0yNzE2ICB5PTEyNTEgIHdpZHRoPTEwMCAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTIgICAgeGFkdmFuY2U9NjcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY5ICB4PTk5NSAgIHk9NTk5ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzAgIHg9MTM2OCAgeT0xMjczICB3aWR0aD05OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTcxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MSAgeD0xMTMxICB5PTEyNzcgIHdpZHRoPTExMCAgIGhlaWdodD0xMTAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NTQgICAgeGFkdmFuY2U9NzUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcyICB4PTIyNTEgIHk9MTI2MSAgd2lkdGg9MTE1ICAgaGVpZ2h0PTgxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT04OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzMgIHg9MTMzICAgeT0xNDU4ICB3aWR0aD04OCAgICBoZWlnaHQ9NjAgICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTc0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NCAgeD0xMTY4ICB5PTU5NyAgIHdpZHRoPTE2MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTI2ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc1ICB4PTMzMyAgIHk9MTQ0OCAgd2lkdGg9MTA1ICAgaGVpZ2h0PTU5ICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzYgIHg9MTgxNSAgeT0xMjY4ICB3aWR0aD04OSAgICBoZWlnaHQ9ODggICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTYwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NyAgeD04NjMgICB5PTExMjkgIHdpZHRoPTEyMSAgIGhlaWdodD0xNDcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MjkgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc4ICB4PTg5OSAgIHk9MTI4OCAgd2lkdGg9OTcgICAgaGVpZ2h0PTExMSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT01OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzkgIHg9NzkwICAgeT0xMjkwICB3aWR0aD05NyAgICBoZWlnaHQ9MTEyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MCAgeD0yNTI4ICB5PTEyNTggIHdpZHRoPTgyICAgIGhlaWdodD03MSAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9NTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgxICB4PTg2NiAgIHk9NTk5ICAgd2lkdGg9MTE3ICAgaGVpZ2h0PTE2NiAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODIgIHg9Mjg5MyAgeT05MjMgICB3aWR0aD0xMTAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MyAgeD0yOTA4ICB5PTEyNDIgIHdpZHRoPTY3ICAgIGhlaWdodD02NSAgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9NjIgICAgeGFkdmFuY2U9NDIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg0ICB4PTIxNjYgIHk9MTI2MSAgd2lkdGg9NzMgICAgaGVpZ2h0PTgyICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMjggICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODUgIHg9MTQ3OSAgeT0xMjcxICB3aWR0aD03OSAgICBoZWlnaHQ9MTA5ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NiAgeD0xMjUzICB5PTEyNzQgIHdpZHRoPTEwMyAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzMgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg3ICB4PTEwMDggIHk9MTI3NyAgd2lkdGg9MTExICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODggIHg9MjU0MiAgeT03NTggICB3aWR0aD0xNTQgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OSAgeD0yMzcyICB5PTc2MCAgIHdpZHRoPTE1OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTI0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkwICB4PTExMjkgIHk9Nzc2ICAgd2lkdGg9MTU5ICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTEgIHg9OTI1ICAgeT03NzcgICB3aWR0aD0xMTMgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MiAgeD0xNjIgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkzICB4PTMyNCAgIHk9MjE0ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTQgIHg9MCAgICAgeT0yMjUgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NSAgeD0xMzU5ICB5PTIxMCAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk2ICB4PTE4MTQgIHk9MjA4ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTcgIHg9MTAxNiAgeT0wICAgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTk5ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0yMyAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5OCAgeD0xNzkyICB5PTc2OSAgIHdpZHRoPTE5OCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTUwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk5ICB4PTExNzggIHk9MCAgICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE5OCAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDAgIHg9MjkyMiAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMSAgeD02NDEgICB5PTIxNCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAyICB4PTc3NSAgIHk9MjEzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDMgIHg9MTk3NiAgeT0yMDcgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNCAgeD0xMDE4ICB5PTIxMSAgIHdpZHRoPTgyICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA1ICB4PTExMTIgIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTExICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDYgIHg9OTA5ICAgeT0yMTMgICB3aWR0aD05NyAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjcgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNyAgeD0yMTEwICB5PTIwNyAgIHdpZHRoPTEwMCAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0yOCAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA4ICB4PTAgICAgIHk9OTY5ICAgd2lkdGg9MTQ1ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDcgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDkgIHg9MTUyMSAgeT0yMDggICB3aWR0aD0xMzcgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNCAgIHhhZHZhbmNlPTExNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMCAgeD0yMTg0ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjExICB4PTIwMzEgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTIgIHg9MTg3OCAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMyAgeD0yNzY5ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTMgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE1ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE0ICB4PTEyMDYgIHk9MjEwICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTMgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTUgIHg9Mjc5ICAgeT0xMzE2ICB3aWR0aD0xMjAgICBoZWlnaHQ9MTIwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTQwICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNiAgeD0yNjU1ICB5PTIwNiAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNzQgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTAgICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE3ICB4PTI2MjUgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTggIHg9MjQ4MSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOSAgeD0yMzM3ICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIwICB4PTE2NzAgIHk9MjA4ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjEgIHg9NDg2ICAgeT0yMTQgICB3aWR0aD0xNDMgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTk2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMiAgeD0yMzYwICB5PTkzOSAgIHdpZHRoPTEyNCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIzICB4PTEyMSAgIHk9NDI5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD03ICAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjQgIHg9MTYwNCAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNSAgeD0xNDczICB5PTQxMiAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI2ICB4PTE3MzUgIHk9NDEwICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjcgIHg9NTMyICAgeT02MDAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyOCAgeD0yOTI2ICB5PTU2OSAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI5ICB4PTI1MjQgIHk9MjA2ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3NyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzAgIHg9OTk2ICAgeT0xMTI5ICB3aWR0aD0xNzMgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTEzNSAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMSAgeD0xOTc5ICB5PTQwNyAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMyICB4PTEwNzYgIHk9NDE1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzMgIHg9OTQzICAgeT00MTcgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNCAgeD04MTAgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM1ICB4PTI3OTMgIHk9NTcyICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzYgIHg9NzcyICAgeT02MDAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNyAgeD0yOTcwICB5PTM4OCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM4ICB4PTY2MyAgIHk9NjAwICAgd2lkdGg9OTcgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTI5ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzkgIHg9MCAgICAgeT0xMTQzICB3aWR0aD0xMDAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MCAgeD0yODEwICB5PTIwNSAgIHdpZHRoPTEyMyAgIGhlaWdodD0xNzMgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9NSAgICAgeGFkdmFuY2U9OTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQxICB4PTAgICAgIHk9NzkyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDIgIHg9MjYwICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MyAgeD01MzggICB5PTQxOCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ0ICB4PTM5OSAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDUgIHg9MjgzMSAgeT0zOTAgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NiAgeD0yMjUzICB5PTU4MyAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ3ICB4PTE0MCAgIHk9MTMxNyAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEyOCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0zNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDggIHg9NTY0ICAgeT0xMTI5ICB3aWR0aD0xMjYgICBoZWlnaHQ9MTUzICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OSAgeD0yMTExICB5PTQwNyAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUwICB4PTIyMzkgIHk9NDAyICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTEgIHg9MjM2NyAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MiAgeD02NzIgICB5PTc3OSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUzICB4PTc0OSAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTIwMSAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTQgIHg9ODgzICAgeT0wICAgICB3aWR0aD0xMjEgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NSAgeD0xNzQ0ICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTYgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmtlcm5pbmdzIGNvdW50PTE2ODZcclxua2VybmluZyBmaXJzdD0zMiAgc2Vjb25kPTg0ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg2ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04OSAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTIyMSBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDQgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD02NSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NzQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkyIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5MyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTQgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk1IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NiBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTcgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgxICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODQgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODYgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTgyICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9NzQgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkxICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMDcgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTYgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE5IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9NzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9ODUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjE5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMyBzZWNvbmQ9MjIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM0ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MzkgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9NjUgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTkzIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTk3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTA5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjQxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTM5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzQgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NCAgc2Vjb25kPTM5ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjUgIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NiAgc2Vjb25kPTIyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD02NyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD02OCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02OSAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzQgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzUgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMTggYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTIxIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yNTUgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NzkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODEgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk5IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjE5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIwIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzQgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTM5ICBhbW91bnQ9LTI2XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NyAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMjFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg2ICBhbW91bnQ9LTE0XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04OSAgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjIxIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9NzkgIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xMTggYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjUzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTIgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTUgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NCAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NDYgIGFtb3VudD0tMjVcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjEgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDYgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQ5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjUyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTIyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NjUgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkyIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTkzIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTk3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE3XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD05OSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMDMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzEgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzIgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzMgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzQgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yMzUgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NSAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTczIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk3ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNiBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyNyBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOCBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIyOSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExNSBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc0ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODUgIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDIgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEwMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzMyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIzNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ1ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE3MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTk3ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyNyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIyOSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NjUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTkzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTk3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xNzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODggIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxNyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIxOSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTIyMCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0NiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD02NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTMgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTQgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTUgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTYgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xOTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NiAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTkgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAwIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTAzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMxIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjMzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjM1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTA5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTEyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9OTcgIGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI0IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI1IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI2IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI3IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI4IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjI5IGFtb3VudD0tNlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzQgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTcgIHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTggIHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTkgIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA0IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTA5IHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTEwIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTIgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD00NiAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9OTcgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI2IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI4IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjI5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zNCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0zOSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU0IHNlY29uZD0xMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjA4IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5MyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NCBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NSBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NiBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD02NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD03OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04MSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xOTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zNCAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0zOSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTE5NyBzZWNvbmQ9MTIyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04NiAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD04OSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yMjEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MTk5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAwIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDEgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMiBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAzIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMSBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMiBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxMyBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTIxNCBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxNyBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIxOSBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMCBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI0IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI1IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI2IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI3IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI4IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zNCAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjI5IHNlY29uZD0zOSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMxIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMyIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjMzIHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM0IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zNCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjM1IHNlY29uZD0zOSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQxIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTM0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD05NyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0yMjkgYW1vdW50PS0xXHJcbmA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQge2dldFRvcExldmVsRm9sZGVyfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAndGljaycsIGhhbmRsZVRpY2sgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIGNvbnN0IHRlbXBNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVUaWNrKCB7IGlucHV0IH0gPSB7fSApe1xyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICB8fCBmb2xkZXIuZ3JhYkRpc2FibGVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LnByZXNzZWQgJiYgaW5wdXQuc2VsZWN0ZWQgJiYgaW5wdXQucmF5Y2FzdC5yYXkuaW50ZXJzZWN0UGxhbmUoIGlucHV0Lm1vdXNlUGxhbmUsIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkgKXtcclxuICAgICAgICBpZiggaW5wdXQuaW50ZXJhY3Rpb24ucHJlc3MgPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgICAgICBpbnB1dC5tb3VzZUludGVyc2VjdGlvbi5zdWIoIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTsgICAgICAgICAgXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZC5wYXJlbnQud29ybGRUb0xvY2FsKGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9OT1RFOjogaW4gb3J0aG9ncmFwaGljIG1vZGUsIHdlJ3ZlIGFscmVhZHkgbXV0YXRlZCB0aGUgcG9zaXRpb24gb2YgZm9sZGVycyxcclxuICAgICAgICAgIC8vbWVhbmluZyB0aGVyZSBjb3VsZCBiZSBzb21lIGluY29uc2lzdGVuY3kgd2l0aCB0aGUgbW91c2VJbnRlcnNlY3Rpb24gcG9pbnQgbm8gbG9uZ2VyIGJlaW5nIHJpZ2h0Li4uXHJcbiAgICAgICAgICAvL0kgdGhvdWdodCB0aGlzIHdhcyBwbGF5aW5nIGEgcm9sZSBpbiBhIGJ1ZyB3aXRoIG9ydGhvZ3JhcGhpYyBmb2xkZXIgbGF5b3V0LCBhcHBlYXJzIG9rIGZvciBub3cuXHJcbiAgICAgICAgICBmb2xkZXIucG9zaXRpb24uY29weShpbnB1dC5tb3VzZUludGVyc2VjdGlvbik7XHJcblxyXG4gICAgICAgICAgZm9sZGVyLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmKCBpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDAgKXtcclxuICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgIGlmKCBoaXRPYmplY3QgPT09IHBhbmVsICl7XHJcbiAgICAgICAgICBoaXRPYmplY3QudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIC8vZmFpbGluZyB0byBhY2NvdW50IGZvciB0aGUgcG9zaXRpb24gbm90IG5lY2Vzc2FyaWx5IGJlaW5nIHRoZSB3b3JsZCBwb3NpdGlvbj9cclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGhpdE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlUGxhbmUuc2V0RnJvbU5vcm1hbEFuZENvcGxhbmFyUG9pbnQoIGlucHV0Lm1vdXNlQ2FtZXJhLmdldFdvcmxkRGlyZWN0aW9uKCBpbnB1dC5tb3VzZVBsYW5lLm5vcm1hbCApLCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZVBsYW5lICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcblxyXG4gICAgbGV0IHsgaW5wdXRPYmplY3QsIGlucHV0IH0gPSBwO1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSB0cnVlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgICAgY29uc3QgaGl0T2JqZWN0ID0gaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdDtcclxuICAgICAgICAgIGlmKCBoaXRPYmplY3QgIT09IHBhbmVsICl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpbnB1dC5zZWxlY3RlZCA9IGZvbGRlcjtcclxuXHJcbiAgICAgICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgICAgICB0UG9zaXRpb24uc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBpbnB1dC5zZWxlY3RlZC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgICAgIGlucHV0Lm1vdXNlT2Zmc2V0LmNvcHkoIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uICkuc3ViKCB0UG9zaXRpb24gKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCBpbnB1dC5tb3VzZU9mZnNldCApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoZm9sZGVyLmdyYWJEaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgICBcclxuICAgICAgdGVtcE1hdHJpeC5nZXRJbnZlcnNlKCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggdGVtcE1hdHJpeCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcblxyXG4gICAgICBmb2xkZXIub2xkUGFyZW50ID0gZm9sZGVyLnBhcmVudDtcclxuICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICBpbnB1dE9iamVjdC5hZGQoIGZvbGRlciApOyBcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYmJlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IGZhbHNlICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaW5wdXQubW91c2UgKXtcclxuICAgICAgaW5wdXQuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG5cclxuICAgICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9sZGVyLm1hdHJpeC5wcmVtdWx0aXBseSggaW5wdXRPYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgZm9sZGVyLm1hdHJpeC5kZWNvbXBvc2UoIGZvbGRlci5wb3NpdGlvbiwgZm9sZGVyLnF1YXRlcm5pb24sIGZvbGRlci5zY2FsZSApO1xyXG4gICAgICBmb2xkZXIub2xkUGFyZW50LmFkZCggZm9sZGVyICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBpbnB1dC5ldmVudHMuZW1pdCggJ2dyYWJSZWxlYXNlZCcsIGZvbGRlciApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiZXhwb3J0IGNvbnN0IGdyYWJCYXIgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9IGBkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQWdDQVlBQUFDaW5YNkVBQUFBQ1hCSVdYTUFBQzRqQUFBdUl3RjRwVDkyQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk4vclhYUHVlczg1Mnp6d2ZBQ0F5V1NETlJOWUFNcVVJZUVlQ0R4OFRHNGVRdVFJRUtKSEFBRUFpelpDRnovU01CQVBoK1BEd3JJc0FIdmdBQmVOTUxDQURBVFp2QU1CeUgvdy9xUXBsY0FZQ0VBY0Iwa1RoTENJQVVBRUI2amtLbUFFQkdBWUNkbUNaVEFLQUVBR0RMWTJMakFGQXRBR0FuZitiVEFJQ2QrSmw3QVFCYmxDRVZBYUNSQUNBVFpZaEVBR2c3QUt6UFZvcEZBRmd3QUJSbVM4UTVBTmd0QURCSlYyWklBTEMzQU1ET0VBdXlBQWdNQURCUmlJVXBBQVI3QUdESUl5TjRBSVNaQUJSRzhsYzg4U3V1RU9jcUFBQjRtYkk4dVNRNVJZRmJDQzF4QjFkWExoNG96a2tYS3hRMllRSmhta0F1d25tWkdUS0JOQS9nODh3QUFLQ1JGUkhnZy9QOWVNNE9yczdPTm82MkRsOHQ2cjhHL3lKaVl1UCs1YytyY0VBQUFPRjBmdEgrTEMrekdvQTdCb0J0L3FJbDdnUm9YZ3VnZGZlTFpySVBRTFVBb09uYVYvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsL0FWLzFzK1g0OC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUgvTGNMLy93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTMvKzgvL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3ovSENBQUFSS0NCS3JCQkcvVEJHQ3pBQmh6QkJkekJDL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RC9waENKN0JLTHlCQ1FSQnlBZ1RZU0hhaUFGaWlsZ2pqZ2dYbVlYNEljRklCQktMSkNESmlCUlJJa3VSTlVneFVvcFVJRlZJSGZJOWNnSTVoMXhHdXBFN3lBQXlndnlHdkVjeGxJR3lVVDNVRExWRHVhZzNHb1JHb2d2UVpIUXhtbzhXb0p2UWNyUWFQWXcyb2VmUXEyZ1AybzgrUThjd3dPZ1lCelBFYkRBdXhzTkNzVGdzQ1pOank3RWlyQXlyeGhxd1Zxd0R1NG4xWTgreGR3UVNnVVhBQ1RZRWQwSWdZUjVCU0ZoTVdFN1lTS2dnSENRMEVkb0pOd2tEaEZIQ0p5S1RxRXUwSnJvUitjUVlZakl4aDFoSUxDUFdFbzhUTHhCN2lFUEVOeVFTaVVNeUo3bVFBa214cEZUU0V0SkcwbTVTSStrc3FaczBTQm9qazhuYVpHdXlCem1VTENBcnlJWGtuZVRENURQa0crUWg4bHNLbldKQWNhVDRVK0lvVXNwcVNobmxFT1UwNVFabG1ESkJWYU9hVXQyb29WUVJOWTlhUXEyaHRsS3ZVWWVvRXpSMW1qbk5neFpKUzZXdG9wWFRHbWdYYVBkcHIraDB1aEhkbFI1T2w5Qlgwc3ZwUitpWDZBUDBkd3dOaGhXRHg0aG5LQm1iR0FjWVp4bDNHSytZVEtZWjA0c1p4MVF3TnpIcm1PZVpENWx2VlZncXRpcDhGWkhLQ3BWS2xTYVZHeW92VkttcXBxcmVxZ3RWODFYTFZJK3BYbE45cmtaVk0xUGpxUW5VbHF0VnFwMVE2MU1iVTJlcE82aUhxbWVvYjFRL3BINVovWWtHV2NOTXcwOURwRkdnc1YvanZNWWdDMk1aczNnc0lXc05xNFoxZ1RYRUpySE4yWHgyS3J1WS9SMjdpejJxcWFFNVF6TktNMWV6VXZPVVpqOEg0NWh4K0p4MFRnbm5LS2VYODM2SzNoVHZLZUlwRzZZMFRMa3haVnhycXBhWGxsaXJTS3RScTBmcnZUYXU3YWVkcHIxRnUxbjdnUTVCeDBvblhDZEhaNC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TC8xVS9XMzZwL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk4vVDBIRFlmWkRxc2RXaDErYzdSeUZEcFdPdDZhenB6dVAzM0Y5SmJwTDJkWXp4RFAyRFBqdGhQTEtjUnBuVk9iMDBkbkYyZTVjNFB6aUl1SlM0TExMcGMrTHBzYnh0M0l2ZVJLZFBWeFhlRjYwdldkbTdPYnd1Mm8yNi91TnU1cDdvZmNuOHcwbnltZVdUTnowTVBJUStCUjVkRS9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVi9NTjhDM3lMZkxUOE52bmwrRjMwTi9JLzlrLzNyLzBRQ25nQ1VCWndPSmdVR0JXd0w3K0hwOEliK09QenJiWmZheTJlMUJqS0M1UVJWQmo0S3RndVhCclNGb3lPeVFyU0gzNTVqT2tjNXBEb1ZRZnVqVzBBZGg1bUdMdzM0TUo0V0hoVmVHUDQ1d2lGZ2EwVEdYTlhmUjNFTnozMFQ2UkpaRTNwdG5NVTg1cnkxS05TbytxaTVxUE5vM3VqUzZQOFl1WmxuTTFWaWRXRWxzU3h3NUxpcXVObTVzdnQvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpL1JOdEdJMkVOY0toNU84a2dxVFhxUzdKRzhOWGtreFRPbExPVzVoQ2Vwa0x4TURVemRtenFlRnBwMklHMHlQVHE5TVlPU2taQnhRcW9oVFpPMlorcG41bVoyeTZ4bGhiTCt4VzZMdHk4ZWxRZkphN09RckFWWkxRcTJRcWJvVkZvbzF5b0hzbWRsVjJhL3pZbktPWmFybml2TjdjeXp5dHVRTjV6dm4vL3RFc0lTNFpLMnBZWkxWeTBkV09hOXJHbzVzanh4ZWRzSzR4VUZLNFpXQnF3OHVJcTJLbTNWVDZ2dFY1ZXVmcjBtZWsxcmdWN0J5b0xCdFFGcjZ3dFZDdVdGZmV2YzErMWRUMWd2V2QrMVlmcUduUnMrRlltS3JoVGJGNWNWZjlnbzNIamxHNGR2eXIrWjNKUzBxYXZFdVdUUFp0Sm02ZWJlTFo1YkRwYXFsK2FYRG00TjJkcTBEZDlXdE8zMTlrWGJMNWZOS051N2c3WkR1YU8vUExpOFphZkp6czA3UDFTa1ZQUlUrbFEyN3RMZHRXSFgrRzdSN2h0N3ZQWTA3TlhiVzd6My9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0EvMEhJdzYyMTduVTFSM1NQVlJTajlZcjYwY094eCsrL3AzdmR5ME5OZzFWalp6RzRpTndSSG5rNmZjSjMvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWC9pK2M3dkR2T1hQSzRkUEt5MitVVFY3aFhtcTg2WDIzcWRPbzgvcFBUVDhlN25MdWFycmxjYTdudWVyMjFlMmIzNlJ1ZU44N2Q5TDE1OFJiLzF0V2VPVDNkdmZONmIvZkY5L1hmRnQxK2NpZjl6c3U3MlhjbjdxMjhUN3hmOUVEdFFkbEQzWWZWUDF2KzNOanYzSDlxd0hlZzg5SGNSL2NHaFlQUC9wSDFqdzlEQlkrWmo4dUdEWWJybmpnK09UbmlQM0w5NmZ5blE4OWt6eWFlRi82aS9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1Ty9iWHlsL2VyQTZ4bXYyOGJDeGg2K3lYZ3pNVjcwVnZ2dHdYZmNkeDN2bzk4UFQrUjhJSDhvLzJqNXNmVlQwS2Y3a3htVGsvOEVBNWp6L0dNekxkc0FBRHNrYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4UDNod1lXTnJaWFFnWW1WbmFXNDlJdSs3dnlJZ2FXUTlJbGMxVFRCTmNFTmxhR2xJZW5KbFUzcE9WR042YTJNNVpDSS9QZ284ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pCWkc5aVpTQllUVkFnUTI5eVpTQTFMall0WXpFek1pQTNPUzR4TlRreU9EUXNJREl3TVRZdk1EUXZNVGt0TVRNNk1UTTZOREFnSUNBZ0lDQWdJQ0krQ2lBZ0lEeHlaR1k2VWtSR0lIaHRiRzV6T25Ka1pqMGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M4d01pOHlNaTF5WkdZdGMzbHVkR0Y0TFc1ekl5SStDaUFnSUNBZ0lEeHlaR1k2UkdWelkzSnBjSFJwYjI0Z2NtUm1PbUZpYjNWMFBTSWlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0QwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenB3YUc5MGIzTm9iM0E5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmNHaHZkRzl6YUc5d0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T25odGNFMU5QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2Ylcwdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHpkRVYyZEQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sUlhabGJuUWpJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenAwYVdabVBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM1JwWm1Zdk1TNHdMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02WlhocFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzlsZUdsbUx6RXVNQzhpUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMGIzSlViMjlzUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5NGJYQTZRM0psWVhSdmNsUnZiMncrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZRM0psWVhSbFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qSTFPak15TFRBM09qQXdQQzk0YlhBNlEzSmxZWFJsUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTmIyUnBabmxFWVhSbFBqSXdNVFl0TURrdE1qaFVNVFk2TXpjNk1qTXRNRGM2TURBOEwzaHRjRHBOYjJScFpubEVZWFJsUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0eU1ERTJMVEE1TFRJNFZERTJPak0zT2pJekxUQTNPakF3UEM5NGJYQTZUV1YwWVdSaGRHRkVZWFJsUGdvZ0lDQWdJQ0FnSUNBOFpHTTZabTl5YldGMFBtbHRZV2RsTDNCdVp6d3ZaR002Wm05eWJXRjBQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0elBDOXdhRzkwYjNOb2IzQTZRMjlzYjNKTmIyUmxQZ29nSUNBZ0lDQWdJQ0E4Y0dodmRHOXphRzl3T2tsRFExQnliMlpwYkdVK2MxSkhRaUJKUlVNMk1UazJOaTB5TGpFOEwzQm9iM1J2YzJodmNEcEpRME5RY205bWFXeGxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2ZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa1J2WTNWdFpXNTBTVVErWVdSdlltVTZaRzlqYVdRNmNHaHZkRzl6YUc5d09qZGxOemRtWW1aakxUZzFaRFF0TVRGbE5pMWhZemhtTFdGak56VTBaV1ExT0RNM1pqd3ZlRzF3VFUwNlJHOWpkVzFsYm5SSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rOXlhV2RwYm1Gc1JHOWpkVzFsYm5SSlJENTRiWEF1Wkdsa09tTTFabU0wWkdZeUxUa3hZMk10WlRJME1TMDRZMlZqTFRNek9ESXlZMlExWldGbE9Ud3ZlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ0lDQWdQSEprWmpwVFpYRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHlaR1k2YkdrZ2NtUm1PbkJoY25ObFZIbHdaVDBpVW1WemIzVnlZMlVpUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2WVdOMGFXOXVQbU55WldGMFpXUThMM04wUlhaME9tRmpkR2x2Ymo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21sdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRwak5XWmpOR1JtTWkwNU1XTmpMV1V5TkRFdE9HTmxZeTB6TXpneU1tTmtOV1ZoWlRrOEwzTjBSWFowT21sdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwM2FHVnVQakl3TVRZdE1Ea3RNamhVTVRZNk1qVTZNekl0TURjNk1EQThMM04wUlhaME9uZG9aVzQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREUxTGpVZ0tGZHBibVJ2ZDNNcFBDOXpkRVYyZERwemIyWjBkMkZ5WlVGblpXNTBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwc2FUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZMjl1ZG1WeWRHVmtQQzl6ZEVWMmREcGhZM1JwYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwd1lYSmhiV1YwWlhKelBtWnliMjBnWVhCd2JHbGpZWFJwYjI0dmRtNWtMbUZrYjJKbExuQm9iM1J2YzJodmNDQjBieUJwYldGblpTOXdibWM4TDNOMFJYWjBPbkJoY21GdFpYUmxjbk0rQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT214cElISmtaanB3WVhKelpWUjVjR1U5SWxKbGMyOTFjbU5sSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT21GamRHbHZiajV6WVhabFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT21GaFlURmpNVFF6TFRVd1ptVXRPVFEwTXkxaE5UaG1MV0V5TTJWa05UTTNNRGRtTUR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4Tmkwd09TMHlPRlF4Tmpvek56b3lNeTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGphR0Z1WjJWa1BpODhMM04wUlhaME9tTm9ZVzVuWldRK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTXpBd01EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0eFBDOWxlR2xtT2tOdmJHOXlVM0JoWTJVK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajQyTkR3dlpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0ek1qd3ZaWGhwWmpwUWFYaGxiRmxFYVcxbGJuTnBiMjQrQ2lBZ0lDQWdJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQZ29nSUNBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBbzhQM2h3WVdOclpYUWdaVzVrUFNKM0lqOCtPaEY3UndBQUFDQmpTRkpOQUFCNkpRQUFnSU1BQVBuL0FBQ0E2UUFBZFRBQUFPcGdBQUE2bUFBQUYyK1NYOFZHQUFBQWxFbEVRVlI0MnV6WnNRM0FJQXhFVVR1VFpKUnNrdDVMUkZtQ2RUTGFwVUtDQmlqby9GMGhuMlNrSnhJS1hKSmxyc09TRndBQUFBQkE2dktJNk83QlVvclhkWnUxL1ZFV0VaZVpmYk41bS9aYW1qZksrQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0JmdWFTbmE3aS9kZDFtYlgrVVNUck43SjdOMjdUWDByeFJ4Z25nWllpZklBQUFBSkM0ZmdBQUFQLy9Bd0F1TVZQdzIwaHhDd0FBQUFCSlJVNUVya0pnZ2c9PWA7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDEnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIC8vIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuNTtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAsIGltYWdlLmhlaWdodCAvIDEwMDAsIDEsIDEgKTtcclxuXHJcbiAgICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2goIGdlb21ldHJ5LCBtYXRlcmlhbCApO1xyXG4gICAgcmV0dXJuIG1lc2g7XHJcbiAgfVxyXG5cclxufSgpKTtcclxuXHJcbmV4cG9ydCBjb25zdCBkb3duQXJyb3cgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qRTRPakkxTFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRveE9Eb3lOUzB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvek1EUXlZakkwWlMxaU16YzJMV0kwTkdJdE9HSTRZeTFsWlRGalkySXpZV1UxTURVOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk16QTBNbUl5TkdVdFlqTTNOaTFpTkRSaUxUaGlPR010WldVeFkyTmlNMkZsTlRBMVBDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pNd05ESmlNalJsTFdJek56WXRZalEwWWkwNFlqaGpMV1ZsTVdOallqTmhaVFV3TlR3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NVVpbHowQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFKZFNVUkJWSGphN04zTGNjSkFFSVRoUnVXN25jVWVUUWhrUUFpSURNZ0loVUlJY0ZRV0pnSjg4Rktsb3Z3QXJOMmQ2WjQ1Y1pHQS9UOXZpWWZ0eGVWeVFZenVkTEVFQVNBbUFNUUVnQmpKZVdsMXh5bWxOd0FIQU1keEhIdkZ4VThwRFFDV0FGYmpPSDdJN0FDVCtPOEFObmtoRk9Odjhob2M4cHJ3QTdpSmZ4MHBCSlA0MTJtR29ETVFYd3JCTi9HYkl1aU14SmRBOEV2OFpnZzZRL0dwRWR3UnZ3bUN6bGg4U2dRUHhLK09vTVlPTUR3WW53ckJFL0duQ0FiWEFQS1RYLy9qRkp1VVV1ODRmdjlrL091c1MvOFFkQWJsMzg3ZUk0TDhtUGN6bktyb1RsaHlCMWpPZUM1WENHYU1YMkl0cXdGWUFUaXBJU2dRLzVUWDBoZUEvTjYyRklKUzhVdCtUbEQwSWxBSmdjZjRWVjRHS2lEd0dyL1crd0RVQ0R6SHJ3YUFGWUgzK0ZVQnNDRmdpRjhkQUFzQ2x2aE5BSGhId0JTL0dRQ3ZDTmppTndYZ0RRRmovT1lBdkNCZ2pXOENnSFVFelBITkFMQ0tnRDIrS1FEV0VDakVOd2ZBQ2dLVitDWUJUQkQwQU02MUVSU0lmd2JRVzR4dkZrQkdjTXc3UVRVRWhlS3Y4bk5CQURDTVFERytlUUMxRUtqR0I0Q0ZsNzhSbEZKYTR1c1hURjduakpSdnozNWVEL0ZkQVNpSUFLcngzUUVvaEFDcThWMWNBMVM2SnBDTTd4S0FRUVJ1NDdzRllBaUI2L2l1QVJoQTRENitld0FORVZERXB3RFFBQUZOZkJvQUZSRlF4YWNDVUFFQlhYdzZBQVVSVU1hbkJGQUFBVzE4V2dBeklxQ09UdzFnQmdUMDhla0JUQkRzbmpoMHh4NWZBa0JHTUFEWVBuRElOaCtEQUtDSFFDYStGSUE3RVVqRmx3UHdCd0s1K0pJQWZrQWdHUjl3K0pXd09lZjZ6V0RWK1BJQVl1TGZ4Z1dBV0lJQUVCTUFZZ0pBak9SOERnRCs2T3pndjR1eTlnQUFBQUJKUlU1RXJrSmdnZz09JztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MydcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zdCBoID0gMC4zO1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAtMC4wMDUsIC0wLjAwNCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBjaGVja21hcmsgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQkFDQVlBQUFEUzFuOS9BQUFBQ1hCSVdYTUFBQ3hMQUFBc1N3R2xQWmFwQUFBNEsybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0MkxXTXhNeklnTnprdU1UVTVNamcwTENBeU1ERTJMekEwTHpFNUxURXpPakV6T2pRd0lDQWdJQ0FnSUNBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21SalBTSm9kSFJ3T2k4dmNIVnliQzV2Y21jdlpHTXZaV3hsYldWdWRITXZNUzR4THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmNHaHZkRzl6YUc5d1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM0JvYjNSdmMyaHZjQzh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02YzNSRmRuUTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpVVjJaVzUwSXlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwRGNtVmhkRzl5Vkc5dmJENUJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TlM0MUlDaFhhVzVrYjNkektUd3ZlRzF3T2tOeVpXRjBiM0pVYjI5c1Bnb2dJQ0FnSUNBZ0lDQThlRzF3T2tOeVpXRjBaVVJoZEdVK01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmVHMXdPa055WldGMFpVUmhkR1UrQ2lBZ0lDQWdJQ0FnSUR4NGJYQTZUVzlrYVdaNVJHRjBaVDR5TURFMkxURXdMVEl3VkRJeE9qTXpPalV6TFRBM09qQXdQQzk0YlhBNlRXOWthV1o1UkdGMFpUNEtJQ0FnSUNBZ0lDQWdQSGh0Y0RwTlpYUmhaR0YwWVVSaGRHVStNakF4TmkweE1DMHlNRlF5TVRvek16bzFNeTB3Tnpvd01Ed3ZlRzF3T2sxbGRHRmtZWFJoUkdGMFpUNEtJQ0FnSUNBZ0lDQWdQR1JqT21admNtMWhkRDVwYldGblpTOXdibWM4TDJSak9tWnZjbTFoZEQ0S0lDQWdJQ0FnSUNBZ1BIQm9iM1J2YzJodmNEcERiMnh2Y2sxdlpHVStNend2Y0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2tsdWMzUmhibU5sU1VRK2VHMXdMbWxwWkRvMk9EY3hZVGs1WXkwek5qRTVMVGxrTkdFdE9EZGtOaTB3WVdFNVlUUmlOV1U0TWpjOEwzaHRjRTFOT2tsdWMzUmhibU5sU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlQzSnBaMmx1WVd4RWIyTjFiV1Z1ZEVsRVBuaHRjQzVrYVdRNk5qZzNNV0U1T1dNdE16WXhPUzA1WkRSaExUZzNaRFl0TUdGaE9XRTBZalZsT0RJM1BDOTRiWEJOVFRwUGNtbG5hVzVoYkVSdlkzVnRaVzUwU1VRK0NpQWdJQ0FnSUNBZ0lEeDRiWEJOVFRwSWFYTjBiM0o1UGdvZ0lDQWdJQ0FnSUNBZ0lDQThjbVJtT2xObGNUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBzYVNCeVpHWTZjR0Z5YzJWVWVYQmxQU0pTWlhOdmRYSmpaU0krQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHBoWTNScGIyNCtZM0psWVhSbFpEd3ZjM1JGZG5RNllXTjBhVzl1UGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGMzUkZkblE2YVc1emRHRnVZMlZKUkQ1NGJYQXVhV2xrT2pZNE56RmhPVGxqTFRNMk1Ua3RPV1EwWVMwNE4yUTJMVEJoWVRsaE5HSTFaVGd5Tnp3dmMzUkZkblE2YVc1emRHRnVZMlZKUkQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BITjBSWFowT25kb1pXNCtNakF4TmkweE1DMHhPRlF4Tnpvek16b3dOaTB3Tnpvd01Ed3ZjM1JGZG5RNmQyaGxiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK1FXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVFV1TlNBb1YybHVaRzkzY3lrOEwzTjBSWFowT25OdlpuUjNZWEpsUVdkbGJuUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNKa1pqcFRaWEUrQ2lBZ0lDQWdJQ0FnSUR3dmVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnUEhScFptWTZUM0pwWlc1MFlYUnBiMjQrTVR3dmRHbG1aanBQY21sbGJuUmhkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01qZzRNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFlVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXVkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWlVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlVtVnpiMngxZEdsdmJsVnVhWFErTWp3dmRHbG1aanBTWlhOdmJIVjBhVzl1Vlc1cGRENEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNDJOVFV6TlR3dlpYaHBaanBEYjJ4dmNsTndZV05sUGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNVEk0UEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGpZMFBDOWxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajRLSUNBZ0lDQWdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtDaUFnSUR3dmNtUm1PbEpFUmo0S1BDOTRPbmh0Y0cxbGRHRStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0Nqdy9lSEJoWTJ0bGRDQmxibVE5SW5jaVB6NXo5UlQzQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFUdFNVUkJWSGphN0p6YmI1UkZHTVovMnhiQ3ZWaEFTRXhVaUkxNDR3MGhRdEhFR3JIZ0lTcWdONktndE5ZV0FiMHcwV28xWHFyYlBiU2xva1lTeGZNaGVtWC9BYTd3R0FWcThYVHAzMERYaTVtSm0wYTJ1OXYzL2I2WjJYbHVkck9IZHcvUE16UFArNzR6WDZGV3F5R0ZnWUVCRWxwR0QvQWVjQ3R3Qi9EYmNtK1ltNXNUKy9DdTlQL25pbTZnQ0R3Q1hBdDhEVnlYNVJkSUFzZ1BCYUFFak5ROWRpUHdGYkE1Q1NCK1RBRlAvYy9qVzRIUGdMNGtnSGd4Q3d3MWVQNW00R043bXdRUUVib3MrVTgwOGRxdHdFZjJOZ2tnRXJjLzB5VDVEbjEyT2RpU0JCQSsrYVVXeVhmWUFud0RYSjhFRUc2cU53a01yeURHWnBzaTNwQUVFQjZxVjNEN3JhSVArTkttaWtrQWdlQXQ0SWhndkp2c1RKQUU0RGtLd0NuZ3NFTHNzMGtBL3EvNXM4QWhoZGpUd0VGcGQ1b2dTMzVWYWVUUEFrOERpMGtBL3BKZkVsN3pIVTdTdUhLWWxnQVAxdnl5a050Zmloa3Q4cE1BWkVrYVZvaGJWWXFiQkNDSVU4Q1RDbkZMd0pqMmwwOENXTm1hLzdhUzI2OEN4NlFOWHhLQXJIbWVCaDVYV2s3R3NpQS9Ud0dNWWZhL2hVcCttZllhTzgyNC9lR3N5TTlMQUM5Z21pUHZBenNESTcvTHJzMURTaU4vS0k4ZmxDWEdnVmZ0L1Y3Z0RMQXJJQUZNaCtyMmZSREFTOERFa3NjMkFoOEMvUjNzOXN2QWFKNVRXbGJrdjN5RjU5WmpkcjFzOTNqYTEzTDdGZXYyYXpFTFlMd0IrUTVyTWIzdWJSNGF2cE5LYm44YWVBYTRuTGU2dFEzZlJKT3Y3UVcrOEdnbTZMRWpWS094TTRNNUQzQTU3eCtwS1lBWDZ3eGZzOWdBZkFMczhJQjhyY2FPS3h2WGZGQzVsZ0RHZ1ZmYWZLOHpocnR5L0UrMFhIa2xMN2VmcFFBbVdwajJseFBCYlRuOEo3UG8xZlpIOFF6U0Fuak5qbjRKck1lY2pzbXFXRlFBM2xWeSt5WHI5b2xkQUhjS3g3c2ErRHdEWTloajgveURpcW5lWWljSTRGSGdSK0dZYTVXekE4M0d6aFJ3MUZmeU5RVHdDM0NQdlpYRU91QlR6RVVVSkxFcWcxVFBXL0sxVE9DZndDQndVVGp1TmNpV2pic3haVmlOVkMrMzJyNHZhZUFmd0YzQWduRGNUVllFdHd1TlVBM3l5NWpkdTNTeUFBQitCM1lyTEFjYkJPb0U3eWhOKzVOMnpTY0p3R0FlZUFENFRqaHVMNmFCMUtvbjZMYmtQNlkwOG8valNZWFBGd0VBbkFjZVZoREJWUzFtQjY2eG8wSCtGS2F4czBoZ3lLb2RmQUY0RVBoSnFVNnczRXl3eWhxelEwcmtqNFJJZnBZQ0FMZ0U3TEV6Z2lSY3hiQy93Y2l2b0ZQZWRlUUhpNnkzaFAxbGplRzhVb3E0TkRzb1lJbzhXanQ1Z2lZL0R3SFVwNGkvS21RSForcEVVTURzNU5GdyswVXlPTFFScXdEY2NuQXY4TDF3M0hYQWFac2l2cTVrK0lyQUNTSkJucWVENTRFRHdBZkFMWUp4TndIZktwbXlzaVYvTVJZQjVIMHk2QUt3SC9oQk9PNXFZSTJDNFRzYUUvaytDQURNMWJIM0lsOHhsRVRWR3I0YWtjR1hzNEYvQTNmYkdjRTNWQWlvdGgrcUFNQjBFWGQ3Sm9KSlBOekdGYXNBd0RTUUJwSGZWTkt1Mno5RzVQRHhlUGdDOEJCd0x1ZVJmeUxHTlQ4RUFZRFpUSElBK1FaU3Mydis4ZGpjZm1nQ2NIV0MrNUZ2SUMzbjlrYzdoWHpmQmVDTTRSN2t5OFlkNS9aREZRRDgxMEM2cVBnWjBidjlrQVZRbnlKcUZJdmV4R3ptSUFuQWIxd0M3aE0yaGtYZ1dUb1lvVjBsekRXUUpGTEU2Qm83blNBQWx5THVZMlVOcEFvWlhvb3RDVUFlQzVnRzBzOXRrajlLUXRBQ0FOTkFHcVMxUFlhbFJINDhBbkFwWXJQYnk0b0VkbWdqQ2FENUZIRXZqYmVYdllFcDd5WkVLQURuQ2ZaYkVmd0RQSTg1TCtESWY0NE9hT3kwZzM4SEFNL2U3Z3VJUng5NEFBQUFBRWxGVGtTdVFtQ0MnO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgZG9jayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFDQUJBTUFBQUF4RUh6NEFBQUJHMmxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NEtQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOUzQxTGpBaVBnb2dQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpOCtDaUE4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnbzhQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtHa3FyNmdBQUFZRnBRME5RYzFKSFFpQkpSVU0yTVRrMk5pMHlMakVBQUNpUmRaSFBLMFJSRk1jL1pvZ01EYkd3c0pnMDJCZ3hhbUtqaklTYU5JMVJmbTFtbnZtaDVvM1hlMCthYkpXdG9zVEdyd1YvQVZ0bHJSU1Jrb1dWTmJGQnozbWVta25tM000OW4vdTk5NXp1UFJkYzhaeWlHcFU5b09aTlBUWWE5azNQelBxcW42aWxDZytOZENZVVF4dUtSaU9VdGZkYkt1eDRIYkJybFQvM3Iza1dVb1lDRlRYQ2c0cW1tOEpqd3BFVlU3TjVTN2haeVNZV2hFK0V1M1M1b1BDTnJTY2Rmclk1NC9DbnpYbzhOZ3l1Qm1GZnBvU1RKYXhrZFZWWVhvNWZ6UzBydi9leFgxS1h5azlOU213VGI4VWd4aWhoZkl3endqQWhlaG1RT1VTQUlOMnlva3grejAvK0JFdVNxOGlzVVVCbmtReFpUTHBFWFpicUtZbHAwVk15Y2hUcy92L3RxNUh1Q3pyVjY4SlE5V2hacisxUXZRbGZHNWIxY1dCWlg0Zmdmb0R6ZkRGL2FSLzYzMFRmS0dyK1BmQ3V3ZWxGVVV0dXc5azZ0TnhyQ1QzeEk3bkZYZWswdkJ4RC9RdzBYVUh0bk5PejMzMk83aUMrS2w5MUNUdTcwQ0hudmZQZkl5aG54OWhBVVUwQUFBQVNVRXhVUmZ6OC9GVlZWVjFkWGYvLy8zOS9meVpGeWIraGpNY0FBQUFHZEZKT1UvLy8vLy8vQUxPL3BMOEFBQUFKY0VoWmN3QUFDeE1BQUFzVEFRQ2FuQmdBQUFFRVNVUkJWR2lCN2RoQkRvTXdERVJSN2pUaUpDUHVmNVd1bXBoVnhYeWtWSkd6SXBKNWNnc2tkbzRManFPQnJRQTlIQTAwME1EK3dQVmp2QVdjRkJqekVCZ0pwTUNjWjhCTUlBVEtQQUpLQWhsUTV3bndUY0FwTUM1RFlDU1FBdmVyNThCTUlBVEtEUkZRRXNpQUdrOEFVMEFRTUFVRUFWTkFFREFGQkFGVFFCQXdCUVFCVTBBUU1BVUVBVk5BRURBRkJBRlRRQkR3Y2dEL0JQNG40c2ZJWHlUOEt2T1BDWC9PZkVIQlN4cGZWUEd5empjV3ZMWHh6UlZ2Nzd6QXdDVU9MN0p3bWNjTFRWenE4bUk3TC9mUGtrSUU0SmFITjEyNDdlT05KMjU5ZWZOOWkxbHpBRkdERmgzQ2xLaFZCMUV6Yk5saDNJajd3eFBOQmhwb1lEV1FqZ2EyQUQ1Uy9DeUl2Ym1xN2dBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQ0J1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oaCA9IDAuNCl7XHJcbiAgICAvL2NvbnN0IGggPSAwLjQ7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIDAuMDI1ICogaC8wLjQsIDAsIDAgKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBtYXRlcmlhbCApO1xyXG4gIH1cclxufSgpKTtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgdW5kb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVQU1VSQlZHaUI3ZGd4Q3NRd0RBVEEvRW5vSlVMLy84cFZzV1dsT0x3TFVUQnlGZmJFc05jNGRpNG4xOVhBVVlCc3JnWWFhT0I4d1A4c0dqQVdjQm93Rm5BYU1CWndHakFXY0JqUVVBRUNKQXhqUUtpQUFmSjgyZ1JtQlJDWUZWQmdWRUNCeCsvYmdLWnNHOGdEKzBDcXNBK2tDUUJZS3dEQU9vSUFTd1VFV0dZZ0lGYUFnRGlFQWFFQ0JvUXBFSmdWUUdDT29jQ29nQUx3anZTb0FBUDNJQTRvQ3dnTktBc0lEV2c1d1A0RlpRRW5BV1VCSndGbGdUc3IyMUJHVnJXcHpxem94Ukt5bXBkcnpFb09HRXRXY2NoYXM0S0Rac3JlUDJ6bjdQVUx4M2dFZ1ZHZzZ0bzNDeFJkZlVPQm91dC9LRkQ2Q2NSWVFFakFXRUJJd0ZnZ3ozM3dpMllERFRSUURhQ3JnU09BSDhIOEtxZ2dZcEFVQUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDUnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuIiwiLyoqIFxyXG4gKiBCaWcgYnV0dG9uIHdpdGggYW4gaW1hZ2Ugb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBBbHNvIHVzYWJsZSBhcyBhbiAneHkgY29udHJvbGxlcicgdmlhIGFkZFhZQ29udHJvbGxlciBtZXRob2QuXHJcbiAqIFxyXG4gKiBBUEkgc3ViamVjdCB0byBjaGFuZ2UuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBidXR0b24uanMgaW4gaXRzIGVudGlyZXR5LlxyXG4gKiBcclxuICogVE9ETzogbm90IGp1c3Qgc2ltcGxlICdiYW5nJyBmdW5jdGlvbiBidXQgY2FsbGJhY2tzIGZvciBob3ZlciAvIGV0Yy5cclxuICogXHJcbiAqIFxyXG4gKiBDb3B5cmlnaHQgIERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgaW5jLiAyMDE2IC8gUGV0ZXIgVG9kZCwgMjAxN1xyXG4gKiBcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhYiBmcm9tICcuL2dyYWInO1xyXG5pbXBvcnQge2lzQ29udHJvbGxlclZpc2libGV9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlSW1hZ2VCdXR0b24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgZnVuYyA9IHVuZGVmaW5lZCxcclxuICBwcmVzc2luZyA9IHVuZGVmaW5lZCxcclxuICBpbWFnZSA9IFwidGV4dHVyZXMvc3BvdGxpZ2h0LmpwZ1wiLCAvL1RPRE8gYmV0dGVyIGRlZmF1bHRcclxuICB3aWRlID0gZmFsc2UsXHJcbiAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgaGVpZ2h0LFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRILFxyXG4gIGNoYW5nZUNvbG9yT25Ib3ZlciA9IHRydWUsIC8vcXVpY2sgaGFjazogY29sb3IgcGlja2VyIHdhbnRzIHRoaXMgdG8gYmUgZmFsc2VcclxuICBidXR0b25EZXB0aCA9IExheW91dC5CVVRUT05fREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG4gIGZ1bmN0aW9uIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCB0YXJnZXRNYXRlcmlhbCkge1xyXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgLy9UT0RPIGNhY2hlLiAgRG9lcyBUZXh0dXJlTG9hZGVyIGFscmVhZHkgY2FjaGU/XHJcbiAgICAgICAgbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKGltYWdlLCAodGV4dHVyZSkgPT4ge1xyXG4gICAgICAgICAgICB0ZXh0dXJlLndyYXBTID0gdGV4dHVyZS53cmFwVCA9IFRIUkVFLkNsYW1wVG9FZGdlV3JhcHBpbmc7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IHRleHR1cmU7XHJcbiAgICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1RleHR1cmUpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzV2ViR0xSZW5kZXJUYXJnZXQpIHtcclxuICAgICAgICAgIHRhcmdldE1hdGVyaWFsLm1hcCA9IGltYWdlLnRleHR1cmU7XHJcbiAgICAgIH0gZWxzZSB0aHJvdyBcIm5vdCBzdXJlIGhvdyB0byBpbnRlcnByZXQgaW1hZ2UgXCIgKyBpbWFnZTtcclxuICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgIC8vWFhYIG1hZ2ljIG51bWJlcnMuLi5cclxuICBpZiAoIWhlaWdodCkgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX1dJRFRIICAqICh3aWRlID8gMC45NCA6IDAuMjUpO1xyXG4gIFxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogKHdpZGUgPyAwLjk0IDogMC4yNSkgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IGJ1dHRvbkRlcHRoO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgMSwgMSApO1xyXG4gIHJlY3QudHJhbnNsYXRlKCBCVVRUT05fV0lEVEggKiAwLjUsIDAsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG4gIGlmICghd2lkZSkgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgZWxzZSB7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gKiAwLjc1O1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi55ID0gMC4wMTsgLy9YWFggbWFnaWMgbnVtYmVyXHJcbiAgfVxyXG5cclxuICB2YXIgbWF0ZXJpYWw7XHJcbiAgaWYgKGltYWdlLmlzTWF0ZXJpYWwpIHtcclxuICAgIG1hdGVyaWFsID0gaW1hZ2U7XHJcbiAgfSBlbHNlIHtcclxuICAgIG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBtYXRlcmlhbC50cmFuc3BhcmVudCA9IHRydWU7XHJcbiAgICBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgbWF0ZXJpYWwpO1xyXG4gIH1cclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgLy9idXR0b24gbGFiZWwgcmVtb3ZlZDsgbWlnaHQgd2FudCBvcHRpb25zIGxpa2UgYSBob3ZlciBsYWJlbCBpbiBmdXR1cmUuXHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG4gIGlmICh3aWRlKSBkZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX0JVVFRPTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG4gIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gIC8vVE9ETzogZHJhZyBhbmQgaG92ZXJcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdob3ZlcmluZycsIGhhbmRsZUhvdmVyICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ3ByZXNzaW5nJywgaGFuZGxlUHJlc3NpbmcgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgbGV0IGhvdmVyRnVuYyA9IHVuZGVmaW5lZDtcclxuICAvLyBJIG1pZ2h0IHlldCBkZWNpZGUgdG8gY2hhbmdlIHRoaXMgaW50ZXJmYWNlLlxyXG4gIC8vIG1pZ2h0IHVzZSBhIGRpZmZlcmVudCBuYW1lLCBtaWdodCB3YW50IHRvIGFkZCBsaXN0ZW5lcnMgdG8gZXZlbnRcclxuICAvLyByYXRoZXIgdGhhbiBqdXN0IHNldCBjYWxsYmFjayBmdW5jdGlvbi5cclxuICBncm91cC5vbkhvdmVyID0gZiA9PiB7XHJcbiAgICBob3ZlckZ1bmMgPSBmO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBncm91cC5vblByZXNzaW5nID0gZiA9PiB7XHJcbiAgICBwcmVzc2luZyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGhhbmRsZUhvdmVyKCBwICl7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChob3ZlckZ1bmMpIGhvdmVyRnVuYyhwKTtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25QcmVzcyggcCApe1xyXG4gICAgLy9pdCBzaG91bGQgYmUgdGhhdCB0aGUgY2hlY2tzIGluIGluZGV4LmpzIG1lYW4gdGhhdCBtZXRob2RzIGRvbid0IGdldCBjYWxsZWQgb24gaW52aXNpYmxlXHJcbiAgICAvL29iamVjdHMsIHJlbmRlcmluZyB0aGVzZSB0ZXN0cyByZWR1bmRhbnQuLi4gaG93ZXZlciwgdGhhdCBkb2Vzbid0IGFwcGVhciB0byBiZSB0aGUgY2FzZS5cclxuICAgIC8vZXhwZXJpZW5jZWQgc29tZSBidWdzIHBhcnRpY3VsYXJseSB3aXRoICdtb2RhbCBlZGl0b3InIHR5cGUgcGFuZWxzLlxyXG4gICAgLy9UT0RPOiBlaXRoZXIgbWFrZSBzdXJlIGludmlzaWJsZSBvYmplY3RzIGFyZW4ndCBjYWxsZWQgaW4gdGhlIGZpcnN0IHBsYWNlLFxyXG4gICAgLy9vciBtYWtlIHN1cmUgYWxsIHR5cGVzIG9mIG9iamVjdCBkbyB0aGlzIG1vcmUgdGhvcm91Z2ggdmlzaWJpbGl0eSBjaGVjay4uLlxyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICBpZiAob2JqZWN0KSBvYmplY3RbIHByb3BlcnR5TmFtZSBdKHApO1xyXG4gICAgaWYgKGZ1bmMpIGZ1bmMocCk7XHJcblxyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vY29tcHV0ZSB4ICYgeSBhcyBub3JtYWxpc2VkIGNvb3JkaW5hdGVzIGZyb20gcC5wb2ludFxyXG4gIC8vY291bGQgY29uc2lkZXIgbW92aW5nIHRoaXMgY29tcHV0YXRpb24gaW50byBpbnRlcmFjdGlvbi5qcyBwZXJmb3JtU3RhdGVFdmVudHMoKVxyXG4gIGZ1bmN0aW9uIGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHBvaW50KSB7XHJcbiAgICBjb25zdCBwID0gaGl0c2NhblZvbHVtZS53b3JsZFRvTG9jYWwocG9pbnQpO1xyXG4gICAgcC54IC89IEJVVFRPTl9XSURUSDtcclxuICAgIHAueSAvPSBCVVRUT05fSEVJR0hUO1xyXG4gICAgcC55ICs9IDAuNTtcclxuICAgIHAueCA9IE1hdGgubWF4KE1hdGgubWluKHAueCwgMSksIDApO1xyXG4gICAgcC55ID0gTWF0aC5tYXgoTWF0aC5taW4ocC55LCAxKSwgMCk7XHJcbiAgICByZXR1cm4gcDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZVByZXNzaW5nKCBwICkge1xyXG4gICAgaWYoICFpc0NvbnRyb2xsZXJWaXNpYmxlKGdyb3VwKSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhgcHJlc3NpbmcgYXQgKCR7cG9pbnQueH0sICR7cG9pbnQueX0pYCk7IC8vZmlyc3QgaW5zdGFuY2Ugb2YgJ3ByZXNzaW5nJyBpcyBhbHdheXMgYXQgKDEsIDEpXHJcbiAgICAvL25iLCBsaWtlbHkgdG8gbmVlZCBhIGRpZmZlcmVudCBzdHJhdGVneSBmb3IgZHVhbCB3aWVsZGluZ1xyXG4gICAgaWYgKHByZXNzaW5nKSBwcmVzc2luZyhwKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSgpe1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgaWYgKCFtYXRlcmlhbC5jb2xvcikgcmV0dXJuO1xyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgaWYgKGNoYW5nZUNvbG9yT25Ib3ZlcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweENDQ0NDQyApO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgaGl0c2NhblZvbHVtZSwgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqIFxyXG4gKiBHcmlkIG9mIGJ1dHRvbnMgd2l0aCBpbWFnZXMgb24gKHdoaWNoIG1pZ2h0IGNvbWUgZnJvbSBhIGZpbGUgb3IgZXhpc3RpbmcgdGV4dHVyZSxcclxuICogdGhlIHRleHR1cmUgbWlnaHQgYmUgZnJvbSBhIFJlbmRlclRhcmdldC4uLikuXHJcbiAqIFxyXG4gKiBJJ2QgcHV0IHRoaXMgbW9yZSBzZXBhcmF0ZSBmcm9tIHRoZSBkYXRndWkgbW9kdWxlcyBidXQgbmVlZCB0byB0aGluayBhIGxpdHRsZVxyXG4gKiBiaXQgYWJvdXQgaG93IHRvIHN0cnVjdHVyZSB0aGF0IGV0Yy4gIFZlcnkgdW4tRFJZLCBidXQgSSdtIHN0YXJ0aW5nIGJ5IGp1c3RcclxuICogY29weWluZyBleGlzdGluZyBpbWFnZWJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtjcmVhdGVUZXh0TGFiZWwsIGNyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7c2V0VmlzaWJpbGl0eX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3RzLCAvLyBhcnJheSBvZiB7ZnVuYywgaW1hZ2UgfCB0ZXh0LCB0aXAob3B0aW9uYWwpLCByZWxlYXNlKG9wdGlvbmFsKX1cclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICByb3dIZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY29sdW1ucyA9IDRcclxufSA9IHt9ICl7XHJcbiAgXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdCBtYXJnaW4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMztcclxuICBjb25zdCBCVVRUT05fV0lEVEggPSAod2lkdGggLSBtYXJnaW4pICogKDEvY29sdW1ucyk7XHJcbiAgLy9UT0RPOiBhZGQgc2V0Um93SGVpZ2h0IG1ldGhvZFxyXG4gIGxldCBCVVRUT05fSEVJR0hUID0gcm93SGVpZ2h0ID4gMCA/IHJvd0hlaWdodCA6IEJVVFRPTl9XSURUSDtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImltYWdlYnV0dG9uZ3JpZFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke29iamVjdHN9XWA7XHJcbiAgXHJcbiAgY29uc3Qgcm93cyA9IE1hdGguY2VpbChvYmplY3RzLmxlbmd0aCAvIGNvbHVtbnMpO1xyXG4gIGxldCBoZWlnaHQgPSBMYXlvdXQuUEFORUxfTUFSR0lOICsgQlVUVE9OX0hFSUdIVCAqIHJvd3M7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgZ3JvdXAuc2V0Um93SGVpZ2h0ID0gaCA9PiB7XHJcbiAgICByb3dIZWlnaHQgPSBCVVRUT05fSEVJR0hUID0gaDtcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcbiAgICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcbiAgbGV0IGhpZ2hsaWdodExhc3RQcmVzc2VkID0gZmFsc2U7XHJcbiAgbGV0IGxhc3RQcmVzc2VkID0gbnVsbDtcclxuICBsZXQgbGFzdFByZXNzZWRDb2w7XHJcbiAgZ3JvdXAuaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSAoY29sID0gMHgzMzU1RUUpID0+IHtcclxuICAgICAgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBjb2wgIT09IGZhbHNlO1xyXG4gICAgICBsYXN0UHJlc3NlZENvbCA9IGNvbDtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuICBcclxuICBsZXQgcGFuZWwsIGdyYWJJbnRlcmFjdGlvbiwgYnV0dG9ucyA9IFtdO1xyXG5cclxuICBsYXlvdXRCdXR0b25zKCk7XHJcbiAgXHJcbiAgZnVuY3Rpb24gaW5pdFBhbmVsKCkge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgICBncm91cC5hZGQoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgcGFuZWwuYWRkKGNvbnRyb2xsZXJJRCk7XHJcbiAgICBcclxuICAgIGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT5ncm91cC5yZW1vdmUoYikpO1xyXG4gICAgYnV0dG9ucyA9IFtdO1xyXG4gICAgZ3JvdXAuZ3VpQ2hpbGRyZW4gPSBidXR0b25zO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBsYXlvdXRCdXR0b25zKCkge1xyXG4gICAgaW5pdFBhbmVsKCk7XHJcbiAgICAvL1RPRE86IHBhZGRpbmdcclxuICAgIGNvbnN0IGJ1dHRvbldQYWRkZWQgPSBCVVRUT05fV0lEVEggKiAwLjk5LCBidXR0b25IUGFkZGVkID0gQlVUVE9OX0hFSUdIVCAqIDAuOTk7XHJcbiAgICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGJ1dHRvbldQYWRkZWQsIGJ1dHRvbkhQYWRkZWQsIDEsIDEgKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKCBidXR0b25XUGFkZGVkIC8gMiwgLWJ1dHRvbkhQYWRkZWQgLyAyLCBCVVRUT05fREVQVEggKTtcclxuXHJcbiAgICB2YXIgaSA9IDA7XHJcbiAgICBcclxuICAgIC8vVE9ETzogdG9nZ2xlcyByYXRoZXIgdGhhbiB0cmlnZ2Vycy4uLlxyXG4gICAgb2JqZWN0cy5mb3JFYWNoKChvYmosIGkpID0+IHtcclxuICAgICAgICBpZiAoIW9iai5pbWFnZSAmJiAhb2JqLnRleHQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgc3ViZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9ub3RlOiByZWR1Y2luZyBuZXN0aW5nIGNvdWxkIGltcHJvdmUgcGVyZm9ybWFuY2UuXHJcbiAgICAgICAgc3ViZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VCdXR0b25HcmlkRWxlbWVudFwiO1xyXG4gICAgICAgIGdyb3VwLmFkZChzdWJncm91cCk7XHJcbiAgICAgICAgYnV0dG9ucy5wdXNoKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29sID0gaSAlIGNvbHVtbnM7XHJcbiAgICAgICAgY29uc3Qgcm93ID0gTWF0aC5mbG9vcihpIC8gY29sdW1ucyk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnggPSAoMipMYXlvdXQuUEFORUxfTUFSR0lOKSArIEJVVFRPTl9XSURUSCAqIGNvbDtcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi55ID0gKGhlaWdodC8yKSAtQlVUVE9OX0hFSUdIVCAqIHJvdztcclxuICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIO1xyXG5cclxuICAgICAgICAvLyAgaGl0c2NhbiB2b2x1bWUuXHJcbiAgICAgICAgLy8gVGhpcyBtYXRlcmlhbCBjb3VsZCBwcm9iYWJseSBiZSByZXVzZWQuXHJcbiAgICAgICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgaGl0c2Nhbk1hdGVyaWFsLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG5cclxuICAgICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gICAgICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgICAgICBpZiAob2JqLmltYWdlKSBhcHBseUltYWdlVG9NYXRlcmlhbChvYmouaW1hZ2UsIG1hdGVyaWFsKTtcclxuICAgICAgICBpZiAob2JqLnRleHQpIHtcclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZShvYmoudGV4dCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpbiA9IDIqTGF5b3V0LkdSSURfQlVUVE9OX01BUkdJTjtcclxuICAgICAgICAgICAgbGV0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgbGV0IHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICBpZiAodyA+IEJVVFRPTl9XSURUSCAtIG1hcmdpbikge1xyXG4gICAgICAgICAgICAgICAgdGV4dC5jb25zdHJhaW5Cb3VuZHMoQlVUVE9OX1dJRFRIIC0gbWFyZ2luLCBCVVRUT05fSEVJR0hUIC0gbWFyZ2luKTsgLy88LS1cclxuICAgICAgICAgICAgICAgIGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRleHQubGF5b3V0LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIHcgPSB0ZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLmFkZCh0ZXh0KTtcclxuICAgICAgICAgICAgc3ViZ3JvdXAudGV4dCA9IHRleHQ7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueCA9IG9iai50ZXh0WCB8fCAwLjUgKiAoQlVUVE9OX1dJRFRIIC0gdyk7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueSA9IG9iai50ZXh0WSB8fCAtMC41ICogQlVUVE9OX0hFSUdIVCAtIGg7XHJcbiAgICAgICAgICAgIHRleHQucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgICAgICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG4gICAgICAgIC8vYnV0dG9uIGxhYmVsICYgZGVzY3JpcHRvciBsYWJlbCByZW1vdmVkLlxyXG4gICAgICAgIC8vVG9vbHRpcCB0ZXh0IG9wdGlvbiBhZGRlZC4gIE1pZ2h0IHdhbnQgdG8gYmUgYWJsZSB0byBwYXNzIGluIHJpY2hlciB0aGluZ3MuLi5cclxuICAgICAgICAvL21heWJlIGFuIGFyYml0cmFyeSBUSFJFRSBvYmplY3Qgd291bGQgd29yayB3ZWxsLi4uXHJcbiAgICAgICAgaWYgKG9iai50aXApIHtcclxuICAgICAgICAgICAgY29uc3QgdGlwVGV4dCA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIG9iai50aXAsIEJVVFRPTl9XSURUSCwgQlVUVE9OX0hFSUdIVCwgQlVUVE9OX0RFUFRIKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vc3ViZ3JvdXAuYWRkKHRpcFRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50aXBUZXh0ID0gdGlwVGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy9wYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcbiAgICAgICAgc3ViZ3JvdXAuYWRkKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgcGFuZWwuYWRkKHN1Ymdyb3VwKTtcclxuXHJcbiAgICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICAgICAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlT25SZWxlYXNlICk7XHJcblxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAgICAgICAgIGlmKCBzdWJncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vVE9ETzogc3RhbmRhcmRpc2UgaGFuZGxpbmcgb2YgZXhjZXB0aW9ucyBpbiBjYWxsYmFja3NcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIG9iai5mdW5jKCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIG9iai5lcnJvciA9IGUgfHwgJ3VuZGVmaW5lZCBleGNlcHRpb24nO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxhc3RQcmVzc2VkID0gb2JqO1xyXG4gICAgICAgICAgICBzdWJncm91cC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC40O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgICAgICAgICAgIGlmIChvYmoucmVsZWFzZSkgb2JqLnJlbGVhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9xdWljayBjb2xvciBoYWNrLi4uXHJcbiAgICAgICAgb2JqLmhvdmVyQ29sID0gb2JqLnRleHQgPyAweDg4OCA6IDB4RkZGRkZGO1xyXG4gICAgICAgIG9iai5ub0hvdmVyQ29sID0gb2JqLnRleHQgPyAweDExMSA6IDB4Q0NDQ0NDO1xyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChoaWdobGlnaHRMYXN0UHJlc3NlZCAmJiBsYXN0UHJlc3NlZCA9PT0gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGxhc3RQcmVzc2VkQ29sICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgPyBvYmouaG92ZXJDb2wgOiBvYmoubm9Ib3ZlckNvbCApO1xyXG4gICAgICAgICAgICBpZiAoc3ViZ3JvdXAudGlwVGV4dCkgc2V0VmlzaWJpbGl0eShzdWJncm91cCwgc3ViZ3JvdXAudGlwVGV4dCwgaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICAgIGlmIChvYmouZXJyb3IpIG1hdGVyaWFsLmNvbG9yLnNldEhleCggMHhBQTMzMzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBzdWJncm91cC51cGRhdGVWaWV3KCk7XHJcblxyXG4gICAgICAgIHN1Ymdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgc3ViZ3JvdXAuaGl0c2NhbiA9IGhpdHNjYW5Wb2x1bWU7IC8vWFhYOiBtYWtpbmcgdGhpcyBzaW5nbGUgZWxlbWVudCByYXRoZXIgdGhhbiBhcnJheSxcclxuICAgICAgICAvL3RoYXQgbWVhbnMgdGhlc2UgJ3N1Ymdyb3VwJyBidXR0b25zIGFyZW4ndCBhY3RpbmcgZXhhY3RseSBhcyBub3JtYWwgZGF0LkdVSVZSIGNvbnRyb2xsZXJzXHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5oaXRzY2FuID0gYnV0dG9ucy5tYXAoYj0+Yi5oaXRzY2FuKTsvLy5wdXNoKHBhbmVsKTtcclxuICAgIGdyb3VwLmhpdHNjYW4ucHVzaChwYW5lbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpIHtcclxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGI9PmIudXBkYXRlVmlldygpKTtcclxuICB9XHJcbiAgXHJcbiAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgIGJ1dHRvbnMuZm9yRWFjaChiPT57XHJcbiAgICAgICAgYi5pbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgfSk7XHJcbiAgICAvL2ludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICBncmFiSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIHVwZGF0ZVZpZXcoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVTbGlkZXIgZnJvbSAnLi9zbGlkZXInO1xyXG5pbXBvcnQgY3JlYXRlQ2hlY2tib3ggZnJvbSAnLi9jaGVja2JveCc7XHJcbmltcG9ydCBjcmVhdGVCdXR0b24gZnJvbSAnLi9idXR0b24nO1xyXG5pbXBvcnQgY3JlYXRlRm9sZGVyIGZyb20gJy4vZm9sZGVyJztcclxuaW1wb3J0IGNyZWF0ZURyb3Bkb3duIGZyb20gJy4vZHJvcGRvd24nO1xyXG4vL1BKVDogSSdkIHJhdGhlciBpbmplY3QgY3VzdG9tIGV4dGVuc2lvbnMgbGlrZSB0aGlzLCBidXQgd2lsbCB3b3JrIHRoYXQgb3V0IGxhdGVyLlxyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlS2V5Ym9hcmQgZnJvbSAnLi9rZXlib2FyZCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0Ym94IGZyb20gJy4vdGV4dGJveCc7XHJcbmltcG9ydCBjcmVhdGVDb2xvclBpY2tlciBmcm9tICcuL2NvbG9ycGlja2VyJztcclxuaW1wb3J0ICogYXMgU0RGVGV4dCBmcm9tICcuL3NkZnRleHQnO1xyXG5pbXBvcnQgeyBpc0NvbnRyb2xsZXJWaXNpYmxlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IGdsb2JhbEV2ZW50cyB9IGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuY29uc3QgR1VJVlIgPSAoZnVuY3Rpb24gREFUR1VJVlIoKXtcclxuXHJcbiAgLypcclxuICAgIFNERiBmb250XHJcbiAgKi9cclxuICBjb25zdCB0ZXh0Q3JlYXRvciA9IFNERlRleHQuY3JlYXRvcigpO1xyXG5cclxuXHJcbiAgLypcclxuICAgIExpc3RzLlxyXG4gICAgSW5wdXRPYmplY3RzIGFyZSB0aGluZ3MgbGlrZSBWSVZFIGNvbnRyb2xsZXJzLCBjYXJkYm9hcmQgaGVhZHNldHMsIGV0Yy5cclxuICAgIENvbnRyb2xsZXJzIGFyZSB0aGUgREFUIEdVSSBzbGlkZXJzLCBjaGVja2JveGVzLCBldGMuXHJcbiAgKi9cclxuICBjb25zdCBpbnB1dE9iamVjdHMgPSBbXTtcclxuICBjb25zdCBjb250cm9sbGVycyA9IFtdO1xyXG5cclxuICAvKlxyXG4gICAgRnVuY3Rpb25zIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY29udHJvbGxlciBpcyB2aXNpYmxlIChieSB3aGljaCB3ZVxyXG4gICAgbWVhbiBub3QgaGlkZGVuLCBub3QgJ3Zpc2libGUnIGluIHRlcm1zIG9mIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gZXRjKSwgYW5kXHJcbiAgICBmb3IgcmV0cmlldmluZyB0aGUgbGlzdCBvZiB2aXNpYmxlIGhpdHNjYW5PYmplY3RzIGR5bmFtaWNhbGx5LlxyXG4gICAgVGhpcyBtaWdodCBiZW5lZml0IGZyb20gc29tZSBjYWNoaW5nIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2l0aCBsYXJnZSBjb21wbGV4IEdVSXMuXHJcbiAgICBJIGhhdmVuJ3QgbWVhc3VyZWQgdGhlIGltcGFjdCBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gZXRjLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gZ2V0VmlzaWJsZUNvbnRyb2xsZXJzKCkge1xyXG4gICAgLy8gbm90IHRlcnJpYmx5IGVmZmljaWVudFxyXG4gICAgcmV0dXJuIGNvbnRyb2xsZXJzLmZpbHRlciggaXNDb250cm9sbGVyVmlzaWJsZSApO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlSGl0c2Nhbk9iamVjdHMoKSB7XHJcbiAgICAvL1hYWCBXQVJOSU5HOjo6XHJcbiAgICAvL3RoZXJlIGNvdWxkIGV4aXN0IHNpdHVhdGlvbnMgaW4gd2hpY2ggbWVtYmVycyBvZiBoaXRzY2FuIGZvciBhIHZpc2libGUgY29udHJvbGxlciBhcmUgbm90IHRoZW1zZWx2ZXMgdmlzaWJsZS5cclxuICAgIC8vdGhpcyBjYW4gaGFwcGVuIGZvciBlZyBpZiB0aGUgJ3Zpc2libGUnIHByb3BlcnR5IG9mIHRoZSBwYXJ0aWN1bGFyIGhpdHNjYW4gaXMgaW4gYW4gaW52aXNpYmxlIG1vZGFsIGVkaXRvci5cclxuICAgIC8vd2UgY291bGQgY2hlY2sgdGhhdCwgYWRkaW5nIGEgbW9yZSByb2J1c3QgZmlsdGVyIHRvIGVhY2ggaGl0c2NhbiBhcnJheS4uLiBmb3Igbm93LCBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcclxuICAgIC8vY29udHJvbGxlcnMgdG8gZWl0aGVyIG9ubHkgcmV0dXJuIGhpdHNjYW4gb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlLCBvciB0byBzZXQgJ3Zpc2libGUnIGV4cGxpY2l0bHkuXHJcbiAgICBjb25zdCB0bXAgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKS5tYXAoIG8gPT4geyByZXR1cm4gby5oaXRzY2FuLmZpbHRlcihoID0+IGgudmlzaWJsZSk7IH0gKVxyXG4gICAgcmV0dXJuIHRtcC5yZWR1Y2UoKGEsIGIpID0+IHsgcmV0dXJuIGEuY29uY2F0KGIpfSwgW10pO1xyXG4gIH1cclxuXHJcbiAgbGV0IG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGxldCBtb3VzZVJlbmRlcmVyID0gdW5kZWZpbmVkO1xyXG4gIGxldCBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkOyAvL2tlZXAgdHJhY2sgc28gdGhhdCB3ZSBkb24ndCBhdHRhY2ggbXVsdGlwbGUgZXZlbnRzIChwYXJ0aWN1bGFybHkgd2hlbiByZXNpemluZyB3aW5kb3cpXHJcbiAgXHJcbiAgbGV0IGF1dG9VcGRhdGUgPSB0cnVlO1xyXG5cclxuICBmdW5jdGlvbiBlbmFibGVNb3VzZSggY2FtZXJhLCByZW5kZXJlciApe1xyXG4gICAgbW91c2VFbmFibGVkID0gdHJ1ZTtcclxuICAgIG1vdXNlUmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgIG1vdXNlSW5wdXQubW91c2VDYW1lcmEgPSBjYW1lcmE7XHJcbiAgICBpZiAoY2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhKSB7XHJcbiAgICAgIGlmICghb25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSBmPT5mLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMub24oJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25PcnRob01vdXNlUmVsZWFzZSkge1xyXG4gICAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW91c2VJbnB1dC5sYXNlcjtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gZGlzYWJsZU1vdXNlKCl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSBmYWxzZTtcclxuICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgIG1vdXNlSW5wdXQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKCdncmFiUmVsZWFzZWQnLCBvbk9ydGhvTW91c2VSZWxlYXNlKTtcclxuICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKlxyXG4gICAgVGhlIGRlZmF1bHQgbGFzZXIgcG9pbnRlciBjb21pbmcgb3V0IG9mIGVhY2ggSW5wdXRPYmplY3QuXHJcbiAgKi9cclxuICBjb25zdCBsYXNlck1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKHtjb2xvcjoweDU1YWFmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0pO1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUxhc2VyKCl7XHJcbiAgICBjb25zdCBnID0gbmV3IFRIUkVFLkJ1ZmZlckdlb21ldHJ5KCk7XHJcbiAgICBnLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKG5ldyBGbG9hdDMyQXJyYXkoWzAsMCwwLDAsMCwwXSkpKTtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTGluZSggZywgbGFzZXJNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBBIFwiY3Vyc29yXCIsIGVnIHRoZSBiYWxsIHRoYXQgYXBwZWFycyBhdCB0aGUgZW5kIG9mIHlvdXIgbGFzZXIuXHJcbiAgKi9cclxuICBjb25zdCBjdXJzb3JNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHg0NDQ0NDQsIHRyYW5zcGFyZW50OiB0cnVlLCBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyB9ICk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKCl7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgwLjAwNiwgNCwgNCApLCBjdXJzb3JNYXRlcmlhbCApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBnZW5lcmljIElucHV0IHR5cGUuXHJcbiAgICBUYWtlcyBhbnkgVEhSRUUuT2JqZWN0M0QgdHlwZSBvYmplY3QgYW5kIHVzZXMgaXRzIHBvc2l0aW9uXHJcbiAgICBhbmQgb3JpZW50YXRpb24gYXMgYW4gaW5wdXQgZGV2aWNlLlxyXG5cclxuICAgIEEgbGFzZXIgcG9pbnRlciBpcyBpbmNsdWRlZCBhbmQgd2lsbCBiZSB1cGRhdGVkLlxyXG4gICAgQ29udGFpbnMgc3RhdGUgYWJvdXQgd2hpY2ggSW50ZXJhY3Rpb24gaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb3IgaG92ZXIuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBjcmVhdGVJbnB1dCggaW5wdXRPYmplY3QgPSBuZXcgVEhSRUUuR3JvdXAoKSApe1xyXG4gICAgY29uc3QgaW5wdXQgPSB7XHJcbiAgICAgIHJheWNhc3Q6IG5ldyBUSFJFRS5SYXljYXN0ZXIoIG5ldyBUSFJFRS5WZWN0b3IzKCksIG5ldyBUSFJFRS5WZWN0b3IzKCkgKSxcclxuICAgICAgbGFzZXI6IGNyZWF0ZUxhc2VyKCksXHJcbiAgICAgIGN1cnNvcjogY3JlYXRlQ3Vyc29yKCksXHJcbiAgICAgIG9iamVjdDogaW5wdXRPYmplY3QsXHJcbiAgICAgIHByZXNzZWQ6IGZhbHNlLFxyXG4gICAgICBncmlwcGVkOiBmYWxzZSxcclxuICAgICAgZXZlbnRzOiBuZXcgRW1pdHRlcigpLFxyXG4gICAgICBpbnRlcmFjdGlvbjoge1xyXG4gICAgICAgIGdyaXA6IHVuZGVmaW5lZCxcclxuICAgICAgICBwcmVzczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGhvdmVyOiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5hZGQoIGlucHV0LmN1cnNvciApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgTW91c2VJbnB1dC5cclxuICAgIEFsbG93cyB5b3UgdG8gY2xpY2sgb24gdGhlIHNjcmVlbiB3aGVuIG5vdCBpbiBWUiBmb3IgZGVidWdnaW5nLlxyXG4gICovXHJcbiAgY29uc3QgbW91c2VJbnB1dCA9IGNyZWF0ZU1vdXNlSW5wdXQoKTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlTW91c2VJbnB1dCgpe1xyXG4gICAgY29uc3QgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigtMSwtMSk7XHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSBjcmVhdGVJbnB1dCgpO1xyXG4gICAgaW5wdXQubW91c2UgPSBtb3VzZTtcclxuICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlT2Zmc2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICAgIGlucHV0Lm1vdXNlUGxhbmUgPSBuZXcgVEhSRUUuUGxhbmUoKTtcclxuICAgIGlucHV0LmludGVyc2VjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyAgc2V0IG15IGVuYWJsZU1vdXNlXHJcbiAgICBpbnB1dC5tb3VzZUNhbWVyYSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNlbW92ZScsIGZ1bmN0aW9uKCBldmVudCApe1xyXG4gICAgICBpZiAoIWV2ZW50LmJ1dHRvbnMpIGlucHV0LnByZXNzZWQgPSBmYWxzZTsgIC8vIHJlZHVjZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIG1ha2VEcmFnZ2FibGUgZHJhZyBhbmQgdGhpcyBkcmFnXHJcblxyXG4gICAgICAvLyBpZiBhIHNwZWNpZmljIHJlbmRlcmVyIGhhcyBiZWVuIGRlZmluZWRcclxuICAgICAgaWYgKG1vdXNlUmVuZGVyZXIpIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0ID0gbW91c2VSZW5kZXJlci5kb21FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIG1vdXNlLnggPSAoIChldmVudC5jbGllbnRYIC0gY2xpZW50UmVjdC5sZWZ0KSAvIGNsaWVudFJlY3Qud2lkdGgpICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCAoZXZlbnQuY2xpZW50WSAtIGNsaWVudFJlY3QudG9wKSAvIGNsaWVudFJlY3QuaGVpZ2h0KSAqIDIgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gZnVsbHNjcmVlblxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtb3VzZS54ID0gKCBldmVudC5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGggKSAqIDIgLSAxO1xyXG4gICAgICAgIG1vdXNlLnkgPSAtICggZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCApICogMiArIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9LCBmYWxzZSApO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmIChpbnB1dC5pbnRlcnNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBwcmV2ZW50IG1vdXNlIGRvd24gZnJvbSB0cmlnZ2VyaW5nIG90aGVyIGxpc3RlbmVycyAocG9seWZpbGwsIGV0YylcclxuICAgICAgICAvLyBjb21tZW50ZWQgb3V0IDI4IEFwcmlsIDIwMjIsIGdlbmVyYWxseSBwcmV0dHkgYmFkIHByYWN0aWNlXHJcbiAgICAgICAgLy8gZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7IC8vc29tZXRpbWVzIHdlIGNhcmUgYWJvdXQgdGhlIG1vdXNlIGJlaW5nIHByZXNzZWQsIGV2ZW4gb24gYmFja2dyb3VuZFxyXG4gICAgICAgLy93aWxsIGJlIHNldCBmYWxzZSBhdCBlbmQgb2YgZmlyc3QgdXBkYXRlLiBTaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHRvIGFkZCBhIG5ldyBwcm9wZXJ0eS4uLiBcclxuICAgICAgIC8vb25QcmVzc2VkIHNob3VsZCBiZSBhZGVxdWF0ZS5cclxuICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICB9LCB0cnVlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZXVwJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlucHV0LnByZXNzZWQgPSBmYWxzZTtcclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG5cclxuICAgIHJldHVybiBpbnB1dDtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIGZ1bmN0aW9uIHVzZXJzIHJ1biB0byBnaXZlIERBVCBHVUkgYW4gaW5wdXQgZGV2aWNlLlxyXG4gICAgQXV0b21hdGljYWxseSBkZXRlY3RzIGZvciBWaXZlQ29udHJvbGxlciBhbmQgYmluZHMgYnV0dG9ucyArIGhhcHRpYyBmZWVkYmFjay5cclxuXHJcbiAgICBSZXR1cm5zIGEgbGFzZXIgcG9pbnRlciBzbyBpdCBjYW4gYmUgZGlyZWN0bHkgYWRkZWQgdG8gc2NlbmUuXHJcblxyXG4gICAgVGhlIGxhc2VyIHdpbGwgdGhlbiBoYXZlIHR3byBtZXRob2RzOlxyXG4gICAgbGFzZXIucHJlc3NlZCgpLCBsYXNlci5ncmlwcGVkKClcclxuXHJcbiAgICBUaGVzZSBjYW4gdGhlbiBiZSBib3VuZCB0byBhbnkgYnV0dG9uIHRoZSB1c2VyIHdhbnRzLiBVc2VmdWwgZm9yIGJpbmRpbmcgdG9cclxuICAgIGNhcmRib2FyZCBvciBhbHRlcm5hdGUgaW5wdXQgZGV2aWNlcy5cclxuXHJcbiAgICBGb3IgZXhhbXBsZS4uLlxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vkb3duJywgZnVuY3Rpb24oKXsgbGFzZXIucHJlc3NlZCggdHJ1ZSApOyB9ICk7XHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbnB1dE9iamVjdCggb2JqZWN0ICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCBvYmplY3QgKTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5wcmVzc2VkID0gZnVuY3Rpb24oIGZsYWcgKXtcclxuICAgICAgY29uc3QgaGl0cyA9IGlucHV0LmludGVyc2VjdGlvbnM7XHJcbiAgICAgIC8vIG9ubHkgcGF5IGF0dGVudGlvbiB0byBwcmVzc2VzIG92ZXIgdGhlIEdVSVxyXG4gICAgICBpZiAoZmxhZyAmJiBoaXRzICYmIChoaXRzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IHRydWU7XHJcbiAgICAgICAgaW5wdXQuY2xpY2tlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmdyaXBwZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBpbnB1dC5ncmlwcGVkID0gZmxhZztcclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuY3Vyc29yID0gaW5wdXQuY3Vyc29yO1xyXG5cclxuICAgIGlmKCBUSFJFRS5WaXZlQ29udHJvbGxlciAmJiBvYmplY3QgaW5zdGFuY2VvZiBUSFJFRS5WaXZlQ29udHJvbGxlciApe1xyXG4gICAgICBiaW5kVml2ZUNvbnRyb2xsZXIoIGlucHV0LCBvYmplY3QsIGlucHV0Lmxhc2VyLnByZXNzZWQsIGlucHV0Lmxhc2VyLmdyaXBwZWQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMucHVzaCggaW5wdXQgKTtcclxuXHJcbiAgICByZXR1cm4gaW5wdXQubGFzZXI7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgSGVyZSBhcmUgdGhlIG1haW4gZGF0IGd1aSBjb250cm9sbGVyIHR5cGVzLlxyXG4gICovXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG1pbiA9IDAuMCwgbWF4ID0gMTAwLjAgKXtcclxuICAgIGNvbnN0IHNsaWRlciA9IGNyZWF0ZVNsaWRlcigge1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG1pbiwgbWF4LFxyXG4gICAgICBpbml0aWFsVmFsdWU6IG9iamVjdFsgcHJvcGVydHlOYW1lIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIHNsaWRlciApO1xyXG5cclxuICAgIHJldHVybiBzbGlkZXI7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRDaGVja2JveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGNoZWNrYm94ID0gY3JlYXRlQ2hlY2tib3goe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggY2hlY2tib3ggKTtcclxuXHJcbiAgICByZXR1cm4gY2hlY2tib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRCdXR0b24oIG9iamVjdCwgcHJvcGVydHlOYW1lICl7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3RcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuYyB0byBjYWxsIGJhY2sgd2hlbiBidXR0b24gcHJlc3NlZFxyXG4gICAqIEBwYXJhbSB7Kn0gaW1hZ2UgY2FuIGJlIGZpbGVuYW1lLCBXZWJHTFJlbmRlclRhcmdldCBvciBNYXRlcmlhbFxyXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gd2lkZSB3aGV0aGVyIHRvIG1ha2UgYnV0dG9uIGZpbGwgZW50aXJlIHdpZHRoIG9mIHBhbmVsIChhcGkgc3ViamVjdCB0byBjaGFuZ2UpXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b24oZnVuYywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3Qgb2JqZWN0ID0geyBmOiBmdW5jIH07XHJcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSAnZic7XHJcblxyXG5cclxuICAgIC8vc2VlIGFsc28gZm9sZGVyLmpzIHdoZXJlIHRoaXMgaXMgYWRkZWQgdG8gZ3JvdXAgb2JqZWN0Li4uXHJcbiAgICAvL2FzIHN1Y2ggdGhpcyBmdW5jdGlvbiBhbHNvIG5lZWRzIHRvIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBjcmVhdGVGb2xkZXIuXHJcbiAgICAvL3BlcmhhcHMgYWxsIG9mIHRoZXNlICdhZGRYJyBmdW5jdGlvbnMgY291bGQgYmUgaW5pdGlhbGx5IHB1dCBvbnRvIGFuIG9iamVjdCBzbyB0aGF0XHJcbiAgICAvL25ldyBhZGRpdGlvbnMgY291bGQgYmUgYWRkZWQgc2xpZ2h0bHkgbW9yZSBlYXNpbHkuXHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBidXR0b24gKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRYWUNvbnRyb2xsZXIocHJlc3NpbmcsIGltYWdlLCB3aWRlLCBoZWlnaHQpIHtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICcnO1xyXG4gICAgY29uc3QgYnV0dG9uID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJlc3NpbmcsIHByb3BlcnR5TmFtZSwgaW1hZ2UsIHdpZGUsIGhlaWdodFxyXG4gICAgfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGJ1dHRvbik7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBUaGlzIGludGVyZmFjZSBtYXkgYmUgc3ViamVjdCB0byBjaGFuZ2UuICBBcmd1bWVudHMgYXJlIG9iamVjdHMgZGVzY3JpYmluZyBidXR0b25zXHJcbiAgRmlyc3Qgb2JqZWN0IG1heSBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gYWRkSW1hZ2VCdXR0b25QYW5lbChjb2xzLCAuLi5hcmdzKSB7XHJcbiAgICBsZXQgY29sdW1ucyA9IE51bWJlci5pc0ludGVnZXIoY29scykgPyBjb2xzIDogNDtcclxuICAgIGNvbnN0IG9iamVjdHMgPSBhcmdzO1xyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGNvbHMpKSBvYmplY3RzLnVuc2hpZnQoY29scylcclxuICAgIGNvbnN0IGdyaWQgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiBjb2x1bW5zfSk7XHJcbiAgICBjb250cm9sbGVycy5wdXNoKGdyaWQpO1xyXG4gICAgcmV0dXJuIGdyaWQ7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRLZXlib2FyZCgga2V5TGlzdGVuZXIgKSB7XHJcbiAgICBpZiAoIWtleUxpc3RlbmVyKSBrZXlMaXN0ZW5lciA9IChrKSA9PiBjb25zb2xlLmxvZyhga2V5RG93biAke2t9YCk7XHJcbiAgICBjb25zdCBrYiA9IGNyZWF0ZUtleWJvYXJkKHtrZXlMaXN0ZW5lciwgdGV4dENyZWF0b3J9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goa2IpO1xyXG4gICAgcmV0dXJuIGtiO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKSB7XHJcbiAgICBjb25zdCBib3ggPSBjcmVhdGVUZXh0Ym94KHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZUNvbG9yUGlja2VyKHt0ZXh0Q3JlYXRvciwgb2JqZWN0LCBwcm9wZXJ0eU5hbWV9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYm94KTtcclxuICAgIHJldHVybiBib3g7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9wdGlvbnMgKXtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gY3JlYXRlRHJvcGRvd24oe1xyXG4gICAgICB0ZXh0Q3JlYXRvciwgcHJvcGVydHlOYW1lLCBvYmplY3QsIG9wdGlvbnNcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGRyb3Bkb3duICk7XHJcbiAgICByZXR1cm4gZHJvcGRvd247XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEFuIGltcGxpY2l0IEFkZCBmdW5jdGlvbiB3aGljaCBkZXRlY3RzIGZvciBwcm9wZXJ0eSB0eXBlXHJcbiAgICBhbmQgZ2l2ZXMgeW91IHRoZSBjb3JyZWN0IGNvbnRyb2xsZXIuXHJcblxyXG4gICAgRHJvcGRvd246XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG9iamVjdFR5cGUgKVxyXG5cclxuICAgIFNsaWRlcjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZOdW1iZXJUeXBlLCBtaW4sIG1heCApXHJcblxyXG4gICAgQ2hlY2tib3g6XHJcbiAgICAgIGFkZCggb2JqZWN0LCBwcm9wZXJ0eU9mQm9vbGVhblR5cGUgKVxyXG5cclxuICAgIEJ1dHRvbjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZGdW5jdGlvblR5cGUgKVxyXG5cclxuICAgIE5vdCB1c2VkIGRpcmVjdGx5LiBVc2VkIGJ5IGZvbGRlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMywgYXJnNCApe1xyXG5cclxuICAgIGlmKCBvYmplY3QgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG5cclxuICAgIGlmIChvYmplY3QuaXNGb2xkZXIpIHJldHVybiBvYmplY3Q7XHJcblxyXG4gICAgaWYoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBjb25zb2xlLndhcm4oICdubyBwcm9wZXJ0eSBuYW1lZCcsIHByb3BlcnR5TmFtZSwgJ29uIG9iamVjdCcsIG9iamVjdCApO1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzT2JqZWN0KCBhcmczICkgfHwgaXNBcnJheSggYXJnMyApICl7XHJcbiAgICAgIHJldHVybiBhZGREcm9wZG93biggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNOdW1iZXIoIG9iamVjdFsgcHJvcGVydHlOYW1lXSApICl7XHJcbiAgICAgIHJldHVybiBhZGRTbGlkZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzQm9vbGVhbiggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc0Z1bmN0aW9uKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzU3RyaW5nKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFRleHRib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBpc0NvbG9yKCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZENvbG9yUGlja2VyKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBhZGQgY291bGRuJ3QgZmlndXJlIGl0IG91dCwgcGFzcyBpdCBiYWNrIHRvIGZvbGRlclxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZVNsaWRlciggbWluID0gMCwgbWF4ID0gMSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG51bWJlcjogbWluXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBhZGRTbGlkZXIoIHByb3h5LCAnbnVtYmVyJywgbWluLCBtYXggKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZURyb3Bkb3duKCBvcHRpb25zID0gW10gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBvcHRpb246ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGlmKCBvcHRpb25zICE9PSB1bmRlZmluZWQgKXtcclxuICAgICAgcHJveHkub3B0aW9uID0gaXNBcnJheSggb3B0aW9ucyApID8gb3B0aW9uc1sgMCBdIDogb3B0aW9uc1sgT2JqZWN0LmtleXMob3B0aW9ucylbMF0gXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWRkRHJvcGRvd24oIHByb3h5LCAnb3B0aW9uJywgb3B0aW9ucyApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlQ2hlY2tib3goIGRlZmF1bHRPcHRpb24gPSBmYWxzZSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIGNoZWNrZWQ6IGRlZmF1bHRPcHRpb25cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZENoZWNrYm94KCBwcm94eSwgJ2NoZWNrZWQnICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVCdXR0b24oIGZuICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgYnV0dG9uOiAoZm4hPT11bmRlZmluZWQpID8gZm4gOiBmdW5jdGlvbigpe31cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZEJ1dHRvbiggcHJveHksICdidXR0b24nICk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIE5vdCB1c2VkIGRpcmVjdGx5OyB1c2VkIGJ5IGZvbGRlcnMuXHJcbiAgUmVtb3ZlIGNvbnRyb2xsZXJzIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBjb250cm9sbGVycyBrbm93biB0byBkYXQuR1VJVlIuXHJcbiAgQ2FsbHMgcmVtb3ZlVGVzdCBmaXJzdCB0byBjaGVjayBpbnB1dCBhcmd1bWVudHMuICByZXR1cm5zIGZhbHNlIGlmIHRoaXMgdGVzdCBmYWlscy5cclxuICByZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bC5cclxuXHJcbiAgTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcmVjdXJzaXZlbHkgcmVtb3ZlIGVsZW1lbnRzIGZyb20gZm9sZGVyczsgdGhhdCBpcyBkZWFsdCB3aXRoIGluIHRoZSBmb2xkZXIgY29kZSB3aGljaCBjYWxscyB0aGlzLlxyXG4gIFxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIHJlbW92ZSggLi4uYXJncyApe1xyXG4gICAgbGV0IGFyZ1NldCA9IFsgLi4ubmV3IFNldChhcmdzKSBdOyAvL2p1c3QgaW4gY2FzZSB0aGVyZSB3ZXJlIHJlcGVhdGVkIGVsZW1lbnRzIGluIGFyZ3MsIHR1cm4gaW50byBTZXQgdGhlbiBiYWNrIHRvIGFycmF5LlxyXG4gICAgaWYgKCAhcmVtb3ZlVGVzdCguLi5hcmdTZXQpICkgcmV0dXJuIGZhbHNlO1xyXG4gICAgYXJnU2V0LmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgdmFyIGkgPSBjb250cm9sbGVycy5pbmRleE9mKCBvYmogKTtcclxuICAgICAgaWYgKCBpID4gLTEpIGNvbnRyb2xsZXJzLnNwbGljZSggaSwgMSApO1xyXG4gICAgICBlbHNlIHsgLy8gSSBjYW4ndCBzZWUgaG93IHRoaXMnZCBoYXBwZW4gbm93IHdlIGd1YXJkIGFnYWluc3QgcmVwZWF0ZWQgZWxlbWVudHMuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJJbnRlcm5hbCBlcnJvciBpbiByZW1vdmUsIG5vdCBhbnRpY2lwYXRlZCBieSByZW1vdmVUZXN0LiBJbnRlcm5hbCBkYXQuR1VJVlIgc3RhdGUgbWF5IGJlIGluY29uc2lzdGVudC5cIik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBWZXJpZnkgdGhhdCBhbGwgb2YgdGhlIGl0ZW1zIGluIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZXhpc3RpbmcgY29udHJvbGxlcnMgdGhhdCBzaG91bGQgYmUgb2sgdG8gcmVtb3ZlLlxyXG5cclxuICBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGFyZSBhbnkgbWlzbWF0Y2hlcywgdHJ1ZSBpZiBiZWxpZXZlZCBvayB0byBjb250aW51ZSB3aXRoIGFjdHVhbCByZW1vdmUoKVxyXG5cclxuICBJZiBhbnkgb2YgdGhlIHByb3ZpZGVkIGFyZ3MgYXJlIGZvbGRlcnMgKGhhdmUgaXNGb2xkZXIgcHJvcGVydHkpIHRoaXMgaXMgY2FsbGVkIHJlY3Vyc2l2ZWx5LlxyXG4gIFRoaXMgd2lsbCByZXN1bHQgaW4gcmVkdW5kYW50IHdvcmsgYXMgZWFjaCBmb2xkZXIgd2lsbCBhbHNvIGNhbGwgaXQgYWdhaW4gYXMgaXQncyByZW1vdmVkLCBidXQgdGhpcyBpcyBjaGVhcFxyXG4gIGFuZCBpdCBtZWFucyB0aGF0IGFueSBlcnJvciBzaG91bGQgYmUgY2F1Z2h0IGFzIGVhcmx5IGFzIHBvc3NpYmxlIGFuZCB0aGUgd2hvbGUgcHJvY2VzcyBhYm9ydGVkLlxyXG4gICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlVGVzdCggLi4uYXJncyApIHtcclxuICAgIGZvciAodmFyIGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBvYmogPSBhcmdzW2ldO1xyXG4gICAgICBpZiAoY29udHJvbGxlcnMuaW5kZXhPZihvYmopID09PSAtMSB8fCAhb2JqLmZvbGRlci5oYXNDaGlsZChvYmopKSB7XHJcbiAgICAgICAgLy9UT0RPOiB0b1N0cmluZyBpbXBsZW1lbnRhdGlvbnMgZm9yIGNvbnRyb2xsZXJzXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJDYW4ndCByZW1vdmUgY29udHJvbGxlciBcIiArIG9iaik7IC8vbm90IHN1cmUgdGhlIHByZWZlcnJlZCB3YXkgb2YgcmVwb3J0aW5nIHByb2JsZW0gdG8gdXNlci5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGlmICghcmVtb3ZlVGVzdCggLi4ub2JqLmd1aUNoaWxkcmVuICkpIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wbGV0ZWx5IHJlbW92ZSBhbGwgR1VJIGVsZW1lbnRzIGZyb20gdGhlIHN5c3RlbSBnbG9iYWxseSwgXHJcbiAgICogaW5jbHVkaW5nIHJlbW92aW5nIGFueSBvYmplY3RzIGZyb20gdGhlIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKi9cclxuICBmdW5jdGlvbiBjbGVhckFsbCgpIHtcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMudmlzaWJsZSA9IGZhbHNlOyBpZiAoYy5wYXJlbnQgJiYgIWMucGFyZW50Lmd1aUNoaWxkcmVuKSBjLnBhcmVudC5yZW1vdmUoYyk7XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnNwbGljZSgwLCBjb250cm9sbGVycy5sZW5ndGgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBDcmVhdGVzIGEgZm9sZGVyIHdpdGggdGhlIG5hbWUuXHJcblxyXG4gICAgRm9sZGVycyBhcmUgVEhSRUUuR3JvdXAgdHlwZSBvYmplY3RzIGFuZCBjYW4gZG8gZ3JvdXAuYWRkKCkgZm9yIHNpYmxpbmdzLlxyXG4gICAgRm9sZGVycyB3aWxsIGF1dG9tYXRpY2FsbHkgYXR0ZW1wdCB0byBsYXkgaXRzIGNoaWxkcmVuIG91dCBpbiBzZXF1ZW5jZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBnaXZlbiB0aGUgYWRkKCkgZnVuY3Rpb25hbGl0eSBzbyB0aGF0IHRoZXkgY2FuIGRvXHJcbiAgICBmb2xkZXIuYWRkKCAuLi4gKSB0byBjcmVhdGUgY29udHJvbGxlcnMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlKCBuYW1lICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBjcmVhdGVGb2xkZXIoe1xyXG4gICAgICB0ZXh0Q3JlYXRvcixcclxuICAgICAgbmFtZSxcclxuICAgICAgZ3VpQWRkOiBhZGQsXHJcbiAgICAgIGd1aVJlbW92ZTogcmVtb3ZlLFxyXG4gICAgICBhZGRDb250cm9sbGVyRnVuY3M6IHtcclxuICAgICAgICBhZGRTbGlkZXI6IGFkZFNpbXBsZVNsaWRlcixcclxuICAgICAgICBhZGREcm9wZG93bjogYWRkU2ltcGxlRHJvcGRvd24sXHJcbiAgICAgICAgYWRkQ2hlY2tib3g6IGFkZFNpbXBsZUNoZWNrYm94LFxyXG4gICAgICAgIGFkZEJ1dHRvbjogYWRkU2ltcGxlQnV0dG9uLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uOiBhZGRJbWFnZUJ1dHRvbixcclxuICAgICAgICBhZGRYWUNvbnRyb2xsZXI6IGFkZFhZQ29udHJvbGxlcixcclxuICAgICAgICBhZGRJbWFnZUJ1dHRvblBhbmVsOiBhZGRJbWFnZUJ1dHRvblBhbmVsLFxyXG4gICAgICAgIGFkZEtleWJvYXJkOiBhZGRLZXlib2FyZCxcclxuICAgICAgICBhZGRUZXh0Ym94OiBhZGRUZXh0Ym94XHJcbiAgICAgIH0sXHJcbiAgICAgIGdsb2JhbENvbnRyb2xsZXJzOiBjb250cm9sbGVycyxcclxuICAgICAgLy8/Pz9cclxuICAgICAgYWRkSGVhZGVyRnVuY3M6IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZm9sZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUGVyZm9ybSB0aGUgbmVjZXNzYXJ5IHVwZGF0ZXMsIHJheWNhc3RzIG9uIGl0cyBvd24gUkFGLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbiAgY29uc3QgdERpcmVjdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCAwLCAwLCAtMSApO1xyXG4gIGNvbnN0IHRNYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoKSB7XHJcbiAgICBjb25zdCBpc09ydGhvZ3JhcGhpYyA9IG1vdXNlRW5hYmxlZCAmJiBtb3VzZUlucHV0Lm1vdXNlQ2FtZXJhLmlzT3J0aG9ncmFwaGljQ2FtZXJhO1xyXG4gICAgaWYgKGF1dG9VcGRhdGUpIHJlcXVlc3RBbmltYXRpb25GcmFtZSggdXBkYXRlICk7XHJcbiAgICBcclxuICAgIHZhciBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgY29uc3QgY29udHJvbGxlcnMgPSBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKTtcclxuICAgIGNvbnN0IGZvbGRlcnMgPSBjb250cm9sbGVycy5maWx0ZXIoYyA9PiBjLmZvbGRlciA9PT0gYyk7IC8vYWxsIHRvcC1sZXZlbCBmb2xkZXJzXHJcbiAgICBmb2xkZXJzLmZvckVhY2goZiA9PiB7XHJcbiAgICAgIGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWMgPSBpc09ydGhvZ3JhcGhpYyA/IG1vdXNlSW5wdXQubW91c2VDYW1lcmEgOiBmYWxzZTtcclxuICAgICAgaWYgKGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSkge1xyXG4gICAgICAgIGYucmVxdWVzdExheW91dCgpO1xyXG4gICAgICAgIGYubW9kYWxXYXNTZXRJbkN1cnJlbnRGcmFtZSA9IGZhbHNlOyAvLyBwcm90ZWN0IGFueSBuZXdseS1kaXNwbGF5ZWQgbW9kYWxFZGl0b3IgZnJvbSBiZWluZyBjbGVhcmVkXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGYudXNlckRhdGEubGF5b3V0UGVuZGluZykgZi5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICB9KTsgXHJcblxyXG4gICAgaWYoIG1vdXNlRW5hYmxlZCApe1xyXG4gICAgICAvL1RPRE86IGxvY2sgbW91c2Ugb24gaG92ZXI/P1xyXG4gICAgICBtb3VzZUlucHV0LmludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnB1dCggaGl0c2Nhbk9iamVjdHMsIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dE9iamVjdHMuZm9yRWFjaCggZnVuY3Rpb24oIHtib3gsb2JqZWN0LHJheWNhc3QsbGFzZXIsY3Vyc29yLGludGVyYWN0aW9ufSA9IHt9LCBpbmRleCApe1xyXG4gICAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICAgIG9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBcclxuICAgICAgdFBvc2l0aW9uLnNldCgwLDAsMCkuc2V0RnJvbU1hdHJpeFBvc2l0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgdE1hdHJpeC5pZGVudGl0eSgpLmV4dHJhY3RSb3RhdGlvbiggb2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIFxyXG4gICAgICB0RGlyZWN0aW9uLnNldCgwLDAsLTEpO1xyXG4gICAgICAvL2FsdGVyaW5nIGRpcmVjdGlvbiBlLmcuIHRvIHBvaW50IGluIGRpcmVjdGlvbiBvZiBleHRlbmRlZCB0cmlnZ2VyIGZpbmdlciwgcmF0aGVyIHRoYW4gJ21haW4gYXhpcycgb2YgVml2ZSBjb250cm9sbGVyLi4uXHJcbiAgICAgIC8vbWF5YmUgdGhpcyBzaG91bGQgYmUgaW4gdXNlckRhdGEuXHJcbiAgICAgIGlmIChvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcikgdERpcmVjdGlvbi5hcHBseVF1YXRlcm5pb24ob2JqZWN0Lmxhc2VyUm90YXRlTW9kaWZpZXIpO1xyXG4gICAgICB0RGlyZWN0aW9uLmFwcGx5TWF0cml4NCggdE1hdHJpeCApLm5vcm1hbGl6ZSgpO1xyXG4gICAgICBcclxuICAgICAgcmF5Y2FzdC5zZXQoIHRQb3NpdGlvbiwgdERpcmVjdGlvbiApO1xyXG4gICAgICBcclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAwIF0uY29weSggdFBvc2l0aW9uICk7XHJcbiAgICAgIGNvbnN0IGEgPSBsYXNlci5nZW9tZXRyeS5nZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJykuYXJyYXk7XHJcbiAgICAgIGFbMF0gPSB0UG9zaXRpb24ueDsgYVsxXSA9IHRQb3NpdGlvbi55OyBhWzJdID0gdFBvc2l0aW9uLno7XHJcbiAgICAgIFxyXG4gICAgICAvLyAgZGVidWcuLi5cclxuICAgICAgLy8gbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggdFBvc2l0aW9uICkuYWRkKCB0RGlyZWN0aW9uLm11bHRpcGx5U2NhbGFyKCAxICkgKTtcclxuICAgICAgXHJcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbnMgPSByYXljYXN0LmludGVyc2VjdE9iamVjdHMoIGhpdHNjYW5PYmplY3RzLCBmYWxzZSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgXHJcbiAgICAgIGlucHV0T2JqZWN0c1sgaW5kZXggXS5pbnRlcnNlY3Rpb25zID0gaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy93YW50IHRvIGFkZCBpbmZvIChoaXQgZGlzY3RhbmNlKSB0byBvYmplY3QgZm9yIHVzZSBvdXRzaWRlLi4uIGp1c3QgYWRkaW5nIGVudGlyZXR5IG9mIGludGVyc2VjdGlvbnMgaW4gY2FzZSB1c2VmdWxcclxuICAgICAgaWYgKG9iamVjdC51c2VyRGF0YSkgb2JqZWN0LnVzZXJEYXRhLmd1aUludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0cyA9IGlucHV0T2JqZWN0cy5zbGljZSgpO1xyXG4gICAgXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIGlucHV0cy5wdXNoKCBtb3VzZUlucHV0ICk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnRyb2xsZXJzLmZvckVhY2goIGMgPT4gYy51cGRhdGVDb250cm9sKCBpbnB1dHMgKSk7XHJcbiAgICAvL25vdyBjaGVjayBpZiBhbnkgcHJlc3Mgb24gYW55IGlucHV0IGhpdCBhbnkgbm9uJ21vZGFsIGVkaXRvcicuLi4gaWYgc28sIHdlJ2xsIHJlbW92ZSBtb2RhbHMgZnJvbSBhbGwgZm9sZGVyc1xyXG4gICAgLy8odGhpcyBpc24ndCBwZXJmZWN0OyBpZiB5b3UgYXJlIGFjdGl2ZWx5IGludGVyYWN0aW5nIHdpdGggc29tZXRoaW5nIGFuZCBwcmVzcyBvdGhlciBidXR0b24gc29tZXdoZXJlIGVsc2UsIGl0J2xsIHJlbW92ZSB5b3VyIG9iamVjdClcclxuICAgIGxldCBoaXROb25Nb2RhbHMgPSBpbnB1dHMuZmlsdGVyKGlucHV0ID0+IGlucHV0LmhpdE5vbk1vZGFsKTtcclxuICAgIGlmIChoaXROb25Nb2RhbHMubGVuZ3RoICE9IDApIHtcclxuICAgICAgaGl0Tm9uTW9kYWxzLmZvckVhY2goaCA9PiBoLmhpdE5vbk1vZGFsID0gZmFsc2UpOyAvL3JlbW92ZSBmbGFncyBzbyB0aGV5IGRvbid0IHBlcnNpc3QgdG8gc3Vic2VxdWVudCB1cGRhdGVzXHJcbiAgICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IGYuY2xlYXJNb2RhbEVkaXRvcigpKTsgLy90aGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIG5vdCBoaWRlIGl0ZW1zIG5ld2x5IGRpc3BsYXllZCBpbiB0aGlzIGZyYW1lXHJcbiAgICB9XHJcbiAgICBtb3VzZUlucHV0LmNsaWNrZWQgPSBmYWxzZTtcclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKG89Pm8uY2xpY2tlZCA9IGZhbHNlKTtcclxuICAgIHJldHVybiBtb3VzZUlucHV0LmludGVyc2VjdGlvbnM7IC8vc2pwdCB3YW50ZWQgdGhpc1xyXG4gIH1cclxuXHJcbiAgLy9pZiBhbnkgaW5wdXQuaW50ZXJhY3Rpb25zIGhhdmUgaGl0Vm9sdW1lIHRoYXQgY29ycmVzcG9uZHMgdG8gc29tZXRoaW5nIG5vdCBjdXJyZW50bHkgaW4gaGl0c2Nhbk9iamVjdHMsXHJcbiAgLy90aGF0IGludGVyYWN0aW9uIHNob3VsZCBiZSBjYW5jZWxsZWQuIEVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgd2l0aCBlLmcuIHByZXNzaW5nICdyZWF0dGFjaCcgd2hlbiB0aGUgcGFyZW50IGlzIGNsb3NlZC5cclxuICBmdW5jdGlvbiBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb25zLCBoaXRzY2FuT2JqZWN0cyApIHtcclxuICAgIFsncHJlc3MnLCAnZ3JpcCcsICdob3ZlciddLmZvckVhY2goIGludGVyYWN0aW9uTmFtZSA9PiB7XHJcbiAgICAgIGNvbnN0IGludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV07XHJcbiAgICAgIGlmIChpbnRlcmFjdGlvbiAmJiBoaXRzY2FuT2JqZWN0cy5pbmRleE9mKGludGVyYWN0aW9uLmhpdFZvbHVtZSkgPCAwKSB7XHJcbiAgICAgICAgaW50ZXJhY3Rpb25zW2ludGVyYWN0aW9uTmFtZV0gPSB1bmRlZmluZWQ7IFxyXG4gICAgICAgIC8vb25seSBiZSBwb2xpdGUgdG8gaW5mb3JtIHRoZSBpbnRlcmFjdGlvbiBhcyB3ZWxsOyB1cGRhdGUgd2l0aCBlbXB0eSBpbnB1dE9iamVjdHMgYXJnIHNob3VsZCBkbyB0aGUgdHJpY2suXHJcbiAgICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBbXSApO1xyXG4gICAgICB9IFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVMYXNlciggbGFzZXIsIHBvaW50ICl7XHJcbiAgICBjb25zdCBwcCA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgIHBwWzNdID0gcG9pbnQueDtcclxuICAgIHBwWzRdID0gcG9pbnQueTtcclxuICAgIHBwWzVdID0gcG9pbnQuejtcclxuICAgIHBwLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydCBpY2VzWyAxIF0uY29weSggcG9pbnQgKTtcclxuICAgIGxhc2VyLnZpc2libGUgPSB0cnVlO1xyXG4gICAgbGFzZXIuZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIC8vbGFzZXIuZ2VvbWV0cnkudmVydGljZXNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgaWYoIGludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBjb25zdCBmaXJzdEhpdCA9IGludGVyc2VjdGlvbnNbIDAgXTtcclxuICAgICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IucG9zaXRpb24uY29weSggZmlyc3RIaXQucG9pbnQgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBjdXJzb3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGxhc2VyLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBhcnNlTW91c2VJbnRlcnNlY3Rpb24oIGludGVyc2VjdGlvbiwgbGFzZXIsIGN1cnNvciApe1xyXG4gICAgY3Vyc29yLnBvc2l0aW9uLmNvcHkoIGludGVyc2VjdGlvbiApO1xyXG4gICAgdXBkYXRlTGFzZXIoIGxhc2VyLCBjdXJzb3IucG9zaXRpb24gKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUludGVyc2VjdGlvbiggcmF5Y2FzdCwgbW91c2UsIGNhbWVyYSApe1xyXG4gICAgcmF5Y2FzdC5zZXRGcm9tQ2FtZXJhKCBtb3VzZSwgY2FtZXJhICk7XHJcbiAgICBjb25zdCBoaXRzY2FuT2JqZWN0cyA9IGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpO1xyXG4gICAgcmV0dXJuIHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBtb3VzZUludGVyc2VjdHNQbGFuZSggcmF5Y2FzdCwgdiwgcGxhbmUgKXtcclxuICAgIHJldHVybiByYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggcGxhbmUsIHYgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsbW91c2UsbW91c2VDYW1lcmEsIGludGVyYWN0aW9ufSA9IHt9ICl7XHJcbiAgICBjaGVja0NhbmNlbGxlZEludGVyYWN0aW9ucyggaW50ZXJhY3Rpb24sIGhpdHNjYW5PYmplY3RzICk7XHJcbiAgICBsZXQgaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIGlmIChtb3VzZUNhbWVyYSkge1xyXG4gICAgICBpbnRlcnNlY3Rpb25zID0gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgbW91c2VDYW1lcmEgKTtcclxuICAgICAgcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICk7XHJcbiAgICAgIGN1cnNvci52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnM7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUoKTtcclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIFB1YmxpYyBtZXRob2RzLlxyXG4gICovXHJcblxyXG4gIGNvbnN0IHB1YmxpY0ludGVyZmFjZSA9IHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGFkZElucHV0T2JqZWN0LFxyXG4gICAgZW5hYmxlTW91c2UsXHJcbiAgICBkaXNhYmxlTW91c2UsXHJcbiAgICB0ZXh0Q3JlYXRvciwgLy9jaGVhcCB3YXkgb2YgZXhwb3NpbmcgdGhpcyBzbyBpdCBjYW4gYmUgdXNlZCBieSBob3N0IGFwcGxpY2F0aW9uLlxyXG4gICAgZ2xvYmFsRXZlbnRzLFxyXG4gICAgY2xlYXJBbGwsXHJcbiAgICB1cGRhdGVcclxuICB9O1xyXG4gIC8vIGFsbG93IHVzZXIgdG8gY2FsbCBcImRhdC5HVUlWUi5hdXRvVXBkYXRlID0gZmFsc2VcIiBhbmQgdGhlbiB1cGRhdGUgbWFudWFsbHkgd2l0aFxyXG4gIC8vIFwiZGF0LkdVSVZSLnVwZGF0ZSgpXCJcclxuICAvLyBleHBvc2UgYXV0b1VwZGF0ZSBhcyBwcm9wZXJ0eSBzbyB0aGF0IHRoZSByZWZlcmVuY2Ugd2lsbCBiZSBwcm9wZXJseSBlZmZlY3RlZFxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggcHVibGljSW50ZXJmYWNlLCAnYXV0b1VwZGF0ZScsIHsgZ2V0OiAoKT0+IGF1dG9VcGRhdGUsIHNldDogdiA9PiBhdXRvVXBkYXRlID0gdiB9ICk7XHJcbiAgcmV0dXJuIHB1YmxpY0ludGVyZmFjZTtcclxuXHJcbn0oKSk7XHJcblxyXG5pZiggd2luZG93ICl7XHJcbiAgaWYoIHdpbmRvdy5kYXQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgd2luZG93LmRhdCA9IHt9O1xyXG4gIH1cclxuXHJcbiAgd2luZG93LmRhdC5HVUlWUiA9IEdVSVZSO1xyXG59XHJcblxyXG5pZiggbW9kdWxlICl7XHJcbiAgbW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICBkYXQ6IEdVSVZSXHJcbiAgfTtcclxufVxyXG5cclxuaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XHJcbiAgZGVmaW5lKFtdLCBHVUlWUik7XHJcbn1cclxuXHJcbi8qXHJcbiAgQnVuY2ggb2Ygc3RhdGUtbGVzcyB1dGlsaXR5IGZ1bmN0aW9ucy5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGlzTnVtYmVyKG4pIHtcclxuICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Jvb2xlYW4obil7XHJcbiAgcmV0dXJuIHR5cGVvZiBuID09PSAnYm9vbGVhbic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuY3Rpb25Ub0NoZWNrKSB7XHJcbiAgY29uc3QgZ2V0VHlwZSA9IHt9O1xyXG4gIHJldHVybiBmdW5jdGlvblRvQ2hlY2sgJiYgZ2V0VHlwZS50b1N0cmluZy5jYWxsKGZ1bmN0aW9uVG9DaGVjaykgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XHJcbn1cclxuXHJcbi8vICBvbmx5IHt9IG9iamVjdHMgbm90IGFycmF5c1xyXG4vLyAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIHRlY2huaWNhbGx5IG9iamVjdHMgYnV0IHlvdSdyZSBqdXN0IGJlaW5nIHBlZGFudGljXHJcbmZ1bmN0aW9uIGlzT2JqZWN0IChpdGVtKSB7XHJcbiAgcmV0dXJuICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbSAhPT0gbnVsbCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQXJyYXkoIG8gKXtcclxuICByZXR1cm4gQXJyYXkuaXNBcnJheSggbyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1N0cmluZyggbyApe1xyXG4gIHJldHVybiB0eXBlb2YgbyA9PT0gJ3N0cmluZyc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQ29sb3IoIG8gKXtcclxuICBpZiAodHlwZW9mIG8gIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XHJcbiAgcmV0dXJuIG8uaXNDb2xvciA/IHRydWUgOiBmYWxzZTtcclxufVxyXG5cclxuXHJcblxyXG4vKlxyXG4gIENvbnRyb2xsZXItc3BlY2lmaWMgc3VwcG9ydC5cclxuKi9cclxuXHJcbmZ1bmN0aW9uIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIGNvbnRyb2xsZXIsIHByZXNzZWQsIGdyaXBwZWQgKXtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VyZG93bicsICgpPT5wcmVzc2VkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICd0cmlnZ2VydXAnLCAoKT0+cHJlc3NlZCggZmFsc2UgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzZG93bicsICgpPT5ncmlwcGVkKCB0cnVlICkgKTtcclxuICBjb250cm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoICdncmlwc3VwJywgKCk9PmdyaXBwZWQoIGZhbHNlICkgKTtcclxuXHJcbiAgY29uc3QgZ2FtZXBhZCA9IGNvbnRyb2xsZXIuZ2V0R2FtZXBhZCgpO1xyXG4gIGZ1bmN0aW9uIHZpYnJhdGUoIHQsIGEgKXtcclxuICAgIGlmKCBnYW1lcGFkICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzICYmIGdhbWVwYWQuaGFwdGljQWN0dWF0b3JzLmxlbmd0aCA+IDAgKXtcclxuICAgICAgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnNbIDAgXS5wdWxzZSggdCwgYSApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc1RhcCgpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSgxLWEsIDAuNSksIDEwLCAyMCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFwdGljc0VjaG8oKXtcclxuICAgIHNldEludGVydmFsVGltZXMoICh4LHQsYSk9PnZpYnJhdGUoNCwgMS4wICogKDEtYSkpLCAxMDAsIDQgKTtcclxuICB9XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ29uQ29udHJvbGxlckhlbGQnLCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgIHZpYnJhdGUoIDAuMywgMC4zICk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJiZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdncmFiUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGlubmVkJywgZnVuY3Rpb24oKXtcclxuICAgIGhhcHRpY3NUYXAoKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAncGluUmVsZWFzZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc0VjaG8oKTtcclxuICB9KTtcclxuXHJcblxyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gc2V0SW50ZXJ2YWxUaW1lcyggY2IsIGRlbGF5LCB0aW1lcyApe1xyXG4gIGxldCB4ID0gMDtcclxuICBsZXQgaWQgPSBzZXRJbnRlcnZhbCggZnVuY3Rpb24oKXtcclxuICAgIGNiKCB4LCB0aW1lcywgeC90aW1lcyApO1xyXG4gICAgeCsrO1xyXG4gICAgaWYoIHg+PXRpbWVzICl7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwoIGlkICk7XHJcbiAgICB9XHJcbiAgfSwgZGVsYXkgKTtcclxuICByZXR1cm4gaWQ7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5pbXBvcnQgRW1pdHRlciBmcm9tICdldmVudHMnO1xyXG5pbXBvcnQgeyBnZXRUb3BMZXZlbEZvbGRlciB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdsb2JhbEV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbnRlcmFjdGlvbiggaGl0Vm9sdW1lICl7XHJcbiAgY29uc3QgZXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbiAgbGV0IGFueUhvdmVyID0gZmFsc2U7XHJcbiAgbGV0IGFueVByZXNzaW5nID0gZmFsc2U7XHJcbiAgbGV0IGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCB0VmVjdG9yID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCBhdmFpbGFibGVJbnB1dHMgPSBbXTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlKCBpbnB1dE9iamVjdHMgKXtcclxuXHJcbiAgICBhbnlIb3ZlciA9IGZhbHNlO1xyXG4gICAgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICAgIGFueUFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuXHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuaW5kZXhPZiggaW5wdXQgKSA8IDAgKXtcclxuICAgICAgICBhdmFpbGFibGVJbnB1dHMucHVzaCggaW5wdXQgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgeyBoaXRPYmplY3QsIGhpdFBvaW50IH0gPSBleHRyYWN0SGl0KCBpbnB1dCApO1xyXG5cclxuICAgICAgdmFyIGhvdmVyID0gaGl0Vm9sdW1lID09PSBoaXRPYmplY3Q7XHJcbiAgICAgIGFueUhvdmVyID0gYW55SG92ZXIgfHwgaG92ZXI7XHJcblxyXG4gICAgICBcclxuICAgICAgXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAncHJlc3NlZCcsXHJcbiAgICAgICAgYnV0dG9uQ2xpY2tOYW1lOiAnY2xpY2tlZCcsIC8vbWF5YmUgbm90IHN0YWJsZSBwYXJ0IG9mIEFQSS4uLlxyXG4gICAgICAgIGludGVyYWN0aW9uTmFtZTogJ3ByZXNzJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uUHJlc3NlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdwcmVzc2luZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlZCcsXHJcbiAgICAgICAgIC8vaW52ZW50aW5nIGEgJ2hvdmVyaW5nJyBldmVudCB0aGF0IG9ubHkgYXBwbGllcyB0byAncHJlc3NlZCcgYnV0dG9uLi4uXHJcbiAgICAgICAgIC8vdGhpcyBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYSBzdGFibGUgaW50ZXJmYWNlLCBidXQgSSB3YW50cyBpdCBtb3JlIHRoYW4gSVxyXG4gICAgICAgICAvL3dhbnQgdG8gbWFrZSBzb21ldGhpbmcgdG90YWxseSBjb2hlcmVudCBhbmQgcm9idXN0IGp1c3Qgbm93LlxyXG4gICAgICAgIGhvdmVyTmFtZTogJ2hvdmVyaW5nJ1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHBlcmZvcm1TdGF0ZUV2ZW50cyh7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaG92ZXIsXHJcbiAgICAgICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgICAgICBidXR0b25OYW1lOiAnZ3JpcHBlZCcsXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAnZ3JpcCcsXHJcbiAgICAgICAgZG93bk5hbWU6ICdvbkdyaXBwZWQnLFxyXG4gICAgICAgIGhvbGROYW1lOiAnZ3JpcHBpbmcnLFxyXG4gICAgICAgIHVwTmFtZTogJ29uUmVsZWFzZUdyaXAnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZXZlbnRzLmVtaXQoICd0aWNrJywge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0XHJcbiAgICAgIH0gKTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBleHRyYWN0SGl0KCBpbnB1dCApe1xyXG4gICAgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoIDw9IDAgKXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogdFZlY3Rvci5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LmN1cnNvci5tYXRyaXhXb3JsZCApLmNsb25lKCksIC8veHh4OiBnYXJiYWdlP1xyXG4gICAgICAgIGhpdE9iamVjdDogdW5kZWZpbmVkLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBoaXRQb2ludDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLnBvaW50LFxyXG4gICAgICAgIGhpdE9iamVjdDogaW5wdXQuaW50ZXJzZWN0aW9uc1sgMCBdLm9iamVjdFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgIGlucHV0LCBob3ZlcixcclxuICAgIGhpdE9iamVjdCwgaGl0UG9pbnQsXHJcbiAgICBidXR0b25OYW1lLCBidXR0b25DbGlja05hbWUsIGludGVyYWN0aW9uTmFtZSwgZG93bk5hbWUsIGhvbGROYW1lLCB1cE5hbWUsIGhvdmVyTmFtZVxyXG4gIH0gPSB7fSApe1xyXG5cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGhpdE9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIC8vY2xpY2tlZCBhbmQgZGlkbid0IGhpdCBhbnkgR1VJIG9iamVjdC5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBob3ZlcmluZyBhbmQgYnV0dG9uIE5PVCBkb3duXHJcbiAgICBpZiggaG92ZXJOYW1lICYmIGhvdmVyICYmIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICkge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob3Zlck5hbWUsIHBheWxvYWQgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgaG92ZXJpbmcgYW5kIGJ1dHRvbiBkb3duIGJ1dCBubyBpbnRlcmFjdGlvbnMgYWN0aXZlIHlldFxyXG4gICAgLy8tLS0+IHNob3VsZCBiZSBeIGJ1dHRvbiAnY2xpY2tlZCcuLi4gaWUgb25seSBpZiBpdCBjYW1lIGRvd24gc2luY2UgdGhlIGxhc3QgdXBkYXRlLlxyXG4gICAgLy9zbywgc2hvdWxkIHdlIHBhc3MgJ2J1dHRvbkNsaWNrTmFtZScgYXMgYW4gYXJndW1lbnQgKGFuZCB1c2UgYnV0dG9uTmFtZSBpZiBub3QgcHJvdmlkZWQpP1xyXG4gICAgLy8tLS0+Pj4+IFhYWDogaXMgdGhpcyBcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcLy8vLy8vLy8vLy8vIHdvcmtpbmcgd2l0aCBWaXZlIGNvbnRyb2xsZXJzPyBcclxuICAgIGlmKCBob3ZlciAmJiBpbnB1dFsgYnV0dG9uQ2xpY2tOYW1lIHx8IGJ1dHRvbk5hbWUgXSA9PT0gdHJ1ZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IHVuZGVmaW5lZCApe1xyXG5cclxuICAgICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3QsXHJcbiAgICAgICAgbG9ja2VkOiBmYWxzZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy9mbGFnIHRoYXQgd2hhdCB3ZSd2ZSBjbGlja2VkICppc24ndCogcGFydCBvZiBhIG1vZGFsIGVkaXRvclxyXG4gICAgICBpZiAoIWhpdE9iamVjdC51c2VyRGF0YS5wYXJ0T2ZNb2RhbCkgaW5wdXQuaGl0Tm9uTW9kYWwgPSB0cnVlO1xyXG5cclxuICAgICAgcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpO1xyXG4gICAgICBcclxuICAgICAgLy9lbWl0IGdsb2JhbCBjbGljayBldmVudCBhcyB3ZWxsLi4uXHJcbiAgICAgIGdsb2JhbEV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgICBldmVudHMuZW1pdCggZG93bk5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGlmKCBwYXlsb2FkLmxvY2tlZCApe1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IGludGVyYWN0aW9uO1xyXG4gICAgICAgIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID0gaW50ZXJhY3Rpb247XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgYW55QWN0aXZlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIHN0aWxsIGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gJiYgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID09PSBpbnRlcmFjdGlvbiApe1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggaG9sZE5hbWUsIHBheWxvYWQgKTtcclxuXHJcbiAgICAgIGFueVByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnb25Db250cm9sbGVySGVsZCcgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgYnV0dG9uIG5vdCBkb3duIGFuZCB0aGlzIGlzIHRoZSBhY3RpdmUgaW50ZXJhY3Rpb25cclxuICAgIGlmKCBpbnB1dFsgYnV0dG9uTmFtZSBdID09PSBmYWxzZSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9IHVuZGVmaW5lZDtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCB1cE5hbWUsIHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBoaXRPYmplY3QsXHJcbiAgICAgICAgcG9pbnQ6IGhpdFBvaW50LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcHJvbW90ZVpPcmRlcihoaXRPYmplY3QpIHtcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGhpdE9iamVjdCk7XHJcbiAgICB0b3BGb2xkZXIucHJvbW90ZVpPcmRlcigpO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaXNNYWluSG92ZXIoKXtcclxuXHJcbiAgICBsZXQgbm9NYWluSG92ZXIgPSB0cnVlO1xyXG4gICAgZm9yKCBsZXQgaT0wOyBpPGF2YWlsYWJsZUlucHV0cy5sZW5ndGg7IGkrKyApe1xyXG4gICAgICBpZiggYXZhaWxhYmxlSW5wdXRzWyBpIF0uaW50ZXJhY3Rpb24uaG92ZXIgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICAgIG5vTWFpbkhvdmVyID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiggbm9NYWluSG92ZXIgKXtcclxuICAgICAgcmV0dXJuIGFueUhvdmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBhdmFpbGFibGVJbnB1dHMuZmlsdGVyKCBmdW5jdGlvbiggaW5wdXQgKXtcclxuICAgICAgcmV0dXJuIGlucHV0LmludGVyYWN0aW9uLmhvdmVyID09PSBpbnRlcmFjdGlvbjtcclxuICAgIH0pLmxlbmd0aCA+IDAgKXtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0ge1xyXG4gICAgaG92ZXJpbmc6IGlzTWFpbkhvdmVyLFxyXG4gICAgcHJlc3Npbmc6ICgpPT5hbnlQcmVzc2luZyxcclxuICAgIHVwZGF0ZSxcclxuICAgIGV2ZW50cyxcclxuICAgIGhpdFZvbHVtZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBpbnRlcmFjdGlvbjtcclxufVxyXG5cclxuIiwiLyoqXHJcbiAqIFxyXG4gKiBUT0RPOiBjdXJzb3JzLi4uXHJcbiAqIE1heWJlIHNvbWV0aGluZyBsaWtlIG1vYmlsZSBpbnB1dCB3aGVyZSB5b3Ugc3dpdGNoIGJldHdlZW4gbGV0dGVycyAmIG51bWJlcnMgLyBzeW1ib2xzXHJcbiAqIFxyXG4gKiBTb21ldGhpbmcgbGlrZSBhIHNwbGl0IGtleWJvYXJkIGFsYSBodHRwczovL21lZGl1bS5jb20vYWFyb25uL3ZyLXRleHQtaW5wdXQtc3BsaXQta2V5Ym9hcmQtZTViZjNmZDg3YTRjXHJcbiAqIG1pZ2h0IGJlIGJldHRlci5cclxuICogXHJcbiAqIFBldGVyIFRvZGQgMjAxN1xyXG4gKi9cclxuXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQgZnJvbSAnLi9pbWFnZWJ1dHRvbmdyaWQnO1xyXG5pbXBvcnQgY3JlYXRlSW1hZ2VCdXR0b24gZnJvbSAnLi9pbWFnZWJ1dHRvbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZCggeyBcclxuICAgIGtleUxpc3RlbmVyLFxyXG4gICAgdGV4dENyZWF0b3JcclxufSA9IHt9KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0VHJhbnNmb3JtID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBncm91cC5hZGQob2Zmc2V0VHJhbnNmb3JtKTtcclxuXHJcbiAgICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG4gICAgZXZlbnRzLm9uKCdrZXlEb3duJywga2V5TGlzdGVuZXIpO1xyXG4gICAgXHJcbiAgICBjb25zdCBsb3dlckNoYXJzID0gXCIxMjM0NTY3ODkwLT1xd2VydHl1aW9wW11hc2RmZ2hqa2w7JyNcXFxcenhjdmJubSwuLyBcIi5zcGxpdCgnJyk7XHJcbiAgICBsZXQgb2JqZWN0cyA9IGxvd2VyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbG93ZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQobG93ZXJLZXlzKTtcclxuXHJcbiAgICBjb25zdCB1cHBlckNoYXJzID0gXCIhXFxcIsKjJCVeJiooKV8rUVdFUlRZVUlPUHt9QVNERkdISktMOkB+fFpYQ1ZCTk08Pj8gXCIuc3BsaXQoJycpO1xyXG4gICAgb2JqZWN0cyA9IHVwcGVyQ2hhcnMubWFwKGsgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgayksIHRleHQ6IGsgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdXBwZXJLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMTJ9KTtcclxuICAgIHVwcGVyS2V5cy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHVwcGVyS2V5cyk7XHJcblxyXG4gICAgbGV0IHNoaWZ0ID0gZmFsc2U7XHJcbiAgICBmdW5jdGlvbiBzaGlmdFRvZ2dsZSgpIHtcclxuICAgICAgICBzaGlmdCA9ICFzaGlmdDtcclxuICAgICAgICBsb3dlcktleXMudmlzaWJsZSA9ICFzaGlmdDtcclxuICAgICAgICB1cHBlcktleXMudmlzaWJsZSA9IHNoaWZ0O1xyXG4gICB9XHJcblxyXG4gICBjb25zdCBzcGFjZUJhciA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7IHRleHRDcmVhdG9yLCBjb2x1bW5zOiAxLCByb3dIZWlnaHQ6IDAuMSwgb2JqZWN0czogW1xyXG4gICAgICAge2Z1bmM6ICgpPT5ldmVudHMuZW1pdCgna2V5RG93bicsICcgJyksIHRleHQ6ICdzcGFjZSd9XHJcbiAgICBdfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwYWNlQmFyKTtcclxuICAgIHZhciB5ID0gc3BhY2VCYXIucG9zaXRpb24ueSA9IC0wLjUgKiAobG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nKTtcclxuICAgIFxyXG4gICAgb2JqZWN0cyA9IFtcclxuICAgICAgICB7IHRleHQ6IFwic2hpZnRcIiwgZnVuYzogc2hpZnRUb2dnbGUgfSxcclxuICAgICAgICB7IHRleHQ6IFwiYmFja3NwYWNlXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcYicpIH0sXHJcbiAgICAgICAgeyB0ZXh0OiBcImVudGVyXCIsIGZ1bmM6ICgpID0+IGV2ZW50cy5lbWl0KCdrZXlEb3duJywgJ1xcbicpIH1cclxuICAgIF07XHJcbiAgICBjb25zdCBzcGVjaWFsS2V5cyA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IDMsIHJvd0hlaWdodDogMC4xfSk7XHJcbiAgICBvZmZzZXRUcmFuc2Zvcm0uYWRkKHNwZWNpYWxLZXlzKTtcclxuICAgIHNwZWNpYWxLZXlzLnBvc2l0aW9uLnkgPSB5LTAuNSAqIChzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZyk7XHJcbiAgICBncm91cC5zcGFjaW5nID0gbG93ZXJLZXlzLnNwYWNpbmcgKyBzcGFjZUJhci5zcGFjaW5nICsgc3BlY2lhbEtleXMuc3BhY2luZztcclxuICAgIC8vdGhpcyBsb29rcyByaWdodCwgbXVzdCBhZG1pdCBJIGhhdmVuJ3QgdGhvdWdodCB0aHJvdWdoIGV4YWN0bHkgd2h5IGl0IHNob3VsZCBiZS5cclxuICAgIG9mZnNldFRyYW5zZm9ybS5wb3NpdGlvbi55ID0gc3BlY2lhbEtleXMuc3BhY2luZztcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3JvdXAsICdoaXRzY2FuJywge1xyXG4gICAgICAgIGdldDogKCkgPT4gW1xyXG4gICAgICAgICAgICBzcGVjaWFsS2V5cy5oaXRzY2FuLCBzcGFjZUJhci5oaXRzY2FuLCBzaGlmdCA/IHVwcGVyS2V5cy5oaXRzY2FuIDogbG93ZXJLZXlzLmhpdHNjYW5cclxuICAgICAgICBdLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSlcclxuICAgIH0pO1xyXG5cclxuICAgIHNwYWNlQmFyLmZvbGRlciA9IHVwcGVyS2V5cy5mb2xkZXIgPSBsb3dlcktleXMuZm9sZGVyID0gc3BlY2lhbEtleXMuZm9sZGVyID0gZ3JvdXA7XHJcbiAgICBncm91cC51cGRhdGVDb250cm9sID0gKGlucHV0cykgPT4ge1xyXG4gICAgICAgIHNwZWNpYWxLZXlzLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICBsb3dlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHNwYWNlQmFyLnVwZGF0ZUNvbnRyb2woaW5wdXRzKTtcclxuICAgICAgICB1cHBlcktleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWxpZ25MZWZ0KCBvYmogKXtcclxuICBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuTWVzaCApe1xyXG4gICAgb2JqLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4LnggLSBvYmouZ2VvbWV0cnkuYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmouZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZWxzZSBpZiggb2JqIGluc3RhbmNlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnkgKXtcclxuICAgIG9iai5jb21wdXRlQm91bmRpbmdCb3goKTtcclxuICAgIGNvbnN0IHdpZHRoID0gb2JqLmJvdW5kaW5nQm94Lm1heC54IC0gb2JqLmJvdW5kaW5nQm94Lm1heC55O1xyXG4gICAgb2JqLnRyYW5zbGF0ZSggd2lkdGgsIDAsIDAgKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCB1bmlxdWVNYXRlcmlhbCApe1xyXG4gIGNvbnN0IG1hdGVyaWFsID0gdW5pcXVlTWF0ZXJpYWwgPyBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4ZmZmZmZmfSkgOiBTaGFyZWRNYXRlcmlhbHMuUEFORUw7XHJcbiAgY29uc3QgcGFuZWwgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApLCBtYXRlcmlhbCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggd2lkdGggKiAwLjUsIDAsIDAgKTtcclxuXHJcbiAgaWYoIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0JBQ0sgKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuXHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxuXHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiByZXNpemVQYW5lbChwYW5lbCwgd2lkdGgsIGhlaWdodCwgZGVwdGgpIHtcclxuICBwYW5lbC5nZW9tZXRyeS5zY2FsZSh3aWR0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGgsIGhlaWdodC9wYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0LCBkZXB0aC9wYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGgpO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCA9IHdpZHRoO1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudERlcHRoID0gZGVwdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgY29sb3IgKXtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENPTlRST0xMRVJfSURfV0lEVEgsIGhlaWdodCwgQ09OVFJPTExFUl9JRF9ERVBUSCApLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBwYW5lbC5nZW9tZXRyeS50cmFuc2xhdGUoIENPTlRST0xMRVJfSURfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggcGFuZWwuZ2VvbWV0cnksIGNvbG9yICk7XHJcbiAgcmV0dXJuIHBhbmVsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRG93bkFycm93KCl7XHJcbiAgY29uc3QgdyA9IDAuMDA5NjtcclxuICBjb25zdCBoID0gMC4wMTY7XHJcbiAgY29uc3Qgc2ggPSBuZXcgVEhSRUUuU2hhcGUoKTtcclxuICBzaC5tb3ZlVG8oMCwwKTtcclxuICBzaC5saW5lVG8oLXcsaCk7XHJcbiAgc2gubGluZVRvKHcsaCk7XHJcbiAgc2gubGluZVRvKDAsMCk7XHJcblxyXG4gIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KCBzaCApO1xyXG4gIGdlby50cmFuc2xhdGUoIDAsIC1oICogMC41LCAwICk7XHJcblxyXG4gIHJldHVybiBuZXcgVEhSRUUuTWVzaCggZ2VvLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMX1dJRFRIID0gMS4wO1xyXG5leHBvcnQgY29uc3QgUEFORUxfSEVJR0hUID0gMC4wODtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX0RFUFRIID0gMC4wMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX1NQQUNJTkcgPSAwOy8vLjAwMTtcclxuZXhwb3J0IGNvbnN0IFBBTkVMX01BUkdJTiA9IDAuMDE1O1xyXG5leHBvcnQgY29uc3QgUEFORUxfTEFCRUxfVEVYVF9NQVJHSU4gPSAwLjA2O1xyXG5leHBvcnQgY29uc3QgUEFORUxfVkFMVUVfVEVYVF9NQVJHSU4gPSAwLjAyO1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9XSURUSCA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX0RFUFRIID0gMC4wMDE7XHJcbmV4cG9ydCBjb25zdCBCVVRUT05fREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgRk9MREVSX1dJRFRIID0gMS4wMjY7XHJcbmV4cG9ydCBjb25zdCBTVUJGT0xERVJfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfSEVJR0hUID0gMC4wOTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9HUkFCX0hFSUdIVCA9IDAuMDUxMjtcclxuZXhwb3J0IGNvbnN0IEJPUkRFUl9USElDS05FU1MgPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfU0laRSA9IDAuMDU7XHJcbmV4cG9ydCBjb25zdCBURVhUX1NDQUxFID0gMC4wMDAyNDtcclxuZXhwb3J0IGNvbnN0IEdSSURfQlVUVE9OX01BUkdJTiA9IDAuMDE7IiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gPSB7fSApe1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBwYW5lbCApO1xyXG5cclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvbkdyaXBwZWQnLCBoYW5kbGVPbkdyaXAgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VHcmlwJywgaGFuZGxlT25HcmlwUmVsZWFzZSApO1xyXG5cclxuICAvL2xldCBvbGRQYXJlbnQ7XHJcbiAgbGV0IG9sZFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBsZXQgb2xkUm90YXRpb24gPSBuZXcgVEhSRUUuRXVsZXIoKTtcclxuXHJcbiAgY29uc3Qgcm90YXRpb25Hcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIHJvdGF0aW9uR3JvdXAuc2NhbGUuc2V0KCAwLjMsIDAuMywgMC4zICk7XHJcbiAgcm90YXRpb25Hcm91cC5wb3NpdGlvbi5zZXQoIC0wLjAxNSwgMC4wMTUsIDAuMCApO1xyXG5cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwKCBwICl7XHJcblxyXG4gICAgY29uc3QgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIG9sZFBvc2l0aW9uLmNvcHkoIGZvbGRlci5wb3NpdGlvbiApO1xyXG4gICAgb2xkUm90YXRpb24uY29weSggZm9sZGVyLnJvdGF0aW9uICk7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5zZXQoIDAsMCwwICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24ueCA9IC1NYXRoLlBJICogMC41O1xyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG5cclxuICAgIHJvdGF0aW9uR3JvdXAuYWRkKCBmb2xkZXIgKTtcclxuXHJcbiAgICBpbnB1dE9iamVjdC5hZGQoIHJvdGF0aW9uR3JvdXAgKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgZm9sZGVyLmJlaW5nTW92ZWQgPSB0cnVlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGlubmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uR3JpcFJlbGVhc2UoIHsgaW5wdXRPYmplY3QsIGlucHV0IH09e30gKXtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIub2xkUGFyZW50ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgIGZvbGRlci5vbGRQYXJlbnQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgZm9sZGVyLnBvc2l0aW9uLmNvcHkoIG9sZFBvc2l0aW9uICk7XHJcbiAgICBmb2xkZXIucm90YXRpb24uY29weSggb2xkUm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAncGluUmVsZWFzZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59IiwiLyoqXHJcbiAqIFBKVDogVGhpcyBpcyBhIHZhcmlhdGlvbiBvbiBzZGZzaGFkZXIgZnJvbSBibWZvbnQsIHdoaWNoIHNob3VsZCBKdXN0IFdvcmsgd2l0aCBsb2dhcml0aG1pYyBkZXB0aCBidWZmZXJzLlxyXG4gKiBJdCBzaG91bGQgYWxzbyBhbGxvdyBzb21lIG90aGVyIGFzcGVjdHMgb2YgVEhSRUUgcmVuZGVyaW5nIHRvIGJlIGluY29ycG9yYXRlZCwgbGlrZSBmb2csIGNsaXBwaW5nIHBsYW5lcy4uLlxyXG4gKiBFbnZpcm9ubWVudCBtYXBzIGFuZCB2YXJpb3VzIG90aGVyIGJpdHMgZnJvbSBNZXNoQmFzaWNNYXRlcmlhbCBhcmUgcmVtb3ZlZC5cclxuICogQXQgdGltZSBvZiB3cml0aW5nLCB0aGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MsIGFuZCBzb21ld2hhdCBtb3JlIGJsb2F0ZWQgdGhhbiBpdCBuZWVkcyB0byBiZS5cclxuICogVGhlIHNoYWRlciBjb2RlIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBTaGFkZXJNYXRlcmlhbCByYXRoZXIgdGhhbiBSYXdTaGFkZXJNYXRlcmlhbC5cclxuICovXHJcbi8vIGltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XHJcblxyXG4vKipcclxuICogc3RhcnRpbmcgZnJvbSBUSFJFRSBtZXNoYmFzaWMgc2hhZGVycywgcHJ1bmluZyAvIG1vZGlmeWluZy4uLlxyXG4gKi9cclxuY29uc3QgbWVzaGJhc2ljX3ZlcnQgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4jaW5jbHVkZSA8dXZfcGFyc192ZXJ0ZXg+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfdmVydGV4PlxyXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc192ZXJ0ZXg+XHJcblxyXG52b2lkIG1haW4oKSB7IFxyXG4gIHZVdiA9IHV2O1xyXG5cdCNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDxiZWdpbl92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPHByb2plY3RfdmVydGV4PlxyXG5cdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl92ZXJ0ZXg+XHJcblxyXG5cdCNpbmNsdWRlIDx3b3JsZHBvc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc192ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGZvZ192ZXJ0ZXg+XHJcbn1cclxuYDtcclxuXHJcbnZhciAvKnNqcHQgd2FzIGNvbnN0ICovIG1lc2hiYXNpY19mcmFnID0gYFxyXG4jZGVmaW5lIFVTRV9NQVBcclxuI2RlZmluZSBVU0VfVVZcclxudW5pZm9ybSB2ZWMzIGNvbG9yO1xyXG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XHJcblxyXG4jaW5jbHVkZSA8Y29tbW9uPlxyXG4vLyNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Zm9nX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XHJcblxyXG4vLy8vL1xyXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcclxuICAgIC8vIFdlIG5vdyBhc3N1bWUgV2ViR0wyIGFuZCBzbyB0aGUgZGVyaXZhdGl2ZXMgYXJlIGF2YWlsYWJsZSwgXHJcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXHJcbiAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xyXG4gICAgcmV0dXJuIHNtb290aHN0ZXAoMC41IC0gYWZ3aWR0aCwgMC41ICsgYWZ3aWR0aCwgdmFsdWUpO1xyXG59XHJcbi8vLy9cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuXHJcblx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cclxuXHJcbiAgICAvLy9cclxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcclxuICAgIFxyXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcclxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkgKiBhbHBoYSk7XHJcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XHJcbiAgICAvLy9cclxuXHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX2ZyYWdtZW50PlxyXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cclxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cclxuXHQjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XHJcbn1cclxuYDtcclxuXHJcbmlmICgrVEhSRUUuUkVWSVNJT04gPiAxNTEpIHsgLy8gc2pwdCBwYXRjaFxyXG4gIG1lc2hiYXNpY19mcmFnID0gJ1xcbiNkZWZpbmUgVVNFX01BUFxcbiNkZWZpbmUgVVNFX1VWXFxudW5pZm9ybSB2ZWMzIGNvbG9yO1xcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcXG5cXG4jaW5jbHVkZSA8Y29tbW9uPlxcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPHV2X3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPG1hcF9wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8bG9nZGVwdGhidWZfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3BhcnNfZnJhZ21lbnQ+XFxuXFxuLy8vLy9cXG5mbG9hdCBhYXN0ZXAoZmxvYXQgdmFsdWUpIHtcXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLCBcXG4gICAgLy8gc28gYWZ3aWR0aCBkZXBlbmRzIG9uIHNjYWxlIG9mIGd1aVxcbiAgICBmbG9hdCBhZndpZHRoID0gbGVuZ3RoKHZlYzIoZEZkeCh2YWx1ZSksIGRGZHkodmFsdWUpKSkgKiAwLjcwNzEwNjc4MTE4NjU0NzU3O1xcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XFxufVxcbi8vLy9cXG5cXG52b2lkIG1haW4oKSB7XFxuXFxuXFx0I2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19mcmFnbWVudD5cXG5cXG4gICAgLy8vXFxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNCggY29sb3IsIG9wYWNpdHkgKTtcXG4gICAgXFxuICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQobWFwLCB2VXYpO1xcbiAgICBmbG9hdCBhbHBoYSA9IGFhc3RlcCh0ZXhDb2xvci5hKTtcXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcXG4gICAgaWYgKGdsX0ZyYWdDb2xvci5hIDwgMC4wMDAxKSBkaXNjYXJkO1xcbiAgICAvLy9cXG5cXG5cXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XFxuICAgIC8vWFhYOiBiaWcgY2h1bmsgcmVtb3ZlZCBmcm9tIG9yaWdpbmFsIG1lc2hiYXNpY19mcmFnIGhlcmUuXFxuICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cXG5cXHQjaW5jbHVkZSA8Y29sb3JzcGFjZV9mcmFnbWVudD5cXG5cXHQjaW5jbHVkZSA8Zm9nX2ZyYWdtZW50Plxcbn1cXG4nO1xyXG4gIGNvbnNvbGUud2FybignY29sb3JzcGFjZV9mcmFnbWVudCB1c2VkJyk7XHJcbiAgfVxyXG4gIFxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVTREZTaGFkZXIgKG9wdCkge1xyXG4gIG9wdCA9IG9wdCB8fCB7fTtcclxuICB2YXIgb3BhY2l0eSA9IHR5cGVvZiBvcHQub3BhY2l0eSA9PT0gJ251bWJlcicgPyBvcHQub3BhY2l0eSA6IDE7XHJcbiAgLy8vLS0gaGFyZGNvZGVkIGluIHNoYWRlciBjb2RlLCBndWl2ciBuZXZlciBwYXNzZWQgdGhlc2UgaW4gb3B0IC0tXHJcbiAgLy92YXIgYWxwaGFUZXN0ID0gdHlwZW9mIG9wdC5hbHBoYVRlc3QgPT09ICdudW1iZXInID8gb3B0LmFscGhhVGVzdCA6IDAuMDAwMVxyXG4gIC8vdmFyIHByZWNpc2lvbiA9IG9wdC5wcmVjaXNpb24gfHwgJ2hpZ2hwJ1xyXG4gIHZhciBjb2xvciA9IG9wdC5jb2xvcjtcclxuICB2YXIgbWFwID0gb3B0Lm1hcDtcclxuICBcclxuICBvcHQuZXh0ZW5zaW9ucyA9IG9wdC5leHRlbnNpb25zIHx8IHt9O1xyXG4gIG9wdC5leHRlbnNpb25zLmRlcml2YXRpdmVzID0gdHJ1ZTsgLy9uYiwgZmFsc2UgZGVmYXVsdHMgZm9yIGZyYWdEZXB0aCwgZHJhd0J1ZmZlcnMsIHNoYWRlclRleHR1cmVMT0Qgd2lsbCBubyBsb25nZXIgYmUgdGhlcmUuXHJcbiAgb3B0Lm5hbWUgPSBcIlNERiB0ZXh0IG1hdGVyaWFsXCI7XHJcblxyXG4gIC8vIHJlbW92ZSB0byBzYXRpc2Z5IHI3M1xyXG4gIGRlbGV0ZSBvcHQubWFwO1xyXG4gIGRlbGV0ZSBvcHQuY29sb3I7XHJcbiAgZGVsZXRlIG9wdC5wcmVjaXNpb247XHJcbiAgZGVsZXRlIG9wdC5vcGFjaXR5O1xyXG5cclxuICByZXR1cm4gYXNzaWduKHtcclxuICAgIHVuaWZvcm1zOiB7XHJcbiAgICAgIG9wYWNpdHk6IHsgdHlwZTogJ2YnLCB2YWx1ZTogb3BhY2l0eSB9LFxyXG4gICAgICBtYXA6IHsgdHlwZTogJ3QnLCB2YWx1ZTogbWFwIHx8IG5ldyBUSFJFRS5UZXh0dXJlKCkgfSxcclxuICAgICAgY29sb3I6IHsgdHlwZTogJ2MnLCB2YWx1ZTogbmV3IFRIUkVFLkNvbG9yKGNvbG9yKSB9XHJcbiAgICB9LFxyXG4gICAgdmVydGV4U2hhZGVyOiBtZXNoYmFzaWNfdmVydCxcclxuICAgIGZyYWdtZW50U2hhZGVyOiBtZXNoYmFzaWNfZnJhZ1xyXG4gIH0sIG9wdCk7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBTREZTaGFkZXIgZnJvbSAnLi9zZGZzaGFkZXJfbG9nZGVwdGgnO1xyXG5pbXBvcnQgY3JlYXRlR2VvbWV0cnkgZnJvbSAndGhyZWUtYm1mb250LXRleHQnO1xyXG5pbXBvcnQgcGFyc2VBU0NJSSBmcm9tICdwYXJzZS1ibWZvbnQtYXNjaWknO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuaW1wb3J0ICogYXMgRm9udCBmcm9tICcuL2ZvbnQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApe1xyXG5cclxuICBjb25zdCBpbWFnZSA9IEZvbnQuaW1hZ2UoKTtcclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoaW1hZ2UpOyB0ZXh0dXJlLm5hbWUgPSAnc2RmRm9udFRleHR1cmUnXHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgLy9OQjo6OiBzb21ld2hhdCBleHBlcmltZW50YWwgcmVwbGFjZW1lbnQgb2YgUmF3U2hhZGVyIGNvZGUgZnJvbSBibWZvbnQgd2l0aCB2YXJpYXRpb24gb2YgTWVzaEJhc2ljIHNoYWRlclxyXG4gIC8vdGhpcyBzaG91bGQgYWxsb3cgZm9yIGxvZ2RlcHRoLCBmb2cgaXMgYWxzbyBhbnRpY2lwYXRlZCB0byB3b3JrIHJlYXNvbmFibHkgd2VsbC4uLiBcclxuICAvL3RvbmVtYXBwaW5nIGV0YyBtYXkgY29uY2VpdmFibHkgYmUgaW1wcm92ZWQuLi4gWU1NVi5cclxuICBsZXQgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoU0RGU2hhZGVyKHtcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIGNvbG9yOiBjb2xvcixcclxuICAgIG1hcDogdGV4dHVyZSxcclxuICAgIHR5cGU6ICdTREYgVGV4dCdcclxuICB9KSk7XHJcbiAgcmV0dXJuIG1hdGVyaWFsO1xyXG59XHJcblxyXG5jb25zdCB0ZXh0U2NhbGUgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdG9yKCl7XHJcblxyXG4gIGNvbnN0IGZvbnQgPSBwYXJzZUFTQ0lJKCBGb250LmZudCgpICk7XHJcblxyXG4gIGNvbnN0IGNvbG9yTWF0ZXJpYWxzID0ge307XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IgPSAweGZmZmZmZiwgc2NhbGUgPSAxLjAsIHdpZHRoLCBoZWlnaHQgKXtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IGNyZWF0ZUdlb21ldHJ5KHtcclxuICAgICAgdGV4dDogc3RyLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICBmbGlwWTogdHJ1ZSxcclxuICAgICAgZm9udFxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IGxheW91dCA9IGdlb21ldHJ5LmxheW91dDtcclxuXHJcbiAgICBsZXQgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXTtcclxuICAgIGlmKCBtYXRlcmlhbCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIG1hdGVyaWFsID0gY29sb3JNYXRlcmlhbHNbIGNvbG9yIF0gPSBjcmVhdGVNYXRlcmlhbCggY29sb3IgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICBtZXNoLnNjYWxlLm11bHRpcGx5KCBuZXcgVEhSRUUuVmVjdG9yMygxLC0xLDEpICk7XHJcblxyXG4gICAgY29uc3QgZmluYWxTY2FsZSA9IHNjYWxlICogdGV4dFNjYWxlO1xyXG5cclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHlTY2FsYXIoIGZpbmFsU2NhbGUgKTtcclxuXHJcbiAgICBtZXNoLnBvc2l0aW9uLnkgPSBsYXlvdXQuaGVpZ2h0ICogMC41ICogZmluYWxTY2FsZTtcclxuXHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIHN0ciwgeyBjb2xvcj0weGZmZmZmZiwgc2NhbGU9MS4wIH0gPSB7fSApe1xyXG4gICAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuXHJcbiAgICBsZXQgbWVzaCA9IGNyZWF0ZVRleHQoIHN0ciwgZm9udCwgY29sb3IsIHNjYWxlICk7XHJcbiAgICBncm91cC5hZGQoIG1lc2ggKTtcclxuICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgZ3JvdXAuY29tcHV0ZVdpZHRoID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZ3JvdXAubGF5b3V0LndpZHRoICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuICAgIGdyb3VwLmNvbXB1dGVIZWlnaHQgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQuaGVpZ2h0ICogc2NhbGUgKiBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5jb25zdHJhaW5Cb3VuZHMgPSAodywgaCkgPT4ge1xyXG4gICAgICBncm91cC5yZW1vdmUobWVzaCk7XHJcbiAgICAgIGNvbnN0IHMgPSBMYXlvdXQuVEVYVF9TQ0FMRTtcclxuICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgY29uc3QgaEZhY3RvciA9IG1lc2guZ2VvbWV0cnkubGF5b3V0LmhlaWdodCpzL2g7XHJcbiAgICAgIGlmIChoRmFjdG9yID4gMSkge1xyXG4gICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgMC45NSogc3RyLmxlbmd0aC9oRmFjdG9yKSArICcuLi4nO1xyXG4gICAgICAgIG1lc2ggPSBjcmVhdGVUZXh0KHN0ciwgZm9udCwgY29sb3IsIHNjYWxlLCB3L3MsIGgvcyk7XHJcbiAgICAgIH1cclxuICAgICAgZ3JvdXAuYWRkKG1lc2gpO1xyXG4gICAgICBncm91cC5sYXlvdXQgPSBtZXNoLmdlb21ldHJ5LmxheW91dDtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC51cGRhdGVMYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgaWYgKG1lc2gudXNlckRhdGEubGFiZWxTdHJpbmcgIT09IHN0cikge1xyXG4gICAgICAgIG1lc2guZ2VvbWV0cnkudXBkYXRlKCBzdHIgKTtcclxuICAgICAgICBtZXNoLnVzZXJEYXRhLmxhYmVsU3RyaW5nID0gc3RyO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBjcmVhdGUsXHJcbiAgICBnZXRNYXRlcmlhbDogKCk9PiBtYXRlcmlhbCAvL1hYWDogdGhpcyBkYXRlcyBiYWNrIHF1aXRlIGEgbG9uZyB3YXksIG5vdCBzdXJlIGl0IHdhcyBldmVyIHJpZ2h0LlxyXG4gIH1cclxuXHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQU5FTCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHhmZmZmZmYsIHZlcnRleENvbG9yczogdHJ1ZSB9ICk7XHJcbmV4cG9ydCBjb25zdCBMT0NBVE9SID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbmV4cG9ydCBjb25zdCBGT0xERVIgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MDAwMDAwIH0gKTtcclxuZXhwb3J0IGNvbnN0IFRPT0xUSVAgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoIHsgY29sb3I6IDB4MjA1MDgwLCB0cmFuc3BhcmVudDogZmFsc2UsIG9wYWNpdHk6IDAuOCB9ICk7XHJcbiIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNsaWRlcigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSAwLjAsXHJcbiAgbWluID0gMC4wLCBtYXggPSAxLjAsXHJcbiAgc3RlcCA9IDAuMSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBpbml0aWFsSGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcblxyXG4gIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgYWxwaGE6IDEuMCxcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBzdGVwOiBzdGVwLFxyXG4gICAgdXNlU3RlcDogdHJ1ZSxcclxuICAgIHByZWNpc2lvbjogMSxcclxuICAgIGxpc3RlbjogZmFsc2UsXHJcbiAgICBtaW46IG1pbixcclxuICAgIG1heDogbWF4LFxyXG4gICAgb25DaGFuZ2VkQ0I6IHVuZGVmaW5lZCxcclxuICAgIG9uRmluaXNoZWRDaGFuZ2U6IHVuZGVmaW5lZCxcclxuICAgIHByZXNzaW5nOiBmYWxzZVxyXG4gIH07XHJcbiAgXHJcbiAgc3RhdGUuc3RlcCA9IGdldEltcGxpZWRTdGVwKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICBzdGF0ZS5wcmVjaXNpb24gPSBudW1EZWNpbWFscyggc3RhdGUuc3RlcCApO1xyXG4gIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIFxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwic2xpZGVyXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG4gIFxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lICk7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTEFCRUxfVEVYVF9NQVJHSU47XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueSA9IC0wLjAzO1xyXG5cclxuICBsZXQgcGFuZWw7XHJcbiAgZ3JvdXAuc2V0SGVpZ2h0ID0gaGVpZ2h0ID0+IHtcclxuICAgIGlmIChwYW5lbCkgZ3JvdXAucmVtb3ZlKCBwYW5lbCApO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0IFNMSURFUl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICAgIGNvbnN0IFNMSURFUl9IRUlHSFQgPSBoZWlnaHQgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0RFUFRIID0gZGVwdGg7XHJcblxyXG4gICAgLy8gIGZpbGxlZCB2b2x1bWVcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIFNMSURFUl9XSURUSCwgU0xJREVSX0hFSUdIVCwgU0xJREVSX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShTTElERVJfV0lEVEgqMC41LDAsMCk7XHJcbiAgICAvLyBMYXlvdXQuYWxpZ25MZWZ0KCByZWN0ICk7XHJcblxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLm5hbWUgPSAnaGl0c2NhblZvbHVtZSc7XHJcblxyXG4gICAgLy8gIHNsaWRlckJHIHZvbHVtZVxyXG4gICAgY29uc3Qgc2xpZGVyQkcgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICAgIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBzbGlkZXJCRy5nZW9tZXRyeSwgQ29sb3JzLlNMSURFUl9CRyApO1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgc2xpZGVyQkcucG9zaXRpb24ueCA9IFNMSURFUl9XSURUSCArIExheW91dC5QQU5FTF9NQVJHSU47XHJcblxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkRFRkFVTFRfQ09MT1IgfSk7XHJcbiAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgZmlsbGVkVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICBjb25zdCBlbmRMb2NhdG9yID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggMC4wNSwgMC4wNSwgMC4wNSwgMSwgMSwgMSApLCBTaGFyZWRNYXRlcmlhbHMuTE9DQVRPUiApO1xyXG4gICAgZW5kTG9jYXRvci5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIO1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGVuZExvY2F0b3IgKTtcclxuICAgIGVuZExvY2F0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgIHZhbHVlTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9WQUxVRV9URVhUX01BUkdJTiArIHdpZHRoICogMC41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGgqMi41O1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDMyNTtcclxuXHJcbiAgICBjb25zdCBjb250cm9sbGVySUQgPSBMYXlvdXQuY3JlYXRlQ29udHJvbGxlcklEQm94KCBoZWlnaHQsIENvbG9ycy5DT05UUk9MTEVSX0lEX1NMSURFUiApO1xyXG4gICAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIHBhbmVsLm5hbWUgPSAncGFuZWwnO1xyXG4gICAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIHNsaWRlckJHLCB2YWx1ZUxhYmVsLCBjb250cm9sbGVySUQgKTtcclxuXHJcbiAgICBncm91cC5hZGQoIHBhbmVsIClcclxuXHJcbiAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgdXBkYXRlU2xpZGVyKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsdWVMYWJlbCggdmFsdWUgKXtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICB2YWx1ZUxhYmVsLnVwZGF0ZUxhYmVsKCByb3VuZFRvRGVjaW1hbCggc3RhdGUudmFsdWUsIHN0YXRlLnByZWNpc2lvbiApLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHN0YXRlLnZhbHVlLnRvU3RyaW5nKCkgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgICAgaWYoIHN0YXRlLnByZXNzaW5nICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSU5URVJBQ1RJT05fQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0NPTE9SICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVTbGlkZXIoKXtcclxuICAgICAgZmlsbGVkVm9sdW1lLnNjYWxlLnggPVxyXG4gICAgICAgIE1hdGgubWluKFxyXG4gICAgICAgICAgTWF0aC5tYXgoIGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKSAqIHdpZHRoLCAwLjAwMDAwMSApLFxyXG4gICAgICAgICAgd2lkdGhcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9iamVjdCggdmFsdWUgKXtcclxuICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBhbHBoYSApe1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggYWxwaGEgKTtcclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRWYWx1ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICAgIGlmKCBzdGF0ZS51c2VTdGVwICl7XHJcbiAgICAgICAgc3RhdGUudmFsdWUgPSBnZXRTdGVwcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5zdGVwICk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhdGUudmFsdWUgPSBnZXRDbGFtcGVkVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpe1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbU9iamVjdCgpO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgc3RhdGUuYWxwaGEgPSBnZXRDbGFtcGVkQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0VmFsdWVGcm9tT2JqZWN0KCl7XHJcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCBvYmplY3RbIHByb3BlcnR5TmFtZSBdICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgICAgc3RhdGUub25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5zdGVwID0gZnVuY3Rpb24oIHN0ZXAgKXtcclxuICAgICAgc3RhdGUuc3RlcCA9IHN0ZXA7XHJcbiAgICAgIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwIClcclxuICAgICAgc3RhdGUudXNlU3RlcCA9IHRydWU7XHJcblxyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHJldHVybiBncm91cDtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubGlzdGVuID0gZnVuY3Rpb24oKXtcclxuICAgICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVQcmVzcyApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVIb2xkICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblJlbGVhc2VkJywgaGFuZGxlUmVsZWFzZSApO1xyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZVByZXNzKCBwICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IHRydWU7XHJcbiAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVIb2xkKCB7IHBvaW50IH0gPSB7fSApe1xyXG4gICAgICBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIGZpbGxlZFZvbHVtZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICBlbmRMb2NhdG9yLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcblxyXG4gICAgICBjb25zdCBhID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGZpbGxlZFZvbHVtZS5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBjb25zdCBiID0gbmV3IFRIUkVFLlZlY3RvcjMoKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGVuZExvY2F0b3IubWF0cml4V29ybGQgKTtcclxuXHJcbiAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBzdGF0ZS52YWx1ZTtcclxuXHJcbiAgICAgIHVwZGF0ZVN0YXRlRnJvbUFscGhhKCBnZXRQb2ludEFscGhhKCBwb2ludCwge2EsYn0gKSApO1xyXG4gICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB1cGRhdGVTbGlkZXIoICk7XHJcbiAgICAgIHVwZGF0ZU9iamVjdCggc3RhdGUudmFsdWUgKTtcclxuXHJcbiAgICAgIGlmKCBwcmV2aW91c1ZhbHVlICE9PSBzdGF0ZS52YWx1ZSAmJiBzdGF0ZS5vbkNoYW5nZWRDQiApe1xyXG4gICAgICAgIHN0YXRlLm9uQ2hhbmdlZENCKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUmVsZWFzZSgpe1xyXG4gICAgICBzdGF0ZS5wcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb247XHJcbiAgICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBjb25zdCBwYWxldHRlSW50ZXJhY3Rpb24gPSBQYWxldHRlLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgICBwYWxldHRlSW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuXHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBsaXN0ZW5VcGRhdGUoKTtcclxuICAgICAgICB1cGRhdGVWYWx1ZUxhYmVsKCBzdGF0ZS52YWx1ZSApO1xyXG4gICAgICAgIHVwZGF0ZVNsaWRlcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5taW4gPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5taW4gPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5tYXggPSBmdW5jdGlvbiggbSApe1xyXG4gICAgICBzdGF0ZS5tYXggPSBtO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldEFscGhhRnJvbVZhbHVlKCBzdGF0ZS52YWx1ZSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuICAgIGlmKGdyb3VwLmZvbGRlcikgZ3JvdXAuZm9sZGVyLnJlcXVlc3RMYXlvdXQoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9IC8vIC9zZXRIZWlnaHRcclxuICBncm91cC5zZXRIZWlnaHQoIGluaXRpYWxIZWlnaHQgKTtcclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IHRhID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgdGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0VG9BID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuY29uc3QgYVRvQiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb2ludEFscGhhKCBwb2ludCwgc2VnbWVudCApe1xyXG4gIHRhLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICk7XHJcbiAgdGIuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBjb25zdCBwcm9qZWN0ZWQgPSB0Yi5wcm9qZWN0T25WZWN0b3IoIHRhICk7XHJcblxyXG4gIHRUb0EuY29weSggcG9pbnQgKS5zdWIoIHNlZ21lbnQuYSApO1xyXG5cclxuICBhVG9CLmNvcHkoIHNlZ21lbnQuYiApLnN1Yiggc2VnbWVudC5hICkubm9ybWFsaXplKCk7XHJcblxyXG4gIGNvbnN0IHNpZGUgPSB0VG9BLm5vcm1hbGl6ZSgpLmRvdCggYVRvQiApID49IDAgPyAxIDogLTE7XHJcblxyXG4gIGNvbnN0IGxlbmd0aCA9IHNlZ21lbnQuYS5kaXN0YW5jZVRvKCBzZWdtZW50LmIgKSAqIHNpZGU7XHJcblxyXG4gIGxldCBhbHBoYSA9IHByb2plY3RlZC5sZW5ndGgoKSAvIGxlbmd0aDtcclxuICBpZiggYWxwaGEgPiAxLjAgKXtcclxuICAgIGFscGhhID0gMS4wO1xyXG4gIH1cclxuICBpZiggYWxwaGEgPCAwLjAgKXtcclxuICAgIGFscGhhID0gMC4wO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxlcnAobWluLCBtYXgsIHZhbHVlKSB7XHJcbiAgcmV0dXJuICgxLXZhbHVlKSptaW4gKyB2YWx1ZSptYXg7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcF9yYW5nZSh2YWx1ZSwgbG93MSwgaGlnaDEsIGxvdzIsIGhpZ2gyKSB7XHJcbiAgICByZXR1cm4gbG93MiArIChoaWdoMiAtIGxvdzIpICogKHZhbHVlIC0gbG93MSkgLyAoaGlnaDEgLSBsb3cxKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApe1xyXG4gIGlmKCBhbHBoYSA+IDEgKXtcclxuICAgIHJldHVybiAxXHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAgKXtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICByZXR1cm4gYWxwaGE7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldENsYW1wZWRWYWx1ZSggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgaWYoIHZhbHVlIDwgbWluICl7XHJcbiAgICByZXR1cm4gbWluO1xyXG4gIH1cclxuICBpZiggdmFsdWUgPiBtYXggKXtcclxuICAgIHJldHVybiBtYXg7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0SW1wbGllZFN0ZXAoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIC8vUEpUOiB3aGF0IHdvdWxkIHdlIGxpa2Ugc3RlcCB0byBsb29rIGxpa2U/XHJcbiAgLy9Tb21ldGhpbmcgdGhhdCBoYXMgYWJvdXQgdGhlIG9yZGVyIG9mIG1hZ25pdHVkZSwgYW5kIGxvb2tzIG5pY2UgaW4gYmFzZSAxMD9cclxuICBjb25zdCByID0gbWF4LW1pbjtcclxuICBsZXQgc3RlcCA9IHIvMTAwOyAvL3doYXQgaXMgdGhlIHJhdGlvIG9mIG51bWJlciBvZiBkZWNpbWFscyB0byBvcmRlciBvZiBtYWduaXR1ZGU/XHJcbiAgXHJcbiAgcmV0dXJuIHN0ZXA7XHJcblxyXG4gIC8vIGlmKCB2YWx1ZSA9PT0gMCApe1xyXG4gIC8vICAgcmV0dXJuIDE7IC8vIFdoYXQgYXJlIHdlLCBwc3ljaGljcz8gLy88PDw8LS0tIG5vLCBzbyB3ZSBzaG91bGQgYmFzZSBpbXBsaWVkU3RlcCBvbiBtaW4vbWF4LCBub3QgdmFsdWVcclxuICAvLyB9IGVsc2Uge1xyXG4gIC8vICAgLy8gSGV5IERvdWcsIGNoZWNrIHRoaXMgb3V0LlxyXG4gIC8vICAgcmV0dXJuIE1hdGgucG93KDEwLCBNYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKHZhbHVlKSkvTWF0aC5MTjEwKSkvMTA7XHJcbiAgLy8gfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRWYWx1ZUZyb21BbHBoYSggYWxwaGEsIG1pbiwgbWF4ICl7XHJcbiAgcmV0dXJuIG1hcF9yYW5nZSggYWxwaGEsIDAuMCwgMS4wLCBtaW4sIG1heCApXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFscGhhRnJvbVZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCB2YWx1ZSwgbWluLCBtYXgsIDAuMCwgMS4wICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFN0ZXBwZWRWYWx1ZSggdmFsdWUsIHN0ZXAgKXtcclxuICBpZiggdmFsdWUgJSBzdGVwICE9IDApIHtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKCB2YWx1ZSAvIHN0ZXAgKSAqIHN0ZXA7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gbnVtRGVjaW1hbHMoeCkge1xyXG4gIHggPSB4LnRvU3RyaW5nKCk7XHJcbiAgaWYgKHguaW5kZXhPZignLicpID4gLTEpIHtcclxuICAgIHJldHVybiB4Lmxlbmd0aCAtIHguaW5kZXhPZignLicpIC0gMTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByb3VuZFRvRGVjaW1hbCh2YWx1ZSwgZGVjaW1hbHMpIHtcclxuICBpZiAoTWF0aC5hYnModmFsdWUpIDwgMC4wMSAmJiB2YWx1ZSAhPT0gMCkgcmV0dXJuIHZhbHVlLnRvRXhwb25lbnRpYWwoMyk7XHJcbiAgY29uc3QgdGVuVG8gPSBNYXRoLnBvdygxMCwgZGVjaW1hbHMpO1xyXG4gIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogdGVuVG8pIC8gdGVuVG87XHJcbn0iLCIvKipcclxuICogV2hlbiB0aGUgdGV4dGJveCBpcyBmb2N1c3NlZCwgIGEga2V5Ym9hcmQgc2hvdWxkIGJlIGNyZWF0ZWQuLi5cclxuICogVGhlcmUgc2hvdWxkIGFsc28gYmUgYSB3YXkgb2YgZGlzbWlzc2luZyBpdCBsYXRlci4gIEl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdG9cclxuICogcHJldmVudCBtdWx0aXBsZSBrZXlib2FyZHMgYmVpbmcgbWFkZSBzaW11bHRhbmVvdXNseT9cclxuICogXHJcbiAqIEluIG9yZGVyIHRvIG1ha2UgaXQgYXBwZWFyLCBpdCBjYW4gYmUgYWRkZWQgYXMgYSBjaGlsZCBvZiB0aGUgdGV4Ym94IG5vZGUgaXRzZWxmLi4uXHJcbiAqIFRoaXMnbGwgbWVhbiB0aGF0IGl0IGdldHMgZHJhZ2dlZCBhcm91bmQgYnkgdGhlIHBhcmVudCBHVUkgYXMgaXQgbW92ZXMuLi4uXHJcbiAqIE1ha2VzIGZvciByZWxhdGl2ZWx5IGNsZWFuLCBzaW1wbGUgaW1wbGVtZW50YXRpb24gYXQgbGVhc3QuXHJcbiAqIEF0IHRoZSBtb21lbnQsIGtleWJvYXJkIHBvc2l0aW9uaW5nIGlzIG1lc3NlZCB1cCBieSB0aGlzIGFycmFuZ2VtZW50LlxyXG4gKiBSZW1vdmluZyBncmFiYmVyIG1ha2VzIGl0IGxlc3MgbGlrZWx5IGEgdXNlciB3aWxsIGRvIHRoaXMsIGJ1dCBtaWdodCBiZSB3b3J0aCBmaXhpbmcgdGhlIGJhc2ljIGJ1Zy5cclxuICogXHJcbiAqL1xyXG5cclxuaW1wb3J0ICogYXMgR1VJIGZyb20gJy4vaW5kZXgnO1xyXG5pbXBvcnQgY3JlYXRlVGV4dExhYmVsIGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dEJveCh7XHJcbiAgICB0ZXh0Q3JlYXRvcixcclxuICAgIG9iamVjdCxcclxuICAgIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9KSB7XHJcbiAgLy8gYmlnIG9sZCBjb3B5IC8gcGFzdGUgZnJvbSBidXR0b24uanMuIE1pZ2h0IHRyeSB0byBmYWN0b3Igb3V0IHNvbWUgb2YgdGhpcyBjb21tb24gY29kZS5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0Ym94XCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICBncm91cC5hZGQoIHBhbmVsICk7XHJcblxyXG4gIC8vICBiYXNlIGNoZWNrYm94XHJcbiAgY29uc3QgZGl2aXNpb25zID0gNDtcclxuICBjb25zdCBhc3BlY3RSYXRpbyA9IEJVVFRPTl9XSURUSCAvIEJVVFRPTl9IRUlHSFQ7XHJcbiAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgsIE1hdGguZmxvb3IoIGRpdmlzaW9ucyAqIGFzcGVjdFJhdGlvICksIGRpdmlzaW9ucywgZGl2aXNpb25zICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICAvLyAgaGl0c2NhbiB2b2x1bWVcclxuICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC41O1xyXG4gIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IHdpZHRoICogMC41O1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiAweEZGRkZGRiB9KTtcclxuICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcblxyXG4gIC8vaG93IGNhbiBJIGNoYW5nZSBjb2xvciBvZiB0ZXh0P1xyXG4gIGNvbnN0IGJ1dHRvbkxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBvYmplY3RbcHJvcGVydHlOYW1lXSwgeyBjb2xvcjogMHgwMDAwMDAwLCBzY2FsZTogMC44NjYgfSApO1xyXG5cclxuICAvLyAgVGhpcyBpcyBhIHJlYWwgaGFjayBzaW5jZSB3ZSBuZWVkIHRvIGZpdCB0aGUgdGV4dCBwb3NpdGlvbiB0byB0aGUgZm9udCBzY2FsaW5nXHJcbiAgLy8gIFBsZWFzZSBmaXggbWUuXHJcbiAgLy9idXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueCA9IDAuMDE1O1xyXG4gIGJ1dHRvbkxhYmVsLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAxLjI7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueSA9IC0wLjAyNTtcclxuICBmaWxsZWRWb2x1bWUuYWRkKCBidXR0b25MYWJlbCApO1xyXG5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVN0cmluZyhzdHIpIHtcclxuICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSBzdHI7XHJcbiAgICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKHN0cik7XHJcbiAgfVxyXG4gIHZhciBrZXlib2FyZDtcclxuICBmdW5jdGlvbiB0b2dnbGVLZXlib2FyZCgpIHtcclxuICAgIGlmIChrZXlib2FyZCkge1xyXG4gICAgICAgIGtleWJvYXJkLnZpc2libGUgPSAha2V5Ym9hcmQudmlzaWJsZTtcclxuICAgICAgICBpZiAoa2V5Ym9hcmQudmlzaWJsZSkgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGtleWJvYXJkID0gZGF0LkdVSVZSLmNyZWF0ZShcImtleWJvYXJkXCIpO1xyXG4gICAgICAgIGdyb3VwLmFkZChrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQuZm9sZGVyID0gZ3JvdXAuZm9sZGVyO1xyXG4gICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihrZXlib2FyZCk7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueCA9IHdpZHRoO1xyXG4gICAgICAgIGtleWJvYXJkLnBvc2l0aW9uLnkgPSBMYXlvdXQuRk9MREVSX0hFSUdIVDtcclxuICAgICAgICBrZXlib2FyZC5oaWRlSGVhZGVyKCk7XHJcbiAgICAgICAga2V5Ym9hcmQuYWRkS2V5Ym9hcmQoIChrKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBzdHIgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICAgICAgc3dpdGNoIChrKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXG4nOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vc2V0dGluZyBcImtleWJvYXJkLnZpc2libGUgPSBmYWxzZVwiIGluIHRoZSBtaWRkbGUgb2YgZXZlbnRcclxuICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIgc2VlbXMgdG8ga2lsbCBhbGwgZXZlbnQgcHJvY2Vzc2luZyBmcm9tIHRoZW4gb24uXHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXRUaW1lb3V0IGlzIGFuIGFkZXF1YXRlIHdvcmthcm91bmQgZm9yIG5vdy5cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRvZ2dsZUtleWJvYXJkLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnXFxiJzpcclxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIuc3Vic3RyaW5nKDAsIHN0ci5sZW5ndGgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciArPSBrO1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0cmluZyhzdHIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL3RoaXMgdGVzdCBzaG91bGQgYmUgcmVkdW5kYW50IG5vd1xyXG4gICAgLy8gaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvL29iamVjdFsgcHJvcGVydHlOYW1lIF0oKTtcclxuXHJcbiAgICAvL2hpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICAvLyBjcmVhdGUgYSBrZXlib2FyZCBhbmQgYXR0YWNoIGl0IGFzIGNoaWxkIG9mIGdyb3VwLi4uIFxyXG4gICAgLy8gb3IganVzdCBtYWtlIHN1cmUgZXhpc3Rpbmcga2V5Ym9hcmQgaXMgdmlzaWJsZS5cclxuICAgIHRvZ2dsZUtleWJvYXJkKCk7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfSElHSExJR0hUX0JHICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5URVhUQk9YX0JHICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVRleHRMYWJlbCggdGV4dENyZWF0b3IsIHN0ciwgd2lkdGggPSAwLjQsIGRlcHRoID0gMC4wMjksIGZnQ29sb3IgPSAweGZmZmZmZiwgYmdDb2xvciA9IENvbG9ycy5ERUZBVUxUX0JBQ0ssIHNjYWxlID0gMS4wICl7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwidGV4dGxhYmVsXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7c3RyfV1gO1xyXG5cclxuICBjb25zdCBpbnRlcm5hbFBvc2l0aW9uaW5nID0gbmV3IFRIUkVFLkdyb3VwKCk7IC8vcmF0aGVyIHVubmVjZXNzYXJ5LlxyXG4gIGdyb3VwLmFkZCggaW50ZXJuYWxQb3NpdGlvbmluZyApO1xyXG5cclxuICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKCBzdHIudG9TdHJpbmcoKSwgeyBjb2xvcjogZmdDb2xvciwgc2NhbGUgfSApO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCB0ZXh0ICk7XHJcbiAgZ3JvdXAudXNlckRhdGEudGV4dCA9IHRleHQ7XHJcblxyXG4gIGdyb3VwLnNldFN0cmluZyA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGlmIChzdHIgPT09IHVuZGVmaW5lZCkgc3RyID0gXCJbdW5kZWZpbmVkXVwiO1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvU3RyaW5nKCkgKTtcclxuICAgIC8vdGV4dC5jb25zdHJhaW5Cb3VuZHModG90YWxXaWR0aCwgMC4wNCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuc2V0TnVtYmVyID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgdGV4dC51cGRhdGVMYWJlbCggc3RyLnRvRml4ZWQoMikgKTtcclxuICB9O1xyXG5cclxuICB0ZXh0LnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgY29uc3QgYmFja0JvdW5kcyA9IDAuMDE7XHJcbiAgY29uc3QgbWFyZ2luID0gMC4wMTtcclxuICBjb25zdCB0b3RhbFdpZHRoID0gd2lkdGg7XHJcbiAgY29uc3QgdG90YWxIZWlnaHQgPSAwLjA0ICsgbWFyZ2luICogMjtcclxuXHJcbiAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuXHJcbiAgY29uc3QgbGFiZWxCYWNrR2VvbWV0cnkgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHRvdGFsV2lkdGgsIHRvdGFsSGVpZ2h0LCBkZXB0aCwgMSwgMSwgMSApO1xyXG4gIGxhYmVsQmFja0dlb21ldHJ5LmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5tYWtlVHJhbnNsYXRpb24oIHRvdGFsV2lkdGggKiAwLjUgLSBtYXJnaW4sIDAsIDAgKSApO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tNZXNoID0gbmV3IFRIUkVFLk1lc2goIGxhYmVsQmFja0dlb21ldHJ5LCBTaGFyZWRNYXRlcmlhbHMuUEFORUwgKTtcclxuICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWxCYWNrTWVzaC5nZW9tZXRyeSwgYmdDb2xvciApO1xyXG5cclxuICBsYWJlbEJhY2tNZXNoLnBvc2l0aW9uLnkgPSAwLjAzO1xyXG4gIGludGVybmFsUG9zaXRpb25pbmcuYWRkKCBsYWJlbEJhY2tNZXNoICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5wb3NpdGlvbi55ID0gLXRvdGFsSGVpZ2h0ICogMC41O1xyXG5cclxuICBncm91cC5iYWNrID0gbGFiZWxCYWNrTWVzaDtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0UGFyZW50SGVpZ2h0ID0gTGF5b3V0LlBBTkVMX0hFSUdIVCArIExheW91dC5QQU5FTF9TUEFDSU5HO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbFRpcCggdGV4dENyZWF0b3IsIHRpcCwgcGFyZW50V2lkdGgsIHBhcmVudEhlaWdodCA9IGRlZmF1bHRQYXJlbnRIZWlnaHQsIHBhcmVudERlcHRoICkge1xyXG4gIGNvbnN0IHRpcFRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUodGlwKTtcclxuICBcclxuICBjb25zdCB0aXBHcm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICBjb25zdCB3ID0gdGlwVGV4dC5jb21wdXRlV2lkdGgoKTtcclxuICBjb25zdCBoID0gTGF5b3V0LlRFWFRfU0NBTEUgKiB0aXBUZXh0LmxheW91dC5oZWlnaHQ7XHJcblxyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnggID0gMC41ICogcGFyZW50V2lkdGg7XHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueSA9IC0xLjA1ICogcGFyZW50SGVpZ2h0IC0gaDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi56ID0gcGFyZW50RGVwdGggKiAzO1xyXG4gIHRpcEdyb3VwLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbi8vICBzdWJncm91cC5hZGQodGlwR3JvdXApO1xyXG4gIHRpcEdyb3VwLmFkZCh0aXBUZXh0KTtcclxuLy8gIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBHcm91cDtcclxuXHJcbiAgY29uc3QgcGFkZGVkVyA9IHcgKyAwLjAzLCBwYWRkZWRIID0gaCArIDAuMDM7XHJcbiAgY29uc3QgdGlwUmVjdCA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KHBhZGRlZFcsIHBhZGRlZEgsIDEsIDEpO1xyXG4gIGNvbnN0IHRpcEJhY2tncm91bmQgPSBuZXcgVEhSRUUuTWVzaCh0aXBSZWN0LCBTaGFyZWRNYXRlcmlhbHMuVE9PTFRJUCk7XHJcbiAgdGlwQmFja2dyb3VuZC5wb3NpdGlvbi54ID0gMDsgLy9wYWRkZWRXIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnkgPSBoIC8gMjtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnogPSAtcGFyZW50RGVwdGggKiAwLjU7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcEJhY2tncm91bmQpO1xyXG5cclxuICB0aXBUZXh0LnBvc2l0aW9uLnggPSAtMC41ICogdztcclxuICB0aXBUZXh0LnBvc2l0aW9uLnkgPSAtMC41ICogaCArIDAuMDAxNTtcclxuXHJcbiAgdGlwR3JvdXAudXNlckRhdGEudyA9IHc7XHJcbiAgdGlwR3JvdXAudXNlckRhdGEuaCA9IGg7XHJcblxyXG4gIHJldHVybiB0aXBHcm91cDtcclxufVxyXG4iLCIvKiogYmFzaWMgdXRpbGl0eSBmdW5jdGlvbnMgKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRyb2xsZXJWaXNpYmxlKGNvbnRyb2wpIHtcclxuICB2YXIgZm9sZGVyID0gY29udHJvbC5mb2xkZXI7XHJcbiAgLy9ub3RlOiB0aGUgYmFzaXMgb24gd2hpY2ggYSBjb250cm9sbGVyIGlzIGNvbnNpZGVyZWQgdmlzaWJsZSByZXZpc2VkIGZvciAnaGVhZGVyJyBvYmplY3RzLlxyXG4gIC8vZm9yIG5vdywgdGhpcyBzaG91bGQgYWxsb3cgaGVhZGVyIGNvbnRyb2xsZXJzIHRvIHVwZGF0ZSB3aGlsZSBmb2xkZXIgaXMgY29sbGFwc2VkLlxyXG4gIC8vb25seSBhcHBsaWVzIHRvIGNoZWNrYm94LCBwZW5kaW5nIGRlc2lnbiByZXZpc2lvbiAmIGZ1bGxlciBpbXBsZW1lbnRhdGlvbi4uLlxyXG4gIFxyXG4gIC8vLS0tLSBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgbm8gbG9uZ2VyIHJlbGV2YW50LCBidXQgZW5kaW5nIHVwIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3Mgc2ltaWxhci4uLi5cclxuICAvL2lzSGVhZGVyT2JqZWN0IHdpbGwgYXBwbHkgdG8gdGhlIGFjdHVhbCBjb250cm9sIGFwcGVhcmluZyBpbiB0aGUgZm9sZGVyIGhlYWRlciwgd2hlcmVhc1xyXG4gIC8vaXNTaG93bkluRm9sZGVySGVhZGVyIHdhcyB3aGVuIHN1Y2ggb2JqZWN0cyB3ZXJlbid0IHNvIGZ1bGx5LWZsZWRnZWRcclxuICAvL2lmIChjb250cm9sLmlzU2hvd25JbkZvbGRlckhlYWRlcikgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTsgLy88PDw8PCBzdGlsbCBoaXR0aW5nIGZvbGRlZCBidXR0b24/Pz8gKGFsc28sIHRyeSBucG0gYXVkaXQpXHJcbiAgaWYgKGNvbnRyb2wuaXNIZWFkZXJPYmplY3QpIHJldHVybiBpc0NvbnRyb2xsZXJWaXNpYmxlKGZvbGRlcik7XHJcblxyXG4gIC8vWFhYIGhhdmluZyBzb21lIGRlZmluaXRlIGJ1Z3MgZS5nLiBtaXNzaW5nIGV2ZW50cyBvdmVyICdwaWN0dXJlcyAvIG1hdGVyaWFscycgZm9sZGVyIGhlYWRlciBpbiBkZW1vLlxyXG4gIFxyXG4gIGlmICghY29udHJvbC52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgXHJcbiAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcil7XHJcbiAgICBpZiAoZm9sZGVyLmlzQ29sbGFwc2VkKCkgfHwgIWZvbGRlci52aXNpYmxlKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gIH1cclxuICBpZiAoIWZvbGRlci5wYXJlbnQpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gZm9sZGVyLnZpc2libGU7XHJcbn1cclxuXHJcbi8qKiBcclxuICogSW52aXNpYmxlIFRIUkVFIG9iamVjdHMgaW5jdXIgc2lnbmlmaWNhbnQgQ1BVIGNvc3QuXHJcbiAqIFRoaXMgYXZvaWRzIHRoYXQgYnkgcmVtb3ZpbmcgdGhlbSBmcm9tIHNjZW5lIGhpZXJhcmNoeS5cclxuICogXHJcbiAqIElmIHZpc2libGUgaXMgdHJ1ZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9dHJ1ZSBhbmQgaXMgYSBjaGlsZCBvZiBwYXJlbnQuXHJcbiAqIElmIHZpc2libGUgaXMgZmFsc2UsIG1ha2Ugc3VyZSBjaGlsZC52aXNpYmxlPWZhbHNlIGFuZCBpcyByZW1vdmVkIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpc2liaWxpdHkocGFyZW50LCBjaGlsZCwgdmlzaWJsZSkge1xyXG4gICAgY29uc3QgaXNDaGlsZCA9IHBhcmVudC5jaGlsZHJlbi5pbmNsdWRlcyhjaGlsZCk7XHJcbiAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgIC8vbWFrZSBzdXJlIHdlIHVzZSBvcmlnaW5hbCBUSFJFRSBtZXRob2RzIHRoYXQgdGhpcyBsaWJyYXJ5IG92ZXJyaWRlcyAoVE9ETzogcmVmYWN0b3IuLi4pXHJcbiAgICBpZiAodmlzaWJsZSAmJiAhaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZC5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCF2aXNpYmxlICYmIGlzQ2hpbGQpIFRIUkVFLkdyb3VwLnByb3RvdHlwZS5yZW1vdmUuY2FsbChwYXJlbnQsIGNoaWxkKTtcclxuICAgIGlmICghcGFyZW50LnZpc2libGUpIGNvbnNvbGUud2Fybihgc2V0VmlzaWJpbGl0eSBjYWxsZWQgb24gY2hpbGQgJHtjaGlsZH0gb2YgaW52aXNpYmxlIHBhcmVudCAke3BhcmVudH1gKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2YgcGFyZW50IGZvbGRlciBpbiB0aGUgZ3VpIGhpZWFyY2h5IGNvbnRhaW5pbmcgYSBnaXZlbiBvYmplY3QuXHJcbiAqIG5iLiBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIHJldHVybiB0aGUgaW5wdXQgb2JqZWN0IGlmIGl0IGRpZG4ndCBoYXZlIGEgJ2ZvbGRlcicgcHJvcGVydHkuXHJcbiAqIE5vdywgaXQgaXMgaW50ZW5kZWQgdGhhdCBpdCBzaG91bGQgZWl0aGVyIHJldHVybiBhIGZvbGRlciBpZiBhcHByb3ByaWF0ZSwgb3Igbm90aGluZy5cclxuICogQHBhcmFtIHsqfSBncm91cCBlaXRoZXIgYSBmb2xkZXIsIG9yIGFuIG9iamVjdCB3aG9zZSBwYXJlbnQgaGFzIGEgZm9sZGVyLi4uIGFwb2xvZ2llcywgdGhpcyBpcyBub3QgdGhlIGNsZWFyZXN0IHNwZWMuXHJcbiAqIC4uLiBpbnRlbnRpb24gaXMgdGhhdCBpdCBzaG91bGQgd29yayB3aXRoIGFueSBndWkgZWxlbWVudCwgaW4gcGFydGljdWxhciBhbnkgaGl0T2JqZWN0IGluIGludGVyYWN0aW9uLmpzLi4uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApIHtcclxuICAgIHZhciBmb2xkZXIgPSBnZXRGb2xkZXIoZ3JvdXApO1xyXG4gICAgd2hpbGUgKGZvbGRlci5mb2xkZXIgIT09IGZvbGRlcikgZm9sZGVyID0gZm9sZGVyLmZvbGRlcjtcclxuICAgIHJldHVybiBmb2xkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2xkZXIoZ3JvdXApIHtcclxuICAgIGlmIChncm91cC5mb2xkZXIpIHJldHVybiBncm91cC5mb2xkZXI7XHJcbiAgICBsZXQgbm9kZSA9IGdyb3VwLnBhcmVudDtcclxuICAgIHdoaWxlICghbm9kZS5mb2xkZXIgJiYgZ3JvdXAucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICByZXR1cm4gbm9kZS5mb2xkZXI7XHJcbn1cclxuXHJcbi8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4vL2h0dHBzOi8vZ2l0aHViLmNvbS9tcmRvb2IvdGhyZWUuanMvaXNzdWVzLzE0MzUyXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRCb3hGcm9tT2JqZWN0KGJveCwgb2JqKSB7XHJcbiAgY29uc3Qgd29ua3lHZW9tID0gW107XHJcbiAgb2JqLnRyYXZlcnNlKG8gPT4ge1xyXG4gICAgaWYgKG8uZ2VvbWV0cnkgJiYgby5nZW9tZXRyeS5pc0J1ZmZlckdlb21ldHJ5ICYmIG8uZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZSAhPT0gMykge1xyXG4gICAgICBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgPSBmYWxzZTtcclxuICAgICAgd29ua3lHZW9tLnB1c2goby5nZW9tZXRyeSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgYm94LnNldEZyb21PYmplY3Qob2JqKTtcclxuICB3b25reUdlb20uZm9yRWFjaChnID0+IGcuaXNCdWZmZXJHZW9tZXRyeSA9IHRydWUpO1xyXG4gIHJldHVybiBib3g7XHJcbn1cclxuIiwidmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBhbkFycmF5XG5cbmZ1bmN0aW9uIGFuQXJyYXkoYXJyKSB7XG4gIHJldHVybiAoXG4gICAgICAgYXJyLkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgJiYgc3RyLmNhbGwoYXJyLmJ1ZmZlcikgPT09ICdbb2JqZWN0IEFycmF5QnVmZmVyXSdcbiAgICB8fCBBcnJheS5pc0FycmF5KGFycilcbiAgKVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBudW10eXBlKG51bSwgZGVmKSB7XG5cdHJldHVybiB0eXBlb2YgbnVtID09PSAnbnVtYmVyJ1xuXHRcdD8gbnVtIFxuXHRcdDogKHR5cGVvZiBkZWYgPT09ICdudW1iZXInID8gZGVmIDogMClcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGR0eXBlKSB7XG4gIHN3aXRjaCAoZHR5cGUpIHtcbiAgICBjYXNlICdpbnQ4JzpcbiAgICAgIHJldHVybiBJbnQ4QXJyYXlcbiAgICBjYXNlICdpbnQxNic6XG4gICAgICByZXR1cm4gSW50MTZBcnJheVxuICAgIGNhc2UgJ2ludDMyJzpcbiAgICAgIHJldHVybiBJbnQzMkFycmF5XG4gICAgY2FzZSAndWludDgnOlxuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlcbiAgICBjYXNlICd1aW50MTYnOlxuICAgICAgcmV0dXJuIFVpbnQxNkFycmF5XG4gICAgY2FzZSAndWludDMyJzpcbiAgICAgIHJldHVybiBVaW50MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0MzInOlxuICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheVxuICAgIGNhc2UgJ2Zsb2F0NjQnOlxuICAgICAgcmV0dXJuIEZsb2F0NjRBcnJheVxuICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgIHJldHVybiBBcnJheVxuICAgIGNhc2UgJ3VpbnQ4X2NsYW1wZWQnOlxuICAgICAgcmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5XG4gIH1cbn1cbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSID0gdHlwZW9mIFJlZmxlY3QgPT09ICdvYmplY3QnID8gUmVmbGVjdCA6IG51bGxcbnZhciBSZWZsZWN0QXBwbHkgPSBSICYmIHR5cGVvZiBSLmFwcGx5ID09PSAnZnVuY3Rpb24nXG4gID8gUi5hcHBseVxuICA6IGZ1bmN0aW9uIFJlZmxlY3RBcHBseSh0YXJnZXQsIHJlY2VpdmVyLCBhcmdzKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpO1xuICB9XG5cbnZhciBSZWZsZWN0T3duS2V5c1xuaWYgKFIgJiYgdHlwZW9mIFIub3duS2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICBSZWZsZWN0T3duS2V5cyA9IFIub3duS2V5c1xufSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldClcbiAgICAgIC5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKTtcbiAgfTtcbn0gZWxzZSB7XG4gIFJlZmxlY3RPd25LZXlzID0gZnVuY3Rpb24gUmVmbGVjdE93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIFByb2Nlc3NFbWl0V2FybmluZyh3YXJuaW5nKSB7XG4gIGlmIChjb25zb2xlICYmIGNvbnNvbGUud2FybikgY29uc29sZS53YXJuKHdhcm5pbmcpO1xufVxuXG52YXIgTnVtYmVySXNOYU4gPSBOdW1iZXIuaXNOYU4gfHwgZnVuY3Rpb24gTnVtYmVySXNOYU4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICBFdmVudEVtaXR0ZXIuaW5pdC5jYWxsKHRoaXMpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG5tb2R1bGUuZXhwb3J0cy5vbmNlID0gb25jZTtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9uY2UoZW1pdHRlciwgbmFtZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZ1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXJyKSB7XG4gICAgICBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyKG5hbWUsIHJlc29sdmVyKTtcbiAgICAgIHJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKCkge1xuICAgICAgaWYgKHR5cGVvZiBlbWl0dGVyLnJlbW92ZUxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgZXJyb3JMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICByZXNvbHZlKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgfTtcblxuICAgIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCByZXNvbHZlciwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIGlmIChuYW1lICE9PSAnZXJyb3InKSB7XG4gICAgICBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBlcnJvckxpc3RlbmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVySWZFdmVudEVtaXR0ZXIoZW1pdHRlciwgaGFuZGxlciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsICdlcnJvcicsIGhhbmRsZXIsIGZsYWdzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgbmFtZSwgbGlzdGVuZXIsIGZsYWdzKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5vbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICBlbWl0dGVyLm9uY2UobmFtZSwgbGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbWl0dGVyLm9uKG5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIEV2ZW50VGFyZ2V0IGRvZXMgbm90IGhhdmUgYGVycm9yYCBldmVudCBzZW1hbnRpY3MgbGlrZSBOb2RlXG4gICAgLy8gRXZlbnRFbWl0dGVycywgd2UgZG8gbm90IGxpc3RlbiBmb3IgYGVycm9yYCBldmVudHMgaGVyZS5cbiAgICBlbWl0dGVyLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZnVuY3Rpb24gd3JhcExpc3RlbmVyKGFyZykge1xuICAgICAgLy8gSUUgZG9lcyBub3QgaGF2ZSBidWlsdGluIGB7IG9uY2U6IHRydWUgfWAgc3VwcG9ydCBzbyB3ZVxuICAgICAgLy8gaGF2ZSB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgIGlmIChmbGFncy5vbmNlKSB7XG4gICAgICAgIGVtaXR0ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCB3cmFwTGlzdGVuZXIpO1xuICAgICAgfVxuICAgICAgbGlzdGVuZXIoYXJnKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJlbWl0dGVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEV2ZW50RW1pdHRlci4gUmVjZWl2ZWQgdHlwZSAnICsgdHlwZW9mIGVtaXR0ZXIpO1xuICB9XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBpZiAoc3VwZXJDdG9yKSB7XG4gICAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ3Rvci5wcm90b3R5cGUsIHtcbiAgICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZVxuICAgICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gICAgfVxuICB9XG59XG4iLCIvKiFcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXJcbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbi8vIFRoZSBfaXNCdWZmZXIgY2hlY2sgaXMgZm9yIFNhZmFyaSA1LTcgc3VwcG9ydCwgYmVjYXVzZSBpdCdzIG1pc3Npbmdcbi8vIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKGlzQnVmZmVyKG9iaikgfHwgaXNTbG93QnVmZmVyKG9iaikgfHwgISFvYmouX2lzQnVmZmVyKVxufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiAhIW9iai5jb25zdHJ1Y3RvciAmJiB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopXG59XG5cbi8vIEZvciBOb2RlIHYwLjEwIHN1cHBvcnQuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHkuXG5mdW5jdGlvbiBpc1Nsb3dCdWZmZXIgKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iai5yZWFkRmxvYXRMRSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnNsaWNlID09PSAnZnVuY3Rpb24nICYmIGlzQnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsInZhciB3b3JkV3JhcCA9IHJlcXVpcmUoJ3dvcmQtd3JhcHBlcicpXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpXG52YXIgbnVtYmVyID0gcmVxdWlyZSgnYXMtbnVtYmVyJylcblxudmFyIFhfSEVJR0hUUyA9IFsneCcsICdlJywgJ2EnLCAnbycsICduJywgJ3MnLCAncicsICdjJywgJ3UnLCAnbScsICd2JywgJ3cnLCAneiddXG52YXIgTV9XSURUSFMgPSBbJ20nLCAndyddXG52YXIgQ0FQX0hFSUdIVFMgPSBbJ0gnLCAnSScsICdOJywgJ0UnLCAnRicsICdLJywgJ0wnLCAnVCcsICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWiddXG5cblxudmFyIFRBQl9JRCA9ICdcXHQnLmNoYXJDb2RlQXQoMClcbnZhciBTUEFDRV9JRCA9ICcgJy5jaGFyQ29kZUF0KDApXG52YXIgQUxJR05fTEVGVCA9IDAsIFxuICAgIEFMSUdOX0NFTlRFUiA9IDEsIFxuICAgIEFMSUdOX1JJR0hUID0gMlxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZUxheW91dChvcHQpIHtcbiAgcmV0dXJuIG5ldyBUZXh0TGF5b3V0KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dExheW91dChvcHQpIHtcbiAgdGhpcy5nbHlwaHMgPSBbXVxuICB0aGlzLl9tZWFzdXJlID0gdGhpcy5jb21wdXRlTWV0cmljcy5iaW5kKHRoaXMpXG4gIHRoaXMudXBkYXRlKG9wdClcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24ob3B0KSB7XG4gIG9wdCA9IHh0ZW5kKHtcbiAgICBtZWFzdXJlOiB0aGlzLl9tZWFzdXJlXG4gIH0sIG9wdClcbiAgdGhpcy5fb3B0ID0gb3B0XG4gIHRoaXMuX29wdC50YWJTaXplID0gbnVtYmVyKHRoaXMuX29wdC50YWJTaXplLCA0KVxuXG4gIGlmICghb3B0LmZvbnQpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHByb3ZpZGUgYSB2YWxpZCBiaXRtYXAgZm9udCcpXG5cbiAgdmFyIGdseXBocyA9IHRoaXMuZ2x5cGhzXG4gIHZhciB0ZXh0ID0gb3B0LnRleHR8fCcnIFxuICB2YXIgZm9udCA9IG9wdC5mb250XG4gIHRoaXMuX3NldHVwU3BhY2VHbHlwaHMoZm9udClcbiAgXG4gIHZhciBsaW5lcyA9IHdvcmRXcmFwLmxpbmVzKHRleHQsIG9wdClcbiAgdmFyIG1pbldpZHRoID0gb3B0LndpZHRoIHx8IDBcblxuICAvL2NsZWFyIGdseXBoc1xuICBnbHlwaHMubGVuZ3RoID0gMFxuXG4gIC8vZ2V0IG1heCBsaW5lIHdpZHRoXG4gIHZhciBtYXhMaW5lV2lkdGggPSBsaW5lcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbGluZSkge1xuICAgIHJldHVybiBNYXRoLm1heChwcmV2LCBsaW5lLndpZHRoLCBtaW5XaWR0aClcbiAgfSwgMClcblxuICAvL3RoZSBwZW4gcG9zaXRpb25cbiAgdmFyIHggPSAwXG4gIHZhciB5ID0gMFxuICB2YXIgbGluZUhlaWdodCA9IG51bWJlcihvcHQubGluZUhlaWdodCwgZm9udC5jb21tb24ubGluZUhlaWdodClcbiAgdmFyIGJhc2VsaW5lID0gZm9udC5jb21tb24uYmFzZVxuICB2YXIgZGVzY2VuZGVyID0gbGluZUhlaWdodC1iYXNlbGluZVxuICB2YXIgbGV0dGVyU3BhY2luZyA9IG9wdC5sZXR0ZXJTcGFjaW5nIHx8IDBcbiAgdmFyIGhlaWdodCA9IGxpbmVIZWlnaHQgKiBsaW5lcy5sZW5ndGggLSBkZXNjZW5kZXJcbiAgdmFyIGFsaWduID0gZ2V0QWxpZ25UeXBlKHRoaXMuX29wdC5hbGlnbilcblxuICAvL2RyYXcgdGV4dCBhbG9uZyBiYXNlbGluZVxuICB5IC09IGhlaWdodFxuICBcbiAgLy90aGUgbWV0cmljcyBmb3IgdGhpcyB0ZXh0IGxheW91dFxuICB0aGlzLl93aWR0aCA9IG1heExpbmVXaWR0aFxuICB0aGlzLl9oZWlnaHQgPSBoZWlnaHRcbiAgdGhpcy5fZGVzY2VuZGVyID0gbGluZUhlaWdodCAtIGJhc2VsaW5lXG4gIHRoaXMuX2Jhc2VsaW5lID0gYmFzZWxpbmVcbiAgdGhpcy5feEhlaWdodCA9IGdldFhIZWlnaHQoZm9udClcbiAgdGhpcy5fY2FwSGVpZ2h0ID0gZ2V0Q2FwSGVpZ2h0KGZvbnQpXG4gIHRoaXMuX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0XG4gIHRoaXMuX2FzY2VuZGVyID0gbGluZUhlaWdodCAtIGRlc2NlbmRlciAtIHRoaXMuX3hIZWlnaHRcbiAgICBcbiAgLy9sYXlvdXQgZWFjaCBnbHlwaFxuICB2YXIgc2VsZiA9IHRoaXNcbiAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5lLCBsaW5lSW5kZXgpIHtcbiAgICB2YXIgc3RhcnQgPSBsaW5lLnN0YXJ0XG4gICAgdmFyIGVuZCA9IGxpbmUuZW5kXG4gICAgdmFyIGxpbmVXaWR0aCA9IGxpbmUud2lkdGhcbiAgICB2YXIgbGFzdEdseXBoXG4gICAgXG4gICAgLy9mb3IgZWFjaCBnbHlwaCBpbiB0aGF0IGxpbmUuLi5cbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZDsgaSsrKSB7XG4gICAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICAgIHZhciBnbHlwaCA9IHNlbGYuZ2V0R2x5cGgoZm9udCwgaWQpXG4gICAgICBpZiAoZ2x5cGgpIHtcbiAgICAgICAgaWYgKGxhc3RHbHlwaCkgXG4gICAgICAgICAgeCArPSBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpXG5cbiAgICAgICAgdmFyIHR4ID0geFxuICAgICAgICBpZiAoYWxpZ24gPT09IEFMSUdOX0NFTlRFUikgXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpLzJcbiAgICAgICAgZWxzZSBpZiAoYWxpZ24gPT09IEFMSUdOX1JJR0hUKVxuICAgICAgICAgIHR4ICs9IChtYXhMaW5lV2lkdGgtbGluZVdpZHRoKVxuXG4gICAgICAgIGdseXBocy5wdXNoKHtcbiAgICAgICAgICBwb3NpdGlvbjogW3R4LCB5XSxcbiAgICAgICAgICBkYXRhOiBnbHlwaCxcbiAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICBsaW5lOiBsaW5lSW5kZXhcbiAgICAgICAgfSkgIFxuXG4gICAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgICB4ICs9IGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgICBsYXN0R2x5cGggPSBnbHlwaFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vbmV4dCBsaW5lIGRvd25cbiAgICB5ICs9IGxpbmVIZWlnaHRcbiAgICB4ID0gMFxuICB9KVxuICB0aGlzLl9saW5lc1RvdGFsID0gbGluZXMubGVuZ3RoO1xufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5fc2V0dXBTcGFjZUdseXBocyA9IGZ1bmN0aW9uKGZvbnQpIHtcbiAgLy9UaGVzZSBhcmUgZmFsbGJhY2tzLCB3aGVuIHRoZSBmb250IGRvZXNuJ3QgaW5jbHVkZVxuICAvLycgJyBvciAnXFx0JyBnbHlwaHNcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gbnVsbFxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0gbnVsbFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm5cblxuICAvL3RyeSB0byBnZXQgc3BhY2UgZ2x5cGhcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgJ20nIG9yICd3JyBnbHlwaHNcbiAgLy90aGVuIGZhbGwgYmFjayB0byB0aGUgZmlyc3QgZ2x5cGggYXZhaWxhYmxlXG4gIHZhciBzcGFjZSA9IGdldEdseXBoQnlJZChmb250LCBTUEFDRV9JRCkgXG4gICAgICAgICAgfHwgZ2V0TUdseXBoKGZvbnQpIFxuICAgICAgICAgIHx8IGZvbnQuY2hhcnNbMF1cblxuICAvL2FuZCBjcmVhdGUgYSBmYWxsYmFjayBmb3IgdGFiXG4gIHZhciB0YWJXaWR0aCA9IHRoaXMuX29wdC50YWJTaXplICogc3BhY2UueGFkdmFuY2VcbiAgdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoID0gc3BhY2VcbiAgdGhpcy5fZmFsbGJhY2tUYWJHbHlwaCA9IHh0ZW5kKHNwYWNlLCB7XG4gICAgeDogMCwgeTogMCwgeGFkdmFuY2U6IHRhYldpZHRoLCBpZDogVEFCX0lELCBcbiAgICB4b2Zmc2V0OiAwLCB5b2Zmc2V0OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwXG4gIH0pXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmdldEdseXBoID0gZnVuY3Rpb24oZm9udCwgaWQpIHtcbiAgdmFyIGdseXBoID0gZ2V0R2x5cGhCeUlkKGZvbnQsIGlkKVxuICBpZiAoZ2x5cGgpXG4gICAgcmV0dXJuIGdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBUQUJfSUQpIFxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1RhYkdseXBoXG4gIGVsc2UgaWYgKGlkID09PSBTUEFDRV9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrU3BhY2VHbHlwaFxuICByZXR1cm4gbnVsbFxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS5jb21wdXRlTWV0cmljcyA9IGZ1bmN0aW9uKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gdGhpcy5fb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgZm9udCA9IHRoaXMuX29wdC5mb250XG4gIHZhciBjdXJQZW4gPSAwXG4gIHZhciBjdXJXaWR0aCA9IDBcbiAgdmFyIGNvdW50ID0gMFxuICB2YXIgZ2x5cGhcbiAgdmFyIGxhc3RHbHlwaFxuXG4gIGlmICghZm9udC5jaGFycyB8fCBmb250LmNoYXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogc3RhcnQsXG4gICAgICBlbmQ6IHN0YXJ0LFxuICAgICAgd2lkdGg6IDBcbiAgICB9XG4gIH1cblxuICBlbmQgPSBNYXRoLm1pbih0ZXh0Lmxlbmd0aCwgZW5kKVxuICBmb3IgKHZhciBpPXN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICB2YXIgaWQgPSB0ZXh0LmNoYXJDb2RlQXQoaSlcbiAgICB2YXIgZ2x5cGggPSB0aGlzLmdldEdseXBoKGZvbnQsIGlkKVxuXG4gICAgaWYgKGdseXBoKSB7XG4gICAgICAvL21vdmUgcGVuIGZvcndhcmRcbiAgICAgIHZhciB4b2ZmID0gZ2x5cGgueG9mZnNldFxuICAgICAgdmFyIGtlcm4gPSBsYXN0R2x5cGggPyBnZXRLZXJuaW5nKGZvbnQsIGxhc3RHbHlwaC5pZCwgZ2x5cGguaWQpIDogMFxuICAgICAgY3VyUGVuICs9IGtlcm5cblxuICAgICAgdmFyIG5leHRQZW4gPSBjdXJQZW4gKyBnbHlwaC54YWR2YW5jZSArIGxldHRlclNwYWNpbmdcbiAgICAgIHZhciBuZXh0V2lkdGggPSBjdXJQZW4gKyBnbHlwaC53aWR0aFxuXG4gICAgICAvL3dlJ3ZlIGhpdCBvdXIgbGltaXQ7IHdlIGNhbid0IG1vdmUgb250byB0aGUgbmV4dCBnbHlwaFxuICAgICAgaWYgKG5leHRXaWR0aCA+PSB3aWR0aCB8fCBuZXh0UGVuID49IHdpZHRoKVxuICAgICAgICBicmVha1xuXG4gICAgICAvL290aGVyd2lzZSBjb250aW51ZSBhbG9uZyBvdXIgbGluZVxuICAgICAgY3VyUGVuID0gbmV4dFBlblxuICAgICAgY3VyV2lkdGggPSBuZXh0V2lkdGhcbiAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgfVxuICAgIGNvdW50KytcbiAgfVxuICBcbiAgLy9tYWtlIHN1cmUgcmlnaHRtb3N0IGVkZ2UgbGluZXMgdXAgd2l0aCByZW5kZXJlZCBnbHlwaHNcbiAgaWYgKGxhc3RHbHlwaClcbiAgICBjdXJXaWR0aCArPSBsYXN0R2x5cGgueG9mZnNldFxuXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IHN0YXJ0LFxuICAgIGVuZDogc3RhcnQgKyBjb3VudCxcbiAgICB3aWR0aDogY3VyV2lkdGhcbiAgfVxufVxuXG4vL2dldHRlcnMgZm9yIHRoZSBwcml2YXRlIHZhcnNcbjtbJ3dpZHRoJywgJ2hlaWdodCcsIFxuICAnZGVzY2VuZGVyJywgJ2FzY2VuZGVyJyxcbiAgJ3hIZWlnaHQnLCAnYmFzZWxpbmUnLFxuICAnY2FwSGVpZ2h0JyxcbiAgJ2xpbmVIZWlnaHQnIF0uZm9yRWFjaChhZGRHZXR0ZXIpXG5cbmZ1bmN0aW9uIGFkZEdldHRlcihuYW1lKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZXh0TGF5b3V0LnByb3RvdHlwZSwgbmFtZSwge1xuICAgIGdldDogd3JhcHBlcihuYW1lKSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSlcbn1cblxuLy9jcmVhdGUgbG9va3VwcyBmb3IgcHJpdmF0ZSB2YXJzXG5mdW5jdGlvbiB3cmFwcGVyKG5hbWUpIHtcbiAgcmV0dXJuIChuZXcgRnVuY3Rpb24oW1xuICAgICdyZXR1cm4gZnVuY3Rpb24gJytuYW1lKycoKSB7JyxcbiAgICAnICByZXR1cm4gdGhpcy5fJytuYW1lLFxuICAgICd9J1xuICBdLmpvaW4oJ1xcbicpKSkoKVxufVxuXG5mdW5jdGlvbiBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpIHtcbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIGdseXBoSWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gIGlmIChnbHlwaElkeCA+PSAwKVxuICAgIHJldHVybiBmb250LmNoYXJzW2dseXBoSWR4XVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBnZXRYSGVpZ2h0KGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPFhfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IFhfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldE1HbHlwaChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxNX1dJRFRIUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IE1fV0lEVEhTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRDYXBIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8Q0FQX0hFSUdIVFMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWQgPSBDQVBfSEVJR0hUU1tpXS5jaGFyQ29kZUF0KDApXG4gICAgdmFyIGlkeCA9IGZpbmRDaGFyKGZvbnQuY2hhcnMsIGlkKVxuICAgIGlmIChpZHggPj0gMCkgXG4gICAgICByZXR1cm4gZm9udC5jaGFyc1tpZHhdLmhlaWdodFxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldEtlcm5pbmcoZm9udCwgbGVmdCwgcmlnaHQpIHtcbiAgaWYgKCFmb250Lmtlcm5pbmdzIHx8IGZvbnQua2VybmluZ3MubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiAwXG5cbiAgdmFyIHRhYmxlID0gZm9udC5rZXJuaW5nc1xuICBmb3IgKHZhciBpPTA7IGk8dGFibGUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2VybiA9IHRhYmxlW2ldXG4gICAgaWYgKGtlcm4uZmlyc3QgPT09IGxlZnQgJiYga2Vybi5zZWNvbmQgPT09IHJpZ2h0KVxuICAgICAgcmV0dXJuIGtlcm4uYW1vdW50XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0QWxpZ25UeXBlKGFsaWduKSB7XG4gIGlmIChhbGlnbiA9PT0gJ2NlbnRlcicpXG4gICAgcmV0dXJuIEFMSUdOX0NFTlRFUlxuICBlbHNlIGlmIChhbGlnbiA9PT0gJ3JpZ2h0JylcbiAgICByZXR1cm4gQUxJR05fUklHSFRcbiAgcmV0dXJuIEFMSUdOX0xFRlRcbn1cblxuZnVuY3Rpb24gZmluZENoYXIgKGFycmF5LCB2YWx1ZSwgc3RhcnQpIHtcbiAgc3RhcnQgPSBzdGFydCB8fCAwXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycmF5W2ldLmlkID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xXG59IiwiLypcbm9iamVjdC1hc3NpZ25cbihjKSBTaW5kcmUgU29yaHVzXG5AbGljZW5zZSBNSVRcbiovXG5cbid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gcGFyc2VCTUZvbnRBc2NpaShkYXRhKSB7XG4gIGlmICghZGF0YSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgcHJvdmlkZWQnKVxuICBkYXRhID0gZGF0YS50b1N0cmluZygpLnRyaW0oKVxuXG4gIHZhciBvdXRwdXQgPSB7XG4gICAgcGFnZXM6IFtdLFxuICAgIGNoYXJzOiBbXSxcbiAgICBrZXJuaW5nczogW11cbiAgfVxuXG4gIHZhciBsaW5lcyA9IGRhdGEuc3BsaXQoL1xcclxcbj98XFxuL2cpXG5cbiAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGRhdGEgaW4gQk1Gb250IGZpbGUnKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGluZURhdGEgPSBzcGxpdExpbmUobGluZXNbaV0sIGkpXG4gICAgaWYgKCFsaW5lRGF0YSkgLy9za2lwIGVtcHR5IGxpbmVzXG4gICAgICBjb250aW51ZVxuXG4gICAgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ3BhZ2UnKSB7XG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuaWQgIT09ICdudW1iZXInKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hbGZvcm1lZCBmaWxlIGF0IGxpbmUgJyArIGkgKyAnIC0tIG5lZWRzIHBhZ2UgaWQ9TicpXG4gICAgICBpZiAodHlwZW9mIGxpbmVEYXRhLmRhdGEuZmlsZSAhPT0gJ3N0cmluZycpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBmaWxlPVwicGF0aFwiJylcbiAgICAgIG91dHB1dC5wYWdlc1tsaW5lRGF0YS5kYXRhLmlkXSA9IGxpbmVEYXRhLmRhdGEuZmlsZVxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcnMnIHx8IGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmdzJykge1xuICAgICAgLy8uLi4gZG8gbm90aGluZyBmb3IgdGhlc2UgdHdvIC4uLlxuICAgIH0gZWxzZSBpZiAobGluZURhdGEua2V5ID09PSAnY2hhcicpIHtcbiAgICAgIG91dHB1dC5jaGFycy5wdXNoKGxpbmVEYXRhLmRhdGEpXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdrZXJuaW5nJykge1xuICAgICAgb3V0cHV0Lmtlcm5pbmdzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0W2xpbmVEYXRhLmtleV0gPSBsaW5lRGF0YS5kYXRhXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5mdW5jdGlvbiBzcGxpdExpbmUobGluZSwgaWR4KSB7XG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL1xcdCsvZywgJyAnKS50cmltKClcbiAgaWYgKCFsaW5lKVxuICAgIHJldHVybiBudWxsXG5cbiAgdmFyIHNwYWNlID0gbGluZS5pbmRleE9mKCcgJylcbiAgaWYgKHNwYWNlID09PSAtMSkgXG4gICAgdGhyb3cgbmV3IEVycm9yKFwibm8gbmFtZWQgcm93IGF0IGxpbmUgXCIgKyBpZHgpXG5cbiAgdmFyIGtleSA9IGxpbmUuc3Vic3RyaW5nKDAsIHNwYWNlKVxuXG4gIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhzcGFjZSArIDEpXG4gIC8vY2xlYXIgXCJsZXR0ZXJcIiBmaWVsZCBhcyBpdCBpcyBub24tc3RhbmRhcmQgYW5kXG4gIC8vcmVxdWlyZXMgYWRkaXRpb25hbCBjb21wbGV4aXR5IHRvIHBhcnNlIFwiIC8gPSBzeW1ib2xzXG4gIGxpbmUgPSBsaW5lLnJlcGxhY2UoL2xldHRlcj1bXFwnXFxcIl1cXFMrW1xcJ1xcXCJdL2dpLCAnJykgIFxuICBsaW5lID0gbGluZS5zcGxpdChcIj1cIilcbiAgbGluZSA9IGxpbmUubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBzdHIudHJpbSgpLm1hdGNoKCgvKFwiLio/XCJ8W15cIlxcc10rKSsoPz1cXHMqfFxccyokKS9nKSlcbiAgfSlcblxuICB2YXIgZGF0YSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkdCA9IGxpbmVbaV1cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFswXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFsxXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0ID0ge1xuICAgIGtleToga2V5LFxuICAgIGRhdGE6IHt9XG4gIH1cblxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIG91dC5kYXRhW3Yua2V5XSA9IHYuZGF0YTtcbiAgfSlcblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShkYXRhKSB7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gXCJcIlxuXG4gIGlmIChkYXRhLmluZGV4T2YoJ1wiJykgPT09IDAgfHwgZGF0YS5pbmRleE9mKFwiJ1wiKSA9PT0gMClcbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoMSwgZGF0YS5sZW5ndGggLSAxKVxuICBpZiAoZGF0YS5pbmRleE9mKCcsJykgIT09IC0xKVxuICAgIHJldHVybiBwYXJzZUludExpc3QoZGF0YSlcbiAgcmV0dXJuIHBhcnNlSW50KGRhdGEsIDEwKVxufVxuXG5mdW5jdGlvbiBwYXJzZUludExpc3QoZGF0YSkge1xuICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMClcbiAgfSlcbn0iLCJ2YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG52YXIgYW5BcnJheSA9IHJlcXVpcmUoJ2FuLWFycmF5JylcbnZhciBpc0J1ZmZlciA9IHJlcXVpcmUoJ2lzLWJ1ZmZlcicpXG5cbnZhciBDVyA9IFswLCAyLCAzXVxudmFyIENDVyA9IFsyLCAxLCAzXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVF1YWRFbGVtZW50cyhhcnJheSwgb3B0KSB7XG4gICAgLy9pZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IGFuIG91dHB1dCBhcnJheVxuICAgIGlmICghYXJyYXkgfHwgIShhbkFycmF5KGFycmF5KSB8fCBpc0J1ZmZlcihhcnJheSkpKSB7XG4gICAgICAgIG9wdCA9IGFycmF5IHx8IHt9XG4gICAgICAgIGFycmF5ID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnbnVtYmVyJykgLy9iYWNrd2FyZHMtY29tcGF0aWJsZVxuICAgICAgICBvcHQgPSB7IGNvdW50OiBvcHQgfVxuICAgIGVsc2VcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9XG5cbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvcHQudHlwZSA9PT0gJ3N0cmluZycgPyBvcHQudHlwZSA6ICd1aW50MTYnXG4gICAgdmFyIGNvdW50ID0gdHlwZW9mIG9wdC5jb3VudCA9PT0gJ251bWJlcicgPyBvcHQuY291bnQgOiAxXG4gICAgdmFyIHN0YXJ0ID0gKG9wdC5zdGFydCB8fCAwKSBcblxuICAgIHZhciBkaXIgPSBvcHQuY2xvY2t3aXNlICE9PSBmYWxzZSA/IENXIDogQ0NXLFxuICAgICAgICBhID0gZGlyWzBdLCBcbiAgICAgICAgYiA9IGRpclsxXSxcbiAgICAgICAgYyA9IGRpclsyXVxuXG4gICAgdmFyIG51bUluZGljZXMgPSBjb3VudCAqIDZcblxuICAgIHZhciBpbmRpY2VzID0gYXJyYXkgfHwgbmV3IChkdHlwZSh0eXBlKSkobnVtSW5kaWNlcylcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBudW1JbmRpY2VzOyBpICs9IDYsIGogKz0gNCkge1xuICAgICAgICB2YXIgeCA9IGkgKyBzdGFydFxuICAgICAgICBpbmRpY2VzW3ggKyAwXSA9IGogKyAwXG4gICAgICAgIGluZGljZXNbeCArIDFdID0gaiArIDFcbiAgICAgICAgaW5kaWNlc1t4ICsgMl0gPSBqICsgMlxuICAgICAgICBpbmRpY2VzW3ggKyAzXSA9IGogKyBhXG4gICAgICAgIGluZGljZXNbeCArIDRdID0gaiArIGJcbiAgICAgICAgaW5kaWNlc1t4ICsgNV0gPSBqICsgY1xuICAgIH1cbiAgICByZXR1cm4gaW5kaWNlc1xufSIsInZhciBjcmVhdGVMYXlvdXQgPSByZXF1aXJlKCdsYXlvdXQtYm1mb250LXRleHQnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIGNyZWF0ZUluZGljZXMgPSByZXF1aXJlKCdxdWFkLWluZGljZXMnKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIC8vLy8gc2pwdCBwYXRjaCBmb3IgdGhyZWUxNDIsIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGlzIGEgY2xhc3NcbiAgaWYgKCtUSFJFRS5SRVZJU0lPTiA8IDE0Mikge1xuICAgIEJhc2UuY2FsbCh0aGlzKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB6enogPSBuZXcgQmFzZSgpOyAvL1BKVDogY2xhc3NpYyBzanB0IHZhcmlhYmxlIG5hbWluZyDvv71cbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHp6eik7XG4gIH1cblxuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgdGhlc2UgYXMgZGVmYXVsdCB2YWx1ZXMgZm9yIGFueSBzdWJzZXF1ZW50XG4gIC8vIGNhbGxzIHRvIHVwZGF0ZSgpXG4gIHRoaXMuX29wdCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdClcblxuICAvLyBhbHNvIGRvIGFuIGluaXRpYWwgc2V0dXAuLi5cbiAgaWYgKG9wdCkgdGhpcy51cGRhdGUob3B0KVxufVxuXG5pbmhlcml0cyhUZXh0R2VvbWV0cnksIEJhc2UpXG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKG9wdCkge1xuICBpZiAodHlwZW9mIG9wdCA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHQgPSB7IHRleHQ6IG9wdCB9XG4gIH1cblxuICAvLyB1c2UgY29uc3RydWN0b3IgZGVmYXVsdHNcbiAgb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3B0LCBvcHQpXG5cbiAgaWYgKCFvcHQuZm9udCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ211c3Qgc3BlY2lmeSBhIHsgZm9udCB9IGluIG9wdGlvbnMnKVxuICB9XG5cbiAgdGhpcy5sYXlvdXQgPSBjcmVhdGVMYXlvdXQob3B0KVxuXG4gIC8vIGdldCB2ZWMyIHRleGNvb3Jkc1xuICB2YXIgZmxpcFkgPSBvcHQuZmxpcFkgIT09IGZhbHNlXG5cbiAgLy8gdGhlIGRlc2lyZWQgQk1Gb250IGRhdGFcbiAgdmFyIGZvbnQgPSBvcHQuZm9udFxuXG4gIC8vIGRldGVybWluZSB0ZXh0dXJlIHNpemUgZnJvbSBmb250IGZpbGVcbiAgdmFyIHRleFdpZHRoID0gZm9udC5jb21tb24uc2NhbGVXXG4gIHZhciB0ZXhIZWlnaHQgPSBmb250LmNvbW1vbi5zY2FsZUhcblxuICAvLyBnZXQgdmlzaWJsZSBnbHlwaHNcbiAgdmFyIGdseXBocyA9IHRoaXMubGF5b3V0LmdseXBocy5maWx0ZXIoZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICByZXR1cm4gYml0bWFwLndpZHRoICogYml0bWFwLmhlaWdodCA+IDBcbiAgfSlcblxuICAvLyBwcm92aWRlIHZpc2libGUgZ2x5cGhzIGZvciBjb252ZW5pZW5jZVxuICB0aGlzLnZpc2libGVHbHlwaHMgPSBnbHlwaHNcblxuICAvLyBnZXQgY29tbW9uIHZlcnRleCBkYXRhXG4gIHZhciBwb3NpdGlvbnMgPSB2ZXJ0aWNlcy5wb3NpdGlvbnMoZ2x5cGhzKVxuICB2YXIgdXZzID0gdmVydGljZXMudXZzKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpXG4gIHZhciBpbmRpY2VzID0gY3JlYXRlSW5kaWNlcyhbXSwge1xuICAgIGNsb2Nrd2lzZTogdHJ1ZSxcbiAgICB0eXBlOiAndWludDE2JyxcbiAgICBjb3VudDogZ2x5cGhzLmxlbmd0aFxuICB9KVxuXG4gIC8vIHVwZGF0ZSB2ZXJ0ZXggZGF0YVxuICB0aGlzLnNldEluZGV4KGluZGljZXMpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocG9zaXRpb25zLCAyKSlcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3V2JywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSh1dnMsIDIpKVxuXG4gIC8vIHVwZGF0ZSBtdWx0aXBhZ2UgZGF0YVxuICBpZiAoIW9wdC5tdWx0aXBhZ2UgJiYgJ3BhZ2UnIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgIC8vIGRpc2FibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwYWdlJylcbiAgfSBlbHNlIGlmIChvcHQubXVsdGlwYWdlKSB7XG4gICAgLy8gZW5hYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB2YXIgcGFnZXMgPSB2ZXJ0aWNlcy5wYWdlcyhnbHlwaHMpXG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BhZ2UnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBhZ2VzLCAxKSlcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ1NwaGVyZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdTcGhlcmUgPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlID0gbmV3IFRIUkVFLlNwaGVyZSgpXG4gIH1cblxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cyA9IDBcbiAgICB0aGlzLmJvdW5kaW5nU3BoZXJlLmNlbnRlci5zZXQoMCwgMCwgMClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlU3BoZXJlKHBvc2l0aW9ucywgdGhpcy5ib3VuZGluZ1NwaGVyZSlcbiAgaWYgKGlzTmFOKHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RIUkVFLkJ1ZmZlckdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ1NwaGVyZSgpOiAnICtcbiAgICAgICdDb21wdXRlZCByYWRpdXMgaXMgTmFOLiBUaGUgJyArXG4gICAgICAnXCJwb3NpdGlvblwiIGF0dHJpYnV0ZSBpcyBsaWtlbHkgdG8gaGF2ZSBOYU4gdmFsdWVzLicpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdCb3ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nQm94ID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ0JveCA9IG5ldyBUSFJFRS5Cb3gzKClcbiAgfVxuXG4gIHZhciBiYm94ID0gdGhpcy5ib3VuZGluZ0JveFxuICB2YXIgcG9zaXRpb25zID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLmFycmF5XG4gIHZhciBpdGVtU2l6ZSA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5pdGVtU2l6ZVxuICBpZiAoIXBvc2l0aW9ucyB8fCAhaXRlbVNpemUgfHwgcG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICBiYm94Lm1ha2VFbXB0eSgpXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZUJveChwb3NpdGlvbnMsIGJib3gpXG59XG4iLCJ2YXIgaXRlbVNpemUgPSAyXG52YXIgYm94ID0geyBtaW46IFswLCAwXSwgbWF4OiBbMCwgMF0gfVxuXG5mdW5jdGlvbiBib3VuZHMgKHBvc2l0aW9ucykge1xuICB2YXIgY291bnQgPSBwb3NpdGlvbnMubGVuZ3RoIC8gaXRlbVNpemVcbiAgYm94Lm1pblswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWluWzFdID0gcG9zaXRpb25zWzFdXG4gIGJveC5tYXhbMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1heFsxXSA9IHBvc2l0aW9uc1sxXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIHZhciB4ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDBdXG4gICAgdmFyIHkgPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMV1cbiAgICBib3gubWluWzBdID0gTWF0aC5taW4oeCwgYm94Lm1pblswXSlcbiAgICBib3gubWluWzFdID0gTWF0aC5taW4oeSwgYm94Lm1pblsxXSlcbiAgICBib3gubWF4WzBdID0gTWF0aC5tYXgoeCwgYm94Lm1heFswXSlcbiAgICBib3gubWF4WzFdID0gTWF0aC5tYXgoeSwgYm94Lm1heFsxXSlcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlQm94ID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIG91dHB1dC5taW4uc2V0KGJveC5taW5bMF0sIGJveC5taW5bMV0sIDApXG4gIG91dHB1dC5tYXguc2V0KGJveC5tYXhbMF0sIGJveC5tYXhbMV0sIDApXG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVTcGhlcmUgPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgdmFyIG1pblggPSBib3gubWluWzBdXG4gIHZhciBtaW5ZID0gYm94Lm1pblsxXVxuICB2YXIgbWF4WCA9IGJveC5tYXhbMF1cbiAgdmFyIG1heFkgPSBib3gubWF4WzFdXG4gIHZhciB3aWR0aCA9IG1heFggLSBtaW5YXG4gIHZhciBoZWlnaHQgPSBtYXhZIC0gbWluWVxuICB2YXIgbGVuZ3RoID0gTWF0aC5zcXJ0KHdpZHRoICogd2lkdGggKyBoZWlnaHQgKiBoZWlnaHQpXG4gIG91dHB1dC5jZW50ZXIuc2V0KG1pblggKyB3aWR0aCAvIDIsIG1pblkgKyBoZWlnaHQgLyAyLCAwKVxuICBvdXRwdXQucmFkaXVzID0gbGVuZ3RoIC8gMlxufVxuIiwibW9kdWxlLmV4cG9ydHMucGFnZXMgPSBmdW5jdGlvbiBwYWdlcyAoZ2x5cGhzKSB7XG4gIHZhciBwYWdlcyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAxKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGlkID0gZ2x5cGguZGF0YS5wYWdlIHx8IDBcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgICBwYWdlc1tpKytdID0gaWRcbiAgfSlcbiAgcmV0dXJuIHBhZ2VzXG59XG5cbm1vZHVsZS5leHBvcnRzLnV2cyA9IGZ1bmN0aW9uIHV2cyAoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSkge1xuICB2YXIgdXZzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHZhciBidyA9IChiaXRtYXAueCArIGJpdG1hcC53aWR0aClcbiAgICB2YXIgYmggPSAoYml0bWFwLnkgKyBiaXRtYXAuaGVpZ2h0KVxuXG4gICAgLy8gdG9wIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgdTAgPSBiaXRtYXAueCAvIHRleFdpZHRoXG4gICAgdmFyIHYxID0gYml0bWFwLnkgLyB0ZXhIZWlnaHRcbiAgICB2YXIgdTEgPSBidyAvIHRleFdpZHRoXG4gICAgdmFyIHYwID0gYmggLyB0ZXhIZWlnaHRcblxuICAgIGlmIChmbGlwWSkge1xuICAgICAgdjEgPSAodGV4SGVpZ2h0IC0gYml0bWFwLnkpIC8gdGV4SGVpZ2h0XG4gICAgICB2MCA9ICh0ZXhIZWlnaHQgLSBiaCkgLyB0ZXhIZWlnaHRcbiAgICB9XG5cbiAgICAvLyBCTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYxXG4gICAgLy8gVExcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIFRSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBCUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYxXG4gIH0pXG4gIHJldHVybiB1dnNcbn1cblxubW9kdWxlLmV4cG9ydHMucG9zaXRpb25zID0gZnVuY3Rpb24gcG9zaXRpb25zIChnbHlwaHMpIHtcbiAgdmFyIHBvc2l0aW9ucyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcblxuICAgIC8vIGJvdHRvbSBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHggPSBnbHlwaC5wb3NpdGlvblswXSArIGJpdG1hcC54b2Zmc2V0XG4gICAgdmFyIHkgPSBnbHlwaC5wb3NpdGlvblsxXSArIGJpdG1hcC55b2Zmc2V0XG5cbiAgICAvLyBxdWFkIHNpemVcbiAgICB2YXIgdyA9IGJpdG1hcC53aWR0aFxuICAgIHZhciBoID0gYml0bWFwLmhlaWdodFxuXG4gICAgLy8gQkxcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgICAvLyBUTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBUUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gQlJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gIH0pXG4gIHJldHVybiBwb3NpdGlvbnNcbn1cbiIsInZhciBuZXdsaW5lID0gL1xcbi9cbnZhciBuZXdsaW5lQ2hhciA9ICdcXG4nXG52YXIgd2hpdGVzcGFjZSA9IC9cXHMvXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odGV4dCwgb3B0KSB7XG4gICAgdmFyIGxpbmVzID0gbW9kdWxlLmV4cG9ydHMubGluZXModGV4dCwgb3B0KVxuICAgIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcobGluZS5zdGFydCwgbGluZS5lbmQpXG4gICAgfSkuam9pbignXFxuJylcbn1cblxubW9kdWxlLmV4cG9ydHMubGluZXMgPSBmdW5jdGlvbiB3b3Jkd3JhcCh0ZXh0LCBvcHQpIHtcbiAgICBvcHQgPSBvcHR8fHt9XG5cbiAgICAvL3plcm8gd2lkdGggcmVzdWx0cyBpbiBub3RoaW5nIHZpc2libGVcbiAgICBpZiAob3B0LndpZHRoID09PSAwICYmIG9wdC5tb2RlICE9PSAnbm93cmFwJykgXG4gICAgICAgIHJldHVybiBbXVxuXG4gICAgdGV4dCA9IHRleHR8fCcnXG4gICAgdmFyIHdpZHRoID0gdHlwZW9mIG9wdC53aWR0aCA9PT0gJ251bWJlcicgPyBvcHQud2lkdGggOiBOdW1iZXIuTUFYX1ZBTFVFXG4gICAgdmFyIHN0YXJ0ID0gTWF0aC5tYXgoMCwgb3B0LnN0YXJ0fHwwKVxuICAgIHZhciBlbmQgPSB0eXBlb2Ygb3B0LmVuZCA9PT0gJ251bWJlcicgPyBvcHQuZW5kIDogdGV4dC5sZW5ndGhcbiAgICB2YXIgbW9kZSA9IG9wdC5tb2RlXG5cbiAgICB2YXIgbWVhc3VyZSA9IG9wdC5tZWFzdXJlIHx8IG1vbm9zcGFjZVxuICAgIGlmIChtb2RlID09PSAncHJlJylcbiAgICAgICAgcmV0dXJuIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aClcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpXG59XG5cbmZ1bmN0aW9uIGlkeE9mKHRleHQsIGNociwgc3RhcnQsIGVuZCkge1xuICAgIHZhciBpZHggPSB0ZXh0LmluZGV4T2YoY2hyLCBzdGFydClcbiAgICBpZiAoaWR4ID09PSAtMSB8fCBpZHggPiBlbmQpXG4gICAgICAgIHJldHVybiBlbmRcbiAgICByZXR1cm4gaWR4XG59XG5cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZShjaHIpIHtcbiAgICByZXR1cm4gd2hpdGVzcGFjZS50ZXN0KGNocilcbn1cblxuZnVuY3Rpb24gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGxpbmVzID0gW11cbiAgICB2YXIgbGluZVN0YXJ0ID0gc3RhcnRcbiAgICBmb3IgKHZhciBpPXN0YXJ0OyBpPGVuZCAmJiBpPHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNociA9IHRleHQuY2hhckF0KGkpXG4gICAgICAgIHZhciBpc05ld2xpbmUgPSBuZXdsaW5lLnRlc3QoY2hyKVxuXG4gICAgICAgIC8vSWYgd2UndmUgcmVhY2hlZCBhIG5ld2xpbmUsIHRoZW4gc3RlcCBkb3duIGEgbGluZVxuICAgICAgICAvL09yIGlmIHdlJ3ZlIHJlYWNoZWQgdGhlIEVPRlxuICAgICAgICBpZiAoaXNOZXdsaW5lIHx8IGk9PT1lbmQtMSkge1xuICAgICAgICAgICAgdmFyIGxpbmVFbmQgPSBpc05ld2xpbmUgPyBpIDogaSsxXG4gICAgICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIGxpbmVTdGFydCwgbGluZUVuZCwgd2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKG1lYXN1cmVkKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBsaW5lU3RhcnQgPSBpKzFcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKSB7XG4gICAgLy9BIGdyZWVkeSB3b3JkIHdyYXBwZXIgYmFzZWQgb24gTGliR0RYIGFsZ29yaXRobVxuICAgIC8vaHR0cHM6Ly9naXRodWIuY29tL2xpYmdkeC9saWJnZHgvYmxvYi9tYXN0ZXIvZ2R4L3NyYy9jb20vYmFkbG9naWMvZ2R4L2dyYXBoaWNzL2cyZC9CaXRtYXBGb250Q2FjaGUuamF2YVxuICAgIHZhciBsaW5lcyA9IFtdXG5cbiAgICB2YXIgdGVzdFdpZHRoID0gd2lkdGhcbiAgICAvL2lmICdub3dyYXAnIGlzIHNwZWNpZmllZCwgd2Ugb25seSB3cmFwIG9uIG5ld2xpbmUgY2hhcnNcbiAgICBpZiAobW9kZSA9PT0gJ25vd3JhcCcpXG4gICAgICAgIHRlc3RXaWR0aCA9IE51bWJlci5NQVhfVkFMVUVcblxuICAgIHdoaWxlIChzdGFydCA8IGVuZCAmJiBzdGFydCA8IHRleHQubGVuZ3RoKSB7XG4gICAgICAgIC8vZ2V0IG5leHQgbmV3bGluZSBwb3NpdGlvblxuICAgICAgICB2YXIgbmV3TGluZSA9IGlkeE9mKHRleHQsIG5ld2xpbmVDaGFyLCBzdGFydCwgZW5kKVxuXG4gICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgc3RhcnQgb2YgbGluZVxuICAgICAgICB3aGlsZSAoc3RhcnQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSggdGV4dC5jaGFyQXQoc3RhcnQpICkpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIHN0YXJ0KytcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZGV0ZXJtaW5lIHZpc2libGUgIyBvZiBnbHlwaHMgZm9yIHRoZSBhdmFpbGFibGUgd2lkdGhcbiAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbmV3TGluZSwgdGVzdFdpZHRoKVxuXG4gICAgICAgIHZhciBsaW5lRW5kID0gc3RhcnQgKyAobWVhc3VyZWQuZW5kLW1lYXN1cmVkLnN0YXJ0KVxuICAgICAgICB2YXIgbmV4dFN0YXJ0ID0gbGluZUVuZCArIG5ld2xpbmVDaGFyLmxlbmd0aFxuXG4gICAgICAgIC8vaWYgd2UgaGFkIHRvIGN1dCB0aGUgbGluZSBiZWZvcmUgdGhlIG5leHQgbmV3bGluZS4uLlxuICAgICAgICBpZiAobGluZUVuZCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIC8vZmluZCBjaGFyIHRvIGJyZWFrIG9uXG4gICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kKSkpXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGluZUVuZCA9PT0gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXJ0ID4gc3RhcnQgKyBuZXdsaW5lQ2hhci5sZW5ndGgpIG5leHRTdGFydC0tXG4gICAgICAgICAgICAgICAgbGluZUVuZCA9IG5leHRTdGFydCAvLyBJZiBubyBjaGFyYWN0ZXJzIHRvIGJyZWFrLCBzaG93IGFsbC5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gbGluZUVuZFxuICAgICAgICAgICAgICAgIC8vZWF0IHdoaXRlc3BhY2UgYXQgZW5kIG9mIGxpbmVcbiAgICAgICAgICAgICAgICB3aGlsZSAobGluZUVuZCA+IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQgLSBuZXdsaW5lQ2hhci5sZW5ndGgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobGluZUVuZCA+PSBzdGFydCkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIGxpbmVFbmQsIHRlc3RXaWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gocmVzdWx0KVxuICAgICAgICB9XG4gICAgICAgIHN0YXJ0ID0gbmV4dFN0YXJ0XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG4vL2RldGVybWluZXMgdGhlIHZpc2libGUgbnVtYmVyIG9mIGdseXBocyB3aXRoaW4gYSBnaXZlbiB3aWR0aFxuZnVuY3Rpb24gbW9ub3NwYWNlKHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKSB7XG4gICAgdmFyIGdseXBocyA9IE1hdGgubWluKHdpZHRoLCBlbmQtc3RhcnQpXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICBlbmQ6IHN0YXJ0K2dseXBoc1xuICAgIH1cbn0iLCJtb2R1bGUuZXhwb3J0cyA9IGV4dGVuZFxuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiBleHRlbmQoKSB7XG4gICAgdmFyIHRhcmdldCA9IHt9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldXG5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldFxufVxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9hbi1hcnJheS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hcy1udW1iZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZHR5cGUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZXZlbnRzL2V2ZW50cy5qcyIsIm5vZGVfbW9kdWxlcy9pbmhlcml0cy9pbmhlcml0c19icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2lzLWJ1ZmZlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9sYXlvdXQtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wYXJzZS1ibWZvbnQtYXNjaWkvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcXVhZC1pbmRpY2VzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy90aHJlZS1ibWZvbnQtdGV4dC9saWIvdmVydGljZXMuanMiLCJub2RlX21vZHVsZXMvd29yZC13cmFwcGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3h0ZW5kL2ltbXV0YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O2tCQ3dCd0IsWTs7QUFMeEI7Ozs7QUFDQTs7SUFBWSxNOztBQUNaOztJQUFZLE07O0FBQ1o7O0lBQVksSTs7Ozs7O0FBdEJaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JlLFNBQVMsWUFBVCxHQU9QO0FBQUEsaUZBQUosRUFBSTtBQUFBLE1BTk4sV0FNTSxRQU5OLFdBTU07QUFBQSxNQUxOLE1BS00sUUFMTixNQUtNO0FBQUEsK0JBSk4sWUFJTTtBQUFBLE1BSk4sWUFJTSxxQ0FKUyxXQUlUO0FBQUEsd0JBSE4sS0FHTTtBQUFBLE1BSE4sS0FHTSw4QkFIRSxPQUFPLFdBR1Q7QUFBQSx5QkFGTixNQUVNO0FBQUEsTUFGTixNQUVNLCtCQUZHLE9BQU8sWUFFVjtBQUFBLHdCQUROLEtBQ007QUFBQSxNQUROLEtBQ00sOEJBREUsT0FBTyxXQUNUOztBQUVOLE1BQU0sZUFBZSxRQUFRLEdBQVIsR0FBYyxPQUFPLFlBQTFDO0FBQ0Es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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLlxyXG4gKiBvciBIIHNsaWRlciBhbmQgU1Ygc3F1YXJlIHdoaWNoIHNlZW1zIHRvIGJlIHdoYXQgZGF0Lmd1aSB1c2VzLlxyXG4gKiBPciBzb21ldGhpbmcgZmFuY2llciBsaWtlIGEgaHVlIGNpcmNsZSBhcm91bmQgYW4gU1YgdHJpYW5nbGUgZXRjIGV0Yy5cclxuICpcclxuICpcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxuICAgIGdsX0ZyYWdDb2xvci53ID0gMS4wOyAvLyBzanB0XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBnbF9GcmFnQ29sb3IudyA9IDEuMDsgLy8gc2pwdFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUlxyXG4gKiBoLCBzLCB2XHJcbiovXHJcbmZ1bmN0aW9uIEhTVnRvUkdCKGgsIHMsIHYpIHtcclxuICAgIHZhciByLCBnLCBiLCBpLCBmLCBwLCBxLCB0O1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAvL2hhY2sgdG8gdGFrZSBUSFJFRS5WZWN0b3IzLi4uXHJcbiAgICAgICAgaWYgKGgueCAhPT0gdW5kZWZpbmVkKSBzID0gaC55LCB2ID0gaC56LCBoID0gaC54O1xyXG4gICAgICAgIGVsc2UgcyA9IGgucywgdiA9IGgudiwgaCA9IGguaDtcclxuICAgIH1cclxuICAgIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIGYgPSBoICogNiAtIGk7XHJcbiAgICBwID0gdiAqICgxIC0gcyk7XHJcbiAgICBxID0gdiAqICgxIC0gZiAqIHMpO1xyXG4gICAgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcclxuICAgIHN3aXRjaCAoaSAlIDYpIHtcclxuICAgICAgICBjYXNlIDA6IHIgPSB2LCBnID0gdCwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTogciA9IHEsIGcgPSB2LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyOiByID0gcCwgZyA9IHYsIGIgPSB0OyBicmVhaztcclxuICAgICAgICBjYXNlIDM6IHIgPSBwLCBnID0gcSwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDogciA9IHQsIGcgPSBwLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA1OiByID0gdiwgZyA9IHAsIGIgPSBxOyBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcjogcixcclxuICAgICAgICBnOiBnLFxyXG4gICAgICAgIGI6IGJcclxuICAgIH07XHJcbn1cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIHIgIE9iamVjdCA9IHtyLCBnLCBifVxyXG4gKiBPUlxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcblxyXG4gICAgdmFyIHBhbmVsO1xyXG5cclxuICAgIC8vIGNoYW5nZSBjb2xvdXIgaW4gcGxhY2UsIGNvdXJzZSBnYW1tYSBjb21wZW5zYXRpb25cclxuICAgIGZ1bmN0aW9uIGNvbHBvdyhjLCBwPTAuNDU0NSkge1xyXG4gICAgICAgIGMuciA9IE1hdGgucG93KGMuciwgcCk7ICAvLyB1Z2xpZnkgZG9lc24ndCB1bmRlcnN0YW5kICoqXHJcbiAgICAgICAgYy5nID0gTWF0aC5wb3coYy5nLCBwKTsgIC8vIHVnbGlmeSBkb2Vzbid0IHVuZGVyc3RhbmQgKipcclxuICAgICAgICBjLmIgPSBNYXRoLnBvdyhjLmIsIHApOyAgLy8gdWdsaWZ5IGRvZXNuJ3QgdW5kZXJzdGFuZCAqKlxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGNoYW5nZUZuKCkge1xyXG4gICAgICAgIGltYWdlLmNvbG9yLnNldChjb2xvcik7XHJcbiAgICAgICAgY29scG93KGltYWdlLmNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTtcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICBjb2xwb3coaW1hZ2UuY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7aXNDb250cm9sbGVyVmlzaWJsZX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBmdW5jID0gdW5kZWZpbmVkLFxyXG4gIHByZXNzaW5nID0gdW5kZWZpbmVkLFxyXG4gIGltYWdlID0gXCJ0ZXh0dXJlcy9zcG90bGlnaHQuanBnXCIsIC8vVE9ETyBiZXR0ZXIgZGVmYXVsdFxyXG4gIHdpZGUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY2hhbmdlQ29sb3JPbkhvdmVyID0gdHJ1ZSwgLy9xdWljayBoYWNrOiBjb2xvciBwaWNrZXIgd2FudHMgdGhpcyB0byBiZSBmYWxzZVxyXG4gIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAgLy9YWFggbWFnaWMgbnVtYmVycy4uLlxyXG4gIGlmICghaGVpZ2h0KSBoZWlnaHQgPSBMYXlvdXQuUEFORUxfV0lEVEggICogKHdpZGUgPyAwLjk0IDogMC4yNSk7XHJcbiAgXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAod2lkZSA/IDAuOTQgOiAwLjI1KSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gYnV0dG9uRGVwdGg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCAxLCAxICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBvYmouaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgb2JqLm5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IG9iai5ob3ZlckNvbCA6IG9iai5ub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmICghZXZlbnQuYnV0dG9ucykgaW5wdXQucHJlc3NlZCA9IGZhbHNlOyAgLy8gcmVkdWNlIGludGVyYWN0aW9uIGJldHdlZW4gbWFrZURyYWdnYWJsZSBkcmFnIGFuZCB0aGlzIGRyYWdcclxuXHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgMjggQXByaWwgMjAyMiwgZ2VuZXJhbGx5IHByZXR0eSBiYWQgcHJhY3RpY2VcclxuICAgICAgICAvLyBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9uczsgLy9zanB0IHdhbnRlZCB0aGlzXHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxuLy8gaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZvaWQgbWFpbigpIHsgXHJcbiAgdlV2ID0gdXY7XHJcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cclxufVxyXG5gO1xyXG5cclxudmFyIC8qc2pwdCB3YXMgY29uc3QgKi8gbWVzaGJhc2ljX2ZyYWcgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG51bmlmb3JtIHZlYzMgY29sb3I7XHJcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLCBcclxuICAgIC8vIHNvIGFmd2lkdGggZGVwZW5kcyBvbiBzY2FsZSBvZiBndWlcclxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XHJcbn1cclxuLy8vL1xyXG5cclxudm9pZCBtYWluKCkge1xyXG5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxyXG5cclxuICAgIC8vL1xyXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xyXG4gICAgXHJcbiAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKG1hcCwgdlV2KTtcclxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcclxuICAgIGlmIChnbF9GcmFnQ29sb3IuYSA8IDAuMDAwMSkgZGlzY2FyZDtcclxuICAgIC8vL1xyXG5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XHJcbiAgICAvL1hYWDogYmlnIGNodW5rIHJlbW92ZWQgZnJvbSBvcmlnaW5hbCBtZXNoYmFzaWNfZnJhZyBoZXJlLlxyXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cclxufVxyXG5gO1xyXG5cclxuaWYgKCtUSFJFRS5SRVZJU0lPTiA+IDE1MSkgeyAvLyBzanB0IHBhdGNoXHJcbiAgbWVzaGJhc2ljX2ZyYWcgPSAnXFxuI2RlZmluZSBVU0VfTUFQXFxuI2RlZmluZSBVU0VfVVZcXG51bmlmb3JtIHZlYzMgY29sb3I7XFxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xcblxcbiNpbmNsdWRlIDxjb21tb24+XFxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cXG5cXG4vLy8vL1xcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xcbiAgICAvLyBXZSBub3cgYXNzdW1lIFdlYkdMMiBhbmQgc28gdGhlIGRlcml2YXRpdmVzIGFyZSBhdmFpbGFibGUsIFxcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXFxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XFxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcXG59XFxuLy8vL1xcblxcbnZvaWQgbWFpbigpIHtcXG5cXG5cXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxcblxcbiAgICAvLy9cXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xcbiAgICBcXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XFxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XFxuICAgIC8vL1xcblxcblxcdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxjb2xvcnNwYWNlX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XFxufVxcbic7XHJcbiAgY29uc29sZS53YXJuKCdjb2xvcnNwYWNlX2ZyYWdtZW50IHVzZWQnKTtcclxuICB9XHJcbiAgXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBpZiAobWVzaC51c2VyRGF0YS5sYWJlbFN0cmluZyAhPT0gc3RyKSB7XHJcbiAgICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgICAgIG1lc2gudXNlckRhdGEubGFiZWxTdHJpbmcgPSBzdHI7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiB0cnVlIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgLy8vLyBzanB0IHBhdGNoIGZvciB0aHJlZTE0MiwgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaXMgYSBjbGFzc1xyXG4gIGlmICgrVEhSRUUuUkVWSVNJT04gPCAxNDIpIHsgXHJcbiAgICBCYXNlLmNhbGwodGhpcyk7XHJcbiAgfSBlbHNlIHsgXHJcbiAgICBjb25zdCB6enogPSBuZXcgQmFzZSgpOyAvL1BKVDogY2xhc3NpYyBzanB0IHZhcmlhYmxlIG5hbWluZyDwn5mEXHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHp6eik7XHJcbiAgfVxyXG5cbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIHRoZXNlIGFzIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgc3Vic2VxdWVudFxuICAvLyBjYWxscyB0byB1cGRhdGUoKVxuICB0aGlzLl9vcHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX29wdCwgb3B0KVxuXG4gIGlmICghb3B0LmZvbnQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgYSB7IGZvbnQgfSBpbiBvcHRpb25zJylcbiAgfVxuXG4gIHRoaXMubGF5b3V0ID0gY3JlYXRlTGF5b3V0KG9wdClcblxuICAvLyBnZXQgdmVjMiB0ZXhjb29yZHNcbiAgdmFyIGZsaXBZID0gb3B0LmZsaXBZICE9PSBmYWxzZVxuXG4gIC8vIHRoZSBkZXNpcmVkIEJNRm9udCBkYXRhXG4gIHZhciBmb250ID0gb3B0LmZvbnRcblxuICAvLyBkZXRlcm1pbmUgdGV4dHVyZSBzaXplIGZyb20gZm9udCBmaWxlXG4gIHZhciB0ZXhXaWR0aCA9IGZvbnQuY29tbW9uLnNjYWxlV1xuICB2YXIgdGV4SGVpZ2h0ID0gZm9udC5jb21tb24uc2NhbGVIXG5cbiAgLy8gZ2V0IHZpc2libGUgZ2x5cGhzXG4gIHZhciBnbHlwaHMgPSB0aGlzLmxheW91dC5nbHlwaHMuZmlsdGVyKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgcmV0dXJuIGJpdG1hcC53aWR0aCAqIGJpdG1hcC5oZWlnaHQgPiAwXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB2aXNpYmxlIGdseXBocyBmb3IgY29udmVuaWVuY2VcbiAgdGhpcy52aXNpYmxlR2x5cGhzID0gZ2x5cGhzXG5cbiAgLy8gZ2V0IGNvbW1vbiB2ZXJ0ZXggZGF0YVxuICB2YXIgcG9zaXRpb25zID0gdmVydGljZXMucG9zaXRpb25zKGdseXBocylcbiAgdmFyIHV2cyA9IHZlcnRpY2VzLnV2cyhnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKVxuICB2YXIgaW5kaWNlcyA9IGNyZWF0ZUluZGljZXMoW10sIHtcbiAgICBjbG9ja3dpc2U6IHRydWUsXG4gICAgdHlwZTogJ3VpbnQxNicsXG4gICAgY291bnQ6IGdseXBocy5sZW5ndGhcbiAgfSlcblxuICAvLyB1cGRhdGUgdmVydGV4IGRhdGFcbiAgdGhpcy5zZXRJbmRleChpbmRpY2VzKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9ucywgMikpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSlcblxuICAvLyB1cGRhdGUgbXVsdGlwYWdlIGRhdGFcbiAgaWYgKCFvcHQubXVsdGlwYWdlICYmICdwYWdlJyBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAvLyBkaXNhYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGFnZScpXG4gIH0gZWxzZSBpZiAob3B0Lm11bHRpcGFnZSkge1xuICAgIC8vIGVuYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdmFyIHBhZ2VzID0gdmVydGljZXMucGFnZXMoZ2x5cGhzKVxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwYWdlJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwYWdlcywgMSkpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdTcGhlcmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nU3BoZXJlID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZSA9IG5ldyBUSFJFRS5TcGhlcmUoKVxuICB9XG5cbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMgPSAwXG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXIuc2V0KDAsIDAsIDApXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZVNwaGVyZShwb3NpdGlvbnMsIHRoaXMuYm91bmRpbmdTcGhlcmUpXG4gIGlmIChpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogJyArXG4gICAgICAnQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICcgK1xuICAgICAgJ1wicG9zaXRpb25cIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ0JveCA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpXG4gIH1cblxuICB2YXIgYmJveCA9IHRoaXMuYm91bmRpbmdCb3hcbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgYmJveC5tYWtlRW1wdHkoKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVCb3gocG9zaXRpb25zLCBiYm94KVxufVxuIiwidmFyIGl0ZW1TaXplID0gMlxudmFyIGJveCA9IHsgbWluOiBbMCwgMF0sIG1heDogWzAsIDBdIH1cblxuZnVuY3Rpb24gYm91bmRzIChwb3NpdGlvbnMpIHtcbiAgdmFyIGNvdW50ID0gcG9zaXRpb25zLmxlbmd0aCAvIGl0ZW1TaXplXG4gIGJveC5taW5bMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1pblsxXSA9IHBvc2l0aW9uc1sxXVxuICBib3gubWF4WzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5tYXhbMV0gPSBwb3NpdGlvbnNbMV1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICB2YXIgeCA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAwXVxuICAgIHZhciB5ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDFdXG4gICAgYm94Lm1pblswXSA9IE1hdGgubWluKHgsIGJveC5taW5bMF0pXG4gICAgYm94Lm1pblsxXSA9IE1hdGgubWluKHksIGJveC5taW5bMV0pXG4gICAgYm94Lm1heFswXSA9IE1hdGgubWF4KHgsIGJveC5tYXhbMF0pXG4gICAgYm94Lm1heFsxXSA9IE1hdGgubWF4KHksIGJveC5tYXhbMV0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZUJveCA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICBvdXRwdXQubWluLnNldChib3gubWluWzBdLCBib3gubWluWzFdLCAwKVxuICBvdXRwdXQubWF4LnNldChib3gubWF4WzBdLCBib3gubWF4WzFdLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlU3BoZXJlID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIHZhciBtaW5YID0gYm94Lm1pblswXVxuICB2YXIgbWluWSA9IGJveC5taW5bMV1cbiAgdmFyIG1heFggPSBib3gubWF4WzBdXG4gIHZhciBtYXhZID0gYm94Lm1heFsxXVxuICB2YXIgd2lkdGggPSBtYXhYIC0gbWluWFxuICB2YXIgaGVpZ2h0ID0gbWF4WSAtIG1pbllcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KVxuICBvdXRwdXQuY2VudGVyLnNldChtaW5YICsgd2lkdGggLyAyLCBtaW5ZICsgaGVpZ2h0IC8gMiwgMClcbiAgb3V0cHV0LnJhZGl1cyA9IGxlbmd0aCAvIDJcbn1cbiIsIm1vZHVsZS5leHBvcnRzLnBhZ2VzID0gZnVuY3Rpb24gcGFnZXMgKGdseXBocykge1xuICB2YXIgcGFnZXMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMSlcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBpZCA9IGdseXBoLmRhdGEucGFnZSB8fCAwXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gIH0pXG4gIHJldHVybiBwYWdlc1xufVxuXG5tb2R1bGUuZXhwb3J0cy51dnMgPSBmdW5jdGlvbiB1dnMgKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpIHtcbiAgdmFyIHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICB2YXIgYncgPSAoYml0bWFwLnggKyBiaXRtYXAud2lkdGgpXG4gICAgdmFyIGJoID0gKGJpdG1hcC55ICsgYml0bWFwLmhlaWdodClcblxuICAgIC8vIHRvcCBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHUwID0gYml0bWFwLnggLyB0ZXhXaWR0aFxuICAgIHZhciB2MSA9IGJpdG1hcC55IC8gdGV4SGVpZ2h0XG4gICAgdmFyIHUxID0gYncgLyB0ZXhXaWR0aFxuICAgIHZhciB2MCA9IGJoIC8gdGV4SGVpZ2h0XG5cbiAgICBpZiAoZmxpcFkpIHtcbiAgICAgIHYxID0gKHRleEhlaWdodCAtIGJpdG1hcC55KSAvIHRleEhlaWdodFxuICAgICAgdjAgPSAodGV4SGVpZ2h0IC0gYmgpIC8gdGV4SGVpZ2h0XG4gICAgfVxuXG4gICAgLy8gQkxcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MVxuICAgIC8vIFRMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBUUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gQlJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MVxuICB9KVxuICByZXR1cm4gdXZzXG59XG5cbm1vZHVsZS5leHBvcnRzLnBvc2l0aW9ucyA9IGZ1bmN0aW9uIHBvc2l0aW9ucyAoZ2x5cGhzKSB7XG4gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG5cbiAgICAvLyBib3R0b20gbGVmdCBwb3NpdGlvblxuICAgIHZhciB4ID0gZ2x5cGgucG9zaXRpb25bMF0gKyBiaXRtYXAueG9mZnNldFxuICAgIHZhciB5ID0gZ2x5cGgucG9zaXRpb25bMV0gKyBiaXRtYXAueW9mZnNldFxuXG4gICAgLy8gcXVhZCBzaXplXG4gICAgdmFyIHcgPSBiaXRtYXAud2lkdGhcbiAgICB2YXIgaCA9IGJpdG1hcC5oZWlnaHRcblxuICAgIC8vIEJMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gICAgLy8gVExcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gVFJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIEJSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICB9KVxuICByZXR1cm4gcG9zaXRpb25zXG59XG4iLCJ2YXIgbmV3bGluZSA9IC9cXG4vXG52YXIgbmV3bGluZUNoYXIgPSAnXFxuJ1xudmFyIHdoaXRlc3BhY2UgPSAvXFxzL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHRleHQsIG9wdCkge1xuICAgIHZhciBsaW5lcyA9IG1vZHVsZS5leHBvcnRzLmxpbmVzKHRleHQsIG9wdClcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKGxpbmUuc3RhcnQsIGxpbmUuZW5kKVxuICAgIH0pLmpvaW4oJ1xcbicpXG59XG5cbm1vZHVsZS5leHBvcnRzLmxpbmVzID0gZnVuY3Rpb24gd29yZHdyYXAodGV4dCwgb3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgLy96ZXJvIHdpZHRoIHJlc3VsdHMgaW4gbm90aGluZyB2aXNpYmxlXG4gICAgaWYgKG9wdC53aWR0aCA9PT0gMCAmJiBvcHQubW9kZSAhPT0gJ25vd3JhcCcpIFxuICAgICAgICByZXR1cm4gW11cblxuICAgIHRleHQgPSB0ZXh0fHwnJ1xuICAgIHZhciB3aWR0aCA9IHR5cGVvZiBvcHQud2lkdGggPT09ICdudW1iZXInID8gb3B0LndpZHRoIDogTnVtYmVyLk1BWF9WQUxVRVxuICAgIHZhciBzdGFydCA9IE1hdGgubWF4KDAsIG9wdC5zdGFydHx8MClcbiAgICB2YXIgZW5kID0gdHlwZW9mIG9wdC5lbmQgPT09ICdudW1iZXInID8gb3B0LmVuZCA6IHRleHQubGVuZ3RoXG4gICAgdmFyIG1vZGUgPSBvcHQubW9kZVxuXG4gICAgdmFyIG1lYXN1cmUgPSBvcHQubWVhc3VyZSB8fCBtb25vc3BhY2VcbiAgICBpZiAobW9kZSA9PT0gJ3ByZScpXG4gICAgICAgIHJldHVybiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpXG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKVxufVxuXG5mdW5jdGlvbiBpZHhPZih0ZXh0LCBjaHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKGNociwgc3RhcnQpXG4gICAgaWYgKGlkeCA9PT0gLTEgfHwgaWR4ID4gZW5kKVxuICAgICAgICByZXR1cm4gZW5kXG4gICAgcmV0dXJuIGlkeFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hyKSB7XG4gICAgcmV0dXJuIHdoaXRlc3BhY2UudGVzdChjaHIpXG59XG5cbmZ1bmN0aW9uIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBsaW5lcyA9IFtdXG4gICAgdmFyIGxpbmVTdGFydCA9IHN0YXJ0XG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQgJiYgaTx0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaHIgPSB0ZXh0LmNoYXJBdChpKVxuICAgICAgICB2YXIgaXNOZXdsaW5lID0gbmV3bGluZS50ZXN0KGNocilcblxuICAgICAgICAvL0lmIHdlJ3ZlIHJlYWNoZWQgYSBuZXdsaW5lLCB0aGVuIHN0ZXAgZG93biBhIGxpbmVcbiAgICAgICAgLy9PciBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBFT0ZcbiAgICAgICAgaWYgKGlzTmV3bGluZSB8fCBpPT09ZW5kLTEpIHtcbiAgICAgICAgICAgIHZhciBsaW5lRW5kID0gaXNOZXdsaW5lID8gaSA6IGkrMVxuICAgICAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBsaW5lU3RhcnQsIGxpbmVFbmQsIHdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChtZWFzdXJlZClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGluZVN0YXJ0ID0gaSsxXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSkge1xuICAgIC8vQSBncmVlZHkgd29yZCB3cmFwcGVyIGJhc2VkIG9uIExpYkdEWCBhbGdvcml0aG1cbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9saWJnZHgvbGliZ2R4L2Jsb2IvbWFzdGVyL2dkeC9zcmMvY29tL2JhZGxvZ2ljL2dkeC9ncmFwaGljcy9nMmQvQml0bWFwRm9udENhY2hlLmphdmFcbiAgICB2YXIgbGluZXMgPSBbXVxuXG4gICAgdmFyIHRlc3RXaWR0aCA9IHdpZHRoXG4gICAgLy9pZiAnbm93cmFwJyBpcyBzcGVjaWZpZWQsIHdlIG9ubHkgd3JhcCBvbiBuZXdsaW5lIGNoYXJzXG4gICAgaWYgKG1vZGUgPT09ICdub3dyYXAnKVxuICAgICAgICB0ZXN0V2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFXG5cbiAgICB3aGlsZSAoc3RhcnQgPCBlbmQgJiYgc3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAvL2dldCBuZXh0IG5ld2xpbmUgcG9zaXRpb25cbiAgICAgICAgdmFyIG5ld0xpbmUgPSBpZHhPZih0ZXh0LCBuZXdsaW5lQ2hhciwgc3RhcnQsIGVuZClcblxuICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IHN0YXJ0IG9mIGxpbmVcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbmV3TGluZSkge1xuICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UoIHRleHQuY2hhckF0KHN0YXJ0KSApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBzdGFydCsrXG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSB2aXNpYmxlICMgb2YgZ2x5cGhzIGZvciB0aGUgYXZhaWxhYmxlIHdpZHRoXG4gICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIG5ld0xpbmUsIHRlc3RXaWR0aClcblxuICAgICAgICB2YXIgbGluZUVuZCA9IHN0YXJ0ICsgKG1lYXN1cmVkLmVuZC1tZWFzdXJlZC5zdGFydClcbiAgICAgICAgdmFyIG5leHRTdGFydCA9IGxpbmVFbmQgKyBuZXdsaW5lQ2hhci5sZW5ndGhcblxuICAgICAgICAvL2lmIHdlIGhhZCB0byBjdXQgdGhlIGxpbmUgYmVmb3JlIHRoZSBuZXh0IG5ld2xpbmUuLi5cbiAgICAgICAgaWYgKGxpbmVFbmQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICAvL2ZpbmQgY2hhciB0byBicmVhayBvblxuICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmVFbmQgPT09IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGFydCA+IHN0YXJ0ICsgbmV3bGluZUNoYXIubGVuZ3RoKSBuZXh0U3RhcnQtLVxuICAgICAgICAgICAgICAgIGxpbmVFbmQgPSBuZXh0U3RhcnQgLy8gSWYgbm8gY2hhcmFjdGVycyB0byBicmVhaywgc2hvdyBhbGwuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IGxpbmVFbmRcbiAgICAgICAgICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kIC0gbmV3bGluZUNoYXIubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVFbmQgPj0gc3RhcnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBsaW5lRW5kLCB0ZXN0V2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IG5leHRTdGFydFxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuLy9kZXRlcm1pbmVzIHRoZSB2aXNpYmxlIG51bWJlciBvZiBnbHlwaHMgd2l0aGluIGEgZ2l2ZW4gd2lkdGhcbmZ1bmN0aW9uIG1vbm9zcGFjZSh0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBnbHlwaHMgPSBNYXRoLm1pbih3aWR0aCwgZW5kLXN0YXJ0KVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgZW5kOiBzdGFydCtnbHlwaHNcbiAgICB9XG59IiwibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiJdfQ== diff --git a/build/datguivr.map b/build/datguivr.map index 761e99f..1f1ff8a 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireWildcard","obj","__esModule","newObj","key","Object","prototype","hasOwnProperty","default","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_interaction","_colors","_layout","_grab","./colors","./grab","./interaction","./layout","2","_interopRequireDefault","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_textlabel","_graphic","_sharedmaterials","./graphic","./sharedmaterials","./textlabel","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_frag","REVISION","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","labelString","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","pow","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","anArray","BYTES_PER_ELEMENT","buffer","25","num","def","26","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","27","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","28","ctor","superCtor","super_","writable","configurable","TempCtor","29","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","30","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","31","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","32","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","33","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","34","TextGeometry","Base","zzz","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","35","bounds","minX","minY","maxX","maxY","sqrt","36","page","bw","bh","u0","v1","u1","v0","37","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","38","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireWildcard","obj","__esModule","newObj","key","Object","prototype","hasOwnProperty","default","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_interaction","_colors","_layout","_grab","./colors","./grab","./interaction","./layout","2","_interopRequireDefault","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_textlabel","_graphic","_sharedmaterials","./graphic","./sharedmaterials","./textlabel","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","colpow","pow","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_frag","REVISION","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","labelString","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","anArray","BYTES_PER_ELEMENT","buffer","25","num","def","26","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","27","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","28","ctor","superCtor","super_","writable","configurable","TempCtor","29","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","30","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","31","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","32","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","33","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","34","TextGeometry","Base","zzz","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","35","bounds","minX","minY","maxX","maxY","sqrt","36","page","bw","bh","u0","v1","u1","v0","37","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","38","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index 2d01615..33f7846 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -1,4 +1,4 @@ -!function(){function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){return e(b[g][1][a]||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g0&&void 0!==arguments[0]?arguments[0]:{},e=d.textCreator,f=d.object,h=d.propertyName,j=void 0===h?"undefined":h,l=d.width,n=void 0===l?k.PANEL_WIDTH:l,o=d.height,p=void 0===o?k.PANEL_HEIGHT:o,q=d.depth,r=void 0===q?k.PANEL_DEPTH:q,s=.5*n-k.PANEL_MARGIN,t=p-k.PANEL_MARGIN,u=k.BUTTON_DEPTH,v=new THREE.Group;v.guiType="button",v.toString=function(){return"["+v.guiType+": "+j+"]"};var w=k.createPanel(n,p,r);v.add(w);var x=s/t,y=new THREE.BoxGeometry(s,t,u,Math.floor(4*x),4,4);y.translate(.5*s,0,0);var z=new THREE.MeshBasicMaterial;z.visible=!1;var A=new THREE.Mesh(y.clone(),z);A.position.z=.5*u,A.position.x=.5*n;var B=new THREE.MeshBasicMaterial({color:i.BUTTON_COLOR}),C=new THREE.Mesh(y.clone(),B);A.add(C);var D=e.create(j,{scale:.866});D.position.x=.5*s-11e-6*D.layout.width*.5,D.position.z=1.2*u,D.position.y=-.025,C.add(D);var E=e.create(j);E.position.x=k.PANEL_LABEL_TEXT_MARGIN,E.position.z=r,E.position.y=-.03;var F=k.createControllerIDBox(p,i.CONTROLLER_ID_BUTTON);F.position.z=r,w.add(E,A,F);var G=(0,g.default)(A);G.events.on("onPressed",a),G.events.on("onReleased",b),c(),v.interaction=G,v.hitscan=[A,w];var H=m.create({group:v,panel:w});return v.updateControl=function(a){G.update(a),H.update(a),c()},v.name=function(a){return E.updateLabel(a),v},v.buttonLabel=function(a){return D.updateLabel(a),v},v}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./interaction"),g=function(a){return a&&a.__esModule?a:{default:a}}(f),h=a("./colors"),i=d(h),j=a("./layout"),k=d(j),l=a("./grab"),m=d(l)},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15}],2:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a){!1!==y.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0)}function b(){B.visible=w.value,C.visible=D.hovering(),F&&(F.checkmark.visible=w.value,F.borderBox.visible=F.interaction.hovering())}function c(){if(F)return F;var a=.6*m.PANEL_HEIGHT,c=new THREE.BoxGeometry(a,a,v);c.translate(.5*a,0,0);var e=new THREE.MeshBasicMaterial;e.visible=!0;var f=new THREE.Mesh(c.clone(),e);F=f,f.position.z=v;var h=m.createPanel(a+m.BORDER_THICKNESS,a+m.BORDER_THICKNESS,v,!0);F.borderBox=h,h.material.color.setHex(2063079),h.position.x=.5*-m.BORDER_THICKNESS+.5*q,h.position.z=.5*v;var k=o.checkmark(.4*a/m.CHECKBOX_SIZE);F.checkmark=k,k.visible=w.value,k.position.z=.51*v,f.add(k);var l=(0,i.default)(f);return l.events.on("onPressed",d),F.interaction=l,F.updateControl=function(a){w.listen&&(w.value=g[j]),l.update(a),b()},F}function d(a){!1!==y.folder.visible&&!1!==F.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0,F.checkmark.visible=w.value)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,j=void 0===h?"undefined":h,l=e.initialValue,n=void 0!==l&&l,p=e.width,q=void 0===p?m.PANEL_WIDTH:p,s=e.height,t=void 0===s?m.PANEL_HEIGHT:s,u=e.depth,v=void 0===u?m.PANEL_DEPTH:u,w={value:n,listen:!1},x=m.PANEL_HEIGHT-m.CHECKBOX_SIZE,y=new THREE.Group;y.guiType="checkbox",y.toString=function(){return"["+y.guiType+": "+j+"]"};var z=f.create(j);z.position.x=m.PANEL_LABEL_TEXT_MARGIN,z.position.z=v,z.position.y=-.03;var A=void 0;y.onChange=function(a){return A=a,y},y.listen=function(){return w.listen=!0,y},y.name=function(a){return z.updateLabel(a),y};var B=void 0,C=void 0,D=void 0,E=!1;y.showInFolderHeader=function(){var a=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return a!==E&&(E=a,F=c(),a?y.folder.addHeaderItem(F):F.visible=!1),y},Object.defineProperty(y,"isShownInFolderHeader",{get:function(){return E},set:y.showInFolderHeader});var F=void 0,G=void 0;return y.setHeight=function(c){G&&y.remove(G),y.spacing=c;var d=c-x,e=d,f=v,h=.4*d/m.CHECKBOX_SIZE;G=m.createPanel(q,c,v),y.add(G);var l=new THREE.BoxGeometry(d,e,f);l.translate(.5*d,0,0);var n=new THREE.MeshBasicMaterial;n.visible=!1;var p=new THREE.Mesh(l.clone(),n);p.position.z=v,p.position.x=.5*q;var s=new THREE.MeshBasicMaterial({color:k.CHECKBOX_BG_COLOR}),t=new THREE.Mesh(l.clone(),s);p.add(t);var u=m.createControllerIDBox(c,k.CONTROLLER_ID_CHECKBOX);u.position.z=v,C=m.createPanel(d+m.BORDER_THICKNESS,e+m.BORDER_THICKNESS,f,!0),C.material.color.setHex(2063079),C.position.x=.5*-m.BORDER_THICKNESS+.5*q,C.position.z=.5*v,B=o.checkmark(h),B.position.z=.51*v,p.add(B),G.add(z,p,u,C),D=(0,i.default)(p),D.events.on("onPressed",a),b(),y.interaction=D,y.hitscan=[p,G];var A=r.create({group:y,panel:G});return y.updateControl=function(a){w.listen&&(w.value=g[j]),D.update(a),A.update(a),b()},y.folder&&y.folder.requestLayout(),y},y.setHeight(t),y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./textlabel"),h=(e(g),a("./interaction")),i=e(h),j=a("./colors"),k=d(j),l=a("./layout"),m=d(l),n=a("./graphic"),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=d(q)},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a,b,c){var d,e,f,g,h,i,j,k;switch(1===arguments.length&&(void 0!==a.x?(b=a.y,c=a.z,a=a.x):(b=a.s,c=a.v,a=a.h)),g=Math.floor(6*a),h=6*a-g,i=c*(1-b),j=c*(1-h*b),k=c*(1-(1-h)*b),g%6){case 0:d=c,e=k,f=i;break;case 1:d=j,e=c,f=i;break;case 2:d=i,e=c,f=k;break;case 3:d=i,e=j,f=c;break;case 4:d=k,e=i,f=c;break;case 5:d=c,e=i,f=j}return{r:d,g:e,b:f}}function g(a,b,c){1===arguments.length&&(b=a.g,c=a.b,a=a.r);var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=e-f,h=0===e?0:g/e,i=e;switch(e){case f:d=0;break;case a:d=b-c+g*(b0&&void 0!==arguments[0]?arguments[0]:{},h=e.object,i=e.propertyName,k=e.textCreator,m=e.width,n=void 0===m?o.PANEL_WIDTH:m,p=e.height,q=void 0===p?o.PANEL_HEIGHT:p,r=e.depth,v=void 0===r?o.PANEL_DEPTH/3:r,w=c,x=h[i],y=g(x),z={selectedHSV:{value:new THREE.Vector3(y.h,y.s,y.v)}},A=new THREE.MeshBasicMaterial({color:x}),B=new j.default,C={listen:!1},D=(0,l.default)({textCreator:k,func:w,image:A,propertyName:i,width:n,height:q,depth:v,changeColorOnHover:!1});D.guiType="ColorPicker";var E,F=!0;D.onChange=function(a){return B.on("onChange",a),D};var G=D.updateControl;return D.updateControl=function(a){C.listen&&d(),G(a)},D.listen=function(){return C.listen=!0,D},D}Object.defineProperty(c,"__esModule",{value:!0}),c.default=h;var i=a("events"),j=e(i),k=a("./imagebutton"),l=e(k),m=a("./colors"),n=(d(m),a("./layout")),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=(d(q),"\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}"),s="\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n",t="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n gl_FragColor.w = 1.0; // sjpt\n}\n",u="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n gl_FragColor.w = 1.0; // sjpt\n}\n"},{"./colors":4,"./grab":8,"./imagebutton":10,"./layout":15,"./sharedmaterials":19,events:27}],4:[function(a,b,c){"use strict";function d(a,b){var c=new THREE.Color(b),d=a.getAttribute("color"),e=void 0;d?e=d.array:(e=new Float32Array(a.getAttribute("position").array.length).fill(.5),d=a.setAttribute("color",new THREE.BufferAttribute(e,3)));for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:{},n=l.textCreator,p=l.object,r=l.propertyName,u=void 0===r?"undefined":r,v=(l.initialValue,l.options),w=void 0===v?[]:v,x=l.width,y=void 0===x?o.PANEL_WIDTH:x,z=l.height,A=void 0===z?o.PANEL_HEIGHT:z,B=l.depth,C=void 0===B?o.PANEL_DEPTH:B,D={open:!1,listen:!1},E=.5*y-o.PANEL_MARGIN,F=A-o.PANEL_MARGIN,G=C,H=A-1.2*o.PANEL_MARGIN,I=-.4*o.PANEL_MARGIN,J=25,K=new THREE.Group;K.guiType="dropdown",K.toString=function(){return"["+K.guiType+": "+u+"]"},K.userData.sourceObject=p,K.userData.sourcePropertyName=u,K.userData.setValue=function(a){if(-1===w.indexOf(a))return void console.warn('dat.GUIVR: Unknown option "'+a+'" for dropdown "'+u+'".\nValid options: ['+w.join(", ")+"]");p[u]=a,V&&V(p[u])};var L=o.createPanel(y,A,C);K.add(L),K.hitscan=[L];var M=new THREE.Group;M.visible=!1,M.hitscan=[];var N=[],O=[],P=a(),Q=b(P||" ",!1);Q.position.x=.5*o.PANEL_MARGIN+.5*y,Q.position.z=C;var R=q.downArrow();R.position.set(E-.04,0,1.01*C),Q.add(R),Q.add(M),Array.isArray(w)?M.add.apply(M,f(w.map(g))):M.add.apply(M,f(Object.keys(w).map(g))),c();var S=n.create(u);S.position.x=o.PANEL_LABEL_TEXT_MARGIN,S.position.z=C,S.position.y=-.03;var T=o.createControllerIDBox(A,m.CONTROLLER_ID_DROPDOWN);T.position.z=C;var U=o.createPanel(E+o.BORDER_THICKNESS,F+.5*o.BORDER_THICKNESS,G,!0);U.material.color.setHex(2063079),U.position.x=.5*-o.BORDER_THICKNESS+.5*y,U.position.z=.5*C,L.add(S,T,Q,U),j();var V=void 0,W=void 0;K.onChange=function(a){return V=a,K},K.onChoose=function(a){return W=a,K};var X=s.create({group:K,panel:L});return K.listen=function(){return D.listen=!0,K},K.updateControl=function(b){D.listen&&Q.setString(a()),N.forEach(function(a){a.update(b)}),X.update(b),j()},K.name=function(a){return S.updateLabel(a),K},K.setToolTip=function(a){var b=K;b.userData.tip=a,b.userData.tipObj=(0,h.createToolTip)(n,a,o.FOLDER_WIDTH,b.spacing,o.BUTTON_DEPTH)},K.getToolTip=function(){return K.userData.tip},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=g;var h=a("./textlabel"),i=e(h),j=a("./interaction"),k=e(j),l=a("./colors"),m=d(l),n=a("./layout"),o=d(n),p=a("./graphic"),q=d(p),r=a("./grab"),s=d(r),t=a("./utils")},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./textlabel":22,"./utils":23}],6:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b=c-o.PANEL_DEPTH&&console.log("GUIVR Warning: likely problem with z-order in orthographicFolderLayout")}}function g(a){if(a.isOrthographicCamera){var b=a.near,c=a.far,d=(x.length,a.left),e=a.right,f=a.top,g=a.bottom,h=a.position.z;return z.min.set(d,g,-c+h),z.max.set(e,f,-b+h),z}}function h(){function a(a){L.call(H,a)}function b(a){M.call(H,a)}function c(a,b,c){b.updateMatrixWorld(),a.applyMatrix4(b.matrixWorld),b.remove(a),c.add(a)}function d(a,b,c){c.updateMatrixWorld(),a.applyMatrix4((new THREE.Matrix4).getInverse(c.matrixWorld)),b.remove(a),c.add(a)}function h(a,b,e){for(var f=b;f.parent;)f=f.parent;var g=f;c(a,b,g),d(a,g,e)}function j(){l();var a=(0,w.getTopLevelFolder)(H);a===H?(a.modalEditor&&a.modalEditor.performLayout&&a.modalEditor.performLayout(),a.userData.layoutInProgress=!0,a.userData.columnHeight=0,a.userData.columnIndex=0,a.userData.columnYOff=-a.position.y,x.includes(H)||(x.push(H),H.userData.isOrthographic&&f())):(H.userData.columnHeight=H.folder.userData.columnHeight,H.userData.columnIndex=H.folder.userData.columnIndex,x.includes(H)&&(x.splice(x.indexOf(H),1),H.userData.isOrthographic&&f()));var b=o.PANEL_HEIGHT+o.PANEL_SPACING,c=o.FOLDER_HEIGHT+o.PANEL_SPACING,d=c;I.children.forEach(function(a){a.visible=!G.collapsed});var e=0;if(I.children.forEach(function(a,b){void 0===a.guiIndex?a.guiIndex=e+=1:e=a.guiIndex}),I.children.sort(function(a,b){return a.guiIndex-b.guiIndex}),G.collapsed)P.rotation.z=.5*Math.PI;else{P.rotation.z=0;var g=0,h=c;I.children.forEach(function(a,e){a.isFolder&&(a.userData.columnYOff=H.userData.columnYOff-g,a.performLayout());var f,i=a.spacing?a.spacing:b,j=.5*(h+i);if(a.isFolder){var f=.5*(h+c);a.position.y=g-f}else a.position.y=g-j;g-=j,h=i,e0&&void 0!==arguments[0]?arguments[0]:{},r=p.textCreator,s=p.name,u=p.guiAdd,z=p.guiRemove,B=p.addControllerFuncs,C=p.globalControllers,D=25,E=o.FOLDER_WIDTH,F=o.PANEL_DEPTH,G={collapsed:!1,previousParent:void 0},H=new THREE.Group;H.guiType="folder",H.toString=function(){return"["+H.guiType+": "+s+"]"};var I=new THREE.Group;H.add(I);var J=!1;Object.defineProperty(H,"accordion",{get:function(){return J},set:function(a){a&&!J&&H.guiChildren.filter(function(a){return a.isFolder}).map(function(a){return a.close()}),J=a,H.requestLayout()}}),H.requestLayout=function(){var a=(0,w.getTopLevelFolder)(H);a.userData.layoutInProgress?console.log("requested layout of folder "+H.folderName+" while layout already in progress..."):a.userData.layoutPending=!0},H.performLayout=j;var K=new THREE.Quaternion;H.fixFolderPosition=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.01,b=this;if(b.userData.isOrthographic){b.setRotationFromQuaternion(K);var c=(0,w.setBoxFromObject)(y,b),d=c.max.x-c.min.x,e=(c.max.y,c.max.y,b.userData.isOrthographic),f=g(e),h=c.intersect(f),i=h.getSize(A),j=e.right-e.left,k=e.top-e.bottom;i.x/=d,i.y/=d;var l=!1;i.x-1&&a.userData.semiDetached.splice(c,1)}return H._setDetachedFrom(null),!0},H.addController=function(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},e=d.textCreator,f=d.object,h=d.propertyName,j=void 0===h?"undefined":h,l=d.width,n=void 0===l?k.PANEL_WIDTH:l,o=d.height,p=void 0===o?k.PANEL_HEIGHT:o,q=d.depth,r=void 0===q?k.PANEL_DEPTH:q,s=.5*n-k.PANEL_MARGIN,t=p-k.PANEL_MARGIN,u=k.BUTTON_DEPTH,v=new THREE.Group;v.guiType="button",v.toString=function(){return"["+v.guiType+": "+j+"]"};var w=k.createPanel(n,p,r);v.add(w);var x=s/t,y=new THREE.BoxGeometry(s,t,u,Math.floor(4*x),4,4);y.translate(.5*s,0,0);var z=new THREE.MeshBasicMaterial;z.visible=!1;var A=new THREE.Mesh(y.clone(),z);A.position.z=.5*u,A.position.x=.5*n;var B=new THREE.MeshBasicMaterial({color:i.BUTTON_COLOR}),C=new THREE.Mesh(y.clone(),B);A.add(C);var D=e.create(j,{scale:.866});D.position.x=.5*s-11e-6*D.layout.width*.5,D.position.z=1.2*u,D.position.y=-.025,C.add(D);var E=e.create(j);E.position.x=k.PANEL_LABEL_TEXT_MARGIN,E.position.z=r,E.position.y=-.03;var F=k.createControllerIDBox(p,i.CONTROLLER_ID_BUTTON);F.position.z=r,w.add(E,A,F);var G=(0,g.default)(A);G.events.on("onPressed",a),G.events.on("onReleased",b),c(),v.interaction=G,v.hitscan=[A,w];var H=m.create({group:v,panel:w});return v.updateControl=function(a){G.update(a),H.update(a),c()},v.name=function(a){return E.updateLabel(a),v},v.buttonLabel=function(a){return D.updateLabel(a),v},v}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./interaction"),g=function(a){return a&&a.__esModule?a:{default:a}}(f),h=a("./colors"),i=d(h),j=a("./layout"),k=d(j),l=a("./grab"),m=d(l)},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15}],2:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a){!1!==y.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0)}function b(){B.visible=w.value,C.visible=D.hovering(),F&&(F.checkmark.visible=w.value,F.borderBox.visible=F.interaction.hovering())}function c(){if(F)return F;var a=.6*m.PANEL_HEIGHT,c=new THREE.BoxGeometry(a,a,v);c.translate(.5*a,0,0);var e=new THREE.MeshBasicMaterial;e.visible=!0;var f=new THREE.Mesh(c.clone(),e);F=f,f.position.z=v;var h=m.createPanel(a+m.BORDER_THICKNESS,a+m.BORDER_THICKNESS,v,!0);F.borderBox=h,h.material.color.setHex(2063079),h.position.x=.5*-m.BORDER_THICKNESS+.5*q,h.position.z=.5*v;var k=o.checkmark(.4*a/m.CHECKBOX_SIZE);F.checkmark=k,k.visible=w.value,k.position.z=.51*v,f.add(k);var l=(0,i.default)(f);return l.events.on("onPressed",d),F.interaction=l,F.updateControl=function(a){w.listen&&(w.value=g[j]),l.update(a),b()},F}function d(a){!1!==y.folder.visible&&!1!==F.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0,F.checkmark.visible=w.value)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,j=void 0===h?"undefined":h,l=e.initialValue,n=void 0!==l&&l,p=e.width,q=void 0===p?m.PANEL_WIDTH:p,s=e.height,t=void 0===s?m.PANEL_HEIGHT:s,u=e.depth,v=void 0===u?m.PANEL_DEPTH:u,w={value:n,listen:!1},x=m.PANEL_HEIGHT-m.CHECKBOX_SIZE,y=new THREE.Group;y.guiType="checkbox",y.toString=function(){return"["+y.guiType+": "+j+"]"};var z=f.create(j);z.position.x=m.PANEL_LABEL_TEXT_MARGIN,z.position.z=v,z.position.y=-.03;var A=void 0;y.onChange=function(a){return A=a,y},y.listen=function(){return w.listen=!0,y},y.name=function(a){return z.updateLabel(a),y};var B=void 0,C=void 0,D=void 0,E=!1;y.showInFolderHeader=function(){var a=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return a!==E&&(E=a,F=c(),a?y.folder.addHeaderItem(F):F.visible=!1),y},Object.defineProperty(y,"isShownInFolderHeader",{get:function(){return E},set:y.showInFolderHeader});var F=void 0,G=void 0;return y.setHeight=function(c){G&&y.remove(G),y.spacing=c;var d=c-x,e=d,f=v,h=.4*d/m.CHECKBOX_SIZE;G=m.createPanel(q,c,v),y.add(G);var l=new THREE.BoxGeometry(d,e,f);l.translate(.5*d,0,0);var n=new THREE.MeshBasicMaterial;n.visible=!1;var p=new THREE.Mesh(l.clone(),n);p.position.z=v,p.position.x=.5*q;var s=new THREE.MeshBasicMaterial({color:k.CHECKBOX_BG_COLOR}),t=new THREE.Mesh(l.clone(),s);p.add(t);var u=m.createControllerIDBox(c,k.CONTROLLER_ID_CHECKBOX);u.position.z=v,C=m.createPanel(d+m.BORDER_THICKNESS,e+m.BORDER_THICKNESS,f,!0),C.material.color.setHex(2063079),C.position.x=.5*-m.BORDER_THICKNESS+.5*q,C.position.z=.5*v,B=o.checkmark(h),B.position.z=.51*v,p.add(B),G.add(z,p,u,C),D=(0,i.default)(p),D.events.on("onPressed",a),b(),y.interaction=D,y.hitscan=[p,G];var A=r.create({group:y,panel:G});return y.updateControl=function(a){w.listen&&(w.value=g[j]),D.update(a),A.update(a),b()},y.folder&&y.folder.requestLayout(),y},y.setHeight(t),y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./textlabel"),h=(e(g),a("./interaction")),i=e(h),j=a("./colors"),k=d(j),l=a("./layout"),m=d(l),n=a("./graphic"),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=d(q)},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a,b,c){var d,e,f,g,h,i,j,k;switch(1===arguments.length&&(void 0!==a.x?(b=a.y,c=a.z,a=a.x):(b=a.s,c=a.v,a=a.h)),g=Math.floor(6*a),h=6*a-g,i=c*(1-b),j=c*(1-h*b),k=c*(1-(1-h)*b),g%6){case 0:d=c,e=k,f=i;break;case 1:d=j,e=c,f=i;break;case 2:d=i,e=c,f=k;break;case 3:d=i,e=j,f=c;break;case 4:d=k,e=i,f=c;break;case 5:d=c,e=i,f=j}return{r:d,g:e,b:f}}function g(a,b,c){1===arguments.length&&(b=a.g,c=a.b,a=a.r);var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=e-f,h=0===e?0:g/e,i=e;switch(e){case f:d=0;break;case a:d=b-c+g*(b1&&void 0!==arguments[1]?arguments[1]:.4545;a.r=Math.pow(a.r,b),a.g=Math.pow(a.g,b),a.b=Math.pow(a.b,b)}function b(){B.color.set(y),a(B.color),C.emit("onChange",y)}function c(){F&&F.position.set(0,0,5*w)}function d(){if(F)return F.visible=!F.visible,F.visible&&E.folder.setModalEditor(F),void c();if(F=dat.GUIVR.create("Color Chooser"),F.hideHeader(),G){var a=function(a){A.selectedHSV.value.x=a.localPoint.x;var c=f(A.selectedHSV.value);y.setRGB(c.r,c.g,c.b),b(),h.needsUpdate=!0},d=new THREE.ShaderMaterial({uniforms:A,vertexShader:s,fragmentShader:t}),e=function(a){A.selectedHSV.value.y=a.localPoint.x,A.selectedHSV.value.z=a.localPoint.y;var c=f(A.selectedHSV.value);y.setRGB(c.r,c.g,c.b),b(),h.needsUpdate=!0},g=o.BUTTON_DEPTH/10;F.addXYController(e,d,!0,o.PANEL_WIDTH/2,w,g);var h=new THREE.ShaderMaterial({uniforms:A,vertexShader:s,fragmentShader:u});F.addXYController(a,h,!0,o.PANEL_HEIGHT,w,g)}else F.add(y,"r",0,1).onChange(b),F.add(y,"g",0,1).onChange(b),F.add(y,"b",0,1).onChange(b);E.add(F),E.folder.setModalEditor(F),c(),F.folder=E.folder}function e(){y=i[k],B.color.copy(y),a(B.color),A.selectedHSV.value.copy(g(y))}var h=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=h.object,k=h.propertyName,m=h.textCreator,n=h.width,p=void 0===n?o.PANEL_WIDTH:n,q=h.height,r=void 0===q?o.PANEL_HEIGHT:q,v=h.depth,w=void 0===v?o.PANEL_DEPTH/3:v,x=d,y=i[k],z=g(y),A={selectedHSV:{value:new THREE.Vector3(z.h,z.s,z.v)}},B=new THREE.MeshBasicMaterial({color:y}),C=new j.default,D={listen:!1},E=(0,l.default)({textCreator:m,func:x,image:B,propertyName:k,width:p,height:r,depth:w,changeColorOnHover:!1});E.guiType="ColorPicker";var F,G=!0;E.onChange=function(a){return C.on("onChange",a),E};var H=E.updateControl;return E.updateControl=function(a){D.listen&&e(),H(a)},E.listen=function(){return D.listen=!0,E},E}Object.defineProperty(c,"__esModule",{value:!0}),c.default=h;var i=a("events"),j=e(i),k=a("./imagebutton"),l=e(k),m=a("./colors"),n=(d(m),a("./layout")),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=(d(q),"\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}"),s="\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n",t="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n gl_FragColor.w = 1.0; // sjpt\n}\n",u="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n gl_FragColor.w = 1.0; // sjpt\n}\n"},{"./colors":4,"./grab":8,"./imagebutton":10,"./layout":15,"./sharedmaterials":19,events:27}],4:[function(a,b,c){"use strict";function d(a,b){var c=new THREE.Color(b),d=a.getAttribute("color"),e=void 0;d?e=d.array:(e=new Float32Array(a.getAttribute("position").array.length).fill(.5),d=a.setAttribute("color",new THREE.BufferAttribute(e,3)));for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:{},n=l.textCreator,p=l.object,r=l.propertyName,u=void 0===r?"undefined":r,v=(l.initialValue,l.options),w=void 0===v?[]:v,x=l.width,y=void 0===x?o.PANEL_WIDTH:x,z=l.height,A=void 0===z?o.PANEL_HEIGHT:z,B=l.depth,C=void 0===B?o.PANEL_DEPTH:B,D={open:!1,listen:!1},E=.5*y-o.PANEL_MARGIN,F=A-o.PANEL_MARGIN,G=C,H=A-1.2*o.PANEL_MARGIN,I=-.4*o.PANEL_MARGIN,J=25,K=new THREE.Group;K.guiType="dropdown",K.toString=function(){return"["+K.guiType+": "+u+"]"},K.userData.sourceObject=p,K.userData.sourcePropertyName=u,K.userData.setValue=function(a){if(-1===w.indexOf(a))return void console.warn('dat.GUIVR: Unknown option "'+a+'" for dropdown "'+u+'".\nValid options: ['+w.join(", ")+"]");p[u]=a,V&&V(p[u])};var L=o.createPanel(y,A,C);K.add(L),K.hitscan=[L];var M=new THREE.Group;M.visible=!1,M.hitscan=[];var N=[],O=[],P=a(),Q=b(P||" ",!1);Q.position.x=.5*o.PANEL_MARGIN+.5*y,Q.position.z=C;var R=q.downArrow();R.position.set(E-.04,0,1.01*C),Q.add(R),Q.add(M),Array.isArray(w)?M.add.apply(M,f(w.map(g))):M.add.apply(M,f(Object.keys(w).map(g))),c();var S=n.create(u);S.position.x=o.PANEL_LABEL_TEXT_MARGIN,S.position.z=C,S.position.y=-.03;var T=o.createControllerIDBox(A,m.CONTROLLER_ID_DROPDOWN);T.position.z=C;var U=o.createPanel(E+o.BORDER_THICKNESS,F+.5*o.BORDER_THICKNESS,G,!0);U.material.color.setHex(2063079),U.position.x=.5*-o.BORDER_THICKNESS+.5*y,U.position.z=.5*C,L.add(S,T,Q,U),j();var V=void 0,W=void 0;K.onChange=function(a){return V=a,K},K.onChoose=function(a){return W=a,K};var X=s.create({group:K,panel:L});return K.listen=function(){return D.listen=!0,K},K.updateControl=function(b){D.listen&&Q.setString(a()),N.forEach(function(a){a.update(b)}),X.update(b),j()},K.name=function(a){return S.updateLabel(a),K},K.setToolTip=function(a){var b=K;b.userData.tip=a,b.userData.tipObj=(0,h.createToolTip)(n,a,o.FOLDER_WIDTH,b.spacing,o.BUTTON_DEPTH)},K.getToolTip=function(){return K.userData.tip},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=g;var h=a("./textlabel"),i=e(h),j=a("./interaction"),k=e(j),l=a("./colors"),m=d(l),n=a("./layout"),o=d(n),p=a("./graphic"),q=d(p),r=a("./grab"),s=d(r),t=a("./utils")},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./textlabel":22,"./utils":23}],6:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b=c-o.PANEL_DEPTH&&console.log("GUIVR Warning: likely problem with z-order in orthographicFolderLayout")}}function g(a){if(a.isOrthographicCamera){var b=a.near,c=a.far,d=(x.length,a.left),e=a.right,f=a.top,g=a.bottom,h=a.position.z;return z.min.set(d,g,-c+h),z.max.set(e,f,-b+h),z}}function h(){function a(a){L.call(H,a)}function b(a){M.call(H,a)}function c(a,b,c){b.updateMatrixWorld(),a.applyMatrix4(b.matrixWorld),b.remove(a),c.add(a)}function d(a,b,c){c.updateMatrixWorld(),a.applyMatrix4((new THREE.Matrix4).getInverse(c.matrixWorld)),b.remove(a),c.add(a)}function h(a,b,e){for(var f=b;f.parent;)f=f.parent;var g=f;c(a,b,g),d(a,g,e)}function j(){l();var a=(0,w.getTopLevelFolder)(H);a===H?(a.modalEditor&&a.modalEditor.performLayout&&a.modalEditor.performLayout(),a.userData.layoutInProgress=!0,a.userData.columnHeight=0,a.userData.columnIndex=0,a.userData.columnYOff=-a.position.y,x.includes(H)||(x.push(H),H.userData.isOrthographic&&f())):(H.userData.columnHeight=H.folder.userData.columnHeight,H.userData.columnIndex=H.folder.userData.columnIndex,x.includes(H)&&(x.splice(x.indexOf(H),1),H.userData.isOrthographic&&f()));var b=o.PANEL_HEIGHT+o.PANEL_SPACING,c=o.FOLDER_HEIGHT+o.PANEL_SPACING,d=c;I.children.forEach(function(a){a.visible=!G.collapsed});var e=0;if(I.children.forEach(function(a,b){void 0===a.guiIndex?a.guiIndex=e+=1:e=a.guiIndex}),I.children.sort(function(a,b){return a.guiIndex-b.guiIndex}),G.collapsed)P.rotation.z=.5*Math.PI;else{P.rotation.z=0;var g=0,h=c;I.children.forEach(function(a,e){a.isFolder&&(a.userData.columnYOff=H.userData.columnYOff-g,a.performLayout());var f,i=a.spacing?a.spacing:b,j=.5*(h+i);if(a.isFolder){var f=.5*(h+c);a.position.y=g-f}else a.position.y=g-j;g-=j,h=i,e0&&void 0!==arguments[0]?arguments[0]:{},r=p.textCreator,s=p.name,u=p.guiAdd,z=p.guiRemove,B=p.addControllerFuncs,C=p.globalControllers,D=25,E=o.FOLDER_WIDTH,F=o.PANEL_DEPTH,G={collapsed:!1,previousParent:void 0},H=new THREE.Group;H.guiType="folder",H.toString=function(){return"["+H.guiType+": "+s+"]"};var I=new THREE.Group;H.add(I);var J=!1;Object.defineProperty(H,"accordion",{get:function(){return J},set:function(a){a&&!J&&H.guiChildren.filter(function(a){return a.isFolder}).map(function(a){return a.close()}),J=a,H.requestLayout()}}),H.requestLayout=function(){var a=(0,w.getTopLevelFolder)(H);a.userData.layoutInProgress?console.log("requested layout of folder "+H.folderName+" while layout already in progress..."):a.userData.layoutPending=!0},H.performLayout=j;var K=new THREE.Quaternion;H.fixFolderPosition=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.01,b=this;if(b.userData.isOrthographic){b.setRotationFromQuaternion(K);var c=(0,w.setBoxFromObject)(y,b),d=c.max.x-c.min.x,e=(c.max.y,c.max.y,b.userData.isOrthographic),f=g(e),h=c.intersect(f),i=h.getSize(A),j=e.right-e.left,k=e.top-e.bottom;i.x/=d,i.y/=d;var l=!1;i.x-1&&a.userData.semiDetached.splice(c,1)}return H._setDetachedFrom(null),!0},H.addController=function(){for(var a=arguments.length,b=Array(a),c=0;c { From 35df5df8569a011da398f28a146d3286b3f03261 Mon Sep 17 00:00:00 2001 From: sjpt Date: Wed, 8 May 2024 16:08:08 +0100 Subject: [PATCH 23/24] colourpicker uses sqrt for approx colour correction folder.js uses simpler z position code, which an prevent folder lockout when too many folders undocked larger MAX_FOLDER_ITEMS_IN_COLUMN = 40 --- build/datguivr.js | 29 ++++++++++++++--------------- build/datguivr.map | 2 +- build/datguivr.min.js | 2 +- modules/datguivr/colorpicker.js | 4 ++-- modules/datguivr/folder.js | 15 ++++++++++----- 5 files changed, 28 insertions(+), 24 deletions(-) diff --git a/build/datguivr.js b/build/datguivr.js index ae7a316..b173f18 100644 --- a/build/datguivr.js +++ b/build/datguivr.js @@ -513,9 +513,9 @@ var hsv2rgb = '\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / var VertShader = '\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n'; -var SVFragShader = '\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n' + hsv2rgb + '\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n gl_FragColor.w = 1.0; // sjpt\n}\n'; +var SVFragShader = '\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n' + hsv2rgb + '\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = sqrt(hsv2rgb(hsv));\n gl_FragColor.w = 1.0; // sjpt\n}\n'; -var HSliderFragShader = '\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n' + hsv2rgb + '\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n gl_FragColor.w = 1.0; // sjpt\n}\n'; +var HSliderFragShader = '\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n' + hsv2rgb + '\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = sqrt(hsv2rgb(vec3(vUv.x, 1., v)));\n gl_FragColor.w = 1.0; // sjpt\n}\n'; // http://stackoverflow.com/questions/17242144/javascript-convert-hsb-hsv-color-to-rgb-accurately //why not use THREE.Color methods? @@ -1228,19 +1228,18 @@ function orthographicFolderLayout() { var near = cam.near, far = cam.far, n = tfs.length; - var zs = tfs.map(function (f) { - return f.position.z; - }).sort(function (a, b) { - return a - b; - }); - zs[-1] = -9999; // I suppose this is to deal with accessing zs[i-1] below ¯\_(ツ)_/¯ - zs.forEach(function (z, i) { - return zs[i] = Math.max(zs[i], zs[i - 1] + 10 * Layout.PANEL_DEPTH); - }); // in case of equals + // Attempt to keep some old z values threw others out, + // especially if many folders undocked in which case we hit the "GUIVR Warning" below + // and sometimes the menus froze. + // So we use the simpler z - i/n below. + //const zs = tfs.map(f => f.position.z).sort((a,b)=>a-b); + //zs[-1] = -9999; // I suppose this is to deal with accessing zs[i-1] below ¯\_(ツ)_/¯ + //zs.forEach( (z,i) => zs[i] = Math.max(zs[i], zs[i-1] + 10*Layout.PANEL_DEPTH)); // in case of equals tfs.forEach(function (f, i) { //let z = -0.9*far + i*10*Layout.PANEL_DEPTH; - var z = zs[i]; + //const z = zs[i]; + var z = i / n; if (z !== f.position.z) { f.position.z = z; f.updateMatrix(); @@ -1277,7 +1276,7 @@ function createFolder() { addControllerFuncs = _ref.addControllerFuncs, globalControllers = _ref.globalControllers; - var MAX_FOLDER_ITEMS_IN_COLUMN = 25; + var MAX_FOLDER_ITEMS_IN_COLUMN = 40; var width = Layout.FOLDER_WIDTH; var depth = Layout.PANEL_DEPTH; @@ -6725,7 +6724,7 @@ function splitLine(line, idx) { line = line.substring(space + 1) //clear "letter" field as it is non-standard and //requires additional complexity to parse " / = symbols - line = line.replace(/letter=[\'\"]\S+[\'\"]/gi, '') + line = line.replace(/letter=[\'\"]\S+[\'\"]/gi, '') line = line.split("=") line = line.map(function(str) { return str.trim().match((/(".*?"|[^"\s]+)+(?=\s*|\s*$)/g)) @@ -7220,4 +7219,4 @@ function extend() { } },{}]},{},[12]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9hbi1hcnJheS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hcy1udW1iZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZHR5cGUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZXZlbnRzL2V2ZW50cy5qcyIsIm5vZGVfbW9kdWxlcy9pbmhlcml0cy9pbmhlcml0c19icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2lzLWJ1ZmZlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9sYXlvdXQtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wYXJzZS1ibWZvbnQtYXNjaWkvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcXVhZC1pbmRpY2VzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy90aHJlZS1ibWZvbnQtdGV4dC9saWIvdmVydGljZXMuanMiLCJub2RlX21vZHVsZXMvd29yZC13cmFwcGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3h0ZW5kL2ltbXV0YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O2tCQ3dCd0IsWTs7QUFMeEI7Ozs7QUFDQTs7SUFBWSxNOztBQUNaOztJQUFZLE07O0FBQ1o7O0lBQVksSTs7Ozs7O0FBdEJaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JlLFNBQVMsWUFBVCxHQU9QO0FBQUEsaUZBQUosRUFBSTtBQUFBLE1BTk4sV0FNTSxRQU5OLFdBTU07QUFBQSxNQUxOLE1BS00sUUFMTixNQUtNO0FBQUEsK0JBSk4sWUFJTTtBQUFBLE1BSk4sWUFJTSxxQ0FKUyxXQUlUO0FBQUEsd0JBSE4sS0FHTTtBQUFBLE1BSE4sS0FHTSw4QkFIRSxPQUFPLFdBR1Q7QUFBQSx5QkFGTixNQUVNO0FBQUEsTUFGTixNQUVNLCtCQUZHLE9BQU8sWUFFVjtBQUFBLHdCQUROLEtBQ007QUFBQSxNQUROLEtBQ00sOEJBREUsT0FBTyxXQUNUOztBQUVOLE1BQU0sZUFBZSxRQUFRLEdBQVIsR0FBYyxPQUFPLFlBQTFDO0FBQ0Es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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLlxyXG4gKiBvciBIIHNsaWRlciBhbmQgU1Ygc3F1YXJlIHdoaWNoIHNlZW1zIHRvIGJlIHdoYXQgZGF0Lmd1aSB1c2VzLlxyXG4gKiBPciBzb21ldGhpbmcgZmFuY2llciBsaWtlIGEgaHVlIGNpcmNsZSBhcm91bmQgYW4gU1YgdHJpYW5nbGUgZXRjIGV0Yy5cclxuICpcclxuICpcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IGhzdjJyZ2IoaHN2KTtcclxuICAgIGdsX0ZyYWdDb2xvci53ID0gMS4wOyAvLyBzanB0XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBoc3YycmdiKHZlYzModlV2LngsIDEuLCB2KSk7XHJcbiAgICBnbF9GcmFnQ29sb3IudyA9IDEuMDsgLy8gc2pwdFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUlxyXG4gKiBoLCBzLCB2XHJcbiovXHJcbmZ1bmN0aW9uIEhTVnRvUkdCKGgsIHMsIHYpIHtcclxuICAgIHZhciByLCBnLCBiLCBpLCBmLCBwLCBxLCB0O1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAvL2hhY2sgdG8gdGFrZSBUSFJFRS5WZWN0b3IzLi4uXHJcbiAgICAgICAgaWYgKGgueCAhPT0gdW5kZWZpbmVkKSBzID0gaC55LCB2ID0gaC56LCBoID0gaC54O1xyXG4gICAgICAgIGVsc2UgcyA9IGgucywgdiA9IGgudiwgaCA9IGguaDtcclxuICAgIH1cclxuICAgIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIGYgPSBoICogNiAtIGk7XHJcbiAgICBwID0gdiAqICgxIC0gcyk7XHJcbiAgICBxID0gdiAqICgxIC0gZiAqIHMpO1xyXG4gICAgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcclxuICAgIHN3aXRjaCAoaSAlIDYpIHtcclxuICAgICAgICBjYXNlIDA6IHIgPSB2LCBnID0gdCwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTogciA9IHEsIGcgPSB2LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyOiByID0gcCwgZyA9IHYsIGIgPSB0OyBicmVhaztcclxuICAgICAgICBjYXNlIDM6IHIgPSBwLCBnID0gcSwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDogciA9IHQsIGcgPSBwLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA1OiByID0gdiwgZyA9IHAsIGIgPSBxOyBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcjogcixcclxuICAgICAgICBnOiBnLFxyXG4gICAgICAgIGI6IGJcclxuICAgIH07XHJcbn1cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIHIgIE9iamVjdCA9IHtyLCBnLCBifVxyXG4gKiBPUlxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcblxyXG4gICAgdmFyIHBhbmVsO1xyXG5cclxuICAgIC8vIGNoYW5nZSBjb2xvdXIgaW4gcGxhY2UsIGNvdXJzZSBnYW1tYSBjb21wZW5zYXRpb25cclxuICAgIGZ1bmN0aW9uIGNvbHBvdyhjLCBwPTAuNDU0NSkge1xyXG4gICAgICAgIGMuciA9IE1hdGgucG93KGMuciwgcCk7ICAvLyB1Z2xpZnkgZG9lc24ndCB1bmRlcnN0YW5kICoqXHJcbiAgICAgICAgYy5nID0gTWF0aC5wb3coYy5nLCBwKTsgIC8vIHVnbGlmeSBkb2Vzbid0IHVuZGVyc3RhbmQgKipcclxuICAgICAgICBjLmIgPSBNYXRoLnBvdyhjLmIsIHApOyAgLy8gdWdsaWZ5IGRvZXNuJ3QgdW5kZXJzdGFuZCAqKlxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGNoYW5nZUZuKCkge1xyXG4gICAgICAgIGltYWdlLmNvbG9yLnNldChjb2xvcik7XHJcbiAgICAgICAgY29scG93KGltYWdlLmNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTtcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICBjb2xwb3coaW1hZ2UuY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIGNvbnN0IHpzID0gdGZzLm1hcChmID0+IGYucG9zaXRpb24ueikuc29ydCgoYSxiKT0+YS1iKTtcclxuICB6c1stMV0gPSAtOTk5OTsgLy8gSSBzdXBwb3NlIHRoaXMgaXMgdG8gZGVhbCB3aXRoIGFjY2Vzc2luZyB6c1tpLTFdIGJlbG93IMKvXFxfKOODhClfL8KvXHJcbiAgenMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIGNvbnN0IHogPSB6c1tpXTtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSAyNTtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7aXNDb250cm9sbGVyVmlzaWJsZX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBmdW5jID0gdW5kZWZpbmVkLFxyXG4gIHByZXNzaW5nID0gdW5kZWZpbmVkLFxyXG4gIGltYWdlID0gXCJ0ZXh0dXJlcy9zcG90bGlnaHQuanBnXCIsIC8vVE9ETyBiZXR0ZXIgZGVmYXVsdFxyXG4gIHdpZGUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY2hhbmdlQ29sb3JPbkhvdmVyID0gdHJ1ZSwgLy9xdWljayBoYWNrOiBjb2xvciBwaWNrZXIgd2FudHMgdGhpcyB0byBiZSBmYWxzZVxyXG4gIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAgLy9YWFggbWFnaWMgbnVtYmVycy4uLlxyXG4gIGlmICghaGVpZ2h0KSBoZWlnaHQgPSBMYXlvdXQuUEFORUxfV0lEVEggICogKHdpZGUgPyAwLjk0IDogMC4yNSk7XHJcbiAgXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAod2lkZSA/IDAuOTQgOiAwLjI1KSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gYnV0dG9uRGVwdGg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCAxLCAxICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBvYmouaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgb2JqLm5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IG9iai5ob3ZlckNvbCA6IG9iai5ub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmICghZXZlbnQuYnV0dG9ucykgaW5wdXQucHJlc3NlZCA9IGZhbHNlOyAgLy8gcmVkdWNlIGludGVyYWN0aW9uIGJldHdlZW4gbWFrZURyYWdnYWJsZSBkcmFnIGFuZCB0aGlzIGRyYWdcclxuXHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgMjggQXByaWwgMjAyMiwgZ2VuZXJhbGx5IHByZXR0eSBiYWQgcHJhY3RpY2VcclxuICAgICAgICAvLyBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9uczsgLy9zanB0IHdhbnRlZCB0aGlzXHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxuLy8gaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZvaWQgbWFpbigpIHsgXHJcbiAgdlV2ID0gdXY7XHJcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cclxufVxyXG5gO1xyXG5cclxudmFyIC8qc2pwdCB3YXMgY29uc3QgKi8gbWVzaGJhc2ljX2ZyYWcgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG51bmlmb3JtIHZlYzMgY29sb3I7XHJcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLCBcclxuICAgIC8vIHNvIGFmd2lkdGggZGVwZW5kcyBvbiBzY2FsZSBvZiBndWlcclxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XHJcbn1cclxuLy8vL1xyXG5cclxudm9pZCBtYWluKCkge1xyXG5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxyXG5cclxuICAgIC8vL1xyXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xyXG4gICAgXHJcbiAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKG1hcCwgdlV2KTtcclxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcclxuICAgIGlmIChnbF9GcmFnQ29sb3IuYSA8IDAuMDAwMSkgZGlzY2FyZDtcclxuICAgIC8vL1xyXG5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XHJcbiAgICAvL1hYWDogYmlnIGNodW5rIHJlbW92ZWQgZnJvbSBvcmlnaW5hbCBtZXNoYmFzaWNfZnJhZyBoZXJlLlxyXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cclxufVxyXG5gO1xyXG5cclxuaWYgKCtUSFJFRS5SRVZJU0lPTiA+IDE1MSkgeyAvLyBzanB0IHBhdGNoXHJcbiAgbWVzaGJhc2ljX2ZyYWcgPSAnXFxuI2RlZmluZSBVU0VfTUFQXFxuI2RlZmluZSBVU0VfVVZcXG51bmlmb3JtIHZlYzMgY29sb3I7XFxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xcblxcbiNpbmNsdWRlIDxjb21tb24+XFxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cXG5cXG4vLy8vL1xcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xcbiAgICAvLyBXZSBub3cgYXNzdW1lIFdlYkdMMiBhbmQgc28gdGhlIGRlcml2YXRpdmVzIGFyZSBhdmFpbGFibGUsIFxcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXFxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XFxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcXG59XFxuLy8vL1xcblxcbnZvaWQgbWFpbigpIHtcXG5cXG5cXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxcblxcbiAgICAvLy9cXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xcbiAgICBcXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XFxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XFxuICAgIC8vL1xcblxcblxcdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxjb2xvcnNwYWNlX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XFxufVxcbic7XHJcbiAgY29uc29sZS53YXJuKCdjb2xvcnNwYWNlX2ZyYWdtZW50IHVzZWQnKTtcclxuICB9XHJcbiAgXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBpZiAobWVzaC51c2VyRGF0YS5sYWJlbFN0cmluZyAhPT0gc3RyKSB7XHJcbiAgICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgICAgIG1lc2gudXNlckRhdGEubGFiZWxTdHJpbmcgPSBzdHI7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiB0cnVlIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKSAgXG4gIGxpbmUgPSBsaW5lLnNwbGl0KFwiPVwiKVxuICBsaW5lID0gbGluZS5tYXAoZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIHN0ci50cmltKCkubWF0Y2goKC8oXCIuKj9cInxbXlwiXFxzXSspKyg/PVxccyp8XFxzKiQpL2cpKVxuICB9KVxuXG4gIHZhciBkYXRhID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGR0ID0gbGluZVtpXVxuICAgIGlmIChpID09PSAwKSB7XG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzBdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoaSA9PT0gbGluZS5sZW5ndGggLSAxKSB7XG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSA9IHBhcnNlRGF0YShkdFswXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgICBkYXRhLnB1c2goe1xuICAgICAgICBrZXk6IGR0WzFdLFxuICAgICAgICBkYXRhOiBcIlwiXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHZhciBvdXQgPSB7XG4gICAga2V5OiBrZXksXG4gICAgZGF0YToge31cbiAgfVxuXG4gIGRhdGEuZm9yRWFjaChmdW5jdGlvbih2KSB7XG4gICAgb3V0LmRhdGFbdi5rZXldID0gdi5kYXRhO1xuICB9KVxuXG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRhKGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBcIlwiXG5cbiAgaWYgKGRhdGEuaW5kZXhPZignXCInKSA9PT0gMCB8fCBkYXRhLmluZGV4T2YoXCInXCIpID09PSAwKVxuICAgIHJldHVybiBkYXRhLnN1YnN0cmluZygxLCBkYXRhLmxlbmd0aCAtIDEpXG4gIGlmIChkYXRhLmluZGV4T2YoJywnKSAhPT0gLTEpXG4gICAgcmV0dXJuIHBhcnNlSW50TGlzdChkYXRhKVxuICByZXR1cm4gcGFyc2VJbnQoZGF0YSwgMTApXG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50TGlzdChkYXRhKSB7XG4gIHJldHVybiBkYXRhLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2YWwsIDEwKVxuICB9KVxufSIsInZhciBkdHlwZSA9IHJlcXVpcmUoJ2R0eXBlJylcbnZhciBhbkFycmF5ID0gcmVxdWlyZSgnYW4tYXJyYXknKVxudmFyIGlzQnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJylcblxudmFyIENXID0gWzAsIDIsIDNdXG52YXIgQ0NXID0gWzIsIDEsIDNdXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlUXVhZEVsZW1lbnRzKGFycmF5LCBvcHQpIHtcbiAgICAvL2lmIHVzZXIgZGlkbid0IHNwZWNpZnkgYW4gb3V0cHV0IGFycmF5XG4gICAgaWYgKCFhcnJheSB8fCAhKGFuQXJyYXkoYXJyYXkpIHx8IGlzQnVmZmVyKGFycmF5KSkpIHtcbiAgICAgICAgb3B0ID0gYXJyYXkgfHwge31cbiAgICAgICAgYXJyYXkgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcHQgPT09ICdudW1iZXInKSAvL2JhY2t3YXJkcy1jb21wYXRpYmxlXG4gICAgICAgIG9wdCA9IHsgY291bnQ6IG9wdCB9XG4gICAgZWxzZVxuICAgICAgICBvcHQgPSBvcHQgfHwge31cblxuICAgIHZhciB0eXBlID0gdHlwZW9mIG9wdC50eXBlID09PSAnc3RyaW5nJyA/IG9wdC50eXBlIDogJ3VpbnQxNidcbiAgICB2YXIgY291bnQgPSB0eXBlb2Ygb3B0LmNvdW50ID09PSAnbnVtYmVyJyA/IG9wdC5jb3VudCA6IDFcbiAgICB2YXIgc3RhcnQgPSAob3B0LnN0YXJ0IHx8IDApIFxuXG4gICAgdmFyIGRpciA9IG9wdC5jbG9ja3dpc2UgIT09IGZhbHNlID8gQ1cgOiBDQ1csXG4gICAgICAgIGEgPSBkaXJbMF0sIFxuICAgICAgICBiID0gZGlyWzFdLFxuICAgICAgICBjID0gZGlyWzJdXG5cbiAgICB2YXIgbnVtSW5kaWNlcyA9IGNvdW50ICogNlxuXG4gICAgdmFyIGluZGljZXMgPSBhcnJheSB8fCBuZXcgKGR0eXBlKHR5cGUpKShudW1JbmRpY2VzKVxuICAgIGZvciAodmFyIGkgPSAwLCBqID0gMDsgaSA8IG51bUluZGljZXM7IGkgKz0gNiwgaiArPSA0KSB7XG4gICAgICAgIHZhciB4ID0gaSArIHN0YXJ0XG4gICAgICAgIGluZGljZXNbeCArIDBdID0gaiArIDBcbiAgICAgICAgaW5kaWNlc1t4ICsgMV0gPSBqICsgMVxuICAgICAgICBpbmRpY2VzW3ggKyAyXSA9IGogKyAyXG4gICAgICAgIGluZGljZXNbeCArIDNdID0gaiArIGFcbiAgICAgICAgaW5kaWNlc1t4ICsgNF0gPSBqICsgYlxuICAgICAgICBpbmRpY2VzW3ggKyA1XSA9IGogKyBjXG4gICAgfVxuICAgIHJldHVybiBpbmRpY2VzXG59IiwidmFyIGNyZWF0ZUxheW91dCA9IHJlcXVpcmUoJ2xheW91dC1ibWZvbnQtdGV4dCcpXG52YXIgaW5oZXJpdHMgPSByZXF1aXJlKCdpbmhlcml0cycpXG52YXIgY3JlYXRlSW5kaWNlcyA9IHJlcXVpcmUoJ3F1YWQtaW5kaWNlcycpXG5cbnZhciB2ZXJ0aWNlcyA9IHJlcXVpcmUoJy4vbGliL3ZlcnRpY2VzJylcbnZhciB1dGlscyA9IHJlcXVpcmUoJy4vbGliL3V0aWxzJylcblxudmFyIEJhc2UgPSBUSFJFRS5CdWZmZXJHZW9tZXRyeVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVRleHRHZW9tZXRyeSAob3B0KSB7XG4gIHJldHVybiBuZXcgVGV4dEdlb21ldHJ5KG9wdClcbn1cblxuZnVuY3Rpb24gVGV4dEdlb21ldHJ5IChvcHQpIHtcbiAgLy8vLyBzanB0IHBhdGNoIGZvciB0aHJlZTE0MiwgVEhSRUUuQnVmZmVyR2VvbWV0cnkgaXMgYSBjbGFzc1xyXG4gIGlmICgrVEhSRUUuUkVWSVNJT04gPCAxNDIpIHsgXHJcbiAgICBCYXNlLmNhbGwodGhpcyk7XHJcbiAgfSBlbHNlIHsgXHJcbiAgICBjb25zdCB6enogPSBuZXcgQmFzZSgpOyAvL1BKVDogY2xhc3NpYyBzanB0IHZhcmlhYmxlIG5hbWluZyDwn5mEXHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHp6eik7XHJcbiAgfVxyXG5cbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIHRoZXNlIGFzIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgc3Vic2VxdWVudFxuICAvLyBjYWxscyB0byB1cGRhdGUoKVxuICB0aGlzLl9vcHQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHQpXG5cbiAgLy8gYWxzbyBkbyBhbiBpbml0aWFsIHNldHVwLi4uXG4gIGlmIChvcHQpIHRoaXMudXBkYXRlKG9wdClcbn1cblxuaW5oZXJpdHMoVGV4dEdlb21ldHJ5LCBCYXNlKVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChvcHQpIHtcbiAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnKSB7XG4gICAgb3B0ID0geyB0ZXh0OiBvcHQgfVxuICB9XG5cbiAgLy8gdXNlIGNvbnN0cnVjdG9yIGRlZmF1bHRzXG4gIG9wdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX29wdCwgb3B0KVxuXG4gIGlmICghb3B0LmZvbnQpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHNwZWNpZnkgYSB7IGZvbnQgfSBpbiBvcHRpb25zJylcbiAgfVxuXG4gIHRoaXMubGF5b3V0ID0gY3JlYXRlTGF5b3V0KG9wdClcblxuICAvLyBnZXQgdmVjMiB0ZXhjb29yZHNcbiAgdmFyIGZsaXBZID0gb3B0LmZsaXBZICE9PSBmYWxzZVxuXG4gIC8vIHRoZSBkZXNpcmVkIEJNRm9udCBkYXRhXG4gIHZhciBmb250ID0gb3B0LmZvbnRcblxuICAvLyBkZXRlcm1pbmUgdGV4dHVyZSBzaXplIGZyb20gZm9udCBmaWxlXG4gIHZhciB0ZXhXaWR0aCA9IGZvbnQuY29tbW9uLnNjYWxlV1xuICB2YXIgdGV4SGVpZ2h0ID0gZm9udC5jb21tb24uc2NhbGVIXG5cbiAgLy8gZ2V0IHZpc2libGUgZ2x5cGhzXG4gIHZhciBnbHlwaHMgPSB0aGlzLmxheW91dC5nbHlwaHMuZmlsdGVyKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgcmV0dXJuIGJpdG1hcC53aWR0aCAqIGJpdG1hcC5oZWlnaHQgPiAwXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB2aXNpYmxlIGdseXBocyBmb3IgY29udmVuaWVuY2VcbiAgdGhpcy52aXNpYmxlR2x5cGhzID0gZ2x5cGhzXG5cbiAgLy8gZ2V0IGNvbW1vbiB2ZXJ0ZXggZGF0YVxuICB2YXIgcG9zaXRpb25zID0gdmVydGljZXMucG9zaXRpb25zKGdseXBocylcbiAgdmFyIHV2cyA9IHZlcnRpY2VzLnV2cyhnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKVxuICB2YXIgaW5kaWNlcyA9IGNyZWF0ZUluZGljZXMoW10sIHtcbiAgICBjbG9ja3dpc2U6IHRydWUsXG4gICAgdHlwZTogJ3VpbnQxNicsXG4gICAgY291bnQ6IGdseXBocy5sZW5ndGhcbiAgfSlcblxuICAvLyB1cGRhdGUgdmVydGV4IGRhdGFcbiAgdGhpcy5zZXRJbmRleChpbmRpY2VzKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgncG9zaXRpb24nLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHBvc2l0aW9ucywgMikpXG4gIHRoaXMuc2V0QXR0cmlidXRlKCd1dicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUodXZzLCAyKSlcblxuICAvLyB1cGRhdGUgbXVsdGlwYWdlIGRhdGFcbiAgaWYgKCFvcHQubXVsdGlwYWdlICYmICdwYWdlJyBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAvLyBkaXNhYmxlIG11bHRpcGFnZSByZW5kZXJpbmdcbiAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgncGFnZScpXG4gIH0gZWxzZSBpZiAob3B0Lm11bHRpcGFnZSkge1xuICAgIC8vIGVuYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdmFyIHBhZ2VzID0gdmVydGljZXMucGFnZXMoZ2x5cGhzKVxuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwYWdlJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwYWdlcywgMSkpXG4gIH1cbn1cblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS5jb21wdXRlQm91bmRpbmdTcGhlcmUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLmJvdW5kaW5nU3BoZXJlID09PSBudWxsKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZSA9IG5ldyBUSFJFRS5TcGhlcmUoKVxuICB9XG5cbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMgPSAwXG4gICAgdGhpcy5ib3VuZGluZ1NwaGVyZS5jZW50ZXIuc2V0KDAsIDAsIDApXG4gICAgcmV0dXJuXG4gIH1cbiAgdXRpbHMuY29tcHV0ZVNwaGVyZShwb3NpdGlvbnMsIHRoaXMuYm91bmRpbmdTcGhlcmUpXG4gIGlmIChpc05hTih0aGlzLmJvdW5kaW5nU3BoZXJlLnJhZGl1cykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUSFJFRS5CdWZmZXJHZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTogJyArXG4gICAgICAnQ29tcHV0ZWQgcmFkaXVzIGlzIE5hTi4gVGhlICcgK1xuICAgICAgJ1wicG9zaXRpb25cIiBhdHRyaWJ1dGUgaXMgbGlrZWx5IHRvIGhhdmUgTmFOIHZhbHVlcy4nKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nQm94ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ0JveCA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdCb3ggPSBuZXcgVEhSRUUuQm94MygpXG4gIH1cblxuICB2YXIgYmJveCA9IHRoaXMuYm91bmRpbmdCb3hcbiAgdmFyIHBvc2l0aW9ucyA9IHRoaXMuYXR0cmlidXRlcy5wb3NpdGlvbi5hcnJheVxuICB2YXIgaXRlbVNpemUgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uaXRlbVNpemVcbiAgaWYgKCFwb3NpdGlvbnMgfHwgIWl0ZW1TaXplIHx8IHBvc2l0aW9ucy5sZW5ndGggPCAyKSB7XG4gICAgYmJveC5tYWtlRW1wdHkoKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVCb3gocG9zaXRpb25zLCBiYm94KVxufVxuIiwidmFyIGl0ZW1TaXplID0gMlxudmFyIGJveCA9IHsgbWluOiBbMCwgMF0sIG1heDogWzAsIDBdIH1cblxuZnVuY3Rpb24gYm91bmRzIChwb3NpdGlvbnMpIHtcbiAgdmFyIGNvdW50ID0gcG9zaXRpb25zLmxlbmd0aCAvIGl0ZW1TaXplXG4gIGJveC5taW5bMF0gPSBwb3NpdGlvbnNbMF1cbiAgYm94Lm1pblsxXSA9IHBvc2l0aW9uc1sxXVxuICBib3gubWF4WzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5tYXhbMV0gPSBwb3NpdGlvbnNbMV1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICB2YXIgeCA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAwXVxuICAgIHZhciB5ID0gcG9zaXRpb25zW2kgKiBpdGVtU2l6ZSArIDFdXG4gICAgYm94Lm1pblswXSA9IE1hdGgubWluKHgsIGJveC5taW5bMF0pXG4gICAgYm94Lm1pblsxXSA9IE1hdGgubWluKHksIGJveC5taW5bMV0pXG4gICAgYm94Lm1heFswXSA9IE1hdGgubWF4KHgsIGJveC5tYXhbMF0pXG4gICAgYm94Lm1heFsxXSA9IE1hdGgubWF4KHksIGJveC5tYXhbMV0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZUJveCA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICBvdXRwdXQubWluLnNldChib3gubWluWzBdLCBib3gubWluWzFdLCAwKVxuICBvdXRwdXQubWF4LnNldChib3gubWF4WzBdLCBib3gubWF4WzFdLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5jb21wdXRlU3BoZXJlID0gZnVuY3Rpb24gKHBvc2l0aW9ucywgb3V0cHV0KSB7XG4gIGJvdW5kcyhwb3NpdGlvbnMpXG4gIHZhciBtaW5YID0gYm94Lm1pblswXVxuICB2YXIgbWluWSA9IGJveC5taW5bMV1cbiAgdmFyIG1heFggPSBib3gubWF4WzBdXG4gIHZhciBtYXhZID0gYm94Lm1heFsxXVxuICB2YXIgd2lkdGggPSBtYXhYIC0gbWluWFxuICB2YXIgaGVpZ2h0ID0gbWF4WSAtIG1pbllcbiAgdmFyIGxlbmd0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KVxuICBvdXRwdXQuY2VudGVyLnNldChtaW5YICsgd2lkdGggLyAyLCBtaW5ZICsgaGVpZ2h0IC8gMiwgMClcbiAgb3V0cHV0LnJhZGl1cyA9IGxlbmd0aCAvIDJcbn1cbiIsIm1vZHVsZS5leHBvcnRzLnBhZ2VzID0gZnVuY3Rpb24gcGFnZXMgKGdseXBocykge1xuICB2YXIgcGFnZXMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMSlcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBpZCA9IGdseXBoLmRhdGEucGFnZSB8fCAwXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gICAgcGFnZXNbaSsrXSA9IGlkXG4gIH0pXG4gIHJldHVybiBwYWdlc1xufVxuXG5tb2R1bGUuZXhwb3J0cy51dnMgPSBmdW5jdGlvbiB1dnMgKGdseXBocywgdGV4V2lkdGgsIHRleEhlaWdodCwgZmxpcFkpIHtcbiAgdmFyIHV2cyA9IG5ldyBGbG9hdDMyQXJyYXkoZ2x5cGhzLmxlbmd0aCAqIDQgKiAyKVxuICB2YXIgaSA9IDBcbiAgZ2x5cGhzLmZvckVhY2goZnVuY3Rpb24gKGdseXBoKSB7XG4gICAgdmFyIGJpdG1hcCA9IGdseXBoLmRhdGFcbiAgICB2YXIgYncgPSAoYml0bWFwLnggKyBiaXRtYXAud2lkdGgpXG4gICAgdmFyIGJoID0gKGJpdG1hcC55ICsgYml0bWFwLmhlaWdodClcblxuICAgIC8vIHRvcCBsZWZ0IHBvc2l0aW9uXG4gICAgdmFyIHUwID0gYml0bWFwLnggLyB0ZXhXaWR0aFxuICAgIHZhciB2MSA9IGJpdG1hcC55IC8gdGV4SGVpZ2h0XG4gICAgdmFyIHUxID0gYncgLyB0ZXhXaWR0aFxuICAgIHZhciB2MCA9IGJoIC8gdGV4SGVpZ2h0XG5cbiAgICBpZiAoZmxpcFkpIHtcbiAgICAgIHYxID0gKHRleEhlaWdodCAtIGJpdG1hcC55KSAvIHRleEhlaWdodFxuICAgICAgdjAgPSAodGV4SGVpZ2h0IC0gYmgpIC8gdGV4SGVpZ2h0XG4gICAgfVxuXG4gICAgLy8gQkxcbiAgICB1dnNbaSsrXSA9IHUwXG4gICAgdXZzW2krK10gPSB2MVxuICAgIC8vIFRMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjBcbiAgICAvLyBUUlxuICAgIHV2c1tpKytdID0gdTFcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gQlJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MVxuICB9KVxuICByZXR1cm4gdXZzXG59XG5cbm1vZHVsZS5leHBvcnRzLnBvc2l0aW9ucyA9IGZ1bmN0aW9uIHBvc2l0aW9ucyAoZ2x5cGhzKSB7XG4gIHZhciBwb3NpdGlvbnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG5cbiAgICAvLyBib3R0b20gbGVmdCBwb3NpdGlvblxuICAgIHZhciB4ID0gZ2x5cGgucG9zaXRpb25bMF0gKyBiaXRtYXAueG9mZnNldFxuICAgIHZhciB5ID0gZ2x5cGgucG9zaXRpb25bMV0gKyBiaXRtYXAueW9mZnNldFxuXG4gICAgLy8gcXVhZCBzaXplXG4gICAgdmFyIHcgPSBiaXRtYXAud2lkdGhcbiAgICB2YXIgaCA9IGJpdG1hcC5oZWlnaHRcblxuICAgIC8vIEJMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5XG4gICAgLy8gVExcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHhcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHkgKyBoXG4gICAgLy8gVFJcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHggKyB3XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIEJSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICB9KVxuICByZXR1cm4gcG9zaXRpb25zXG59XG4iLCJ2YXIgbmV3bGluZSA9IC9cXG4vXG52YXIgbmV3bGluZUNoYXIgPSAnXFxuJ1xudmFyIHdoaXRlc3BhY2UgPSAvXFxzL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHRleHQsIG9wdCkge1xuICAgIHZhciBsaW5lcyA9IG1vZHVsZS5leHBvcnRzLmxpbmVzKHRleHQsIG9wdClcbiAgICByZXR1cm4gbGluZXMubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKGxpbmUuc3RhcnQsIGxpbmUuZW5kKVxuICAgIH0pLmpvaW4oJ1xcbicpXG59XG5cbm1vZHVsZS5leHBvcnRzLmxpbmVzID0gZnVuY3Rpb24gd29yZHdyYXAodGV4dCwgb3B0KSB7XG4gICAgb3B0ID0gb3B0fHx7fVxuXG4gICAgLy96ZXJvIHdpZHRoIHJlc3VsdHMgaW4gbm90aGluZyB2aXNpYmxlXG4gICAgaWYgKG9wdC53aWR0aCA9PT0gMCAmJiBvcHQubW9kZSAhPT0gJ25vd3JhcCcpIFxuICAgICAgICByZXR1cm4gW11cblxuICAgIHRleHQgPSB0ZXh0fHwnJ1xuICAgIHZhciB3aWR0aCA9IHR5cGVvZiBvcHQud2lkdGggPT09ICdudW1iZXInID8gb3B0LndpZHRoIDogTnVtYmVyLk1BWF9WQUxVRVxuICAgIHZhciBzdGFydCA9IE1hdGgubWF4KDAsIG9wdC5zdGFydHx8MClcbiAgICB2YXIgZW5kID0gdHlwZW9mIG9wdC5lbmQgPT09ICdudW1iZXInID8gb3B0LmVuZCA6IHRleHQubGVuZ3RoXG4gICAgdmFyIG1vZGUgPSBvcHQubW9kZVxuXG4gICAgdmFyIG1lYXN1cmUgPSBvcHQubWVhc3VyZSB8fCBtb25vc3BhY2VcbiAgICBpZiAobW9kZSA9PT0gJ3ByZScpXG4gICAgICAgIHJldHVybiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpXG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gZ3JlZWR5KG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoLCBtb2RlKVxufVxuXG5mdW5jdGlvbiBpZHhPZih0ZXh0LCBjaHIsIHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgaWR4ID0gdGV4dC5pbmRleE9mKGNociwgc3RhcnQpXG4gICAgaWYgKGlkeCA9PT0gLTEgfHwgaWR4ID4gZW5kKVxuICAgICAgICByZXR1cm4gZW5kXG4gICAgcmV0dXJuIGlkeFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hyKSB7XG4gICAgcmV0dXJuIHdoaXRlc3BhY2UudGVzdChjaHIpXG59XG5cbmZ1bmN0aW9uIHByZShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBsaW5lcyA9IFtdXG4gICAgdmFyIGxpbmVTdGFydCA9IHN0YXJ0XG4gICAgZm9yICh2YXIgaT1zdGFydDsgaTxlbmQgJiYgaTx0ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaHIgPSB0ZXh0LmNoYXJBdChpKVxuICAgICAgICB2YXIgaXNOZXdsaW5lID0gbmV3bGluZS50ZXN0KGNocilcblxuICAgICAgICAvL0lmIHdlJ3ZlIHJlYWNoZWQgYSBuZXdsaW5lLCB0aGVuIHN0ZXAgZG93biBhIGxpbmVcbiAgICAgICAgLy9PciBpZiB3ZSd2ZSByZWFjaGVkIHRoZSBFT0ZcbiAgICAgICAgaWYgKGlzTmV3bGluZSB8fCBpPT09ZW5kLTEpIHtcbiAgICAgICAgICAgIHZhciBsaW5lRW5kID0gaXNOZXdsaW5lID8gaSA6IGkrMVxuICAgICAgICAgICAgdmFyIG1lYXN1cmVkID0gbWVhc3VyZSh0ZXh0LCBsaW5lU3RhcnQsIGxpbmVFbmQsIHdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChtZWFzdXJlZClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgbGluZVN0YXJ0ID0gaSsxXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSkge1xuICAgIC8vQSBncmVlZHkgd29yZCB3cmFwcGVyIGJhc2VkIG9uIExpYkdEWCBhbGdvcml0aG1cbiAgICAvL2h0dHBzOi8vZ2l0aHViLmNvbS9saWJnZHgvbGliZ2R4L2Jsb2IvbWFzdGVyL2dkeC9zcmMvY29tL2JhZGxvZ2ljL2dkeC9ncmFwaGljcy9nMmQvQml0bWFwRm9udENhY2hlLmphdmFcbiAgICB2YXIgbGluZXMgPSBbXVxuXG4gICAgdmFyIHRlc3RXaWR0aCA9IHdpZHRoXG4gICAgLy9pZiAnbm93cmFwJyBpcyBzcGVjaWZpZWQsIHdlIG9ubHkgd3JhcCBvbiBuZXdsaW5lIGNoYXJzXG4gICAgaWYgKG1vZGUgPT09ICdub3dyYXAnKVxuICAgICAgICB0ZXN0V2lkdGggPSBOdW1iZXIuTUFYX1ZBTFVFXG5cbiAgICB3aGlsZSAoc3RhcnQgPCBlbmQgJiYgc3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAvL2dldCBuZXh0IG5ld2xpbmUgcG9zaXRpb25cbiAgICAgICAgdmFyIG5ld0xpbmUgPSBpZHhPZih0ZXh0LCBuZXdsaW5lQ2hhciwgc3RhcnQsIGVuZClcblxuICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IHN0YXJ0IG9mIGxpbmVcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbmV3TGluZSkge1xuICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UoIHRleHQuY2hhckF0KHN0YXJ0KSApKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBzdGFydCsrXG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSB2aXNpYmxlICMgb2YgZ2x5cGhzIGZvciB0aGUgYXZhaWxhYmxlIHdpZHRoXG4gICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgc3RhcnQsIG5ld0xpbmUsIHRlc3RXaWR0aClcblxuICAgICAgICB2YXIgbGluZUVuZCA9IHN0YXJ0ICsgKG1lYXN1cmVkLmVuZC1tZWFzdXJlZC5zdGFydClcbiAgICAgICAgdmFyIG5leHRTdGFydCA9IGxpbmVFbmQgKyBuZXdsaW5lQ2hhci5sZW5ndGhcblxuICAgICAgICAvL2lmIHdlIGhhZCB0byBjdXQgdGhlIGxpbmUgYmVmb3JlIHRoZSBuZXh0IG5ld2xpbmUuLi5cbiAgICAgICAgaWYgKGxpbmVFbmQgPCBuZXdMaW5lKSB7XG4gICAgICAgICAgICAvL2ZpbmQgY2hhciB0byBicmVhayBvblxuICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCkpKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIGxpbmVFbmQtLVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxpbmVFbmQgPT09IHN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGFydCA+IHN0YXJ0ICsgbmV3bGluZUNoYXIubGVuZ3RoKSBuZXh0U3RhcnQtLVxuICAgICAgICAgICAgICAgIGxpbmVFbmQgPSBuZXh0U3RhcnQgLy8gSWYgbm8gY2hhcmFjdGVycyB0byBicmVhaywgc2hvdyBhbGwuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRTdGFydCA9IGxpbmVFbmRcbiAgICAgICAgICAgICAgICAvL2VhdCB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lXG4gICAgICAgICAgICAgICAgd2hpbGUgKGxpbmVFbmQgPiBzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0LmNoYXJBdChsaW5lRW5kIC0gbmV3bGluZUNoYXIubGVuZ3RoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmVFbmQgPj0gc3RhcnQpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBsaW5lRW5kLCB0ZXN0V2lkdGgpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICBzdGFydCA9IG5leHRTdGFydFxuICAgIH1cbiAgICByZXR1cm4gbGluZXNcbn1cblxuLy9kZXRlcm1pbmVzIHRoZSB2aXNpYmxlIG51bWJlciBvZiBnbHlwaHMgd2l0aGluIGEgZ2l2ZW4gd2lkdGhcbmZ1bmN0aW9uIG1vbm9zcGFjZSh0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCkge1xuICAgIHZhciBnbHlwaHMgPSBNYXRoLm1pbih3aWR0aCwgZW5kLXN0YXJ0KVxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgZW5kOiBzdGFydCtnbHlwaHNcbiAgICB9XG59IiwibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2J1dHRvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvY2hlY2tib3guanMiLCJtb2R1bGVzL2RhdGd1aXZyL2NvbG9ycGlja2VyLmpzIiwibW9kdWxlcy9kYXRndWl2ci9jb2xvcnMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2Ryb3Bkb3duLmpzIiwibW9kdWxlcy9kYXRndWl2ci9mb2xkZXIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ZvbnQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYWIuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2dyYXBoaWMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2ltYWdlYnV0dG9uLmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbWFnZWJ1dHRvbmdyaWQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2luZGV4LmpzIiwibW9kdWxlcy9kYXRndWl2ci9pbnRlcmFjdGlvbi5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIva2V5Ym9hcmQuanMiLCJtb2R1bGVzL2RhdGd1aXZyL2xheW91dC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvcGFsZXR0ZS5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvc2Rmc2hhZGVyX2xvZ2RlcHRoLmpzIiwibW9kdWxlcy9kYXRndWl2ci9zZGZ0ZXh0LmpzIiwibW9kdWxlcy9kYXRndWl2ci9zaGFyZWRtYXRlcmlhbHMuanMiLCJtb2R1bGVzL2RhdGd1aXZyL3NsaWRlci5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGJveC5qcyIsIm1vZHVsZXMvZGF0Z3VpdnIvdGV4dGxhYmVsLmpzIiwibW9kdWxlcy9kYXRndWl2ci91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy9hbi1hcnJheS9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9hcy1udW1iZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZHR5cGUvaW5kZXguanMiLCJub2RlX21vZHVsZXMvZXZlbnRzL2V2ZW50cy5qcyIsIm5vZGVfbW9kdWxlcy9pbmhlcml0cy9pbmhlcml0c19icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL2lzLWJ1ZmZlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9sYXlvdXQtYm1mb250LXRleHQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9wYXJzZS1ibWZvbnQtYXNjaWkvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcXVhZC1pbmRpY2VzL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3RocmVlLWJtZm9udC10ZXh0L2xpYi91dGlscy5qcyIsIm5vZGVfbW9kdWxlcy90aHJlZS1ibWZvbnQtdGV4dC9saWIvdmVydGljZXMuanMiLCJub2RlX21vZHVsZXMvd29yZC13cmFwcGVyL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3h0ZW5kL2ltbXV0YWJsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O2tCQ3dCd0IsWTs7QUFMeEI7Ozs7QUFDQTs7SUFBWSxNOztBQUNaOztJQUFZLE07O0FBQ1o7O0lBQVksSTs7Ozs7O0FBdEJaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JlLFNBQVMsWUFBVCxHQU9QO0FBQUEsaUZBQUosRUFBSTtBQUFBLE1BTk4sV0FNTSxRQU5OLFdBTU07QUFBQSxNQUxOLE1BS00sUUFMTixNQUtNO0FBQUEsK0JBSk4sWUFJTTtBQUFBLE1BSk4sWUFJTSxxQ0FKUyxXQUlUO0FBQUEsd0JBSE4sS0FHTTtBQUFBLE1BSE4sS0FHTSw4QkFIRSxPQUFPLFdBR1Q7QUFBQSx5QkFGTixNQUVNO0FBQUEsTUFGTixNQUVNLCtCQUZHLE9BQU8sWUFFVjtBQUFBLHdCQUROLEtBQ007QUFBQSxNQUROLEtBQ00sOEJBREUsT0FBTyxXQUNUOztBQUVOLE1BQU0sZUFBZSxRQUFRLEdBQVIsR0FBYyxPQUFPLFlBQTFDO0FBQ0EsTUFBTSxnQkFBZ0IsU0FBUyxPQUFPLFlBQXRDO0FBQ0EsTUFBTSxlQUFlLE9BQU8sWUFBNUI7O0FBRUEsTUFBTSxRQUFRLElBQUksTUFBTSxLQUFWLEVBQWQ7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsUUFBaEI7QUFDQSxRQUFNLFFBQU4sR0FBaUI7QUFBQSxpQkFBVSxNQUFNLE9BQWhCLFVBQTRCLFlBQTVCO0FBQUEsR0FBakI7O0FBRUEsTUFBTSxRQUFRLE9BQU8sV0FBUCxDQUFvQixLQUFwQixFQUEyQixNQUEzQixFQUFtQyxLQUFuQyxDQUFkO0FBQ0EsUUFBTSxHQUFOLENBQVcsS0FBWDs7QUFFQTtBQUNBLE1BQU0sWUFBWSxDQUFsQjtBQUNBLE1BQU0sY0FBYyxlQUFlLGFBQW5DO0FBQ0EsTUFBTSxPQUFPLElBQUksTUFBTSxXQUFWLENBQXVCLFlBQXZCLEVBQXFDLGFBQXJDLEVBQW9ELFlBQXBELEVBQWtFLEtBQUssS0FBTCxDQUFZLFlBQVksV0FBeEIsQ0FBbEUsRUFBeUcsU0FBekcsRUFBb0gsU0FBcEgsQ0FBYjtBQUNBLE9BQUssU0FBTCxDQUFnQixlQUFlLEdBQS9CLEVBQW9DLENBQXBDLEVBQXVDLENBQXZDOztBQUVBO0FBQ0EsTUFBTSxrQkFBa0IsSUFBSSxNQUFNLGlCQUFWLEVBQXhCO0FBQ0Esa0JBQWdCLE9BQWhCLEdBQTBCLEtBQTFCOztBQUVBLE1BQU0sZ0JBQWdCLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixlQUE5QixDQUF0QjtBQUNBLGdCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsZUFBZSxHQUExQztBQUNBLGdCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsUUFBUSxHQUFuQzs7QUFFQSxNQUFNLFdBQVcsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUUsT0FBTyxPQUFPLFlBQWhCLEVBQTVCLENBQWpCO0FBQ0EsTUFBTSxlQUFlLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixRQUE5QixDQUFyQjtBQUNBLGdCQUFjLEdBQWQsQ0FBbUIsWUFBbkI7O0FBR0EsTUFBTSxjQUFjLFlBQVksTUFBWixDQUFvQixZQUFwQixFQUFrQyxFQUFFLE9BQU8sS0FBVCxFQUFsQyxDQUFwQjs7QUFFQTtBQUNBO0FBQ0EsY0FBWSxRQUFaLENBQXFCLENBQXJCLEdBQXlCLGVBQWUsR0FBZixHQUFxQixZQUFZLE1BQVosQ0FBbUIsS0FBbkIsR0FBMkIsUUFBM0IsR0FBc0MsR0FBcEY7QUFDQSxjQUFZLFFBQVosQ0FBcUIsQ0FBckIsR0FBeUIsZUFBZSxHQUF4QztBQUNBLGNBQVksUUFBWixDQUFxQixDQUFyQixHQUF5QixDQUFDLEtBQTFCO0FBQ0EsZUFBYSxHQUFiLENBQWtCLFdBQWxCOztBQUdBLE1BQU0sa0JBQWtCLFlBQVksTUFBWixDQUFvQixZQUFwQixDQUF4QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixPQUFPLHVCQUFwQztBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixLQUE3QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixDQUFDLElBQTlCOztBQUVBLE1BQU0sZUFBZSxPQUFPLHFCQUFQLENBQThCLE1BQTlCLEVBQXNDLE9BQU8sb0JBQTdDLENBQXJCO0FBQ0EsZUFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLEtBQTFCOztBQUVBLFFBQU0sR0FBTixDQUFXLGVBQVgsRUFBNEIsYUFBNUIsRUFBMkMsWUFBM0M7O0FBRUEsTUFBTSxjQUFjLDJCQUFtQixhQUFuQixDQUFwQjtBQUNBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxhQUFwQztBQUNBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixZQUF2QixFQUFxQyxlQUFyQzs7QUFFQTs7QUFFQSxXQUFTLGFBQVQsQ0FBd0IsQ0FBeEIsRUFBMkI7QUFDekIsUUFBSSxNQUFNLE9BQU4sS0FBa0IsS0FBdEIsRUFBNkI7QUFDM0I7QUFDRDs7QUFFRCxXQUFRLFlBQVI7O0FBRUEsa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixlQUFlLEdBQTFDOztBQUVBLE1BQUUsTUFBRixHQUFXLElBQVg7QUFDRDs7QUFFRCxXQUFTLGVBQVQsR0FBMEI7QUFDeEIsa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixlQUFlLEdBQTFDO0FBQ0Q7O0FBRUQsV0FBUyxVQUFULEdBQXFCOztBQUVuQixRQUFJLFlBQVksUUFBWixFQUFKLEVBQTRCO0FBQzFCLGVBQVMsS0FBVCxDQUFlLE1BQWYsQ0FBdUIsT0FBTyxzQkFBOUI7QUFDRCxLQUZELE1BR0k7QUFDRixlQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8sWUFBOUI7QUFDRDtBQUVGOztBQUVELFFBQU0sV0FBTixHQUFvQixXQUFwQjtBQUNBLFFBQU0sT0FBTixHQUFnQixDQUFFLGFBQUYsRUFBaUIsS0FBakIsQ0FBaEI7O0FBRUEsTUFBTSxrQkFBa0IsS0FBSyxNQUFMLENBQWEsRUFBRSxZQUFGLEVBQVMsWUFBVCxFQUFiLENBQXhCOztBQUVBLFFBQU0sYUFBTixHQUFzQixVQUFVLFlBQVYsRUFBd0I7QUFDNUMsZ0JBQVksTUFBWixDQUFvQixZQUFwQjtBQUNBLG9CQUFnQixNQUFoQixDQUF3QixZQUF4QjtBQUNBO0FBQ0QsR0FKRDs7QUFNQSxRQUFNLElBQU4sR0FBYSxVQUFVLEdBQVYsRUFBZTtBQUMxQixvQkFBZ0IsV0FBaEIsQ0FBNkIsR0FBN0I7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEO0FBSUEsUUFBTSxXQUFOLEdBQW9CLFVBQVUsR0FBVixFQUFlO0FBQ2pDLGdCQUFZLFdBQVosQ0FBeUIsR0FBekI7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEOztBQUtBLFNBQU8sS0FBUDtBQUNEOzs7Ozs7OztrQkM3R3VCLGM7O0FBVHhCOzs7O0FBQ0E7Ozs7QUFDQTs7SUFBWSxNOztBQUNaOztJQUFZLE07O0FBQ1o7O0lBQVksTzs7QUFDWjs7SUFBWSxlOztBQUNaOztJQUFZLEk7Ozs7OztBQXpCWjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTRCZSxTQUFTLGNBQVQsR0FRUDtBQUFBLGlGQUFKLEVBQUk7QUFBQSxNQVBOLFdBT00sUUFQTixXQU9NO0FBQUEsTUFOTixNQU1NLFFBTk4sTUFNTTtBQUFBLCtCQUxOLFlBS007QUFBQSxNQUxOLFlBS00scUNBTFMsV0FLVDtBQUFBLCtCQUpOLFlBSU07QUFBQSxNQUpOLFlBSU0scUNBSlMsS0FJVDtBQUFBLHdCQUhOLEtBR007QUFBQSxNQUhOLEtBR00sOEJBSEUsT0FBTyxXQUdUO0FBQUEseUJBRk4sTUFFTTtBQUFBLE1BRk4sTUFFTSwrQkFGRyxPQUFPLFlBRVY7QUFBQSx3QkFETixLQUNNO0FBQUEsTUFETixLQUNNLDhCQURFLE9BQU8sV0FDVDs7QUFFTixNQUFNLFFBQVE7QUFDWixXQUFPLFlBREs7QUFFWixZQUFRO0FBRkksR0FBZDs7QUFLQSxNQUFNLGVBQWUsT0FBTyxZQUFQLEdBQXNCLE9BQU8sYUFBbEQ7O0FBRUEsTUFBTSxRQUFRLElBQUksTUFBTSxLQUFWLEVBQWQ7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsVUFBaEI7QUFDQSxRQUFNLFFBQU4sR0FBaUI7QUFBQSxpQkFBVSxNQUFNLE9BQWhCLFVBQTRCLFlBQTVCO0FBQUEsR0FBakI7O0FBRUEsTUFBTSxrQkFBa0IsWUFBWSxNQUFaLENBQW9CLFlBQXBCLENBQXhCO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLE9BQU8sdUJBQXBDO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLEtBQTdCO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLENBQUMsSUFBOUI7O0FBRUEsTUFBSSxvQkFBSjtBQUNBLE1BQUkseUJBQUo7O0FBRUEsUUFBTSxRQUFOLEdBQWlCLFVBQVUsUUFBVixFQUFvQjtBQUNuQyxrQkFBYyxRQUFkO0FBQ0EsV0FBTyxLQUFQO0FBQ0QsR0FIRDs7QUFLQSxRQUFNLE1BQU4sR0FBZSxZQUFVO0FBQ3ZCLFVBQU0sTUFBTixHQUFlLElBQWY7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEOztBQUtBLFFBQU0sSUFBTixHQUFhLFVBQVUsR0FBVixFQUFlO0FBQzFCLG9CQUFnQixXQUFoQixDQUE2QixHQUE3QjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBS0EsTUFBSSxrQkFBSjtBQUFBLE1BQWUsa0JBQWY7QUFBQSxNQUEwQixvQkFBMUI7O0FBRUEsV0FBUyxhQUFULENBQXdCLENBQXhCLEVBQTJCO0FBQ3pCLFFBQUksTUFBTSxPQUFOLEtBQWtCLEtBQXRCLEVBQTZCO0FBQzNCO0FBQ0Q7O0FBRUQsVUFBTSxLQUFOLEdBQWMsQ0FBQyxNQUFNLEtBQXJCOztBQUVBLFdBQVEsWUFBUixJQUF5QixNQUFNLEtBQS9COztBQUVBLFFBQUksV0FBSixFQUFpQjtBQUNmLGtCQUFhLE1BQU0sS0FBbkI7QUFDRDs7QUFFRCxNQUFFLE1BQUYsR0FBVyxJQUFYO0FBQ0Q7O0FBRUQsV0FBUyxVQUFULEdBQXFCO0FBQ25CLGNBQVUsT0FBVixHQUFvQixNQUFNLEtBQTFCO0FBQ0EsY0FBVSxPQUFWLEdBQW9CLFlBQVksUUFBWixFQUFwQjtBQUNBLFFBQUksT0FBSixFQUFhO0FBQ1gsY0FBUSxTQUFSLENBQWtCLE9BQWxCLEdBQTRCLE1BQU0sS0FBbEM7QUFDQSxjQUFRLFNBQVIsQ0FBa0IsT0FBbEIsR0FBNEIsUUFBUSxXQUFSLENBQW9CLFFBQXBCLEVBQTVCO0FBQ0Q7QUFDRjs7QUFHRCxNQUFJLHdCQUF3QixLQUE1QjtBQUNBLFFBQU0sa0JBQU4sR0FBMkIsWUFBZ0I7QUFBQSxRQUFmLEtBQWUsdUVBQVQsSUFBUzs7QUFDekMsUUFBSSxVQUFVLHFCQUFkLEVBQXFDO0FBQ25DLDhCQUF3QixLQUF4QjtBQUNBO0FBQ0E7QUFDQSxnQkFBVSx1QkFBVjtBQUNBLFVBQUksS0FBSixFQUFXLE1BQU0sTUFBTixDQUFhLGFBQWIsQ0FBMkIsT0FBM0IsRUFBWCxLQUNLLFFBQVEsT0FBUixHQUFrQixLQUFsQjtBQUNOO0FBQ0QsV0FBTyxLQUFQO0FBQ0QsR0FWRDtBQVdBLFNBQU8sY0FBUCxDQUFzQixLQUF0QixFQUE2Qix1QkFBN0IsRUFBc0Q7QUFDcEQsU0FBSyxlQUFNO0FBQUUsYUFBTyxxQkFBUDtBQUE4QixLQURTO0FBRXBELFNBQUssTUFBTTtBQUZ5QyxHQUF0RDtBQUlBLE1BQUksZ0JBQUo7QUFDQSxXQUFTLHFCQUFULEdBQWlDO0FBQy9CLFFBQUksT0FBSixFQUFhLE9BQU8sT0FBUDtBQUNiLFFBQUksT0FBTyxPQUFPLFlBQVAsR0FBc0IsR0FBakM7QUFDQSxRQUFNLE9BQU8sSUFBSSxNQUFNLFdBQVYsQ0FBc0IsSUFBdEIsRUFBNEIsSUFBNUIsRUFBa0MsS0FBbEMsQ0FBYjtBQUNBLFNBQUssU0FBTCxDQUFlLE9BQUssR0FBcEIsRUFBeUIsQ0FBekIsRUFBNEIsQ0FBNUI7QUFDQSxRQUFNLGtCQUFrQixJQUFJLE1BQU0saUJBQVYsRUFBeEI7QUFDQSxvQkFBZ0IsT0FBaEIsR0FBMEIsSUFBMUI7QUFDQSxRQUFNLGdCQUFnQixJQUFJLE1BQU0sSUFBVixDQUFlLEtBQUssS0FBTCxFQUFmLEVBQTZCLGVBQTdCLENBQXRCO0FBQ0EsY0FBVSxhQUFWLENBUitCLENBUU47QUFDekI7QUFDQSxrQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLEtBQTNCOztBQUVBO0FBQ0EsUUFBTSxZQUFZLE9BQU8sV0FBUCxDQUFtQixPQUFPLE9BQU8sZ0JBQWpDLEVBQW1ELE9BQU8sT0FBTyxnQkFBakUsRUFBbUYsS0FBbkYsRUFBMEYsSUFBMUYsQ0FBbEI7QUFDQSxZQUFRLFNBQVIsR0FBb0IsU0FBcEI7QUFDQSxjQUFVLFFBQVYsQ0FBbUIsS0FBbkIsQ0FBeUIsTUFBekIsQ0FBaUMsUUFBakM7QUFDQSxjQUFVLFFBQVYsQ0FBbUIsQ0FBbkIsR0FBdUIsQ0FBQyxPQUFPLGdCQUFSLEdBQTJCLEdBQTNCLEdBQWlDLFFBQVEsR0FBaEU7QUFDQSxjQUFVLFFBQVYsQ0FBbUIsQ0FBbkIsR0FBdUIsUUFBUSxHQUEvQjs7QUFFQSxRQUFNLFlBQVksUUFBUSxTQUFSLENBQWtCLE1BQU0sSUFBTixHQUFhLE9BQU8sYUFBdEMsQ0FBbEI7QUFDQSxZQUFRLFNBQVIsR0FBb0IsU0FBcEI7QUFDQSxjQUFVLE9BQVYsR0FBb0IsTUFBTSxLQUExQjtBQUNBLGNBQVUsUUFBVixDQUFtQixDQUFuQixHQUF1QixRQUFRLElBQS9CO0FBQ0Esa0JBQWMsR0FBZCxDQUFrQixTQUFsQjs7QUFFQSxRQUFNLGNBQWMsMkJBQWtCLGFBQWxCLENBQXBCO0FBQ0EsZ0JBQVksTUFBWixDQUFtQixFQUFuQixDQUFzQixXQUF0QixFQUFtQyxpQkFBbkM7QUFDQSxZQUFRLFdBQVIsR0FBc0IsV0FBdEI7O0FBRUE7QUFDQSxZQUFRLGFBQVIsR0FBd0Isd0JBQWdCO0FBQ3RDLFVBQUksTUFBTSxNQUFWLEVBQWtCO0FBQ2hCLGNBQU0sS0FBTixHQUFjLE9BQU8sWUFBUCxDQUFkO0FBQ0Q7QUFDRDtBQUNBO0FBQ0Esa0JBQVksTUFBWixDQUFtQixZQUFuQjtBQUNBO0FBQ0QsS0FSRDs7QUFVQSxXQUFPLE9BQVA7QUFDRDs7QUFFRDtBQUNBLFdBQVMsaUJBQVQsQ0FBMkIsQ0FBM0IsRUFBNkI7QUFDM0IsUUFBSSxNQUFNLE1BQU4sQ0FBYSxPQUFiLEtBQXlCLEtBQXpCLElBQWtDLFFBQVEsT0FBUixLQUFvQixLQUExRCxFQUFpRTtBQUNqRSxVQUFNLEtBQU4sR0FBYyxDQUFDLE1BQU0sS0FBckI7QUFDQSxXQUFPLFlBQVAsSUFBdUIsTUFBTSxLQUE3QjtBQUNBLFFBQUksV0FBSixFQUFpQixZQUFZLE1BQU0sS0FBbEI7QUFDakIsTUFBRSxNQUFGLEdBQVcsSUFBWDs7QUFFQTtBQUNBLFlBQVEsU0FBUixDQUFrQixPQUFsQixHQUE0QixNQUFNLEtBQWxDO0FBQ0Q7O0FBRUQsTUFBSSxjQUFKO0FBQ0E7QUFDQTtBQUNBLFFBQU0sU0FBTixHQUFrQixxQkFBYTtBQUM3QixRQUFJLEtBQUosRUFBVyxNQUFNLE1BQU4sQ0FBYSxLQUFiOztBQUVYLFVBQU0sT0FBTixHQUFnQixTQUFoQjs7QUFFQSxRQUFNLGlCQUFpQixZQUFZLFlBQW5DO0FBQ0EsUUFBTSxrQkFBa0IsY0FBeEI7QUFDQSxRQUFNLGlCQUFpQixLQUF2QjtBQUNBLFFBQU0saUJBQWlCLE1BQU0sY0FBTixHQUF1QixPQUFPLGFBQXJEOztBQUVBLFlBQVEsT0FBTyxXQUFQLENBQW9CLEtBQXBCLEVBQTJCLFNBQTNCLEVBQXNDLEtBQXRDLENBQVI7QUFDQSxVQUFNLEdBQU4sQ0FBVyxLQUFYOztBQUVBO0FBQ0EsUUFBTSxPQUFPLElBQUksTUFBTSxXQUFWLENBQXVCLGNBQXZCLEVBQXVDLGVBQXZDLEVBQXdELGNBQXhELENBQWI7QUFDQSxTQUFLLFNBQUwsQ0FBZ0IsaUJBQWlCLEdBQWpDLEVBQXNDLENBQXRDLEVBQXlDLENBQXpDOztBQUdBO0FBQ0EsUUFBTSxrQkFBa0IsSUFBSSxNQUFNLGlCQUFWLEVBQXhCO0FBQ0Esb0JBQWdCLE9BQWhCLEdBQTBCLEtBQTFCOztBQUVBLFFBQU0sZ0JBQWdCLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixlQUE5QixDQUF0QjtBQUNBLGtCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsS0FBM0I7QUFDQSxrQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLFFBQVEsR0FBbkM7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBTSxXQUFXLElBQUksTUFBTSxpQkFBVixDQUE0QixFQUFFLE9BQU8sT0FBTyxpQkFBaEIsRUFBNUIsQ0FBakI7QUFDQSxRQUFNLGVBQWUsSUFBSSxNQUFNLElBQVYsQ0FBZ0IsS0FBSyxLQUFMLEVBQWhCLEVBQThCLFFBQTlCLENBQXJCO0FBQ0Esa0JBQWMsR0FBZCxDQUFtQixZQUFuQjs7QUFHQSxRQUFNLGVBQWUsT0FBTyxxQkFBUCxDQUE4QixTQUE5QixFQUF5QyxPQUFPLHNCQUFoRCxDQUFyQjtBQUNBLGlCQUFhLFFBQWIsQ0FBc0IsQ0FBdEIsR0FBMEIsS0FBMUI7O0FBRUEsZ0JBQVksT0FBTyxXQUFQLENBQW9CLGlCQUFpQixPQUFPLGdCQUE1QyxFQUE4RCxrQkFBa0IsT0FBTyxnQkFBdkYsRUFBeUcsY0FBekcsRUFBeUgsSUFBekgsQ0FBWjtBQUNBLGNBQVUsUUFBVixDQUFtQixLQUFuQixDQUF5QixNQUF6QixDQUFpQyxRQUFqQztBQUNBLGNBQVUsUUFBVixDQUFtQixDQUFuQixHQUF1QixDQUFDLE9BQU8sZ0JBQVIsR0FBMkIsR0FBM0IsR0FBaUMsUUFBUSxHQUFoRTtBQUNBLGNBQVUsUUFBVixDQUFtQixDQUFuQixHQUF1QixRQUFRLEdBQS9COztBQUVBLGdCQUFZLFFBQVEsU0FBUixDQUFtQixjQUFuQixDQUFaO0FBQ0EsY0FBVSxRQUFWLENBQW1CLENBQW5CLEdBQXVCLFFBQVEsSUFBL0I7QUFDQSxrQkFBYyxHQUFkLENBQW1CLFNBQW5COztBQUVBLFVBQU0sR0FBTixDQUFXLGVBQVgsRUFBNEIsYUFBNUIsRUFBMkMsWUFBM0MsRUFBeUQsU0FBekQ7O0FBRUE7O0FBRUEsa0JBQWMsMkJBQW1CLGFBQW5CLENBQWQ7QUFDQSxnQkFBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFdBQXZCLEVBQW9DLGFBQXBDOztBQUVBOztBQUdBLFVBQU0sV0FBTixHQUFvQixXQUFwQjtBQUNBLFVBQU0sT0FBTixHQUFnQixDQUFFLGFBQUYsRUFBaUIsS0FBakIsQ0FBaEI7O0FBRUEsUUFBTSxrQkFBa0IsS0FBSyxNQUFMLENBQWEsRUFBRSxZQUFGLEVBQVMsWUFBVCxFQUFiLENBQXhCOztBQUVBLFVBQU0sYUFBTixHQUFzQixVQUFVLFlBQVYsRUFBd0I7QUFDNUMsVUFBSSxNQUFNLE1BQVYsRUFBa0I7QUFDaEIsY0FBTSxLQUFOLEdBQWMsT0FBUSxZQUFSLENBQWQ7QUFDRDtBQUNELGtCQUFZLE1BQVosQ0FBb0IsWUFBcEI7QUFDQSxzQkFBZ0IsTUFBaEIsQ0FBd0IsWUFBeEI7QUFDQTtBQUNELEtBUEQ7O0FBU0EsUUFBRyxNQUFNLE1BQVQsRUFBaUIsTUFBTSxNQUFOLENBQWEsYUFBYjs7QUFFakIsV0FBTyxLQUFQO0FBQ0QsR0EzRUQ7O0FBNkVBLFFBQU0sU0FBTixDQUFnQixNQUFoQjs7QUFFQSxTQUFPLEtBQVA7QUFDRDs7Ozs7Ozs7a0JDeEh1QixpQjs7QUExSHhCOzs7O0FBQ0E7Ozs7QUFDQTs7SUFBWSxNOztBQUNaOztJQUFZLE07O0FBQ1o7O0lBQVksZTs7QUFDWjs7SUFBWSxJOzs7Ozs7QUFFWjtBQUNBO0FBckJBOzs7Ozs7Ozs7Ozs7O0FBc0JBLElBQU0saU5BQU47O0FBT0EsSUFBTSxtSkFBTjs7QUFTQSxJQUFNLG9FQUdKLE9BSEksa2NBQU47O0FBa0JBLElBQU0seUVBR0osT0FISSxnWUFBTjs7QUFnQkE7QUFDQTtBQUNBOzs7OztBQUtBLFNBQVMsUUFBVCxDQUFrQixDQUFsQixFQUFxQixDQUFyQixFQUF3QixDQUF4QixFQUEyQjtBQUN2QixRQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsRUFBeUIsQ0FBekI7QUFDQSxRQUFJLFVBQVUsTUFBVixLQUFxQixDQUF6QixFQUE0QjtBQUN4QjtBQUNBLFlBQUksRUFBRSxDQUFGLEtBQVEsU0FBWixFQUF1QixJQUFJLEVBQUUsQ0FBTixFQUFTLElBQUksRUFBRSxDQUFmLEVBQWtCLElBQUksRUFBRSxDQUF4QixDQUF2QixLQUNLLElBQUksRUFBRSxDQUFOLEVBQVMsSUFBSSxFQUFFLENBQWYsRUFBa0IsSUFBSSxFQUFFLENBQXhCO0FBQ1I7QUFDRCxRQUFJLEtBQUssS0FBTCxDQUFXLElBQUksQ0FBZixDQUFKO0FBQ0EsUUFBSSxJQUFJLENBQUosR0FBUSxDQUFaO0FBQ0EsUUFBSSxLQUFLLElBQUksQ0FBVCxDQUFKO0FBQ0EsUUFBSSxLQUFLLElBQUksSUFBSSxDQUFiLENBQUo7QUFDQSxRQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBTCxJQUFVLENBQW5CLENBQUo7QUFDQSxZQUFRLElBQUksQ0FBWjtBQUNJLGFBQUssQ0FBTDtBQUFRLGdCQUFJLENBQUosRUFBTyxJQUFJLENBQVgsRUFBYyxJQUFJLENBQWxCLENBQXFCO0FBQzdCLGFBQUssQ0FBTDtBQUFRLGdCQUFJLENBQUosRUFBTyxJQUFJLENBQVgsRUFBYyxJQUFJLENBQWxCLENBQXFCO0FBQzdCLGFBQUssQ0FBTDtBQUFRLGdCQUFJLENBQUosRUFBTyxJQUFJLENBQVgsRUFBYyxJQUFJLENBQWxCLENBQXFCO0FBQzdCLGFBQUssQ0FBTDtBQUFRLGdCQUFJLENBQUosRUFBTyxJQUFJLENBQVgsRUFBYyxJQUFJLENBQWxCLENBQXFCO0FBQzdCLGFBQUssQ0FBTDtBQUFRLGdCQUFJLENBQUosRUFBTyxJQUFJLENBQVgsRUFBYyxJQUFJLENBQWxCLENBQXFCO0FBQzdCLGFBQUssQ0FBTDtBQUFRLGdCQUFJLENBQUosRUFBTyxJQUFJLENBQVgsRUFBYyxJQUFJLENBQWxCLENBQXFCO0FBTmpDO0FBUUEsV0FBTztBQUNILFdBQUcsQ0FEQTtBQUVILFdBQUcsQ0FGQTtBQUdILFdBQUc7QUFIQSxLQUFQO0FBS0g7QUFDRDs7Ozs7QUFLQSxTQUFTLFFBQVQsQ0FBa0IsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEIsRUFBMkI7QUFDdkIsUUFBSSxVQUFVLE1BQVYsS0FBcUIsQ0FBekIsRUFBNEI7QUFDeEIsWUFBSSxFQUFFLENBQU4sRUFBUyxJQUFJLEVBQUUsQ0FBZixFQUFrQixJQUFJLEVBQUUsQ0FBeEI7QUFDSDtBQUNELFFBQUksTUFBTSxLQUFLLEdBQUwsQ0FBUyxDQUFULEVBQVksQ0FBWixFQUFlLENBQWYsQ0FBVjtBQUFBLFFBQTZCLE1BQU0sS0FBSyxHQUFMLENBQVMsQ0FBVCxFQUFZLENBQVosRUFBZSxDQUFmLENBQW5DO0FBQUEsUUFDSSxJQUFJLE1BQU0sR0FEZDtBQUFBLFFBRUksQ0FGSjtBQUFBLFFBR0ksSUFBSyxRQUFRLENBQVIsR0FBWSxDQUFaLEdBQWdCLElBQUksR0FIN0I7QUFBQSxRQUlJLElBQUksR0FKUjs7QUFNQSxZQUFRLEdBQVI7QUFDSSxhQUFLLEdBQUw7QUFBVSxnQkFBSSxDQUFKLENBQU87QUFDakIsYUFBSyxDQUFMO0FBQVEsZ0JBQUssSUFBSSxDQUFMLEdBQVUsS0FBSyxJQUFJLENBQUosR0FBUSxDQUFSLEdBQVcsQ0FBaEIsQ0FBZCxDQUFrQyxLQUFLLElBQUksQ0FBVCxDQUFZO0FBQ3RELGFBQUssQ0FBTDtBQUFRLGdCQUFLLElBQUksQ0FBTCxHQUFVLElBQUksQ0FBbEIsQ0FBcUIsS0FBSyxJQUFJLENBQVQsQ0FBWTtBQUN6QyxhQUFLLENBQUw7QUFBUSxnQkFBSyxJQUFJLENBQUwsR0FBVSxJQUFJLENBQWxCLENBQXFCLEtBQUssSUFBSSxDQUFULENBQVk7QUFKN0M7O0FBT0EsV0FBTztBQUNILFdBQUcsQ0FEQTtBQUVILFdBQUcsQ0FGQTtBQUdILFdBQUcsQ0FIQTtBQUlILFdBQUcsQ0FKQSxFQUlHLEdBQUcsQ0FKTixFQUlTLEdBQUcsQ0FKWixDQUljO0FBSmQsS0FBUDtBQU1IOztBQUVjLFNBQVMsaUJBQVQsR0FPUDtBQUFBLG1GQUFKLEVBQUk7QUFBQSxRQU5KLE1BTUksUUFOSixNQU1JO0FBQUEsUUFMSixZQUtJLFFBTEosWUFLSTtBQUFBLFFBSkosV0FJSSxRQUpKLFdBSUk7QUFBQSwwQkFISixLQUdJO0FBQUEsUUFISixLQUdJLDhCQUhJLE9BQU8sV0FHWDtBQUFBLDJCQUZKLE1BRUk7QUFBQSxRQUZKLE1BRUksK0JBRkssT0FBTyxZQUVaO0FBQUEsMEJBREosS0FDSTtBQUFBLFFBREosS0FDSSw4QkFESSxPQUFPLFdBQVAsR0FBcUIsRUFDekI7O0FBQ0o7QUFDQTtBQUNBO0FBQ0EsUUFBSSxPQUFPLGlCQUFYO0FBQ0EsUUFBSSxRQUFRLE9BQU8sWUFBUCxDQUFaLENBTEksQ0FLOEI7QUFDbEMsUUFBTSxJQUFJLFNBQVMsS0FBVCxDQUFWO0FBQ0EsUUFBTSxXQUFXLEVBQUMsYUFBYSxFQUFDLE9BQU8sSUFBSSxNQUFNLE9BQVYsQ0FBa0IsRUFBRSxDQUFwQixFQUF1QixFQUFFLENBQXpCLEVBQTRCLEVBQUUsQ0FBOUIsQ0FBUixFQUFkLEVBQWpCO0FBQ0EsUUFBTSxRQUFRLElBQUksTUFBTSxpQkFBVixDQUE0QixFQUFDLE9BQU8sS0FBUixFQUE1QixDQUFkO0FBQ0EsUUFBTSxTQUFTLElBQUksZ0JBQUosRUFBZjtBQUNBLFFBQU0scUJBQXFCLEtBQTNCO0FBQ0EsUUFBTSxRQUFRO0FBQ1YsZ0JBQVE7QUFERSxLQUFkO0FBR0E7QUFDQSxRQUFNLFFBQVEsMkJBQWtCO0FBQzVCLGdDQUQ0QixFQUNmLFVBRGUsRUFDVCxZQURTLEVBQ0YsMEJBREUsRUFDWSxZQURaLEVBQ21CLGNBRG5CLEVBQzJCLFlBRDNCLEVBQ2tDO0FBRGxDLEtBQWxCLENBQWQ7QUFHQSxVQUFNLE9BQU4sR0FBZ0IsYUFBaEI7O0FBRUEsUUFBSSxLQUFKOztBQUVBO0FBQ0EsYUFBUyxNQUFULENBQWdCLENBQWhCLEVBQTZCO0FBQUEsWUFBVixDQUFVLHVFQUFSLE1BQVE7O0FBQ3pCLFVBQUUsQ0FBRixHQUFNLEtBQUssR0FBTCxDQUFTLEVBQUUsQ0FBWCxFQUFjLENBQWQsQ0FBTixDQUR5QixDQUNBO0FBQ3pCLFVBQUUsQ0FBRixHQUFNLEtBQUssR0FBTCxDQUFTLEVBQUUsQ0FBWCxFQUFjLENBQWQsQ0FBTixDQUZ5QixDQUVBO0FBQ3pCLFVBQUUsQ0FBRixHQUFNLEtBQUssR0FBTCxDQUFTLEVBQUUsQ0FBWCxFQUFjLENBQWQsQ0FBTixDQUh5QixDQUdBO0FBQzVCOztBQUVELGFBQVMsUUFBVCxHQUFvQjtBQUNoQixjQUFNLEtBQU4sQ0FBWSxHQUFaLENBQWdCLEtBQWhCO0FBQ0EsZUFBTyxNQUFNLEtBQWI7QUFDQSxlQUFPLElBQVAsQ0FBWSxVQUFaLEVBQXdCLEtBQXhCO0FBQ0g7O0FBRUQsUUFBTSxhQUFhLElBQW5COztBQUVBLGFBQVMsZ0JBQVQsR0FBNEI7QUFDeEIsWUFBSSxDQUFDLEtBQUwsRUFBWTtBQUNaLGNBQU0sUUFBTixDQUFlLEdBQWYsQ0FBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsRUFBeUIsSUFBRSxLQUEzQjtBQUNIOztBQUVELGFBQVMsaUJBQVQsR0FBNkI7QUFDekIsWUFBSSxLQUFKLEVBQVc7QUFDUCxrQkFBTSxPQUFOLEdBQWdCLENBQUMsTUFBTSxPQUF2QjtBQUNBLGdCQUFJLE1BQU0sT0FBVixFQUFtQixNQUFNLE1BQU4sQ0FBYSxjQUFiLENBQTRCLEtBQTVCO0FBQ25CO0FBQ0E7QUFDSCxTQUxELE1BS087QUFDSDtBQUNBLG9CQUFRLElBQUksS0FBSixDQUFVLE1BQVYsQ0FBaUIsZUFBakIsQ0FBUjtBQUNBLGtCQUFNLFVBQU47O0FBRUEsZ0JBQUksVUFBSixFQUFnQjtBQUFBLG9CQXNCSCxJQXRCRyxHQXNCWixTQUFTLElBQVQsQ0FBYyxDQUFkLEVBQWlCO0FBQ2IsNkJBQVMsV0FBVCxDQUFxQixLQUFyQixDQUEyQixDQUEzQixHQUErQixFQUFFLFVBQUYsQ0FBYSxDQUE1QztBQUNBLHdCQUFNLElBQUksU0FBUyxTQUFTLFdBQVQsQ0FBcUIsS0FBOUIsQ0FBVjtBQUNBLDBCQUFNLE1BQU4sQ0FBYSxFQUFFLENBQWYsRUFBa0IsRUFBRSxDQUFwQixFQUF1QixFQUFFLENBQXpCO0FBQ0E7QUFDQSw4QkFBVSxXQUFWLEdBQXdCLElBQXhCO0FBQ0gsaUJBNUJXOztBQUNaLG9CQUFNLGFBQWEsSUFBSSxNQUFNLGNBQVYsQ0FBeUI7QUFDeEMsOEJBQVUsUUFEOEI7QUFFeEMsa0NBQWMsVUFGMEI7QUFHeEMsb0NBQWdCO0FBSHdCLGlCQUF6QixDQUFuQjtBQUtBLG9CQUFNLFFBQVEsU0FBUixLQUFRLENBQUMsQ0FBRCxFQUFPO0FBQ2pCLDZCQUFTLFdBQVQsQ0FBcUIsS0FBckIsQ0FBMkIsQ0FBM0IsR0FBK0IsRUFBRSxVQUFGLENBQWEsQ0FBNUM7QUFDQSw2QkFBUyxXQUFULENBQXFCLEtBQXJCLENBQTJCLENBQTNCLEdBQStCLEVBQUUsVUFBRixDQUFhLENBQTVDOztBQUVBLHdCQUFNLElBQUksU0FBUyxTQUFTLFdBQVQsQ0FBcUIsS0FBOUIsQ0FBVjtBQUNBLDBCQUFNLE1BQU4sQ0FBYSxFQUFFLENBQWYsRUFBa0IsRUFBRSxDQUFwQixFQUF1QixFQUFFLENBQXpCO0FBQ0E7QUFDQSw4QkFBVSxXQUFWLEdBQXdCLElBQXhCO0FBQ0gsaUJBUkQ7QUFTQSxvQkFBSSxPQUFPLElBQVg7QUFBQSxvQkFBaUIsY0FBYyxPQUFPLFlBQVAsR0FBb0IsRUFBbkQ7QUFDQSxzQkFBTSxlQUFOLENBQXNCLEtBQXRCLEVBQTZCLFVBQTdCLEVBQXlDLElBQXpDLEVBQStDLE9BQU8sV0FBUCxHQUFxQixDQUFwRSxFQUF1RSxLQUF2RSxFQUE4RSxXQUE5RTtBQUNBLG9CQUFNLFlBQVksSUFBSSxNQUFNLGNBQVYsQ0FBeUI7QUFDdkMsOEJBQVUsUUFENkI7QUFFdkMsa0NBQWMsVUFGeUI7QUFHdkMsb0NBQWdCO0FBSHVCLGlCQUF6QixDQUFsQjtBQVdDO0FBQ0Q7QUFDQSxzQkFBTSxlQUFOLENBQXNCLElBQXRCLEVBQTRCLFNBQTVCLEVBQXVDLElBQXZDLEVBQTZDLE9BQU8sWUFBcEQsRUFBa0UsS0FBbEUsRUFBeUUsV0FBekU7QUFDSCxhQS9CRCxNQStCTztBQUNILHNCQUFNLEdBQU4sQ0FBVSxLQUFWLEVBQWlCLEdBQWpCLEVBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLFFBQTVCLENBQXFDLFFBQXJDO0FBQ0Esc0JBQU0sR0FBTixDQUFVLEtBQVYsRUFBaUIsR0FBakIsRUFBc0IsQ0FBdEIsRUFBeUIsQ0FBekIsRUFBNEIsUUFBNUIsQ0FBcUMsUUFBckM7QUFDQSxzQkFBTSxHQUFOLENBQVUsS0FBVixFQUFpQixHQUFqQixFQUFzQixDQUF0QixFQUF5QixDQUF6QixFQUE0QixRQUE1QixDQUFxQyxRQUFyQztBQUNIO0FBQ0Qsa0JBQU0sR0FBTixDQUFVLEtBQVY7QUFDQSxrQkFBTSxNQUFOLENBQWEsY0FBYixDQUE0QixLQUE1QjtBQUNBO0FBQ0Esa0JBQU0sTUFBTixHQUFlLE1BQU0sTUFBckIsQ0E1Q0csQ0E0QzBCO0FBQ2hDO0FBQ0o7O0FBRUQsVUFBTSxRQUFOLEdBQWlCLFVBQUMsUUFBRCxFQUFjO0FBQzNCLGVBQU8sRUFBUCxDQUFVLFVBQVYsRUFBc0IsUUFBdEI7QUFDQSxlQUFPLEtBQVA7QUFDSCxLQUhEOztBQUtBLFFBQU0sd0JBQXdCLE1BQU0sYUFBcEM7QUFDQSxVQUFNLGFBQU4sR0FBc0IsVUFBVSxZQUFWLEVBQXlCO0FBQzNDLFlBQUksTUFBTSxNQUFWLEVBQWtCO0FBQ2xCLDhCQUFzQixZQUF0QjtBQUNILEtBSEQ7O0FBS0EsYUFBUyxZQUFULEdBQXdCO0FBQ3BCO0FBQ0E7QUFDQSxnQkFBUSxPQUFPLFlBQVAsQ0FBUjtBQUNBLGNBQU0sS0FBTixDQUFZLElBQVosQ0FBaUIsS0FBakI7QUFDQSxlQUFPLE1BQU0sS0FBYjtBQUNBLGlCQUFTLFdBQVQsQ0FBcUIsS0FBckIsQ0FBMkIsSUFBM0IsQ0FBZ0MsU0FBUyxLQUFULENBQWhDO0FBQ0g7QUFDRCxVQUFNLE1BQU4sR0FBZSxZQUFNO0FBQ2pCLGNBQU0sTUFBTixHQUFlLElBQWY7QUFDQSxlQUFPLEtBQVA7QUFDSCxLQUhEOztBQUtBLFdBQU8sS0FBUDtBQUNIOzs7Ozs7OztRQzVOZSxnQixHQUFBLGdCO0FBM0NoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CTyxJQUFNLHdDQUFnQixRQUF0QjtBQUNBLElBQU0sNENBQWtCLFFBQXhCO0FBQ0EsSUFBTSxnREFBb0IsUUFBMUI7QUFDQSxJQUFNLDBDQUFpQixRQUF2QjtBQUNBLElBQU0sOERBQTJCLFFBQWpDO0FBQ0EsSUFBTSx3Q0FBZ0IsUUFBdEI7QUFDQSxJQUFNLHNDQUFlLFFBQXJCO0FBQ0EsSUFBTSxvREFBc0IsUUFBNUI7QUFDQSxJQUFNLDBDQUFpQixRQUF2QjtBQUNBLElBQU0sMENBQWlCLFFBQXZCO0FBQ0EsSUFBTSxzREFBdUIsUUFBN0I7QUFDQSxJQUFNLDBEQUF5QixRQUEvQjtBQUNBLElBQU0sc0RBQXVCLFFBQTdCO0FBQ0EsSUFBTSxrREFBcUIsUUFBM0I7QUFDQSxJQUFNLDBEQUF5QixRQUEvQjtBQUNBLElBQU0sZ0RBQW9CLFFBQTFCO0FBQ0EsSUFBTSxnREFBb0IsUUFBMUI7QUFDQSxJQUFNLGdEQUFvQixRQUExQjtBQUNBLElBQU0sc0NBQWUsUUFBckI7QUFDQSxJQUFNLDBEQUF5QixRQUEvQjtBQUNBLElBQU0sZ0NBQVksUUFBbEI7QUFDQSxJQUFNLGtDQUFhLFFBQW5CO0FBQ0EsSUFBTSxzREFBdUIsUUFBN0I7O0FBRUEsU0FBUyxnQkFBVCxDQUEyQixRQUEzQixFQUFxQyxLQUFyQyxFQUE0QztBQUNqRCxNQUFNLE1BQU0sSUFBSSxNQUFNLEtBQVYsQ0FBZ0IsS0FBaEIsQ0FBWjtBQUNBLE1BQUksSUFBSSxTQUFTLFlBQVQsQ0FBc0IsT0FBdEIsQ0FBUjtBQUNBLE1BQUksVUFBSjtBQUNBLE1BQUksQ0FBQyxDQUFMLEVBQVE7QUFDTixRQUFJLElBQUksWUFBSixDQUFpQixTQUFTLFlBQVQsQ0FBc0IsVUFBdEIsRUFBa0MsS0FBbEMsQ0FBd0MsTUFBekQsRUFBaUUsSUFBakUsQ0FBc0UsR0FBdEUsQ0FBSjtBQUNBLFFBQUksU0FBUyxZQUFULENBQXNCLE9BQXRCLEVBQStCLElBQUksTUFBTSxlQUFWLENBQTBCLENBQTFCLEVBQTZCLENBQTdCLENBQS9CLENBQUo7QUFDRCxHQUhELE1BR087QUFDTCxRQUFJLEVBQUUsS0FBTjtBQUNEO0FBQ0QsT0FBSyxJQUFJLElBQUksQ0FBYixFQUFnQixJQUFJLEVBQUUsTUFBdEIsRUFBOEIsS0FBRyxDQUFqQyxFQUFvQztBQUNsQyxNQUFFLENBQUYsSUFBTyxJQUFJLENBQVg7QUFDQSxNQUFFLElBQUUsQ0FBSixJQUFTLElBQUksQ0FBYjtBQUNBLE1BQUUsSUFBRSxDQUFKLElBQVMsSUFBSSxDQUFiO0FBQ0Q7QUFDRCxJQUFFLFdBQUYsR0FBZ0IsSUFBaEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFPLFFBQVA7QUFDRDs7Ozs7Ozs7a0JDdEN1QixjOztBQVJ4Qjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLE87O0FBQ1o7O0lBQVksSTs7QUFDWjs7Ozs7O29NQXpCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJCZSxTQUFTLGNBQVQsR0FTUDtBQUFBLGlGQUFKLEVBQUk7QUFBQSxNQVJOLFdBUU0sUUFSTixXQVFNO0FBQUEsTUFQTixNQU9NLFFBUE4sTUFPTTtBQUFBLCtCQU5OLFlBTU07QUFBQSxNQU5OLFlBTU0scUNBTlMsV0FNVDtBQUFBLCtCQUxOLFlBS007QUFBQSxNQUxOLFlBS00scUNBTFMsS0FLVDtBQUFBLDBCQUpOLE9BSU07QUFBQSxNQUpOLE9BSU0sZ0NBSkksRUFJSjtBQUFBLHdCQUhOLEtBR007QUFBQSxNQUhOLEtBR00sOEJBSEUsT0FBTyxXQUdUO0FBQUEseUJBRk4sTUFFTTtBQUFBLE1BRk4sTUFFTSwrQkFGRyxPQUFPLFlBRVY7QUFBQSx3QkFETixLQUNNO0FBQUEsTUFETixLQUNNLDhCQURFLE9BQU8sV0FDVDs7QUFHTixNQUFNLFFBQVE7QUFDWixVQUFNLEtBRE07QUFFWixZQUFRO0FBRkksR0FBZDs7QUFLQSxNQUFNLGlCQUFpQixRQUFRLEdBQVIsR0FBYyxPQUFPLFlBQTVDO0FBQ0EsTUFBTSxrQkFBa0IsU0FBUyxPQUFPLFlBQXhDO0FBQ0EsTUFBTSxpQkFBaUIsS0FBdkI7QUFDQSxNQUFNLHlCQUF5QixTQUFTLE9BQU8sWUFBUCxHQUFzQixHQUE5RDtBQUNBLE1BQU0sa0JBQWtCLE9BQU8sWUFBUCxHQUFzQixDQUFDLEdBQS9DO0FBQ0EsTUFBTSxnQ0FBZ0MsRUFBdEM7O0FBRUEsTUFBTSxRQUFRLElBQUksTUFBTSxLQUFWLEVBQWQ7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsVUFBaEI7QUFDQSxRQUFNLFFBQU4sR0FBaUI7QUFBQSxpQkFBVSxNQUFNLE9BQWhCLFVBQTRCLFlBQTVCO0FBQUEsR0FBakI7O0FBRUE7QUFDQSxRQUFNLFFBQU4sQ0FBZSxZQUFmLEdBQThCLE1BQTlCO0FBQ0EsUUFBTSxRQUFOLENBQWUsa0JBQWYsR0FBb0MsWUFBcEM7QUFDQSxRQUFNLFFBQU4sQ0FBZSxRQUFmLEdBQTBCLGFBQUs7QUFDN0IsUUFBSSxRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsTUFBdUIsQ0FBQyxDQUE1QixFQUErQjtBQUM3QjtBQUNBLGNBQVEsSUFBUixpQ0FBMkMsQ0FBM0Msd0JBQStELFlBQS9ELDRCQUFrRyxRQUFRLElBQVIsQ0FBYSxJQUFiLENBQWxHO0FBQ0E7QUFDRDtBQUNELFdBQU8sWUFBUCxJQUF1QixDQUF2QjtBQUNBLFFBQUksV0FBSixFQUFpQixZQUFZLE9BQU8sWUFBUCxDQUFaO0FBQ2xCLEdBUkQ7O0FBVUEsTUFBTSxRQUFRLE9BQU8sV0FBUCxDQUFvQixLQUFwQixFQUEyQixNQUEzQixFQUFtQyxLQUFuQyxDQUFkO0FBQ0EsUUFBTSxHQUFOLENBQVcsS0FBWDs7QUFFQSxRQUFNLE9BQU4sR0FBZ0IsQ0FBRSxLQUFGLENBQWhCOztBQUVBLE1BQU0sZ0JBQWdCLElBQUksTUFBTSxLQUFWLEVBQXRCO0FBQ0EsZ0JBQWMsT0FBZCxHQUF3QixLQUF4QjtBQUNBLGdCQUFjLE9BQWQsR0FBd0IsRUFBeEI7QUFDQSxNQUFNLG9CQUFvQixFQUExQjtBQUNBLE1BQU0sZUFBZSxFQUFyQjs7QUFFQTtBQUNBLE1BQU0sZUFBZSxtQkFBckI7O0FBSUEsV0FBUyxpQkFBVCxHQUE0QjtBQUMxQixRQUFJLE1BQU0sT0FBTixDQUFlLE9BQWYsQ0FBSixFQUE4QjtBQUM1QixhQUFPLFFBQVEsSUFBUixDQUFjLFVBQVUsVUFBVixFQUFzQjtBQUN6QyxlQUFPLGVBQWUsT0FBUSxZQUFSLENBQXRCO0FBQ0QsT0FGTSxDQUFQO0FBR0QsS0FKRCxNQUtJO0FBQ0YsYUFBTyxPQUFPLElBQVAsQ0FBWSxPQUFaLEVBQXFCLElBQXJCLENBQTJCLFVBQVUsVUFBVixFQUFzQjtBQUN0RCxlQUFPLE9BQU8sWUFBUCxNQUF5QixRQUFTLFVBQVQsQ0FBaEM7QUFDRCxPQUZNLENBQVA7QUFHRDtBQUNGOztBQUVELFdBQVMsWUFBVCxDQUF1QixTQUF2QixFQUFrQyxRQUFsQyxFQUE0QztBQUMxQztBQUNBLFFBQU0sUUFBUSx5QkFDWixXQURZLEVBQ0MsU0FERDtBQUVaO0FBQ0Esa0JBSFksRUFHSSxLQUhKLEVBSVosT0FBTyxpQkFKSyxFQUljLE9BQU8saUJBSnJCLEVBS1osS0FMWSxDQUFkO0FBT0EsVUFBTSxJQUFOLENBQVcsT0FBWCxHQUFxQixnQkFBckI7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsZ0JBQWhCOztBQUVBLFFBQUksUUFBSixFQUFjLGNBQWMsT0FBZCxDQUFzQixJQUF0QixDQUE0QixNQUFNLElBQWxDLEVBQWQsS0FDSyxNQUFNLE9BQU4sQ0FBYyxJQUFkLENBQW9CLE1BQU0sSUFBMUI7QUFDTCxRQUFNLG1CQUFtQiwyQkFBbUIsTUFBTSxJQUF6QixDQUF6QjtBQUNBLHFCQUFpQixPQUFqQixHQUEyQixnQkFBM0I7QUFDQSxzQkFBa0IsSUFBbEIsQ0FBd0IsZ0JBQXhCO0FBQ0EsaUJBQWEsSUFBYixDQUFtQixLQUFuQjs7QUFHQSxRQUFJLFFBQUosRUFBYztBQUNaLHVCQUFpQixNQUFqQixDQUF3QixFQUF4QixDQUE0QixXQUE1QixFQUF5QyxVQUFVLENBQVYsRUFBYTtBQUNwRCxjQUFNLElBQU4sR0FBYSxjQUFjLE9BQTNCO0FBQ0Esc0JBQWMsU0FBZCxDQUF5QixTQUF6Qjs7QUFFQSxZQUFJLGtCQUFrQixLQUF0Qjs7QUFFQSxZQUFJLE1BQU0sT0FBTixDQUFlLE9BQWYsQ0FBSixFQUE4QjtBQUM1Qiw0QkFBa0IsT0FBUSxZQUFSLE1BQTJCLFNBQTdDO0FBQ0EsY0FBSSxlQUFKLEVBQXFCO0FBQ25CLG1CQUFRLFlBQVIsSUFBeUIsU0FBekI7QUFDRDtBQUNGLFNBTEQsTUFNSTtBQUNGLDRCQUFrQixPQUFRLFlBQVIsTUFBMkIsUUFBUyxTQUFULENBQTdDO0FBQ0EsY0FBSSxlQUFKLEVBQXFCO0FBQ25CLG1CQUFRLFlBQVIsSUFBeUIsUUFBUyxTQUFULENBQXpCO0FBQ0Q7QUFDRjs7QUFHRDtBQUNBLGNBQU0sSUFBTixHQUFhLEtBQWI7O0FBRUEsWUFBSSxlQUFlLGVBQW5CLEVBQW9DO0FBQ2xDLHNCQUFhLE9BQVEsWUFBUixDQUFiO0FBQ0Q7QUFDRCxZQUFLLFVBQUwsRUFBaUI7QUFDZixxQkFBWSxPQUFRLFlBQVIsQ0FBWjtBQUNEOztBQUVELFVBQUUsTUFBRixHQUFXLElBQVg7QUFFRCxPQWhDRDtBQWlDRCxLQWxDRCxNQW1DSTtBQUNGLHVCQUFpQixNQUFqQixDQUF3QixFQUF4QixDQUE0QixXQUE1QixFQUF5QyxVQUFVLENBQVYsRUFBYTtBQUNwRCxjQUFNLElBQU4sR0FBYSxjQUFjLE9BQTNCO0FBQ0EsWUFBSSxNQUFNLElBQU4sS0FBZSxLQUFuQixFQUEwQjtBQUN4QjtBQUNELFNBRkQsTUFHSTtBQUNGO0FBQ0Q7O0FBRUQsVUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNELE9BVkQ7QUFXRDtBQUNELFVBQU0sUUFBTixHQUFpQixRQUFqQjtBQUNBLFdBQU8sS0FBUDtBQUNEOztBQUVELFdBQVMsZUFBVCxHQUEwQjtBQUN4QixVQUFNLElBQU4sR0FBYSxLQUFiO0FBQ0EsUUFBSSxNQUFNLE1BQVYsRUFBa0IsTUFBTSxNQUFOLENBQWEsZ0JBQWIsR0FGTSxDQUUyQjtBQUNwRDs7QUFFRCxXQUFTLFdBQVQsR0FBc0I7QUFDcEIsVUFBTSxJQUFOLEdBQWEsSUFBYjtBQUNBLFVBQU0sTUFBTixDQUFhLGNBQWIsQ0FBNEIsYUFBNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBYSxPQUFiLENBQXNCLFVBQVUsS0FBVixFQUFpQjtBQUNyQyxVQUFJLE1BQU0sUUFBVixFQUFvQjtBQUNsQixjQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDQSxjQUFNLElBQU4sQ0FBVyxPQUFYLEdBQXFCLElBQXJCO0FBQ0Q7QUFDRixLQUxEO0FBTUQ7O0FBRUQ7QUFDQSxNQUFNLGdCQUFnQixhQUFjLGdCQUFnQixHQUE5QixFQUFtQyxLQUFuQyxDQUF0QjtBQUNBLGdCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsT0FBTyxZQUFQLEdBQXNCLEdBQXRCLEdBQTRCLFFBQVEsR0FBL0Q7QUFDQSxnQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLEtBQTNCOztBQUVBLE1BQU0sWUFBWSxRQUFRLFNBQVIsRUFBbEI7QUFDQTtBQUNBLFlBQVUsUUFBVixDQUFtQixHQUFuQixDQUF3QixpQkFBaUIsSUFBekMsRUFBK0MsQ0FBL0MsRUFBa0QsUUFBUSxJQUExRDtBQUNBLGdCQUFjLEdBQWQsQ0FBbUIsU0FBbkI7O0FBR0EsV0FBUyxzQkFBVCxDQUFpQyxLQUFqQyxFQUF3QyxLQUF4QyxFQUErQztBQUM3QyxVQUFNLFFBQU4sQ0FBZSxDQUFmLEdBQW1CLENBQUMsZUFBRCxHQUFtQixDQUFDLFFBQU0sNkJBQU4sR0FBb0MsQ0FBckMsSUFBNEMsc0JBQWxGO0FBQ0EsVUFBTSxRQUFOLENBQWUsQ0FBZixHQUFtQixLQUFuQjtBQUNBLFVBQU0sUUFBTixDQUFlLENBQWYsSUFBb0IsaUJBQWlCLEtBQUssS0FBTCxDQUFXLFFBQVEsNkJBQW5CLENBQXJDO0FBQ0Q7O0FBRUQsV0FBUyxhQUFULENBQXdCLFVBQXhCLEVBQW9DLEtBQXBDLEVBQTJDO0FBQ3pDLFFBQU0sY0FBYyxhQUFjLFVBQWQsRUFBMEIsSUFBMUIsQ0FBcEI7QUFDQSwyQkFBd0IsV0FBeEIsRUFBcUMsS0FBckM7QUFDQSxXQUFPLFdBQVA7QUFDRDs7QUFFRCxnQkFBYyxHQUFkLENBQWtCLGFBQWxCO0FBQ0EsTUFBSSxNQUFNLE9BQU4sQ0FBZSxPQUFmLENBQUosRUFBOEI7QUFDNUIsa0JBQWMsR0FBZCx5Q0FBcUIsUUFBUSxHQUFSLENBQVksYUFBWixDQUFyQjtBQUNELEdBRkQsTUFHSTtBQUNGLGtCQUFjLEdBQWQseUNBQXNCLE9BQU8sSUFBUCxDQUFZLE9BQVosRUFBcUIsR0FBckIsQ0FBMEIsYUFBMUIsQ0FBdEI7QUFDRDs7QUFHRDs7QUFFQSxNQUFNLGtCQUFrQixZQUFZLE1BQVosQ0FBb0IsWUFBcEIsQ0FBeEI7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsT0FBTyx1QkFBcEM7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsS0FBN0I7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsQ0FBQyxJQUE5Qjs7QUFFQSxNQUFNLGVBQWUsT0FBTyxxQkFBUCxDQUE4QixNQUE5QixFQUFzQyxPQUFPLHNCQUE3QyxDQUFyQjtBQUNBLGVBQWEsUUFBYixDQUFzQixDQUF0QixHQUEwQixLQUExQjs7QUFHQSxNQUFNLFlBQVksT0FBTyxXQUFQLENBQW9CLGlCQUFpQixPQUFPLGdCQUE1QyxFQUE4RCxrQkFBa0IsT0FBTyxnQkFBUCxHQUEwQixHQUExRyxFQUErRyxjQUEvRyxFQUErSCxJQUEvSCxDQUFsQjtBQUNBLFlBQVUsUUFBVixDQUFtQixLQUFuQixDQUF5QixNQUF6QixDQUFpQyxRQUFqQztBQUNBLFlBQVUsUUFBVixDQUFtQixDQUFuQixHQUF1QixDQUFDLE9BQU8sZ0JBQVIsR0FBMkIsR0FBM0IsR0FBaUMsUUFBUSxHQUFoRTtBQUNBLFlBQVUsUUFBVixDQUFtQixDQUFuQixHQUF1QixRQUFRLEdBQS9COztBQUVBLFFBQU0sR0FBTixDQUFXLGVBQVgsRUFBNEIsWUFBNUIsRUFBMEMsYUFBMUMsRUFBeUQsU0FBekQ7O0FBR0E7O0FBRUEsV0FBUyxVQUFULEdBQXFCOztBQUVuQixzQkFBa0IsT0FBbEIsQ0FBMkIsVUFBVSxXQUFWLEVBQXVCLEtBQXZCLEVBQThCO0FBQ3ZELFVBQU0sUUFBUSxhQUFjLEtBQWQsQ0FBZDtBQUNBLFVBQUksTUFBTSxRQUFWLEVBQW9CO0FBQ2xCLFlBQUksWUFBWSxRQUFaLEVBQUosRUFBNEI7QUFDMUIsaUJBQU8sZ0JBQVAsQ0FBeUIsTUFBTSxJQUFOLENBQVcsUUFBcEMsRUFBOEMsT0FBTyxlQUFyRDtBQUNELFNBRkQsTUFHSTtBQUNGLGlCQUFPLGdCQUFQLENBQXlCLE1BQU0sSUFBTixDQUFXLFFBQXBDLEVBQThDLE9BQU8saUJBQXJEO0FBQ0Q7QUFDRjtBQUNGLEtBVkQ7O0FBWUEsVUFBTSxJQUFOLEdBQWEsY0FBYyxPQUEzQixDQWRtQixDQWNpQjtBQUNwQyxRQUFJLE1BQU0sUUFBTixDQUFlLE1BQW5CLEVBQTJCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLGdDQUFjLEtBQWQsRUFBcUIsTUFBTSxRQUFOLENBQWUsTUFBcEMsRUFBNEMsa0JBQWtCLENBQWxCLEVBQXFCLFFBQXJCLEVBQTVDO0FBQ0Q7QUFDRCxRQUFJLGtCQUFrQixDQUFsQixFQUFxQixRQUFyQixNQUFtQyxNQUFNLElBQTdDLEVBQW1EO0FBQ2pELGdCQUFVLE9BQVYsR0FBb0IsSUFBcEI7QUFDRCxLQUZELE1BR0k7QUFDRixnQkFBVSxPQUFWLEdBQW9CLEtBQXBCO0FBQ0Q7QUFDRjs7QUFFRCxNQUFJLG9CQUFKO0FBQ0EsTUFBSSx5QkFBSjtBQUNBLE1BQUksbUJBQUo7O0FBRUEsUUFBTSxRQUFOLEdBQWlCLFVBQVUsUUFBVixFQUFvQjtBQUNuQyxrQkFBYyxRQUFkO0FBQ0EsV0FBTyxLQUFQO0FBQ0QsR0FIRDtBQUlBLFFBQU0sUUFBTixHQUFpQixVQUFVLFFBQVYsRUFBb0I7QUFDbkMsaUJBQWEsUUFBYjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBS0EsTUFBTSxrQkFBa0IsS0FBSyxNQUFMLENBQWEsRUFBRSxZQUFGLEVBQVMsWUFBVCxFQUFiLENBQXhCOztBQUVBLFFBQU0sTUFBTixHQUFlLFlBQVU7QUFDdkIsVUFBTSxNQUFOLEdBQWUsSUFBZjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBS0EsUUFBTSxhQUFOLEdBQXNCLFVBQVUsWUFBVixFQUF3QjtBQUM1QyxRQUFJLE1BQU0sTUFBVixFQUFrQjtBQUNoQixvQkFBYyxTQUFkLENBQXlCLG1CQUF6QjtBQUNEO0FBQ0Qsc0JBQWtCLE9BQWxCLENBQTJCLFVBQVUsZ0JBQVYsRUFBNEI7QUFDckQsdUJBQWlCLE1BQWpCLENBQXlCLFlBQXpCO0FBQ0QsS0FGRDtBQUdBLG9CQUFnQixNQUFoQixDQUF3QixZQUF4QjtBQUNBO0FBQ0QsR0FURDs7QUFXQSxRQUFNLElBQU4sR0FBYSxVQUFVLEdBQVYsRUFBZTtBQUMxQixvQkFBZ0IsV0FBaEIsQ0FBNkIsR0FBN0I7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEOztBQUtBLFFBQU0sVUFBTixHQUFtQixlQUFPO0FBQ3hCLFFBQU0sTUFBTSxLQUFaO0FBQ0EsUUFBSSxRQUFKLENBQWEsR0FBYixHQUFtQixHQUFuQjtBQUNBO0FBQ0E7QUFDQSxRQUFJLFFBQUosQ0FBYSxNQUFiLEdBQXNCLDhCQUFjLFdBQWQsRUFBMkIsR0FBM0IsRUFBZ0MsT0FBTyxZQUF2QyxFQUFxRCxJQUFJLE9BQXpELEVBQWtFLE9BQU8sWUFBekUsQ0FBdEI7QUFDQTtBQUNELEdBUEQ7QUFRQSxRQUFNLFVBQU4sR0FBbUI7QUFBQSxXQUFNLE1BQU0sUUFBTixDQUFlLEdBQXJCO0FBQUEsR0FBbkI7O0FBR0EsU0FBTyxLQUFQO0FBQ0Q7Ozs7Ozs7O2tCQ2pQdUIsWTs7QUE3RHhCOztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLE87O0FBQ1o7O0lBQVksZTs7QUFDWjs7SUFBWSxJOztBQUNaOztJQUFZLE87O0FBQ1o7Ozs7OztvTUEzQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkE7O0FBRUE7Ozs7QUFJQSxJQUFNLGlCQUFpQixFQUF2Qjs7QUFFQSxJQUFNLG1CQUFtQixJQUFJLE1BQU0sSUFBVixFQUF6QjtBQUFBLElBQTJDLGdCQUFnQixJQUFJLE1BQU0sSUFBVixFQUEzRDtBQUFBLElBQTZFLGNBQWMsSUFBSSxNQUFNLE9BQVYsRUFBM0Y7O0FBRUEsU0FBUyx3QkFBVCxHQUFvQztBQUNsQyxNQUFNLE1BQU0sZUFBZSxDQUFmLEVBQWtCLFFBQWxCLENBQTJCLGNBQXZDO0FBQ0EsTUFBSSxDQUFDLEdBQUQsSUFBUSxlQUFlLE1BQWYsSUFBeUIsQ0FBckMsRUFBd0M7QUFDeEM7QUFDQSxNQUFNLE1BQU0sZUFBZSxNQUFmLENBQXNCO0FBQUEsV0FBSyxFQUFFLE9BQVA7QUFBQSxHQUF0QixDQUFaO0FBQ0EsTUFBTSxPQUFPLElBQUksSUFBakI7QUFBQSxNQUF1QixNQUFNLElBQUksR0FBakM7QUFBQSxNQUFzQyxJQUFJLElBQUksTUFBOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFJLE9BQUosQ0FBWSxVQUFDLENBQUQsRUFBSSxDQUFKLEVBQVU7QUFDcEI7QUFDQTtBQUNBLFFBQU0sSUFBSSxJQUFFLENBQVo7QUFDQSxRQUFJLE1BQU0sRUFBRSxRQUFGLENBQVcsQ0FBckIsRUFBd0I7QUFDdEIsUUFBRSxRQUFGLENBQVcsQ0FBWCxHQUFlLENBQWY7QUFDQSxRQUFFLFlBQUY7QUFDQSxRQUFFLGlCQUFGO0FBQ0Q7QUFDRixHQVREO0FBVUEsTUFBSSxJQUFJLElBQUUsQ0FBTixFQUFTLFFBQVQsQ0FBa0IsQ0FBbEIsSUFBdUIsT0FBTyxPQUFPLFdBQXpDLEVBQXNEO0FBQ3BELFlBQVEsR0FBUixDQUFZLHdFQUFaO0FBQ0Q7QUFDRDtBQUNEOztBQUVELFNBQVMsV0FBVCxDQUFxQixHQUFyQixFQUEwQjtBQUN4QixNQUFJLENBQUMsSUFBSSxvQkFBVCxFQUErQjtBQUMvQixNQUFNLE9BQU8sSUFBSSxJQUFqQjtBQUFBLE1BQXVCLE1BQU0sSUFBSSxHQUFqQztBQUFBLE1BQXNDLElBQUksZUFBZSxNQUF6RDtBQUNBLE1BQU0sSUFBSSxJQUFJLElBQWQ7QUFBQSxNQUFvQixJQUFJLElBQUksS0FBNUI7QUFBQSxNQUFtQyxJQUFJLElBQUksR0FBM0M7QUFBQSxNQUFnRCxJQUFJLElBQUksTUFBeEQ7QUFDQSxNQUFNLElBQUksSUFBSSxRQUFKLENBQWEsQ0FBdkIsQ0FKd0IsQ0FJRTtBQUMxQixnQkFBYyxHQUFkLENBQWtCLEdBQWxCLENBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQUMsR0FBRCxHQUFPLENBQW5DO0FBQ0EsZ0JBQWMsR0FBZCxDQUFrQixHQUFsQixDQUFzQixDQUF0QixFQUF5QixDQUF6QixFQUE0QixDQUFDLElBQUQsR0FBUSxDQUFwQztBQUNBLFNBQU8sYUFBUDtBQUNEOztBQUVjLFNBQVMsWUFBVCxHQU9QO0FBQUEsaUZBQUosRUFBSTtBQUFBLE1BTk4sV0FNTSxRQU5OLFdBTU07QUFBQSxNQUxOLElBS00sUUFMTixJQUtNO0FBQUEsTUFKTixNQUlNLFFBSk4sTUFJTTtBQUFBLE1BSE4sU0FHTSxRQUhOLFNBR007QUFBQSxNQUZOLGtCQUVNLFFBRk4sa0JBRU07QUFBQSxNQUROLGlCQUNNLFFBRE4saUJBQ007O0FBRU4sTUFBTSw2QkFBNkIsRUFBbkM7O0FBRUEsTUFBTSxRQUFRLE9BQU8sWUFBckI7QUFDQSxNQUFNLFFBQVEsT0FBTyxXQUFyQjs7QUFFQSxNQUFNLFFBQVE7QUFDWixlQUFXLEtBREM7QUFFWixvQkFBZ0I7QUFGSixHQUFkOztBQUtBLE1BQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLFFBQWhCO0FBQ0EsUUFBTSxRQUFOLEdBQWlCO0FBQUEsaUJBQVUsTUFBTSxPQUFoQixVQUE0QixJQUE1QjtBQUFBLEdBQWpCOztBQUVBLE1BQU0sZ0JBQWdCLElBQUksTUFBTSxLQUFWLEVBQXRCO0FBQ0EsUUFBTSxHQUFOLENBQVcsYUFBWDs7QUFFQSxNQUFJLGNBQWMsS0FBbEI7QUFDQTs7O0FBR0EsU0FBTyxjQUFQLENBQXVCLEtBQXZCLEVBQThCLFdBQTlCLEVBQTJDO0FBQ3pDLFNBQUssZUFBTTtBQUNULGFBQU8sV0FBUDtBQUNELEtBSHdDO0FBSXpDLFNBQUssYUFBRSxRQUFGLEVBQWdCO0FBQ25CLFVBQUssWUFBWSxDQUFDLFdBQWxCLEVBQWdDLE1BQU0sV0FBTixDQUFrQixNQUFsQixDQUEwQjtBQUFBLGVBQUcsRUFBRSxRQUFMO0FBQUEsT0FBMUIsRUFBMEMsR0FBMUMsQ0FBK0M7QUFBQSxlQUFHLEVBQUUsS0FBRixFQUFIO0FBQUEsT0FBL0M7QUFDaEMsb0JBQWMsUUFBZDtBQUNBLFlBQU0sYUFBTjtBQUNEO0FBUndDLEdBQTNDOztBQVdBO0FBQ0EsUUFBTSxhQUFOLEdBQXNCLFlBQU07QUFDMUIsUUFBTSxZQUFZLDhCQUFrQixLQUFsQixDQUFsQjtBQUNBLFFBQUksVUFBVSxRQUFWLENBQW1CLGdCQUF2QixFQUF5QztBQUN2QyxjQUFRLEdBQVIsaUNBQTBDLE1BQU0sVUFBaEQ7QUFDRCxLQUZELE1BR0s7QUFDSDtBQUNBLGdCQUFVLFFBQVYsQ0FBbUIsYUFBbkIsR0FBbUMsSUFBbkM7QUFDRDtBQUNGLEdBVEQ7QUFVQTtBQUNBLFFBQU0sYUFBTixHQUFzQixhQUF0Qjs7QUFFQSxNQUFNLG1CQUFtQixJQUFJLE1BQU0sVUFBVixFQUF6QjtBQUNBO0FBQ0EsUUFBTSxpQkFBTixHQUEwQixZQUFzQjtBQUFBLFFBQWIsTUFBYSx1RUFBTixJQUFNOztBQUM5QyxRQUFNLElBQUksSUFBVjtBQUNBLFFBQUksQ0FBQyxFQUFFLFFBQUYsQ0FBVyxjQUFoQixFQUFnQztBQUNoQztBQUNBLE1BQUUseUJBQUYsQ0FBNEIsZ0JBQTVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQU0sTUFBTSw2QkFBaUIsZ0JBQWpCLEVBQW1DLENBQW5DLENBQVo7QUFDQSxRQUFNLE9BQU8sSUFBSSxHQUFKLENBQVEsQ0FBUixHQUFZLElBQUksR0FBSixDQUFRLENBQWpDO0FBQUEsUUFBb0MsT0FBTyxJQUFJLEdBQUosQ0FBUSxDQUFSLEdBQVUsSUFBSSxHQUFKLENBQVEsQ0FBN0Q7O0FBRUEsUUFBTSxNQUFNLEVBQUUsUUFBRixDQUFXLGNBQXZCO0FBQ0EsUUFBTSxTQUFTLFlBQVksR0FBWixDQUFmLENBYjhDLENBYWI7QUFDakM7QUFDQTtBQUNBO0FBQ0EsUUFBTSxlQUFlLElBQUksU0FBSixDQUFjLE1BQWQsQ0FBckIsQ0FqQjhDLENBaUJGO0FBQzVDO0FBQ0E7O0FBRUE7QUFDQSxRQUFNLG1CQUFtQixhQUFhLE9BQWIsQ0FBcUIsV0FBckIsQ0FBekI7QUFDQSxRQUFNLFVBQVUsSUFBSSxLQUFKLEdBQVksSUFBSSxJQUFoQztBQUFBLFFBQXNDLFVBQVUsSUFBSSxHQUFKLEdBQVUsSUFBSSxNQUE5RDtBQUNBO0FBQ0EscUJBQWlCLENBQWpCLElBQXNCLElBQXRCLENBQTRCLGlCQUFpQixDQUFqQixJQUFzQixJQUF0QjtBQUM1QixRQUFJLGNBQWMsS0FBbEI7QUFDQTtBQUNBLFFBQUksaUJBQWlCLENBQWpCLEdBQXFCLE1BQXpCLEVBQWlDO0FBQUU7QUFDakM7QUFDQSxRQUFFLFFBQUYsQ0FBVyxDQUFYLEdBQWUsSUFBSSxJQUFKLEdBQVcsVUFBUSxDQUFsQztBQUNBLG9CQUFjLElBQWQ7QUFDRDtBQUNELFFBQUksaUJBQWlCLENBQWpCLEdBQXFCLE1BQXpCLEVBQWlDO0FBQy9CLFFBQUUsUUFBRixDQUFXLENBQVgsR0FBZSxJQUFJLE1BQUosR0FBYSxVQUFRLENBQXBDO0FBQ0Esb0JBQWMsSUFBZDtBQUNEO0FBQ0QsUUFBSSxXQUFKLEVBQWlCLEVBQUUsWUFBRjtBQUNsQixHQXRDRDs7QUF3Q0EsUUFBTSxXQUFOLEdBQW9CLFlBQU07QUFBRSxXQUFPLE1BQU0sU0FBYjtBQUF3QixHQUFwRDs7QUFFQTtBQUNBLFNBQU8sY0FBUCxDQUFzQixLQUF0QixFQUE2QixhQUE3QixFQUE0QztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQUssZUFBTTtBQUFFLDBDQUFZLGNBQWMsUUFBMUIsc0JBQXVDLFlBQVksUUFBbkQ7QUFBK0Q7QUFMbEMsR0FBNUM7QUFPQTtBQUNBLFFBQU0sUUFBTixHQUFpQixZQUFvQjtBQUFBLHNDQUFOLElBQU07QUFBTixVQUFNO0FBQUE7O0FBQ25DLFdBQU8sQ0FBQyxLQUFLLFFBQUwsQ0FBYyxVQUFDLEdBQUQsRUFBUztBQUFFLGFBQU8sTUFBTSxXQUFOLENBQWtCLE9BQWxCLENBQTBCLEdBQTFCLE1BQW1DLENBQUMsQ0FBM0M7QUFBNkMsS0FBdEUsQ0FBUjtBQUNELEdBRkQ7O0FBSUEsUUFBTSxVQUFOLEdBQW1CLElBQW5CLENBekdNLENBeUdtQjs7QUFFekI7QUFDQSxNQUFNLGNBQWMsTUFBTSxLQUFOLENBQVksU0FBWixDQUFzQixHQUExQztBQUNBO0FBQ0EsTUFBTSxpQkFBaUIsTUFBTSxLQUFOLENBQVksU0FBWixDQUFzQixNQUE3Qzs7QUFFQSxXQUFTLE9BQVQsQ0FBa0IsQ0FBbEIsRUFBcUI7QUFDbkI7QUFDQTtBQUNBLGdCQUFZLElBQVosQ0FBa0IsS0FBbEIsRUFBeUIsQ0FBekI7QUFDRDtBQUNELFdBQVMsVUFBVCxDQUFxQixDQUFyQixFQUF3QjtBQUN0QixtQkFBZSxJQUFmLENBQXFCLEtBQXJCLEVBQTRCLENBQTVCO0FBQ0Q7O0FBRUQ7O0FBRUEsTUFBTSxRQUFRLE9BQU8sV0FBUCxDQUFvQixLQUFwQixFQUEyQixPQUFPLGFBQWxDLEVBQWlELEtBQWpELEVBQXdELElBQXhELENBQWQ7QUFDQSxVQUFTLEtBQVQ7O0FBRUEsTUFBTSxrQkFBa0IsWUFBWSxNQUFaLENBQW9CLElBQXBCLENBQXhCO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLE9BQU8sdUJBQVAsR0FBaUMsR0FBOUQ7QUFDQSxrQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsQ0FBQyxJQUE5QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixLQUE3QjtBQUNBLFFBQU0sR0FBTixDQUFXLGVBQVg7O0FBRUEsTUFBTSxZQUFZLE9BQU8sZUFBUCxFQUFsQjtBQUNBLFNBQU8sZ0JBQVAsQ0FBeUIsVUFBVSxRQUFuQyxFQUE2QyxRQUE3QztBQUNBLFlBQVUsUUFBVixDQUFtQixHQUFuQixDQUF3QixJQUF4QixFQUE4QixDQUE5QixFQUFpQyxRQUFTLElBQTFDO0FBQ0EsUUFBTSxHQUFOLENBQVcsU0FBWDs7QUFFQSxNQUFNLFVBQVUsT0FBTyxXQUFQLENBQW9CLEtBQXBCLEVBQTJCLE9BQU8sa0JBQWxDLEVBQXNELEtBQXRELEVBQTZELElBQTdELENBQWhCO0FBQ0EsVUFBUSxRQUFSLENBQWlCLENBQWpCLEdBQXFCLE9BQU8sYUFBUCxHQUF1QixJQUE1QyxDQTFJTSxDQTBJNEM7QUFDbEQsVUFBUSxJQUFSLEdBQWUsU0FBZjtBQUNBLFVBQVMsT0FBVDs7QUFFQSxNQUFNLFVBQVUsUUFBUSxPQUFSLEVBQWhCO0FBQ0EsVUFBUSxRQUFSLENBQWlCLEdBQWpCLENBQXNCLFFBQVEsR0FBOUIsRUFBbUMsQ0FBbkMsRUFBc0MsUUFBUSxLQUE5QztBQUNBLFVBQVEsR0FBUixDQUFhLE9BQWI7QUFDQSxRQUFNLFFBQU4sR0FBaUIsSUFBakI7QUFDQSxRQUFNLFdBQU4sR0FBb0IsWUFBVztBQUFFLFlBQVEsT0FBUixHQUFrQixLQUFsQjtBQUF5QixHQUExRDtBQUNBLFFBQU0sV0FBTixHQUFvQixZQUFXO0FBQUUsWUFBUSxPQUFSLEdBQWtCLElBQWxCO0FBQXdCLEdBQXpEO0FBQ0EsUUFBTSxVQUFOLEdBQW1CLFlBQVc7QUFDNUIsVUFBTSxXQUFOO0FBQ0E7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsS0FBaEI7QUFDRCxHQUpEO0FBS0EsUUFBTSxVQUFOLEdBQW1CLFlBQU07QUFDdkI7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDRCxHQUhEOztBQUtBO0FBQ0EsTUFBTSxjQUFjLElBQUksTUFBTSxLQUFWLEVBQXBCO0FBQ0EsUUFBTSxHQUFOLENBQVUsV0FBVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU0sYUFBTixHQUFzQixVQUFTLEdBQVQsRUFBYTtBQUNqQyxnQkFBWSxHQUFaLENBQWdCLEdBQWhCO0FBQ0EsUUFBSSxNQUFKLEdBQWEsS0FBYjtBQUNBLFFBQUksY0FBSixHQUFxQixJQUFyQjs7QUFFQTtBQUNBO0FBQ0EsUUFBSSxDQUFDLElBQUksYUFBVCxFQUF3QixJQUFJLGFBQUosR0FBb0I7QUFBQSxhQUFnQixJQUFJLFdBQUosQ0FBZ0IsTUFBaEIsQ0FBdUIsWUFBdkIsQ0FBaEI7QUFBQSxLQUFwQjtBQUN4QixRQUFJLE9BQUosR0FBYyxDQUFFLEdBQUYsQ0FBZCxDQVJpQyxDQVFWO0FBQ3ZCLHNCQUFrQixJQUFsQixDQUF1QixHQUF2QjtBQUNELEdBVkQ7O0FBY0EsTUFBTSx1QkFBdUIsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUMsT0FBTyxRQUFSLEVBQWtCLGFBQWEsSUFBL0IsRUFBNUIsQ0FBN0I7QUFDQSxNQUFNLElBQUksT0FBTyxhQUFQLEdBQXVCLEdBQWpDO0FBQ0EsTUFBTSxtQkFBbUIsSUFBSSxNQUFNLFdBQVYsQ0FBdUIsQ0FBdkIsRUFBMEIsQ0FBMUIsRUFBNkIsT0FBTyxZQUFQLEdBQW9CLENBQWpELENBQXpCO0FBQ0E7QUFDQSxNQUFNLGNBQWMsUUFBUSxJQUFSLEdBQWUsUUFBZixDQUF3QixHQUE1QztBQUNBLE1BQU0sZ0JBQWdCLFFBQVEsTUFBUixHQUFpQixRQUFqQixDQUEwQixHQUFoRDtBQUNBLHVCQUFxQixHQUFyQixHQUEyQixhQUEzQjtBQUNBLE1BQU0sZUFBZSxJQUFJLE1BQU0sSUFBVixDQUFpQixnQkFBakIsRUFBbUMsb0JBQW5DLENBQXJCO0FBQ0EsZUFBYSxPQUFiLEdBQXVCLEtBQXZCO0FBQ0EsZUFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLE9BQU8sWUFBUCxHQUFzQixPQUFPLGFBQXZEO0FBQ0EsTUFBTSwwQkFBMEIsMkJBQWtCLFlBQWxCLENBQWhDO0FBQ0EsZUFBYSxXQUFiLEdBQTJCLHVCQUEzQjtBQUNBLDBCQUF3QixNQUF4QixDQUErQixFQUEvQixDQUFtQyxXQUFuQyxFQUFnRCxVQUFVLENBQVYsRUFBYTtBQUMzRCxRQUFJLE1BQU0sY0FBVixFQUEwQjtBQUN4QixZQUFNLFFBQU47QUFDRCxLQUZELE1BRU8sTUFBTSxNQUFOO0FBQ1AsTUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNELEdBTEQ7QUFNQTtBQUNBLFFBQU0sYUFBTixDQUFvQixZQUFwQjs7QUFFQSxNQUFJLGVBQWUsS0FBbkI7QUFDQSxTQUFPLGNBQVAsQ0FBdUIsS0FBdkIsRUFBOEIsWUFBOUIsRUFBNEM7QUFDMUMsU0FBSyxlQUFNO0FBQ1QsYUFBTyxZQUFQO0FBQ0QsS0FIeUM7QUFJMUMsU0FBSyxhQUFFLFFBQUYsRUFBZ0I7QUFDbkIsVUFBSSxhQUFhLFlBQWpCLEVBQStCO0FBQy9CLG1CQUFhLE9BQWIsR0FBdUIsUUFBdkI7QUFDQSxxQkFBZSxRQUFmO0FBQ0Q7QUFSeUMsR0FBNUM7O0FBWUEsUUFBTSxHQUFOLEdBQVksWUFBbUI7QUFDN0IsUUFBTSxnQkFBZ0Isa0NBQXRCOztBQUVBLFFBQUksYUFBSixFQUFtQjtBQUNqQixZQUFNLGFBQU4sQ0FBcUIsYUFBckI7QUFDQSxhQUFPLGFBQVA7QUFDRCxLQUhELE1BSUk7QUFDRixhQUFPLElBQUksTUFBTSxLQUFWLEVBQVA7QUFDRDtBQUNGLEdBVkQ7O0FBWUE7Ozs7QUFJQSxRQUFNLGNBQU4sR0FBdUIsVUFBUyxDQUFULEVBQVc7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU0sU0FBUyw4QkFBa0IsS0FBbEIsQ0FBZjtBQUNBLFFBQUksT0FBTyxXQUFYLEVBQXdCLE9BQU8sV0FBUCxDQUFtQixPQUFuQixHQUE2QixLQUE3QjtBQUN4QixXQUFPLFdBQVAsR0FBcUIsQ0FBckI7QUFDQSxRQUFJLENBQUMsQ0FBTCxFQUFRO0FBQ1IsTUFBRSxPQUFGLEdBQVksSUFBWjtBQUNBLFFBQUksRUFBRSxhQUFOLEVBQXFCLEVBQUUsYUFBRjtBQUNyQixXQUFPLHlCQUFQLEdBQW1DLElBQW5DO0FBQ0E7QUFDQTtBQUNBLGFBQVMsZ0JBQVQsQ0FBMEIsTUFBMUIsRUFBa0M7QUFDaEMsYUFBTyxRQUFQLENBQWdCLE9BQWhCLENBQXdCLGFBQUs7QUFDM0IsVUFBRSxRQUFGLENBQVcsV0FBWCxHQUF5QixDQUF6QjtBQUNBLHlCQUFpQixDQUFqQjtBQUNELE9BSEQ7QUFJRDtBQUNELHFCQUFpQixDQUFqQjtBQUNELEdBdEJEOztBQXdCQTs7Ozs7QUFLQSxRQUFNLGdCQUFOLEdBQXlCLFlBQVc7QUFDbEMsUUFBTSxTQUFTLDhCQUFrQixLQUFsQixDQUFmO0FBQ0EsUUFBSSxDQUFDLE9BQU8seUJBQVosRUFBdUM7QUFDckM7QUFDQSxVQUFJLE9BQU8sV0FBWCxFQUF3QjtBQUN0QixlQUFPLFdBQVAsQ0FBbUIsT0FBbkIsR0FBNkIsS0FBN0I7QUFDQSxlQUFPLFdBQVAsR0FBcUIsSUFBckI7QUFDRDtBQUNGO0FBQ0YsR0FURDs7QUFZQTs7Ozs7Ozs7OztBQVlBLFFBQU0sTUFBTixHQUFlLFlBQW1CO0FBQUEsdUNBQU4sSUFBTTtBQUFOLFVBQU07QUFBQTs7QUFDaEM7QUFDQSxRQUFNLEtBQUssMkJBQWMsSUFBZCxDQUFYLENBRmdDLENBRUM7QUFDakMsUUFBSSxDQUFDLEVBQUwsRUFBUyxPQUFPLEtBQVA7QUFDVCxTQUFLLE9BQUwsQ0FBYyxVQUFVLEdBQVYsRUFBZTtBQUMzQixjQUFRLE1BQVIsQ0FBZSxNQUFNLFFBQU4sQ0FBZSxHQUFmLENBQWYsRUFBb0MseUZBQXBDO0FBQ0EsVUFBSSxJQUFJLFFBQVIsRUFBa0I7QUFDaEIsWUFBSSxNQUFKLCtCQUFlLElBQUksV0FBbkI7QUFDRDtBQUNELG9CQUFjLE1BQWQsQ0FBcUIsR0FBckI7QUFDRCxLQU5EO0FBT0E7QUFDQSxVQUFNLGFBQU47QUFDQSxXQUFPLElBQVA7QUFDRCxHQWREOztBQWdCQTtBQUNBO0FBQ0EsUUFBTSxnQkFBTixHQUF5QixVQUFDLE1BQUQsRUFBWTtBQUNuQyxVQUFNLGNBQU4sR0FBdUIsTUFBdkI7QUFDQSxRQUFJLFdBQVcsSUFBZixFQUFxQjtBQUNuQixtQkFBYSxRQUFiLENBQXNCLEdBQXRCLEdBQTRCLGFBQTVCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsMkJBQXFCLEdBQXJCLEdBQTJCLFdBQTNCO0FBQ0EsWUFBTSxVQUFOO0FBQ0EsWUFBTSxXQUFOO0FBQ0EsWUFBTSxNQUFOLEdBQWUsS0FBZjtBQUNEO0FBQ0YsR0FWRDs7QUFZQTs7Ozs7OztBQU9BLFFBQU0sV0FBTixHQUFvQixVQUFDLEtBQUQsRUFBVztBQUM3QixRQUFJLENBQUMsTUFBTSxRQUFQLElBQW1CLE1BQU0sTUFBTixLQUFpQixLQUF4QyxFQUErQyxPQUFPLEtBQVA7QUFDL0MsVUFBTSxnQkFBTixDQUF1QixLQUF2QjtBQUNBLGtCQUFjLE1BQWQsQ0FBcUIsS0FBckI7QUFDQTtBQUNBLGVBQVcsS0FBWDtBQUNBLFVBQU0sYUFBTjtBQUNBLFdBQU8sS0FBUCxDQVA2QixDQU9mO0FBQ2YsR0FSRDs7QUFVQTs7OztBQUlBLFFBQU0sTUFBTixHQUFlLFlBQU07QUFDbkIsUUFBSSxNQUFNLE1BQU4sS0FBaUIsS0FBckIsRUFBNEIsT0FBTyxLQUFQO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLFFBQU0sWUFBWSw4QkFBa0IsS0FBbEIsQ0FBbEI7QUFDQSxVQUFNLE1BQU4sQ0FBYSxXQUFiLENBQXlCLEtBQXpCOztBQUVBO0FBQ0EsUUFBTSxNQUFNLFVBQVUsTUFBVixJQUFvQixNQUFNLE1BQXRDO0FBQ0EsUUFBSSxDQUFDLEdBQUwsRUFBVSxPQVZTLENBVUQ7QUFDbEIsUUFBSSxHQUFKLENBQVEsS0FBUjtBQUNBLFFBQU0sSUFBSSxVQUFVLE1BQVYsQ0FBaUIsS0FBakIsRUFBVjs7QUFFQSxVQUFNLFlBQU4sQ0FBbUIsQ0FBbkI7QUFDQSxNQUFFLFdBQUYsQ0FBYyxJQUFJLE1BQU0sT0FBVixFQUFkO0FBQ0EsUUFBTSxJQUFJLElBQUksTUFBTSxPQUFWLENBQWtCLE9BQU8sWUFBekIsRUFBdUMsQ0FBdkMsRUFBMEMsQ0FBMUMsRUFBNkMsWUFBN0MsQ0FBMEQsQ0FBMUQsQ0FBVjtBQUNBLFVBQU0sUUFBTixDQUFlLEdBQWYsQ0FBbUIsQ0FBbkI7O0FBRUEsUUFBSSxVQUFVLFVBQWQsRUFBMEI7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQU0sNkJBQTZCLEtBQW5DOztBQUVBO0FBQ0E7O0FBRUEsVUFBSSwwQkFBSixFQUFnQztBQUM5QixrQkFBVSxRQUFWLENBQW1CLFlBQW5CLENBQWdDLElBQWhDLENBQXFDLEtBQXJDO0FBQ0Esa0JBQVUsUUFBVixDQUFtQixTQUFuQixHQUErQixVQUFVLFNBQXpDLENBRjhCLENBRXFCO0FBQ3BELE9BSEQsTUFHTztBQUNMLFlBQU0sUUFBUSxLQUFkO0FBQ0EsWUFBTSxZQUFZLFVBQVUsTUFBNUIsQ0FGSyxDQUUrQjtBQUNwQyxZQUFNLFlBQVksVUFBVSxTQUE1QixDQUhLLENBR2tDOztBQUV2QyxtQkFBVyxLQUFYLEVBQWtCLFNBQWxCLEVBQTZCLFNBQTdCO0FBQ0Q7QUFFRjtBQUNELFVBQU0sUUFBTixDQUFlLGNBQWYsR0FBZ0MsVUFBVSxRQUFWLENBQW1CLGNBQW5ELENBMUNtQixDQTBDZ0Q7QUFDbkUsVUFBTSxpQkFBTixDQUF3QixHQUF4QjtBQUNBLFVBQU0sSUFBTjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBOUNEOztBQWdEQTtBQUNBLFdBQVMsV0FBVCxDQUFxQixLQUFyQixFQUE0QixNQUE1QixFQUFvQyxLQUFwQyxFQUEyQztBQUN6QyxXQUFPLGlCQUFQO0FBQ0EsVUFBTSxZQUFOLENBQW1CLE9BQU8sV0FBMUI7QUFDQSxXQUFPLE1BQVAsQ0FBYyxLQUFkO0FBQ0EsVUFBTSxHQUFOLENBQVUsS0FBVjtBQUNEO0FBQ0QsV0FBUyxXQUFULENBQXFCLEtBQXJCLEVBQTRCLEtBQTVCLEVBQW1DLE1BQW5DLEVBQTJDO0FBQ3pDLFdBQU8saUJBQVA7QUFDQSxVQUFNLFlBQU4sQ0FBb0IsSUFBSSxNQUFNLE9BQVYsR0FBb0IsVUFBcEIsQ0FBK0IsT0FBTyxXQUF0QyxDQUFwQjtBQUNGLFVBQU0sTUFBTixDQUFhLEtBQWI7QUFDQSxXQUFPLEdBQVAsQ0FBVyxLQUFYO0FBQ0M7QUFDRCxXQUFTLFVBQVQsQ0FBb0IsS0FBcEIsRUFBMkIsU0FBM0IsRUFBc0MsU0FBdEMsRUFBaUQ7QUFDL0MsUUFBSSxPQUFPLFNBQVg7QUFDQSxXQUFPLEtBQUssTUFBWjtBQUFvQixhQUFPLEtBQUssTUFBWjtBQUFwQixLQUNBLElBQU0sUUFBUSxJQUFkOztBQUVBLGdCQUFZLEtBQVosRUFBbUIsU0FBbkIsRUFBOEIsS0FBOUI7QUFDQSxnQkFBWSxLQUFaLEVBQW1CLEtBQW5CLEVBQTBCLFNBQTFCO0FBQ0Q7O0FBRUQsUUFBTSxnQkFBTixHQUF5QixNQUFNLE1BQS9COztBQUVBLFFBQU0sUUFBTixHQUFpQixZQUFNO0FBQ3JCLFFBQUksQ0FBQyxNQUFNLGNBQVgsRUFBMkIsT0FBTyxLQUFQO0FBQzNCO0FBQ0EsVUFBTSxjQUFOLENBQXFCLFNBQXJCLENBQStCLEtBQS9CLEVBSHFCLENBR2tCO0FBQ3ZDLFFBQU0sWUFBWSw4QkFBa0IsTUFBTSxjQUF4QixDQUFsQjtBQUNBLFFBQUksVUFBVSxVQUFkLEVBQTBCO0FBQ3hCO0FBQ0E7QUFDQSxVQUFJLFFBQVEsVUFBVSxRQUFWLENBQW1CLFlBQS9CO0FBQ0EsVUFBTSxRQUFRLE1BQU0sT0FBTixDQUFjLEtBQWQsQ0FBZDtBQUNBLFVBQUksUUFBUSxDQUFDLENBQWIsRUFBZ0IsVUFBVSxRQUFWLENBQW1CLFlBQW5CLENBQWdDLE1BQWhDLENBQXVDLEtBQXZDLEVBQThDLENBQTlDO0FBQ2pCO0FBQ0Q7QUFDQSxVQUFNLGdCQUFOLENBQXVCLElBQXZCO0FBQ0EsV0FBTyxJQUFQO0FBQ0QsR0FmRDs7QUFpQkEsUUFBTSxhQUFOLEdBQXNCLFlBQW1CO0FBQUEsdUNBQU4sSUFBTTtBQUFOLFVBQU07QUFBQTs7QUFDdkMsU0FBSyxPQUFMLENBQWMsVUFBVSxHQUFWLEVBQWU7QUFDM0IsVUFBSSxJQUFJLFFBQVIsRUFBa0I7QUFDaEIsY0FBTSxTQUFOLENBQWdCLEdBQWhCO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsc0JBQWMsR0FBZCxDQUFtQixHQUFuQjtBQUNBLFlBQUksTUFBSixHQUFhLEtBQWI7QUFDRDtBQUNEO0FBQ0EsVUFBSSxJQUFJLFVBQVIsRUFBb0IsT0FSTyxDQVFDO0FBQzVCLFVBQUksVUFBSixHQUFpQixlQUFPO0FBQ3RCLFlBQUksUUFBSixDQUFhLEdBQWIsR0FBbUIsR0FBbkI7QUFDQTtBQUNBLFlBQU0sU0FBUyw4QkFBYyxXQUFkLEVBQTJCLEdBQTNCLEVBQWdDLE9BQU8sWUFBdkMsRUFBcUQsSUFBSSxPQUF6RCxFQUFrRSxPQUFPLFlBQXpFLENBQWY7QUFDQSxZQUFJLFFBQUosQ0FBYSxNQUFiLEdBQXNCLE1BQXRCO0FBQ0E7O0FBRUEsWUFBSSxJQUFJLFdBQVIsRUFBcUI7QUFDbkI7QUFDQSxjQUFJLFdBQUosQ0FBZ0IsTUFBaEIsQ0FBdUIsRUFBdkIsQ0FBMEIsTUFBMUIsRUFBa0MsWUFBTTtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQUksSUFBSSxPQUFSLEVBQWlCLDBCQUFjLEdBQWQsRUFBbUIsTUFBbkIsRUFBMkIsSUFBSSxXQUFKLENBQWdCLFFBQWhCLEVBQTNCO0FBQ2xCLFdBUEQ7QUFRRCxTQVZELE1BVU87QUFDTCxrQkFBUSxLQUFSLGdDQUEwQyxJQUFJLE9BQTlDO0FBQ0Q7QUFDRixPQXBCRDs7QUFzQkEsVUFBSSxVQUFKLEdBQWlCO0FBQUEsZUFBTSxJQUFJLFFBQUosQ0FBYSxHQUFuQjtBQUFBLE9BQWpCO0FBQ0QsS0FoQ0Q7O0FBa0NBLFVBQU0sYUFBTjtBQUNELEdBcENEOztBQXNDQSxRQUFNLFNBQU4sR0FBa0IsWUFBbUI7QUFBQSx1Q0FBTixJQUFNO0FBQU4sVUFBTTtBQUFBOztBQUNuQyxTQUFLLE9BQUwsQ0FBYyxVQUFVLEdBQVYsRUFBZTtBQUMzQjtBQUNBLG9CQUFjLEdBQWQsQ0FBbUIsR0FBbkI7QUFDQSxVQUFJLE1BQUosR0FBYSxLQUFiO0FBQ0EsVUFBSSxNQUFKLENBQVcsUUFBWDtBQUNBLFVBQUksS0FBSixDQUFVLEdBQVYsQ0FBYyxDQUFkLEVBQWdCLENBQWhCLEVBQWtCLENBQWxCO0FBQ0EsVUFBSSxRQUFKLENBQWEsR0FBYixDQUFpQixDQUFqQixFQUFtQixDQUFuQixFQUFxQixDQUFyQjtBQUNBLFVBQUksUUFBSixDQUFhLEdBQWIsQ0FBaUIsQ0FBakIsRUFBbUIsQ0FBbkIsRUFBcUIsQ0FBckI7O0FBRUEsVUFBSSxXQUFKO0FBQ0EsVUFBSSxLQUFKO0FBQ0QsS0FYRDs7QUFhQSxVQUFNLGFBQU47QUFDRCxHQWZEOztBQWlCQSxRQUFNLGFBQU4sR0FBc0IsWUFBTTtBQUMxQixRQUFJLDhCQUFrQixLQUFsQixNQUE2QixLQUE3QixJQUFzQyxDQUFDLGVBQWUsUUFBZixDQUF3QixLQUF4QixDQUEzQyxFQUEyRTtBQUN6RTtBQUNBLGNBQVEsS0FBUjtBQUNEO0FBQ0QsbUJBQWUsTUFBZixDQUFzQixlQUFlLE9BQWYsQ0FBdUIsS0FBdkIsQ0FBdEIsRUFBcUQsQ0FBckQ7QUFDQSxtQkFBZSxJQUFmLENBQW9CLEtBQXBCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQUksTUFBTSxRQUFOLENBQWUsY0FBbkIsRUFBbUM7QUFDcEMsR0FiRDs7QUFlQTs7QUFFQSxXQUFTLGFBQVQsR0FBd0I7QUFDdEI7O0FBRUEsUUFBTSxhQUFhLEtBQW5COztBQUVBLFFBQU0sWUFBWSw4QkFBa0IsS0FBbEIsQ0FBbEI7QUFDQTtBQUNBLFFBQUksY0FBYyxLQUFsQixFQUF5QjtBQUN2QixVQUFJLFVBQVUsV0FBVixJQUF5QixVQUFVLFdBQVYsQ0FBc0IsYUFBbkQsRUFBa0UsVUFBVSxXQUFWLENBQXNCLGFBQXRCOztBQUVsRSxnQkFBVSxRQUFWLENBQW1CLGdCQUFuQixHQUFzQyxJQUF0QztBQUNBLGdCQUFVLFFBQVYsQ0FBbUIsWUFBbkIsR0FBa0MsQ0FBbEM7QUFDQSxnQkFBVSxRQUFWLENBQW1CLFdBQW5CLEdBQWlDLENBQWpDO0FBQ0EsZ0JBQVUsUUFBVixDQUFtQixVQUFuQixHQUFnQyxDQUFDLFVBQVUsUUFBVixDQUFtQixDQUFwRDtBQUNBOztBQUVBLFVBQUksQ0FBQyxlQUFlLFFBQWYsQ0FBd0IsS0FBeEIsQ0FBTCxFQUFxQztBQUNuQyx1QkFBZSxJQUFmLENBQW9CLEtBQXBCO0FBQ0EsWUFBSSxNQUFNLFFBQU4sQ0FBZSxjQUFuQixFQUFtQztBQUNuQztBQUNBO0FBQ0Q7QUFDRixLQWZELE1BZU87QUFDTDtBQUNBLFlBQU0sUUFBTixDQUFlLFlBQWYsR0FBOEIsTUFBTSxNQUFOLENBQWEsUUFBYixDQUFzQixZQUFwRDtBQUNBLFlBQU0sUUFBTixDQUFlLFdBQWYsR0FBNkIsTUFBTSxNQUFOLENBQWEsUUFBYixDQUFzQixXQUFuRCxDQUhLLENBRzJEOztBQUVoRSxVQUFJLGVBQWUsUUFBZixDQUF3QixLQUF4QixDQUFKLEVBQW9DO0FBQ2xDLHVCQUFlLE1BQWYsQ0FBc0IsZUFBZSxPQUFmLENBQXVCLEtBQXZCLENBQXRCLEVBQXFELENBQXJEO0FBQ0EsWUFBSSxNQUFNLFFBQU4sQ0FBZSxjQUFuQixFQUFtQztBQUNuQztBQUNBO0FBQ0Q7QUFDRjs7QUFHRCxRQUFNLHVCQUF1QixPQUFPLFlBQVAsR0FBc0IsT0FBTyxhQUExRDtBQUNBLFFBQU0sbUJBQW1CLE9BQU8sYUFBUCxHQUF1QixPQUFPLGFBQXZEO0FBQ0EsUUFBSSxlQUFlLGdCQUFuQjs7QUFFQSxrQkFBYyxRQUFkLENBQXVCLE9BQXZCLENBQWdDLFVBQUMsQ0FBRCxFQUFPO0FBQUUsUUFBRSxPQUFGLEdBQVksQ0FBQyxNQUFNLFNBQW5CO0FBQThCLEtBQXZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFJLGVBQWUsQ0FBbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFjLFFBQWQsQ0FBdUIsT0FBdkIsQ0FBZ0MsVUFBQyxDQUFELEVBQUksQ0FBSixFQUFVO0FBQ3RDLFVBQUksRUFBRSxRQUFGLEtBQWUsU0FBbkIsRUFBOEI7QUFDOUIsVUFBRSxRQUFGLEdBQWEsZ0JBQWMsQ0FBM0I7QUFDRCxPQUZDLE1BRUssZUFBZSxFQUFFLFFBQWpCO0FBQ1IsS0FKRDtBQUtBLGtCQUFjLFFBQWQsQ0FBdUIsSUFBdkIsQ0FBNEIsVUFBQyxDQUFELEVBQUksQ0FBSixFQUFVO0FBQUUsYUFBTyxFQUFFLFFBQUYsR0FBYSxFQUFFLFFBQXRCO0FBQWdDLEtBQXhFOztBQUVBLFFBQUssTUFBTSxTQUFYLEVBQXVCO0FBQ3JCLGdCQUFVLFFBQVYsQ0FBbUIsQ0FBbkIsR0FBdUIsS0FBSyxFQUFMLEdBQVUsR0FBakM7QUFDRCxLQUZELE1BRU87QUFDTCxnQkFBVSxRQUFWLENBQW1CLENBQW5CLEdBQXVCLENBQXZCOztBQUVBLFVBQUksSUFBSSxDQUFSO0FBQUEsVUFBVyxhQUFhLGdCQUF4Qjs7QUFFQSxvQkFBYyxRQUFkLENBQXVCLE9BQXZCLENBQWdDLFVBQVUsS0FBVixFQUFpQixLQUFqQixFQUF3QjtBQUN0RCxZQUFJLE1BQU0sUUFBVixFQUFvQjtBQUNsQixnQkFBTSxRQUFOLENBQWUsVUFBZixHQUE0QixNQUFNLFFBQU4sQ0FBZSxVQUFmLEdBQTRCLENBQXhELENBRGtCLENBQ3lDO0FBQzNELGdCQUFNLGFBQU47QUFDRDtBQUNELFlBQUssQ0FBQyxVQUFOLEVBQW1CO0FBQ2pCO0FBQ0EsY0FBSSxJQUFJLE1BQU0sT0FBTixHQUFnQixNQUFNLE9BQXRCLEdBQWdDLG9CQUF4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBSSxVQUFVLE9BQU8sYUFBYSxDQUFwQixDQUFkOztBQUVBLGNBQUksTUFBTSxRQUFWLEVBQW9CO0FBQ2xCO0FBQ0E7QUFDQSxnQkFBSSxTQUFTLE9BQU8sYUFBYSxnQkFBcEIsQ0FBYjtBQUNBLGtCQUFNLFFBQU4sQ0FBZSxDQUFmLEdBQW1CLElBQUksTUFBdkI7QUFDRCxXQUxELE1BS087QUFDTCxrQkFBTSxRQUFOLENBQWUsQ0FBZixHQUFtQixJQUFJLE9BQXZCO0FBQ0Q7QUFDRDtBQUNBLGVBQUssT0FBTDtBQUNBLHVCQUFhLENBQWI7O0FBR0EsY0FBSSxRQUFRLDBCQUFaLEVBQ0UsZ0JBQWdCLENBQWhCO0FBQ0YsZ0JBQU0sUUFBTixDQUFlLENBQWYsR0FBbUIsS0FBbkI7O0FBRUEsY0FBSSxDQUFDLFFBQU0sQ0FBUCxJQUFZLDBCQUFaLEtBQTJDLENBQS9DLEVBQWtELElBQUksQ0FBSjs7QUFFbEQsZ0JBQU0sUUFBTixDQUFlLENBQWYsSUFBb0IsUUFBUSxLQUFLLEtBQUwsQ0FBVyxRQUFRLDBCQUFuQixDQUE1QjtBQUdELFNBL0JELE1BK0JPO0FBQ0w7QUFDQTtBQUNBLGNBQU0sZUFBZSw2QkFBNkIsb0JBQWxELENBSEssQ0FHbUU7QUFDeEUsY0FBTSxLQUFJLE1BQU0sT0FBTixHQUFnQixNQUFNLE9BQXRCLEdBQWdDLG9CQUExQztBQUNBLGNBQU0sZUFBZSxNQUFNLFFBQU4sSUFBa0IsTUFBTSxRQUFOLENBQWUsV0FBZixHQUE2QixNQUFNLFFBQU4sQ0FBZSxXQUFuRjs7QUFFQTtBQUNBLGNBQUksTUFBTSxRQUFOLENBQWUsWUFBZixHQUE4QixZQUFsQyxFQUFnRDtBQUM5QztBQUNBLGtCQUFNLFFBQU4sQ0FBZSxXQUFmO0FBQ0Esa0JBQU0sUUFBTixDQUFlLFlBQWYsR0FBOEIsRUFBOUI7QUFDQSwyQkFBZSxDQUFmLENBSjhDLENBSTVCO0FBQ2xCLHlCQUFhLENBQWIsQ0FMOEMsQ0FLOUI7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsZ0JBQUksTUFBTSxRQUFOLENBQWUsVUFBbkI7QUFDRCxXQVZELE1BVU87QUFDTCxrQkFBTSxRQUFOLENBQWUsWUFBZixJQUErQixFQUEvQjtBQUNEOztBQUVEO0FBQ0EsY0FBSSxXQUFVLE9BQU8sYUFBYSxFQUFwQixDQUFkOztBQUdBLGNBQUksTUFBTSxRQUFWLEVBQW9CO0FBQ2xCO0FBQ0E7QUFDQSxnQkFBSSxTQUFTLE9BQU8sYUFBYSxnQkFBcEIsQ0FBYjtBQUNBLGtCQUFNLFFBQU4sQ0FBZSxDQUFmLEdBQW1CLElBQUksTUFBdkI7QUFDRCxXQUxELE1BS087QUFDTCxrQkFBTSxRQUFOLENBQWUsQ0FBZixHQUFtQixJQUFJLFFBQXZCO0FBQ0Q7QUFDRDtBQUNBO0FBQ0EsZUFBSyxRQUFMO0FBQ0EsdUJBQWEsRUFBYjs7QUFFQSwwQkFBZ0IsRUFBaEI7QUFDQSxnQkFBTSxRQUFOLENBQWUsQ0FBZixHQUFtQixLQUFuQjtBQUNBLGdCQUFNLFFBQU4sQ0FBZSxDQUFmLElBQW9CLFFBQVEsTUFBTSxRQUFOLENBQWUsV0FBM0MsQ0F6Q0ssQ0F5Q21EOztBQUV4RCxjQUFJLE1BQU0sUUFBVixFQUFvQjtBQUNsQjtBQUNBLGtCQUFNLFFBQU4sQ0FBZSxZQUFmLEdBQThCLE1BQU0sUUFBTixDQUFlLFlBQTdDO0FBQ0Esa0JBQU0sUUFBTixDQUFlLFdBQWYsR0FBNkIsTUFBTSxRQUFOLENBQWUsV0FBNUM7QUFDRDtBQUNGO0FBQ0QsY0FBTSxZQUFOO0FBQ0QsT0F0RkQ7QUF1RkQ7O0FBRUQsVUFBTSxPQUFOLEdBQWdCLFlBQWhCOztBQUVBO0FBQ0EsUUFBSSxhQUFhLE9BQU8sWUFBeEI7QUFDQSxRQUFJLE1BQU0sTUFBTixLQUFpQixLQUFyQixFQUE0QjtBQUMxQixtQkFBYSxPQUFPLGVBQXBCO0FBQ0Q7O0FBRUQsV0FBTyxXQUFQLENBQW1CLEtBQW5CLEVBQTBCLFVBQTFCLEVBQXNDLE9BQU8sYUFBN0MsRUFBNEQsS0FBNUQ7O0FBRUEsUUFBSSxjQUFjLEtBQWxCLEVBQXlCO0FBQ3ZCLFlBQU0sUUFBTixDQUFlLGdCQUFmLEdBQWtDLEtBQWxDO0FBQ0EsWUFBTSxRQUFOLENBQWUsYUFBZixHQUErQixLQUEvQjtBQUNBLFlBQU0saUJBQU47QUFDRDtBQUNGOztBQUdELFdBQVMsbUJBQVQsR0FBK0I7QUFDN0IsUUFBSSxLQUFLLE9BQU8sYUFBaEI7QUFDQSxRQUFJLElBQUksT0FBTyxZQUFmO0FBQ0EsZ0JBQVksUUFBWixDQUFxQixPQUFyQixDQUE2QixVQUFDLENBQUQsRUFBTztBQUNsQyxVQUFJLENBQUMsRUFBRSxPQUFQLEVBQWdCO0FBQ2hCLFdBQUssS0FBSyxHQUFWO0FBQ0EsUUFBRSxRQUFGLENBQVcsQ0FBWCxHQUFlLENBQWY7QUFDQSxXQUFLLEtBQUssR0FBVixDQUprQyxDQUluQjtBQUNoQixLQUxEO0FBTUQ7O0FBRUQsV0FBUyxVQUFULEdBQXFCO0FBQ25CLFFBQUksWUFBWSxRQUFaLEVBQUosRUFBNEI7QUFDMUIsWUFBTSxRQUFOLENBQWUsS0FBZixDQUFxQixNQUFyQixDQUE2QixPQUFPLGNBQXBDO0FBQ0QsS0FGRCxNQUdJO0FBQ0YsWUFBTSxRQUFOLENBQWUsS0FBZixDQUFxQixNQUFyQixDQUE2QixPQUFPLG1CQUFwQztBQUNEOztBQUVELFFBQUksZ0JBQWdCLFFBQWhCLEVBQUosRUFBZ0M7QUFDOUIsY0FBUSxRQUFSLENBQWlCLEtBQWpCLENBQXVCLE1BQXZCLENBQStCLE9BQU8sY0FBdEM7QUFDRCxLQUZELE1BR0k7QUFDRixjQUFRLFFBQVIsQ0FBaUIsS0FBakIsQ0FBdUIsTUFBdkIsQ0FBK0IsT0FBTyxtQkFBdEM7QUFDRDs7QUFFRDtBQUNBLFFBQUssd0JBQXdCLFFBQXhCLEVBQUwsRUFBMEM7QUFDeEMsMkJBQXFCLEtBQXJCLENBQTJCLE1BQTNCLENBQW1DLFFBQW5DO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsMkJBQXFCLEtBQXJCLENBQTJCLE1BQTNCLENBQW1DLFFBQW5DO0FBQ0Q7QUFDRjs7QUFFRCxNQUFNLGNBQWMsMkJBQW1CLEtBQW5CLENBQXBCO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFdBQXZCLEVBQW9DLFVBQVUsQ0FBVixFQUFhO0FBQy9DLFFBQUksTUFBTSxTQUFWLEVBQXFCLE1BQU0sSUFBTixHQUFyQixLQUNLLE1BQU0sS0FBTjtBQUNMLE1BQUUsTUFBRixHQUFXLElBQVg7QUFDRCxHQUpEOztBQU1BLFFBQU0sSUFBTixHQUFhLFlBQVc7QUFDdEIsUUFBSSxDQUFDLE1BQU0sU0FBWCxFQUFzQjtBQUN0QixRQUFJLE1BQU0sTUFBTixLQUFpQixLQUFqQixJQUEwQixNQUFNLE1BQU4sQ0FBYSxTQUEzQyxFQUFzRDtBQUNwRCxZQUFNLE1BQU4sQ0FBYSxXQUFiLENBQXlCLE1BQXpCLENBQWdDO0FBQUEsZUFBRyxFQUFFLFFBQUYsSUFBYyxNQUFNLEtBQXZCO0FBQUEsT0FBaEMsRUFBOEQsT0FBOUQsQ0FBc0U7QUFBQSxlQUFHLEVBQUUsS0FBRixFQUFIO0FBQUEsT0FBdEU7QUFDRDtBQUNELFVBQU0sU0FBTixHQUFrQixLQUFsQjtBQUNBLFlBQVEsYUFBUjtBQUNBLFVBQU0sYUFBTjtBQUNELEdBUkQ7O0FBVUEsUUFBTSxLQUFOLEdBQWMsWUFBVztBQUN2QixRQUFJLE1BQU0sU0FBVixFQUFxQjtBQUNyQixVQUFNLFNBQU4sR0FBa0IsSUFBbEI7QUFDQSxlQUFXLGFBQVg7QUFDQSxVQUFNLGFBQU47QUFDRCxHQUxEOztBQU9BLFFBQU0sTUFBTixHQUFlLEtBQWY7O0FBRUEsTUFBTSxrQkFBa0IsS0FBSyxNQUFMLENBQWEsRUFBRSxZQUFGLEVBQVMsT0FBTyxPQUFoQixFQUFiLENBQXhCO0FBQ0EsTUFBTSxxQkFBcUIsUUFBUSxNQUFSLENBQWdCLEVBQUUsWUFBRixFQUFTLFlBQVQsRUFBaEIsQ0FBM0I7QUFDQSxRQUFNLGFBQU4sR0FBc0IsVUFBVSxZQUFWLEVBQXdCO0FBQzVDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdCQUFZLE1BQVosQ0FBb0IsWUFBcEI7QUFDQSxvQkFBZ0IsTUFBaEIsQ0FBd0IsWUFBeEI7QUFDQSx1QkFBbUIsTUFBbkIsQ0FBMkIsWUFBM0I7O0FBRUE7QUFDRCxHQVhEOztBQWFBOztBQUVBLFFBQU0sSUFBTixHQUFhLFVBQVUsR0FBVixFQUFlO0FBQzFCLG9CQUFnQixXQUFoQixDQUE2QixHQUE3QjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBS0EsTUFBSSxjQUFjLEtBQWxCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBTSxRQUFOLENBQWUsWUFBZixHQUE4QixFQUE5Qjs7QUFFQSxTQUFPLGdCQUFQLENBQXdCLEtBQXhCLEVBQStCO0FBQzdCLGFBQVM7QUFDUCxXQUFLLGVBQU07QUFBQTs7QUFDVDtBQUNBO0FBQ0E7QUFDQSxZQUFJLE9BQU8sQ0FBRSxLQUFGLEVBQVMsT0FBVCxDQUFYO0FBQ0EsWUFBSSxNQUFNLFdBQVYsRUFBdUIsT0FBTyxlQUFLLE1BQUwsaUNBQWUsTUFBTSxXQUFOLENBQWtCLE9BQWpDLEVBQVA7QUFDdkIsZUFBTyxJQUFQO0FBQ0Q7QUFSTSxLQURvQjtBQVc3QixnQkFBWTtBQUNWLFdBQUssZUFBTTtBQUNULGVBQU8sV0FBUDtBQUNELE9BSFM7QUFJVixXQUFLLGFBQUMsS0FBRCxFQUFXO0FBQ2Qsc0JBQWMsS0FBZDtBQUNBLFlBQUksQ0FBQyxXQUFMLEVBQWtCO0FBQ2hCLGNBQU0sWUFBWSxNQUFNLE1BQXhCLENBRGdCLENBQ2dCO0FBQ2hDLGNBQU0sWUFBWSxNQUFNLFFBQU4sQ0FBZSxTQUFqQyxDQUZnQixDQUU0QjtBQUM1QztBQUNBLGNBQUksOEJBQWtCLEtBQWxCLE1BQTZCLEtBQWpDLEVBQXdDO0FBQ3RDLG9CQUFRLEdBQVIsQ0FBWSxzQ0FBWjtBQUNEOztBQUVELGdCQUFNLFFBQU4sQ0FBZSxZQUFmLENBQTRCLE9BQTVCLENBQW9DLGlCQUFTO0FBQzNDO0FBQ0E7QUFDQSx1QkFBVyxLQUFYLEVBQWtCLFNBQWxCLEVBQTZCLFNBQTdCO0FBQ0QsV0FKRDtBQUtBLGdCQUFNLFFBQU4sQ0FBZSxZQUFmLEdBQThCLEVBQTlCO0FBQ0Q7QUFDRjtBQXJCUztBQVhpQixHQUEvQjs7QUFsdkJNLDZCQXV4QkcsQ0F2eEJIO0FBd3hCSixVQUFNLENBQU4sSUFBVyxZQUFhO0FBQ3RCLFVBQU0sYUFBYSxtQkFBbUIsQ0FBbkIsc0NBQW5CO0FBQ0EsVUFBSyxVQUFMLEVBQWlCO0FBQ2YsY0FBTSxhQUFOLENBQXFCLFVBQXJCO0FBQ0EsZUFBTyxVQUFQO0FBQ0QsT0FIRCxNQUlLO0FBQ0gsZUFBTyxJQUFJLE1BQU0sS0FBVixFQUFQO0FBQ0Q7QUFDRixLQVREO0FBeHhCSTs7QUF1eEJOLE9BQUssSUFBSSxDQUFULElBQWMsa0JBQWQsRUFBa0M7QUFBQSxVQUF6QixDQUF5QjtBQVdqQzs7QUFFRCxTQUFPLEtBQVA7QUFDRDs7Ozs7Ozs7UUN6MkJlLEssR0FBQSxLO1FBTUEsRyxHQUFBLEc7QUF6QmhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJPLFNBQVMsS0FBVCxHQUFnQjtBQUNyQixNQUFNLFFBQVEsSUFBSSxLQUFKLEVBQWQ7QUFDQSxRQUFNLEdBQU47QUFDQSxTQUFPLEtBQVA7QUFDRDs7QUFFTSxTQUFTLEdBQVQsR0FBYztBQUNuQjtBQTgxREQ7Ozs7Ozs7O1FDbDJEZSxNLEdBQUEsTTs7QUFIaEI7Ozs7QUFDQTs7OztBQXBCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCTyxTQUFTLE1BQVQsR0FBd0M7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFBckIsS0FBcUIsUUFBckIsS0FBcUI7QUFBQSxNQUFkLEtBQWMsUUFBZCxLQUFjOztBQUU3QyxNQUFNLGNBQWMsMkJBQW1CLEtBQW5CLENBQXBCOztBQUVBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxhQUFwQztBQUNBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixNQUF2QixFQUErQixVQUEvQjtBQUNBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixZQUF2QixFQUFxQyxlQUFyQzs7QUFFQSxNQUFNLGFBQWEsSUFBSSxNQUFNLE9BQVYsRUFBbkI7QUFDQSxNQUFNLFlBQVksSUFBSSxNQUFNLE9BQVYsRUFBbEI7O0FBRUE7O0FBRUEsV0FBUyxVQUFULEdBQXFDO0FBQUEsb0ZBQUosRUFBSTtBQUFBLFFBQWQsS0FBYyxTQUFkLEtBQWM7O0FBQ25DLFFBQU0sU0FBUyw4QkFBa0IsS0FBbEIsQ0FBZjtBQUNBLFFBQUksV0FBVyxTQUFYLElBQXlCLE9BQU8sWUFBcEMsRUFBa0Q7QUFDaEQ7QUFDRDs7QUFFRCxRQUFJLE1BQU0sS0FBVixFQUFpQjtBQUNmLFVBQUksTUFBTSxPQUFOLElBQWlCLE1BQU0sUUFBdkIsSUFBbUMsTUFBTSxPQUFOLENBQWMsR0FBZCxDQUFrQixjQUFsQixDQUFrQyxNQUFNLFVBQXhDLEVBQW9ELE1BQU0saUJBQTFELENBQXZDLEVBQXNIO0FBQ3BILFlBQUksTUFBTSxXQUFOLENBQWtCLEtBQWxCLEtBQTRCLFdBQWhDLEVBQTZDO0FBQzNDLGdCQUFNLGlCQUFOLENBQXdCLEdBQXhCLENBQTZCLE1BQU0sV0FBbkM7O0FBRUEsZ0JBQU0sUUFBTixDQUFlLE1BQWYsQ0FBc0IsaUJBQXRCO0FBQ0EsZ0JBQU0sUUFBTixDQUFlLE1BQWYsQ0FBc0IsWUFBdEIsQ0FBbUMsTUFBTSxpQkFBekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUJBQU8sUUFBUCxDQUFnQixJQUFoQixDQUFxQixNQUFNLGlCQUEzQjs7QUFFQSxpQkFBTyxZQUFQO0FBQ0E7QUFDRDtBQUNGLE9BZkQsTUFnQkssSUFBSSxNQUFNLGFBQU4sQ0FBb0IsTUFBcEIsR0FBNkIsQ0FBakMsRUFBb0M7QUFDdkMsWUFBTSxZQUFZLE1BQU0sYUFBTixDQUFxQixDQUFyQixFQUF5QixNQUEzQztBQUNBLFlBQUksY0FBYyxLQUFsQixFQUF5QjtBQUN2QixvQkFBVSxpQkFBVjtBQUNBO0FBQ0Esb0JBQVUscUJBQVYsQ0FBaUMsVUFBVSxXQUEzQzs7QUFFQSxnQkFBTSxVQUFOLENBQWlCLDZCQUFqQixDQUFnRCxNQUFNLFdBQU4sQ0FBa0IsaUJBQWxCLENBQXFDLE1BQU0sVUFBTixDQUFpQixNQUF0RCxDQUFoRCxFQUFnSCxTQUFoSDtBQUNBO0FBQ0Q7QUFDRjtBQUNGO0FBSUY7O0FBRUQsV0FBUyxhQUFULENBQXdCLENBQXhCLEVBQTJCO0FBQUEsUUFFbkIsV0FGbUIsR0FFSSxDQUZKLENBRW5CLFdBRm1CO0FBQUEsUUFFTixLQUZNLEdBRUksQ0FGSixDQUVOLEtBRk07OztBQUl6QixRQUFNLFNBQVMsOEJBQWtCLEtBQWxCLENBQWY7QUFDQSxRQUFJLFdBQVcsU0FBZixFQUEwQjtBQUN4QjtBQUNEOztBQUVELFFBQUksT0FBTyxVQUFQLEtBQXNCLElBQTFCLEVBQWdDO0FBQzlCO0FBQ0Q7O0FBRUQsUUFBSSxNQUFNLEtBQVYsRUFBaUI7QUFDZixVQUFJLE1BQU0sYUFBTixDQUFvQixNQUFwQixHQUE2QixDQUFqQyxFQUFvQztBQUNsQyxZQUFJLE1BQU0sT0FBTixDQUFjLEdBQWQsQ0FBa0IsY0FBbEIsQ0FBa0MsTUFBTSxVQUF4QyxFQUFvRCxNQUFNLGlCQUExRCxDQUFKLEVBQW1GO0FBQ2pGLGNBQU0sWUFBWSxNQUFNLGFBQU4sQ0FBcUIsQ0FBckIsRUFBeUIsTUFBM0M7QUFDQSxjQUFJLGNBQWMsS0FBbEIsRUFBeUI7QUFDdkI7QUFDRDs7QUFFRCxnQkFBTSxRQUFOLEdBQWlCLE1BQWpCOztBQUVBLGNBQUksT0FBTyxZQUFYLEVBQXlCOztBQUV6QixnQkFBTSxRQUFOLENBQWUsaUJBQWY7QUFDQSxvQkFBVSxxQkFBVixDQUFpQyxNQUFNLFFBQU4sQ0FBZSxXQUFoRDs7QUFFQSxnQkFBTSxXQUFOLENBQWtCLElBQWxCLENBQXdCLE1BQU0saUJBQTlCLEVBQWtELEdBQWxELENBQXVELFNBQXZEO0FBQ0E7QUFFRDtBQUNGO0FBQ0YsS0FwQkQsTUFzQkk7QUFDRixVQUFJLE9BQU8sWUFBWCxFQUF5Qjs7QUFFekIsaUJBQVcsVUFBWCxDQUF1QixZQUFZLFdBQW5DOztBQUVBLGFBQU8sTUFBUCxDQUFjLFdBQWQsQ0FBMkIsVUFBM0I7QUFDQSxhQUFPLE1BQVAsQ0FBYyxTQUFkLENBQXlCLE9BQU8sUUFBaEMsRUFBMEMsT0FBTyxVQUFqRCxFQUE2RCxPQUFPLEtBQXBFOztBQUVBLGFBQU8sU0FBUCxHQUFtQixPQUFPLE1BQTFCO0FBQ0E7QUFDQSxrQkFBWSxHQUFaLENBQWlCLE1BQWpCO0FBQ0Q7O0FBRUQsTUFBRSxNQUFGLEdBQVcsSUFBWDs7QUFFQSxXQUFPLFVBQVAsR0FBb0IsSUFBcEI7O0FBRUEsVUFBTSxNQUFOLENBQWEsSUFBYixDQUFtQixTQUFuQixFQUE4QixLQUE5QjtBQUNEOztBQUVELFdBQVMsZUFBVCxDQUEwQixDQUExQixFQUE2QjtBQUFBLFFBRXJCLFdBRnFCLEdBRUUsQ0FGRixDQUVyQixXQUZxQjtBQUFBLFFBRVIsS0FGUSxHQUVFLENBRkYsQ0FFUixLQUZROzs7QUFJM0IsUUFBTSxTQUFTLDhCQUFrQixLQUFsQixDQUFmO0FBQ0EsUUFBSSxXQUFXLFNBQWYsRUFBMEI7QUFDeEI7QUFDRDs7QUFFRCxRQUFJLE9BQU8sVUFBUCxLQUFzQixLQUExQixFQUFpQztBQUMvQjtBQUNEOztBQUVELFFBQUksTUFBTSxLQUFWLEVBQWlCO0FBQ2YsWUFBTSxRQUFOLEdBQWlCLFNBQWpCO0FBQ0QsS0FGRCxNQUdJOztBQUVGLFVBQUksT0FBTyxTQUFQLEtBQXFCLFNBQXpCLEVBQW9DO0FBQ2xDO0FBQ0Q7O0FBRUQsYUFBTyxNQUFQLENBQWMsV0FBZCxDQUEyQixZQUFZLFdBQXZDO0FBQ0EsYUFBTyxNQUFQLENBQWMsU0FBZCxDQUF5QixPQUFPLFFBQWhDLEVBQTBDLE9BQU8sVUFBakQsRUFBNkQsT0FBTyxLQUFwRTtBQUNBLGFBQU8sU0FBUCxDQUFpQixHQUFqQixDQUFzQixNQUF0QjtBQUNBLGFBQU8sU0FBUCxHQUFtQixTQUFuQjtBQUNEOztBQUVELFdBQU8sVUFBUCxHQUFvQixLQUFwQjs7QUFFQSxVQUFNLE1BQU4sQ0FBYSxJQUFiLENBQW1CLGNBQW5CLEVBQW1DLE1BQW5DO0FBQ0Q7O0FBRUQsU0FBTyxXQUFQO0FBQ0Q7Ozs7Ozs7O0FDcEtNLElBQU0sNEJBQVcsWUFBVTtBQUNoQyxNQUFNLFFBQVEsSUFBSSxLQUFKLEVBQWQ7QUFDQSxRQUFNLEdBQU47O0FBRUEsTUFBTSxVQUFVLElBQUksTUFBTSxPQUFWLEVBQWhCLENBQXFDLFFBQVEsSUFBUixHQUFlLE9BQWY7QUFDckMsVUFBUSxLQUFSLEdBQWdCLEtBQWhCO0FBQ0EsVUFBUSxXQUFSLEdBQXNCLElBQXRCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU0sV0FBVyxJQUFJLE1BQU0saUJBQVYsQ0FBNEI7QUFDM0M7QUFDQSxVQUFNLE1BQU0sVUFGK0I7QUFHM0MsaUJBQWEsSUFIOEI7QUFJM0MsU0FBSztBQUpzQyxHQUE1QixDQUFqQjtBQU1BLFdBQVMsU0FBVCxHQUFxQixHQUFyQjs7QUFFQSxTQUFPLFlBQVU7QUFDZixRQUFNLFdBQVcsSUFBSSxNQUFNLGFBQVYsQ0FBeUIsTUFBTSxLQUFOLEdBQWMsSUFBdkMsRUFBNkMsTUFBTSxNQUFOLEdBQWUsSUFBNUQsRUFBa0UsQ0FBbEUsRUFBcUUsQ0FBckUsQ0FBakI7O0FBRUEsUUFBTSxPQUFPLElBQUksTUFBTSxJQUFWLENBQWdCLFFBQWhCLEVBQTBCLFFBQTFCLENBQWI7QUFDQSxXQUFPLElBQVA7QUFDRCxHQUxEO0FBT0QsQ0ExQnVCLEVBQWpCOztBQTRCQSxJQUFNLGdDQUFhLFlBQVU7QUFDbEMsTUFBTSxRQUFRLElBQUksS0FBSixFQUFkO0FBQ0EsUUFBTSxHQUFOLEdBQVksd3RuQkFBWjs7QUFFQSxNQUFNLFVBQVUsSUFBSSxNQUFNLE9BQVYsRUFBaEIsQ0FBcUMsUUFBUSxJQUFSLEdBQWUsT0FBZjtBQUNyQyxVQUFRLEtBQVIsR0FBZ0IsS0FBaEI7QUFDQSxVQUFRLFdBQVIsR0FBc0IsSUFBdEI7QUFDQSxVQUFRLFNBQVIsR0FBb0IsTUFBTSx3QkFBMUI7QUFDQSxVQUFRLFNBQVIsR0FBb0IsTUFBTSxZQUExQjtBQUNBO0FBQ0E7O0FBRUEsTUFBTSxXQUFXLElBQUksTUFBTSxpQkFBVixDQUE0QjtBQUMzQztBQUNBLFVBQU0sTUFBTSxVQUYrQjtBQUczQyxpQkFBYSxJQUg4QjtBQUkzQyxTQUFLO0FBSnNDLEdBQTVCLENBQWpCO0FBTUEsV0FBUyxTQUFULEdBQXFCLEdBQXJCOztBQUVBLFNBQU8sWUFBVTtBQUNmLFFBQU0sSUFBSSxHQUFWO0FBQ0EsUUFBTSxNQUFNLElBQUksTUFBTSxhQUFWLENBQXlCLE1BQU0sS0FBTixHQUFjLElBQWQsR0FBcUIsQ0FBOUMsRUFBaUQsTUFBTSxNQUFOLEdBQWUsSUFBZixHQUFzQixDQUF2RSxFQUEwRSxDQUExRSxFQUE2RSxDQUE3RSxDQUFaO0FBQ0EsUUFBSSxTQUFKLENBQWUsQ0FBQyxLQUFoQixFQUF1QixDQUFDLEtBQXhCLEVBQStCLENBQS9CO0FBQ0EsV0FBTyxJQUFJLE1BQU0sSUFBVixDQUFnQixHQUFoQixFQUFxQixRQUFyQixDQUFQO0FBQ0QsR0FMRDtBQU1ELENBMUJ5QixFQUFuQjs7QUE2QkEsSUFBTSxnQ0FBYSxZQUFVO0FBQ2xDLE1BQU0sUUFBUSxJQUFJLEtBQUosRUFBZDtBQUNBLFFBQU0sR0FBTixHQUFZLGdrcEJBQVo7O0FBRUEsTUFBTSxVQUFVLElBQUksTUFBTSxPQUFWLEVBQWhCLENBQXFDLFFBQVEsSUFBUixHQUFlLE9BQWY7QUFDckMsVUFBUSxLQUFSLEdBQWdCLEtBQWhCO0FBQ0EsVUFBUSxXQUFSLEdBQXNCLElBQXRCO0FBQ0EsVUFBUSxTQUFSLEdBQW9CLE1BQU0sd0JBQTFCO0FBQ0EsVUFBUSxTQUFSLEdBQW9CLE1BQU0sWUFBMUI7QUFDQTtBQUNBOztBQUVBLE1BQU0sV0FBVyxJQUFJLE1BQU0saUJBQVYsQ0FBNEI7QUFDM0M7QUFDQSxVQUFNLE1BQU0sVUFGK0I7QUFHM0MsaUJBQWEsSUFIOEI7QUFJM0MsU0FBSztBQUpzQyxHQUE1QixDQUFqQjtBQU1BLFdBQVMsU0FBVCxHQUFxQixHQUFyQjs7QUFFQSxTQUFPLFlBQWlCO0FBQUEsUUFBUixDQUFRLHVFQUFKLEdBQUk7O0FBQ3RCO0FBQ0EsUUFBTSxNQUFNLElBQUksTUFBTSxhQUFWLENBQXlCLE1BQU0sS0FBTixHQUFjLElBQWQsR0FBcUIsQ0FBOUMsRUFBaUQsTUFBTSxNQUFOLEdBQWUsSUFBZixHQUFzQixDQUF2RSxFQUEwRSxDQUExRSxFQUE2RSxDQUE3RSxDQUFaO0FBQ0EsUUFBSSxTQUFKLENBQWUsUUFBUSxDQUFSLEdBQVUsR0FBekIsRUFBOEIsQ0FBOUIsRUFBaUMsQ0FBakM7QUFDQSxXQUFPLElBQUksTUFBTSxJQUFWLENBQWdCLEdBQWhCLEVBQXFCLFFBQXJCLENBQVA7QUFDRCxHQUxEO0FBTUQsQ0ExQnlCLEVBQW5COztBQTZCQSxJQUFNLHNCQUFRLFlBQVU7QUFDN0IsTUFBTSxRQUFRLElBQUksS0FBSixFQUFkO0FBQ0EsUUFBTSxHQUFOLEdBQVksdzdDQUFaOztBQUVBLE1BQU0sVUFBVSxJQUFJLE1BQU0sT0FBVixFQUFoQixDQUFxQyxRQUFRLElBQVIsR0FBZSxPQUFmO0FBQ3JDLFVBQVEsS0FBUixHQUFnQixLQUFoQjtBQUNBLFVBQVEsV0FBUixHQUFzQixJQUF0QjtBQUNBLFVBQVEsU0FBUixHQUFvQixNQUFNLHdCQUExQjtBQUNBLFVBQVEsU0FBUixHQUFvQixNQUFNLFlBQTFCO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLFdBQVcsSUFBSSxNQUFNLGlCQUFWLENBQTRCO0FBQzNDO0FBQ0EsVUFBTSxNQUFNLFVBRitCO0FBRzNDLGlCQUFhLElBSDhCO0FBSTNDLFNBQUs7QUFKc0MsR0FBNUIsQ0FBakI7QUFNQSxXQUFTLFNBQVQsR0FBcUIsR0FBckI7O0FBRUEsU0FBTyxZQUFpQjtBQUFBLFFBQVIsQ0FBUSx1RUFBSixHQUFJOztBQUN0QjtBQUNBLFFBQU0sTUFBTSxJQUFJLE1BQU0sYUFBVixDQUF5QixNQUFNLEtBQU4sR0FBYyxJQUFkLEdBQXFCLENBQTlDLEVBQWlELE1BQU0sTUFBTixHQUFlLElBQWYsR0FBc0IsQ0FBdkUsRUFBMEUsQ0FBMUUsRUFBNkUsQ0FBN0UsQ0FBWjtBQUNBLFFBQUksU0FBSixDQUFlLFFBQVEsQ0FBUixHQUFVLEdBQXpCLEVBQThCLENBQTlCLEVBQWlDLENBQWpDO0FBQ0EsV0FBTyxJQUFJLE1BQU0sSUFBVixDQUFnQixHQUFoQixFQUFxQixRQUFyQixDQUFQO0FBQ0QsR0FMRDtBQU1ELENBMUJvQixFQUFkOztBQTZCQSxJQUFNLDBCQUFVLFlBQVU7QUFDL0IsTUFBTSxRQUFRLElBQUksS0FBSixFQUFkO0FBQ0EsUUFBTSxHQUFOLEdBQVksbzhDQUFaOztBQUVBLE1BQU0sVUFBVSxJQUFJLE1BQU0sT0FBVixFQUFoQixDQUFxQyxRQUFRLElBQVIsR0FBZSxPQUFmO0FBQ3JDLFVBQVEsS0FBUixHQUFnQixLQUFoQjtBQUNBLFVBQVEsV0FBUixHQUFzQixJQUF0QjtBQUNBLFVBQVEsU0FBUixHQUFvQixNQUFNLHdCQUExQjtBQUNBLFVBQVEsU0FBUixHQUFvQixNQUFNLFlBQTFCO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLFdBQVcsSUFBSSxNQUFNLGlCQUFWLENBQTRCO0FBQzNDO0FBQ0EsVUFBTSxNQUFNLFVBRitCO0FBRzNDLGlCQUFhLElBSDhCO0FBSTNDLFNBQUs7QUFKc0MsR0FBNUIsQ0FBakI7QUFNQSxXQUFTLFNBQVQsR0FBcUIsR0FBckI7O0FBRUEsU0FBTyxZQUFpQjtBQUFBLFFBQVIsQ0FBUSx1RUFBSixHQUFJOztBQUN0QjtBQUNBLFFBQU0sTUFBTSxJQUFJLE1BQU0sYUFBVixDQUF5QixNQUFNLEtBQU4sR0FBYyxJQUFkLEdBQXFCLENBQTlDLEVBQWlELE1BQU0sTUFBTixHQUFlLElBQWYsR0FBc0IsQ0FBdkUsRUFBMEUsQ0FBMUUsRUFBNkUsQ0FBN0UsQ0FBWjtBQUNBLFFBQUksU0FBSixDQUFlLFFBQVEsQ0FBUixHQUFVLEdBQXpCLEVBQThCLENBQTlCLEVBQWlDLENBQWpDO0FBQ0EsV0FBTyxJQUFJLE1BQU0sSUFBVixDQUFnQixHQUFoQixFQUFxQixRQUFyQixDQUFQO0FBQ0QsR0FMRDtBQU1ELENBMUJzQixFQUFoQjs7Ozs7Ozs7a0JDL0VpQixpQjs7QUFOeEI7Ozs7QUFDQTs7SUFBWSxNOztBQUNaOztJQUFZLE07O0FBQ1o7O0lBQVksSTs7QUFDWjs7Ozs7O0FBRWUsU0FBUyxpQkFBVCxHQWFQO0FBQUEsaUZBQUosRUFBSTtBQUFBLE1BWk4sV0FZTSxRQVpOLFdBWU07QUFBQSxNQVhOLE1BV00sUUFYTixNQVdNO0FBQUEsK0JBVk4sWUFVTTtBQUFBLE1BVk4sWUFVTSxxQ0FWUyxXQVVUO0FBQUEsdUJBVE4sSUFTTTtBQUFBLE1BVE4sSUFTTSw2QkFUQyxTQVNEO0FBQUEsMkJBUk4sUUFRTTtBQUFBLE1BUk4sUUFRTSxpQ0FSSyxTQVFMO0FBQUEsd0JBUE4sS0FPTTtBQUFBLE1BUE4sS0FPTSw4QkFQRSx3QkFPRjtBQUFBLHVCQU5OLElBTU07QUFBQSxNQU5OLElBTU0sNkJBTkMsS0FNRDtBQUFBLHdCQUxOLEtBS007QUFBQSxNQUxOLEtBS00sOEJBTEUsT0FBTyxXQUtUO0FBQUEsTUFKTixNQUlNLFFBSk4sTUFJTTtBQUFBLHdCQUhOLEtBR007QUFBQSxNQUhOLEtBR00sOEJBSEUsT0FBTyxXQUdUO0FBQUEsbUNBRk4sa0JBRU07QUFBQSxNQUZOLGtCQUVNLHlDQUZlLElBRWY7QUFBQSw4QkFETixXQUNNO0FBQUEsTUFETixXQUNNLG9DQURRLE9BQU8sWUFDZjs7QUFFTixXQUFTLG9CQUFULENBQThCLEtBQTlCLEVBQXFDLGNBQXJDLEVBQXFEO0FBQ2pELFFBQUksT0FBTyxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCO0FBQ0EsVUFBSSxNQUFNLGFBQVYsR0FBMEIsSUFBMUIsQ0FBK0IsS0FBL0IsRUFBc0MsVUFBQyxPQUFELEVBQWE7QUFDL0MsZ0JBQVEsS0FBUixHQUFnQixRQUFRLEtBQVIsR0FBZ0IsTUFBTSxtQkFBdEM7QUFDQSx1QkFBZSxHQUFmLEdBQXFCLE9BQXJCO0FBQ0EsdUJBQWUsV0FBZixHQUE2QixJQUE3QjtBQUNILE9BSkQ7QUFLRCxLQVBELE1BT08sSUFBSSxNQUFNLFNBQVYsRUFBcUI7QUFDeEIscUJBQWUsR0FBZixHQUFxQixLQUFyQjtBQUNILEtBRk0sTUFFQSxJQUFJLE1BQU0sbUJBQVYsRUFBK0I7QUFDbEMscUJBQWUsR0FBZixHQUFxQixNQUFNLE9BQTNCO0FBQ0gsS0FGTSxNQUVBLE1BQU0scUNBQXFDLEtBQTNDO0FBQ1AsbUJBQWUsV0FBZixHQUE2QixJQUE3QjtBQUNIOztBQUVBO0FBQ0QsTUFBSSxDQUFDLE1BQUwsRUFBYSxTQUFTLE9BQU8sV0FBUCxJQUF1QixPQUFPLElBQVAsR0FBYyxJQUFyQyxDQUFUOztBQUViLE1BQU0sZUFBZSxTQUFTLE9BQU8sSUFBUCxHQUFjLElBQXZCLElBQStCLE9BQU8sWUFBM0Q7QUFDQSxNQUFNLGdCQUFnQixTQUFTLE9BQU8sWUFBdEM7QUFDQSxNQUFNLGVBQWUsV0FBckI7O0FBRUEsTUFBTSxRQUFRLElBQUksTUFBTSxLQUFWLEVBQWQ7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsYUFBaEI7QUFDQSxRQUFNLFFBQU4sR0FBaUI7QUFBQSxpQkFBVSxNQUFNLE9BQWhCLFVBQTRCLFlBQTVCO0FBQUEsR0FBakI7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsTUFBaEI7O0FBRUEsTUFBTSxRQUFRLE9BQU8sV0FBUCxDQUFvQixLQUFwQixFQUEyQixNQUEzQixFQUFtQyxLQUFuQyxDQUFkO0FBQ0EsUUFBTSxHQUFOLENBQVcsS0FBWDs7QUFFQTtBQUNBLE1BQU0sT0FBTyxJQUFJLE1BQU0sYUFBVixDQUF5QixZQUF6QixFQUF1QyxhQUF2QyxFQUFzRCxDQUF0RCxFQUF5RCxDQUF6RCxDQUFiO0FBQ0EsT0FBSyxTQUFMLENBQWdCLGVBQWUsR0FBL0IsRUFBb0MsQ0FBcEMsRUFBdUMsWUFBdkM7O0FBRUE7QUFDQSxNQUFNLGtCQUFrQixJQUFJLE1BQU0saUJBQVYsRUFBeEI7QUFDQSxrQkFBZ0IsT0FBaEIsR0FBMEIsS0FBMUI7O0FBRUEsTUFBTSxnQkFBZ0IsSUFBSSxNQUFNLElBQVYsQ0FBZ0IsS0FBSyxLQUFMLEVBQWhCLEVBQThCLGVBQTlCLENBQXRCO0FBQ0EsZ0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixZQUEzQjtBQUNBLE1BQUksQ0FBQyxJQUFMLEVBQVcsY0FBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLFFBQVEsR0FBbkMsQ0FBWCxLQUNLO0FBQ0gsa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixPQUFPLHVCQUFQLEdBQWlDLElBQTVEO0FBQ0Esa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixJQUEzQixDQUZHLENBRThCO0FBQ2xDOztBQUVELE1BQUksUUFBSjtBQUNBLE1BQUksTUFBTSxVQUFWLEVBQXNCO0FBQ3BCLGVBQVcsS0FBWDtBQUNELEdBRkQsTUFFTztBQUNMLGVBQVcsSUFBSSxNQUFNLGlCQUFWLEVBQVg7QUFDQSxhQUFTLFdBQVQsR0FBdUIsSUFBdkI7QUFDQSx5QkFBcUIsS0FBckIsRUFBNEIsUUFBNUI7QUFDRDtBQUNELE1BQU0sZUFBZSxJQUFJLE1BQU0sSUFBVixDQUFnQixLQUFLLEtBQUwsRUFBaEIsRUFBOEIsUUFBOUIsQ0FBckI7QUFDQSxnQkFBYyxHQUFkLENBQW1CLFlBQW5COztBQUVBOztBQUVBLE1BQU0sa0JBQWtCLFlBQVksTUFBWixDQUFvQixZQUFwQixDQUF4QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixPQUFPLHVCQUFwQztBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixLQUE3QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixDQUFDLElBQTlCO0FBQ0EsTUFBSSxJQUFKLEVBQVUsZ0JBQWdCLE9BQWhCLEdBQTBCLEtBQTFCOztBQUVWLE1BQU0sZUFBZSxPQUFPLHFCQUFQLENBQThCLE1BQTlCLEVBQXNDLE9BQU8sb0JBQTdDLENBQXJCO0FBQ0EsZUFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLEtBQTFCOztBQUVBLFFBQU0sR0FBTixDQUFXLGVBQVgsRUFBNEIsYUFBNUIsRUFBMkMsWUFBM0M7O0FBRUEsTUFBTSxjQUFjLDJCQUFtQixhQUFuQixDQUFwQjtBQUNBO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFVBQXZCLEVBQW1DLFdBQW5DO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFdBQXZCLEVBQW9DLGFBQXBDO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFVBQXZCLEVBQW1DLGNBQW5DO0FBQ0EsY0FBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFlBQXZCLEVBQXFDLGVBQXJDOztBQUVBOztBQUVBLE1BQUksWUFBWSxTQUFoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU0sT0FBTixHQUFnQixhQUFLO0FBQ25CLGdCQUFZLENBQVo7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEO0FBSUEsUUFBTSxVQUFOLEdBQW1CLGFBQUs7QUFDdEIsZUFBVyxDQUFYO0FBQ0EsV0FBTyxLQUFQO0FBQ0QsR0FIRDtBQUlBLFdBQVMsV0FBVCxDQUFzQixDQUF0QixFQUF5QjtBQUN2QixRQUFJLENBQUMsZ0NBQW9CLEtBQXBCLENBQUwsRUFBaUM7QUFDL0I7QUFDRDs7QUFFRCxNQUFFLFVBQUYsR0FBZSw4QkFBOEIsRUFBRSxLQUFoQyxDQUFmO0FBQ0EsUUFBSSxTQUFKLEVBQWUsVUFBVSxDQUFWO0FBQ2hCOztBQUVELFdBQVMsYUFBVCxDQUF3QixDQUF4QixFQUEyQjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBSSxDQUFDLGdDQUFvQixLQUFwQixDQUFMLEVBQWlDO0FBQy9CO0FBQ0Q7O0FBRUQsTUFBRSxVQUFGLEdBQWUsOEJBQThCLEVBQUUsS0FBaEMsQ0FBZjtBQUNBLFFBQUksTUFBSixFQUFZLE9BQVEsWUFBUixFQUF1QixDQUF2QjtBQUNaLFFBQUksSUFBSixFQUFVLEtBQUssQ0FBTDs7QUFFVixrQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLGVBQWUsR0FBMUM7O0FBRUEsTUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxXQUFTLDZCQUFULENBQXVDLEtBQXZDLEVBQThDO0FBQzVDLFFBQU0sSUFBSSxjQUFjLFlBQWQsQ0FBMkIsS0FBM0IsQ0FBVjtBQUNBLE1BQUUsQ0FBRixJQUFPLFlBQVA7QUFDQSxNQUFFLENBQUYsSUFBTyxhQUFQO0FBQ0EsTUFBRSxDQUFGLElBQU8sR0FBUDtBQUNBLE1BQUUsQ0FBRixHQUFNLEtBQUssR0FBTCxDQUFTLEtBQUssR0FBTCxDQUFTLEVBQUUsQ0FBWCxFQUFjLENBQWQsQ0FBVCxFQUEyQixDQUEzQixDQUFOO0FBQ0EsTUFBRSxDQUFGLEdBQU0sS0FBSyxHQUFMLENBQVMsS0FBSyxHQUFMLENBQVMsRUFBRSxDQUFYLEVBQWMsQ0FBZCxDQUFULEVBQTJCLENBQTNCLENBQU47QUFDQSxXQUFPLENBQVA7QUFDRDs7QUFFRCxXQUFTLGNBQVQsQ0FBeUIsQ0FBekIsRUFBNkI7QUFDM0IsUUFBSSxDQUFDLGdDQUFvQixLQUFwQixDQUFMLEVBQWlDO0FBQy9CO0FBQ0Q7O0FBRUQsTUFBRSxVQUFGLEdBQWUsOEJBQThCLEVBQUUsS0FBaEMsQ0FBZjtBQUNBO0FBQ0E7QUFDQSxRQUFJLFFBQUosRUFBYyxTQUFTLENBQVQ7QUFDZjs7QUFFRCxXQUFTLGVBQVQsR0FBMEI7QUFDeEIsa0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixlQUFlLEdBQTFDO0FBQ0Q7O0FBRUQsV0FBUyxVQUFULEdBQXFCO0FBQ25CLFFBQUksQ0FBQyxTQUFTLEtBQWQsRUFBcUI7QUFDckIsUUFBSSxZQUFZLFFBQVosRUFBSixFQUE0QjtBQUMxQixVQUFJLGtCQUFKLEVBQXdCLFNBQVMsS0FBVCxDQUFlLE1BQWYsQ0FBdUIsUUFBdkI7QUFDekIsS0FGRCxNQUdJO0FBQ0YsVUFBSSxrQkFBSixFQUF3QixTQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLFFBQXZCO0FBQ3pCO0FBRUY7O0FBRUQsUUFBTSxXQUFOLEdBQW9CLFdBQXBCO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLENBQUUsYUFBRixFQUFpQixLQUFqQixDQUFoQjs7QUFFQSxNQUFNLGtCQUFrQixLQUFLLE1BQUwsQ0FBYSxFQUFFLFlBQUYsRUFBUyxZQUFULEVBQWIsQ0FBeEI7O0FBRUEsUUFBTSxhQUFOLEdBQXNCLFVBQVUsWUFBVixFQUF3QjtBQUM1QyxnQkFBWSxNQUFaLENBQW9CLFlBQXBCO0FBQ0Esb0JBQWdCLE1BQWhCLENBQXdCLFlBQXhCO0FBQ0E7QUFDRCxHQUpEOztBQU1BLFFBQU0sSUFBTixHQUFhLFVBQVUsR0FBVixFQUFlO0FBQzFCLG9CQUFnQixXQUFoQixDQUE2QixHQUE3QjtBQUNBLFdBQU8sS0FBUDtBQUNELEdBSEQ7O0FBTUEsU0FBTyxLQUFQO0FBQ0QsQyxDQW5PRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQ2tDd0IscUI7O0FBUnhCOztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7QUFDWjs7Ozs7O0FBRWUsU0FBUyxxQkFBVCxHQU9QO0FBQUEsbUZBQUosRUFBSTtBQUFBLFFBTk4sV0FNTSxRQU5OLFdBTU07QUFBQSxRQUxOLE9BS00sUUFMTixPQUtNO0FBQUEsMEJBSk4sS0FJTTtBQUFBLFFBSk4sS0FJTSw4QkFKRSxPQUFPLFdBSVQ7QUFBQSxRQUhOLFNBR00sUUFITixTQUdNO0FBQUEsMEJBRk4sS0FFTTtBQUFBLFFBRk4sS0FFTSw4QkFGRSxPQUFPLFdBRVQ7QUFBQSw0QkFETixPQUNNO0FBQUEsUUFETixPQUNNLGdDQURJLENBQ0o7O0FBRU4sYUFBUyxvQkFBVCxDQUE4QixLQUE5QixFQUFxQyxjQUFyQyxFQUFxRDtBQUNqRCxZQUFJLE9BQU8sS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QjtBQUNBLGdCQUFJLE1BQU0sYUFBVixHQUEwQixJQUExQixDQUErQixLQUEvQixFQUFzQyxVQUFDLE9BQUQsRUFBYTtBQUMvQyx3QkFBUSxLQUFSLEdBQWdCLFFBQVEsS0FBUixHQUFnQixNQUFNLG1CQUF0QztBQUNBLCtCQUFlLEdBQWYsR0FBcUIsT0FBckI7QUFDQSwrQkFBZSxXQUFmLEdBQTZCLElBQTdCO0FBQ0gsYUFKRDtBQUtELFNBUEQsTUFPTyxJQUFJLE1BQU0sU0FBVixFQUFxQjtBQUN4QiwyQkFBZSxHQUFmLEdBQXFCLEtBQXJCO0FBQ0gsU0FGTSxNQUVBLElBQUksTUFBTSxtQkFBVixFQUErQjtBQUNsQywyQkFBZSxHQUFmLEdBQXFCLE1BQU0sT0FBM0I7QUFDSCxTQUZNLE1BRUEsTUFBTSxxQ0FBcUMsS0FBM0M7QUFDUCx1QkFBZSxXQUFmLEdBQTZCLElBQTdCO0FBQ0g7O0FBRUQsUUFBTSxTQUFTLE9BQU8sWUFBUCxHQUFzQixDQUFyQztBQUNBLFFBQU0sZUFBZSxDQUFDLFFBQVEsTUFBVCxLQUFvQixJQUFFLE9BQXRCLENBQXJCO0FBQ0E7QUFDQSxRQUFJLGdCQUFnQixZQUFZLENBQVosR0FBZ0IsU0FBaEIsR0FBNEIsWUFBaEQ7QUFDQSxRQUFNLGVBQWUsT0FBTyxZQUE1Qjs7QUFFQSxRQUFNLFFBQVEsSUFBSSxNQUFNLEtBQVYsRUFBZDtBQUNBLFVBQU0sT0FBTixHQUFnQixpQkFBaEI7QUFDQSxVQUFNLFFBQU4sR0FBaUI7QUFBQSxxQkFBVSxNQUFNLE9BQWhCLFVBQTRCLE9BQTVCO0FBQUEsS0FBakI7O0FBRUEsUUFBTSxPQUFPLEtBQUssSUFBTCxDQUFVLFFBQVEsTUFBUixHQUFpQixPQUEzQixDQUFiO0FBQ0EsUUFBSSxTQUFTLE9BQU8sWUFBUCxHQUFzQixnQkFBZ0IsSUFBbkQ7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsTUFBaEI7O0FBRUEsVUFBTSxZQUFOLEdBQXFCLGFBQUs7QUFDeEIsb0JBQVksZ0JBQWdCLENBQTVCO0FBQ0EsaUJBQVMsT0FBTyxZQUFQLEdBQXNCLGdCQUFnQixJQUEvQztBQUNBLGNBQU0sT0FBTixHQUFnQixNQUFoQjtBQUNBO0FBQ0EsZUFBTyxLQUFQO0FBQ0QsS0FORDs7QUFRQSxRQUFJLHVCQUF1QixLQUEzQjtBQUNBLFFBQUksY0FBYyxJQUFsQjtBQUNBLFFBQUksdUJBQUo7QUFDQSxVQUFNLG9CQUFOLEdBQTZCLFlBQW9CO0FBQUEsWUFBbkIsR0FBbUIsdUVBQWIsUUFBYTs7QUFDN0MsK0JBQXVCLFFBQVEsS0FBL0I7QUFDQSx5QkFBaUIsR0FBakI7QUFDQSxlQUFPLEtBQVA7QUFDSCxLQUpEOztBQU1BLFFBQUksY0FBSjtBQUFBLFFBQVcsd0JBQVg7QUFBQSxRQUE0QixVQUFVLEVBQXRDOztBQUVBOztBQUVBLGFBQVMsU0FBVCxHQUFxQjtBQUNuQixZQUFJLEtBQUosRUFBVyxNQUFNLE1BQU4sQ0FBYSxLQUFiO0FBQ1gsZ0JBQVEsT0FBTyxXQUFQLENBQW9CLEtBQXBCLEVBQTJCLE1BQTNCLEVBQW1DLEtBQW5DLENBQVI7QUFDQSxjQUFNLEdBQU4sQ0FBVyxLQUFYOztBQUVBLFlBQU0sZUFBZSxPQUFPLHFCQUFQLENBQThCLE1BQTlCLEVBQXNDLE9BQU8sb0JBQTdDLENBQXJCO0FBQ0EscUJBQWEsUUFBYixDQUFzQixDQUF0QixHQUEwQixLQUExQjtBQUNBLGNBQU0sR0FBTixDQUFVLFlBQVY7O0FBRUEsMEJBQWtCLEtBQUssTUFBTCxDQUFhLEVBQUUsWUFBRixFQUFTLFlBQVQsRUFBYixDQUFsQjs7QUFFQSxnQkFBUSxPQUFSLENBQWdCO0FBQUEsbUJBQUcsTUFBTSxNQUFOLENBQWEsQ0FBYixDQUFIO0FBQUEsU0FBaEI7QUFDQSxrQkFBVSxFQUFWO0FBQ0EsY0FBTSxXQUFOLEdBQW9CLE9BQXBCO0FBQ0Q7O0FBRUQsYUFBUyxhQUFULEdBQXlCO0FBQ3ZCO0FBQ0E7QUFDQSxZQUFNLGdCQUFnQixlQUFlLElBQXJDO0FBQUEsWUFBMkMsZ0JBQWdCLGdCQUFnQixJQUEzRTtBQUNBLFlBQU0sT0FBTyxJQUFJLE1BQU0sYUFBVixDQUF5QixhQUF6QixFQUF3QyxhQUF4QyxFQUF1RCxDQUF2RCxFQUEwRCxDQUExRCxDQUFiO0FBQ0EsYUFBSyxTQUFMLENBQWdCLGdCQUFnQixDQUFoQyxFQUFtQyxDQUFDLGFBQUQsR0FBaUIsQ0FBcEQsRUFBdUQsWUFBdkQ7O0FBRUEsWUFBSSxJQUFJLENBQVI7O0FBRUE7QUFDQSxnQkFBUSxPQUFSLENBQWdCLFVBQUMsR0FBRCxFQUFNLENBQU4sRUFBWTtBQUN4QixnQkFBSSxDQUFDLElBQUksS0FBTCxJQUFjLENBQUMsSUFBSSxJQUF2QixFQUE2QjtBQUN6QjtBQUNIO0FBQ0QsZ0JBQUksV0FBVyxJQUFJLE1BQU0sS0FBVixFQUFmLENBSndCLENBSVU7QUFDbEMscUJBQVMsT0FBVCxHQUFtQix3QkFBbkI7QUFDQSxrQkFBTSxHQUFOLENBQVUsUUFBVjtBQUNBLG9CQUFRLElBQVIsQ0FBYSxRQUFiOztBQUVBLGdCQUFNLE1BQU0sSUFBSSxPQUFoQjtBQUNBLGdCQUFNLE1BQU0sS0FBSyxLQUFMLENBQVcsSUFBSSxPQUFmLENBQVo7O0FBRUEscUJBQVMsUUFBVCxDQUFrQixDQUFsQixHQUF1QixJQUFFLE9BQU8sWUFBVixHQUEwQixlQUFlLEdBQS9EO0FBQ0EscUJBQVMsUUFBVCxDQUFrQixDQUFsQixHQUF1QixTQUFPLENBQVIsR0FBWSxnQkFBZ0IsR0FBbEQ7QUFDQSxxQkFBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLFlBQXRCOztBQUVBO0FBQ0E7QUFDQSxnQkFBTSxrQkFBa0IsSUFBSSxNQUFNLGlCQUFWLEVBQXhCO0FBQ0EsNEJBQWdCLE9BQWhCLEdBQTBCLEtBQTFCOztBQUVBLGdCQUFNLGdCQUFnQixJQUFJLE1BQU0sSUFBVixDQUFnQixLQUFLLEtBQUwsRUFBaEIsRUFBOEIsZUFBOUIsQ0FBdEI7O0FBRUEsZ0JBQU0sV0FBVyxJQUFJLE1BQU0saUJBQVYsRUFBakI7QUFDQSxxQkFBUyxXQUFULEdBQXVCLElBQXZCO0FBQ0EsZ0JBQUksSUFBSSxLQUFSLEVBQWUscUJBQXFCLElBQUksS0FBekIsRUFBZ0MsUUFBaEM7QUFDZixnQkFBSSxJQUFJLElBQVIsRUFBYztBQUNWLG9CQUFNLE9BQU8sWUFBWSxNQUFaLENBQW1CLElBQUksSUFBdkIsQ0FBYjtBQUNBLG9CQUFNLFVBQVMsSUFBRSxPQUFPLGtCQUF4QjtBQUNBLG9CQUFJLElBQUksT0FBTyxVQUFQLEdBQW9CLEtBQUssTUFBTCxDQUFZLE1BQXhDO0FBQ0Esb0JBQUksSUFBSSxLQUFLLFlBQUwsRUFBUjtBQUNBLG9CQUFJLElBQUksZUFBZSxPQUF2QixFQUErQjtBQUMzQix5QkFBSyxlQUFMLENBQXFCLGVBQWUsT0FBcEMsRUFBNEMsZ0JBQWdCLE9BQTVELEVBRDJCLENBQzBDO0FBQ3JFLHdCQUFJLE9BQU8sVUFBUCxHQUFvQixLQUFLLE1BQUwsQ0FBWSxNQUFwQztBQUNBLHdCQUFJLEtBQUssWUFBTCxFQUFKO0FBQ0g7QUFDRCx5QkFBUyxHQUFULENBQWEsSUFBYjtBQUNBLHlCQUFTLElBQVQsR0FBZ0IsSUFBaEI7QUFDQSxxQkFBSyxRQUFMLENBQWMsQ0FBZCxHQUFrQixJQUFJLEtBQUosSUFBYSxPQUFPLGVBQWUsQ0FBdEIsQ0FBL0I7QUFDQSxxQkFBSyxRQUFMLENBQWMsQ0FBZCxHQUFrQixJQUFJLEtBQUosSUFBYSxDQUFDLEdBQUQsR0FBTyxhQUFQLEdBQXVCLENBQXREO0FBQ0EscUJBQUssUUFBTCxDQUFjLENBQWQsR0FBa0IsZUFBZSxHQUFqQztBQUNIO0FBQ0QsZ0JBQU0sZUFBZSxJQUFJLE1BQU0sSUFBVixDQUFnQixLQUFLLEtBQUwsRUFBaEIsRUFBOEIsUUFBOUIsQ0FBckI7QUFDQSwwQkFBYyxHQUFkLENBQW1CLFlBQW5COztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFJLElBQUksR0FBUixFQUFhO0FBQ1Qsb0JBQU0sVUFBVSw4QkFBYyxXQUFkLEVBQTJCLElBQUksR0FBL0IsRUFBb0MsWUFBcEMsRUFBa0QsYUFBbEQsRUFBaUUsWUFBakUsQ0FBaEI7O0FBRUE7QUFDQSx5QkFBUyxPQUFULEdBQW1CLE9BQW5CO0FBQ0g7O0FBRUQ7QUFDQSxxQkFBUyxHQUFULENBQWMsYUFBZDtBQUNBLGtCQUFNLEdBQU4sQ0FBVSxRQUFWOztBQUVBLGdCQUFNLGNBQWMsMkJBQW1CLGFBQW5CLENBQXBCO0FBQ0Esd0JBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxhQUFwQztBQUNBLHdCQUFZLE1BQVosQ0FBbUIsRUFBbkIsQ0FBdUIsWUFBdkIsRUFBcUMsZUFBckM7O0FBR0EscUJBQVMsYUFBVCxDQUF3QixDQUF4QixFQUEyQjtBQUN2QixvQkFBSSxTQUFTLE9BQVQsS0FBcUIsS0FBekIsRUFBZ0M7QUFDNUI7QUFDSDs7QUFFRCxrQkFBRSxNQUFGLEdBQVcsSUFBWDtBQUNBO0FBQ0Esb0JBQUk7QUFDQSx3QkFBSSxJQUFKO0FBQ0gsaUJBRkQsQ0FFRSxPQUFPLENBQVAsRUFBVTtBQUNSLHdCQUFJLEtBQUosR0FBWSxLQUFLLHFCQUFqQjtBQUNBO0FBQ0g7QUFDRCw4QkFBYyxHQUFkO0FBQ0EseUJBQVMsUUFBVCxDQUFrQixDQUFsQixHQUFzQixlQUFlLEdBQXJDO0FBQ0g7O0FBRUQscUJBQVMsZUFBVCxHQUEwQjtBQUN0Qix5QkFBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLFlBQXRCO0FBQ0Esb0JBQUksSUFBSSxPQUFSLEVBQWlCLElBQUksT0FBSjtBQUNwQjtBQUNEO0FBQ0EsZ0JBQUksUUFBSixHQUFlLElBQUksSUFBSixHQUFXLEtBQVgsR0FBbUIsUUFBbEM7QUFDQSxnQkFBSSxVQUFKLEdBQWlCLElBQUksSUFBSixHQUFXLEtBQVgsR0FBbUIsUUFBcEM7QUFDQSxxQkFBUyxVQUFULEdBQXNCLFlBQU07QUFDeEIsb0JBQUksd0JBQXdCLGdCQUFnQixHQUE1QyxFQUFpRDtBQUM3Qyw2QkFBUyxLQUFULENBQWUsTUFBZixDQUF1QixjQUF2QjtBQUNILGlCQUZELE1BR0ssU0FBUyxLQUFULENBQWUsTUFBZixDQUF1QixZQUFZLFFBQVosS0FBeUIsSUFBSSxRQUE3QixHQUF3QyxJQUFJLFVBQW5FO0FBQ0wsb0JBQUksU0FBUyxPQUFiLEVBQXNCLDBCQUFjLFFBQWQsRUFBd0IsU0FBUyxPQUFqQyxFQUEwQyxZQUFZLFFBQVosRUFBMUM7QUFDdEIsb0JBQUksSUFBSSxLQUFSLEVBQWUsU0FBUyxLQUFULENBQWUsTUFBZixDQUF1QixRQUF2QjtBQUNsQixhQVBEOztBQVNBLHFCQUFTLFVBQVQ7O0FBRUEscUJBQVMsV0FBVCxHQUF1QixXQUF2QjtBQUNBLHFCQUFTLE9BQVQsR0FBbUIsYUFBbkIsQ0FwR3dCLENBb0dVO0FBQ2xDO0FBQ0gsU0F0R0Q7O0FBd0dBLGNBQU0sT0FBTixHQUFnQixRQUFRLEdBQVIsQ0FBWTtBQUFBLG1CQUFHLEVBQUUsT0FBTDtBQUFBLFNBQVosQ0FBaEIsQ0FsSHVCLENBa0htQjtBQUMxQyxjQUFNLE9BQU4sQ0FBYyxJQUFkLENBQW1CLEtBQW5CO0FBQ0Q7O0FBR0QsYUFBUyxVQUFULEdBQXNCO0FBQ2xCLGdCQUFRLE9BQVIsQ0FBZ0I7QUFBQSxtQkFBRyxFQUFFLFVBQUYsRUFBSDtBQUFBLFNBQWhCO0FBQ0g7O0FBRUQsVUFBTSxhQUFOLEdBQXNCLFVBQVUsWUFBVixFQUF3QjtBQUM1QyxnQkFBUSxPQUFSLENBQWdCLGFBQUc7QUFDZixjQUFFLFdBQUYsQ0FBYyxNQUFkLENBQXNCLFlBQXRCO0FBQ0gsU0FGRDtBQUdBO0FBQ0Esd0JBQWdCLE1BQWhCLENBQXdCLFlBQXhCO0FBQ0E7QUFDRCxLQVBEOztBQVNBLFVBQU0sSUFBTixHQUFhLFVBQVUsR0FBVixFQUFlO0FBQzFCLHdCQUFnQixXQUFoQixDQUE2QixHQUE3QjtBQUNBLGVBQU8sS0FBUDtBQUNELEtBSEQ7O0FBTUEsV0FBTyxLQUFQO0FBQ0QsQyxDQXpQRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ21CQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTzs7QUFDWjs7QUFDQTs7Ozs7O29NQWpDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQTs7O0FBVUEsSUFBTSxRQUFTLFNBQVMsUUFBVCxHQUFtQjs7QUFFaEM7OztBQUdBLE1BQU0sY0FBYyxRQUFRLE9BQVIsRUFBcEI7O0FBR0E7Ozs7O0FBS0EsTUFBTSxlQUFlLEVBQXJCO0FBQ0EsTUFBTSxjQUFjLEVBQXBCOztBQUVBOzs7Ozs7O0FBT0EsV0FBUyxxQkFBVCxHQUFpQztBQUMvQjtBQUNBLFdBQU8sWUFBWSxNQUFaLENBQW9CLDBCQUFwQixDQUFQO0FBQ0Q7QUFDRCxXQUFTLHdCQUFULEdBQW9DO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFNLE1BQU0sd0JBQXdCLEdBQXhCLENBQTZCLGFBQUs7QUFBRSxhQUFPLEVBQUUsT0FBRixDQUFVLE1BQVYsQ0FBaUI7QUFBQSxlQUFLLEVBQUUsT0FBUDtBQUFBLE9BQWpCLENBQVA7QUFBMEMsS0FBOUUsQ0FBWjtBQUNBLFdBQU8sSUFBSSxNQUFKLENBQVcsVUFBQyxDQUFELEVBQUksQ0FBSixFQUFVO0FBQUUsYUFBTyxFQUFFLE1BQUYsQ0FBUyxDQUFULENBQVA7QUFBbUIsS0FBMUMsRUFBNEMsRUFBNUMsQ0FBUDtBQUNEOztBQUVELE1BQUksZUFBZSxLQUFuQjtBQUNBLE1BQUksZ0JBQWdCLFNBQXBCO0FBQ0EsTUFBSSxzQkFBc0IsU0FBMUIsQ0F2Q2dDLENBdUNLOztBQUVyQyxNQUFJLGFBQWEsSUFBakI7O0FBRUEsV0FBUyxXQUFULENBQXNCLE1BQXRCLEVBQThCLFFBQTlCLEVBQXdDO0FBQ3RDLG1CQUFlLElBQWY7QUFDQSxvQkFBZ0IsUUFBaEI7QUFDQSxlQUFXLFdBQVgsR0FBeUIsTUFBekI7QUFDQSxRQUFJLE9BQU8sb0JBQVgsRUFBaUM7QUFDL0IsVUFBSSxDQUFDLG1CQUFMLEVBQTBCO0FBQ3hCLDhCQUFzQjtBQUFBLGlCQUFHLEVBQUUsaUJBQUYsRUFBSDtBQUFBLFNBQXRCO0FBQ0EsbUJBQVcsTUFBWCxDQUFrQixFQUFsQixDQUFxQixjQUFyQixFQUFxQyxtQkFBckM7QUFDRDtBQUNGLEtBTEQsTUFLTztBQUNMLFVBQUksbUJBQUosRUFBeUI7QUFDdkIsbUJBQVcsTUFBWCxDQUFrQixjQUFsQixDQUFpQyxjQUFqQyxFQUFpRCxtQkFBakQ7QUFDQSw4QkFBc0IsU0FBdEI7QUFDRDtBQUNGO0FBQ0QsV0FBTyxXQUFXLEtBQWxCO0FBQ0Q7O0FBRUQsV0FBUyxZQUFULEdBQXVCO0FBQ3JCLG1CQUFlLEtBQWY7QUFDQSxRQUFJLG1CQUFKLEVBQXlCO0FBQ3ZCLGlCQUFXLE1BQVgsQ0FBa0IsY0FBbEIsQ0FBaUMsY0FBakMsRUFBaUQsbUJBQWpEO0FBQ0EsNEJBQXNCLFNBQXRCO0FBQ0Q7QUFDRjs7QUFHRDs7O0FBR0EsTUFBTSxnQkFBZ0IsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUMsT0FBTSxRQUFQLEVBQWlCLGFBQWEsSUFBOUIsRUFBb0MsVUFBVSxNQUFNLGdCQUFwRCxFQUE1QixDQUF0QjtBQUNBLFdBQVMsV0FBVCxHQUFzQjtBQUNwQixRQUFNLElBQUksSUFBSSxNQUFNLGNBQVYsRUFBVjtBQUNBLE1BQUUsWUFBRixDQUFlLFVBQWYsRUFBMkIsSUFBSSxNQUFNLGVBQVYsQ0FBMEIsSUFBSSxZQUFKLENBQWlCLENBQUMsQ0FBRCxFQUFHLENBQUgsRUFBSyxDQUFMLEVBQU8sQ0FBUCxFQUFTLENBQVQsRUFBVyxDQUFYLENBQWpCLENBQTFCLENBQTNCO0FBQ0EsV0FBTyxJQUFJLE1BQU0sSUFBVixDQUFnQixDQUFoQixFQUFtQixhQUFuQixDQUFQO0FBQ0Q7O0FBTUQ7OztBQUdBLE1BQU0saUJBQWlCLElBQUksTUFBTSxpQkFBVixDQUE0QixFQUFDLE9BQU0sUUFBUCxFQUFpQixhQUFhLElBQTlCLEVBQW9DLFVBQVUsTUFBTSxnQkFBcEQsRUFBNUIsQ0FBdkI7QUFDQSxXQUFTLFlBQVQsR0FBdUI7QUFDckIsV0FBTyxJQUFJLE1BQU0sSUFBVixDQUFnQixJQUFJLE1BQU0sY0FBVixDQUF5QixLQUF6QixFQUFnQyxDQUFoQyxFQUFtQyxDQUFuQyxDQUFoQixFQUF3RCxjQUF4RCxDQUFQO0FBQ0Q7O0FBS0Q7Ozs7Ozs7QUFRQSxXQUFTLFdBQVQsR0FBdUQ7QUFBQSxRQUFqQyxXQUFpQyx1RUFBbkIsSUFBSSxNQUFNLEtBQVYsRUFBbUI7O0FBQ3JELFFBQU0sUUFBUTtBQUNaLGVBQVMsSUFBSSxNQUFNLFNBQVYsQ0FBcUIsSUFBSSxNQUFNLE9BQVYsRUFBckIsRUFBMEMsSUFBSSxNQUFNLE9BQVYsRUFBMUMsQ0FERztBQUVaLGFBQU8sYUFGSztBQUdaLGNBQVEsY0FISTtBQUlaLGNBQVEsV0FKSTtBQUtaLGVBQVMsS0FMRztBQU1aLGVBQVMsS0FORztBQU9aLGNBQVEsSUFBSSxnQkFBSixFQVBJO0FBUVosbUJBQWE7QUFDWCxjQUFNLFNBREs7QUFFWCxlQUFPLFNBRkk7QUFHWCxlQUFPO0FBSEk7QUFSRCxLQUFkOztBQWVBLFVBQU0sS0FBTixDQUFZLEdBQVosQ0FBaUIsTUFBTSxNQUF2Qjs7QUFFQSxXQUFPLEtBQVA7QUFDRDs7QUFNRDs7OztBQUlBLE1BQU0sYUFBYSxrQkFBbkI7O0FBRUEsV0FBUyxnQkFBVCxHQUEyQjtBQUN6QixRQUFNLFFBQVEsSUFBSSxNQUFNLE9BQVYsQ0FBa0IsQ0FBQyxDQUFuQixFQUFxQixDQUFDLENBQXRCLENBQWQ7O0FBRUEsUUFBTSxRQUFRLGFBQWQ7QUFDQSxVQUFNLEtBQU4sR0FBYyxLQUFkO0FBQ0EsVUFBTSxpQkFBTixHQUEwQixJQUFJLE1BQU0sT0FBVixFQUExQjtBQUNBLFVBQU0sV0FBTixHQUFvQixJQUFJLE1BQU0sT0FBVixFQUFwQjtBQUNBLFVBQU0sVUFBTixHQUFtQixJQUFJLE1BQU0sS0FBVixFQUFuQjtBQUNBLFVBQU0sYUFBTixHQUFzQixFQUF0Qjs7QUFFQTtBQUNBLFVBQU0sV0FBTixHQUFvQixTQUFwQjs7QUFFQSxXQUFPLGdCQUFQLENBQXlCLFdBQXpCLEVBQXNDLFVBQVUsS0FBVixFQUFpQjtBQUNyRCxVQUFJLENBQUMsTUFBTSxPQUFYLEVBQW9CLE1BQU0sT0FBTixHQUFnQixLQUFoQixDQURpQyxDQUNUOztBQUU1QztBQUNBLFVBQUksYUFBSixFQUFtQjtBQUNqQixZQUFNLGFBQWEsY0FBYyxVQUFkLENBQXlCLHFCQUF6QixFQUFuQjtBQUNBLGNBQU0sQ0FBTixHQUFZLENBQUMsTUFBTSxPQUFOLEdBQWdCLFdBQVcsSUFBNUIsSUFBb0MsV0FBVyxLQUFqRCxHQUEwRCxDQUExRCxHQUE4RCxDQUF4RTtBQUNBLGNBQU0sQ0FBTixHQUFVLEVBQUksQ0FBQyxNQUFNLE9BQU4sR0FBZ0IsV0FBVyxHQUE1QixJQUFtQyxXQUFXLE1BQWxELElBQTRELENBQTVELEdBQWdFLENBQTFFO0FBQ0Q7QUFDRDtBQUxBLFdBTUs7QUFDSCxnQkFBTSxDQUFOLEdBQVksTUFBTSxPQUFOLEdBQWdCLE9BQU8sVUFBekIsR0FBd0MsQ0FBeEMsR0FBNEMsQ0FBdEQ7QUFDQSxnQkFBTSxDQUFOLEdBQVUsRUFBSSxNQUFNLE9BQU4sR0FBZ0IsT0FBTyxXQUEzQixJQUEyQyxDQUEzQyxHQUErQyxDQUF6RDtBQUNEO0FBRUYsS0FmRCxFQWVHLEtBZkg7O0FBaUJBLFdBQU8sZ0JBQVAsQ0FBeUIsV0FBekIsRUFBc0MsVUFBVSxLQUFWLEVBQWlCO0FBQ3JELFVBQUksTUFBTSxhQUFOLENBQW9CLE1BQXBCLEdBQTZCLENBQWpDLEVBQW9DO0FBQ2xDO0FBQ0E7QUFDQTtBQUNEO0FBQ0QsWUFBTSxPQUFOLEdBQWdCLElBQWhCLENBTnFELENBTS9CO0FBQ3JCO0FBQ0E7QUFDRCxZQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDRCxLQVZELEVBVUcsSUFWSDs7QUFZQSxXQUFPLGdCQUFQLENBQXlCLFNBQXpCLEVBQW9DLFVBQVUsS0FBVixFQUFpQjtBQUNuRCxZQUFNLE9BQU4sR0FBZ0IsS0FBaEI7QUFDRCxLQUZELEVBRUcsS0FGSDs7QUFLQSxXQUFPLEtBQVA7QUFDRDs7QUFNRDs7Ozs7Ozs7Ozs7QUFlQSxXQUFTLGNBQVQsQ0FBeUIsTUFBekIsRUFBaUM7QUFDL0IsUUFBTSxRQUFRLFlBQWEsTUFBYixDQUFkOztBQUVBLFVBQU0sS0FBTixDQUFZLE9BQVosR0FBc0IsVUFBVSxJQUFWLEVBQWdCO0FBQ3BDLFVBQU0sT0FBTyxNQUFNLGFBQW5CO0FBQ0E7QUFDQSxVQUFJLFFBQVEsSUFBUixJQUFpQixLQUFLLE1BQUwsR0FBYyxDQUFuQyxFQUF1QztBQUNyQyxjQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDQSxjQUFNLE9BQU4sR0FBZ0IsSUFBaEI7QUFDRCxPQUhELE1BR087QUFDTCxjQUFNLE9BQU4sR0FBZ0IsS0FBaEI7QUFDRDtBQUNGLEtBVEQ7O0FBV0EsVUFBTSxLQUFOLENBQVksT0FBWixHQUFzQixVQUFVLElBQVYsRUFBZ0I7QUFDcEMsWUFBTSxPQUFOLEdBQWdCLElBQWhCO0FBQ0QsS0FGRDs7QUFJQSxVQUFNLEtBQU4sQ0FBWSxNQUFaLEdBQXFCLE1BQU0sTUFBM0I7O0FBRUEsUUFBSSxNQUFNLGNBQU4sSUFBd0Isa0JBQWtCLE1BQU0sY0FBcEQsRUFBb0U7QUFDbEUseUJBQW9CLEtBQXBCLEVBQTJCLE1BQTNCLEVBQW1DLE1BQU0sS0FBTixDQUFZLE9BQS9DLEVBQXdELE1BQU0sS0FBTixDQUFZLE9BQXBFO0FBQ0Q7O0FBRUQsaUJBQWEsSUFBYixDQUFtQixLQUFuQjs7QUFFQSxXQUFPLE1BQU0sS0FBYjtBQUNEOztBQUtEOzs7O0FBSUEsV0FBUyxTQUFULENBQW9CLE1BQXBCLEVBQTRCLFlBQTVCLEVBQWtFO0FBQUEsUUFBeEIsR0FBd0IsdUVBQWxCLEdBQWtCO0FBQUEsUUFBYixHQUFhLHVFQUFQLEtBQU87O0FBQ2hFLFFBQU0sU0FBUyxzQkFBYztBQUMzQiw4QkFEMkIsRUFDZCwwQkFEYyxFQUNBLGNBREEsRUFDUSxRQURSLEVBQ2EsUUFEYjtBQUUzQixvQkFBYyxPQUFRLFlBQVI7QUFGYSxLQUFkLENBQWY7O0FBS0EsZ0JBQVksSUFBWixDQUFrQixNQUFsQjs7QUFFQSxXQUFPLE1BQVA7QUFDRDs7QUFFRCxXQUFTLFdBQVQsQ0FBc0IsTUFBdEIsRUFBOEIsWUFBOUIsRUFBNEM7QUFDMUMsUUFBTSxXQUFXLHdCQUFlO0FBQzlCLDhCQUQ4QixFQUNqQiwwQkFEaUIsRUFDSCxjQURHO0FBRTlCLG9CQUFjLE9BQVEsWUFBUjtBQUZnQixLQUFmLENBQWpCOztBQUtBLGdCQUFZLElBQVosQ0FBa0IsUUFBbEI7O0FBRUEsV0FBTyxRQUFQO0FBQ0Q7O0FBRUQsV0FBUyxTQUFULENBQW9CLE1BQXBCLEVBQTRCLFlBQTVCLEVBQTBDO0FBQ3hDLFFBQU0sU0FBUyxzQkFBYTtBQUMxQiw4QkFEMEIsRUFDYiwwQkFEYSxFQUNDO0FBREQsS0FBYixDQUFmOztBQUlBLGdCQUFZLElBQVosQ0FBa0IsTUFBbEI7QUFDQSxXQUFPLE1BQVA7QUFDRDs7QUFFRDs7Ozs7O0FBTUEsV0FBUyxjQUFULENBQXdCLElBQXhCLEVBQThCLEtBQTlCLEVBQXFDLElBQXJDLEVBQTJDLE1BQTNDLEVBQW1EO0FBQ2pELFFBQU0sU0FBUyxFQUFFLEdBQUcsSUFBTCxFQUFmO0FBQ0EsUUFBTSxlQUFlLEdBQXJCOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBTSxTQUFTLDJCQUFrQjtBQUMvQiw4QkFEK0IsRUFDbEIsY0FEa0IsRUFDViwwQkFEVSxFQUNJLFlBREosRUFDVyxVQURYLEVBQ2lCO0FBRGpCLEtBQWxCLENBQWY7QUFHQSxnQkFBWSxJQUFaLENBQWtCLE1BQWxCO0FBQ0EsV0FBTyxNQUFQO0FBQ0Q7O0FBRUQsV0FBUyxlQUFULENBQXlCLFFBQXpCLEVBQW1DLEtBQW5DLEVBQTBDLElBQTFDLEVBQWdELE1BQWhELEVBQXdEO0FBQ3RELFFBQU0sZUFBZSxFQUFyQjtBQUNBLFFBQU0sU0FBUywyQkFBa0I7QUFDL0IsOEJBRCtCLEVBQ2xCLGtCQURrQixFQUNSLDBCQURRLEVBQ00sWUFETixFQUNhLFVBRGIsRUFDbUI7QUFEbkIsS0FBbEIsQ0FBZjtBQUdBLGdCQUFZLElBQVosQ0FBaUIsTUFBakI7QUFDQSxXQUFPLE1BQVA7QUFDRDs7QUFFRDs7OztBQUlBLFdBQVMsbUJBQVQsQ0FBNkIsSUFBN0IsRUFBNEM7QUFDMUMsUUFBSSxVQUFVLE9BQU8sU0FBUCxDQUFpQixJQUFqQixJQUF5QixJQUF6QixHQUFnQyxDQUE5Qzs7QUFEMEMsc0NBQU4sSUFBTTtBQUFOLFVBQU07QUFBQTs7QUFFMUMsUUFBTSxVQUFVLElBQWhCO0FBQ0EsUUFBSSxDQUFDLE9BQU8sU0FBUCxDQUFpQixJQUFqQixDQUFMLEVBQTZCLFFBQVEsT0FBUixDQUFnQixJQUFoQjtBQUM3QixRQUFNLE9BQU8sK0JBQXNCLEVBQUMsd0JBQUQsRUFBYyxnQkFBZCxFQUF1QixTQUFTLE9BQWhDLEVBQXRCLENBQWI7QUFDQSxnQkFBWSxJQUFaLENBQWlCLElBQWpCO0FBQ0EsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsV0FBUyxXQUFULENBQXNCLFdBQXRCLEVBQW9DO0FBQ2xDLFFBQUksQ0FBQyxXQUFMLEVBQWtCLGNBQWMscUJBQUMsQ0FBRDtBQUFBLGFBQU8sUUFBUSxHQUFSLGNBQXVCLENBQXZCLENBQVA7QUFBQSxLQUFkO0FBQ2xCLFFBQU0sS0FBSyx3QkFBZSxFQUFDLHdCQUFELEVBQWMsd0JBQWQsRUFBZixDQUFYO0FBQ0EsZ0JBQVksSUFBWixDQUFpQixFQUFqQjtBQUNBLFdBQU8sRUFBUDtBQUNEOztBQUVELFdBQVMsVUFBVCxDQUFxQixNQUFyQixFQUE2QixZQUE3QixFQUE0QztBQUMxQyxRQUFNLE1BQU0sdUJBQWMsRUFBQyx3QkFBRCxFQUFjLGNBQWQsRUFBc0IsMEJBQXRCLEVBQWQsQ0FBWjtBQUNBLGdCQUFZLElBQVosQ0FBaUIsR0FBakI7QUFDQSxXQUFPLEdBQVA7QUFDRDs7QUFFRCxXQUFTLGNBQVQsQ0FBeUIsTUFBekIsRUFBaUMsWUFBakMsRUFBZ0Q7QUFDOUMsUUFBTSxNQUFNLDJCQUFrQixFQUFDLHdCQUFELEVBQWMsY0FBZCxFQUFzQiwwQkFBdEIsRUFBbEIsQ0FBWjtBQUNBLGdCQUFZLElBQVosQ0FBaUIsR0FBakI7QUFDQSxXQUFPLEdBQVA7QUFDRDs7QUFFRCxXQUFTLFdBQVQsQ0FBc0IsTUFBdEIsRUFBOEIsWUFBOUIsRUFBNEMsT0FBNUMsRUFBcUQ7QUFDbkQsUUFBTSxXQUFXLHdCQUFlO0FBQzlCLDhCQUQ4QixFQUNqQiwwQkFEaUIsRUFDSCxjQURHLEVBQ0s7QUFETCxLQUFmLENBQWpCOztBQUlBLGdCQUFZLElBQVosQ0FBa0IsUUFBbEI7QUFDQSxXQUFPLFFBQVA7QUFDRDs7QUFNRDs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsV0FBUyxHQUFULENBQWMsTUFBZCxFQUFzQixZQUF0QixFQUFvQyxJQUFwQyxFQUEwQyxJQUExQyxFQUFnRDs7QUFFOUMsUUFBSSxXQUFXLFNBQWYsRUFBMEI7QUFDeEIsYUFBTyxTQUFQO0FBQ0QsS0FGRCxNQUtBLElBQUksT0FBTyxRQUFYLEVBQXFCLE9BQU8sTUFBUDs7QUFFckIsUUFBSSxPQUFRLFlBQVIsTUFBMkIsU0FBL0IsRUFBMEM7QUFDeEMsY0FBUSxJQUFSLENBQWMsbUJBQWQsRUFBbUMsWUFBbkMsRUFBaUQsV0FBakQsRUFBOEQsTUFBOUQ7QUFDQSxhQUFPLElBQUksTUFBTSxLQUFWLEVBQVA7QUFDRDs7QUFFRCxRQUFJLFNBQVUsSUFBVixLQUFvQixRQUFTLElBQVQsQ0FBeEIsRUFBeUM7QUFDdkMsYUFBTyxZQUFhLE1BQWIsRUFBcUIsWUFBckIsRUFBbUMsSUFBbkMsQ0FBUDtBQUNEOztBQUVELFFBQUksU0FBVSxPQUFRLFlBQVIsQ0FBVixDQUFKLEVBQXVDO0FBQ3JDLGFBQU8sVUFBVyxNQUFYLEVBQW1CLFlBQW5CLEVBQWlDLElBQWpDLEVBQXVDLElBQXZDLENBQVA7QUFDRDs7QUFFRCxRQUFJLFVBQVcsT0FBUSxZQUFSLENBQVgsQ0FBSixFQUF3QztBQUN0QyxhQUFPLFlBQWEsTUFBYixFQUFxQixZQUFyQixDQUFQO0FBQ0Q7O0FBRUQsUUFBSSxXQUFZLE9BQVEsWUFBUixDQUFaLENBQUosRUFBMEM7QUFDeEMsYUFBTyxVQUFXLE1BQVgsRUFBbUIsWUFBbkIsQ0FBUDtBQUNEOztBQUVELFFBQUssU0FBVSxPQUFRLFlBQVIsQ0FBVixDQUFMLEVBQXlDO0FBQ3ZDLGFBQU8sV0FBWSxNQUFaLEVBQW9CLFlBQXBCLENBQVA7QUFDRDs7QUFFRCxRQUFLLFFBQVMsT0FBUSxZQUFSLENBQVQsQ0FBTCxFQUF3QztBQUN0QyxhQUFPLGVBQWdCLE1BQWhCLEVBQXdCLFlBQXhCLENBQVA7QUFDRDs7QUFFRDtBQUNBLFdBQU8sU0FBUDtBQUNEOztBQUdELFdBQVMsZUFBVCxHQUE0QztBQUFBLFFBQWxCLEdBQWtCLHVFQUFaLENBQVk7QUFBQSxRQUFULEdBQVMsdUVBQUgsQ0FBRzs7QUFDMUMsUUFBTSxRQUFRO0FBQ1osY0FBUTtBQURJLEtBQWQ7O0FBSUEsV0FBTyxVQUFXLEtBQVgsRUFBa0IsUUFBbEIsRUFBNEIsR0FBNUIsRUFBaUMsR0FBakMsQ0FBUDtBQUNEOztBQUVELFdBQVMsaUJBQVQsR0FBMEM7QUFBQSxRQUFkLE9BQWMsdUVBQUosRUFBSTs7QUFDeEMsUUFBTSxRQUFRO0FBQ1osY0FBUTtBQURJLEtBQWQ7O0FBSUEsUUFBSSxZQUFZLFNBQWhCLEVBQTJCO0FBQ3pCLFlBQU0sTUFBTixHQUFlLFFBQVMsT0FBVCxJQUFxQixRQUFTLENBQVQsQ0FBckIsR0FBb0MsUUFBUyxPQUFPLElBQVAsQ0FBWSxPQUFaLEVBQXFCLENBQXJCLENBQVQsQ0FBbkQ7QUFDRDs7QUFFRCxXQUFPLFlBQWEsS0FBYixFQUFvQixRQUFwQixFQUE4QixPQUE5QixDQUFQO0FBQ0Q7O0FBRUQsV0FBUyxpQkFBVCxHQUFtRDtBQUFBLFFBQXZCLGFBQXVCLHVFQUFQLEtBQU87O0FBQ2pELFFBQU0sUUFBUTtBQUNaLGVBQVM7QUFERyxLQUFkOztBQUlBLFdBQU8sWUFBYSxLQUFiLEVBQW9CLFNBQXBCLENBQVA7QUFDRDs7QUFFRCxXQUFTLGVBQVQsQ0FBMEIsRUFBMUIsRUFBOEI7QUFDNUIsUUFBTSxRQUFRO0FBQ1osY0FBUyxPQUFLLFNBQU4sR0FBbUIsRUFBbkIsR0FBd0IsWUFBVSxDQUFFO0FBRGhDLEtBQWQ7O0FBSUEsV0FBTyxVQUFXLEtBQVgsRUFBa0IsUUFBbEIsQ0FBUDtBQUNEOztBQUVEOzs7Ozs7OztBQVNBLFdBQVMsTUFBVCxHQUEwQjtBQUFBLHVDQUFOLElBQU07QUFBTixVQUFNO0FBQUE7O0FBQ3hCLFFBQUksc0NBQWMsSUFBSSxHQUFKLENBQVEsSUFBUixDQUFkLEVBQUosQ0FEd0IsQ0FDVztBQUNuQyxRQUFLLENBQUMsK0NBQWMsTUFBZCxFQUFOLEVBQThCLE9BQU8sS0FBUDtBQUM5QixXQUFPLE9BQVAsQ0FBZ0IsVUFBVSxHQUFWLEVBQWU7QUFDN0IsVUFBSSxJQUFJLFlBQVksT0FBWixDQUFxQixHQUFyQixDQUFSO0FBQ0EsVUFBSyxJQUFJLENBQUMsQ0FBVixFQUFhLFlBQVksTUFBWixDQUFvQixDQUFwQixFQUF1QixDQUF2QixFQUFiLEtBQ0s7QUFBRTtBQUNMLGdCQUFRLEdBQVIsQ0FBWSx3R0FBWjtBQUNBLGVBQU8sS0FBUDtBQUNEO0FBQ0YsS0FQRDtBQVFBLFdBQU8sSUFBUDtBQUNEOztBQUVEOzs7Ozs7O0FBU0EsV0FBUyxVQUFULEdBQStCO0FBQUEsdUNBQVAsSUFBTztBQUFQLFVBQU87QUFBQTs7QUFDN0IsU0FBSyxJQUFJLElBQUUsQ0FBWCxFQUFjLElBQUUsS0FBSyxNQUFyQixFQUE2QixHQUE3QixFQUFrQztBQUNoQyxVQUFJLE1BQU0sS0FBSyxDQUFMLENBQVY7QUFDQSxVQUFJLFlBQVksT0FBWixDQUFvQixHQUFwQixNQUE2QixDQUFDLENBQTlCLElBQW1DLENBQUMsSUFBSSxNQUFKLENBQVcsUUFBWCxDQUFvQixHQUFwQixDQUF4QyxFQUFrRTtBQUNoRTtBQUNBLGdCQUFRLEdBQVIsQ0FBWSw2QkFBNkIsR0FBekMsRUFGZ0UsQ0FFakI7QUFDL0MsZUFBTyxLQUFQO0FBQ0Q7QUFDRCxVQUFJLElBQUksUUFBUixFQUFrQjtBQUNoQixZQUFJLENBQUMsK0NBQWUsSUFBSSxXQUFuQixFQUFMLEVBQXVDLE9BQU8sS0FBUDtBQUN4QztBQUNGO0FBQ0QsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQ7Ozs7QUFJQSxXQUFTLFFBQVQsR0FBb0I7QUFDbEIsZ0JBQVksT0FBWixDQUFvQixhQUFLO0FBQ3ZCLFFBQUUsT0FBRixHQUFZLEtBQVosQ0FBbUIsSUFBSSxFQUFFLE1BQUYsSUFBWSxDQUFDLEVBQUUsTUFBRixDQUFTLFdBQTFCLEVBQXVDLEVBQUUsTUFBRixDQUFTLE1BQVQsQ0FBZ0IsQ0FBaEI7QUFDM0QsS0FGRDtBQUdBLGdCQUFZLE1BQVosQ0FBbUIsQ0FBbkIsRUFBc0IsWUFBWSxNQUFsQztBQUNEOztBQUdEOzs7Ozs7OztBQVVBLFdBQVMsTUFBVCxDQUFpQixJQUFqQixFQUF1QjtBQUNyQixRQUFNLFNBQVMsc0JBQWE7QUFDMUIsOEJBRDBCO0FBRTFCLGdCQUYwQjtBQUcxQixjQUFRLEdBSGtCO0FBSTFCLGlCQUFXLE1BSmU7QUFLMUIsMEJBQW9CO0FBQ2xCLG1CQUFXLGVBRE87QUFFbEIscUJBQWEsaUJBRks7QUFHbEIscUJBQWEsaUJBSEs7QUFJbEIsbUJBQVcsZUFKTztBQUtsQix3QkFBZ0IsY0FMRTtBQU1sQix5QkFBaUIsZUFOQztBQU9sQiw2QkFBcUIsbUJBUEg7QUFRbEIscUJBQWEsV0FSSztBQVNsQixvQkFBWTtBQVRNLE9BTE07QUFnQjFCLHlCQUFtQixXQWhCTztBQWlCMUI7QUFDQSxzQkFBZ0I7QUFsQlUsS0FBYixDQUFmOztBQXVCQSxnQkFBWSxJQUFaLENBQWtCLE1BQWxCOztBQUVBLFdBQU8sTUFBUDtBQUNEOztBQU1EOzs7O0FBSUEsTUFBTSxZQUFZLElBQUksTUFBTSxPQUFWLEVBQWxCO0FBQ0EsTUFBTSxhQUFhLElBQUksTUFBTSxPQUFWLENBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCLENBQUMsQ0FBMUIsQ0FBbkI7QUFDQSxNQUFNLFVBQVUsSUFBSSxNQUFNLE9BQVYsRUFBaEI7O0FBRUEsV0FBUyxNQUFULEdBQWtCO0FBQ2hCLFFBQU0saUJBQWlCLGdCQUFnQixXQUFXLFdBQVgsQ0FBdUIsb0JBQTlEO0FBQ0EsUUFBSSxVQUFKLEVBQWdCLHNCQUF1QixNQUF2Qjs7QUFFaEIsUUFBSSxpQkFBaUIsMEJBQXJCO0FBQ0EsUUFBTSxjQUFjLHVCQUFwQjtBQUNBLFFBQU0sVUFBVSxZQUFZLE1BQVosQ0FBbUI7QUFBQSxhQUFLLEVBQUUsTUFBRixLQUFhLENBQWxCO0FBQUEsS0FBbkIsQ0FBaEIsQ0FOZ0IsQ0FNeUM7QUFDekQsWUFBUSxPQUFSLENBQWdCLGFBQUs7QUFDbkIsUUFBRSxRQUFGLENBQVcsY0FBWCxHQUE0QixpQkFBaUIsV0FBVyxXQUE1QixHQUEwQyxLQUF0RTtBQUNBLFVBQUksRUFBRSx5QkFBTixFQUFpQztBQUMvQixVQUFFLGFBQUY7QUFDQSxVQUFFLHlCQUFGLEdBQThCLEtBQTlCLENBRitCLENBRU07QUFDdEM7QUFDRCxVQUFJLEVBQUUsUUFBRixDQUFXLGFBQWYsRUFBOEIsRUFBRSxhQUFGO0FBQy9CLEtBUEQ7O0FBU0EsUUFBSSxZQUFKLEVBQWtCO0FBQ2hCO0FBQ0EsaUJBQVcsYUFBWCxHQUEyQixrQkFBbUIsY0FBbkIsRUFBbUMsVUFBbkMsQ0FBM0I7QUFDRDs7QUFFRCxpQkFBYSxPQUFiLENBQXNCLFlBQXFFO0FBQUEscUZBQVgsRUFBVztBQUFBLFVBQTFELEdBQTBELFFBQTFELEdBQTBEO0FBQUEsVUFBdEQsTUFBc0QsUUFBdEQsTUFBc0Q7QUFBQSxVQUEvQyxPQUErQyxRQUEvQyxPQUErQztBQUFBLFVBQXZDLEtBQXVDLFFBQXZDLEtBQXVDO0FBQUEsVUFBakMsTUFBaUMsUUFBakMsTUFBaUM7QUFBQSxVQUExQixXQUEwQixRQUExQixXQUEwQjs7QUFBQSxVQUFQLEtBQU87O0FBQ3pGLGlDQUE0QixXQUE1QixFQUF5QyxjQUF6QztBQUNBLGFBQU8saUJBQVA7O0FBRUEsZ0JBQVUsR0FBVixDQUFjLENBQWQsRUFBZ0IsQ0FBaEIsRUFBa0IsQ0FBbEIsRUFBcUIscUJBQXJCLENBQTRDLE9BQU8sV0FBbkQ7QUFDQSxjQUFRLFFBQVIsR0FBbUIsZUFBbkIsQ0FBb0MsT0FBTyxXQUEzQzs7QUFFQSxpQkFBVyxHQUFYLENBQWUsQ0FBZixFQUFpQixDQUFqQixFQUFtQixDQUFDLENBQXBCO0FBQ0E7QUFDQTtBQUNBLFVBQUksT0FBTyxtQkFBWCxFQUFnQyxXQUFXLGVBQVgsQ0FBMkIsT0FBTyxtQkFBbEM7QUFDaEMsaUJBQVcsWUFBWCxDQUF5QixPQUF6QixFQUFtQyxTQUFuQzs7QUFFQSxjQUFRLEdBQVIsQ0FBYSxTQUFiLEVBQXdCLFVBQXhCOztBQUVBO0FBQ0EsVUFBTSxJQUFJLE1BQU0sUUFBTixDQUFlLFlBQWYsQ0FBNEIsVUFBNUIsRUFBd0MsS0FBbEQ7QUFDQSxRQUFFLENBQUYsSUFBTyxVQUFVLENBQWpCLENBQW9CLEVBQUUsQ0FBRixJQUFPLFVBQVUsQ0FBakIsQ0FBb0IsRUFBRSxDQUFGLElBQU8sVUFBVSxDQUFqQjs7QUFFeEM7QUFDQTs7QUFFQSxVQUFNLGdCQUFnQixRQUFRLGdCQUFSLENBQTBCLGNBQTFCLEVBQTBDLEtBQTFDLENBQXRCO0FBQ0EseUJBQW9CLGFBQXBCLEVBQW1DLEtBQW5DLEVBQTBDLE1BQTFDOztBQUVBLG1CQUFjLEtBQWQsRUFBc0IsYUFBdEIsR0FBc0MsYUFBdEM7QUFDQTtBQUNBLFVBQUksT0FBTyxRQUFYLEVBQXFCLE9BQU8sUUFBUCxDQUFnQixnQkFBaEIsR0FBbUMsYUFBbkM7QUFDdEIsS0E1QkQ7O0FBOEJBLFFBQU0sU0FBUyxhQUFhLEtBQWIsRUFBZjs7QUFFQSxRQUFJLFlBQUosRUFBa0I7QUFDaEIsYUFBTyxJQUFQLENBQWEsVUFBYjtBQUNEOztBQUVELGdCQUFZLE9BQVosQ0FBcUI7QUFBQSxhQUFLLEVBQUUsYUFBRixDQUFpQixNQUFqQixDQUFMO0FBQUEsS0FBckI7QUFDQTtBQUNBO0FBQ0EsUUFBSSxlQUFlLE9BQU8sTUFBUCxDQUFjO0FBQUEsYUFBUyxNQUFNLFdBQWY7QUFBQSxLQUFkLENBQW5CO0FBQ0EsUUFBSSxhQUFhLE1BQWIsSUFBdUIsQ0FBM0IsRUFBOEI7QUFDNUIsbUJBQWEsT0FBYixDQUFxQjtBQUFBLGVBQUssRUFBRSxXQUFGLEdBQWdCLEtBQXJCO0FBQUEsT0FBckIsRUFENEIsQ0FDc0I7QUFDbEQsY0FBUSxPQUFSLENBQWdCO0FBQUEsZUFBSyxFQUFFLGdCQUFGLEVBQUw7QUFBQSxPQUFoQixFQUY0QixDQUVnQjtBQUM3QztBQUNELGVBQVcsT0FBWCxHQUFxQixLQUFyQjtBQUNBLGlCQUFhLE9BQWIsQ0FBcUI7QUFBQSxhQUFHLEVBQUUsT0FBRixHQUFZLEtBQWY7QUFBQSxLQUFyQjtBQUNBLFdBQU8sV0FBVyxhQUFsQixDQW5FZ0IsQ0FtRWlCO0FBQ2xDOztBQUVEO0FBQ0E7QUFDQSxXQUFTLDBCQUFULENBQXFDLFlBQXJDLEVBQW1ELGNBQW5ELEVBQW9FO0FBQ2xFLEtBQUMsT0FBRCxFQUFVLE1BQVYsRUFBa0IsT0FBbEIsRUFBMkIsT0FBM0IsQ0FBb0MsMkJBQW1CO0FBQ3JELFVBQU0sY0FBYyxhQUFhLGVBQWIsQ0FBcEI7QUFDQSxVQUFJLGVBQWUsZUFBZSxPQUFmLENBQXVCLFlBQVksU0FBbkMsSUFBZ0QsQ0FBbkUsRUFBc0U7QUFDcEUscUJBQWEsZUFBYixJQUFnQyxTQUFoQztBQUNBO0FBQ0Esb0JBQVksTUFBWixDQUFvQixFQUFwQjtBQUNEO0FBQ0YsS0FQRDtBQVFEOztBQUVELFdBQVMsV0FBVCxDQUFzQixLQUF0QixFQUE2QixLQUE3QixFQUFvQztBQUNsQyxRQUFNLEtBQUssTUFBTSxRQUFOLENBQWUsWUFBZixDQUE0QixVQUE1QixFQUF3QyxLQUFuRDtBQUNBLE9BQUcsQ0FBSCxJQUFRLE1BQU0sQ0FBZDtBQUNBLE9BQUcsQ0FBSCxJQUFRLE1BQU0sQ0FBZDtBQUNBLE9BQUcsQ0FBSCxJQUFRLE1BQU0sQ0FBZDtBQUNBLE9BQUcsV0FBSCxHQUFpQixJQUFqQjtBQUNBO0FBQ0EsVUFBTSxPQUFOLEdBQWdCLElBQWhCO0FBQ0EsVUFBTSxRQUFOLENBQWUscUJBQWY7QUFDQSxVQUFNLFFBQU4sQ0FBZSxrQkFBZjtBQUNBO0FBQ0Q7O0FBRUQsV0FBUyxrQkFBVCxDQUE2QixhQUE3QixFQUE0QyxLQUE1QyxFQUFtRCxNQUFuRCxFQUEyRDtBQUN6RCxRQUFJLGNBQWMsTUFBZCxHQUF1QixDQUEzQixFQUE4QjtBQUM1QixVQUFNLFdBQVcsY0FBZSxDQUFmLENBQWpCO0FBQ0Esa0JBQWEsS0FBYixFQUFvQixTQUFTLEtBQTdCO0FBQ0EsYUFBTyxRQUFQLENBQWdCLElBQWhCLENBQXNCLFNBQVMsS0FBL0I7QUFDQSxhQUFPLE9BQVAsR0FBaUIsSUFBakI7QUFDQSxhQUFPLGlCQUFQO0FBQ0QsS0FORCxNQU9JO0FBQ0YsWUFBTSxPQUFOLEdBQWdCLEtBQWhCO0FBQ0EsYUFBTyxPQUFQLEdBQWlCLEtBQWpCO0FBQ0Q7QUFDRjs7QUFFRCxXQUFTLHNCQUFULENBQWlDLFlBQWpDLEVBQStDLEtBQS9DLEVBQXNELE1BQXRELEVBQThEO0FBQzVELFdBQU8sUUFBUCxDQUFnQixJQUFoQixDQUFzQixZQUF0QjtBQUNBLGdCQUFhLEtBQWIsRUFBb0IsT0FBTyxRQUEzQjtBQUNEOztBQUVELFdBQVMsd0JBQVQsQ0FBbUMsT0FBbkMsRUFBNEMsS0FBNUMsRUFBbUQsTUFBbkQsRUFBMkQ7QUFDekQsWUFBUSxhQUFSLENBQXVCLEtBQXZCLEVBQThCLE1BQTlCO0FBQ0EsUUFBTSxpQkFBaUIsMEJBQXZCO0FBQ0EsV0FBTyxRQUFRLGdCQUFSLENBQTBCLGNBQTFCLEVBQTBDLEtBQTFDLENBQVA7QUFDRDs7QUFFRCxXQUFTLG9CQUFULENBQStCLE9BQS9CLEVBQXdDLENBQXhDLEVBQTJDLEtBQTNDLEVBQWtEO0FBQ2hELFdBQU8sUUFBUSxHQUFSLENBQVksY0FBWixDQUE0QixLQUE1QixFQUFtQyxDQUFuQyxDQUFQO0FBQ0Q7O0FBRUQsV0FBUyxpQkFBVCxDQUE0QixjQUE1QixFQUFtSDtBQUFBLG9GQUFKLEVBQUk7QUFBQSxRQUF0RSxHQUFzRSxTQUF0RSxHQUFzRTtBQUFBLFFBQWxFLE1BQWtFLFNBQWxFLE1BQWtFO0FBQUEsUUFBM0QsT0FBMkQsU0FBM0QsT0FBMkQ7QUFBQSxRQUFuRCxLQUFtRCxTQUFuRCxLQUFtRDtBQUFBLFFBQTdDLE1BQTZDLFNBQTdDLE1BQTZDO0FBQUEsUUFBdEMsS0FBc0MsU0FBdEMsS0FBc0M7QUFBQSxRQUFoQyxXQUFnQyxTQUFoQyxXQUFnQztBQUFBLFFBQW5CLFdBQW1CLFNBQW5CLFdBQW1COztBQUNqSCwrQkFBNEIsV0FBNUIsRUFBeUMsY0FBekM7QUFDQSxRQUFJLGdCQUFnQixFQUFwQjs7QUFFQSxRQUFJLFdBQUosRUFBaUI7QUFDZixzQkFBZ0IseUJBQTBCLE9BQTFCLEVBQW1DLEtBQW5DLEVBQTBDLFdBQTFDLENBQWhCO0FBQ0EseUJBQW9CLGFBQXBCLEVBQW1DLEtBQW5DLEVBQTBDLE1BQTFDO0FBQ0EsYUFBTyxPQUFQLEdBQWlCLElBQWpCO0FBQ0EsWUFBTSxPQUFOLEdBQWdCLElBQWhCO0FBQ0Q7O0FBRUQsV0FBTyxhQUFQO0FBQ0Q7O0FBRUQ7O0FBS0E7Ozs7QUFJQSxNQUFNLGtCQUFrQjtBQUN0QixrQkFEc0I7QUFFdEIsa0NBRnNCO0FBR3RCLDRCQUhzQjtBQUl0Qiw4QkFKc0I7QUFLdEIsNEJBTHNCLEVBS1Q7QUFDYiwyQ0FOc0I7QUFPdEIsc0JBUHNCO0FBUXRCO0FBUnNCLEdBQXhCO0FBVUE7QUFDQTtBQUNBO0FBQ0EsU0FBTyxjQUFQLENBQXVCLGVBQXZCLEVBQXdDLFlBQXhDLEVBQXNELEVBQUUsS0FBSztBQUFBLGFBQUssVUFBTDtBQUFBLEtBQVAsRUFBd0IsS0FBSztBQUFBLGFBQUssYUFBYSxDQUFsQjtBQUFBLEtBQTdCLEVBQXREO0FBQ0EsU0FBTyxlQUFQO0FBRUQsQ0E5c0JjLEVBQWY7O0FBZ3RCQSxJQUFJLE1BQUosRUFBWTtBQUNWLE1BQUksT0FBTyxHQUFQLEtBQWUsU0FBbkIsRUFBOEI7QUFDNUIsV0FBTyxHQUFQLEdBQWEsRUFBYjtBQUNEOztBQUVELFNBQU8sR0FBUCxDQUFXLEtBQVgsR0FBbUIsS0FBbkI7QUFDRDs7QUFFRCxJQUFJLE1BQUosRUFBWTtBQUNWLFNBQU8sT0FBUCxHQUFpQjtBQUNmLFNBQUs7QUFEVSxHQUFqQjtBQUdEOztBQUVELElBQUcsT0FBTyxNQUFQLEtBQWtCLFVBQWxCLElBQWdDLE9BQU8sR0FBMUMsRUFBK0M7QUFDN0MsU0FBTyxFQUFQLEVBQVcsS0FBWDtBQUNEOztBQUVEOzs7O0FBSUEsU0FBUyxRQUFULENBQWtCLENBQWxCLEVBQXFCO0FBQ25CLFNBQU8sQ0FBQyxNQUFNLFdBQVcsQ0FBWCxDQUFOLENBQUQsSUFBeUIsU0FBUyxDQUFULENBQWhDO0FBQ0Q7O0FBRUQsU0FBUyxTQUFULENBQW1CLENBQW5CLEVBQXFCO0FBQ25CLFNBQU8sT0FBTyxDQUFQLEtBQWEsU0FBcEI7QUFDRDs7QUFFRCxTQUFTLFVBQVQsQ0FBb0IsZUFBcEIsRUFBcUM7QUFDbkMsTUFBTSxVQUFVLEVBQWhCO0FBQ0EsU0FBTyxtQkFBbUIsUUFBUSxRQUFSLENBQWlCLElBQWpCLENBQXNCLGVBQXRCLE1BQTJDLG1CQUFyRTtBQUNEOztBQUVEO0FBQ0E7QUFDQSxTQUFTLFFBQVQsQ0FBbUIsSUFBbkIsRUFBeUI7QUFDdkIsU0FBUSxRQUFPLElBQVAseUNBQU8sSUFBUCxPQUFnQixRQUFoQixJQUE0QixDQUFDLE1BQU0sT0FBTixDQUFjLElBQWQsQ0FBN0IsSUFBb0QsU0FBUyxJQUFyRTtBQUNEOztBQUVELFNBQVMsT0FBVCxDQUFrQixDQUFsQixFQUFxQjtBQUNuQixTQUFPLE1BQU0sT0FBTixDQUFlLENBQWYsQ0FBUDtBQUNEOztBQUVELFNBQVMsUUFBVCxDQUFtQixDQUFuQixFQUFzQjtBQUNwQixTQUFPLE9BQU8sQ0FBUCxLQUFhLFFBQXBCO0FBQ0Q7O0FBRUQsU0FBUyxPQUFULENBQWtCLENBQWxCLEVBQXFCO0FBQ25CLE1BQUksUUFBTyxDQUFQLHlDQUFPLENBQVAsT0FBYSxRQUFqQixFQUEyQixPQUFPLEtBQVA7QUFDM0IsU0FBTyxFQUFFLE9BQUYsR0FBWSxJQUFaLEdBQW1CLEtBQTFCO0FBQ0Q7O0FBSUQ7Ozs7QUFJQSxTQUFTLGtCQUFULENBQTZCLEtBQTdCLEVBQW9DLFVBQXBDLEVBQWdELE9BQWhELEVBQXlELE9BQXpELEVBQWtFO0FBQ2hFLGFBQVcsZ0JBQVgsQ0FBNkIsYUFBN0IsRUFBNEM7QUFBQSxXQUFJLFFBQVMsSUFBVCxDQUFKO0FBQUEsR0FBNUM7QUFDQSxhQUFXLGdCQUFYLENBQTZCLFdBQTdCLEVBQTBDO0FBQUEsV0FBSSxRQUFTLEtBQVQsQ0FBSjtBQUFBLEdBQTFDO0FBQ0EsYUFBVyxnQkFBWCxDQUE2QixXQUE3QixFQUEwQztBQUFBLFdBQUksUUFBUyxJQUFULENBQUo7QUFBQSxHQUExQztBQUNBLGFBQVcsZ0JBQVgsQ0FBNkIsU0FBN0IsRUFBd0M7QUFBQSxXQUFJLFFBQVMsS0FBVCxDQUFKO0FBQUEsR0FBeEM7O0FBRUEsTUFBTSxVQUFVLFdBQVcsVUFBWCxFQUFoQjtBQUNBLFdBQVMsT0FBVCxDQUFrQixDQUFsQixFQUFxQixDQUFyQixFQUF3QjtBQUN0QixRQUFJLFdBQVcsUUFBUSxlQUFuQixJQUFzQyxRQUFRLGVBQVIsQ0FBd0IsTUFBeEIsR0FBaUMsQ0FBM0UsRUFBOEU7QUFDNUUsY0FBUSxlQUFSLENBQXlCLENBQXpCLEVBQTZCLEtBQTdCLENBQW9DLENBQXBDLEVBQXVDLENBQXZDO0FBQ0Q7QUFDRjs7QUFFRCxXQUFTLFVBQVQsR0FBcUI7QUFDbkIscUJBQWtCLFVBQUMsQ0FBRCxFQUFHLENBQUgsRUFBSyxDQUFMO0FBQUEsYUFBUyxRQUFRLElBQUUsQ0FBVixFQUFhLEdBQWIsQ0FBVDtBQUFBLEtBQWxCLEVBQThDLEVBQTlDLEVBQWtELEVBQWxEO0FBQ0Q7O0FBRUQsV0FBUyxXQUFULEdBQXNCO0FBQ3BCLHFCQUFrQixVQUFDLENBQUQsRUFBRyxDQUFILEVBQUssQ0FBTDtBQUFBLGFBQVMsUUFBUSxDQUFSLEVBQVcsT0FBTyxJQUFFLENBQVQsQ0FBWCxDQUFUO0FBQUEsS0FBbEIsRUFBb0QsR0FBcEQsRUFBeUQsQ0FBekQ7QUFDRDs7QUFFRCxRQUFNLE1BQU4sQ0FBYSxFQUFiLENBQWlCLGtCQUFqQixFQUFxQyxVQUFVLEtBQVYsRUFBaUI7QUFDcEQsWUFBUyxHQUFULEVBQWMsR0FBZDtBQUNELEdBRkQ7O0FBSUEsUUFBTSxNQUFOLENBQWEsRUFBYixDQUFpQixTQUFqQixFQUE0QixZQUFVO0FBQ3BDO0FBQ0QsR0FGRDs7QUFJQSxRQUFNLE1BQU4sQ0FBYSxFQUFiLENBQWlCLGNBQWpCLEVBQWlDLFlBQVU7QUFDekM7QUFDRCxHQUZEOztBQUlBLFFBQU0sTUFBTixDQUFhLEVBQWIsQ0FBaUIsUUFBakIsRUFBMkIsWUFBVTtBQUNuQztBQUNELEdBRkQ7O0FBSUEsUUFBTSxNQUFOLENBQWEsRUFBYixDQUFpQixhQUFqQixFQUFnQyxZQUFVO0FBQ3hDO0FBQ0QsR0FGRDtBQU1EOztBQUVELFNBQVMsZ0JBQVQsQ0FBMkIsRUFBM0IsRUFBK0IsS0FBL0IsRUFBc0MsS0FBdEMsRUFBNkM7QUFDM0MsTUFBSSxJQUFJLENBQVI7QUFDQSxNQUFJLEtBQUssWUFBYSxZQUFVO0FBQzlCLE9BQUksQ0FBSixFQUFPLEtBQVAsRUFBYyxJQUFFLEtBQWhCO0FBQ0E7QUFDQSxRQUFJLEtBQUcsS0FBUCxFQUFjO0FBQ1osb0JBQWUsRUFBZjtBQUNEO0FBQ0YsR0FOUSxFQU1OLEtBTk0sQ0FBVDtBQU9BLFNBQU8sRUFBUDtBQUNEOzs7Ozs7Ozs7a0JDLzBCdUIsaUI7O0FBTHhCOzs7O0FBQ0E7Ozs7QUFuQkE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCTyxJQUFNLHNDQUFlLElBQUksZ0JBQUosRUFBckI7O0FBRVEsU0FBUyxpQkFBVCxDQUE0QixTQUE1QixFQUF1QztBQUNwRCxNQUFNLFNBQVMsSUFBSSxnQkFBSixFQUFmOztBQUVBLE1BQUksV0FBVyxLQUFmO0FBQ0EsTUFBSSxjQUFjLEtBQWxCO0FBQ0EsTUFBSSxZQUFZLEtBQWhCOztBQUVBLE1BQU0sVUFBVSxJQUFJLE1BQU0sT0FBVixFQUFoQjtBQUNBLE1BQU0sa0JBQWtCLEVBQXhCOztBQUVBLFdBQVMsTUFBVCxDQUFpQixZQUFqQixFQUErQjs7QUFFN0IsZUFBVyxLQUFYO0FBQ0Esa0JBQWMsS0FBZDtBQUNBLGdCQUFZLEtBQVo7O0FBRUEsaUJBQWEsT0FBYixDQUFzQixVQUFVLEtBQVYsRUFBaUI7O0FBRXJDLFVBQUksZ0JBQWdCLE9BQWhCLENBQXlCLEtBQXpCLElBQW1DLENBQXZDLEVBQTBDO0FBQ3hDLHdCQUFnQixJQUFoQixDQUFzQixLQUF0QjtBQUNEOztBQUpvQyx3QkFNTCxXQUFZLEtBQVosQ0FOSztBQUFBLFVBTTdCLFNBTjZCLGVBTTdCLFNBTjZCO0FBQUEsVUFNbEIsUUFOa0IsZUFNbEIsUUFOa0I7O0FBUXJDLFVBQUksUUFBUSxjQUFjLFNBQTFCO0FBQ0EsaUJBQVcsWUFBWSxLQUF2Qjs7QUFJQSx5QkFBbUI7QUFDakIsb0JBRGlCO0FBRWpCLG9CQUZpQjtBQUdqQiw0QkFIaUIsRUFHTixrQkFITTtBQUlqQixvQkFBWSxTQUpLO0FBS2pCLHlCQUFpQixTQUxBLEVBS1c7QUFDNUIseUJBQWlCLE9BTkE7QUFPakIsa0JBQVUsV0FQTztBQVFqQixrQkFBVSxVQVJPO0FBU2pCLGdCQUFRLFlBVFM7QUFVaEI7QUFDQTtBQUNBO0FBQ0QsbUJBQVc7QUFiTSxPQUFuQjs7QUFnQkEseUJBQW1CO0FBQ2pCLG9CQURpQjtBQUVqQixvQkFGaUI7QUFHakIsNEJBSGlCLEVBR04sa0JBSE07QUFJakIsb0JBQVksU0FKSztBQUtqQix5QkFBaUIsTUFMQTtBQU1qQixrQkFBVSxXQU5PO0FBT2pCLGtCQUFVLFVBUE87QUFRakIsZ0JBQVE7QUFSUyxPQUFuQjs7QUFXQSxhQUFPLElBQVAsQ0FBYSxNQUFiLEVBQXFCO0FBQ25CLG9CQURtQjtBQUVuQiw0QkFGbUI7QUFHbkIscUJBQWEsTUFBTTtBQUhBLE9BQXJCO0FBTUQsS0E5Q0Q7QUFnREQ7O0FBRUQsV0FBUyxVQUFULENBQXFCLEtBQXJCLEVBQTRCO0FBQzFCLFFBQUksTUFBTSxhQUFOLENBQW9CLE1BQXBCLElBQThCLENBQWxDLEVBQXFDO0FBQ25DLGFBQU87QUFDTCxrQkFBVSxRQUFRLHFCQUFSLENBQStCLE1BQU0sTUFBTixDQUFhLFdBQTVDLEVBQTBELEtBQTFELEVBREwsRUFDd0U7QUFDN0UsbUJBQVc7QUFGTixPQUFQO0FBSUQsS0FMRCxNQU1JO0FBQ0YsYUFBTztBQUNMLGtCQUFVLE1BQU0sYUFBTixDQUFxQixDQUFyQixFQUF5QixLQUQ5QjtBQUVMLG1CQUFXLE1BQU0sYUFBTixDQUFxQixDQUFyQixFQUF5QjtBQUYvQixPQUFQO0FBSUQ7QUFDRjs7QUFFRCxXQUFTLGtCQUFULEdBSVE7QUFBQSxtRkFBSixFQUFJO0FBQUEsUUFITixLQUdNLFFBSE4sS0FHTTtBQUFBLFFBSEMsS0FHRCxRQUhDLEtBR0Q7QUFBQSxRQUZOLFNBRU0sUUFGTixTQUVNO0FBQUEsUUFGSyxRQUVMLFFBRkssUUFFTDtBQUFBLFFBRE4sVUFDTSxRQUROLFVBQ007QUFBQSxRQURNLGVBQ04sUUFETSxlQUNOO0FBQUEsUUFEdUIsZUFDdkIsUUFEdUIsZUFDdkI7QUFBQSxRQUR3QyxRQUN4QyxRQUR3QyxRQUN4QztBQUFBLFFBRGtELFFBQ2xELFFBRGtELFFBQ2xEO0FBQUEsUUFENEQsTUFDNUQsUUFENEQsTUFDNUQ7QUFBQSxRQURvRSxTQUNwRSxRQURvRSxTQUNwRTs7QUFFTixRQUFJLE1BQU8sVUFBUCxNQUF3QixJQUF4QixJQUFnQyxjQUFjLFNBQWxELEVBQTZEO0FBQzNEO0FBQ0E7QUFDQSxZQUFNLFdBQU4sR0FBb0IsSUFBcEI7QUFDQTtBQUNEOztBQUVEO0FBQ0EsUUFBSSxhQUFhLEtBQWIsSUFBc0IsTUFBTyxVQUFQLE1BQXdCLEtBQWxELEVBQTBEO0FBQ3hELFVBQU0sVUFBVTtBQUNkLG9CQURjO0FBRWQsNEJBRmM7QUFHZCxlQUFPLFFBSE87QUFJZCxxQkFBYSxNQUFNLE1BSkw7QUFLZCxnQkFBUTtBQUxNLE9BQWhCO0FBT0EsYUFBTyxJQUFQLENBQWEsU0FBYixFQUF3QixPQUF4QjtBQUNEOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBSSxTQUFTLE1BQU8sbUJBQW1CLFVBQTFCLE1BQTJDLElBQXBELElBQTRELE1BQU0sV0FBTixDQUFtQixlQUFuQixNQUF5QyxTQUF6RyxFQUFvSDs7QUFFbEgsVUFBTSxXQUFVO0FBQ2Qsb0JBRGM7QUFFZCw0QkFGYztBQUdkLGVBQU8sUUFITztBQUlkLHFCQUFhLE1BQU0sTUFKTDtBQUtkLGdCQUFRO0FBTE0sT0FBaEI7O0FBUUE7QUFDQSxVQUFJLENBQUMsVUFBVSxRQUFWLENBQW1CLFdBQXhCLEVBQXFDLE1BQU0sV0FBTixHQUFvQixJQUFwQjs7QUFFckMsb0JBQWMsU0FBZDs7QUFFQTtBQUNBLG1CQUFhLElBQWIsQ0FBbUIsUUFBbkIsRUFBNkIsUUFBN0I7QUFDQSxhQUFPLElBQVAsQ0FBYSxRQUFiLEVBQXVCLFFBQXZCOztBQUVBLFVBQUksU0FBUSxNQUFaLEVBQW9CO0FBQ2xCLGNBQU0sV0FBTixDQUFtQixlQUFuQixJQUF1QyxXQUF2QztBQUNBLGNBQU0sV0FBTixDQUFrQixLQUFsQixHQUEwQixXQUExQjtBQUNEOztBQUVELG9CQUFjLElBQWQ7QUFDQSxrQkFBWSxJQUFaO0FBQ0Q7O0FBRUQ7QUFDQSxRQUFJLE1BQU8sVUFBUCxLQUF1QixNQUFNLFdBQU4sQ0FBbUIsZUFBbkIsTUFBeUMsV0FBcEUsRUFBaUY7QUFDL0UsVUFBTSxZQUFVO0FBQ2Qsb0JBRGM7QUFFZCw0QkFGYztBQUdkLGVBQU8sUUFITztBQUlkLHFCQUFhLE1BQU0sTUFKTDtBQUtkLGdCQUFRO0FBTE0sT0FBaEI7O0FBUUEsYUFBTyxJQUFQLENBQWEsUUFBYixFQUF1QixTQUF2Qjs7QUFFQSxvQkFBYyxJQUFkOztBQUVBLFlBQU0sTUFBTixDQUFhLElBQWIsQ0FBbUIsa0JBQW5CO0FBQ0Q7O0FBRUQ7QUFDQSxRQUFJLE1BQU8sVUFBUCxNQUF3QixLQUF4QixJQUFpQyxNQUFNLFdBQU4sQ0FBbUIsZUFBbkIsTUFBeUMsV0FBOUUsRUFBMkY7QUFDekYsWUFBTSxXQUFOLENBQW1CLGVBQW5CLElBQXVDLFNBQXZDO0FBQ0EsWUFBTSxXQUFOLENBQWtCLEtBQWxCLEdBQTBCLFNBQTFCO0FBQ0EsYUFBTyxJQUFQLENBQWEsTUFBYixFQUFxQjtBQUNuQixvQkFEbUI7QUFFbkIsNEJBRm1CO0FBR25CLGVBQU8sUUFIWTtBQUluQixxQkFBYSxNQUFNO0FBSkEsT0FBckI7QUFNRDtBQUVGOztBQUVELFdBQVMsYUFBVCxDQUF1QixTQUF2QixFQUFrQztBQUNoQyxRQUFNLFlBQVksOEJBQWtCLFNBQWxCLENBQWxCO0FBQ0EsY0FBVSxhQUFWO0FBQ0Q7O0FBRUQsV0FBUyxXQUFULEdBQXNCOztBQUVwQixRQUFJLGNBQWMsSUFBbEI7QUFDQSxTQUFLLElBQUksSUFBRSxDQUFYLEVBQWMsSUFBRSxnQkFBZ0IsTUFBaEMsRUFBd0MsR0FBeEMsRUFBNkM7QUFDM0MsVUFBSSxnQkFBaUIsQ0FBakIsRUFBcUIsV0FBckIsQ0FBaUMsS0FBakMsS0FBMkMsU0FBL0MsRUFBMEQ7QUFDeEQsc0JBQWMsS0FBZDtBQUNBO0FBQ0Q7QUFDRjs7QUFFRCxRQUFJLFdBQUosRUFBaUI7QUFDZixhQUFPLFFBQVA7QUFDRDs7QUFFRCxRQUFJLGdCQUFnQixNQUFoQixDQUF3QixVQUFVLEtBQVYsRUFBaUI7QUFDM0MsYUFBTyxNQUFNLFdBQU4sQ0FBa0IsS0FBbEIsS0FBNEIsV0FBbkM7QUFDRCxLQUZHLEVBRUQsTUFGQyxHQUVRLENBRlosRUFFZTtBQUNiLGFBQU8sSUFBUDtBQUNEOztBQUVELFdBQU8sS0FBUDtBQUNEOztBQUdELE1BQU0sY0FBYztBQUNsQixjQUFVLFdBRFE7QUFFbEIsY0FBVTtBQUFBLGFBQUksV0FBSjtBQUFBLEtBRlE7QUFHbEIsa0JBSGtCO0FBSWxCLGtCQUprQjtBQUtsQjtBQUxrQixHQUFwQjs7QUFRQSxTQUFPLFdBQVA7QUFDRDs7Ozs7Ozs7a0JDdk51QixjOztBQUp4Qjs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVlLFNBQVMsY0FBVCxHQUdQO0FBQUEsbUZBQUosRUFBSTtBQUFBLFFBRkosV0FFSSxRQUZKLFdBRUk7QUFBQSxRQURKLFdBQ0ksUUFESixXQUNJOztBQUNKLFFBQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkO0FBQ0EsUUFBTSxrQkFBa0IsSUFBSSxNQUFNLEtBQVYsRUFBeEI7QUFDQSxVQUFNLEdBQU4sQ0FBVSxlQUFWOztBQUVBLFFBQU0sU0FBUyxJQUFJLGdCQUFKLEVBQWY7QUFDQSxXQUFPLEVBQVAsQ0FBVSxTQUFWLEVBQXFCLFdBQXJCOztBQUVBLFFBQU0sYUFBYSxvREFBb0QsS0FBcEQsQ0FBMEQsRUFBMUQsQ0FBbkI7QUFDQSxRQUFJLFVBQVUsV0FBVyxHQUFYLENBQWUsYUFBSztBQUM5QixlQUFPLEVBQUUsTUFBTTtBQUFBLHVCQUFNLE9BQU8sSUFBUCxDQUFZLFNBQVosRUFBdUIsQ0FBdkIsQ0FBTjtBQUFBLGFBQVIsRUFBeUMsTUFBTSxDQUEvQyxFQUFQO0FBQ0gsS0FGYSxDQUFkO0FBR0EsUUFBTSxZQUFZLCtCQUFzQixFQUFDLHdCQUFELEVBQWMsZ0JBQWQsRUFBdUIsU0FBUyxFQUFoQyxFQUF0QixDQUFsQjtBQUNBLG9CQUFnQixHQUFoQixDQUFvQixTQUFwQjs7QUFFQSxRQUFNLGFBQWEsb0RBQW9ELEtBQXBELENBQTBELEVBQTFELENBQW5CO0FBQ0EsY0FBVSxXQUFXLEdBQVgsQ0FBZSxhQUFLO0FBQzFCLGVBQU8sRUFBRSxNQUFNO0FBQUEsdUJBQU0sT0FBTyxJQUFQLENBQVksU0FBWixFQUF1QixDQUF2QixDQUFOO0FBQUEsYUFBUixFQUF5QyxNQUFNLENBQS9DLEVBQVA7QUFDSCxLQUZTLENBQVY7QUFHQSxRQUFNLFlBQVksK0JBQXNCLEVBQUMsd0JBQUQsRUFBYyxnQkFBZCxFQUF1QixTQUFTLEVBQWhDLEVBQXRCLENBQWxCO0FBQ0EsY0FBVSxPQUFWLEdBQW9CLEtBQXBCO0FBQ0Esb0JBQWdCLEdBQWhCLENBQW9CLFNBQXBCOztBQUVBLFFBQUksUUFBUSxLQUFaO0FBQ0EsYUFBUyxXQUFULEdBQXVCO0FBQ25CLGdCQUFRLENBQUMsS0FBVDtBQUNBLGtCQUFVLE9BQVYsR0FBb0IsQ0FBQyxLQUFyQjtBQUNBLGtCQUFVLE9BQVYsR0FBb0IsS0FBcEI7QUFDSjs7QUFFRCxRQUFNLFdBQVcsK0JBQXNCLEVBQUUsd0JBQUYsRUFBZSxTQUFTLENBQXhCLEVBQTJCLFdBQVcsR0FBdEMsRUFBMkMsU0FBUyxDQUN2RixFQUFDLE1BQU07QUFBQSx1QkFBSSxPQUFPLElBQVAsQ0FBWSxTQUFaLEVBQXVCLEdBQXZCLENBQUo7QUFBQSxhQUFQLEVBQXdDLE1BQU0sT0FBOUMsRUFEdUYsQ0FBcEQsRUFBdEIsQ0FBakI7QUFHQyxvQkFBZ0IsR0FBaEIsQ0FBb0IsUUFBcEI7QUFDQSxRQUFJLElBQUksU0FBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLENBQUMsR0FBRCxJQUFRLFVBQVUsT0FBVixHQUFvQixTQUFTLE9BQXJDLENBQTlCOztBQUVBLGNBQVUsQ0FDTixFQUFFLE1BQU0sT0FBUixFQUFpQixNQUFNLFdBQXZCLEVBRE0sRUFFTixFQUFFLE1BQU0sV0FBUixFQUFxQixNQUFNO0FBQUEsbUJBQU0sT0FBTyxJQUFQLENBQVksU0FBWixFQUF1QixJQUF2QixDQUFOO0FBQUEsU0FBM0IsRUFGTSxFQUdOLEVBQUUsTUFBTSxPQUFSLEVBQWlCLE1BQU07QUFBQSxtQkFBTSxPQUFPLElBQVAsQ0FBWSxTQUFaLEVBQXVCLElBQXZCLENBQU47QUFBQSxTQUF2QixFQUhNLENBQVY7QUFLQSxRQUFNLGNBQWMsK0JBQXNCLEVBQUMsd0JBQUQsRUFBYyxnQkFBZCxFQUF1QixTQUFTLENBQWhDLEVBQW1DLFdBQVcsR0FBOUMsRUFBdEIsQ0FBcEI7QUFDQSxvQkFBZ0IsR0FBaEIsQ0FBb0IsV0FBcEI7QUFDQSxnQkFBWSxRQUFaLENBQXFCLENBQXJCLEdBQXlCLElBQUUsT0FBTyxTQUFTLE9BQVQsR0FBbUIsWUFBWSxPQUF0QyxDQUEzQjtBQUNBLFVBQU0sT0FBTixHQUFnQixVQUFVLE9BQVYsR0FBb0IsU0FBUyxPQUE3QixHQUF1QyxZQUFZLE9BQW5FO0FBQ0E7QUFDQSxvQkFBZ0IsUUFBaEIsQ0FBeUIsQ0FBekIsR0FBNkIsWUFBWSxPQUF6Qzs7QUFFQSxXQUFPLGNBQVAsQ0FBc0IsS0FBdEIsRUFBNkIsU0FBN0IsRUFBd0M7QUFDcEMsYUFBSztBQUFBLG1CQUFNLENBQ1AsWUFBWSxPQURMLEVBQ2MsU0FBUyxPQUR2QixFQUNnQyxRQUFRLFVBQVUsT0FBbEIsR0FBNEIsVUFBVSxPQUR0RSxFQUVULE1BRlMsQ0FFRixVQUFDLENBQUQsRUFBSSxDQUFKLEVBQVU7QUFBRSx1QkFBTyxFQUFFLE1BQUYsQ0FBUyxDQUFULENBQVA7QUFBbUIsYUFGN0IsRUFFK0IsRUFGL0IsQ0FBTjtBQUFBO0FBRCtCLEtBQXhDOztBQU1BLGFBQVMsTUFBVCxHQUFrQixVQUFVLE1BQVYsR0FBbUIsVUFBVSxNQUFWLEdBQW1CLFlBQVksTUFBWixHQUFxQixLQUE3RTtBQUNBLFVBQU0sYUFBTixHQUFzQixVQUFDLE1BQUQsRUFBWTtBQUM5QixvQkFBWSxhQUFaLENBQTBCLE1BQTFCO0FBQ0Esa0JBQVUsYUFBVixDQUF3QixNQUF4QjtBQUNBLGlCQUFTLGFBQVQsQ0FBdUIsTUFBdkI7QUFDQSxrQkFBVSxhQUFWLENBQXdCLE1BQXhCO0FBQ0gsS0FMRDs7QUFPQSxXQUFPLEtBQVA7QUFDSCxDLENBakZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7UUNzQmdCLFMsR0FBQSxTO1FBZUEsVyxHQUFBLFc7UUFrQkEsVyxHQUFBLFc7UUFPQSxxQixHQUFBLHFCO1FBT0EsZSxHQUFBLGU7O0FBbERoQjs7SUFBWSxlOztBQUNaOztJQUFZLE07Ozs7QUFwQlo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQk8sU0FBUyxTQUFULENBQW9CLEdBQXBCLEVBQXlCO0FBQzlCLE1BQUksZUFBZSxNQUFNLElBQXpCLEVBQStCO0FBQzdCLFFBQUksUUFBSixDQUFhLGtCQUFiO0FBQ0EsUUFBTSxRQUFRLElBQUksUUFBSixDQUFhLFdBQWIsQ0FBeUIsR0FBekIsQ0FBNkIsQ0FBN0IsR0FBaUMsSUFBSSxRQUFKLENBQWEsV0FBYixDQUF5QixHQUF6QixDQUE2QixDQUE1RTtBQUNBLFFBQUksUUFBSixDQUFhLFNBQWIsQ0FBd0IsS0FBeEIsRUFBK0IsQ0FBL0IsRUFBa0MsQ0FBbEM7QUFDQSxXQUFPLEdBQVA7QUFDRCxHQUxELE1BTUssSUFBSSxlQUFlLE1BQU0sY0FBekIsRUFBeUM7QUFDNUMsUUFBSSxrQkFBSjtBQUNBLFFBQU0sU0FBUSxJQUFJLFdBQUosQ0FBZ0IsR0FBaEIsQ0FBb0IsQ0FBcEIsR0FBd0IsSUFBSSxXQUFKLENBQWdCLEdBQWhCLENBQW9CLENBQTFEO0FBQ0EsUUFBSSxTQUFKLENBQWUsTUFBZixFQUFzQixDQUF0QixFQUF5QixDQUF6QjtBQUNBLFdBQU8sR0FBUDtBQUNEO0FBQ0Y7O0FBRU0sU0FBUyxXQUFULENBQXNCLEtBQXRCLEVBQTZCLE1BQTdCLEVBQXFDLEtBQXJDLEVBQTRDLGNBQTVDLEVBQTREO0FBQ2pFLE1BQU0sV0FBVyxpQkFBaUIsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUMsT0FBTSxRQUFQLEVBQTVCLENBQWpCLEdBQWlFLGdCQUFnQixLQUFsRztBQUNBLE1BQU0sUUFBUSxJQUFJLE1BQU0sSUFBVixDQUFnQixJQUFJLE1BQU0sV0FBVixDQUF1QixLQUF2QixFQUE4QixNQUE5QixFQUFzQyxLQUF0QyxDQUFoQixFQUErRCxRQUEvRCxDQUFkO0FBQ0EsUUFBTSxRQUFOLENBQWUsU0FBZixDQUEwQixRQUFRLEdBQWxDLEVBQXVDLENBQXZDLEVBQTBDLENBQTFDOztBQUVBLE1BQUksY0FBSixFQUFvQjtBQUNsQixhQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8sWUFBOUI7QUFDRCxHQUZELE1BR0k7QUFDRixXQUFPLGdCQUFQLENBQXlCLE1BQU0sUUFBL0IsRUFBeUMsT0FBTyxZQUFoRDtBQUNEOztBQUVELFFBQU0sUUFBTixDQUFlLFlBQWYsR0FBOEIsS0FBOUI7QUFDQSxRQUFNLFFBQU4sQ0FBZSxhQUFmLEdBQStCLE1BQS9CO0FBQ0EsUUFBTSxRQUFOLENBQWUsWUFBZixHQUE4QixLQUE5Qjs7QUFFQSxTQUFPLEtBQVA7QUFDRDtBQUNNLFNBQVMsV0FBVCxDQUFxQixLQUFyQixFQUE0QixLQUE1QixFQUFtQyxNQUFuQyxFQUEyQyxLQUEzQyxFQUFrRDtBQUN2RCxRQUFNLFFBQU4sQ0FBZSxLQUFmLENBQXFCLFFBQU0sTUFBTSxRQUFOLENBQWUsWUFBMUMsRUFBd0QsU0FBTyxNQUFNLFFBQU4sQ0FBZSxhQUE5RSxFQUE2RixRQUFNLE1BQU0sUUFBTixDQUFlLFlBQWxIO0FBQ0EsUUFBTSxRQUFOLENBQWUsWUFBZixHQUE4QixLQUE5QjtBQUNBLFFBQU0sUUFBTixDQUFlLGFBQWYsR0FBK0IsTUFBL0I7QUFDQSxRQUFNLFFBQU4sQ0FBZSxZQUFmLEdBQThCLEtBQTlCO0FBQ0Q7O0FBRU0sU0FBUyxxQkFBVCxDQUFnQyxNQUFoQyxFQUF3QyxLQUF4QyxFQUErQztBQUNwRCxNQUFNLFFBQVEsSUFBSSxNQUFNLElBQVYsQ0FBZ0IsSUFBSSxNQUFNLFdBQVYsQ0FBdUIsbUJBQXZCLEVBQTRDLE1BQTVDLEVBQW9ELG1CQUFwRCxDQUFoQixFQUEyRixnQkFBZ0IsS0FBM0csQ0FBZDtBQUNBLFFBQU0sUUFBTixDQUFlLFNBQWYsQ0FBMEIsc0JBQXNCLEdBQWhELEVBQXFELENBQXJELEVBQXdELENBQXhEO0FBQ0EsU0FBTyxnQkFBUCxDQUF5QixNQUFNLFFBQS9CLEVBQXlDLEtBQXpDO0FBQ0EsU0FBTyxLQUFQO0FBQ0Q7O0FBRU0sU0FBUyxlQUFULEdBQTBCO0FBQy9CLE1BQU0sSUFBSSxNQUFWO0FBQ0EsTUFBTSxJQUFJLEtBQVY7QUFDQSxNQUFNLEtBQUssSUFBSSxNQUFNLEtBQVYsRUFBWDtBQUNBLEtBQUcsTUFBSCxDQUFVLENBQVYsRUFBWSxDQUFaO0FBQ0EsS0FBRyxNQUFILENBQVUsQ0FBQyxDQUFYLEVBQWEsQ0FBYjtBQUNBLEtBQUcsTUFBSCxDQUFVLENBQVYsRUFBWSxDQUFaO0FBQ0EsS0FBRyxNQUFILENBQVUsQ0FBVixFQUFZLENBQVo7O0FBRUEsTUFBTSxNQUFNLElBQUksTUFBTSxhQUFWLENBQXlCLEVBQXpCLENBQVo7QUFDQSxNQUFJLFNBQUosQ0FBZSxDQUFmLEVBQWtCLENBQUMsQ0FBRCxHQUFLLEdBQXZCLEVBQTRCLENBQTVCOztBQUVBLFNBQU8sSUFBSSxNQUFNLElBQVYsQ0FBZ0IsR0FBaEIsRUFBcUIsZ0JBQWdCLEtBQXJDLENBQVA7QUFDRDs7QUFFTSxJQUFNLG9DQUFjLEdBQXBCO0FBQ0EsSUFBTSxzQ0FBZSxJQUFyQjtBQUNBLElBQU0sb0NBQWMsSUFBcEI7QUFDQSxJQUFNLHdDQUFnQixDQUF0QixDLENBQXdCO0FBQ3hCLElBQU0sc0NBQWUsS0FBckI7QUFDQSxJQUFNLDREQUEwQixJQUFoQztBQUNBLElBQU0sNERBQTBCLElBQWhDO0FBQ0EsSUFBTSxvREFBc0IsSUFBNUI7QUFDQSxJQUFNLG9EQUFzQixLQUE1QjtBQUNBLElBQU0sc0NBQWUsSUFBckI7QUFDQSxJQUFNLHNDQUFlLEtBQXJCO0FBQ0EsSUFBTSw0Q0FBa0IsR0FBeEI7QUFDQSxJQUFNLHdDQUFnQixJQUF0QjtBQUNBLElBQU0sa0RBQXFCLE1BQTNCO0FBQ0EsSUFBTSw4Q0FBbUIsSUFBekI7QUFDQSxJQUFNLHdDQUFnQixJQUF0QjtBQUNBLElBQU0sa0NBQWEsT0FBbkI7QUFDQSxJQUFNLGtEQUFxQixJQUEzQjs7Ozs7Ozs7UUNoRlMsTSxHQUFBLE07O0FBRmhCOzs7Ozs7QUFFTyxTQUFTLE1BQVQsR0FBd0M7QUFBQSxtRkFBSixFQUFJO0FBQUEsUUFBckIsS0FBcUIsUUFBckIsS0FBcUI7QUFBQSxRQUFkLEtBQWMsUUFBZCxLQUFjOztBQUU3QyxRQUFNLGNBQWMsMkJBQW1CLEtBQW5CLENBQXBCOztBQUVBLGdCQUFZLE1BQVosQ0FBbUIsRUFBbkIsQ0FBdUIsV0FBdkIsRUFBb0MsWUFBcEM7QUFDQSxnQkFBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLGVBQXZCLEVBQXdDLG1CQUF4Qzs7QUFFQTtBQUNBLFFBQUksY0FBYyxJQUFJLE1BQU0sT0FBVixFQUFsQjtBQUNBLFFBQUksY0FBYyxJQUFJLE1BQU0sS0FBVixFQUFsQjs7QUFFQSxRQUFNLGdCQUFnQixJQUFJLE1BQU0sS0FBVixFQUF0QjtBQUNBLGtCQUFjLEtBQWQsQ0FBb0IsR0FBcEIsQ0FBeUIsR0FBekIsRUFBOEIsR0FBOUIsRUFBbUMsR0FBbkM7QUFDQSxrQkFBYyxRQUFkLENBQXVCLEdBQXZCLENBQTRCLENBQUMsS0FBN0IsRUFBb0MsS0FBcEMsRUFBMkMsR0FBM0M7O0FBR0EsYUFBUyxZQUFULENBQXVCLENBQXZCLEVBQTBCO0FBQUEsWUFFaEIsV0FGZ0IsR0FFTyxDQUZQLENBRWhCLFdBRmdCO0FBQUEsWUFFSCxLQUZHLEdBRU8sQ0FGUCxDQUVILEtBRkc7OztBQUl4QixZQUFNLFNBQVMsTUFBTSxNQUFyQjtBQUNBLFlBQUksV0FBVyxTQUFmLEVBQTBCO0FBQ3hCO0FBQ0Q7O0FBRUQsWUFBSSxPQUFPLFVBQVAsS0FBc0IsSUFBMUIsRUFBZ0M7QUFDOUI7QUFDRDs7QUFFRCxvQkFBWSxJQUFaLENBQWtCLE9BQU8sUUFBekI7QUFDQSxvQkFBWSxJQUFaLENBQWtCLE9BQU8sUUFBekI7O0FBRUEsZUFBTyxRQUFQLENBQWdCLEdBQWhCLENBQXFCLENBQXJCLEVBQXVCLENBQXZCLEVBQXlCLENBQXpCO0FBQ0EsZUFBTyxRQUFQLENBQWdCLEdBQWhCLENBQXFCLENBQXJCLEVBQXVCLENBQXZCLEVBQXlCLENBQXpCO0FBQ0EsZUFBTyxRQUFQLENBQWdCLENBQWhCLEdBQW9CLENBQUMsS0FBSyxFQUFOLEdBQVcsR0FBL0I7O0FBRUEsZUFBTyxTQUFQLEdBQW1CLE9BQU8sTUFBMUI7O0FBRUEsc0JBQWMsR0FBZCxDQUFtQixNQUFuQjs7QUFFQSxvQkFBWSxHQUFaLENBQWlCLGFBQWpCOztBQUVBLFVBQUUsTUFBRixHQUFXLElBQVg7O0FBRUEsZUFBTyxVQUFQLEdBQW9CLElBQXBCOztBQUVBLGNBQU0sTUFBTixDQUFhLElBQWIsQ0FBbUIsUUFBbkIsRUFBNkIsS0FBN0I7QUFDRDs7QUFFRCxhQUFTLG1CQUFULEdBQXlEO0FBQUEsd0ZBQUosRUFBSTtBQUFBLFlBQXpCLFdBQXlCLFNBQXpCLFdBQXlCO0FBQUEsWUFBWixLQUFZLFNBQVosS0FBWTs7QUFFdkQsWUFBTSxTQUFTLE1BQU0sTUFBckI7QUFDQSxZQUFJLFdBQVcsU0FBZixFQUEwQjtBQUN4QjtBQUNEOztBQUVELFlBQUksT0FBTyxTQUFQLEtBQXFCLFNBQXpCLEVBQW9DO0FBQ2xDO0FBQ0Q7O0FBRUQsWUFBSSxPQUFPLFVBQVAsS0FBc0IsS0FBMUIsRUFBaUM7QUFDL0I7QUFDRDs7QUFFRCxlQUFPLFNBQVAsQ0FBaUIsR0FBakIsQ0FBc0IsTUFBdEI7QUFDQSxlQUFPLFNBQVAsR0FBbUIsU0FBbkI7O0FBRUEsZUFBTyxRQUFQLENBQWdCLElBQWhCLENBQXNCLFdBQXRCO0FBQ0EsZUFBTyxRQUFQLENBQWdCLElBQWhCLENBQXNCLFdBQXRCOztBQUVBLGVBQU8sVUFBUCxHQUFvQixLQUFwQjs7QUFFQSxjQUFNLE1BQU4sQ0FBYSxJQUFiLENBQW1CLGFBQW5CLEVBQWtDLEtBQWxDO0FBQ0Q7O0FBRUQsV0FBTyxXQUFQO0FBQ0QsQyxDQWpHRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FBOzs7Ozs7O0FBT0E7QUFDQSxJQUFJLFNBQVMsUUFBUSxlQUFSLENBQWI7O0FBRUE7OztBQUdBLElBQU0sa2VBQU47O0FBd0JBLElBQUksbUJBQW9CLDhtQ0FBeEI7O0FBNENBLElBQUksQ0FBQyxNQUFNLFFBQVAsR0FBa0IsR0FBdEIsRUFBMkI7QUFBRTtBQUMzQixtQkFBaUIsOGxDQUFqQjtBQUNBLFVBQVEsSUFBUixDQUFhLDBCQUFiO0FBQ0M7O0FBR0gsT0FBTyxPQUFQLEdBQWlCLFNBQVMsZUFBVCxDQUEwQixHQUExQixFQUErQjtBQUM5QyxRQUFNLE9BQU8sRUFBYjtBQUNBLE1BQUksVUFBVSxPQUFPLElBQUksT0FBWCxLQUF1QixRQUF2QixHQUFrQyxJQUFJLE9BQXRDLEdBQWdELENBQTlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSSxRQUFRLElBQUksS0FBaEI7QUFDQSxNQUFJLE1BQU0sSUFBSSxHQUFkOztBQUVBLE1BQUksVUFBSixHQUFpQixJQUFJLFVBQUosSUFBa0IsRUFBbkM7QUFDQSxNQUFJLFVBQUosQ0FBZSxXQUFmLEdBQTZCLElBQTdCLENBVjhDLENBVVg7QUFDbkMsTUFBSSxJQUFKLEdBQVcsbUJBQVg7O0FBRUE7QUFDQSxTQUFPLElBQUksR0FBWDtBQUNBLFNBQU8sSUFBSSxLQUFYO0FBQ0EsU0FBTyxJQUFJLFNBQVg7QUFDQSxTQUFPLElBQUksT0FBWDs7QUFFQSxTQUFPLE9BQU87QUFDWixjQUFVO0FBQ1IsZUFBUyxFQUFFLE1BQU0sR0FBUixFQUFhLE9BQU8sT0FBcEIsRUFERDtBQUVSLFdBQUssRUFBRSxNQUFNLEdBQVIsRUFBYSxPQUFPLE9BQU8sSUFBSSxNQUFNLE9BQVYsRUFBM0IsRUFGRztBQUdSLGFBQU8sRUFBRSxNQUFNLEdBQVIsRUFBYSxPQUFPLElBQUksTUFBTSxLQUFWLENBQWdCLEtBQWhCLENBQXBCO0FBSEMsS0FERTtBQU1aLGtCQUFjLGNBTkY7QUFPWixvQkFBZ0I7QUFQSixHQUFQLEVBUUosR0FSSSxDQUFQO0FBU0QsQ0E1QkQ7Ozs7Ozs7O1FDN0RnQixjLEdBQUEsYztRQXdCQSxPLEdBQUEsTzs7QUEvQmhCOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztJQUFZLE07O0FBRVo7O0lBQVksSTs7Ozs7O0FBRUwsU0FBUyxjQUFULENBQXlCLEtBQXpCLEVBQWdDOztBQUVyQyxNQUFNLFFBQVEsS0FBSyxLQUFMLEVBQWQ7QUFDQSxNQUFNLFVBQVUsSUFBSSxNQUFNLE9BQVYsQ0FBa0IsS0FBbEIsQ0FBaEIsQ0FBMEMsUUFBUSxJQUFSLEdBQWUsZ0JBQWY7QUFDMUMsVUFBUSxXQUFSLEdBQXNCLElBQXRCO0FBQ0EsVUFBUSxTQUFSLEdBQW9CLE1BQU0sWUFBMUI7QUFDQSxVQUFRLFNBQVIsR0FBb0IsTUFBTSxZQUExQjtBQUNBLFVBQVEsZUFBUixHQUEwQixLQUExQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFJLFdBQVcsSUFBSSxNQUFNLGNBQVYsQ0FBeUIsa0NBQVU7QUFDaEQsVUFBTSxNQUFNLFVBRG9DO0FBRWhELGlCQUFhLElBRm1DO0FBR2hELFdBQU8sS0FIeUM7QUFJaEQsU0FBSyxPQUoyQztBQUtoRCxVQUFNO0FBTDBDLEdBQVYsQ0FBekIsQ0FBZjtBQU9BLFNBQU8sUUFBUDtBQUNELEMsQ0E5Q0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnREEsSUFBTSxZQUFZLE9BQU8sVUFBekI7O0FBRU8sU0FBUyxPQUFULEdBQWtCOztBQUV2QixNQUFNLE9BQU8sZ0NBQVksS0FBSyxHQUFMLEVBQVosQ0FBYjs7QUFFQSxNQUFNLGlCQUFpQixFQUF2Qjs7QUFFQSxXQUFTLFVBQVQsQ0FBcUIsR0FBckIsRUFBMEIsSUFBMUIsRUFBOEU7QUFBQSxRQUE5QyxLQUE4Qyx1RUFBdEMsUUFBc0M7QUFBQSxRQUE1QixLQUE0Qix1RUFBcEIsR0FBb0I7QUFBQSxRQUFmLEtBQWU7QUFBQSxRQUFSLE1BQVE7OztBQUU1RSxRQUFNLFdBQVcsK0JBQWU7QUFDOUIsWUFBTSxHQUR3QjtBQUU5QixhQUFPLE1BRnVCO0FBRzlCLGFBQU8sS0FIdUI7QUFJOUIsY0FBUSxNQUpzQjtBQUs5QixhQUFPLElBTHVCO0FBTTlCO0FBTjhCLEtBQWYsQ0FBakI7O0FBVUEsUUFBTSxTQUFTLFNBQVMsTUFBeEI7O0FBRUEsUUFBSSxXQUFXLGVBQWdCLEtBQWhCLENBQWY7QUFDQSxRQUFJLGFBQWEsU0FBakIsRUFBNEI7QUFDMUIsaUJBQVcsZUFBZ0IsS0FBaEIsSUFBMEIsZUFBZ0IsS0FBaEIsQ0FBckM7QUFDRDtBQUNELFFBQU0sT0FBTyxJQUFJLE1BQU0sSUFBVixDQUFnQixRQUFoQixFQUEwQixRQUExQixDQUFiO0FBQ0EsU0FBSyxLQUFMLENBQVcsUUFBWCxDQUFxQixJQUFJLE1BQU0sT0FBVixDQUFrQixDQUFsQixFQUFvQixDQUFDLENBQXJCLEVBQXVCLENBQXZCLENBQXJCOztBQUVBLFFBQU0sYUFBYSxRQUFRLFNBQTNCOztBQUVBLFNBQUssS0FBTCxDQUFXLGNBQVgsQ0FBMkIsVUFBM0I7O0FBRUEsU0FBSyxRQUFMLENBQWMsQ0FBZCxHQUFrQixPQUFPLE1BQVAsR0FBZ0IsR0FBaEIsR0FBc0IsVUFBeEM7O0FBRUEsV0FBTyxJQUFQO0FBQ0Q7O0FBR0QsV0FBUyxNQUFULENBQWlCLEdBQWpCLEVBQTBEO0FBQUEsbUZBQUosRUFBSTtBQUFBLDBCQUFsQyxLQUFrQztBQUFBLFFBQWxDLEtBQWtDLDhCQUE1QixRQUE0QjtBQUFBLDBCQUFsQixLQUFrQjtBQUFBLFFBQWxCLEtBQWtCLDhCQUFaLEdBQVk7O0FBQ3hELFFBQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkOztBQUVBLFFBQUksT0FBTyxXQUFZLEdBQVosRUFBaUIsSUFBakIsRUFBdUIsS0FBdkIsRUFBOEIsS0FBOUIsQ0FBWDtBQUNBLFVBQU0sR0FBTixDQUFXLElBQVg7QUFDQSxVQUFNLE1BQU4sR0FBZSxLQUFLLFFBQUwsQ0FBYyxNQUE3QjtBQUNBLFVBQU0sWUFBTixHQUFxQixZQUFNO0FBQ3pCLGFBQU8sTUFBTSxNQUFOLENBQWEsS0FBYixHQUFxQixLQUFyQixHQUE2QixPQUFPLFVBQTNDO0FBQ0QsS0FGRDtBQUdBLFVBQU0sYUFBTixHQUFzQixZQUFNO0FBQzFCLGFBQU8sTUFBTSxNQUFOLENBQWEsTUFBYixHQUFzQixLQUF0QixHQUE4QixPQUFPLFVBQTVDO0FBQ0QsS0FGRDs7QUFJQSxVQUFNLGVBQU4sR0FBd0IsVUFBQyxDQUFELEVBQUksQ0FBSixFQUFVO0FBQ2hDLFlBQU0sTUFBTixDQUFhLElBQWI7QUFDQSxVQUFNLElBQUksT0FBTyxVQUFqQjtBQUNBLGFBQU8sV0FBVyxHQUFYLEVBQWdCLElBQWhCLEVBQXNCLEtBQXRCLEVBQTZCLEtBQTdCLEVBQW9DLElBQUUsQ0FBdEMsRUFBeUMsSUFBRSxDQUEzQyxDQUFQO0FBQ0EsVUFBTSxVQUFVLEtBQUssUUFBTCxDQUFjLE1BQWQsQ0FBcUIsTUFBckIsR0FBNEIsQ0FBNUIsR0FBOEIsQ0FBOUM7QUFDQSxVQUFJLFVBQVUsQ0FBZCxFQUFpQjtBQUNmLGNBQU0sSUFBSSxTQUFKLENBQWMsQ0FBZCxFQUFpQixPQUFNLElBQUksTUFBVixHQUFpQixPQUFsQyxJQUE2QyxLQUFuRDtBQUNBLGVBQU8sV0FBVyxHQUFYLEVBQWdCLElBQWhCLEVBQXNCLEtBQXRCLEVBQTZCLEtBQTdCLEVBQW9DLElBQUUsQ0FBdEMsRUFBeUMsSUFBRSxDQUEzQyxDQUFQO0FBQ0Q7QUFDRCxZQUFNLEdBQU4sQ0FBVSxJQUFWO0FBQ0EsWUFBTSxNQUFOLEdBQWUsS0FBSyxRQUFMLENBQWMsTUFBN0I7QUFDRCxLQVhEOztBQWFBLFVBQU0sV0FBTixHQUFvQixVQUFVLEdBQVYsRUFBZTtBQUNqQyxVQUFJLEtBQUssUUFBTCxDQUFjLFdBQWQsS0FBOEIsR0FBbEMsRUFBdUM7QUFDckMsYUFBSyxRQUFMLENBQWMsTUFBZCxDQUFzQixHQUF0QjtBQUNBLGFBQUssUUFBTCxDQUFjLFdBQWQsR0FBNEIsR0FBNUI7QUFDRDtBQUNGLEtBTEQ7O0FBT0EsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBTztBQUNMLGtCQURLO0FBRUwsaUJBQWE7QUFBQSxhQUFLLFFBQUw7QUFBQSxLQUZSLENBRXNCO0FBRnRCLEdBQVA7QUFLRDs7Ozs7Ozs7OztBQzdHRDs7SUFBWSxNOzs7O0FBRUwsSUFBTSx3QkFBUSxJQUFJLE1BQU0saUJBQVYsQ0FBNkIsRUFBRSxPQUFPLFFBQVQsRUFBbUIsY0FBYyxJQUFqQyxFQUE3QixDQUFkLEMsQ0FyQlA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQk8sSUFBTSw0QkFBVSxJQUFJLE1BQU0saUJBQVYsRUFBaEI7QUFDQSxJQUFNLDBCQUFTLElBQUksTUFBTSxpQkFBVixDQUE2QixFQUFFLE9BQU8sUUFBVCxFQUE3QixDQUFmO0FBQ0EsSUFBTSw0QkFBVSxJQUFJLE1BQU0saUJBQVYsQ0FBNkIsRUFBRSxPQUFPLFFBQVQsRUFBbUIsYUFBYSxLQUFoQyxFQUF1QyxTQUFTLEdBQWhELEVBQTdCLENBQWhCOzs7Ozs7OztrQkNHaUIsWTs7QUFSeEI7Ozs7QUFDQTs7OztBQUNBOztJQUFZLE07O0FBQ1o7O0lBQVksTTs7QUFDWjs7SUFBWSxlOztBQUNaOztJQUFZLEk7O0FBQ1o7O0lBQVksTzs7Ozs7O0FBRUcsU0FBUyxZQUFULEdBVVA7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFUTixXQVNNLFFBVE4sV0FTTTtBQUFBLE1BUk4sTUFRTSxRQVJOLE1BUU07QUFBQSwrQkFQTixZQU9NO0FBQUEsTUFQTixZQU9NLHFDQVBTLFdBT1Q7QUFBQSwrQkFOTixZQU1NO0FBQUEsTUFOTixZQU1NLHFDQU5TLEdBTVQ7QUFBQSxzQkFMTixHQUtNO0FBQUEsTUFMTixHQUtNLDRCQUxBLEdBS0E7QUFBQSxzQkFMSyxHQUtMO0FBQUEsTUFMSyxHQUtMLDRCQUxXLEdBS1g7QUFBQSx1QkFKTixJQUlNO0FBQUEsTUFKTixJQUlNLDZCQUpDLEdBSUQ7QUFBQSx3QkFITixLQUdNO0FBQUEsTUFITixLQUdNLDhCQUhFLE9BQU8sV0FHVDtBQUFBLGdDQUZOLGFBRU07QUFBQSxNQUZOLGFBRU0sc0NBRlUsT0FBTyxZQUVqQjtBQUFBLHdCQUROLEtBQ007QUFBQSxNQUROLEtBQ00sOEJBREUsT0FBTyxXQUNUOztBQUdOLE1BQU0sUUFBUTtBQUNaLFdBQU8sR0FESztBQUVaLFdBQU8sWUFGSztBQUdaLFVBQU0sSUFITTtBQUlaLGFBQVMsSUFKRztBQUtaLGVBQVcsQ0FMQztBQU1aLFlBQVEsS0FOSTtBQU9aLFNBQUssR0FQTztBQVFaLFNBQUssR0FSTztBQVNaLGlCQUFhLFNBVEQ7QUFVWixzQkFBa0IsU0FWTjtBQVdaLGNBQVU7QUFYRSxHQUFkOztBQWNBLFFBQU0sSUFBTixHQUFhLGVBQWdCLE1BQU0sS0FBdEIsRUFBNkIsTUFBTSxHQUFuQyxFQUF3QyxNQUFNLEdBQTlDLENBQWI7QUFDQSxRQUFNLFNBQU4sR0FBa0IsWUFBYSxNQUFNLElBQW5CLENBQWxCO0FBQ0EsUUFBTSxLQUFOLEdBQWMsa0JBQW1CLE1BQU0sS0FBekIsRUFBZ0MsTUFBTSxHQUF0QyxFQUEyQyxNQUFNLEdBQWpELENBQWQ7O0FBRUEsTUFBTSxRQUFRLElBQUksTUFBTSxLQUFWLEVBQWQ7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsUUFBaEI7QUFDQSxRQUFNLFFBQU4sR0FBaUI7QUFBQSxpQkFBVSxNQUFNLE9BQWhCLFVBQTRCLFlBQTVCO0FBQUEsR0FBakI7O0FBRUEsTUFBTSxrQkFBa0IsWUFBWSxNQUFaLENBQW9CLFlBQXBCLENBQXhCO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLE9BQU8sdUJBQXBDO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLEtBQTdCO0FBQ0Esa0JBQWdCLFFBQWhCLENBQXlCLENBQXpCLEdBQTZCLENBQUMsSUFBOUI7O0FBRUEsTUFBSSxjQUFKO0FBQ0EsUUFBTSxTQUFOLEdBQWtCLGtCQUFVO0FBQzFCLFFBQUksS0FBSixFQUFXLE1BQU0sTUFBTixDQUFjLEtBQWQ7O0FBRVgsVUFBTSxPQUFOLEdBQWdCLE1BQWhCOztBQUVBLFFBQU0sZUFBZSxRQUFRLEdBQVIsR0FBYyxPQUFPLFlBQTFDO0FBQ0EsUUFBTSxnQkFBZ0IsU0FBUyxPQUFPLFlBQXRDO0FBQ0EsUUFBTSxlQUFlLEtBQXJCOztBQUVBO0FBQ0EsUUFBTSxPQUFPLElBQUksTUFBTSxXQUFWLENBQXVCLFlBQXZCLEVBQXFDLGFBQXJDLEVBQW9ELFlBQXBELENBQWI7QUFDQSxTQUFLLFNBQUwsQ0FBZSxlQUFhLEdBQTVCLEVBQWdDLENBQWhDLEVBQWtDLENBQWxDO0FBQ0E7O0FBRUEsUUFBTSxrQkFBa0IsSUFBSSxNQUFNLGlCQUFWLEVBQXhCO0FBQ0Esb0JBQWdCLE9BQWhCLEdBQTBCLEtBQTFCOztBQUVBLFFBQU0sZ0JBQWdCLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixlQUE5QixDQUF0QjtBQUNBLGtCQUFjLFFBQWQsQ0FBdUIsQ0FBdkIsR0FBMkIsS0FBM0I7QUFDQSxrQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLFFBQVEsR0FBbkM7QUFDQSxrQkFBYyxJQUFkLEdBQXFCLGVBQXJCOztBQUVBO0FBQ0EsUUFBTSxXQUFXLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixnQkFBZ0IsS0FBOUMsQ0FBakI7QUFDQSxXQUFPLGdCQUFQLENBQXlCLFNBQVMsUUFBbEMsRUFBNEMsT0FBTyxTQUFuRDtBQUNBLGFBQVMsUUFBVCxDQUFrQixDQUFsQixHQUFzQixRQUFRLEdBQTlCO0FBQ0EsYUFBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLGVBQWUsT0FBTyxZQUE1Qzs7QUFFQSxRQUFNLFdBQVcsSUFBSSxNQUFNLGlCQUFWLENBQTRCLEVBQUUsT0FBTyxPQUFPLGFBQWhCLEVBQTVCLENBQWpCO0FBQ0EsUUFBTSxlQUFlLElBQUksTUFBTSxJQUFWLENBQWdCLEtBQUssS0FBTCxFQUFoQixFQUE4QixRQUE5QixDQUFyQjtBQUNBLGlCQUFhLFFBQWIsQ0FBc0IsQ0FBdEIsR0FBMEIsUUFBUSxHQUFsQztBQUNBLGtCQUFjLEdBQWQsQ0FBbUIsWUFBbkI7O0FBRUEsUUFBTSxhQUFhLElBQUksTUFBTSxJQUFWLENBQWdCLElBQUksTUFBTSxXQUFWLENBQXVCLElBQXZCLEVBQTZCLElBQTdCLEVBQW1DLElBQW5DLEVBQXlDLENBQXpDLEVBQTRDLENBQTVDLEVBQStDLENBQS9DLENBQWhCLEVBQW9FLGdCQUFnQixPQUFwRixDQUFuQjtBQUNBLGVBQVcsUUFBWCxDQUFvQixDQUFwQixHQUF3QixZQUF4QjtBQUNBLGtCQUFjLEdBQWQsQ0FBbUIsVUFBbkI7QUFDQSxlQUFXLE9BQVgsR0FBcUIsS0FBckI7O0FBRUEsUUFBTSxhQUFhLFlBQVksTUFBWixDQUFvQixNQUFNLEtBQU4sQ0FBWSxRQUFaLEVBQXBCLENBQW5CO0FBQ0EsZUFBVyxRQUFYLENBQW9CLENBQXBCLEdBQXdCLE9BQU8sdUJBQVAsR0FBaUMsUUFBUSxHQUFqRTtBQUNBLGVBQVcsUUFBWCxDQUFvQixDQUFwQixHQUF3QixRQUFNLEdBQTlCO0FBQ0EsZUFBVyxRQUFYLENBQW9CLENBQXBCLEdBQXdCLENBQUMsTUFBekI7O0FBRUEsUUFBTSxlQUFlLE9BQU8scUJBQVAsQ0FBOEIsTUFBOUIsRUFBc0MsT0FBTyxvQkFBN0MsQ0FBckI7QUFDQSxpQkFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLEtBQTFCOztBQUVBLFlBQVEsT0FBTyxXQUFQLENBQW9CLEtBQXBCLEVBQTJCLE1BQTNCLEVBQW1DLEtBQW5DLENBQVI7QUFDQSxVQUFNLElBQU4sR0FBYSxPQUFiO0FBQ0EsVUFBTSxHQUFOLENBQVcsZUFBWCxFQUE0QixhQUE1QixFQUEyQyxRQUEzQyxFQUFxRCxVQUFyRCxFQUFpRSxZQUFqRTs7QUFFQSxVQUFNLEdBQU4sQ0FBVyxLQUFYOztBQUVBLHFCQUFrQixNQUFNLEtBQXhCO0FBQ0E7O0FBRUEsYUFBUyxnQkFBVCxDQUEyQixLQUEzQixFQUFrQztBQUNoQyxVQUFJLE1BQU0sT0FBVixFQUFtQjtBQUNqQixtQkFBVyxXQUFYLENBQXdCLGVBQWdCLE1BQU0sS0FBdEIsRUFBNkIsTUFBTSxTQUFuQyxFQUErQyxRQUEvQyxFQUF4QjtBQUNELE9BRkQsTUFHSTtBQUNGLG1CQUFXLFdBQVgsQ0FBd0IsTUFBTSxLQUFOLENBQVksUUFBWixFQUF4QjtBQUNEO0FBQ0Y7O0FBRUQsYUFBUyxVQUFULEdBQXFCO0FBQ25CLFVBQUksTUFBTSxRQUFWLEVBQW9CO0FBQ2xCLGlCQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8saUJBQTlCO0FBQ0QsT0FGRCxNQUlBLElBQUksWUFBWSxRQUFaLEVBQUosRUFBNEI7QUFDMUIsaUJBQVMsS0FBVCxDQUFlLE1BQWYsQ0FBdUIsT0FBTyxlQUE5QjtBQUNELE9BRkQsTUFHSTtBQUNGLGlCQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8sYUFBOUI7QUFDRDtBQUNGOztBQUVELGFBQVMsWUFBVCxHQUF1QjtBQUNyQixtQkFBYSxLQUFiLENBQW1CLENBQW5CLEdBQ0UsS0FBSyxHQUFMLENBQ0UsS0FBSyxHQUFMLENBQVUsa0JBQW1CLE1BQU0sS0FBekIsRUFBZ0MsTUFBTSxHQUF0QyxFQUEyQyxNQUFNLEdBQWpELElBQXlELEtBQW5FLEVBQTBFLFFBQTFFLENBREYsRUFFRSxLQUZGLENBREY7QUFLRDs7QUFFRCxhQUFTLFlBQVQsQ0FBdUIsS0FBdkIsRUFBOEI7QUFDNUIsYUFBUSxZQUFSLElBQXlCLEtBQXpCO0FBQ0Q7O0FBRUQsYUFBUyxvQkFBVCxDQUErQixLQUEvQixFQUFzQztBQUNwQyxZQUFNLEtBQU4sR0FBYyxnQkFBaUIsS0FBakIsQ0FBZDtBQUNBLFlBQU0sS0FBTixHQUFjLGtCQUFtQixNQUFNLEtBQXpCLEVBQWdDLE1BQU0sR0FBdEMsRUFBMkMsTUFBTSxHQUFqRCxDQUFkO0FBQ0EsVUFBSSxNQUFNLE9BQVYsRUFBbUI7QUFDakIsY0FBTSxLQUFOLEdBQWMsZ0JBQWlCLE1BQU0sS0FBdkIsRUFBOEIsTUFBTSxJQUFwQyxDQUFkO0FBQ0Q7QUFDRCxZQUFNLEtBQU4sR0FBYyxnQkFBaUIsTUFBTSxLQUF2QixFQUE4QixNQUFNLEdBQXBDLEVBQXlDLE1BQU0sR0FBL0MsQ0FBZDtBQUNEOztBQUVELGFBQVMsWUFBVCxHQUF1QjtBQUNyQixZQUFNLEtBQU4sR0FBYyxvQkFBZDtBQUNBLFlBQU0sS0FBTixHQUFjLGtCQUFtQixNQUFNLEtBQXpCLEVBQWdDLE1BQU0sR0FBdEMsRUFBMkMsTUFBTSxHQUFqRCxDQUFkO0FBQ0EsWUFBTSxLQUFOLEdBQWMsZ0JBQWlCLE1BQU0sS0FBdkIsQ0FBZDtBQUNEOztBQUVELGFBQVMsa0JBQVQsR0FBNkI7QUFDM0IsYUFBTyxXQUFZLE9BQVEsWUFBUixDQUFaLENBQVA7QUFDRDs7QUFFRCxVQUFNLFFBQU4sR0FBaUIsVUFBVSxRQUFWLEVBQW9CO0FBQ25DLFlBQU0sV0FBTixHQUFvQixRQUFwQjtBQUNBLGFBQU8sS0FBUDtBQUNELEtBSEQ7O0FBS0EsVUFBTSxJQUFOLEdBQWEsVUFBVSxJQUFWLEVBQWdCO0FBQzNCLFlBQU0sSUFBTixHQUFhLElBQWI7QUFDQSxZQUFNLFNBQU4sR0FBa0IsWUFBYSxNQUFNLElBQW5CLENBQWxCO0FBQ0EsWUFBTSxPQUFOLEdBQWdCLElBQWhCOztBQUVBLFlBQU0sS0FBTixHQUFjLGtCQUFtQixNQUFNLEtBQXpCLEVBQWdDLE1BQU0sR0FBdEMsRUFBMkMsTUFBTSxHQUFqRCxDQUFkOztBQUVBLDJCQUFzQixNQUFNLEtBQTVCO0FBQ0EsdUJBQWtCLE1BQU0sS0FBeEI7QUFDQTtBQUNBLGFBQU8sS0FBUDtBQUNELEtBWEQ7O0FBYUEsVUFBTSxNQUFOLEdBQWUsWUFBVTtBQUN2QixZQUFNLE1BQU4sR0FBZSxJQUFmO0FBQ0EsYUFBTyxLQUFQO0FBQ0QsS0FIRDs7QUFLQSxRQUFNLGNBQWMsMkJBQW1CLGFBQW5CLENBQXBCO0FBQ0EsZ0JBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxXQUFwQztBQUNBLGdCQUFZLE1BQVosQ0FBbUIsRUFBbkIsQ0FBdUIsVUFBdkIsRUFBbUMsVUFBbkM7QUFDQSxnQkFBWSxNQUFaLENBQW1CLEVBQW5CLENBQXVCLFlBQXZCLEVBQXFDLGFBQXJDOztBQUVBLGFBQVMsV0FBVCxDQUFzQixDQUF0QixFQUF5QjtBQUN2QixVQUFJLE1BQU0sT0FBTixLQUFrQixLQUF0QixFQUE2QjtBQUMzQjtBQUNEO0FBQ0QsWUFBTSxRQUFOLEdBQWlCLElBQWpCO0FBQ0EsUUFBRSxNQUFGLEdBQVcsSUFBWDtBQUNEOztBQUVELGFBQVMsVUFBVCxHQUFxQztBQUFBLHNGQUFKLEVBQUk7QUFBQSxVQUFkLEtBQWMsU0FBZCxLQUFjOztBQUNuQyxVQUFJLE1BQU0sT0FBTixLQUFrQixLQUF0QixFQUE2QjtBQUMzQjtBQUNEOztBQUVELFlBQU0sUUFBTixHQUFpQixJQUFqQjs7QUFFQSxtQkFBYSxpQkFBYjtBQUNBLGlCQUFXLGlCQUFYOztBQUVBLFVBQU0sSUFBSSxJQUFJLE1BQU0sT0FBVixHQUFvQixxQkFBcEIsQ0FBMkMsYUFBYSxXQUF4RCxDQUFWO0FBQ0EsVUFBTSxJQUFJLElBQUksTUFBTSxPQUFWLEdBQW9CLHFCQUFwQixDQUEyQyxXQUFXLFdBQXRELENBQVY7O0FBRUEsVUFBTSxnQkFBZ0IsTUFBTSxLQUE1Qjs7QUFFQSwyQkFBc0IsY0FBZSxLQUFmLEVBQXNCLEVBQUMsSUFBRCxFQUFHLElBQUgsRUFBdEIsQ0FBdEI7QUFDQSx1QkFBa0IsTUFBTSxLQUF4QjtBQUNBO0FBQ0EsbUJBQWMsTUFBTSxLQUFwQjs7QUFFQSxVQUFJLGtCQUFrQixNQUFNLEtBQXhCLElBQWlDLE1BQU0sV0FBM0MsRUFBd0Q7QUFDdEQsY0FBTSxXQUFOLENBQW1CLE1BQU0sS0FBekI7QUFDRDtBQUNGOztBQUVELGFBQVMsYUFBVCxHQUF3QjtBQUN0QixZQUFNLFFBQU4sR0FBaUIsS0FBakI7QUFDRDs7QUFFRCxVQUFNLFdBQU4sR0FBb0IsV0FBcEI7QUFDQSxVQUFNLE9BQU4sR0FBZ0IsQ0FBRSxhQUFGLEVBQWlCLEtBQWpCLENBQWhCOztBQUVBLFFBQU0sa0JBQWtCLEtBQUssTUFBTCxDQUFhLEVBQUUsWUFBRixFQUFTLFlBQVQsRUFBYixDQUF4QjtBQUNBLFFBQU0scUJBQXFCLFFBQVEsTUFBUixDQUFnQixFQUFFLFlBQUYsRUFBUyxZQUFULEVBQWhCLENBQTNCOztBQUVBLFVBQU0sYUFBTixHQUFzQixVQUFVLFlBQVYsRUFBd0I7QUFDNUMsa0JBQVksTUFBWixDQUFvQixZQUFwQjtBQUNBLHNCQUFnQixNQUFoQixDQUF3QixZQUF4QjtBQUNBLHlCQUFtQixNQUFuQixDQUEyQixZQUEzQjs7QUFFQSxVQUFJLE1BQU0sTUFBVixFQUFrQjtBQUNoQjtBQUNBLHlCQUFrQixNQUFNLEtBQXhCO0FBQ0E7QUFDRDtBQUNEO0FBQ0QsS0FYRDs7QUFhQSxVQUFNLElBQU4sR0FBYSxVQUFVLEdBQVYsRUFBZTtBQUMxQixzQkFBZ0IsV0FBaEIsQ0FBNkIsR0FBN0I7QUFDQSxhQUFPLEtBQVA7QUFDRCxLQUhEOztBQUtBLFVBQU0sR0FBTixHQUFZLFVBQVUsQ0FBVixFQUFhO0FBQ3ZCLFlBQU0sR0FBTixHQUFZLENBQVo7QUFDQSxZQUFNLEtBQU4sR0FBYyxrQkFBbUIsTUFBTSxLQUF6QixFQUFnQyxNQUFNLEdBQXRDLEVBQTJDLE1BQU0sR0FBakQsQ0FBZDtBQUNBLDJCQUFzQixNQUFNLEtBQTVCO0FBQ0EsdUJBQWtCLE1BQU0sS0FBeEI7QUFDQTtBQUNBLGFBQU8sS0FBUDtBQUNELEtBUEQ7O0FBU0EsVUFBTSxHQUFOLEdBQVksVUFBVSxDQUFWLEVBQWE7QUFDdkIsWUFBTSxHQUFOLEdBQVksQ0FBWjtBQUNBLFlBQU0sS0FBTixHQUFjLGtCQUFtQixNQUFNLEtBQXpCLEVBQWdDLE1BQU0sR0FBdEMsRUFBMkMsTUFBTSxHQUFqRCxDQUFkO0FBQ0EsMkJBQXNCLE1BQU0sS0FBNUI7QUFDQSx1QkFBa0IsTUFBTSxLQUF4QjtBQUNBO0FBQ0EsYUFBTyxLQUFQO0FBQ0QsS0FQRDtBQVFBLFFBQUcsTUFBTSxNQUFULEVBQWlCLE1BQU0sTUFBTixDQUFhLGFBQWI7QUFDakIsV0FBTyxLQUFQO0FBQ0QsR0F4TkQsQ0EvQk0sQ0F1UEo7QUFDRixRQUFNLFNBQU4sQ0FBaUIsYUFBakI7QUFDQSxTQUFPLEtBQVA7QUFDRCxDLENBL1JEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBaVNBLElBQU0sS0FBSyxJQUFJLE1BQU0sT0FBVixFQUFYO0FBQ0EsSUFBTSxLQUFLLElBQUksTUFBTSxPQUFWLEVBQVg7QUFDQSxJQUFNLE9BQU8sSUFBSSxNQUFNLE9BQVYsRUFBYjtBQUNBLElBQU0sT0FBTyxJQUFJLE1BQU0sT0FBVixFQUFiOztBQUVBLFNBQVMsYUFBVCxDQUF3QixLQUF4QixFQUErQixPQUEvQixFQUF3QztBQUN0QyxLQUFHLElBQUgsQ0FBUyxRQUFRLENBQWpCLEVBQXFCLEdBQXJCLENBQTBCLFFBQVEsQ0FBbEM7QUFDQSxLQUFHLElBQUgsQ0FBUyxLQUFULEVBQWlCLEdBQWpCLENBQXNCLFFBQVEsQ0FBOUI7O0FBRUEsTUFBTSxZQUFZLEdBQUcsZUFBSCxDQUFvQixFQUFwQixDQUFsQjs7QUFFQSxPQUFLLElBQUwsQ0FBVyxLQUFYLEVBQW1CLEdBQW5CLENBQXdCLFFBQVEsQ0FBaEM7O0FBRUEsT0FBSyxJQUFMLENBQVcsUUFBUSxDQUFuQixFQUF1QixHQUF2QixDQUE0QixRQUFRLENBQXBDLEVBQXdDLFNBQXhDOztBQUVBLE1BQU0sT0FBTyxLQUFLLFNBQUwsR0FBaUIsR0FBakIsQ0FBc0IsSUFBdEIsS0FBZ0MsQ0FBaEMsR0FBb0MsQ0FBcEMsR0FBd0MsQ0FBQyxDQUF0RDs7QUFFQSxNQUFNLFNBQVMsUUFBUSxDQUFSLENBQVUsVUFBVixDQUFzQixRQUFRLENBQTlCLElBQW9DLElBQW5EOztBQUVBLE1BQUksUUFBUSxVQUFVLE1BQVYsS0FBcUIsTUFBakM7QUFDQSxNQUFJLFFBQVEsR0FBWixFQUFpQjtBQUNmLFlBQVEsR0FBUjtBQUNEO0FBQ0QsTUFBSSxRQUFRLEdBQVosRUFBaUI7QUFDZixZQUFRLEdBQVI7QUFDRDtBQUNELFNBQU8sS0FBUDtBQUNEOztBQUVELFNBQVMsSUFBVCxDQUFjLEdBQWQsRUFBbUIsR0FBbkIsRUFBd0IsS0FBeEIsRUFBK0I7QUFDN0IsU0FBTyxDQUFDLElBQUUsS0FBSCxJQUFVLEdBQVYsR0FBZ0IsUUFBTSxHQUE3QjtBQUNEOztBQUVELFNBQVMsU0FBVCxDQUFtQixLQUFuQixFQUEwQixJQUExQixFQUFnQyxLQUFoQyxFQUF1QyxJQUF2QyxFQUE2QyxLQUE3QyxFQUFvRDtBQUNoRCxTQUFPLE9BQU8sQ0FBQyxRQUFRLElBQVQsS0FBa0IsUUFBUSxJQUExQixLQUFtQyxRQUFRLElBQTNDLENBQWQ7QUFDSDs7QUFFRCxTQUFTLGVBQVQsQ0FBMEIsS0FBMUIsRUFBaUM7QUFDL0IsTUFBSSxRQUFRLENBQVosRUFBZTtBQUNiLFdBQU8sQ0FBUDtBQUNEO0FBQ0QsTUFBSSxRQUFRLENBQVosRUFBZTtBQUNiLFdBQU8sQ0FBUDtBQUNEO0FBQ0QsU0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBUyxlQUFULENBQTBCLEtBQTFCLEVBQWlDLEdBQWpDLEVBQXNDLEdBQXRDLEVBQTJDO0FBQ3pDLE1BQUksUUFBUSxHQUFaLEVBQWlCO0FBQ2YsV0FBTyxHQUFQO0FBQ0Q7QUFDRCxNQUFJLFFBQVEsR0FBWixFQUFpQjtBQUNmLFdBQU8sR0FBUDtBQUNEO0FBQ0QsU0FBTyxLQUFQO0FBQ0Q7O0FBRUQsU0FBUyxjQUFULENBQXlCLEtBQXpCLEVBQWdDLEdBQWhDLEVBQXFDLEdBQXJDLEVBQTBDO0FBQ3hDO0FBQ0E7QUFDQSxNQUFNLElBQUksTUFBSSxHQUFkO0FBQ0EsTUFBSSxPQUFPLElBQUUsR0FBYixDQUp3QyxDQUl0Qjs7QUFFbEIsU0FBTyxJQUFQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNEOztBQUVELFNBQVMsaUJBQVQsQ0FBNEIsS0FBNUIsRUFBbUMsR0FBbkMsRUFBd0MsR0FBeEMsRUFBNkM7QUFDM0MsU0FBTyxVQUFXLEtBQVgsRUFBa0IsR0FBbEIsRUFBdUIsR0FBdkIsRUFBNEIsR0FBNUIsRUFBaUMsR0FBakMsQ0FBUDtBQUNEOztBQUVELFNBQVMsaUJBQVQsQ0FBNEIsS0FBNUIsRUFBbUMsR0FBbkMsRUFBd0MsR0FBeEMsRUFBNkM7QUFDM0MsU0FBTyxVQUFXLEtBQVgsRUFBa0IsR0FBbEIsRUFBdUIsR0FBdkIsRUFBNEIsR0FBNUIsRUFBaUMsR0FBakMsQ0FBUDtBQUNEOztBQUVELFNBQVMsZUFBVCxDQUEwQixLQUExQixFQUFpQyxJQUFqQyxFQUF1QztBQUNyQyxNQUFJLFFBQVEsSUFBUixJQUFnQixDQUFwQixFQUF1QjtBQUNyQixXQUFPLEtBQUssS0FBTCxDQUFZLFFBQVEsSUFBcEIsSUFBNkIsSUFBcEM7QUFDRDtBQUNELFNBQU8sS0FBUDtBQUNEOztBQUVELFNBQVMsV0FBVCxDQUFxQixDQUFyQixFQUF3QjtBQUN0QixNQUFJLEVBQUUsUUFBRixFQUFKO0FBQ0EsTUFBSSxFQUFFLE9BQUYsQ0FBVSxHQUFWLElBQWlCLENBQUMsQ0FBdEIsRUFBeUI7QUFDdkIsV0FBTyxFQUFFLE1BQUYsR0FBVyxFQUFFLE9BQUYsQ0FBVSxHQUFWLENBQVgsR0FBNEIsQ0FBbkM7QUFDRCxHQUZELE1BRU87QUFDTCxXQUFPLENBQVA7QUFDRDtBQUNGOztBQUVELFNBQVMsY0FBVCxDQUF3QixLQUF4QixFQUErQixRQUEvQixFQUF5QztBQUN2QyxNQUFJLEtBQUssR0FBTCxDQUFTLEtBQVQsSUFBa0IsSUFBbEIsSUFBMEIsVUFBVSxDQUF4QyxFQUEyQyxPQUFPLE1BQU0sYUFBTixDQUFvQixDQUFwQixDQUFQO0FBQzNDLE1BQU0sUUFBUSxLQUFLLEdBQUwsQ0FBUyxFQUFULEVBQWEsUUFBYixDQUFkO0FBQ0EsU0FBTyxLQUFLLEtBQUwsQ0FBVyxRQUFRLEtBQW5CLElBQTRCLEtBQW5DO0FBQ0Q7Ozs7Ozs7O2tCQ2hYdUIsYTs7QUFUeEI7O0lBQVksRzs7QUFDWjs7OztBQUNBOzs7O0FBQ0E7O0lBQVksTTs7QUFDWjs7SUFBWSxNOztBQUNaOztJQUFZLGU7O0FBQ1o7O0lBQVksSTs7Ozs7O0FBR0csU0FBUyxhQUFULEdBT1A7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFOSixXQU1JLFFBTkosV0FNSTtBQUFBLE1BTEosTUFLSSxRQUxKLE1BS0k7QUFBQSwrQkFKSixZQUlJO0FBQUEsTUFKSixZQUlJLHFDQUpXLFdBSVg7QUFBQSx3QkFISixLQUdJO0FBQUEsTUFISixLQUdJLDhCQUhJLE9BQU8sV0FHWDtBQUFBLHlCQUZKLE1BRUk7QUFBQSxNQUZKLE1BRUksK0JBRkssT0FBTyxZQUVaO0FBQUEsd0JBREosS0FDSTtBQUFBLE1BREosS0FDSSw4QkFESSxPQUFPLFdBQ1g7O0FBQ047QUFDQSxNQUFNLGVBQWUsUUFBUSxHQUFSLEdBQWMsT0FBTyxZQUExQztBQUNBLE1BQU0sZ0JBQWdCLFNBQVMsT0FBTyxZQUF0QztBQUNBLE1BQU0sZUFBZSxPQUFPLFlBQTVCOztBQUVBLE1BQU0sUUFBUSxJQUFJLE1BQU0sS0FBVixFQUFkO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLFNBQWhCO0FBQ0EsUUFBTSxRQUFOLEdBQWlCO0FBQUEsaUJBQVUsTUFBTSxPQUFoQixVQUE0QixZQUE1QjtBQUFBLEdBQWpCOztBQUVBLE1BQU0sUUFBUSxPQUFPLFdBQVAsQ0FBb0IsS0FBcEIsRUFBMkIsTUFBM0IsRUFBbUMsS0FBbkMsQ0FBZDtBQUNBLFFBQU0sR0FBTixDQUFXLEtBQVg7O0FBRUE7QUFDQSxNQUFNLFlBQVksQ0FBbEI7QUFDQSxNQUFNLGNBQWMsZUFBZSxhQUFuQztBQUNBLE1BQU0sT0FBTyxJQUFJLE1BQU0sV0FBVixDQUF1QixZQUF2QixFQUFxQyxhQUFyQyxFQUFvRCxZQUFwRCxFQUFrRSxLQUFLLEtBQUwsQ0FBWSxZQUFZLFdBQXhCLENBQWxFLEVBQXlHLFNBQXpHLEVBQW9ILFNBQXBILENBQWI7QUFDQSxPQUFLLFNBQUwsQ0FBZ0IsZUFBZSxHQUEvQixFQUFvQyxDQUFwQyxFQUF1QyxDQUF2Qzs7QUFFQTtBQUNBLE1BQU0sa0JBQWtCLElBQUksTUFBTSxpQkFBVixFQUF4QjtBQUNBLGtCQUFnQixPQUFoQixHQUEwQixLQUExQjs7QUFFQSxNQUFNLGdCQUFnQixJQUFJLE1BQU0sSUFBVixDQUFnQixLQUFLLEtBQUwsRUFBaEIsRUFBOEIsZUFBOUIsQ0FBdEI7QUFDQSxnQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLGVBQWUsR0FBMUM7QUFDQSxnQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLFFBQVEsR0FBbkM7O0FBRUEsTUFBTSxXQUFXLElBQUksTUFBTSxpQkFBVixDQUE0QixFQUFFLE9BQU8sUUFBVCxFQUE1QixDQUFqQjtBQUNBLE1BQU0sZUFBZSxJQUFJLE1BQU0sSUFBVixDQUFnQixLQUFLLEtBQUwsRUFBaEIsRUFBOEIsUUFBOUIsQ0FBckI7QUFDQSxnQkFBYyxHQUFkLENBQW1CLFlBQW5COztBQUdBO0FBQ0EsTUFBTSxjQUFjLFlBQVksTUFBWixDQUFvQixPQUFPLFlBQVAsQ0FBcEIsRUFBMEMsRUFBRSxPQUFPLFNBQVQsRUFBb0IsT0FBTyxLQUEzQixFQUExQyxDQUFwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxjQUFZLFFBQVosQ0FBcUIsQ0FBckIsR0FBeUIsS0FBekI7QUFDQSxjQUFZLFFBQVosQ0FBcUIsQ0FBckIsR0FBeUIsZUFBZSxHQUF4QztBQUNBLGNBQVksUUFBWixDQUFxQixDQUFyQixHQUF5QixDQUFDLEtBQTFCO0FBQ0EsZUFBYSxHQUFiLENBQWtCLFdBQWxCOztBQUdBLE1BQU0sa0JBQWtCLFlBQVksTUFBWixDQUFvQixZQUFwQixDQUF4QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixPQUFPLHVCQUFwQztBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixLQUE3QjtBQUNBLGtCQUFnQixRQUFoQixDQUF5QixDQUF6QixHQUE2QixDQUFDLElBQTlCOztBQUVBLE1BQU0sZUFBZSxPQUFPLHFCQUFQLENBQThCLE1BQTlCLEVBQXNDLE9BQU8sb0JBQTdDLENBQXJCO0FBQ0EsZUFBYSxRQUFiLENBQXNCLENBQXRCLEdBQTBCLEtBQTFCOztBQUVBLFFBQU0sR0FBTixDQUFXLGVBQVgsRUFBNEIsYUFBNUIsRUFBMkMsWUFBM0M7O0FBRUEsTUFBTSxjQUFjLDJCQUFtQixhQUFuQixDQUFwQjtBQUNBLGNBQVksTUFBWixDQUFtQixFQUFuQixDQUF1QixXQUF2QixFQUFvQyxhQUFwQzs7QUFFQTs7QUFFQSxXQUFTLFlBQVQsQ0FBc0IsR0FBdEIsRUFBMkI7QUFDdkIsV0FBTyxZQUFQLElBQXVCLEdBQXZCO0FBQ0EsZ0JBQVksV0FBWixDQUF3QixHQUF4QjtBQUNIO0FBQ0QsTUFBSSxRQUFKO0FBQ0EsV0FBUyxjQUFULEdBQTBCO0FBQ3hCLFFBQUksUUFBSixFQUFjO0FBQ1YsZUFBUyxPQUFULEdBQW1CLENBQUMsU0FBUyxPQUE3QjtBQUNBLFVBQUksU0FBUyxPQUFiLEVBQXNCLE1BQU0sTUFBTixDQUFhLGNBQWIsQ0FBNEIsUUFBNUI7QUFDdEI7QUFDSCxLQUpELE1BSU87QUFDSCxpQkFBVyxJQUFJLEtBQUosQ0FBVSxNQUFWLENBQWlCLFVBQWpCLENBQVg7QUFDQSxZQUFNLEdBQU4sQ0FBVSxRQUFWO0FBQ0EsZUFBUyxNQUFULEdBQWtCLE1BQU0sTUFBeEI7QUFDQSxZQUFNLE1BQU4sQ0FBYSxjQUFiLENBQTRCLFFBQTVCO0FBQ0EsZUFBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLEtBQXRCO0FBQ0EsZUFBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLE9BQU8sYUFBN0I7QUFDQSxlQUFTLFVBQVQ7QUFDQSxlQUFTLFdBQVQsQ0FBc0IsVUFBQyxDQUFELEVBQU87QUFDekIsWUFBSSxNQUFNLE9BQU8sWUFBUCxDQUFWO0FBQ0EsZ0JBQVEsQ0FBUjtBQUNJLGVBQUssSUFBTDtBQUNJO0FBQ0E7QUFDQTtBQUNBLHVCQUFXLGNBQVgsRUFBMkIsR0FBM0I7QUFDQTtBQUNKLGVBQUssSUFBTDtBQUNJLGtCQUFNLElBQUksU0FBSixDQUFjLENBQWQsRUFBaUIsSUFBSSxNQUFKLEdBQVcsQ0FBNUIsQ0FBTjtBQUNBLHlCQUFhLEdBQWI7QUFDQTtBQUNKO0FBQ0ksbUJBQU8sQ0FBUDtBQUNBLHlCQUFhLEdBQWI7QUFiUjtBQWVILE9BakJEO0FBa0JIO0FBQ0Y7O0FBRUQsV0FBUyxhQUFULENBQXdCLENBQXhCLEVBQTJCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxNQUFFLE1BQUYsR0FBVyxJQUFYO0FBQ0Q7O0FBR0QsV0FBUyxVQUFULEdBQXFCOztBQUVuQixRQUFJLFlBQVksUUFBWixFQUFKLEVBQTRCO0FBQzFCLGVBQVMsS0FBVCxDQUFlLE1BQWYsQ0FBdUIsT0FBTyxvQkFBOUI7QUFDRCxLQUZELE1BR0k7QUFDRixlQUFTLEtBQVQsQ0FBZSxNQUFmLENBQXVCLE9BQU8sVUFBOUI7QUFDRDtBQUVGOztBQUVELFFBQU0sV0FBTixHQUFvQixXQUFwQjtBQUNBLFFBQU0sT0FBTixHQUFnQixDQUFFLGFBQUYsRUFBaUIsS0FBakIsQ0FBaEI7O0FBRUEsTUFBTSxrQkFBa0IsS0FBSyxNQUFMLENBQWEsRUFBRSxZQUFGLEVBQVMsWUFBVCxFQUFiLENBQXhCOztBQUVBLFFBQU0sYUFBTixHQUFzQixVQUFVLFlBQVYsRUFBd0I7QUFDNUMsZ0JBQVksTUFBWixDQUFvQixZQUFwQjtBQUNBLG9CQUFnQixNQUFoQixDQUF3QixZQUF4QjtBQUNBO0FBQ0QsR0FKRDs7QUFNQSxRQUFNLElBQU4sR0FBYSxVQUFVLEdBQVYsRUFBZTtBQUMxQixvQkFBZ0IsV0FBaEIsQ0FBNkIsR0FBN0I7QUFDQSxXQUFPLEtBQVA7QUFDRCxHQUhEOztBQU1BLFNBQU8sS0FBUDtBQUNELEMsQ0E5S0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JDdUJ3QixlO1FBZ0RSLGEsR0FBQSxhOztBQXBEaEI7O0lBQVksTTs7QUFDWjs7SUFBWSxlOztBQUNaOztJQUFZLE07Ozs7QUFFRyxTQUFTLGVBQVQsQ0FBMEIsV0FBMUIsRUFBdUMsR0FBdkMsRUFBd0k7QUFBQSxNQUE1RixLQUE0Rix1RUFBcEYsR0FBb0Y7QUFBQSxNQUEvRSxLQUErRSx1RUFBdkUsS0FBdUU7QUFBQSxNQUFoRSxPQUFnRSx1RUFBdEQsUUFBc0Q7QUFBQSxNQUE1QyxPQUE0Qyx1RUFBbEMsT0FBTyxZQUEyQjtBQUFBLE1BQWIsS0FBYSx1RUFBTCxHQUFLOzs7QUFFckosTUFBTSxRQUFRLElBQUksTUFBTSxLQUFWLEVBQWQ7QUFDQSxRQUFNLE9BQU4sR0FBZ0IsV0FBaEI7QUFDQSxRQUFNLFFBQU4sR0FBaUI7QUFBQSxpQkFBVSxNQUFNLE9BQWhCLFVBQTRCLEdBQTVCO0FBQUEsR0FBakI7O0FBRUEsTUFBTSxzQkFBc0IsSUFBSSxNQUFNLEtBQVYsRUFBNUIsQ0FOcUosQ0FNdEc7QUFDL0MsUUFBTSxHQUFOLENBQVcsbUJBQVg7O0FBRUEsTUFBTSxPQUFPLFlBQVksTUFBWixDQUFvQixJQUFJLFFBQUosRUFBcEIsRUFBb0MsRUFBRSxPQUFPLE9BQVQsRUFBa0IsWUFBbEIsRUFBcEMsQ0FBYjtBQUNBLHNCQUFvQixHQUFwQixDQUF5QixJQUF6QjtBQUNBLFFBQU0sUUFBTixDQUFlLElBQWYsR0FBc0IsSUFBdEI7O0FBRUEsUUFBTSxTQUFOLEdBQWtCLFVBQVUsR0FBVixFQUFlO0FBQy9CLFFBQUksUUFBUSxTQUFaLEVBQXVCLE1BQU0sYUFBTjtBQUN2QixTQUFLLFdBQUwsQ0FBa0IsSUFBSSxRQUFKLEVBQWxCO0FBQ0E7QUFDRCxHQUpEOztBQU1BLFFBQU0sU0FBTixHQUFrQixVQUFVLEdBQVYsRUFBZTtBQUMvQixTQUFLLFdBQUwsQ0FBa0IsSUFBSSxPQUFKLENBQVksQ0FBWixDQUFsQjtBQUNELEdBRkQ7O0FBSUEsT0FBSyxRQUFMLENBQWMsQ0FBZCxHQUFrQixLQUFsQjs7QUFFQSxNQUFNLGFBQWEsSUFBbkI7QUFDQSxNQUFNLFNBQVMsSUFBZjtBQUNBLE1BQU0sYUFBYSxLQUFuQjtBQUNBLE1BQU0sY0FBYyxPQUFPLFNBQVMsQ0FBcEM7O0FBRUE7O0FBRUEsTUFBTSxvQkFBb0IsSUFBSSxNQUFNLFdBQVYsQ0FBdUIsVUFBdkIsRUFBbUMsV0FBbkMsRUFBZ0QsS0FBaEQsRUFBdUQsQ0FBdkQsRUFBMEQsQ0FBMUQsRUFBNkQsQ0FBN0QsQ0FBMUI7QUFDQSxvQkFBa0IsWUFBbEIsQ0FBZ0MsSUFBSSxNQUFNLE9BQVYsR0FBb0IsZUFBcEIsQ0FBcUMsYUFBYSxHQUFiLEdBQW1CLE1BQXhELEVBQWdFLENBQWhFLEVBQW1FLENBQW5FLENBQWhDOztBQUVBLE1BQU0sZ0JBQWdCLElBQUksTUFBTSxJQUFWLENBQWdCLGlCQUFoQixFQUFtQyxnQkFBZ0IsS0FBbkQsQ0FBdEI7QUFDQSxTQUFPLGdCQUFQLENBQXlCLGNBQWMsUUFBdkMsRUFBaUQsT0FBakQ7O0FBRUEsZ0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixJQUEzQjtBQUNBLHNCQUFvQixHQUFwQixDQUF5QixhQUF6QjtBQUNBLHNCQUFvQixRQUFwQixDQUE2QixDQUE3QixHQUFpQyxDQUFDLFdBQUQsR0FBZSxHQUFoRDs7QUFFQSxRQUFNLElBQU4sR0FBYSxhQUFiOztBQUVBLFNBQU8sS0FBUDtBQUNELEMsQ0FwRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzRUEsSUFBTSxzQkFBc0IsT0FBTyxZQUFQLEdBQXNCLE9BQU8sYUFBekQ7QUFDTyxTQUFTLGFBQVQsQ0FBd0IsV0FBeEIsRUFBcUMsR0FBckMsRUFBMEMsV0FBMUMsRUFBeUc7QUFBQSxNQUFsRCxZQUFrRCx1RUFBbkMsbUJBQW1DO0FBQUEsTUFBZCxXQUFjOztBQUM5RyxNQUFNLFVBQVUsWUFBWSxNQUFaLENBQW1CLEdBQW5CLENBQWhCOztBQUVBLE1BQU0sV0FBVyxJQUFJLE1BQU0sS0FBVixFQUFqQjs7QUFFQSxNQUFNLElBQUksUUFBUSxZQUFSLEVBQVY7QUFDQSxNQUFNLElBQUksT0FBTyxVQUFQLEdBQW9CLFFBQVEsTUFBUixDQUFlLE1BQTdDOztBQUVBLFdBQVMsUUFBVCxDQUFrQixDQUFsQixHQUF1QixNQUFNLFdBQTdCO0FBQ0EsV0FBUyxRQUFULENBQWtCLENBQWxCLEdBQXNCLENBQUMsSUFBRCxHQUFRLFlBQVIsR0FBdUIsQ0FBN0M7QUFDQSxXQUFTLFFBQVQsQ0FBa0IsQ0FBbEIsR0FBc0IsY0FBYyxDQUFwQztBQUNBLFdBQVMsT0FBVCxHQUFtQixLQUFuQjs7QUFFRjtBQUNFLFdBQVMsR0FBVCxDQUFhLE9BQWI7QUFDRjs7QUFFRSxNQUFNLFVBQVUsSUFBSSxJQUFwQjtBQUFBLE1BQTBCLFVBQVUsSUFBSSxJQUF4QztBQUNBLE1BQU0sVUFBVSxJQUFJLE1BQU0sYUFBVixDQUF3QixPQUF4QixFQUFpQyxPQUFqQyxFQUEwQyxDQUExQyxFQUE2QyxDQUE3QyxDQUFoQjtBQUNBLE1BQU0sZ0JBQWdCLElBQUksTUFBTSxJQUFWLENBQWUsT0FBZixFQUF3QixnQkFBZ0IsT0FBeEMsQ0FBdEI7QUFDQSxnQkFBYyxRQUFkLENBQXVCLENBQXZCLEdBQTJCLENBQTNCLENBcEI4RyxDQW9CaEY7QUFDOUIsZ0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixJQUFJLENBQS9CO0FBQ0EsZ0JBQWMsUUFBZCxDQUF1QixDQUF2QixHQUEyQixDQUFDLFdBQUQsR0FBZSxHQUExQztBQUNBLFdBQVMsR0FBVCxDQUFhLGFBQWI7O0FBRUEsVUFBUSxRQUFSLENBQWlCLENBQWpCLEdBQXFCLENBQUMsR0FBRCxHQUFPLENBQTVCO0FBQ0EsVUFBUSxRQUFSLENBQWlCLENBQWpCLEdBQXFCLENBQUMsR0FBRCxHQUFPLENBQVAsR0FBVyxNQUFoQzs7QUFFQSxXQUFTLFFBQVQsQ0FBa0IsQ0FBbEIsR0FBc0IsQ0FBdEI7QUFDQSxXQUFTLFFBQVQsQ0FBa0IsQ0FBbEIsR0FBc0IsQ0FBdEI7O0FBRUEsU0FBTyxRQUFQO0FBQ0Q7Ozs7Ozs7O1FDckdlLG1CLEdBQUEsbUI7UUErQkEsYSxHQUFBLGE7UUFnQkEsaUIsR0FBQSxpQjtRQU1BLFMsR0FBQSxTO1FBU0EsZ0IsR0FBQSxnQjtBQWhFaEI7O0FBRU8sU0FBUyxtQkFBVCxDQUE2QixPQUE3QixFQUFzQztBQUMzQyxNQUFJLFNBQVMsUUFBUSxNQUFyQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUksUUFBUSxjQUFaLEVBQTRCLE9BQU8sb0JBQW9CLE1BQXBCLENBQVA7O0FBRTVCOztBQUVBLE1BQUksQ0FBQyxRQUFRLE9BQWIsRUFBc0IsT0FBTyxLQUFQOztBQUV0QixTQUFPLE9BQU8sTUFBUCxLQUFrQixNQUF6QixFQUFnQztBQUM5QixRQUFJLE9BQU8sV0FBUCxNQUF3QixDQUFDLE9BQU8sT0FBcEMsRUFBNkMsT0FBTyxLQUFQO0FBQzdDLGFBQVMsT0FBTyxNQUFoQjtBQUNEO0FBQ0QsTUFBSSxDQUFDLE9BQU8sTUFBWixFQUFvQixPQUFPLEtBQVA7QUFDcEIsU0FBTyxPQUFPLE9BQWQ7QUFDRDs7QUFFRDs7Ozs7OztBQU9PLFNBQVMsYUFBVCxDQUF1QixNQUF2QixFQUErQixLQUEvQixFQUFzQyxPQUF0QyxFQUErQztBQUNsRCxNQUFNLFVBQVUsT0FBTyxRQUFQLENBQWdCLFFBQWhCLENBQXlCLEtBQXpCLENBQWhCO0FBQ0EsUUFBTSxPQUFOLEdBQWdCLE9BQWhCO0FBQ0E7QUFDQSxNQUFJLFdBQVcsQ0FBQyxPQUFoQixFQUF5QixNQUFNLEtBQU4sQ0FBWSxTQUFaLENBQXNCLEdBQXRCLENBQTBCLElBQTFCLENBQStCLE1BQS9CLEVBQXVDLEtBQXZDO0FBQ3pCLE1BQUksQ0FBQyxPQUFELElBQVksT0FBaEIsRUFBeUIsTUFBTSxLQUFOLENBQVksU0FBWixDQUFzQixNQUF0QixDQUE2QixJQUE3QixDQUFrQyxNQUFsQyxFQUEwQyxLQUExQztBQUN6QixNQUFJLENBQUMsT0FBTyxPQUFaLEVBQXFCLFFBQVEsSUFBUixvQ0FBOEMsS0FBOUMsNkJBQTJFLE1BQTNFO0FBQ3hCOztBQUVEOzs7Ozs7O0FBT08sU0FBUyxpQkFBVCxDQUEyQixLQUEzQixFQUFrQztBQUNyQyxNQUFJLFNBQVMsVUFBVSxLQUFWLENBQWI7QUFDQSxTQUFPLE9BQU8sTUFBUCxLQUFrQixNQUF6QjtBQUFpQyxhQUFTLE9BQU8sTUFBaEI7QUFBakMsR0FDQSxPQUFPLE1BQVA7QUFDSDs7QUFFTSxTQUFTLFNBQVQsQ0FBbUIsS0FBbkIsRUFBMEI7QUFDN0IsTUFBSSxNQUFNLE1BQVYsRUFBa0IsT0FBTyxNQUFNLE1BQWI7QUFDbEIsTUFBSSxPQUFPLE1BQU0sTUFBakI7QUFDQSxTQUFPLENBQUMsS0FBSyxNQUFOLElBQWdCLE1BQU0sTUFBN0I7QUFBcUMsV0FBTyxLQUFLLE1BQVo7QUFBckMsR0FDQSxPQUFPLEtBQUssTUFBWjtBQUNIOztBQUVEO0FBQ0E7QUFDTyxTQUFTLGdCQUFULENBQTBCLEdBQTFCLEVBQStCLEdBQS9CLEVBQW9DO0FBQ3pDLE1BQU0sWUFBWSxFQUFsQjtBQUNBLE1BQUksUUFBSixDQUFhLGFBQUs7QUFDaEIsUUFBSSxFQUFFLFFBQUYsSUFBYyxFQUFFLFFBQUYsQ0FBVyxnQkFBekIsSUFBNkMsRUFBRSxRQUFGLENBQVcsVUFBWCxDQUFzQixRQUF0QixDQUErQixRQUEvQixLQUE0QyxDQUE3RixFQUFnRztBQUM5RixRQUFFLFFBQUYsQ0FBVyxnQkFBWCxHQUE4QixLQUE5QjtBQUNBLGdCQUFVLElBQVYsQ0FBZSxFQUFFLFFBQWpCO0FBQ0Q7QUFDRixHQUxEO0FBTUEsTUFBSSxhQUFKLENBQWtCLEdBQWxCO0FBQ0EsWUFBVSxPQUFWLENBQWtCO0FBQUEsV0FBSyxFQUFFLGdCQUFGLEdBQXFCLElBQTFCO0FBQUEsR0FBbEI7QUFDQSxTQUFPLEdBQVA7QUFDRDs7O0FDM0VEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDamZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzNCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBCVVRUT05fV0lEVEggPSB3aWR0aCAqIDAuNSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gTGF5b3V0LkJVVFRPTl9ERVBUSDtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IENvbG9ycy5CVVRUT05fQ09MT1IgfSk7XHJcbiAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLmFkZCggZmlsbGVkVm9sdW1lICk7XHJcblxyXG5cclxuICBjb25zdCBidXR0b25MYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggcHJvcGVydHlOYW1lLCB7IHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gQlVUVE9OX1dJRFRIICogMC41IC0gYnV0dG9uTGFiZWwubGF5b3V0LndpZHRoICogMC4wMDAwMTEgKiAwLjU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25SZWxlYXNlZCcsIGhhbmRsZU9uUmVsZWFzZSApO1xyXG5cclxuICB1cGRhdGVWaWV3KCk7XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuMTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDAuNTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuXHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fSElHSExJR0hUX0NPTE9SICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5CVVRUT05fQ09MT1IgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBncm91cC5idXR0b25MYWJlbCA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGJ1dHRvbkxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7IENIRUNLQk9YX1NJWkUgfSBmcm9tICcuL2xheW91dCc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGVja2JveCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXHJcbiAgICBsaXN0ZW46IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBjb25zdCBDSEVDS0JPWF9QQUQgPSBMYXlvdXQuUEFORUxfSEVJR0hUIC0gTGF5b3V0LkNIRUNLQk9YX1NJWkU7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJjaGVja2JveFwiO1xyXG4gIGdyb3VwLnRvU3RyaW5nID0gKCkgPT4gYFske2dyb3VwLmd1aVR5cGV9OiAke3Byb3BlcnR5TmFtZX1dYDtcclxuICBcclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgbGV0IG9uQ2hhbmdlZENCO1xyXG4gIGxldCBvbkZpbmlzaENoYW5nZUNCO1xyXG5cclxuICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgb25DaGFuZ2VkQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgc3RhdGUubGlzdGVuID0gdHJ1ZTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgY2hlY2ttYXJrLCBib3JkZXJCb3gsIGludGVyYWN0aW9uO1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcblxyXG4gICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgIGlmKCBvbkNoYW5nZWRDQiApe1xyXG4gICAgICBvbkNoYW5nZWRDQiggc3RhdGUudmFsdWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBjaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgYm9yZGVyQm94LnZpc2libGUgPSBpbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgaWYgKF9oZWFkZXIpIHtcclxuICAgICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgICBfaGVhZGVyLmJvcmRlckJveC52aXNpYmxlID0gX2hlYWRlci5pbnRlcmFjdGlvbi5ob3ZlcmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgbGV0IGlzU2hvd25JbkZvbGRlckhlYWRlciA9IGZhbHNlO1xyXG4gIGdyb3VwLnNob3dJbkZvbGRlckhlYWRlciA9ICh2YWx1ZT10cnVlKSA9PiB7XHJcbiAgICBpZiAodmFsdWUgIT09IGlzU2hvd25JbkZvbGRlckhlYWRlcikge1xyXG4gICAgICBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgPSB2YWx1ZTtcclxuICAgICAgLy9ncm91cC5mb2xkZXJIZWFkZXJPYmplY3QgPSB2YWx1ZSA/IGdldEZvbGRlckhlYWRlck9iamVjdCA6IG51bGw7XHJcbiAgICAgIC8veHh4OiBjYW4ndCB1c2Ugb3JkaW5hcnkgYWRkLi4uXHJcbiAgICAgIF9oZWFkZXIgPSBnZXRGb2xkZXJIZWFkZXJPYmplY3QoKTtcclxuICAgICAgaWYgKHZhbHVlKSBncm91cC5mb2xkZXIuYWRkSGVhZGVySXRlbShfaGVhZGVyKTtcclxuICAgICAgZWxzZSBfaGVhZGVyLnZpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGdyb3VwLCAnaXNTaG93bkluRm9sZGVySGVhZGVyJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7IHJldHVybiBpc1Nob3duSW5Gb2xkZXJIZWFkZXIgfSxcclxuICAgIHNldDogZ3JvdXAuc2hvd0luRm9sZGVySGVhZGVyXHJcbiAgfSk7XHJcbiAgbGV0IF9oZWFkZXI7XHJcbiAgZnVuY3Rpb24gZ2V0Rm9sZGVySGVhZGVyT2JqZWN0KCkge1xyXG4gICAgaWYgKF9oZWFkZXIpIHJldHVybiBfaGVhZGVyO1xyXG4gICAgbGV0IHNpemUgPSBMYXlvdXQuUEFORUxfSEVJR0hUICogMC42O1xyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzaXplLCBzaXplLCBkZXB0aCk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZShzaXplKjAuNSwgMCwgMCk7XHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaChyZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCk7XHJcbiAgICBfaGVhZGVyID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IHNpZGUtZWZmZWN0Li4uXHJcbiAgICAvLyB4IHBvc2l0aW9uIGlzIHNldCBpbiBmb2xkZXIgcGVyZm9ybUhlYWRlckxheW91dCgpXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiBnZXQgdGhpcyB0byB3b3JrLi4uIGFkZCB0b29sdGlwXHJcbiAgICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoc2l6ZSArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBzaXplICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIGRlcHRoLCB0cnVlICk7XHJcbiAgICBfaGVhZGVyLmJvcmRlckJveCA9IGJvcmRlckJveDtcclxuICAgIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueCA9IC1MYXlvdXQuQk9SREVSX1RISUNLTkVTUyAqIDAuNSArIHdpZHRoICogMC41O1xyXG4gICAgYm9yZGVyQm94LnBvc2l0aW9uLnogPSBkZXB0aCAqIDAuNTtcclxuICBcclxuICAgIGNvbnN0IGNoZWNrbWFyayA9IEdyYXBoaWMuY2hlY2ttYXJrKDAuNCAqIHNpemUgLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRSk7XHJcbiAgICBfaGVhZGVyLmNoZWNrbWFyayA9IGNoZWNrbWFyaztcclxuICAgIGNoZWNrbWFyay52aXNpYmxlID0gc3RhdGUudmFsdWU7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKGNoZWNrbWFyayk7XHJcblxyXG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbihoaXRzY2FuVm9sdW1lKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbignb25QcmVzc2VkJywgaGFuZGxlSGVhZGVyUHJlc3MpO1xyXG4gICAgX2hlYWRlci5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG5cclxuICAgIC8vYWRkIHVwZGF0ZUNvbnRyb2wgbWV0aG9kIGhlcmUgLSBhdHRlbXB0IHRvIG1ha2UgZ2VuZXJpYyB2ZXJzaW9uIGluIGZvbGRlciB3YXMgaW5hZGVxdWF0ZVxyXG4gICAgX2hlYWRlci51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IHtcclxuICAgICAgaWYgKHN0YXRlLmxpc3Rlbikge1xyXG4gICAgICAgIHN0YXRlLnZhbHVlID0gb2JqZWN0W3Byb3BlcnR5TmFtZV07XHJcbiAgICAgIH1cclxuICAgICAgLy9uYjogaW50ZXJhY3Rpb24gd2lsbCBiZSBmcm9tIGdldEZvbGRlckhlYWRlck9iamVjdCgpIHNjb3BlLCBcclxuICAgICAgLy9ub3QgdGhlIG1haW4gb25lIHRoYXQgYXBwbGllcyB0aGF0IGFwcGxpZXMgdG8gdGhlIG9yZGluYXJ5IGNvbnRyb2wuXHJcbiAgICAgIGludGVyYWN0aW9uLnVwZGF0ZShpbnB1dE9iamVjdHMpO1xyXG4gICAgICB1cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIF9oZWFkZXI7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gcmV2aWV3IG5lZWQgZm9yIHNlcGFyYXRlIGhlYWRlciB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb25cclxuICBmdW5jdGlvbiBoYW5kbGVIZWFkZXJQcmVzcyhwKXtcclxuICAgIGlmIChncm91cC5mb2xkZXIudmlzaWJsZSA9PT0gZmFsc2UgfHwgX2hlYWRlci52aXNpYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgc3RhdGUudmFsdWUgPSAhc3RhdGUudmFsdWU7XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0YXRlLnZhbHVlO1xyXG4gICAgaWYgKG9uQ2hhbmdlZENCKSBvbkNoYW5nZWRDQihzdGF0ZS52YWx1ZSk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgLy9tYWtlIHN1cmUgdmlldyBpcyBhbHNvIHVwIHRvIGRhdGU7IHVwZGF0ZVZpZXcoKSB3b24ndCBoYXBwZW4gd2hlbiBwYXJlbnQgZm9sZGVyIGlzIGNvbGxhcHNlZFxyXG4gICAgX2hlYWRlci5jaGVja21hcmsudmlzaWJsZSA9IHN0YXRlLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgbGV0IHBhbmVsO1xyXG4gIC8vYWxsIGxheW91dCBldGMgaXMgZG9uZSBpbnNpZGUgc2V0SGVpZ2h0LCB3aGljaCBpcyBjYWxsZWQgb25jZSBhdCBzdGFydC5cclxuICAvL2FueSBjYWxsYmFja3MgZXRjIHJlbWFpbiBhc3NvY2lhdGVkIHdpdGggJ2dyb3VwJy5cclxuICBncm91cC5zZXRIZWlnaHQgPSBuZXdIZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUocGFuZWwpO1xyXG4gICAgXHJcbiAgICBncm91cC5zcGFjaW5nID0gbmV3SGVpZ2h0O1xyXG4gICAgXHJcbiAgICBjb25zdCBDSEVDS0JPWF9XSURUSCA9IG5ld0hlaWdodCAtIENIRUNLQk9YX1BBRDtcclxuICAgIGNvbnN0IENIRUNLQk9YX0hFSUdIVCA9IENIRUNLQk9YX1dJRFRIO1xyXG4gICAgY29uc3QgQ0hFQ0tCT1hfREVQVEggPSBkZXB0aDtcclxuICAgIGNvbnN0IENIRUNLTUFSS19TSVpFID0gMC40ICogQ0hFQ0tCT1hfV0lEVEggLyBMYXlvdXQuQ0hFQ0tCT1hfU0laRTtcclxuICBcclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgbmV3SGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG4gIFxyXG4gICAgLy8gIGJhc2UgY2hlY2tib3hcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIENIRUNLQk9YX1dJRFRILCBDSEVDS0JPWF9IRUlHSFQsIENIRUNLQk9YX0RFUFRIICk7XHJcbiAgICByZWN0LnRyYW5zbGF0ZSggQ0hFQ0tCT1hfV0lEVEggKiAwLjUsIDAsIDAgKTtcclxuICBcclxuICBcclxuICAgIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gICAgY29uc3QgaGl0c2Nhbk1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIFxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBcclxuICAgIC8vICBvdXRsaW5lIHZvbHVtZVxyXG4gICAgLy8gY29uc3Qgb3V0bGluZSA9IG5ldyBUSFJFRS5Cb3hIZWxwZXIoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIC8vIG91dGxpbmUubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuT1VUTElORV9DT0xPUiApO1xyXG4gIFxyXG4gICAgLy8gIGNoZWNrYm94IHZvbHVtZVxyXG4gICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogQ29sb3JzLkNIRUNLQk9YX0JHX0NPTE9SIH0pO1xyXG4gICAgY29uc3QgZmlsbGVkVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgbWF0ZXJpYWwgKTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuICBcclxuICBcclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIG5ld0hlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQ0hFQ0tCT1ggKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgICBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIENIRUNLQk9YX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIENIRUNLQk9YX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTLCBDSEVDS0JPWF9ERVBUSCwgdHJ1ZSApO1xyXG4gICAgYm9yZGVyQm94Lm1hdGVyaWFsLmNvbG9yLnNldEhleCggMHgxZjdhZTcgKTtcclxuICAgIGJvcmRlckJveC5wb3NpdGlvbi54ID0gLUxheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gIFxyXG4gICAgY2hlY2ttYXJrID0gR3JhcGhpYy5jaGVja21hcmsoIENIRUNLTUFSS19TSVpFICk7XHJcbiAgICBjaGVja21hcmsucG9zaXRpb24ueiA9IGRlcHRoICogMC41MTtcclxuICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBjaGVja21hcmsgKTtcclxuICBcclxuICAgIHBhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQsIGJvcmRlckJveCApO1xyXG4gIFxyXG4gICAgLy8gZ3JvdXAuYWRkKCBmaWxsZWRWb2x1bWUsIG91dGxpbmUsIGhpdHNjYW5Wb2x1bWUsIGRlc2NyaXB0b3JMYWJlbCApO1xyXG4gIFxyXG4gICAgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggaGl0c2NhblZvbHVtZSApO1xyXG4gICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gIFxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIFxyXG4gIFxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcbiAgICBcclxuICAgIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICAgIGlmKCBzdGF0ZS5saXN0ZW4gKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF07XHJcbiAgICAgIH1cclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHVwZGF0ZVZpZXcoKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuICBcclxuICBncm91cC5zZXRIZWlnaHQoaGVpZ2h0KTtcclxuXHJcbiAgcmV0dXJuIGdyb3VwO1xyXG59IiwiLyoqXHJcbiAqIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhbiBpbWFnZWJ1dHRvbiB3aXRoIGEgc29saWQgY29sb3IgTWVzaEJhc2ljTWF0ZXJpYWxcclxuICogV2hlbiBwcmVzc2VkIGl0IGNvdWxkIGJyaW5nIHVwIHNvbWUga2luZCBvZiBwaWNrZXIgZGVwZW5kaW5nIG9uIGNvbmZpZ3VyYXRpb24uXHJcbiAqXHJcbiAqIEZvciBub3csIGp1c3QgZ29pbmcgd2l0aCBSR0Igc2xpZGVycyBhcyBJIHNob3VsZG4ndCBzcGVuZCB0b28gbG9uZyBvbiB0aGlzIEFUTSxcclxuICogYnV0IHZlcnkgdGVtcHRlZCBieSBwcm9zcGVjdCBvZiBhbiBIUyBzcXVhcmUgd2l0aCBWIHNsaWRlci4uLlxyXG4gKiBvciBIIHNsaWRlciBhbmQgU1Ygc3F1YXJlIHdoaWNoIHNlZW1zIHRvIGJlIHdoYXQgZGF0Lmd1aSB1c2VzLlxyXG4gKiBPciBzb21ldGhpbmcgZmFuY2llciBsaWtlIGEgaHVlIGNpcmNsZSBhcm91bmQgYW4gU1YgdHJpYW5nbGUgZXRjIGV0Yy5cclxuICpcclxuICpcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uIGZyb20gJy4vaW1hZ2VidXR0b24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcblxyXG4vL3NuaXBwZXQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaHVnaHNrL2dsc2wtaHN2MnJnYi9ibG9iL21hc3Rlci9pbmRleC5nbHNsXHJcbi8vKG5vdCBnb2luZyB0byB0aGUgbGVuZ3RocyBvZiBnbHNsaWZ5LCBqdXN0IGNvcHlpbmcgdGhlIGZ1bmN0aW9uKVxyXG5jb25zdCBoc3YycmdiID0gYFxyXG52ZWMzIGhzdjJyZ2IodmVjMyBjKSB7XHJcbiAgICB2ZWM0IEsgPSB2ZWM0KDEuMCwgMi4wIC8gMy4wLCAxLjAgLyAzLjAsIDMuMCk7XHJcbiAgICB2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBLLnh5eikgKiA2LjAgLSBLLnd3dyk7XHJcbiAgICByZXR1cm4gYy56ICogbWl4KEsueHh4LCBjbGFtcChwIC0gSy54eHgsIDAuMCwgMS4wKSwgYy55KTtcclxufWA7XHJcblxyXG5jb25zdCBWZXJ0U2hhZGVyID0gYFxyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG5cclxudm9pZCBtYWluKCkge1xyXG4gICAgdlV2ID0gdXY7XHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLik7XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IFNWRnJhZ1NoYWRlciA9IGBcclxudW5pZm9ybSB2ZWMzIHNlbGVjdGVkSFNWO1xyXG52YXJ5aW5nIHZlYzIgdlV2O1xyXG4ke2hzdjJyZ2J9XHJcblxyXG52b2lkIG1haW4oKSB7XHJcbiAgICB2ZWMzIGhzdiA9IHZlYzMoc2VsZWN0ZWRIU1YueCwgdlV2KTtcclxuXHJcbiAgICAvLyBkcmF3IGEgYmxhY2sgY2lyY2xlIGFyb3VuZCBzZWxlY3RlZCBTVi5cclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgbGVzcyBob3VzZWtlZXBpbmdcclxuICAgIC8vIG5lZWQgdG8ga25vdyBhc3BlY3QgcmF0aW8gaWYgSSB3YW50IGl0IHRvIGJlIGEgcHJvcGVyIGNpcmNsZSwgdGhvdWdoLlxyXG4gICAgZmxvYXQgZCA9IGxlbmd0aChzZWxlY3RlZEhTVi55eiAtIHZVdik7XHJcbiAgICBpZiAoZCA8IDAuMDE1ICYmIGQgPiAwLjAxKSBoc3YueiA9IDAuO1xyXG4gICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IHNxcnQoaHN2MnJnYihoc3YpKTtcclxuICAgIGdsX0ZyYWdDb2xvci53ID0gMS4wOyAvLyBzanB0XHJcbn1cclxuYDtcclxuXHJcbmNvbnN0IEhTbGlkZXJGcmFnU2hhZGVyID0gYFxyXG51bmlmb3JtIHZlYzMgc2VsZWN0ZWRIU1Y7XHJcbnZhcnlpbmcgdmVjMiB2VXY7XHJcbiR7aHN2MnJnYn1cclxuXHJcbnZvaWQgbWFpbigpIHtcclxuICAgIC8vIGRyYXcgYSByZWN0YW5ndWxhciBpbmRpY2F0b3IgYXJvdW5kIHNlbGVjdGVkIEhcclxuICAgIC8vIG1pZ2h0IGxvb2sgYmV0dGVyIHZpYSBzZXBhcmF0ZSB0aHJlZSBvYmplY3QsIGJ1dCBzaGFkZXIgaXMgc2ltcGxlclxyXG4gICAgZmxvYXQgZGlzdCA9IGFicyhzZWxlY3RlZEhTVi54IC0gdlV2LngpO1xyXG4gICAgYm9vbCBpbmRpY2F0b3IgPSBkaXN0IDwgMC4wMSAmJiBkaXN0ID4gMC4wMDU7XHJcbiAgICBmbG9hdCB2ID0gaW5kaWNhdG9yID8gMC4gOiAxLjtcclxuICAgIGdsX0ZyYWdDb2xvci5yZ2IgPSBzcXJ0KGhzdjJyZ2IodmVjMyh2VXYueCwgMS4sIHYpKSk7XHJcbiAgICBnbF9GcmFnQ29sb3IudyA9IDEuMDsgLy8gc2pwdFxyXG59XHJcbmA7XHJcblxyXG4vLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3MjQyMTQ0L2phdmFzY3JpcHQtY29udmVydC1oc2ItaHN2LWNvbG9yLXRvLXJnYi1hY2N1cmF0ZWx5XHJcbi8vd2h5IG5vdCB1c2UgVEhSRUUuQ29sb3IgbWV0aG9kcz9cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIGggIE9iamVjdCA9IHtoOngsIHM6eSwgdjp6fVxyXG4gKiBPUlxyXG4gKiBoLCBzLCB2XHJcbiovXHJcbmZ1bmN0aW9uIEhTVnRvUkdCKGgsIHMsIHYpIHtcclxuICAgIHZhciByLCBnLCBiLCBpLCBmLCBwLCBxLCB0O1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAvL2hhY2sgdG8gdGFrZSBUSFJFRS5WZWN0b3IzLi4uXHJcbiAgICAgICAgaWYgKGgueCAhPT0gdW5kZWZpbmVkKSBzID0gaC55LCB2ID0gaC56LCBoID0gaC54O1xyXG4gICAgICAgIGVsc2UgcyA9IGgucywgdiA9IGgudiwgaCA9IGguaDtcclxuICAgIH1cclxuICAgIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIGYgPSBoICogNiAtIGk7XHJcbiAgICBwID0gdiAqICgxIC0gcyk7XHJcbiAgICBxID0gdiAqICgxIC0gZiAqIHMpO1xyXG4gICAgdCA9IHYgKiAoMSAtICgxIC0gZikgKiBzKTtcclxuICAgIHN3aXRjaCAoaSAlIDYpIHtcclxuICAgICAgICBjYXNlIDA6IHIgPSB2LCBnID0gdCwgYiA9IHA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgMTogciA9IHEsIGcgPSB2LCBiID0gcDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAyOiByID0gcCwgZyA9IHYsIGIgPSB0OyBicmVhaztcclxuICAgICAgICBjYXNlIDM6IHIgPSBwLCBnID0gcSwgYiA9IHY7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDogciA9IHQsIGcgPSBwLCBiID0gdjsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA1OiByID0gdiwgZyA9IHAsIGIgPSBxOyBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcjogcixcclxuICAgICAgICBnOiBnLFxyXG4gICAgICAgIGI6IGJcclxuICAgIH07XHJcbn1cclxuLyogYWNjZXB0cyBwYXJhbWV0ZXJzXHJcbiAqIHIgIE9iamVjdCA9IHtyLCBnLCBifVxyXG4gKiBPUlxyXG4gKiByLCBnLCBiXHJcbiovXHJcbmZ1bmN0aW9uIFJHQnRvSFNWKHIsIGcsIGIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgZyA9IHIuZywgYiA9IHIuYiwgciA9IHIucjtcclxuICAgIH1cclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKSwgbWluID0gTWF0aC5taW4ociwgZywgYiksXHJcbiAgICAgICAgZCA9IG1heCAtIG1pbixcclxuICAgICAgICBoLFxyXG4gICAgICAgIHMgPSAobWF4ID09PSAwID8gMCA6IGQgLyBtYXgpLFxyXG4gICAgICAgIHYgPSBtYXg7XHJcblxyXG4gICAgc3dpdGNoIChtYXgpIHtcclxuICAgICAgICBjYXNlIG1pbjogaCA9IDA7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgKyBkICogKGcgPCBiID8gNjogMCk7IGggLz0gNiAqIGQ7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgKyBkICogMjsgaCAvPSA2ICogZDsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSArIGQgKiA0OyBoIC89IDYgKiBkOyBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGg6IGgsXHJcbiAgICAgICAgczogcyxcclxuICAgICAgICB2OiB2LFxyXG4gICAgICAgIHg6IGgsIHk6IHMsIHo6IHYgLy9zbyB0aGF0IHdlIGNhbiBkbyBWZWN0b3IzLmNvcHkodGhpcylcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbG9yUGlja2VyKCB7XHJcbiAgICBvYmplY3QsXHJcbiAgICBwcm9wZXJ0eU5hbWUsIC8vbXVzdCBiZSBhIFRIUkVFLkNvbG9yIGZvciBub3cuLi4gc2hvdWxkIHJlZmVyIHRvIG9yaWdpbmFsIGRhdC5ndWkgdG8gc2VlIHdoYXQgaXQgdGFrZXNcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgd2lkdGggPSBMYXlvdXQuUEFORUxfV0lEVEgsXHJcbiAgICBoZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gICAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEggLyAzLlxyXG59ID0ge30pIHtcclxuICAgIC8vIG1ha2UgdGhlIG1haW4gZ3JvdXAgYmUgKmRpcmVjdGx5KiB0aGUgb25lIHJldHVybmVkIGJ5IGNyZWF0ZUltYWdlQnV0dG9uO1xyXG4gICAgLy8gd2UnbGwgdGFrZSBjYXJlIG9mIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgY2hpbGRyZW4gYmFzZWQgb24gYXR0YWNoZWQuLi5cclxuICAgIC8vIHdpbGwgd2FudCB0byB0aGluayBhYm91dCBsaXN0ZW5lciBmdW5jdGlvbnMgZXRjLlxyXG4gICAgbGV0IGZ1bmMgPSB0b2dnbGVEZXRhaWxQYW5lbDtcclxuICAgIGxldCBjb2xvciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdOyAvL2ZvciBub3csIHRoaXMnZCBiZXR0ZXIgYmUgYSBUSFJFRS5Db2xvciBvciB3ZSdsbCBmcmVhayBvdXQuXHJcbiAgICBjb25zdCBjID0gUkdCdG9IU1YoY29sb3IpO1xyXG4gICAgY29uc3QgdW5pZm9ybXMgPSB7c2VsZWN0ZWRIU1Y6IHt2YWx1ZTogbmV3IFRIUkVFLlZlY3RvcjMoYy5oLCBjLnMsIGMudil9fTtcclxuICAgIGNvbnN0IGltYWdlID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjogY29sb3J9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBjb25zdCBjaGFuZ2VDb2xvck9uSG92ZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0YXRlID0ge1xyXG4gICAgICAgIGxpc3RlbjogZmFsc2VcclxuICAgIH07XHJcbiAgICAvL1RPRE8gbWFrZSBzdXJlIGNvbG9yIHBhdGNoIG9jY3VwaWVzIGZ1bGwgd2lkdGguICBBZGQgdGV4dCBsYWJlbCB3aXRoIGhleCB2YWx1ZT9cclxuICAgIGNvbnN0IGdyb3VwID0gY3JlYXRlSW1hZ2VCdXR0b24oe1xyXG4gICAgICAgIHRleHRDcmVhdG9yLCBmdW5jLCBpbWFnZSwgcHJvcGVydHlOYW1lLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgY2hhbmdlQ29sb3JPbkhvdmVyXHJcbiAgICB9KTtcclxuICAgIGdyb3VwLmd1aVR5cGUgPSBcIkNvbG9yUGlja2VyXCI7XHJcblxyXG4gICAgdmFyIHBhbmVsO1xyXG5cclxuICAgIC8vIGNoYW5nZSBjb2xvdXIgaW4gcGxhY2UsIGNvdXJzZSBnYW1tYSBjb21wZW5zYXRpb25cclxuICAgIGZ1bmN0aW9uIGNvbHBvdyhjLCBwPTAuNDU0NSkge1xyXG4gICAgICAgIGMuciA9IE1hdGgucG93KGMuciwgcCk7ICAvLyB1Z2xpZnkgZG9lc24ndCB1bmRlcnN0YW5kICoqXHJcbiAgICAgICAgYy5nID0gTWF0aC5wb3coYy5nLCBwKTsgIC8vIHVnbGlmeSBkb2Vzbid0IHVuZGVyc3RhbmQgKipcclxuICAgICAgICBjLmIgPSBNYXRoLnBvdyhjLmIsIHApOyAgLy8gdWdsaWZ5IGRvZXNuJ3QgdW5kZXJzdGFuZCAqKlxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGNoYW5nZUZuKCkge1xyXG4gICAgICAgIGltYWdlLmNvbG9yLnNldChjb2xvcik7XHJcbiAgICAgICAgY29scG93KGltYWdlLmNvbG9yKTtcclxuICAgICAgICBldmVudHMuZW1pdCgnb25DaGFuZ2UnLCBjb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFuY3lQYW5lbCA9IHRydWU7XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0UGFuZWxQb3NpdGlvbigpIHtcclxuICAgICAgICBpZiAoIXBhbmVsKSByZXR1cm47XHJcbiAgICAgICAgcGFuZWwucG9zaXRpb24uc2V0KDAsIDAsIDUqZGVwdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvZ2dsZURldGFpbFBhbmVsKCkge1xyXG4gICAgICAgIGlmIChwYW5lbCkge1xyXG4gICAgICAgICAgICBwYW5lbC52aXNpYmxlID0gIXBhbmVsLnZpc2libGU7XHJcbiAgICAgICAgICAgIGlmIChwYW5lbC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3IocGFuZWwpO1xyXG4gICAgICAgICAgICBzZXRQYW5lbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB3b3VsZCBiZSBoYW5keSB0byBoYXZlIGEgd2F5IHRvIG1ha2UgbmFycm93ZXIgcGFuZWxcclxuICAgICAgICAgICAgcGFuZWwgPSBkYXQuR1VJVlIuY3JlYXRlKFwiQ29sb3IgQ2hvb3NlclwiKTtcclxuICAgICAgICAgICAgcGFuZWwuaGlkZUhlYWRlcigpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZhbmN5UGFuZWwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IFNWTWF0ZXJpYWwgPSBuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB1bmlmb3JtcyxcclxuICAgICAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IFZlcnRTaGFkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IFNWRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRTViA9IChwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdW5pZm9ybXMuc2VsZWN0ZWRIU1YudmFsdWUueSA9IHAubG9jYWxQb2ludC54O1xyXG4gICAgICAgICAgICAgICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLnogPSBwLmxvY2FsUG9pbnQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIGxldCB3aWRlID0gdHJ1ZSwgYnV0dG9uRGVwdGggPSBMYXlvdXQuQlVUVE9OX0RFUFRILzEwO1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkWFlDb250cm9sbGVyKHNldFNWLCBTVk1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfV0lEVEggLyAyLCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgSE1hdGVyaWFsID0gbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3JtczogdW5pZm9ybXMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBWZXJ0U2hhZGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBIU2xpZGVyRnJhZ1NoYWRlclxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIKHApIHtcclxuICAgICAgICAgICAgICAgICAgICB1bmlmb3Jtcy5zZWxlY3RlZEhTVi52YWx1ZS54ID0gcC5sb2NhbFBvaW50Lng7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IEhTVnRvUkdCKHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRSR0IoYy5yLCBjLmcsIGMuYik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm4oKTtcclxuICAgICAgICAgICAgICAgICAgICBITWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vVE9ETzogY2hlY2sgbGF5b3V0XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGRYWUNvbnRyb2xsZXIoc2V0SCwgSE1hdGVyaWFsLCB3aWRlLCBMYXlvdXQuUEFORUxfSEVJR0hULCBkZXB0aCwgYnV0dG9uRGVwdGgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwuYWRkKGNvbG9yLCAncicsIDAsIDEpLm9uQ2hhbmdlKGNoYW5nZUZuKTtcclxuICAgICAgICAgICAgICAgIHBhbmVsLmFkZChjb2xvciwgJ2cnLCAwLCAxKS5vbkNoYW5nZShjaGFuZ2VGbik7XHJcbiAgICAgICAgICAgICAgICBwYW5lbC5hZGQoY29sb3IsICdiJywgMCwgMSkub25DaGFuZ2UoY2hhbmdlRm4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyb3VwLmFkZChwYW5lbCk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihwYW5lbCk7XHJcbiAgICAgICAgICAgIHNldFBhbmVsUG9zaXRpb24oKTtcclxuICAgICAgICAgICAgcGFuZWwuZm9sZGVyID0gZ3JvdXAuZm9sZGVyOyAvL21pZ2h0IHN0aWxsIHdhbnQgdG8gZG91YmxlIGNoZWNrIGZvbGRlciBoaWVyYXJjaHlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAub25DaGFuZ2UgPSAoY2FsbGJhY2spID0+IHtcclxuICAgICAgICBldmVudHMub24oJ29uQ2hhbmdlJywgY2FsbGJhY2spO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbnRyb2wgPSBncm91cC51cGRhdGVDb250cm9sO1xyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKSB7XHJcbiAgICAgICAgaWYgKHN0YXRlLmxpc3RlbikgbGlzdGVuVXBkYXRlKCk7XHJcbiAgICAgICAgb3JpZ2luYWxVcGRhdGVDb250cm9sKGlucHV0T2JqZWN0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIGxpc3RlblVwZGF0ZSgpIHtcclxuICAgICAgICAvL29iamVjdCByZWYgbWlnaHQgaGF2ZSBjaGFuZ2VkLCBhcyB3ZWxsIGFzIHZhbHVlLlxyXG4gICAgICAgIC8vZXZlbiBpZiByZWYgaGFzbid0IGNoYW5nZWQsIHZhbHVlIHN0aWxsIG1pZ2h0J3ZlLCBhbmQgd2UncmUgbm90IGN1cnJlbnRseSByZWZsZWN0aW5nIHRoYXQuXHJcbiAgICAgICAgY29sb3IgPSBvYmplY3RbcHJvcGVydHlOYW1lXTtcclxuICAgICAgICBpbWFnZS5jb2xvci5jb3B5KGNvbG9yKTtcclxuICAgICAgICBjb2xwb3coaW1hZ2UuY29sb3IpO1xyXG4gICAgICAgIHVuaWZvcm1zLnNlbGVjdGVkSFNWLnZhbHVlLmNvcHkoUkdCdG9IU1YoY29sb3IpKTtcclxuICAgIH1cclxuICAgIGdyb3VwLmxpc3RlbiA9ICgpID0+IHtcclxuICAgICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBncm91cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SID0gMHgyRkExRDY7XHJcbmV4cG9ydCBjb25zdCBISUdITElHSFRfQ09MT1IgPSAweDQzYjVlYTtcclxuZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0NPTE9SID0gMHgwN0FCRjc7XHJcbmV4cG9ydCBjb25zdCBFTUlTU0lWRV9DT0xPUiA9IDB4MjIyMjIyO1xyXG5leHBvcnQgY29uc3QgSElHSExJR0hUX0VNSVNTSVZFX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBPVVRMSU5FX0NPTE9SID0gMHg5OTk5OTk7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0sgPSAweDA2MDYwNjtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9MREVSX0JBQ0sgPSAweDEwMTAxMDtcclxuZXhwb3J0IGNvbnN0IEhJR0hMSUdIVF9CQUNLID0gMHgzMTMxMzE7XHJcbmV4cG9ydCBjb25zdCBJTkFDVElWRV9DT0xPUiA9IDB4MTYxODI5O1xyXG5leHBvcnQgY29uc3QgQ09OVFJPTExFUl9JRF9TTElERVIgPSAweDJmYTFkNjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQ0hFQ0tCT1ggPSAweDgwNjc4NztcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfQlVUVE9OID0gMHhlNjFkNWY7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1RFWFQgPSAweDFlZDM2ZjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfRFJPUERPV04gPSAweGZmZjAwMDtcclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JHX0NPTE9SID0gMHhmZmZmZmY7XHJcbmV4cG9ydCBjb25zdCBEUk9QRE9XTl9GR19DT0xPUiA9IDB4MDAwMDAwO1xyXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQkdfQ09MT1IgPSAweGZmZmZmZjtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9DT0xPUiA9IDB4ZTYxZDVmO1xyXG5leHBvcnQgY29uc3QgQlVUVE9OX0hJR0hMSUdIVF9DT0xPUiA9IDB4ZmEzMTczO1xyXG5leHBvcnQgY29uc3QgU0xJREVSX0JHID0gMHg0NDQ0NDQ7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0JHID0gMHhGMEYwRjA7XHJcbmV4cG9ydCBjb25zdCBURVhUQk9YX0hJR0hMSUdIVF9CRyA9IDB4RkZGRkZGO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yaXplR2VvbWV0cnkoIGdlb21ldHJ5LCBjb2xvciApe1xyXG4gIGNvbnN0IGNvbCA9IG5ldyBUSFJFRS5Db2xvcihjb2xvcik7IFxyXG4gIGxldCBjID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdjb2xvcicpO1xyXG4gIGxldCBhO1xyXG4gIGlmICghYykge1xyXG4gICAgYSA9IG5ldyBGbG9hdDMyQXJyYXkoZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5Lmxlbmd0aCkuZmlsbCgwLjUpO1xyXG4gICAgYyA9IGdlb21ldHJ5LnNldEF0dHJpYnV0ZSgnY29sb3InLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKGEsIDMpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgYSA9IGMuYXJyYXk7XHJcbiAgfVxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrPTMpIHtcclxuICAgIGFbaV0gPSBjb2wucjtcclxuICAgIGFbaSsxXSA9IGNvbC5nO1xyXG4gICAgYVtpKzJdID0gY29sLmI7XHJcbiAgfVxyXG4gIGMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAvLyBnZW9tZXRyeS5mYWNlcy5mb3JFYWNoKCBmdW5jdGlvbihmYWNlKXtcclxuICAvLyAgIGZhY2UuY29sb3Iuc2V0SGV4KGNvbG9yKTtcclxuICAvLyB9KTtcclxuICAvLyBnZW9tZXRyeS5jb2xvcnNOZWVkVXBkYXRlID0gdHJ1ZTtcclxuICByZXR1cm4gZ2VvbWV0cnk7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZVRleHRMYWJlbCwge2NyZWF0ZVRvb2xUaXB9IGZyb20gJy4vdGV4dGxhYmVsJztcclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFwaGljIGZyb20gJy4vZ3JhcGhpYyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tIFwiLi91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRHJvcGRvd24oIHtcclxuICB0ZXh0Q3JlYXRvcixcclxuICBvYmplY3QsXHJcbiAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2UsXHJcbiAgb3B0aW9ucyA9IFtdLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEhcclxufSA9IHt9ICl7XHJcblxyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIG9wZW46IGZhbHNlLFxyXG4gICAgbGlzdGVuOiBmYWxzZVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IERST1BET1dOX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gIGNvbnN0IERST1BET1dOX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgRFJPUERPV05fREVQVEggPSBkZXB0aDtcclxuICBjb25zdCBEUk9QRE9XTl9PUFRJT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTiAqIDEuMjtcclxuICBjb25zdCBEUk9QRE9XTl9NQVJHSU4gPSBMYXlvdXQuUEFORUxfTUFSR0lOICogLTAuNDtcclxuICBjb25zdCBNQVhfRFJPUERPV05fTEFCRUxTX0lOX0NPTFVNTiA9IDI1O1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcImRyb3Bkb3duXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7cHJvcGVydHlOYW1lfV1gO1xyXG5cclxuICAvL2FsbG93IGZvciBwcm9ncmFtbWF0aWMgc2V0LiBBUEkgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIHN0YWJsZS5cclxuICBncm91cC51c2VyRGF0YS5zb3VyY2VPYmplY3QgPSBvYmplY3Q7XHJcbiAgZ3JvdXAudXNlckRhdGEuc291cmNlUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lO1xyXG4gIGdyb3VwLnVzZXJEYXRhLnNldFZhbHVlID0gdiA9PiB7XHJcbiAgICBpZiAob3B0aW9ucy5pbmRleE9mKHYpID09PSAtMSkge1xyXG4gICAgICAvL0kgY291bGQgY29uc2lkZXIgYW5ub3RhdGluZyBHVUkgaXRzZWxmIHdpdGggZXJyb3IgbGFiZWxzLi4uXHJcbiAgICAgIGNvbnNvbGUud2FybihgZGF0LkdVSVZSOiBVbmtub3duIG9wdGlvbiBcIiR7dn1cIiBmb3IgZHJvcGRvd24gXCIke3Byb3BlcnR5TmFtZX1cIi5cXG5WYWxpZCBvcHRpb25zOiBbJHtvcHRpb25zLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHY7XHJcbiAgICBpZiAob25DaGFuZ2VkQ0IpIG9uQ2hhbmdlZENCKG9iamVjdFtwcm9wZXJ0eU5hbWVdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgZ3JvdXAuaGl0c2NhbiA9IFsgcGFuZWwgXTtcclxuXHJcbiAgY29uc3QgbW9kYWxEcm9wZG93biA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIG1vZGFsRHJvcGRvd24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIG1vZGFsRHJvcGRvd24uaGl0c2NhbiA9IFtdO1xyXG4gIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb25zID0gW107XHJcbiAgY29uc3Qgb3B0aW9uTGFiZWxzID0gW107XHJcblxyXG4gIC8vICBmaW5kIGFjdHVhbGx5IHdoaWNoIGxhYmVsIGlzIHNlbGVjdGVkXHJcbiAgY29uc3QgaW5pdGlhbExhYmVsID0gZmluZExhYmVsRnJvbVByb3AoKTtcclxuXHJcblxyXG5cclxuICBmdW5jdGlvbiBmaW5kTGFiZWxGcm9tUHJvcCgpe1xyXG4gICAgaWYoIEFycmF5LmlzQXJyYXkoIG9wdGlvbnMgKSApe1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5maW5kKCBmdW5jdGlvbiggb3B0aW9uTmFtZSApe1xyXG4gICAgICAgIHJldHVybiBvcHRpb25OYW1lID09PSBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZpbmQoIGZ1bmN0aW9uKCBvcHRpb25OYW1lICl7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eU5hbWVdID09PSBvcHRpb25zWyBvcHRpb25OYW1lIF07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlT3B0aW9uKCBsYWJlbFRleHQsIGlzT3B0aW9uICl7XHJcbiAgICAvL1RPRE86IHRydW5jYXRlIGxvbmcgbGFiZWxUZXh0LCBtYXliZSBzaG93IGZ1bGwgdmVyc2lvbiB3aGVuIGhvdmVyaW5nLlxyXG4gICAgY29uc3QgbGFiZWwgPSBjcmVhdGVUZXh0TGFiZWwoXHJcbiAgICAgIHRleHRDcmVhdG9yLCBsYWJlbFRleHQsXHJcbiAgICAgIC8vY2hlY2sgd2lkdGggdmFsdWUuLi5cclxuICAgICAgRFJPUERPV05fV0lEVEgsIGRlcHRoLFxyXG4gICAgICBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IsIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUixcclxuICAgICAgMC44NjZcclxuICAgICk7XHJcbiAgICBsYWJlbC5iYWNrLmd1aVR5cGUgPSAnZHJvcGRvd25PcHRpb24nO1xyXG4gICAgbGFiZWwuZ3VpVHlwZSA9ICdkcm9wZG93bk9wdGlvbic7XHJcblxyXG4gICAgaWYgKGlzT3B0aW9uKSBtb2RhbERyb3Bkb3duLmhpdHNjYW4ucHVzaCggbGFiZWwuYmFjayApO1xyXG4gICAgZWxzZSBncm91cC5oaXRzY2FuLnB1c2goIGxhYmVsLmJhY2sgKTtcclxuICAgIGNvbnN0IGxhYmVsSW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggbGFiZWwuYmFjayApO1xyXG4gICAgbGFiZWxJbnRlcmFjdGlvbi5ndWlUeXBlID0gJ2Ryb3Bkb3duT3B0aW9uJztcclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLnB1c2goIGxhYmVsSW50ZXJhY3Rpb24gKTtcclxuICAgIG9wdGlvbkxhYmVscy5wdXNoKCBsYWJlbCApO1xyXG5cclxuXHJcbiAgICBpZiggaXNPcHRpb24gKXtcclxuICAgICAgbGFiZWxJbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgICAgIHN0YXRlLm9wZW4gPSBtb2RhbERyb3Bkb3duLnZpc2libGU7XHJcbiAgICAgICAgc2VsZWN0ZWRMYWJlbC5zZXRTdHJpbmcoIGxhYmVsVGV4dCApO1xyXG5cclxuICAgICAgICBsZXQgcHJvcGVydHlDaGFuZ2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IGxhYmVsVGV4dDtcclxuICAgICAgICAgIGlmKCBwcm9wZXJ0eUNoYW5nZWQgKXtcclxuICAgICAgICAgICAgb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9IGxhYmVsVGV4dDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHByb3BlcnR5Q2hhbmdlZCA9IG9iamVjdFsgcHJvcGVydHlOYW1lIF0gIT09IG9wdGlvbnNbIGxhYmVsVGV4dCBdO1xyXG4gICAgICAgICAgaWYoIHByb3BlcnR5Q2hhbmdlZCApe1xyXG4gICAgICAgICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gb3B0aW9uc1sgbGFiZWxUZXh0IF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgY29sbGFwc2VPcHRpb25zKCk7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiggb25DaGFuZ2VkQ0IgJiYgcHJvcGVydHlDaGFuZ2VkICl7XHJcbiAgICAgICAgICBvbkNoYW5nZWRDQiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIG9uQ2hvb3NlQ0IgKXtcclxuICAgICAgICAgIG9uQ2hvb3NlQ0IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGZ1bmN0aW9uKCBwICl7XHJcbiAgICAgICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTtcclxuICAgICAgICBpZiggc3RhdGUub3BlbiA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIG9wZW5PcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICBjb2xsYXBzZU9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBsYWJlbC5pc09wdGlvbiA9IGlzT3B0aW9uO1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY29sbGFwc2VPcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gZmFsc2U7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIuY2xlYXJNb2RhbEVkaXRvcigpOyAvL3Nob3VsZCB3ZSBjaGVjayBpZiBpdCB3YXNuJ3Qgc2V0IHRvIHNvbWV0aGluZyBlbHNlPz9cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG9wZW5PcHRpb25zKCl7XHJcbiAgICBzdGF0ZS5vcGVuID0gdHJ1ZTtcclxuICAgIGdyb3VwLmZvbGRlci5zZXRNb2RhbEVkaXRvcihtb2RhbERyb3Bkb3duKTtcclxuICAgIC8vcmV0dXJuO1xyXG4gICAgLy9sYWJlbC5pc09wdGlvbiBzZWVtcyBtb3N0bHkgcmVkdW5kYW50LlxyXG4gICAgLy9sYWJlbHMgJiBiYWNrcyBzaG91bGQgYmUgYWRkZWQgdG8gYSBncm91cCB0byBiZSB1c2VkIGFzICdtb2RhbCBlZGl0b3InLCBcclxuICAgIC8vbWFraW5nIGV2ZXJ5dGhpbmcgdmlzaWJsZSAvIGludmlzaWJsZSB3aXRoIG9uZSBwcm9wZXJ0eVxyXG4gICAgLy8obmIsIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdyBpbiBhIGdyb3VwIHVzZWQgYXMgJ21vZGFsIGVkaXRvcicsIHdlIHN0aWxsIG5lZWQgdG8gc2V0IHZpc2libGUuLi5cclxuICAgIC8vc2VlIGNvbW1lbnQgaW4gaW5kZXguanMgZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCkpXHJcbiAgICBvcHRpb25MYWJlbHMuZm9yRWFjaCggZnVuY3Rpb24oIGxhYmVsICl7XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGxhYmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIGxhYmVsLmJhY2sudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIGJhc2Ugb3B0aW9uXHJcbiAgY29uc3Qgc2VsZWN0ZWRMYWJlbCA9IGNyZWF0ZU9wdGlvbiggaW5pdGlhbExhYmVsIHx8ICcgJywgZmFsc2UgKTtcclxuICBzZWxlY3RlZExhYmVsLnBvc2l0aW9uLnggPSBMYXlvdXQuUEFORUxfTUFSR0lOICogMC41ICsgd2lkdGggKiAwLjU7XHJcbiAgc2VsZWN0ZWRMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgXHJcbiAgY29uc3QgZG93bkFycm93ID0gR3JhcGhpYy5kb3duQXJyb3coKTtcclxuICAvLyBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggZG93bkFycm93Lmdlb21ldHJ5LCBDb2xvcnMuRFJPUERPV05fRkdfQ09MT1IgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCBEUk9QRE9XTl9XSURUSCAtIDAuMDQsIDAsIGRlcHRoICogMS4wMSApO1xyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNvbmZpZ3VyZUxhYmVsUG9zaXRpb24oIGxhYmVsLCBpbmRleCApe1xyXG4gICAgbGFiZWwucG9zaXRpb24ueSA9IC1EUk9QRE9XTl9NQVJHSU4gLSAoaW5kZXglTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4rMSkgKiAoIERST1BET1dOX09QVElPTl9IRUlHSFQgKTtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICAgIGxhYmVsLnBvc2l0aW9uLnggKz0gRFJPUERPV05fV0lEVEggKiBNYXRoLmZsb29yKGluZGV4IC8gTUFYX0RST1BET1dOX0xBQkVMU19JTl9DT0xVTU4pO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gb3B0aW9uVG9MYWJlbCggb3B0aW9uTmFtZSwgaW5kZXggKXtcclxuICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gY3JlYXRlT3B0aW9uKCBvcHRpb25OYW1lLCB0cnVlICk7XHJcbiAgICBjb25maWd1cmVMYWJlbFBvc2l0aW9uKCBvcHRpb25MYWJlbCwgaW5kZXggKTtcclxuICAgIHJldHVybiBvcHRpb25MYWJlbDtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkTGFiZWwuYWRkKG1vZGFsRHJvcGRvd24pO1xyXG4gIGlmKCBBcnJheS5pc0FycmF5KCBvcHRpb25zICkgKXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKC4uLm9wdGlvbnMubWFwKG9wdGlvblRvTGFiZWwpKTtcclxuICB9XHJcbiAgZWxzZXtcclxuICAgIG1vZGFsRHJvcGRvd24uYWRkKCAuLi5PYmplY3Qua2V5cyhvcHRpb25zKS5tYXAoIG9wdGlvblRvTGFiZWwgKSApO1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbGxhcHNlT3B0aW9ucygpO1xyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9EUk9QRE9XTiApO1xyXG4gIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcblxyXG5cclxuICBjb25zdCBib3JkZXJCb3ggPSBMYXlvdXQuY3JlYXRlUGFuZWwoIERST1BET1dOX1dJRFRIICsgTGF5b3V0LkJPUkRFUl9USElDS05FU1MsIERST1BET1dOX0hFSUdIVCArIExheW91dC5CT1JERVJfVEhJQ0tORVNTICogMC41LCBEUk9QRE9XTl9ERVBUSCwgdHJ1ZSApO1xyXG4gIGJvcmRlckJveC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4MWY3YWU3ICk7XHJcbiAgYm9yZGVyQm94LnBvc2l0aW9uLnggPSAtTGF5b3V0LkJPUkRFUl9USElDS05FU1MgKiAwLjUgKyB3aWR0aCAqIDAuNTtcclxuICBib3JkZXJCb3gucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgY29udHJvbGxlcklELCBzZWxlY3RlZExhYmVsLCBib3JkZXJCb3ggKTtcclxuXHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG5cclxuICAgIGxhYmVsSW50ZXJhY3Rpb25zLmZvckVhY2goIGZ1bmN0aW9uKCBpbnRlcmFjdGlvbiwgaW5kZXggKXtcclxuICAgICAgY29uc3QgbGFiZWwgPSBvcHRpb25MYWJlbHNbIGluZGV4IF07XHJcbiAgICAgIGlmKCBsYWJlbC5pc09wdGlvbiApe1xyXG4gICAgICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgICAgICBDb2xvcnMuY29sb3JpemVHZW9tZXRyeSggbGFiZWwuYmFjay5nZW9tZXRyeSwgQ29sb3JzLkhJR0hMSUdIVF9DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGxhYmVsLmJhY2suZ2VvbWV0cnksIENvbG9ycy5EUk9QRE9XTl9CR19DT0xPUiApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3RhdGUub3BlbiA9IG1vZGFsRHJvcGRvd24udmlzaWJsZTsgLy9hcyBvZiB0aGlzIHdyaXRpbmcsIHRoaXMgaXMgYmVsaWV2ZWQgdG8gYmUgcmVsaWFibGUsIGJ1dCBiZXdhcmUgZHJhZ29ucywgZnV0dXJlIHJlYWRlci5cclxuICAgIGlmIChncm91cC51c2VyRGF0YS50aXBPYmopIHtcclxuICAgICAgLy8gaWYgKGxhYmVsSW50ZXJhY3Rpb25zWzBdLmhvdmVyaW5nKCkpIHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhncm91cC51c2VyRGF0YS50aXApO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIHNldFZpc2liaWxpdHkocGFuZWwsIGdyb3VwLnVzZXJEYXRhLnRpcE9iaiwgbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICBpZiggbGFiZWxJbnRlcmFjdGlvbnNbMF0uaG92ZXJpbmcoKSB8fCBzdGF0ZS5vcGVuICl7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGJvcmRlckJveC52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsZXQgb25DaGFuZ2VkQ0I7XHJcbiAgbGV0IG9uRmluaXNoQ2hhbmdlQ0I7XHJcbiAgbGV0IG9uQ2hvb3NlQ0I7XHJcblxyXG4gIGdyb3VwLm9uQ2hhbmdlID0gZnVuY3Rpb24oIGNhbGxiYWNrICl7XHJcbiAgICBvbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcbiAgZ3JvdXAub25DaG9vc2UgPSBmdW5jdGlvbiggY2FsbGJhY2sgKXtcclxuICAgIG9uQ2hvb3NlQ0IgPSBjYWxsYmFjaztcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLmxpc3RlbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpZiggc3RhdGUubGlzdGVuICl7XHJcbiAgICAgIHNlbGVjdGVkTGFiZWwuc2V0U3RyaW5nKCBmaW5kTGFiZWxGcm9tUHJvcCgpICk7XHJcbiAgICB9XHJcbiAgICBsYWJlbEludGVyYWN0aW9ucy5mb3JFYWNoKCBmdW5jdGlvbiggbGFiZWxJbnRlcmFjdGlvbiApe1xyXG4gICAgICBsYWJlbEludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLnNldFRvb2xUaXAgPSB0aXAgPT4ge1xyXG4gICAgY29uc3Qgb2JqID0gZ3JvdXA7XHJcbiAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgLy9UT0RPOiBwYXkgbW9yZSBhdHRlbnRpb24gdG8gbGF5b3V0IGNvbmZpZyAvIG1ha2UgY3JlYXRlVG9vbFRpcCBoYXZlIHNpbXBsZXIgYXJndW1lbnRzXHJcbiAgICAvL25iLCBvYmouc3BhY2luZyBtYXkgYmUgdW5kZWZpbmVkLCBidXQgc2hvdWxkIG5vdyBoYXZlIHNlbnNpYmxlIGRlZmF1bHQuXHJcbiAgICBvYmoudXNlckRhdGEudGlwT2JqID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgdGlwLCBMYXlvdXQuRk9MREVSX1dJRFRILCBvYmouc3BhY2luZywgTGF5b3V0LkJVVFRPTl9ERVBUSCk7XHJcbiAgICAvLy8vLS0tIHNlZSBsYWJlbEludGVyYWN0aW9uc1swXSBhYm92ZSBmb3IgaGFuZGxpbmcgdXBkYXRlLi4uXHJcbiAgfVxyXG4gIGdyb3VwLmdldFRvb2xUaXAgPSAoKSA9PiBncm91cC51c2VyRGF0YS50aXA7XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCB7IGNyZWF0ZVRvb2xUaXAgfSBmcm9tICcuL3RleHRsYWJlbCc7XHJcbmltcG9ydCBjcmVhdGVJbnRlcmFjdGlvbiBmcm9tICcuL2ludGVyYWN0aW9uJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxuaW1wb3J0ICogYXMgR3JhcGhpYyBmcm9tICcuL2dyYXBoaWMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCAqIGFzIFBhbGV0dGUgZnJvbSAnLi9wYWxldHRlJztcclxuaW1wb3J0IHsgZ2V0VG9wTGV2ZWxGb2xkZXIsIHNldEJveEZyb21PYmplY3QsIHNldFZpc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgRk9MREVSX1dJRFRIIH0gZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuLy9JZiB5b3UncmUgbG9va2luZyBmb3IgbWFpbiBjcmVhdGVGb2xkZXIgZnVuY3Rpb24sIGl0J3MgZnVydGhlciBiZWxvdy4uLlxyXG5cclxuLyoqXHJcbiAqIE5vdCBlbnRpcmVseSBzdXJlIGFib3V0IHN0YXJ0aW5nIHRvIGFkZCB0aGlzIGtpbmQgb2YgZ2xvYmFsIHN0YXRlIG1hbmFhZ2VtZW50IGhlcmUuLi5cclxuICogVGhpcyBpcyBmb3Igei1vcmRlciBpbiAyZCBvcnRob2dyYXBoaWMgbW9kZSwgYW5kIG1heWJlIHNvbWUgb3RoZXIgdGhpbmdzIG9uZSBkYXkuXHJcbiAqL1xyXG5jb25zdCB0b3BGb2xkZXJTdGFjayA9IFtdO1xyXG5cclxuY29uc3Qgc2NyYXRjaEZvbGRlckJveCA9IG5ldyBUSFJFRS5Cb3gzKCksIHNjcmF0Y2hDYW1Cb3ggPSBuZXcgVEhSRUUuQm94MygpLCBzY3JhdGNoU2l6ZSA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcblxyXG5mdW5jdGlvbiBvcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQoKSB7XHJcbiAgY29uc3QgY2FtID0gdG9wRm9sZGVyU3RhY2tbMF0udXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgaWYgKCFjYW0gfHwgdG9wRm9sZGVyU3RhY2subGVuZ3RoIDw9IDEpIHJldHVybjtcclxuICAvL2NhbUJveFNldHVwKGNhbSk7XHJcbiAgY29uc3QgdGZzID0gdG9wRm9sZGVyU3RhY2suZmlsdGVyKHggPT4geC52aXNpYmxlKTtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0ZnMubGVuZ3RoO1xyXG4gIC8vIEF0dGVtcHQgdG8ga2VlcCBzb21lIG9sZCB6IHZhbHVlcyB0aHJldyBvdGhlcnMgb3V0LFxyXG4gIC8vIGVzcGVjaWFsbHkgaWYgbWFueSBmb2xkZXJzIHVuZG9ja2VkIGluIHdoaWNoIGNhc2Ugd2UgaGl0IHRoZSBcIkdVSVZSIFdhcm5pbmdcIiBiZWxvd1xyXG4gIC8vIGFuZCBzb21ldGltZXMgdGhlIG1lbnVzIGZyb3plLlxyXG4gIC8vIFNvIHdlIHVzZSB0aGUgc2ltcGxlciB6IC0gaS9uIGJlbG93LlxyXG4gIC8vY29uc3QgenMgPSB0ZnMubWFwKGYgPT4gZi5wb3NpdGlvbi56KS5zb3J0KChhLGIpPT5hLWIpO1xyXG4gIC8venNbLTFdID0gLTk5OTk7IC8vIEkgc3VwcG9zZSB0aGlzIGlzIHRvIGRlYWwgd2l0aCBhY2Nlc3NpbmcgenNbaS0xXSBiZWxvdyDCr1xcXyjjg4QpXy/Cr1xyXG4gIC8venMuZm9yRWFjaCggKHosaSkgPT4genNbaV0gPSBNYXRoLm1heCh6c1tpXSwgenNbaS0xXSArIDEwKkxheW91dC5QQU5FTF9ERVBUSCkpOyAvLyBpbiBjYXNlIG9mIGVxdWFsc1xyXG4gIFxyXG4gIHRmcy5mb3JFYWNoKChmLCBpKSA9PiB7XHJcbiAgICAvL2xldCB6ID0gLTAuOSpmYXIgKyBpKjEwKkxheW91dC5QQU5FTF9ERVBUSDtcclxuICAgIC8vY29uc3QgeiA9IHpzW2ldO1xyXG4gICAgY29uc3QgeiA9IGkvbjtcclxuICAgIGlmICh6ICE9PSBmLnBvc2l0aW9uLnopIHtcclxuICAgICAgZi5wb3NpdGlvbi56ID0gejtcclxuICAgICAgZi51cGRhdGVNYXRyaXgoKTtcclxuICAgICAgZi5maXhGb2xkZXJQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlmICh0ZnNbbi0xXS5wb3NpdGlvbi56ID49IG5lYXIgLSBMYXlvdXQuUEFORUxfREVQVEgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiR1VJVlIgV2FybmluZzogbGlrZWx5IHByb2JsZW0gd2l0aCB6LW9yZGVyIGluIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dFwiKTtcclxuICB9XHJcbiAgLy9jb25zb2xlLmxvZyhgWyR7dG9wRm9sZGVyU3RhY2subWFwKGY9PmYuZm9sZGVyTmFtZSArICdcXHQ6ICcgKyBmLnBvc2l0aW9uLnopLmpvaW4oJ1xcbicpfV1gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtQm94U2V0dXAoY2FtKSB7XHJcbiAgaWYgKCFjYW0uaXNPcnRob2dyYXBoaWNDYW1lcmEpIHJldHVybjtcclxuICBjb25zdCBuZWFyID0gY2FtLm5lYXIsIGZhciA9IGNhbS5mYXIsIG4gPSB0b3BGb2xkZXJTdGFjay5sZW5ndGg7XHJcbiAgY29uc3QgbCA9IGNhbS5sZWZ0LCByID0gY2FtLnJpZ2h0LCB0ID0gY2FtLnRvcCwgYiA9IGNhbS5ib3R0b207XHJcbiAgY29uc3QgeiA9IGNhbS5wb3NpdGlvbi56OyAvL25vdCBzdHJpY3RseSByaWdodC4uLlxyXG4gIHNjcmF0Y2hDYW1Cb3gubWluLnNldChsLCBiLCAtZmFyICsgeik7XHJcbiAgc2NyYXRjaENhbUJveC5tYXguc2V0KHIsIHQsIC1uZWFyICsgeik7XHJcbiAgcmV0dXJuIHNjcmF0Y2hDYW1Cb3g7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUZvbGRlcih7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgbmFtZSxcclxuICBndWlBZGQsXHJcbiAgZ3VpUmVtb3ZlLFxyXG4gIGFkZENvbnRyb2xsZXJGdW5jcyxcclxuICBnbG9iYWxDb250cm9sbGVyc1xyXG59ID0ge30gKXtcclxuXHJcbiAgY29uc3QgTUFYX0ZPTERFUl9JVEVNU19JTl9DT0xVTU4gPSA0MDtcclxuXHJcbiAgY29uc3Qgd2lkdGggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gIGNvbnN0IGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIO1xyXG5cclxuICBjb25zdCBzdGF0ZSA9IHtcclxuICAgIGNvbGxhcHNlZDogZmFsc2UsXHJcbiAgICBwcmV2aW91c1BhcmVudDogdW5kZWZpbmVkXHJcbiAgfTtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJmb2xkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtuYW1lfV1gO1xyXG5cclxuICBjb25zdCBjb2xsYXBzZUdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuYWRkKCBjb2xsYXBzZUdyb3VwICk7XHJcblxyXG4gIHZhciBpc0FjY29yZGlvbiA9IGZhbHNlO1xyXG4gIC8qKiBXaGVuIHRydWUsIHdpbGwga2VlcCBvbmx5IG9uZSBjaGlsZCBmb2xkZXIgb2YgdGhpcyBmb2xkZXIgb3BlbiBhdCBhIHRpbWUuXHJcbiAgICogU2libGluZ3MgYXV0b21hdGljYWxseSBjbG9zZS5cclxuICAgKi9cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnYWNjb3JkaW9uJywge1xyXG4gICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBpc0FjY29yZGlvbjtcclxuICAgIH0sXHJcbiAgICBzZXQ6ICggbmV3VmFsdWUgKSA9PiB7XHJcbiAgICAgIGlmICggbmV3VmFsdWUgJiYgIWlzQWNjb3JkaW9uICkgZ3JvdXAuZ3VpQ2hpbGRyZW4uZmlsdGVyKCBjPT5jLmlzRm9sZGVyICkubWFwKCBjPT5jLmNsb3NlKCkgKTtcclxuICAgICAgaXNBY2NvcmRpb24gPSBuZXdWYWx1ZTtcclxuICAgICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvL2ZsYWcgdGhlIG5lZWQgZm9yIHBlcmZvcm1pbmcgbGF5b3V0IG9mIHRoZSBmb2xkZXIgaGllcmFyY2h5IGluIHdoaWNoIHRoaXMgaXMgY29udGFpbmVkLlxyXG4gIGdyb3VwLnJlcXVlc3RMYXlvdXQgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAodG9wRm9sZGVyLnVzZXJEYXRhLmxheW91dEluUHJvZ3Jlc3MpIHtcclxuICAgICAgY29uc29sZS5sb2coYHJlcXVlc3RlZCBsYXlvdXQgb2YgZm9sZGVyICR7Z3JvdXAuZm9sZGVyTmFtZX0gd2hpbGUgbGF5b3V0IGFscmVhZHkgaW4gcHJvZ3Jlc3MuLi5gKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3RvcEZvbGRlci5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9zaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBpbmRleC5qcyB1cGRhdGUoPykgZm9yIGVhY2ggdG9wRm9sZGVyLCB0aGVuIGZyb20gd2l0aGluIHBlcmZvcm1MYXlvdXQoKSBmb3IgZWFjaCBjaGlsZCBmb2xkZXJcclxuICBncm91cC5wZXJmb3JtTGF5b3V0ID0gcGVyZm9ybUxheW91dDtcclxuXHJcbiAgY29uc3Qgc3RyYWlnaHRSb3RhdGlvbiA9IG5ldyBUSFJFRS5RdWF0ZXJuaW9uKCk7XHJcbiAgLy9wcm92aWRlIGFyZ3VtZW50cyBmb3IgaG93IGNvbnN0cmFpbmVkIHRvIGJlLCBhbmQgcmUtdXNlIHNhbWUgZnVuY3Rpb24gYm90aCBvbiBkZXRhY2ggYW5kIGVsc2V3aGVyZT9cclxuICBncm91cC5maXhGb2xkZXJQb3NpdGlvbiA9IGZ1bmN0aW9uKHRocmVzaD0wLjAxKSB7XHJcbiAgICBjb25zdCBmID0gdGhpcztcclxuICAgIGlmICghZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgcmV0dXJuO1xyXG4gICAgLy9hbHdheXMgZm9yY2Ugcm90YXRpb24gc3RyYWlnaHQgZm9yd2FyZC4uLlxyXG4gICAgZi5zZXRSb3RhdGlvbkZyb21RdWF0ZXJuaW9uKHN0cmFpZ2h0Um90YXRpb24pO1xyXG5cclxuICAgIC8vd2UgbmVlZCB0byBhdm9pZCBOYU4gYmVjYXVzZSBvZiBUZXh0R2VvbWV0cnkgcG9zaXRpb24gaGF2aW5nIGl0ZW1TaXplID09IDIgd2hpY2ggdXBzZXRzIFZlY3RvcjMuZnJvbUJ1ZmZlckF0dHJpYnV0ZVxyXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbXJkb29iL3RocmVlLmpzL2lzc3Vlcy8xNDM1MlxyXG4gICAgLy9tYXliZSBJIGNvdWxkIHVzZSBhIEJveDIgYW55d2F5IHNpbmNlIDNkIG1pZ2h0IGp1c3QgY29uZnVzZSB0aGluZ3MuXHJcbiAgICBjb25zdCBib3ggPSBzZXRCb3hGcm9tT2JqZWN0KHNjcmF0Y2hGb2xkZXJCb3gsIGYpO1xyXG4gICAgY29uc3QgYm94VyA9IGJveC5tYXgueCAtIGJveC5taW4ueCwgYm94SCA9IGJveC5tYXgueS1ib3gubWF4Lnk7XHJcbiAgICBcclxuICAgIGNvbnN0IGNhbSA9IGYudXNlckRhdGEuaXNPcnRob2dyYXBoaWM7XHJcbiAgICBjb25zdCBjYW1Cb3ggPSBjYW1Cb3hTZXR1cChjYW0pOyAvL2JpdCB3YXN0ZWZ1bCB0byBjYWxsIHRoaXMgaGVyZSwgYnV0IGluc2lnbmlmaWNhbnQuXHJcbiAgICAvL3JlYWxseSwgSSB3YW50IHRvIGtub3cgaWYgaXQncyAnbW9zdGx5JyBpbnZpc2libGUuXHJcbiAgICAvL1VzaW5nIHR3byBib3hlcywgcmF0aGVyIHRoYW4gZnJ1c3R1bS5zZXRGcm9tTWF0cml4KCBtYXQubXVsdGlwbHlNYXRyaWNlcyggY2FtLnByb2plY3Rpb25NYXRyaXgsIGNhbS5tYXRyaXhXb3JsZEludmVyc2UgKSApO1xyXG4gICAgLy8oZnJ1c3R1bSBpcyB1bm5lY2Vzc2FyeSAqY291Z2gqaWYgd2UgYXNzdW1lIG9ydGhvZ3JhcGhpYyBwZXJzcGVjdGl2ZSwgbm8gY2FtZXJhIHRyYW5zZm9ybSAmIGFyZSBnZW5lcmFsbHkgbGF4IGFib3V0IHoqKVxyXG4gICAgY29uc3QgaW50ZXJzZWN0aW9uID0gYm94LmludGVyc2VjdChjYW1Cb3gpOyAvL2NhcmVmdWwgb2Ygb3JkZXI7IGludGVyc2VjdCgpIG11dGF0ZXNcclxuICAgIC8vKFhYWDogc3RyaWN0bHkgc3BlYWtpbmcsIGlkZWFsbHkgSSB3b3VsZCB0YWtlIGNhbWVyYSBtYXRyaXhXb3JsZCBpbnRvIGFjY291bnQgaWYgSSB3YW50IHRvIGJlIHByb3BlcilcclxuICAgIC8vKG1pZ2h0IGp1c3QgbWFrZSBsb2cgYSB3YXJuaW5nIGlmIGl0J3Mgc2V0IGhvdyBJIGRvbid0IGV4cGVjdCBpdCwgYnV0IHByZWZlciBub3QgdG8gbGVhdmUgdHJhcHMuKVxyXG4gICAgXHJcbiAgICAvL2xvb2sgYXQgZGltZW5zaW9ucyBvZiBpbnRlcnNlY3Rpb24gYW5kIGZvcmNlIGlud2FyZHMgaWYgbmVjZXNzYXJ5Li4uXHJcbiAgICBjb25zdCBpbnRlcnNlY3Rpb25TaXplID0gaW50ZXJzZWN0aW9uLmdldFNpemUoc2NyYXRjaFNpemUpO1xyXG4gICAgY29uc3Qgc2NyZWVuVyA9IGNhbS5yaWdodCAtIGNhbS5sZWZ0LCBzY3JlZW5IID0gY2FtLnRvcCAtIGNhbS5ib3R0b207XHJcbiAgICAvL3dvcmsgaW4gdW5pdHMgYXMgZnJhY3Rpb24gb2YgYm94IHdpZHRoIChhbHRob3VnaCB0aGF0J3Mgbm90IGEgZ3JlYXQgaWRlYSB3aXRoIG11bHRpLWNvbHVtbiBmb2xkZXJzKVxyXG4gICAgaW50ZXJzZWN0aW9uU2l6ZS54IC89IGJveFc7IGludGVyc2VjdGlvblNpemUueSAvPSBib3hXO1xyXG4gICAgbGV0IG5lZWRzVXBkYXRlID0gZmFsc2U7XHJcbiAgICAvL2NvbnNvbGUubG9nKGAke2YuZm9sZGVyTmFtZX06ICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJzZWN0aW9uU2l6ZSl9LCB0aHJlc2g6ICR7dGhyZXNofWApO1xyXG4gICAgaWYgKGludGVyc2VjdGlvblNpemUueCA8IHRocmVzaCkgeyAvL1RPRE86IHBhcmFtYXRlcmlzZSAvIG5vbi1tYWdpYy1udW1iZXJcclxuICAgICAgLy9UT0RPIHdvcmsgb3V0IHdoaWNoIHNpZGUgd2UncmUgb24sIG1vdmUgYnkgb2JqZWN0IHdpZHRoLi4uXHJcbiAgICAgIGYucG9zaXRpb24ueCA9IGNhbS5sZWZ0ICsgc2NyZWVuVy8yO1xyXG4gICAgICBuZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaW50ZXJzZWN0aW9uU2l6ZS55IDwgdGhyZXNoKSB7XHJcbiAgICAgIGYucG9zaXRpb24ueSA9IGNhbS5ib3R0b20gKyBzY3JlZW5ILzI7XHJcbiAgICAgIG5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChuZWVkc1VwZGF0ZSkgZi51cGRhdGVNYXRyaXgoKTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmlzQ29sbGFwc2VkID0gKCkgPT4geyByZXR1cm4gc3RhdGUuY29sbGFwc2VkIH1cclxuICBcclxuICAvL3VzZWZ1bCB0byBoYXZlIGFjY2VzcyB0byB0aGlzIGFzIHdlbGwuIFVzaW5nIGluIHJlbW92ZSBpbXBsZW1lbnRhdGlvblxyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2d1aUNoaWxkcmVuJywge1xyXG4gICAgLy9wZXJoYXBzIG1vZGFsRWRpdG9yIHNob3VsZCBhbHNvIGNvdW50IGFzIGEgbWVtYmVyIG9mIHRoaXMuLi5cclxuICAgIC8vY3VycmVudGx5IGNhbid0IHNlZSBhbnl0aGluZyBpbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHdvdWxkIHJlcXVpcmUgdGhhdFxyXG4gICAgLy8tLSBhZGRpbmcgaGVhZGVySXRlbXMgdGhvdWdoLCBzbyB0aGV5J2xsIGdldCBwaWNrZWQgdXAgYnkgcmVtb3ZlKClcclxuICAgIC8vIC0gbWF5YmUgc2FtZSBzaG91bGQgYXBwbHkgdG8gbW9kYWxFZGl0b3JcclxuICAgIGdldDogKCkgPT4geyByZXR1cm4gWyAuLi5jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLCAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBdIH1cclxuICB9KTtcclxuICAvLyByZXR1cm5zIHRydWUgaWYgYWxsIG9mIHRoZSBzdXBwbGllZCBhcmdzIGFyZSBtZW1iZXJzIG9mIHRoaXMgZm9sZGVyXHJcbiAgZ3JvdXAuaGFzQ2hpbGQgPSBmdW5jdGlvbiAoIC4uLmFyZ3MgKXtcclxuICAgIHJldHVybiAhYXJncy5pbmNsdWRlcygob2JqKSA9PiB7IHJldHVybiBncm91cC5ndWlDaGlsZHJlbi5pbmRleE9mKG9iaikgPT09IC0xfSk7XHJcbiAgfVxyXG5cclxuICBncm91cC5mb2xkZXJOYW1lID0gbmFtZTsgLy9mb3IgZGVidWdnaW5nXHJcbiAgXHJcbiAgLy8gIFllYWguIEdyb3NzLlxyXG4gIGNvbnN0IGFkZE9yaWdpbmFsID0gVEhSRUUuR3JvdXAucHJvdG90eXBlLmFkZDtcclxuICAvL2FzIGxvbmcgYXMgbm8tb25lIGV4cGVjdHMgdGhpcyB0byBiZWhhdmUgbGlrZSBhIHJlZ3VsYXIgVEhSRUUuR3JvdXAsIHRoZSBjaGFuZ2VkIGRlZmluaXRpb24gb2YgcmVtb3ZlIHNob3VsZG4ndCBodXJ0XHJcbiAgY29uc3QgcmVtb3ZlT3JpZ2luYWwgPSBUSFJFRS5Hcm91cC5wcm90b3R5cGUucmVtb3ZlOyBcclxuXHJcbiAgZnVuY3Rpb24gYWRkSW1wbCggbyApe1xyXG4gICAgLy8gSSBjb3VsZCBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBhcyBwYXJ0IG9mIGEgcmVmYWN0b3IgdG8gcGxhY2UgZXZlcnl0aGluZyBhdCB0b3BGb2xkZXIgbGV2ZWwuLi5cclxuICAgIC8vIGlzIHRoYXQgYSBnb29kIGlkZWEsIG9yIGEgYmFkIGlkZWE/XHJcbiAgICBhZGRPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuICBmdW5jdGlvbiByZW1vdmVJbXBsKCBvICl7XHJcbiAgICByZW1vdmVPcmlnaW5hbC5jYWxsKCBncm91cCwgbyApO1xyXG4gIH1cclxuXHJcbiAgLy9hZGRJbXBsKCBjb2xsYXBzZUdyb3VwICk7IC8vcmVkdW5kYW50LlxyXG5cclxuICBjb25zdCBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCwgdHJ1ZSApO1xyXG4gIGFkZEltcGwoIHBhbmVsICk7XHJcblxyXG4gIGNvbnN0IGRlc2NyaXB0b3JMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggbmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOICogMS41O1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aDtcclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCApO1xyXG5cclxuICBjb25zdCBkb3duQXJyb3cgPSBMYXlvdXQuY3JlYXRlRG93bkFycm93KCk7XHJcbiAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIGRvd25BcnJvdy5nZW9tZXRyeSwgMHhmZmZmZmYgKTtcclxuICBkb3duQXJyb3cucG9zaXRpb24uc2V0KCAwLjA1LCAwLCBkZXB0aCAgKiAxLjAxICk7XHJcbiAgcGFuZWwuYWRkKCBkb3duQXJyb3cgKTtcclxuXHJcbiAgY29uc3QgZ3JhYmJlciA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIExheW91dC5GT0xERVJfR1JBQl9IRUlHSFQsIGRlcHRoLCB0cnVlICk7XHJcbiAgZ3JhYmJlci5wb3NpdGlvbi55ID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKiAwLjg2OyAvL1hYWDogbWFnaWMgbnVtYmVyXHJcbiAgZ3JhYmJlci5uYW1lID0gJ2dyYWJiZXInO1xyXG4gIGFkZEltcGwoIGdyYWJiZXIgKTtcclxuXHJcbiAgY29uc3QgZ3JhYkJhciA9IEdyYXBoaWMuZ3JhYkJhcigpO1xyXG4gIGdyYWJCYXIucG9zaXRpb24uc2V0KCB3aWR0aCAqIDAuNSwgMCwgZGVwdGggKiAxLjAwMSApO1xyXG4gIGdyYWJiZXIuYWRkKCBncmFiQmFyICk7XHJcbiAgZ3JvdXAuaXNGb2xkZXIgPSB0cnVlO1xyXG4gIGdyb3VwLmhpZGVHcmFiYmVyID0gZnVuY3Rpb24oKSB7IGdyYWJiZXIudmlzaWJsZSA9IGZhbHNlIH07XHJcbiAgZ3JvdXAuc2hvd0dyYWJiZXIgPSBmdW5jdGlvbigpIHsgZ3JhYmJlci52aXNpYmxlID0gdHJ1ZSB9O1xyXG4gIGdyb3VwLmhpZGVIZWFkZXIgPSBmdW5jdGlvbigpIHsgXHJcbiAgICBncm91cC5oaWRlR3JhYmJlcigpO1xyXG4gICAgLy9kZXNjcmlwdG9yTGFiZWwudmlzaWJsZSA9IGRvd25BcnJvdy52aXNpYmxlID0gcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcbiAgZ3JvdXAuc2hvd0hlYWRlciA9ICgpID0+IHtcclxuICAgIC8vZ3JhYmJlci52aXNpYmxlID0gZGVzY3JpcHRvckxhYmVsLnZpc2libGUgPSBkb3duQXJyb3cudmlzaWJsZSA9IHBhbmVsLnZpc2libGUgPSB0cnVlO1xyXG4gICAgcGFuZWwudmlzaWJsZSA9IHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9UT0RPOiBpbnRlcmZhY2UgZm9yIGFkZGluZyB0aGluZ3MgdG8gdGhpcy4uLiBOT1QgJ3Nob3dJbkZvbGRlckhlYWRlcicgbWV0aG9kIC8gcHJvcGVydHkgb24gbGluZWFyIGl0ZW1zLi4uXHJcbiAgY29uc3QgaGVhZGVySXRlbXMgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBwYW5lbC5hZGQoaGVhZGVySXRlbXMpO1xyXG4gIC8vdGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gbWFrZSBvYmogYmVoYXZlIGFzIGNvbnRyb2xsZXIgbGF5ZWQgb3V0IGluIGhlYWRlckl0ZW1zLFxyXG4gIC8vYmFzZWQgb24gc29tZSBhc3N1bXB0aW9ucyBhYm91dCBvYmogdGhhdCBtYXkgYmUgdHJ1ZSBhdCB0aW1lIG9mIHdyaXRpbmcuLi5cclxuICAvL2J1dCBhcmUgcGVuZGluZyBtb3JlIHJpZ29yb3VzIHNwZWNpZmljYXRpb24gLyByZWZhY3RvcmluZyBldGMuXHJcbiAgZ3JvdXAuYWRkSGVhZGVySXRlbSA9IGZ1bmN0aW9uKG9iail7XHJcbiAgICBoZWFkZXJJdGVtcy5hZGQob2JqKTtcclxuICAgIG9iai5mb2xkZXIgPSBncm91cDtcclxuICAgIG9iai5pc0hlYWRlck9iamVjdCA9IHRydWU7XHJcblxyXG4gICAgLy9hbHNvIG5lZWQgdG8gYWRkIHRvIGdsb2JhbCBjb250cm9sbGVycyBsaXN0IGV0Yy4gTkI6OiBtYWtlIHN1cmUgdGhhdCB0aGV5IHdpbGwgZ2V0IHJlbW92ZWQgYXMgd2VsbFxyXG4gICAgLy8tLS0gdGhpcyBnZW5lcmljIGludGVyYWN0aW9uLnVwZGF0ZSBkb2Vzbid0IG1ha2UgbGlzdGVuKCkgd29yayBwcm9wZXJseS5cclxuICAgIGlmICghb2JqLnVwZGF0ZUNvbnRyb2wpIG9iai51cGRhdGVDb250cm9sID0gaW5wdXRPYmplY3RzID0+IG9iai5pbnRlcmFjdGlvbi51cGRhdGUoaW5wdXRPYmplY3RzKTtcclxuICAgIG9iai5oaXRzY2FuID0gWyBvYmogXTsgLy9oYWNreSBoYWNreVxyXG4gICAgZ2xvYmFsQ29udHJvbGxlcnMucHVzaChvYmopO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdCBkZXRhY2hCdXR0b25NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6IDB4ODg4ODg4LCB0cmFuc3BhcmVudDogdHJ1ZX0pO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuRk9MREVSX0hFSUdIVCAqIDAuODtcclxuICBjb25zdCBkZXRhY2hCdXR0b25SZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBoLCBoLCBMYXlvdXQuQlVUVE9OX0RFUFRIKjIgKTtcclxuICAvL3NvbWV3aGF0IGJhY2t3YXJkcyB3YXkgb2YgZ2V0dGluZyB0ZXh0dXJlcy4uLiBUT0RPIG1heWJlIGNoYW5nZSAoYWxvbmcgd2l0aCBvdGhlciBzdHlsZSBjb25zaXN0ZW5jeSB0eXBlIHN0dWZmKVxyXG4gIGNvbnN0IGRvY2tUZXh0dXJlID0gR3JhcGhpYy5kb2NrKCkubWF0ZXJpYWwubWFwO1xyXG4gIGNvbnN0IHVuZG9ja1RleHR1cmUgPSBHcmFwaGljLnVuZG9jaygpLm1hdGVyaWFsLm1hcDtcclxuICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSB1bmRvY2tUZXh0dXJlO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbiA9IG5ldyBUSFJFRS5NZXNoKCAgZGV0YWNoQnV0dG9uUmVjdCwgZGV0YWNoQnV0dG9uTWF0ZXJpYWwgKTtcclxuICBkZXRhY2hCdXR0b24udmlzaWJsZSA9IGZhbHNlO1xyXG4gIGRldGFjaEJ1dHRvbi5wb3NpdGlvbi54ID0gTGF5b3V0LkZPTERFUl9XSURUSCAtIExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gIGNvbnN0IGRldGFjaEJ1dHRvbkludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oZGV0YWNoQnV0dG9uKTtcclxuICBkZXRhY2hCdXR0b24uaW50ZXJhY3Rpb24gPSBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbjtcclxuICBkZXRhY2hCdXR0b25JbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKGdyb3VwLmRldGFjaGVkUGFyZW50KSB7XHJcbiAgICAgIGdyb3VwLnJlYXR0YWNoKCk7XHJcbiAgICB9IGVsc2UgZ3JvdXAuZGV0YWNoKCk7XHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfSk7XHJcbiAgLy9oZWFkZXJJdGVtcy5hZGQoZGV0YWNoQnV0dG9uKTtcclxuICBncm91cC5hZGRIZWFkZXJJdGVtKGRldGFjaEJ1dHRvbik7XHJcblxyXG4gIGxldCBpc0RldGFjaGFibGUgPSBmYWxzZTtcclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoIGdyb3VwLCAnZGV0YWNoYWJsZScsIHtcclxuICAgIGdldDogKCkgPT4ge1xyXG4gICAgICByZXR1cm4gaXNEZXRhY2hhYmxlO1xyXG4gICAgfSxcclxuICAgIHNldDogKCBuZXdWYWx1ZSApID0+IHtcclxuICAgICAgaWYgKG5ld1ZhbHVlID09PSBpc0RldGFjaGFibGUpIHJldHVybjtcclxuICAgICAgZGV0YWNoQnV0dG9uLnZpc2libGUgPSBuZXdWYWx1ZTtcclxuICAgICAgaXNEZXRhY2hhYmxlID0gbmV3VmFsdWU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBncm91cC5hZGQgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgY29uc3QgbmV3Q29udHJvbGxlciA9IGd1aUFkZCggLi4uYXJncyApO1xyXG5cclxuICAgIGlmKCBuZXdDb250cm9sbGVyICl7XHJcbiAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIG5ld0NvbnRyb2xsZXIgKTtcclxuICAgICAgcmV0dXJuIG5ld0NvbnRyb2xsZXI7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIFNvbWUgY29udHJvbGxlcnMgbWF5IGJyaW5nIHVwIHN1Yi1HVUlzIHdoaWNoIGhhdmUgdGhlIHBvdGVudGlhbFxyXG4gICAgdG8gb3ZlcmxhcCAvIGNsYXNoLiAgVGhpcyBlbnN1cmVzIG9ubHkgb25lIGlzIHByZXNlbnQgYXQgYSB0aW1lLlxyXG4gICovXHJcbiAgZ3JvdXAuc2V0TW9kYWxFZGl0b3IgPSBmdW5jdGlvbihlKXtcclxuICAgIC8vVGhpcyBjb3VsZCBnbyB3cm9uZyBpZiBmb2xkZXIgaGllcmFyY2h5IGNoYW5nZXMgc2lnbmlmaWNhbnRseS5cclxuICAgIC8vU2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciByb2NrJ24ncm9sbCAoZmFtb3VzIGxhc3Qgd29yZHMpLlxyXG4gICAgLy9JIGNvdWxkIG1ha2UgaXQgc28gdGhhdCBvbmx5IG9uZSBvZiB0aGVzZSB0aGluZ3Mgd2FzIGV2ZXIgdmlzaWJsZVxyXG4gICAgLy9hY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uICBUaGF0IHNob3VsZCBiZSBlYXNpZXIgdG8gbWFrZSByb2J1c3QsIGFueXdheS4uLlxyXG4gICAgLy9hbmQgc2F2ZXMgaGVhZGFjaGVzIGRvd24gdGhlIGxpbmUuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiAoZm9sZGVyLm1vZGFsRWRpdG9yKSBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgZm9sZGVyLm1vZGFsRWRpdG9yID0gZTtcclxuICAgIGlmICghZSkgcmV0dXJuO1xyXG4gICAgZS52aXNpYmxlID0gdHJ1ZTtcclxuICAgIGlmIChlLnBlcmZvcm1MYXlvdXQpIGUucGVyZm9ybUxheW91dCgpO1xyXG4gICAgZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUgPSB0cnVlO1xyXG4gICAgLy9hZGQgYSBmbGFnIHRvIGFsbCBjaGlsZHJlbiByZWN1cnNpdmVseSBzbyB0aGF0IGludGVyYWN0aW9uIHN5c3RlbSBjYW4gaWRlbnRpZnkgdGhlbSBhcyBiZWxvbmdpbmcgdG8gYSBtb2RhbCBlZGl0b3JcclxuICAgIC8vVE9ETzogc2tpcCBpZiBhbHJlYWR5IGRvbmUuLi5cclxuICAgIGZ1bmN0aW9uIGRlY29yYXRlQ2hpbGRyZW4ocGFyZW50KSB7XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgIGMudXNlckRhdGEucGFydE9mTW9kYWwgPSBlO1xyXG4gICAgICAgIGRlY29yYXRlQ2hpbGRyZW4oYyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZGVjb3JhdGVDaGlsZHJlbihlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IG1vZGFsIGVkaXRvciBmcm9tIHRoaXMgZm9sZGVyXHJcbiAgICogKipidXQgbm90IGlmIGl0IHdhcyBhZGRlZCBkdXJpbmcgdGhlIGN1cnJlbnQgY29udHJvbGxlciB1cGRhdGUsXHJcbiAgICogYXMgaW5kaWNhdGVkIGJ5IGEgZmxhZyBzZXQgaW4gc2V0TW9kYWxDb250cm9sbGVyIGFuZCByZXNldCBpbiBpbmRleC5qcyB1cGRhdGUqKlxyXG4gICAqL1xyXG4gIGdyb3VwLmNsZWFyTW9kYWxFZGl0b3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwKTtcclxuICAgIGlmICghZm9sZGVyLm1vZGFsV2FzU2V0SW5DdXJyZW50RnJhbWUpIHtcclxuICAgICAgLy9mb2xkZXIuc2V0TW9kYWxFZGl0b3IobnVsbCk7XHJcbiAgICAgIGlmIChmb2xkZXIubW9kYWxFZGl0b3IpIHtcclxuICAgICAgICBmb2xkZXIubW9kYWxFZGl0b3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGZvbGRlci5tb2RhbEVkaXRvciA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG5cclxuXHJcbiAgLyogXHJcbiAgUmVtb3ZlcyB0aGUgZ2l2ZW4gY29udHJvbGxlcnMgZnJvbSB0aGUgR1VJLiAgPj4+T25jZSByZW1vdmVkLCB0aGUgY29udHJvbGxlcnMgd2lsbCBlZmZlY3RpdmVseSBiZSBpbnZhbGlkIGZvciB1c2U8PDxcclxuICA+Pj4gc28gZGlzcG9zZSBvZiB0aGVtIGFzIHdlbGw/IE5lZWQgdG8gYmUgY2FyZWZ1bCBhYm91dCB0ZXh0dXJlcyAvIGFueXRoaW5nIHNoYXJlZC4uLiA8PDxcclxuICBhcyB0aGV5IHdpbGwgYWxzbyBiZSByZW1vdmVkIGZyb20gdGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkYXQuR1VJVlIgY29udHJvbGxlcnMuICBVc2UgJ2RldGFjaCcgaW5zdGVhZCBpZiBpdCBpc1xyXG4gIGRlc2lyZWQgdG8gcmV1c2UgR1VJIGVsZW1lbnRzIGVsc2V3aGVyZS5cclxuXHJcbiAgSWYgdGhlIGFyZ3VtZW50cyBhcmUgaW52YWxpZCwgaXQgd2lsbCBhdHRlbXB0IHRvIGRldGVjdCB0aGlzIGJlZm9yZSBtYWtpbmcgYW55IGNoYW5nZXMsIFxyXG4gIGFib3J0aW5nIHRoZSBwcm9jZXNzIGFuZCByZXR1cm5pbmcgZmFsc2UgZnJvbSB0aGlzIG1ldGhvZC5cclxuXHJcbiAgTm90ZTogYXMgd2l0aCBhZGQsIHRoaXMgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBwcm9wZXJ0eSBvZiBUSFJFRS5Hcm91cC5cclxuICBBcyBsb25nIGFzIG5vLW9uZSBleHBlY3RzIGZvbGRlcnMgdG8gYmVoYXZlIGxpa2UgcmVndWxhciBUSFJFRS5Hcm91cHMsIHRoYXQgc2hvdWxkbid0IG1hdHRlci5cclxuICAqL1xyXG4gIGdyb3VwLnJlbW92ZSA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICAvL2d1aVJlbW92ZSBpcyBwYXNzZWQgaW4gZnJvbSBpbmRleC5qcyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHNhbml0eSBjaGVja2luZyAmIHJlbW92aW5nIGZyb20gZ2xvYmFsIGNvbnRyb2xsZXJzIGxpc3RcclxuICAgIGNvbnN0IG9rID0gZ3VpUmVtb3ZlKCAuLi5hcmdzICk7IC8vIGFueSBpbnZhbGlkIGFyZ3VtZW50cyBzaG91bGQgY2F1c2UgdGhpcyB0byByZXR1cm4gZmFsc2Ugd2l0aCBubyBzaWRlLWVmZmVjdHNcclxuICAgIGlmICghb2spIHJldHVybiBmYWxzZTtcclxuICAgIGFyZ3MuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICBjb25zb2xlLmFzc2VydChncm91cC5oYXNDaGlsZChvYmopLCBcImludGVybmFsIHByb2JsZW0gd2l0aCBob3VzZWtlZXBpbmcgbG9naWMgb2YgZGF0LkdVSVZSIGZvbGRlciBub3QgY2F1Z2h0IGJ5IHNhbml0eSBjaGVja1wiKTtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIG9iai5yZW1vdmUoIC4uLm9iai5ndWlDaGlsZHJlbiApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAucmVtb3ZlKG9iaik7XHJcbiAgICB9KTtcclxuICAgIC8vVE9ETzogZGVmZXIgYWN0dWFsIGxheW91dCBwZXJmb3JtYW5jZTsgc2V0IGEgZmxhZyBhbmQgbWFrZSBzdXJlIGl0IGdldHMgZG9uZSBiZWZvcmUgYW55IHJlbmRlcmluZyBvciBoaXQtdGVzdGluZyBoYXBwZW5zLlxyXG4gICAgZ3JvdXAucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfTtcclxuXHJcbiAgLy9yYXRoZXIgdGhhbiBtZXRob2QsIGRldGFjaGVkUGFyZW50IGJlIGEgcHJvcGVydHkgdGhhdCBkb2VzIHRoaXMgc3R1ZmYgaW4gc2V0dGVyLi4uXHJcbiAgLy9hbnl3YXksIGJvdGggYXJlIHJlYWxseSBtZWFudCBmb3IgaW50ZXJuYWwgdXNlLCBhcyBoaW50ZWQgYnkgXyBpbiBuYW1lLlxyXG4gIGdyb3VwLl9zZXREZXRhY2hlZEZyb20gPSAocGFyZW50KSA9PiB7XHJcbiAgICBncm91cC5kZXRhY2hlZFBhcmVudCA9IHBhcmVudDtcclxuICAgIGlmIChwYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgZGV0YWNoQnV0dG9uLm1hdGVyaWFsLm1hcCA9IHVuZG9ja1RleHR1cmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXRhY2hCdXR0b25NYXRlcmlhbC5tYXAgPSBkb2NrVGV4dHVyZTtcclxuICAgICAgZ3JvdXAuc2hvd0hlYWRlcigpO1xyXG4gICAgICBncm91cC5zaG93R3JhYmJlcigpO1xyXG4gICAgICBncm91cC5mb2xkZXIgPSBncm91cDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIGEgY2hpbGQgZm9sZGVyIGZyb20gdGhpcyBmb2xkZXIgaGllcmFyY2h5LCBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIHNjZW5lIGhpZXJhcmNoeS5cclxuICAgKiBcclxuICAgKiAod2lsbCBub3QgYmUgdmlzaWJsZSB1bnRpbCBleHBsaWNpdGx5IGFkZGVkIGVsc2V3aGVyZTsgXHJcbiAgICogY2FsbGluZyBkZXRhY2goKSBpbnN0ZWFkIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBhbmQgaXMgbW9yZSBpbnRlbmRlZCBmb3IgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGVcclxuICAgKiB3aGlsZSB0aGlzIG1ldGhvZCBpcyBtb3JlIG9mIGFuIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbC4pXHJcbiAgICovXHJcbiAgZ3JvdXAuZGV0YWNoQ2hpbGQgPSAoY2hpbGQpID0+IHtcclxuICAgIGlmICghY2hpbGQuaXNGb2xkZXIgfHwgY2hpbGQuZm9sZGVyICE9PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY2hpbGQuX3NldERldGFjaGVkRnJvbShncm91cCk7XHJcbiAgICBjb2xsYXBzZUdyb3VwLnJlbW92ZShjaGlsZCk7XHJcbiAgICAvL1RIUkVFLk9iamVjdDNELnByb3RvdHlwZS5yZW1vdmUuY2FsbChncm91cCwgY2hpbGQpO1xyXG4gICAgcmVtb3ZlSW1wbChjaGlsZCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICByZXR1cm4gZ3JvdXA7IC8vb3IgY2hpbGQ/XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICAgIERldGFjaCB0aGlzIG9iamVjdCBmcm9tIGl0cyBwYXJlbnQsIGFuZCByZWF0dGFjaCB0byBzY2VuZWdyYXBoIGFzIGEgc2libGluZyBvZiB0aGUgJ3RvcCBsZXZlbCcgZm9sZGVyIGluXHJcbiAgICB0aGUgaGllcmFyY2h5IHRoaXMgcHJldmlvdXNseSB3YXMgYSBtZW1iZXIgb2YuXHJcbiAgKi9cclxuICBncm91cC5kZXRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoZ3JvdXAuZm9sZGVyID09PSBncm91cCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgLy9hdXRvbWF0aWNhbGx5IGFkZCB0byBUSFJFRSBwYXJlbnQgb2YgdG9wIGxldmVsIGZvbGRlciBhbmQgdHJ5IHRvIHNldCBhcHByb3ByaWF0ZSBzY2FsZSAvIHRyYW5zZm9ybS4uLlxyXG4gICAgLy9pZiB0aGF0IGZvbGRlciBiZWluZ01vdmVkIGF0IHRoZSBwcmVzZW50IHRpbWUsIHRoZW4gaXQgd2lsbCBoYXZlIGFuIG9sZFBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgYXR0YWNoIGluc3RlYWQuXHJcbiAgICAvLy4uLmFsdGhvdWdoIGl0IG1heSBiZSB0aGF0IHdlIHdhbnQgdGhlIGRldGFjaGVkIGZvbGRlciB0byBtb3ZlIHdpdGggdGhlIGNvbnRyb2xsZXIgdW50aWwgYnV0dG9uIGlzIHJlbGVhc2VkLi4uXHJcbiAgICBjb25zdCB0b3BGb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBncm91cC5mb2xkZXIuZGV0YWNoQ2hpbGQoZ3JvdXApO1xyXG4gICAgXHJcbiAgICAvL2FkZGluZyB0byB0b3BGb2xkZXIucGFyZW50IElGIEFWQUlMQUJMRSwgbm90IG9sZFBhcmVudCwgcGVuZGluZyB3b3JraW5nIG91dCB0cmFuc2Zvcm0gbGF0ZXIgaWYgYmVpbmdNb3ZlZC4uLlxyXG4gICAgY29uc3QgcGFyID0gdG9wRm9sZGVyLnBhcmVudCB8fCBncm91cC5wYXJlbnQ7IFxyXG4gICAgaWYgKCFwYXIpIHJldHVybjsgLy9TSlBUIGNoYW5nZSBmcm9tIENTeW50aCwgbm90IGNhcmVmdWxseSByZXZpZXdlZCBidXQgcHJvYmFibHkgcmlnaHQuXHJcbiAgICBwYXIuYWRkKGdyb3VwKTtcclxuICAgIGNvbnN0IG0gPSB0b3BGb2xkZXIubWF0cml4LmNsb25lKCk7XHJcblxyXG4gICAgZ3JvdXAuYXBwbHlNYXRyaXg0KG0pO1xyXG4gICAgbS5zZXRQb3NpdGlvbihuZXcgVEhSRUUuVmVjdG9yMygpKTtcclxuICAgIGNvbnN0IHQgPSBuZXcgVEhSRUUuVmVjdG9yMyhMYXlvdXQuRk9MREVSX1dJRFRILCAwLCAwKS5hcHBseU1hdHJpeDQobSk7XHJcbiAgICBncm91cC5wb3NpdGlvbi5hZGQodCk7XHJcbiAgICBcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL2RldGFjaCB0aGlzIG9iamVjdCBmcm9tIHRvcEZvbGRlci5wYXJlbnQgdGhlbiBhdHRhY2ggdG8gdG9wRm9sZGVyLm9sZFBhcmVudCB3aGlsZSBtYWludGFpbmluZyBtYXRyaXhXb3JsZFxyXG4gICAgICAvLy4uLmFjdHVhbGx5LCAobWF5YmUpIHdlIHdhbnQgdG8gZG8gdGhpcyBzY2VuZVNoaWZ0IGJ1c2luZXNzIHdoZW4gYmVpbmdNb3ZlZCBmaW5pc2hlcy4uLlxyXG4gICAgICAvLyBwdXQgdGhpbmdzIGludG8gc2VtaURldGFjaGVkLCBzbyB0aGF0IHdoZW4gYmVpbmdNb3ZlZCBpcyBzZXQgdG8gZmFsc2UsIHRoZXkgY2FuIGJlIHNoaWZ0ZWQuXHJcbiAgICAgIC8vb3IgbWF5YmUgd2hhdCB3ZSByZWFsbHkgd2FudCBpcyB0byBoYXZlIGFuIG9wdGlvbiB0byAncGluJyBwYW5lbHMgdG9nZXRoZXIgYW5kIHVucGluIHRoZW0sIHJhdGhlciB0aGFuIGFzc3VtZVxyXG4gICAgICAvL2F0dGFjaG1lbnQgY2hhbmdlcyB3aGVuIGJ1dHRvbiByZWxlYXNlZC4gIEZvciBub3csIHRoaXMgaXMgbm90IHF1aXRlIHdvcmtpbmcgcmlnaHQsIHNvLi4uXHJcbiAgICAgIGNvbnN0IGRlZmVyU2NlbmVTaGlmdFdoaWxlTW92aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAvL3dlIGNvdWxkIGp1c3QgZGV0YWNoLCBsZWF2aW5nIHRoZSBvYmplY3QgYXMgZGlyZWN0IGRlc2NlbmRlbnQgb2Ygc2NlbmUsIGJ1dCB0aGVyZSBtYXkgYmUgcmVhbCByZWFzb25zIHRvIHNpdHVhdGVcclxuICAgICAgLy90aGUgR1VJIHdpdGhpbiBoaWVyYXJjaHkgc29tZWhvdyAobGlrZSBhcyBjaGlsZHJlbiBvZiBhIGNvbnRyb2xsZXIpXHJcbiAgICAgIFxyXG4gICAgICBpZiAoZGVmZXJTY2VuZVNoaWZ0V2hpbGVNb3ZpbmcpIHtcclxuICAgICAgICB0b3BGb2xkZXIudXNlckRhdGEuc2VtaURldGFjaGVkLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5vbGRQYXJlbnQgPSB0b3BGb2xkZXIub2xkUGFyZW50Oy8vWFhYOiBoYWNrIGJlY2F1c2UgdG9wRm9sZGVyLm9sZFBhcmVudCB3YXMgYmVpbmcgdW5kZWZpbmVkIGJlZm9yZSBiZWluZ01vdmVkID0gZmFsc2VcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBjaGlsZCA9IGdyb3VwO1xyXG4gICAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRvcEZvbGRlci5wYXJlbnQ7IC8vb2xkUGFyZW50IHRvIGRldGFjaCBmcm9tIGlzIHRoZSBjdXJyZW50IHBhcmVudCB3aGlsZSBiZWluZ01vdmVkXHJcbiAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdG9wRm9sZGVyLm9sZFBhcmVudDsgLy9uZXdQYXJlbnQgdG8gYXR0YWNoIHRvIGlzIG9sZFBhcmVudCBvZiB0aGUgZm9sZGVyIGJlZm9yZSBpdCB3YXMgYmVpbmdNb3ZlZFxyXG4gIFxyXG4gICAgICAgIHNjZW5lU2hpZnQoY2hpbGQsIG9sZFBhcmVudCwgbmV3UGFyZW50KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gXHJcbiAgICBncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IHRvcEZvbGRlci51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYzsgLy9UT0RPOiByZXZpc2UgaG93IHRvIHBhc3MgdGhpcyBpbmZvXHJcbiAgICBncm91cC5maXhGb2xkZXJQb3NpdGlvbigwLjUpO1xyXG4gICAgZ3JvdXAub3BlbigpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG4gIC8vYWxhIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jZXhhbXBsZXMvdXRpbHMvU2NlbmVVdGlsc1xyXG4gIGZ1bmN0aW9uIHNjZW5lRGV0YWNoKGNoaWxkLCBwYXJlbnQsIHNjZW5lKSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NChwYXJlbnQubWF0cml4V29ybGQpO1xyXG4gICAgcGFyZW50LnJlbW92ZShjaGlsZCk7XHJcbiAgICBzY2VuZS5hZGQoY2hpbGQpXHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgcGFyZW50KSB7XHJcbiAgICBwYXJlbnQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIGNoaWxkLmFwcGx5TWF0cml4NCggbmV3IFRIUkVFLk1hdHJpeDQoKS5nZXRJbnZlcnNlKHBhcmVudC5tYXRyaXhXb3JsZCkgKTtcclxuXHRcdHNjZW5lLnJlbW92ZShjaGlsZCk7XHJcblx0XHRwYXJlbnQuYWRkKGNoaWxkKTsgICBcclxuICB9XHJcbiAgZnVuY3Rpb24gc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpIHtcclxuICAgIGxldCBub2RlID0gb2xkUGFyZW50O1xyXG4gICAgd2hpbGUgKG5vZGUucGFyZW50KSBub2RlID0gbm9kZS5wYXJlbnQ7XHJcbiAgICBjb25zdCBzY2VuZSA9IG5vZGU7XHJcbiAgICBcclxuICAgIHNjZW5lRGV0YWNoKGNoaWxkLCBvbGRQYXJlbnQsIHNjZW5lKTtcclxuICAgIHNjZW5lQXR0YWNoKGNoaWxkLCBzY2VuZSwgbmV3UGFyZW50KTtcclxuICB9XHJcblxyXG4gIGdyb3VwLmRldGFjaEZyb21QYXJlbnQgPSBncm91cC5kZXRhY2g7XHJcbiAgXHJcbiAgZ3JvdXAucmVhdHRhY2ggPSAoKSA9PiB7XHJcbiAgICBpZiAoIWdyb3VwLmRldGFjaGVkUGFyZW50KSByZXR1cm4gZmFsc2U7XHJcbiAgICAvL1RPRE86IGNoZWNrIGxheW91dCB3aXRoIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHdyYXBwaW5nIGV0Yy5cclxuICAgIGdyb3VwLmRldGFjaGVkUGFyZW50LmFkZEZvbGRlcihncm91cCk7IC8vIHRoaXMgd2lsbCBhbHNvIGRlYWwgd2l0aCBjb3NtZXRpY3MgKGhpZGVHcmFiYmVyIGV0YylcclxuICAgIGNvbnN0IHRvcEZvbGRlciA9IGdldFRvcExldmVsRm9sZGVyKGdyb3VwLmRldGFjaGVkUGFyZW50KTtcclxuICAgIGlmICh0b3BGb2xkZXIuYmVpbmdNb3ZlZCkge1xyXG4gICAgICAvL21heWJlIHdlIGNvdWxkIGRvIHRoaXMga2luZCBvZiBzdHVmZiBpbiBfc2V0RGV0YWNoZWRGcm9tXHJcbiAgICAgIC8vaW4gYW55IGNhc2UsIGl0J3MgaXJyZWxldmFudCBpZiBcclxuICAgICAgbGV0IHNlbWlzID0gdG9wRm9sZGVyLnVzZXJEYXRhLnNlbWlEZXRhY2hlZDtcclxuICAgICAgY29uc3QgaW5kZXggPSBzZW1pcy5pbmRleE9mKGdyb3VwKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHRvcEZvbGRlci51c2VyRGF0YS5zZW1pRGV0YWNoZWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIC8vZ3JvdXAuZGV0YWNoZWRQYXJlbnQgPSBudWxsO1xyXG4gICAgZ3JvdXAuX3NldERldGFjaGVkRnJvbShudWxsKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ3JvdXAuYWRkQ29udHJvbGxlciA9IGZ1bmN0aW9uKCAuLi5hcmdzICl7XHJcbiAgICBhcmdzLmZvckVhY2goIGZ1bmN0aW9uKCBvYmogKXtcclxuICAgICAgaWYgKG9iai5pc0ZvbGRlcikge1xyXG4gICAgICAgIGdyb3VwLmFkZEZvbGRlcihvYmopO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgICBvYmouZm9sZGVyID0gZ3JvdXA7XHJcbiAgICAgIH1cclxuICAgICAgLy9YWFg6IGhhY2tpbmcgaW4gc29tZSB1bml2ZXJzYWwgdG9vbHRpcCBzdXBwb3J0XHJcbiAgICAgIGlmIChvYmouc2V0VG9vbFRpcCkgcmV0dXJuOyAvL2J1dCBub3QgaWYgYSBtb3JlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGFscmVhZHkgZXhpc3RzIChzZWUgZHJvcGRvd24uLi4pXHJcbiAgICAgIG9iai5zZXRUb29sVGlwID0gdGlwID0+IHtcclxuICAgICAgICBvYmoudXNlckRhdGEudGlwID0gdGlwO1xyXG4gICAgICAgIC8vVE9ETzogcGF5IG1vcmUgYXR0ZW50aW9uIHRvIGxheW91dCBjb25maWcgLyBtYWtlIGNyZWF0ZVRvb2xUaXAgaGF2ZSBzaW1wbGVyIGFyZ3VtZW50c1xyXG4gICAgICAgIGNvbnN0IHRpcE9iaiA9IGNyZWF0ZVRvb2xUaXAodGV4dENyZWF0b3IsIHRpcCwgTGF5b3V0LkZPTERFUl9XSURUSCwgb2JqLnNwYWNpbmcsIExheW91dC5CVVRUT05fREVQVEgpO1xyXG4gICAgICAgIG9iai51c2VyRGF0YS50aXBPYmogPSB0aXBPYmo7XHJcbiAgICAgICAgLy9hc3NvY2lhdGUgZXZlbnQgd2l0aCBob3ZlciBvbiBhcHByb3ByaWF0ZSBoaXRzY2FuLi4uXHJcblxyXG4gICAgICAgIGlmIChvYmouaW50ZXJhY3Rpb24pIHtcclxuICAgICAgICAgIC8vVE9ETzogZXZlbnRzLm9mZigpIGlmIHJlcGxhY2luZyBvbGQgdG9vbHRpcCAob3Igbm90IHJlcGVhdGluZyBvbigpKS5cclxuICAgICAgICAgIG9iai5pbnRlcmFjdGlvbi5ldmVudHMub24oJ3RpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vZG9uJ3QganVzdCBzZXQgdmlzaWJpbGl0eTsgYWRkL3JlbW92ZSBhcyB0aGVzZSBhcmUga2lsbGluZyBmcmFtZXJhdGUgaW4gbGFyZ2UgVlIgZ3Vpcy5cclxuICAgICAgICAgICAgLy9SRVZJRVcuLi4gY29uc2lkZXJpbmcgbWFraW5nIHRvb2x0aXBzIHdvcmsgd2hlbiBob3ZlcmluZyBvbiBsYWJlbCBhcyB3ZWxsLFxyXG4gICAgICAgICAgICAvLyBidXQgb2YgY291cnNlIHRoaXMgd291bGQgbWVhbiBjaGFuZ2luZyBtb3JlIGFib3V0IHRoZSBpbnRlcmFjdGlvbiBzZXR1cCxcclxuICAgICAgICAgICAgLy8gYW5kIGhhdmluZyBtb3JlIG9iamVjdHMgdG8gdGVzdCBpbiBzY2VuZSBoaWVyYXJjaHkuXHJcbiAgICAgICAgICAgIC8vIExlYXZpbmcgZm9yIG5vdywgaWYgd29ya2luZyBtb3JlIG9uIHRoZSBsaWJyYXJ5LCBob3BlZnVsbHkgZml4IGhvdmVyIGV2ZW50IGV0Yy5cclxuICAgICAgICAgICAgaWYgKG9iai52aXNpYmxlKSBzZXRWaXNpYmlsaXR5KG9iaiwgdGlwT2JqLCBvYmouaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgY2FuJ3QgY3JlYXRlIHRvb2x0aXAgZm9yICR7b2JqLmd1aVR5cGV9IGJlY2F1c2UgdGhlcmUncyBubyBvYmouaW50ZXJhY3Rpb24gcHJvcGVydHkuLi5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9iai5nZXRUb29sVGlwID0gKCkgPT4gb2JqLnVzZXJEYXRhLnRpcDtcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5hZGRGb2xkZXIgPSBmdW5jdGlvbiggLi4uYXJncyApe1xyXG4gICAgYXJncy5mb3JFYWNoKCBmdW5jdGlvbiAob2JqKSB7XHJcbiAgICAgIC8vVE9ETyBpZiBvYmogaXMgc3RyaW5nLCBtYWtlIGEgbmV3IGd1aSBhbmQgYWRkIC8gcmV0dXJuIGl0Li4uIGJ1dCB3aGF0IGFib3V0IHZhcmFyZ3M/XHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuYWRkKCBvYmogKTtcclxuICAgICAgb2JqLmZvbGRlciA9IGdyb3VwO1xyXG4gICAgICBvYmoubWF0cml4LmlkZW50aXR5KCk7XHJcbiAgICAgIG9iai5zY2FsZS5zZXQoMSwxLDEpO1xyXG4gICAgICBvYmoucG9zaXRpb24uc2V0KDAsMCwwKTtcclxuICAgICAgb2JqLnJvdGF0aW9uLnNldCgwLDAsMCk7XHJcbiAgICAgIFxyXG4gICAgICBvYmouaGlkZUdyYWJiZXIoKTtcclxuICAgICAgb2JqLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAucHJvbW90ZVpPcmRlciA9ICgpID0+IHtcclxuICAgIGlmIChnZXRUb3BMZXZlbEZvbGRlcihncm91cCkgIT09IGdyb3VwIHx8ICF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZG4ndCBiZSBhICdwdWJsaWMgbWV0aG9kJyAoYnV0IG1heWJlIHRoZXJlIHNob3VsZCBiZSBhIHdlbGwtZGVmaW5lZCBwdWJsaWMgaW50ZXJmYWNlKS5cclxuICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogaW5jb25zaXN0ZW5jeSBpbiBmb2xkZXIgaG91c2VrZWVwaW5nYCk7XHJcbiAgICB9XHJcbiAgICB0b3BGb2xkZXJTdGFjay5zcGxpY2UodG9wRm9sZGVyU3RhY2suaW5kZXhPZihncm91cCksIDEpO1xyXG4gICAgdG9wRm9sZGVyU3RhY2sucHVzaChncm91cCk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhgcHJvbW90aW5nICR7Z3JvdXAuZm9sZGVyTmFtZX1gKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgIC8vdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgb2JqZWN0IHogYmVpbmcgZGlmZmVyZW50IGZyb20gd2hlbiBtb3VzZUludGVyc2VjdGlvbiBoaXQgaXQgZWFybGllciBpbiB1cGRhdGUuXHJcbiAgICAvL21vdXNlSW50ZXJzZWN0aW9uIHdpbGwgdGhlbiBsYXRlciBiZSB1c2VkIGluIGhhbmRsZVRpY2sgb2YgZ3JhYiBpbnRlcmFjdGlvbiwgdG8gZnVydGhlciBtdXRhdGUgcG9zaXRpb25cclxuICAgIC8vc2VlbXMgb2sgdGhvdWdoIChhcyBvZiAwNC8xMi8xOClcclxuICAgIGlmIChncm91cC51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYykgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgLy9ncm91cC51c2VyRGF0YS5vcnRob2dyYXBoaWNGb2xkZXJMYXlvdXQgPSAgb3J0aG9ncmFwaGljRm9sZGVyTGF5b3V0O1xyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtTGF5b3V0KCl7XHJcbiAgICBwZXJmb3JtSGVhZGVyTGF5b3V0KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IHdyYXBOZXN0ZWQgPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgLy9zdGFydGluZyB3aG9sZSBuZXcgbGF5b3V0IG9mIHRvcEZvbGRlcj9cclxuICAgIGlmICh0b3BGb2xkZXIgPT09IGdyb3VwKSB7XHJcbiAgICAgIGlmICh0b3BGb2xkZXIubW9kYWxFZGl0b3IgJiYgdG9wRm9sZGVyLm1vZGFsRWRpdG9yLnBlcmZvcm1MYXlvdXQpIHRvcEZvbGRlci5tb2RhbEVkaXRvci5wZXJmb3JtTGF5b3V0KCk7XHJcbiAgICAgIFxyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgIHRvcEZvbGRlci51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXggPSAwO1xyXG4gICAgICB0b3BGb2xkZXIudXNlckRhdGEuY29sdW1uWU9mZiA9IC10b3BGb2xkZXIucG9zaXRpb24ueTtcclxuICAgICAgLy9JIGNvdWxkIHVuZGVmaW5lIHRoZXNlIGF0IHRoZSBlbmQsIGJ1dCB0aGVyZSdzIG5vIHBvaW50LlxyXG5cclxuICAgICAgaWYgKCF0b3BGb2xkZXJTdGFjay5pbmNsdWRlcyhncm91cCkpIHtcclxuICAgICAgICB0b3BGb2xkZXJTdGFjay5wdXNoKGdyb3VwKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBhZGRpbmcgJHtncm91cC5mb2xkZXJOYW1lfWApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBbJHt0b3BGb2xkZXJTdGFjay5tYXAoZj0+Zi5mb2xkZXJOYW1lKS5qb2luKCcsICcpfV1gKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9rZWVwIGNvdW50aW5nIGNvbHVtbkhlaWdodCAoY3VycmVudCB5KSAmIGluZGV4IGZyb20gcGFyZW50IGZvbGRlci5cclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSGVpZ2h0ID0gZ3JvdXAuZm9sZGVyLnVzZXJEYXRhLmNvbHVtbkhlaWdodDtcclxuICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXggPSBncm91cC5mb2xkZXIudXNlckRhdGEuY29sdW1uSW5kZXg7IC8vVE9ETzogbWFrZSBzdXJlIHRvIHRlc3Qgd2l0aCBkZWVwIG5lc3RpbmcuXHJcbiAgICAgIFxyXG4gICAgICBpZiAodG9wRm9sZGVyU3RhY2suaW5jbHVkZXMoZ3JvdXApKSB7XHJcbiAgICAgICAgdG9wRm9sZGVyU3RhY2suc3BsaWNlKHRvcEZvbGRlclN0YWNrLmluZGV4T2YoZ3JvdXApLCAxKTtcclxuICAgICAgICBpZiAoZ3JvdXAudXNlckRhdGEuaXNPcnRob2dyYXBoaWMpIG9ydGhvZ3JhcGhpY0ZvbGRlckxheW91dCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGByZW1vdmluZyAke2dyb3VwLmZvbGRlck5hbWV9YCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coYFske3RvcEZvbGRlclN0YWNrLm1hcChmPT5mLmZvbGRlck5hbWUpLmpvaW4oJywgJyl9XWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgY29uc3Qgc3BhY2luZ1BlckNvbnRyb2xsZXIgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbiAgICBjb25zdCBlbXB0eUZvbGRlclNwYWNlID0gTGF5b3V0LkZPTERFUl9IRUlHSFQgKyBMYXlvdXQuUEFORUxfU1BBQ0lORztcclxuICAgIHZhciB0b3RhbFNwYWNpbmcgPSBlbXB0eUZvbGRlclNwYWNlO1xyXG5cclxuICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggKGMpID0+IHsgYy52aXNpYmxlID0gIXN0YXRlLmNvbGxhcHNlZCB9ICk7XHJcbiAgICAvL2NoaWxkcmVuIHNob3VsZCBiZSBvcmRlcmVkIGJ5IGd1aUluZGV4LlxyXG4gICAgLy9pZiB0aGV5IGRvbid0IGFscmVhZHkgaGF2ZSBvbmUsIGl0IGNhbiBiZSBhZGRlZCBoZXJlOlxyXG4gICAgLy90aGlzIHNob3VsZCBiZSB0aGUgb25seSBwbGFjZSB0aGF0IHdlIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBwcm9wZXJ0eVxyXG4gICAgLy9pdCBhbGxvd3MgZm9yIGRldGFjaGluZyBlbGVtZW50cyBhbmQgcmVhdHRhY2hpbmcgaW4gc2ltaWxhciBwbGFjZSwgZXZlbiBpZiBzb21lIHNpYmxpbmdzIGFyZSBhbHNvIGRldGFjaGVkLlxyXG4gICAgbGV0IGxhc3RHdWlJbmRleCA9IDA7XHJcbiAgICAvL3RyeSB0byBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IHRoYXQgY2xpZW50IHByb2dyYW0gbWF5IGF0dGVtcHQgdG8gcmVzdG9yZSBpdGVtcyBcclxuICAgIC8vcmVtZW1iZXJpbmcgZGV0YWNoZWRQYXJlbnQgYnV0IG5vdCBndWlJbmRleD8gTm9pc2UuLi5cclxuICAgIC8vY29uc3QgZGV0YWNoZWRDaGlsZHJlbiA9IHRvcEZvbGRlclN0YWNrLmZpbHRlcihmID0+IGYuZGV0YWNoZWRQYXJlbnQgPT09IHRoaXMpO1xyXG4gICAgLy9jb2xsYXBzZUdyb3VwLmNoaWxkcmVuLmNvbmNhdChkZXRhY2hlZENoaWxkcmVuKS5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5mb3JFYWNoKCAoYywgaSkgPT4ge1xyXG4gICAgICAgIGlmIChjLmd1aUluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjLmd1aUluZGV4ID0gbGFzdEd1aUluZGV4Kz0xO1xyXG4gICAgICB9IGVsc2UgbGFzdEd1aUluZGV4ID0gYy5ndWlJbmRleDtcclxuICAgIH0pO1xyXG4gICAgY29sbGFwc2VHcm91cC5jaGlsZHJlbi5zb3J0KChhLCBiKSA9PiB7IHJldHVybiBhLmd1aUluZGV4IC0gYi5ndWlJbmRleCB9KTtcclxuXHJcbiAgICBpZiAoIHN0YXRlLmNvbGxhcHNlZCApIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSBNYXRoLlBJICogMC41O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bkFycm93LnJvdGF0aW9uLnogPSAwO1xyXG5cclxuICAgICAgdmFyIHkgPSAwLCBsYXN0SGVpZ2h0ID0gZW1wdHlGb2xkZXJTcGFjZTtcclxuXHJcbiAgICAgIGNvbGxhcHNlR3JvdXAuY2hpbGRyZW4uZm9yRWFjaCggZnVuY3Rpb24oIGNoaWxkLCBpbmRleCApe1xyXG4gICAgICAgIGlmIChjaGlsZC5pc0ZvbGRlcikge1xyXG4gICAgICAgICAgY2hpbGQudXNlckRhdGEuY29sdW1uWU9mZiA9IGdyb3VwLnVzZXJEYXRhLmNvbHVtbllPZmYgLSB5OyAvL2V4Y2VwdCAneScgd2lsbCBiZSB3cm9uZy4uLlxyXG4gICAgICAgICAgY2hpbGQucGVyZm9ybUxheW91dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoICF3cmFwTmVzdGVkICkge1xyXG4gICAgICAgICAgLy9PcmlnaW5hbCBsYXlvdXQgYWxnb3JpdGhtXHJcbiAgICAgICAgICB2YXIgaCA9IGNoaWxkLnNwYWNpbmcgPyBjaGlsZC5zcGFjaW5nIDogc3BhY2luZ1BlckNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAvLyBob3cgZmFyIHRvIGdldCBmcm9tIHRoZSBtaWRkbGUgb2YgcHJldmlvdXMgdG8gbWlkZGxlIG9mIHRoaXMgY2hpbGQ/XHJcbiAgICAgICAgICAvLyBoYWxmIG9mIHRoZSBoZWlnaHQgb2YgcHJldmlvdXMgcGx1cyBoYWxmIGhlaWdodCBvZiB0aGlzLlxyXG4gICAgICAgICAgLy8gaWYgd2UndmUgd3JhcHBlZCB0byBhIG5ldyBjb2x1bW4gcmVjZW50bHksIGhvdyBpcyB0aGlzIGFmZmVjdGVkP1xyXG4gICAgICAgICAgLy8gc3BhY2luZyBwcm9wZXJ0eSBzaG91bGQgdGhlbiBiZSBzcGFjaW5nICp3aXRoaW4gY3VycmVudCBjb2x1bW4qLCBzbyB0aGUgd2F5IHdlIHRyYWNrIHRvdGFsU3BhY2luZyBzaG91bGQgcmVmbGVjdCB0aGF0LlxyXG4gICAgICAgICAgdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vIEZvciBmb2xkZXJzLCB0aGUgb3JpZ2luIGlzbid0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGVudGlyZSBoZWlnaHQgb2YgdGhlIGZvbGRlcixcclxuICAgICAgICAgICAgLy8gYnV0IGp1c3QgdGhlIG1pZGRsZSBvZiB0aGUgdG9wIHBhbmVsLlxyXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMC41ICogKGxhc3RIZWlnaHQgKyBlbXB0eUZvbGRlclNwYWNlKTtcclxuICAgICAgICAgICAgY2hpbGQucG9zaXRpb24ueSA9IHkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIHNwYWNpbmc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpbiBhbnkgY2FzZSwgZm9yIHVzZSBieSB0aGUgbmV4dCBvYmplY3QgYWxvbmcgd2UgcmVtZW1iZXIgJ3knIGFzIHRoZSBtaWRkbGUgb2YgdGhlIHdob2xlIHBhbmVsXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuICAgICAgICAgIFxyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKVxyXG4gICAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICBcclxuICAgICAgICAgIGlmICgoaW5kZXgrMSkgJSBNQVhfRk9MREVSX0lURU1TX0lOX0NPTFVNTiA9PT0gMCkgeSA9IDA7XHJcbiAgXHJcbiAgICAgICAgICBjaGlsZC5wb3NpdGlvbi54ICs9IHdpZHRoICogTWF0aC5mbG9vcihpbmRleCAvIE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL25ldyBsYXlvdXQgYWxnb3JpdGhtIFdJUCwgc2hvdWxkIGFsbG93IGZvciBuZXN0ZWQgZm9sZGVycyB0byB3cmFwIHRvIHRoZSB0b3Agb2YgYSBuZXcgY29sdW1uLCB3aXRoIGFsbCBmb2xkZXJzXHJcbiAgICAgICAgICAvL2luIGhpZXJhcmNoeSB1c2luZyBzYW1lIGNvbHVtbiBsYXlvdXRcclxuICAgICAgICAgIGNvbnN0IG1heENvbEhlaWdodCA9IE1BWF9GT0xERVJfSVRFTVNfSU5fQ09MVU1OICogc3BhY2luZ1BlckNvbnRyb2xsZXI7IC8vTUFYX0ZPTERFUl9JVEVNUyBpcyBzbGlnaHQgbWlzbm9tZXJcclxuICAgICAgICAgIGNvbnN0IGggPSBjaGlsZC5zcGFjaW5nID8gY2hpbGQuc3BhY2luZyA6IHNwYWNpbmdQZXJDb250cm9sbGVyO1xyXG4gICAgICAgICAgY29uc3QgY2hpbGREaWRXcmFwID0gY2hpbGQuaXNGb2xkZXIgJiYgY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXggPiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9tb3ZlIHRvIGEgbmV3IGNvbHVtbj9cclxuICAgICAgICAgIGlmIChncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPiBtYXhDb2xIZWlnaHQpIHtcclxuICAgICAgICAgICAgLy9UT0RPOiBtYXliZSBhZGQgYW4gZXh0cmEgaGVhZGVyIHRoaW5nIHRvIGFsbG93IGZvbGRpbmcgbmVzdGVkIGZvbGRlcj9cclxuICAgICAgICAgICAgZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgrKzsgXHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCA9IGg7XHJcbiAgICAgICAgICAgIHRvdGFsU3BhY2luZyA9IDA7IC8vaCB3aWxsIGJlIGFkZGVkIGxhdGVyXHJcbiAgICAgICAgICAgIGxhc3RIZWlnaHQgPSAwOyAvLz8/Pz8gd2hhdCBzaG91bGQgdGhpcyBiZT8gIE9yaWdpbmFsIGFsZ29yaXRobSBpdCdzICdlbXB0eUZvbGRlclNwYWNlJ1xyXG4gICAgICAgICAgICAvL2NoZWNrIGxvZ2ljIG9mIHRoaXMgV1JUIGRlZXBlciBuZXN0aW5nIChzaG91bGQgYmUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdG9wRm9sZGVyIHJhdGhlciB0aGFuIGltbWVkaWF0ZSBwYXJlbnQpXHJcbiAgICAgICAgICAgIC8vd2hhdCBJIHNob3VsZCBkbyBpcyB1c2UgYWNjdW1tdWxhdGlvbiBvZiBhbGwgZm9sZGVyIGxldmVscyArIG9uZSBwYXJlbnQgYWJvdmUuXHJcbiAgICAgICAgICAgIC8veSA9IC1ncm91cC5wb3NpdGlvbi55O1xyXG4gICAgICAgICAgICB5ID0gZ3JvdXAudXNlckRhdGEuY29sdW1uWU9mZjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkhlaWdodCArPSBoO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vdmFyIHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG4gICAgICAgICAgbGV0IHNwYWNpbmcgPSAwLjUgKiAobGFzdEhlaWdodCArIGgpO1xyXG5cclxuXHJcbiAgICAgICAgICBpZiAoY2hpbGQuaXNGb2xkZXIpIHtcclxuICAgICAgICAgICAgLy8gRm9yIGZvbGRlcnMsIHRoZSBvcmlnaW4gaXNuJ3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgZm9sZGVyLFxyXG4gICAgICAgICAgICAvLyBidXQganVzdCB0aGUgbWlkZGxlIG9mIHRoZSB0b3AgcGFuZWwuLi4uXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwLjUgKiAobGFzdEhlaWdodCArIGVtcHR5Rm9sZGVyU3BhY2UpO1xyXG4gICAgICAgICAgICBjaGlsZC5wb3NpdGlvbi55ID0geSAtIG9mZnNldDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnkgPSB5IC0gc3BhY2luZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGluIGFueSBjYXNlLCBmb3IgdXNlIGJ5IHRoZSBuZXh0IG9iamVjdCBhbG9uZyB3ZSByZW1lbWJlciAneScgYXMgdGhlIG1pZGRsZSBvZiB0aGUgd2hvbGUgcGFuZWxcclxuICAgICAgICAgIC8vWFhYOiB0aGlzIGxvZ2ljIGRvZXNuJ3Qgd29yayBmb3IgY29sdW1uIHdyYXBwaW5nLCAoYmVjYXVzZSBvZiBob3cgc3BhY2luZyBpcyBjb21wdXRlZCBhYm92ZT8pXHJcbiAgICAgICAgICB5IC09IHNwYWNpbmc7XHJcbiAgICAgICAgICBsYXN0SGVpZ2h0ID0gaDtcclxuXHJcbiAgICAgICAgICB0b3RhbFNwYWNpbmcgKz0gaDtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggPSAwLjAyNjtcclxuICAgICAgICAgIGNoaWxkLnBvc2l0aW9uLnggKz0gd2lkdGggKiBncm91cC51c2VyRGF0YS5jb2x1bW5JbmRleDsgLy9uYiBmb3IgbmVzdGVkLCBjb25zaWRlciBkaWZmZXJlbmNlIGJldHdlZW4gZ3JvdXAgJiBwYXJlbnRcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNoaWxkLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgICAgIC8vaWYgKGNoaWxkLnVzZXJEYXRhLmNvbHVtbkluZGV4ID4gZ3JvdXAudXNlckRhdGEuY29sdW1uSW5kZXgpIGxhc3RIZWlnaHQgPSAwO1xyXG4gICAgICAgICAgICBncm91cC51c2VyRGF0YS5jb2x1bW5IZWlnaHQgPSBjaGlsZC51c2VyRGF0YS5jb2x1bW5IZWlnaHQ7XHJcbiAgICAgICAgICAgIGdyb3VwLnVzZXJEYXRhLmNvbHVtbkluZGV4ID0gY2hpbGQudXNlckRhdGEuY29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNoaWxkLnVwZGF0ZU1hdHJpeCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ3JvdXAuc3BhY2luZyA9IHRvdGFsU3BhY2luZztcclxuICAgIFxyXG4gICAgLy8gaWYgd2UncmUgYSBzdWJmb2xkZXIsIHVzZSBhIHNtYWxsZXIgcGFuZWxcclxuICAgIGxldCBwYW5lbFdpZHRoID0gTGF5b3V0LkZPTERFUl9XSURUSDtcclxuICAgIGlmIChncm91cC5mb2xkZXIgIT09IGdyb3VwKSB7XHJcbiAgICAgIHBhbmVsV2lkdGggPSBMYXlvdXQuU1VCRk9MREVSX1dJRFRIO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBMYXlvdXQucmVzaXplUGFuZWwocGFuZWwsIHBhbmVsV2lkdGgsIExheW91dC5GT0xERVJfSEVJR0hULCBkZXB0aCk7XHJcblxyXG4gICAgaWYgKHRvcEZvbGRlciA9PT0gZ3JvdXApIHtcclxuICAgICAgZ3JvdXAudXNlckRhdGEubGF5b3V0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICBncm91cC51c2VyRGF0YS5sYXlvdXRQZW5kaW5nID0gZmFsc2U7XHJcbiAgICAgIGdyb3VwLmZpeEZvbGRlclBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybUhlYWRlckxheW91dCgpIHtcclxuICAgIGxldCBkeCA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgbGV0IHggPSBMYXlvdXQuRk9MREVSX1dJRFRIO1xyXG4gICAgaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoIWMudmlzaWJsZSkgcmV0dXJuO1xyXG4gICAgICB4IC09IGR4ICogMC44O1xyXG4gICAgICBjLnBvc2l0aW9uLnggPSB4O1xyXG4gICAgICB4IC09IGR4ICogMC4zOyAvL1RPRE86IGRlaGFja2lmeVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcoKXtcclxuICAgIGlmKCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIHBhbmVsLm1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkhJR0hMSUdIVF9CQUNLICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBwYW5lbC5tYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ERUZBVUxUX0ZPTERFUl9CQUNLICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGdyYWJJbnRlcmFjdGlvbi5ob3ZlcmluZygpICl7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuSElHSExJR0hUX0JBQ0sgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIGdyYWJiZXIubWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuREVGQVVMVF9GT0xERVJfQkFDSyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vVE9ETzogbW9yZSBjb25zaXN0ZW50IGhvdmVyIHN0eWxpbmdcclxuICAgIGlmICggZGV0YWNoQnV0dG9uSW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEZGRkZGRiApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGV0YWNoQnV0dG9uTWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweDg4ODg4OCApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSBjcmVhdGVJbnRlcmFjdGlvbiggcGFuZWwgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBmdW5jdGlvbiggcCApe1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgZ3JvdXAub3BlbigpO1xyXG4gICAgZWxzZSBncm91cC5jbG9zZSgpO1xyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH0pO1xyXG5cclxuICBncm91cC5vcGVuID0gZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoIXN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlciAhPT0gZ3JvdXAgJiYgZ3JvdXAuZm9sZGVyLmFjY29yZGlvbikge1xyXG4gICAgICBncm91cC5mb2xkZXIuZ3VpQ2hpbGRyZW4uZmlsdGVyKGM9PmMuaXNGb2xkZXIgJiYgYyAhPT0gZ3JvdXApLmZvckVhY2goYz0+Yy5jbG9zZSgpKTtcclxuICAgIH1cclxuICAgIHN0YXRlLmNvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgYWRkSW1wbChjb2xsYXBzZUdyb3VwKTtcclxuICAgIGdyb3VwLnJlcXVlc3RMYXlvdXQoKTtcclxuICB9O1xyXG5cclxuICBncm91cC5jbG9zZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgaWYgKHN0YXRlLmNvbGxhcHNlZCkgcmV0dXJuO1xyXG4gICAgc3RhdGUuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIHJlbW92ZUltcGwoY29sbGFwc2VHcm91cCk7XHJcbiAgICBncm91cC5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAuZm9sZGVyID0gZ3JvdXA7XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbDogZ3JhYmJlciB9ICk7XHJcbiAgY29uc3QgcGFsZXR0ZUludGVyYWN0aW9uID0gUGFsZXR0ZS5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgLy9uYjogaWYgdGhlIGNvbnRyb2wgaXMgbm90IHZpc2libGUgLyBhY3RpdmUsIHRoZW4gaXQgd29uJ3QgaW50ZXJmZXJlLi4uICAgIFxyXG4gICAgLy9idXQgXCJpZiAoIWlzRGV0YWNoYWJsZSlcIiBoZXJlIGNhdXNlcyBwcm9ibGVtcy5cclxuICAgIFxyXG4gICAgLy9oZWFkZXJJdGVtcyBzaG91bGQgbm93IGhhdmUgdGhlaXIgb3duIHVwZGF0ZUNvbnRyb2wgYW5kIGJlIGluIGdsb2JhbENvbnRyb2xsZXJzIGxpc3RcclxuICAgIC8vaGVhZGVySXRlbXMuY2hpbGRyZW4uZm9yRWFjaChvID0+IG8uaW50ZXJhY3Rpb24udXBkYXRlKGlucHV0T2JqZWN0cykpO1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgcGFsZXR0ZUludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcblxyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIC8vJ2dyYWJSZWxlYXNlZCcgaXMgZW1pdHRlZCBvbiBpbnB1dC5ldmVudHMuLi4gdXNlZCBmb3Igb3J0aG8gbW91c2UgZml4Rm9sZGVyUG9zaXRpb25cclxuICBcclxuICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgZGVzY3JpcHRvckxhYmVsLnVwZGF0ZUxhYmVsKCBzdHIgKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgX2JlaW5nTW92ZWQgPSBmYWxzZTtcclxuICAvL2dyb3VwLmhpdHNjYW4gPSBbIHBhbmVsLCBncmFiYmVyLCBkZXRhY2hCdXR0b24gXTtcclxuICBcclxuICAvLy8vL0VYUEVSSU1FTlRBTCBGRUFUVVJFLCBDVVJSRU5UTFkgSEFSRENPREVEIE5PVCBUTyBIQVBQRU5cclxuICAvL3N1Yi1mb2xkZXJzIHRoYXQgYXJlIGRldGFjaGVkIHdoaWxlIG1vdmluZyByZW1haW4gYXR0YWNoZWQgdG8gcGFyZW50IG9iamVjdCAodGhlIGNvbnRyb2xsZXIgdGhhdCdzIG1vdmluZyB0aGVtKVxyXG4gIC8vJiBrZXB0IGluIHNlbWlEZXRhY2hlZCB1bnRpbCBiZWluZ01vdmVkIGlzIHNldCB0byBmYWxzZSwgYXQgd2hpY2ggcG9pbnQgdGhleSBzaGlmdCBhdHRhY2htZW50IHRvIG9sZFBhcmVudFxyXG4gIGdyb3VwLnVzZXJEYXRhLnNlbWlEZXRhY2hlZCA9IFtdO1xyXG5cclxuICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhncm91cCwge1xyXG4gICAgaGl0c2Nhbjoge1xyXG4gICAgICBnZXQ6ICgpID0+IHtcclxuICAgICAgICAvL2Rvbid0IG5lZWQgdG8gZmlsdGVyIHZpc2libGUgaGVyZSwgdGhpcydsbCBiZSBkb25lIGluIGluZGV4LmpzIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpXHJcbiAgICAgICAgLy8oaW1wbGVtZW50YXRpb24gbm90ZSAzMS83LzE5OyAuLi5oZWFkZXJJdGVtcy5jaGlsZHJlbiBoZXJlIGJlaW5nIHJlbW92ZWQgYXMgZWFjaCBoZWFkZXJJdGVtXHJcbiAgICAgICAgLy9zaG91bGQgbm93IGJlIGNsb3NlciB0byAnZnVsbHkgZmxlZGdlZCcgY29udHJvbGxlcilcclxuICAgICAgICBsZXQgaGl0cyA9IFsgcGFuZWwsIGdyYWJiZXIgXTtcclxuICAgICAgICBpZiAoZ3JvdXAubW9kYWxFZGl0b3IpIGhpdHMgPSBoaXRzLmNvbmNhdCguLi5ncm91cC5tb2RhbEVkaXRvci5oaXRzY2FuKTtcclxuICAgICAgICByZXR1cm4gaGl0cztcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGJlaW5nTW92ZWQ6IHtcclxuICAgICAgZ2V0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIF9iZWluZ01vdmVkO1xyXG4gICAgICB9LFxyXG4gICAgICBzZXQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIF9iZWluZ01vdmVkID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFfYmVpbmdNb3ZlZCkge1xyXG4gICAgICAgICAgY29uc3Qgb2xkUGFyZW50ID0gZ3JvdXAucGFyZW50OyAvL29sZFBhcmVudCB0byBkZXRhY2ggZnJvbSBpcyB0aGUgY3VycmVudCBwYXJlbnQgd2hpbGUgYmVpbmdNb3ZlZFxyXG4gICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gZ3JvdXAudXNlckRhdGEub2xkUGFyZW50OyAvL25ld1BhcmVudCB0byBhdHRhY2ggdG8gaXMgb2xkUGFyZW50IG9mIHRoZSBmb2xkZXIgYmVmb3JlIGl0IHdhcyBiZWluZ01vdmVkXHJcbiAgICAgICAgICAvL2Fzc2VydGlvbi4uLiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gKGFuZCBkb2Vzbid0IEFGQUlDVCkuXHJcbiAgICAgICAgICBpZiAoZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApICE9PSBncm91cCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkhvdXNla2VlcGluZyBwcm9ibGVtIGluIGRhdC5HVUlWUi4uLlwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgZ3JvdXAudXNlckRhdGEuc2VtaURldGFjaGVkLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAvL2FzIHdlbGwgYXMgdGhpcyBjdXJyZW50bHkgZW5kaW5nIHVwIHdpdGggd3JvbmcgdHJhbnNmb3JtLCBJIGFsc28gaGF2ZSB3cm9uZyB0cmFuc2Zvcm0gaWYgSSBkcmFnIGZvbGRlciB3aGlsZSBzZW1pRGVhdGNoZWQuLi5cclxuICAgICAgICAgICAgLy8qKmFsdGhvdWdoIGluIHRoYXQgY2FzZSwgaXQgc2hpZnRzIGJhY2sgdG8gd2hlcmUgaXQgc2hvdWxkIGJlIHdoZW4gYnV0dG9uIGlzIHJlbGVhc2VkKipcclxuICAgICAgICAgICAgc2NlbmVTaGlmdChjaGlsZCwgb2xkUGFyZW50LCBuZXdQYXJlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBncm91cC51c2VyRGF0YS5zZW1pRGV0YWNoZWQgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIGZvciAobGV0IGsgaW4gYWRkQ29udHJvbGxlckZ1bmNzKSB7XHJcbiAgICBncm91cFtrXSA9ICguLi5hcmdzKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhZGRDb250cm9sbGVyRnVuY3Nba10oLi4uYXJncyk7XHJcbiAgICAgIGlmICggY29udHJvbGxlciApe1xyXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2xsZXIoIGNvbnRyb2xsZXIgKTtcclxuICAgICAgICByZXR1cm4gY29udHJvbGxlcjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGltYWdlKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSBgZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFnQUFBQUVBQ0FNQUFBRHlUajVWQUFBQWpWQk1WRVZIY0V6Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vK3VtQWM3QUFBQUwzUlNUbE1BV25KZmJucURXR1I0YTJaY1luQlJhbFJMZ0g2RVRuUjhVR2gyUm9aRFhsYUhTWW84UUhVMkx5WWNGQXdGbW1VUjFPSUFBSkZoU1VSQlZIaGV0TDJKV211N2pqVUtJUWtrUUxxWnZnTUNaTzJ6VC8zMy9SL3ZTa05Ea2oyVHJPYXJWZDVWNnhEUDNwSmxXZEtRN3FhUGI2K3Zydzh2aitQWi92dnJ4ei8vL1BqNjNzL0c3L2NQMm4wL1haNk9wNlg4ZkpIZmFHLzNqOXE1WC9MS3QvdDN2L1FmdWZRay9Yb3Vib2x6L0RxNUxIN3kxbkxWbDl4ZUg0YjI4amlkbmNaeS9aTTBQK1dmZi83em4vLzgrKzkvL3NHNVV6dGF2M0gxaW5KSVhrbGU4UXZuMytPUk9QMm9qNU9QbXo3ZXYrbTVQRERGeVhhbi9Vd2V3QmQ4MTI0WkRuMm8zZVRCQm1DS0F6WlFmalk3NVdYLy9ZKy9LajZMbjc3Ly91RjNyMjR2SHlmUDVhZTljUlJzYUg1SS80OHZlUXFQNUtoOVg5ejg2d3ZuK3dqaFpmbVlqVHpteUJmbFNPQno1VjFsWE84ZUg1NG13OG56SzhkVEhzblBlcGJ1cHdmdDFWdStQc2x2YVpQdHM3M0ZhV3hYYnAvaVVqeC9JOVNVYzNITHFaMkRobnRWUDBFUmZONzlxOTE4Ky9UMnVGbE84ZXc4QlcrcXc0Uno1UlpiT1RwNWZzSmorZFRxRlovbGxUQXF1TGMrRW04akEvNGRBL1M4OWM5NWtoRWg4WlRZbThlM3ArMFFWOXhQNWY1ZlFqVThWTHVlSjNpdGU5Q1Q5TGV6bjVJRCtLcDh0QjNFbU9mZGVmc2w1ODBQWTFXTURrYUJORlhxSDVWamVTU0c1SGpSZFR6cStlQU1qUCtFTDh2SHlDU3pGelc2TEU5NlByanY3dVZwTXVwMHVsdU1wN0lwdVdYYjdYUTZ3eWNadHRrVWI5M3RvSTI2OXJITEthOGNicDBVbk0ydlR4TTl0L3Y4OEloemVOM2s2U1YvNHRieVpzZTlmZDRRZmQySnZPN204ZUc1VzU3eURSYkFyTUs1dUR2ZUdDVDlRYjdJVit6YUdNNzJ4eFB1UGNMcFNzOGo1OW56cEJ1Zk0zeDI0bkhhdnRvRGhuSVA2U1hWOE42NGFEUWtQVGxSdG5iMnM5OUUzOVJmZFJpZnJyd2tuYnc3Ym8vSmhYbEx3ZWxQbWNpVHg3UFQvbHY3VDdQWjVoSGpsa1B5dFpmUmo1dURSck9UbkE5bXZYOTR4a0IwaDN5dng4MUpCd0l2cXYxNFV6bi8rSzB2ZXllamZlNE5WdUNBRGNYbU96NXIxOXQxOWZLeHZwbjhIUFMwN1ZZais5akhON2xTZm5maTBoK2N6Y1BPZWRBYmRJU2E3MjlQY2c3YXVmdjBsai90MXN2OWFiWlUzcHpJdzZTdDlQdkdNa2FkUVp3aUEzSGtQUG5lNDl5Um5qdFlrYVJDTnZCUXZ1Smd4ekU4WWNCeDc0RU5IY1lacDY3NE9ZTnpoeHdkNHVGcHVOS25qN1lQa0F6SGs3NFJIcnJTOTlwMUp2WmdPUUQ2cjdRVEJNVzh4U0o2UFBGVjQ5T1h4Z0M4dTF5Z2hKTlJzMVZ3dGpINjczRDZSS2ZVY3JiWC92RjBLaCt4N2U2S1VaTzc2eXl4bTJNY3BsT2NiOHc2eEVDY096dDdXUTZFZE9zbkQ4RFpPQi95NTA1SHU1bHpQRjFzdnNvY0hNejdJT0lZWEhzZXpKditZdEh2TjcwZGJpRVRkVHZhTmYyOFZIbkgySDdYYS9xZzVyc3d5VzYra0RhWGQzL0xuNDE5eW5JOGZYL1h6enYzK291bVlBRDVpVlB3cGllVGxESVh4L2h1T2RodlFGSWIxcE5Oa1hOdjN0ZFhsSytSTVFTOU9lRDl4WnhEUi9vTHpacStmYzU2Y0ZhT0J2SDJKaDZHcS9XaVB4aHRqUzlPU3d3ZWJyS1RKOWhiem5BMkpzcWdXZlRYdTFHc1dKalFHRVI4VnYrU0FlUUNFZzdmQnI2N0YvcHpHREFiNzRVRjBDOU5QbnFsZDFyaks5Q1BnVmozRnhpSEJ6MUordmZIbVRIcldqK3MxNU9YQlFWUGV6SkFvNFJRbWZIeThtaWFHeGlnMXh6a1ByajM3T2hFSE16bExlWG05M2lXdnZTSGpOZmk4SUdQbFhkWEJ0QTdOc0lCeWhDbmJ4VkFlUDY4Zitpdmt3SGtzbytDQVQ0Ty9iNVJWK2ZiMnh1ZTFuem9tT2g5eVFBZk9PVk5WVTU1VXhXdHlsK1FEc0tFOHlEcHQ4cEQ4SkMvNG9lT0liN210TVNBcnc4ZmZONXN6SG5XZ1BpTjhyUnpOSWJKaEoxY0ljemZuVURTZ1dlRUFSYWYvWUc4NWdFZlJySDZnSW15YUdTa01hN3YxQTB3b2YyemR2VVNBREovY01Dbm01bnpIUTQwaS9sQkJ4U2FWU2pOSUljTXFieG85R3VuVHFhNXloSnBVS0NWNDhHc0IzQzNQR1VFQ2VDeXFpZnZvMk9EODQxZDd4NHcvUTV6enFnVGxwZUozcnR2MHM0R3ZUa2NsS2RrNUhFTCtTTHd4V0M5T0FoUGdjMk84aVVxNUZmNmZYcXRNTStML2hSV3JCaGdBY2tsbjY5RCsvVDhqS2ZaUUlsT1d6S0FOS2pweTcxSlNoNmI3NFFKbkFGTTdPSGpGbzNjZWQwc0RnMUZQc2VqNmEveFBDb3VPeDJnZVc4Z1RjOTJqbDdpUmhBUHdnRHlpclpPWTNsUldzcGp6K3UreWluVHJIQnowTCtIMTVjbllCcEFOeEJOVEdkQ3lnYXNybmdDWHNBSTkzQ3ZlZ0QxYWYwRW9VTUREb0FhRTVxZVRIYVFlamlzK20zY3p0MVFvSVBqRy9rdzVlMnp2UlFWYTJjOVBaOHExQTlWQW5IN05XVFNlQWEraGl4YTc2RHZRSGpnd2xWSGxzNjVVcHdLM3JaclBJN1JubUVGZWxBU0g1UkhWSzVTNTdsZ0FDcEdHRzlwY29JT2xQeWxzeWdaUUpycTlGRG92citTQVlUTy9aQUFMdmJtaDhNY3J5aXZ0RkNDdittTWgyd1lESGJHRVA1dE1rQTcxZWxHbmJOS09nb01uNStOU0pIRG9sbGpuWjVDcUsxV0syR1hqaXl1Zy9PcWd5ZjdZRGN5ekx0NUk1TnRhMnFkYjZMNFdSMFphMmdUd3FwVVZqc3FvOWVyTGpkZk15ckh1MGJ1SWx6UXpIZFVpRjM1MHp0cFo2ZlZyK3UwUERqNlovWk92Zlg2REIzblBESk5JeFRyWGR4SXFBMnV2Rk1pS0JrYkl5TW1DVHE0dWt5TkFTREVoNU11U0FNRkNWL1pQYThQQ3doRmJEYkdXQmY2SWl6QjNsT1Z1TnZKSlFQWW9JQnc1OTF1cCtPNlc4a2ZxNjdjT0JnQVBhNFVxNDRKWFZaWG1MNU9SRnRadjZrUlU2eGlJaTM4RlhYcGcwWnBRc3ZPNUJ3YmRZU3FuYTdPSXJrUUl1Q2RrdVRRMTVXa1R6SEZJUldlR3NyRjhnZEl2ZUhTc0tQbU9kQUpCTFh1dERFbCtreXRXYjhBT2dZMWtGQld6eDI3WkJuS3NZN0FlUmNLY2ZUckFBMDZxOHQrWmN0ZDlFKzV4SzEydmZWOFBvY1FnN1NpWXIzdXNhMTdTbTJvc25jUTVha25iY0FzWnhNSldBT1RBV1RLVEdUWmQyWWZtOEs4T0RnRHhBemxranRkWW50K2xRR0VxR1F0ZWRQZFNOcEEvb0RPNHZjWTZDRlI5Nm5Rd2Z4aE9xNlFnd29EVmxDNzdlR2dRdXhKQ2Q0L1VIK2RVWHoxN2ZHbVE2NHg1WEdYdFpCSEQ0TS85UEFXTjVLbjZscG5mRUU5OHFDL1pLQWdBSlVCcUU2NDVya2VkRXl0bzBvaXJHSmE4MXpYTnVnWXAxdVh1SExjMHhIdWRrVUh0VWxWOU1zQURXLzBqOWhQRGxjWk5oZitwUkJUUVR4MnhUcGJNb0MrcnM5NDE4RkcvR25McUYzODJWOFBkRDdxakxXVmhhT2JETEJ2TVlCcTBPeTVaQUJqTFQyR05VVEpSSjNGNzlIMEQvb1JMcCtQdHN1bENKQmVER3FzTzc0VTZkNUVLRnN4Z091Z0pnOGFXZHk2S29VWGg0VnNZa1FFY0ZIRHU1cjhHaFZybS9ieWw3TEhZbTJ5Ui91aFRoeE04NXhUanc3ZGtGcnp3ZFhBNWMxTGluRjVmdEpOeU1IR3RKU1kyKzJ2KzZkYzRocDVhTlBnQ1R1b2RtT25ZYlJrZ05NNDFtM2NnL0xVeCtSMHNubUJ6eEdob2p6UXRUbFpNUUNzYVp0cHhRQ1FDYmNaWU9ZelRvVU5wN0JlNWkrNzBJLzRDSVZ1LzVYUy9oUFQ4RFVZWUtzc2Ezc2VGUkVyYVhxbk5nTkF4S3NBNkl4MEFqWHpSditXKzFGYnpyZVhhUlNqeXZIUlJ4b2pRTDBkVTNMS0lFUHoxT00yWlRBSU9tQ2hOWk9IYjE1U2pzdkwwMVZDUHozOHVwL0VVeDBJS3U1YW5yU0d1SW92NjNtVENVSUcyRk52Y04xT0Jna3JRSS9UZWthMmJUNVVxS2p5Zk9hV3QyQ0FMdFQzcFZxQi80QUJzUFp4eFI3bGpDTUR5RWZJV2dtRmp2bzFhSTMxNmVPVDU5YUtoeTBnejBOcXVjbWpmTHlSVW45Z3pSdnNlbVFBNDUxa2dCRWtVcCtqbWlxR1hNWVZBTllSRzJ1WkU1MnpickQ0b2s1bVVRNmhOY2RhY3ZPU1d3endwLzFURG8vdTZVWWpsVFU1cHZ5eURodWxsVERBY1JaSDhXVWNKSmNSTUw3aGUvcVF5YnJWNHE0cEdBRHFvY29BSGZ6dTd6UEFySkN1SFBpU0RQb1I1MTV1Wm8vSHVLQlpKRnNrQTBBMVVTYlVSdjI2WmdDc2JpTERSUUNvWklIQnB5UFh1c1dEcjZPS20rbGRicGtpZjZxNG92YUpZVW5OTTE3MFBrOC9RMnZHbjlBeGJsN3l0eGdneDFPMDZTMTJScllmZWk5a0d4dGNBbnZaQm5JQTVUTE1vTWY4Z1ZHM1NZYzd5WHdVbWZtQjI3c09RRktkWVExODE2bXkycTFwOS9zbEE4VHFJeVJ4dGJPeUEyejVPVFMrZ2htSG1JVVlPdXV0SmNBam5FWDR3UHNMQ1VCVkNPeW1UNFBCUjJaS3d6ZkM2NmpNWGc4R0s1MURYYm5MdUZDTE9URDBXUERWNVNTb0ZwdzAxRHROaVhwOWxvZTRjTDExeWQ5akFQbmgyN1JYWFJ0aUx1YVlKdjBoQUlRQlVvbWlEaTZqaWZIZDZnUXIyVU1ONkxKeStaUU03VUJNUlBnTzA3R1ZPSlRQdjJBQXJqNDRHa3BjWlFuTTA0UFVwcTdvLy9NWnlRQjRmMnlSM1F2U1lnRDlBWGx2aW9EZVNxME56Z0JjUXFudURNVHBBUjlpc2MxTTNRZ1BkWTNnaFpRTktnVFJNVVY4Tkc5ZTh0Y1lnSS9HVEhLTkZvK3Vsb0IwRXFrcFdEUXI0MHd5UUszR1ZRd2dGaW1zWEc1aGxqVWNBeWE2UmpLQU1raVBScVhqenhuZ1dLd0J6cmVQNDVzTVFCdGxpeEtuMWk0QWFyQjdRYTR4d01KRWVYK2dES0JQR1EyQ0FlZ0VVVU5RT0QyV1puM0FBSzBYbE9iTDNESG9TenNWek9QMW5CcWtYSm5xeWMxTC9oSURzSjljVmFuR3RSS1lUaUpoZ0Mvc28yOHh3QjdEaTZldGRRTXd6QlBIVk1uVXJ0b2tBK2ptZDA0ZDgxY01jRXJwR2l2QThpWURxQjAxWkRHM3JlQ0xVclErZ0tOY3E3dk5BQjhtKy9XQUVJV2F2V3pUbitFR2xTMjhPVDNBeDJwOXNNMTVQblZjS1U0ditaU2FtaEJaVG9WYmwveGxCbUIvTGRmcmJhQlQ4UGhMQ2JCUDg3NUt4ZDBxRitVeEJnRy8xUU5MWFVaV0NTTUZQQ08vWUlBMDRzM25sSXpUTmdPa1BrcVRiNjJObVVtV200bUJTTGF0V3hSK0xnSDBESmtnS2tma2ZKQVYwUXV3ckhUT01BVDVLcFBLVHNxZDJ1TEJwMXgrWkUyRitwSy96d0MvZXZUbmdxM05BTzFUQjI3dTNjQ1JpRzF0WDZXaThNQzZIbDBqN2doZUExakF1dWo1clYyQXFQV2hNdU9NYld0b0o4T1MzNWFGam9OYmNvTEdRcUtHZDdId2NzOStUUWNBSFdNSk9HTWhHWVVoQ0FKR2JhdmlKRmdOYUpjUWhUOTFqd1dOSmN1YUFXNVA1NXNNOEg4dkFlQ3V2N1VFREFvR09HMzhWUFRHa284RitWUzQrTEV5d24rNnFrWVg0d1RMUDN3Z3Y3OE5QT2JHWGhvTmJMeUN6cWZkV2ljMlhxWGNNM1RJR0NTRzNhUVA3VjNtYmo4T3RSa0F6QzNYcXp5Zmk1RUI2aWRZUW9mdjNaWXdIWWRKTjE5NkdWdmh6MWdCOEphcDNoVjYzMXQ3SVU3OTlOb2xmNXNCYnFzZlZBSlgrSy9URFNXUU5BckZ2K0paZUpnUnNRY0hROU9IQ1dZSE0veWxKVkM5b0s5L3hBQnAyalAvVVRHMG4rS3hNMk1XWGJtRnhxaHRuYWFBY0dCL0xNd0NxcTlJNFZBeEFGZmsrUTdtR0ZrS3hSdzhuL2U1MkU4TFpYSXlMQmpnRk9aeTBJdWJvM0o4T2ZDM1ZYSHc4TTFML2hZRDNONkFKRjJHYUc0R2tHMGczZG9odDUyQmZaZGwvaGUwcy9KQUxJMnp0aTlBbG90eFc0UDQrVFlRRVZxdlcrMUxwVDdzMW9jK0RlYW1HMUFaQ1UzbUVOTnhwaUpBaEpSR0FueEFmMmQweG1sVE13Qm1DSGFBNnZQVjgrQllYRlBkVDV1dk9rN25QajJYY2hmdTJuTHZtVnNQK2ZpSFY1ZTJQOTJNMzdna0Nhb0hYcCs2Sk9pZjk5ODJRUlIwZVVKakFJa3d3TWwxWEdwdWJtdmg5T0lDZ1NBNWM1LzcxbVc1c1UrOTdRMGN6NFFDTnhuZ1hROXJMTGM5bmR1cndxRTBkMjhON29VNUIvb3MyRENTdUNZaUVkZXluSy9YWWF5R2JicGdnUFJ6aUI4Vi90Z2Qvb2NoblU0NjlYbklRaExtWnNUWmhvY00rMXZiT3AwWkR2Tzh4WXJCb3pmTmNUY3ZNZk03TkpjSnJ2aXdCZVJQKzZlWFJraU9heUVCMkxhTTRycER6TVFvbGUxMERwckJsMmFXaFFxdUxaenRIRTBoSG1oWE1jQmpyaVpxYXNMWVhXY0FPTUxsWVUvUHBsOXhOaGRNUkg4dFhhWWtUeW95OG1EWEc4VWlZVmJvSGNKZzNBSFAxU3NZZ1A1ZTVmVmRKNko4T3lQR2Z0SHJJYXZPQVFLbXoxQ25NZUpzbFY2eDZNVGFSYnV4T0E5VDh6UkI0Z2I1Y3hya2IxNlNuM2FXOTVJclBrbU1QKzJITXBSdWlMVzdJYTc1QWhqYWVqZCt0THU1ZjgzZjN3UVZmbS9KVlNQUmpzK2h1R0Iwc1Zvd0dLRjJ6Q0hteU1idUNnTjBoMHBWSVFpSE5sYUFrZ0hnMVJ0cDBJUkpJczRmZmdSMUs3QWUwUWhkNFJuZVNwMlRYTDNjMGFVR2ZKcjYxRW12Tjk4Tk5LNkFjZUVlVWF1cXp1Y2lWZ1lWZElqN0tGYUFMMW9sNVgxYzg4Ulk0MmpMSmFmdUxCdmFtNWRFU0pNd3Q0UnQ2S1V3aXYxeHZ6eTZkRVQyUGFnbHZZRnIvZ2VhZ1FFMFdwQUVoMkJmcHB3Y0lUeVpBeThYRHlRVUFPNDV4Z1NxMUEweEJnWll1bEkvdDRuTHNidGdBQWtDMG9mNTBKTGRhRG1veGRVazNEcnBsdGZXRGRFcTNDRWNBTzRYaWpaTzdGT3NYbTZZbUM3RFZTOHNzSlkyYi9EeWhneGhURDJNQUIvelhCbnNyZWNpWEh6anFaZ0FNRk5xbm9kRDJEL0g5OWVkOHN1YmwxaFE0d0JCcmRSN3dIdC8ycis4RllyZ2V0VWlta3Z0cnp1aFB3T0NSdFNvN3NrUituWlFDc0RRSWhLYitad08rZ2xkWjd0MGFZNVBpTS9seVgwTE11WFl6VnNNSUQwaCtsWTY0WVJvWktLS0FSQzlDdWhaRmZlRktGZ3FWNHhIM1ZQNHpCdHdjdVVrV0J6b25FRElISU4xRnRBbFlNUFVPd2o5aWFvUnFTWTBRdnlUT1pUSUFPb0g1VENmTkQ2eHJYbk9aYmhNODJ5RjVmUTlMR2QyOHhLTElSTFRneEx0WUtGQ2VQWWY5cyt1QmlObFJGRFJrZ0dNWlE0TmVVdlgwd3ljZytTeThOKzUrb0x4MnRKTnFjS1FlTXJoYjQ0S2VMUHlja2dyR1VCYVV6REFBVVBMeGJXbFNMNjgzQ04wMnMyVkhxbm1EMjlaRkhZTkpIZnRKdXozYmFabGVEUW11Y3gralRpVEk0elpKWnp2U1ovVHpKWDlBS3dqQXpUTjJoQVEwSjByREl6dzgxb1BNbmh4WmtnYUJ1WkpIQlVEODA0M0x3R3dBVGJvM2xxYUJ3c3UvN2kvSFk2NEF2MVY4bUcybHEzalM0Q081RHlCQ3NBV0tCRUJGakMxa0E5VGdkbk1pU0thMGl3ejc1Ry9pZlBEeVN0Ung0djlUU01OREpBL0N3YVF3VmdudU1RWklJVEVlS1BnQ1RLQXZ6bTFIV2xwVVdDWGpBYXhXK1FKNlBuY0ZqSmdkNmpJSURSeGIzZzR2d00wYlZtQzFINDBxckhuREF5VVFUcUpnb3hiaVRJR1lnYThSRVpoMUdGVXE5QWZFTTJibHhCaktBZFU3Y0VWV1BmK3RQOFlBY2tqVS9TNkRFamVRUFJVRFd1UE0wRGlHaVRFS2tSWXcvbUZoK2tXMElhTU9FSWZsMDRYS3lVajkrM045QXZQcXBYNDJIRkFpNThyNVFlTHVQWjdBc1pxNFFreWZhZ21DRmNMS29TTFM3NDVBNk1qdWhrbm9NdDErajJCWkYzaUdjR2pIckt2TWZMZGlEb0g5MHFUTmV4a1FsUWFnVHRIbXhCNnVxSUlEVTJCdGc4Y0xHOEVuSzRNb0VOVi9RQWxpU0FZYmw1aWhIc3l3Q3F1QUozL3VEKy9UNDRBdUlzSEVIOWJ0V2RDSys4d2ozdUpiSUtDYXpBbHFwYjJzR0xJUWl2YjZtOGlxSTRWc0xqYkJYZmpuQkgrdzRDMmZocWtUMXBnZmFsZG9STWJCUUFDQWhZYWlJYjYxNG1yajR3STRMNUdPZXZDZHo5YlhMYjBDV2dINk9Dblo3UW40azcyY215dkRjQklISVJNUlEvV0JXbUJnLzdtdWJ3VmJ3VFlQRzhpWkJEc2poM1JKd2o5cjE4QytoT1Fyd2UwNFowVU1DTHRXdi9QenZmdlEzc0FsSitpQjMzWkhvam92Y09rWEhIbnJLUDlIUWdwek1ISEpWN2lMWWNNY0JhT2xQNDJTVWw0TWpnQWVCL2NrS1BKQWExL0luMEFCb01jckdUNHhoSWFKTURBSGI5S1FEeW9vRkkyZituVDkrd3lpczRBbHlWVW5uMG5hN09sNWdkNGVYdVFac2l6cGZRdFovS1B0QmsrVmc1QjkwUUhMSUhhODJLWkVMNlBmdXFTdDVKbXVncjZsL3J2UmcvZ3lMMWNoZTZOUHVUVXVtUUQ5S3RPM2VYMFhRNW93enZKbVp2TldJN1gvV085NE1yNWVFODV1cG5oQ1hMa1h0cjdWSDdMVUFqamFWL1p5RW8vN3JBb2tmNm5JNGpJUld6b2N4QmNsVU5tZ0xZalJ3b29SbW42V3JpWStSY3c1a3VPcGc5bytWTUp0K1JnM0lzMHNMRVR3TGgzNmhYb1N3RGxpL3dIS2hBMmlWL3kyZUR5cFgyanFnMWpnOHRxMmdqdHNoRmF5cGs4SlArOFc1dHU5TUJVTzlFbDUyMm1QSUllOUxNQlVZdXh4eEg5ZDhwYlFWZkIwRC95M3Y0US9mZlJuN2FjeWRWK3dQcUk2ejBhWjJyREFNLzRZenJXZm12djZBQmFsdWY3QVgxL0hBV2pDeXRNZFh3ZTMyMHN4dGJId1pDUmx4Ym9ZQ3hLWEl3d0JiOGkzMExPUWR3eWg4eWc2eHdwUGNCdk13N1FjU2hISUs2YitTWHg1U2NPaHBMRVAwNmVIa1BIQzNYWWc1aVFhZzZjTG5vNGd2ajk2TDJnT3FZTjJDTVBZVVp1bG1RU25VZGtPcEhXTTh4V3VVQjdyTis0WERIMWtMN1dwLytxZURkeGNEcFJVcnpvVk5FRDJvL0ZRSDZpMDBRSU1QSHlVTzNCaWU4ZzZSSExOOXE5cmJ2NEd4SnVOck1ib1VOZjBkWWg3UitISEhqaFBKT2p1QnBMQU9jRSt5ZzB3U1Y3NWdmWVRQVTdNQ1F4a1pseDVZMWljRU81aGdhUlJVcExIeTduZE1YK0NDK0drMFBVUFU1NUhTN2h3Tm96ZVNyNjlPTkFTbmJDVVVEUnNVOXhicnlxdHhwSEQrRDl1ZEk5SUltTUtkZ2k4N21VWW9ISVcreXRnZGRmOVh3c2FBLzM1Y3F2UFZpTzREcXgyWUdCUkI4djREcDFXbUl1OFFwcUhYRXk5QUZHWXBvbWdNdFRSN0ExOVhrckRmTk9sR244TUNReWI0UU9abjM1YW1zQ09QOEpxcXZjU3BVZmhkYStNVTlNNWdqWkVsSEREQ0UyWDZjYnprMGkxaW5tMU1VN3pRbThOeG5CZERSeVZpcEllR25UQkUxSDRsTE9vZEQxSFZ0dDRPTTRHbEMvL1Z4MGNTSFNUbXlaY3RST0JqT1V0clg3QVlKbktwN0NFS1dIdXE2bmN0bFM4VDlLdy80Zmx6OGpvUXNQZlp1K3czR1pRTkUzbXlhc2dxYkw2Z3FKUWNPb005a0srdndDNkU3bU54OXFGM1lSZUFaT3RwOFRVMnZUY0wxMXJkcElDamZvYzNlRVdHVHF5L3IzMW0wYXVKSDB4Qk8vbmIyNEY1allVWG1zR2ZOMEc0aWhNSU5XNUFnaHB1NkxPWUpNbzVseHVyM29xK0RtMWoxendmTkdCVWlvejR3dHBpekVGb2ttRXVrRlRTMXBBNzV3UXI4VEdHTVdtcjl2d08wNzBKZXFpTTRuanFjQktETzVDb0YyRHNHenBDMXY4Q1A2Ym5mWWpkd3ArbHltY3JCVU1UeEVxQkVSNGJxZEhpbE90VU9ETlAwSVo5MzhZNjlMSUtMWktiYldKenZZczRmWEJtNVJEdWdtOW16UHdNbjRpYnZEZ3VhZlp2dnFjNGRNUkxRNTBRZ0ljNU8vYWRXa2ZVV3dDbUYyNGJnOWh6VmdKRWVKY3ZWYnFZbGcxTEVySWtmSXFrdHpwdEwvM3p1UXBaaHU1QUNieHBnNXo2MFovbzl5RGxQMjhLTjkwNTZzWStTQndjT3N0WHN1RGNpY2NpWVNHQUtSdG9NelRpVUhXSVlOamlkZXlsTU5BSmFpd1Q2MGUydVAzb25ZZU11THNocWc5OVZoK1hidURtWWlPV1FSSnRoT0V4R3Via2MxU1RHU0RIRUtDaktjaTExUlVLc1lOTXdBR2lTa2I3QTY5K1F3L2NOSGp4MXU1bnBGMDRPWEFpZmJ6L082WWF5c2ZSb3RhM041Y09HTlhxMzdWV29OOTJ0czNCeXJ0dy9mSysyQkE3aE5CeXVHTmdWb0FiSHQ4aHk3Z3NFQzd0Q3dkRWIvL3ZkT1JUa3RWSlJvUm1qWU90SXM0aGxrc0c2US9wNEhaeTdOMGZxaHdobEFTbzd3bldaVURwRTV4ZnJCR0xwbk51dGhZNEVjV09KTnRIUjBQQWRtU1RWbmVyOVBXTXBVRndERUt2Ym5oREFzL1pUMXViUVM2MmVRRG1vVUhxd1hIcTdDTFN2U242aURzR0VvamJteFh3bGNaVlFGVnFJNkVDQ3hJRE9UV0hrRkRObEMxY3hRQXQrOEl6amhkQlJYZ1RUWTBtRzduRjRKK25FR29PRzlQMjg4UUdxdlg1VWVBWEV2eVZmUWdjMnpFUnNqaCswS0QyNVBsK1lQTEFGR1NKOXVHT3d3NitCck1ZMHB2V1FLNENvazdRTjdCQXpPb0VEZnVZbXp2Q1lMdUhsZWRQREtoREJNTk9NSWN0RC9zRUMwMlpNdVE1RG1TSUFCWHhyTXhqWnE3cld3dERENHpZUU40YlhSQkNLZkNZQ1dkL0o0OGo2OForUldMRk1lamlET3VRWHlXa0FGTXp0VHhRQTBPWGtRZlpzQm9BSEFoWUlyOUJrVHZyWDl4QkVNZmZoczZWM3IweE4ybXdFWWZWZW5Sam1GMytXamIva00zRnUxTVFaWXk3M2xHUXZQcFdGNVZBcFFIVVRBSFJQMWNicFJIQ0hiMVk4SUdHNzB3TVJ6Z1RFVklqTlNSWG9mazB1cCswMGlyd2tWT1dwL0tqS3NINGhTNkg5ZE9KL2NBMm1Ed1R3YXhnSHVmdFpMd1RxSW9rRjJvL0FqTUR4Y0JNbEtCRU00cWIvaU14Wno5ZERwRWVKZXFXbkJGTjR6UDVLcFlMUTdGMHZBaWtibkcwc0F2Y1BTdFJiOHhFNGRQYXMwZnVPbkhzSEpIcldoZVB1ZFJqMVNxUDBPQXd4NndRQ2V5WU5SQVhORVQ5cFE2Q1BnRVdvV256STVxZG00UXoxR2hneHdQTFdtRzJHaktRR1VlZjNlZXpJQU12WW8yRExTKzJCdmtZYmNMaEc0SFZ0QWlvUXdaOHVRUXpVUTU0K1FhUWYvd0xmd0dOSmNKYVVseC9KRmdRc2RsN21tNXhudVRKVWNuUWRzT3FqWUhqb0RhRmFKeURBSG9ybW1CYlZCVkNoYzY5SGNPSlZLWU9GMmdvYk52a0VvZ2Y2SXNwMEpTRmEra0ovQ1JCRDFWUkE3OGhTUUpEOWpBTGp6ZEh5YVB2RXppWlJHK0xSR3VwdXJuSWxpdG9qa2xzQzVCVU5lWjFVZUFPamYyQWI2Q2dsQzZtREhDbUZDbnNtbGxESVVIRXpibVg0NzVrRnlyRFoxUCtnR2d3NTBYWEM0SjRSQi84N1ZRSHdHaHRPU3JWQVRaeEtVSFk2QUFaaDR6Ykh0ajRrQmd4K0JPNjZWekFXTjk2U1hFb0dQUGowbEdsd25jNmRiUzNOa3pSbnFIb29xR0JrQWVnUzJnU3AzbkFHNERSeVp5OXUzZ1M1a0R0a1loNXB4VXgzTEowbzhKS2dsOGpBRDNHOHpBTlFrS0lGTnMvWVBMbU1Qa1htc2I2RTZ4aSttVUI0YUNCZ0xZMWkyVWo5QW1vTUJ5dW5XSnhpQ2lUOHhxNWhHek9Ga3NRY3dYaFp5ZXBhdFl6QUZCaHFxdzFrRzNkUTBKb1RKMWtzY1F0SHcvWFR0NllHQko4amtHQlBYVlAxUUQya0VTZWpvVTdleTNUc1g2S0dHNFNMeXpmVTVqdkluWkhDazJxanhIRSt2YlRDTEI5RjlBcHBpU3JNemdEelhXMFpPNWcyWVlET2ltUjR3aVIyQmNwTUJxTzZmQjVBNlpPQ01rQmtCUUxNUXJTTHdNRmljZXpvTm9LM0FxWmNvSE1aWjc1TUJjcnBsWHNzZnFnUkVZcjMxT3NFay8wQUZDTEIyNnBYZnNTeklCRURXTHd1T1c1ZGdxR2o5WklCKzlqTEVGRnFZSEZDRUNnMDNOWUlwZjNBelFZWGtjTkJvcjZZUE5aTzdkeGpwaUQvSWwwMEdzTmk4WXZqTG03ZlJUQUZRT2VTSGwvQ3FBUnUzOEp0V1hoeWV5R3RCUkNmY1RRWWdiOHRYcVd6akVsYUFBTEFRTndFQ0dIdHUxNTYyaUc2ZVZlbWZ6RFlEQnBpVjB5MHoyMW9PVzQvRmF5clZRUTRsV1B0ekVUTEZGY05lMzJhVkwxS1E2bVNBSmxveWdKdys5MllNb0s2OVNQdGc2YWwveWdBZTNMelFESENyTTNVckdpY3NOZ1NTUEpYZ2dnRStzWC82UFFiWVo1YUtqQkkrbHZpNkVab2I4Wll0TU1TbWhtd1J2ZkZ6QmdoMWY2RnJPcFhZQW9IVWhRa2dNQ2R1M0pnakZWVkdSSmJZT2owTnRLUVMrSVFFV0dCTFREZkxlODI4WEhHSXFnTVlJTUhhL1FUcWFpOEpnVFVEQW9ERGxCZ05Ob3NaaWV3TzBVdHJTUnhnMHQ3OVR4a2dQMDdJRHQwcW84WXJvakhldlZ3Q0ZtVFgzMklBSDVFS0sxd3h3R1RMQnQyMHpRRGpxMml4WklERjRwSUJNbFhuMmtLQTY3d3l1aW1Semh3TjVuWTlJRFMwN3dJbU1ZNHB1WVFCVkpiRDdLVnptZnFCSGVJMHJ3OGxheVJZT3lLS1Q5OXVRMlZPVWdvQUxEbkpBQllUUWlOeDBybkxOaVFPSkE2UWlqOWxBQnlNWEhHaWVYT01RYlNBT0IvbXhkY25BekJBKy9jWWdDUENMQldFczVRdmw4Z0xOWno4SVFQMHBGMHlBSGhiZDd5cmN3ajZ2SytPc29qVEJQUUZ3eUFYbFVkZ3doL0VZVWhhM21FdU95VEc5QU4zRmR3OEJCVXd3ZHI5ek5uRlRHNU9lR3FwZUZxSjBtSVRXVk5PZE8rRndHOHp3UGZQR1NBa0s4aEx2UXREV2FjV0tiNitvQTMwbE5Idk1NQytrS09aTWFvU1QyeDBIMXhkQWdZM0FNTTBxMTlsQU4xWWRteEVXd3pRNmNFK21Bd0FUaUs4TmpsRzFzbmFGR0RRc0s4Q29xdi9sNjZDSDdjUFFXekVwcUpKYllqZXNpRXBiNEtZRG9wa2dDRWFkbERqU2dLazcraFBHWUNZSks2Q0x3VE11U3NsTldaK2ZZczJQZE1ZZm9NQlRuWEdvSUNtNU12VnlJdExCdkFUOGR2Zks1ZUFwcmxjQXFBRHJsYW0xTlVNb0MrOG02dTlKY1ZLc2MrWURNc3hqSmRQa2YwbE9rQmlMaEowajdUbk53OVJCU1NLOUp4QVhRYm5oWVdDQS90VXAreGJXVFByY3FVRGhPL29qeG5nRXE2ZGVLQ1NhR1ZtaWFRTmxNZEI1OWNNVUFGVXlnLzNsenUwa1JkdEJ1QmF4VDA3WUpsODBkdmJ3UGMzQXZTUjY1TkRrcnNBUzNXYVgxOXVZcXN4TEdkdDVBcjI3Ung2dzFXQU9PbmJoeURwWFpyd3lXNTR4Vk00UnJZSm5kUUp1OVpzOWxidFhRREg2WThaNEhiNmphV3RWcEdPenZmRkJRTndzL29iREZDTUNJYmNWY29MTzhCTkJvRDVrUkRSSi9qU2ZLMGlBMXlWQUlaWnhOMDVKQ25WNEFRSzFHYkZBSVJxdWg1VkFVRUpERG1XcVVLVHBlRkd2WFVJZ3Y0dDlJbnloaFFCOUJHcFVLSTV4aG5nODhEV3J4amdnMjN4ZjhBQW1ZaW1Ta2k1TEdoakVNN2ZZSUFVZkNxVDgxNzVjdDQ2MTVjQTVKdnhmZklRT3ppcVY3Y1pJRkRMNVJJUWxzQTVOb2FkekdMN25vc01MZ3dsMERkMXBjaSsyK3ZpVEQ3aHY1ekxYemNQY1hmZ2llRmQybm9wSFUrV2FnWlJvbWxDQXZTOTFSS2dZZnRmTVVDZGZpTU1xWm5xVUZwK2ZVRWJ5eXN6K0NVRCtJaDhNa3RGZkhpK1hJVzh1R1FBS3FRMFdNaTYzdWg3L2R3WlpETERFb3p1eUFBSjJ1d3JibGNUd2JzdklIUUEwYmJvdWFhdkZsU29QVUxJRHhDcEJFaFJodXJjUGxTcVZUS21aQTVveVJRY21WSmxhSUNUWEFJR2JMdGFCMkNqZSsxdktvSFRtQ3Rvd2NrRmJicll1SzUvelFBY0VZZFpmc1M5OHBJQ2ViRTV0Um1BZmtQYnBjbU1uc3YvY3BCdTZnQ1pzNlBielYzQTJIR1lBZ1dHTnpCUW10T3cwTzZZMWk5QnpSY2VJYzhQZ05PVWFHaytPZDQrVklDMXJYM2tIb0VpQUlzYjVob21RakFBNURBYVlyWUtPc002WU9tbU5xZS91QTEweTAwc001LzgrcEkyeURIVVhETEFzUFlGY0VSeXFmOXdsYkxVdk5nUVlOcG1BSWZlS1lUM3NGQ1U2QndZd1o5TEFFN0RsU0twQzN2ZkZqUWdSamhRbWh4OTdhSGhLRUhORng2aHUySXVheXY0WlgvelVLcUEyZUlwckl5U1g0M0l2SklCdWx0cit0RWxuYlU5STBUeUp4TGd6dzFCRVFyVHNJWGNMbWhqUzliY0dTQTFkUUZaRldsZzIxa3FVcVVzZU1hYkFYYmJES0JHUzVyMnlVSnpZaGQvcFFNczFNbXhXSEN6NXc2ZmhVY0VCVXJUelBIa01MbXFBalZIRmhHSzdMdVl5eHlkek01OXVuMG9XY05idlVlNCtHbzgrUmVHSUtXK1JUWUx5OXhrZ0Q4M0JTY2JzL1U5STFYeGxxYTFIdWlMZ3FaT1Y3c3ZyM2hPN2ljN2FEa3JNZ0dRTitQOWk2R0lXRDZyNnFKcHNCcHplUDlxRjNENEFCaWNrZzBqaDNJbmpoRlcrcmNxVnZTSkhZK0lYU2RxS0Z0M0YzTTVkamF6MjRkS3RRcXRNZ1g4a2dIWVdxWmdhMTA2VWY2UUFiRFZ1K29NQ2pibWd5T3A2RnVWcGgyNVl6NC95UUJVbFJZSXRzbFVaV1dXaW9tMDhPdm0zbXNkRFVTOVpJREVUNDVHcU9LamRRUHdrYit5QTh3YmpYTll1NzhNQTZTQkpvNFI5dktscDJVQkVrL3MrRGREUE1MZ0NGTGVlUTd6T1Z1eHM3bDlpQU1FNVlCVm4xS3YvQ1VEb0xuTnAxQUNkL0tmTkh2RUh6TEFhWFBMSFp4RVEzQWFONmhZc01xM3RCQkdaNENzdkdITEs4UFNNQ0owcDZHY0d6ODgzK2ZqNEsyNXdRQmZBZUZWbk1Kd0pJOWh5b1diVWNFSWhwSWdkT2pJWi9yTDhJNUsrbTVnaEluU1BRYUhzVFNxbDRpamQ0ZVIvS1pzM1huVmpsN001VWlJZmZzUWQ1TUhydWZRaXpMUzZCY01FQTBIcTIxZ1poTDRVd2JZTDI4RmhLUmxmRFRSaXNwRkRFNlpFczlNRjU1dmpRaDVMcTllZTRlQ2oxRXp6RkpSaHFnMS9XdzFBeFJGV2xoWDhBWDFxMUdtYm9BWWo5dTRBTXUxQlZqSXlHZ0haWisxTWFoMEVnRnJjSmZrTUVDSnZDNjAyZkNKQUxBYXlIZU1idWtQTHVieTlQWWhxbFhRZ0I4ZVVzUmlEZmdGQTNqalFRYUVaS3NaNE9PQ0FSWWxBMlRXMitzaFliSFhheHFYMVB5Vm1UWFhTSFp2NjZ3ME1FQ0VWT1R5eXIwZWc5SW9KakpFemZQTVpyUFl2UWc4REFGSi9LUmhGUjgwOVlJbHd2b0pNZ2cxMEFrVkM5cHRGQllFREZ5QktkYTJkeEE4a2RIQUxTUE5BcUs4aUFFaXY5d1YxSk5HdXRLZ2RQTVFyQzRlSkdJUlVsRk1yR0NBcHJsZ2dDcjRLeGhnWGpabVorUUJqL292a29Ta3lDMnkzbVp1Q3F3amtiZ2kxendRcmY3MTRnV0d0bGxzQ090R0p2bmc4Z3E4QkpOUWVNRVZpQW4raWt6VDJWaFppYVFrYW90ZU5rWFZMY2NLaVFVZUVFTDZKOWhBQmFvUVZ4MXd5NW5pTjBsNWJVREFiZ3dKdTA4T1U3N0E0U1h3UHNRMm8wa1hNb1NNQnBUZmIrbWJRTGptenc1dFIxRStERXNGZjRGVWw1ckdrZTVqZEdWelFxN3FYdWdBR3ord3FsUHo1WUR6QncrbmJvWFJqc1FWUm9DUW01bnVneUtkTmRoZkh2TnZLenBicHVBZ0JwUkpLTHpnaW9pSi9LVS9RTEZzVmlzdVNmbDZ6MEFMNGlkUFFNWGNPeDc0TmpvWVVOa3A0ZDhFbzAremJZRGkwNXZaS2FBc09PeWRnR2hIQ0g5OUVkdE1JTFF5QUdNNExXTWxkTHNJNHJ4OXlDTzh3ZVFaQ1o3Sm9uTFVuMEFlMjM4OFNleHQvbWNIQVhxTFJ0S29keVVPYk8ydW1TU0VBeDQvY05oMUswcEtGdCtsU2t6OEtnVENmZjdDMmlvTkFJWDRHd0V4VFBKUnBPRFlLTDJZaEVJNnlDUVAvZ3MvNnZZUytYODhRd0p4RldBQlRFYWRuSjRSQUhJYlRlZHI1Z2NBa2FYSEVrQXMwYWJFaENNWEJyS1BISUZ6enVjZTQvVzRFa1NhSWc0SFM2Wkw3ZUNjWitOcTFqM2VQalI5SkNZWVVTOWcvdmpsRU5wUzA5RG1RT0pzVzA4eFhuY3piYU1mZ0hnTXhIWU1mL1ZEeDVXNmxhMXZURndoL1V4azRjQlhyb0Q4cFFOSktWb09xZ3p6eWNpUktUZzQvQ2xYZ1hWN2oxK1F1WFdiY2lieUFPTGFDSzJ6ZUV1OUhFMnVSd29oWkJieEhzc1FrbS9GQmQ2UjE4R3NLdG1adHc3TWI3Qm9BcmRWUGhsaUd2TEhkT1ZoenJNamFnZjdQS3RuM2Z2dFE4NXNXSXpBZW0vOFpTdE5qcnF0Vm1pWGM0UXB4aW1TMkNpYjluRkFLT2xKQ3FZeFlMS0FlbzZRcVNIV01qY0ZaeEhHSDJ5UnVUaVVhdjRMZFMzdGgwTVhwVG50cEFNVGxNdXJ6OGVsWjV3NEZjdXNaUWZDQ3Z6dTlIckhXcXhUVGo0N1NBZ0JZQkxBbHF5U2g1bmh3SHVRMThCSmpWa0JkRFlDTllVMHVWeXBkdWU1bGR6RXZpUndXOWZJWVJZSklxUTJWOXI5WFNia3NZVW5mNDF2SHlKWGs4bmpsNmZ6S0VkZHBvNG5VYm1ZSTlCTVpqak9sdHJKTnc2UU9wbWtnQXFOai93N3RSdEVzREUzUlRscHdBRkJBMERjQVY3bW9wbTVLcEM1STFuMHhUcE9NeXl2UEVBcGpvd1RKbUk5YlJHVHZTRkZDUDBBTDJCTVJxUUhDVS8ycGtUa0ltTkRybUtHaWVaOHhSc1VwSFpmNjVjajFFTmhSZUlLVDVUb1RyWU44OTRPa0JJN2lnUVJVcHU2OXY2T1dFNG1RYWxtWFhGb1ZrM0lJbUdJN2k2Z2NQQmtiam0vYzV6SGRhS1FIUFFwOGgzbG1YV2VFQjY0VEZJZ0xaWmlMbmVHV2FadWRURnBrZ1lZVmFRdjRLS1oyUzNnNGtwRjdna2QzMGM3ZWVZSG5ndzlmengrTXluVk05T3hQYmdTcDNvanUwQkNZbEpJUWs5NkpqZDJnMjNxc2FBL014eXdFSFdTMnYwejhtemZVUG1XMVZMWDBIWWViblptdm9ZdE9DcGo0cG5tOS9MTUEzZVJrSWRaZW56V2JleDNKT2twWjZvbUg0cDhJWkZXeW5PcGpQR1ZIT2FVSEVhUG1TY0k4UWtoWi9xcDB6cFBpQitZVlVrSzVFQXE0OHgyWWd1cmFkY1hrK2FZTk5oNkZXcHRlOHZjV3VpWnk5aks2Zmp6N1V5NTVJRkF6My9oYXU0Q21YQkMxU3U1WCtSdUJBbUpTZ01KTGJIRmtkT0QrUTF5Sjd0M1RMejJkQUU1SXFrZGFNaE1PNjFLSFZ6YVNzdForb1FYaWcyQUZjd3pnY1B6RFVpbHhRTmtscDZ3RGtTQ0g4K05Sa2s2WTlvZTV2aXlGVWtIblFBaURpVTVRSWVaNXBuY2hURWpSK29nT2grMDhSNTFuaEJ0NVMwWVc1TGJjVGtWaEtKcXJXa3RMaVpOUVFOR0EzL1RJQUlEeGpsM21vWWlOMUFQcDZ1djFVOWJIQWowUFBsc3BKa29tSENDTTNyWHE3TGNKMmlVaVMyRVZzeWhRSlQ0WWs0R2lGVENocW5GazV6VUVOaXV5RlFNNENScU13REx4NGp2b0lrcVAwd1pPejhRenExaTUwNmtFVlgwVE9oejRvUm1ka1JTdzZSV3lzeVo1UXZKS2JJQzNwTXk0SWUwYnpmUUJ0N0RmRGJuMEVHWWNlaUgzNlBNRXdKQ0VieU9XL2cxWVpERFp4V2JhNmdBclVtajMwSWFZS0NaQUlXdkp2MXBhMXE2cFpjNGU2WVgyZERFMlBRVFBjL29kMVJTWXNJSnptaFlqN1BPeFRKSzZ4a05vUGZZOUdKK0E1NHBpZzVZQWxJN1VOcFZ4Wk5JclZVd1FKTG9nZ0dla1BsRUhHTmdVWmkzSExtSlBBeUFMWHhwaHBEU1F6QXhIR2ttTVJwdVNZM3lMT0pyNlYvd0tkS2JHMjZOZVFUc0NCSkNCT0tMNys0NnlNYVNBRG9NRlVCazVBbmgyeFczU0MvQi9ocWhzUDZmVk9GOHJDYk5Fa21wQU54RmVBQkZPQmVBTGdObktBRjAwSkRWZ3RQVmt6OHhnVVdCbmo5dDNNbDhjS3QvNW4yQWs1L1I4TkM2UnBIWXdrUXMxV3ZtTitoMHNSL0dDdElGSEg3ZFoxNk45NUlCTXJWV01vQ1RTRHJiU3dBRTFHcFhlUVFOdVVrenRWSDFUbWFPdzd3Y3JUVkdNb1pSeDRCYWtNaG16QXY3bnBJNTBrakl3SkYyd0lQeEVLaTZMT1VjZ2lRcmxsYVZRMFVpNW1Qa0NhRjhpdWdpakdEZVl1bEJWZHJGeXZ6SVFBWXRYcGVvS2lKMGlxV2FzQmxieEpjbnBUOXZjdWl2bVNjNVNjM3BhbWw1eVJaQ0txRG5UWkE1NlBkdzBFQk55Qm9QMFlNSG1RV2pBUTkvZ2x4SFlndmJwTWNHRzNrc1Zsd2VzVUZYb0xRV01vTVJYUWF5SEs1TXJaVU1jQWFKME5tV0FKQ25nM2tWRTJBU3dGa1dhK2ZkZndxWVY5TVFXMGIvczlycmV6N0dTZ3RDRjR5Wkh4TWl3SEZyR3FWU0lBUk9TSktsQXRDNjI2VThZWTZ4UFIreklGbWVFSytqd0N6S2xLSGtMVS9IQXBvNG9hQXl5cXhrUnR1Q0FRemRMUEVCNnFydk1RV09wZHZHd2dDdklWa2NWakxqWk5hUlFJTENTRVd4YzErdDVYbHlRem1Wd1BBNm53SEhZWWcyWldiSEhDTVVzWkZEUWVlaXUzZkJaMllMNS84b0ErVndGYW0xZ2dGNlNnenhWV0ZnYWdhd1pBb0FsQjRpS3FpT25UWnNZQW56WWtuSWFVU2dmSHhnUG9ZNnpVd1NFRkJjQkdEMzlRSURJRFh6Q0pndDBvOVFCcFVNVUJsc0dlVE1QQ0h1UTZKbWtOVUw5SmtxY2poVis2cmQ0aFpNMU1pYzFza0F0aHZxZVlrRzFnZkRiWldDdWhaMXFOdWY2SFVkMGQ4bmlrN0VSV21YN3FjWjdXM3AxeG1FMm1IVnpFVGVUanA4dFlSN1FieTZpT1ZLak9oSS9TUEQwTXhKUHNTTHRRTGNSN3RJclJVTTBLaHpGY01sdkZJeFFOU3RVVUFwVmlUWURLNHlBS2QyRmtYaUw3bDQzaERiV1NEaklUWXhSem56WXEvU1c1VjVCQ3pqc0VKdW9ScGduYXNZQUI2eXJXWE1Kd05nbUFlUmo0VTdRTnhjSXlkTmZydGFQbG9oUVVqWFVaalk3WTJnTFdacEt5NzBWcVFsNGlNektFdmFpcm85ZDJHbTJJY2FuMFVlc0poYXIyblR3TjU3bXJwcGdVWUN3NkE3NFY2UStFM1RMaUlNUXJZamtZV1Fsd2lIYzgrRFhFSUM5QmVOQmpuVFExY3hRRmF1RWowZ2NqaGNZNEFDNXJYZ1dSN3ZOUitnRUxDajNFS25IN0NXUkpUYVFlOXFCelBVaWxzb2J1czR5anRkZmg4cWhLQjFtelo2SW05MUxFdU1aV1JTSUY0VjIwUkNaYjJNOVJxTUFXR0V0WUlMMTd4WEZRdEZBU2Q1V282RGw3VW9rOG1NYVR1RFl0OFBOZDczWnVoRlpFaUtVaFNYZ3VXbGp1bVZSY2Z6VjJidjlmck12ODBBWjBXdzh2R09zVUdhcVo3SHd0Y000QXNTQ241SHRNWTFCa2lZRnptcEtJM2ZYVlZsQVpGT2NpS2RpS0hnOXVERVpkWURNYzVNR0xXa0dwS2ovRlR1YTNwemRETzltRmNhMFh0azRmWldkQ052VVZiTUVacDRyUk5xNFgyVDljNEFtWkFIZ2FMTWxSQVpGeVIyS05LMFJkVzRCUXN4b1RlVWUvUlNoSkFCRnNBSFhES0EyWjNBcm4rTkFaVCt2ZzFONjBDbnkxajROZ1BrZ3JRTmRORDJLZ01VTUM4Q1A4QUFoaWlyR01EVHlXRnJNUmo0OW1ESlpkYUdjNEZkWEJRMk9yTmJkZTA2UzBBZjNRMjF1SEdSQkNNS3QwOTl5V0V2Q1JYNklzcjdIYmdDTW1EWEZpN053ZGdxNUF0cDJ6U3RqQXZ6OVR5aVJ5UGp6UnF4dWl3K3BXTUQ1UjY5bjRVb0hjUVNFQXhnaFpRMXZ0REJyMytMQVFyNmwzYUFMdTU2Z3dFb0JsOG43TDdCQUFuellyeFhNSUFzMDVsT1ltYVlQNkpVclNJVmpFbWJXR2FiTlNyTHNyYjBlNmdoSE9VeVQ4Z242clkxaDhnZTRXZ1o2YzNpejRTWUxaQWFRM3NSeTR0ZVZGMVVRSXpIcUlRV0RySFlrQUV3cW9RdWJzTUFGZXYxWUtjSTlxcG9McXBLaXJBSTY1dXZqbWZEajJYUWFDaUJLWmFKb1piUkpQajFyekdBRGcwTmtaVWw4RGNZZ04wM0dhQ3RBbTRLQnFEMExITWhvcEQ4d21yU1FmWVNlcXNxdy9rOEVJSXdkcHdRT09rVzlYZnQ0TEZZdm5veTlzd2ZrK0ZuMEZseXhZb2dYSGkwR012THVZWWJqcmpPT2JSU1BobGk4UnlXaGh4VlhieFlxd2JuSXJ5NjA4bng4RnhaUFoyKzBrc0c4TkF6OUxvOG5JcHU2aFBMZk8xRjFyYlJTQzdYcU9DL3lBQUtxV1BXNU5NZk1vQTg3R2NNa0VrZ1BPWTdHWURCdnNTSmVPRlZSYW11NXd0S3pnS203TkMxbEpLUWtkcTlpMVJGOFdaQ0N4OW1pekd6UzZVTjNIbVJPRGJ0emJVdThibXJxSE9kd2g2amVwMEJ0Smw1WlFJbkFGUjdIdzk2R0JnSUdneUEwTE1WZTUwQjFJeFE1ckI2WC9vb291aDVyMkZSeTcvRUFKOGZCNWtxRkxtL3lRQ09sWjM4UWdlSUpCQUI3a29Hc0Zzd01XRlVHZGZKdXhwRS9qbkh1K3NITStzZEtQMlNHMzVkSWloU1M5YTh3cGs5dEV5Z1FyWkE0MnFrSHhvUWpLUkpLZXdMQm5pN3VnVEVoc0hDL21uTUQ5MVN5ekc2RWhFWnQ3U1R5S0VMMk1MVXdWSTZMRllWbEhiTHY4UUFoOFlXMGUzdkxnRVowTm50d283SzBiOWtnRWdDRWZET05nTkVuYmpNYkREc2h1eHRveXQ2Ri9rdVJDbTZEdDB2MDZXUnQ5alk2MEtFclFva2p6d0RIeGZqVnpBQVZUaGtTNm1WUUdLdEZ0SlNBaURob2lFLy9RWlFrQUVSUWU5MUJoakRPSkVGTnNNWjlKY1lRS2hnU1pmTStmVWJEQkR5U05VY0djUGJkb0FFRE5QZ2M2cVhnTVdjSEFBWjU1amJCRlM4MUF5UVExOXVpNjR6UUlIc2NOWFFXemxRMlZzeFFEL2F6eGdnMXFlVjZuRGNCcm9XWVFXRWkvTCt4TzJMRUE4ZGdPaVl3eHk5TnhuQXZSa3FWdzRvQW9DWWdwc013SFZPN0NTOVN4RW1mSGd4WE5CNmFkRDlOUU9RbTduUlNRdllGUVlnekN2eHdxZEtDZFJybVkrN1drK0p2LzlmTWNBMkdjQjdlOTRHNVV5SjNtQUF3RnVqZFc0dUFlOVpaeHZWdEp0YVg5QjBSWU5rQUw2UUFrS1RBWnhZNkwzTkFPN1BsRWxqQ2NtRi9nNU10WHp6bzVwVTlpUVJHVG1PaEJycUp1Uml1TENob3QvcU54aGdYSmc2MGdaK2xRR1k4aUFTUVpZTU1BSjBVVDYrblhxbWhERkN5cHJTWTJMSEZQdlNORHJNQkRhWE9nQ3Q0MXh2VnZ3UFQrUVdscjBzRkJxa1hvMmtkWFlyUUdsS1lWLzRBdHlWQnpzT2w5SDhFcWl0eVFBY1FHd2puQUZpeUVhd0pOMWtBT0lTdEZ5NWVITnhGak5qVVFKQkVqdXAwcE00WHhDUDZOc1lzdXBWVXpEVmdKOHhnS2ZlY1F4NkJaUEtzcnpKQUV4NWtOak9aQUI0b0FCZXhiRWJFcURZQlF3ZFNrK0FMYnZCL0plN2dDRnhsZ2xDd1FjcVRXZ0tESmkrYmhsUSs0VGJOVzRaTzByL2VROGcwNFNIbTdBbi9kSnErQ25hR1N2a3Z2Tytja1BWWnJHOUxQQzl1elFrNUpzaG1UbnM3bGVoaThRbHNJUzlzOGxwSEtab1VKVU00TnZiZ3lvVm9WZmdWTExxNGxKZ2puWlFBOUpIaUxXUHVNTmdBTGMvYkdwM0IwdE4xV1Y1alFFNGNJbnVyaGhBb1lza2FiSDlndlNtMUU4L3FBclV6SDd2Q1RWbDlhbmNFV2tIZ1BqRGM4TU9JT1JERmd5WUFvM1VXS3VKK0o1SFhuME9xbERLZllkSzZSVDJZUW5jdk5OdmdEek9WazE3Yk9vc00yZ3NEcFJDQ0tMU1hwZ1NvUnFtVjBYMEJlMDllRUx1U3diNCtpNUwySU9ra1ZYUVRDY0xuNnUwblpwN3dRZ1o5dWs1T3RmdXN5ZXA1YWxXOHlaTitqdXNmWVk3aEl0SXJ3OEw1TExHU1RFU3BsMldWM01GMTM2ZzViNWtBSTBwaDNqSEVPY3VRQ1ZueURQRFNES0pWWnI4MUxWQ0hjSWNrbXVNcDB1QWhSb1Q0R3NNeUY1aXV4SHA0ZFk5RzMxUWlxemxEMXo0aGlzVFpuQUd5ZFJLa0NuUysxUGlLLzBOM1U0TDgwSk9KWVBYemdRTjRrcDJrKzlpYjhNSmxnSTNHWUNkSm1rd3d2UlEwSm5oM2tEem50REJHSGhnRTlvN2RIclVUcEJhamI2ZEFYc1JaVUFZS1hHSHNFVVdQb2dsQ3lJOUU1WEdncEoxV1Y0a2k2YmdpY3lCSlFPb1kyNlZJRjhNRzZhNkNKWjVadUR3b0NjWUNLdE1OV0pEczI0aTdGTi9rY3Rsa2gwODJxRFVXUkMvZ0xMRjZMWFIxMTdUUlFENERoOS9SdCtGc09lMElnTmdKaVNRR0NXcGVGK1FaZDRMREd2cFRvd1l3ckVGbjFodlN0aE5JWEJaZ01kRDgrRzRaS2tDbXMvcHpzeVFxeUtpbUlTa2o5b0x2enU0TkVpOUJhblpxN0daaEpFNkdPaCtDclF3bzk4M0FKVWd6RjZiWVNRUU1abGxlV2RXTDhEbWFlWU9MUmxnM3N3aFR2dURjcXB6UGtLajlrcmVHRGk2Q0tRMzRuOUg3STRFTm80UlhuUDBHVyswckJ5MGF3Yi9SS0F0SEkzcStkMVNBYk1KTkovN2hvdjVMSElHWmNrOTBDQ0J4RlpOUGIzTXUxVmdXTXVBZ293aU5vODBlMFBDTG11QmUySmVUUzloejFxV3JLem9xUm95NkZJNXdEQUZFeElTck9wNDFNbXpnMHRCYXZ3QWRKaTlHNi9CZk8rNFE3VVBFUzJNS0N1ck96MG1vaFQxZms4T2RJcEt2MkNBOUFQWnFsQXdnQlllbzNNdTROQW8zRVczMzVuZzlVaGcwZXVadnBFSWdFazNYUHdtbVFJanpORm4yZnBUcmJNNE1HTGpvdy9oUjR2VXllUDhBRlZjald6RGRab1ZNNmpJMTM5c29ZcUJrTFE0RTV6YlRRd3J2ZDFvaVNQZ1docWRqQjVwQ1Z6R3dOWWw3SzNtZGFScVFQT3c2Nnp4cmkyd042eUpIc2k1SVBVTG9NUHMxZXZScG83SkFqcWNGQjRUSmp6MUk0aTloVUNROW5oZjRkVHVvR1JreVlkZ2dLWnBzSFJ4OXNaVXovbDR0a2lNQ0tVeXFMeG5xbUdSMk8wUTNhNkdFQ01zalpPQ0VlQXRiRGVoVWEzZTRmTVRBVk9jUUNDSzNCaTkrM0lHWmI3K1l3dFZITFZLOVE1S2xnSXF1OGt5K1pTbER2angzcFN3SVhBekNMcFZ3aDZJMVdOQjY2U2Y5QWEwTWVxRkg0bEgxUmJJdVpyVTdCVnNHb3ZGNHpZSllMVnlyNEh4aURMNGV6Qzl3ZFpRYWhnbE9Fd0hZRDFSVndGOUpVTUE0amxuTHozL2lCYm1mUFRRY25ENW0wb3FqS2VWY2o1NkRYSU84N1Boa3dzNDFvUm5XN1hnV21kaFZoUHRmUS9FOXpQUlZnN2lJK0RvMWF2YVhwbEJZNGkwTnBBWU83YUFkcjhGV1JoV2pOOHVTeFdadHJub1ZjaGdDbHlEUVFBNmt5WHN2Zllpa1pNVlZRMU50M0g0L3FOZkVIaFVucStDMmttOVNkeXBRbXFSWFlEalFBZzdJS3FCOGNBdzZqOFFwWkNESnJLOGVqSkx3T2tTa0lsTmRYQ0lrRUxqN09YcEorSUZZajRxOGFLMi94dkg4NTQ0RXVrRzFMRHNkdFM2dExKN2hoWTZDM28zS0pwdWVHbjJ2aWhvRjUwNlRnNDUxRHNZdVBwME1ZUFFEN0lVUUdMZ2tJSXNMTzJ2Z2hOVjlvblh6OVZTRDR6TFh2ekdJZjdFUFZuUUh3OG1Xb3Rpb1VRUmc5QTRQU1REMjV1TERGVFhQV1Z5RjBMY2xkUUY3alE0M3BjWFQyTEJ1VVRFbThwUnp6R0R1QzBxTGJxREEycUtSWVB1aUZBbDBrTmI0djJGalh6Mllwb1NNUlR6TVVtdFlHRG4yckhLcUtPTnNuWnJQemxmbVlXamhHNFFtb2pmUW1lSlljZUI2R1Vmenc1TTQ0WklVdWtKWXBwOFBDbjk4OVhrZWdEc2owb3VvTG0xOFNpUEI2WjE0eHlHZnZZYTgra1JITExKcUorVnFJVGsxU1VIWVpQclBhYnA1bVI0RXdJY241NFV3MDhrakZaeHBzNkE2dS9raThTZGdsU0VEbFBCTExMRTZkbk16cUliUnYwWDI2bHdWdXJXUnZGQzJLWmF4UkRIcUFPUWpwWjQvM3BTKzFSL3FiOFIyTUFsaHBHTnA4ZVNoaU5nWm1NQS9oYlNqakdjZVpGbXdRZ285M3ZrYTVCZUVMUk8yUkFvNzcydUlJRm1mSUJRc0g1ZkZ4NzRHZU9seU5JWnBpQm1tNHN1TkplaGluck5oZDhablloaWVYMVZGRnJMRCtpY2laeHlkbnc3UlNkS3ZGd0p2d21TMU5CUnJlOU5KQXlyT0dQWElKMFdNNjJrTG5Hbkl3U3NvLzZIYlRFWkhPdXhtTFE5TlQzZFFDTWMzRlBqbjZzaXRwYXg2ZzVMeS8yOWZramtQdUFrZmVmTUlhbEVmbU8yY2dKVHlqSFZCWWJ4NmJXQXkrZVNiQU5jSkM2Sms4QnNYTFloWlVvbzk4dHJadHpsZ2xjbmJZRStjS1JZZ2Y3bWNNWTNSN1JTTTZSMjhwSUtsNjREb2J5MGlQUHRpZllNTE9kTDNiZlNHYTlmd09hSWhBVGxZbm5NOWJHZ0tGZFQ0b3N0WlN1QSs2SldPeEptbjBIb0RMc0VUZEZMM0dudWV4bkZ2RzdVMUVMalU5YWxVeTk1R091aU5vSmFNZ2YwcTVNQk5xNXhLR0V6MzRtMFdMbXlsN1BWcDJZNXlCeEdiWVRMb3hlaWJPczFsSXpnV0hRSUFhYUc3bXBKQ2VYR2FjeTRlK1FNeTdSTjBBaEQyVWl5a0M0MkFkMUYxOFhneXpMM1pzaG15NXViMjVkeW93TG9iMjcrSVZ1SlB5U0VXUXlMUERRYVltUEs0dUZRa0ZORFJuQjhVbFJiWUJCT003cWtaWW9DZGRReDAzRUdvVXViTzZZVFc2Y0wzR2taeGR4bkxLYmFHTUsyR3hDblRLV0x3c3BXeVA2VkRNQ2NKREpwN2pQL0VSVmlUdW9IOXVac0xSTVRFaHM2NURBU0x1K0dHWmhGdWxGRGlXQUJuSVE1RWtodk14K1ZVRzRhV3JBRHBTU2RaT0sySVJkSW01WWt5eGtXQnREbGdRSW1yRU9DcWxLbUluT29kaEFHakJaeGlIVG93TkpFNEFHZXhFcXFnQ1RRQ0VXWUxPanNXMlNndGZCOW0xa0pLeWdUT2krTHd2TDlUeTh3UThzeDB6eDd6UFFtVE9JTEpwZk9RRnBFTVNNNGxoR1RIRUxVUXdhZWljRFhnR2tEb1dRc0JDVlFCWlMycDRjeUE5b3A4MTlrOXZ2WVR6UC9nZzB5c2FFZG11RDhtZjVFSFZtRjhKaGR6a3ZSOWh3Q0hKR1lSR2dtbEZzQlZwRnhGNUtVeEdMcVJrY0VmU096aEpPbGFZd3VJV0RvWVZHa2gwWUxxbHBzRXpxam5PVm9Fb2ZWcEREakVESUVLbUMwUE9qampMa29oM0JQU0NpYVNIQUZnK050OGhKTngya2FGdkhsZFFtd0xQd3E2ZnhndVdIVUcxZmNLUjFvR2RXUXdiRnBQZ1ZiQTNtRHg3bEptb3lMNldaS29QWWJqS1hNZ2JqRW1McFpqZHRFbjYyMTJxbkF3aXR1TERLaURDN2dmdlRORVVmZUJBVFlHS0J2RUVTYW13bmxWbTl5Wk56bERNdmtyWmlZbWRuRksyV0Nsb0ZPOFFJWjRnazJmSFpIbWQ5clBZWmw4NURFZ2NyTWlHYnBhb2lOZTAxc0hBUEVHa0ROREtEK1hxVG9iOWJDaFJFeDY2R2lWdTRsZldMalVnY1k5T1I5b1FPTUdSeHJ2bEpQdjF1VUFGSGNxWWV3WmZYazRhUXNhVUMyTHV2TUlwVWZCQkVZRi80YUdqRHZWTGdZdUdHYmVVK1pLdFZnY3Fnb1hKWDBodDVKS1VlUncxZzYrVCsrWGhScjFiNEZvNzhEV2hZUVlEcDI1Q29NWlJsMVVzYXVlSVg3UHZBRUltZDVmV1IyUVdwbmpMTHd3UUVUa0xuTkxOcGxoNkJIV1RMbmxFWDdVMEJKY05rOEVaU3pqR2dHTnM2QkVWWEovZ0ZpZitsRVEvSmt6dEd6R0s2aldGWUVpeXVoRWRyT0lQYlVEVXJVV3hGRU1ZeHlZdVdnRElzaVVFWDk5SklCbksydFdBQ0hsUkhkZldYcDBCY1FFWEpuSURmZVcvbUpkM25GbU5wOHFqSllML3JLUjRlQUFJM0RZNzR1UTFub1VaQk9VQzJXTFVJTDUxamdFSE5udmtTTy9nMEdBSlBoMlFPTWNLOEowVHp6YWFueEFXZzlhRUJGU1FnZFIveTc2bVY1ZEVobmVqZURPUGpNQXNCWVJvSHRxNUw5b3V1ZlBkZ3lreWV2TlVWdEhSd2ZGSjBNaXdwaGw1QkRlbHNpckRZLy93WURoRURXd3ZlNUJCUnNMY2diaG03alBiaUlXQWdNblppeUJHdzk2WDBVSTgvcXN5aFVkbWdXVmZTZnpuUHBOVFp5U0E2bVN4bk01djdTZ1FtWVRrRVBWVVhoYThEbFhEM0plbTBHeUlodGdQbEQrZ3ptWGtUWnArVmlydmVFS3pjUDhwWEJBQlpaT2VkVjNDOWpsaGx4TWhsNndRQnlBa21HUEV3WmJEMTVabEVjSFBSS1lBcmVlY2J5d1FOWnkwb080TnN6SFRsMUE2NCtydGV0R0hjV3BLNHhTK2NvOTBMUEV6SitDUHN2V2dncFZRS1RFU093UkRDU1ZSeUx1WVBCRWxISlB1L0M4SnJQaWdGTTdTU3NpekFiQm5rTmsyWTBQVjZwZWIvekJna0FWYnhyOFMwM0pRQVZYcVUvZHIyTi91RkJUQ1JrTXhqMExjSmpuZ2REQW96dzd4cCs3ekwybFhVRWtQby9xbStuSkphbGxKQW1NU3pNMkc4OVdoZEw3cGNSc0E3RWVTMUtBSmV6bzl2Tk5OV2Nwd2xFeE90V0NOTjJpRzhxZ2NSd1FrK25BTzhmWEwzTVdNeU9jTXU2WkVUZ3NiWEpMWklCc3B4Q1VWSXYwVmZ0dUZYS09hb29rZG5lV0tlTS83OWE4eDZkWFNZQnA1bDZHWmtSYmpPQW5VSXIxbnl1U3FMTUJHTkFUa3ZwR2ZRWHZaN0pmejlZNndEQ0Y0U2RMazlaYUE0bk1pTFk5U2lHbDgyZE5yYm5uWmJsL3JuWjZubWNPY2NBVnR4dUZBL085WEVnZGdPbVM2dm5hVkdTNWpvRFVBRDIraXFQc3hJR3JOWDRCdXc3Q0IyUEdnaG9nZEpBWU1sS043YU50SklCb3ZqTDJlSEVXQUd5K3V6VkFQQ0ppNHVudDdMcVFrMnp5NXIzU0NFY1pRQ1lkRFJwZnBzQlNPTlZUMmtKWXNxOUsrbUcwb2J5RWl2OHk0UDMxUzZBS3dQOGxVekJGMDk0YTljWlF6cTl4UUlSVHA2UmNGcldJNFJ4am5TR25kV0dhVEtxQ2dkeUwyUXhjRDJrU1ZCMXJ4YWI4ZVFiRE9EQlRvYS9uanRDQ0NZY2JKWUJxTFhRLzZxQ2FlSmJFcldpclZ3Q09ObmxQQytGR3pYUUdHUi9qUUVxOEExN2F3YTRXdk4rbzk3ZC9ETDRmSC9GQUx3WmFDeU1KaXc2a3MyUHZtNFZmeTZmcjZUZldWck0zWndqV3RvQkxQQnBpRVR5cGFZSEdIY1o1OHc5cDZEQkQ0MFN6YWR6MEFjaVdJM0ZaQTJPZ1Y3ZVBWZWxROGYzakQ1YndHN2d0Z1p5RENLbElhUDRMZGNaNEozaGpvdEdTZTMySVVzckN3L0JlUmZsQWJPR01Wc05pTzgzSW1zckNWQUlveERxVGhPQWhaSUIycVRtMkJFWDBGdFZESEMxNXYyNFhRdHF0djh0QnVBazM1aytoNXlOQ3RYTjlWZVpRUmxBeEJ0U3JFa0hhZWxHS21nTktGek5HT21TQVhMa3lUVU9nLzdRM2ViT0JmMjBQaXN6MGhZTUVIVmo3Q1NJdkM0c01IMk5nYVNnL2hXYXBtWUFvcE9BdnhhMkpQNGFyZ0J0d2dTajgwWEp3MmprTElJT0xuU0EySyt2ZlFWZ2RrT2Vkb3NCNnFybkxDVlI5RjZ0ZVQvK2cycHd3d3M0MGR3WWdIN3VUb3NCVmlNcWdVcXpZSUQwQmV5Z0ovYldiZ2VyR2FDU0FCbU1qQjNmd0ZVOXB3L2taSm1SbGhPYURBQzhZZHdLSGdwWTV0YVJwZWlQR0lEU3RNWmZFeUZGRTA2QnlYU2pVWmF2ZzRtVkVnZGdtcG9Cc3JJeU5FYjZFNUltdjE0QzdndDQrQ3BvVnRXOC8yTUdBRURxL0FjU1FBZldsY0Jtb09UajdwMk9xaTVNQUJwSnZHQ21rU3M2d01FdWlyUUVQVmgwRWlkWTZRQlZSbG9TVGw4T1h4eER4dHh2cUdWWW9EUkx4YWtzZFYra0dRSE5FOVRObCtCbGlaRmNxSmllWUJVaDdqR0Q5NUh3YkdWS0NpN2tzR0w0Snl3Zm43WFY1MGJ3Vk14dGgzU1ZBYmJFZ0hGNUlZcFVFVFVIMTl2cW12ZC95QUF5K05qeC9FUUgyTTI1YnJvU09ESWwwSFFBMXhCbmNGVURCaUNrYkVRbHdTNGhDaDh4RlVFQVh4Tm1DQ1pFMHBKZUdqTEIrRWFXbHpJajdZc2ZHRUVxYzhpcTNHL2JDZE1rVU52THNtdmRHamRGVXNjZkphcS90UG41dUVGTEFWdFVKUTloazRUN3I4S2RpUXhzSEtFRUJnanoxZ0tQQTFXV1JGOHhDOUVGQTRnbnBsTlpxakZoa0xQczRBeFExN3ovWXdiNDZCTWc1ZmtqYnV3Q0tMQnhFQXpRNmVtL3NVZWM3U05GZXIrbnZIR1dvV3FCdm5SRndLaGRMRU13aGkwaVRVNllpTEdYTUtsZjZGaVkzcWppUndaSVhvTGxTTitDL1QvTHFvSFJ3YmlUOGZMdXEyTC96YTNISXIyQmc4b1NhQnFqRTRsS29BMXJQRzRtREJBWllqN1ZxbVdRc1RJWGhBNzNSOFVBbUozNVJBeEw1SlZzbkdaVnpmcy8xd0VheFpqTTNiTkVIcjF1QndnalFUSUFmbVppRS9OVnJIZTloVXgzSVU3Y2xDNFdOZXRsUGNuUzhnclhuSnU4dkpJaVBEcERxeW5NYVJkd1Q1aUNxNTF6NGhoSG5UUWRPbW9adGRTWmJJUGZZdDBZOXlwdkg1T1B1Sjhoa2hOSFBNRDVNbmovMEtmQjNuZERXQUxua2ZGMEx3d3c4K0xLcktoTG02ZDhhZURrYWdaUVoxeVRUOXdVbVdYbjYxaFVxNXIzZjg0QThQckN0L3hMUzZBZGJNVFUwalF3WnducjkrczYxMVpqVjRSMHMwc0dDQzVYaVFack9uZkJTVTNUSFQvbERGZ3lOd2xXdEVOaHdNbjZ6Z01FVTd2dHJNQXhEbXpXdVBNQWQwSUtMV1RqWkExeTNnZmRvVEdPMGN2NUs1L1BreDNmUlArb1kyekN5VTFjc0FVbU1DN0NRb29pREh3R0hlQTk2NEFTSE1BVSs0R1RheTBCdXFGQmFVNUg5V2pGTmVhV0RnYW9hOTcvT1FPc3BFVjB5VTk5QVdNWDhXdGtuanp2a05OM1ozSE9KczBNKzZRTGlPcUhaSUJ3NGRLMUIvZDdSbHFrbDFCa0hyMnFrS1R1K0twSzl1TUZqWEwwQjFNMDZMdUYvMWd2TlBkaEp0R1RsaUFiM2dmZGg3N1gvWFpERUVqTlFLSEVUUlV4Z1JmQit4NFpFYWdaQkJXT2lqRHdPMVF1Z2o5Z1FSTXpBVTJKazd2UUFYcnJNcW9nb3NXbHBWcDl0ZWI5SDIwRGg4T0lMMHR2NFB6U0c3aU1QUHN5elREUGxQNnNXMzhrQXpUdzdQVVZwdDNuUk04cTZ5QU84aUNRbXE2L21OTkxoQzVoMlZ4T0tIWVBXYklmNVNOa3ZBaHVURjhwd0dJSVZjQmNDcEROeGlvc0RCREN3dUFHbEN5dzg5SGQyN0h1ZDRiY1lBTEx5UWhiWUltU09qeWpIYnpQMkNnTDBHTllzVWY0TEhVYmFKV0xaQ1prNEFOQ1ZpSFZkMmhVTUpNQnJJQnhseGl3WTlhWHFLMEQ3WnIzZjFnVS9Pa3Bna2RuUDRzSHlQeUZRcFZHdHgzaFhwMVp3Umlyenp0RU1uNDlUTkhCcE9OR0hJVDNFR1hJci9jd3JsN2pzR3kvQkY1Y0FpRWhOQzBrYUhSMjM0ZEZTeGpxVlFuTkdETHB0Z3NZR3hlWVE0SnNvaEROR2QxZTkzdEdpTE5SMm1LYW1FbjVFaGRBY3JUS0o4ckpFVkxya1grQWg5NnBqS3FjakJaS2FYcGRiM2ZtNXJWT0IrV1ZKQndEeEpqc012L0kxWnIzZjFZVi9pVkxzdjBzSXNqbEZVZGZqbVVwL2UrTXYrNXVLZExXbk9nTS9hd0QvQ3plK2pGaUJRR1F6a3JBV1pnZGh3SUlpWGNBNVV6eWNrTGErbWl5VnhmSXFQSE82RmhpRGpQeTJQRjA3R1psRmcrN0hhSk5QS3BSdWkrUVFkSXFoQUt3SlNndU9ZdHFhbG41VU9zRklOVzdoZzVraG9CamVNcjZ0cFdncTdtd0ExUzFaTDRJaXFtcUVUeGVyWG0vOURpUkN3Wmdtb3ZLTlRpV0JwVEo4V2N4Z2NkVGpIN1V4NWlBTGxiZHlVWjY4dXpRWDF4SzBRRVptaWhUWWc5eHZ3emxUbGgycEYzbzhKQURJZmtPY2pQR2hXZkVKQU9XQ1dSOExpNEFXTy9ac1FjMW5nNU5pQnFvdC9jTWliZTQ1cU9CanQ2cjRwWUF4Q2ljTElQM3Zid3N3R2lFMVdnalBCZ01JT3QveGtQSmpiRUxpUFMvNFdvdUxZRnZVVTNxQjJGeHJYb2sxMnZlejFyVjdjQUFMTldFdlUyYXpzQWYwZ0RqdUl3S25rUlU4RmVPL29nVjh6SE1qbHJCU0t2TTArdWw2ZUdjV0FEY3RJUDhnU1o4ZHJ4QXdyS0pHS0hZVmFnQnlSa0U5Wk9kcEFhRVNTUkpvRXowZ0UvVURMRW44dVRsamQxS09KWjhEbEFNa1ExYWZleDRyYmdsU21MT3JOSnNBQmdKS1E2c0RXQXpRQWN6VklUdVpOYjVYVEtGUlpWaWFGeVZCSGY0bTl5RTVicWdPREN6d2EyYTk2ZXF2aVVWVHUvUjU0ZnhISWRSb1ErSWpOdTRBRG5NMFNlaXFrS3RmUkdkcVRLUDBOOEVtUW81QWJtcllEN2FDRUt4OWtaaFNySHJTSy9FVExFdENXNU1rcWJzZlNTV0xCRk5KM2xLWUE2QkdHVFpTd1c0RWVObTNVUVlndFR2RGhxV0crc2h2WWJGTGJOR01YZ1M0TkdFTUF2MzZ1cVNXQnVoczlKZkdNQ2lRZ2NSRXkyemh0aitWa1dGZGtudzArbW9ML2VQTkpVQ3Rnem1aTGxhODM3ZnFuQjcvTTV5alZFNktZb2p6VEFudEFuRzZpb3k2Q2lIeTlFM1pEQW5GRkNnT2tBRTJHTENPY2lVdURMSTBFU1pza1R0aVlCT1lLYktTc0NCOVpRakw0UzNUY2VHbkRKMFlwUi9EdG5MT1FxS0JwNGZMMi8zY3FJZUlhUHhOc3BzaW1KRFhVNnROKzhZWTYrck9kWXBEMVRpdDVWOU8yYVZjaHRvT1VETnljdWpCd2FIV0J2US85ODdxdy9WQWRLQ3RVME51cG9yR2lFenJaTGcrblJ0eGdFVXhHODVXYTdWdkQvVk5hNHhRZGhEMWhXQ0VKTkp1Q3dwcGNLMFhjNzVoQ0VrVUg1V29MQXBuRGh2eHNUdzZ2VlRHL3hFbHVJNi85c2hjVGliUUZUWG1EWU9oQU95MjU5VjR5RkxJY3UvZ0xnS0tRelVaUlplUEZXRGdhdUJlc2RrY2I3SUxBUEsvVGE5OEZZczFJekc0bVlnVndyeVNHTUNLd2JzSHF2RTJpZ0QvUHV2eGdNQUVJSVMrYUJxcGpXSXJRUU90VXVDbytGOG9iL0RjM095SEUrdG12ZnNqU3IzbkNDY2Jlekp5WUt6ZVF3WlRWd01Kc0FQaC9PUkxPeXNPRys4MTdFRXJSSnJqMWJQK2hsNXJGMHNFNldic3o0OGRDYVJkVkhqdVc1dlZQbTlxamYva3Y2aVJIM2dycUhlVTNYeEVhWEluQXl4WElJem92eXhUVWhkSExIQTRxMjhITDAyRkRkanhyQlU1U0tSVVVUMXIyQmdaWkpBWllELzNzbTNSRktMRFZjVzVDOW9weGc2MVNYQlR6RTFBYlVsUUR3eUpzVG1NSnR2U0ttWTRGalczWmJISmVZUU56WnR6QWFDaUhoY0hIa3ZLaUVESmRoRXNaSGZJYU5HS1Z3QjdRdHc3Y3QxbnpwR0Zzc2s1dW01dEpxb3NHUE5TZlJudzRwV0FoM2pyNWVVd2pEZlJ3MVVXbTFEcGtKcFVyc09GR2FsTnpmYVdDYXBBZTlVeFFabUMySVpFaHRMQlAwVWZZYTJjd2ZzZVc1QmMvOVJNOEFwazFxTUlTb3hzN2hqaUxtS0EyVkpjSUx4TWFoRmlvZ3MwZnh0T2dFYnA0WHZ2VEpWQ2JhL0pHd0xjL2o5blZQRThyQmdvVE14aUE0cTY5cWc5OG1IVUdwUy9VL1FLcTV3dU82RjVxOWZUSFF2dTRsNXF0Tm5tTUxybUxKc2JyRU9JU3VUa0gvSmxRNTJaTUFlYkR5Wjdvd2w0dUN6ZjRJRnQ0Y3RzOUE3Y2swUlMzd0c5azNJaDZlUHVKU0RBZEtsbCtZY2x3bzl1dTBZdWg3Yi9TOWpBSm03NHhyR3orVWJUYmlDZjlhbDE4c2E0S2RqNHF5elJMUGhxTkRCQnN1WUlRbWh4MCs4YjBhdW9JSWZlN2k5SWVDWjE5Q0wxbXd6NzBWdU5GU0RnV0NNN0R5RURCSzBTcXc5RU03MzFkN2ZDbExqenExaW1WTnppcGFlRXl4MlhnNnpGNjMwV1VISWlrM2QvdElyRGV4WXBEbVdOaGlsNTFaKytzRXVEQ2N3dk12ZmFzK0NkOVlkR2cxVDIrUHB1MXpLdjdMb3c2ZTc5T1NBT2NMQzJXd2VIMGQrekk1a0FOdlpZaFZ6R1Arc1RLcmppR0RhcE5EYU5jQUxuSFdVYUNaUHJySUY3R3ByU1VwRzZJTndwYXZDamRxMDRoR2tTVENyWldZaWhnQWROaEZoYWtBNU54WEx6MldoVzBKR3RRVktFanhWV1AvQVNuWE5zVFdoaFl3Q1R0K3BNc0EzaGhVdTk2SXBXZHFsNHhqbXdiQmsyRktaZjQxdTNuZUc0bFJwOEE4TDVoWVhlbHZsdWMzSlMzWTY4QTYrcjVUa0VFb2UxaE5oWFZ3NW5rUHN2OUtWRFY1RmVwai9LQU9ZYlF1cm1NUDROMlZhTGY3SkhETGZhTzBhNEltenpycUJOUENzbzNFVTM1bXFaS2RFSUZKeU9TM3J3SjBkdXNvMXpPSHNTQ2FIY2tGOWRHQzg1U0xMV1NZWENRVlp5VXJGeHpKS1BRRGZ4dkthdFBPdncvNXYxZy9qVmdZMWhDZW5EZ0psTGpoOFBIeThuNW5Jbmd3UTBYR0N0TlF6R05vVGNVZTBnN3VjcHRUK0xCaEEyQThTQUVXK1dkVTZHR0RkYTd6SWdEdkRsZGVMeW8rSGVZVDJ6NDdzRGlqTDhNb0s4Ri94Qmw3QytNdkVlZzVBWXlKUkc0TldEZkRFV1NQVFB4bUFRRjgySDhXSVFkVzZPanc1UU56QUhMcWJPZk9XZTBZVFBEZVQxREwyUlZNdXczTXVyNkErR01DNEtCUlo2a0d4OWdOTXVyRjcrcktTSk42QTkwSUFSSUFuTHhrQVkwMDM4cUpNWkc4TGJ3WVpUVERha01mcGFuY0dZT2pGQzZkbkdlS2xsUW9zdWp4UVRMTGZNVXlTaEFTREFmQjBlclEyS042YVJSOTY4OUttRDhIZ3dWc09oQ01salFIKzU0Nitaamc5SE05VXB0WWtJcGdrWUZId3VnWTQxMFRpck1rQW1MNElRR1ZqbUhhWndJUU9vTXdVWElhMmJCeTlsU2x0c3NCc1ZFclVINndtTTFGaFlVSFFVRUVDbVlDUUpKQ2dSbGtOc2d4Y2tRWVgyTjRHZkhISkFOUUFMWHdJNlpTWnlkNm9FZm0wUVVFcmZERmtqNTVBaG1aRm9RY0dmcklRaHRsSU84WUFIVWN4bWJHUit3VmpBQ0VJbUFPK0FpcExKSFF6NkMwOEdJb2xtWlB1aU55TWxMQkNmekFBSXZvR0RaenBES1Vsa1d3eUU1ZVlEUEFQR1NERGdpMWNnemhyN0VPcnVoTmxXWWNwb2Z3cTFUVVRyY1dyZU9CVTQ4RnR2QVhMOXE0TnorWDFSU1B2UmNSRjc5YktBQmI0Nnd3d1MrbTNZaUJzcDhEd0FDVzVtelBFdTBUVWxTRjZiUVlJRFJCNXp1SFRUQTIzcXFvRFl2WGhZaDFGZFoxZ0FJSndTUnVPcm1XL05BYndPZTZaRkcwN1JBWlE1Z0NrYUdLVnNNMTB6N3BNOHJCTSsxcXRBZnhmSHVNSzhQL3U0UGFSU1FaSnlqQ1cwaWViRHFDMkJNaWlERVUxcVE0dFVZbTlRNGxrejRpTXRZTWJJZE80SzB6NHFpZ09SajF5b3FwaHBRUWk1M0k0SER0YS93M2c4aEZXelk0dEFmYnBKSWJLWllxbUt0NDVQeUhDdENrcG9iMWRNa0NoQVg0MGRHcWpWWldSKzBZbCtYU2wxeWhWZ0pnVHJHeGk2MFZrWTlkZEt4bkFRcGpNNFlqZGkxcUN5QUJrRG0wNjFKUjJXeFlrd1RyQTJFNm9nVHdpZmVkWWluSUYrSDkzOU9GcWdKTkh6RjluZ05zU0lKYjFYU2NUdWpMTEF1YUF0S0ZsUkM3V2ppMUs5eFdWQ09aS1BWREhWeEhUSXozTmN5SjZHeDFQWXFOQUlZQkJZdFdrVHorcEY0a1VYaDhMZDdQUCtXU0F5NHBETlFOd2E4R3lHQmJvaGtiL0Y1VlVRS28weEdxTnBja3hHdy9KQU93aEhvTU1nT0EyTW9ET2NhWnA1YTJYd1FCZ2pqTytxTlFSeVdkeTFOTzRJOTFWeHZzVjRGK3pBaGtENEhzU3hqL1VxZmFIRWlEV0gyMGVWcEcxemJpMUJpZVhGdzVYL3VucEE1NWtJVEZZU25NdFNnWWd0RFFrZ0N3UmpYQUFWMDBtT2RyQUJrRHFEZUh0d0xjVjdtWUFnQ256Z2dFUzlaWTRqV0NBMUFCMVFIZXNXNVRoSWlhaGlwbUlPRHRpQU9VT0dRMWpzRHNUT3NFQXMyQUFvSmlRNUdYT1dOK0NBUWFXNnFKaDBXSXVsYXlYTTZySS9FWDFFYzhzVjRCanJBQjM5T0VqL01VRGx2NlVBYmdEV1RkbFZocHVpaGU5SXVwdGVwMEIwZ2VzK28zckFKQjZ3M0pOcUNJS1V3ZFluZlV4TGhnemgxcTNZMmdkRUg4eXdZcVpqeExWTjBja3kwNmk0bEMvL0xKa2dOQUFvVHdXR0Z3dndyUUVxQWlVc0JtaHN6Rmg1L242YzRUOEc5N3JnZ0g2YS90LzFaOGpqenNab0drUUc2dmFiVVJWRmZZZUN6TFB2WDd1RHhZOWNFZ2FBYmdDTUVYTXZPY0Z1bitoQThEOVhqTUFzVmtMb3BjanRKTHkwN2ZXNkwzQkFQUXlJVTQyVEJYTXZMWDJoQ2FYRElBZkduR3RZNEpWYytCSmpvejllb3JqNGk3dEZTNnRjRGMvVTluTDBITGFURHVxNFYxbkFHcUFxSk9MbW5vZkIydGtnQVJVekhlUXhJaTBIQVJMNStzYm0xdm16b0lCSHBteFNaVVprU0Q2WVg0TW1SN1ZmTmxUUVNmY250VktXUGt4S3VsUmphWXBnQWNWRi9WUkd3RjBEMEFHa0dMZXJBeUE4ZmdKQTlBUWVBbXNST1NRQ3VORFBha01XdkRCMmpBM0dBQStZT1FhYXlJTm5sVmYyR1hSNlBIeWtnRXNEVlZmdzNZYmdFY2p5Ukc1OHVNejdUUWFDRFBEbytSWkNPNlZTN0s4Q2VQM3NSR3BHTUN6UkpuTGxVbUNPbEN0MW14a0FOTjhRWEhNMDdOeDVtV2hvUUdXQ1pDa0dOMk4rUmlnektpaW9zdDlNQUNlaloxTE16aXJpQUFEMEtlRW9ZNVdMUFhIRkErc2JQMWFxWUJrQUMzbTNVdXd6MjBHT0MzUktnWUlTdmQyeEttejdqb00zUVl1Q3RERmRRWlF0MjNVRDZlZDE4TDllNTRSQTQ2Sm1nR1l6UTlMcFF3NHh1VnpVVElBUXJkRFJHdDhoWHFJYVExR3REZXRqa1VkSXV5SERoVUQ4Q1ZUQTF5c0lXc0pYMGdYZTZFRUlNb2ExYmk0cDZocXpabXFCcElVb3d1SEJFMEFxcWpJeDZVTkJCWmJNd0VnSXhZWUFDdDJMUFBreGxUMlMxT0FJTnlpT0N6TndNa0FLT2FkcUxQYkRPQUp1ZHNNNEJteTlFbWx5ZVc4RTdzQXl2QlJqdDlnQUI4NWdLaFNoMENXRHF4TFQ0aXlxeG1BR1hSUnFBUW1BQmtYcDViN2NXd0pvQ2ExbkZrTWU5SWZlUjVWeDg0NlJCcTg3eVNyR1NBMHdNK3lsaTJhNXhoZFJ2bEM4QkJLTW1PeXQwS2liYXVBZldmSkFIZ0xtZ0JrdG1NNXArWHVaRVpzQ0RycG53K1VBYnhjMXJOak1OREs3WDVoRHU1YnZvZktDSkJMd0k0V3E1OHpnUGlOR0s3NDZ4UWg4UHFwcTI0U0ZTSW5yemNaWVB5WThNcXQrbm9qYjRHK1d0VDdxSVBLSFJqUk1jTzVnbi83QlBqU2t3dkVMcjIxRmdtOW5GSzFRSWxCZlJiOGg0enJOOXdSN0VxeFlIbE5xYlFCSHRpSTcwOG45bjZXTm5ubElWaG5hWm1wVVRGZ0VoQ3F0UVI0QlNkQWdiQXhoNHpDQ0cyTk9ZVFlGRlM0enRqU3pMM1NTRWZPZFRVSDgvam5wUkVnR1lBRStSVURpQlJpQU12bEVyQ2dhYU5BOUhvT25TTHUveVlESkFRYUpZQU1zVWlabEJWL2FnYnd3aTltQXREQndab0pDYUt4SEc2VVVVK1h4L1hJZktGcUFXaUp4eW5RbndsL1pCalRvc0FSZnFRR3VHYkQ2MCtzV1NCa0tBRm1uRmJGc2g4cVFNa0FlRE5vNVRtNmJybUhnd0lKbGl5RllWR0RFaWFBMVpyeWh3eFFPbnlrcVVrd1YzdDQ3c3hUekZpUk1BTDhPUU5FVU9Da25kYkM2OGVYeUJENjBpM1p4ZTh4UU5PUVNXdU95SnBmTlFNd3FKZXJwZzZPTW9DbG55TURMTUFBbWUrWXRjeFlocldJVTRCSEVxV01UT3hrUWZuZHpqelpoUWE0UWtQR2pRNGErQnhMbWZzNnNPUmhWOC8xNUwzU1lRRU4xakc1WklDNTEyQTlOT2xub3BGSkhHN0lMU3ROeFJSRWVpeWV5RjJteHNTcUlnRFdBTERPcFJIZ1R4a0FPeEVyZm5ldFFyY3VJNnZNYWhEbHFDYmhFUFZlUy9UU1dnS0srdjdVcDNtWld0TVgxd29rYXpoaFlIL2xxNEcvYkRKRFNZZXBNdGc4TXBKbGVIY1pweERpZDZjQk9hMXlsdlBHVEt2dm9RR0NjOHpLMUdQekJMUkxPaHMrNVN5V3gzYUgwNnhrQUJnVDFEeFhNZ0RESFZReUlaTjRlcHBoWkFMOFNSVXQ1cURvbTdycytiWHRLZkdMRE1Cb01XQXhhaVBBNzBnQTVFSElWM1JiQk8yb3pnQmx6cnRCSkx0QUx3UnRweE1NbWxXaUxkVkJNQUE5d2dQaVlkMFYzSUJRdStDZkZnUFFJbUdhTVZLUnlLZ2xOdEd5S25wTC80NTJ0K0lVWml6N09nZEtsQVVjdUxpUm84bHFMbXBCb3I0MytrVkQ1VEtxVS9RT0xnMlpIREdvQ2FVU2lMQ2tFUkx6Tk5iSUFEQkNBa3FHT2o2SU54cU1GTXZvR2ZhWmlySDZoWWpTd0dKMEoyNEcvcDBsQUxrTVJIclNGbGYyYTdLMWJyclN1SVVDWnRvSEtGSWtzbkM3cDdma3lxNG9YVkc1UC8zVGZiZUtaSGYwKzBTZWJhRFQ5RkczR0VEb3RtUGtqNllKeXRSVmZYbEMwR2hkWk9MN1BFU3JNV3VJRXVteElwNnI5Qkcrb1Z4R2Z3Tm1RRFpuQUlweHlsdlB6NXErckMyelpPcGlRdWVIL0M2M2VrK3FUMXdtVkNVMkNvQ3hWMFljaHRFencwNWhGSmpFTHhUR1NDd0c5QlFnZ3N3TzlQOXVNQUM5bWl5YW40a3NJOThGY3IrQmc5dDVidzllRGJaTWtXaTQrRkZaZmRTc043RUV1R2twU011cFpNa1JvL0xzdFBRRk1GVzhZZVE3cGloQ0NVeFA3cUpzQlFQMGkxWXhnSlViV05FRkY0V1dzTTBIemVsVWV1RXVNeHZkMEJCbElXL2R6czVqWEdaQVU1SG0vRi8zaVFKNFpqSGFiNmo3eGY5c1Y4eHc1amVGRk55cndocWJ6Nnl5WTI3RDh0Yyt3WEdCeFRncHZvR0x3QTBHaUVSRFRVK1RDc1g4bTBiK2luVnA4M09iTFhPTGU2WUtncS9SRzhnek1JdWZLb1NvR1VDaDJ5WUJhSGJ2Vk9pMHgvUUdFbHJLR0ZNWkpnU2tkbm8ybXp3OHIyNlpzcU5xdGtDbnA5bngxOHNvdFpiYUE1Mnd2c2RaNVgrTVJLcmxMYkZ5dUp3dWF0T2l0MERkeFA4UzhPOFFRQ0V4N2RXSklkZ2JsQXl3bFRId0IxbkRNcUVuaksvM1g0WXJTeXpHVkJyQkpsd0ViakFBQmdQUlZHV2RpNm5ucklWNmtzV2NxOXozbkQ0SnZrWnZBTGJCTEg3cXdESkVVd21rWjRlS0NxdHoxT2kwb0ZJNE93aWNGbCt6Tktqc1oxZlpKeldGcUtnclc0NjhaWnpDS2FzbEVuL05Hc09RcDl3L0dFQWJUaVh3WGRrWWkxakwyOERLS2FHRWduaFpvK2xEOWI5V1lBaEVSb1cwZDhLN0hVVzBMTm9NQ0NTSFlLQTVESzFDMkd3QVpTSUQ4SUt5YXV6UEdJQWxHQUtNei9sSDg3ejBWOVVvckdJU3BrZFdnMDN3TlpvRHRpMStsS2RxTTh3bzRhaFExZFAxbm1WaldXMHJxVVIxNWp1Z0ltSXF4akhPSnBLcmFrb1NaTlhZVnMwQ3c3TmFJdkhYSk5oRFFCMjgzQmtDc2ZUbDZnYVpJYTJVdDRtVkF3bFJocGJBdDBmK0x5RktMSnFIczNDVDkxdE5aekFvV2plaGQ0bXhBK3JPUVNQRVJ5YzhJMDBCWUFBRzkyV0F4cFFSMVFIR0p6clU4bGRZbWVoZWVQNVI3YzR4MDFrTk5oSllWTUgreEhvVUJYNnh3TEdPb3A2SVc3SVlHYlNlUktlVlZDSjJsUEF2U0Rma3hlQnNTbkpsMDNtTm03WWFaeGlSVU1DTGJaWm9tRGtPZHZLQ2gzcDRQQWE4alA4NVVCUnRFL0oybk1BMWI0S1dhNUUyUVlvMHN3TjBEM2czL2dOZXJXd3Z4QmhlZmtTSnNvWDRKLzA1NUxXb0NuL3dnOVdTZ2huMzdPcUlsZUdxd1Bpcy9Qc1lkZGF5bUhOZEhkUExUSDREZk0xZUFqYWt0UXRuSzhLTjNXOEZEQStrM2RURlpNdWFsZ2J6QVRoMENTQXRzWDArUWt1UTY2VkZvN0dCaExQVjVIRm82RGlwTkNXMEZJV01vNWFwbHlKbHE1Q2l3S2lSRVNwa0hCbkpQNkhBa1JQZFhlRHVDSXFXSVNSWHM1Ry9TZXFXR0tQMkVmRFFIOFN4ME1qWktjMGV1UWE4UklCL3FZNEVxa3FiQTBjekd4QnNuNTVRNFFnNkJJTEl5MHpxZUkzcjNpbitRMmNDcjZjYklqclpPeDJqNXF0ZG5tVmo3YVFvejV1aTBNZ0U0UktFZTNUeXNSWDAwVnI2OXNUeEpZSEFPekhwRXRFUEpEeXFFMHNqQjVOWFo3TkFpcEtwQ1MwTkRGdzJERmdDUk12a0lMYmdGZW9BRWlOUXBjeEdBbUVsdkZCa3lrd2JuT1NFK3B1R1Zwbzk5c0VBSVRmdkMzVkVDZG9DNDI5T1BuOTlWaE95Q1FDK1lmQmpMcUMrQnVqTWlRS2laMHVta0l2aWlyeEFtSTJYVTdMbVNRcmlmQ2xGSWY5bThlMmlkRHBJc1VFQnk1SkFvSEprVDZnYlpHYzE2Wmg3QnlEdHIrOG9yVndrMnFxUm9wd1hkREJlYUNIY05IZHpqemMwTEJQZC9hSENBT0NNVXY2UTBONGdvcFBVMlRKVGZEL1R3Sm9BeUpSWGhka2pHU0JxSkhNc1hRSzF3Zmd6RnZDZGVUMW82OFhjcDVTa0dLZkFqM0ZYbFlRLzJtb1REL0FLL29ubHZrSm1seWNGWGxTSlZmeU42QWV3TzNyd0R4UVhVK1dqU1NjQWpVUUQxbTFDQTBaT3VzaStCWVVha0dNY1Q4am9wa2FLUm1ZMjdpR3JGbGxQblp5WlRhb3dzNzlHK1hFYXhPZEZLMHl5L1d4bHB2aUtBWTZ6U0hyM3FlMlNBZHB5TTZ0ZXV6S2pLcEhTbHJJWVlqZ0JvOVhmcXNpNWE4eWgxVUM0a2dpWGlHb2M0QlYrQWVoV0lyUHhOMC9TQ2d5UmN1WXgvczRnV0c0Rm9odUVTUG9ZNUZabjdoVUMwZGlVazI2MXlrUlFRR0Y2Nm1FM0xXY2NGNXZuWmh5YlNYQmR0Z0xPd2phUEdxT0ZtZjAxU25PSFJ5UmFaYXYvT0hpN3lRQVpEdkQ1LzBtN3dnQzViVW1kQkdYWDBlOEs1dWFkR3hxZnpyNmtWWDlISVRNa01hQTdXRldTZHhMaEVsR3RCK2hNOHd1dzVheVEyZkUzMFRvd25ta3Nsenl2U0VCMVBGbUF2UFlnSDFnQitnbjZERmd2WWhuWkU3S1paYnVjZE92ZWdLbmdpTUtNMU1OaFFpU052RFdvV2lsY3kvNUR0dEtmUlhvbURyR2dYcFlmVDVkWXRIVXdRT25RdU1VQU1pVVlMd2I2WDJNQUY1cXBrMkFKcGtFakZFek5JNkl0cGpPWHRNZjhXODZDL1lqV0hMR2pZOXdSbzU1RXFCSFZQQUJuR2lCcUhyOWZJYk96UGhPelZTcHAxRjhEdXk1VDBFRTBaUWpISUFxMG9TdnA0eGxPYWZ4UCtrVG03NXgwQ0EvaStaQ0xIanJrbGRTU0FRZ1VQVVRlVi9abisreFhIbTB3R0pCd0xURE9TSnFyQnVrVWo5Wk9xSnU2L1NVRFJKYVE1dU1tQTFCb1VpWHB1c1pQL1RNVVRFWC9hdlBxbnVGZnpiOGRkV0dPa0NmNHpqUmFMNzNBVmFQWE52MGxpTk4xcjNXRnpPYmZvRSttTEZlNmxNQU5iTHNJb3g2WVZ5QVpZRUVDZlJ3Yy9VSUd5UFlaREpDVGpsNk1ORHRONytuTWFETUFnYUphSElpVmdKazFqdzJlOGNxZnBkUWNSTWFPb0o3aERMaU9KQU1FaVpRYms5U2xJZklxQS9BelFmK3JERUJIZk9va1ErejVHZG5nQ2lZcytMN0R3T0xtRTUyVGsvREc5SmcvZS96OEt1aE1FcEFVeVFEMEs1dnJoL2JsQ3BWbGYxY0JhRW90NGJLU0FVeXJoN3hyZG5KVHl6WWFrZWdONldPdnhGVTNDY1FRc2FMV285SUhma3pIWmh3TFlGQnp1R0FBeEIwSUhpQklDazhBMjg1UnUrL3AwSXpjeWpwRnFtcGZMRC8rOGxnd1FNcm9hcjBvMHEvOGxBRnVTZ0I3UktHVGRIS0pCS1FPZUdJRFQvY2IzTnM4dDR5cFJoYnZSZU1SUTE1YUZVVk93ZDRqT0ZLY1R5eE1FNjNGQUlqVFpKeld5L1NYRE1BYzdnVURVS3RYU0RwcWltbTF6bTFHb29OQXE2aWJTbTJmOUxHNnY1WkNvSngwa1JMK3liMDVGaFRRTCtST25xOVBYMFhzQXJMbVdWTXB4NkVvNDFvUlFFVUhhS1hYUVRWb3ZVeXhrMXdtcWEvM3BnN0FIQXMvV1FJcVBmT1FlWll4UWFJNmJzNXN2Q3RudC83VXYrekFxNDJwbjRnRFhyczRuV2VnZGdldHhnbUEvbDVVZlB3ckJ2Z3dMaXNad0xYNlFkOWliVFZJTm5uTXhyQ2IyUVhHb2VSc2grVFZUbnZTeVJIUDgySE9mbjc2WVg2VkFaNmZISVlGRG5OUHdLdUQwREFVbFFSWXBRUkl2UTdwNWlrdjR1YXhrNnlnVzlkN3lRQ1d6b0FSZ2I5Z0FDb2xUVmE0ajByWjRGd1BobU4xMG95TndRZ2Q1bllBZTE4bnZETUM1RWs0ejBodFg3YVNBUWdCMmJFa2Vja0FEdytYRExDd0Y1dFVERUN0dnQrSHQ5cjNYWHdFQ0xRdHNJZSt6ZEdQc1kvRE1KWUVWYXhLbEJiVVpaSGdoWDR2R2FDVzBpVURtSk1DMStBNGEyMm5Eb0FhU3dSTWxEVGREUzRpcUtxZFpKRDZlaThaUUcySjJBWjZQcE9mTVFCZmFPQVY3aU50QjBVQWJ1SFZFUklmSVNSQVdvMUkzZStsVUNDRUFieXd6RHp1UElzRkg4dFdXYnh2NXhBUUdzYVNBYmJTTGhuQXd6cVRBVUtyTnptcUtueXZaZ0RRSjBjSWhvNTdzbXpmZFBlYW9KNy8zQW5LdWhVeVJGY1pRRm9CZ2RnZzhTdUVuOHdXMXp6RzlTNUFpd0cyNEhndXA0QW9KM1Z5SjFtUytpTjZyekdBdEQyaDQvRHR3eEwwY1lNQktKSTZSYUdha3BnakZ3QlFoNkVLdTRxSGVXN01qYmkxQjg4VlFJelFNdzdNNEQ4cDRTU1c2aklaUUJjU0JzSFRqa3JhanRBdUdjQmVxTTBBalRRbzhKb0NwbWt4Z0h4Z0FUN1YvSVRPeTc0QWlQWmJNVUFBT2ZTQ1FyNWxVYUJDWXFBbHVGRlRhZHFISkM0MzBVRWZhSjlSLzZPZ1hpbW5uRHBzTmFrWFYzdjV5K3kyU0hZSTN6NFFWQitYRXNDU0VqRFhnUkhjWkJJSEIyU0dQSS9DMi9ncVh3UThodmFOUVcraStYWlJpUjJ4ZFBEM2M2eGJ0VHFSZlRXNmVvM1IzNklHOXNrQUE3WUxCcUFFU2dhZ2pSVTZvTXhRUmF2RHJob01BTFUrd2Flbm8zOEllWWtBakpvQmtoYlVjTENhKzFOZkM1MEJVN3JwTXgyUkJ6VWtjdHNHTHlRQXQ1a09teTJvOTJ5Skl3YkpBSVRlaDZNblRtNzNKZ05FNG5DV3BrQmt6dnFLTDBBWFp6TEFVQ3RocFFTRHhDTVdIaVQxZVk3UGNyVXdkbm9Lbm5Ra2hiNi92b2xiNHpRVDQ2a0ZLZFhndE93U2VTYXlrQWlyWXpKQVAxcWJBU2lCa2dIb3FSWWRjRzA2SUQwcnpnQm9LbWVjUHZLVWl3VmczMmFBSEZJdlAxZXdIZDZYay9URDJxRlB3Qm5UZEZFdEpsT1UyQUMwSzNqTWtGTXNHa3FTc0dHcTVjblhlbUZOenNUaHk4aVh1THJHQUZDZHdRQ3doWGRTNHRHUFpLSFZET3YxRkpUVFFHNWlHbUpsaUNCdFNHQlpueHBwOGJ3TFVQbHlYM1RwQ3NVYnNRZ0lOZjhDOHRwaUFOczFwakRtcms2R3krRHptaXloS0JIckJPbzcrSFIybkFVZjg5SEtsRGVYZ0h1T2hqN1QySTVodWJXMWR0NFQrak9uWGdvQUdvRnFoTHUwekVjVTFLdmxWTDVNbVl1bUlQV3QzdXoyR2hTVDRWVUdNSThGb2FYbmJwbWhJOURRaC9rYzh0em15TGU3eERwcVl1WUNvR1FMZW1yN01GaEQ1bGU2WklEcytoUzVxZk1aNXQzM2FnbUlkbWd6QUNubkgrVjJIYkVBd2U3V28yVGtJMHhFWXkzV2h4RHR6NVdNQ3dCOG1tMGxNSGZxcGhKUjljYXIxWlBVMnNwVHBIaXV3aUJ5cHI2TDlFTDRsTXFRNzNLS0l1T1hocURYVExTZXZaVzRPS20yQ3dUVkxRYlFLTTlQMnNJck5aSlpIYVZIcVFNNkl6OTFZUksxZWZ0S0xIb2FmSngyTEJWMC9BVURIRXlaQ0tXeFVBTFpMaGtBajg4TldWaDJzV3dBUGtuSm5Ub0FZQ3VzMEFicTBOU0I1ekprcDJJQUtuM0ZqdXlUUWdtT2dwb0J3b0VjbFVjMllUZnc1STIvWWdCdEtEVFBOQnV0bTZjWE5BbmxpLzJ5cFJsa1pBZ3c4UzgvWTRDK0laNWJES0F5a3VnTUt4dkUvR0pscnFRUFZ3SEdudFBZQ3RhRi90YjVEUWFBS0ZkVlBGU3hjaHVJZG9VQmh0QlBtcG9CRUs3TWY5b01RTHVMY2ZLeXZRQ2d2YmFzcnpRRXBaZXc3dzNxU1lzQklvUUU5SzhFd0dwb1lOMWZMZ0h6ZVZIQmF0cDJCdEh6V1RFQTFmMzlzcjAzQ0RxcWIvOG1BOEJqMGFOU3NtSlNPMTZZT2d5RXBDMXM5SW5SRmtTcUllN1o2ZWtEcE8zWFN3QzdXS2FYMXJqcWZhVmRaUUNqWHNrQU8rQ04xSllHUU5LZ3hRQ3hxL1VFQkpOSUUxR1lWTXRKUjFOdzdkeEpCbmZKa0RyREEwcGRnUDZXVWRlTmZZVHJ0NVRBSzBrNWRtVUZxOXhpZUx2aStNV0dQNnB2SGFLbFNWQjU4VEx2Y1dRSm85MEIwZGVKNUpjTEtRSllNaDlwZ1cwQktJeEVNQU5RZ3k0WjRPUGpEeG1Bd3BocXdHMVRjRElBQVduYzIxck9NTk1Cc1JVa29yeGdnR2UzQk5NbXl4djBWdEVxZ3RJeTV2YXYwcmxERXdVMHg1SUJFS3lJbUViN1lLb05OQUpKcXVXTGJhRDdtcEttWlI3N2k0Q1FNdlFqS1N3bVAyZUFLZ0FsR0lCNU13dVJIQXdnbHB1MEF6QnpGcE5VSXlxa2xoekFtcVZKVklaNXZVaEQ0Q3lETHdJNSsrc2xnRjJZamFFRy9BNEQyQVQyTUNkbURZUVhFTzRBNXBRb0dRQkdlZTVuSXkxUWU4U0tTZGNVcUpobDRkeUpCSVM2WGxVTWdMaCtGT1NxMDNUYUJqcTljeC9oZk5INGh6b3hWMVN5U05SOHRtU0Frc0tvMlVTVWFEWWppOUVNUUszRXdTUURZQnljQWNvbGI0bFY3R0xwaUtnb21FOTZoUnZsblZpcUxLQWZnWE8vWmdDNmcyMUIrUTEzOENKZFZNNEE3NnFYd2d0b1ltQm9XV1g0Q0YvVFhlZExwYTR0TTI5NHgyWlJFZ242OUlLNm15L1REdU5HUEs4UUJCVEJ1L1pkaEp5eWpNdWNMWk9qbHdVVHZaYk5QbEh6MlJ5bjJDa3AvSU1DNS9reUNIV0pHSHNBdFJqZll5czU4YUdsS1hnVTNrOFMreW9EY0FHZ0V6RGRnbVVBcGwrUzFWWitnd0dlU3pYZ3R4aUF0Z2ljRkttYTVUUWhEKzFvMDBoWUNRS1pXWDVSMmxpcWxnd1F1M3I2eDdGdFpJeTZ3dzdURjhEUUo2WnZSeWsxU2dCQTNnZVJudlBiQWFKc1dVdTB5R0RKL1dnUjR6Z3Evc1AwQUttVHdtaFc5Q1JiRm05QnZMUWpZcUNpSmo2MFlBQnBkZnpEVlFiUWw0Sm1TQ2NnNjI4emJNcmlkM09HWkkzYW9IWkNxVnRkUnM0Rjh6MFQzWnNNd092SzRvV214WVcxaVpOb3ZkS1p4RW9FdEQ4NmdmelAyTmNQdk9XK3FacDBpWW81SHMyNXd4eVVrUlJrNDFJdnBvMThMQ0I1UlNFdkg5QXZBa1NqT1dacVZoZE1ST0VqT2JzVnNPZWh6aVExS1h4QzJ4OGRKWm9OeThneElyY2YwV3A4YURKQUk4MExZcE5mcnpHQXU1ZDg3ZmVObElFOEVTUmN6aENxeE1rQWc0UlN0N3VBTy9URDVVM3dkeDdJNG9VNjlDNFdZeEtkTzlyWHNXY1FRTzRFeWovZkdMRlROL1puakZ5aVlxd0lvVFRDRG9rMXhJNm9LSDhqeUlGdktHWGZaU2svTTZGckkwQ1VMV3FKbmxvRkU0L0FSckd3WERhQ0hVaHFRbzBJUkpydHM0aGFrQnYzVHNabzQwT1RBYmppUlF3azlQMXJEQkQyM2o2Y3QweGR4OGhHRktpdFo0alhxUDBxU0VFb2RidEw1MmNjTG0rQ3YvTkFGaS8wdnpIRFloSU44WTlaTFJ4QVRnSzlGQUJmS25Wc2FUdXRKMTBXZTJVVjB6MWhoOFFhbmhKQkNyc3JHM2dsaTNrQzJDaE5vU3NBaUhyekltbDF3Y1Fab0hVbmh5ZG1vODBIcENhQjg0OWxXYm14ZVBJbWw0WkxmT2pkK0dZVU5FcUlaaDJrSVltV3FyNHNBRGx0M2VtemI4K1EvZEYwb2lCRlFxbGJYYm9oaWNQbFRmQzNIeWlMRitKdkY0c3hpWjZJdkZhNWpmd1lnZXF0QUw0Y0xiYjBuc1NraTExOXdMS3RqaTloaDRvMTNJeUpXd3Fray9VbzRZaUM0encwS1R6MnlvaDFlNVQveHN2c1ZnVnduMmhSbEJjRlp0RTVJREd1TC9uSHRLemQrcGF5SjVYREsvalF1L0Z0SE1RUDM4cVdtRUk2T0R4eEc5THJsZHArZTRaWWJjdHZLQ0lrUlVLcDkxV1h2SDRlTG04eUxhK0w0b1hsMzBDWXpqaUpyRTR2Y0d0ZmVPeTdFMmlaZndxbEtDL3I2V1V0ZmxkbFJqRXpBWkFrTkNyL3lJdllnd2NCaWFoY0VlK1FSVVNYSVFzQzdib3N5eVFXYUZGMDV2OHk1YkhYdEk0L3dsU2hSQ3kwajJwNzJNYUgzaTB2a1ZEM1JlSGxzaFlpWWR1SnRaSlpCdVJwQXVXd2NpV09lcXlDUkxvaTgwR1NZb2wxYTdrc3V4SkpxaWZuVFFwZ3RnRkcwWWhUNDVSaGNlVUNjYjIwUXVDYkFQMXVlQkt4aW81dnl4YTEyREZsUzRRNGNhSllDeElBZDMvL0Zud1owQmxEaU1xUHhFOFdyTTl5b21CWWFnTUoraTNMSkk0THRDZzY4Yjh1N25KWHIyRzUvQ09ObFJhVTdmazNLZ05SR3g5Nk43dUJoV1RaNXFJYWFoUnJENkNmYmJNNUdvNFVSN0htQkZWakRtSWNjN0lZaGg0L09PMGVIVlp0aDR1VEhXaU1LZWF6S3FlWDNEcXJRSFBxcy9Rb2JlQXMwVTZ3RlY0UDYyMFVta2I1V3NvUHJwVXNLT3BLbUkwUDZaWUFPTkVQbmhMajV0QVpQU1NiYlo1aWpxRmM2U2lDZFY4Uis0RkFaV2VaUkJpd0FpM3F1TzNFd1lWZFQ4TnlPMUd4Z0R0YkRYblNTSlorbWZuM0lpMFdHV0IvRFEyTnJTTXpWbVE5NUtYVk9BOXNJRFQ4bEllb2g1MjB0ekswbUlNNjNjZzBiMUJ4dktTLzAwWi9nSVBReUdIV2hadnNBVXYyV2ZYbTFIdmpuR1FDSlpsZXFWZWJHcVh6a3V3ZEZmMzM5STk3cVhtajlXeWNnSGczeE5wc2x6TlpaalRvTm1FQkN0VGREb3piRURNUlBWMG1VZWpTcEIrNnJvcGlndFBDSWhCcG9xb3lpUVZhZE5MSi81V2pSYTRyaHVVeUV4bDJzQXdzbklRSnNvYVNDa0ttWmdBdno0eG1jaEtKRjBCbTZKWlJSQlkwenVMUEtzTHh5L0hnKys5YStnTlRIeldaV1p3UUptTWlySitkTmtvTnpCV2h6OUhYR0hTWjFBRWw1UTVFbnBKNmtZekU2OEVPWTJlZDNWcVFsRHNGWkg3YWUwVlJVb3JQUFhsQ0cyQkVyYURveHNPcHNzeW9FQW5tQnBhZ3NSeW1FYmtCNlF2MWVHVnBWQVlEYytxbExVTDE2U3JqbFJyL2FOYTRqektKNmZIREVmSEc1UCtDZkZERWFkWSt3OFdKYlMrWXh1TFArTDlnaXdTVEk5eTRjZ2ZjeWE0TmVvZlFpRE1xcUs5ZFNDeUc5WTAycENybDJENTBOZnhxNjMvSTh4SnpzT3VUUmJqRUVOWkRwNDFPRDhhQ2ZCZGFwcWM4ZDByS1lxZTlYYmtNaHdHZnN0Q09vaDVzcDlVOVdwVkZhMlpSVVJTVU9qTThCQ21wbUJRbkM0cENRVkxFSWwyMG1Ma0ZERjhJMk1LNHJkZW92TkZqSWlXNjlkM2V0ZGFzUzR0V3pydW04Y3FCeksxcFU1UTUrWmh6MnFBV3hCYzVDTUxpYmdkTllGcmtPUjdHck9VTWVHNmtrNmpDMzA5a0FHWWZmQUtSTUtOWUNEd1Q3aXdKRGNWY0NUZ0Y1akozYXl6TTI5b0JNaytRejhIT2dKUEZGcit6SmhZbGJVWXJuU3M2dXJwVDluMG1KZ0prUFBPUXJWaEhhY1FjOFpxYnphUFJveDZzRUxYZG5VVnJRR29qNnR4cnBIUVRSTTdhbFFnYjB5L3drR3FXR1VXcXV6SWF3d2lZRENEVHk2S2grc2dSdklnQVVSNXRGaXFFMjFrdkYrSjNTZ1pvV01jbzhvNmpBdG1uUGlaalJjY1pyRFhRZnhqU3JFS0ZYSkpRaE1nZFJOK244UXFyaC85N3AyTUV3ZW1heU5qMHBpZWhKSHN3anNKQ2tHWUJxTkluUnJJRU0yQXVLL01ON1Z0UmszazM1MHJGdExETlhMRjNscHB4MEVBdzRSNnNSa0FOQmpxSmx5WnRNS3M0dlRJbG9SejJlckR3cjlYZGN5OWFRMVFESzRvaVppUkNSQ010cGR3M0M0cDZ6WUlzTTdwOS9Sa0RLTVVCU3BFYXZ2Z0R0QmJaN0FEVkJua1hHWmhPQnBCWG9BNFFaUkk3aGJleXNRcGtIeVFxUVNvYjV1RTg5Q3RjQnN1RnkxUHRYM2loSWJUQjN3emhSL1NHV3dJeHNxSlpJQ3MyNk1ZMFFMSkduaTFmQlhTVDNjQ2ttWWZlT1NtUkxBRmNoUjFCWWNDTnhDYytCMEZTUTg2ejhFNWp0T25QOVFmdWFCbnlzazZEYlpDNTVQV0Z2QXQxMmpVSCs0TTBOYis3VW84ZTl1enVvQnVZSjA1R1J6eUJWSjREczZ4ZE9VaHNoUFlpZVhoUlp2VCtwd3pRRE00b1U4bHNxa1FWNWRHeU1tSlUxdXlVcVg4NnlGUEIybTJZelNnVG83SE9xM1ZrSGk4S21CN0tnSXlzNEpZMVpFK004RWVBdDhkY3FRQUFBMkNNR3BFaFFpUUQ0RE84ZWlVUzFaQVZKbGNNOU0yM1pqUVUzZFdPRFlVaWhyZWtxOXhtN29CejhFRFVtZWpFNXNuWE5MS1dudm5nVkp0YWpreG5BQ2FFQTJNTHRWallobjlrckk0ZUJ0a3kwRnJKeCs2bUY5R0FTV3BRYU5mV2xGR3RNV0UvV1FXdXEvejNTd1pBenZ4aGx5VmFwYU45VktZWWI0aG54dldaL0d0ck5wZWk3TnBhbytYbVFEc29VUWxVVFo4OGlJcEpYZFlRaHJCZ3NSRVZGeVgralR0OUxBSEtBQmk2eklyOVlxa0FWV0VwWDVTSm5mbWpaQUEvQkR0VUZTd1RjNUExbVkxVndSYldMVk1MQUxuUFB1VzJKMzB4QnZDVWtKRzlHb1Z0RUVFdTFKdFR5QUZ4N1VWclZDeFM3aHJqZ3JXNmlmQkNyOEZjaG9IYXZnL1ZIb1c1RmlVRDZQMEc4anlMTWZzcEErQTZ2ZVRYUjJzR01FRUhsZHE5Q3BqTlhvRU1SYUVIT3JWWkNLS0l5a29CNEFFOFJhV2lONmF4S2hRQXV6OURBc2dBY3ZNTVhrZTVhTTFkb1dRcGlqVDNyekpBbG5PL2h5Q09jRGx1UUdJT3JoY2hXVDFVQ2hRVGxqSEZKN0lSNzdTaEZLQW5oYVdqVndTTmdjU3NRR0FyWGxkN1dRMHdnWlZSdkxqRTJqajRRUVdFWjlaWHRrY3V0YmswWndEcHhmMUVUVlBlc0gzSi93a0RtSlVLeG1GNjY1am0zMm9MTlFoMDcvVWR0WFh5cUN5VW5jaXczRndEbEdGTVdJQlZRZ0VJcTY1dkE5VjBBTDBqc21KajNkUGtLTEZXUVdlREY3MWRza0VQVVQwZ0hhcUEyVWVIVnAyUkN0N1Zrcktpc1FBMkF5VDlpaVBNbEw5WTRIOXdINCtXOElCalpoaTRyRUx4RE9yVzNRMWJvdTJjZGVqbWNDQytESVFwSlJGa3BMMVFMaEdwM2N0ZHdOOW5BRlEwTThjaXpSdExMbGFpOHFBb3RLTHRmRm1QRlVEM0hjVWFFRm4yKzQxWENDSTgwVlNaanJYU0VQU21BbitsSTh1czJJeTRXUGRDV1lrYUJKY1orM1gzRE85RGh0TmVDNWtmYUFXOWVZUWJZbUpCUmdrUjRFK01SNEVCakFqQTh0aDlXT05lZ1BNR0VndXJGaCtUWVVYbDJ6bm9oTzJTQWNMTjhSS3lDcGpTeGlXQWJYSlVHY0pUcllyNS94RUQ3R0ZqVjdPajVabWJHZUZVbkZ2Q2cwTXpaMzUybU5JQzFEWXZ0TUNNUTF5d1FNUFNnMFV0UjhxNnQ4N1lKVEFBbkQxTTB3UDdGK3BBcW9Va3FBSk85QkRFaTdKTk1CRkVRUDNBUVRQMTFGUUIwSXZMeWxMTmx2U1FkYnJJQUhOcHlyRGFYQUtnaUJLQjN4OExiejluQUhaSGF6TUE3Yk5SaWg2RkxBQXVTc0N4bVdPWkxBYno3LytLQVJnc0JITVp6Q2hqRitjTEZLT09XWjJaQ2tEN1hyRVB6QnBoVVRtT0RLQ2FFMXRUTVlDcTBEbDhRa2J1NVF1SUNCZUZhMVY3WU9pREg5MXRLU1ZzTGlrakFnQkZkR3NHR0RBZldLdFN3Ym5VQVZ6c1dHM0tPVkZaMFhhWFMwQjdaV2lLMmh0YnM1ZTdEakFNZTFQb0M2SmxaTFhZKzBpbDNkRXBhTDBKVDRWdStkY1k0TFRKdFJiQnZyNFJCRzA2QXpVdGNWYlBNaXgzRUxzN1RQZW9FUllyZ0ROQVAxck5BSzBxb09PdzA3Y1o0T01hQTVpTndaeHF6STFhQUdmejFvT0dOa3RjVnQwUVNtY3d3T1V1Z0lzTHkxczZTS3pEaGxVNTlicmhKRk42UkRmdUkrcXA1ZStMcmQxS09tTnZsNHVWZ2tHY0FiSlhDN29HQXp4eEh5bHNPai84UFFaZzhYbGY2R2UrRWZ5a09kaVVjcTh3NmFobXFuY1VEYjRHcUxnakJ0cWRGOW5PSlFOY3hPclNVL2Q3REpBWnluMDlHQmJRK1FUWnFBRElxZmxPbWx2MUhabVJ2RHZqdEdvN1FJWFdHbUdiQ1pycWpuT0hERFNRMU54VXdNN0NpY0lKcER2K2pwb1JiZTBMNjhCZ1Y5Z0I3bG1sY0cwSnc1Z3hUdjNyQXk0TVBRZHhaZDBVemZEeEZ4bUFueG51T3FyMHR2U0FzYjJLTmdQT3BZbXdFT0p5cWFRcG9DeWNNU084YTFTbjZLUVNlSlVCek1IMzhIc01NSzBNdzZnVFZDYlBlSFJvbkFxQWM4L2xVcHE1bGNUeXVwNjJnMHlVREdDUlgxbEM3bnhXcTRGUVJLbTM2MVVXSDFTdEtzQldVOWF6c3dwVmMrYytHMVZGaEtFYVZWRXYrN3ltTGJIdk1zU3huWWZLUUd6SmQybGc3aDkrbndFV1BGcmFWMElpRXdSZ0ZyY3NNNmNLT1VzUU5nMDNnWnptOUExUEVNUHNsVmFZRVNUTDBCd1p3SkNOUHRuakRRYUFULy94TnhrZ01wVGo4ZTBRMGl6L0ttT0hGY0NtWm1BbVlRZWc3WWJtV3daSm1DL0E0ejNOencxRHU2YlZVVHZ1WFAxdXRQallIbTdOMHMrSGhpcVJMWlJLdjRWMW44TVQ0ZFdvRGg0RXphMVNIMTRmVWJ1VFdlUU9UZTBpZ3RaRTg3WXF2VWxpUVBjQzRHSE8zbllWVFVqanRENTZMSWZPdk1ld3VadXhwd0FMeURRcHFpck9pb3pKcjBadVZsb0J2WXZDR2VLVGp4Q21iUENMbzRMMEZRWkFVTmZ2TWdEMUMvNnFHZUF4QzBDcmFWSU4rSE9ibWtHQy9ocHlXTXN4ciszakFqYWhJME13TE1zajY5US9vRXI5b0FIMWxGU3dCSklrSUZSVWZWUEFQQ3ZjQUN3ZTNkeFQxdFdvM04yMGh0OVhUWUprY0hNSHIwc25zYnhrT3BtOWRManlJTk1XRHdud2tLZDRmSHJXMGFVMFZxNW9sZlBiejlMcmh2ZzZkTERJRk1tTWQ0MjZLNTdtLzZrc0xiV3ZDMmV3eWtPZHJMOE1DNzlrZ0svdlAyV0FqMnNNOFBvV0plQ0JGTTBxVTdveWdQN2FOWWVQSEp2c01EUE1zNFZCQmtzZGFhYlVneSszeHlsUjFrVElzbFZSNGFZbkxicXhoZkpxVkRzUGdqYlg4UWkxM0ZLN1pJVVVpK1BwZEJrbWd0Rm5LRU9VRGdlcjFKVTNHUERGU3NaMGsrdVZSQzIyeXZrSm9kTHZEbXhBQVJaNGVmTjRRRXh6cjVxUWFmNnp0SlFIUjVhbE5MTDJBZ3R2R1Aydk04Q1BQMktBN1hVR0lNS0ZtU1A3TmdjaDI3aWt3NVBKbWR5M0RDUnBaMnFCWWFPR0VkQTduUkdwSjdZS1RvbXFLb3BYZmR2dmczN2F1dDQ5SzZ0UjBmRnlRc2hKeEJRNWRHQUc2Y2x5TzdwMElsQk1IaGVCWml3ejhZNUhWWlUzQk9GSDRzRlJINEV5R1VKWng5WXc3aVVpYnhSWlVPeXloY3dlL3V3Qlc2d3d4RCtNNUkrSWhrWGhqQWp4d2Z2eW9jUVI3Vms4OHZjWTRQRW1Bd2pCdy9SYTZRQm4yM043Z2drejNiTEsxTVp0MCt1ZHkrRUJhbjlHSnQwbUc3VUpqK0tTSnZRQjlmQW42eU9WZFpHaTZ0dTNWN2paZWpXcmw2cWFsVTArQmtFemZOQm9HTkFCQzBYMGdsc3kvRk1sVEJscXluREpUVm04SkFxRDJSK0k4VWJBTVNZaGhURW1ZNVNYWXBrY2h4OU9vMElIcVV0TUFNRG5SQUJGcExyaC9wVGFDT3Z5d2tUT2hndzJucGpZQWY5OEszNlI1V04vaXdIeVI4MEExSkk5OW13SkdBbTJLMnV6dW5taHh4NUZxQ1hQTVl2WFN1WnlWQVhzREpnaXJLNm5FVm5HR01mSk9tTk92V2ZTTktOM3RiSHFtelNqRkJVZ0dLdThtbFVVYm5yaGVzZ0FZcU9oVXhVTkViRFdJOU5ON2duS1JMQzVOaWRSWGE5SXorSGZYdXdJSEVDRVNDN0xHVk5yT3pBK0s4NkhZQzhrL1N4L1FIUkFwQ1VpaG5GYnVSV1FIeGE5eWh3dmlsNTErdjh2R1NDRFZzcU5xeWhyWmZKSzFHK0FVR1dzcmI2d1JyTkxKMmV5aUdsR1hMS2lUdjRIR1U4L21ZUGpvcGFZMVdjU2dZZEk5S3h3c3dHTk5scU1heE1qclRUYU1GbzhRWFNza0lMcWlrNUxOQkNVTGFmYkh2RnlJRDNvSWo4VDBWVVVCQU9oTExvbFhMMHBobWNVeW16c1prVTFTaHRJSGg3WVUra2plWFY2eC95ZUdid0sxSjVBNTNCLzY1a2hQaFpPMCt0aEUyTUdJSkFmQmNUL0FnUE1HV2FHZUVzWW5lYWVWeHgyQW1wRVQxNWxTbWVnb1NhZllrN3JENDI1aGgzeUVneUx2V21pV3dQU003V3A1YzMrRXNyek9FakdFemlmZ0JkaGJEc21HNEdTV0M3Y0ZUdlRCckhhQm1WYU1TMytwRG9Rc2pZTGdwRlFpRzVoVEl0dnhxM1VIb1J5Mlo0dE1oVW5VZDhvSXFObm1NUysyd3VGazFydCtONU5QNk1xcHJ6WE1BRStDMmw3WVc2QUFwRWNRT2ovK3d4d0tPTUI2TzFqdlhzbTJUdnRHWEM1WTVMT0hKS25CNHkrSVVYQkFaZ2FMb2Z4USttUE9YQTU3a0l3MW5nTDZZelVTSWw4emJWNHhnVTZpWFRLQW9ic3dpS2dYZERnR0VvQkJDVi9HNGoza2hOWlRzL2RYN1Bja09zSXZJZjRzb3JQVGpVYUdxSXlLa0tjSUpTam1lRUNncnZESGNmek1BNXNvRXlIdlFmVEd6K1FuNDN4akdMbk9QY1lXMG42MGFCcG1sbVUzSVlCNEwvL0JmMkRBZWJ6RmdPRU9TT2hSY2tBN3UyTGV2ZEVSbU1DbTRZRzdneWhxQUEvM1gydy90NHN3QWhFNURta2VVdzBiQTJHOVdVT2pWbzNJYmhFdm1hL2x6Wk1Jcm5TVnlCMTBDTW5RVE95T3ZRc3U4N2Y5TGUzRXpPQW9iZjRQcFcwVkh1NTdhYzVzYWo1em1OcGFsUVFMVmtEa0lKb0E1bzcxS3puMEFFVjJ6ekFHR0MzK0RyRkdFUmpNMXdOeFlPbVREckhyUldoOWcwMjJpWUJXRHhlNlg4SEMvUW9yVXhnZ0RwZlJTWWtvVGU4NDdYck1iSmJtQmF0cEFyVmJtbm9td0YyUW1Gc3VYTjAvcHQycE5UbVdsM1dJVnVpaFVabTZsRVU0Y3VxNllZNkl2STErNzI0S1F2dkVKakZJc2JjeWk4QjNFZmc0eW9DTFBDUitSdEM5RUliVFFsbmhNUnBPVk9vOHE0Yk0rOHl1b1ZwSnJFZlhnK0txSXBzZElVaU9xZFJheGFpMjNwK0lGRUE5SEpsZWpQZDJrWUNqWjE2a21DR0x3dmZteFZGTjlCNnhKeEFzdjRMK2NFQW04S0VjYyswQUhXK0NneXlSMDd3QjBlYjBNQTMxcVczbFpSeW5TQVR0MDRrL2NkcHFmSnFsSWsyUkUyL1lxZHRlKzhvd21jMFFtcGl5dTFuMEMwc2NtNzhnY1VBSmpVNXljdVlPOTNRQTVnQjh5RjVUdGUxcC9QaEl0amVqNGFPdzRTem15czJra1Z2ZlNnWW9JcU4wZlEweFpsc2pLbDBMNVA1SFFZcmNhSFIvY2UwckN4ZjlPNHhsWWp4ZGlWUHFDMEJrNHdwNXdldUFMWXdzZXlKU29vRVlXaEM3RFJoQ0VXUXpLUE9WeEVKU2ZRSDYyMnlkajJzak56YmpGVldoNVpzR0VOQVRLbUhqUUV0TktSc1BnOWtmSXg2MHRMcHRqWnlJSVMyQjV2MGhFYXczcjlCdGpQeVgvdmNKaitOQXVmTm5GbWJFZFp1UUpBNTVvd0Z2U2dvZ1lXb2N2L2lZUlJrZ0xaRnlndEdpRWFGRThkWEdLQi9sUUdzdXVDNm41cFVMQUZ6QW9NaW9uZWdkU1NhQWtEQWlqMXJKdS9BSkdUZThpNGphVUZ0MEJ4a3B1blJCTjZVUGx1bjhEOGxBM3lmWWxlSnlZZThBTkM1Y25mamlwYit3Qkg4ZU1kR0t5c0VRODdIUG5rRGFMQmhnM0VKeXRFeGFlazI3TnBMa3RId0pGYXlDcGFMc010Qzc0WDFtTUdSdXBaWmF2OE5qUDJZS05xZGF5MXdPWjdDa3Q3aWhaQU4yWEFqSUVIT2NOVjNhWkhsVmxFS3lvdFJJMXNaQ3REMEtKd2p1MXViQWVZRkExZ1luT1ZSZDZGdVNRMVgrTTlUWG5FRjBlSkdaNndEa1lEUDN3VitDMERSTWNFSHJyakpUOHlmN2RaTm1DaHZ6KzFrd3ZtSzFEREpBTFlCZm1jYjR3VERkRWFuSmptWW9tMW10RlhSbEFIVENPYXI3Vmpmd1FKN0ZxdEFWZ2psbm51OGpNeHRZeC80ZStBMmdVNXVPWnNCcW5UWERNWUhuaG11bVI0Q3Q1aXorTWJXK0lTSnBkYURodkNvZERTdXFRTzU5RlZ6SkNPRFBlNXgzbmNHZ0l0WEtlRlpmVjBMcWxLMDhqb3hkT28vdWRaaXBnSXpsQXlRMm5jNmhOVmJSUkVEa3FGMWF3WUFVUlc1Qm9paGlYaStDd1luQUZmbWFnSVh1aVlNaTZYSlVKK24wS0JjRXlONVF3Q2dpY0RIcXB4RjJYVVJVRkc5ckF6SzBrU044eXcwOTZyL2thZHNCZ09VcXpLQ2RZKy92NEw4cWhaU2FkaEEvT003a1FTV1Zpc0E4TlJmUUNxNngvMXc4S3pab0RYbXVzbnBZVGgybGZZRDVZck1DNm9zQWZkems5WUtWQTFkMDBDRmdCcjU3UXdROFpjSnAwRlAyYm9SSGFscGFKdEZMN1R0Z09HU0FlUXhhNGptQ3diQXNxUy9zdUk0YzU1eENTQlJYV1ZaV1FVbDE4aThuQUpOYWFtNGJjeUdvUlpMU3RyRTZaLzJSb2lOV2NHK1FnQWtBK1NlRjBzcnlpVHI3QzBNeW5CT0hPbUdoTHVLcHB3SE9uMU5mTU1NYThvQW5qcDI4bmM3cHFMWnB3eEhxT3JBZXFNR2FVV21kSWQwTUdDa2tWbk1ucUplRStRQWRTT3VoT3VGQjhZYUF5ZzdZR2xPYTRVNUVNa0FqSHNNQmtoQVRaKzB0SjdlT3Y0ckFac2FYbEFvYzNNb0JISTBHSUFaY20wWGdFZDRVanE2bERFeHRKVTV6M0p0ZkxKTnk0ZzRaOWZJTUxsaHQyNHBVaWRTTzJuK2ZWUWZRV2plUjBobHBHc1MrcHNBWUl2TW4yNnhzRlNIa1I2RzNacnAyclh1N2tnK3dveTVlRUViSy9qbTFGQnZMRUR5UHlnMmVLVGlQRUpzT3JzVmNybDJPdGhZK3FUdDkzUWJXOGhPNlRsN1R4WWtRMkw1ZmcyZ1h2YzlLbkp6alFFWUFyUklCckM0eDFFd0FOUnNQQXQyN2F6aHM0aUdKekxFUkQxWW1lRlhWRzhpcnJtN2w4bWJzV011cGdHYmlxMnBrNnpLZVpaRTlmd1ZoR3REbm9lVzlzV3RWSFRCUFFocWsrWmU2MTduTFBKVzZrOXA2UU1xR0VDdWpUMHZhK21vdFVhN2RWaGdVQWJUeW8wZHBhdWJLWFBuZ0FPNFkxckRVenV4eEdvYjd1MEFNbFdsUERBOE1tTlUrQzQwV1FLb0Zqbm1wVGNYVHhYYXUxWFBlNnk2QzM1anppY0Q2T0xlUk5rS1IrSlhERUR4M29zbFlLenZ0azBHZUdkZGp4NytnUnJZRHFYbE50RFZGWUxOTFpCN3hXbE4rNTdFRmFNajdMZGJCanNXeGlrbG1iUmxtZk5zR1VUMUREWkU4WVZHaHNrdEJLVXhKYnRJYmZ4cjAxeE9RcE0vcFNrUC9NRGZiZm9qUXdncGFDdW1aZVZCdHc1d3IyRjhxWFRUN3JYV1RiRFNuMHBLNUttZkszYWY1WWU1dHdQSVZDT3RZbU9FSkRZU0JDSzlGTytXWFdYWHFJcGt6Mks1Y0dER3JDZHJ0bG9WM3BFRFZxQVVlbGVVaXRhUTNaNGg2VElnVHhHaVpBQVo2NUlCd0pmZ0luUVIvbEdIMHVJMUlCUXBuV0hoWi9Gc1hSTTNidUdueVYrWmxudHB3TjVMSHdJU1NVcWp3NThLZWhLVmVWZTRsNlpHaHJ4SGNPUXJCMVJkcEhiUUhFUkhBOG4vOHc5YitvQ2lZUXRYeFBYQUdqYzdiYkxiNWlDeXZ2aWNVdzdJVkFhc0dRMnNyMHdON3VXWVhHVUE4c3VSM0JpSkpKWW0vN0RUSnNwTzZJK0NTOWluSys5b0hWNmljY3lVYnNSdUhPTk03SEdEVmNHeEVRNDdiT1o2TWNMdG1EYWozM2hCVGhGbk5RTkVrR3JtNEdpRjBuSk9rNjFET2lOZlg2UnNWU0tuZHkrOWdSaFJ1dm94djBneW04aTUvMHFpTWhoZ0V6UCt1TmQyaEJBWGNzclZ4NktMMVA0blNLNU56c05mUW5MN2liOUovMnptZnd3R3dNZVk3WWNxcXFtNDZGWXlNS1B6UUxVdkNGN3Nqb21mUXJuMXdUbUQ1QVk5NjF3UE1zczEwa0ljUHFWemJmR1FCSU1nYk5CWWdxWHVsTU4ybHRyRnQ0RnJlU0ZpbkxFTjVPWncwTVNtbnlBaUJBOHlFN3Z0S1JiU3NURGxQUmlnSHd4QW1HZ25rbUxXb2JTYzAxellRanJ2cVlBcmlhdmdPMjYvcHR4R3kwRVFkYlB4V1N3MEt5ZXlkaWRScWJSUmJSTzY1dXcybXJhN1NHMzhDMWNmaUI0azE1L1M4YTgwK29DeU1kRXRHV0FZbWptN1Z6QW9lOVlYc3lxREExampoOEJLMWZPRjJoQUR6YnJjK0VJc1dQQ1crOGM2U2pPWnNtZkxMRUk0bU5vKzUxd3B1REU4S0tyWWtsU3dZTFZCcGMrVzE0Y1IwT2pxTmNSRzZNc3dxMC9icWlCZjRqbStaeHNxYkN3WUhqRFJiaVJTakZEYW5OT3hwWFlLTTdSZ3ltbU5qR2pXMEpHU0d6N1EwTVFSanVjVGVXK3RGdVJjSWI1cmVZNi9iVWF6aDExVit4ZFMvbDl2LzBYN0YvK1pDNUQwWi9Pc24yQUFsM1dQR0ROclVYeGdRcm1PS004RkszM0RKUGYrd3EyZWlvRkZLMlhHV25IVm9SamN2M0lwYnl4NjIzMFptakZjYko5Wk1aY2J3eWoveWIwOE1QeXNMa2ZuWTJmSGZsektrRS9zcDBlbFhWRS9KSE44VTJIano4eUdtVWt4bDlkaWRuUnFwblRtQmt2OUhKaldYejV4WnlRMEpiZWFSRk1SNXl5T2laemRTVlFvN2g2NWsyczQvZmlVNlZWWDJaVE9SbmVTL0gvKzUzL1E4ejlCL213Y1dLdjBxdnZkdEZWekI0ekdtV01lU3dYVWZKRCtqSU1BL2JrTUZBd2d2eWdBTUtxQWluQXA3M3VRZUNBMUZMZllndzVBMngwYXJheGtWS1ZaSkRreFA4WXcrNW1DN05VeSt5RWhJejBMcEd6a3I0cVFESVRrUmpiTXQweUtxU2JzcW1HU2Y1WFMrZjhuNzJ4YjRnaUNJQndTQVNFU0NMN2xJQndZRHdJbjkvLy9YcWI3cWJxYTJmc1VSQkN0alh0dWFRQ3M3ZGwrbTk0U3FCM3dQV1pOOExYdnJ5SktSTlJGMDhVVFB5NkdESTJrK1NicnVTR1RoZ2tWUkhQaE5DUS9EZlIzeUw4Z2YycnRIazFXRW5xSmc4bEIxdlAvbVRlOTFsKzRhNlI1QXR4TmcvTUcxUzVBaFFlMTJudW1UTCtMVkE0WkNiM2ErMzNyRitsaTd3SzNTYXVLaERUeTlxcUt0dUZUNi9kb3o5UVdCU2JZeloyeURLbnQrZ1lmS21RT1M4NFJ4US9MNnV4MWU0NjJEZ2k5cUx1MTRnS0dIRDZxeW9kRDM2em5lb2EzZVMvVUNuUStiUVhQOXhjM1FPUDV2czVMMzArUWlRbmUwL0hrTzRCd3NZMy9DWGN2b3pQN0ZpQThjSUt0bnRCMy9kcEg3WUpsUkI5N2d2SDRkdGo3STBjNkR3WTg5cHVhQmFuSm9zTFQ3ZU5LRmhWSUJDNkZielRCT0E0YjVRd1hPL3BNOE1WejJIQXJyVlpuVkczOStKWUxmTHM2RFVUY2FGb2ZrVEdHREcwVUw3Y3Q2L2xSeG8wNVgxREJsLzlDMldrZUFSaWMrMzRDdWNhVTMvSC9mQWM0RVhSZnI4MVZQcENhcFpPQWQvVXo3WURUeUlYSFVlOFlwMWJiUXpvTHVKcDZCd05nRTBWYVJtNnlzWVU3WVBBMzRlMlhNVTY2cmc4NFowanJDY1p3ck94TVJ1M1dVajVJcHNtY2MxaHhaTWFVSFc0bDJ0S0JnaHQxaXh1UVppV2krYWFCUHBzNVRzOXdZT05lcVZlZ0ZOMDRnVTdaUGk1STZxWDExL3ZlMDRDV0pNQzF4bWU3REZEdC81NUtJSC9oYWd6ejBhQlB0MnlSRUtQUEc4S2dZellEOTF2WHRzWm9DNC9oVHZGMHUxODRaNjJzSmhpTEs5aGIyL05LQ0Q0VHFPWElLbzNDOGNmV2FNdUhFSEhyNThockdiRmpzK2lwYzJHY28zZ2hVaS9VNjFEeDNvRENRUGVodXUrSGpPeFhYR1BYMFhzU1gzbUN5MXRQa3dhazExNDkrZGRFaUw5MEE2akIvL3ZJTVhndzZkU24zN3NvdklvSFA1TTc1ZlNib2haaDFJYkhMM05vaFpET2pEY2c0ZXl0SlFCTE1zMUsreFIzRy9QR1pHRml2c0tnV2JsUnQzVkZValMxaUJZZHFTZTAyYVB2MjBJWkh5ZUNjSXZjOTlOeVZ6NU5yakd2d2JxdG1XNGRDMUNDWVl0d0NnRzhXV0h2Vm9BdWJZMnRRdlJlNmRVb1k5UytSeE1mV0xTZEVFdDBiVGpkRFJEdC9BRFdrOXA4L0xJSVdVd29ZaXR4ZjdlSjB6bmMxdUdUWmNiV2JiT3I1LzBpbGZzNjJpSnVIUEdnV0w2Z0E2N2ZIclZ4WWs0RkUvRFNUekNuZ3RzMVZwYWw5TzgyTkFiOGFraEFTb0dkK0VnelVOY0VyanpHaU1LRzJrTHg1VmkwazlxR09FUCs5NFdCT296YThtdmVwQkNCNjREMG85eVhqU1c0Qmk4NW9TcVdiWnZGaGpGcnJteTdJbEEzcXI0M0REdmRiUExlUGFpZlFLMW8ybDFRYWpuTFVrWEFicUx0RWQ4YUV6STFBeEFFdXdHY25YZ2FCNi8wR0hxelNWRzU3cXphVFV6d1N1NURDblVZTmRQd2M5NGtVVFRhMWtlNFhGN20wbzQyWlovcXdJSWxzVlc5dEdxKzNqMVNEbmJsUzYrTTdXYXVlb2FUdWEvWk9wU0QxWWxDSlA2TmdXYlo1WnAySUV5UmtGbTNRQy80WFFaRGJBU1hzN1VreEV4c0RUNkhkSFUrSkx5MGhRWDhHa3c0UW11a3R2c1d4TnF4WlowV1EvNDRPQnd5Uk9aSGRjdyt1UDZrL1VqYTQ3RWJ4cXRPRlB5QnVRcm0va0N0MXBnb01xb3pxRi9ha3pJWUtiTExOZHYvZGJYM1pFbGlvWW1rUXlkUFp0aUFROVEvY2JCY3JrQjkyektuandxVXB2SlZoczN1MFhLdHRDUFJlend3V3B5RDhnZGNCU014VHNjWlh2aThFck84LzhtQ1gxeEFiV1BKaHlXNlhnMGI4ZWJITVdGVWFQUGJKQWx4RlRBSlZ6U1d2Z0w1UHdlNmQweVZML2JLbHhIamhNM3R4T09hQnpmVkw0d2VZUDFaKzlITHVzN1ZiTXBnUVg0MWNEd2RBdlVGYkZvS2xYQmJQbjdaUzVLaWk3Uk5KdERpRWpoLytvbXd2cEJMUWRjNURFc1R3MjRPeTNSckJMUVRXLzZzeExvRnN1Qmozb0dVVGNva0JJWnRiclZTYVlTT0syOFcvR3Z2REZZYmlHRWdhZ2h0b2Fla2wzYWhwMXdLWWZ2L3YxZGtXWDZhUUMrRndKcnFPUmY3YWx2eFdxTnhDNkp2RGVqK1cweDhwRnhDRUlTakVKZnBJMVhpQjMvQWQyek1xWWZZQ0FNUzhBTmlOamNta2RqUWYrVzVsK09YWWZRdlUxbllvVTdhS1FSQjN2Y1VpMW1QNVpkbi9kTWZ6bFFkM3NoWXNBUlN3R2V5cDBDQkN6SHVUSVRIUmVYQ2E4aGczZ1NmODBPenBvWjlaWUNYeUJ5dE80NUl6QklJU0YweXRiOWNpTEhaSHpyM2hldHYxYW9BUVpBUk10MmNGVkxSdERnUDNQYTlCU052S1FHZnkrNGpiT3lpSy9BL2FLUGdoZUpWNUQwcEw2eGxFM2ZXRTN1RGIxSmV4dUUrcjRxdTNBTXBkRGZFQ2RkZ0FUeE5NSi94Q0FCOGd5RklPeHExQUo0aEw0Qk9GdmdabEwwaDJYbDNXMDJzSjRCL2VLTWRqc0lmNlFRclUzekJ3a1pmeGpXaTVwNVRZZGhxZm1JOXNRWUZzbkF3a1ZjMnNVTGdOK2l1RzBqeHNOWEVlMlFGQ2dwREJOdk0yTmpKNi9pT2xicTVqblkyeXdQNi9LKzJBQXF2ZE5MTnZHM1p5RElFZnFmQThycklMSk5vaHlQQUNoUVVoNEp2Wm5HWUQ0SGY1TEs1UkE4OEQ3aFdBQ2hRQkFsZDA1RkhYZUQzRmlPYkYwWGRpZWF4bnRqYlNoUzJsYVZkaDduWE5mcEQ0R2NqV2hTVitVcldFd3RSL0FCdHd6WW0rSXhTbHdBQUFBQkpSVTVFcmtKZ2dnPT1gO1xyXG4gIHJldHVybiBpbWFnZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZudCgpe1xyXG4gIHJldHVybiBgaW5mbyBmYWNlPVwiUm9ib3RvXCIgc2l6ZT0xOTIgYm9sZD0wIGl0YWxpYz0wIGNoYXJzZXQ9XCJcIiB1bmljb2RlPTEgc3RyZXRjaEg9MTAwIHNtb290aD0xIGFhPTEgcGFkZGluZz0yNCwyNCwyNCwyNCBzcGFjaW5nPTEyLDEyIG91dGxpbmU9MFxyXG5jb21tb24gbGluZUhlaWdodD0xOTIgYmFzZT0xNTIgc2NhbGVXPTMwNzIgc2NhbGVIPTE1MzYgcGFnZXM9MSBwYWNrZWQ9MCBhbHBoYUNobmw9MCByZWRDaG5sPTQgZ3JlZW5DaG5sPTQgYmx1ZUNobmw9NFxyXG5wYWdlIGlkPTAgZmlsZT1cInJvYm90b18wLnBuZ1wiXHJcbmNoYXJzIGNvdW50PTE5NFxyXG5jaGFyIGlkPTAgICAgeD02MzYgICB5PTE0MzggIHdpZHRoPTQ4ICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9MCAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MiAgICB4PTU3NiAgIHk9MTQzOCAgd2lkdGg9NDggICAgaGVpZ2h0PTQ5ICAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0xNjcgICB4YWR2YW5jZT0wICAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMyAgIHg9NDUwICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTMyICAgeD0yOTg3ICB5PTEyNDIgIHdpZHRoPTUxICAgIGhlaWdodD00OSAgICB4b2Zmc2V0PS0yNSAgIHlvZmZzZXQ9MTY3ICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzMgICB4PTE3MTQgIHk9NzY5ICAgd2lkdGg9NjYgICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT00MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNCAgIHg9MTk5OSAgeT0xMjYzICB3aWR0aD04MSAgICBoZWlnaHQ9ODcgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTUxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM1ICAgeD0xMjE0ICB5PTk1MSAgIHdpZHRoPTEzNiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzYgICB4PTE2MTAgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0zNyAgIHg9MTM0MSAgeT01OTUgICB3aWR0aD0xNTIgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTM4ICAgeD0xNjU4ICB5PTU5MiAgIHdpZHRoPTE0MSAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MzkgICB4PTIwOTIgIHk9MTI2MyAgd2lkdGg9NjIgICAgaGVpZ2h0PTg1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0yOCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MCAgIHg9MTAzICAgeT0wICAgICB3aWR0aD05MCAgICBoZWlnaHQ9MjEzICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTAgICAgIHhhZHZhbmNlPTU1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQxICAgeD0wICAgICB5PTAgICAgIHdpZHRoPTkxICAgIGhlaWdodD0yMTMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MCAgICAgeGFkdmFuY2U9NTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDIgICB4PTY2NCAgIHk9MTI5NCAgd2lkdGg9MTE0ICAgaGVpZ2h0PTExNCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT02OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00MyAgIHg9MCAgICAgeT0xMzE3ICB3aWR0aD0xMjggICBoZWlnaHQ9MTI5ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ0ICAgeD0xOTE2ICB5PTEyNjQgIHdpZHRoPTcxICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTExICAgeGFkdmFuY2U9MzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDUgICB4PTIzMyAgIHk9MTQ1NyAgd2lkdGg9ODggICAgaGVpZ2h0PTYwICAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD03NCAgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00NiAgIHg9MjgyOCAgeT0xMjQ1ICB3aWR0aD02OCAgICBoZWlnaHQ9NjUgICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExMiAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTQ3ICAgeD0wICAgICB5PTQyOSAgIHdpZHRoPTEwOSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NDggICB4PTIzOTIgIHk9NTgzICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD00OSAgIHg9MTEyICAgeT0xMTQzICB3aWR0aD05MyAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUwICAgeD0xNDQzICB5PTc3MiAgIHdpZHRoPTEyNiAgIGhlaWdodD0xNjMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTEgICB4PTI2NjAgIHk9NTc1ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01MiAgIHg9MTc5NCAgeT05NDMgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTUzICAgeD01MzkgICB5PTc3OSAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTQgICB4PTQwNiAgIHk9Nzc5ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01NSAgIHg9MjA4MiAgeT05NDEgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU2ICAgeD0yNTI2ICB5PTU4MSAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NTcgICB4PTE1ODEgIHk9NzcxICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE2MyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD01OCAgIHg9MjM4MyAgeT0xMTEzICB3aWR0aD02NyAgICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTU5ICAgeD0zNzIgICB5PTExNDAgIHdpZHRoPTczICAgIGhlaWdodD0xNTYgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MzQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjAgICB4PTUzOSAgIHk9MTMwNyAgd2lkdGg9MTEzICAgaGVpZ2h0PTExOSAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02MSAgIHg9MTY4OCAgeT0xMjY5ICB3aWR0aD0xMTUgICBoZWlnaHQ9OTMgICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTUxICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTYyICAgeD00MTEgICB5PTEzMDggIHdpZHRoPTExNiAgIGhlaWdodD0xMTkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjMgICB4PTgwMCAgIHk9Nzc5ICAgd2lkdGg9MTEzICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE5ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NCAgIHg9MTQyMSAgeT0wICAgICB3aWR0aD0xNzcgICBoZWlnaHQ9MTk2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTE2ICAgIHhhZHZhbmNlPTE0NCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY1ICAgeD0yNzA4ICB5PTc1MiAgIHdpZHRoPTE1MCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjYgICB4PTIyMjEgIHk9OTM5ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD02NyAgIHg9MTgxMSAgeT01OTIgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTY4ICAgeD0xNjUwICB5PTk0NiAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTA1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NjkgICB4PTI0OTYgIHk9OTM0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MCAgIHg9MjYzMCAgeT05MzIgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTcxICAgeD0xOTYwICB5PTU5MCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9MTA5ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzIgICB4PTkxNiAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03MyAgIHg9Mjk2ICAgeT0xMTQyICB3aWR0aD02NCAgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc0ICAgeD0yNzIgICB5PTc5MCAgIHdpZHRoPTEyMiAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0yMSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzUgICB4PTc2NyAgIHk9OTU1ICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMDAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03NiAgIHg9Mjc2MiAgeT05MjYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTg2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTc3ICAgeD0yMTk3ICB5PTc2NSAgIHdpZHRoPTE2MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTQwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9NzggICB4PTEwNjUgIHk9OTUyICAgd2lkdGg9MTM3ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMTQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD03OSAgIHg9MTUwNSAgeT01OTQgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgwICAgeD0xOTM4ICB5PTk0MyAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAxICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODEgICB4PTIyMjIgIHk9MjA3ICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE4MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04MiAgIHg9MTM2MiAgeT05NDkgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTk5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTgzICAgeD0yMTA5ICB5PTU4OCAgIHdpZHRoPTEzMiAgIGhlaWdodD0xNjUgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODQgICB4PTYxNyAgIHk9OTU1ICAgd2lkdGg9MTM4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIxICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04NSAgIHg9MTI4ICAgeT03OTIgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTY0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg2ICAgeD0yODcwICB5PTc0OSAgIHdpZHRoPTE0NyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTAyICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9ODcgICB4PTIwMDIgIHk9NzY3ICAgd2lkdGg9MTgzICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNDIgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD04OCAgIHg9MzEyICAgeT05NjYgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTg5ICAgeD0xNTcgICB5PTk2OCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTAgICB4PTE1MDYgIHk9OTQ3ICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05MSAgIHg9NjU4ICAgeT0wICAgICB3aWR0aD03OSAgICBoZWlnaHQ9MjAyICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PS0yICAgIHhhZHZhbmNlPTQyICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTkyICAgeD0yOTQ1ICB5PTIwNCAgIHdpZHRoPTExMSAgIGhlaWdodD0xNzIgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NjYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTMgICB4PTU2NyAgIHk9MCAgICAgd2lkdGg9NzkgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTI0ICAgeW9mZnNldD0tMiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NCAgIHg9MTU3MCAgeT0xMjcxICB3aWR0aD0xMDYgICBoZWlnaHQ9MTA1ICAgeG9mZnNldD0tMjAgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTY3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk1ICAgeD0wICAgICB5PTE0NTggIHdpZHRoPTEyMSAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MTI4ICAgeGFkdmFuY2U9NzIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTYgICB4PTI2MjIgIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT00OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD05NyAgIHg9MTU4NSAgeT0xMTIxICB3aWR0aD0xMTkgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTk4ICAgeD02NzcgICB5PTQxOCAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9OTkgICB4PTE0NTMgIHk9MTEyMyAgd2lkdGg9MTIwICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDAgIHg9MTIwOSAgeT00MTMgICB3aWR0aD0xMjAgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwMSAgeD0xMzIwICB5PTExMjUgIHdpZHRoPTEyMSAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTAyICB4PTE4NjYgIHk9NDA4ICAgd2lkdGg9MTAxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD02ICAgICB4YWR2YW5jZT01NiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDMgIHg9MTM0ICAgeT02MTIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNCAgeD0yNjI3ICB5PTM5NSAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA1ICB4PTEwNTAgIHk9Nzc2ICAgd2lkdGg9NjcgICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDYgIHg9MTMyNyAgeT0wICAgICB3aWR0aD04MiAgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMzAgICB5b2Zmc2V0PTEyICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEwNyAgeD0yNDk1ICB5PTQwMSAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjggICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTA4ICB4PTI3NTUgIHk9MzkyICAgd2lkdGg9NjQgICAgaGVpZ2h0PTE2OCAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT0zOSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMDkgIHg9MTk3MyAgeT0xMTE3ICB3aWR0aD0xNjggICBoZWlnaHQ9MTM0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTE0MCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMCAgeD0yMTUzICB5PTExMTUgIHdpZHRoPTExNiAgIGhlaWdodD0xMzQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTExICB4PTExODEgIHk9MTEyNiAgd2lkdGg9MTI3ICAgaGVpZ2h0PTEzNiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTIgIHg9MjY3ICAgeT02MTEgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTkwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExMyAgeD00MDAgICB5PTYwMCAgIHdpZHRoPTEyMCAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE0ICB4PTIyODEgIHk9MTExMyAgd2lkdGg9OTAgICAgaGVpZ2h0PTEzNCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTUgIHg9MTcxNiAgeT0xMTIwICB3aWR0aD0xMTcgICBoZWlnaHQ9MTM2ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTQyICAgIHhhZHZhbmNlPTgzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExNiAgeD00NTcgICB5PTExNDAgIHdpZHRoPTk1ICAgIGhlaWdodD0xNTUgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9MjMgICAgeGFkdmFuY2U9NTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTE3ICB4PTE4NDUgIHk9MTExNyAgd2lkdGg9MTE2ICAgaGVpZ2h0PTEzNSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMTggIHg9Mjc3MiAgeT0xMTAwICB3aWR0aD0xMjIgICBoZWlnaHQ9MTMzICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTExOSAgeD0yNDYyICB5PTExMTMgIHdpZHRoPTE2MyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9MTIwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIwICB4PTI2MzcgIHk9MTEwNiAgd2lkdGg9MTIzICAgaGVpZ2h0PTEzMyAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD00MyAgICB4YWR2YW5jZT03OSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjEgIHg9MCAgICAgeT02MTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyMiAgeD0yOTA2ICB5PTEwOTcgIHdpZHRoPTExNyAgIGhlaWdodD0xMzMgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDMgICAgeGFkdmFuY2U9NzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTIzICB4PTQ1OCAgIHk9MCAgICAgd2lkdGg9OTcgICAgaGVpZ2h0PTIwMiAgIHhvZmZzZXQ9LTIwICAgeW9mZnNldD0zICAgICB4YWR2YW5jZT01NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xMjQgIHg9MjQ1MSAgeT0yMDYgICB3aWR0aD02MSAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTEyNSAgeD0zNDkgICB5PTAgICAgIHdpZHRoPTk3ICAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9MyAgICAgeGFkdmFuY2U9NTQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTI2ICB4PTIzNzggIHk9MTI1OSAgd2lkdGg9MTM4ICAgaGVpZ2h0PTc5ICAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD02NSAgICB4YWR2YW5jZT0xMDkgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjAgIHg9NTEzICAgeT0xNDM5ICB3aWR0aD01MSAgICBoZWlnaHQ9NDkgICAgeG9mZnNldD0tMjUgICB5b2Zmc2V0PTE2NyAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2MSAgeD0yMTcgICB5PTExNDIgIHdpZHRoPTY3ICAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MzkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTYyICB4PTEzNDEgIHk9NDEzICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0yNSAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjMgIHg9MTMwMCAgeT03NzQgICB3aWR0aD0xMzEgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTkzICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NCAgeD03MDIgICB5PTExMjkgIHdpZHRoPTE0OSAgIGhlaWdodD0xNDkgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzAgICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY1ICB4PTQ2NSAgIHk9OTU1ICAgd2lkdGg9MTQwICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTIyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjYgIHg9MjM3NSAgeT0yMDYgICB3aWR0aD02NCAgICBoZWlnaHQ9MTgzICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTM4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE2NyAgeD0yMDUgICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0yMDIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9OTggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTY4ICB4PTI3MTYgIHk9MTI1MSAgd2lkdGg9MTAwICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0xMiAgICB4YWR2YW5jZT02NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNjkgIHg9OTk1ICAgeT01OTkgICB3aWR0aD0xNjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNiAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MCAgeD0xMzY4ICB5PTEyNzMgIHdpZHRoPTk5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NzEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTcxICB4PTExMzEgIHk9MTI3NyAgd2lkdGg9MTEwICAgaGVpZ2h0PTExMCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD01NCAgICB4YWR2YW5jZT03NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzIgIHg9MjI1MSAgeT0xMjYxICB3aWR0aD0xMTUgICBoZWlnaHQ9ODEgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTY1ICAgIHhhZHZhbmNlPTg5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3MyAgeD0xMzMgICB5PTE0NTggIHdpZHRoPTg4ICAgIGhlaWdodD02MCAgICB4b2Zmc2V0PS0yMiAgIHlvZmZzZXQ9NzQgICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc0ICB4PTExNjggIHk9NTk3ICAgd2lkdGg9MTYxICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT0xMjYgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzUgIHg9MzMzICAgeT0xNDQ4ICB3aWR0aD0xMDUgICBoZWlnaHQ9NTkgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTczICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3NiAgeD0xODE1ICB5PTEyNjggIHdpZHRoPTg5ICAgIGhlaWdodD04OCAgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NjAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTc3ICB4PTg2MyAgIHk9MTEyOSAgd2lkdGg9MTIxICAgaGVpZ2h0PTE0NyAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD0yOSAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xNzggIHg9ODk5ICAgeT0xMjg4ICB3aWR0aD05NyAgICBoZWlnaHQ9MTExICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTU5ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE3OSAgeD03OTAgICB5PTEyOTAgIHdpZHRoPTk3ICAgIGhlaWdodD0xMTIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTMgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgwICB4PTI1MjggIHk9MTI1OCAgd2lkdGg9ODIgICAgaGVpZ2h0PTcxICAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT01MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODEgIHg9ODY2ICAgeT01OTkgICB3aWR0aD0xMTcgICBoZWlnaHQ9MTY2ICAgeG9mZnNldD0tMTMgICB5b2Zmc2V0PTQzICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4MiAgeD0yODkzICB5PTkyMyAgIHdpZHRoPTExMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0yMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NzggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTgzICB4PTI5MDggIHk9MTI0MiAgd2lkdGg9NjcgICAgaGVpZ2h0PTY1ICAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD02MiAgICB4YWR2YW5jZT00MiAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODQgIHg9MjE2NiAgeT0xMjYxICB3aWR0aD03MyAgICBoZWlnaHQ9ODIgICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEyOCAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4NSAgeD0xNDc5ICB5PTEyNzEgIHdpZHRoPTc5ICAgIGhlaWdodD0xMDkgICB4b2Zmc2V0PS0xNSAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NTkgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg2ICB4PTEyNTMgIHk9MTI3NCAgd2lkdGg9MTAzICAgaGVpZ2h0PTEwOSAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT03MyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xODcgIHg9MTAwOCAgeT0xMjc3ICB3aWR0aD0xMTEgICBoZWlnaHQ9MTEwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTU0ICAgIHhhZHZhbmNlPTc1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE4OCAgeD0yNTQyICB5PTc1OCAgIHdpZHRoPTE1NCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9MTE3ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTg5ICB4PTIzNzIgIHk9NzYwICAgd2lkdGg9MTU4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xMjQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTAgIHg9MTEyOSAgeT03NzYgICB3aWR0aD0xNTkgICBoZWlnaHQ9MTYzICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEyNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5MSAgeD05MjUgICB5PTc3NyAgIHdpZHRoPTExMyAgIGhlaWdodD0xNjQgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9NzYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTkyICB4PTE2MiAgIHk9MjI1ICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTMgIHg9MzI0ICAgeT0yMTQgICB3aWR0aD0xNTAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NCAgeD0wICAgICB5PTIyNSAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk1ICB4PTEzNTkgIHk9MjEwICAgd2lkdGg9MTUwICAgaGVpZ2h0PTE5MCAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0tMTQgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTYgIHg9MTgxNCAgeT0yMDggICB3aWR0aD0xNTAgICBoZWlnaHQ9MTg4ICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTE5NyAgeD0xMDE2ICB5PTAgICAgIHdpZHRoPTE1MCAgIGhlaWdodD0xOTkgICB4b2Zmc2V0PS0yMyAgIHlvZmZzZXQ9LTIzICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MTk4ICB4PTE3OTIgIHk9NzY5ICAgd2lkdGg9MTk4ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTI2ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT0xNTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0xOTkgIHg9MTE3OCAgeT0wICAgICB3aWR0aD0xMzcgICBoZWlnaHQ9MTk4ICAgeG9mZnNldD0tMTUgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMCAgeD0yOTIyICB5PTAgICAgIHdpZHRoPTEyMiAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjAxICB4PTY0MSAgIHk9MjE0ICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDIgIHg9Nzc1ICAgeT0yMTMgICB3aWR0aD0xMjIgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTIgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwMyAgeD0xOTc2ICB5PTIwNyAgIHdpZHRoPTEyMiAgIGhlaWdodD0xODggICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTEyICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA0ICB4PTEwMTggIHk9MjExICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE5MiAgIHhvZmZzZXQ9LTI3ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDUgIHg9MTExMiAgeT0yMTEgICB3aWR0aD04MiAgICBoZWlnaHQ9MTkyICAgeG9mZnNldD0tMTEgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTQ0ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwNiAgeD05MDkgICB5PTIxMyAgIHdpZHRoPTk3ICAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNyAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9NDQgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjA3ICB4PTIxMTAgIHk9MjA3ICAgd2lkdGg9MTAwICAgaGVpZ2h0PTE4OCAgIHhvZmZzZXQ9LTI4ICAgeW9mZnNldD0tMTIgICB4YWR2YW5jZT00NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMDggIHg9MCAgICAgeT05NjkgICB3aWR0aD0xNDUgICBoZWlnaHQ9MTYyICAgeG9mZnNldD0tMjIgICB5b2Zmc2V0PTE0ICAgIHhhZHZhbmNlPTEwNyAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIwOSAgeD0xNTIxICB5PTIwOCAgIHdpZHRoPTEzNyAgIGhlaWdodD0xOTAgICB4b2Zmc2V0PS0xMiAgIHlvZmZzZXQ9LTE0ICAgeGFkdmFuY2U9MTE0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEwICB4PTIxODQgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTcgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTEgIHg9MjAzMSAgeT0wICAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTk1ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xNyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxMiAgeD0xODc4ICB5PTAgICAgIHdpZHRoPTE0MSAgIGhlaWdodD0xOTUgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9LTE3ICAgeGFkdmFuY2U9MTEwICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjEzICB4PTI3NjkgIHk9MCAgICAgd2lkdGg9MTQxICAgaGVpZ2h0PTE5MyAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0tMTUgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTQgIHg9MTIwNiAgeT0yMTAgICB3aWR0aD0xNDEgICBoZWlnaHQ9MTkxICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PS0xMyAgIHhhZHZhbmNlPTExMCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxNSAgeD0yNzkgICB5PTEzMTYgIHdpZHRoPTEyMCAgIGhlaWdodD0xMjAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9NDAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE2ICB4PTI2NTUgIHk9MjA2ICAgd2lkdGg9MTQzICAgaGVpZ2h0PTE3NCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMCAgICB4YWR2YW5jZT0xMTAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMTcgIHg9MjYyNSAgeT0wICAgICB3aWR0aD0xMzIgICBoZWlnaHQ9MTk0ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xNiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIxOCAgeD0yNDgxICB5PTAgICAgIHdpZHRoPTEzMiAgIGhlaWdodD0xOTQgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9MTA0ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjE5ICB4PTIzMzcgIHk9MCAgICAgd2lkdGg9MTMyICAgaGVpZ2h0PTE5NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0tMTYgICB4YWR2YW5jZT0xMDQgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjAgIHg9MTY3MCAgeT0yMDggICB3aWR0aD0xMzIgICBoZWlnaHQ9MTkwICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PS0xMiAgIHhhZHZhbmNlPTEwNCAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyMSAgeD00ODYgICB5PTIxNCAgIHdpZHRoPTE0MyAgIGhlaWdodD0xOTIgICB4b2Zmc2V0PS0yNCAgIHlvZmZzZXQ9LTE2ICAgeGFkdmFuY2U9OTYgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjIyICB4PTIzNjAgIHk9OTM5ICAgd2lkdGg9MTI0ICAgaGVpZ2h0PTE2MiAgIHhvZmZzZXQ9LTEyICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT05NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjMgIHg9MTIxICAgeT00MjkgICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcxICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTcgICAgIHhhZHZhbmNlPTk1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNCAgeD0xNjA0ICB5PTQxMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI1ICB4PTE0NzMgIHk9NDEyICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjYgIHg9MTczNSAgeT00MTAgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIyNyAgeD01MzIgICB5PTYwMCAgIHdpZHRoPTExOSAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xNiAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9ODcgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjI4ICB4PTI5MjYgIHk9NTY5ICAgd2lkdGg9MTE5ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE2ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT04NyAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMjkgIHg9MjUyNCAgeT0yMDYgICB3aWR0aD0xMTkgICBoZWlnaHQ9MTc3ICAgeG9mZnNldD0tMTYgICB5b2Zmc2V0PTEgICAgIHhhZHZhbmNlPTg3ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMCAgeD05OTYgICB5PTExMjkgIHdpZHRoPTE3MyAgIGhlaWdodD0xMzYgICB4b2Zmc2V0PS0xOSAgIHlvZmZzZXQ9NDIgICAgeGFkdmFuY2U9MTM1ICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjMxICB4PTE5NzkgIHk9NDA3ICAgd2lkdGg9MTIwICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD00MiAgICB4YWR2YW5jZT04NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzIgIHg9MTA3NiAgeT00MTUgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzMyAgeD05NDMgICB5PTQxNyAgIHdpZHRoPTEyMSAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9ODUgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM0ICB4PTgxMCAgIHk9NDE3ICAgd2lkdGg9MTIxICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE3ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT04NSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzUgIHg9Mjc5MyAgeT01NzIgICB3aWR0aD0xMjEgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTcgICB5b2Zmc2V0PTEzICAgIHhhZHZhbmNlPTg1ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzNiAgeD03NzIgICB5PTYwMCAgIHdpZHRoPTgyICAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0yOSAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjM3ICB4PTI5NzAgIHk9Mzg4ICAgd2lkdGg9ODIgICAgaGVpZ2h0PTE2NyAgIHhvZmZzZXQ9LTEzICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT00MCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yMzggIHg9NjYzICAgeT02MDAgICB3aWR0aD05NyAgICBoZWlnaHQ9MTY3ICAgeG9mZnNldD0tMjkgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTQwICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTIzOSAgeD0wICAgICB5PTExNDMgIHdpZHRoPTEwMCAgIGhlaWdodD0xNjIgICB4b2Zmc2V0PS0zMCAgIHlvZmZzZXQ9MTQgICAgeGFkdmFuY2U9NDAgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQwICB4PTI4MTAgIHk9MjA1ICAgd2lkdGg9MTIzICAgaGVpZ2h0PTE3MyAgIHhvZmZzZXQ9LTE1ICAgeW9mZnNldD01ICAgICB4YWR2YW5jZT05NCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDEgIHg9MCAgICAgeT03OTIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY1ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTExICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0MiAgeD0yNjAgICB5PTQyOSAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNzAgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQzICB4PTUzOCAgIHk9NDE4ICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE3MCAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD04ICAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDQgIHg9Mzk5ICAgeT00MTggICB3aWR0aD0xMjcgICBoZWlnaHQ9MTcwICAgeG9mZnNldD0tMTggICB5b2Zmc2V0PTggICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0NSAgeD0yODMxICB5PTM5MCAgIHdpZHRoPTEyNyAgIGhlaWdodD0xNjcgICB4b2Zmc2V0PS0xOCAgIHlvZmZzZXQ9MTEgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ2ICB4PTIyNTMgIHk9NTgzICAgd2lkdGg9MTI3ICAgaGVpZ2h0PTE2NSAgIHhvZmZzZXQ9LTE4ICAgeW9mZnNldD0xMyAgICB4YWR2YW5jZT05MSAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNDcgIHg9MTQwICAgeT0xMzE3ICB3aWR0aD0xMjcgICBoZWlnaHQ9MTI4ICAgeG9mZnNldD0tMTkgICB5b2Zmc2V0PTM0ICAgIHhhZHZhbmNlPTkxICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI0OCAgeD01NjQgICB5PTExMjkgIHdpZHRoPTEyNiAgIGhlaWdodD0xNTMgICB4b2Zmc2V0PS0xNyAgIHlvZmZzZXQ9MzQgICAgeGFkdmFuY2U9OTEgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjQ5ICB4PTIxMTEgIHk9NDA3ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2OSAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD05ICAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTAgIHg9MjIzOSAgeT00MDIgICB3aWR0aD0xMTYgICBoZWlnaHQ9MTY5ICAgeG9mZnNldD0tMTQgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTg4ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1MSAgeD0yMzY3ICB5PTQwMiAgIHdpZHRoPTExNiAgIGhlaWdodD0xNjkgICB4b2Zmc2V0PS0xNCAgIHlvZmZzZXQ9OSAgICAgeGFkdmFuY2U9ODggICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjUyICB4PTY3MiAgIHk9Nzc5ICAgd2lkdGg9MTE2ICAgaGVpZ2h0PTE2NCAgIHhvZmZzZXQ9LTE0ICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT04OCAgICBwYWdlPTAgIGNobmw9MTVcclxuY2hhciBpZD0yNTMgIHg9NzQ5ICAgeT0wICAgICB3aWR0aD0xMjIgICBoZWlnaHQ9MjAxICAgeG9mZnNldD0tMjMgICB5b2Zmc2V0PTkgICAgIHhhZHZhbmNlPTc2ICAgIHBhZ2U9MCAgY2hubD0xNVxyXG5jaGFyIGlkPTI1NCAgeD04ODMgICB5PTAgICAgIHdpZHRoPTEyMSAgIGhlaWdodD0yMDEgICB4b2Zmc2V0PS0xMyAgIHlvZmZzZXQ9OCAgICAgeGFkdmFuY2U9OTIgICAgcGFnZT0wICBjaG5sPTE1XHJcbmNoYXIgaWQ9MjU1ICB4PTE3NDQgIHk9MCAgICAgd2lkdGg9MTIyICAgaGVpZ2h0PTE5NiAgIHhvZmZzZXQ9LTIzICAgeW9mZnNldD0xNCAgICB4YWR2YW5jZT03NiAgICBwYWdlPTAgIGNobmw9MTVcclxua2VybmluZ3MgY291bnQ9MTY4NlxyXG5rZXJuaW5nIGZpcnN0PTMyICBzZWNvbmQ9ODQgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9ODYgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NDAgIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD00MCAgc2Vjb25kPTg5ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTQwICBzZWNvbmQ9MjIxIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD00NCAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9NDYgIGFtb3VudD0tMThcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTY1ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD03NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD05OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTIgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTkzIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NCBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0xOTUgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTcwICBzZWNvbmQ9MTk2IGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD03MCAgc2Vjb25kPTE5NyBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yMzUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NCAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODEgIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NCAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04NiAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD04OSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODIgIHNlY29uZD0yMjEgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD03NCAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD04NSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMTkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTEgIHNlY29uZD0yMjAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTAyIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMDIgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwMiBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEwNyBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNiBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExOSBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTkgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD03NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD04NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MTIzIHNlY29uZD0yMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzQgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zNCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0zOSAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD02NSAgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTIgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTMgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTQgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTUgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTYgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xOTcgYW1vdW50PS05XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMDkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yNDEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD05NyAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjQgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjUgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjYgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0yMjkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9MzkgIHNlY29uZD0xMTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9NDQgIHNlY29uZD0zNCAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTQ0ICBzZWNvbmQ9MzkgIGFtb3VudD0tMTNcclxua2VybmluZyBmaXJzdD00NiAgc2Vjb25kPTM0ICBhbW91bnQ9LTEzXHJcbmtlcm5pbmcgZmlyc3Q9NDYgIHNlY29uZD0zOSAgYW1vdW50PS0xM1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTE4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjUzIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjU1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NjcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9NzkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODEgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTk5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODUgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjE5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzQgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MzkgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODcgIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD02NSAgc2Vjb25kPTEyMiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODYgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9ODkgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY1ICBzZWNvbmQ9MjIxIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9ODkgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY2ICBzZWNvbmQ9MjIxIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTY3ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODYgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MjIxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NjUgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTkzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9MTk3IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9ODggIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTY4ICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTY5ICBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NjkgIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTcyICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzIgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MiAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03MyAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTczICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzMgIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NCAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1NSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTEwOSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTExMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NSAgc2Vjb25kPTI0MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTExOCBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xMjEgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUzIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD02NyAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD03OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04MSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTkgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTcgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTggYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMTkgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0zNCAgYW1vdW50PS0yNlxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MzkgIGFtb3VudD0tMjZcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg3ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD04NCAgYW1vdW50PS0yMVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9ODYgIGFtb3VudD0tMTRcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTg5ICBhbW91bnQ9LTE5XHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0yMjEgYW1vdW50PS0xOVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzYgIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NiAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc2ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc3ICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzcgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03NyAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OCAgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTc4ICBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9NzggIHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD03OSAgc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTExOCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0yNTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTI1NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NjUgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5MiBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTMgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk0IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTE5NSBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD0xOTYgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTk3IGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04MCAgc2Vjb25kPTQ0ICBhbW91bnQ9LTI1XHJcbmtlcm5pbmcgZmlyc3Q9ODAgIHNlY29uZD00NiAgYW1vdW50PS0yNVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTAgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTgwICBzZWNvbmQ9NzQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI1NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0MyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTI0NiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg3ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNDkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTEgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0yNTIgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xMjIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD04NiAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTg5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjIxIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD02NSAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTIgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTMgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xOTcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD00NCAgYW1vdW50PS0xN1xyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTdcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTk5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEwMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTExMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMiBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzMyBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNCBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTIzNSBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTEyMCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NCAgc2Vjb25kPTQ1ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODQgIHNlY29uZD0xNzMgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTA5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEwIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTEyIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjQxIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9ODMgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9OTcgIGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI0IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI2IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI3IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI4IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MjI5IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9MTE1IGFtb3VudD0tOVxyXG5rZXJuaW5nIGZpcnN0PTg0ICBzZWNvbmQ9NzQgIGFtb3VudD0tMTlcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NSAgc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0NiBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTY1ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5MyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTE5NyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD04NiAgc2Vjb25kPTQ0ICBhbW91bnQ9LTE4XHJcbmtlcm5pbmcgZmlyc3Q9ODYgIHNlY29uZD00NiAgYW1vdW50PS0xOFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTkgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTAzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTEzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjMzIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM0IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjM1IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9NDUgIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MTczIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9OTcgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI0IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI1IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI2IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI3IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI4IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg2ICBzZWNvbmQ9MjI5IGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9ODQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD02NSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTMgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD0xOTcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODcgIHNlY29uZD00NCAgYW1vdW50PS0xMFxyXG5rZXJuaW5nIGZpcnN0PTg3ICBzZWNvbmQ9NDYgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTQ1ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTE3MyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTk3ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04NyAgc2Vjb25kPTIyOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTY3ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTcxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTc5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTgxICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTE5OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTIxNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTExNyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI0OSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTI1MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OCAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9NDUgIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg4ICBzZWNvbmQ9MTczIGFtb3VudD0tNFxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NjcgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODEgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTk5IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE4IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjE5IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjIwIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MTExIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQyIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQzIGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ0IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ1IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9MjQ2IGFtb3VudD0tNVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODcgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04NCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTExNyBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI0OSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTI1MiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTEyMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg2ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9ODkgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTY1ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5MyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NCBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NiBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTE5NyBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTg5ICBzZWNvbmQ9NDQgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD04OSAgc2Vjb25kPTQ2ICBhbW91bnQ9LTE2XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05OSAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDAgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMzUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD00NSAgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xNzMgYW1vdW50PS00XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMDkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTIgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yNDEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD04MyAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD05NyAgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjQgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjUgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjYgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjcgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjggYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0yMjkgYW1vdW50PS02XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD0xMTUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9ODkgIHNlY29uZD03NCAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTkwICBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9OTAgIHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTk5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTEwMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTExMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzMyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05MCAgc2Vjb25kPTIzNSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05NyAgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OCAgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD05OSAgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDQgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMDkgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTAgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMTEgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MTExIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MzkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExMiBzZWNvbmQ9MTIwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTE4IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMjEgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTI1MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjU1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTExNCBzZWNvbmQ9NDQgIGFtb3VudD0tMTBcclxua2VybmluZyBmaXJzdD0xMTQgc2Vjb25kPTQ2ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD05NyAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjQgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjUgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjYgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjcgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjggYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE0IHNlY29uZD0yMjkgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MTE4IHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMTggc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTExOCBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTExIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjQ2IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9OTkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTAzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MTEzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjMzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM0IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMCBzZWNvbmQ9MjM1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTEyMSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MTIxIHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xMjIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTM5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTQgc2Vjb25kPTEyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg2ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg5ICBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTIyMSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTY1ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NiBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTE5NyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTg4ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yMDggc2Vjb25kPTkwICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkyIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTIgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTkzIHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTMgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk0IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTQgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk1IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTUgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk2IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTYgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExOCBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTEyMSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI1NSBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTY3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTcxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTc5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTgxICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTE5OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg1ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIxOSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM0ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTM5ICBhbW91bnQ9LTlcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg3ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg0ICBhbW91bnQ9LTEwXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MTk3IHNlY29uZD0xMjIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg2ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTg5ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTcgc2Vjb25kPTIyMSBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0xOTkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDAgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMCBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTE4IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjUzIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjU1IGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMSBzZWNvbmQ9ODQgIGFtb3VudD0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTcgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNDkgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yNTIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD05OSAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDAgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0xMTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAxIHNlY29uZD0yMzUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0xMTEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDQgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD0yNDYgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjAyIHNlY29uZD04NCAgYW1vdW50PTJcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI0OSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTI1MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDIgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExOCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTEyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1MyBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI1NSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMDMgc2Vjb25kPTg0ICBhbW91bnQ9MlxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTE3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjQ5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjUyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwMyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDQgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNCBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA0IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA1IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDUgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD04OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0yMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD02NSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5MiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTkzIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTQgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTE5NSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNiBzZWNvbmQ9MTk2IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA2IHNlY29uZD0xOTcgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDYgc2Vjb25kPTg4ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODQgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9ODkgIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MjIxIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9NjUgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTIgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5MyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk0IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD0xOTUgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDcgc2Vjb25kPTE5NiBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwNyBzZWNvbmQ9MTk3IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA3IHNlY29uZD04OCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg0ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTg5ICBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTIyMSBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTY1ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTkyIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTMgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NCBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9MTk1IGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjA5IHNlY29uZD0xOTYgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMDkgc2Vjb25kPTE5NyBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIwOSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEwIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjExIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEyIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjEzIHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04NiAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OSAgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0yMjEgYW1vdW50PS0zXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD04OCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NCAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD00NiAgYW1vdW50PS04XHJcbmtlcm5pbmcgZmlyc3Q9MjE0IHNlY29uZD05MCAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE3IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE4IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjE5IHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD02NSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIwIHNlY29uZD0xOTcgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTggYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMjEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNTUgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD02NyAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD03OSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04MSAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTYgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xOTkgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTEgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTIgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTMgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTQgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NSAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTcgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTggYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMTkgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yMjAgYW1vdW50PS03XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0xMTEgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDIgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDMgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDQgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDUgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD0yNDYgYW1vdW50PS01XHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04NyAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTg0ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTE3IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjQ5IGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUwIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUxIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MjUyIGFtb3VudD0tM1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTIyIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODYgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD04OSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyMSBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NjUgIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkyIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTkzIGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk0IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk1IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk2IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9MTk3IGFtb3VudD0tN1xyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9ODggIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjIxIHNlY29uZD00NCAgYW1vdW50PS0xNlxyXG5rZXJuaW5nIGZpcnN0PTIyMSBzZWNvbmQ9NDYgIGFtb3VudD0tMTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMiBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzMyBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNCBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIzNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTQ1ICBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTE3MyBhbW91bnQ9LTRcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTEwOSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMCBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExMiBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTI0MSBhbW91bnQ9LTNcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTgzICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTk3ICBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNiBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyNyBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOCBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTIyOSBhbW91bnQ9LTZcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTExNSBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjEgc2Vjb25kPTc0ICBhbW91bnQ9LTdcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjQgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjUgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjYgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjcgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjggc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM0ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMjkgc2Vjb25kPTM5ICBhbW91bnQ9LTVcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzEgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzIgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzMgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzQgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM0ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yMzUgc2Vjb25kPTM5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDEgc2Vjb25kPTM5ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDIgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQyIHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MiBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0MyBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDMgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQzIHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMTggYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0xMjEgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTMgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0yNTUgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ0IHNlY29uZD0zNCAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NCBzZWNvbmQ9MzkgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDQgc2Vjb25kPTEyMCBhbW91bnQ9LTJcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTExOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTEyMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTI1NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNDUgc2Vjb25kPTM0ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ1IHNlY29uZD0zOSAgYW1vdW50PS0xMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NSBzZWNvbmQ9MTIwIGFtb3VudD0tMlxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTE4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MTIxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjUzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MjU1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI0NiBzZWNvbmQ9MzQgIGFtb3VudD0tMTFcclxua2VybmluZyBmaXJzdD0yNDYgc2Vjb25kPTM5ICBhbW91bnQ9LTExXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjIgYW1vdW50PS0xXHJcbmtlcm5pbmcgZmlyc3Q9MjQ2IHNlY29uZD0xMjAgYW1vdW50PS0yXHJcbmtlcm5pbmcgZmlyc3Q9MjUzIHNlY29uZD0zNCAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTMgc2Vjb25kPTM5ICBhbW91bnQ9MVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTExIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjQ2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDQgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9NDYgIGFtb3VudD0tOFxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTkgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAwIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTAzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MTEzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMxIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMyIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjMzIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjM1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9OTcgIGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI0IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI1IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI2IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI3IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI4IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1MyBzZWNvbmQ9MjI5IGFtb3VudD0tMVxyXG5rZXJuaW5nIGZpcnN0PTI1NSBzZWNvbmQ9MzQgIGFtb3VudD0xXHJcbmtlcm5pbmcgZmlyc3Q9MjU1IHNlY29uZD0zOSAgYW1vdW50PTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0MyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTI0NiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ0ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTQ2ICBhbW91bnQ9LThcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk5ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTEwMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTExMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzMyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIzNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTk3ICBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNSBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNiBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyNyBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOCBhbW91bnQ9LTFcclxua2VybmluZyBmaXJzdD0yNTUgc2Vjb25kPTIyOSBhbW91bnQ9LTFcclxuYDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCB7Z2V0VG9wTGV2ZWxGb2xkZXJ9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZU9uUHJlc3MgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICd0aWNrJywgaGFuZGxlVGljayApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgY29uc3QgdGVtcE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbiAgLy9sZXQgb2xkUGFyZW50O1xyXG4gIFxyXG4gIGZ1bmN0aW9uIGhhbmRsZVRpY2soIHsgaW5wdXQgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgIHx8IGZvbGRlci5ncmFiRGlzYWJsZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQucHJlc3NlZCAmJiBpbnB1dC5zZWxlY3RlZCAmJiBpbnB1dC5yYXljYXN0LnJheS5pbnRlcnNlY3RQbGFuZSggaW5wdXQubW91c2VQbGFuZSwgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKSApe1xyXG4gICAgICAgIGlmKCBpbnB1dC5pbnRlcmFjdGlvbi5wcmVzcyA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgICAgIGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uLnN1YiggaW5wdXQubW91c2VPZmZzZXQgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC51cGRhdGVNYXRyaXhXb3JsZCgpOyAgICAgICAgICBcclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkLnBhcmVudC53b3JsZFRvTG9jYWwoaW5wdXQubW91c2VJbnRlcnNlY3Rpb24pO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvL05PVEU6OiBpbiBvcnRob2dyYXBoaWMgbW9kZSwgd2UndmUgYWxyZWFkeSBtdXRhdGVkIHRoZSBwb3NpdGlvbiBvZiBmb2xkZXJzLFxyXG4gICAgICAgICAgLy9tZWFuaW5nIHRoZXJlIGNvdWxkIGJlIHNvbWUgaW5jb25zaXN0ZW5jeSB3aXRoIHRoZSBtb3VzZUludGVyc2VjdGlvbiBwb2ludCBubyBsb25nZXIgYmVpbmcgcmlnaHQuLi5cclxuICAgICAgICAgIC8vSSB0aG91Z2h0IHRoaXMgd2FzIHBsYXlpbmcgYSByb2xlIGluIGEgYnVnIHdpdGggb3J0aG9ncmFwaGljIGZvbGRlciBsYXlvdXQsIGFwcGVhcnMgb2sgZm9yIG5vdy5cclxuICAgICAgICAgIGZvbGRlci5wb3NpdGlvbi5jb3B5KGlucHV0Lm1vdXNlSW50ZXJzZWN0aW9uKTtcclxuXHJcbiAgICAgICAgICBmb2xkZXIudXBkYXRlTWF0cml4KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYoIGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCApe1xyXG4gICAgICAgIGNvbnN0IGhpdE9iamVjdCA9IGlucHV0LmludGVyc2VjdGlvbnNbIDAgXS5vYmplY3Q7XHJcbiAgICAgICAgaWYoIGhpdE9iamVjdCA9PT0gcGFuZWwgKXtcclxuICAgICAgICAgIGhpdE9iamVjdC51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgICAgICAgLy9mYWlsaW5nIHRvIGFjY291bnQgZm9yIHRoZSBwb3NpdGlvbiBub3QgbmVjZXNzYXJpbHkgYmVpbmcgdGhlIHdvcmxkIHBvc2l0aW9uP1xyXG4gICAgICAgICAgdFBvc2l0aW9uLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaGl0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VQbGFuZS5zZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCggaW5wdXQubW91c2VDYW1lcmEuZ2V0V29ybGREaXJlY3Rpb24oIGlucHV0Lm1vdXNlUGxhbmUubm9ybWFsICksIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlUGxhbmUgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuXHJcbiAgICBsZXQgeyBpbnB1dE9iamVjdCwgaW5wdXQgfSA9IHA7XHJcblxyXG4gICAgY29uc3QgZm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoZ3JvdXApO1xyXG4gICAgaWYoIGZvbGRlciA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiggZm9sZGVyLmJlaW5nTW92ZWQgPT09IHRydWUgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgICAgaWYoIGlucHV0LnJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBpbnB1dC5tb3VzZVBsYW5lLCBpbnB1dC5tb3VzZUludGVyc2VjdGlvbiApICl7XHJcbiAgICAgICAgICBjb25zdCBoaXRPYmplY3QgPSBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0O1xyXG4gICAgICAgICAgaWYoIGhpdE9iamVjdCAhPT0gcGFuZWwgKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlucHV0LnNlbGVjdGVkID0gZm9sZGVyO1xyXG5cclxuICAgICAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgaW5wdXQuc2VsZWN0ZWQudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgICAgICAgIHRQb3NpdGlvbi5zZXRGcm9tTWF0cml4UG9zaXRpb24oIGlucHV0LnNlbGVjdGVkLm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICAgICAgaW5wdXQubW91c2VPZmZzZXQuY29weSggaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gKS5zdWIoIHRQb3NpdGlvbiApO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coIGlucHV0Lm1vdXNlT2Zmc2V0ICk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2V7XHJcbiAgICAgIGlmIChmb2xkZXIuZ3JhYkRpc2FibGVkKSByZXR1cm47XHJcbiAgICAgIFxyXG4gICAgICB0ZW1wTWF0cml4LmdldEludmVyc2UoIGlucHV0T2JqZWN0Lm1hdHJpeFdvcmxkICk7XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCB0ZW1wTWF0cml4ICk7XHJcbiAgICAgIGZvbGRlci5tYXRyaXguZGVjb21wb3NlKCBmb2xkZXIucG9zaXRpb24sIGZvbGRlci5xdWF0ZXJuaW9uLCBmb2xkZXIuc2NhbGUgKTtcclxuXHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQgPSBmb2xkZXIucGFyZW50O1xyXG4gICAgICAvL2ZhaWxpbmcgdG8gYWNjb3VudCBmb3IgdGhlIHBvc2l0aW9uIG5vdCBuZWNlc3NhcmlseSBiZWluZyB0aGUgd29ybGQgcG9zaXRpb24/XHJcbiAgICAgIGlucHV0T2JqZWN0LmFkZCggZm9sZGVyICk7IFxyXG4gICAgfVxyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdncmFiYmVkJywgaW5wdXQgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUmVsZWFzZSggcCApe1xyXG5cclxuICAgIGxldCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBnZXRUb3BMZXZlbEZvbGRlcihncm91cCk7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gZmFsc2UgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpbnB1dC5tb3VzZSApe1xyXG4gICAgICBpbnB1dC5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcblxyXG4gICAgICBpZiggZm9sZGVyLm9sZFBhcmVudCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb2xkZXIubWF0cml4LnByZW11bHRpcGx5KCBpbnB1dE9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICBmb2xkZXIubWF0cml4LmRlY29tcG9zZSggZm9sZGVyLnBvc2l0aW9uLCBmb2xkZXIucXVhdGVybmlvbiwgZm9sZGVyLnNjYWxlICk7XHJcbiAgICAgIGZvbGRlci5vbGRQYXJlbnQuYWRkKCBmb2xkZXIgKTtcclxuICAgICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IGZhbHNlO1xyXG5cclxuICAgIGlucHV0LmV2ZW50cy5lbWl0KCAnZ3JhYlJlbGVhc2VkJywgZm9sZGVyICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCJleHBvcnQgY29uc3QgZ3JhYkJhciA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gYGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFBZ0NBWUFBQUNpblg2RUFBQUFDWEJJV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFEc2thVlJZZEZoTlREcGpiMjB1WVdSdlltVXVlRzF3QUFBQUFBQThQM2h3WVdOclpYUWdZbVZuYVc0OUl1Kzd2eUlnYVdROUlsYzFUVEJOY0VObGFHbEllbkpsVTNwT1ZHTjZhMk01WkNJL1BnbzhlRHA0YlhCdFpYUmhJSGh0Ykc1ek9uZzlJbUZrYjJKbE9tNXpPbTFsZEdFdklpQjRPbmh0Y0hSclBTSkJaRzlpWlNCWVRWQWdRMjl5WlNBMUxqWXRZekV6TWlBM09TNHhOVGt5T0RRc0lESXdNVFl2TURRdk1Ua3RNVE02TVRNNk5EQWdJQ0FnSUNBZ0lDSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uaHRjRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3THlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cHdhRzkwYjNOb2IzQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2Y0dodmRHOXphRzl3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwemRFVjJkRDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDNOVWVYQmxMMUpsYzI5MWNtTmxSWFpsYm5Raklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cDBhV1ptUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzUnBabVl2TVM0d0x5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZaWGhwWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOWxlR2xtTHpFdU1DOGlQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rTnlaV0YwYjNKVWIyOXNQa0ZrYjJKbElGQm9iM1J2YzJodmNDQkRReUF5TURFMUxqVWdLRmRwYm1SdmQzTXBQQzk0YlhBNlEzSmxZWFJ2Y2xSdmIydytDaUFnSUNBZ0lDQWdJRHg0YlhBNlEzSmxZWFJsUkdGMFpUNHlNREUyTFRBNUxUSTRWREUyT2pJMU9qTXlMVEEzT2pBd1BDOTRiWEE2UTNKbFlYUmxSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOYjJScFpubEVZWFJsUGpJd01UWXRNRGt0TWpoVU1UWTZNemM2TWpNdE1EYzZNREE4TDNodGNEcE5iMlJwWm5sRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4ZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDR5TURFMkxUQTVMVEk0VkRFMk9qTTNPakl6TFRBM09qQXdQQzk0YlhBNlRXVjBZV1JoZEdGRVlYUmxQZ29nSUNBZ0lDQWdJQ0E4WkdNNlptOXliV0YwUG1sdFlXZGxMM0J1Wnp3dlpHTTZabTl5YldGMFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDR6UEM5d2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBnb2dJQ0FnSUNBZ0lDQThjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1UrYzFKSFFpQkpSVU0yTVRrMk5pMHlMakU4TDNCb2IzUnZjMmh2Y0RwSlEwTlFjbTltYVd4bFBnb2dJQ0FnSUNBZ0lDQThlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENTRiWEF1YVdsa09tRmhZVEZqTVRRekxUVXdabVV0T1RRME15MWhOVGhtTFdFeU0yVmtOVE0zTURkbU1Ed3ZlRzF3VFUwNlNXNXpkR0Z1WTJWSlJENEtJQ0FnSUNBZ0lDQWdQSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUStZV1J2WW1VNlpHOWphV1E2Y0dodmRHOXphRzl3T2pkbE56ZG1ZbVpqTFRnMVpEUXRNVEZsTmkxaFl6aG1MV0ZqTnpVMFpXUTFPRE0zWmp3dmVHMXdUVTA2Ukc5amRXMWxiblJKUkQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRTFOT2s5eWFXZHBibUZzUkc5amRXMWxiblJKUkQ1NGJYQXVaR2xrT21NMVptTTBaR1l5TFRreFkyTXRaVEkwTVMwNFkyVmpMVE16T0RJeVkyUTFaV0ZsT1R3dmVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2U0dsemRHOXllVDRLSUNBZ0lDQWdJQ0FnSUNBZ1BISmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpHWTZiR2tnY21SbU9uQmhjbk5sVkhsd1pUMGlVbVZ6YjNWeVkyVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZZV04wYVc5dVBtTnlaV0YwWldROEwzTjBSWFowT21GamRHbHZiajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbWx1YzNSaGJtTmxTVVErZUcxd0xtbHBaRHBqTldaak5HUm1NaTA1TVdOakxXVXlOREV0T0dObFl5MHpNemd5TW1Oa05XVmhaVGs4TDNOMFJYWjBPbWx1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHAzYUdWdVBqSXdNVFl0TURrdE1qaFVNVFk2TWpVNk16SXRNRGM2TURBOEwzTjBSWFowT25kb1pXNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUGtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTFMalVnS0ZkcGJtUnZkM01wUEM5emRFVjJkRHB6YjJaMGQyRnlaVUZuWlc1MFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBzYVQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kyOXVkbVZ5ZEdWa1BDOXpkRVYyZERwaFkzUnBiMjQrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4emRFVjJkRHB3WVhKaGJXVjBaWEp6UG1aeWIyMGdZWEJ3YkdsallYUnBiMjR2ZG01a0xtRmtiMkpsTG5Cb2IzUnZjMmh2Y0NCMGJ5QnBiV0ZuWlM5d2JtYzhMM04wUlhaME9uQmhjbUZ0WlhSbGNuTStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZjbVJtT214cFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbXhwSUhKa1pqcHdZWEp6WlZSNWNHVTlJbEpsYzI5MWNtTmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbUZqZEdsdmJqNXpZWFpsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPbUZoWVRGak1UUXpMVFV3Wm1VdE9UUTBNeTFoTlRobUxXRXlNMlZrTlRNM01EZG1NRHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB3T1MweU9GUXhOam96TnpveU15MHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHpkRVYyZERwamFHRnVaMlZrUGk4OEwzTjBSWFowT21Ob1lXNW5aV1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Y21SbU9teHBQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwzSmtaanBUWlhFK0NpQWdJQ0FnSUNBZ0lEd3ZlRzF3VFUwNlNHbHpkRzl5ZVQ0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VDNKcFpXNTBZWFJwYjI0K01Ud3ZkR2xtWmpwUGNtbGxiblJoZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNekF3TURBd01DOHhNREF3TUR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K016QXdNREF3TUM4eE1EQXdNRHd2ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK01qd3ZkR2xtWmpwU1pYTnZiSFYwYVc5dVZXNXBkRDRLSUNBZ0lDQWdJQ0FnUEdWNGFXWTZRMjlzYjNKVGNHRmpaVDR4UEM5bGVHbG1Pa052Ykc5eVUzQmhZMlUrQ2lBZ0lDQWdJQ0FnSUR4bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNDJORHd2WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR6TWp3dlpYaHBaanBRYVhobGJGbEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBnb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvOFAzaHdZV05yWlhRZ1pXNWtQU0ozSWo4K09oRjdSd0FBQUNCalNGSk5BQUI2SlFBQWdJTUFBUG4vQUFDQTZRQUFkVEFBQU9wZ0FBQTZtQUFBRjIrU1g4VkdBQUFBbEVsRVFWUjQydXpac1EzQUlBeEVVVHVUWkpSc2t0NUxSRm1DZFRMYXBVS0NCaWpvL0YwaG4yU2tKeElLWEpKbHJzT1NGd0FBQUFCQTZ2S0k2TzdCVW9yWGRadTEvVkVXRVplWmZiTjVtL1phbWpmSytBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQmZ1YVNuYTdpL2RkMW1iWCtVU1RyTjdKN04yN1RYMHJ4UnhnbmdaWWlmSUFBQUFKQzRmZ0FBQVAvL0F3QXVNVlB3MjBoeEN3QUFBQUJKUlU1RXJrSmdnZz09YDtcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0MSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgLy8gdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC41O1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCwgMSwgMSApO1xyXG5cclxuICAgIGNvbnN0IG1lc2ggPSBuZXcgVEhSRUUuTWVzaCggZ2VvbWV0cnksIG1hdGVyaWFsICk7XHJcbiAgICByZXR1cm4gbWVzaDtcclxuICB9XHJcblxyXG59KCkpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25BcnJvdyA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pFNE9qSTFMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG94T0RveU5TMHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG96TURReVlqSTBaUzFpTXpjMkxXSTBOR0l0T0dJNFl5MWxaVEZqWTJJellXVTFNRFU4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TXpBME1tSXlOR1V0WWpNM05pMWlORFJpTFRoaU9HTXRaV1V4WTJOaU0yRmxOVEExUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPak13TkRKaU1qUmxMV0l6TnpZdFlqUTBZaTA0WWpoakxXVmxNV05qWWpOaFpUVXdOVHd2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1VWlsejBBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQUpkU1VSQlZIamE3TjNMY2NKQUVJVGhSdVc3bmNVZVRRaGtRQWlJRE1nSWhVSUljRlFXSmdKODhGS2xvdndBck4yZDZaNDVjWkdBL1Q5dmlZZnR4ZVZ5UVl6dWRMRUVBU0FtQU1RRWdCakplV2wxeHltbE53QUhBTWR4SEh2RnhVOHBEUUNXQUZiak9IN0k3QUNUK084QU5ua2hGT052OGhvYzhwcndBN2lKZngwcEJKUDQxMm1Hb0RNUVh3ckJOL0diSXVpTXhKZEE4RXY4WmdnNlEvR3BFZHdSdndtQ3psaDhTZ1FQeEsrT29NWU9NRHdZbndyQkUvR25DQWJYQVBLVFgvL2pGSnVVVXU4NGZ2OWsvT3VzUy84UWRBYmwzODdlSTRMOG1QY3puS3JvVGxoeUIxak9lQzVYQ0dhTVgySXRxd0ZZQVRpcElTZ1EvNVRYMGhlQS9ONjJGSUpTOFV0K1RsRDBJbEFKZ2NmNFZWNEdLaUR3R3IvVyt3RFVDRHpIcndhQUZZSDMrRlVCc0NGZ2lGOGRBQXNDbHZoTkFIaEh3QlMvR1FDdkNOamlOd1hnRFFGai9PWUF2Q0Jnalc4Q2dIVUV6UEhOQUxDS2dEMitLUURXRUNqRU53ZkFDZ0tWK0NZQlRCRDBBTTYxRVJTSWZ3YlFXNHh2RmtCR2NNdzdRVFVFaGVLdjhuTkJBRENNUURHK2VRQzFFS2pHQjRDRmw3OFJsRkphNHVzWFRGN25qSlJ2ejM1ZUQvRmRBU2lJQUtyeDNRRW9oQUNxOFYxY0ExUzZKcENNN3hLQVFRUnU0N3NGWUFpQjYvaXVBUmhBNEQ2K2V3QU5FVkRFcHdEUUFBRk5mQm9BRlJGUXhhY0NVQUVCWFh3NkFBVVJVTWFuQkZBQUFXMThXZ0F6SXFDT1R3MWdCZ1QwOGVrQlRCRHNuamgweHg1ZkFrQkdNQURZUG5ESU5oK0RBS0NIUUNhK0ZJQTdFVWpGbHdQd0J3SzUrSklBZmtBZ0dSOXcrSld3T2VmNnpXRFYrUElBWXVMZnhnV0FXSUlBRUJNQVlnSkFqT1I4RGdEKzZPemd2NHV5OWdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoKTsgdGV4dHVyZS5uYW1lID0gJ3R0dHQzJ1xyXG4gIHRleHR1cmUuaW1hZ2UgPSBpbWFnZTtcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICAvLyB0ZXh0dXJlLmFuaXNvdHJvcGljXHJcbiAgLy8gdGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoe1xyXG4gICAgLy8gY29sb3I6IDB4ZmYwMDAwLFxyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgbWFwOiB0ZXh0dXJlXHJcbiAgfSk7XHJcbiAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMC4yO1xyXG5cclxuICByZXR1cm4gZnVuY3Rpb24oKXtcclxuICAgIGNvbnN0IGggPSAwLjM7XHJcbiAgICBjb25zdCBnZW8gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggaW1hZ2Uud2lkdGggLyAxMDAwICogaCwgaW1hZ2UuaGVpZ2h0IC8gMTAwMCAqIGgsIDEsIDEgKTtcclxuICAgIGdlby50cmFuc2xhdGUoIC0wLjAwNSwgLTAuMDA0LCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IGNoZWNrbWFyayA9IChmdW5jdGlvbigpe1xyXG4gIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XHJcbiAgaW1hZ2Uuc3JjID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSUFBQUFCQUNBWUFBQURTMW45L0FBQUFDWEJJV1hNQUFDeExBQUFzU3dHbFBaYXBBQUE0SzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpUVdSdlltVWdXRTFRSUVOdmNtVWdOUzQyTFdNeE16SWdOemt1TVRVNU1qZzBMQ0F5TURFMkx6QTBMekU1TFRFek9qRXpPalF3SUNBZ0lDQWdJQ0FpUGdvZ0lDQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQZ29nSUNBZ0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJZ29nSUNBZ0lDQWdJQ0FnSUNCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlDaUFnSUNBZ0lDQWdJQ0FnSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02Y0dodmRHOXphRzl3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzQm9iM1J2YzJodmNDOHhMakF2SWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SUtJQ0FnSUNBZ0lDQWdJQ0FnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBEY21WaGRHOXlWRzl2YkQ1QlpHOWlaU0JRYUc5MGIzTm9iM0FnUTBNZ01qQXhOUzQxSUNoWGFXNWtiM2R6S1R3dmVHMXdPa055WldGMGIzSlViMjlzUGdvZ0lDQWdJQ0FnSUNBOGVHMXdPa055WldGMFpVUmhkR1UrTWpBeE5pMHhNQzB4T0ZReE56b3pNem93Tmkwd056b3dNRHd2ZUcxd09rTnlaV0YwWlVSaGRHVStDaUFnSUNBZ0lDQWdJRHg0YlhBNlRXOWthV1o1UkdGMFpUNHlNREUyTFRFd0xUSXdWREl4T2pNek9qVXpMVEEzT2pBd1BDOTRiWEE2VFc5a2FXWjVSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BIaHRjRHBOWlhSaFpHRjBZVVJoZEdVK01qQXhOaTB4TUMweU1GUXlNVG96TXpvMU15MHdOem93TUR3dmVHMXdPazFsZEdGa1lYUmhSR0YwWlQ0S0lDQWdJQ0FnSUNBZ1BHUmpPbVp2Y20xaGRENXBiV0ZuWlM5d2JtYzhMMlJqT21admNtMWhkRDRLSUNBZ0lDQWdJQ0FnUEhCb2IzUnZjMmh2Y0RwRGIyeHZjazF2WkdVK016d3ZjR2h2ZEc5emFHOXdPa052Ykc5eVRXOWtaVDRLSUNBZ0lDQWdJQ0FnUEhodGNFMU5Pa2x1YzNSaGJtTmxTVVErZUcxd0xtbHBaRG8yT0RjeFlUazVZeTB6TmpFNUxUbGtOR0V0T0Rka05pMHdZV0U1WVRSaU5XVTRNamM4TDNodGNFMU5Pa2x1YzNSaGJtTmxTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBFYjJOMWJXVnVkRWxFUGdvZ0lDQWdJQ0FnSUNBOGVHMXdUVTA2VDNKcFoybHVZV3hFYjJOMWJXVnVkRWxFUG5odGNDNWthV1E2TmpnM01XRTVPV010TXpZeE9TMDVaRFJoTFRnM1pEWXRNR0ZoT1dFMFlqVmxPREkzUEM5NGJYQk5UVHBQY21sbmFXNWhiRVJ2WTNWdFpXNTBTVVErQ2lBZ0lDQWdJQ0FnSUR4NGJYQk5UVHBJYVhOMGIzSjVQZ29nSUNBZ0lDQWdJQ0FnSUNBOGNtUm1PbE5sY1Q0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhKa1pqcHNhU0J5WkdZNmNHRnljMlZVZVhCbFBTSlNaWE52ZFhKalpTSStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh6ZEVWMmREcGhZM1JwYjI0K1kzSmxZWFJsWkR3dmMzUkZkblE2WVdOMGFXOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDU0YlhBdWFXbGtPalk0TnpGaE9UbGpMVE0yTVRrdE9XUTBZUzA0TjJRMkxUQmhZVGxoTkdJMVpUZ3lOend2YzNSRmRuUTZhVzV6ZEdGdVkyVkpSRDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEhOMFJYWjBPbmRvWlc0K01qQXhOaTB4TUMweE9GUXhOem96TXpvd05pMHdOem93TUR3dmMzUkZkblE2ZDJobGJqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblErUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UVXVOU0FvVjJsdVpHOTNjeWs4TDNOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5RK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR3dmNtUm1PbXhwUGdvZ0lDQWdJQ0FnSUNBZ0lDQThMM0prWmpwVFpYRStDaUFnSUNBZ0lDQWdJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNlQzSnBaVzUwWVhScGIyNCtNVHd2ZEdsbVpqcFBjbWxsYm5SaGRHbHZiajRLSUNBZ0lDQWdJQ0FnUEhScFptWTZXRkpsYzI5c2RYUnBiMjQrTWpnNE1EQXdNQzh4TURBd01Ed3ZkR2xtWmpwWVVtVnpiMngxZEdsdmJqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldWSmxjMjlzZFhScGIyNCtNamc0TURBd01DOHhNREF3TUR3dmRHbG1aanBaVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStNand2ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0Mk5UVXpOVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01USTRQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQalkwUEM5bGVHbG1PbEJwZUdWc1dVUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0NpQWdJRHd2Y21SbU9sSkVSajRLUEM5NE9uaHRjRzFsZEdFK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnQ2p3L2VIQmhZMnRsZENCbGJtUTlJbmNpUHo1ejlSVDNBQUFBSUdOSVVrMEFBSG9sQUFDQWd3QUErZjhBQUlEcEFBQjFNQUFBNm1BQUFEcVlBQUFYYjVKZnhVWUFBQVR0U1VSQlZIamE3SnpiYjVSRkdNWi8yeGJDdlZoQVNFeFVpSTE0NHcwaFF0SEVHckhnSVNxZ042S2d0TllXQWIwdzBXbzFYcXJiUGJTbG9rWVN4Zk1oZW1YL0FhN3dHQVZxOFhUcDMwRFhpNW1KbTBhMnU5djMvYjZaMlhsdWRyT0hkdy9QTXpQUCs3NHpYNkZXcXlHRmdZRUJFbHBHRC9BZWNDdHdCL0RiY20rWW01c1QrL0N1OVAvbmltNmdDRHdDWEF0OERWeVg1UmRJQXNnUEJhQUVqTlE5ZGlQd0ZiQTVDU0IrVEFGUC9jL2pXNEhQZ0w0a2dIZ3hDd3cxZVA1bTRHTjdtd1FRRWJvcytVODA4ZHF0d0VmMk5na2dFcmMvMHlUNURuMTJPZGlTQkJBKythVVd5WGZZQW53RFhKOEVFRzZxTndrTXJ5REdacHNpM3BBRUVCNnFWM0Q3cmFJUCtOS21pa2tBZ2VBdDRJaGd2SnZzVEpBRTREa0t3Q25nc0VMc3Mwa0EvcS81czhBaGhkalR3RUZwZDVvZ1MzNVZhZVRQQWs4RGkwa0EvcEpmRWw3ekhVN1N1SEtZbGdBUDF2eXlrTnRmaWhrdDhwTUFaRWthVm9oYlZZcWJCQ0NJVThDVENuRkx3SmoybDA4Q1dObWEvN2FTMjY4Q3g2UU5YeEtBckhtZUJoNVhXazdHc2lBL1R3R01ZZmEvaFVwK21mWWFPODI0L2VHc3lNOUxBQzlnbWlQdkF6c0RJNy9McnMxRFNpTi9LSThmbENYR2dWZnQvVjdnRExBcklBRk1oK3IyZlJEQVM4REVrc2MyQWg4Qy9SM3M5c3ZBYUo1VFdsYmt2M3lGNTlaamRyMXM5M2phMTNMN0ZldjJhekVMWUx3QitRNXJNYjN1YlI0YXZwTktibjhhZUFhNG5MZTZ0UTNmUkpPdjdRVys4R2dtNkxFalZLT3hNNE01RDNBNTd4K3BLWUFYNnd4ZnM5Z0FmQUxzOElCOHJjYU9LeHZYZkZDNWxnREdnVmZhZks4emhydHkvRSswWEhrbEw3ZWZwUUFtV3BqMmx4UEJiVG44SjdQbzFmWkg4UXpTQW5qTmpuNEpyTWVjanNtcVdGUUEzbFZ5K3lYcjlvbGRBSGNLeDdzYStEd0RZOWhqOC95RGlxbmVZaWNJNEZIZ1IrR1lhNVd6QTgzR3poUncxRmZ5TlFUd0MzQ1B2WlhFT3VCVHpFVVVKTEVxZzFUUFcvSzFUT0Nmd0NCd1VUanVOY2lXamJzeFpWaU5WQyszMnI0dmFlQWZ3RjNBZ25EY1RWWUV0d3VOVUEzeXk1amR1M1N5QUFCK0IzWXJMQWNiQk9vRTd5aE4rNU4yelNjSndHQWVlQUQ0VGpodUw2YUIxS29uNkxia1A2WTA4by9qU1lYUEZ3RUFuQWNlVmhEQlZTMW1CNjZ4bzBIK0ZLYXhzMGhneUtvZGZBRjRFUGhKcVU2dzNFeXd5aHF6UTBya2o0UklmcFlDQUxnRTdMRXpnaVJjeGJDL3djaXZvRlBlZGVRSGk2eTNoUDFsamVHOFVvcTRORHNvWUlvOFdqdDVnaVkvRHdIVXA0aS9LbVFIWitwRVVNRHM1TkZ3KzBVeU9MUVJxd0RjY25BdjhMMXczSFhBYVpzaXZxNWsrSXJBQ1NKQm5xZUQ1NEVEd0FmQUxZSnhOd0hmS3BteXNpVi9NUllCNUgweTZBS3dIL2hCT081cVlJMkM0VHNhRS9rK0NBRE0xYkgzSWw4eGxFVFZHcjRha2NHWHM0Ri9BM2ZiR2NFM1ZBaW90aCtxQU1CMEVYZDdKb0pKUE56R0Zhc0F3RFNRQnBIZlZOS3UyejlHNVBEeGVQZ0M4QkJ3THVlUmZ5TEdOVDhFQVlEWlRISUErUVpTczJ2KzhkamNmbWdDY0hXQys1RnZJQzNuOWtjN2hYemZCZUNNNFI3a3k4WWQ1L1pERlFEODEwQzZxUGdaMGJ2OWtBVlFueUpxRkl2ZXhHem1JQW5BYjF3QzdoTTJoa1hnV1RvWW9WMGx6RFdRSkZMRTZCbzduU0FBbHlMdVkyVU5wQW9aWG9vdENVQWVDNWdHMHM5dGtqOUtRdEFDQU5OQUdxUzFQWWFsUkg0OEFuQXBZclBieTRvRWRtZ2pDYUQ1RkhFdmpiZVh2WUVwN3laRUtBRG5DZlpiRWZ3RFBJODVMK0RJZjQ0T2FPeTBnMzhIQU0vZTdndUlSeDk0QUFBQUFFbEZUa1N1UW1DQyc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDMnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBkb2NrID0gKGZ1bmN0aW9uKCl7XHJcbiAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICBpbWFnZS5zcmMgPSAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQkFNQUFBQXhFSHo0QUFBQkcybFVXSFJZVFV3NlkyOXRMbUZrYjJKbExuaHRjQUFBQUFBQVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0S1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVdFMVFJRU52Y21VZ05TNDFMakFpUGdvZ1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNEtJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWk4K0NpQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdvOFAzaHdZV05yWlhRZ1pXNWtQU0p5SWo4K0drcXI2Z0FBQVlGcFEwTlFjMUpIUWlCSlJVTTJNVGsyTmkweUxqRUFBQ2lSZFpIUEswUlJGTWMvWm9nTURiR3dzSmcwMkJneGFtS2pqSVNhTkkxUmZtMW1udm1oNW8zWGUwK2FiSld0b3NUR3J3Vi9BVnRsclJTUmtvV1ZOYkZCejNtZW1rbm0zTTQ5bi91OTk1enVQUmRjOFp5aUdwVTlvT1pOUFRZYTlrM1B6UHFxbjZpbENnK05kQ1lVUXh1S1JpT1V0ZmRiS3V4NEhiQnJsVC8zcjNrV1VvWUNGVFhDZzRxbW04Smp3cEVWVTdONVM3aFp5U1lXaEUrRXUzUzVvUENOclNjZGZyWTU0L0NuelhvOE5neXVCbUZmcG9TVEpheGtkVlZZWG81ZnpTMHJ2L2V4WDFLWHlrOU5TbXdUYjhVZ3hpaGhmSXd6d2pBaGVobVFPVVNBSU4yeW9reCt6MC8rQkV1U3E4aXNVVUJua1F4WlRMcEVYWmJxS1lscDBWTXljaFRzL3YvdHE1SHVDenJWNjhKUTlXaFpyKzFRdlFsZkc1YjFjV0JaWDRmZ2ZvRHpmREYvYVIvNjMwVGZLR3IrUGZDdXdlbEZVVXR1dzlrNnROeHJDVDN4STduRlhlazB2QnhEL1F3MFhVSHRuTk96MzMyTzdpQytLbDkxQ1R1NzBDSG52ZlBmSXlobng5aEFVVTBBQUFBU1VFeFVSZno4L0ZWVlZWMWRYZi8vLzM5L2Z5WkZ5Yitoak1jQUFBQUdkRkpPVS8vLy8vLy9BTE8vcEw4QUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYW5CZ0FBQUVFU1VSQlZHaUI3ZGhCRG9Nd0RFUlI3alRpSkNQdWY1V3VtcGhWeFh5a1ZKR3pJcEo1Y2dza2RvNExqcU9CclFBOUhBMDAwTUQrd1BWanZBV2NGQmp6RUJnSnBNQ2NaOEJNSUFUS1BBSktBaGxRNXdud1RjQXBNQzVEWUNTUUF2ZXI1OEJNSUFUS0RSRlFFc2lBR2s4QVUwQVFNQVVFQVZOQUVEQUZCQUZUUUJBd0JRUUJVMEFRTUFVRUFWTkFFREFGQkFGVFFCRHdjZ0QvQlA0bjRzZklYeVQ4S3ZPUENYL09mRUhCU3hwZlZQR3l6amNXdkxYeHpSVnY3N3pBd0NVT0w3SndtY2NMVFZ6cThtSTdML2ZQa2tJRTRKYUhOMTI0N2VPTkoyNTllZk45aTFsekFGR0RGaDNDbEtoVkIxRXpiTmxoM0lqN3d4UE5CaHBvWURXUWpnYTJBRDVTL0N5SXZibXE3Z0FBQUFCSlJVNUVya0pnZ2c9PSc7XHJcblxyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZSgpOyB0ZXh0dXJlLm5hbWUgPSAndHR0dDQnXHJcbiAgdGV4dHVyZS5pbWFnZSA9IGltYWdlO1xyXG4gIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyO1xyXG4gIHRleHR1cmUubWFnRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xyXG4gIC8vIHRleHR1cmUuYW5pc290cm9waWNcclxuICAvLyB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAvLyBjb2xvcjogMHhmZjAwMDAsXHJcbiAgICBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlLFxyXG4gICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICBtYXA6IHRleHR1cmVcclxuICB9KTtcclxuICBtYXRlcmlhbC5hbHBoYVRlc3QgPSAwLjI7XHJcblxyXG4gIHJldHVybiBmdW5jdGlvbihoID0gMC40KXtcclxuICAgIC8vY29uc3QgaCA9IDAuNDtcclxuICAgIGNvbnN0IGdlbyA9IG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KCBpbWFnZS53aWR0aCAvIDEwMDAgKiBoLCBpbWFnZS5oZWlnaHQgLyAxMDAwICogaCwgMSwgMSApO1xyXG4gICAgZ2VvLnRyYW5zbGF0ZSggMC4wMjUgKiBoLzAuNCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIG1hdGVyaWFsICk7XHJcbiAgfVxyXG59KCkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCB1bmRvY2sgPSAoZnVuY3Rpb24oKXtcclxuICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gIGltYWdlLnNyYyA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FCQU1BQUFBeEVIejRBQUFCRzJsVVdIUllUVXc2WTI5dExtRmtiMkpsTG5odGNBQUFBQUFBUEQ5NGNHRmphMlYwSUdKbFoybHVQU0x2dTc4aUlHbGtQU0pYTlUwd1RYQkRaV2hwU0hweVpWTjZUbFJqZW10ak9XUWlQejRLUEhnNmVHMXdiV1YwWVNCNGJXeHVjenA0UFNKaFpHOWlaVHB1Y3pwdFpYUmhMeUlnZURwNGJYQjBhejBpV0UxUUlFTnZjbVVnTlM0MUxqQWlQZ29nUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQThjbVJtT2tSbGMyTnlhWEIwYVc5dUlISmtaanBoWW05MWREMGlJaTgrQ2lBOEwzSmtaanBTUkVZK0Nqd3ZlRHA0YlhCdFpYUmhQZ284UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrR2txcjZnQUFBWUZwUTBOUWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFQUFDaVJkWkhQSzBSUkZNYy9ab2dNRGJHd3NKZzAyQmd4YW1LampJU2FOSTFSZm0xbW52bWg1bzNYZTArYWJKV3Rvc1RHcndWL0FWdGxyUlNSa29XVk5iRkJ6M21lbWtubTNNNDluL3U5OTV6dVBSZGM4WnlpR3BVOW9PWk5QVFlhOWszUHpQcXFuNmlsQ2crTmRDWVVReHVLUmlPVXRmZGJLdXg0SGJCcmxULzNyM2tXVW9ZQ0ZUWENnNHFtbThKandwRVZVN041UzdoWnlTWVdoRStFdTNTNW9QQ05yU2NkZnJZNTQvQ256WG84Tmd5dUJtRmZwb1NUSmF4a2RWVllYbzVmelMwcnYvZXhYMUtYeWs5TlNtd1RiOFVneGloaGZJd3p3akFoZWhtUU9VU0FJTjJ5b2t4K3owLytCRXVTcThpc1VVQm5rUXhaVExwRVhaYnFLWWxwMFZNeWNoVHMvdi90cTVIdUN6clY2OEpROVdoWnIrMVF2UWxmRzViMWNXQlpYNGZnZm9EemZERi9hUi82MzBUZktHcitQZkN1d2VsRlVVdHV3OWs2dE54ckNUM3hJN25GWGVrMHZCeEQvUXcwWFVIdG5OT3ozMzJPN2lDK0tsOTFDVHU3MENIbnZmUGZJeWhueDloQVVVMEFBQUFTVUV4VVJmejgvRlZWVlYxZFhmLy8vMzkvZnlaRnliK2hqTWNBQUFBR2RGSk9VLy8vLy8vL0FMTy9wTDhBQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBRVBTVVJCVkdpQjdkZ3hDc1F3REFUQS9Fbm9KVUwvLzhwVnNXV2xPTHdMVVRCeUZmYkVzTmM0ZGk0bjE5WEFVWUJzcmdZYWFPQjh3UDhzR2pBV2NCb3dGbkFhTUJad0dqQVdjQmpRVUFFQ0pBeGpRS2lBQWZKODJnUm1CUkNZRlZCZ1ZFQ0J4Ky9iZ0tac0c4Z0QrMENxc0Era0NRQllLd0RBT29JQVN3VUVXR1lnSUZhQWdEaUVBYUVDQm9RcEVKZ1ZRR0NPb2NDb2dBTHdqdlNvQUFQM0lBNG9Dd2dOS0FzSURXZzV3UDRGWlFFbkFXVUJKd0ZsZ1RzcjIxQkdWcldwenF6b3hSS3ltcGRyekVvT0dFdFdjY2hhczRLRFpzcmVQMnpuN1BVTHgzZ0VnVkdnNnRvM0N4UmRmVU9Cb3V0L0tGRDZDY1JZUUVqQVdFQkl3RmdnejMzd2kyWUREVFJRRGFDcmdTT0FIOEg4S3FnZ1lwQVVBQUFBQUVsRlRrU3VRbUNDJztcclxuXHJcbiAgY29uc3QgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlKCk7IHRleHR1cmUubmFtZSA9ICd0dHR0NSdcclxuICB0ZXh0dXJlLmltYWdlID0gaW1hZ2U7XHJcbiAgdGV4dHVyZS5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgdGV4dHVyZS5taW5GaWx0ZXIgPSBUSFJFRS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXI7XHJcbiAgdGV4dHVyZS5tYWdGaWx0ZXIgPSBUSFJFRS5MaW5lYXJGaWx0ZXI7XHJcbiAgLy8gdGV4dHVyZS5hbmlzb3Ryb3BpY1xyXG4gIC8vIHRleHR1cmUuZ2VuZXJhdGVNaXBtYXBzID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtcclxuICAgIC8vIGNvbG9yOiAweGZmMDAwMCxcclxuICAgIHNpZGU6IFRIUkVFLkRvdWJsZVNpZGUsXHJcbiAgICB0cmFuc3BhcmVudDogdHJ1ZSxcclxuICAgIG1hcDogdGV4dHVyZVxyXG4gIH0pO1xyXG4gIG1hdGVyaWFsLmFscGhhVGVzdCA9IDAuMjtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGggPSAwLjQpe1xyXG4gICAgLy9jb25zdCBoID0gMC40O1xyXG4gICAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkoIGltYWdlLndpZHRoIC8gMTAwMCAqIGgsIGltYWdlLmhlaWdodCAvIDEwMDAgKiBoLCAxLCAxICk7XHJcbiAgICBnZW8udHJhbnNsYXRlKCAwLjAyNSAqIGgvMC40LCAwLCAwICk7XHJcbiAgICByZXR1cm4gbmV3IFRIUkVFLk1lc2goIGdlbywgbWF0ZXJpYWwgKTtcclxuICB9XHJcbn0oKSk7XHJcblxyXG4iLCIvKiogXHJcbiAqIEJpZyBidXR0b24gd2l0aCBhbiBpbWFnZSBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEFsc28gdXNhYmxlIGFzIGFuICd4eSBjb250cm9sbGVyJyB2aWEgYWRkWFlDb250cm9sbGVyIG1ldGhvZC5cclxuICogXHJcbiAqIEFQSSBzdWJqZWN0IHRvIGNoYW5nZS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGJ1dHRvbi5qcyBpbiBpdHMgZW50aXJldHkuXHJcbiAqIFxyXG4gKiBUT0RPOiBub3QganVzdCBzaW1wbGUgJ2JhbmcnIGZ1bmN0aW9uIGJ1dCBjYWxsYmFja3MgZm9yIGhvdmVyIC8gZXRjLlxyXG4gKiBcclxuICogXHJcbiAqIENvcHlyaWdodCAgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBpbmMuIDIwMTYgLyBQZXRlciBUb2RkLCAyMDE3XHJcbiAqIFxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBHcmFiIGZyb20gJy4vZ3JhYic7XHJcbmltcG9ydCB7aXNDb250cm9sbGVyVmlzaWJsZX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVJbWFnZUJ1dHRvbigge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdCxcclxuICBwcm9wZXJ0eU5hbWUgPSAndW5kZWZpbmVkJyxcclxuICBmdW5jID0gdW5kZWZpbmVkLFxyXG4gIHByZXNzaW5nID0gdW5kZWZpbmVkLFxyXG4gIGltYWdlID0gXCJ0ZXh0dXJlcy9zcG90bGlnaHQuanBnXCIsIC8vVE9ETyBiZXR0ZXIgZGVmYXVsdFxyXG4gIHdpZGUgPSBmYWxzZSxcclxuICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICBoZWlnaHQsXHJcbiAgZGVwdGggPSBMYXlvdXQuUEFORUxfREVQVEgsXHJcbiAgY2hhbmdlQ29sb3JPbkhvdmVyID0gdHJ1ZSwgLy9xdWljayBoYWNrOiBjb2xvciBwaWNrZXIgd2FudHMgdGhpcyB0byBiZSBmYWxzZVxyXG4gIGJ1dHRvbkRlcHRoID0gTGF5b3V0LkJVVFRPTl9ERVBUSFxyXG59ID0ge30gKXtcclxuXHJcbiAgZnVuY3Rpb24gYXBwbHlJbWFnZVRvTWF0ZXJpYWwoaW1hZ2UsIHRhcmdldE1hdGVyaWFsKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAvL1RPRE8gY2FjaGUuICBEb2VzIFRleHR1cmVMb2FkZXIgYWxyZWFkeSBjYWNoZT9cclxuICAgICAgICBuZXcgVEhSRUUuVGV4dHVyZUxvYWRlcigpLmxvYWQoaW1hZ2UsICh0ZXh0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRleHR1cmUud3JhcFMgPSB0ZXh0dXJlLndyYXBUID0gVEhSRUUuQ2xhbXBUb0VkZ2VXcmFwcGluZztcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gdGV4dHVyZTtcclxuICAgICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGltYWdlLmlzVGV4dHVyZSkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2U7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNXZWJHTFJlbmRlclRhcmdldCkge1xyXG4gICAgICAgICAgdGFyZ2V0TWF0ZXJpYWwubWFwID0gaW1hZ2UudGV4dHVyZTtcclxuICAgICAgfSBlbHNlIHRocm93IFwibm90IHN1cmUgaG93IHRvIGludGVycHJldCBpbWFnZSBcIiArIGltYWdlO1xyXG4gICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAgLy9YWFggbWFnaWMgbnVtYmVycy4uLlxyXG4gIGlmICghaGVpZ2h0KSBoZWlnaHQgPSBMYXlvdXQuUEFORUxfV0lEVEggICogKHdpZGUgPyAwLjk0IDogMC4yNSk7XHJcbiAgXHJcbiAgY29uc3QgQlVUVE9OX1dJRFRIID0gd2lkdGggKiAod2lkZSA/IDAuOTQgOiAwLjI1KSAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgY29uc3QgQlVUVE9OX0RFUFRIID0gYnV0dG9uRGVwdGg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25cIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuXHJcbiAgY29uc3QgcGFuZWwgPSBMYXlvdXQuY3JlYXRlUGFuZWwoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICk7XHJcbiAgZ3JvdXAuYWRkKCBwYW5lbCApO1xyXG5cclxuICAvLyAgYmFzZSBjaGVja2JveFxyXG4gIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCAxLCAxICk7XHJcbiAgcmVjdC50cmFuc2xhdGUoIEJVVFRPTl9XSURUSCAqIDAuNSwgMCwgQlVUVE9OX0RFUFRIICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcbiAgaWYgKCF3aWRlKSBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICBlbHNlIHtcclxuICAgIGhpdHNjYW5Wb2x1bWUucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTiAqIDAuNzU7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnkgPSAwLjAxOyAvL1hYWCBtYWdpYyBudW1iZXJcclxuICB9XHJcblxyXG4gIHZhciBtYXRlcmlhbDtcclxuICBpZiAoaW1hZ2UuaXNNYXRlcmlhbCkge1xyXG4gICAgbWF0ZXJpYWwgPSBpbWFnZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIG1hdGVyaWFsLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuICAgIGFwcGx5SW1hZ2VUb01hdGVyaWFsKGltYWdlLCBtYXRlcmlhbCk7XHJcbiAgfVxyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAvL2J1dHRvbiBsYWJlbCByZW1vdmVkOyBtaWdodCB3YW50IG9wdGlvbnMgbGlrZSBhIGhvdmVyIGxhYmVsIGluIGZ1dHVyZS5cclxuXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcbiAgaWYgKHdpZGUpIGRlc2NyaXB0b3JMYWJlbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfQlVUVE9OICk7XHJcbiAgY29udHJvbGxlcklELnBvc2l0aW9uLnogPSBkZXB0aDtcclxuXHJcbiAgcGFuZWwuYWRkKCBkZXNjcmlwdG9yTGFiZWwsIGhpdHNjYW5Wb2x1bWUsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgLy9UT0RPOiBkcmFnIGFuZCBob3ZlclxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ2hvdmVyaW5nJywgaGFuZGxlSG92ZXIgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcbiAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAncHJlc3NpbmcnLCBoYW5kbGVQcmVzc2luZyApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcbiAgdXBkYXRlVmlldygpO1xyXG5cclxuICBsZXQgaG92ZXJGdW5jID0gdW5kZWZpbmVkO1xyXG4gIC8vIEkgbWlnaHQgeWV0IGRlY2lkZSB0byBjaGFuZ2UgdGhpcyBpbnRlcmZhY2UuXHJcbiAgLy8gbWlnaHQgdXNlIGEgZGlmZmVyZW50IG5hbWUsIG1pZ2h0IHdhbnQgdG8gYWRkIGxpc3RlbmVycyB0byBldmVudFxyXG4gIC8vIHJhdGhlciB0aGFuIGp1c3Qgc2V0IGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gIGdyb3VwLm9uSG92ZXIgPSBmID0+IHtcclxuICAgIGhvdmVyRnVuYyA9IGY7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIGdyb3VwLm9uUHJlc3NpbmcgPSBmID0+IHtcclxuICAgIHByZXNzaW5nID0gZjtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9XHJcbiAgZnVuY3Rpb24gaGFuZGxlSG92ZXIoIHAgKXtcclxuICAgIGlmKCAhaXNDb250cm9sbGVyVmlzaWJsZShncm91cCkgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHAubG9jYWxQb2ludCA9IGdldE5vcm1hbGlzZWRMb2NhbENvb3JkaW5hdGVzKHAucG9pbnQpO1xyXG4gICAgaWYgKGhvdmVyRnVuYykgaG92ZXJGdW5jKHApO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBoYW5kbGVPblByZXNzKCBwICl7XHJcbiAgICAvL2l0IHNob3VsZCBiZSB0aGF0IHRoZSBjaGVja3MgaW4gaW5kZXguanMgbWVhbiB0aGF0IG1ldGhvZHMgZG9uJ3QgZ2V0IGNhbGxlZCBvbiBpbnZpc2libGVcclxuICAgIC8vb2JqZWN0cywgcmVuZGVyaW5nIHRoZXNlIHRlc3RzIHJlZHVuZGFudC4uLiBob3dldmVyLCB0aGF0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHRoZSBjYXNlLlxyXG4gICAgLy9leHBlcmllbmNlZCBzb21lIGJ1Z3MgcGFydGljdWxhcmx5IHdpdGggJ21vZGFsIGVkaXRvcicgdHlwZSBwYW5lbHMuXHJcbiAgICAvL1RPRE86IGVpdGhlciBtYWtlIHN1cmUgaW52aXNpYmxlIG9iamVjdHMgYXJlbid0IGNhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2UsXHJcbiAgICAvL29yIG1ha2Ugc3VyZSBhbGwgdHlwZXMgb2Ygb2JqZWN0IGRvIHRoaXMgbW9yZSB0aG9yb3VnaCB2aXNpYmlsaXR5IGNoZWNrLi4uXHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwLmxvY2FsUG9pbnQgPSBnZXROb3JtYWxpc2VkTG9jYWxDb29yZGluYXRlcyhwLnBvaW50KTtcclxuICAgIGlmIChvYmplY3QpIG9iamVjdFsgcHJvcGVydHlOYW1lIF0ocCk7XHJcbiAgICBpZiAoZnVuYykgZnVuYyhwKTtcclxuXHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjE7XHJcblxyXG4gICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9jb21wdXRlIHggJiB5IGFzIG5vcm1hbGlzZWQgY29vcmRpbmF0ZXMgZnJvbSBwLnBvaW50XHJcbiAgLy9jb3VsZCBjb25zaWRlciBtb3ZpbmcgdGhpcyBjb21wdXRhdGlvbiBpbnRvIGludGVyYWN0aW9uLmpzIHBlcmZvcm1TdGF0ZUV2ZW50cygpXHJcbiAgZnVuY3Rpb24gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocG9pbnQpIHtcclxuICAgIGNvbnN0IHAgPSBoaXRzY2FuVm9sdW1lLndvcmxkVG9Mb2NhbChwb2ludCk7XHJcbiAgICBwLnggLz0gQlVUVE9OX1dJRFRIO1xyXG4gICAgcC55IC89IEJVVFRPTl9IRUlHSFQ7XHJcbiAgICBwLnkgKz0gMC41O1xyXG4gICAgcC54ID0gTWF0aC5tYXgoTWF0aC5taW4ocC54LCAxKSwgMCk7XHJcbiAgICBwLnkgPSBNYXRoLm1heChNYXRoLm1pbihwLnksIDEpLCAwKTtcclxuICAgIHJldHVybiBwO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlUHJlc3NpbmcoIHAgKSB7XHJcbiAgICBpZiggIWlzQ29udHJvbGxlclZpc2libGUoZ3JvdXApICl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcC5sb2NhbFBvaW50ID0gZ2V0Tm9ybWFsaXNlZExvY2FsQ29vcmRpbmF0ZXMocC5wb2ludCk7XHJcbiAgICAvL2NvbnNvbGUubG9nKGBwcmVzc2luZyBhdCAoJHtwb2ludC54fSwgJHtwb2ludC55fSlgKTsgLy9maXJzdCBpbnN0YW5jZSBvZiAncHJlc3NpbmcnIGlzIGFsd2F5cyBhdCAoMSwgMSlcclxuICAgIC8vbmIsIGxpa2VseSB0byBuZWVkIGEgZGlmZmVyZW50IHN0cmF0ZWd5IGZvciBkdWFsIHdpZWxkaW5nXHJcbiAgICBpZiAocHJlc3NpbmcpIHByZXNzaW5nKHApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25SZWxlYXNlKCl7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcbiAgICBpZiAoIW1hdGVyaWFsLmNvbG9yKSByZXR1cm47XHJcbiAgICBpZiggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSApe1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4RkZGRkZGICk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBpZiAoY2hhbmdlQ29sb3JPbkhvdmVyKSBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIDB4Q0NDQ0NDICk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICBncm91cC5oaXRzY2FuID0gWyBoaXRzY2FuVm9sdW1lLCBwYW5lbCBdO1xyXG5cclxuICBjb25zdCBncmFiSW50ZXJhY3Rpb24gPSBHcmFiLmNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSApO1xyXG5cclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKiogXHJcbiAqIEdyaWQgb2YgYnV0dG9ucyB3aXRoIGltYWdlcyBvbiAod2hpY2ggbWlnaHQgY29tZSBmcm9tIGEgZmlsZSBvciBleGlzdGluZyB0ZXh0dXJlLFxyXG4gKiB0aGUgdGV4dHVyZSBtaWdodCBiZSBmcm9tIGEgUmVuZGVyVGFyZ2V0Li4uKS5cclxuICogXHJcbiAqIEknZCBwdXQgdGhpcyBtb3JlIHNlcGFyYXRlIGZyb20gdGhlIGRhdGd1aSBtb2R1bGVzIGJ1dCBuZWVkIHRvIHRoaW5rIGEgbGl0dGxlXHJcbiAqIGJpdCBhYm91dCBob3cgdG8gc3RydWN0dXJlIHRoYXQgZXRjLiAgVmVyeSB1bi1EUlksIGJ1dCBJJ20gc3RhcnRpbmcgYnkganVzdFxyXG4gKiBjb3B5aW5nIGV4aXN0aW5nIGltYWdlYnV0dG9uLmpzIGluIGl0cyBlbnRpcmV0eS5cclxuICogXHJcbiAqIFRPRE86IG5vdCBqdXN0IHNpbXBsZSAnYmFuZycgZnVuY3Rpb24gYnV0IGNhbGxiYWNrcyBmb3IgaG92ZXIgLyBldGMuXHJcbiAqIFxyXG4gKiBcclxuICogQ29weXJpZ2h0ICBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIGluYy4gMjAxNiAvIFBldGVyIFRvZGQsIDIwMTdcclxuICogXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge2NyZWF0ZVRleHRMYWJlbCwgY3JlYXRlVG9vbFRpcH0gZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0IHtzZXRWaXNpYmlsaXR5fSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUltYWdlQnV0dG9uR3JpZCgge1xyXG4gIHRleHRDcmVhdG9yLFxyXG4gIG9iamVjdHMsIC8vIGFycmF5IG9mIHtmdW5jLCBpbWFnZSB8IHRleHQsIHRpcChvcHRpb25hbCksIHJlbGVhc2Uob3B0aW9uYWwpfVxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIHJvd0hlaWdodCxcclxuICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSCxcclxuICBjb2x1bW5zID0gNFxyXG59ID0ge30gKXtcclxuICBcclxuICBmdW5jdGlvbiBhcHBseUltYWdlVG9NYXRlcmlhbChpbWFnZSwgdGFyZ2V0TWF0ZXJpYWwpIHtcclxuICAgICAgaWYgKHR5cGVvZiBpbWFnZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIC8vVE9ETyBjYWNoZS4gIERvZXMgVGV4dHVyZUxvYWRlciBhbHJlYWR5IGNhY2hlP1xyXG4gICAgICAgIG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChpbWFnZSwgKHRleHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGV4dHVyZS53cmFwUyA9IHRleHR1cmUud3JhcFQgPSBUSFJFRS5DbGFtcFRvRWRnZVdyYXBwaW5nO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSB0ZXh0dXJlO1xyXG4gICAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaW1hZ2UuaXNUZXh0dXJlKSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZTtcclxuICAgICAgfSBlbHNlIGlmIChpbWFnZS5pc1dlYkdMUmVuZGVyVGFyZ2V0KSB7XHJcbiAgICAgICAgICB0YXJnZXRNYXRlcmlhbC5tYXAgPSBpbWFnZS50ZXh0dXJlO1xyXG4gICAgICB9IGVsc2UgdGhyb3cgXCJub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0IGltYWdlIFwiICsgaW1hZ2U7XHJcbiAgICAgIHRhcmdldE1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1hcmdpbiA9IExheW91dC5QQU5FTF9NQVJHSU4gKiAzO1xyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9ICh3aWR0aCAtIG1hcmdpbikgKiAoMS9jb2x1bW5zKTtcclxuICAvL1RPRE86IGFkZCBzZXRSb3dIZWlnaHQgbWV0aG9kXHJcbiAgbGV0IEJVVFRPTl9IRUlHSFQgPSByb3dIZWlnaHQgPiAwID8gcm93SGVpZ2h0IDogQlVUVE9OX1dJRFRIO1xyXG4gIGNvbnN0IEJVVFRPTl9ERVBUSCA9IExheW91dC5CVVRUT05fREVQVEg7XHJcblxyXG4gIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgZ3JvdXAuZ3VpVHlwZSA9IFwiaW1hZ2VidXR0b25ncmlkXCI7XHJcbiAgZ3JvdXAudG9TdHJpbmcgPSAoKSA9PiBgWyR7Z3JvdXAuZ3VpVHlwZX06ICR7b2JqZWN0c31dYDtcclxuICBcclxuICBjb25zdCByb3dzID0gTWF0aC5jZWlsKG9iamVjdHMubGVuZ3RoIC8gY29sdW1ucyk7XHJcbiAgbGV0IGhlaWdodCA9IExheW91dC5QQU5FTF9NQVJHSU4gKyBCVVRUT05fSEVJR0hUICogcm93cztcclxuICBncm91cC5zcGFjaW5nID0gaGVpZ2h0O1xyXG5cclxuICBncm91cC5zZXRSb3dIZWlnaHQgPSBoID0+IHtcclxuICAgIHJvd0hlaWdodCA9IEJVVFRPTl9IRUlHSFQgPSBoO1xyXG4gICAgaGVpZ2h0ID0gTGF5b3V0LlBBTkVMX01BUkdJTiArIEJVVFRPTl9IRUlHSFQgKiByb3dzO1xyXG4gICAgZ3JvdXAuc3BhY2luZyA9IGhlaWdodDtcclxuICAgIGxheW91dEJ1dHRvbnMoKTtcclxuICAgIHJldHVybiBncm91cDtcclxuICB9O1xyXG5cclxuICBsZXQgaGlnaGxpZ2h0TGFzdFByZXNzZWQgPSBmYWxzZTtcclxuICBsZXQgbGFzdFByZXNzZWQgPSBudWxsO1xyXG4gIGxldCBsYXN0UHJlc3NlZENvbDtcclxuICBncm91cC5oaWdobGlnaHRMYXN0UHJlc3NlZCA9IChjb2wgPSAweDMzNTVFRSkgPT4ge1xyXG4gICAgICBoaWdobGlnaHRMYXN0UHJlc3NlZCA9IGNvbCAhPT0gZmFsc2U7XHJcbiAgICAgIGxhc3RQcmVzc2VkQ29sID0gY29sO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIGxldCBwYW5lbCwgZ3JhYkludGVyYWN0aW9uLCBidXR0b25zID0gW107XHJcblxyXG4gIGxheW91dEJ1dHRvbnMoKTtcclxuICBcclxuICBmdW5jdGlvbiBpbml0UGFuZWwoKSB7XHJcbiAgICBpZiAocGFuZWwpIGdyb3VwLnJlbW92ZShwYW5lbCk7XHJcbiAgICBwYW5lbCA9IExheW91dC5jcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGggKTtcclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuICAgIFxyXG4gICAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICAgIGNvbnRyb2xsZXJJRC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBwYW5lbC5hZGQoY29udHJvbGxlcklEKTtcclxuICAgIFxyXG4gICAgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIFxyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9Pmdyb3VwLnJlbW92ZShiKSk7XHJcbiAgICBidXR0b25zID0gW107XHJcbiAgICBncm91cC5ndWlDaGlsZHJlbiA9IGJ1dHRvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGxheW91dEJ1dHRvbnMoKSB7XHJcbiAgICBpbml0UGFuZWwoKTtcclxuICAgIC8vVE9ETzogcGFkZGluZ1xyXG4gICAgY29uc3QgYnV0dG9uV1BhZGRlZCA9IEJVVFRPTl9XSURUSCAqIDAuOTksIGJ1dHRvbkhQYWRkZWQgPSBCVVRUT05fSEVJR0hUICogMC45OTtcclxuICAgIGNvbnN0IHJlY3QgPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeSggYnV0dG9uV1BhZGRlZCwgYnV0dG9uSFBhZGRlZCwgMSwgMSApO1xyXG4gICAgcmVjdC50cmFuc2xhdGUoIGJ1dHRvbldQYWRkZWQgLyAyLCAtYnV0dG9uSFBhZGRlZCAvIDIsIEJVVFRPTl9ERVBUSCApO1xyXG5cclxuICAgIHZhciBpID0gMDtcclxuICAgIFxyXG4gICAgLy9UT0RPOiB0b2dnbGVzIHJhdGhlciB0aGFuIHRyaWdnZXJzLi4uXHJcbiAgICBvYmplY3RzLmZvckVhY2goKG9iaiwgaSkgPT4ge1xyXG4gICAgICAgIGlmICghb2JqLmltYWdlICYmICFvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBzdWJncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpOyAvL25vdGU6IHJlZHVjaW5nIG5lc3RpbmcgY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZS5cclxuICAgICAgICBzdWJncm91cC5ndWlUeXBlID0gXCJpbWFnZUJ1dHRvbkdyaWRFbGVtZW50XCI7XHJcbiAgICAgICAgZ3JvdXAuYWRkKHN1Ymdyb3VwKTtcclxuICAgICAgICBidXR0b25zLnB1c2goc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBjb2wgPSBpICUgY29sdW1ucztcclxuICAgICAgICBjb25zdCByb3cgPSBNYXRoLmZsb29yKGkgLyBjb2x1bW5zKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueCA9ICgyKkxheW91dC5QQU5FTF9NQVJHSU4pICsgQlVUVE9OX1dJRFRIICogY29sO1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnkgPSAoaGVpZ2h0LzIpIC1CVVRUT05fSEVJR0hUICogcm93O1xyXG4gICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEg7XHJcblxyXG4gICAgICAgIC8vICBoaXRzY2FuIHZvbHVtZS5cclxuICAgICAgICAvLyBUaGlzIG1hdGVyaWFsIGNvdWxkIHByb2JhYmx5IGJlIHJldXNlZC5cclxuICAgICAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgICAgICBoaXRzY2FuTWF0ZXJpYWwudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBoaXRzY2FuVm9sdW1lID0gbmV3IFRIUkVFLk1lc2goIHJlY3QuY2xvbmUoKSwgaGl0c2Nhbk1hdGVyaWFsICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCk7XHJcbiAgICAgICAgbWF0ZXJpYWwudHJhbnNwYXJlbnQgPSB0cnVlO1xyXG4gICAgICAgIGlmIChvYmouaW1hZ2UpIGFwcGx5SW1hZ2VUb01hdGVyaWFsKG9iai5pbWFnZSwgbWF0ZXJpYWwpO1xyXG4gICAgICAgIGlmIChvYmoudGV4dCkge1xyXG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGV4dENyZWF0b3IuY3JlYXRlKG9iai50ZXh0KTtcclxuICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gMipMYXlvdXQuR1JJRF9CVVRUT05fTUFSR0lOO1xyXG4gICAgICAgICAgICBsZXQgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIGlmICh3ID4gQlVUVE9OX1dJRFRIIC0gbWFyZ2luKSB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LmNvbnN0cmFpbkJvdW5kcyhCVVRUT05fV0lEVEggLSBtYXJnaW4sIEJVVFRPTl9IRUlHSFQgLSBtYXJnaW4pOyAvLzwtLVxyXG4gICAgICAgICAgICAgICAgaCA9IExheW91dC5URVhUX1NDQUxFICogdGV4dC5sYXlvdXQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdyA9IHRleHQuY29tcHV0ZVdpZHRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3ViZ3JvdXAuYWRkKHRleHQpO1xyXG4gICAgICAgICAgICBzdWJncm91cC50ZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi54ID0gb2JqLnRleHRYIHx8IDAuNSAqIChCVVRUT05fV0lEVEggLSB3KTtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi55ID0gb2JqLnRleHRZIHx8IC0wLjUgKiBCVVRUT05fSEVJR0hUIC0gaDtcclxuICAgICAgICAgICAgdGV4dC5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMS4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmaWxsZWRWb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBtYXRlcmlhbCApO1xyXG4gICAgICAgIGhpdHNjYW5Wb2x1bWUuYWRkKCBmaWxsZWRWb2x1bWUgKTtcclxuXHJcbiAgICAgICAgLy9idXR0b24gbGFiZWwgJiBkZXNjcmlwdG9yIGxhYmVsIHJlbW92ZWQuXHJcbiAgICAgICAgLy9Ub29sdGlwIHRleHQgb3B0aW9uIGFkZGVkLiAgTWlnaHQgd2FudCB0byBiZSBhYmxlIHRvIHBhc3MgaW4gcmljaGVyIHRoaW5ncy4uLlxyXG4gICAgICAgIC8vbWF5YmUgYW4gYXJiaXRyYXJ5IFRIUkVFIG9iamVjdCB3b3VsZCB3b3JrIHdlbGwuLi5cclxuICAgICAgICBpZiAob2JqLnRpcCkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXBUZXh0ID0gY3JlYXRlVG9vbFRpcCh0ZXh0Q3JlYXRvciwgb2JqLnRpcCwgQlVUVE9OX1dJRFRILCBCVVRUT05fSEVJR0hULCBCVVRUT05fREVQVEgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLy9zdWJncm91cC5hZGQodGlwVGV4dCk7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnRpcFRleHQgPSB0aXBUZXh0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAvL3BhbmVsLmFkZCggZGVzY3JpcHRvckxhYmVsLCBoaXRzY2FuVm9sdW1lLCBjb250cm9sbGVySUQgKTtcclxuICAgICAgICBzdWJncm91cC5hZGQoIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgICAgICBwYW5lbC5hZGQoc3ViZ3JvdXApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbiA9IGNyZWF0ZUludGVyYWN0aW9uKCBoaXRzY2FuVm9sdW1lICk7XHJcbiAgICAgICAgaW50ZXJhY3Rpb24uZXZlbnRzLm9uKCAnb25QcmVzc2VkJywgaGFuZGxlT25QcmVzcyApO1xyXG4gICAgICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVPblJlbGVhc2UgKTtcclxuXHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgICAgICAgICAgaWYoIHN1Ymdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9UT0RPOiBzdGFuZGFyZGlzZSBoYW5kbGluZyBvZiBleGNlcHRpb25zIGluIGNhbGxiYWNrc1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmZ1bmMoKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgb2JqLmVycm9yID0gZSB8fCAndW5kZWZpbmVkIGV4Y2VwdGlvbic7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGFzdFByZXNzZWQgPSBvYmo7XHJcbiAgICAgICAgICAgIHN1Ymdyb3VwLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVPblJlbGVhc2UoKXtcclxuICAgICAgICAgICAgc3ViZ3JvdXAucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSDtcclxuICAgICAgICAgICAgaWYgKG9iai5yZWxlYXNlKSBvYmoucmVsZWFzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL3F1aWNrIGNvbG9yIGhhY2suLi5cclxuICAgICAgICBvYmouaG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4ODg4IDogMHhGRkZGRkY7XHJcbiAgICAgICAgb2JqLm5vSG92ZXJDb2wgPSBvYmoudGV4dCA/IDB4MTExIDogMHhDQ0NDQ0M7XHJcbiAgICAgICAgc3ViZ3JvdXAudXBkYXRlVmlldyA9ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGhpZ2hsaWdodExhc3RQcmVzc2VkICYmIGxhc3RQcmVzc2VkID09PSBvYmopIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggbGFzdFByZXNzZWRDb2wgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIG1hdGVyaWFsLmNvbG9yLnNldEhleCggaW50ZXJhY3Rpb24uaG92ZXJpbmcoKSA/IG9iai5ob3ZlckNvbCA6IG9iai5ub0hvdmVyQ29sICk7XHJcbiAgICAgICAgICAgIGlmIChzdWJncm91cC50aXBUZXh0KSBzZXRWaXNpYmlsaXR5KHN1Ymdyb3VwLCBzdWJncm91cC50aXBUZXh0LCBpbnRlcmFjdGlvbi5ob3ZlcmluZygpKTtcclxuICAgICAgICAgICAgaWYgKG9iai5lcnJvcikgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCAweEFBMzMzMyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHN1Ymdyb3VwLnVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgICAgICAgc3ViZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgICAgICBzdWJncm91cC5oaXRzY2FuID0gaGl0c2NhblZvbHVtZTsgLy9YWFg6IG1ha2luZyB0aGlzIHNpbmdsZSBlbGVtZW50IHJhdGhlciB0aGFuIGFycmF5LFxyXG4gICAgICAgIC8vdGhhdCBtZWFucyB0aGVzZSAnc3ViZ3JvdXAnIGJ1dHRvbnMgYXJlbid0IGFjdGluZyBleGFjdGx5IGFzIG5vcm1hbCBkYXQuR1VJVlIgY29udHJvbGxlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIGdyb3VwLmhpdHNjYW4gPSBidXR0b25zLm1hcChiPT5iLmhpdHNjYW4pOy8vLnB1c2gocGFuZWwpO1xyXG4gICAgZ3JvdXAuaGl0c2Nhbi5wdXNoKHBhbmVsKTtcclxuICB9XHJcblxyXG5cclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCkge1xyXG4gICAgICBidXR0b25zLmZvckVhY2goYj0+Yi51cGRhdGVWaWV3KCkpO1xyXG4gIH1cclxuICBcclxuICBncm91cC51cGRhdGVDb250cm9sID0gZnVuY3Rpb24oIGlucHV0T2JqZWN0cyApe1xyXG4gICAgYnV0dG9ucy5mb3JFYWNoKGI9PntcclxuICAgICAgICBiLmludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB9KTtcclxuICAgIC8vaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgIGdyYWJJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgdXBkYXRlVmlldygpO1xyXG4gIH07XHJcblxyXG4gIGdyb3VwLm5hbWUgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH07XHJcblxyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn0iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZVNsaWRlciBmcm9tICcuL3NsaWRlcic7XHJcbmltcG9ydCBjcmVhdGVDaGVja2JveCBmcm9tICcuL2NoZWNrYm94JztcclxuaW1wb3J0IGNyZWF0ZUJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XHJcbmltcG9ydCBjcmVhdGVGb2xkZXIgZnJvbSAnLi9mb2xkZXInO1xyXG5pbXBvcnQgY3JlYXRlRHJvcGRvd24gZnJvbSAnLi9kcm9wZG93bic7XHJcbi8vUEpUOiBJJ2QgcmF0aGVyIGluamVjdCBjdXN0b20gZXh0ZW5zaW9ucyBsaWtlIHRoaXMsIGJ1dCB3aWxsIHdvcmsgdGhhdCBvdXQgbGF0ZXIuXHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVLZXlib2FyZCBmcm9tICcuL2tleWJvYXJkJztcclxuaW1wb3J0IGNyZWF0ZVRleHRib3ggZnJvbSAnLi90ZXh0Ym94JztcclxuaW1wb3J0IGNyZWF0ZUNvbG9yUGlja2VyIGZyb20gJy4vY29sb3JwaWNrZXInO1xyXG5pbXBvcnQgKiBhcyBTREZUZXh0IGZyb20gJy4vc2RmdGV4dCc7XHJcbmltcG9ydCB7IGlzQ29udHJvbGxlclZpc2libGUgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgZ2xvYmFsRXZlbnRzIH0gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcblxyXG5jb25zdCBHVUlWUiA9IChmdW5jdGlvbiBEQVRHVUlWUigpe1xyXG5cclxuICAvKlxyXG4gICAgU0RGIGZvbnRcclxuICAqL1xyXG4gIGNvbnN0IHRleHRDcmVhdG9yID0gU0RGVGV4dC5jcmVhdG9yKCk7XHJcblxyXG5cclxuICAvKlxyXG4gICAgTGlzdHMuXHJcbiAgICBJbnB1dE9iamVjdHMgYXJlIHRoaW5ncyBsaWtlIFZJVkUgY29udHJvbGxlcnMsIGNhcmRib2FyZCBoZWFkc2V0cywgZXRjLlxyXG4gICAgQ29udHJvbGxlcnMgYXJlIHRoZSBEQVQgR1VJIHNsaWRlcnMsIGNoZWNrYm94ZXMsIGV0Yy5cclxuICAqL1xyXG4gIGNvbnN0IGlucHV0T2JqZWN0cyA9IFtdO1xyXG4gIGNvbnN0IGNvbnRyb2xsZXJzID0gW107XHJcblxyXG4gIC8qXHJcbiAgICBGdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgYSBnaXZlbiBjb250cm9sbGVyIGlzIHZpc2libGUgKGJ5IHdoaWNoIHdlXHJcbiAgICBtZWFuIG5vdCBoaWRkZW4sIG5vdCAndmlzaWJsZScgaW4gdGVybXMgb2YgdGhlIGNhbWVyYSBvcmllbnRhdGlvbiBldGMpLCBhbmRcclxuICAgIGZvciByZXRyaWV2aW5nIHRoZSBsaXN0IG9mIHZpc2libGUgaGl0c2Nhbk9iamVjdHMgZHluYW1pY2FsbHkuXHJcbiAgICBUaGlzIG1pZ2h0IGJlbmVmaXQgZnJvbSBzb21lIGNhY2hpbmcgZXNwZWNpYWxseSBpbiBjYXNlcyB3aXRoIGxhcmdlIGNvbXBsZXggR1VJcy5cclxuICAgIEkgaGF2ZW4ndCBtZWFzdXJlZCB0aGUgaW1wYWN0IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiBldGMuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBnZXRWaXNpYmxlQ29udHJvbGxlcnMoKSB7XHJcbiAgICAvLyBub3QgdGVycmlibHkgZWZmaWNpZW50XHJcbiAgICByZXR1cm4gY29udHJvbGxlcnMuZmlsdGVyKCBpc0NvbnRyb2xsZXJWaXNpYmxlICk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdldFZpc2libGVIaXRzY2FuT2JqZWN0cygpIHtcclxuICAgIC8vWFhYIFdBUk5JTkc6OjpcclxuICAgIC8vdGhlcmUgY291bGQgZXhpc3Qgc2l0dWF0aW9ucyBpbiB3aGljaCBtZW1iZXJzIG9mIGhpdHNjYW4gZm9yIGEgdmlzaWJsZSBjb250cm9sbGVyIGFyZSBub3QgdGhlbXNlbHZlcyB2aXNpYmxlLlxyXG4gICAgLy90aGlzIGNhbiBoYXBwZW4gZm9yIGVnIGlmIHRoZSAndmlzaWJsZScgcHJvcGVydHkgb2YgdGhlIHBhcnRpY3VsYXIgaGl0c2NhbiBpcyBpbiBhbiBpbnZpc2libGUgbW9kYWwgZWRpdG9yLlxyXG4gICAgLy93ZSBjb3VsZCBjaGVjayB0aGF0LCBhZGRpbmcgYSBtb3JlIHJvYnVzdCBmaWx0ZXIgdG8gZWFjaCBoaXRzY2FuIGFycmF5Li4uIGZvciBub3csIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZlxyXG4gICAgLy9jb250cm9sbGVycyB0byBlaXRoZXIgb25seSByZXR1cm4gaGl0c2NhbiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhY3RpdmUsIG9yIHRvIHNldCAndmlzaWJsZScgZXhwbGljaXRseS5cclxuICAgIGNvbnN0IHRtcCA9IGdldFZpc2libGVDb250cm9sbGVycygpLm1hcCggbyA9PiB7IHJldHVybiBvLmhpdHNjYW4uZmlsdGVyKGggPT4gaC52aXNpYmxlKTsgfSApXHJcbiAgICByZXR1cm4gdG1wLnJlZHVjZSgoYSwgYikgPT4geyByZXR1cm4gYS5jb25jYXQoYil9LCBbXSk7XHJcbiAgfVxyXG5cclxuICBsZXQgbW91c2VFbmFibGVkID0gZmFsc2U7XHJcbiAgbGV0IG1vdXNlUmVuZGVyZXIgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7IC8va2VlcCB0cmFjayBzbyB0aGF0IHdlIGRvbid0IGF0dGFjaCBtdWx0aXBsZSBldmVudHMgKHBhcnRpY3VsYXJseSB3aGVuIHJlc2l6aW5nIHdpbmRvdylcclxuICBcclxuICBsZXQgYXV0b1VwZGF0ZSA9IHRydWU7XHJcblxyXG4gIGZ1bmN0aW9uIGVuYWJsZU1vdXNlKCBjYW1lcmEsIHJlbmRlcmVyICl7XHJcbiAgICBtb3VzZUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgbW91c2VSZW5kZXJlciA9IHJlbmRlcmVyO1xyXG4gICAgbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA9IGNhbWVyYTtcclxuICAgIGlmIChjYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmEpIHtcclxuICAgICAgaWYgKCFvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgb25PcnRob01vdXNlUmVsZWFzZSA9IGY9PmYuZml4Rm9sZGVyUG9zaXRpb24oKTtcclxuICAgICAgICBtb3VzZUlucHV0LmV2ZW50cy5vbignZ3JhYlJlbGVhc2VkJywgb25PcnRob01vdXNlUmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbk9ydGhvTW91c2VSZWxlYXNlKSB7XHJcbiAgICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICAgIG9uT3J0aG9Nb3VzZVJlbGVhc2UgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtb3VzZUlucHV0Lmxhc2VyO1xyXG4gIH1cclxuICBcclxuICBmdW5jdGlvbiBkaXNhYmxlTW91c2UoKXtcclxuICAgIG1vdXNlRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9uT3J0aG9Nb3VzZVJlbGVhc2UpIHtcclxuICAgICAgbW91c2VJbnB1dC5ldmVudHMucmVtb3ZlTGlzdGVuZXIoJ2dyYWJSZWxlYXNlZCcsIG9uT3J0aG9Nb3VzZVJlbGVhc2UpO1xyXG4gICAgICBvbk9ydGhvTW91c2VSZWxlYXNlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qXHJcbiAgICBUaGUgZGVmYXVsdCBsYXNlciBwb2ludGVyIGNvbWluZyBvdXQgb2YgZWFjaCBJbnB1dE9iamVjdC5cclxuICAqL1xyXG4gIGNvbnN0IGxhc2VyTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4NTVhYWZmLCB0cmFuc3BhcmVudDogdHJ1ZSwgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcgfSk7XHJcbiAgZnVuY3Rpb24gY3JlYXRlTGFzZXIoKXtcclxuICAgIGNvbnN0IGcgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKTtcclxuICAgIGcuc2V0QXR0cmlidXRlKCdwb3NpdGlvbicsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUobmV3IEZsb2F0MzJBcnJheShbMCwwLDAsMCwwLDBdKSkpO1xyXG4gICAgcmV0dXJuIG5ldyBUSFJFRS5MaW5lKCBnLCBsYXNlck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLypcclxuICAgIEEgXCJjdXJzb3JcIiwgZWcgdGhlIGJhbGwgdGhhdCBhcHBlYXJzIGF0IHRoZSBlbmQgb2YgeW91ciBsYXNlci5cclxuICAqL1xyXG4gIGNvbnN0IGN1cnNvck1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHtjb2xvcjoweDQ0NDQ0NCwgdHJhbnNwYXJlbnQ6IHRydWUsIGJsZW5kaW5nOiBUSFJFRS5BZGRpdGl2ZUJsZW5kaW5nIH0gKTtcclxuICBmdW5jdGlvbiBjcmVhdGVDdXJzb3IoKXtcclxuICAgIHJldHVybiBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLlNwaGVyZUdlb21ldHJ5KDAuMDA2LCA0LCA0ICksIGN1cnNvck1hdGVyaWFsICk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQ3JlYXRlcyBhIGdlbmVyaWMgSW5wdXQgdHlwZS5cclxuICAgIFRha2VzIGFueSBUSFJFRS5PYmplY3QzRCB0eXBlIG9iamVjdCBhbmQgdXNlcyBpdHMgcG9zaXRpb25cclxuICAgIGFuZCBvcmllbnRhdGlvbiBhcyBhbiBpbnB1dCBkZXZpY2UuXHJcblxyXG4gICAgQSBsYXNlciBwb2ludGVyIGlzIGluY2x1ZGVkIGFuZCB3aWxsIGJlIHVwZGF0ZWQuXHJcbiAgICBDb250YWlucyBzdGF0ZSBhYm91dCB3aGljaCBJbnRlcmFjdGlvbiBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBvciBob3Zlci5cclxuICAqL1xyXG4gIGZ1bmN0aW9uIGNyZWF0ZUlucHV0KCBpbnB1dE9iamVjdCA9IG5ldyBUSFJFRS5Hcm91cCgpICl7XHJcbiAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgcmF5Y2FzdDogbmV3IFRIUkVFLlJheWNhc3RlciggbmV3IFRIUkVFLlZlY3RvcjMoKSwgbmV3IFRIUkVFLlZlY3RvcjMoKSApLFxyXG4gICAgICBsYXNlcjogY3JlYXRlTGFzZXIoKSxcclxuICAgICAgY3Vyc29yOiBjcmVhdGVDdXJzb3IoKSxcclxuICAgICAgb2JqZWN0OiBpbnB1dE9iamVjdCxcclxuICAgICAgcHJlc3NlZDogZmFsc2UsXHJcbiAgICAgIGdyaXBwZWQ6IGZhbHNlLFxyXG4gICAgICBldmVudHM6IG5ldyBFbWl0dGVyKCksXHJcbiAgICAgIGludGVyYWN0aW9uOiB7XHJcbiAgICAgICAgZ3JpcDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByZXNzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgaG92ZXI6IHVuZGVmaW5lZFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLmFkZCggaW5wdXQuY3Vyc29yICk7XHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBNb3VzZUlucHV0LlxyXG4gICAgQWxsb3dzIHlvdSB0byBjbGljayBvbiB0aGUgc2NyZWVuIHdoZW4gbm90IGluIFZSIGZvciBkZWJ1Z2dpbmcuXHJcbiAgKi9cclxuICBjb25zdCBtb3VzZUlucHV0ID0gY3JlYXRlTW91c2VJbnB1dCgpO1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGVNb3VzZUlucHV0KCl7XHJcbiAgICBjb25zdCBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKC0xLC0xKTtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGNyZWF0ZUlucHV0KCk7XHJcbiAgICBpbnB1dC5tb3VzZSA9IG1vdXNlO1xyXG4gICAgaW5wdXQubW91c2VJbnRlcnNlY3Rpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VPZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gICAgaW5wdXQubW91c2VQbGFuZSA9IG5ldyBUSFJFRS5QbGFuZSgpO1xyXG4gICAgaW5wdXQuaW50ZXJzZWN0aW9ucyA9IFtdO1xyXG5cclxuICAgIC8vICBzZXQgbXkgZW5hYmxlTW91c2VcclxuICAgIGlucHV0Lm1vdXNlQ2FtZXJhID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24oIGV2ZW50ICl7XHJcbiAgICAgIGlmICghZXZlbnQuYnV0dG9ucykgaW5wdXQucHJlc3NlZCA9IGZhbHNlOyAgLy8gcmVkdWNlIGludGVyYWN0aW9uIGJldHdlZW4gbWFrZURyYWdnYWJsZSBkcmFnIGFuZCB0aGlzIGRyYWdcclxuXHJcbiAgICAgIC8vIGlmIGEgc3BlY2lmaWMgcmVuZGVyZXIgaGFzIGJlZW4gZGVmaW5lZFxyXG4gICAgICBpZiAobW91c2VSZW5kZXJlcikge1xyXG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3QgPSBtb3VzZVJlbmRlcmVyLmRvbUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgbW91c2UueCA9ICggKGV2ZW50LmNsaWVudFggLSBjbGllbnRSZWN0LmxlZnQpIC8gY2xpZW50UmVjdC53aWR0aCkgKiAyIC0gMTtcclxuICAgICAgICBtb3VzZS55ID0gLSAoIChldmVudC5jbGllbnRZIC0gY2xpZW50UmVjdC50b3ApIC8gY2xpZW50UmVjdC5oZWlnaHQpICogMiArIDE7XHJcbiAgICAgIH1cclxuICAgICAgLy8gZGVmYXVsdCB0byBmdWxsc2NyZWVuXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1vdXNlLnggPSAoIGV2ZW50LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCApICogMiAtIDE7XHJcbiAgICAgICAgbW91c2UueSA9IC0gKCBldmVudC5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0ICkgKiAyICsgMTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIGZhbHNlICk7XHJcblxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaWYgKGlucHV0LmludGVyc2VjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vIHByZXZlbnQgbW91c2UgZG93biBmcm9tIHRyaWdnZXJpbmcgb3RoZXIgbGlzdGVuZXJzIChwb2x5ZmlsbCwgZXRjKVxyXG4gICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgMjggQXByaWwgMjAyMiwgZ2VuZXJhbGx5IHByZXR0eSBiYWQgcHJhY3RpY2VcclxuICAgICAgICAvLyBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTsgLy9zb21ldGltZXMgd2UgY2FyZSBhYm91dCB0aGUgbW91c2UgYmVpbmcgcHJlc3NlZCwgZXZlbiBvbiBiYWNrZ3JvdW5kXHJcbiAgICAgICAvL3dpbGwgYmUgc2V0IGZhbHNlIGF0IGVuZCBvZiBmaXJzdCB1cGRhdGUuIFNob3VsZG4ndCBiZSBuZWNlc3NhcnkgdG8gYWRkIGEgbmV3IHByb3BlcnR5Li4uIFxyXG4gICAgICAgLy9vblByZXNzZWQgc2hvdWxkIGJlIGFkZXF1YXRlLlxyXG4gICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgIH0sIHRydWUgKTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggJ21vdXNldXAnLCBmdW5jdGlvbiggZXZlbnQgKXtcclxuICAgICAgaW5wdXQucHJlc3NlZCA9IGZhbHNlO1xyXG4gICAgfSwgZmFsc2UgKTtcclxuXHJcblxyXG4gICAgcmV0dXJuIGlucHV0O1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQdWJsaWMgZnVuY3Rpb24gdXNlcnMgcnVuIHRvIGdpdmUgREFUIEdVSSBhbiBpbnB1dCBkZXZpY2UuXHJcbiAgICBBdXRvbWF0aWNhbGx5IGRldGVjdHMgZm9yIFZpdmVDb250cm9sbGVyIGFuZCBiaW5kcyBidXR0b25zICsgaGFwdGljIGZlZWRiYWNrLlxyXG5cclxuICAgIFJldHVybnMgYSBsYXNlciBwb2ludGVyIHNvIGl0IGNhbiBiZSBkaXJlY3RseSBhZGRlZCB0byBzY2VuZS5cclxuXHJcbiAgICBUaGUgbGFzZXIgd2lsbCB0aGVuIGhhdmUgdHdvIG1ldGhvZHM6XHJcbiAgICBsYXNlci5wcmVzc2VkKCksIGxhc2VyLmdyaXBwZWQoKVxyXG5cclxuICAgIFRoZXNlIGNhbiB0aGVuIGJlIGJvdW5kIHRvIGFueSBidXR0b24gdGhlIHVzZXIgd2FudHMuIFVzZWZ1bCBmb3IgYmluZGluZyB0b1xyXG4gICAgY2FyZGJvYXJkIG9yIGFsdGVybmF0ZSBpbnB1dCBkZXZpY2VzLlxyXG5cclxuICAgIEZvciBleGFtcGxlLi4uXHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdtb3VzZWRvd24nLCBmdW5jdGlvbigpeyBsYXNlci5wcmVzc2VkKCB0cnVlICk7IH0gKTtcclxuICAqL1xyXG4gIGZ1bmN0aW9uIGFkZElucHV0T2JqZWN0KCBvYmplY3QgKXtcclxuICAgIGNvbnN0IGlucHV0ID0gY3JlYXRlSW5wdXQoIG9iamVjdCApO1xyXG5cclxuICAgIGlucHV0Lmxhc2VyLnByZXNzZWQgPSBmdW5jdGlvbiggZmxhZyApe1xyXG4gICAgICBjb25zdCBoaXRzID0gaW5wdXQuaW50ZXJzZWN0aW9ucztcclxuICAgICAgLy8gb25seSBwYXkgYXR0ZW50aW9uIHRvIHByZXNzZXMgb3ZlciB0aGUgR1VJXHJcbiAgICAgIGlmIChmbGFnICYmIGhpdHMgJiYgKGhpdHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gdHJ1ZTtcclxuICAgICAgICBpbnB1dC5jbGlja2VkID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnB1dC5wcmVzc2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaW5wdXQubGFzZXIuZ3JpcHBlZCA9IGZ1bmN0aW9uKCBmbGFnICl7XHJcbiAgICAgIGlucHV0LmdyaXBwZWQgPSBmbGFnO1xyXG4gICAgfTtcclxuXHJcbiAgICBpbnB1dC5sYXNlci5jdXJzb3IgPSBpbnB1dC5jdXJzb3I7XHJcblxyXG4gICAgaWYoIFRIUkVFLlZpdmVDb250cm9sbGVyICYmIG9iamVjdCBpbnN0YW5jZW9mIFRIUkVFLlZpdmVDb250cm9sbGVyICl7XHJcbiAgICAgIGJpbmRWaXZlQ29udHJvbGxlciggaW5wdXQsIG9iamVjdCwgaW5wdXQubGFzZXIucHJlc3NlZCwgaW5wdXQubGFzZXIuZ3JpcHBlZCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5wdXNoKCBpbnB1dCApO1xyXG5cclxuICAgIHJldHVybiBpbnB1dC5sYXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBIZXJlIGFyZSB0aGUgbWFpbiBkYXQgZ3VpIGNvbnRyb2xsZXIgdHlwZXMuXHJcbiAgKi9cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2xpZGVyKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgbWluID0gMC4wLCBtYXggPSAxMDAuMCApe1xyXG4gICAgY29uc3Qgc2xpZGVyID0gY3JlYXRlU2xpZGVyKCB7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgbWluLCBtYXgsXHJcbiAgICAgIGluaXRpYWxWYWx1ZTogb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggc2xpZGVyICk7XHJcblxyXG4gICAgcmV0dXJuIHNsaWRlcjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZENoZWNrYm94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApe1xyXG4gICAgY29uc3QgY2hlY2tib3ggPSBjcmVhdGVDaGVja2JveCh7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCxcclxuICAgICAgaW5pdGlhbFZhbHVlOiBvYmplY3RbIHByb3BlcnR5TmFtZSBdXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBjaGVja2JveCApO1xyXG5cclxuICAgIHJldHVybiBjaGVja2JveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEJ1dHRvbiggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKXtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggYnV0dG9uICk7XHJcbiAgICByZXR1cm4gYnV0dG9uO1xyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jIHRvIGNhbGwgYmFjayB3aGVuIGJ1dHRvbiBwcmVzc2VkXHJcbiAgICogQHBhcmFtIHsqfSBpbWFnZSBjYW4gYmUgZmlsZW5hbWUsIFdlYkdMUmVuZGVyVGFyZ2V0IG9yIE1hdGVyaWFsXHJcbiAgICogQHBhcmFtIHtCb29sZWFufSB3aWRlIHdoZXRoZXIgdG8gbWFrZSBidXR0b24gZmlsbCBlbnRpcmUgd2lkdGggb2YgcGFuZWwgKGFwaSBzdWJqZWN0IHRvIGNoYW5nZSlcclxuICAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvbihmdW5jLCBpbWFnZSwgd2lkZSwgaGVpZ2h0KSB7XHJcbiAgICBjb25zdCBvYmplY3QgPSB7IGY6IGZ1bmMgfTtcclxuICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9ICdmJztcclxuXHJcblxyXG4gICAgLy9zZWUgYWxzbyBmb2xkZXIuanMgd2hlcmUgdGhpcyBpcyBhZGRlZCB0byBncm91cCBvYmplY3QuLi5cclxuICAgIC8vYXMgc3VjaCB0aGlzIGZ1bmN0aW9uIGFsc28gbmVlZHMgdG8gYmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvIGNyZWF0ZUZvbGRlci5cclxuICAgIC8vcGVyaGFwcyBhbGwgb2YgdGhlc2UgJ2FkZFgnIGZ1bmN0aW9ucyBjb3VsZCBiZSBpbml0aWFsbHkgcHV0IG9udG8gYW4gb2JqZWN0IHNvIHRoYXRcclxuICAgIC8vbmV3IGFkZGl0aW9ucyBjb3VsZCBiZSBhZGRlZCBzbGlnaHRseSBtb3JlIGVhc2lseS5cclxuICAgIGNvbnN0IGJ1dHRvbiA9IGNyZWF0ZUltYWdlQnV0dG9uKHtcclxuICAgICAgdGV4dENyZWF0b3IsIG9iamVjdCwgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goIGJ1dHRvbiApO1xyXG4gICAgcmV0dXJuIGJ1dHRvbjtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFhZQ29udHJvbGxlcihwcmVzc2luZywgaW1hZ2UsIHdpZGUsIGhlaWdodCkge1xyXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgICBjb25zdCBidXR0b24gPSBjcmVhdGVJbWFnZUJ1dHRvbih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcmVzc2luZywgcHJvcGVydHlOYW1lLCBpbWFnZSwgd2lkZSwgaGVpZ2h0XHJcbiAgICB9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goYnV0dG9uKTtcclxuICAgIHJldHVybiBidXR0b247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFRoaXMgaW50ZXJmYWNlIG1heSBiZSBzdWJqZWN0IHRvIGNoYW5nZS4gIEFyZ3VtZW50cyBhcmUgb2JqZWN0cyBkZXNjcmliaW5nIGJ1dHRvbnNcclxuICBGaXJzdCBvYmplY3QgbWF5IGJlIGFuIGludGVnZXIgZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXHJcbiAgKi9cclxuICBmdW5jdGlvbiBhZGRJbWFnZUJ1dHRvblBhbmVsKGNvbHMsIC4uLmFyZ3MpIHtcclxuICAgIGxldCBjb2x1bW5zID0gTnVtYmVyLmlzSW50ZWdlcihjb2xzKSA/IGNvbHMgOiA0O1xyXG4gICAgY29uc3Qgb2JqZWN0cyA9IGFyZ3M7XHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoY29scykpIG9iamVjdHMudW5zaGlmdChjb2xzKVxyXG4gICAgY29uc3QgZ3JpZCA9IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCh7dGV4dENyZWF0b3IsIG9iamVjdHMsIGNvbHVtbnM6IGNvbHVtbnN9KTtcclxuICAgIGNvbnRyb2xsZXJzLnB1c2goZ3JpZCk7XHJcbiAgICByZXR1cm4gZ3JpZDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZEtleWJvYXJkKCBrZXlMaXN0ZW5lciApIHtcclxuICAgIGlmICgha2V5TGlzdGVuZXIpIGtleUxpc3RlbmVyID0gKGspID0+IGNvbnNvbGUubG9nKGBrZXlEb3duICR7a31gKTtcclxuICAgIGNvbnN0IGtiID0gY3JlYXRlS2V5Ym9hcmQoe2tleUxpc3RlbmVyLCB0ZXh0Q3JlYXRvcn0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChrYik7XHJcbiAgICByZXR1cm4ga2I7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRUZXh0Ym94KCBvYmplY3QsIHByb3BlcnR5TmFtZSApIHtcclxuICAgIGNvbnN0IGJveCA9IGNyZWF0ZVRleHRib3goe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcbiAgXHJcbiAgZnVuY3Rpb24gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICkge1xyXG4gICAgY29uc3QgYm94ID0gY3JlYXRlQ29sb3JQaWNrZXIoe3RleHRDcmVhdG9yLCBvYmplY3QsIHByb3BlcnR5TmFtZX0pO1xyXG4gICAgY29udHJvbGxlcnMucHVzaChib3gpO1xyXG4gICAgcmV0dXJuIGJveDtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb3B0aW9ucyApe1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSBjcmVhdGVEcm9wZG93bih7XHJcbiAgICAgIHRleHRDcmVhdG9yLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCwgb3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29udHJvbGxlcnMucHVzaCggZHJvcGRvd24gKTtcclxuICAgIHJldHVybiBkcm9wZG93bjtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgQW4gaW1wbGljaXQgQWRkIGZ1bmN0aW9uIHdoaWNoIGRldGVjdHMgZm9yIHByb3BlcnR5IHR5cGVcclxuICAgIGFuZCBnaXZlcyB5b3UgdGhlIGNvcnJlY3QgY29udHJvbGxlci5cclxuXHJcbiAgICBEcm9wZG93bjpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgb2JqZWN0VHlwZSApXHJcblxyXG4gICAgU2xpZGVyOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZk51bWJlclR5cGUsIG1pbiwgbWF4IClcclxuXHJcbiAgICBDaGVja2JveDpcclxuICAgICAgYWRkKCBvYmplY3QsIHByb3BlcnR5T2ZCb29sZWFuVHlwZSApXHJcblxyXG4gICAgQnV0dG9uOlxyXG4gICAgICBhZGQoIG9iamVjdCwgcHJvcGVydHlPZkZ1bmN0aW9uVHlwZSApXHJcblxyXG4gICAgTm90IHVzZWQgZGlyZWN0bHkuIFVzZWQgYnkgZm9sZGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBhZGQoIG9iamVjdCwgcHJvcGVydHlOYW1lLCBhcmczLCBhcmc0ICl7XHJcblxyXG4gICAgaWYoIG9iamVjdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcblxyXG4gICAgaWYgKG9iamVjdC5pc0ZvbGRlcikgcmV0dXJuIG9iamVjdDtcclxuXHJcbiAgICBpZiggb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICAgIGNvbnNvbGUud2FybiggJ25vIHByb3BlcnR5IG5hbWVkJywgcHJvcGVydHlOYW1lLCAnb24gb2JqZWN0Jywgb2JqZWN0ICk7XHJcbiAgICAgIHJldHVybiBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNPYmplY3QoIGFyZzMgKSB8fCBpc0FycmF5KCBhcmczICkgKXtcclxuICAgICAgcmV0dXJuIGFkZERyb3Bkb3duKCBvYmplY3QsIHByb3BlcnR5TmFtZSwgYXJnMyApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBpc051bWJlciggb2JqZWN0WyBwcm9wZXJ0eU5hbWVdICkgKXtcclxuICAgICAgcmV0dXJuIGFkZFNsaWRlciggb2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFyZzMsIGFyZzQgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiggaXNCb29sZWFuKCBvYmplY3RbIHByb3BlcnR5TmFtZV0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ2hlY2tib3goIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGlzRnVuY3Rpb24oIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQnV0dG9uKCBvYmplY3QsIHByb3BlcnR5TmFtZSApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggaXNTdHJpbmcoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkVGV4dGJveCggb2JqZWN0LCBwcm9wZXJ0eU5hbWUgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIGlzQ29sb3IoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKSApe1xyXG4gICAgICByZXR1cm4gYWRkQ29sb3JQaWNrZXIoIG9iamVjdCwgcHJvcGVydHlOYW1lICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIGFkZCBjb3VsZG4ndCBmaWd1cmUgaXQgb3V0LCBwYXNzIGl0IGJhY2sgdG8gZm9sZGVyXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlU2xpZGVyKCBtaW4gPSAwLCBtYXggPSAxICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgbnVtYmVyOiBtaW5cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGFkZFNsaWRlciggcHJveHksICdudW1iZXInLCBtaW4sIG1heCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYWRkU2ltcGxlRHJvcGRvd24oIG9wdGlvbnMgPSBbXSApe1xyXG4gICAgY29uc3QgcHJveHkgPSB7XHJcbiAgICAgIG9wdGlvbjogJydcclxuICAgIH07XHJcblxyXG4gICAgaWYoIG9wdGlvbnMgIT09IHVuZGVmaW5lZCApe1xyXG4gICAgICBwcm94eS5vcHRpb24gPSBpc0FycmF5KCBvcHRpb25zICkgPyBvcHRpb25zWyAwIF0gOiBvcHRpb25zWyBPYmplY3Qua2V5cyhvcHRpb25zKVswXSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZGREcm9wZG93biggcHJveHksICdvcHRpb24nLCBvcHRpb25zICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBhZGRTaW1wbGVDaGVja2JveCggZGVmYXVsdE9wdGlvbiA9IGZhbHNlICl7XHJcbiAgICBjb25zdCBwcm94eSA9IHtcclxuICAgICAgY2hlY2tlZDogZGVmYXVsdE9wdGlvblxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQ2hlY2tib3goIHByb3h5LCAnY2hlY2tlZCcgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGFkZFNpbXBsZUJ1dHRvbiggZm4gKXtcclxuICAgIGNvbnN0IHByb3h5ID0ge1xyXG4gICAgICBidXR0b246IChmbiE9PXVuZGVmaW5lZCkgPyBmbiA6IGZ1bmN0aW9uKCl7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWRkQnV0dG9uKCBwcm94eSwgJ2J1dHRvbicgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgTm90IHVzZWQgZGlyZWN0bHk7IHVzZWQgYnkgZm9sZGVycy5cclxuICBSZW1vdmUgY29udHJvbGxlcnMgZnJvbSB0aGUgZ2xvYmFsIGxpc3Qgb2YgYWxsIGNvbnRyb2xsZXJzIGtub3duIHRvIGRhdC5HVUlWUi5cclxuICBDYWxscyByZW1vdmVUZXN0IGZpcnN0IHRvIGNoZWNrIGlucHV0IGFyZ3VtZW50cy4gIHJldHVybnMgZmFsc2UgaWYgdGhpcyB0ZXN0IGZhaWxzLlxyXG4gIHJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLlxyXG5cclxuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZWN1cnNpdmVseSByZW1vdmUgZWxlbWVudHMgZnJvbSBmb2xkZXJzOyB0aGF0IGlzIGRlYWx0IHdpdGggaW4gdGhlIGZvbGRlciBjb2RlIHdoaWNoIGNhbGxzIHRoaXMuXHJcbiAgXHJcbiAgICovXHJcbiAgZnVuY3Rpb24gcmVtb3ZlKCAuLi5hcmdzICl7XHJcbiAgICBsZXQgYXJnU2V0ID0gWyAuLi5uZXcgU2V0KGFyZ3MpIF07IC8vanVzdCBpbiBjYXNlIHRoZXJlIHdlcmUgcmVwZWF0ZWQgZWxlbWVudHMgaW4gYXJncywgdHVybiBpbnRvIFNldCB0aGVuIGJhY2sgdG8gYXJyYXkuXHJcbiAgICBpZiAoICFyZW1vdmVUZXN0KC4uLmFyZ1NldCkgKSByZXR1cm4gZmFsc2U7XHJcbiAgICBhcmdTZXQuZm9yRWFjaCggZnVuY3Rpb24oIG9iaiApe1xyXG4gICAgICB2YXIgaSA9IGNvbnRyb2xsZXJzLmluZGV4T2YoIG9iaiApO1xyXG4gICAgICBpZiAoIGkgPiAtMSkgY29udHJvbGxlcnMuc3BsaWNlKCBpLCAxICk7XHJcbiAgICAgIGVsc2UgeyAvLyBJIGNhbid0IHNlZSBob3cgdGhpcydkIGhhcHBlbiBub3cgd2UgZ3VhcmQgYWdhaW5zdCByZXBlYXRlZCBlbGVtZW50cy5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludGVybmFsIGVycm9yIGluIHJlbW92ZSwgbm90IGFudGljaXBhdGVkIGJ5IHJlbW92ZVRlc3QuIEludGVybmFsIGRhdC5HVUlWUiBzdGF0ZSBtYXkgYmUgaW5jb25zaXN0ZW50LlwiKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIFZlcmlmeSB0aGF0IGFsbCBvZiB0aGUgaXRlbXMgaW4gcHJvdmlkZWQgYXJndW1lbnRzIGFyZSBleGlzdGluZyBjb250cm9sbGVycyB0aGF0IHNob3VsZCBiZSBvayB0byByZW1vdmUuXHJcblxyXG4gIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgYXJlIGFueSBtaXNtYXRjaGVzLCB0cnVlIGlmIGJlbGlldmVkIG9rIHRvIGNvbnRpbnVlIHdpdGggYWN0dWFsIHJlbW92ZSgpXHJcblxyXG4gIElmIGFueSBvZiB0aGUgcHJvdmlkZWQgYXJncyBhcmUgZm9sZGVycyAoaGF2ZSBpc0ZvbGRlciBwcm9wZXJ0eSkgdGhpcyBpcyBjYWxsZWQgcmVjdXJzaXZlbHkuXHJcbiAgVGhpcyB3aWxsIHJlc3VsdCBpbiByZWR1bmRhbnQgd29yayBhcyBlYWNoIGZvbGRlciB3aWxsIGFsc28gY2FsbCBpdCBhZ2FpbiBhcyBpdCdzIHJlbW92ZWQsIGJ1dCB0aGlzIGlzIGNoZWFwXHJcbiAgYW5kIGl0IG1lYW5zIHRoYXQgYW55IGVycm9yIHNob3VsZCBiZSBjYXVnaHQgYXMgZWFybHkgYXMgcG9zc2libGUgYW5kIHRoZSB3aG9sZSBwcm9jZXNzIGFib3J0ZWQuXHJcbiAgKi9cclxuICBmdW5jdGlvbiByZW1vdmVUZXN0KCAuLi5hcmdzICkge1xyXG4gICAgZm9yICh2YXIgaT0wOyBpPGFyZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIG9iaiA9IGFyZ3NbaV07XHJcbiAgICAgIGlmIChjb250cm9sbGVycy5pbmRleE9mKG9iaikgPT09IC0xIHx8ICFvYmouZm9sZGVyLmhhc0NoaWxkKG9iaikpIHtcclxuICAgICAgICAvL1RPRE86IHRvU3RyaW5nIGltcGxlbWVudGF0aW9ucyBmb3IgY29udHJvbGxlcnNcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhbid0IHJlbW92ZSBjb250cm9sbGVyIFwiICsgb2JqKTsgLy9ub3Qgc3VyZSB0aGUgcHJlZmVycmVkIHdheSBvZiByZXBvcnRpbmcgcHJvYmxlbSB0byB1c2VyLlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2JqLmlzRm9sZGVyKSB7XHJcbiAgICAgICAgaWYgKCFyZW1vdmVUZXN0KCAuLi5vYmouZ3VpQ2hpbGRyZW4gKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBsZXRlbHkgcmVtb3ZlIGFsbCBHVUkgZWxlbWVudHMgZnJvbSB0aGUgc3lzdGVtIGdsb2JhbGx5LCBcclxuICAgKiBpbmNsdWRpbmcgcmVtb3ZpbmcgYW55IG9iamVjdHMgZnJvbSB0aGUgc2NlbmUgaGllcmFyY2h5LlxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNsZWFyQWxsKCkge1xyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgYy52aXNpYmxlID0gZmFsc2U7IGlmIChjLnBhcmVudCAmJiAhYy5wYXJlbnQuZ3VpQ2hpbGRyZW4pIGMucGFyZW50LnJlbW92ZShjKTtcclxuICAgIH0pO1xyXG4gICAgY29udHJvbGxlcnMuc3BsaWNlKDAsIGNvbnRyb2xsZXJzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgIENyZWF0ZXMgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZS5cclxuXHJcbiAgICBGb2xkZXJzIGFyZSBUSFJFRS5Hcm91cCB0eXBlIG9iamVjdHMgYW5kIGNhbiBkbyBncm91cC5hZGQoKSBmb3Igc2libGluZ3MuXHJcbiAgICBGb2xkZXJzIHdpbGwgYXV0b21hdGljYWxseSBhdHRlbXB0IHRvIGxheSBpdHMgY2hpbGRyZW4gb3V0IGluIHNlcXVlbmNlLlxyXG5cclxuICAgIEZvbGRlcnMgYXJlIGdpdmVuIHRoZSBhZGQoKSBmdW5jdGlvbmFsaXR5IHNvIHRoYXQgdGhleSBjYW4gZG9cclxuICAgIGZvbGRlci5hZGQoIC4uLiApIHRvIGNyZWF0ZSBjb250cm9sbGVycy5cclxuICAqL1xyXG5cclxuICBmdW5jdGlvbiBjcmVhdGUoIG5hbWUgKXtcclxuICAgIGNvbnN0IGZvbGRlciA9IGNyZWF0ZUZvbGRlcih7XHJcbiAgICAgIHRleHRDcmVhdG9yLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBndWlBZGQ6IGFkZCxcclxuICAgICAgZ3VpUmVtb3ZlOiByZW1vdmUsXHJcbiAgICAgIGFkZENvbnRyb2xsZXJGdW5jczoge1xyXG4gICAgICAgIGFkZFNsaWRlcjogYWRkU2ltcGxlU2xpZGVyLFxyXG4gICAgICAgIGFkZERyb3Bkb3duOiBhZGRTaW1wbGVEcm9wZG93bixcclxuICAgICAgICBhZGRDaGVja2JveDogYWRkU2ltcGxlQ2hlY2tib3gsXHJcbiAgICAgICAgYWRkQnV0dG9uOiBhZGRTaW1wbGVCdXR0b24sXHJcbiAgICAgICAgYWRkSW1hZ2VCdXR0b246IGFkZEltYWdlQnV0dG9uLFxyXG4gICAgICAgIGFkZFhZQ29udHJvbGxlcjogYWRkWFlDb250cm9sbGVyLFxyXG4gICAgICAgIGFkZEltYWdlQnV0dG9uUGFuZWw6IGFkZEltYWdlQnV0dG9uUGFuZWwsXHJcbiAgICAgICAgYWRkS2V5Ym9hcmQ6IGFkZEtleWJvYXJkLFxyXG4gICAgICAgIGFkZFRleHRib3g6IGFkZFRleHRib3hcclxuICAgICAgfSxcclxuICAgICAgZ2xvYmFsQ29udHJvbGxlcnM6IGNvbnRyb2xsZXJzLFxyXG4gICAgICAvLz8/P1xyXG4gICAgICBhZGRIZWFkZXJGdW5jczoge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250cm9sbGVycy5wdXNoKCBmb2xkZXIgKTtcclxuXHJcbiAgICByZXR1cm4gZm9sZGVyO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qXHJcbiAgICBQZXJmb3JtIHRoZSBuZWNlc3NhcnkgdXBkYXRlcywgcmF5Y2FzdHMgb24gaXRzIG93biBSQUYuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgdFBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuICBjb25zdCB0RGlyZWN0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoIDAsIDAsIC0xICk7XHJcbiAgY29uc3QgdE1hdHJpeCA9IG5ldyBUSFJFRS5NYXRyaXg0KCk7XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IGlzT3J0aG9ncmFwaGljID0gbW91c2VFbmFibGVkICYmIG1vdXNlSW5wdXQubW91c2VDYW1lcmEuaXNPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiAgICBpZiAoYXV0b1VwZGF0ZSkgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCB1cGRhdGUgKTtcclxuICAgIFxyXG4gICAgdmFyIGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICBjb25zdCBjb250cm9sbGVycyA9IGdldFZpc2libGVDb250cm9sbGVycygpO1xyXG4gICAgY29uc3QgZm9sZGVycyA9IGNvbnRyb2xsZXJzLmZpbHRlcihjID0+IGMuZm9sZGVyID09PSBjKTsgLy9hbGwgdG9wLWxldmVsIGZvbGRlcnNcclxuICAgIGZvbGRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgZi51c2VyRGF0YS5pc09ydGhvZ3JhcGhpYyA9IGlzT3J0aG9ncmFwaGljID8gbW91c2VJbnB1dC5tb3VzZUNhbWVyYSA6IGZhbHNlO1xyXG4gICAgICBpZiAoZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lKSB7XHJcbiAgICAgICAgZi5yZXF1ZXN0TGF5b3V0KCk7XHJcbiAgICAgICAgZi5tb2RhbFdhc1NldEluQ3VycmVudEZyYW1lID0gZmFsc2U7IC8vIHByb3RlY3QgYW55IG5ld2x5LWRpc3BsYXllZCBtb2RhbEVkaXRvciBmcm9tIGJlaW5nIGNsZWFyZWRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi51c2VyRGF0YS5sYXlvdXRQZW5kaW5nKSBmLnBlcmZvcm1MYXlvdXQoKTtcclxuICAgIH0pOyBcclxuXHJcbiAgICBpZiggbW91c2VFbmFibGVkICl7XHJcbiAgICAgIC8vVE9ETzogbG9jayBtb3VzZSBvbiBob3Zlcj8/XHJcbiAgICAgIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9ucyA9IHBlcmZvcm1Nb3VzZUlucHV0KCBoaXRzY2FuT2JqZWN0cywgbW91c2VJbnB1dCApO1xyXG4gICAgfVxyXG5cclxuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKCBmdW5jdGlvbigge2JveCxvYmplY3QscmF5Y2FzdCxsYXNlcixjdXJzb3IsaW50ZXJhY3Rpb259ID0ge30sIGluZGV4ICl7XHJcbiAgICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgICAgb2JqZWN0LnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIFxyXG4gICAgICB0UG9zaXRpb24uc2V0KDAsMCwwKS5zZXRGcm9tTWF0cml4UG9zaXRpb24oIG9iamVjdC5tYXRyaXhXb3JsZCApO1xyXG4gICAgICB0TWF0cml4LmlkZW50aXR5KCkuZXh0cmFjdFJvdGF0aW9uKCBvYmplY3QubWF0cml4V29ybGQgKTtcclxuICAgICAgXHJcbiAgICAgIHREaXJlY3Rpb24uc2V0KDAsMCwtMSk7XHJcbiAgICAgIC8vYWx0ZXJpbmcgZGlyZWN0aW9uIGUuZy4gdG8gcG9pbnQgaW4gZGlyZWN0aW9uIG9mIGV4dGVuZGVkIHRyaWdnZXIgZmluZ2VyLCByYXRoZXIgdGhhbiAnbWFpbiBheGlzJyBvZiBWaXZlIGNvbnRyb2xsZXIuLi5cclxuICAgICAgLy9tYXliZSB0aGlzIHNob3VsZCBiZSBpbiB1c2VyRGF0YS5cclxuICAgICAgaWYgKG9iamVjdC5sYXNlclJvdGF0ZU1vZGlmaWVyKSB0RGlyZWN0aW9uLmFwcGx5UXVhdGVybmlvbihvYmplY3QubGFzZXJSb3RhdGVNb2RpZmllcik7XHJcbiAgICAgIHREaXJlY3Rpb24uYXBwbHlNYXRyaXg0KCB0TWF0cml4ICkubm9ybWFsaXplKCk7XHJcbiAgICAgIFxyXG4gICAgICByYXljYXN0LnNldCggdFBvc2l0aW9uLCB0RGlyZWN0aW9uICk7XHJcbiAgICAgIFxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDAgXS5jb3B5KCB0UG9zaXRpb24gKTtcclxuICAgICAgY29uc3QgYSA9IGxhc2VyLmdlb21ldHJ5LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5hcnJheTtcclxuICAgICAgYVswXSA9IHRQb3NpdGlvbi54OyBhWzFdID0gdFBvc2l0aW9uLnk7IGFbMl0gPSB0UG9zaXRpb24uejtcclxuICAgICAgXHJcbiAgICAgIC8vICBkZWJ1Zy4uLlxyXG4gICAgICAvLyBsYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCB0UG9zaXRpb24gKS5hZGQoIHREaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoIDEgKSApO1xyXG4gICAgICBcclxuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IHJheWNhc3QuaW50ZXJzZWN0T2JqZWN0cyggaGl0c2Nhbk9iamVjdHMsIGZhbHNlICk7XHJcbiAgICAgIHBhcnNlSW50ZXJzZWN0aW9ucyggaW50ZXJzZWN0aW9ucywgbGFzZXIsIGN1cnNvciApO1xyXG4gICAgICBcclxuICAgICAgaW5wdXRPYmplY3RzWyBpbmRleCBdLmludGVyc2VjdGlvbnMgPSBpbnRlcnNlY3Rpb25zO1xyXG4gICAgICAvL3dhbnQgdG8gYWRkIGluZm8gKGhpdCBkaXNjdGFuY2UpIHRvIG9iamVjdCBmb3IgdXNlIG91dHNpZGUuLi4ganVzdCBhZGRpbmcgZW50aXJldHkgb2YgaW50ZXJzZWN0aW9ucyBpbiBjYXNlIHVzZWZ1bFxyXG4gICAgICBpZiAob2JqZWN0LnVzZXJEYXRhKSBvYmplY3QudXNlckRhdGEuZ3VpSW50ZXJzZWN0aW9ucyA9IGludGVyc2VjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXRzID0gaW5wdXRPYmplY3RzLnNsaWNlKCk7XHJcbiAgICBcclxuICAgIGlmKCBtb3VzZUVuYWJsZWQgKXtcclxuICAgICAgaW5wdXRzLnB1c2goIG1vdXNlSW5wdXQgKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29udHJvbGxlcnMuZm9yRWFjaCggYyA9PiBjLnVwZGF0ZUNvbnRyb2woIGlucHV0cyApKTtcclxuICAgIC8vbm93IGNoZWNrIGlmIGFueSBwcmVzcyBvbiBhbnkgaW5wdXQgaGl0IGFueSBub24nbW9kYWwgZWRpdG9yJy4uLiBpZiBzbywgd2UnbGwgcmVtb3ZlIG1vZGFscyBmcm9tIGFsbCBmb2xkZXJzXHJcbiAgICAvLyh0aGlzIGlzbid0IHBlcmZlY3Q7IGlmIHlvdSBhcmUgYWN0aXZlbHkgaW50ZXJhY3Rpbmcgd2l0aCBzb21ldGhpbmcgYW5kIHByZXNzIG90aGVyIGJ1dHRvbiBzb21ld2hlcmUgZWxzZSwgaXQnbGwgcmVtb3ZlIHlvdXIgb2JqZWN0KVxyXG4gICAgbGV0IGhpdE5vbk1vZGFscyA9IGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaW5wdXQuaGl0Tm9uTW9kYWwpO1xyXG4gICAgaWYgKGhpdE5vbk1vZGFscy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBoaXROb25Nb2RhbHMuZm9yRWFjaChoID0+IGguaGl0Tm9uTW9kYWwgPSBmYWxzZSk7IC8vcmVtb3ZlIGZsYWdzIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCB0byBzdWJzZXF1ZW50IHVwZGF0ZXNcclxuICAgICAgZm9sZGVycy5mb3JFYWNoKGYgPT4gZi5jbGVhck1vZGFsRWRpdG9yKCkpOyAvL3RoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gbm90IGhpZGUgaXRlbXMgbmV3bHkgZGlzcGxheWVkIGluIHRoaXMgZnJhbWVcclxuICAgIH1cclxuICAgIG1vdXNlSW5wdXQuY2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2gobz0+by5jbGlja2VkID0gZmFsc2UpO1xyXG4gICAgcmV0dXJuIG1vdXNlSW5wdXQuaW50ZXJzZWN0aW9uczsgLy9zanB0IHdhbnRlZCB0aGlzXHJcbiAgfVxyXG5cclxuICAvL2lmIGFueSBpbnB1dC5pbnRlcmFjdGlvbnMgaGF2ZSBoaXRWb2x1bWUgdGhhdCBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgbm90IGN1cnJlbnRseSBpbiBoaXRzY2FuT2JqZWN0cyxcclxuICAvL3RoYXQgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGNhbmNlbGxlZC4gRXNwZWNpYWxseSBwcm9ibGVtYXRpYyB3aXRoIGUuZy4gcHJlc3NpbmcgJ3JlYXR0YWNoJyB3aGVuIHRoZSBwYXJlbnQgaXMgY2xvc2VkLlxyXG4gIGZ1bmN0aW9uIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbnMsIGhpdHNjYW5PYmplY3RzICkge1xyXG4gICAgWydwcmVzcycsICdncmlwJywgJ2hvdmVyJ10uZm9yRWFjaCggaW50ZXJhY3Rpb25OYW1lID0+IHtcclxuICAgICAgY29uc3QgaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXTtcclxuICAgICAgaWYgKGludGVyYWN0aW9uICYmIGhpdHNjYW5PYmplY3RzLmluZGV4T2YoaW50ZXJhY3Rpb24uaGl0Vm9sdW1lKSA8IDApIHtcclxuICAgICAgICBpbnRlcmFjdGlvbnNbaW50ZXJhY3Rpb25OYW1lXSA9IHVuZGVmaW5lZDsgXHJcbiAgICAgICAgLy9vbmx5IGJlIHBvbGl0ZSB0byBpbmZvcm0gdGhlIGludGVyYWN0aW9uIGFzIHdlbGw7IHVwZGF0ZSB3aXRoIGVtcHR5IGlucHV0T2JqZWN0cyBhcmcgc2hvdWxkIGRvIHRoZSB0cmljay5cclxuICAgICAgICBpbnRlcmFjdGlvbi51cGRhdGUoIFtdICk7XHJcbiAgICAgIH0gXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHVwZGF0ZUxhc2VyKCBsYXNlciwgcG9pbnQgKXtcclxuICAgIGNvbnN0IHBwID0gbGFzZXIuZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpLmFycmF5O1xyXG4gICAgcHBbM10gPSBwb2ludC54O1xyXG4gICAgcHBbNF0gPSBwb2ludC55O1xyXG4gICAgcHBbNV0gPSBwb2ludC56O1xyXG4gICAgcHAubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0IGljZXNbIDEgXS5jb3B5KCBwb2ludCApO1xyXG4gICAgbGFzZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgICBsYXNlci5nZW9tZXRyeS5jb21wdXRlQm91bmRpbmdTcGhlcmUoKTtcclxuICAgIGxhc2VyLmdlb21ldHJ5LmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgLy9sYXNlci5nZW9tZXRyeS52ZXJ0aWNlc05lZWRVcGRhdGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VJbnRlcnNlY3Rpb25zKCBpbnRlcnNlY3Rpb25zLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBpZiggaW50ZXJzZWN0aW9ucy5sZW5ndGggPiAwICl7XHJcbiAgICAgIGNvbnN0IGZpcnN0SGl0ID0gaW50ZXJzZWN0aW9uc1sgMCBdO1xyXG4gICAgICB1cGRhdGVMYXNlciggbGFzZXIsIGZpcnN0SGl0LnBvaW50ICk7XHJcbiAgICAgIGN1cnNvci5wb3NpdGlvbi5jb3B5KCBmaXJzdEhpdC5wb2ludCApO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGN1cnNvci51cGRhdGVNYXRyaXhXb3JsZCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgbGFzZXIudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBjdXJzb3IudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGFyc2VNb3VzZUludGVyc2VjdGlvbiggaW50ZXJzZWN0aW9uLCBsYXNlciwgY3Vyc29yICl7XHJcbiAgICBjdXJzb3IucG9zaXRpb24uY29weSggaW50ZXJzZWN0aW9uICk7XHJcbiAgICB1cGRhdGVMYXNlciggbGFzZXIsIGN1cnNvci5wb3NpdGlvbiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW50ZXJzZWN0aW9uKCByYXljYXN0LCBtb3VzZSwgY2FtZXJhICl7XHJcbiAgICByYXljYXN0LnNldEZyb21DYW1lcmEoIG1vdXNlLCBjYW1lcmEgKTtcclxuICAgIGNvbnN0IGhpdHNjYW5PYmplY3RzID0gZ2V0VmlzaWJsZUhpdHNjYW5PYmplY3RzKCk7XHJcbiAgICByZXR1cm4gcmF5Y2FzdC5pbnRlcnNlY3RPYmplY3RzKCBoaXRzY2FuT2JqZWN0cywgZmFsc2UgKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIG1vdXNlSW50ZXJzZWN0c1BsYW5lKCByYXljYXN0LCB2LCBwbGFuZSApe1xyXG4gICAgcmV0dXJuIHJheWNhc3QucmF5LmludGVyc2VjdFBsYW5lKCBwbGFuZSwgdiApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gcGVyZm9ybU1vdXNlSW5wdXQoIGhpdHNjYW5PYmplY3RzLCB7Ym94LG9iamVjdCxyYXljYXN0LGxhc2VyLGN1cnNvcixtb3VzZSxtb3VzZUNhbWVyYSwgaW50ZXJhY3Rpb259ID0ge30gKXtcclxuICAgIGNoZWNrQ2FuY2VsbGVkSW50ZXJhY3Rpb25zKCBpbnRlcmFjdGlvbiwgaGl0c2Nhbk9iamVjdHMgKTtcclxuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gW107XHJcblxyXG4gICAgaWYgKG1vdXNlQ2FtZXJhKSB7XHJcbiAgICAgIGludGVyc2VjdGlvbnMgPSBwZXJmb3JtTW91c2VJbnRlcnNlY3Rpb24oIHJheWNhc3QsIG1vdXNlLCBtb3VzZUNhbWVyYSApO1xyXG4gICAgICBwYXJzZUludGVyc2VjdGlvbnMoIGludGVyc2VjdGlvbnMsIGxhc2VyLCBjdXJzb3IgKTtcclxuICAgICAgY3Vyc29yLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICBsYXNlci52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW50ZXJzZWN0aW9ucztcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpO1xyXG5cclxuXHJcblxyXG5cclxuICAvKlxyXG4gICAgUHVibGljIG1ldGhvZHMuXHJcbiAgKi9cclxuXHJcbiAgY29uc3QgcHVibGljSW50ZXJmYWNlID0ge1xyXG4gICAgY3JlYXRlLFxyXG4gICAgYWRkSW5wdXRPYmplY3QsXHJcbiAgICBlbmFibGVNb3VzZSxcclxuICAgIGRpc2FibGVNb3VzZSxcclxuICAgIHRleHRDcmVhdG9yLCAvL2NoZWFwIHdheSBvZiBleHBvc2luZyB0aGlzIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IGhvc3QgYXBwbGljYXRpb24uXHJcbiAgICBnbG9iYWxFdmVudHMsXHJcbiAgICBjbGVhckFsbCxcclxuICAgIHVwZGF0ZVxyXG4gIH07XHJcbiAgLy8gYWxsb3cgdXNlciB0byBjYWxsIFwiZGF0LkdVSVZSLmF1dG9VcGRhdGUgPSBmYWxzZVwiIGFuZCB0aGVuIHVwZGF0ZSBtYW51YWxseSB3aXRoXHJcbiAgLy8gXCJkYXQuR1VJVlIudXBkYXRlKClcIlxyXG4gIC8vIGV4cG9zZSBhdXRvVXBkYXRlIGFzIHByb3BlcnR5IHNvIHRoYXQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIHByb3Blcmx5IGVmZmVjdGVkXHJcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KCBwdWJsaWNJbnRlcmZhY2UsICdhdXRvVXBkYXRlJywgeyBnZXQ6ICgpPT4gYXV0b1VwZGF0ZSwgc2V0OiB2ID0+IGF1dG9VcGRhdGUgPSB2IH0gKTtcclxuICByZXR1cm4gcHVibGljSW50ZXJmYWNlO1xyXG5cclxufSgpKTtcclxuXHJcbmlmKCB3aW5kb3cgKXtcclxuICBpZiggd2luZG93LmRhdCA9PT0gdW5kZWZpbmVkICl7XHJcbiAgICB3aW5kb3cuZGF0ID0ge307XHJcbiAgfVxyXG5cclxuICB3aW5kb3cuZGF0LkdVSVZSID0gR1VJVlI7XHJcbn1cclxuXHJcbmlmKCBtb2R1bGUgKXtcclxuICBtb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIGRhdDogR1VJVlJcclxuICB9O1xyXG59XHJcblxyXG5pZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcclxuICBkZWZpbmUoW10sIEdVSVZSKTtcclxufVxyXG5cclxuLypcclxuICBCdW5jaCBvZiBzdGF0ZS1sZXNzIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gaXNOdW1iZXIobikge1xyXG4gIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzQm9vbGVhbihuKXtcclxuICByZXR1cm4gdHlwZW9mIG4gPT09ICdib29sZWFuJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcclxuICBjb25zdCBnZXRUeXBlID0ge307XHJcbiAgcmV0dXJuIGZ1bmN0aW9uVG9DaGVjayAmJiBnZXRUeXBlLnRvU3RyaW5nLmNhbGwoZnVuY3Rpb25Ub0NoZWNrKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcclxufVxyXG5cclxuLy8gIG9ubHkge30gb2JqZWN0cyBub3QgYXJyYXlzXHJcbi8vICAgICAgICAgICAgICAgICAgICB3aGljaCBhcmUgdGVjaG5pY2FsbHkgb2JqZWN0cyBidXQgeW91J3JlIGp1c3QgYmVpbmcgcGVkYW50aWNcclxuZnVuY3Rpb24gaXNPYmplY3QgKGl0ZW0pIHtcclxuICByZXR1cm4gKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBcnJheSggbyApe1xyXG4gIHJldHVybiBBcnJheS5pc0FycmF5KCBvICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzU3RyaW5nKCBvICl7XHJcbiAgcmV0dXJuIHR5cGVvZiBvID09PSAnc3RyaW5nJztcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb2xvciggbyApe1xyXG4gIGlmICh0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcclxuICByZXR1cm4gby5pc0NvbG9yID8gdHJ1ZSA6IGZhbHNlO1xyXG59XHJcblxyXG5cclxuXHJcbi8qXHJcbiAgQ29udHJvbGxlci1zcGVjaWZpYyBzdXBwb3J0LlxyXG4qL1xyXG5cclxuZnVuY3Rpb24gYmluZFZpdmVDb250cm9sbGVyKCBpbnB1dCwgY29udHJvbGxlciwgcHJlc3NlZCwgZ3JpcHBlZCApe1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJkb3duJywgKCk9PnByZXNzZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ3RyaWdnZXJ1cCcsICgpPT5wcmVzc2VkKCBmYWxzZSApICk7XHJcbiAgY29udHJvbGxlci5hZGRFdmVudExpc3RlbmVyKCAnZ3JpcHNkb3duJywgKCk9PmdyaXBwZWQoIHRydWUgKSApO1xyXG4gIGNvbnRyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lciggJ2dyaXBzdXAnLCAoKT0+Z3JpcHBlZCggZmFsc2UgKSApO1xyXG5cclxuICBjb25zdCBnYW1lcGFkID0gY29udHJvbGxlci5nZXRHYW1lcGFkKCk7XHJcbiAgZnVuY3Rpb24gdmlicmF0ZSggdCwgYSApe1xyXG4gICAgaWYoIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMubGVuZ3RoID4gMCApe1xyXG4gICAgICBnYW1lcGFkLmhhcHRpY0FjdHVhdG9yc1sgMCBdLnB1bHNlKCB0LCBhICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzVGFwKCl7XHJcbiAgICBzZXRJbnRlcnZhbFRpbWVzKCAoeCx0LGEpPT52aWJyYXRlKDEtYSwgMC41KSwgMTAsIDIwICk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBoYXB0aWNzRWNobygpe1xyXG4gICAgc2V0SW50ZXJ2YWxUaW1lcyggKHgsdCxhKT0+dmlicmF0ZSg0LCAxLjAgKiAoMS1hKSksIDEwMCwgNCApO1xyXG4gIH1cclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnb25Db250cm9sbGVySGVsZCcsIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgdmlicmF0ZSggMC4zLCAwLjMgKTtcclxuICB9KTtcclxuXHJcbiAgaW5wdXQuZXZlbnRzLm9uKCAnZ3JhYmJlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzVGFwKCk7XHJcbiAgfSk7XHJcblxyXG4gIGlucHV0LmV2ZW50cy5vbiggJ2dyYWJSZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5uZWQnLCBmdW5jdGlvbigpe1xyXG4gICAgaGFwdGljc1RhcCgpO1xyXG4gIH0pO1xyXG5cclxuICBpbnB1dC5ldmVudHMub24oICdwaW5SZWxlYXNlZCcsIGZ1bmN0aW9uKCl7XHJcbiAgICBoYXB0aWNzRWNobygpO1xyXG4gIH0pO1xyXG5cclxuXHJcblxyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJbnRlcnZhbFRpbWVzKCBjYiwgZGVsYXksIHRpbWVzICl7XHJcbiAgbGV0IHggPSAwO1xyXG4gIGxldCBpZCA9IHNldEludGVydmFsKCBmdW5jdGlvbigpe1xyXG4gICAgY2IoIHgsIHRpbWVzLCB4L3RpbWVzICk7XHJcbiAgICB4Kys7XHJcbiAgICBpZiggeD49dGltZXMgKXtcclxuICAgICAgY2xlYXJJbnRlcnZhbCggaWQgKTtcclxuICAgIH1cclxuICB9LCBkZWxheSApO1xyXG4gIHJldHVybiBpZDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcbmltcG9ydCBFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XHJcbmltcG9ydCB7IGdldFRvcExldmVsRm9sZGVyIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2xvYmFsRXZlbnRzID0gbmV3IEVtaXR0ZXIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUludGVyYWN0aW9uKCBoaXRWb2x1bWUgKXtcclxuICBjb25zdCBldmVudHMgPSBuZXcgRW1pdHRlcigpO1xyXG5cclxuICBsZXQgYW55SG92ZXIgPSBmYWxzZTtcclxuICBsZXQgYW55UHJlc3NpbmcgPSBmYWxzZTtcclxuICBsZXQgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IHRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGNvbnN0IGF2YWlsYWJsZUlucHV0cyA9IFtdO1xyXG5cclxuICBmdW5jdGlvbiB1cGRhdGUoIGlucHV0T2JqZWN0cyApe1xyXG5cclxuICAgIGFueUhvdmVyID0gZmFsc2U7XHJcbiAgICBhbnlQcmVzc2luZyA9IGZhbHNlO1xyXG4gICAgYW55QWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXRPYmplY3RzLmZvckVhY2goIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG5cclxuICAgICAgaWYoIGF2YWlsYWJsZUlucHV0cy5pbmRleE9mKCBpbnB1dCApIDwgMCApe1xyXG4gICAgICAgIGF2YWlsYWJsZUlucHV0cy5wdXNoKCBpbnB1dCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB7IGhpdE9iamVjdCwgaGl0UG9pbnQgfSA9IGV4dHJhY3RIaXQoIGlucHV0ICk7XHJcblxyXG4gICAgICB2YXIgaG92ZXIgPSBoaXRWb2x1bWUgPT09IGhpdE9iamVjdDtcclxuICAgICAgYW55SG92ZXIgPSBhbnlIb3ZlciB8fCBob3ZlcjtcclxuXHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdwcmVzc2VkJyxcclxuICAgICAgICBidXR0b25DbGlja05hbWU6ICdjbGlja2VkJywgLy9tYXliZSBub3Qgc3RhYmxlIHBhcnQgb2YgQVBJLi4uXHJcbiAgICAgICAgaW50ZXJhY3Rpb25OYW1lOiAncHJlc3MnLFxyXG4gICAgICAgIGRvd25OYW1lOiAnb25QcmVzc2VkJyxcclxuICAgICAgICBob2xkTmFtZTogJ3ByZXNzaW5nJyxcclxuICAgICAgICB1cE5hbWU6ICdvblJlbGVhc2VkJyxcclxuICAgICAgICAgLy9pbnZlbnRpbmcgYSAnaG92ZXJpbmcnIGV2ZW50IHRoYXQgb25seSBhcHBsaWVzIHRvICdwcmVzc2VkJyBidXR0b24uLi5cclxuICAgICAgICAgLy90aGlzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIHN0YWJsZSBpbnRlcmZhY2UsIGJ1dCBJIHdhbnRzIGl0IG1vcmUgdGhhbiBJXHJcbiAgICAgICAgIC8vd2FudCB0byBtYWtlIHNvbWV0aGluZyB0b3RhbGx5IGNvaGVyZW50IGFuZCByb2J1c3QganVzdCBub3cuXHJcbiAgICAgICAgaG92ZXJOYW1lOiAnaG92ZXJpbmcnXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcGVyZm9ybVN0YXRlRXZlbnRzKHtcclxuICAgICAgICBpbnB1dCxcclxuICAgICAgICBob3ZlcixcclxuICAgICAgICBoaXRPYmplY3QsIGhpdFBvaW50LFxyXG4gICAgICAgIGJ1dHRvbk5hbWU6ICdncmlwcGVkJyxcclxuICAgICAgICBpbnRlcmFjdGlvbk5hbWU6ICdncmlwJyxcclxuICAgICAgICBkb3duTmFtZTogJ29uR3JpcHBlZCcsXHJcbiAgICAgICAgaG9sZE5hbWU6ICdncmlwcGluZycsXHJcbiAgICAgICAgdXBOYW1lOiAnb25SZWxlYXNlR3JpcCdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBldmVudHMuZW1pdCggJ3RpY2snLCB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIGlucHV0T2JqZWN0OiBpbnB1dC5vYmplY3RcclxuICAgICAgfSApO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGV4dHJhY3RIaXQoIGlucHV0ICl7XHJcbiAgICBpZiggaW5wdXQuaW50ZXJzZWN0aW9ucy5sZW5ndGggPD0gMCApe1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiB0VmVjdG9yLnNldEZyb21NYXRyaXhQb3NpdGlvbiggaW5wdXQuY3Vyc29yLm1hdHJpeFdvcmxkICkuY2xvbmUoKSwgLy94eHg6IGdhcmJhZ2U/XHJcbiAgICAgICAgaGl0T2JqZWN0OiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhpdFBvaW50OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ucG9pbnQsXHJcbiAgICAgICAgaGl0T2JqZWN0OiBpbnB1dC5pbnRlcnNlY3Rpb25zWyAwIF0ub2JqZWN0XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwZXJmb3JtU3RhdGVFdmVudHMoe1xyXG4gICAgaW5wdXQsIGhvdmVyLFxyXG4gICAgaGl0T2JqZWN0LCBoaXRQb2ludCxcclxuICAgIGJ1dHRvbk5hbWUsIGJ1dHRvbkNsaWNrTmFtZSwgaW50ZXJhY3Rpb25OYW1lLCBkb3duTmFtZSwgaG9sZE5hbWUsIHVwTmFtZSwgaG92ZXJOYW1lXHJcbiAgfSA9IHt9ICl7XHJcblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IHRydWUgJiYgaGl0T2JqZWN0ID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgLy9jbGlja2VkIGFuZCBkaWRuJ3QgaGl0IGFueSBHVUkgb2JqZWN0LlxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlucHV0LmhpdE5vbk1vZGFsID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhvdmVyaW5nIGFuZCBidXR0b24gTk9UIGRvd25cclxuICAgIGlmKCBob3Zlck5hbWUgJiYgaG92ZXIgJiYgaW5wdXRbIGJ1dHRvbk5hbWUgXSA9PT0gZmFsc2UgKSB7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgZXZlbnRzLmVtaXQoIGhvdmVyTmFtZSwgcGF5bG9hZCApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBob3ZlcmluZyBhbmQgYnV0dG9uIGRvd24gYnV0IG5vIGludGVyYWN0aW9ucyBhY3RpdmUgeWV0XHJcbiAgICAvLy0tLT4gc2hvdWxkIGJlIF4gYnV0dG9uICdjbGlja2VkJy4uLiBpZSBvbmx5IGlmIGl0IGNhbWUgZG93biBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuXHJcbiAgICAvL3NvLCBzaG91bGQgd2UgcGFzcyAnYnV0dG9uQ2xpY2tOYW1lJyBhcyBhbiBhcmd1bWVudCAoYW5kIHVzZSBidXR0b25OYW1lIGlmIG5vdCBwcm92aWRlZCk/XHJcbiAgICAvLy0tLT4+Pj4gWFhYOiBpcyB0aGlzIFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8gd29ya2luZyB3aXRoIFZpdmUgY29udHJvbGxlcnM/IFxyXG4gICAgaWYoIGhvdmVyICYmIGlucHV0WyBidXR0b25DbGlja05hbWUgfHwgYnV0dG9uTmFtZSBdID09PSB0cnVlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gdW5kZWZpbmVkICl7XHJcblxyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdCxcclxuICAgICAgICBsb2NrZWQ6IGZhbHNlXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvL2ZsYWcgdGhhdCB3aGF0IHdlJ3ZlIGNsaWNrZWQgKmlzbid0KiBwYXJ0IG9mIGEgbW9kYWwgZWRpdG9yXHJcbiAgICAgIGlmICghaGl0T2JqZWN0LnVzZXJEYXRhLnBhcnRPZk1vZGFsKSBpbnB1dC5oaXROb25Nb2RhbCA9IHRydWU7XHJcblxyXG4gICAgICBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCk7XHJcbiAgICAgIFxyXG4gICAgICAvL2VtaXQgZ2xvYmFsIGNsaWNrIGV2ZW50IGFzIHdlbGwuLi5cclxuICAgICAgZ2xvYmFsRXZlbnRzLmVtaXQoIGRvd25OYW1lLCBwYXlsb2FkICk7XHJcbiAgICAgIGV2ZW50cy5lbWl0KCBkb3duTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgaWYoIHBheWxvYWQubG9ja2VkICl7XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gaW50ZXJhY3Rpb247XHJcbiAgICAgICAgaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPSBpbnRlcmFjdGlvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG4gICAgICBhbnlBY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gc3RpbGwgZG93biBhbmQgdGhpcyBpcyB0aGUgYWN0aXZlIGludGVyYWN0aW9uXHJcbiAgICBpZiggaW5wdXRbIGJ1dHRvbk5hbWUgXSAmJiBpbnB1dC5pbnRlcmFjdGlvblsgaW50ZXJhY3Rpb25OYW1lIF0gPT09IGludGVyYWN0aW9uICl7XHJcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgaGl0T2JqZWN0LFxyXG4gICAgICAgIHBvaW50OiBoaXRQb2ludCxcclxuICAgICAgICBpbnB1dE9iamVjdDogaW5wdXQub2JqZWN0LFxyXG4gICAgICAgIGxvY2tlZDogZmFsc2VcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGV2ZW50cy5lbWl0KCBob2xkTmFtZSwgcGF5bG9hZCApO1xyXG5cclxuICAgICAgYW55UHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgaW5wdXQuZXZlbnRzLmVtaXQoICdvbkNvbnRyb2xsZXJIZWxkJyApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBidXR0b24gbm90IGRvd24gYW5kIHRoaXMgaXMgdGhlIGFjdGl2ZSBpbnRlcmFjdGlvblxyXG4gICAgaWYoIGlucHV0WyBidXR0b25OYW1lIF0gPT09IGZhbHNlICYmIGlucHV0LmludGVyYWN0aW9uWyBpbnRlcmFjdGlvbk5hbWUgXSA9PT0gaW50ZXJhY3Rpb24gKXtcclxuICAgICAgaW5wdXQuaW50ZXJhY3Rpb25bIGludGVyYWN0aW9uTmFtZSBdID0gdW5kZWZpbmVkO1xyXG4gICAgICBpbnB1dC5pbnRlcmFjdGlvbi5ob3ZlciA9IHVuZGVmaW5lZDtcclxuICAgICAgZXZlbnRzLmVtaXQoIHVwTmFtZSwge1xyXG4gICAgICAgIGlucHV0LFxyXG4gICAgICAgIGhpdE9iamVjdCxcclxuICAgICAgICBwb2ludDogaGl0UG9pbnQsXHJcbiAgICAgICAgaW5wdXRPYmplY3Q6IGlucHV0Lm9iamVjdFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBwcm9tb3RlWk9yZGVyKGhpdE9iamVjdCkge1xyXG4gICAgY29uc3QgdG9wRm9sZGVyID0gZ2V0VG9wTGV2ZWxGb2xkZXIoaGl0T2JqZWN0KTtcclxuICAgIHRvcEZvbGRlci5wcm9tb3RlWk9yZGVyKCk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBpc01haW5Ib3Zlcigpe1xyXG5cclxuICAgIGxldCBub01haW5Ib3ZlciA9IHRydWU7XHJcbiAgICBmb3IoIGxldCBpPTA7IGk8YXZhaWxhYmxlSW5wdXRzLmxlbmd0aDsgaSsrICl7XHJcbiAgICAgIGlmKCBhdmFpbGFibGVJbnB1dHNbIGkgXS5pbnRlcmFjdGlvbi5ob3ZlciAhPT0gdW5kZWZpbmVkICl7XHJcbiAgICAgICAgbm9NYWluSG92ZXIgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKCBub01haW5Ib3ZlciApe1xyXG4gICAgICByZXR1cm4gYW55SG92ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGF2YWlsYWJsZUlucHV0cy5maWx0ZXIoIGZ1bmN0aW9uKCBpbnB1dCApe1xyXG4gICAgICByZXR1cm4gaW5wdXQuaW50ZXJhY3Rpb24uaG92ZXIgPT09IGludGVyYWN0aW9uO1xyXG4gICAgfSkubGVuZ3RoID4gMCApe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3QgaW50ZXJhY3Rpb24gPSB7XHJcbiAgICBob3ZlcmluZzogaXNNYWluSG92ZXIsXHJcbiAgICBwcmVzc2luZzogKCk9PmFueVByZXNzaW5nLFxyXG4gICAgdXBkYXRlLFxyXG4gICAgZXZlbnRzLFxyXG4gICAgaGl0Vm9sdW1lXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGludGVyYWN0aW9uO1xyXG59XHJcblxyXG4iLCIvKipcclxuICogXHJcbiAqIFRPRE86IGN1cnNvcnMuLi5cclxuICogTWF5YmUgc29tZXRoaW5nIGxpa2UgbW9iaWxlIGlucHV0IHdoZXJlIHlvdSBzd2l0Y2ggYmV0d2VlbiBsZXR0ZXJzICYgbnVtYmVycyAvIHN5bWJvbHNcclxuICogXHJcbiAqIFNvbWV0aGluZyBsaWtlIGEgc3BsaXQga2V5Ym9hcmQgYWxhIGh0dHBzOi8vbWVkaXVtLmNvbS9hYXJvbm4vdnItdGV4dC1pbnB1dC1zcGxpdC1rZXlib2FyZC1lNWJmM2ZkODdhNGNcclxuICogbWlnaHQgYmUgYmV0dGVyLlxyXG4gKiBcclxuICogUGV0ZXIgVG9kZCAyMDE3XHJcbiAqL1xyXG5cclxuaW1wb3J0IEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcclxuaW1wb3J0IGNyZWF0ZUltYWdlQnV0dG9uR3JpZCBmcm9tICcuL2ltYWdlYnV0dG9uZ3JpZCc7XHJcbmltcG9ydCBjcmVhdGVJbWFnZUJ1dHRvbiBmcm9tICcuL2ltYWdlYnV0dG9uJztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUtleWJvYXJkKCB7IFxyXG4gICAga2V5TGlzdGVuZXIsXHJcbiAgICB0ZXh0Q3JlYXRvclxyXG59ID0ge30pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgICBjb25zdCBvZmZzZXRUcmFuc2Zvcm0gPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICAgIGdyb3VwLmFkZChvZmZzZXRUcmFuc2Zvcm0pO1xyXG5cclxuICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgICBldmVudHMub24oJ2tleURvd24nLCBrZXlMaXN0ZW5lcik7XHJcbiAgICBcclxuICAgIGNvbnN0IGxvd2VyQ2hhcnMgPSBcIjEyMzQ1Njc4OTAtPXF3ZXJ0eXVpb3BbXWFzZGZnaGprbDsnI1xcXFx6eGN2Ym5tLC4vIFwiLnNwbGl0KCcnKTtcclxuICAgIGxldCBvYmplY3RzID0gbG93ZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBsb3dlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLmFkZChsb3dlcktleXMpO1xyXG5cclxuICAgIGNvbnN0IHVwcGVyQ2hhcnMgPSBcIiFcXFwiwqMkJV4mKigpXytRV0VSVFlVSU9Qe31BU0RGR0hKS0w6QH58WlhDVkJOTTw+PyBcIi5zcGxpdCgnJyk7XHJcbiAgICBvYmplY3RzID0gdXBwZXJDaGFycy5tYXAoayA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCBrKSwgdGV4dDogayB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB1cHBlcktleXMgPSBjcmVhdGVJbWFnZUJ1dHRvbkdyaWQoe3RleHRDcmVhdG9yLCBvYmplY3RzLCBjb2x1bW5zOiAxMn0pO1xyXG4gICAgdXBwZXJLZXlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQodXBwZXJLZXlzKTtcclxuXHJcbiAgICBsZXQgc2hpZnQgPSBmYWxzZTtcclxuICAgIGZ1bmN0aW9uIHNoaWZ0VG9nZ2xlKCkge1xyXG4gICAgICAgIHNoaWZ0ID0gIXNoaWZ0O1xyXG4gICAgICAgIGxvd2VyS2V5cy52aXNpYmxlID0gIXNoaWZ0O1xyXG4gICAgICAgIHVwcGVyS2V5cy52aXNpYmxlID0gc2hpZnQ7XHJcbiAgIH1cclxuXHJcbiAgIGNvbnN0IHNwYWNlQmFyID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHsgdGV4dENyZWF0b3IsIGNvbHVtbnM6IDEsIHJvd0hlaWdodDogMC4xLCBvYmplY3RzOiBbXHJcbiAgICAgICB7ZnVuYzogKCk9PmV2ZW50cy5lbWl0KCdrZXlEb3duJywgJyAnKSwgdGV4dDogJ3NwYWNlJ31cclxuICAgIF19KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BhY2VCYXIpO1xyXG4gICAgdmFyIHkgPSBzcGFjZUJhci5wb3NpdGlvbi55ID0gLTAuNSAqIChsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcpO1xyXG4gICAgXHJcbiAgICBvYmplY3RzID0gW1xyXG4gICAgICAgIHsgdGV4dDogXCJzaGlmdFwiLCBmdW5jOiBzaGlmdFRvZ2dsZSB9LFxyXG4gICAgICAgIHsgdGV4dDogXCJiYWNrc3BhY2VcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxiJykgfSxcclxuICAgICAgICB7IHRleHQ6IFwiZW50ZXJcIiwgZnVuYzogKCkgPT4gZXZlbnRzLmVtaXQoJ2tleURvd24nLCAnXFxuJykgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNwZWNpYWxLZXlzID0gY3JlYXRlSW1hZ2VCdXR0b25HcmlkKHt0ZXh0Q3JlYXRvciwgb2JqZWN0cywgY29sdW1uczogMywgcm93SGVpZ2h0OiAwLjF9KTtcclxuICAgIG9mZnNldFRyYW5zZm9ybS5hZGQoc3BlY2lhbEtleXMpO1xyXG4gICAgc3BlY2lhbEtleXMucG9zaXRpb24ueSA9IHktMC41ICogKHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nKTtcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBsb3dlcktleXMuc3BhY2luZyArIHNwYWNlQmFyLnNwYWNpbmcgKyBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG4gICAgLy90aGlzIGxvb2tzIHJpZ2h0LCBtdXN0IGFkbWl0IEkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggZXhhY3RseSB3aHkgaXQgc2hvdWxkIGJlLlxyXG4gICAgb2Zmc2V0VHJhbnNmb3JtLnBvc2l0aW9uLnkgPSBzcGVjaWFsS2V5cy5zcGFjaW5nO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShncm91cCwgJ2hpdHNjYW4nLCB7XHJcbiAgICAgICAgZ2V0OiAoKSA9PiBbXHJcbiAgICAgICAgICAgIHNwZWNpYWxLZXlzLmhpdHNjYW4sIHNwYWNlQmFyLmhpdHNjYW4sIHNoaWZ0ID8gdXBwZXJLZXlzLmhpdHNjYW4gOiBsb3dlcktleXMuaGl0c2NhblxyXG4gICAgICAgIF0ucmVkdWNlKChhLCBiKSA9PiB7IHJldHVybiBhLmNvbmNhdChiKX0sIFtdKVxyXG4gICAgfSk7XHJcblxyXG4gICAgc3BhY2VCYXIuZm9sZGVyID0gdXBwZXJLZXlzLmZvbGRlciA9IGxvd2VyS2V5cy5mb2xkZXIgPSBzcGVjaWFsS2V5cy5mb2xkZXIgPSBncm91cDtcclxuICAgIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSAoaW5wdXRzKSA9PiB7XHJcbiAgICAgICAgc3BlY2lhbEtleXMudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIGxvd2VyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICAgICAgc3BhY2VCYXIudXBkYXRlQ29udHJvbChpbnB1dHMpO1xyXG4gICAgICAgIHVwcGVyS2V5cy51cGRhdGVDb250cm9sKGlucHV0cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBncm91cDtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0ICogYXMgU2hhcmVkTWF0ZXJpYWxzIGZyb20gJy4vc2hhcmVkbWF0ZXJpYWxzJztcclxuaW1wb3J0ICogYXMgQ29sb3JzIGZyb20gJy4vY29sb3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhbGlnbkxlZnQoIG9iaiApe1xyXG4gIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5NZXNoICl7XHJcbiAgICBvYmouZ2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nQm94KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueCAtIG9iai5nZW9tZXRyeS5ib3VuZGluZ0JveC5tYXgueTtcclxuICAgIG9iai5nZW9tZXRyeS50cmFuc2xhdGUoIHdpZHRoLCAwLCAwICk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBlbHNlIGlmKCBvYmogaW5zdGFuY2VvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeSApe1xyXG4gICAgb2JqLmNvbXB1dGVCb3VuZGluZ0JveCgpO1xyXG4gICAgY29uc3Qgd2lkdGggPSBvYmouYm91bmRpbmdCb3gubWF4LnggLSBvYmouYm91bmRpbmdCb3gubWF4Lnk7XHJcbiAgICBvYmoudHJhbnNsYXRlKCB3aWR0aCwgMCwgMCApO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYW5lbCggd2lkdGgsIGhlaWdodCwgZGVwdGgsIHVuaXF1ZU1hdGVyaWFsICl7XHJcbiAgY29uc3QgbWF0ZXJpYWwgPSB1bmlxdWVNYXRlcmlhbCA/IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7Y29sb3I6MHhmZmZmZmZ9KSA6IFNoYXJlZE1hdGVyaWFscy5QQU5FTDtcclxuICBjb25zdCBwYW5lbCA9IG5ldyBUSFJFRS5NZXNoKCBuZXcgVEhSRUUuQm94R2VvbWV0cnkoIHdpZHRoLCBoZWlnaHQsIGRlcHRoICksIG1hdGVyaWFsICk7XHJcbiAgcGFuZWwuZ2VvbWV0cnkudHJhbnNsYXRlKCB3aWR0aCAqIDAuNSwgMCwgMCApO1xyXG5cclxuICBpZiggdW5pcXVlTWF0ZXJpYWwgKXtcclxuICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQkFDSyApO1xyXG4gIH1cclxuICBlbHNle1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHBhbmVsLmdlb21ldHJ5LCBDb2xvcnMuREVGQVVMVF9CQUNLICk7XHJcbiAgfVxyXG5cclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50V2lkdGggPSB3aWR0aDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50SGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIHBhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCA9IGRlcHRoO1xyXG5cclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZVBhbmVsKHBhbmVsLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCkge1xyXG4gIHBhbmVsLmdlb21ldHJ5LnNjYWxlKHdpZHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRXaWR0aCwgaGVpZ2h0L3BhbmVsLnVzZXJEYXRhLmN1cnJlbnRIZWlnaHQsIGRlcHRoL3BhbmVsLnVzZXJEYXRhLmN1cnJlbnREZXB0aCk7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudFdpZHRoID0gd2lkdGg7XHJcbiAgcGFuZWwudXNlckRhdGEuY3VycmVudEhlaWdodCA9IGhlaWdodDtcclxuICBwYW5lbC51c2VyRGF0YS5jdXJyZW50RGVwdGggPSBkZXB0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBjb2xvciApe1xyXG4gIGNvbnN0IHBhbmVsID0gbmV3IFRIUkVFLk1lc2goIG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggQ09OVFJPTExFUl9JRF9XSURUSCwgaGVpZ2h0LCBDT05UUk9MTEVSX0lEX0RFUFRIICksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIHBhbmVsLmdlb21ldHJ5LnRyYW5zbGF0ZSggQ09OVFJPTExFUl9JRF9XSURUSCAqIDAuNSwgMCwgMCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBwYW5lbC5nZW9tZXRyeSwgY29sb3IgKTtcclxuICByZXR1cm4gcGFuZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEb3duQXJyb3coKXtcclxuICBjb25zdCB3ID0gMC4wMDk2O1xyXG4gIGNvbnN0IGggPSAwLjAxNjtcclxuICBjb25zdCBzaCA9IG5ldyBUSFJFRS5TaGFwZSgpO1xyXG4gIHNoLm1vdmVUbygwLDApO1xyXG4gIHNoLmxpbmVUbygtdyxoKTtcclxuICBzaC5saW5lVG8odyxoKTtcclxuICBzaC5saW5lVG8oMCwwKTtcclxuXHJcbiAgY29uc3QgZ2VvID0gbmV3IFRIUkVFLlNoYXBlR2VvbWV0cnkoIHNoICk7XHJcbiAgZ2VvLnRyYW5zbGF0ZSggMCwgLWggKiAwLjUsIDAgKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBUSFJFRS5NZXNoKCBnZW8sIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgUEFORUxfV0lEVEggPSAxLjA7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9IRUlHSFQgPSAwLjA4O1xyXG5leHBvcnQgY29uc3QgUEFORUxfREVQVEggPSAwLjAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfU1BBQ0lORyA9IDA7Ly8uMDAxO1xyXG5leHBvcnQgY29uc3QgUEFORUxfTUFSR0lOID0gMC4wMTU7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9MQUJFTF9URVhUX01BUkdJTiA9IDAuMDY7XHJcbmV4cG9ydCBjb25zdCBQQU5FTF9WQUxVRV9URVhUX01BUkdJTiA9IDAuMDI7XHJcbmV4cG9ydCBjb25zdCBDT05UUk9MTEVSX0lEX1dJRFRIID0gMC4wMjtcclxuZXhwb3J0IGNvbnN0IENPTlRST0xMRVJfSURfREVQVEggPSAwLjAwMTtcclxuZXhwb3J0IGNvbnN0IEJVVFRPTl9ERVBUSCA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBGT0xERVJfV0lEVEggPSAxLjAyNjtcclxuZXhwb3J0IGNvbnN0IFNVQkZPTERFUl9XSURUSCA9IDEuMDtcclxuZXhwb3J0IGNvbnN0IEZPTERFUl9IRUlHSFQgPSAwLjA5O1xyXG5leHBvcnQgY29uc3QgRk9MREVSX0dSQUJfSEVJR0hUID0gMC4wNTEyO1xyXG5leHBvcnQgY29uc3QgQk9SREVSX1RISUNLTkVTUyA9IDAuMDE7XHJcbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9TSVpFID0gMC4wNTtcclxuZXhwb3J0IGNvbnN0IFRFWFRfU0NBTEUgPSAwLjAwMDI0O1xyXG5leHBvcnQgY29uc3QgR1JJRF9CVVRUT05fTUFSR0lOID0gMC4wMTsiLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IGNyZWF0ZUludGVyYWN0aW9uIGZyb20gJy4vaW50ZXJhY3Rpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZSggeyBncm91cCwgcGFuZWwgfSA9IHt9ICl7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIHBhbmVsICk7XHJcblxyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uR3JpcHBlZCcsIGhhbmRsZU9uR3JpcCApO1xyXG4gIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZUdyaXAnLCBoYW5kbGVPbkdyaXBSZWxlYXNlICk7XHJcblxyXG4gIC8vbGV0IG9sZFBhcmVudDtcclxuICBsZXQgb2xkUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG4gIGxldCBvbGRSb3RhdGlvbiA9IG5ldyBUSFJFRS5FdWxlcigpO1xyXG5cclxuICBjb25zdCByb3RhdGlvbkdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcbiAgcm90YXRpb25Hcm91cC5zY2FsZS5zZXQoIDAuMywgMC4zLCAwLjMgKTtcclxuICByb3RhdGlvbkdyb3VwLnBvc2l0aW9uLnNldCggLTAuMDE1LCAwLjAxNSwgMC4wICk7XHJcblxyXG5cclxuICBmdW5jdGlvbiBoYW5kbGVPbkdyaXAoIHAgKXtcclxuXHJcbiAgICBjb25zdCB7IGlucHV0T2JqZWN0LCBpbnB1dCB9ID0gcDtcclxuXHJcbiAgICBjb25zdCBmb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICBpZiggZm9sZGVyID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKCBmb2xkZXIuYmVpbmdNb3ZlZCA9PT0gdHJ1ZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgb2xkUG9zaXRpb24uY29weSggZm9sZGVyLnBvc2l0aW9uICk7XHJcbiAgICBvbGRSb3RhdGlvbi5jb3B5KCBmb2xkZXIucm90YXRpb24gKTtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uc2V0KCAwLDAsMCApO1xyXG4gICAgZm9sZGVyLnJvdGF0aW9uLnNldCggMCwwLDAgKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi54ID0gLU1hdGguUEkgKiAwLjU7XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IGZvbGRlci5wYXJlbnQ7XHJcblxyXG4gICAgcm90YXRpb25Hcm91cC5hZGQoIGZvbGRlciApO1xyXG5cclxuICAgIGlucHV0T2JqZWN0LmFkZCggcm90YXRpb25Hcm91cCApO1xyXG5cclxuICAgIHAubG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICBmb2xkZXIuYmVpbmdNb3ZlZCA9IHRydWU7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5uZWQnLCBpbnB1dCApO1xyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gaGFuZGxlT25HcmlwUmVsZWFzZSggeyBpbnB1dE9iamVjdCwgaW5wdXQgfT17fSApe1xyXG5cclxuICAgIGNvbnN0IGZvbGRlciA9IGdyb3VwLmZvbGRlcjtcclxuICAgIGlmKCBmb2xkZXIgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5vbGRQYXJlbnQgPT09IHVuZGVmaW5lZCApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYoIGZvbGRlci5iZWluZ01vdmVkID09PSBmYWxzZSApe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9sZGVyLm9sZFBhcmVudC5hZGQoIGZvbGRlciApO1xyXG4gICAgZm9sZGVyLm9sZFBhcmVudCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBmb2xkZXIucG9zaXRpb24uY29weSggb2xkUG9zaXRpb24gKTtcclxuICAgIGZvbGRlci5yb3RhdGlvbi5jb3B5KCBvbGRSb3RhdGlvbiApO1xyXG5cclxuICAgIGZvbGRlci5iZWluZ01vdmVkID0gZmFsc2U7XHJcblxyXG4gICAgaW5wdXQuZXZlbnRzLmVtaXQoICdwaW5SZWxlYXNlZCcsIGlucHV0ICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW50ZXJhY3Rpb247XHJcbn0iLCIvKipcclxuICogUEpUOiBUaGlzIGlzIGEgdmFyaWF0aW9uIG9uIHNkZnNoYWRlciBmcm9tIGJtZm9udCwgd2hpY2ggc2hvdWxkIEp1c3QgV29yayB3aXRoIGxvZ2FyaXRobWljIGRlcHRoIGJ1ZmZlcnMuXHJcbiAqIEl0IHNob3VsZCBhbHNvIGFsbG93IHNvbWUgb3RoZXIgYXNwZWN0cyBvZiBUSFJFRSByZW5kZXJpbmcgdG8gYmUgaW5jb3Jwb3JhdGVkLCBsaWtlIGZvZywgY2xpcHBpbmcgcGxhbmVzLi4uXHJcbiAqIEVudmlyb25tZW50IG1hcHMgYW5kIHZhcmlvdXMgb3RoZXIgYml0cyBmcm9tIE1lc2hCYXNpY01hdGVyaWFsIGFyZSByZW1vdmVkLlxyXG4gKiBBdCB0aW1lIG9mIHdyaXRpbmcsIHRoaXMgaXMgd29yayBpbiBwcm9ncmVzcywgYW5kIHNvbWV3aGF0IG1vcmUgYmxvYXRlZCB0aGFuIGl0IG5lZWRzIHRvIGJlLlxyXG4gKiBUaGUgc2hhZGVyIGNvZGUgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIFNoYWRlck1hdGVyaWFsIHJhdGhlciB0aGFuIFJhd1NoYWRlck1hdGVyaWFsLlxyXG4gKi9cclxuLy8gaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gJy4vbGF5b3V0JztcclxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJ29iamVjdC1hc3NpZ24nKTtcclxuXHJcbi8qKlxyXG4gKiBzdGFydGluZyBmcm9tIFRIUkVFIG1lc2hiYXNpYyBzaGFkZXJzLCBwcnVuaW5nIC8gbW9kaWZ5aW5nLi4uXHJcbiAqL1xyXG5jb25zdCBtZXNoYmFzaWNfdmVydCA9IGBcclxuI2RlZmluZSBVU0VfTUFQXHJcbiNkZWZpbmUgVVNFX1VWXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX3ZlcnRleD5cclxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc192ZXJ0ZXg+XHJcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX3ZlcnRleD5cclxuI2luY2x1ZGUgPGNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleD5cclxuXHJcbnZvaWQgbWFpbigpIHsgXHJcbiAgdlV2ID0gdXY7XHJcblx0I2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPGJlZ2luX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8cHJvamVjdF92ZXJ0ZXg+XHJcblx0I2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3ZlcnRleD5cclxuXHJcblx0I2luY2x1ZGUgPHdvcmxkcG9zX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX3ZlcnRleD5cclxuXHQjaW5jbHVkZSA8Zm9nX3ZlcnRleD5cclxufVxyXG5gO1xyXG5cclxudmFyIC8qc2pwdCB3YXMgY29uc3QgKi8gbWVzaGJhc2ljX2ZyYWcgPSBgXHJcbiNkZWZpbmUgVVNFX01BUFxyXG4jZGVmaW5lIFVTRV9VVlxyXG51bmlmb3JtIHZlYzMgY29sb3I7XHJcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcclxuXHJcbiNpbmNsdWRlIDxjb21tb24+XHJcbi8vI2luY2x1ZGUgPGNvbG9yX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDx1dl9wYXJzX2ZyYWdtZW50PlxyXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxmb2dfcGFyc19mcmFnbWVudD5cclxuI2luY2x1ZGUgPGxvZ2RlcHRoYnVmX3BhcnNfZnJhZ21lbnQ+XHJcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cclxuXHJcbi8vLy8vXHJcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xyXG4gICAgLy8gV2Ugbm93IGFzc3VtZSBXZWJHTDIgYW5kIHNvIHRoZSBkZXJpdmF0aXZlcyBhcmUgYXZhaWxhYmxlLCBcclxuICAgIC8vIHNvIGFmd2lkdGggZGVwZW5kcyBvbiBzY2FsZSBvZiBndWlcclxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XHJcbiAgICByZXR1cm4gc21vb3Roc3RlcCgwLjUgLSBhZndpZHRoLCAwLjUgKyBhZndpZHRoLCB2YWx1ZSk7XHJcbn1cclxuLy8vL1xyXG5cclxudm9pZCBtYWluKCkge1xyXG5cclxuXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxyXG5cclxuICAgIC8vL1xyXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xyXG4gICAgXHJcbiAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKG1hcCwgdlV2KTtcclxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSAqIGFscGhhKTtcclxuICAgIGlmIChnbF9GcmFnQ29sb3IuYSA8IDAuMDAwMSkgZGlzY2FyZDtcclxuICAgIC8vL1xyXG5cclxuXHQjaW5jbHVkZSA8bG9nZGVwdGhidWZfZnJhZ21lbnQ+XHJcbiAgICAvL1hYWDogYmlnIGNodW5rIHJlbW92ZWQgZnJvbSBvcmlnaW5hbCBtZXNoYmFzaWNfZnJhZyBoZXJlLlxyXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxyXG5cdCNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XHJcblx0I2luY2x1ZGUgPGZvZ19mcmFnbWVudD5cclxufVxyXG5gO1xyXG5cclxuaWYgKCtUSFJFRS5SRVZJU0lPTiA+IDE1MSkgeyAvLyBzanB0IHBhdGNoXHJcbiAgbWVzaGJhc2ljX2ZyYWcgPSAnXFxuI2RlZmluZSBVU0VfTUFQXFxuI2RlZmluZSBVU0VfVVZcXG51bmlmb3JtIHZlYzMgY29sb3I7XFxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xcblxcbiNpbmNsdWRlIDxjb21tb24+XFxuLy8jaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8dXZfcGFyc19mcmFnbWVudD5cXG4jaW5jbHVkZSA8bWFwX3BhcnNfZnJhZ21lbnQ+XFxuI2luY2x1ZGUgPGZvZ19wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50PlxcbiNpbmNsdWRlIDxjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudD5cXG5cXG4vLy8vL1xcbmZsb2F0IGFhc3RlcChmbG9hdCB2YWx1ZSkge1xcbiAgICAvLyBXZSBub3cgYXNzdW1lIFdlYkdMMiBhbmQgc28gdGhlIGRlcml2YXRpdmVzIGFyZSBhdmFpbGFibGUsIFxcbiAgICAvLyBzbyBhZndpZHRoIGRlcGVuZHMgb24gc2NhbGUgb2YgZ3VpXFxuICAgIGZsb2F0IGFmd2lkdGggPSBsZW5ndGgodmVjMihkRmR4KHZhbHVlKSwgZEZkeSh2YWx1ZSkpKSAqIDAuNzA3MTA2NzgxMTg2NTQ3NTc7XFxuICAgIHJldHVybiBzbW9vdGhzdGVwKDAuNSAtIGFmd2lkdGgsIDAuNSArIGFmd2lkdGgsIHZhbHVlKTtcXG59XFxuLy8vL1xcblxcbnZvaWQgbWFpbigpIHtcXG5cXG5cXHQjaW5jbHVkZSA8Y2xpcHBpbmdfcGxhbmVzX2ZyYWdtZW50PlxcblxcbiAgICAvLy9cXG4gICAgdmVjNCBkaWZmdXNlQ29sb3IgPSB2ZWM0KCBjb2xvciwgb3BhY2l0eSApO1xcbiAgICBcXG4gICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XFxuICAgIGZsb2F0IGFscGhhID0gYWFzdGVwKHRleENvbG9yLmEpO1xcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLCBvcGFjaXR5ICogYWxwaGEpO1xcbiAgICBpZiAoZ2xfRnJhZ0NvbG9yLmEgPCAwLjAwMDEpIGRpc2NhcmQ7XFxuICAgIC8vL1xcblxcblxcdCNpbmNsdWRlIDxsb2dkZXB0aGJ1Zl9mcmFnbWVudD5cXG4gICAgLy9YWFg6IGJpZyBjaHVuayByZW1vdmVkIGZyb20gb3JpZ2luYWwgbWVzaGJhc2ljX2ZyYWcgaGVyZS5cXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxjb2xvcnNwYWNlX2ZyYWdtZW50PlxcblxcdCNpbmNsdWRlIDxmb2dfZnJhZ21lbnQ+XFxufVxcbic7XHJcbiAgY29uc29sZS53YXJuKCdjb2xvcnNwYWNlX2ZyYWdtZW50IHVzZWQnKTtcclxuICB9XHJcbiAgXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVNERlNoYWRlciAob3B0KSB7XHJcbiAgb3B0ID0gb3B0IHx8IHt9O1xyXG4gIHZhciBvcGFjaXR5ID0gdHlwZW9mIG9wdC5vcGFjaXR5ID09PSAnbnVtYmVyJyA/IG9wdC5vcGFjaXR5IDogMTtcclxuICAvLy8tLSBoYXJkY29kZWQgaW4gc2hhZGVyIGNvZGUsIGd1aXZyIG5ldmVyIHBhc3NlZCB0aGVzZSBpbiBvcHQgLS1cclxuICAvL3ZhciBhbHBoYVRlc3QgPSB0eXBlb2Ygb3B0LmFscGhhVGVzdCA9PT0gJ251bWJlcicgPyBvcHQuYWxwaGFUZXN0IDogMC4wMDAxXHJcbiAgLy92YXIgcHJlY2lzaW9uID0gb3B0LnByZWNpc2lvbiB8fCAnaGlnaHAnXHJcbiAgdmFyIGNvbG9yID0gb3B0LmNvbG9yO1xyXG4gIHZhciBtYXAgPSBvcHQubWFwO1xyXG4gIFxyXG4gIG9wdC5leHRlbnNpb25zID0gb3B0LmV4dGVuc2lvbnMgfHwge307XHJcbiAgb3B0LmV4dGVuc2lvbnMuZGVyaXZhdGl2ZXMgPSB0cnVlOyAvL25iLCBmYWxzZSBkZWZhdWx0cyBmb3IgZnJhZ0RlcHRoLCBkcmF3QnVmZmVycywgc2hhZGVyVGV4dHVyZUxPRCB3aWxsIG5vIGxvbmdlciBiZSB0aGVyZS5cclxuICBvcHQubmFtZSA9IFwiU0RGIHRleHQgbWF0ZXJpYWxcIjtcclxuXHJcbiAgLy8gcmVtb3ZlIHRvIHNhdGlzZnkgcjczXHJcbiAgZGVsZXRlIG9wdC5tYXA7XHJcbiAgZGVsZXRlIG9wdC5jb2xvcjtcclxuICBkZWxldGUgb3B0LnByZWNpc2lvbjtcclxuICBkZWxldGUgb3B0Lm9wYWNpdHk7XHJcblxyXG4gIHJldHVybiBhc3NpZ24oe1xyXG4gICAgdW5pZm9ybXM6IHtcclxuICAgICAgb3BhY2l0eTogeyB0eXBlOiAnZicsIHZhbHVlOiBvcGFjaXR5IH0sXHJcbiAgICAgIG1hcDogeyB0eXBlOiAndCcsIHZhbHVlOiBtYXAgfHwgbmV3IFRIUkVFLlRleHR1cmUoKSB9LFxyXG4gICAgICBjb2xvcjogeyB0eXBlOiAnYycsIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoY29sb3IpIH1cclxuICAgIH0sXHJcbiAgICB2ZXJ0ZXhTaGFkZXI6IG1lc2hiYXNpY192ZXJ0LFxyXG4gICAgZnJhZ21lbnRTaGFkZXI6IG1lc2hiYXNpY19mcmFnXHJcbiAgfSwgb3B0KTtcclxufVxyXG4iLCIvKipcclxuKiBkYXQtZ3VpVlIgSmF2YXNjcmlwdCBDb250cm9sbGVyIExpYnJhcnkgZm9yIFZSXHJcbiogaHR0cHM6Ly9naXRodWIuY29tL2RhdGFhcnRzL2RhdC5ndWlWUlxyXG4qXHJcbiogQ29weXJpZ2h0IDIwMTYgRGF0YSBBcnRzIFRlYW0sIEdvb2dsZSBJbmMuXHJcbipcclxuKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4qIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuKlxyXG4qICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuKlxyXG4qIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4qIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qL1xyXG5cclxuaW1wb3J0IFNERlNoYWRlciBmcm9tICcuL3NkZnNoYWRlcl9sb2dkZXB0aCc7XHJcbmltcG9ydCBjcmVhdGVHZW9tZXRyeSBmcm9tICd0aHJlZS1ibWZvbnQtdGV4dCc7XHJcbmltcG9ydCBwYXJzZUFTQ0lJIGZyb20gJ3BhcnNlLWJtZm9udC1hc2NpaSc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcblxyXG5pbXBvcnQgKiBhcyBGb250IGZyb20gJy4vZm9udCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWF0ZXJpYWwoIGNvbG9yICl7XHJcblxyXG4gIGNvbnN0IGltYWdlID0gRm9udC5pbWFnZSgpO1xyXG4gIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShpbWFnZSk7IHRleHR1cmUubmFtZSA9ICdzZGZGb250VGV4dHVyZSdcclxuICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLm1hZ0ZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcclxuICB0ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xyXG5cclxuICAvL05COjo6IHNvbWV3aGF0IGV4cGVyaW1lbnRhbCByZXBsYWNlbWVudCBvZiBSYXdTaGFkZXIgY29kZSBmcm9tIGJtZm9udCB3aXRoIHZhcmlhdGlvbiBvZiBNZXNoQmFzaWMgc2hhZGVyXHJcbiAgLy90aGlzIHNob3VsZCBhbGxvdyBmb3IgbG9nZGVwdGgsIGZvZyBpcyBhbHNvIGFudGljaXBhdGVkIHRvIHdvcmsgcmVhc29uYWJseSB3ZWxsLi4uIFxyXG4gIC8vdG9uZW1hcHBpbmcgZXRjIG1heSBjb25jZWl2YWJseSBiZSBpbXByb3ZlZC4uLiBZTU1WLlxyXG4gIGxldCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbChTREZTaGFkZXIoe1xyXG4gICAgc2lkZTogVEhSRUUuRG91YmxlU2lkZSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgY29sb3I6IGNvbG9yLFxyXG4gICAgbWFwOiB0ZXh0dXJlLFxyXG4gICAgdHlwZTogJ1NERiBUZXh0J1xyXG4gIH0pKTtcclxuICByZXR1cm4gbWF0ZXJpYWw7XHJcbn1cclxuXHJcbmNvbnN0IHRleHRTY2FsZSA9IExheW91dC5URVhUX1NDQUxFO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0b3IoKXtcclxuXHJcbiAgY29uc3QgZm9udCA9IHBhcnNlQVNDSUkoIEZvbnQuZm50KCkgKTtcclxuXHJcbiAgY29uc3QgY29sb3JNYXRlcmlhbHMgPSB7fTtcclxuXHJcbiAgZnVuY3Rpb24gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciA9IDB4ZmZmZmZmLCBzY2FsZSA9IDEuMCwgd2lkdGgsIGhlaWdodCApe1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gY3JlYXRlR2VvbWV0cnkoe1xyXG4gICAgICB0ZXh0OiBzdHIsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHdpZHRoOiB3aWR0aCxcclxuICAgICAgaGVpZ2h0OiBoZWlnaHQsXHJcbiAgICAgIGZsaXBZOiB0cnVlLFxyXG4gICAgICBmb250XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgY29uc3QgbGF5b3V0ID0gZ2VvbWV0cnkubGF5b3V0O1xyXG5cclxuICAgIGxldCBtYXRlcmlhbCA9IGNvbG9yTWF0ZXJpYWxzWyBjb2xvciBdO1xyXG4gICAgaWYoIG1hdGVyaWFsID09PSB1bmRlZmluZWQgKXtcclxuICAgICAgbWF0ZXJpYWwgPSBjb2xvck1hdGVyaWFsc1sgY29sb3IgXSA9IGNyZWF0ZU1hdGVyaWFsKCBjb2xvciApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKCBnZW9tZXRyeSwgbWF0ZXJpYWwgKTtcclxuICAgIG1lc2guc2NhbGUubXVsdGlwbHkoIG5ldyBUSFJFRS5WZWN0b3IzKDEsLTEsMSkgKTtcclxuXHJcbiAgICBjb25zdCBmaW5hbFNjYWxlID0gc2NhbGUgKiB0ZXh0U2NhbGU7XHJcblxyXG4gICAgbWVzaC5zY2FsZS5tdWx0aXBseVNjYWxhciggZmluYWxTY2FsZSApO1xyXG5cclxuICAgIG1lc2gucG9zaXRpb24ueSA9IGxheW91dC5oZWlnaHQgKiAwLjUgKiBmaW5hbFNjYWxlO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG4gIH1cclxuXHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZSggc3RyLCB7IGNvbG9yPTB4ZmZmZmZmLCBzY2FsZT0xLjAgfSA9IHt9ICl7XHJcbiAgICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG5cclxuICAgIGxldCBtZXNoID0gY3JlYXRlVGV4dCggc3RyLCBmb250LCBjb2xvciwgc2NhbGUgKTtcclxuICAgIGdyb3VwLmFkZCggbWVzaCApO1xyXG4gICAgZ3JvdXAubGF5b3V0ID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQ7XHJcbiAgICBncm91cC5jb21wdXRlV2lkdGggPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiBncm91cC5sYXlvdXQud2lkdGggKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG4gICAgZ3JvdXAuY29tcHV0ZUhlaWdodCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIGdyb3VwLmxheW91dC5oZWlnaHQgKiBzY2FsZSAqIExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLmNvbnN0cmFpbkJvdW5kcyA9ICh3LCBoKSA9PiB7XHJcbiAgICAgIGdyb3VwLnJlbW92ZShtZXNoKTtcclxuICAgICAgY29uc3QgcyA9IExheW91dC5URVhUX1NDQUxFO1xyXG4gICAgICBtZXNoID0gY3JlYXRlVGV4dChzdHIsIGZvbnQsIGNvbG9yLCBzY2FsZSwgdy9zLCBoL3MpO1xyXG4gICAgICBjb25zdCBoRmFjdG9yID0gbWVzaC5nZW9tZXRyeS5sYXlvdXQuaGVpZ2h0KnMvaDtcclxuICAgICAgaWYgKGhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCAwLjk1KiBzdHIubGVuZ3RoL2hGYWN0b3IpICsgJy4uLic7XHJcbiAgICAgICAgbWVzaCA9IGNyZWF0ZVRleHQoc3RyLCBmb250LCBjb2xvciwgc2NhbGUsIHcvcywgaC9zKTtcclxuICAgICAgfVxyXG4gICAgICBncm91cC5hZGQobWVzaCk7XHJcbiAgICAgIGdyb3VwLmxheW91dCA9IG1lc2guZ2VvbWV0cnkubGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdyb3VwLnVwZGF0ZUxhYmVsID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBpZiAobWVzaC51c2VyRGF0YS5sYWJlbFN0cmluZyAhPT0gc3RyKSB7XHJcbiAgICAgICAgbWVzaC5nZW9tZXRyeS51cGRhdGUoIHN0ciApO1xyXG4gICAgICAgIG1lc2gudXNlckRhdGEubGFiZWxTdHJpbmcgPSBzdHI7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGNyZWF0ZSxcclxuICAgIGdldE1hdGVyaWFsOiAoKT0+IG1hdGVyaWFsIC8vWFhYOiB0aGlzIGRhdGVzIGJhY2sgcXVpdGUgYSBsb25nIHdheSwgbm90IHN1cmUgaXQgd2FzIGV2ZXIgcmlnaHQuXHJcbiAgfVxyXG5cclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBTkVMID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiAweGZmZmZmZiwgdmVydGV4Q29sb3JzOiB0cnVlIH0gKTtcclxuZXhwb3J0IGNvbnN0IExPQ0FUT1IgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuZXhwb3J0IGNvbnN0IEZPTERFUiA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgwMDAwMDAgfSApO1xyXG5leHBvcnQgY29uc3QgVE9PTFRJUCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCggeyBjb2xvcjogMHgyMDUwODAsIHRyYW5zcGFyZW50OiBmYWxzZSwgb3BhY2l0eTogMC44IH0gKTtcclxuIiwiLyoqXHJcbiogZGF0LWd1aVZSIEphdmFzY3JpcHQgQ29udHJvbGxlciBMaWJyYXJ5IGZvciBWUlxyXG4qIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhYXJ0cy9kYXQuZ3VpVlJcclxuKlxyXG4qIENvcHlyaWdodCAyMDE2IERhdGEgQXJ0cyBUZWFtLCBHb29nbGUgSW5jLlxyXG4qXHJcbiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbipcclxuKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbipcclxuKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4qIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4qIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKi9cclxuXHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuaW1wb3J0ICogYXMgUGFsZXR0ZSBmcm9tICcuL3BhbGV0dGUnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlU2xpZGVyKCB7XHJcbiAgdGV4dENyZWF0b3IsXHJcbiAgb2JqZWN0LFxyXG4gIHByb3BlcnR5TmFtZSA9ICd1bmRlZmluZWQnLFxyXG4gIGluaXRpYWxWYWx1ZSA9IDAuMCxcclxuICBtaW4gPSAwLjAsIG1heCA9IDEuMCxcclxuICBzdGVwID0gMC4xLFxyXG4gIHdpZHRoID0gTGF5b3V0LlBBTkVMX1dJRFRILFxyXG4gIGluaXRpYWxIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hULFxyXG4gIGRlcHRoID0gTGF5b3V0LlBBTkVMX0RFUFRIXHJcbn0gPSB7fSApe1xyXG5cclxuXHJcbiAgY29uc3Qgc3RhdGUgPSB7XHJcbiAgICBhbHBoYTogMS4wLFxyXG4gICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcclxuICAgIHN0ZXA6IHN0ZXAsXHJcbiAgICB1c2VTdGVwOiB0cnVlLFxyXG4gICAgcHJlY2lzaW9uOiAxLFxyXG4gICAgbGlzdGVuOiBmYWxzZSxcclxuICAgIG1pbjogbWluLFxyXG4gICAgbWF4OiBtYXgsXHJcbiAgICBvbkNoYW5nZWRDQjogdW5kZWZpbmVkLFxyXG4gICAgb25GaW5pc2hlZENoYW5nZTogdW5kZWZpbmVkLFxyXG4gICAgcHJlc3Npbmc6IGZhbHNlXHJcbiAgfTtcclxuICBcclxuICBzdGF0ZS5zdGVwID0gZ2V0SW1wbGllZFN0ZXAoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gIHN0YXRlLnByZWNpc2lvbiA9IG51bURlY2ltYWxzKCBzdGF0ZS5zdGVwICk7XHJcbiAgc3RhdGUuYWxwaGEgPSBnZXRBbHBoYUZyb21WYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJzbGlkZXJcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcbiAgXHJcbiAgY29uc3QgZGVzY3JpcHRvckxhYmVsID0gdGV4dENyZWF0b3IuY3JlYXRlKCBwcm9wZXJ0eU5hbWUgKTtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueCA9IExheW91dC5QQU5FTF9MQUJFTF9URVhUX01BUkdJTjtcclxuICBkZXNjcmlwdG9yTGFiZWwucG9zaXRpb24ueiA9IGRlcHRoO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi55ID0gLTAuMDM7XHJcblxyXG4gIGxldCBwYW5lbDtcclxuICBncm91cC5zZXRIZWlnaHQgPSBoZWlnaHQgPT4ge1xyXG4gICAgaWYgKHBhbmVsKSBncm91cC5yZW1vdmUoIHBhbmVsICk7XHJcbiAgICBcclxuICAgIGdyb3VwLnNwYWNpbmcgPSBoZWlnaHQ7XHJcblxyXG4gICAgY29uc3QgU0xJREVSX1dJRFRIID0gd2lkdGggKiAwLjUgLSBMYXlvdXQuUEFORUxfTUFSR0lOO1xyXG4gICAgY29uc3QgU0xJREVSX0hFSUdIVCA9IGhlaWdodCAtIExheW91dC5QQU5FTF9NQVJHSU47XHJcbiAgICBjb25zdCBTTElERVJfREVQVEggPSBkZXB0aDtcclxuXHJcbiAgICAvLyAgZmlsbGVkIHZvbHVtZVxyXG4gICAgY29uc3QgcmVjdCA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggU0xJREVSX1dJRFRILCBTTElERVJfSEVJR0hULCBTTElERVJfREVQVEggKTtcclxuICAgIHJlY3QudHJhbnNsYXRlKFNMSURFUl9XSURUSCowLjUsMCwwKTtcclxuICAgIC8vIExheW91dC5hbGlnbkxlZnQoIHJlY3QgKTtcclxuXHJcbiAgICBjb25zdCBoaXRzY2FuTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoKTtcclxuICAgIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgaGl0c2NhblZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIGhpdHNjYW5NYXRlcmlhbCApO1xyXG4gICAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnggPSB3aWR0aCAqIDAuNTtcclxuICAgIGhpdHNjYW5Wb2x1bWUubmFtZSA9ICdoaXRzY2FuVm9sdW1lJztcclxuXHJcbiAgICAvLyAgc2xpZGVyQkcgdm9sdW1lXHJcbiAgICBjb25zdCBzbGlkZXJCRyA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gICAgQ29sb3JzLmNvbG9yaXplR2VvbWV0cnkoIHNsaWRlckJHLmdlb21ldHJ5LCBDb2xvcnMuU0xJREVSX0JHICk7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi56ID0gZGVwdGggKiAwLjU7XHJcbiAgICBzbGlkZXJCRy5wb3NpdGlvbi54ID0gU0xJREVSX1dJRFRIICsgTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuXHJcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7IGNvbG9yOiBDb2xvcnMuREVGQVVMVF9DT0xPUiB9KTtcclxuICAgIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgICBmaWxsZWRWb2x1bWUucG9zaXRpb24ueiA9IGRlcHRoICogMC41O1xyXG4gICAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuICAgIGNvbnN0IGVuZExvY2F0b3IgPSBuZXcgVEhSRUUuTWVzaCggbmV3IFRIUkVFLkJveEdlb21ldHJ5KCAwLjA1LCAwLjA1LCAwLjA1LCAxLCAxLCAxICksIFNoYXJlZE1hdGVyaWFscy5MT0NBVE9SICk7XHJcbiAgICBlbmRMb2NhdG9yLnBvc2l0aW9uLnggPSBTTElERVJfV0lEVEg7XHJcbiAgICBoaXRzY2FuVm9sdW1lLmFkZCggZW5kTG9jYXRvciApO1xyXG4gICAgZW5kTG9jYXRvci52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgdmFsdWVMYWJlbCA9IHRleHRDcmVhdG9yLmNyZWF0ZSggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgdmFsdWVMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX1ZBTFVFX1RFWFRfTUFSR0lOICsgd2lkdGggKiAwLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnogPSBkZXB0aCoyLjU7XHJcbiAgICB2YWx1ZUxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMzI1O1xyXG5cclxuICAgIGNvbnN0IGNvbnRyb2xsZXJJRCA9IExheW91dC5jcmVhdGVDb250cm9sbGVySURCb3goIGhlaWdodCwgQ29sb3JzLkNPTlRST0xMRVJfSURfU0xJREVSICk7XHJcbiAgICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICAgIHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gICAgcGFuZWwubmFtZSA9ICdwYW5lbCc7XHJcbiAgICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgc2xpZGVyQkcsIHZhbHVlTGFiZWwsIGNvbnRyb2xsZXJJRCApO1xyXG5cclxuICAgIGdyb3VwLmFkZCggcGFuZWwgKVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICB1cGRhdGVTbGlkZXIoKTtcclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVWYWx1ZUxhYmVsKCB2YWx1ZSApe1xyXG4gICAgICBpZiggc3RhdGUudXNlU3RlcCApe1xyXG4gICAgICAgIHZhbHVlTGFiZWwudXBkYXRlTGFiZWwoIHJvdW5kVG9EZWNpbWFsKCBzdGF0ZS52YWx1ZSwgc3RhdGUucHJlY2lzaW9uICkudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdmFsdWVMYWJlbC51cGRhdGVMYWJlbCggc3RhdGUudmFsdWUudG9TdHJpbmcoKSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVmlldygpe1xyXG4gICAgICBpZiggc3RhdGUucHJlc3NpbmcgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5JTlRFUkFDVElPTl9DT0xPUiApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgICBtYXRlcmlhbC5jb2xvci5zZXRIZXgoIENvbG9ycy5ISUdITElHSFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLkRFRkFVTFRfQ09MT1IgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHVwZGF0ZVNsaWRlcigpe1xyXG4gICAgICBmaWxsZWRWb2x1bWUuc2NhbGUueCA9XHJcbiAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICBNYXRoLm1heCggZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApICogd2lkdGgsIDAuMDAwMDAxICksXHJcbiAgICAgICAgICB3aWR0aFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlT2JqZWN0KCB2YWx1ZSApe1xyXG4gICAgICBvYmplY3RbIHByb3BlcnR5TmFtZSBdID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGFscGhhICl7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0Q2xhbXBlZEFscGhhKCBhbHBoYSApO1xyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldFZhbHVlRnJvbUFscGhhKCBzdGF0ZS5hbHBoYSwgc3RhdGUubWluLCBzdGF0ZS5tYXggKTtcclxuICAgICAgaWYoIHN0YXRlLnVzZVN0ZXAgKXtcclxuICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldFN0ZXBwZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLnN0ZXAgKTtcclxuICAgICAgfVxyXG4gICAgICBzdGF0ZS52YWx1ZSA9IGdldENsYW1wZWRWYWx1ZSggc3RhdGUudmFsdWUsIHN0YXRlLm1pbiwgc3RhdGUubWF4ICk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGlzdGVuVXBkYXRlKCl7XHJcbiAgICAgIHN0YXRlLnZhbHVlID0gZ2V0VmFsdWVGcm9tT2JqZWN0KCk7XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICBzdGF0ZS5hbHBoYSA9IGdldENsYW1wZWRBbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRWYWx1ZUZyb21PYmplY3QoKXtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIG9iamVjdFsgcHJvcGVydHlOYW1lIF0gKTtcclxuICAgIH1cclxuXHJcbiAgICBncm91cC5vbkNoYW5nZSA9IGZ1bmN0aW9uKCBjYWxsYmFjayApe1xyXG4gICAgICBzdGF0ZS5vbkNoYW5nZWRDQiA9IGNhbGxiYWNrO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLnN0ZXAgPSBmdW5jdGlvbiggc3RlcCApe1xyXG4gICAgICBzdGF0ZS5zdGVwID0gc3RlcDtcclxuICAgICAgc3RhdGUucHJlY2lzaW9uID0gbnVtRGVjaW1hbHMoIHN0YXRlLnN0ZXAgKVxyXG4gICAgICBzdGF0ZS51c2VTdGVwID0gdHJ1ZTtcclxuXHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIHN0YXRlLmFscGhhICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgcmV0dXJuIGdyb3VwO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5saXN0ZW4gPSBmdW5jdGlvbigpe1xyXG4gICAgICBzdGF0ZS5saXN0ZW4gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUHJlc3NlZCcsIGhhbmRsZVByZXNzICk7XHJcbiAgICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdwcmVzc2luZycsIGhhbmRsZUhvbGQgKTtcclxuICAgIGludGVyYWN0aW9uLmV2ZW50cy5vbiggJ29uUmVsZWFzZWQnLCBoYW5kbGVSZWxlYXNlICk7XHJcblxyXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJlc3MoIHAgKXtcclxuICAgICAgaWYoIGdyb3VwLnZpc2libGUgPT09IGZhbHNlICl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gdHJ1ZTtcclxuICAgICAgcC5sb2NrZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhhbmRsZUhvbGQoIHsgcG9pbnQgfSA9IHt9ICl7XHJcbiAgICAgIGlmKCBncm91cC52aXNpYmxlID09PSBmYWxzZSApe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgc3RhdGUucHJlc3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgZmlsbGVkVm9sdW1lLnVwZGF0ZU1hdHJpeFdvcmxkKCk7XHJcbiAgICAgIGVuZExvY2F0b3IudXBkYXRlTWF0cml4V29ybGQoKTtcclxuXHJcbiAgICAgIGNvbnN0IGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZmlsbGVkVm9sdW1lLm1hdHJpeFdvcmxkICk7XHJcbiAgICAgIGNvbnN0IGIgPSBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21NYXRyaXhQb3NpdGlvbiggZW5kTG9jYXRvci5tYXRyaXhXb3JsZCApO1xyXG5cclxuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHN0YXRlLnZhbHVlO1xyXG5cclxuICAgICAgdXBkYXRlU3RhdGVGcm9tQWxwaGEoIGdldFBvaW50QWxwaGEoIHBvaW50LCB7YSxifSApICk7XHJcbiAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIHVwZGF0ZVNsaWRlciggKTtcclxuICAgICAgdXBkYXRlT2JqZWN0KCBzdGF0ZS52YWx1ZSApO1xyXG5cclxuICAgICAgaWYoIHByZXZpb3VzVmFsdWUgIT09IHN0YXRlLnZhbHVlICYmIHN0YXRlLm9uQ2hhbmdlZENCICl7XHJcbiAgICAgICAgc3RhdGUub25DaGFuZ2VkQ0IoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBoYW5kbGVSZWxlYXNlKCl7XHJcbiAgICAgIHN0YXRlLnByZXNzaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ3JvdXAuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvbjtcclxuICAgIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gICAgY29uc3QgZ3JhYkludGVyYWN0aW9uID0gR3JhYi5jcmVhdGUoIHsgZ3JvdXAsIHBhbmVsIH0gKTtcclxuICAgIGNvbnN0IHBhbGV0dGVJbnRlcmFjdGlvbiA9IFBhbGV0dGUuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gICAgZ3JvdXAudXBkYXRlQ29udHJvbCA9IGZ1bmN0aW9uKCBpbnB1dE9iamVjdHMgKXtcclxuICAgICAgaW50ZXJhY3Rpb24udXBkYXRlKCBpbnB1dE9iamVjdHMgKTtcclxuICAgICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICAgIHBhbGV0dGVJbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG5cclxuICAgICAgaWYoIHN0YXRlLmxpc3RlbiApe1xyXG4gICAgICAgIGxpc3RlblVwZGF0ZSgpO1xyXG4gICAgICAgIHVwZGF0ZVZhbHVlTGFiZWwoIHN0YXRlLnZhbHVlICk7XHJcbiAgICAgICAgdXBkYXRlU2xpZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdXBkYXRlVmlldygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBncm91cC5uYW1lID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgICBkZXNjcmlwdG9yTGFiZWwudXBkYXRlTGFiZWwoIHN0ciApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1pbiA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1pbiA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG5cclxuICAgIGdyb3VwLm1heCA9IGZ1bmN0aW9uKCBtICl7XHJcbiAgICAgIHN0YXRlLm1heCA9IG07XHJcbiAgICAgIHN0YXRlLmFscGhhID0gZ2V0QWxwaGFGcm9tVmFsdWUoIHN0YXRlLnZhbHVlLCBzdGF0ZS5taW4sIHN0YXRlLm1heCApO1xyXG4gICAgICB1cGRhdGVTdGF0ZUZyb21BbHBoYSggc3RhdGUuYWxwaGEgKTtcclxuICAgICAgdXBkYXRlVmFsdWVMYWJlbCggc3RhdGUudmFsdWUgKTtcclxuICAgICAgdXBkYXRlU2xpZGVyKCApO1xyXG4gICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICB9O1xyXG4gICAgaWYoZ3JvdXAuZm9sZGVyKSBncm91cC5mb2xkZXIucmVxdWVzdExheW91dCgpO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH0gLy8gL3NldEhlaWdodFxyXG4gIGdyb3VwLnNldEhlaWdodCggaW5pdGlhbEhlaWdodCApO1xyXG4gIHJldHVybiBncm91cDtcclxufVxyXG5cclxuY29uc3QgdGEgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCB0YiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XHJcbmNvbnN0IHRUb0EgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xyXG5jb25zdCBhVG9CID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcclxuXHJcbmZ1bmN0aW9uIGdldFBvaW50QWxwaGEoIHBvaW50LCBzZWdtZW50ICl7XHJcbiAgdGEuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKTtcclxuICB0Yi5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGNvbnN0IHByb2plY3RlZCA9IHRiLnByb2plY3RPblZlY3RvciggdGEgKTtcclxuXHJcbiAgdFRvQS5jb3B5KCBwb2ludCApLnN1Yiggc2VnbWVudC5hICk7XHJcblxyXG4gIGFUb0IuY29weSggc2VnbWVudC5iICkuc3ViKCBzZWdtZW50LmEgKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgY29uc3Qgc2lkZSA9IHRUb0Eubm9ybWFsaXplKCkuZG90KCBhVG9CICkgPj0gMCA/IDEgOiAtMTtcclxuXHJcbiAgY29uc3QgbGVuZ3RoID0gc2VnbWVudC5hLmRpc3RhbmNlVG8oIHNlZ21lbnQuYiApICogc2lkZTtcclxuXHJcbiAgbGV0IGFscGhhID0gcHJvamVjdGVkLmxlbmd0aCgpIC8gbGVuZ3RoO1xyXG4gIGlmKCBhbHBoYSA+IDEuMCApe1xyXG4gICAgYWxwaGEgPSAxLjA7XHJcbiAgfVxyXG4gIGlmKCBhbHBoYSA8IDAuMCApe1xyXG4gICAgYWxwaGEgPSAwLjA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gbGVycChtaW4sIG1heCwgdmFsdWUpIHtcclxuICByZXR1cm4gKDEtdmFsdWUpKm1pbiArIHZhbHVlKm1heDtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwX3JhbmdlKHZhbHVlLCBsb3cxLCBoaWdoMSwgbG93MiwgaGlnaDIpIHtcclxuICAgIHJldHVybiBsb3cyICsgKGhpZ2gyIC0gbG93MikgKiAodmFsdWUgLSBsb3cxKSAvIChoaWdoMSAtIGxvdzEpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDbGFtcGVkQWxwaGEoIGFscGhhICl7XHJcbiAgaWYoIGFscGhhID4gMSApe1xyXG4gICAgcmV0dXJuIDFcclxuICB9XHJcbiAgaWYoIGFscGhhIDwgMCApe1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG4gIHJldHVybiBhbHBoYTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q2xhbXBlZFZhbHVlKCB2YWx1ZSwgbWluLCBtYXggKXtcclxuICBpZiggdmFsdWUgPCBtaW4gKXtcclxuICAgIHJldHVybiBtaW47XHJcbiAgfVxyXG4gIGlmKCB2YWx1ZSA+IG1heCApe1xyXG4gICAgcmV0dXJuIG1heDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJbXBsaWVkU3RlcCggdmFsdWUsIG1pbiwgbWF4ICl7XHJcbiAgLy9QSlQ6IHdoYXQgd291bGQgd2UgbGlrZSBzdGVwIHRvIGxvb2sgbGlrZT9cclxuICAvL1NvbWV0aGluZyB0aGF0IGhhcyBhYm91dCB0aGUgb3JkZXIgb2YgbWFnbml0dWRlLCBhbmQgbG9va3MgbmljZSBpbiBiYXNlIDEwP1xyXG4gIGNvbnN0IHIgPSBtYXgtbWluO1xyXG4gIGxldCBzdGVwID0gci8xMDA7IC8vd2hhdCBpcyB0aGUgcmF0aW8gb2YgbnVtYmVyIG9mIGRlY2ltYWxzIHRvIG9yZGVyIG9mIG1hZ25pdHVkZT9cclxuICBcclxuICByZXR1cm4gc3RlcDtcclxuXHJcbiAgLy8gaWYoIHZhbHVlID09PSAwICl7XHJcbiAgLy8gICByZXR1cm4gMTsgLy8gV2hhdCBhcmUgd2UsIHBzeWNoaWNzPyAvLzw8PDwtLS0gbm8sIHNvIHdlIHNob3VsZCBiYXNlIGltcGxpZWRTdGVwIG9uIG1pbi9tYXgsIG5vdCB2YWx1ZVxyXG4gIC8vIH0gZWxzZSB7XHJcbiAgLy8gICAvLyBIZXkgRG91ZywgY2hlY2sgdGhpcyBvdXQuXHJcbiAgLy8gICByZXR1cm4gTWF0aC5wb3coMTAsIE1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnModmFsdWUpKS9NYXRoLkxOMTApKS8xMDtcclxuICAvLyB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFZhbHVlRnJvbUFscGhhKCBhbHBoYSwgbWluLCBtYXggKXtcclxuICByZXR1cm4gbWFwX3JhbmdlKCBhbHBoYSwgMC4wLCAxLjAsIG1pbiwgbWF4IClcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0QWxwaGFGcm9tVmFsdWUoIHZhbHVlLCBtaW4sIG1heCApe1xyXG4gIHJldHVybiBtYXBfcmFuZ2UoIHZhbHVlLCBtaW4sIG1heCwgMC4wLCAxLjAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0U3RlcHBlZFZhbHVlKCB2YWx1ZSwgc3RlcCApe1xyXG4gIGlmKCB2YWx1ZSAlIHN0ZXAgIT0gMCkge1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQoIHZhbHVlIC8gc3RlcCApICogc3RlcDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBudW1EZWNpbWFscyh4KSB7XHJcbiAgeCA9IHgudG9TdHJpbmcoKTtcclxuICBpZiAoeC5pbmRleE9mKCcuJykgPiAtMSkge1xyXG4gICAgcmV0dXJuIHgubGVuZ3RoIC0geC5pbmRleE9mKCcuJykgLSAxO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJvdW5kVG9EZWNpbWFsKHZhbHVlLCBkZWNpbWFscykge1xyXG4gIGlmIChNYXRoLmFicyh2YWx1ZSkgPCAwLjAxICYmIHZhbHVlICE9PSAwKSByZXR1cm4gdmFsdWUudG9FeHBvbmVudGlhbCgzKTtcclxuICBjb25zdCB0ZW5UbyA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiB0ZW5UbykgLyB0ZW5UbztcclxufSIsIi8qKlxyXG4gKiBXaGVuIHRoZSB0ZXh0Ym94IGlzIGZvY3Vzc2VkLCAgYSBrZXlib2FyZCBzaG91bGQgYmUgY3JlYXRlZC4uLlxyXG4gKiBUaGVyZSBzaG91bGQgYWxzbyBiZSBhIHdheSBvZiBkaXNtaXNzaW5nIGl0IGxhdGVyLiAgSXQgbWF5IGJlIHRoYXQgd2Ugd2FudCB0b1xyXG4gKiBwcmV2ZW50IG11bHRpcGxlIGtleWJvYXJkcyBiZWluZyBtYWRlIHNpbXVsdGFuZW91c2x5P1xyXG4gKiBcclxuICogSW4gb3JkZXIgdG8gbWFrZSBpdCBhcHBlYXIsIGl0IGNhbiBiZSBhZGRlZCBhcyBhIGNoaWxkIG9mIHRoZSB0ZXhib3ggbm9kZSBpdHNlbGYuLi5cclxuICogVGhpcydsbCBtZWFuIHRoYXQgaXQgZ2V0cyBkcmFnZ2VkIGFyb3VuZCBieSB0aGUgcGFyZW50IEdVSSBhcyBpdCBtb3Zlcy4uLi5cclxuICogTWFrZXMgZm9yIHJlbGF0aXZlbHkgY2xlYW4sIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBhdCBsZWFzdC5cclxuICogQXQgdGhlIG1vbWVudCwga2V5Ym9hcmQgcG9zaXRpb25pbmcgaXMgbWVzc2VkIHVwIGJ5IHRoaXMgYXJyYW5nZW1lbnQuXHJcbiAqIFJlbW92aW5nIGdyYWJiZXIgbWFrZXMgaXQgbGVzcyBsaWtlbHkgYSB1c2VyIHdpbGwgZG8gdGhpcywgYnV0IG1pZ2h0IGJlIHdvcnRoIGZpeGluZyB0aGUgYmFzaWMgYnVnLlxyXG4gKiBcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBHVUkgZnJvbSAnLi9pbmRleCc7XHJcbmltcG9ydCBjcmVhdGVUZXh0TGFiZWwgZnJvbSAnLi90ZXh0bGFiZWwnO1xyXG5pbXBvcnQgY3JlYXRlSW50ZXJhY3Rpb24gZnJvbSAnLi9pbnRlcmFjdGlvbic7XHJcbmltcG9ydCAqIGFzIENvbG9ycyBmcm9tICcuL2NvbG9ycyc7XHJcbmltcG9ydCAqIGFzIExheW91dCBmcm9tICcuL2xheW91dCc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1hdGVyaWFscyBmcm9tICcuL3NoYXJlZG1hdGVyaWFscyc7XHJcbmltcG9ydCAqIGFzIEdyYWIgZnJvbSAnLi9ncmFiJztcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVUZXh0Qm94KHtcclxuICAgIHRleHRDcmVhdG9yLFxyXG4gICAgb2JqZWN0LFxyXG4gICAgcHJvcGVydHlOYW1lID0gJ3VuZGVmaW5lZCcsXHJcbiAgICB3aWR0aCA9IExheW91dC5QQU5FTF9XSURUSCxcclxuICAgIGhlaWdodCA9IExheW91dC5QQU5FTF9IRUlHSFQsXHJcbiAgICBkZXB0aCA9IExheW91dC5QQU5FTF9ERVBUSFxyXG59ID0ge30pIHtcclxuICAvLyBiaWcgb2xkIGNvcHkgLyBwYXN0ZSBmcm9tIGJ1dHRvbi5qcy4gTWlnaHQgdHJ5IHRvIGZhY3RvciBvdXQgc29tZSBvZiB0aGlzIGNvbW1vbiBjb2RlLlxyXG4gIGNvbnN0IEJVVFRPTl9XSURUSCA9IHdpZHRoICogMC41IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fSEVJR0hUID0gaGVpZ2h0IC0gTGF5b3V0LlBBTkVMX01BUkdJTjtcclxuICBjb25zdCBCVVRUT05fREVQVEggPSBMYXlvdXQuQlVUVE9OX0RFUFRIO1xyXG5cclxuICBjb25zdCBncm91cCA9IG5ldyBUSFJFRS5Hcm91cCgpO1xyXG4gIGdyb3VwLmd1aVR5cGUgPSBcInRleHRib3hcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtwcm9wZXJ0eU5hbWV9XWA7XHJcblxyXG4gIGNvbnN0IHBhbmVsID0gTGF5b3V0LmNyZWF0ZVBhbmVsKCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCApO1xyXG4gIGdyb3VwLmFkZCggcGFuZWwgKTtcclxuXHJcbiAgLy8gIGJhc2UgY2hlY2tib3hcclxuICBjb25zdCBkaXZpc2lvbnMgPSA0O1xyXG4gIGNvbnN0IGFzcGVjdFJhdGlvID0gQlVUVE9OX1dJRFRIIC8gQlVUVE9OX0hFSUdIVDtcclxuICBjb25zdCByZWN0ID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KCBCVVRUT05fV0lEVEgsIEJVVFRPTl9IRUlHSFQsIEJVVFRPTl9ERVBUSCwgTWF0aC5mbG9vciggZGl2aXNpb25zICogYXNwZWN0UmF0aW8gKSwgZGl2aXNpb25zLCBkaXZpc2lvbnMgKTtcclxuICByZWN0LnRyYW5zbGF0ZSggQlVUVE9OX1dJRFRIICogMC41LCAwLCAwICk7XHJcblxyXG4gIC8vICBoaXRzY2FuIHZvbHVtZVxyXG4gIGNvbnN0IGhpdHNjYW5NYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgpO1xyXG4gIGhpdHNjYW5NYXRlcmlhbC52aXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0IGhpdHNjYW5Wb2x1bWUgPSBuZXcgVEhSRUUuTWVzaCggcmVjdC5jbG9uZSgpLCBoaXRzY2FuTWF0ZXJpYWwgKTtcclxuICBoaXRzY2FuVm9sdW1lLnBvc2l0aW9uLnogPSBCVVRUT05fREVQVEggKiAwLjU7XHJcbiAgaGl0c2NhblZvbHVtZS5wb3NpdGlvbi54ID0gd2lkdGggKiAwLjU7XHJcblxyXG4gIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgY29sb3I6IDB4RkZGRkZGIH0pO1xyXG4gIGNvbnN0IGZpbGxlZFZvbHVtZSA9IG5ldyBUSFJFRS5NZXNoKCByZWN0LmNsb25lKCksIG1hdGVyaWFsICk7XHJcbiAgaGl0c2NhblZvbHVtZS5hZGQoIGZpbGxlZFZvbHVtZSApO1xyXG5cclxuXHJcbiAgLy9ob3cgY2FuIEkgY2hhbmdlIGNvbG9yIG9mIHRleHQ/XHJcbiAgY29uc3QgYnV0dG9uTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIG9iamVjdFtwcm9wZXJ0eU5hbWVdLCB7IGNvbG9yOiAweDAwMDAwMDAsIHNjYWxlOiAwLjg2NiB9ICk7XHJcblxyXG4gIC8vICBUaGlzIGlzIGEgcmVhbCBoYWNrIHNpbmNlIHdlIG5lZWQgdG8gZml0IHRoZSB0ZXh0IHBvc2l0aW9uIHRvIHRoZSBmb250IHNjYWxpbmdcclxuICAvLyAgUGxlYXNlIGZpeCBtZS5cclxuICAvL2J1dHRvbkxhYmVsLnBvc2l0aW9uLnggPSBCVVRUT05fV0lEVEggKiAwLjUgLSBidXR0b25MYWJlbC5sYXlvdXQud2lkdGggKiAwLjAwMDAxMSAqIDAuNTtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi54ID0gMC4wMTU7XHJcbiAgYnV0dG9uTGFiZWwucG9zaXRpb24ueiA9IEJVVFRPTl9ERVBUSCAqIDEuMjtcclxuICBidXR0b25MYWJlbC5wb3NpdGlvbi55ID0gLTAuMDI1O1xyXG4gIGZpbGxlZFZvbHVtZS5hZGQoIGJ1dHRvbkxhYmVsICk7XHJcblxyXG5cclxuICBjb25zdCBkZXNjcmlwdG9yTGFiZWwgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHByb3BlcnR5TmFtZSApO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi54ID0gTGF5b3V0LlBBTkVMX0xBQkVMX1RFWFRfTUFSR0lOO1xyXG4gIGRlc2NyaXB0b3JMYWJlbC5wb3NpdGlvbi56ID0gZGVwdGg7XHJcbiAgZGVzY3JpcHRvckxhYmVsLnBvc2l0aW9uLnkgPSAtMC4wMztcclxuXHJcbiAgY29uc3QgY29udHJvbGxlcklEID0gTGF5b3V0LmNyZWF0ZUNvbnRyb2xsZXJJREJveCggaGVpZ2h0LCBDb2xvcnMuQ09OVFJPTExFUl9JRF9CVVRUT04gKTtcclxuICBjb250cm9sbGVySUQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBwYW5lbC5hZGQoIGRlc2NyaXB0b3JMYWJlbCwgaGl0c2NhblZvbHVtZSwgY29udHJvbGxlcklEICk7XHJcblxyXG4gIGNvbnN0IGludGVyYWN0aW9uID0gY3JlYXRlSW50ZXJhY3Rpb24oIGhpdHNjYW5Wb2x1bWUgKTtcclxuICBpbnRlcmFjdGlvbi5ldmVudHMub24oICdvblByZXNzZWQnLCBoYW5kbGVPblByZXNzICk7XHJcblxyXG4gIHVwZGF0ZVZpZXcoKTtcclxuXHJcbiAgZnVuY3Rpb24gdXBkYXRlU3RyaW5nKHN0cikge1xyXG4gICAgICBvYmplY3RbcHJvcGVydHlOYW1lXSA9IHN0cjtcclxuICAgICAgYnV0dG9uTGFiZWwudXBkYXRlTGFiZWwoc3RyKTtcclxuICB9XHJcbiAgdmFyIGtleWJvYXJkO1xyXG4gIGZ1bmN0aW9uIHRvZ2dsZUtleWJvYXJkKCkge1xyXG4gICAgaWYgKGtleWJvYXJkKSB7XHJcbiAgICAgICAga2V5Ym9hcmQudmlzaWJsZSA9ICFrZXlib2FyZC52aXNpYmxlO1xyXG4gICAgICAgIGlmIChrZXlib2FyZC52aXNpYmxlKSBncm91cC5mb2xkZXIuc2V0TW9kYWxFZGl0b3Ioa2V5Ym9hcmQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAga2V5Ym9hcmQgPSBkYXQuR1VJVlIuY3JlYXRlKFwia2V5Ym9hcmRcIik7XHJcbiAgICAgICAgZ3JvdXAuYWRkKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5mb2xkZXIgPSBncm91cC5mb2xkZXI7XHJcbiAgICAgICAgZ3JvdXAuZm9sZGVyLnNldE1vZGFsRWRpdG9yKGtleWJvYXJkKTtcclxuICAgICAgICBrZXlib2FyZC5wb3NpdGlvbi54ID0gd2lkdGg7XHJcbiAgICAgICAga2V5Ym9hcmQucG9zaXRpb24ueSA9IExheW91dC5GT0xERVJfSEVJR0hUO1xyXG4gICAgICAgIGtleWJvYXJkLmhpZGVIZWFkZXIoKTtcclxuICAgICAgICBrZXlib2FyZC5hZGRLZXlib2FyZCggKGspID0+IHtcclxuICAgICAgICAgICAgdmFyIHN0ciA9IG9iamVjdFtwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ1xcbic6XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZXR0aW5nIFwia2V5Ym9hcmQudmlzaWJsZSA9IGZhbHNlXCIgaW4gdGhlIG1pZGRsZSBvZiBldmVudFxyXG4gICAgICAgICAgICAgICAgICAgIC8vaGFuZGxlciBzZWVtcyB0byBraWxsIGFsbCBldmVudCBwcm9jZXNzaW5nIGZyb20gdGhlbiBvbi5cclxuICAgICAgICAgICAgICAgICAgICAvL3NldFRpbWVvdXQgaXMgYW4gYWRlcXVhdGUgd29ya2Fyb3VuZCBmb3Igbm93LlxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodG9nZ2xlS2V5Ym9hcmQsIDEwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdcXGInOlxyXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgc3RyLmxlbmd0aC0xKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdHJpbmcoc3RyKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9IGs7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RyaW5nKHN0cik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGhhbmRsZU9uUHJlc3MoIHAgKXtcclxuICAgIC8vdGhpcyB0ZXN0IHNob3VsZCBiZSByZWR1bmRhbnQgbm93XHJcbiAgICAvLyBpZiggZ3JvdXAudmlzaWJsZSA9PT0gZmFsc2UgKXtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vb2JqZWN0WyBwcm9wZXJ0eU5hbWUgXSgpO1xyXG5cclxuICAgIC8vaGl0c2NhblZvbHVtZS5wb3NpdGlvbi56ID0gQlVUVE9OX0RFUFRIICogMC4xO1xyXG5cclxuICAgIC8vIGNyZWF0ZSBhIGtleWJvYXJkIGFuZCBhdHRhY2ggaXQgYXMgY2hpbGQgb2YgZ3JvdXAuLi4gXHJcbiAgICAvLyBvciBqdXN0IG1ha2Ugc3VyZSBleGlzdGluZyBrZXlib2FyZCBpcyB2aXNpYmxlLlxyXG4gICAgdG9nZ2xlS2V5Ym9hcmQoKTtcclxuXHJcbiAgICBwLmxvY2tlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBcclxuICBmdW5jdGlvbiB1cGRhdGVWaWV3KCl7XHJcblxyXG4gICAgaWYoIGludGVyYWN0aW9uLmhvdmVyaW5nKCkgKXtcclxuICAgICAgbWF0ZXJpYWwuY29sb3Iuc2V0SGV4KCBDb2xvcnMuVEVYVEJPWF9ISUdITElHSFRfQkcgKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIG1hdGVyaWFsLmNvbG9yLnNldEhleCggQ29sb3JzLlRFWFRCT1hfQkcgKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBncm91cC5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uO1xyXG4gIGdyb3VwLmhpdHNjYW4gPSBbIGhpdHNjYW5Wb2x1bWUsIHBhbmVsIF07XHJcblxyXG4gIGNvbnN0IGdyYWJJbnRlcmFjdGlvbiA9IEdyYWIuY3JlYXRlKCB7IGdyb3VwLCBwYW5lbCB9ICk7XHJcblxyXG4gIGdyb3VwLnVwZGF0ZUNvbnRyb2wgPSBmdW5jdGlvbiggaW5wdXRPYmplY3RzICl7XHJcbiAgICBpbnRlcmFjdGlvbi51cGRhdGUoIGlucHV0T2JqZWN0cyApO1xyXG4gICAgZ3JhYkludGVyYWN0aW9uLnVwZGF0ZSggaW5wdXRPYmplY3RzICk7XHJcbiAgICB1cGRhdGVWaWV3KCk7XHJcbiAgfTtcclxuXHJcbiAgZ3JvdXAubmFtZSA9IGZ1bmN0aW9uKCBzdHIgKXtcclxuICAgIGRlc2NyaXB0b3JMYWJlbC51cGRhdGVMYWJlbCggc3RyICk7XHJcbiAgICByZXR1cm4gZ3JvdXA7XHJcbiAgfTtcclxuXHJcblxyXG4gIHJldHVybiBncm91cDtcclxufSIsIi8qKlxyXG4qIGRhdC1ndWlWUiBKYXZhc2NyaXB0IENvbnRyb2xsZXIgTGlicmFyeSBmb3IgVlJcclxuKiBodHRwczovL2dpdGh1Yi5jb20vZGF0YWFydHMvZGF0Lmd1aVZSXHJcbipcclxuKiBDb3B5cmlnaHQgMjAxNiBEYXRhIEFydHMgVGVhbSwgR29vZ2xlIEluYy5cclxuKlxyXG4qIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4qIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4qXHJcbiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4qXHJcbiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4qIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiovXHJcblxyXG5pbXBvcnQgKiBhcyBDb2xvcnMgZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgKiBhcyBTaGFyZWRNYXRlcmlhbHMgZnJvbSAnLi9zaGFyZWRtYXRlcmlhbHMnO1xyXG5pbXBvcnQgKiBhcyBMYXlvdXQgZnJvbSAnLi9sYXlvdXQnO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVGV4dExhYmVsKCB0ZXh0Q3JlYXRvciwgc3RyLCB3aWR0aCA9IDAuNCwgZGVwdGggPSAwLjAyOSwgZmdDb2xvciA9IDB4ZmZmZmZmLCBiZ0NvbG9yID0gQ29sb3JzLkRFRkFVTFRfQkFDSywgc2NhbGUgPSAxLjAgKXtcclxuXHJcbiAgY29uc3QgZ3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTtcclxuICBncm91cC5ndWlUeXBlID0gXCJ0ZXh0bGFiZWxcIjtcclxuICBncm91cC50b1N0cmluZyA9ICgpID0+IGBbJHtncm91cC5ndWlUeXBlfTogJHtzdHJ9XWA7XHJcblxyXG4gIGNvbnN0IGludGVybmFsUG9zaXRpb25pbmcgPSBuZXcgVEhSRUUuR3JvdXAoKTsgLy9yYXRoZXIgdW5uZWNlc3NhcnkuXHJcbiAgZ3JvdXAuYWRkKCBpbnRlcm5hbFBvc2l0aW9uaW5nICk7XHJcblxyXG4gIGNvbnN0IHRleHQgPSB0ZXh0Q3JlYXRvci5jcmVhdGUoIHN0ci50b1N0cmluZygpLCB7IGNvbG9yOiBmZ0NvbG9yLCBzY2FsZSB9ICk7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIHRleHQgKTtcclxuICBncm91cC51c2VyRGF0YS50ZXh0ID0gdGV4dDtcclxuXHJcbiAgZ3JvdXAuc2V0U3RyaW5nID0gZnVuY3Rpb24oIHN0ciApe1xyXG4gICAgaWYgKHN0ciA9PT0gdW5kZWZpbmVkKSBzdHIgPSBcIlt1bmRlZmluZWRdXCI7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9TdHJpbmcoKSApO1xyXG4gICAgLy90ZXh0LmNvbnN0cmFpbkJvdW5kcyh0b3RhbFdpZHRoLCAwLjA0KTtcclxuICB9O1xyXG5cclxuICBncm91cC5zZXROdW1iZXIgPSBmdW5jdGlvbiggc3RyICl7XHJcbiAgICB0ZXh0LnVwZGF0ZUxhYmVsKCBzdHIudG9GaXhlZCgyKSApO1xyXG4gIH07XHJcblxyXG4gIHRleHQucG9zaXRpb24ueiA9IGRlcHRoO1xyXG5cclxuICBjb25zdCBiYWNrQm91bmRzID0gMC4wMTtcclxuICBjb25zdCBtYXJnaW4gPSAwLjAxO1xyXG4gIGNvbnN0IHRvdGFsV2lkdGggPSB3aWR0aDtcclxuICBjb25zdCB0b3RhbEhlaWdodCA9IDAuMDQgKyBtYXJnaW4gKiAyO1xyXG5cclxuICAvL3RleHQuY29uc3RyYWluQm91bmRzKHRvdGFsV2lkdGgsIDAuMDQpO1xyXG5cclxuICBjb25zdCBsYWJlbEJhY2tHZW9tZXRyeSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeSggdG90YWxXaWR0aCwgdG90YWxIZWlnaHQsIGRlcHRoLCAxLCAxLCAxICk7XHJcbiAgbGFiZWxCYWNrR2VvbWV0cnkuYXBwbHlNYXRyaXg0KCBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbiggdG90YWxXaWR0aCAqIDAuNSAtIG1hcmdpbiwgMCwgMCApICk7XHJcblxyXG4gIGNvbnN0IGxhYmVsQmFja01lc2ggPSBuZXcgVEhSRUUuTWVzaCggbGFiZWxCYWNrR2VvbWV0cnksIFNoYXJlZE1hdGVyaWFscy5QQU5FTCApO1xyXG4gIENvbG9ycy5jb2xvcml6ZUdlb21ldHJ5KCBsYWJlbEJhY2tNZXNoLmdlb21ldHJ5LCBiZ0NvbG9yICk7XHJcblxyXG4gIGxhYmVsQmFja01lc2gucG9zaXRpb24ueSA9IDAuMDM7XHJcbiAgaW50ZXJuYWxQb3NpdGlvbmluZy5hZGQoIGxhYmVsQmFja01lc2ggKTtcclxuICBpbnRlcm5hbFBvc2l0aW9uaW5nLnBvc2l0aW9uLnkgPSAtdG90YWxIZWlnaHQgKiAwLjU7XHJcblxyXG4gIGdyb3VwLmJhY2sgPSBsYWJlbEJhY2tNZXNoO1xyXG5cclxuICByZXR1cm4gZ3JvdXA7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRQYXJlbnRIZWlnaHQgPSBMYXlvdXQuUEFORUxfSEVJR0hUICsgTGF5b3V0LlBBTkVMX1NQQUNJTkc7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sVGlwKCB0ZXh0Q3JlYXRvciwgdGlwLCBwYXJlbnRXaWR0aCwgcGFyZW50SGVpZ2h0ID0gZGVmYXVsdFBhcmVudEhlaWdodCwgcGFyZW50RGVwdGggKSB7XHJcbiAgY29uc3QgdGlwVGV4dCA9IHRleHRDcmVhdG9yLmNyZWF0ZSh0aXApO1xyXG4gIFxyXG4gIGNvbnN0IHRpcEdyb3VwID0gbmV3IFRIUkVFLkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0IHcgPSB0aXBUZXh0LmNvbXB1dGVXaWR0aCgpO1xyXG4gIGNvbnN0IGggPSBMYXlvdXQuVEVYVF9TQ0FMRSAqIHRpcFRleHQubGF5b3V0LmhlaWdodDtcclxuXHJcbiAgdGlwR3JvdXAucG9zaXRpb24ueCAgPSAwLjUgKiBwYXJlbnRXaWR0aDtcclxuICB0aXBHcm91cC5wb3NpdGlvbi55ID0gLTEuMDUgKiBwYXJlbnRIZWlnaHQgLSBoO1xyXG4gIHRpcEdyb3VwLnBvc2l0aW9uLnogPSBwYXJlbnREZXB0aCAqIDM7XHJcbiAgdGlwR3JvdXAudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuLy8gIHN1Ymdyb3VwLmFkZCh0aXBHcm91cCk7XHJcbiAgdGlwR3JvdXAuYWRkKHRpcFRleHQpO1xyXG4vLyAgc3ViZ3JvdXAudGlwVGV4dCA9IHRpcEdyb3VwO1xyXG5cclxuICBjb25zdCBwYWRkZWRXID0gdyArIDAuMDMsIHBhZGRlZEggPSBoICsgMC4wMztcclxuICBjb25zdCB0aXBSZWN0ID0gbmV3IFRIUkVFLlBsYW5lR2VvbWV0cnkocGFkZGVkVywgcGFkZGVkSCwgMSwgMSk7XHJcbiAgY29uc3QgdGlwQmFja2dyb3VuZCA9IG5ldyBUSFJFRS5NZXNoKHRpcFJlY3QsIFNoYXJlZE1hdGVyaWFscy5UT09MVElQKTtcclxuICB0aXBCYWNrZ3JvdW5kLnBvc2l0aW9uLnggPSAwOyAvL3BhZGRlZFcgLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueSA9IGggLyAyO1xyXG4gIHRpcEJhY2tncm91bmQucG9zaXRpb24ueiA9IC1wYXJlbnREZXB0aCAqIDAuNTtcclxuICB0aXBHcm91cC5hZGQodGlwQmFja2dyb3VuZCk7XHJcblxyXG4gIHRpcFRleHQucG9zaXRpb24ueCA9IC0wLjUgKiB3O1xyXG4gIHRpcFRleHQucG9zaXRpb24ueSA9IC0wLjUgKiBoICsgMC4wMDE1O1xyXG5cclxuICB0aXBHcm91cC51c2VyRGF0YS53ID0gdztcclxuICB0aXBHcm91cC51c2VyRGF0YS5oID0gaDtcclxuXHJcbiAgcmV0dXJuIHRpcEdyb3VwO1xyXG59XHJcbiIsIi8qKiBiYXNpYyB1dGlsaXR5IGZ1bmN0aW9ucyAqL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udHJvbGxlclZpc2libGUoY29udHJvbCkge1xyXG4gIHZhciBmb2xkZXIgPSBjb250cm9sLmZvbGRlcjtcclxuICAvL25vdGU6IHRoZSBiYXNpcyBvbiB3aGljaCBhIGNvbnRyb2xsZXIgaXMgY29uc2lkZXJlZCB2aXNpYmxlIHJldmlzZWQgZm9yICdoZWFkZXInIG9iamVjdHMuXHJcbiAgLy9mb3Igbm93LCB0aGlzIHNob3VsZCBhbGxvdyBoZWFkZXIgY29udHJvbGxlcnMgdG8gdXBkYXRlIHdoaWxlIGZvbGRlciBpcyBjb2xsYXBzZWQuXHJcbiAgLy9vbmx5IGFwcGxpZXMgdG8gY2hlY2tib3gsIHBlbmRpbmcgZGVzaWduIHJldmlzaW9uICYgZnVsbGVyIGltcGxlbWVudGF0aW9uLi4uXHJcbiAgXHJcbiAgLy8tLS0tIGlzU2hvd25JbkZvbGRlckhlYWRlciBubyBsb25nZXIgcmVsZXZhbnQsIGJ1dCBlbmRpbmcgdXAgd2l0aCBzb21ldGhpbmcgdGhhdCBsb29rcyBzaW1pbGFyLi4uLlxyXG4gIC8vaXNIZWFkZXJPYmplY3Qgd2lsbCBhcHBseSB0byB0aGUgYWN0dWFsIGNvbnRyb2wgYXBwZWFyaW5nIGluIHRoZSBmb2xkZXIgaGVhZGVyLCB3aGVyZWFzXHJcbiAgLy9pc1Nob3duSW5Gb2xkZXJIZWFkZXIgd2FzIHdoZW4gc3VjaCBvYmplY3RzIHdlcmVuJ3Qgc28gZnVsbHktZmxlZGdlZFxyXG4gIC8vaWYgKGNvbnRyb2wuaXNTaG93bkluRm9sZGVySGVhZGVyKSByZXR1cm4gaXNDb250cm9sbGVyVmlzaWJsZShmb2xkZXIpOyAvLzw8PDw8IHN0aWxsIGhpdHRpbmcgZm9sZGVkIGJ1dHRvbj8/PyAoYWxzbywgdHJ5IG5wbSBhdWRpdClcclxuICBpZiAoY29udHJvbC5pc0hlYWRlck9iamVjdCkgcmV0dXJuIGlzQ29udHJvbGxlclZpc2libGUoZm9sZGVyKTtcclxuXHJcbiAgLy9YWFggaGF2aW5nIHNvbWUgZGVmaW5pdGUgYnVncyBlLmcuIG1pc3NpbmcgZXZlbnRzIG92ZXIgJ3BpY3R1cmVzIC8gbWF0ZXJpYWxzJyBmb2xkZXIgaGVhZGVyIGluIGRlbW8uXHJcbiAgXHJcbiAgaWYgKCFjb250cm9sLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICBcclxuICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKXtcclxuICAgIGlmIChmb2xkZXIuaXNDb2xsYXBzZWQoKSB8fCAhZm9sZGVyLnZpc2libGUpIHJldHVybiBmYWxzZTtcclxuICAgIGZvbGRlciA9IGZvbGRlci5mb2xkZXI7XHJcbiAgfVxyXG4gIGlmICghZm9sZGVyLnBhcmVudCkgcmV0dXJuIGZhbHNlO1xyXG4gIHJldHVybiBmb2xkZXIudmlzaWJsZTtcclxufVxyXG5cclxuLyoqIFxyXG4gKiBJbnZpc2libGUgVEhSRUUgb2JqZWN0cyBpbmN1ciBzaWduaWZpY2FudCBDUFUgY29zdC5cclxuICogVGhpcyBhdm9pZHMgdGhhdCBieSByZW1vdmluZyB0aGVtIGZyb20gc2NlbmUgaGllcmFyY2h5LlxyXG4gKiBcclxuICogSWYgdmlzaWJsZSBpcyB0cnVlLCBtYWtlIHN1cmUgY2hpbGQudmlzaWJsZT10cnVlIGFuZCBpcyBhIGNoaWxkIG9mIHBhcmVudC5cclxuICogSWYgdmlzaWJsZSBpcyBmYWxzZSwgbWFrZSBzdXJlIGNoaWxkLnZpc2libGU9ZmFsc2UgYW5kIGlzIHJlbW92ZWQgZnJvbSBzY2VuZSBoaWVyYXJjaHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0VmlzaWJpbGl0eShwYXJlbnQsIGNoaWxkLCB2aXNpYmxlKSB7XHJcbiAgICBjb25zdCBpc0NoaWxkID0gcGFyZW50LmNoaWxkcmVuLmluY2x1ZGVzKGNoaWxkKTtcclxuICAgIGNoaWxkLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgLy9tYWtlIHN1cmUgd2UgdXNlIG9yaWdpbmFsIFRIUkVFIG1ldGhvZHMgdGhhdCB0aGlzIGxpYnJhcnkgb3ZlcnJpZGVzIChUT0RPOiByZWZhY3Rvci4uLilcclxuICAgIGlmICh2aXNpYmxlICYmICFpc0NoaWxkKSBUSFJFRS5Hcm91cC5wcm90b3R5cGUuYWRkLmNhbGwocGFyZW50LCBjaGlsZCk7XHJcbiAgICBpZiAoIXZpc2libGUgJiYgaXNDaGlsZCkgVEhSRUUuR3JvdXAucHJvdG90eXBlLnJlbW92ZS5jYWxsKHBhcmVudCwgY2hpbGQpO1xyXG4gICAgaWYgKCFwYXJlbnQudmlzaWJsZSkgY29uc29sZS53YXJuKGBzZXRWaXNpYmlsaXR5IGNhbGxlZCBvbiBjaGlsZCAke2NoaWxkfSBvZiBpbnZpc2libGUgcGFyZW50ICR7cGFyZW50fWApO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgaGlnaGVzdCBsZXZlbCBvZiBwYXJlbnQgZm9sZGVyIGluIHRoZSBndWkgaGllYXJjaHkgY29udGFpbmluZyBhIGdpdmVuIG9iamVjdC5cclxuICogbmIuIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gd291bGQgcmV0dXJuIHRoZSBpbnB1dCBvYmplY3QgaWYgaXQgZGlkbid0IGhhdmUgYSAnZm9sZGVyJyBwcm9wZXJ0eS5cclxuICogTm93LCBpdCBpcyBpbnRlbmRlZCB0aGF0IGl0IHNob3VsZCBlaXRoZXIgcmV0dXJuIGEgZm9sZGVyIGlmIGFwcHJvcHJpYXRlLCBvciBub3RoaW5nLlxyXG4gKiBAcGFyYW0geyp9IGdyb3VwIGVpdGhlciBhIGZvbGRlciwgb3IgYW4gb2JqZWN0IHdob3NlIHBhcmVudCBoYXMgYSBmb2xkZXIuLi4gYXBvbG9naWVzLCB0aGlzIGlzIG5vdCB0aGUgY2xlYXJlc3Qgc3BlYy5cclxuICogLi4uIGludGVudGlvbiBpcyB0aGF0IGl0IHNob3VsZCB3b3JrIHdpdGggYW55IGd1aSBlbGVtZW50LCBpbiBwYXJ0aWN1bGFyIGFueSBoaXRPYmplY3QgaW4gaW50ZXJhY3Rpb24uanMuLi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3BMZXZlbEZvbGRlcihncm91cCkge1xyXG4gICAgdmFyIGZvbGRlciA9IGdldEZvbGRlcihncm91cCk7XHJcbiAgICB3aGlsZSAoZm9sZGVyLmZvbGRlciAhPT0gZm9sZGVyKSBmb2xkZXIgPSBmb2xkZXIuZm9sZGVyO1xyXG4gICAgcmV0dXJuIGZvbGRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvbGRlcihncm91cCkge1xyXG4gICAgaWYgKGdyb3VwLmZvbGRlcikgcmV0dXJuIGdyb3VwLmZvbGRlcjtcclxuICAgIGxldCBub2RlID0gZ3JvdXAucGFyZW50O1xyXG4gICAgd2hpbGUgKCFub2RlLmZvbGRlciAmJiBncm91cC5wYXJlbnQpIG5vZGUgPSBub2RlLnBhcmVudDtcclxuICAgIHJldHVybiBub2RlLmZvbGRlcjtcclxufVxyXG5cclxuLy93ZSBuZWVkIHRvIGF2b2lkIE5hTiBiZWNhdXNlIG9mIFRleHRHZW9tZXRyeSBwb3NpdGlvbiBoYXZpbmcgaXRlbVNpemUgPT0gMiB3aGljaCB1cHNldHMgVmVjdG9yMy5mcm9tQnVmZmVyQXR0cmlidXRlXHJcbi8vaHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy9pc3N1ZXMvMTQzNTJcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEJveEZyb21PYmplY3QoYm94LCBvYmopIHtcclxuICBjb25zdCB3b25reUdlb20gPSBbXTtcclxuICBvYmoudHJhdmVyc2UobyA9PiB7XHJcbiAgICBpZiAoby5nZW9tZXRyeSAmJiBvLmdlb21ldHJ5LmlzQnVmZmVyR2VvbWV0cnkgJiYgby5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplICE9PSAzKSB7XHJcbiAgICAgIG8uZ2VvbWV0cnkuaXNCdWZmZXJHZW9tZXRyeSA9IGZhbHNlO1xyXG4gICAgICB3b25reUdlb20ucHVzaChvLmdlb21ldHJ5KTtcclxuICAgIH1cclxuICB9KTtcclxuICBib3guc2V0RnJvbU9iamVjdChvYmopO1xyXG4gIHdvbmt5R2VvbS5mb3JFYWNoKGcgPT4gZy5pc0J1ZmZlckdlb21ldHJ5ID0gdHJ1ZSk7XHJcbiAgcmV0dXJuIGJveDtcclxufVxyXG4iLCJ2YXIgc3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFuQXJyYXlcblxuZnVuY3Rpb24gYW5BcnJheShhcnIpIHtcbiAgcmV0dXJuIChcbiAgICAgICBhcnIuQllURVNfUEVSX0VMRU1FTlRcbiAgICAmJiBzdHIuY2FsbChhcnIuYnVmZmVyKSA9PT0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJ1xuICAgIHx8IEFycmF5LmlzQXJyYXkoYXJyKVxuICApXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG51bXR5cGUobnVtLCBkZWYpIHtcblx0cmV0dXJuIHR5cGVvZiBudW0gPT09ICdudW1iZXInXG5cdFx0PyBudW0gXG5cdFx0OiAodHlwZW9mIGRlZiA9PT0gJ251bWJlcicgPyBkZWYgOiAwKVxufSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZHR5cGUpIHtcbiAgc3dpdGNoIChkdHlwZSkge1xuICAgIGNhc2UgJ2ludDgnOlxuICAgICAgcmV0dXJuIEludDhBcnJheVxuICAgIGNhc2UgJ2ludDE2JzpcbiAgICAgIHJldHVybiBJbnQxNkFycmF5XG4gICAgY2FzZSAnaW50MzInOlxuICAgICAgcmV0dXJuIEludDMyQXJyYXlcbiAgICBjYXNlICd1aW50OCc6XG4gICAgICByZXR1cm4gVWludDhBcnJheVxuICAgIGNhc2UgJ3VpbnQxNic6XG4gICAgICByZXR1cm4gVWludDE2QXJyYXlcbiAgICBjYXNlICd1aW50MzInOlxuICAgICAgcmV0dXJuIFVpbnQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQzMic6XG4gICAgICByZXR1cm4gRmxvYXQzMkFycmF5XG4gICAgY2FzZSAnZmxvYXQ2NCc6XG4gICAgICByZXR1cm4gRmxvYXQ2NEFycmF5XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIEFycmF5XG4gICAgY2FzZSAndWludDhfY2xhbXBlZCc6XG4gICAgICByZXR1cm4gVWludDhDbGFtcGVkQXJyYXlcbiAgfVxufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcbm1vZHVsZS5leHBvcnRzLm9uY2UgPSBvbmNlO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50c0NvdW50ID0gMDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxudmFyIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuZnVuY3Rpb24gY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcikge1xuICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwibGlzdGVuZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyArIHR5cGVvZiBsaXN0ZW5lcik7XG4gIH1cbn1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KEV2ZW50RW1pdHRlciwgJ2RlZmF1bHRNYXhMaXN0ZW5lcnMnLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24oYXJnKSB7XG4gICAgaWYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInIHx8IGFyZyA8IDAgfHwgTnVtYmVySXNOYU4oYXJnKSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSBvZiBcImRlZmF1bHRNYXhMaXN0ZW5lcnNcIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnICsgYXJnICsgJy4nKTtcbiAgICB9XG4gICAgZGVmYXVsdE1heExpc3RlbmVycyA9IGFyZztcbiAgfVxufSk7XG5cbkV2ZW50RW1pdHRlci5pbml0ID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKHRoaXMuX2V2ZW50cyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9ldmVudHMgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzKSB7XG4gICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gIH1cblxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkO1xufTtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gc2V0TWF4TGlzdGVuZXJzKG4pIHtcbiAgaWYgKHR5cGVvZiBuICE9PSAnbnVtYmVyJyB8fCBuIDwgMCB8fCBOdW1iZXJJc05hTihuKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJuXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIG4gKyAnLicpO1xuICB9XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuZnVuY3Rpb24gX2dldE1heExpc3RlbmVycyh0aGF0KSB7XG4gIGlmICh0aGF0Ll9tYXhMaXN0ZW5lcnMgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnM7XG4gIHJldHVybiB0aGF0Ll9tYXhMaXN0ZW5lcnM7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24gZ2V0TWF4TGlzdGVuZXJzKCkge1xuICByZXR1cm4gX2dldE1heExpc3RlbmVycyh0aGlzKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIGVtaXQodHlwZSkge1xuICB2YXIgYXJncyA9IFtdO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XG4gIHZhciBkb0Vycm9yID0gKHR5cGUgPT09ICdlcnJvcicpO1xuXG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gIGlmIChldmVudHMgIT09IHVuZGVmaW5lZClcbiAgICBkb0Vycm9yID0gKGRvRXJyb3IgJiYgZXZlbnRzLmVycm9yID09PSB1bmRlZmluZWQpO1xuICBlbHNlIGlmICghZG9FcnJvcilcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gJ2Vycm9yJyBldmVudCBsaXN0ZW5lciB0aGVuIHRocm93LlxuICBpZiAoZG9FcnJvcikge1xuICAgIHZhciBlcjtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKVxuICAgICAgZXIgPSBhcmdzWzBdO1xuICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAvLyBOb3RlOiBUaGUgY29tbWVudHMgb24gdGhlIGB0aHJvd2AgbGluZXMgYXJlIGludGVudGlvbmFsLCB0aGV5IHNob3dcbiAgICAgIC8vIHVwIGluIE5vZGUncyBvdXRwdXQgaWYgdGhpcyByZXN1bHRzIGluIGFuIHVuaGFuZGxlZCBleGNlcHRpb24uXG4gICAgICB0aHJvdyBlcjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgICB9XG4gICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlclxuICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuaGFuZGxlZCBlcnJvci4nICsgKGVyID8gJyAoJyArIGVyLm1lc3NhZ2UgKyAnKScgOiAnJykpO1xuICAgIGVyci5jb250ZXh0ID0gZXI7XG4gICAgdGhyb3cgZXJyOyAvLyBVbmhhbmRsZWQgJ2Vycm9yJyBldmVudFxuICB9XG5cbiAgdmFyIGhhbmRsZXIgPSBldmVudHNbdHlwZV07XG5cbiAgaWYgKGhhbmRsZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgUmVmbGVjdEFwcGx5KGhhbmRsZXIsIHRoaXMsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHZhciBsZW4gPSBoYW5kbGVyLmxlbmd0aDtcbiAgICB2YXIgbGlzdGVuZXJzID0gYXJyYXlDbG9uZShoYW5kbGVyLCBsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpXG4gICAgICBSZWZsZWN0QXBwbHkobGlzdGVuZXJzW2ldLCB0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZnVuY3Rpb24gX2FkZExpc3RlbmVyKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHByZXBlbmQpIHtcbiAgdmFyIG07XG4gIHZhciBldmVudHM7XG4gIHZhciBleGlzdGluZztcblxuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRhcmdldC5fZXZlbnRzQ291bnQgPSAwO1xuICB9IGVsc2Uge1xuICAgIC8vIFRvIGF2b2lkIHJlY3Vyc2lvbiBpbiB0aGUgY2FzZSB0aGF0IHR5cGUgPT09IFwibmV3TGlzdGVuZXJcIiEgQmVmb3JlXG4gICAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICAgIGlmIChldmVudHMubmV3TGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGFyZ2V0LmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyID8gbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgICAgIC8vIFJlLWFzc2lnbiBgZXZlbnRzYCBiZWNhdXNlIGEgbmV3TGlzdGVuZXIgaGFuZGxlciBjb3VsZCBoYXZlIGNhdXNlZCB0aGVcbiAgICAgIC8vIHRoaXMuX2V2ZW50cyB0byBiZSBhc3NpZ25lZCB0byBhIG5ldyBvYmplY3RcbiAgICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzO1xuICAgIH1cbiAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXTtcbiAgfVxuXG4gIGlmIChleGlzdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjtcbiAgICArK3RhcmdldC5fZXZlbnRzQ291bnQ7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gQWRkaW5nIHRoZSBzZWNvbmQgZWxlbWVudCwgbmVlZCB0byBjaGFuZ2UgdG8gYXJyYXkuXG4gICAgICBleGlzdGluZyA9IGV2ZW50c1t0eXBlXSA9XG4gICAgICAgIHByZXBlbmQgPyBbbGlzdGVuZXIsIGV4aXN0aW5nXSA6IFtleGlzdGluZywgbGlzdGVuZXJdO1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIH0gZWxzZSBpZiAocHJlcGVuZCkge1xuICAgICAgZXhpc3RpbmcudW5zaGlmdChsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0aW5nLnB1c2gobGlzdGVuZXIpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBsaXN0ZW5lciBsZWFrXG4gICAgbSA9IF9nZXRNYXhMaXN0ZW5lcnModGFyZ2V0KTtcbiAgICBpZiAobSA+IDAgJiYgZXhpc3RpbmcubGVuZ3RoID4gbSAmJiAhZXhpc3Rpbmcud2FybmVkKSB7XG4gICAgICBleGlzdGluZy53YXJuZWQgPSB0cnVlO1xuICAgICAgLy8gTm8gZXJyb3IgY29kZSBmb3IgdGhpcyBzaW5jZSBpdCBpcyBhIFdhcm5pbmdcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgICAgdmFyIHcgPSBuZXcgRXJyb3IoJ1Bvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmxlbmd0aCArICcgJyArIFN0cmluZyh0eXBlKSArICcgbGlzdGVuZXJzICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jcmVhc2UgbGltaXQnKTtcbiAgICAgIHcubmFtZSA9ICdNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmcnO1xuICAgICAgdy5lbWl0dGVyID0gdGFyZ2V0O1xuICAgICAgdy50eXBlID0gdHlwZTtcbiAgICAgIHcuY291bnQgPSBleGlzdGluZy5sZW5ndGg7XG4gICAgICBQcm9jZXNzRW1pdFdhcm5pbmcodyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uIGFkZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHJldHVybiBfYWRkTGlzdGVuZXIodGhpcywgdHlwZSwgbGlzdGVuZXIsIGZhbHNlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcHJlcGVuZExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgICB9O1xuXG5mdW5jdGlvbiBvbmNlV3JhcHBlcigpIHtcbiAgaWYgKCF0aGlzLmZpcmVkKSB7XG4gICAgdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLCB0aGlzLndyYXBGbik7XG4gICAgdGhpcy5maXJlZCA9IHRydWU7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5jYWxsKHRoaXMudGFyZ2V0KTtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCwgYXJndW1lbnRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfb25jZVdyYXAodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgc3RhdGUgPSB7IGZpcmVkOiBmYWxzZSwgd3JhcEZuOiB1bmRlZmluZWQsIHRhcmdldDogdGFyZ2V0LCB0eXBlOiB0eXBlLCBsaXN0ZW5lcjogbGlzdGVuZXIgfTtcbiAgdmFyIHdyYXBwZWQgPSBvbmNlV3JhcHBlci5iaW5kKHN0YXRlKTtcbiAgd3JhcHBlZC5saXN0ZW5lciA9IGxpc3RlbmVyO1xuICBzdGF0ZS53cmFwRm4gPSB3cmFwcGVkO1xuICByZXR1cm4gd3JhcHBlZDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24gb25jZSh0eXBlLCBsaXN0ZW5lcikge1xuICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgdGhpcy5vbih0eXBlLCBfb25jZVdyYXAodGhpcywgdHlwZSwgbGlzdGVuZXIpKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnByZXBlbmRPbmNlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRPbmNlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpO1xuICAgICAgdGhpcy5wcmVwZW5kTGlzdGVuZXIodHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4vLyBFbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWYgYW5kIG9ubHkgaWYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkLlxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXIpIHtcbiAgICAgIHZhciBsaXN0LCBldmVudHMsIHBvc2l0aW9uLCBpLCBvcmlnaW5hbExpc3RlbmVyO1xuXG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgbGlzdCA9IGV2ZW50c1t0eXBlXTtcbiAgICAgIGlmIChsaXN0ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgaWYgKC0tdGhpcy5fZXZlbnRzQ291bnQgPT09IDApXG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3QubGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBsaXN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHBvc2l0aW9uID0gLTE7XG5cbiAgICAgICAgZm9yIChpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGlmIChsaXN0W2ldID09PSBsaXN0ZW5lciB8fCBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikge1xuICAgICAgICAgICAgb3JpZ2luYWxMaXN0ZW5lciA9IGxpc3RbaV0ubGlzdGVuZXI7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gMClcbiAgICAgICAgICBsaXN0LnNoaWZ0KCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHNwbGljZU9uZShsaXN0LCBwb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpXG4gICAgICAgICAgZXZlbnRzW3R5cGVdID0gbGlzdFswXTtcblxuICAgICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIG9yaWdpbmFsTGlzdGVuZXIgfHwgbGlzdGVuZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9mZiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cbiAgICBmdW5jdGlvbiByZW1vdmVBbGxMaXN0ZW5lcnModHlwZSkge1xuICAgICAgdmFyIGxpc3RlbmVycywgZXZlbnRzLCBpO1xuXG4gICAgICBldmVudHMgPSB0aGlzLl9ldmVudHM7XG4gICAgICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gICAgICBpZiAoZXZlbnRzLnJlbW92ZUxpc3RlbmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudHNbdHlwZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBkZWxldGUgZXZlbnRzW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICAvLyBlbWl0IHJlbW92ZUxpc3RlbmVyIGZvciBhbGwgbGlzdGVuZXJzIG9uIGFsbCBldmVudHNcbiAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnRzKTtcbiAgICAgICAgdmFyIGtleTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdyZW1vdmVMaXN0ZW5lcicpIGNvbnRpbnVlO1xuICAgICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3JlbW92ZUxpc3RlbmVyJyk7XG4gICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGxpc3RlbmVycyA9IGV2ZW50c1t0eXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5lcnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICAgICAgfSBlbHNlIGlmIChsaXN0ZW5lcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMSUZPIG9yZGVyXG4gICAgICAgIGZvciAoaSA9IGxpc3RlbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG5mdW5jdGlvbiBfbGlzdGVuZXJzKHRhcmdldCwgdHlwZSwgdW53cmFwKSB7XG4gIHZhciBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIFtdO1xuXG4gIHZhciBldmxpc3RlbmVyID0gZXZlbnRzW3R5cGVdO1xuICBpZiAoZXZsaXN0ZW5lciA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpXG4gICAgcmV0dXJuIHVud3JhcCA/IFtldmxpc3RlbmVyLmxpc3RlbmVyIHx8IGV2bGlzdGVuZXJdIDogW2V2bGlzdGVuZXJdO1xuXG4gIHJldHVybiB1bndyYXAgP1xuICAgIHVud3JhcExpc3RlbmVycyhldmxpc3RlbmVyKSA6IGFycmF5Q2xvbmUoZXZsaXN0ZW5lciwgZXZsaXN0ZW5lci5sZW5ndGgpO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uIGxpc3RlbmVycyh0eXBlKSB7XG4gIHJldHVybiBfbGlzdGVuZXJzKHRoaXMsIHR5cGUsIHRydWUpO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnMgPSBmdW5jdGlvbiByYXdMaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLmxpc3RlbmVyQ291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBsaXN0ZW5lckNvdW50LmNhbGwoZW1pdHRlciwgdHlwZSk7XG4gIH1cbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJDb3VudCA9IGxpc3RlbmVyQ291bnQ7XG5mdW5jdGlvbiBsaXN0ZW5lckNvdW50KHR5cGUpIHtcbiAgdmFyIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcblxuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcblxuICAgIGlmICh0eXBlb2YgZXZsaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChldmxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgcmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50ID4gMCA/IFJlZmxlY3RPd25LZXlzKHRoaXMuX2V2ZW50cykgOiBbXTtcbn07XG5cbmZ1bmN0aW9uIGFycmF5Q2xvbmUoYXJyLCBuKSB7XG4gIHZhciBjb3B5ID0gbmV3IEFycmF5KG4pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSlcbiAgICBjb3B5W2ldID0gYXJyW2ldO1xuICByZXR1cm4gY29weTtcbn1cblxuZnVuY3Rpb24gc3BsaWNlT25lKGxpc3QsIGluZGV4KSB7XG4gIGZvciAoOyBpbmRleCArIDEgPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcbiAgICBsaXN0W2luZGV4XSA9IGxpc3RbaW5kZXggKyAxXTtcbiAgbGlzdC5wb3AoKTtcbn1cblxuZnVuY3Rpb24gdW53cmFwTGlzdGVuZXJzKGFycikge1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGFyci5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHJldC5sZW5ndGg7ICsraSkge1xuICAgIHJldFtpXSA9IGFycltpXS5saXN0ZW5lciB8fCBhcnJbaV07XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb25jZShlbWl0dGVyLCBuYW1lKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihlcnIpIHtcbiAgICAgIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIobmFtZSwgcmVzb2x2ZXIpO1xuICAgICAgcmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZXIoKSB7XG4gICAgICBpZiAodHlwZW9mIGVtaXR0ZXIucmVtb3ZlTGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBlcnJvckxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICAgIHJlc29sdmUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKTtcbiAgICB9O1xuXG4gICAgZXZlbnRUYXJnZXRBZ25vc3RpY0FkZExpc3RlbmVyKGVtaXR0ZXIsIG5hbWUsIHJlc29sdmVyLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgaWYgKG5hbWUgIT09ICdlcnJvcicpIHtcbiAgICAgIGFkZEVycm9ySGFuZGxlcklmRXZlbnRFbWl0dGVyKGVtaXR0ZXIsIGVycm9yTGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRFcnJvckhhbmRsZXJJZkV2ZW50RW1pdHRlcihlbWl0dGVyLCBoYW5kbGVyLCBmbGFncykge1xuICBpZiAodHlwZW9mIGVtaXR0ZXIub24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBldmVudFRhcmdldEFnbm9zdGljQWRkTGlzdGVuZXIoZW1pdHRlciwgJ2Vycm9yJywgaGFuZGxlciwgZmxhZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGV2ZW50VGFyZ2V0QWdub3N0aWNBZGRMaXN0ZW5lcihlbWl0dGVyLCBuYW1lLCBsaXN0ZW5lciwgZmxhZ3MpIHtcbiAgaWYgKHR5cGVvZiBlbWl0dGVyLm9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgIGVtaXR0ZXIub25jZShuYW1lLCBsaXN0ZW5lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVtaXR0ZXIub24obmFtZSwgbGlzdGVuZXIpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZW1pdHRlci5hZGRFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gRXZlbnRUYXJnZXQgZG9lcyBub3QgaGF2ZSBgZXJyb3JgIGV2ZW50IHNlbWFudGljcyBsaWtlIE5vZGVcbiAgICAvLyBFdmVudEVtaXR0ZXJzLCB3ZSBkbyBub3QgbGlzdGVuIGZvciBgZXJyb3JgIGV2ZW50cyBoZXJlLlxuICAgIGVtaXR0ZXIuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBmdW5jdGlvbiB3cmFwTGlzdGVuZXIoYXJnKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGJ1aWx0aW4gYHsgb25jZTogdHJ1ZSB9YCBzdXBwb3J0IHNvIHdlXG4gICAgICAvLyBoYXZlIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgICAgaWYgKGZsYWdzLm9uY2UpIHtcbiAgICAgICAgZW1pdHRlci5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIHdyYXBMaXN0ZW5lcik7XG4gICAgICB9XG4gICAgICBsaXN0ZW5lcihhcmcpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImVtaXR0ZXJcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgZW1pdHRlcik7XG4gIH1cbn1cbiIsImlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBpbXBsZW1lbnRhdGlvbiBmcm9tIHN0YW5kYXJkIG5vZGUuanMgJ3V0aWwnIG1vZHVsZVxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGlmIChzdXBlckN0b3IpIHtcbiAgICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICAgIHZhbHVlOiBjdG9yLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgaWYgKHN1cGVyQ3Rvcikge1xuICAgICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9XG4gICAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JcbiAgICB9XG4gIH1cbn1cbiIsIi8qIVxuICogRGV0ZXJtaW5lIGlmIGFuIG9iamVjdCBpcyBhIEJ1ZmZlclxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cblxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogIT0gbnVsbCAmJiAoaXNCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSB8fCAhIW9iai5faXNCdWZmZXIpXG59XG5cbmZ1bmN0aW9uIGlzQnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNCdWZmZXIob2JqLnNsaWNlKDAsIDApKVxufVxuIiwidmFyIHdvcmRXcmFwID0gcmVxdWlyZSgnd29yZC13cmFwcGVyJylcbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBudW1iZXIgPSByZXF1aXJlKCdhcy1udW1iZXInKVxuXG52YXIgWF9IRUlHSFRTID0gWyd4JywgJ2UnLCAnYScsICdvJywgJ24nLCAncycsICdyJywgJ2MnLCAndScsICdtJywgJ3YnLCAndycsICd6J11cbnZhciBNX1dJRFRIUyA9IFsnbScsICd3J11cbnZhciBDQVBfSEVJR0hUUyA9IFsnSCcsICdJJywgJ04nLCAnRScsICdGJywgJ0snLCAnTCcsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJ11cblxuXG52YXIgVEFCX0lEID0gJ1xcdCcuY2hhckNvZGVBdCgwKVxudmFyIFNQQUNFX0lEID0gJyAnLmNoYXJDb2RlQXQoMClcbnZhciBBTElHTl9MRUZUID0gMCwgXG4gICAgQUxJR05fQ0VOVEVSID0gMSwgXG4gICAgQUxJR05fUklHSFQgPSAyXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlTGF5b3V0KG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRMYXlvdXQob3B0KVxufVxuXG5mdW5jdGlvbiBUZXh0TGF5b3V0KG9wdCkge1xuICB0aGlzLmdseXBocyA9IFtdXG4gIHRoaXMuX21lYXN1cmUgPSB0aGlzLmNvbXB1dGVNZXRyaWNzLmJpbmQodGhpcylcbiAgdGhpcy51cGRhdGUob3B0KVxufVxuXG5UZXh0TGF5b3V0LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbihvcHQpIHtcbiAgb3B0ID0geHRlbmQoe1xuICAgIG1lYXN1cmU6IHRoaXMuX21lYXN1cmVcbiAgfSwgb3B0KVxuICB0aGlzLl9vcHQgPSBvcHRcbiAgdGhpcy5fb3B0LnRhYlNpemUgPSBudW1iZXIodGhpcy5fb3B0LnRhYlNpemUsIDQpXG5cbiAgaWYgKCFvcHQuZm9udClcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ211c3QgcHJvdmlkZSBhIHZhbGlkIGJpdG1hcCBmb250JylcblxuICB2YXIgZ2x5cGhzID0gdGhpcy5nbHlwaHNcbiAgdmFyIHRleHQgPSBvcHQudGV4dHx8JycgXG4gIHZhciBmb250ID0gb3B0LmZvbnRcbiAgdGhpcy5fc2V0dXBTcGFjZUdseXBocyhmb250KVxuICBcbiAgdmFyIGxpbmVzID0gd29yZFdyYXAubGluZXModGV4dCwgb3B0KVxuICB2YXIgbWluV2lkdGggPSBvcHQud2lkdGggfHwgMFxuXG4gIC8vY2xlYXIgZ2x5cGhzXG4gIGdseXBocy5sZW5ndGggPSAwXG5cbiAgLy9nZXQgbWF4IGxpbmUgd2lkdGhcbiAgdmFyIG1heExpbmVXaWR0aCA9IGxpbmVzLnJlZHVjZShmdW5jdGlvbihwcmV2LCBsaW5lKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KHByZXYsIGxpbmUud2lkdGgsIG1pbldpZHRoKVxuICB9LCAwKVxuXG4gIC8vdGhlIHBlbiBwb3NpdGlvblxuICB2YXIgeCA9IDBcbiAgdmFyIHkgPSAwXG4gIHZhciBsaW5lSGVpZ2h0ID0gbnVtYmVyKG9wdC5saW5lSGVpZ2h0LCBmb250LmNvbW1vbi5saW5lSGVpZ2h0KVxuICB2YXIgYmFzZWxpbmUgPSBmb250LmNvbW1vbi5iYXNlXG4gIHZhciBkZXNjZW5kZXIgPSBsaW5lSGVpZ2h0LWJhc2VsaW5lXG4gIHZhciBsZXR0ZXJTcGFjaW5nID0gb3B0LmxldHRlclNwYWNpbmcgfHwgMFxuICB2YXIgaGVpZ2h0ID0gbGluZUhlaWdodCAqIGxpbmVzLmxlbmd0aCAtIGRlc2NlbmRlclxuICB2YXIgYWxpZ24gPSBnZXRBbGlnblR5cGUodGhpcy5fb3B0LmFsaWduKVxuXG4gIC8vZHJhdyB0ZXh0IGFsb25nIGJhc2VsaW5lXG4gIHkgLT0gaGVpZ2h0XG4gIFxuICAvL3RoZSBtZXRyaWNzIGZvciB0aGlzIHRleHQgbGF5b3V0XG4gIHRoaXMuX3dpZHRoID0gbWF4TGluZVdpZHRoXG4gIHRoaXMuX2hlaWdodCA9IGhlaWdodFxuICB0aGlzLl9kZXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gYmFzZWxpbmVcbiAgdGhpcy5fYmFzZWxpbmUgPSBiYXNlbGluZVxuICB0aGlzLl94SGVpZ2h0ID0gZ2V0WEhlaWdodChmb250KVxuICB0aGlzLl9jYXBIZWlnaHQgPSBnZXRDYXBIZWlnaHQoZm9udClcbiAgdGhpcy5fbGluZUhlaWdodCA9IGxpbmVIZWlnaHRcbiAgdGhpcy5fYXNjZW5kZXIgPSBsaW5lSGVpZ2h0IC0gZGVzY2VuZGVyIC0gdGhpcy5feEhlaWdodFxuICAgIFxuICAvL2xheW91dCBlYWNoIGdseXBoXG4gIHZhciBzZWxmID0gdGhpc1xuICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUsIGxpbmVJbmRleCkge1xuICAgIHZhciBzdGFydCA9IGxpbmUuc3RhcnRcbiAgICB2YXIgZW5kID0gbGluZS5lbmRcbiAgICB2YXIgbGluZVdpZHRoID0gbGluZS53aWR0aFxuICAgIHZhciBsYXN0R2x5cGhcbiAgICBcbiAgICAvL2ZvciBlYWNoIGdseXBoIGluIHRoYXQgbGluZS4uLlxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kOyBpKyspIHtcbiAgICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgICAgdmFyIGdseXBoID0gc2VsZi5nZXRHbHlwaChmb250LCBpZClcbiAgICAgIGlmIChnbHlwaCkge1xuICAgICAgICBpZiAobGFzdEdseXBoKSBcbiAgICAgICAgICB4ICs9IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZClcblxuICAgICAgICB2YXIgdHggPSB4XG4gICAgICAgIGlmIChhbGlnbiA9PT0gQUxJR05fQ0VOVEVSKSBcbiAgICAgICAgICB0eCArPSAobWF4TGluZVdpZHRoLWxpbmVXaWR0aCkvMlxuICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gQUxJR05fUklHSFQpXG4gICAgICAgICAgdHggKz0gKG1heExpbmVXaWR0aC1saW5lV2lkdGgpXG5cbiAgICAgICAgZ2x5cGhzLnB1c2goe1xuICAgICAgICAgIHBvc2l0aW9uOiBbdHgsIHldLFxuICAgICAgICAgIGRhdGE6IGdseXBoLFxuICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgIGxpbmU6IGxpbmVJbmRleFxuICAgICAgICB9KSAgXG5cbiAgICAgICAgLy9tb3ZlIHBlbiBmb3J3YXJkXG4gICAgICAgIHggKz0gZ2x5cGgueGFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9uZXh0IGxpbmUgZG93blxuICAgIHkgKz0gbGluZUhlaWdodFxuICAgIHggPSAwXG4gIH0pXG4gIHRoaXMuX2xpbmVzVG90YWwgPSBsaW5lcy5sZW5ndGg7XG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLl9zZXR1cFNwYWNlR2x5cGhzID0gZnVuY3Rpb24oZm9udCkge1xuICAvL1RoZXNlIGFyZSBmYWxsYmFja3MsIHdoZW4gdGhlIGZvbnQgZG9lc24ndCBpbmNsdWRlXG4gIC8vJyAnIG9yICdcXHQnIGdseXBoc1xuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBudWxsXG4gIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGggPSBudWxsXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKVxuICAgIHJldHVyblxuXG4gIC8vdHJ5IHRvIGdldCBzcGFjZSBnbHlwaFxuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSAnbScgb3IgJ3cnIGdseXBoc1xuICAvL3RoZW4gZmFsbCBiYWNrIHRvIHRoZSBmaXJzdCBnbHlwaCBhdmFpbGFibGVcbiAgdmFyIHNwYWNlID0gZ2V0R2x5cGhCeUlkKGZvbnQsIFNQQUNFX0lEKSBcbiAgICAgICAgICB8fCBnZXRNR2x5cGgoZm9udCkgXG4gICAgICAgICAgfHwgZm9udC5jaGFyc1swXVxuXG4gIC8vYW5kIGNyZWF0ZSBhIGZhbGxiYWNrIGZvciB0YWJcbiAgdmFyIHRhYldpZHRoID0gdGhpcy5fb3B0LnRhYlNpemUgKiBzcGFjZS54YWR2YW5jZVxuICB0aGlzLl9mYWxsYmFja1NwYWNlR2x5cGggPSBzcGFjZVxuICB0aGlzLl9mYWxsYmFja1RhYkdseXBoID0geHRlbmQoc3BhY2UsIHtcbiAgICB4OiAwLCB5OiAwLCB4YWR2YW5jZTogdGFiV2lkdGgsIGlkOiBUQUJfSUQsIFxuICAgIHhvZmZzZXQ6IDAsIHlvZmZzZXQ6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDBcbiAgfSlcbn1cblxuVGV4dExheW91dC5wcm90b3R5cGUuZ2V0R2x5cGggPSBmdW5jdGlvbihmb250LCBpZCkge1xuICB2YXIgZ2x5cGggPSBnZXRHbHlwaEJ5SWQoZm9udCwgaWQpXG4gIGlmIChnbHlwaClcbiAgICByZXR1cm4gZ2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFRBQl9JRCkgXG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrVGFiR2x5cGhcbiAgZWxzZSBpZiAoaWQgPT09IFNQQUNFX0lEKSBcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tTcGFjZUdseXBoXG4gIHJldHVybiBudWxsXG59XG5cblRleHRMYXlvdXQucHJvdG90eXBlLmNvbXB1dGVNZXRyaWNzID0gZnVuY3Rpb24odGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgdmFyIGxldHRlclNwYWNpbmcgPSB0aGlzLl9vcHQubGV0dGVyU3BhY2luZyB8fCAwXG4gIHZhciBmb250ID0gdGhpcy5fb3B0LmZvbnRcbiAgdmFyIGN1clBlbiA9IDBcbiAgdmFyIGN1cldpZHRoID0gMFxuICB2YXIgY291bnQgPSAwXG4gIHZhciBnbHlwaFxuICB2YXIgbGFzdEdseXBoXG5cbiAgaWYgKCFmb250LmNoYXJzIHx8IGZvbnQuY2hhcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc3RhcnQsXG4gICAgICB3aWR0aDogMFxuICAgIH1cbiAgfVxuXG4gIGVuZCA9IE1hdGgubWluKHRleHQubGVuZ3RoLCBlbmQpXG4gIGZvciAodmFyIGk9c3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHZhciBpZCA9IHRleHQuY2hhckNvZGVBdChpKVxuICAgIHZhciBnbHlwaCA9IHRoaXMuZ2V0R2x5cGgoZm9udCwgaWQpXG5cbiAgICBpZiAoZ2x5cGgpIHtcbiAgICAgIC8vbW92ZSBwZW4gZm9yd2FyZFxuICAgICAgdmFyIHhvZmYgPSBnbHlwaC54b2Zmc2V0XG4gICAgICB2YXIga2VybiA9IGxhc3RHbHlwaCA/IGdldEtlcm5pbmcoZm9udCwgbGFzdEdseXBoLmlkLCBnbHlwaC5pZCkgOiAwXG4gICAgICBjdXJQZW4gKz0ga2VyblxuXG4gICAgICB2YXIgbmV4dFBlbiA9IGN1clBlbiArIGdseXBoLnhhZHZhbmNlICsgbGV0dGVyU3BhY2luZ1xuICAgICAgdmFyIG5leHRXaWR0aCA9IGN1clBlbiArIGdseXBoLndpZHRoXG5cbiAgICAgIC8vd2UndmUgaGl0IG91ciBsaW1pdDsgd2UgY2FuJ3QgbW92ZSBvbnRvIHRoZSBuZXh0IGdseXBoXG4gICAgICBpZiAobmV4dFdpZHRoID49IHdpZHRoIHx8IG5leHRQZW4gPj0gd2lkdGgpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vb3RoZXJ3aXNlIGNvbnRpbnVlIGFsb25nIG91ciBsaW5lXG4gICAgICBjdXJQZW4gPSBuZXh0UGVuXG4gICAgICBjdXJXaWR0aCA9IG5leHRXaWR0aFxuICAgICAgbGFzdEdseXBoID0gZ2x5cGhcbiAgICB9XG4gICAgY291bnQrK1xuICB9XG4gIFxuICAvL21ha2Ugc3VyZSByaWdodG1vc3QgZWRnZSBsaW5lcyB1cCB3aXRoIHJlbmRlcmVkIGdseXBoc1xuICBpZiAobGFzdEdseXBoKVxuICAgIGN1cldpZHRoICs9IGxhc3RHbHlwaC54b2Zmc2V0XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBzdGFydCArIGNvdW50LFxuICAgIHdpZHRoOiBjdXJXaWR0aFxuICB9XG59XG5cbi8vZ2V0dGVycyBmb3IgdGhlIHByaXZhdGUgdmFyc1xuO1snd2lkdGgnLCAnaGVpZ2h0JywgXG4gICdkZXNjZW5kZXInLCAnYXNjZW5kZXInLFxuICAneEhlaWdodCcsICdiYXNlbGluZScsXG4gICdjYXBIZWlnaHQnLFxuICAnbGluZUhlaWdodCcgXS5mb3JFYWNoKGFkZEdldHRlcilcblxuZnVuY3Rpb24gYWRkR2V0dGVyKG5hbWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRleHRMYXlvdXQucHJvdG90eXBlLCBuYW1lLCB7XG4gICAgZ2V0OiB3cmFwcGVyKG5hbWUpLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KVxufVxuXG4vL2NyZWF0ZSBsb29rdXBzIGZvciBwcml2YXRlIHZhcnNcbmZ1bmN0aW9uIHdyYXBwZXIobmFtZSkge1xuICByZXR1cm4gKG5ldyBGdW5jdGlvbihbXG4gICAgJ3JldHVybiBmdW5jdGlvbiAnK25hbWUrJygpIHsnLFxuICAgICcgIHJldHVybiB0aGlzLl8nK25hbWUsXG4gICAgJ30nXG4gIF0uam9pbignXFxuJykpKSgpXG59XG5cbmZ1bmN0aW9uIGdldEdseXBoQnlJZChmb250LCBpZCkge1xuICBpZiAoIWZvbnQuY2hhcnMgfHwgZm9udC5jaGFycy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgZ2x5cGhJZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgaWYgKGdseXBoSWR4ID49IDApXG4gICAgcmV0dXJuIGZvbnQuY2hhcnNbZ2x5cGhJZHhdXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldFhIZWlnaHQoZm9udCkge1xuICBmb3IgKHZhciBpPTA7IGk8WF9IRUlHSFRTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gWF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0TUdseXBoKGZvbnQpIHtcbiAgZm9yICh2YXIgaT0wOyBpPE1fV0lEVEhTLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGlkID0gTV9XSURUSFNbaV0uY2hhckNvZGVBdCgwKVxuICAgIHZhciBpZHggPSBmaW5kQ2hhcihmb250LmNoYXJzLCBpZClcbiAgICBpZiAoaWR4ID49IDApIFxuICAgICAgcmV0dXJuIGZvbnQuY2hhcnNbaWR4XVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIGdldENhcEhlaWdodChmb250KSB7XG4gIGZvciAodmFyIGk9MDsgaTxDQVBfSEVJR0hUUy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpZCA9IENBUF9IRUlHSFRTW2ldLmNoYXJDb2RlQXQoMClcbiAgICB2YXIgaWR4ID0gZmluZENoYXIoZm9udC5jaGFycywgaWQpXG4gICAgaWYgKGlkeCA+PSAwKSBcbiAgICAgIHJldHVybiBmb250LmNoYXJzW2lkeF0uaGVpZ2h0XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gZ2V0S2VybmluZyhmb250LCBsZWZ0LCByaWdodCkge1xuICBpZiAoIWZvbnQua2VybmluZ3MgfHwgZm9udC5rZXJuaW5ncy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIDBcblxuICB2YXIgdGFibGUgPSBmb250Lmtlcm5pbmdzXG4gIGZvciAodmFyIGk9MDsgaTx0YWJsZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXJuID0gdGFibGVbaV1cbiAgICBpZiAoa2Vybi5maXJzdCA9PT0gbGVmdCAmJiBrZXJuLnNlY29uZCA9PT0gcmlnaHQpXG4gICAgICByZXR1cm4ga2Vybi5hbW91bnRcbiAgfVxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiBnZXRBbGlnblR5cGUoYWxpZ24pIHtcbiAgaWYgKGFsaWduID09PSAnY2VudGVyJylcbiAgICByZXR1cm4gQUxJR05fQ0VOVEVSXG4gIGVsc2UgaWYgKGFsaWduID09PSAncmlnaHQnKVxuICAgIHJldHVybiBBTElHTl9SSUdIVFxuICByZXR1cm4gQUxJR05fTEVGVFxufVxuXG5mdW5jdGlvbiBmaW5kQ2hhciAoYXJyYXksIHZhbHVlLCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDBcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0uaWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn0iLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZUJNRm9udEFzY2lpKGRhdGEpIHtcbiAgaWYgKCFkYXRhKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBwcm92aWRlZCcpXG4gIGRhdGEgPSBkYXRhLnRvU3RyaW5nKCkudHJpbSgpXG5cbiAgdmFyIG91dHB1dCA9IHtcbiAgICBwYWdlczogW10sXG4gICAgY2hhcnM6IFtdLFxuICAgIGtlcm5pbmdzOiBbXVxuICB9XG5cbiAgdmFyIGxpbmVzID0gZGF0YS5zcGxpdCgvXFxyXFxuP3xcXG4vZylcblxuICBpZiAobGluZXMubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignbm8gZGF0YSBpbiBCTUZvbnQgZmlsZScpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBsaW5lRGF0YSA9IHNwbGl0TGluZShsaW5lc1tpXSwgaSlcbiAgICBpZiAoIWxpbmVEYXRhKSAvL3NraXAgZW1wdHkgbGluZXNcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBpZiAobGluZURhdGEua2V5ID09PSAncGFnZScpIHtcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5pZCAhPT0gJ251bWJlcicpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWFsZm9ybWVkIGZpbGUgYXQgbGluZSAnICsgaSArICcgLS0gbmVlZHMgcGFnZSBpZD1OJylcbiAgICAgIGlmICh0eXBlb2YgbGluZURhdGEuZGF0YS5maWxlICE9PSAnc3RyaW5nJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtYWxmb3JtZWQgZmlsZSBhdCBsaW5lICcgKyBpICsgJyAtLSBuZWVkcyBwYWdlIGZpbGU9XCJwYXRoXCInKVxuICAgICAgb3V0cHV0LnBhZ2VzW2xpbmVEYXRhLmRhdGEuaWRdID0gbGluZURhdGEuZGF0YS5maWxlXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFycycgfHwgbGluZURhdGEua2V5ID09PSAna2VybmluZ3MnKSB7XG4gICAgICAvLy4uLiBkbyBub3RoaW5nIGZvciB0aGVzZSB0d28gLi4uXG4gICAgfSBlbHNlIGlmIChsaW5lRGF0YS5rZXkgPT09ICdjaGFyJykge1xuICAgICAgb3V0cHV0LmNoYXJzLnB1c2gobGluZURhdGEuZGF0YSlcbiAgICB9IGVsc2UgaWYgKGxpbmVEYXRhLmtleSA9PT0gJ2tlcm5pbmcnKSB7XG4gICAgICBvdXRwdXQua2VybmluZ3MucHVzaChsaW5lRGF0YS5kYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICBvdXRwdXRbbGluZURhdGEua2V5XSA9IGxpbmVEYXRhLmRhdGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmZ1bmN0aW9uIHNwbGl0TGluZShsaW5lLCBpZHgpIHtcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvXFx0Ky9nLCAnICcpLnRyaW0oKVxuICBpZiAoIWxpbmUpXG4gICAgcmV0dXJuIG51bGxcblxuICB2YXIgc3BhY2UgPSBsaW5lLmluZGV4T2YoJyAnKVxuICBpZiAoc3BhY2UgPT09IC0xKSBcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJubyBuYW1lZCByb3cgYXQgbGluZSBcIiArIGlkeClcblxuICB2YXIga2V5ID0gbGluZS5zdWJzdHJpbmcoMCwgc3BhY2UpXG5cbiAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHNwYWNlICsgMSlcbiAgLy9jbGVhciBcImxldHRlclwiIGZpZWxkIGFzIGl0IGlzIG5vbi1zdGFuZGFyZCBhbmRcbiAgLy9yZXF1aXJlcyBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgdG8gcGFyc2UgXCIgLyA9IHN5bWJvbHNcbiAgbGluZSA9IGxpbmUucmVwbGFjZSgvbGV0dGVyPVtcXCdcXFwiXVxcUytbXFwnXFxcIl0vZ2ksICcnKVxuICBsaW5lID0gbGluZS5zcGxpdChcIj1cIilcbiAgbGluZSA9IGxpbmUubWFwKGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBzdHIudHJpbSgpLm1hdGNoKCgvKFwiLio/XCJ8W15cIlxcc10rKSsoPz1cXHMqfFxccyokKS9nKSlcbiAgfSlcblxuICB2YXIgZGF0YSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGluZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkdCA9IGxpbmVbaV1cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFswXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGEgPSBwYXJzZURhdGEoZHRbMF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGFbZGF0YS5sZW5ndGggLSAxXS5kYXRhID0gcGFyc2VEYXRhKGR0WzBdKVxuICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAga2V5OiBkdFsxXSxcbiAgICAgICAgZGF0YTogXCJcIlxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB2YXIgb3V0ID0ge1xuICAgIGtleToga2V5LFxuICAgIGRhdGE6IHt9XG4gIH1cblxuICBkYXRhLmZvckVhY2goZnVuY3Rpb24odikge1xuICAgIG91dC5kYXRhW3Yua2V5XSA9IHYuZGF0YTtcbiAgfSlcblxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0YShkYXRhKSB7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gXCJcIlxuXG4gIGlmIChkYXRhLmluZGV4T2YoJ1wiJykgPT09IDAgfHwgZGF0YS5pbmRleE9mKFwiJ1wiKSA9PT0gMClcbiAgICByZXR1cm4gZGF0YS5zdWJzdHJpbmcoMSwgZGF0YS5sZW5ndGggLSAxKVxuICBpZiAoZGF0YS5pbmRleE9mKCcsJykgIT09IC0xKVxuICAgIHJldHVybiBwYXJzZUludExpc3QoZGF0YSlcbiAgcmV0dXJuIHBhcnNlSW50KGRhdGEsIDEwKVxufVxuXG5mdW5jdGlvbiBwYXJzZUludExpc3QoZGF0YSkge1xuICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbih2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxMClcbiAgfSlcbn0iLCJ2YXIgZHR5cGUgPSByZXF1aXJlKCdkdHlwZScpXG52YXIgYW5BcnJheSA9IHJlcXVpcmUoJ2FuLWFycmF5JylcbnZhciBpc0J1ZmZlciA9IHJlcXVpcmUoJ2lzLWJ1ZmZlcicpXG5cbnZhciBDVyA9IFswLCAyLCAzXVxudmFyIENDVyA9IFsyLCAxLCAzXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZVF1YWRFbGVtZW50cyhhcnJheSwgb3B0KSB7XG4gICAgLy9pZiB1c2VyIGRpZG4ndCBzcGVjaWZ5IGFuIG91dHB1dCBhcnJheVxuICAgIGlmICghYXJyYXkgfHwgIShhbkFycmF5KGFycmF5KSB8fCBpc0J1ZmZlcihhcnJheSkpKSB7XG4gICAgICAgIG9wdCA9IGFycmF5IHx8IHt9XG4gICAgICAgIGFycmF5ID0gbnVsbFxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3B0ID09PSAnbnVtYmVyJykgLy9iYWNrd2FyZHMtY29tcGF0aWJsZVxuICAgICAgICBvcHQgPSB7IGNvdW50OiBvcHQgfVxuICAgIGVsc2VcbiAgICAgICAgb3B0ID0gb3B0IHx8IHt9XG5cbiAgICB2YXIgdHlwZSA9IHR5cGVvZiBvcHQudHlwZSA9PT0gJ3N0cmluZycgPyBvcHQudHlwZSA6ICd1aW50MTYnXG4gICAgdmFyIGNvdW50ID0gdHlwZW9mIG9wdC5jb3VudCA9PT0gJ251bWJlcicgPyBvcHQuY291bnQgOiAxXG4gICAgdmFyIHN0YXJ0ID0gKG9wdC5zdGFydCB8fCAwKSBcblxuICAgIHZhciBkaXIgPSBvcHQuY2xvY2t3aXNlICE9PSBmYWxzZSA/IENXIDogQ0NXLFxuICAgICAgICBhID0gZGlyWzBdLCBcbiAgICAgICAgYiA9IGRpclsxXSxcbiAgICAgICAgYyA9IGRpclsyXVxuXG4gICAgdmFyIG51bUluZGljZXMgPSBjb3VudCAqIDZcblxuICAgIHZhciBpbmRpY2VzID0gYXJyYXkgfHwgbmV3IChkdHlwZSh0eXBlKSkobnVtSW5kaWNlcylcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IDA7IGkgPCBudW1JbmRpY2VzOyBpICs9IDYsIGogKz0gNCkge1xuICAgICAgICB2YXIgeCA9IGkgKyBzdGFydFxuICAgICAgICBpbmRpY2VzW3ggKyAwXSA9IGogKyAwXG4gICAgICAgIGluZGljZXNbeCArIDFdID0gaiArIDFcbiAgICAgICAgaW5kaWNlc1t4ICsgMl0gPSBqICsgMlxuICAgICAgICBpbmRpY2VzW3ggKyAzXSA9IGogKyBhXG4gICAgICAgIGluZGljZXNbeCArIDRdID0gaiArIGJcbiAgICAgICAgaW5kaWNlc1t4ICsgNV0gPSBqICsgY1xuICAgIH1cbiAgICByZXR1cm4gaW5kaWNlc1xufSIsInZhciBjcmVhdGVMYXlvdXQgPSByZXF1aXJlKCdsYXlvdXQtYm1mb250LXRleHQnKVxudmFyIGluaGVyaXRzID0gcmVxdWlyZSgnaW5oZXJpdHMnKVxudmFyIGNyZWF0ZUluZGljZXMgPSByZXF1aXJlKCdxdWFkLWluZGljZXMnKVxuXG52YXIgdmVydGljZXMgPSByZXF1aXJlKCcuL2xpYi92ZXJ0aWNlcycpXG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL2xpYi91dGlscycpXG5cbnZhciBCYXNlID0gVEhSRUUuQnVmZmVyR2VvbWV0cnlcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGVUZXh0R2VvbWV0cnkgKG9wdCkge1xuICByZXR1cm4gbmV3IFRleHRHZW9tZXRyeShvcHQpXG59XG5cbmZ1bmN0aW9uIFRleHRHZW9tZXRyeSAob3B0KSB7XG4gIC8vLy8gc2pwdCBwYXRjaCBmb3IgdGhyZWUxNDIsIFRIUkVFLkJ1ZmZlckdlb21ldHJ5IGlzIGEgY2xhc3NcclxuICBpZiAoK1RIUkVFLlJFVklTSU9OIDwgMTQyKSB7IFxyXG4gICAgQmFzZS5jYWxsKHRoaXMpO1xyXG4gIH0gZWxzZSB7IFxyXG4gICAgY29uc3Qgenp6ID0gbmV3IEJhc2UoKTsgLy9QSlQ6IGNsYXNzaWMgc2pwdCB2YXJpYWJsZSBuYW1pbmcg8J+ZhFxyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCB6enopO1xyXG4gIH1cclxuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSB0aGVzZSBhcyBkZWZhdWx0IHZhbHVlcyBmb3IgYW55IHN1YnNlcXVlbnRcbiAgLy8gY2FsbHMgdG8gdXBkYXRlKClcbiAgdGhpcy5fb3B0ID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0KVxuXG4gIC8vIGFsc28gZG8gYW4gaW5pdGlhbCBzZXR1cC4uLlxuICBpZiAob3B0KSB0aGlzLnVwZGF0ZShvcHQpXG59XG5cbmluaGVyaXRzKFRleHRHZW9tZXRyeSwgQmFzZSlcblxuVGV4dEdlb21ldHJ5LnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAob3B0KSB7XG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHsgdGV4dDogb3B0IH1cbiAgfVxuXG4gIC8vIHVzZSBjb25zdHJ1Y3RvciBkZWZhdWx0c1xuICBvcHQgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vcHQsIG9wdClcblxuICBpZiAoIW9wdC5mb250KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbXVzdCBzcGVjaWZ5IGEgeyBmb250IH0gaW4gb3B0aW9ucycpXG4gIH1cblxuICB0aGlzLmxheW91dCA9IGNyZWF0ZUxheW91dChvcHQpXG5cbiAgLy8gZ2V0IHZlYzIgdGV4Y29vcmRzXG4gIHZhciBmbGlwWSA9IG9wdC5mbGlwWSAhPT0gZmFsc2VcblxuICAvLyB0aGUgZGVzaXJlZCBCTUZvbnQgZGF0YVxuICB2YXIgZm9udCA9IG9wdC5mb250XG5cbiAgLy8gZGV0ZXJtaW5lIHRleHR1cmUgc2l6ZSBmcm9tIGZvbnQgZmlsZVxuICB2YXIgdGV4V2lkdGggPSBmb250LmNvbW1vbi5zY2FsZVdcbiAgdmFyIHRleEhlaWdodCA9IGZvbnQuY29tbW9uLnNjYWxlSFxuXG4gIC8vIGdldCB2aXNpYmxlIGdseXBoc1xuICB2YXIgZ2x5cGhzID0gdGhpcy5sYXlvdXQuZ2x5cGhzLmZpbHRlcihmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuICAgIHJldHVybiBiaXRtYXAud2lkdGggKiBiaXRtYXAuaGVpZ2h0ID4gMFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdmlzaWJsZSBnbHlwaHMgZm9yIGNvbnZlbmllbmNlXG4gIHRoaXMudmlzaWJsZUdseXBocyA9IGdseXBoc1xuXG4gIC8vIGdldCBjb21tb24gdmVydGV4IGRhdGFcbiAgdmFyIHBvc2l0aW9ucyA9IHZlcnRpY2VzLnBvc2l0aW9ucyhnbHlwaHMpXG4gIHZhciB1dnMgPSB2ZXJ0aWNlcy51dnMoZ2x5cGhzLCB0ZXhXaWR0aCwgdGV4SGVpZ2h0LCBmbGlwWSlcbiAgdmFyIGluZGljZXMgPSBjcmVhdGVJbmRpY2VzKFtdLCB7XG4gICAgY2xvY2t3aXNlOiB0cnVlLFxuICAgIHR5cGU6ICd1aW50MTYnLFxuICAgIGNvdW50OiBnbHlwaHMubGVuZ3RoXG4gIH0pXG5cbiAgLy8gdXBkYXRlIHZlcnRleCBkYXRhXG4gIHRoaXMuc2V0SW5kZXgoaW5kaWNlcylcbiAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3Bvc2l0aW9uJywgbmV3IFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZShwb3NpdGlvbnMsIDIpKVxuICB0aGlzLnNldEF0dHJpYnV0ZSgndXYnLCBuZXcgVEhSRUUuQnVmZmVyQXR0cmlidXRlKHV2cywgMikpXG5cbiAgLy8gdXBkYXRlIG11bHRpcGFnZSBkYXRhXG4gIGlmICghb3B0Lm11bHRpcGFnZSAmJiAncGFnZScgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgLy8gZGlzYWJsZSBtdWx0aXBhZ2UgcmVuZGVyaW5nXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BhZ2UnKVxuICB9IGVsc2UgaWYgKG9wdC5tdWx0aXBhZ2UpIHtcbiAgICAvLyBlbmFibGUgbXVsdGlwYWdlIHJlbmRlcmluZ1xuICAgIHZhciBwYWdlcyA9IHZlcnRpY2VzLnBhZ2VzKGdseXBocylcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncGFnZScsIG5ldyBUSFJFRS5CdWZmZXJBdHRyaWJ1dGUocGFnZXMsIDEpKVxuICB9XG59XG5cblRleHRHZW9tZXRyeS5wcm90b3R5cGUuY29tcHV0ZUJvdW5kaW5nU3BoZXJlID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5ib3VuZGluZ1NwaGVyZSA9PT0gbnVsbCkge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUgPSBuZXcgVEhSRUUuU3BoZXJlKClcbiAgfVxuXG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUucmFkaXVzID0gMFxuICAgIHRoaXMuYm91bmRpbmdTcGhlcmUuY2VudGVyLnNldCgwLCAwLCAwKVxuICAgIHJldHVyblxuICB9XG4gIHV0aWxzLmNvbXB1dGVTcGhlcmUocG9zaXRpb25zLCB0aGlzLmJvdW5kaW5nU3BoZXJlKVxuICBpZiAoaXNOYU4odGhpcy5ib3VuZGluZ1NwaGVyZS5yYWRpdXMpKSB7XG4gICAgY29uc29sZS5lcnJvcignVEhSRUUuQnVmZmVyR2VvbWV0cnkuY29tcHV0ZUJvdW5kaW5nU3BoZXJlKCk6ICcgK1xuICAgICAgJ0NvbXB1dGVkIHJhZGl1cyBpcyBOYU4uIFRoZSAnICtcbiAgICAgICdcInBvc2l0aW9uXCIgYXR0cmlidXRlIGlzIGxpa2VseSB0byBoYXZlIE5hTiB2YWx1ZXMuJylcbiAgfVxufVxuXG5UZXh0R2VvbWV0cnkucHJvdG90eXBlLmNvbXB1dGVCb3VuZGluZ0JveCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuYm91bmRpbmdCb3ggPT09IG51bGwpIHtcbiAgICB0aGlzLmJvdW5kaW5nQm94ID0gbmV3IFRIUkVFLkJveDMoKVxuICB9XG5cbiAgdmFyIGJib3ggPSB0aGlzLmJvdW5kaW5nQm94XG4gIHZhciBwb3NpdGlvbnMgPSB0aGlzLmF0dHJpYnV0ZXMucG9zaXRpb24uYXJyYXlcbiAgdmFyIGl0ZW1TaXplID0gdGhpcy5hdHRyaWJ1dGVzLnBvc2l0aW9uLml0ZW1TaXplXG4gIGlmICghcG9zaXRpb25zIHx8ICFpdGVtU2l6ZSB8fCBwb3NpdGlvbnMubGVuZ3RoIDwgMikge1xuICAgIGJib3gubWFrZUVtcHR5KClcbiAgICByZXR1cm5cbiAgfVxuICB1dGlscy5jb21wdXRlQm94KHBvc2l0aW9ucywgYmJveClcbn1cbiIsInZhciBpdGVtU2l6ZSA9IDJcbnZhciBib3ggPSB7IG1pbjogWzAsIDBdLCBtYXg6IFswLCAwXSB9XG5cbmZ1bmN0aW9uIGJvdW5kcyAocG9zaXRpb25zKSB7XG4gIHZhciBjb3VudCA9IHBvc2l0aW9ucy5sZW5ndGggLyBpdGVtU2l6ZVxuICBib3gubWluWzBdID0gcG9zaXRpb25zWzBdXG4gIGJveC5taW5bMV0gPSBwb3NpdGlvbnNbMV1cbiAgYm94Lm1heFswXSA9IHBvc2l0aW9uc1swXVxuICBib3gubWF4WzFdID0gcG9zaXRpb25zWzFdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgdmFyIHggPSBwb3NpdGlvbnNbaSAqIGl0ZW1TaXplICsgMF1cbiAgICB2YXIgeSA9IHBvc2l0aW9uc1tpICogaXRlbVNpemUgKyAxXVxuICAgIGJveC5taW5bMF0gPSBNYXRoLm1pbih4LCBib3gubWluWzBdKVxuICAgIGJveC5taW5bMV0gPSBNYXRoLm1pbih5LCBib3gubWluWzFdKVxuICAgIGJveC5tYXhbMF0gPSBNYXRoLm1heCh4LCBib3gubWF4WzBdKVxuICAgIGJveC5tYXhbMV0gPSBNYXRoLm1heCh5LCBib3gubWF4WzFdKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLmNvbXB1dGVCb3ggPSBmdW5jdGlvbiAocG9zaXRpb25zLCBvdXRwdXQpIHtcbiAgYm91bmRzKHBvc2l0aW9ucylcbiAgb3V0cHV0Lm1pbi5zZXQoYm94Lm1pblswXSwgYm94Lm1pblsxXSwgMClcbiAgb3V0cHV0Lm1heC5zZXQoYm94Lm1heFswXSwgYm94Lm1heFsxXSwgMClcbn1cblxubW9kdWxlLmV4cG9ydHMuY29tcHV0ZVNwaGVyZSA9IGZ1bmN0aW9uIChwb3NpdGlvbnMsIG91dHB1dCkge1xuICBib3VuZHMocG9zaXRpb25zKVxuICB2YXIgbWluWCA9IGJveC5taW5bMF1cbiAgdmFyIG1pblkgPSBib3gubWluWzFdXG4gIHZhciBtYXhYID0gYm94Lm1heFswXVxuICB2YXIgbWF4WSA9IGJveC5tYXhbMV1cbiAgdmFyIHdpZHRoID0gbWF4WCAtIG1pblhcbiAgdmFyIGhlaWdodCA9IG1heFkgLSBtaW5ZXG4gIHZhciBsZW5ndGggPSBNYXRoLnNxcnQod2lkdGggKiB3aWR0aCArIGhlaWdodCAqIGhlaWdodClcbiAgb3V0cHV0LmNlbnRlci5zZXQobWluWCArIHdpZHRoIC8gMiwgbWluWSArIGhlaWdodCAvIDIsIDApXG4gIG91dHB1dC5yYWRpdXMgPSBsZW5ndGggLyAyXG59XG4iLCJtb2R1bGUuZXhwb3J0cy5wYWdlcyA9IGZ1bmN0aW9uIHBhZ2VzIChnbHlwaHMpIHtcbiAgdmFyIHBhZ2VzID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDEpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgaWQgPSBnbHlwaC5kYXRhLnBhZ2UgfHwgMFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICAgIHBhZ2VzW2krK10gPSBpZFxuICB9KVxuICByZXR1cm4gcGFnZXNcbn1cblxubW9kdWxlLmV4cG9ydHMudXZzID0gZnVuY3Rpb24gdXZzIChnbHlwaHMsIHRleFdpZHRoLCB0ZXhIZWlnaHQsIGZsaXBZKSB7XG4gIHZhciB1dnMgPSBuZXcgRmxvYXQzMkFycmF5KGdseXBocy5sZW5ndGggKiA0ICogMilcbiAgdmFyIGkgPSAwXG4gIGdseXBocy5mb3JFYWNoKGZ1bmN0aW9uIChnbHlwaCkge1xuICAgIHZhciBiaXRtYXAgPSBnbHlwaC5kYXRhXG4gICAgdmFyIGJ3ID0gKGJpdG1hcC54ICsgYml0bWFwLndpZHRoKVxuICAgIHZhciBiaCA9IChiaXRtYXAueSArIGJpdG1hcC5oZWlnaHQpXG5cbiAgICAvLyB0b3AgbGVmdCBwb3NpdGlvblxuICAgIHZhciB1MCA9IGJpdG1hcC54IC8gdGV4V2lkdGhcbiAgICB2YXIgdjEgPSBiaXRtYXAueSAvIHRleEhlaWdodFxuICAgIHZhciB1MSA9IGJ3IC8gdGV4V2lkdGhcbiAgICB2YXIgdjAgPSBiaCAvIHRleEhlaWdodFxuXG4gICAgaWYgKGZsaXBZKSB7XG4gICAgICB2MSA9ICh0ZXhIZWlnaHQgLSBiaXRtYXAueSkgLyB0ZXhIZWlnaHRcbiAgICAgIHYwID0gKHRleEhlaWdodCAtIGJoKSAvIHRleEhlaWdodFxuICAgIH1cblxuICAgIC8vIEJMXG4gICAgdXZzW2krK10gPSB1MFxuICAgIHV2c1tpKytdID0gdjFcbiAgICAvLyBUTFxuICAgIHV2c1tpKytdID0gdTBcbiAgICB1dnNbaSsrXSA9IHYwXG4gICAgLy8gVFJcbiAgICB1dnNbaSsrXSA9IHUxXG4gICAgdXZzW2krK10gPSB2MFxuICAgIC8vIEJSXG4gICAgdXZzW2krK10gPSB1MVxuICAgIHV2c1tpKytdID0gdjFcbiAgfSlcbiAgcmV0dXJuIHV2c1xufVxuXG5tb2R1bGUuZXhwb3J0cy5wb3NpdGlvbnMgPSBmdW5jdGlvbiBwb3NpdGlvbnMgKGdseXBocykge1xuICB2YXIgcG9zaXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShnbHlwaHMubGVuZ3RoICogNCAqIDIpXG4gIHZhciBpID0gMFxuICBnbHlwaHMuZm9yRWFjaChmdW5jdGlvbiAoZ2x5cGgpIHtcbiAgICB2YXIgYml0bWFwID0gZ2x5cGguZGF0YVxuXG4gICAgLy8gYm90dG9tIGxlZnQgcG9zaXRpb25cbiAgICB2YXIgeCA9IGdseXBoLnBvc2l0aW9uWzBdICsgYml0bWFwLnhvZmZzZXRcbiAgICB2YXIgeSA9IGdseXBoLnBvc2l0aW9uWzFdICsgYml0bWFwLnlvZmZzZXRcblxuICAgIC8vIHF1YWQgc2l6ZVxuICAgIHZhciB3ID0gYml0bWFwLndpZHRoXG4gICAgdmFyIGggPSBiaXRtYXAuaGVpZ2h0XG5cbiAgICAvLyBCTFxuICAgIHBvc2l0aW9uc1tpKytdID0geFxuICAgIHBvc2l0aW9uc1tpKytdID0geVxuICAgIC8vIFRMXG4gICAgcG9zaXRpb25zW2krK10gPSB4XG4gICAgcG9zaXRpb25zW2krK10gPSB5ICsgaFxuICAgIC8vIFRSXG4gICAgcG9zaXRpb25zW2krK10gPSB4ICsgd1xuICAgIHBvc2l0aW9uc1tpKytdID0geSArIGhcbiAgICAvLyBCUlxuICAgIHBvc2l0aW9uc1tpKytdID0geCArIHdcbiAgICBwb3NpdGlvbnNbaSsrXSA9IHlcbiAgfSlcbiAgcmV0dXJuIHBvc2l0aW9uc1xufVxuIiwidmFyIG5ld2xpbmUgPSAvXFxuL1xudmFyIG5ld2xpbmVDaGFyID0gJ1xcbidcbnZhciB3aGl0ZXNwYWNlID0gL1xccy9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih0ZXh0LCBvcHQpIHtcbiAgICB2YXIgbGluZXMgPSBtb2R1bGUuZXhwb3J0cy5saW5lcyh0ZXh0LCBvcHQpXG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhsaW5lLnN0YXJ0LCBsaW5lLmVuZClcbiAgICB9KS5qb2luKCdcXG4nKVxufVxuXG5tb2R1bGUuZXhwb3J0cy5saW5lcyA9IGZ1bmN0aW9uIHdvcmR3cmFwKHRleHQsIG9wdCkge1xuICAgIG9wdCA9IG9wdHx8e31cblxuICAgIC8vemVybyB3aWR0aCByZXN1bHRzIGluIG5vdGhpbmcgdmlzaWJsZVxuICAgIGlmIChvcHQud2lkdGggPT09IDAgJiYgb3B0Lm1vZGUgIT09ICdub3dyYXAnKSBcbiAgICAgICAgcmV0dXJuIFtdXG5cbiAgICB0ZXh0ID0gdGV4dHx8JydcbiAgICB2YXIgd2lkdGggPSB0eXBlb2Ygb3B0LndpZHRoID09PSAnbnVtYmVyJyA/IG9wdC53aWR0aCA6IE51bWJlci5NQVhfVkFMVUVcbiAgICB2YXIgc3RhcnQgPSBNYXRoLm1heCgwLCBvcHQuc3RhcnR8fDApXG4gICAgdmFyIGVuZCA9IHR5cGVvZiBvcHQuZW5kID09PSAnbnVtYmVyJyA/IG9wdC5lbmQgOiB0ZXh0Lmxlbmd0aFxuICAgIHZhciBtb2RlID0gb3B0Lm1vZGVcblxuICAgIHZhciBtZWFzdXJlID0gb3B0Lm1lYXN1cmUgfHwgbW9ub3NwYWNlXG4gICAgaWYgKG1vZGUgPT09ICdwcmUnKVxuICAgICAgICByZXR1cm4gcHJlKG1lYXN1cmUsIHRleHQsIHN0YXJ0LCBlbmQsIHdpZHRoKVxuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGdyZWVkeShtZWFzdXJlLCB0ZXh0LCBzdGFydCwgZW5kLCB3aWR0aCwgbW9kZSlcbn1cblxuZnVuY3Rpb24gaWR4T2YodGV4dCwgY2hyLCBzdGFydCwgZW5kKSB7XG4gICAgdmFyIGlkeCA9IHRleHQuaW5kZXhPZihjaHIsIHN0YXJ0KVxuICAgIGlmIChpZHggPT09IC0xIHx8IGlkeCA+IGVuZClcbiAgICAgICAgcmV0dXJuIGVuZFxuICAgIHJldHVybiBpZHhcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGNocikge1xuICAgIHJldHVybiB3aGl0ZXNwYWNlLnRlc3QoY2hyKVxufVxuXG5mdW5jdGlvbiBwcmUobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgbGluZXMgPSBbXVxuICAgIHZhciBsaW5lU3RhcnQgPSBzdGFydFxuICAgIGZvciAodmFyIGk9c3RhcnQ7IGk8ZW5kICYmIGk8dGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hyID0gdGV4dC5jaGFyQXQoaSlcbiAgICAgICAgdmFyIGlzTmV3bGluZSA9IG5ld2xpbmUudGVzdChjaHIpXG5cbiAgICAgICAgLy9JZiB3ZSd2ZSByZWFjaGVkIGEgbmV3bGluZSwgdGhlbiBzdGVwIGRvd24gYSBsaW5lXG4gICAgICAgIC8vT3IgaWYgd2UndmUgcmVhY2hlZCB0aGUgRU9GXG4gICAgICAgIGlmIChpc05ld2xpbmUgfHwgaT09PWVuZC0xKSB7XG4gICAgICAgICAgICB2YXIgbGluZUVuZCA9IGlzTmV3bGluZSA/IGkgOiBpKzFcbiAgICAgICAgICAgIHZhciBtZWFzdXJlZCA9IG1lYXN1cmUodGV4dCwgbGluZVN0YXJ0LCBsaW5lRW5kLCB3aWR0aClcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobWVhc3VyZWQpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGxpbmVTdGFydCA9IGkrMVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBncmVlZHkobWVhc3VyZSwgdGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgsIG1vZGUpIHtcbiAgICAvL0EgZ3JlZWR5IHdvcmQgd3JhcHBlciBiYXNlZCBvbiBMaWJHRFggYWxnb3JpdGhtXG4gICAgLy9odHRwczovL2dpdGh1Yi5jb20vbGliZ2R4L2xpYmdkeC9ibG9iL21hc3Rlci9nZHgvc3JjL2NvbS9iYWRsb2dpYy9nZHgvZ3JhcGhpY3MvZzJkL0JpdG1hcEZvbnRDYWNoZS5qYXZhXG4gICAgdmFyIGxpbmVzID0gW11cblxuICAgIHZhciB0ZXN0V2lkdGggPSB3aWR0aFxuICAgIC8vaWYgJ25vd3JhcCcgaXMgc3BlY2lmaWVkLCB3ZSBvbmx5IHdyYXAgb24gbmV3bGluZSBjaGFyc1xuICAgIGlmIChtb2RlID09PSAnbm93cmFwJylcbiAgICAgICAgdGVzdFdpZHRoID0gTnVtYmVyLk1BWF9WQUxVRVxuXG4gICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgLy9nZXQgbmV4dCBuZXdsaW5lIHBvc2l0aW9uXG4gICAgICAgIHZhciBuZXdMaW5lID0gaWR4T2YodGV4dCwgbmV3bGluZUNoYXIsIHN0YXJ0LCBlbmQpXG5cbiAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBzdGFydCBvZiBsaW5lXG4gICAgICAgIHdoaWxlIChzdGFydCA8IG5ld0xpbmUpIHtcbiAgICAgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKCB0ZXh0LmNoYXJBdChzdGFydCkgKSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgc3RhcnQrK1xuICAgICAgICB9XG5cbiAgICAgICAgLy9kZXRlcm1pbmUgdmlzaWJsZSAjIG9mIGdseXBocyBmb3IgdGhlIGF2YWlsYWJsZSB3aWR0aFxuICAgICAgICB2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRleHQsIHN0YXJ0LCBuZXdMaW5lLCB0ZXN0V2lkdGgpXG5cbiAgICAgICAgdmFyIGxpbmVFbmQgPSBzdGFydCArIChtZWFzdXJlZC5lbmQtbWVhc3VyZWQuc3RhcnQpXG4gICAgICAgIHZhciBuZXh0U3RhcnQgPSBsaW5lRW5kICsgbmV3bGluZUNoYXIubGVuZ3RoXG5cbiAgICAgICAgLy9pZiB3ZSBoYWQgdG8gY3V0IHRoZSBsaW5lIGJlZm9yZSB0aGUgbmV4dCBuZXdsaW5lLi4uXG4gICAgICAgIGlmIChsaW5lRW5kIDwgbmV3TGluZSkge1xuICAgICAgICAgICAgLy9maW5kIGNoYXIgdG8gYnJlYWsgb25cbiAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKHRleHQuY2hhckF0KGxpbmVFbmQpKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBsaW5lRW5kLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsaW5lRW5kID09PSBzdGFydCkge1xuICAgICAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPiBzdGFydCArIG5ld2xpbmVDaGFyLmxlbmd0aCkgbmV4dFN0YXJ0LS1cbiAgICAgICAgICAgICAgICBsaW5lRW5kID0gbmV4dFN0YXJ0IC8vIElmIG5vIGNoYXJhY3RlcnMgdG8gYnJlYWssIHNob3cgYWxsLlxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBsaW5lRW5kXG4gICAgICAgICAgICAgICAgLy9lYXQgd2hpdGVzcGFjZSBhdCBlbmQgb2YgbGluZVxuICAgICAgICAgICAgICAgIHdoaWxlIChsaW5lRW5kID4gc3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1doaXRlc3BhY2UodGV4dC5jaGFyQXQobGluZUVuZCAtIG5ld2xpbmVDaGFyLmxlbmd0aCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVuZC0tXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChsaW5lRW5kID49IHN0YXJ0KSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gbWVhc3VyZSh0ZXh0LCBzdGFydCwgbGluZUVuZCwgdGVzdFdpZHRoKVxuICAgICAgICAgICAgbGluZXMucHVzaChyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBuZXh0U3RhcnRcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzXG59XG5cbi8vZGV0ZXJtaW5lcyB0aGUgdmlzaWJsZSBudW1iZXIgb2YgZ2x5cGhzIHdpdGhpbiBhIGdpdmVuIHdpZHRoXG5mdW5jdGlvbiBtb25vc3BhY2UodGV4dCwgc3RhcnQsIGVuZCwgd2lkdGgpIHtcbiAgICB2YXIgZ2x5cGhzID0gTWF0aC5taW4od2lkdGgsIGVuZC1zdGFydClcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgIGVuZDogc3RhcnQrZ2x5cGhzXG4gICAgfVxufSIsIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXX0= diff --git a/build/datguivr.map b/build/datguivr.map index 1f1ff8a..c615e78 100644 --- a/build/datguivr.map +++ b/build/datguivr.map @@ -1 +1 @@ -{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireWildcard","obj","__esModule","newObj","key","Object","prototype","hasOwnProperty","default","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_interaction","_colors","_layout","_grab","./colors","./grab","./interaction","./layout","2","_interopRequireDefault","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_textlabel","_graphic","_sharedmaterials","./graphic","./sharedmaterials","./textlabel","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","colpow","pow","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","zs","sort","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_frag","REVISION","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","labelString","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","anArray","BYTES_PER_ELEMENT","buffer","25","num","def","26","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","27","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","28","ctor","superCtor","super_","writable","configurable","TempCtor","29","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","30","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","31","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","32","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","33","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","34","TextGeometry","Base","zzz","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","35","bounds","minX","minY","maxX","maxY","sqrt","36","page","bw","bh","u0","v1","u1","v0","37","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","38","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file +{"version":3,"sources":["datguivr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_interopRequireWildcard","obj","__esModule","newObj","key","Object","prototype","hasOwnProperty","default","createButton","handleOnPress","group","visible","object","propertyName","hitscanVolume","position","z","BUTTON_DEPTH","locked","handleOnRelease","updateView","interaction","hovering","material","color","setHex","Colors","BUTTON_HIGHLIGHT_COLOR","BUTTON_COLOR","_ref","arguments","undefined","textCreator","_ref$propertyName","_ref$width","width","Layout","PANEL_WIDTH","_ref$height","height","PANEL_HEIGHT","_ref$depth","depth","PANEL_DEPTH","BUTTON_WIDTH","PANEL_MARGIN","BUTTON_HEIGHT","THREE","Group","guiType","toString","panel","createPanel","add","aspectRatio","rect","BoxGeometry","Math","floor","translate","hitscanMaterial","MeshBasicMaterial","Mesh","clone","x","filledVolume","buttonLabel","create","scale","layout","y","descriptorLabel","PANEL_LABEL_TEXT_MARGIN","controllerID","createControllerIDBox","CONTROLLER_ID_BUTTON","_interaction2","events","on","hitscan","grabInteraction","Grab","updateControl","inputObjects","update","name","str","updateLabel","defineProperty","value","_interaction","_colors","_layout","_grab","./colors","./grab","./interaction","./layout","2","_interopRequireDefault","createCheckbox","state","onChangedCB","checkmark","borderBox","_header","getFolderHeaderObject","size","BORDER_THICKNESS","Graphic","CHECKBOX_SIZE","handleHeaderPress","listen","folder","_ref$initialValue","initialValue","CHECKBOX_PAD","onChange","callback","isShownInFolderHeader","showInFolderHeader","addHeaderItem","get","set","setHeight","newHeight","remove","spacing","CHECKBOX_WIDTH","CHECKBOX_HEIGHT","CHECKBOX_DEPTH","CHECKMARK_SIZE","CHECKBOX_BG_COLOR","CONTROLLER_ID_CHECKBOX","requestLayout","_textlabel","_graphic","_sharedmaterials","./graphic","./sharedmaterials","./textlabel","3","HSVtoRGB","h","s","v","g","b","q","RGBtoHSV","max","min","d","createColorPicker","colpow","pow","changeFn","image","emit","setPanelPosition","toggleDetailPanel","setModalEditor","dat","GUIVR","hideHeader","fancyPanel","setH","uniforms","selectedHSV","localPoint","setRGB","HMaterial","needsUpdate","SVMaterial","ShaderMaterial","vertexShader","VertShader","fragmentShader","SVFragShader","setSV","buttonDepth","addXYController","HSliderFragShader","listenUpdate","copy","func","Vector3","_events2","_imagebutton2","changeColorOnHover","originalUpdateControl","_events","_imagebutton","hsv2rgb","./imagebutton","4","colorizeGeometry","geometry","col","Color","getAttribute","array","Float32Array","fill","setAttribute","BufferAttribute","DEFAULT_COLOR","HIGHLIGHT_COLOR","INTERACTION_COLOR","EMISSIVE_COLOR","HIGHLIGHT_EMISSIVE_COLOR","OUTLINE_COLOR","DEFAULT_BACK","DEFAULT_FOLDER_BACK","HIGHLIGHT_BACK","INACTIVE_COLOR","CONTROLLER_ID_SLIDER","CONTROLLER_ID_TEXT","CONTROLLER_ID_DROPDOWN","DROPDOWN_BG_COLOR","DROPDOWN_FG_COLOR","SLIDER_BG","TEXTBOX_BG","TEXTBOX_HIGHLIGHT_BG","5","_toConsumableArray","arr","Array","isArray","arr2","from","createDropdown","findLabelFromProp","options","find","optionName","keys","createOption","labelText","isOption","label","_textlabel2","DROPDOWN_WIDTH","back","modalDropdown","push","labelInteraction","labelInteractions","optionLabels","open","selectedLabel","setString","propertyChanged","collapseOptions","onChooseCB","openOptions","clearModalEditor","forEach","configureLabelPosition","index","DROPDOWN_MARGIN","MAX_DROPDOWN_LABELS_IN_COLUMN","DROPDOWN_OPTION_HEIGHT","optionToLabel","optionLabel","userData","tipObj","_utils","setVisibility","_ref$options","DROPDOWN_HEIGHT","DROPDOWN_DEPTH","sourceObject","sourcePropertyName","setValue","indexOf","console","warn","join","initialLabel","downArrow","apply","map","onChoose","setToolTip","tip","createToolTip","FOLDER_WIDTH","getToolTip","./utils","6","orthographicFolderLayout","cam","topFolderStack","isOrthographic","tfs","filter","near","far","updateMatrix","fixFolderPosition","log","camBoxSetup","isOrthographicCamera","l","left","right","top","bottom","scratchCamBox","createFolder","addImpl","addOriginal","removeImpl","removeOriginal","sceneDetach","child","parent","scene","updateMatrixWorld","applyMatrix4","matrixWorld","sceneAttach","Matrix4","getInverse","sceneShift","oldParent","newParent","node","performLayout","performHeaderLayout","topFolder","getTopLevelFolder","modalEditor","layoutInProgress","columnHeight","columnIndex","columnYOff","includes","splice","spacingPerController","PANEL_SPACING","emptyFolderSpace","FOLDER_HEIGHT","totalSpacing","collapseGroup","children","collapsed","lastGuiIndex","guiIndex","sort","rotation","PI","lastHeight","isFolder","offset","MAX_FOLDER_ITEMS_IN_COLUMN","panelWidth","SUBFOLDER_WIDTH","resizePanel","layoutPending","dx","headerItems","grabber","detachButtonInteraction","detachButtonMaterial","guiAdd","guiRemove","addControllerFuncs","globalControllers","previousParent","isAccordion","newValue","guiChildren","close","folderName","straightRotation","Quaternion","thresh","this","setRotationFromQuaternion","box","setBoxFromObject","scratchFolderBox","boxW","camBox","intersection","intersect","intersectionSize","getSize","scratchSize","screenW","screenH","isCollapsed","concat","hasChild","_len","args","_key","createDownArrow","FOLDER_GRAB_HEIGHT","grabBar","hideGrabber","showGrabber","showHeader","isHeaderObject","transparent","detachButtonRect","dockTexture","dock","undockTexture","undock","detachButton","detachedParent","reattach","detach","isDetachable","newController","addController","decorateChildren","partOfModal","modalWasSetInCurrentFrame","_len2","_key2","assert","_setDetachedFrom","detachChild","par","m","matrix","setPosition","beingMoved","detachFromParent","addFolder","semis","semiDetached","_len3","_key3","error","_len4","_key4","identity","promoteZOrder","accordion","paletteInteraction","Palette","_beingMoved","defineProperties","_hits","hits","k","controller","_palette","Box3","./palette","7","Image","src","fnt","8","handleTick","_ref2","input","grabDisabled","mouse","pressed","selected","raycast","ray","intersectPlane","mousePlane","mouseIntersection","press","sub","mouseOffset","worldToLocal","intersections","hitObject","tPosition","setFromMatrixPosition","setFromNormalAndCoplanarPoint","mouseCamera","getWorldDirection","normal","inputObject","tempMatrix","premultiply","decompose","quaternion","9","texture","Texture","side","DoubleSide","alphaTest","PlaneGeometry","minFilter","LinearMipMapLinearFilter","magFilter","LinearFilter","geo","10","createImageButton","handleHover","isControllerVisible","getNormalisedLocalCoordinates","point","hoverFunc","handlePressing","pressing","_ref$func","_ref$pressing","_ref$image","_ref$wide","wide","_ref$changeColorOnHov","_ref$buttonDepth","isMaterial","targetMaterial","TextureLoader","load","wrapS","wrapT","ClampToEdgeWrapping","isTexture","isWebGLRenderTarget","onHover","onPressing","11","createImageButtonGrid","applyImageToMaterial","initPanel","buttons","layoutButtons","buttonWPadded","buttonHPadded","objects","subgroup","lastPressed","release","text","columns","row","_margin","GRID_BUTTON_MARGIN","TEXT_SCALE","w","computeWidth","constrainBounds","textX","textY","tipText","hoverCol","noHoverCol","highlightLastPressed","lastPressedCol","rowHeight","_ref$columns","margin","rows","ceil","setRowHeight","12","isNumber","isNaN","parseFloat","isFinite","isBoolean","isFunction","functionToCheck","getType","isObject","item","_typeof","isString","isColor","bindViveController","gripped","vibrate","gamepad","hapticActuators","pulse","hapticsTap","setIntervalTimes","hapticsEcho","addEventListener","getGamepad","cb","delay","times","id","setInterval","clearInterval","Symbol","iterator","constructor","_slider","_slider2","_checkbox","_checkbox2","_button","_button2","_folder","_folder2","_dropdown","_dropdown2","_imagebuttongrid","_imagebuttongrid2","_keyboard","_keyboard2","_textbox","_textbox2","_colorpicker","_colorpicker2","_sdftext","SDFText","getVisibleControllers","controllers","getVisibleHitscanObjects","reduce","enableMouse","camera","renderer","mouseEnabled","mouseRenderer","mouseInput","onOrthoMouseRelease","removeListener","laser","disableMouse","createLaser","BufferGeometry","Line","laserMaterial","createCursor","SphereGeometry","cursorMaterial","createInput","Raycaster","cursor","grip","hover","addInputObject","flag","clicked","ViveController","addSlider","slider","addCheckbox","checkbox","addButton","button","addImageButton","addImageButtonPanel","cols","Number","isInteger","unshift","grid","addKeyboard","keyListener","kb","addTextbox","addColorPicker","addDropdown","dropdown","arg3","arg4","addSimpleSlider","number","addSimpleDropdown","proxy","option","addSimpleCheckbox","checked","addSimpleButton","fn","argSet","Set","removeTest","clearAll","addHeaderFuncs","autoUpdate","requestAnimationFrame","hitscanObjects","folders","performMouseInput","checkCancelledInteractions","tMatrix","extractRotation","tDirection","laserRotateModifier","applyQuaternion","normalize","intersectObjects","parseIntersections","guiIntersections","inputs","slice","hitNonModals","hitNonModal","interactions","interactionName","hitVolume","updateLaser","pp","computeBoundingSphere","computeBoundingBox","firstHit","performMouseIntersection","setFromCamera","creator","LineBasicMaterial","blending","AdditiveBlending","Vector2","Plane","window","event","clientRect","domElement","getBoundingClientRect","clientX","clientY","innerWidth","innerHeight","publicInterface","globalEvents","define","amd","./button","./checkbox","./colorpicker","./dropdown","./folder","./imagebuttongrid","./keyboard","./sdftext","./slider","./textbox","13","createInteraction","anyHover","anyPressing","anyActive","availableInputs","_extractHit","extractHit","hitPoint","performStateEvents","buttonName","buttonClickName","downName","holdName","upName","hoverName","tVector","payload","_payload","_payload2","isMainHover","noMainHover","14","createKeyboard","shiftToggle","shift","lowerKeys","upperKeys","offsetTransform","lowerChars","split","spaceBar","specialKeys","15","alignLeft","boundingBox","_width","uniqueMaterial","SharedMaterials","PANEL","currentWidth","currentHeight","currentDepth","CONTROLLER_ID_WIDTH","CONTROLLER_ID_DEPTH","sh","Shape","moveTo","lineTo","ShapeGeometry","PANEL_VALUE_TEXT_MARGIN","16","handleOnGrip","oldPosition","oldRotation","rotationGroup","handleOnGripRelease","Euler","17","assign","meshbasic_frag","REVISION","opt","opacity","extensions","derivatives","precision","type","object-assign","18","createMaterial","Font","generateMipmaps","_sdfshader_logdepth2","createText","font","_threeBmfontText2","align","flipY","colorMaterials","mesh","multiply","finalScale","textScale","multiplyScalar","_ref$color","_ref$scale","computeHeight","hFactor","substring","labelString","_parseBmfontAscii2","getMaterial","_sdfshader_logdepth","_threeBmfontText","_parseBmfontAscii","_font","./font","./sdfshader_logdepth","parse-bmfont-ascii","three-bmfont-text","19","TOOLTIP","FOLDER","LOCATOR","vertexColors","20","createSlider","_ref$min","_ref$max","_ref$step","step","_ref$initialHeight","initialHeight","alpha","useStep","onFinishedChange","getImpliedStep","numDecimals","getAlphaFromValue","updateValueLabel","valueLabel","roundToDecimal","updateSlider","updateObject","updateStateFromAlpha","getClampedAlpha","getValueFromAlpha","getSteppedValue","getClampedValue","getValueFromObject","handlePress","handleHold","endLocator","previousValue","getPointAlpha","handleRelease","SLIDER_WIDTH","SLIDER_HEIGHT","SLIDER_DEPTH","sliderBG","segment","ta","tb","projected","projectOnVector","tToA","aToB","dot","distanceTo","map_range","low1","high1","low2","high2","round","decimals","abs","toExponential","tenTo","21","createTextBox","updateString","toggleKeyboard","keyboard","setTimeout","_index","./index","22","createTextLabel","fgColor","bgColor","internalPositioning","setNumber","toFixed","totalWidth","labelBackGeometry","makeTranslation","labelBackMesh","parentWidth","parentHeight","defaultParentHeight","parentDepth","tipGroup","paddedW","paddedH","tipRect","tipBackground","23","control","isChild","getFolder","wonkyGeom","traverse","isBufferGeometry","attributes","itemSize","setFromObject","24","anArray","BYTES_PER_ELEMENT","buffer","25","num","def","26","dtype","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Float64Array","Uint8ClampedArray","27","ProcessEmitWarning","warning","EventEmitter","init","checkListener","listener","TypeError","_getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","existing","_eventsCount","newListener","warned","String","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","list","pop","ret","once","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","arg","removeEventListener","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","enumerable","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","28","ctor","superCtor","super_","writable","configurable","TempCtor","29","isBuffer","isSlowBuffer","readFloatLE","_isBuffer","30","TextLayout","glyphs","_measure","computeMetrics","addGetter","wrapper","getGlyphById","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","charCodeAt","idx","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","kernings","table","kern","first","second","amount","getAlignType","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","start","wordWrap","xtend","TAB_ID","SPACE_ID","measure","_opt","tabSize","_setupSpaceGlyphs","lines","minWidth","maxLineWidth","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","self","lineIndex","lastGlyph","end","lineWidth","glyph","getGlyph","tx","data","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","nextPen","nextWidth","as-number","word-wrapper","31","toObject","val","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","source","symbols","to","32","splitLine","replace","trim","match","dt","parseData","out","parseIntList","parseInt","output","pages","lineData","file","33","CW","CCW","dir","clockwise","numIndices","indices","j","an-array","is-buffer","34","TextGeometry","Base","zzz","createLayout","inherits","createIndices","vertices","utils","texWidth","scaleW","texHeight","scaleH","bitmap","visibleGlyphs","positions","uvs","setIndex","multipage","removeAttribute","boundingSphere","Sphere","radius","center","computeSphere","bbox","makeEmpty","computeBox","./lib/utils","./lib/vertices","layout-bmfont-text","quad-indices","35","bounds","minX","minY","maxX","maxY","sqrt","36","page","bw","bh","u0","v1","u1","v0","37","idxOf","chr","isWhitespace","whitespace","test","pre","lineStart","charAt","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","result","monospace","38","extend"],"mappings":"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","file":"datguivr.min.js"} \ No newline at end of file diff --git a/build/datguivr.min.js b/build/datguivr.min.js index 33f7846..c6e7e5f 100644 --- a/build/datguivr.min.js +++ b/build/datguivr.min.js @@ -1,4 +1,4 @@ -!function(){function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){return e(b[g][1][a]||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g0&&void 0!==arguments[0]?arguments[0]:{},e=d.textCreator,f=d.object,h=d.propertyName,j=void 0===h?"undefined":h,l=d.width,n=void 0===l?k.PANEL_WIDTH:l,o=d.height,p=void 0===o?k.PANEL_HEIGHT:o,q=d.depth,r=void 0===q?k.PANEL_DEPTH:q,s=.5*n-k.PANEL_MARGIN,t=p-k.PANEL_MARGIN,u=k.BUTTON_DEPTH,v=new THREE.Group;v.guiType="button",v.toString=function(){return"["+v.guiType+": "+j+"]"};var w=k.createPanel(n,p,r);v.add(w);var x=s/t,y=new THREE.BoxGeometry(s,t,u,Math.floor(4*x),4,4);y.translate(.5*s,0,0);var z=new THREE.MeshBasicMaterial;z.visible=!1;var A=new THREE.Mesh(y.clone(),z);A.position.z=.5*u,A.position.x=.5*n;var B=new THREE.MeshBasicMaterial({color:i.BUTTON_COLOR}),C=new THREE.Mesh(y.clone(),B);A.add(C);var D=e.create(j,{scale:.866});D.position.x=.5*s-11e-6*D.layout.width*.5,D.position.z=1.2*u,D.position.y=-.025,C.add(D);var E=e.create(j);E.position.x=k.PANEL_LABEL_TEXT_MARGIN,E.position.z=r,E.position.y=-.03;var F=k.createControllerIDBox(p,i.CONTROLLER_ID_BUTTON);F.position.z=r,w.add(E,A,F);var G=(0,g.default)(A);G.events.on("onPressed",a),G.events.on("onReleased",b),c(),v.interaction=G,v.hitscan=[A,w];var H=m.create({group:v,panel:w});return v.updateControl=function(a){G.update(a),H.update(a),c()},v.name=function(a){return E.updateLabel(a),v},v.buttonLabel=function(a){return D.updateLabel(a),v},v}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./interaction"),g=function(a){return a&&a.__esModule?a:{default:a}}(f),h=a("./colors"),i=d(h),j=a("./layout"),k=d(j),l=a("./grab"),m=d(l)},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15}],2:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a){!1!==y.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0)}function b(){B.visible=w.value,C.visible=D.hovering(),F&&(F.checkmark.visible=w.value,F.borderBox.visible=F.interaction.hovering())}function c(){if(F)return F;var a=.6*m.PANEL_HEIGHT,c=new THREE.BoxGeometry(a,a,v);c.translate(.5*a,0,0);var e=new THREE.MeshBasicMaterial;e.visible=!0;var f=new THREE.Mesh(c.clone(),e);F=f,f.position.z=v;var h=m.createPanel(a+m.BORDER_THICKNESS,a+m.BORDER_THICKNESS,v,!0);F.borderBox=h,h.material.color.setHex(2063079),h.position.x=.5*-m.BORDER_THICKNESS+.5*q,h.position.z=.5*v;var k=o.checkmark(.4*a/m.CHECKBOX_SIZE);F.checkmark=k,k.visible=w.value,k.position.z=.51*v,f.add(k);var l=(0,i.default)(f);return l.events.on("onPressed",d),F.interaction=l,F.updateControl=function(a){w.listen&&(w.value=g[j]),l.update(a),b()},F}function d(a){!1!==y.folder.visible&&!1!==F.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0,F.checkmark.visible=w.value)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,j=void 0===h?"undefined":h,l=e.initialValue,n=void 0!==l&&l,p=e.width,q=void 0===p?m.PANEL_WIDTH:p,s=e.height,t=void 0===s?m.PANEL_HEIGHT:s,u=e.depth,v=void 0===u?m.PANEL_DEPTH:u,w={value:n,listen:!1},x=m.PANEL_HEIGHT-m.CHECKBOX_SIZE,y=new THREE.Group;y.guiType="checkbox",y.toString=function(){return"["+y.guiType+": "+j+"]"};var z=f.create(j);z.position.x=m.PANEL_LABEL_TEXT_MARGIN,z.position.z=v,z.position.y=-.03;var A=void 0;y.onChange=function(a){return A=a,y},y.listen=function(){return w.listen=!0,y},y.name=function(a){return z.updateLabel(a),y};var B=void 0,C=void 0,D=void 0,E=!1;y.showInFolderHeader=function(){var a=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return a!==E&&(E=a,F=c(),a?y.folder.addHeaderItem(F):F.visible=!1),y},Object.defineProperty(y,"isShownInFolderHeader",{get:function(){return E},set:y.showInFolderHeader});var F=void 0,G=void 0;return y.setHeight=function(c){G&&y.remove(G),y.spacing=c;var d=c-x,e=d,f=v,h=.4*d/m.CHECKBOX_SIZE;G=m.createPanel(q,c,v),y.add(G);var l=new THREE.BoxGeometry(d,e,f);l.translate(.5*d,0,0);var n=new THREE.MeshBasicMaterial;n.visible=!1;var p=new THREE.Mesh(l.clone(),n);p.position.z=v,p.position.x=.5*q;var s=new THREE.MeshBasicMaterial({color:k.CHECKBOX_BG_COLOR}),t=new THREE.Mesh(l.clone(),s);p.add(t);var u=m.createControllerIDBox(c,k.CONTROLLER_ID_CHECKBOX);u.position.z=v,C=m.createPanel(d+m.BORDER_THICKNESS,e+m.BORDER_THICKNESS,f,!0),C.material.color.setHex(2063079),C.position.x=.5*-m.BORDER_THICKNESS+.5*q,C.position.z=.5*v,B=o.checkmark(h),B.position.z=.51*v,p.add(B),G.add(z,p,u,C),D=(0,i.default)(p),D.events.on("onPressed",a),b(),y.interaction=D,y.hitscan=[p,G];var A=r.create({group:y,panel:G});return y.updateControl=function(a){w.listen&&(w.value=g[j]),D.update(a),A.update(a),b()},y.folder&&y.folder.requestLayout(),y},y.setHeight(t),y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./textlabel"),h=(e(g),a("./interaction")),i=e(h),j=a("./colors"),k=d(j),l=a("./layout"),m=d(l),n=a("./graphic"),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=d(q)},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a,b,c){var d,e,f,g,h,i,j,k;switch(1===arguments.length&&(void 0!==a.x?(b=a.y,c=a.z,a=a.x):(b=a.s,c=a.v,a=a.h)),g=Math.floor(6*a),h=6*a-g,i=c*(1-b),j=c*(1-h*b),k=c*(1-(1-h)*b),g%6){case 0:d=c,e=k,f=i;break;case 1:d=j,e=c,f=i;break;case 2:d=i,e=c,f=k;break;case 3:d=i,e=j,f=c;break;case 4:d=k,e=i,f=c;break;case 5:d=c,e=i,f=j}return{r:d,g:e,b:f}}function g(a,b,c){1===arguments.length&&(b=a.g,c=a.b,a=a.r);var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=e-f,h=0===e?0:g/e,i=e;switch(e){case f:d=0;break;case a:d=b-c+g*(b1&&void 0!==arguments[1]?arguments[1]:.4545;a.r=Math.pow(a.r,b),a.g=Math.pow(a.g,b),a.b=Math.pow(a.b,b)}function b(){B.color.set(y),a(B.color),C.emit("onChange",y)}function c(){F&&F.position.set(0,0,5*w)}function d(){if(F)return F.visible=!F.visible,F.visible&&E.folder.setModalEditor(F),void c();if(F=dat.GUIVR.create("Color Chooser"),F.hideHeader(),G){var a=function(a){A.selectedHSV.value.x=a.localPoint.x;var c=f(A.selectedHSV.value);y.setRGB(c.r,c.g,c.b),b(),h.needsUpdate=!0},d=new THREE.ShaderMaterial({uniforms:A,vertexShader:s,fragmentShader:t}),e=function(a){A.selectedHSV.value.y=a.localPoint.x,A.selectedHSV.value.z=a.localPoint.y;var c=f(A.selectedHSV.value);y.setRGB(c.r,c.g,c.b),b(),h.needsUpdate=!0},g=o.BUTTON_DEPTH/10;F.addXYController(e,d,!0,o.PANEL_WIDTH/2,w,g);var h=new THREE.ShaderMaterial({uniforms:A,vertexShader:s,fragmentShader:u});F.addXYController(a,h,!0,o.PANEL_HEIGHT,w,g)}else F.add(y,"r",0,1).onChange(b),F.add(y,"g",0,1).onChange(b),F.add(y,"b",0,1).onChange(b);E.add(F),E.folder.setModalEditor(F),c(),F.folder=E.folder}function e(){y=i[k],B.color.copy(y),a(B.color),A.selectedHSV.value.copy(g(y))}var h=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=h.object,k=h.propertyName,m=h.textCreator,n=h.width,p=void 0===n?o.PANEL_WIDTH:n,q=h.height,r=void 0===q?o.PANEL_HEIGHT:q,v=h.depth,w=void 0===v?o.PANEL_DEPTH/3:v,x=d,y=i[k],z=g(y),A={selectedHSV:{value:new THREE.Vector3(z.h,z.s,z.v)}},B=new THREE.MeshBasicMaterial({color:y}),C=new j.default,D={listen:!1},E=(0,l.default)({textCreator:m,func:x,image:B,propertyName:k,width:p,height:r,depth:w,changeColorOnHover:!1});E.guiType="ColorPicker";var F,G=!0;E.onChange=function(a){return C.on("onChange",a),E};var H=E.updateControl;return E.updateControl=function(a){D.listen&&e(),H(a)},E.listen=function(){return D.listen=!0,E},E}Object.defineProperty(c,"__esModule",{value:!0}),c.default=h;var i=a("events"),j=e(i),k=a("./imagebutton"),l=e(k),m=a("./colors"),n=(d(m),a("./layout")),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=(d(q),"\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}"),s="\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n",t="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = hsv2rgb(hsv);\n gl_FragColor.w = 1.0; // sjpt\n}\n",u="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v));\n gl_FragColor.w = 1.0; // sjpt\n}\n"},{"./colors":4,"./grab":8,"./imagebutton":10,"./layout":15,"./sharedmaterials":19,events:27}],4:[function(a,b,c){"use strict";function d(a,b){var c=new THREE.Color(b),d=a.getAttribute("color"),e=void 0;d?e=d.array:(e=new Float32Array(a.getAttribute("position").array.length).fill(.5),d=a.setAttribute("color",new THREE.BufferAttribute(e,3)));for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:{},n=l.textCreator,p=l.object,r=l.propertyName,u=void 0===r?"undefined":r,v=(l.initialValue,l.options),w=void 0===v?[]:v,x=l.width,y=void 0===x?o.PANEL_WIDTH:x,z=l.height,A=void 0===z?o.PANEL_HEIGHT:z,B=l.depth,C=void 0===B?o.PANEL_DEPTH:B,D={open:!1,listen:!1},E=.5*y-o.PANEL_MARGIN,F=A-o.PANEL_MARGIN,G=C,H=A-1.2*o.PANEL_MARGIN,I=-.4*o.PANEL_MARGIN,J=25,K=new THREE.Group;K.guiType="dropdown",K.toString=function(){return"["+K.guiType+": "+u+"]"},K.userData.sourceObject=p,K.userData.sourcePropertyName=u,K.userData.setValue=function(a){if(-1===w.indexOf(a))return void console.warn('dat.GUIVR: Unknown option "'+a+'" for dropdown "'+u+'".\nValid options: ['+w.join(", ")+"]");p[u]=a,V&&V(p[u])};var L=o.createPanel(y,A,C);K.add(L),K.hitscan=[L];var M=new THREE.Group;M.visible=!1,M.hitscan=[];var N=[],O=[],P=a(),Q=b(P||" ",!1);Q.position.x=.5*o.PANEL_MARGIN+.5*y,Q.position.z=C;var R=q.downArrow();R.position.set(E-.04,0,1.01*C),Q.add(R),Q.add(M),Array.isArray(w)?M.add.apply(M,f(w.map(g))):M.add.apply(M,f(Object.keys(w).map(g))),c();var S=n.create(u);S.position.x=o.PANEL_LABEL_TEXT_MARGIN,S.position.z=C,S.position.y=-.03;var T=o.createControllerIDBox(A,m.CONTROLLER_ID_DROPDOWN);T.position.z=C;var U=o.createPanel(E+o.BORDER_THICKNESS,F+.5*o.BORDER_THICKNESS,G,!0);U.material.color.setHex(2063079),U.position.x=.5*-o.BORDER_THICKNESS+.5*y,U.position.z=.5*C,L.add(S,T,Q,U),j();var V=void 0,W=void 0;K.onChange=function(a){return V=a,K},K.onChoose=function(a){return W=a,K};var X=s.create({group:K,panel:L});return K.listen=function(){return D.listen=!0,K},K.updateControl=function(b){D.listen&&Q.setString(a()),N.forEach(function(a){a.update(b)}),X.update(b),j()},K.name=function(a){return S.updateLabel(a),K},K.setToolTip=function(a){var b=K;b.userData.tip=a,b.userData.tipObj=(0,h.createToolTip)(n,a,o.FOLDER_WIDTH,b.spacing,o.BUTTON_DEPTH)},K.getToolTip=function(){return K.userData.tip},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=g;var h=a("./textlabel"),i=e(h),j=a("./interaction"),k=e(j),l=a("./colors"),m=d(l),n=a("./layout"),o=d(n),p=a("./graphic"),q=d(p),r=a("./grab"),s=d(r),t=a("./utils")},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./textlabel":22,"./utils":23}],6:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b=c-o.PANEL_DEPTH&&console.log("GUIVR Warning: likely problem with z-order in orthographicFolderLayout")}}function g(a){if(a.isOrthographicCamera){var b=a.near,c=a.far,d=(x.length,a.left),e=a.right,f=a.top,g=a.bottom,h=a.position.z;return z.min.set(d,g,-c+h),z.max.set(e,f,-b+h),z}}function h(){function a(a){L.call(H,a)}function b(a){M.call(H,a)}function c(a,b,c){b.updateMatrixWorld(),a.applyMatrix4(b.matrixWorld),b.remove(a),c.add(a)}function d(a,b,c){c.updateMatrixWorld(),a.applyMatrix4((new THREE.Matrix4).getInverse(c.matrixWorld)),b.remove(a),c.add(a)}function h(a,b,e){for(var f=b;f.parent;)f=f.parent;var g=f;c(a,b,g),d(a,g,e)}function j(){l();var a=(0,w.getTopLevelFolder)(H);a===H?(a.modalEditor&&a.modalEditor.performLayout&&a.modalEditor.performLayout(),a.userData.layoutInProgress=!0,a.userData.columnHeight=0,a.userData.columnIndex=0,a.userData.columnYOff=-a.position.y,x.includes(H)||(x.push(H),H.userData.isOrthographic&&f())):(H.userData.columnHeight=H.folder.userData.columnHeight,H.userData.columnIndex=H.folder.userData.columnIndex,x.includes(H)&&(x.splice(x.indexOf(H),1),H.userData.isOrthographic&&f()));var b=o.PANEL_HEIGHT+o.PANEL_SPACING,c=o.FOLDER_HEIGHT+o.PANEL_SPACING,d=c;I.children.forEach(function(a){a.visible=!G.collapsed});var e=0;if(I.children.forEach(function(a,b){void 0===a.guiIndex?a.guiIndex=e+=1:e=a.guiIndex}),I.children.sort(function(a,b){return a.guiIndex-b.guiIndex}),G.collapsed)P.rotation.z=.5*Math.PI;else{P.rotation.z=0;var g=0,h=c;I.children.forEach(function(a,e){a.isFolder&&(a.userData.columnYOff=H.userData.columnYOff-g,a.performLayout());var f,i=a.spacing?a.spacing:b,j=.5*(h+i);if(a.isFolder){var f=.5*(h+c);a.position.y=g-f}else a.position.y=g-j;g-=j,h=i,e0&&void 0!==arguments[0]?arguments[0]:{},r=p.textCreator,s=p.name,u=p.guiAdd,z=p.guiRemove,B=p.addControllerFuncs,C=p.globalControllers,D=25,E=o.FOLDER_WIDTH,F=o.PANEL_DEPTH,G={collapsed:!1,previousParent:void 0},H=new THREE.Group;H.guiType="folder",H.toString=function(){return"["+H.guiType+": "+s+"]"};var I=new THREE.Group;H.add(I);var J=!1;Object.defineProperty(H,"accordion",{get:function(){return J},set:function(a){a&&!J&&H.guiChildren.filter(function(a){return a.isFolder}).map(function(a){return a.close()}),J=a,H.requestLayout()}}),H.requestLayout=function(){var a=(0,w.getTopLevelFolder)(H);a.userData.layoutInProgress?console.log("requested layout of folder "+H.folderName+" while layout already in progress..."):a.userData.layoutPending=!0},H.performLayout=j;var K=new THREE.Quaternion;H.fixFolderPosition=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.01,b=this;if(b.userData.isOrthographic){b.setRotationFromQuaternion(K);var c=(0,w.setBoxFromObject)(y,b),d=c.max.x-c.min.x,e=(c.max.y,c.max.y,b.userData.isOrthographic),f=g(e),h=c.intersect(f),i=h.getSize(A),j=e.right-e.left,k=e.top-e.bottom;i.x/=d,i.y/=d;var l=!1;i.x-1&&a.userData.semiDetached.splice(c,1)}return H._setDetachedFrom(null),!0},H.addController=function(){for(var a=arguments.length,b=Array(a),c=0;c0&&void 0!==arguments[0]?arguments[0]:{},e=d.textCreator,f=d.object,h=d.propertyName,j=void 0===h?"undefined":h,l=d.width,n=void 0===l?k.PANEL_WIDTH:l,o=d.height,p=void 0===o?k.PANEL_HEIGHT:o,q=d.depth,r=void 0===q?k.PANEL_DEPTH:q,s=.5*n-k.PANEL_MARGIN,t=p-k.PANEL_MARGIN,u=k.BUTTON_DEPTH,v=new THREE.Group;v.guiType="button",v.toString=function(){return"["+v.guiType+": "+j+"]"};var w=k.createPanel(n,p,r);v.add(w);var x=s/t,y=new THREE.BoxGeometry(s,t,u,Math.floor(4*x),4,4);y.translate(.5*s,0,0);var z=new THREE.MeshBasicMaterial;z.visible=!1;var A=new THREE.Mesh(y.clone(),z);A.position.z=.5*u,A.position.x=.5*n;var B=new THREE.MeshBasicMaterial({color:i.BUTTON_COLOR}),C=new THREE.Mesh(y.clone(),B);A.add(C);var D=e.create(j,{scale:.866});D.position.x=.5*s-11e-6*D.layout.width*.5,D.position.z=1.2*u,D.position.y=-.025,C.add(D);var E=e.create(j);E.position.x=k.PANEL_LABEL_TEXT_MARGIN,E.position.z=r,E.position.y=-.03;var F=k.createControllerIDBox(p,i.CONTROLLER_ID_BUTTON);F.position.z=r,w.add(E,A,F);var G=(0,g.default)(A);G.events.on("onPressed",a),G.events.on("onReleased",b),c(),v.interaction=G,v.hitscan=[A,w];var H=m.create({group:v,panel:w});return v.updateControl=function(a){G.update(a),H.update(a),c()},v.name=function(a){return E.updateLabel(a),v},v.buttonLabel=function(a){return D.updateLabel(a),v},v}Object.defineProperty(c,"__esModule",{value:!0}),c.default=e;var f=a("./interaction"),g=function(a){return a&&a.__esModule?a:{default:a}}(f),h=a("./colors"),i=d(h),j=a("./layout"),k=d(j),l=a("./grab"),m=d(l)},{"./colors":4,"./grab":8,"./interaction":13,"./layout":15}],2:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(){function a(a){!1!==y.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0)}function b(){B.visible=w.value,C.visible=D.hovering(),F&&(F.checkmark.visible=w.value,F.borderBox.visible=F.interaction.hovering())}function c(){if(F)return F;var a=.6*m.PANEL_HEIGHT,c=new THREE.BoxGeometry(a,a,v);c.translate(.5*a,0,0);var e=new THREE.MeshBasicMaterial;e.visible=!0;var f=new THREE.Mesh(c.clone(),e);F=f,f.position.z=v;var h=m.createPanel(a+m.BORDER_THICKNESS,a+m.BORDER_THICKNESS,v,!0);F.borderBox=h,h.material.color.setHex(2063079),h.position.x=.5*-m.BORDER_THICKNESS+.5*q,h.position.z=.5*v;var k=o.checkmark(.4*a/m.CHECKBOX_SIZE);F.checkmark=k,k.visible=w.value,k.position.z=.51*v,f.add(k);var l=(0,i.default)(f);return l.events.on("onPressed",d),F.interaction=l,F.updateControl=function(a){w.listen&&(w.value=g[j]),l.update(a),b()},F}function d(a){!1!==y.folder.visible&&!1!==F.visible&&(w.value=!w.value,g[j]=w.value,A&&A(w.value),a.locked=!0,F.checkmark.visible=w.value)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.textCreator,g=e.object,h=e.propertyName,j=void 0===h?"undefined":h,l=e.initialValue,n=void 0!==l&&l,p=e.width,q=void 0===p?m.PANEL_WIDTH:p,s=e.height,t=void 0===s?m.PANEL_HEIGHT:s,u=e.depth,v=void 0===u?m.PANEL_DEPTH:u,w={value:n,listen:!1},x=m.PANEL_HEIGHT-m.CHECKBOX_SIZE,y=new THREE.Group;y.guiType="checkbox",y.toString=function(){return"["+y.guiType+": "+j+"]"};var z=f.create(j);z.position.x=m.PANEL_LABEL_TEXT_MARGIN,z.position.z=v,z.position.y=-.03;var A=void 0;y.onChange=function(a){return A=a,y},y.listen=function(){return w.listen=!0,y},y.name=function(a){return z.updateLabel(a),y};var B=void 0,C=void 0,D=void 0,E=!1;y.showInFolderHeader=function(){var a=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return a!==E&&(E=a,F=c(),a?y.folder.addHeaderItem(F):F.visible=!1),y},Object.defineProperty(y,"isShownInFolderHeader",{get:function(){return E},set:y.showInFolderHeader});var F=void 0,G=void 0;return y.setHeight=function(c){G&&y.remove(G),y.spacing=c;var d=c-x,e=d,f=v,h=.4*d/m.CHECKBOX_SIZE;G=m.createPanel(q,c,v),y.add(G);var l=new THREE.BoxGeometry(d,e,f);l.translate(.5*d,0,0);var n=new THREE.MeshBasicMaterial;n.visible=!1;var p=new THREE.Mesh(l.clone(),n);p.position.z=v,p.position.x=.5*q;var s=new THREE.MeshBasicMaterial({color:k.CHECKBOX_BG_COLOR}),t=new THREE.Mesh(l.clone(),s);p.add(t);var u=m.createControllerIDBox(c,k.CONTROLLER_ID_CHECKBOX);u.position.z=v,C=m.createPanel(d+m.BORDER_THICKNESS,e+m.BORDER_THICKNESS,f,!0),C.material.color.setHex(2063079),C.position.x=.5*-m.BORDER_THICKNESS+.5*q,C.position.z=.5*v,B=o.checkmark(h),B.position.z=.51*v,p.add(B),G.add(z,p,u,C),D=(0,i.default)(p),D.events.on("onPressed",a),b(),y.interaction=D,y.hitscan=[p,G];var A=r.create({group:y,panel:G});return y.updateControl=function(a){w.listen&&(w.value=g[j]),D.update(a),A.update(a),b()},y.folder&&y.folder.requestLayout(),y},y.setHeight(t),y}Object.defineProperty(c,"__esModule",{value:!0}),c.default=f;var g=a("./textlabel"),h=(e(g),a("./interaction")),i=e(h),j=a("./colors"),k=d(j),l=a("./layout"),m=d(l),n=a("./graphic"),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=d(q)},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./sharedmaterials":19,"./textlabel":22}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){return a&&a.__esModule?a:{default:a}}function f(a,b,c){var d,e,f,g,h,i,j,k;switch(1===arguments.length&&(void 0!==a.x?(b=a.y,c=a.z,a=a.x):(b=a.s,c=a.v,a=a.h)),g=Math.floor(6*a),h=6*a-g,i=c*(1-b),j=c*(1-h*b),k=c*(1-(1-h)*b),g%6){case 0:d=c,e=k,f=i;break;case 1:d=j,e=c,f=i;break;case 2:d=i,e=c,f=k;break;case 3:d=i,e=j,f=c;break;case 4:d=k,e=i,f=c;break;case 5:d=c,e=i,f=j}return{r:d,g:e,b:f}}function g(a,b,c){1===arguments.length&&(b=a.g,c=a.b,a=a.r);var d,e=Math.max(a,b,c),f=Math.min(a,b,c),g=e-f,h=0===e?0:g/e,i=e;switch(e){case f:d=0;break;case a:d=b-c+g*(b1&&void 0!==arguments[1]?arguments[1]:.4545;a.r=Math.pow(a.r,b),a.g=Math.pow(a.g,b),a.b=Math.pow(a.b,b)}function b(){B.color.set(y),a(B.color),C.emit("onChange",y)}function c(){F&&F.position.set(0,0,5*w)}function d(){if(F)return F.visible=!F.visible,F.visible&&E.folder.setModalEditor(F),void c();if(F=dat.GUIVR.create("Color Chooser"),F.hideHeader(),G){var a=function(a){A.selectedHSV.value.x=a.localPoint.x;var c=f(A.selectedHSV.value);y.setRGB(c.r,c.g,c.b),b(),h.needsUpdate=!0},d=new THREE.ShaderMaterial({uniforms:A,vertexShader:s,fragmentShader:t}),e=function(a){A.selectedHSV.value.y=a.localPoint.x,A.selectedHSV.value.z=a.localPoint.y;var c=f(A.selectedHSV.value);y.setRGB(c.r,c.g,c.b),b(),h.needsUpdate=!0},g=o.BUTTON_DEPTH/10;F.addXYController(e,d,!0,o.PANEL_WIDTH/2,w,g);var h=new THREE.ShaderMaterial({uniforms:A,vertexShader:s,fragmentShader:u});F.addXYController(a,h,!0,o.PANEL_HEIGHT,w,g)}else F.add(y,"r",0,1).onChange(b),F.add(y,"g",0,1).onChange(b),F.add(y,"b",0,1).onChange(b);E.add(F),E.folder.setModalEditor(F),c(),F.folder=E.folder}function e(){y=i[k],B.color.copy(y),a(B.color),A.selectedHSV.value.copy(g(y))}var h=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=h.object,k=h.propertyName,m=h.textCreator,n=h.width,p=void 0===n?o.PANEL_WIDTH:n,q=h.height,r=void 0===q?o.PANEL_HEIGHT:q,v=h.depth,w=void 0===v?o.PANEL_DEPTH/3:v,x=d,y=i[k],z=g(y),A={selectedHSV:{value:new THREE.Vector3(z.h,z.s,z.v)}},B=new THREE.MeshBasicMaterial({color:y}),C=new j.default,D={listen:!1},E=(0,l.default)({textCreator:m,func:x,image:B,propertyName:k,width:p,height:r,depth:w,changeColorOnHover:!1});E.guiType="ColorPicker";var F,G=!0;E.onChange=function(a){return C.on("onChange",a),E};var H=E.updateControl;return E.updateControl=function(a){D.listen&&e(),H(a)},E.listen=function(){return D.listen=!0,E},E}Object.defineProperty(c,"__esModule",{value:!0}),c.default=h;var i=a("events"),j=e(i),k=a("./imagebutton"),l=e(k),m=a("./colors"),n=(d(m),a("./layout")),o=d(n),p=a("./sharedmaterials"),q=(d(p),a("./grab")),r=(d(q),"\nvec3 hsv2rgb(vec3 c) {\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}"),s="\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);\n}\n",t="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n vec3 hsv = vec3(selectedHSV.x, vUv);\n\n // draw a black circle around selected SV.\n // might look better via separate three object, but shader is less housekeeping\n // need to know aspect ratio if I want it to be a proper circle, though.\n float d = length(selectedHSV.yz - vUv);\n if (d < 0.015 && d > 0.01) hsv.z = 0.;\n gl_FragColor.rgb = sqrt(hsv2rgb(hsv));\n gl_FragColor.w = 1.0; // sjpt\n}\n",u="\nuniform vec3 selectedHSV;\nvarying vec2 vUv;\n"+r+"\n\nvoid main() {\n // draw a rectangular indicator around selected H\n // might look better via separate three object, but shader is simpler\n float dist = abs(selectedHSV.x - vUv.x);\n bool indicator = dist < 0.01 && dist > 0.005;\n float v = indicator ? 0. : 1.;\n gl_FragColor.rgb = sqrt(hsv2rgb(vec3(vUv.x, 1., v)));\n gl_FragColor.w = 1.0; // sjpt\n}\n"},{"./colors":4,"./grab":8,"./imagebutton":10,"./layout":15,"./sharedmaterials":19,events:27}],4:[function(a,b,c){"use strict";function d(a,b){var c=new THREE.Color(b),d=a.getAttribute("color"),e=void 0;d?e=d.array:(e=new Float32Array(a.getAttribute("position").array.length).fill(.5),d=a.setAttribute("color",new THREE.BufferAttribute(e,3)));for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:{},n=l.textCreator,p=l.object,r=l.propertyName,u=void 0===r?"undefined":r,v=(l.initialValue,l.options),w=void 0===v?[]:v,x=l.width,y=void 0===x?o.PANEL_WIDTH:x,z=l.height,A=void 0===z?o.PANEL_HEIGHT:z,B=l.depth,C=void 0===B?o.PANEL_DEPTH:B,D={open:!1,listen:!1},E=.5*y-o.PANEL_MARGIN,F=A-o.PANEL_MARGIN,G=C,H=A-1.2*o.PANEL_MARGIN,I=-.4*o.PANEL_MARGIN,J=25,K=new THREE.Group;K.guiType="dropdown",K.toString=function(){return"["+K.guiType+": "+u+"]"},K.userData.sourceObject=p,K.userData.sourcePropertyName=u,K.userData.setValue=function(a){if(-1===w.indexOf(a))return void console.warn('dat.GUIVR: Unknown option "'+a+'" for dropdown "'+u+'".\nValid options: ['+w.join(", ")+"]");p[u]=a,V&&V(p[u])};var L=o.createPanel(y,A,C);K.add(L),K.hitscan=[L];var M=new THREE.Group;M.visible=!1,M.hitscan=[];var N=[],O=[],P=a(),Q=b(P||" ",!1);Q.position.x=.5*o.PANEL_MARGIN+.5*y,Q.position.z=C;var R=q.downArrow();R.position.set(E-.04,0,1.01*C),Q.add(R),Q.add(M),Array.isArray(w)?M.add.apply(M,f(w.map(g))):M.add.apply(M,f(Object.keys(w).map(g))),c();var S=n.create(u);S.position.x=o.PANEL_LABEL_TEXT_MARGIN,S.position.z=C,S.position.y=-.03;var T=o.createControllerIDBox(A,m.CONTROLLER_ID_DROPDOWN);T.position.z=C;var U=o.createPanel(E+o.BORDER_THICKNESS,F+.5*o.BORDER_THICKNESS,G,!0);U.material.color.setHex(2063079),U.position.x=.5*-o.BORDER_THICKNESS+.5*y,U.position.z=.5*C,L.add(S,T,Q,U),j();var V=void 0,W=void 0;K.onChange=function(a){return V=a,K},K.onChoose=function(a){return W=a,K};var X=s.create({group:K,panel:L});return K.listen=function(){return D.listen=!0,K},K.updateControl=function(b){D.listen&&Q.setString(a()),N.forEach(function(a){a.update(b)}),X.update(b),j()},K.name=function(a){return S.updateLabel(a),K},K.setToolTip=function(a){var b=K;b.userData.tip=a,b.userData.tipObj=(0,h.createToolTip)(n,a,o.FOLDER_WIDTH,b.spacing,o.BUTTON_DEPTH)},K.getToolTip=function(){return K.userData.tip},K}Object.defineProperty(c,"__esModule",{value:!0}),c.default=g;var h=a("./textlabel"),i=e(h),j=a("./interaction"),k=e(j),l=a("./colors"),m=d(l),n=a("./layout"),o=d(n),p=a("./graphic"),q=d(p),r=a("./grab"),s=d(r),t=a("./utils")},{"./colors":4,"./grab":8,"./graphic":9,"./interaction":13,"./layout":15,"./textlabel":22,"./utils":23}],6:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b.default=a,b}function e(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b=c-o.PANEL_DEPTH&&console.log("GUIVR Warning: likely problem with z-order in orthographicFolderLayout")}}function g(a){if(a.isOrthographicCamera){var b=a.near,c=a.far,d=(x.length,a.left),e=a.right,f=a.top,g=a.bottom,h=a.position.z;return z.min.set(d,g,-c+h),z.max.set(e,f,-b+h),z}}function h(){function a(a){L.call(H,a)}function b(a){M.call(H,a)}function c(a,b,c){b.updateMatrixWorld(),a.applyMatrix4(b.matrixWorld),b.remove(a),c.add(a)}function d(a,b,c){c.updateMatrixWorld(),a.applyMatrix4((new THREE.Matrix4).getInverse(c.matrixWorld)),b.remove(a),c.add(a)}function h(a,b,e){for(var f=b;f.parent;)f=f.parent;var g=f;c(a,b,g),d(a,g,e)}function j(){l();var a=(0,w.getTopLevelFolder)(H);a===H?(a.modalEditor&&a.modalEditor.performLayout&&a.modalEditor.performLayout(),a.userData.layoutInProgress=!0,a.userData.columnHeight=0,a.userData.columnIndex=0,a.userData.columnYOff=-a.position.y,x.includes(H)||(x.push(H),H.userData.isOrthographic&&f())):(H.userData.columnHeight=H.folder.userData.columnHeight,H.userData.columnIndex=H.folder.userData.columnIndex,x.includes(H)&&(x.splice(x.indexOf(H),1),H.userData.isOrthographic&&f()));var b=o.PANEL_HEIGHT+o.PANEL_SPACING,c=o.FOLDER_HEIGHT+o.PANEL_SPACING,d=c;I.children.forEach(function(a){a.visible=!G.collapsed});var e=0;if(I.children.forEach(function(a,b){void 0===a.guiIndex?a.guiIndex=e+=1:e=a.guiIndex}),I.children.sort(function(a,b){return a.guiIndex-b.guiIndex}),G.collapsed)P.rotation.z=.5*Math.PI;else{P.rotation.z=0;var g=0,h=c;I.children.forEach(function(a,e){a.isFolder&&(a.userData.columnYOff=H.userData.columnYOff-g,a.performLayout());var f,i=a.spacing?a.spacing:b,j=.5*(h+i);if(a.isFolder){var f=.5*(h+c);a.position.y=g-f}else a.position.y=g-j;g-=j,h=i,e0&&void 0!==arguments[0]?arguments[0]:{},r=p.textCreator,s=p.name,u=p.guiAdd,z=p.guiRemove,B=p.addControllerFuncs,C=p.globalControllers,D=40,E=o.FOLDER_WIDTH,F=o.PANEL_DEPTH,G={collapsed:!1,previousParent:void 0},H=new THREE.Group;H.guiType="folder",H.toString=function(){return"["+H.guiType+": "+s+"]"};var I=new THREE.Group;H.add(I);var J=!1;Object.defineProperty(H,"accordion",{get:function(){return J},set:function(a){a&&!J&&H.guiChildren.filter(function(a){return a.isFolder}).map(function(a){return a.close()}),J=a,H.requestLayout()}}),H.requestLayout=function(){var a=(0,w.getTopLevelFolder)(H);a.userData.layoutInProgress?console.log("requested layout of folder "+H.folderName+" while layout already in progress..."):a.userData.layoutPending=!0},H.performLayout=j;var K=new THREE.Quaternion;H.fixFolderPosition=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.01,b=this;if(b.userData.isOrthographic){b.setRotationFromQuaternion(K);var c=(0,w.setBoxFromObject)(y,b),d=c.max.x-c.min.x,e=(c.max.y,c.max.y,b.userData.isOrthographic),f=g(e),h=c.intersect(f),i=h.getSize(A),j=e.right-e.left,k=e.top-e.bottom;i.x/=d,i.y/=d;var l=!1;i.x-1&&a.userData.semiDetached.splice(c,1)}return H._setDetachedFrom(null),!0},H.addController=function(){for(var a=arguments.length,b=Array(a),c=0;c 0.01) hsv.z = 0.; - gl_FragColor.rgb = hsv2rgb(hsv); + gl_FragColor.rgb = sqrt(hsv2rgb(hsv)); gl_FragColor.w = 1.0; // sjpt } `; @@ -65,7 +65,7 @@ void main() { float dist = abs(selectedHSV.x - vUv.x); bool indicator = dist < 0.01 && dist > 0.005; float v = indicator ? 0. : 1.; - gl_FragColor.rgb = hsv2rgb(vec3(vUv.x, 1., v)); + gl_FragColor.rgb = sqrt(hsv2rgb(vec3(vUv.x, 1., v))); gl_FragColor.w = 1.0; // sjpt } `; diff --git a/modules/datguivr/folder.js b/modules/datguivr/folder.js index aefbe45..0f6ac85 100644 --- a/modules/datguivr/folder.js +++ b/modules/datguivr/folder.js @@ -44,13 +44,18 @@ function orthographicFolderLayout() { //camBoxSetup(cam); const tfs = topFolderStack.filter(x => x.visible); const near = cam.near, far = cam.far, n = tfs.length; - const zs = tfs.map(f => f.position.z).sort((a,b)=>a-b); - zs[-1] = -9999; // I suppose this is to deal with accessing zs[i-1] below ¯\_(ツ)_/¯ - zs.forEach( (z,i) => zs[i] = Math.max(zs[i], zs[i-1] + 10*Layout.PANEL_DEPTH)); // in case of equals + // Attempt to keep some old z values threw others out, + // especially if many folders undocked in which case we hit the "GUIVR Warning" below + // and sometimes the menus froze. + // So we use the simpler z - i/n below. + //const zs = tfs.map(f => f.position.z).sort((a,b)=>a-b); + //zs[-1] = -9999; // I suppose this is to deal with accessing zs[i-1] below ¯\_(ツ)_/¯ + //zs.forEach( (z,i) => zs[i] = Math.max(zs[i], zs[i-1] + 10*Layout.PANEL_DEPTH)); // in case of equals tfs.forEach((f, i) => { //let z = -0.9*far + i*10*Layout.PANEL_DEPTH; - const z = zs[i]; + //const z = zs[i]; + const z = i/n; if (z !== f.position.z) { f.position.z = z; f.updateMatrix(); @@ -82,7 +87,7 @@ export default function createFolder({ globalControllers } = {} ){ - const MAX_FOLDER_ITEMS_IN_COLUMN = 25; + const MAX_FOLDER_ITEMS_IN_COLUMN = 40; const width = Layout.FOLDER_WIDTH; const depth = Layout.PANEL_DEPTH; From 545030db86ffe5150907d31c60e8b6adab083c44 Mon Sep 17 00:00:00 2001 From: sjpt Date: Wed, 8 May 2024 16:54:25 +0100 Subject: [PATCH 24/24] remove blank lines, may help merge .... confused --- modules/datguivr/colorpicker.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/modules/datguivr/colorpicker.js b/modules/datguivr/colorpicker.js index 2309d00..4c8dff2 100644 --- a/modules/datguivr/colorpicker.js +++ b/modules/datguivr/colorpicker.js @@ -1,17 +1,11 @@ /** * This should look like an imagebutton with a solid color MeshBasicMaterial * When pressed it could bring up some kind of picker depending on configuration. - * - * * For now, just going with RGB sliders as I shouldn't spend too long on this ATM, * but very tempted by prospect of an HS square with V slider... * but very tempted by prospect of an HS square with V slider... * or H slider and SV square which seems to be what dat.gui uses. * Or something fancier like a hue circle around an SV triangle etc etc. - * - * - * - * * Peter Todd 2017 */